From f9396d91ea0ae1bbd1cb25f77d9620a6ecb260ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Wed, 25 Sep 2024 15:17:32 -0300 Subject: [PATCH 1/6] Rename MinaBridge to MinaStateSettlement (#345) --- Makefile | 2 +- contract/script/MinaBridge.s.sol | 33 ----------------- ...MinaBridge.sol => MinaStateSettlement.sol} | 4 +-- contract/test/MinaBridge.t.sol | 16 --------- ...naBridge.json => MinaStateSettlement.json} | 2 +- core/src/eth.rs | 36 +++++++++++-------- example/app/abi/SudokuValidity.json | 2 +- example/eth_contract/src/SudokuValidity.sol | 6 ++-- 8 files changed, 29 insertions(+), 72 deletions(-) delete mode 100644 contract/script/MinaBridge.s.sol rename contract/src/{MinaBridge.sol => MinaStateSettlement.sol} (97%) delete mode 100644 contract/test/MinaBridge.t.sol rename core/abi/{MinaBridge.json => MinaStateSettlement.json} (57%) diff --git a/Makefile b/Makefile index 0ada52e6..92efab77 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ submit_account: gen_contract_abis: forge build --root contract/ forge build --root example/eth_contract - cp contract/out/MinaBridge.sol/MinaBridge.json core/abi/MinaBridge.json + cp contract/out/MinaStateSettlement.sol/MinaStateSettlement.json core/abi/MinaStateSettlement.json cp contract/out/MinaAccountValidation.sol/MinaAccountValidation.json core/abi/MinaAccountValidation.json cp example/eth_contract/out/SudokuValidity.sol/SudokuValidity.json example/app/abi/SudokuValidity.json diff --git a/contract/script/MinaBridge.s.sol b/contract/script/MinaBridge.s.sol deleted file mode 100644 index fecaef77..00000000 --- a/contract/script/MinaBridge.s.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.12; - -import {Script, console} from "forge-std/Script.sol"; -import {MinaBridge} from "../src/MinaBridge.sol"; - -error UndefinedChain(); - -contract MinaBridgeDeployer is Script { - MinaBridge public bridge; - - function setUp() public {} - - function run() public { - vm.startBroadcast(); - - string memory chain = vm.envString("ETH_CHAIN"); - address payable alignedServiceAddress; - if (keccak256(bytes(chain)) == keccak256("devnet")) { - alignedServiceAddress = payable(0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8); - } else if (keccak256(bytes(chain)) == keccak256("holesky")) { - alignedServiceAddress = payable(0x58F280BeBE9B34c9939C3C39e0890C81f163B623); - } else { - revert UndefinedChain(); - } - - // FIXME(xqft): this script may be deprecated, for now we'll - // pass 0x0 as the second constructor argument. - new MinaBridge(alignedServiceAddress, 0x0); - - vm.stopBroadcast(); - } -} diff --git a/contract/src/MinaBridge.sol b/contract/src/MinaStateSettlement.sol similarity index 97% rename from contract/src/MinaBridge.sol rename to contract/src/MinaStateSettlement.sol index 8ce6fddb..9f9ef27e 100644 --- a/contract/src/MinaBridge.sol +++ b/contract/src/MinaStateSettlement.sol @@ -7,8 +7,8 @@ error NewStateIsNotValid(); // 114602f0 error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); // bbd80128 error AccountIsNotValid(bytes32 accountIdHash); -/// @title Mina to Ethereum Bridge's smart contract. -contract MinaBridge { +/// @title Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain. +contract MinaStateSettlement { /// @notice The length of the verified state chain (also called the bridge's transition /// frontier) to store. uint256 public constant BRIDGE_TRANSITION_FRONTIER_LEN = 16; diff --git a/contract/test/MinaBridge.t.sol b/contract/test/MinaBridge.t.sol deleted file mode 100644 index c5fe2b7c..00000000 --- a/contract/test/MinaBridge.t.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.12; - -import {Test, console} from "forge-std/Test.sol"; -import {MinaBridge} from "../src/MinaBridge.sol"; - -contract MinaBridgeTest is Test { - MinaBridge public bridge; - address payable alignedServiceAddress = payable(0x0); - - function setUp() public { - // FIXME(xqft): this script may be deprecated, for now we'll - // pass 0x0 as the second constructor argument. - bridge = new MinaBridge(alignedServiceAddress, 0x0); - } -} diff --git a/core/abi/MinaBridge.json b/core/abi/MinaStateSettlement.json similarity index 57% rename from core/abi/MinaBridge.json rename to core/abi/MinaStateSettlement.json index ac9c193b..b84761c7 100644 --- a/core/abi/MinaBridge.json +++ b/core/abi/MinaStateSettlement.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5060405161078c38038061078c833981016040819052602c91606a565b602080546001600160a01b0319166001600160a01b03841617905580600060546001601060a2565b60108110606157606160c8565b01555060de9050565b60008060408385031215607c57600080fd5b82516001600160a01b0381168114609257600080fd5b6020939093015192949293505050565b8181038181111560c257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61069f806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea2646970667358221220ccffa0389b24b92e3608ec51a9cf1ae9fa6bb7ae59478769ce76aac4cc5c8bd864736f6c63430008190033","sourceMap":"369:4813:64:-:0;;;1077:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1159:7;:57;;-1:-1:-1;;;;;;1159:57:64;-1:-1:-1;;;;;1159:57:64;;;;;1281:13;-1:-1:-1;1243:34:64;-1:-1:-1;572:2:64;1243:34;:::i;:::-;1226:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;369:4813:64;;-1:-1:-1;369:4813:64;14:359:66;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:66;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:66:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;369:4813:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea2646970667358221220ccffa0389b24b92e3608ec51a9cf1ae9fa6bb7ae59478769ce76aac4cc5c8bd864736f6c63430008190033","sourceMap":"369:4813:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1764:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2005:172;;;:::i;2624:2556::-;;;;;;:::i;:::-;;:::i;:::-;;1557:137;;;:::i;:::-;;;2776:25:66;;;2764:2;2749:18;1557:137:64;2630:177:66;2253:365:64;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:66;;3155:22;3137:41;;3125:2;3110:18;2253:365:64;2997:187:66;1361:135:64;;;:::i;515:59::-;;572:2;515:59;;1764:170;1842:46;;:::i;:::-;1904:23;;;;;;;;;;;-1:-1:-1;;1904:23:64;;-1:-1:-1;1904:23:64;;;;;;;;;;;;;;;;;;;;;;;;1764:170;:::o;2005:172::-;2084:46;;:::i;:::-;2146:24;;;;;;;;;;2153:17;2146:24;;;;;;2153:17;;2146:24;;;;;;;;;;;;;;;;2005:172;:::o;2624:2556::-;3085:4;3071:19;;3065:26;2968:34;3187;3220:1;572:2;3187:34;:::i;:::-;3170:52;;;;;;;:::i;:::-;;;3128:26;:94;3111:297;;3287:26;3331:16;3348:34;3381:1;572:2;3348:34;:::i;:::-;3331:52;;;;;;;:::i;:::-;;;3254:143;;-1:-1:-1;;;3254:143:64;;;;;3907:25:66;;;;3948:18;;;3941:34;3880:18;;3254:143:64;;;;;;;3111:297;3447:19;;;;;;;;;;3503:7;;:304;;-1:-1:-1;;;3503:304:64;;3418:26;;-1:-1:-1;;;;;3503:7:64;;:28;;:304;;3545:15;;3447:19;;3606:30;;3650:18;;3682:15;;3711:11;;3736:26;;3776:21;;3503:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3477:330;;3822:18;3818:1356;;;3960:21;4018:22;4308:2;4294:17;;4443:115;;;3960:21;4576:516;4637:30;4634:1;4631:37;4576:516;;;4766:18;;4746:39;;4939:19;;4918:41;;4894:1;4877:19;;;;5054:20;;;;4838:2;4821:20;;;;4996:21;;;;4696:9;4576:516;;;4580:50;;;;;3818:1356;;;5143:20;;-1:-1:-1;;;5143:20:64;;;;;;;;;;;3818:1356;2958:2222;;;2624:2556;;;;;;;;:::o;1557:137::-;1608:7;1634:17;1652:34;1685:1;1634:17;1652:34;:::i;:::-;1634:53;;;;;;;:::i;:::-;;;1627:60;;1557:137;:::o;2253:365::-;2322:4;;2338:252;572:2;2358:1;:34;2338:252;;;2511:10;2434:17;2489:1;2452:34;2485:1;2434:17;2452:34;:::i;:::-;:38;;;;:::i;:::-;2434:57;;;;;;;:::i;:::-;;;:87;2413:167;;-1:-1:-1;2561:4:64;;2253:365;-1:-1:-1;;2253:365:64:o;2413:167::-;2394:3;;2338:252;;;-1:-1:-1;2606:5:64;;2253:365;-1:-1:-1;;2253:365:64:o;1361:135::-;1411:7;;1454:34;1487:1;572:2;1454:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:66:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:66;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:66;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:66;1893:18;;1880:32;;-1:-1:-1;1962:2:66;1947:18;;1934:32;-1:-1:-1;;1995:43:66;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:66;2113:18;;2100:32;;-1:-1:-1;2183:3:66;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:66;;2812:180;-1:-1:-1;2812:180:66:o;3371:225::-;3438:9;;;3459:11;;;3456:134;;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3456:134;3371:225;;;;:::o;3601:127::-;3662:10;3657:3;3653:20;3650:1;3643:31;3693:4;3690:1;3683:15;3717:4;3714:1;3707:15;4095:1142;4401:4;4430:3;4460:6;4449:9;4442:25;4486:2;4524:6;4519:2;4508:9;4504:18;4497:34;4567:6;4562:2;4551:9;4547:18;4540:34;4626:26;4622:31;4614:6;4610:44;4605:2;4594:9;4590:18;4583:72;4692:6;4686:3;4675:9;4671:19;4664:35;4736:2;4730:3;4719:9;4715:19;4708:31;4768:6;4762:13;4811:6;4806:2;4795:9;4791:18;4784:34;4836:1;4827:10;;4846:141;4860:6;4857:1;4854:13;4846:141;;;4956:14;;;4952:23;;4946:30;4921:17;;;4940:3;4917:27;4910:67;4875:10;;;;4846:141;;;5006:3;4996:13;;5058:1;5053:2;5044:6;5033:9;5029:22;5025:31;5018:42;5128:2;5121;5117:7;5112:2;5104:6;5100:15;5096:29;5085:9;5081:45;5077:54;5069:62;;;;;5168:6;5162:3;5151:9;5147:19;5140:35;5184:47;5226:3;5215:9;5211:19;5203:6;-1:-1:-1;;;;;4052:31:66;4040:44;;3986:104;5184:47;4095:1142;;;;;;;;;;;:::o;5242:277::-;5309:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5410:9;5404:16;5463:5;5456:13;5449:21;5442:5;5439:32;5429:60;;5485:1;5482;5475:12;5429:60;5508:5;5242:277;-1:-1:-1;;;5242:277:66:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaBridge.sol\":\"MinaBridge\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaBridge.sol\":{\"keccak256\":\"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311\",\"dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaBridge.sol":"MinaBridge"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaBridge.sol":{"keccak256":"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59","urls":["bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311","dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm"],"license":"UNLICENSED"}},"version":1},"id":64} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5060405161078c38038061078c833981016040819052602c91606a565b602080546001600160a01b0319166001600160a01b03841617905580600060546001601060a2565b60108110606157606160c8565b01555060de9050565b60008060408385031215607c57600080fd5b82516001600160a01b0381168114609257600080fd5b6020939093015192949293505050565b8181038181111560c257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61069f806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea264697066735822122072e3b8edd41bb99dfb03c65a3905740dec345a9bcf4fb45cdf63a948622b72e164736f6c63430008190033","sourceMap":"415:4822:38:-:0;;;1132:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1214:7;:57;;-1:-1:-1;;;;;;1214:57:38;-1:-1:-1;;;;;1214:57:38;;;;;1336:13;-1:-1:-1;1298:34:38;-1:-1:-1;627:2:38;1298:34;:::i;:::-;1281:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;415:4822:38;;-1:-1:-1;415:4822:38;14:359:39;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:39;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:39:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;415:4822:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea264697066735822122072e3b8edd41bb99dfb03c65a3905740dec345a9bcf4fb45cdf63a948622b72e164736f6c63430008190033","sourceMap":"415:4822:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2060:172;;;:::i;2679:2556::-;;;;;;:::i;:::-;;:::i;:::-;;1612:137;;;:::i;:::-;;;2776:25:39;;;2764:2;2749:18;1612:137:38;2630:177:39;2308:365:38;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:39;;3155:22;3137:41;;3125:2;3110:18;2308:365:38;2997:187:39;1416:135:38;;;:::i;570:59::-;;627:2;570:59;;1819:170;1897:46;;:::i;:::-;1959:23;;;;;;;;;;;-1:-1:-1;;1959:23:38;;-1:-1:-1;1959:23:38;;;;;;;;;;;;;;;;;;;;;;;;1819:170;:::o;2060:172::-;2139:46;;:::i;:::-;2201:24;;;;;;;;;;2208:17;2201:24;;;;;;2208:17;;2201:24;;;;;;;;;;;;;;;;2060:172;:::o;2679:2556::-;3140:4;3126:19;;3120:26;3023:34;3242;3275:1;627:2;3242:34;:::i;:::-;3225:52;;;;;;;:::i;:::-;;;3183:26;:94;3166:297;;3342:26;3386:16;3403:34;3436:1;627:2;3403:34;:::i;:::-;3386:52;;;;;;;:::i;:::-;;;3309:143;;-1:-1:-1;;;3309:143:38;;;;;3907:25:39;;;;3948:18;;;3941:34;3880:18;;3309:143:38;;;;;;;3166:297;3502:19;;;;;;;;;;3558:7;;:304;;-1:-1:-1;;;3558:304:38;;3473:26;;-1:-1:-1;;;;;3558:7:38;;:28;;:304;;3600:15;;3502:19;;3661:30;;3705:18;;3737:15;;3766:11;;3791:26;;3831:21;;3558:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3532:330;;3877:18;3873:1356;;;4015:21;4073:22;4363:2;4349:17;;4498:115;;;4015:21;4631:516;4692:30;4689:1;4686:37;4631:516;;;4821:18;;4801:39;;4994:19;;4973:41;;4949:1;4932:19;;;;5109:20;;;;4893:2;4876:20;;;;5051:21;;;;4751:9;4631:516;;;4635:50;;;;;3873:1356;;;5198:20;;-1:-1:-1;;;5198:20:38;;;;;;;;;;;3873:1356;3013:2222;;;2679:2556;;;;;;;;:::o;1612:137::-;1663:7;1689:17;1707:34;1740:1;1689:17;1707:34;:::i;:::-;1689:53;;;;;;;:::i;:::-;;;1682:60;;1612:137;:::o;2308:365::-;2377:4;;2393:252;627:2;2413:1;:34;2393:252;;;2566:10;2489:17;2544:1;2507:34;2540:1;2489:17;2507:34;:::i;:::-;:38;;;;:::i;:::-;2489:57;;;;;;;:::i;:::-;;;:87;2468:167;;-1:-1:-1;2616:4:38;;2308:365;-1:-1:-1;;2308:365:38:o;2468:167::-;2449:3;;2393:252;;;-1:-1:-1;2661:5:38;;2308:365;-1:-1:-1;;2308:365:38:o;1416:135::-;1466:7;;1509:34;1542:1;627:2;1509:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:39:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:39;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:39;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:39;1893:18;;1880:32;;-1:-1:-1;1962:2:39;1947:18;;1934:32;-1:-1:-1;;1995:43:39;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:39;2113:18;;2100:32;;-1:-1:-1;2183:3:39;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:39;;2812:180;-1:-1:-1;2812:180:39:o;3371:225::-;3438:9;;;3459:11;;;3456:134;;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3456:134;3371:225;;;;:::o;3601:127::-;3662:10;3657:3;3653:20;3650:1;3643:31;3693:4;3690:1;3683:15;3717:4;3714:1;3707:15;4095:1142;4401:4;4430:3;4460:6;4449:9;4442:25;4486:2;4524:6;4519:2;4508:9;4504:18;4497:34;4567:6;4562:2;4551:9;4547:18;4540:34;4626:26;4622:31;4614:6;4610:44;4605:2;4594:9;4590:18;4583:72;4692:6;4686:3;4675:9;4671:19;4664:35;4736:2;4730:3;4719:9;4715:19;4708:31;4768:6;4762:13;4811:6;4806:2;4795:9;4791:18;4784:34;4836:1;4827:10;;4846:141;4860:6;4857:1;4854:13;4846:141;;;4956:14;;;4952:23;;4946:30;4921:17;;;4940:3;4917:27;4910:67;4875:10;;;;4846:141;;;5006:3;4996:13;;5058:1;5053:2;5044:6;5033:9;5029:22;5025:31;5018:42;5128:2;5121;5117:7;5112:2;5104:6;5100:15;5096:29;5085:9;5081:45;5077:54;5069:62;;;;;5168:6;5162:3;5151:9;5147:19;5140:35;5184:47;5226:3;5215:9;5211:19;5203:6;-1:-1:-1;;;;;4052:31:39;4040:44;;3986:104;5184:47;4095:1142;;;;;;;;;;;:::o;5242:277::-;5309:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5410:9;5404:16;5463:5;5456:13;5449:21;5442:5;5439:32;5429:60;;5485:1;5482;5475:12;5429:60;5508:5;5242:277;-1:-1:-1;;;5242:277:39:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd\",\"dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd","urls":["bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd","dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file diff --git a/core/src/eth.rs b/core/src/eth.rs index 57b0401e..c6a51bdb 100644 --- a/core/src/eth.rs +++ b/core/src/eth.rs @@ -22,23 +22,26 @@ use crate::{ }, }; -abigen!(MinaBridgeEthereumContract, "abi/MinaBridge.json"); +abigen!( + MinaStateSettlementEthereumContract, + "abi/MinaStateSettlement.json" +); abigen!( MinaAccountValidationEthereumContract, "abi/MinaAccountValidation.json" ); -type MinaBridgeEthereum = - MinaBridgeEthereumContract, Wallet>>; +type MinaStateSettlementEthereum = + MinaStateSettlementEthereumContract, Wallet>>; -type MinaBridgeEthereumCallOnly = MinaBridgeEthereumContract>; +type MinaStateSettlementEthereumCallOnly = MinaStateSettlementEthereumContract>; type MinaAccountValidationEthereumCallOnly = MinaAccountValidationEthereumContract>; sol!( #[allow(clippy::too_many_arguments)] #[sol(rpc)] - MinaBridge, - "abi/MinaBridge.json" + MinaStateSettlement, + "abi/MinaStateSettlement.json" ); sol!( @@ -52,7 +55,7 @@ sol!( #[derive(Serialize, Deserialize)] pub struct SolStateHash(#[serde_as(as = "SolSerialize")] pub StateHash); -pub struct MinaBridgeConstructorArgs { +pub struct MinaStateSettlementConstructorArgs { aligned_service_addr: alloy::primitives::Address, root_state_hash: alloy::primitives::FixedBytes<32>, } @@ -61,7 +64,7 @@ pub struct MinaAccountValidationConstructorArgs { aligned_service_addr: alloy::primitives::Address, } -impl MinaBridgeConstructorArgs { +impl MinaStateSettlementConstructorArgs { pub fn new(aligned_service_addr: &str, root_state_hash: Vec) -> Result { let aligned_service_addr = alloy::primitives::Address::parse_checksummed(aligned_service_addr, None) @@ -334,7 +337,7 @@ pub async fn validate_account( pub async fn deploy_mina_bridge_contract( eth_rpc_url: &str, - constructor_args: MinaBridgeConstructorArgs, + constructor_args: MinaStateSettlementConstructorArgs, wallet: &EthereumWallet, ) -> Result { let provider = ProviderBuilder::new() @@ -342,11 +345,11 @@ pub async fn deploy_mina_bridge_contract( .wallet(wallet) .on_http(reqwest::Url::parse(eth_rpc_url).map_err(|err| err.to_string())?); - let MinaBridgeConstructorArgs { + let MinaStateSettlementConstructorArgs { aligned_service_addr, root_state_hash, } = constructor_args; - let contract = MinaBridge::deploy(&provider, aligned_service_addr, root_state_hash) + let contract = MinaStateSettlement::deploy(&provider, aligned_service_addr, root_state_hash) .await .map_err(|err| err.to_string())?; let address = contract.address(); @@ -390,7 +393,7 @@ fn mina_bridge_contract( contract_address: Address, chain: &Chain, wallet: Wallet, -) -> Result { +) -> Result { let eth_rpc_provider = Provider::::try_from(eth_rpc_url).map_err(|err| err.to_string())?; let chain_id = match chain { @@ -401,17 +404,20 @@ fn mina_bridge_contract( let signer = SignerMiddleware::new(eth_rpc_provider, wallet.with_chain_id(chain_id)); let client = Arc::new(signer); debug!("contract address: {contract_address}"); - Ok(MinaBridgeEthereum::new(contract_address, client)) + Ok(MinaStateSettlementEthereum::new(contract_address, client)) } fn mina_bridge_contract_call_only( eth_rpc_url: &str, contract_address: Address, -) -> Result { +) -> Result { let eth_rpc_provider = Provider::::try_from(eth_rpc_url).map_err(|err| err.to_string())?; let client = Arc::new(eth_rpc_provider); - Ok(MinaBridgeEthereumCallOnly::new(contract_address, client)) + Ok(MinaStateSettlementEthereumCallOnly::new( + contract_address, + client, + )) } fn mina_account_validation_contract_call_only( diff --git a/example/app/abi/SudokuValidity.json b/example/app/abi/SudokuValidity.json index 83edf705..4110fc9b 100644 --- a/example/app/abi/SudokuValidity.json +++ b/example/app/abi/SudokuValidity.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x60806040526000600255348015601457600080fd5b50604051610e6c380380610e6c833981016040819052603191607c565b600080546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560aa565b80516001600160a01b0381168114607757600080fd5b919050565b60008060408385031215608e57600080fd5b6095836061565b915060a1602084016061565b90509250929050565b610db3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea2646970667358221220b060fb5b363bdc7e5967a67820ab54a7d982dea6fde99462b325ddfbbeb8fbe364736f6c63430008190033","sourceMap":"177:2974:40:-:0;;;960:1;923:38;;968:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1052:15;:50;;-1:-1:-1;;;;;1052:50:40;;;-1:-1:-1;;;;;;1052:50:40;;;;;;;;1112:65;;;;;;;;;;;177:2974;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;177:2974:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea2646970667358221220b060fb5b363bdc7e5967a67820ab54a7d982dea6fde99462b325ddfbbeb8fbe364736f6c63430008190033","sourceMap":"177:2974:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1439:1710;;;;;;:::i;:::-;;:::i;:::-;;432:139;;494:77;432:139;;;;;4268:25:41;;;4256:2;4241:18;432:139:40;;;;;;;1190:120;1277:26;;1190:120;;1439:1710;1790:18;1819:13;1829:2;1790:18;1819:8;;:13;:::i;:::-;1811:22;;;:::i;:::-;1848:15;;:44;;-1:-1:-1;;;1848:44:40;;;;;4268:25:41;;;1790:43:40;;-1:-1:-1;;;;;;1848:15:40;;:32;;4241:18:41;;1848:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1843:108;;1915:25;;-1:-1:-1;;;1915:25:40;;;;;4268::41;;;4241:18;;1915:25:40;;;;;;;1843:108;1961:45;2009:348;;;;;;;;2073:15;2009:348;;;;2106:30;2009:348;;;;2154:18;2009:348;;;;;;;2190:15;2009:348;;;;2223:11;2009:348;;;;2252:26;2009:348;;;;2296:8;;2009:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2009:348:40;;;-1:-1:-1;;;;;;2009:348:40;;;;;;;;;;;2373:17;;:39;;-1:-1:-1;;;2373:39:40;;1961:396;;-1:-1:-1;2373:17:40;;:33;;:39;;1961:396;;2373:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2368:99;;2435:21;;-1:-1:-1;;;2435:21:40;;;;;;;;;;;2368:99;2477:29;;2509:17;:8;2518:6;2509:8;;:17;:::i;:::-;2477:49;;-1:-1:-1;2477:49:40;-1:-1:-1;2536:44:40;2583:93;;;;2477:49;2583:93;:::i;:::-;2988:13;;;;:22;:25;;;:13;;-1:-1:-1;2988:30:40;2984:159;;3063:15;3034:26;:44;2984:159;;;3116:16;;-1:-1:-1;;;3116:16:40;;;;;;;;;;;2984:159;1780:1369;;;;;1439:1710;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11992:2;11985:22;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]},\"lib/mina_bridge/contract/src/MinaBridge.sol\":{\"keccak256\":\"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311\",\"dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0x5a15f1d022fa3c43b87904a029d632b5cd761df18dc156be322b2c5f848ba591\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a561f492e68aa195402d59fb51d6177ccbed03a85dc2575ac3eda170f868950a\",\"dweb:/ipfs/QmSEfGVpefbi2b6tH6vnxya7g9m6LEbHrpgHwvQRkgBf8v\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaBridge.sol":{"keccak256":"0x99625d3e717beb61a395bf1ec8a21966a3c2b85fb8db9989e842116623c60a59","urls":["bzz-raw://52ee50fd8f4d4feccc19e0e260217c51e5790c6c74dd401ab6718e823ce22311","dweb:/ipfs/QmQH8GC4CdBPxeG5Dpv9c1f1tn82Dut6AzSxvSqXSL4kNm"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0x5a15f1d022fa3c43b87904a029d632b5cd761df18dc156be322b2c5f848ba591","urls":["bzz-raw://a561f492e68aa195402d59fb51d6177ccbed03a85dc2575ac3eda170f868950a","dweb:/ipfs/QmSEfGVpefbi2b6tH6vnxya7g9m6LEbHrpgHwvQRkgBf8v"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x60806040526000600255348015601457600080fd5b50604051610e6c380380610e6c833981016040819052603191607c565b600080546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560aa565b80516001600160a01b0381168114607757600080fd5b919050565b60008060408385031215608e57600080fd5b6095836061565b915060a1602084016061565b90509250929050565b610db3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea264697066735822122033c018a706b250ce77799ea25a95f87fd35571e5a4639f05451f725ad3a01fb864736f6c63430008190033","sourceMap":"186:2992:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2992;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2992:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea264697066735822122033c018a706b250ce77799ea25a95f87fd35571e5a4639f05451f725ad3a01fb864736f6c63430008190033","sourceMap":"186:2992:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1710;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1710;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:348;;;;;;;;2100:15;2036:348;;;;2133:30;2036:348;;;;2181:18;2036:348;;;;;;;2217:15;2036:348;;;;2250:11;2036:348;;;;2279:26;2036:348;;;;2323:8;;2036:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:348:40;;;-1:-1:-1;;;;;;2036:348:40;;;;;;;;;;;2400:17;;:39;;-1:-1:-1;;;2400:39:40;;1988:396;;-1:-1:-1;2400:17:40;;:33;;:39;;1988:396;;2400:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2395:99;;2462:21;;-1:-1:-1;;;2462:21:40;;;;;;;;;;;2395:99;2504:29;;2536:17;:8;2545:6;2536:8;;:17;:::i;:::-;2504:49;;-1:-1:-1;2504:49:40;-1:-1:-1;2563:44:40;2610:93;;;;2504:49;2610:93;:::i;:::-;3015:13;;;;:22;:25;;;:13;;-1:-1:-1;3015:30:40;3011:159;;3090:15;3061:26;:44;3011:159;;;3143:16;;-1:-1:-1;;;3143:16:40;;;;;;;;;;;3011:159;1807:1369;;;;;1466:1710;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11992:2;11985:22;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd\",\"dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xd3474b3062f2ce59256d8fdbd71a3bd29a07912dced42ed905d33074b2d248ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://afcc7a04762ad13cd9c7542e8460ae24a72ae1370b9090673ddbb9f99657a55c\",\"dweb:/ipfs/Qma2NmLuTvw7p2zQVnTU1ZYfbeqQNx5uJ9t3GdwRYiQ9J3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd","urls":["bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd","dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xd3474b3062f2ce59256d8fdbd71a3bd29a07912dced42ed905d33074b2d248ad","urls":["bzz-raw://afcc7a04762ad13cd9c7542e8460ae24a72ae1370b9090673ddbb9f99657a55c","dweb:/ipfs/Qma2NmLuTvw7p2zQVnTU1ZYfbeqQNx5uJ9t3GdwRYiQ9J3"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file diff --git a/example/eth_contract/src/SudokuValidity.sol b/example/eth_contract/src/SudokuValidity.sol index 9e2b8d98..bfd5f2a2 100644 --- a/example/eth_contract/src/SudokuValidity.sol +++ b/example/eth_contract/src/SudokuValidity.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.12; -import "mina_bridge/contract/src/MinaBridge.sol"; +import "mina_bridge/contract/src/MinaStateSettlement.sol"; import "mina_bridge/contract/src/MinaAccountValidation.sol"; contract SudokuValidity { @@ -15,7 +15,7 @@ contract SudokuValidity { 19387792026269240922986233885372582803610254872042773421723960761233199555267; /// @notice Mina bridge contract that validates and stores Mina states. - MinaBridge stateSettlement; + MinaStateSettlement stateSettlement; /// @notice Mina bridge contract that validates accounts MinaAccountValidation accountValidation; @@ -24,7 +24,7 @@ contract SudokuValidity { uint256 latestSolutionValidationAt = 0; constructor(address _stateSettlementAddr, address _accountValidationAddr) { - stateSettlement = MinaBridge(_stateSettlementAddr); + stateSettlement = MinaStateSettlement(_stateSettlementAddr); accountValidation = MinaAccountValidation(_accountValidationAddr); } From b9ca11dea6ffc05c15da34ec93c77c116da24668 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Wed, 25 Sep 2024 15:37:40 -0300 Subject: [PATCH 2/6] Check Proving system ID (#342) * [WIP] Update Aligned to 0.7.0 We must wait until Aligned uploads the release for 0.7.0. Once it's uploaded we need to add a batcher payment service arg to the `updateChain` call in the Aligned polling service. * Update Aligned to 0.7.0 * Update Aligned branch * Update Aligned and Bridge contracts * Update Aligned Foundry submodule * Add Proving system ID commitment check * Update core lockfile * Fix ABIs * Remove unused Solidity error * Update ABIs --- contract/src/MinaAccountValidation.sol | 42 ++++++++++-------- contract/src/MinaStateSettlement.sol | 48 +++++++-------------- contract_deployer/src/main.rs | 6 +-- core/abi/MinaAccountValidation.json | 2 +- core/abi/MinaStateSettlement.json | 2 +- core/src/aligned.rs | 3 +- example/app/abi/SudokuValidity.json | 2 +- example/eth_contract/src/SudokuValidity.sol | 26 +++++------ 8 files changed, 60 insertions(+), 71 deletions(-) diff --git a/contract/src/MinaAccountValidation.sol b/contract/src/MinaAccountValidation.sol index db0f0e41..b941e041 100644 --- a/contract/src/MinaAccountValidation.sol +++ b/contract/src/MinaAccountValidation.sol @@ -3,7 +3,12 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; +error MinaAccountProvingSystemIdIsNotValid(); // c1872967 + contract MinaAccountValidation { + /// @notice The commitment to Mina Account proving system ID. + bytes32 constant PROVING_SYSTEM_ID_COMM = 0xd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69; + struct AlignedArgs { bytes32 proofCommitment; bytes32 provingSystemAuxDataCommitment; @@ -22,27 +27,30 @@ contract MinaAccountValidation { aligned = AlignedLayerServiceManager(_alignedServiceAddr); } - function validateAccount( - AlignedArgs calldata args - ) external view returns (bool) { + function validateAccount(AlignedArgs calldata args) external view returns (bool) { + if (args.provingSystemAuxDataCommitment != PROVING_SYSTEM_ID_COMM) { + revert MinaAccountProvingSystemIdIsNotValid(); + } + bytes32 pubInputCommitment = keccak256(args.pubInput); - return - aligned.verifyBatchInclusion( - args.proofCommitment, - pubInputCommitment, - args.provingSystemAuxDataCommitment, - args.proofGeneratorAddr, - args.batchMerkleRoot, - args.merkleProof, - args.verificationDataBatchIndex, - args.batcherPaymentService - ); + return aligned.verifyBatchInclusion( + args.proofCommitment, + pubInputCommitment, + args.provingSystemAuxDataCommitment, + args.proofGeneratorAddr, + args.batchMerkleRoot, + args.merkleProof, + args.verificationDataBatchIndex, + args.batcherPaymentService + ); } - function validateAccountAndReturn( - AlignedArgs calldata args - ) external view returns (Account memory) { + function validateAccountAndReturn(AlignedArgs calldata args) external view returns (Account memory) { + if (args.provingSystemAuxDataCommitment != PROVING_SYSTEM_ID_COMM) { + revert MinaAccountProvingSystemIdIsNotValid(); + } + bytes32 pubInputCommitment = keccak256(args.pubInput); bool isAccountVerified = aligned.verifyBatchInclusion( diff --git a/contract/src/MinaStateSettlement.sol b/contract/src/MinaStateSettlement.sol index 9f9ef27e..10a0d9e7 100644 --- a/contract/src/MinaStateSettlement.sol +++ b/contract/src/MinaStateSettlement.sol @@ -3,12 +3,16 @@ pragma solidity ^0.8.12; import "aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol"; +error MinaProvingSystemIdIsNotValid(bytes32); // f92aa66a error NewStateIsNotValid(); // 114602f0 error TipStateIsWrong(bytes32 pubInputTipStateHash, bytes32 tipStatehash); // bbd80128 error AccountIsNotValid(bytes32 accountIdHash); /// @title Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain. contract MinaStateSettlement { + /// @notice The commitment to Mina proving system ID. + bytes32 constant PROVING_SYSTEM_ID_COMM = 0xee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc; + /// @notice The length of the verified state chain (also called the bridge's transition /// frontier) to store. uint256 public constant BRIDGE_TRANSITION_FRONTIER_LEN = 16; @@ -39,30 +43,19 @@ contract MinaStateSettlement { } /// @notice Returns the latest verified chain state hashes. - function getChainStateHashes() - external - view - returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) - { + function getChainStateHashes() external view returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) { return chainStateHashes; } /// @notice Returns the latest verified chain ledger hashes. - function getChainLedgerHashes() - external - view - returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) - { + function getChainLedgerHashes() external view returns (bytes32[BRIDGE_TRANSITION_FRONTIER_LEN] memory) { return chainLedgerHashes; } /// @notice Returns true if this snarked ledger hash was bridged. function isLedgerVerified(bytes32 ledgerHash) external view returns (bool) { for (uint256 i = 0; i < BRIDGE_TRANSITION_FRONTIER_LEN; i++) { - if ( - chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1 - i] == - ledgerHash - ) { + if (chainLedgerHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1 - i] == ledgerHash) { return true; } } @@ -79,19 +72,17 @@ contract MinaStateSettlement { bytes memory pubInput, address batcherPaymentService ) external { + if (provingSystemAuxDataCommitment != PROVING_SYSTEM_ID_COMM) { + revert MinaProvingSystemIdIsNotValid(provingSystemAuxDataCommitment); + } + bytes32 pubInputBridgeTipStateHash; assembly { pubInputBridgeTipStateHash := mload(add(pubInput, 0x20)) } - if ( - pubInputBridgeTipStateHash != - chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] - ) { - revert TipStateIsWrong( - pubInputBridgeTipStateHash, - chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1] - ); + if (pubInputBridgeTipStateHash != chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]) { + revert TipStateIsWrong(pubInputBridgeTipStateHash, chainStateHashes[BRIDGE_TRANSITION_FRONTIER_LEN - 1]); } bytes32 pubInputCommitment = keccak256(pubInput); @@ -118,16 +109,9 @@ contract MinaStateSettlement { // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are state hashes. let addr_states := add(pubInput, 64) // the next BRIDGE_TRANSITION_FRONTIER_LEN sets of 32 bytes are ledger hashes. - let addr_ledgers := add( - addr_states, - mul(32, BRIDGE_TRANSITION_FRONTIER_LEN) - ) - - for { - let i := 0 - } lt(i, BRIDGE_TRANSITION_FRONTIER_LEN) { - i := add(i, 1) - } { + let addr_ledgers := add(addr_states, mul(32, BRIDGE_TRANSITION_FRONTIER_LEN)) + + for { let i := 0 } lt(i, BRIDGE_TRANSITION_FRONTIER_LEN) { i := add(i, 1) } { sstore(slot_states, mload(addr_states)) addr_states := add(addr_states, 32) slot_states := add(slot_states, 1) diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs index 1b92c02a..50c95034 100644 --- a/contract_deployer/src/main.rs +++ b/contract_deployer/src/main.rs @@ -3,7 +3,7 @@ use log::{debug, error, info}; use mina_bridge_core::{ eth::{ deploy_mina_account_validation_contract, deploy_mina_bridge_contract, - MinaAccountValidationConstructorArgs, MinaBridgeConstructorArgs, SolStateHash, + MinaAccountValidationConstructorArgs, MinaStateSettlementConstructorArgs, SolStateHash, }, mina::query_root, utils::{ @@ -53,8 +53,8 @@ async fn main() { _ => todo!(), }; - let bridge_constructor_args = MinaBridgeConstructorArgs::new(aligned_sm_addr, root_hash) - .unwrap_or_else(|err| { + let bridge_constructor_args = + MinaStateSettlementConstructorArgs::new(aligned_sm_addr, root_hash).unwrap_or_else(|err| { error!("Failed to make constructor args for bridge contract call: {err}"); process::exit(1); }); diff --git a/core/abi/MinaAccountValidation.json b/core/abi/MinaAccountValidation.json index 8369e6e2..6e98cf59 100644 --- a/core/abi/MinaAccountValidation.json +++ b/core/abi/MinaAccountValidation.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validateAccountAndReturn","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b506040516114f93803806114f9833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b61146c8061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e61004936600461056b565b610083565b60405190151581526020015b60405180910390f35b61007661007136600461056b565b610171565b60405161005a919061094b565b60008061009360c0840184610a7d565b6040516100a1929190610aca565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906100dd9060608a01908a01610ada565b60608901356100ef60808b018b610a7d565b60a08c01356101056101008e0160e08f01610b09565b6040518a63ffffffff1660e01b815260040161012999989796959493929190610b32565b602060405180830381865afa158015610146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016a9190610bc0565b9392505050565b61017961029d565b600061018860c0840184610a7d565b604051610196929190610aca565b604080519182900390912060008054919350916001600160a01b03909116906306045a919086359085906020890135906101d69060608b01908b01610ada565b60608a01356101e860808c018c610a7d565b8c60a001358d60e00160208101906102009190610b09565b6040518a63ffffffff1660e01b815260040161022499989796959493929190610b32565b602060405180830381865afa158015610241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102659190610bc0565b905080156100365761027a60c0850185610a7d565b610288916028908290610bdd565b8101906102959190611316565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016103a0604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016103ad6103b2565b905290565b6040518060e001604052806103c56103ff565b81526020016103d261041e565b8152600060208201526040016103e661043d565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016103ad61045b565b6040518060a001604052806005906020820280368337509192915050565b60405180610100016040528061046f610506565b815260200161047c61053f565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816105155790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e60208201610515565b60006020828403121561057d57600080fd5b81356001600160401b0381111561059357600080fd5b8201610100818503121561016a57600080fd5b6000815180845260005b818110156105cc576020818501810151868301820152016105b0565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b60058110610612576106126105ec565b9052565b610621828251610602565b60208101516106336020840182610602565b5060408101516106466040840182610602565b5060608101516106596060840182610602565b50608081015161066c6080840182610602565b5060a081015161067f60a0840182610602565b5060c081015161069260c0840182610602565b5060e08101516106aa60e084018263ffffffff169052565b50610100808201516106be82850182610602565b5050610120808201516106d382850182610602565b5050610140808201516106e882850182610602565b5050610160808201516106fd82850182610602565b50506101808082015161071282850182610602565b50506101a08082015161072782850182610602565b50505050565b60038110610612576106126105ec565b8060005b600f8110156107275761075f84835180518252602090810151910152565b6040939093019260209190910190600101610741565b61078082825161072d565b602080820151610793602085018261072d565b50604082810151805160008684015b60078210156107d2576107c081845180518252602090810151910152565b918501916001919091019084016107a2565b505050602081015192506107ea61020086018461073d565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e090910151805161070087015290810151610720860152915061087c9050565b505050565b8060005b6005811015610727578151845260209384019390910190600101610885565b80516000906109609084835b60088110156108cf5782518252602092830192909101906001016108b0565b50505060208301516108e5610100860182610775565b50604083015163ffffffff16610840850152606083015161090a610860860182610881565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610942828601826105a6565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526109896103e08501836105a6565b915060608501516109a560a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006109e281870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610a57610200880184610616565b870151868503601f1901848801529150610a73905083826108a4565b9695505050505050565b6000808335601e19843603018112610a9457600080fd5b8301803591506001600160401b03821115610aae57600080fd5b602001915036819003821315610ac357600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610aec57600080fd5b81356bffffffffffffffffffffffff198116811461016a57600080fd5b600060208284031215610b1b57600080fd5b81356001600160a01b038116811461016a57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610bbd57600080fd5b50565b600060208284031215610bd257600080fd5b815161016a81610baf565b60008085851115610bed57600080fd5b83861115610bfa57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610c3f57610c3f610c07565b60405290565b6040516101c081016001600160401b0381118282101715610c3f57610c3f610c07565b604051606081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161010081016001600160401b0381118282101715610c3f57610c3f610c07565b60405160e081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161016081016001600160401b0381118282101715610c3f57610c3f610c07565b8035610cfd81610baf565b919050565b600060408284031215610d1457600080fd5b610d1c610c1d565b9050813581526020820135610d3081610baf565b602082015292915050565b600082601f830112610d4c57600080fd5b81356001600160401b0380821115610d6657610d66610c07565b604051601f8301601f19908116603f01168101908282118183101715610d8e57610d8e610c07565b81604052838152866020858801011115610da757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610cfd57600080fd5b803563ffffffff81168114610cfd57600080fd5b600060a08284031215610e0457600080fd5b60405160a081018181106001600160401b0382111715610e2657610e26610c07565b604052905080610e3583610dc7565b8152610e4360208401610dde565b6020820152610e5460408401610dc7565b6040820152610e6560608401610dde565b6060820152610e7660808401610dc7565b60808201525092915050565b803560058110610cfd57600080fd5b60006101c08284031215610ea457600080fd5b610eac610c45565b9050610eb782610e82565b8152610ec560208301610e82565b6020820152610ed660408301610e82565b6040820152610ee760608301610e82565b6060820152610ef860808301610e82565b6080820152610f0960a08301610e82565b60a0820152610f1a60c08301610e82565b60c0820152610f2b60e08301610dde565b60e0820152610100610f3e818401610e82565b90820152610120610f50838201610e82565b90820152610140610f62838201610e82565b90820152610160610f74838201610e82565b90820152610180610f86838201610e82565b908201526101a0610f98838201610e82565b9082015292915050565b600082601f830112610fb357600080fd5b610fbb610c8a565b80610100840185811115610fce57600080fd5b845b81811015610fe8578035845260209384019301610fd0565b509095945050505050565b803560038110610cfd57600080fd5b60006040828403121561101457600080fd5b61101c610c1d565b9050813581526020820135602082015292915050565b600082601f83011261104357600080fd5b61104b610cad565b806101c084018581111561105e57600080fd5b845b81811015610fe8576110728782611002565b8452602090930192604001611060565b600082601f83011261109357600080fd5b604080516101e081018181106001600160401b03821117156110b7576110b7610c07565b604052806103c08501868111156110cd57600080fd5b855b818110156110f0576110e18882611002565b835260209092019184016110cf565b50919695505050505050565b600081830361074081121561111057600080fd5b611118610c68565b915061112383610ff3565b825261113160208401610ff3565b602083015261070080603f198301121561114a57600080fd5b611152610c8a565b91506111618560408601611032565b8252611171856102008601611082565b6020830152611184856105c08601611002565b6040830152611197856106008601611002565b60608301526111aa856106408601611002565b60808301526111bd856106808601611002565b60a08301526111d0856106c08601611002565b60c08301526111e185828601611002565b60e083015250604082015292915050565b600082601f83011261120357600080fd5b60405160a081018181106001600160401b038211171561122557611225610c07565b6040528060a084018581111561123a57600080fd5b845b8181101561125457803583526020928301920161123c565b509195945050505050565b6000610960828403121561127257600080fd5b61127a610cad565b90506112868383610fa2565b81526112968361010084016110fc565b60208201526112a86108408301610dde565b60408201526112bb8361086084016111f2565b60608201526112cd6109008301610dde565b60808201526112df6109208301610cf2565b60a08201526109408201356001600160401b038111156112fe57600080fd5b61130a84828501610d3b565b60c08301525092915050565b60006020828403121561132857600080fd5b81356001600160401b038082111561133f57600080fd5b908301906103c0828603121561135457600080fd5b61135c610ccf565b6113668684610d02565b81526040830135602082015260608301358281111561138457600080fd5b61139087828601610d3b565b6040830152506113a260808401610dc7565b60608201526113b360a08401610dde565b608082015260c083013560a08201526113cf8660e08501610d02565b60c08201526101208084013560e08301526101406113ef88828701610df2565b610100840152611403886101e08701610e91565b828401526103a085013591508382111561141c57600080fd5b6114288883870161125f565b90830152509594505050505056fea264697066735822122012c64260048c4a98dbb1d0cd693dd6b9dbb2349cdb0bea92e6d3a633caf45b9c64736f6c63430008190033","sourceMap":"140:3952:63:-:0;;;604:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;663:7;:57;;-1:-1:-1;;;;;;663:57:63;-1:-1:-1;;;;;663:57:63;;;;;;;;;;140:3952;;14:298:66;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:66;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:66:o;:::-;140:3952:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e61004936600461056b565b610083565b60405190151581526020015b60405180910390f35b61007661007136600461056b565b610171565b60405161005a919061094b565b60008061009360c0840184610a7d565b6040516100a1929190610aca565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906100dd9060608a01908a01610ada565b60608901356100ef60808b018b610a7d565b60a08c01356101056101008e0160e08f01610b09565b6040518a63ffffffff1660e01b815260040161012999989796959493929190610b32565b602060405180830381865afa158015610146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016a9190610bc0565b9392505050565b61017961029d565b600061018860c0840184610a7d565b604051610196929190610aca565b604080519182900390912060008054919350916001600160a01b03909116906306045a919086359085906020890135906101d69060608b01908b01610ada565b60608a01356101e860808c018c610a7d565b8c60a001358d60e00160208101906102009190610b09565b6040518a63ffffffff1660e01b815260040161022499989796959493929190610b32565b602060405180830381865afa158015610241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102659190610bc0565b905080156100365761027a60c0850185610a7d565b610288916028908290610bdd565b8101906102959190611316565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e086018590528651908101875284815292830184905294820183905281018290529283015261010081019190915261012081016103a0604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b81526020016103ad6103b2565b905290565b6040518060e001604052806103c56103ff565b81526020016103d261041e565b8152600060208201526040016103e661043d565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016103ad61045b565b6040518060a001604052806005906020820280368337509192915050565b60405180610100016040528061046f610506565b815260200161047c61053f565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b60408051808201909152600080825260208201528152602001906001900390816105155790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e60208201610515565b60006020828403121561057d57600080fd5b81356001600160401b0381111561059357600080fd5b8201610100818503121561016a57600080fd5b6000815180845260005b818110156105cc576020818501810151868301820152016105b0565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b60058110610612576106126105ec565b9052565b610621828251610602565b60208101516106336020840182610602565b5060408101516106466040840182610602565b5060608101516106596060840182610602565b50608081015161066c6080840182610602565b5060a081015161067f60a0840182610602565b5060c081015161069260c0840182610602565b5060e08101516106aa60e084018263ffffffff169052565b50610100808201516106be82850182610602565b5050610120808201516106d382850182610602565b5050610140808201516106e882850182610602565b5050610160808201516106fd82850182610602565b50506101808082015161071282850182610602565b50506101a08082015161072782850182610602565b50505050565b60038110610612576106126105ec565b8060005b600f8110156107275761075f84835180518252602090810151910152565b6040939093019260209190910190600101610741565b61078082825161072d565b602080820151610793602085018261072d565b50604082810151805160008684015b60078210156107d2576107c081845180518252602090810151910152565b918501916001919091019084016107a2565b505050602081015192506107ea61020086018461073d565b604081015180516105c08701526020908101516105e0870152606082015180516106008801528101516106208701526080820151805161064088015281015161066087015260a082015180516106808801528101516106a087015260c082015180516106c08801528101516106e087015260e090910151805161070087015290810151610720860152915061087c9050565b505050565b8060005b6005811015610727578151845260209384019390910190600101610885565b80516000906109609084835b60088110156108cf5782518252602092830192909101906001016108b0565b50505060208301516108e5610100860182610775565b50604083015163ffffffff16610840850152606083015161090a610860860182610881565b50608083015163ffffffff1661090085015260a0830151151561092085015260c08301516109408501829052610942828601826105a6565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c08060808501526109896103e08501836105a6565b915060608501516109a560a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c08501516101006109e281870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610a57610200880184610616565b870151868503601f1901848801529150610a73905083826108a4565b9695505050505050565b6000808335601e19843603018112610a9457600080fd5b8301803591506001600160401b03821115610aae57600080fd5b602001915036819003821315610ac357600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610aec57600080fd5b81356bffffffffffffffffffffffff198116811461016a57600080fd5b600060208284031215610b1b57600080fd5b81356001600160a01b038116811461016a57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610bbd57600080fd5b50565b600060208284031215610bd257600080fd5b815161016a81610baf565b60008085851115610bed57600080fd5b83861115610bfa57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610c3f57610c3f610c07565b60405290565b6040516101c081016001600160401b0381118282101715610c3f57610c3f610c07565b604051606081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161010081016001600160401b0381118282101715610c3f57610c3f610c07565b60405160e081016001600160401b0381118282101715610c3f57610c3f610c07565b60405161016081016001600160401b0381118282101715610c3f57610c3f610c07565b8035610cfd81610baf565b919050565b600060408284031215610d1457600080fd5b610d1c610c1d565b9050813581526020820135610d3081610baf565b602082015292915050565b600082601f830112610d4c57600080fd5b81356001600160401b0380821115610d6657610d66610c07565b604051601f8301601f19908116603f01168101908282118183101715610d8e57610d8e610c07565b81604052838152866020858801011115610da757600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610cfd57600080fd5b803563ffffffff81168114610cfd57600080fd5b600060a08284031215610e0457600080fd5b60405160a081018181106001600160401b0382111715610e2657610e26610c07565b604052905080610e3583610dc7565b8152610e4360208401610dde565b6020820152610e5460408401610dc7565b6040820152610e6560608401610dde565b6060820152610e7660808401610dc7565b60808201525092915050565b803560058110610cfd57600080fd5b60006101c08284031215610ea457600080fd5b610eac610c45565b9050610eb782610e82565b8152610ec560208301610e82565b6020820152610ed660408301610e82565b6040820152610ee760608301610e82565b6060820152610ef860808301610e82565b6080820152610f0960a08301610e82565b60a0820152610f1a60c08301610e82565b60c0820152610f2b60e08301610dde565b60e0820152610100610f3e818401610e82565b90820152610120610f50838201610e82565b90820152610140610f62838201610e82565b90820152610160610f74838201610e82565b90820152610180610f86838201610e82565b908201526101a0610f98838201610e82565b9082015292915050565b600082601f830112610fb357600080fd5b610fbb610c8a565b80610100840185811115610fce57600080fd5b845b81811015610fe8578035845260209384019301610fd0565b509095945050505050565b803560038110610cfd57600080fd5b60006040828403121561101457600080fd5b61101c610c1d565b9050813581526020820135602082015292915050565b600082601f83011261104357600080fd5b61104b610cad565b806101c084018581111561105e57600080fd5b845b81811015610fe8576110728782611002565b8452602090930192604001611060565b600082601f83011261109357600080fd5b604080516101e081018181106001600160401b03821117156110b7576110b7610c07565b604052806103c08501868111156110cd57600080fd5b855b818110156110f0576110e18882611002565b835260209092019184016110cf565b50919695505050505050565b600081830361074081121561111057600080fd5b611118610c68565b915061112383610ff3565b825261113160208401610ff3565b602083015261070080603f198301121561114a57600080fd5b611152610c8a565b91506111618560408601611032565b8252611171856102008601611082565b6020830152611184856105c08601611002565b6040830152611197856106008601611002565b60608301526111aa856106408601611002565b60808301526111bd856106808601611002565b60a08301526111d0856106c08601611002565b60c08301526111e185828601611002565b60e083015250604082015292915050565b600082601f83011261120357600080fd5b60405160a081018181106001600160401b038211171561122557611225610c07565b6040528060a084018581111561123a57600080fd5b845b8181101561125457803583526020928301920161123c565b509195945050505050565b6000610960828403121561127257600080fd5b61127a610cad565b90506112868383610fa2565b81526112968361010084016110fc565b60208201526112a86108408301610dde565b60408201526112bb8361086084016111f2565b60608201526112cd6109008301610dde565b60808201526112df6109208301610cf2565b60a08201526109408201356001600160401b038111156112fe57600080fd5b61130a84828501610d3b565b60c08301525092915050565b60006020828403121561132857600080fd5b81356001600160401b038082111561133f57600080fd5b908301906103c0828603121561135457600080fd5b61135c610ccf565b6113668684610d02565b81526040830135602082015260608301358281111561138457600080fd5b61139087828601610d3b565b6040830152506113a260808401610dc7565b60608201526113b360a08401610dde565b608082015260c083013560a08201526113cf8660e08501610d02565b60c08201526101208084013560e08301526101406113ef88828701610df2565b610100840152611403886101e08701610e91565b828401526103a085013591508382111561141c57600080fd5b6114288883870161125f565b90830152509594505050505056fea264697066735822122012c64260048c4a98dbb1d0cd693dd6b9dbb2349cdb0bea92e6d3a633caf45b9c64736f6c63430008190033","sourceMap":"140:3952:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:570;;;;;;:::i;:::-;;:::i;:::-;;;672:14:66;;665:22;647:41;;635:2;620:18;733:570:63;;;;;;;;1309:708;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;733:570::-;822:4;;877:13;;;;:4;:13;:::i;:::-;867:24;;;;;;;:::i;:::-;;;;;;;;;;;921:7;;867:24;;-1:-1:-1;;;;;;921:7:63;;:28;;967:20;;;867:24;;1041:35;;;;;1094:23;;;;;;;;;:::i;:::-;1135:20;;;;1173:16;;;;1135:4;1173:16;:::i;:::-;1207:31;;;;1256:26;;;;;;;;:::i;:::-;921:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;902:394;733:570;-1:-1:-1;;;733:570:63:o;1309:708::-;1407:14;;:::i;:::-;1433:26;1472:13;;;;:4;:13;:::i;:::-;1462:24;;;;;;;:::i;:::-;;;;;;;;;;;1497:22;1522:7;;1462:24;;-1:-1:-1;1497:22:63;-1:-1:-1;;;;;1522:7:63;;;;:28;;1564:20;;;1462:24;;1630:35;;;;;1679:23;;;;;;;;;:::i;:::-;1716:20;;;;1750:16;;;;1716:4;1750:16;:::i;:::-;1780:4;:31;;;1825:4;:26;;;;;;;;;;:::i;:::-;1522:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1497:364;;1876:17;1872:139;;;1927:13;;;;:4;:13;:::i;:::-;:22;;1941:6;;1927:22;;;:::i;:::-;1916:45;;;;;;;:::i;:::-;1909:52;1309:708;-1:-1:-1;;;;1309:708:63:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:392:66;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;214:9;201:23;-1:-1:-1;;;;;239:6:66;236:30;233:50;;;279:1;276;269:12;233:50;302:22;;358:3;340:16;;;336:26;333:46;;;375:1;372;365:12;878:423;920:3;958:5;952:12;985:6;980:3;973:19;1010:1;1020:162;1034:6;1031:1;1028:13;1020:162;;;1096:4;1152:13;;;1148:22;;1142:29;1124:11;;;1120:20;;1113:59;1049:12;1020:162;;;1024:3;1227:1;1220:4;1211:6;1206:3;1202:16;1198:27;1191:38;1290:4;1283:2;1279:7;1274:2;1266:6;1262:15;1258:29;1253:3;1249:39;1245:50;1238:57;;;878:423;;;;:::o;1984:127::-;2045:10;2040:3;2036:20;2033:1;2026:31;2076:4;2073:1;2066:15;2100:4;2097:1;2090:15;2116:143;2200:1;2193:5;2190:12;2180:46;;2206:18;;:::i;:::-;2235;;2116:143::o;2264:1834::-;2329:47;2372:3;2364:5;2358:12;2329:47;:::i;:::-;2422:4;2415:5;2411:16;2405:23;2437:58;2489:4;2484:3;2480:14;2466:12;2437:58;:::i;:::-;;2543:4;2536:5;2532:16;2526:23;2558:60;2612:4;2607:3;2603:14;2587;2558:60;:::i;:::-;;2666:4;2659:5;2655:16;2649:23;2681:60;2735:4;2730:3;2726:14;2710;2681:60;:::i;:::-;;2789:4;2782:5;2778:16;2772:23;2804:60;2858:4;2853:3;2849:14;2833;2804:60;:::i;:::-;;2912:4;2905:5;2901:16;2895:23;2927:60;2981:4;2976:3;2972:14;2956;2927:60;:::i;:::-;;3035:4;3028:5;3024:16;3018:23;3050:60;3104:4;3099:3;3095:14;3079;3050:60;:::i;:::-;;3158:4;3151:5;3147:16;3141:23;3173:49;3216:4;3211:3;3207:14;3191;1489:10;1478:22;1466:35;;1413:94;3173:49;;3241:6;3295:2;3288:5;3284:14;3278:21;3308:58;3362:2;3357:3;3353:12;3337:14;3308:58;:::i;:::-;;;3385:6;3439:2;3432:5;3428:14;3422:21;3452:58;3506:2;3501:3;3497:12;3481:14;3452:58;:::i;:::-;;;3529:6;3583:2;3576:5;3572:14;3566:21;3596:58;3650:2;3645:3;3641:12;3625:14;3596:58;:::i;:::-;;;3673:6;3728:2;3721:5;3717:14;3711:21;3741:59;3796:2;3791:3;3787:12;3770:15;3741:59;:::i;:::-;;;3819:6;3874:2;3867:5;3863:14;3857:21;3887:59;3942:2;3937:3;3933:12;3916:15;3887:59;:::i;:::-;;;3965:6;4020:2;4013:5;4009:14;4003:21;4033:59;4088:2;4083:3;4079:12;4062:15;4033:59;:::i;:::-;;;2264:1834;;:::o;4103:145::-;4189:1;4182:5;4179:12;4169:46;;4195:18;;:::i;4409:335::-;4512:5;4535:1;4545:193;4559:4;4556:1;4553:11;4545:193;;;4606:48;4650:3;4641:6;4635:13;4329:12;;4317:25;;4391:4;4380:16;;;4374:23;4358:14;;4351:47;4253:151;4606:48;4683:4;4674:14;;;;;4723:4;4711:17;;;;;4579:1;4572:9;4545:193;;4749:1639;4818:49;4863:3;4855:5;4849:12;4818:49;:::i;:::-;4886:4;4936;4929:5;4925:16;4919:23;4951:60;5005:4;5000:3;4996:14;4982:12;4951:60;:::i;:::-;-1:-1:-1;5030:4:66;5071:16;;;5065:23;5140:21;;5248:1;5107:14;;;5258:195;5272:4;5269:1;5266:11;5258:195;;;5319:50;5363:5;5354:6;5348:13;4329:12;;4317:25;;4391:4;4380:16;;;4374:23;4358:14;;4351:47;4253:151;5319:50;5428:15;;;;5292:1;5285:9;;;;;5391:14;;5258:195;;;5262:3;;;5510:4;5494:14;5490:25;5484:32;5462:54;;5525:65;5585:3;5580;5576:13;5560:14;5525:65;:::i;:::-;5647:4;5627:25;;5621:32;4329:12;;5716:4;5707:14;;4317:25;4391:4;4380:16;;;4374:23;4358:14;;;4351:47;5779:4;5759:25;;5753:32;4329:12;;5848:4;5839:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;5911:4;5891:25;;5885:32;4329:12;;5980:4;5971:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;6043:4;6023:25;;6017:32;4329:12;;6112:4;6103:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;6175:4;6155:25;;6149:32;4329:12;;6244:4;6235:14;;4317:25;4380:16;;4374:23;4358:14;;;4351:47;6307:4;6287:25;;;6281:32;4329:12;;6376:4;6367:14;;4317:25;4380:16;;;4374:23;4358:14;;;4351:47;6281:32;-1:-1:-1;6322:60:66;;-1:-1:-1;4253:151:66;6322:60;;4749:1639;;:::o;6393:326::-;6486:5;6509:1;6519:194;6533:4;6530:1;6527:11;6519:194;;;6592:13;;6580:26;;6629:4;6653:12;;;;6688:15;;;;6553:1;6546:9;6519:194;;6724:1166;6832:12;;6779:3;;6807:6;;6866:3;6779;6943:200;6957:4;6954:1;6951:11;6943:200;;;7018:13;;7004:28;;7055:4;7118:15;;;;7081:14;;;;6977:1;6970:9;6943:200;;;6947:3;;;7189:4;7182:5;7178:16;7172:23;7204:65;7261:6;7256:3;7252:16;7238:12;7204:65;:::i;:::-;-1:-1:-1;7317:4:66;7306:16;;7300:23;1489:10;1478:22;7375:6;7366:16;;1466:35;7431:4;7420:16;;7414:23;7446:58;7496:6;7487:16;;7414:23;7446:58;:::i;:::-;-1:-1:-1;7552:4:66;7541:16;;7535:23;1489:10;1478:22;7610:6;7601:16;;1466:35;7666:4;7655:16;;7649:23;481:13;474:21;7722:6;7713:16;;462:34;7778:4;7767:16;;7761:23;7809:6;7800:16;;7793:28;;;7837:47;7871:12;;;7761:23;7837:47;:::i;:::-;7830:54;6724:1166;-1:-1:-1;;;;;6724:1166:66:o;7895:1526::-;8076:2;8058:21;;;8124:13;;782:12;;8139:18;;;770:25;847:16;841:23;834:31;827:39;811:14;;;804:63;8212:2;8204:6;8200:15;8194:22;8189:2;8178:9;8174:18;8167:50;8039:4;8264;8256:6;8252:17;8246:24;8289:6;8332:2;8326:3;8315:9;8311:19;8304:31;8358:52;8405:3;8394:9;8390:19;8376:12;8358:52;:::i;:::-;8344:66;;8459:2;8451:6;8447:15;8441:22;8472:54;8521:3;8510:9;8506:19;8490:14;-1:-1:-1;;;;;1371:30:66;1359:43;;1306:102;8472:54;-1:-1:-1;8575:3:66;8563:16;;8557:23;1489:10;1478:22;;8638:3;8623:19;;1466:35;8589:54;8698:3;8690:6;8686:16;8680:23;8674:3;8663:9;8659:19;8652:52;8753:3;8745:6;8741:16;8735:23;8777:3;8789:71;8856:2;8845:9;8841:18;8825:14;782:12;;770:25;;858:4;847:16;;;841:23;834:31;827:39;811:14;;804:63;699:174;8789:71;8897:3;8885:16;;8879:23;8921:3;8940:18;;;8933:30;;;;9000:15;;;8994:22;1625:12;;-1:-1:-1;;;;;1621:21:66;;;9081:3;9066:19;;1609:34;1689:4;1678:16;;1672:23;1714:10;1756:21;;;1740:14;;;1733:45;1831:4;1820:16;;1814:23;1810:32;;1794:14;;;1787:56;1896:4;1885:16;;1879:23;1875:32;1859:14;;;1852:56;1961:4;1950:16;;;1944:23;1940:32;1924:14;;;1917:56;9135:6;9123:19;;9117:26;;-1:-1:-1;9152:66:66;9213:3;9198:19;;9117:26;9152:66;:::i;:::-;9255:15;;9249:22;9311;;;-1:-1:-1;;9307:36:66;9287:18;;;9280:64;9249:22;-1:-1:-1;9361:54:66;;-1:-1:-1;9315:6:66;9249:22;9361:54;:::i;:::-;9353:62;7895:1526;-1:-1:-1;;;;;;7895:1526:66:o;9426:521::-;9503:4;9509:6;9569:11;9556:25;9663:2;9659:7;9648:8;9632:14;9628:29;9624:43;9604:18;9600:68;9590:96;;9682:1;9679;9672:12;9590:96;9709:33;;9761:20;;;-1:-1:-1;;;;;;9793:30:66;;9790:50;;;9836:1;9833;9826:12;9790:50;9869:4;9857:17;;-1:-1:-1;9900:14:66;9896:27;;;9886:38;;9883:58;;;9937:1;9934;9927:12;9883:58;9426:521;;;;;:::o;9952:271::-;10135:6;10127;10122:3;10109:33;10091:3;10161:16;;10186:13;;;10161:16;9952:271;-1:-1:-1;9952:271:66:o;10228:298::-;10287:6;10340:2;10328:9;10319:7;10315:23;10311:32;10308:52;;;10356:1;10353;10346:12;10308:52;10382:23;;-1:-1:-1;;10434:43:66;;10424:54;;10414:82;;10492:1;10489;10482:12;10531:286;10590:6;10643:2;10631:9;10622:7;10618:23;10614:32;10611:52;;;10659:1;10656;10649:12;10611:52;10685:23;;-1:-1:-1;;;;;10737:31:66;;10727:42;;10717:70;;10783:1;10780;10773:12;10822:997;11138:4;11167:3;11197:6;11186:9;11179:25;11240:6;11235:2;11224:9;11220:18;11213:34;11283:6;11278:2;11267:9;11263:18;11256:34;11342:26;11338:31;11330:6;11326:44;11321:2;11310:9;11306:18;11299:72;11408:6;11402:3;11391:9;11387:19;11380:35;11452:2;11446:3;11435:9;11431:19;11424:31;11491:6;11486:2;11475:9;11471:18;11464:34;;11517:3;11570:6;11562;11557:2;11546:9;11542:18;11529:48;11626:1;11597:22;;;11593:31;;11586:42;11730:3;11715:19;;11708:35;;;;-1:-1:-1;;;;;;11780:32:66;;;;11774:3;11759:19;;11752:61;11689:2;11668:15;;;-1:-1:-1;;11664:29:66;11649:45;;;11645:54;;10822:997;-1:-1:-1;;;;;;10822:997:66:o;11824:118::-;11910:5;11903:13;11896:21;11889:5;11886:32;11876:60;;11932:1;11929;11922:12;11876:60;11824:118;:::o;11947:245::-;12014:6;12067:2;12055:9;12046:7;12042:23;12038:32;12035:52;;;12083:1;12080;12073:12;12035:52;12115:9;12109:16;12134:28;12156:5;12134:28;:::i;12197:331::-;12302:9;12313;12355:8;12343:10;12340:24;12337:44;;;12377:1;12374;12367:12;12337:44;12406:6;12396:8;12393:20;12390:40;;;12426:1;12423;12416:12;12390:40;-1:-1:-1;;12452:23:66;;;12497:25;;;;;-1:-1:-1;12197:331:66:o;12533:127::-;12594:10;12589:3;12585:20;12582:1;12575:31;12625:4;12622:1;12615:15;12649:4;12646:1;12639:15;12665:257;12737:4;12731:11;;;12769:17;;-1:-1:-1;;;;;12801:34:66;;12837:22;;;12798:62;12795:88;;;12863:18;;:::i;:::-;12899:4;12892:24;12665:257;:::o;12927:255::-;12999:2;12993:9;13041:6;13029:19;;-1:-1:-1;;;;;13063:34:66;;13099:22;;;13060:62;13057:88;;;13125:18;;:::i;13187:253::-;13259:2;13253:9;13301:4;13289:17;;-1:-1:-1;;;;;13321:34:66;;13357:22;;;13318:62;13315:88;;;13383:18;;:::i;13445:255::-;13517:2;13511:9;13559:6;13547:19;;-1:-1:-1;;;;;13581:34:66;;13617:22;;;13578:62;13575:88;;;13643:18;;:::i;13705:253::-;13777:2;13771:9;13819:4;13807:17;;-1:-1:-1;;;;;13839:34:66;;13875:22;;;13836:62;13833:88;;;13901:18;;:::i;13963:250::-;14030:2;14024:9;14072:6;14060:19;;-1:-1:-1;;;;;14094:34:66;;14130:22;;;14091:62;14088:88;;;14156:18;;:::i;14218:128::-;14283:20;;14312:28;14283:20;14312:28;:::i;:::-;14218:128;;;:::o;14351:362::-;14415:5;14463:4;14451:9;14446:3;14442:19;14438:30;14435:50;;;14481:1;14478;14471:12;14435:50;14503:22;;:::i;:::-;14494:31;;14561:9;14548:23;14541:5;14534:38;14624:2;14613:9;14609:18;14596:32;14637:30;14659:7;14637:30;:::i;:::-;14694:2;14683:14;;14676:31;14687:5;14351:362;-1:-1:-1;;14351:362:66:o;14718:719::-;14761:5;14814:3;14807:4;14799:6;14795:17;14791:27;14781:55;;14832:1;14829;14822:12;14781:55;14868:6;14855:20;-1:-1:-1;;;;;14931:2:66;14927;14924:10;14921:36;;;14937:18;;:::i;:::-;15012:2;15006:9;14980:2;15066:13;;-1:-1:-1;;15062:22:66;;;15086:2;15058:31;15054:40;15042:53;;;15110:18;;;15130:22;;;15107:46;15104:72;;;15156:18;;:::i;:::-;15196:10;15192:2;15185:22;15231:2;15223:6;15216:18;15277:3;15270:4;15265:2;15257:6;15253:15;15249:26;15246:35;15243:55;;;15294:1;15291;15284:12;15243:55;15358:2;15351:4;15343:6;15339:17;15332:4;15324:6;15320:17;15307:54;15405:1;15398:4;15393:2;15385:6;15381:15;15377:26;15370:37;15425:6;15416:15;;;;;;14718:719;;;;:::o;15442:171::-;15509:20;;-1:-1:-1;;;;;15558:30:66;;15548:41;;15538:69;;15603:1;15600;15593:12;15618:163;15685:20;;15745:10;15734:22;;15724:33;;15714:61;;15771:1;15768;15761:12;15786:696;15839:5;15887:4;15875:9;15870:3;15866:19;15862:30;15859:50;;;15905:1;15902;15895:12;15859:50;15938:2;15932:9;15980:4;15972:6;15968:17;16051:6;16039:10;16036:22;-1:-1:-1;;;;;16003:10:66;16000:34;15997:62;15994:88;;;16062:18;;:::i;:::-;16098:2;16091:22;16131:6;-1:-1:-1;16131:6:66;16161:28;16179:9;16161:28;:::i;:::-;16153:6;16146:44;16223:37;16256:2;16245:9;16241:18;16223:37;:::i;:::-;16218:2;16210:6;16206:15;16199:62;16294:37;16327:2;16316:9;16312:18;16294:37;:::i;:::-;16289:2;16281:6;16277:15;16270:62;16365:37;16398:2;16387:9;16383:18;16365:37;:::i;:::-;16360:2;16352:6;16348:15;16341:62;16437:38;16470:3;16459:9;16455:19;16437:38;:::i;:::-;16431:3;16423:6;16419:16;16412:64;;15786:696;;;;:::o;16487:153::-;16565:20;;16614:1;16604:12;;16594:40;;16630:1;16627;16620:12;16645:1421;16703:5;16751:6;16739:9;16734:3;16730:19;16726:32;16723:52;;;16771:1;16768;16761:12;16723:52;16793:22;;:::i;:::-;16784:31;;16838:39;16867:9;16838:39;:::i;:::-;16831:5;16824:54;16910:48;16954:2;16943:9;16939:18;16910:48;:::i;:::-;16905:2;16898:5;16894:14;16887:72;16991:48;17035:2;17024:9;17020:18;16991:48;:::i;:::-;16986:2;16979:5;16975:14;16968:72;17072:48;17116:2;17105:9;17101:18;17072:48;:::i;:::-;17067:2;17060:5;17056:14;17049:72;17154:49;17198:3;17187:9;17183:19;17154:49;:::i;:::-;17148:3;17141:5;17137:15;17130:74;17237:49;17281:3;17270:9;17266:19;17237:49;:::i;:::-;17231:3;17224:5;17220:15;17213:74;17320:49;17364:3;17353:9;17349:19;17320:49;:::i;:::-;17314:3;17307:5;17303:15;17296:74;17403:38;17436:3;17425:9;17421:19;17403:38;:::i;:::-;17397:3;17390:5;17386:15;17379:63;17461:3;17496:48;17540:2;17529:9;17525:18;17496:48;:::i;:::-;17480:14;;;17473:72;17564:3;17599:48;17628:18;;;17599:48;:::i;:::-;17583:14;;;17576:72;17667:3;17702:48;17731:18;;;17702:48;:::i;:::-;17686:14;;;17679:72;17770:3;17805:48;17834:18;;;17805:48;:::i;:::-;17789:14;;;17782:72;17873:3;17908:48;17937:18;;;17908:48;:::i;:::-;17892:14;;;17885:72;17976:3;18011:48;18040:18;;;18011:48;:::i;:::-;17995:14;;;17988:72;17999:5;16645:1421;-1:-1:-1;;16645:1421:66:o;18071:485::-;18121:5;18174:3;18167:4;18159:6;18155:17;18151:27;18141:55;;18192:1;18189;18182:12;18141:55;18216:22;;:::i;:::-;18260:3;18298;18290:6;18286:16;18325:3;18317:6;18314:15;18311:35;;;18342:1;18339;18332:12;18311:35;18366:6;18381:146;18397:6;18392:3;18389:15;18381:146;;;18465:17;;18453:30;;18512:4;18503:14;;;;18414;18381:146;;;-1:-1:-1;18545:5:66;;18071:485;-1:-1:-1;;;;;18071:485:66:o;18561:155::-;18641:20;;18690:1;18680:12;;18670:40;;18706:1;18703;18696:12;18721:285;18778:5;18826:4;18814:9;18809:3;18805:19;18801:30;18798:50;;;18844:1;18841;18834:12;18798:50;18866:22;;:::i;:::-;18857:31;;18924:9;18911:23;18904:5;18897:38;18995:2;18984:9;18980:18;18967:32;18962:2;18955:5;18951:14;18944:56;18721:285;;;;:::o;19011:516::-;19071:5;19124:3;19117:4;19109:6;19105:17;19101:27;19091:55;;19142:1;19139;19132:12;19091:55;19166:22;;:::i;:::-;19210:3;19248;19240:6;19236:16;19275:3;19267:6;19264:15;19261:35;;;19292:1;19289;19282:12;19261:35;19316:6;19331:167;19347:6;19342:3;19339:15;19331:167;;;19415:38;19449:3;19444;19415:38;:::i;:::-;19403:51;;19483:4;19474:14;;;;19373:4;19364:14;19331:167;;19532:720;19614:5;19667:3;19660:4;19652:6;19648:17;19644:27;19634:55;;19685:1;19682;19675:12;19634:55;19708:2;19739;19733:9;19781:3;19773:6;19769:16;19851:6;19839:10;19836:22;-1:-1:-1;;;;;19803:10:66;19800:34;19797:62;19794:88;;;19862:18;;:::i;:::-;19898:2;19891:22;19933:6;19974:3;19962:16;;19990:15;;;19987:35;;;20018:1;20015;20008:12;19987:35;20042:6;20057:165;20073:6;20068:3;20065:15;20057:165;;;20139:38;20173:3;20168;20139:38;:::i;:::-;20127:51;;20207:4;20198:14;;;;20090:12;;20057:165;;;-1:-1:-1;20240:6:66;;19532:720;-1:-1:-1;;;;;;19532:720:66:o;20257:1264::-;20319:5;20358:9;20353:3;20349:19;20388:6;20384:2;20380:15;20377:35;;;20408:1;20405;20398:12;20377:35;20430:22;;:::i;:::-;20421:31;;20475:41;20506:9;20475:41;:::i;:::-;20468:5;20461:56;20549:50;20595:2;20584:9;20580:18;20549:50;:::i;:::-;20544:2;20537:5;20533:14;20526:74;20619:6;20659:2;20653;20649:7;20645:2;20641:16;20637:25;20634:45;;;20675:1;20672;20665:12;20634:45;20703:22;;:::i;:::-;20688:37;;20750:59;20805:3;20800:2;20789:9;20785:18;20750:59;:::i;:::-;20741:7;20734:76;20844:82;20922:3;20916;20905:9;20901:19;20844:82;:::i;:::-;20839:2;20830:7;20826:16;20819:108;20961:55;21012:3;21005:4;20994:9;20990:20;20961:55;:::i;:::-;20956:2;20947:7;20943:16;20936:81;21053:55;21104:3;21097:4;21086:9;21082:20;21053:55;:::i;:::-;21046:4;21037:7;21033:18;21026:83;21145:55;21196:3;21189:4;21178:9;21174:20;21145:55;:::i;:::-;21138:4;21129:7;21125:18;21118:83;21237:55;21288:3;21281:4;21270:9;21266:20;21237:55;:::i;:::-;21230:4;21221:7;21217:18;21210:83;21329:55;21380:3;21373:4;21362:9;21358:20;21329:55;:::i;:::-;21322:4;21313:7;21309:18;21302:83;21421:53;21470:3;21465:2;21454:9;21450:18;21421:53;:::i;:::-;21414:4;21401:18;;21394:81;-1:-1:-1;21502:2:66;21491:14;;21484:31;21495:5;20257:1264;-1:-1:-1;;20257:1264:66:o;21526:659::-;21587:5;21640:3;21633:4;21625:6;21621:17;21617:27;21607:55;;21658:1;21655;21648:12;21607:55;21691:2;21685:9;21733:3;21725:6;21721:16;21803:6;21791:10;21788:22;-1:-1:-1;;;;;21755:10:66;21752:34;21749:62;21746:88;;;21814:18;;:::i;:::-;21850:2;21843:22;21885:6;21926:3;21914:16;;21942:15;;;21939:35;;;21970:1;21967;21960:12;21939:35;21994:6;22009:146;22025:6;22020:3;22017:15;22009:146;;;22093:17;;22081:30;;22140:4;22131:14;;;;22042;22009:146;;;-1:-1:-1;22173:6:66;;21526:659;-1:-1:-1;;;;;21526:659:66:o;22190:849::-;22249:5;22297:6;22285:9;22280:3;22276:19;22272:32;22269:52;;;22317:1;22314;22307:12;22269:52;22339:22;;:::i;:::-;22330:31;;22384:40;22420:3;22409:9;22384:40;:::i;:::-;22377:5;22370:55;22459:59;22514:3;22508;22497:9;22493:19;22459:59;:::i;:::-;22452:4;22445:5;22441:16;22434:85;22553:39;22586:4;22575:9;22571:20;22553:39;:::i;:::-;22546:4;22539:5;22535:16;22528:65;22627:62;22685:3;22678:4;22667:9;22663:20;22627:62;:::i;:::-;22620:4;22613:5;22609:16;22602:88;22724:39;22757:4;22746:9;22742:20;22724:39;:::i;:::-;22717:4;22710:5;22706:16;22699:65;22798:37;22829:4;22818:9;22814:20;22798:37;:::i;:::-;22791:4;22784:5;22780:16;22773:63;22887:4;22876:9;22872:20;22859:34;-1:-1:-1;;;;;22908:6:66;22905:30;22902:50;;;22948:1;22945;22938:12;22902:50;22986:46;23028:3;23019:6;23008:9;23004:22;22986:46;:::i;:::-;22979:4;22972:5;22968:16;22961:72;;22190:849;;;;:::o;23044:1494::-;23129:6;23182:2;23170:9;23161:7;23157:23;23153:32;23150:52;;;23198:1;23195;23188:12;23150:52;23238:9;23225:23;-1:-1:-1;;;;;23308:2:66;23300:6;23297:14;23294:34;;;23324:1;23321;23314:12;23294:34;23347:22;;;;23403:6;23385:16;;;23381:29;23378:49;;;23423:1;23420;23413:12;23378:49;23449:17;;:::i;:::-;23489:48;23529:7;23525:2;23489:48;:::i;:::-;23482:5;23475:63;23591:2;23587;23583:11;23570:25;23565:2;23558:5;23554:14;23547:49;23642:2;23638;23634:11;23621:25;23671:2;23661:8;23658:16;23655:36;;;23687:1;23684;23677:12;23655:36;23723:45;23760:7;23749:8;23745:2;23741:17;23723:45;:::i;:::-;23718:2;23711:5;23707:14;23700:69;;23801:31;23827:3;23823:2;23819:12;23801:31;:::i;:::-;23796:2;23789:5;23785:14;23778:55;23866:31;23892:3;23888:2;23884:12;23866:31;:::i;:::-;23860:3;23853:5;23849:15;23842:56;23952:3;23948:2;23944:12;23931:26;23925:3;23918:5;23914:15;23907:51;23991:58;24041:7;24035:3;24031:2;24027:12;23991:58;:::i;:::-;23985:3;23978:5;23974:15;23967:83;24069:3;24126:2;24122;24118:11;24105:25;24099:3;24092:5;24088:15;24081:50;24150:3;24189:46;24227:7;24222:2;24218;24214:11;24189:46;:::i;:::-;24180:6;24173:5;24169:18;24162:74;24268:52;24312:7;24306:3;24302:2;24298:12;24268:52;:::i;:::-;24263:2;24256:5;24252:14;24245:76;24367:3;24363:2;24359:12;24346:26;24330:42;;24397:2;24387:8;24384:16;24381:36;;;24413:1;24410;24403:12;24381:36;24449:58;24499:7;24488:8;24484:2;24480:17;24449:58;:::i;:::-;24433:14;;;24426:82;-1:-1:-1;24437:5:66;23044:1494;-1:-1:-1;;;;;23044:1494:66:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15","validateAccountAndReturn((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"c6478713"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccountAndReturn\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccountAndReturn","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"}},"version":1},"id":63} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateAccount","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"validateAccountAndReturn","inputs":[{"name":"args","type":"tuple","internalType":"struct MinaAccountValidation.AlignedArgs","components":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct MinaAccountValidation.Account","components":[{"name":"publicKey","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"tokenIdKeyHash","type":"bytes32","internalType":"bytes32"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"balance","type":"uint64","internalType":"uint64"},{"name":"nonce","type":"uint32","internalType":"uint32"},{"name":"receiptChainHash","type":"bytes32","internalType":"bytes32"},{"name":"delegate","type":"tuple","internalType":"struct MinaAccountValidation.CompressedECPoint","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"isOdd","type":"bool","internalType":"bool"}]},{"name":"votingFor","type":"bytes32","internalType":"bytes32"},{"name":"timing","type":"tuple","internalType":"struct MinaAccountValidation.Timing","components":[{"name":"initialMinimumBalance","type":"uint64","internalType":"uint64"},{"name":"cliffTime","type":"uint32","internalType":"uint32"},{"name":"cliffAmount","type":"uint64","internalType":"uint64"},{"name":"vestingPeriod","type":"uint32","internalType":"uint32"},{"name":"vestingIncrement","type":"uint64","internalType":"uint64"}]},{"name":"permissions","type":"tuple","internalType":"struct MinaAccountValidation.Permissions","components":[{"name":"editState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"access","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"send","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"rreceive","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setDelegate","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setPermissions","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyAuth","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVerificationKeyUint","type":"uint32","internalType":"uint32"},{"name":"setZkappUri","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"editActionState","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTokenSymbol","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"incrementNonce","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setVotingFor","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"},{"name":"setTiming","type":"uint8","internalType":"enum MinaAccountValidation.AuthRequired"}]},{"name":"zkapp","type":"tuple","internalType":"struct MinaAccountValidation.ZkappAccount","components":[{"name":"appState","type":"bytes32[8]","internalType":"bytes32[8]"},{"name":"verificationKey","type":"tuple","internalType":"struct MinaAccountValidation.VerificationKey","components":[{"name":"maxProofsVerified","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"actualWrapDomainSize","type":"uint8","internalType":"enum MinaAccountValidation.ProofsVerified"},{"name":"wrapIndex","type":"tuple","internalType":"struct MinaAccountValidation.WrapIndex","components":[{"name":"sigmaComm","type":"tuple[7]","internalType":"struct MinaAccountValidation.Commitment[7]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"coefficientsComm","type":"tuple[15]","internalType":"struct MinaAccountValidation.Commitment[15]","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"genericComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"psmComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"completeAddComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"mulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"emulComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]},{"name":"endomulScalarComm","type":"tuple","internalType":"struct MinaAccountValidation.Commitment","components":[{"name":"x","type":"bytes32","internalType":"bytes32"},{"name":"y","type":"bytes32","internalType":"bytes32"}]}]}]},{"name":"zkappVersion","type":"uint32","internalType":"uint32"},{"name":"actionState","type":"bytes32[5]","internalType":"bytes32[5]"},{"name":"lastActionSlot","type":"uint32","internalType":"uint32"},{"name":"provedState","type":"bool","internalType":"bool"},{"name":"zkappUri","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"view"},{"type":"error","name":"MinaAccountProvingSystemIdIsNotValid","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161157b38038061157b83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6114e8806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109c8565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610afa565b6040516100e6929190610b47565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b57565b606089013561013460808b018b610afa565b60a08c013561014a6101008e0160e08f01610b86565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610baf565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c3d565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610afa565b60405161021f929190610b47565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b57565b60608a013561027160808c018c610afa565b8c60a001358d60e00160208101906102899190610b86565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610baf565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c3d565b905080156100365761030360c0850185610afa565b610311916028908290610c5a565b81019061031e9190611392565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081b828501826107b6565b50604082810151805160008684015b600782101561085a5761084881845180518252602090810151910152565b9185019160019190910190840161082a565b50505091820151916108706102008601846107c6565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b60058110156107b0578151845260209384019390910190600101610902565b80516000906109609084835b600881101561094c57825182526020928301929091019060010161092d565b50505060208301516109626101008601826107fe565b50604083015163ffffffff1661084085015260608301516109876108608601826108fe565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109bf8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a066103e085018361062f565b91506060850151610a2260a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a5f81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ad461020088018461069f565b870151868503601f1901848801529150610af090508382610921565b9695505050505050565b6000808335601e19843603018112610b1157600080fd5b8301803591506001600160401b03821115610b2b57600080fd5b602001915036819003821315610b4057600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b6957600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610b9857600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c3a57600080fd5b50565b600060208284031215610c4f57600080fd5b81516101af81610c2c565b60008085851115610c6a57600080fd5b83861115610c7757600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cbc57610cbc610c84565b60405290565b6040516101c081016001600160401b0381118282101715610cbc57610cbc610c84565b604051606081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161010081016001600160401b0381118282101715610cbc57610cbc610c84565b60405160e081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161016081016001600160401b0381118282101715610cbc57610cbc610c84565b8035610d7a81610c2c565b919050565b600060408284031215610d9157600080fd5b610d99610c9a565b9050813581526020820135610dad81610c2c565b602082015292915050565b600082601f830112610dc957600080fd5b81356001600160401b0380821115610de357610de3610c84565b604051601f8301601f19908116603f01168101908282118183101715610e0b57610e0b610c84565b81604052838152866020858801011115610e2457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d7a57600080fd5b803563ffffffff81168114610d7a57600080fd5b600060a08284031215610e8157600080fd5b60405160a081018181106001600160401b0382111715610ea357610ea3610c84565b604052905080610eb283610e44565b8152610ec060208401610e5b565b6020820152610ed160408401610e44565b6040820152610ee260608401610e5b565b6060820152610ef360808401610e44565b60808201525092915050565b803560058110610d7a57600080fd5b60006101c08284031215610f2157600080fd5b610f29610cc2565b9050610f3482610eff565b8152610f4260208301610eff565b6020820152610f5360408301610eff565b6040820152610f6460608301610eff565b6060820152610f7560808301610eff565b6080820152610f8660a08301610eff565b60a0820152610f9760c08301610eff565b60c0820152610fa860e08301610e5b565b60e0820152610100610fbb818401610eff565b90820152610120610fcd838201610eff565b90820152610140610fdf838201610eff565b90820152610160610ff1838201610eff565b90820152610180611003838201610eff565b908201526101a0611015838201610eff565b9082015292915050565b600082601f83011261103057600080fd5b611038610d07565b8061010084018581111561104b57600080fd5b845b8181101561106557803584526020938401930161104d565b509095945050505050565b803560038110610d7a57600080fd5b60006040828403121561109157600080fd5b611099610c9a565b9050813581526020820135602082015292915050565b600082601f8301126110c057600080fd5b6110c8610d2a565b806101c08401858111156110db57600080fd5b845b81811015611065576110ef878261107f565b84526020909301926040016110dd565b600082601f83011261111057600080fd5b604080516101e081018181106001600160401b038211171561113457611134610c84565b8252806103c085018681111561114957600080fd5b855b8181101561116c5761115d888261107f565b8352602090920191840161114b565b50919695505050505050565b600081830361074081121561118c57600080fd5b611194610ce5565b915061119f83611070565b82526111ad60208401611070565b602083015261070080603f19830112156111c657600080fd5b6111ce610d07565b91506111dd85604086016110af565b82526111ed8561020086016110ff565b6020830152611200856105c0860161107f565b604083015261121385610600860161107f565b606083015261122685610640860161107f565b608083015261123985610680860161107f565b60a083015261124c856106c0860161107f565b60c083015261125d8582860161107f565b60e083015250604082015292915050565b600082601f83011261127f57600080fd5b60405160a081018181106001600160401b03821117156112a1576112a1610c84565b6040528060a08401858111156112b657600080fd5b845b818110156112d05780358352602092830192016112b8565b509195945050505050565b600061096082840312156112ee57600080fd5b6112f6610d2a565b9050611302838361101f565b8152611312836101008401611178565b60208201526113246108408301610e5b565b604082015261133783610860840161126e565b60608201526113496109008301610e5b565b608082015261135b6109208301610d6f565b60a08201526109408201356001600160401b0381111561137a57600080fd5b61138684828501610db8565b60c08301525092915050565b6000602082840312156113a457600080fd5b81356001600160401b03808211156113bb57600080fd5b908301906103c082860312156113d057600080fd5b6113d8610d4c565b6113e28684610d7f565b81526040830135602082015260608301358281111561140057600080fd5b61140c87828601610db8565b60408301525061141e60808401610e44565b606082015261142f60a08401610e5b565b608082015260c083013560a082015261144b8660e08501610d7f565b60c08201526101208084013560e083015261014061146b88828701610e6f565b61010084015261147f886101e08701610f0e565b828401526103a085013591508382111561149857600080fd5b6114a4888387016112db565b90830152509594505050505056fea264697066735822122043caced17afc14e16194f9234a758555b6f2e0da83d42eeeef6b17990bf04b8b64736f6c63430008150033","sourceMap":"199:4351:38:-:0;;;844:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;903:7;:57;;-1:-1:-1;;;;;;903:57:38;-1:-1:-1;;;;;903:57:38;;;;;;;;;;199:4351;;14:298:40;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:40;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:40:o;:::-;199:4351:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80639029ad151461003b578063c647871314610063575b600080fd5b61004e6100493660046105f4565b610083565b60405190151581526020015b60405180910390f35b6100766100713660046105f4565b6101b6565b60405161005a91906109c8565b600060208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a69146100c9576040516343f3ba2360e11b815260040160405180910390fd5b60006100d860c0840184610afa565b6040516100e6929190610b47565b60408051918290039091206000549092506001600160a01b0316906306045a919085359084906020880135906101229060608a01908a01610b57565b606089013561013460808b018b610afa565b60a08c013561014a6101008e0160e08f01610b86565b6040518a63ffffffff1660e01b815260040161016e99989796959493929190610baf565b602060405180830381865afa15801561018b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101af9190610c3d565b9392505050565b6101be610326565b60208201357fd33e25809fcaa2b6900567812852539da8559dc8b76a7ce3fc5ddd77e8d19a6914610202576040516343f3ba2360e11b815260040160405180910390fd5b600061021160c0840184610afa565b60405161021f929190610b47565b604080519182900390912060008054919350916001600160a01b03909116906306045a9190863590859060208901359061025f9060608b01908b01610b57565b60608a013561027160808c018c610afa565b8c60a001358d60e00160208101906102899190610b86565b6040518a63ffffffff1660e01b81526004016102ad99989796959493929190610baf565b602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ee9190610c3d565b905080156100365761030360c0850185610afa565b610311916028908290610c5a565b81019061031e9190611392565b949350505050565b604080516101a081018252600061016082018181526101808301829052825260208083018290526060838501819052808401839052608080850184905260a08086018590528651808801885285815280850186905260c087015260e08601859052865190810187528481529283018490529482018390528101829052928301526101008101919091526101208101610429604080516101c0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526000602082018190526040909101908152602001600081526020016000815260200160008152602001600081526020016000905290565b815260200161043661043b565b905290565b6040518060e0016040528061044e610488565b815260200161045b6104a7565b81526000602082015260400161046f6104c6565b8152600060208201819052604082015260609081015290565b6040518061010001604052806008906020820280368337509192915050565b60408051606081018252600080825260208201529081016104366104e4565b6040518060a001604052806005906020820280368337509192915050565b6040518061010001604052806104f861058f565b81526020016105056105c8565b8152604080518082018252600080825260208083018290528085019290925282518084018452818152808301829052838501528251808401845281815280830182905260608501528251808401845281815280830182905260808501528251808401845281815280830182905260a085015282518084019093528083529082015260c09091015290565b6040518060e001604052806007905b604080518082019091526000808252602082015281526020019060019003908161059e5790505090565b60408051610220810190915260006101e082018181526102008301919091528152600e6020820161059e565b60006020828403121561060657600080fd5b81356001600160401b0381111561061c57600080fd5b820161010081850312156101af57600080fd5b6000815180845260005b8181101561065557602081850181015186830182015201610639565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6005811061069b5761069b610675565b9052565b6106aa82825161068b565b60208101516106bc602084018261068b565b5060408101516106cf604084018261068b565b5060608101516106e2606084018261068b565b5060808101516106f5608084018261068b565b5060a081015161070860a084018261068b565b5060c081015161071b60c084018261068b565b5060e081015161073360e084018263ffffffff169052565b50610100808201516107478285018261068b565b50506101208082015161075c8285018261068b565b5050610140808201516107718285018261068b565b5050610160808201516107868285018261068b565b50506101808082015161079b8285018261068b565b50506101a0808201516107b08285018261068b565b50505050565b6003811061069b5761069b610675565b8060005b600f8110156107b0576107e884835180518252602090810151910152565b60409390930192602091909101906001016107ca565b6108098282516107b6565b60208082015161081b828501826107b6565b50604082810151805160008684015b600782101561085a5761084881845180518252602090810151910152565b9185019160019190910190840161082a565b50505091820151916108706102008601846107c6565b9081015180516105c08601526020908101516105e0860152606082015180516106008701528101516106208601526080820151805161064087015281015161066086015260a082015180516106808701528101516106a086015260c082015180516106c08701528101516106e086015260e09091015180516107008601520151610720909301929092525050565b8060005b60058110156107b0578151845260209384019390910190600101610902565b80516000906109609084835b600881101561094c57825182526020928301929091019060010161092d565b50505060208301516109626101008601826107fe565b50604083015163ffffffff1661084085015260608301516109876108608601826108fe565b50608083015163ffffffff1661090085015260a0830151151561092085015260c083015161094085018290526109bf8286018261062f565b95945050505050565b6020808252825180518383015201511515604082015260208201516060820152600060408301516103c0806080850152610a066103e085018361062f565b91506060850151610a2260a08601826001600160401b03169052565b50608085015163ffffffff811660c08601525060a085015160e085015260c0850151610100610a5f81870183805182526020908101511515910152565b60e0870151610140878101919091528188015180516001600160401b039081166101608a0152602082015163ffffffff9081166101808b0152604083015182166101a08b01526060830151166101c08a0152608090910151166101e08801526101208801519250610ad461020088018461069f565b870151868503601f1901848801529150610af090508382610921565b9695505050505050565b6000808335601e19843603018112610b1157600080fd5b8301803591506001600160401b03821115610b2b57600080fd5b602001915036819003821315610b4057600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610b6957600080fd5b81356bffffffffffffffffffffffff19811681146101af57600080fd5b600060208284031215610b9857600080fd5b81356001600160a01b03811681146101af57600080fd5b60006101008b83528a60208401528960408401526bffffffffffffffffffffffff19891660608401528760808401528060a0840152858184015250610120858782850137600083870182015260c0830194909452506001600160a01b039190911660e0820152601f909201601f1916909101019695505050505050565b8015158114610c3a57600080fd5b50565b600060208284031215610c4f57600080fd5b81516101af81610c2c565b60008085851115610c6a57600080fd5b83861115610c7757600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610cbc57610cbc610c84565b60405290565b6040516101c081016001600160401b0381118282101715610cbc57610cbc610c84565b604051606081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161010081016001600160401b0381118282101715610cbc57610cbc610c84565b60405160e081016001600160401b0381118282101715610cbc57610cbc610c84565b60405161016081016001600160401b0381118282101715610cbc57610cbc610c84565b8035610d7a81610c2c565b919050565b600060408284031215610d9157600080fd5b610d99610c9a565b9050813581526020820135610dad81610c2c565b602082015292915050565b600082601f830112610dc957600080fd5b81356001600160401b0380821115610de357610de3610c84565b604051601f8301601f19908116603f01168101908282118183101715610e0b57610e0b610c84565b81604052838152866020858801011115610e2457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160401b0381168114610d7a57600080fd5b803563ffffffff81168114610d7a57600080fd5b600060a08284031215610e8157600080fd5b60405160a081018181106001600160401b0382111715610ea357610ea3610c84565b604052905080610eb283610e44565b8152610ec060208401610e5b565b6020820152610ed160408401610e44565b6040820152610ee260608401610e5b565b6060820152610ef360808401610e44565b60808201525092915050565b803560058110610d7a57600080fd5b60006101c08284031215610f2157600080fd5b610f29610cc2565b9050610f3482610eff565b8152610f4260208301610eff565b6020820152610f5360408301610eff565b6040820152610f6460608301610eff565b6060820152610f7560808301610eff565b6080820152610f8660a08301610eff565b60a0820152610f9760c08301610eff565b60c0820152610fa860e08301610e5b565b60e0820152610100610fbb818401610eff565b90820152610120610fcd838201610eff565b90820152610140610fdf838201610eff565b90820152610160610ff1838201610eff565b90820152610180611003838201610eff565b908201526101a0611015838201610eff565b9082015292915050565b600082601f83011261103057600080fd5b611038610d07565b8061010084018581111561104b57600080fd5b845b8181101561106557803584526020938401930161104d565b509095945050505050565b803560038110610d7a57600080fd5b60006040828403121561109157600080fd5b611099610c9a565b9050813581526020820135602082015292915050565b600082601f8301126110c057600080fd5b6110c8610d2a565b806101c08401858111156110db57600080fd5b845b81811015611065576110ef878261107f565b84526020909301926040016110dd565b600082601f83011261111057600080fd5b604080516101e081018181106001600160401b038211171561113457611134610c84565b8252806103c085018681111561114957600080fd5b855b8181101561116c5761115d888261107f565b8352602090920191840161114b565b50919695505050505050565b600081830361074081121561118c57600080fd5b611194610ce5565b915061119f83611070565b82526111ad60208401611070565b602083015261070080603f19830112156111c657600080fd5b6111ce610d07565b91506111dd85604086016110af565b82526111ed8561020086016110ff565b6020830152611200856105c0860161107f565b604083015261121385610600860161107f565b606083015261122685610640860161107f565b608083015261123985610680860161107f565b60a083015261124c856106c0860161107f565b60c083015261125d8582860161107f565b60e083015250604082015292915050565b600082601f83011261127f57600080fd5b60405160a081018181106001600160401b03821117156112a1576112a1610c84565b6040528060a08401858111156112b657600080fd5b845b818110156112d05780358352602092830192016112b8565b509195945050505050565b600061096082840312156112ee57600080fd5b6112f6610d2a565b9050611302838361101f565b8152611312836101008401611178565b60208201526113246108408301610e5b565b604082015261133783610860840161126e565b60608201526113496109008301610e5b565b608082015261135b6109208301610d6f565b60a08201526109408201356001600160401b0381111561137a57600080fd5b61138684828501610db8565b60c08301525092915050565b6000602082840312156113a457600080fd5b81356001600160401b03808211156113bb57600080fd5b908301906103c082860312156113d057600080fd5b6113d8610d4c565b6113e28684610d7f565b81526040830135602082015260608301358281111561140057600080fd5b61140c87828601610db8565b60408301525061141e60808401610e44565b606082015261142f60a08401610e5b565b608082015260c083013560a082015261144b8660e08501610d7f565b60c08201526101208084013560e083015261014061146b88828701610e6f565b61010084015261147f886101e08701610f0e565b828401526103a085013591508382111561149857600080fd5b6114a4888387016112db565b90830152509594505050505056fea264697066735822122043caced17afc14e16194f9234a758555b6f2e0da83d42eeeef6b17990bf04b8b64736f6c63430008150033","sourceMap":"199:4351:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:655;;;;;;:::i;:::-;;:::i;:::-;;;671:14:40;;664:22;646:41;;634:2;619:18;973:655:38;;;;;;;;1634:841;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;973:655::-;1048:4;1068:35;;;;344:66;1068:61;1064:137;;1152:38;;-1:-1:-1;;;1152:38:38;;;;;;;;;;;1064:137;1211:26;1250:13;;;;:4;:13;:::i;:::-;1240:24;;;;;;;:::i;:::-;;;;;;;;;;;1282:7;;1240:24;;-1:-1:-1;;;;;;1282:7:38;;:28;;1324:20;;;1240:24;;1390:35;;;;;1439:23;;;;;;;;;:::i;:::-;1476:20;;;;1510:16;;;;1476:4;1510:16;:::i;:::-;1540:31;;;;1585:26;;;;;;;;:::i;:::-;1282:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1275:346;973:655;-1:-1:-1;;;973:655:38:o;1634:841::-;1718:14;;:::i;:::-;1748:35;;;;344:66;1748:61;1744:137;;1832:38;;-1:-1:-1;;;1832:38:38;;;;;;;;;;;1744:137;1891:26;1930:13;;;;:4;:13;:::i;:::-;1920:24;;;;;;;:::i;:::-;;;;;;;;;;;1955:22;1980:7;;1920:24;;-1:-1:-1;1955:22:38;-1:-1:-1;;;;;1980:7:38;;;;:28;;2022:20;;;1920:24;;2088:35;;;;;2137:23;;;;;;;;;:::i;:::-;2174:20;;;;2208:16;;;;2174:4;2208:16;:::i;:::-;2238:4;:31;;;2283:4;:26;;;;;;;;;;:::i;:::-;1980:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1955:364;;2334:17;2330:139;;;2385:13;;;;:4;:13;:::i;:::-;:22;;2399:6;;2385:22;;;:::i;:::-;2374:45;;;;;;;:::i;:::-;2367:52;1634:841;-1:-1:-1;;;;1634:841:38:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:391:40;104:6;157:2;145:9;136:7;132:23;128:32;125:52;;;173:1;170;163:12;125:52;213:9;200:23;-1:-1:-1;;;;;238:6:40;235:30;232:50;;;278:1;275;268:12;232:50;301:22;;357:3;339:16;;;335:26;332:46;;;374:1;371;364:12;877:423;919:3;957:5;951:12;984:6;979:3;972:19;1009:1;1019:162;1033:6;1030:1;1027:13;1019:162;;;1095:4;1151:13;;;1147:22;;1141:29;1123:11;;;1119:20;;1112:59;1048:12;1019:162;;;1023:3;1226:1;1219:4;1210:6;1205:3;1201:16;1197:27;1190:38;1289:4;1282:2;1278:7;1273:2;1265:6;1261:15;1257:29;1252:3;1248:39;1244:50;1237:57;;;877:423;;;;:::o;1983:127::-;2044:10;2039:3;2035:20;2032:1;2025:31;2075:4;2072:1;2065:15;2099:4;2096:1;2089:15;2115:143;2199:1;2192:5;2189:12;2179:46;;2205:18;;:::i;:::-;2234;;2115:143::o;2263:1834::-;2328:47;2371:3;2363:5;2357:12;2328:47;:::i;:::-;2421:4;2414:5;2410:16;2404:23;2436:58;2488:4;2483:3;2479:14;2465:12;2436:58;:::i;:::-;;2542:4;2535:5;2531:16;2525:23;2557:60;2611:4;2606:3;2602:14;2586;2557:60;:::i;:::-;;2665:4;2658:5;2654:16;2648:23;2680:60;2734:4;2729:3;2725:14;2709;2680:60;:::i;:::-;;2788:4;2781:5;2777:16;2771:23;2803:60;2857:4;2852:3;2848:14;2832;2803:60;:::i;:::-;;2911:4;2904:5;2900:16;2894:23;2926:60;2980:4;2975:3;2971:14;2955;2926:60;:::i;:::-;;3034:4;3027:5;3023:16;3017:23;3049:60;3103:4;3098:3;3094:14;3078;3049:60;:::i;:::-;;3157:4;3150:5;3146:16;3140:23;3172:49;3215:4;3210:3;3206:14;3190;1488:10;1477:22;1465:35;;1412:94;3172:49;;3240:6;3294:2;3287:5;3283:14;3277:21;3307:58;3361:2;3356:3;3352:12;3336:14;3307:58;:::i;:::-;;;3384:6;3438:2;3431:5;3427:14;3421:21;3451:58;3505:2;3500:3;3496:12;3480:14;3451:58;:::i;:::-;;;3528:6;3582:2;3575:5;3571:14;3565:21;3595:58;3649:2;3644:3;3640:12;3624:14;3595:58;:::i;:::-;;;3672:6;3727:2;3720:5;3716:14;3710:21;3740:59;3795:2;3790:3;3786:12;3769:15;3740:59;:::i;:::-;;;3818:6;3873:2;3866:5;3862:14;3856:21;3886:59;3941:2;3936:3;3932:12;3915:15;3886:59;:::i;:::-;;;3964:6;4019:2;4012:5;4008:14;4002:21;4032:59;4087:2;4082:3;4078:12;4061:15;4032:59;:::i;:::-;;;2263:1834;;:::o;4102:145::-;4188:1;4181:5;4178:12;4168:46;;4194:18;;:::i;4408:335::-;4511:5;4534:1;4544:193;4558:4;4555:1;4552:11;4544:193;;;4605:48;4649:3;4640:6;4634:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;4605:48;4682:4;4673:14;;;;;4722:4;4710:17;;;;;4578:1;4571:9;4544:193;;4748:1627;4817:49;4862:3;4854:5;4848:12;4817:49;:::i;:::-;4885:4;4935:2;4928:5;4924:14;4918:21;4948:58;5002:2;4997:3;4993:12;4979;4948:58;:::i;:::-;-1:-1:-1;5025:4:40;5066:14;;;5060:21;5131;;5239:1;5100:12;;;5249:195;5263:4;5260:1;5257:11;5249:195;;;5310:50;5354:5;5345:6;5339:13;4328:12;;4316:25;;4390:4;4379:16;;;4373:23;4357:14;;4350:47;4252:151;5310:50;5419:15;;;;5283:1;5276:9;;;;;5382:14;;5249:195;;;-1:-1:-1;;;5481:23:40;;;5475:30;;5514:65;5574:3;5565:13;;5475:30;5514:65;:::i;:::-;5616:23;;;5610:30;4328:12;;5703:4;5694:14;;4316:25;4390:4;4379:16;;;4373:23;4357:14;;;4350:47;5766:4;5746:25;;5740:32;4328:12;;5835:4;5826:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;5898:4;5878:25;;5872:32;4328:12;;5967:4;5958:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6030:4;6010:25;;6004:32;4328:12;;6099:4;6090:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6162:4;6142:25;;6136:32;4328:12;;6231:4;6222:14;;4316:25;4379:16;;4373:23;4357:14;;;4350:47;6294:4;6274:25;;;6268:32;4328:12;;6363:4;6354:14;;4316:25;4379:16;4373:23;4357:14;;;;4350:47;;;;-1:-1:-1;;4748:1627:40:o;6380:326::-;6473:5;6496:1;6506:194;6520:4;6517:1;6514:11;6506:194;;;6579:13;;6567:26;;6616:4;6640:12;;;;6675:15;;;;6540:1;6533:9;6506:194;;6711:1166;6819:12;;6766:3;;6794:6;;6853:3;6766;6930:200;6944:4;6941:1;6938:11;6930:200;;;7005:13;;6991:28;;7042:4;7105:15;;;;7068:14;;;;6964:1;6957:9;6930:200;;;6934:3;;;7176:4;7169:5;7165:16;7159:23;7191:65;7248:6;7243:3;7239:16;7225:12;7191:65;:::i;:::-;-1:-1:-1;7304:4:40;7293:16;;7287:23;1488:10;1477:22;7362:6;7353:16;;1465:35;7418:4;7407:16;;7401:23;7433:58;7483:6;7474:16;;7401:23;7433:58;:::i;:::-;-1:-1:-1;7539:4:40;7528:16;;7522:23;1488:10;1477:22;7597:6;7588:16;;1465:35;7653:4;7642:16;;7636:23;480:13;473:21;7709:6;7700:16;;461:34;7765:4;7754:16;;7748:23;7796:6;7787:16;;7780:28;;;7824:47;7858:12;;;7748:23;7824:47;:::i;:::-;7817:54;6711:1166;-1:-1:-1;;;;;6711:1166:40:o;7882:1524::-;8061:2;8043:21;;;8109:13;;781:12;;8124:18;;;769:25;846:16;840:23;833:31;826:39;810:14;;;803:63;8197:2;8189:6;8185:15;8179:22;8174:2;8163:9;8159:18;8152:50;8024:4;8249;8241:6;8237:17;8231:24;8274:6;8317:2;8311:3;8300:9;8296:19;8289:31;8343:52;8390:3;8379:9;8375:19;8361:12;8343:52;:::i;:::-;8329:66;;8444:2;8436:6;8432:15;8426:22;8457:54;8506:3;8495:9;8491:19;8475:14;-1:-1:-1;;;;;1370:30:40;1358:43;;1305:102;8457:54;-1:-1:-1;8560:3:40;8548:16;;8542:23;1488:10;1477:22;;8623:3;8608:19;;1465:35;8574:54;8683:3;8675:6;8671:16;8665:23;8659:3;8648:9;8644:19;8637:52;8738:3;8730:6;8726:16;8720:23;8762:3;8774:71;8841:2;8830:9;8826:18;8810:14;781:12;;769:25;;857:4;846:16;;;840:23;833:31;826:39;810:14;;803:63;698:174;8774:71;8882:3;8870:16;;8864:23;8906:3;8925:18;;;8918:30;;;;8985:15;;;8979:22;1624:12;;-1:-1:-1;;;;;1620:21:40;;;9066:3;9051:19;;1608:34;1688:4;1677:16;;1671:23;1713:10;1755:21;;;1739:14;;;1732:45;1830:4;1819:16;;1813:23;1809:32;;1793:14;;;1786:56;1895:4;1884:16;;1878:23;1874:32;1858:14;;;1851:56;1960:4;1949:16;;;1943:23;1939:32;1923:14;;;1916:56;9120:6;9108:19;;9102:26;;-1:-1:-1;9137:66:40;9198:3;9183:19;;9102:26;9137:66;:::i;:::-;9240:15;;9234:22;9296;;;-1:-1:-1;;9292:36:40;9272:18;;;9265:64;9234:22;-1:-1:-1;9346:54:40;;-1:-1:-1;9300:6:40;9234:22;9346:54;:::i;:::-;9338:62;7882:1524;-1:-1:-1;;;;;;7882:1524:40:o;9411:521::-;9488:4;9494:6;9554:11;9541:25;9648:2;9644:7;9633:8;9617:14;9613:29;9609:43;9589:18;9585:68;9575:96;;9667:1;9664;9657:12;9575:96;9694:33;;9746:20;;;-1:-1:-1;;;;;;9778:30:40;;9775:50;;;9821:1;9818;9811:12;9775:50;9854:4;9842:17;;-1:-1:-1;9885:14:40;9881:27;;;9871:38;;9868:58;;;9922:1;9919;9912:12;9868:58;9411:521;;;;;:::o;9937:271::-;10120:6;10112;10107:3;10094:33;10076:3;10146:16;;10171:13;;;10146:16;9937:271;-1:-1:-1;9937:271:40:o;10213:298::-;10272:6;10325:2;10313:9;10304:7;10300:23;10296:32;10293:52;;;10341:1;10338;10331:12;10293:52;10367:23;;-1:-1:-1;;10419:43:40;;10409:54;;10399:82;;10477:1;10474;10467:12;10516:286;10575:6;10628:2;10616:9;10607:7;10603:23;10599:32;10596:52;;;10644:1;10641;10634:12;10596:52;10670:23;;-1:-1:-1;;;;;10722:31:40;;10712:42;;10702:70;;10768:1;10765;10758:12;10807:997;11123:4;11152:3;11182:6;11171:9;11164:25;11225:6;11220:2;11209:9;11205:18;11198:34;11268:6;11263:2;11252:9;11248:18;11241:34;11327:26;11323:31;11315:6;11311:44;11306:2;11295:9;11291:18;11284:72;11393:6;11387:3;11376:9;11372:19;11365:35;11437:2;11431:3;11420:9;11416:19;11409:31;11476:6;11471:2;11460:9;11456:18;11449:34;;11502:3;11555:6;11547;11542:2;11531:9;11527:18;11514:48;11611:1;11582:22;;;11578:31;;11571:42;11715:3;11700:19;;11693:35;;;;-1:-1:-1;;;;;;11765:32:40;;;;11759:3;11744:19;;11737:61;11674:2;11653:15;;;-1:-1:-1;;11649:29:40;11634:45;;;11630:54;;10807:997;-1:-1:-1;;;;;;10807:997:40:o;11809:118::-;11895:5;11888:13;11881:21;11874:5;11871:32;11861:60;;11917:1;11914;11907:12;11861:60;11809:118;:::o;11932:245::-;11999:6;12052:2;12040:9;12031:7;12027:23;12023:32;12020:52;;;12068:1;12065;12058:12;12020:52;12100:9;12094:16;12119:28;12141:5;12119:28;:::i;12182:331::-;12287:9;12298;12340:8;12328:10;12325:24;12322:44;;;12362:1;12359;12352:12;12322:44;12391:6;12381:8;12378:20;12375:40;;;12411:1;12408;12401:12;12375:40;-1:-1:-1;;12437:23:40;;;12482:25;;;;;-1:-1:-1;12182:331:40:o;12518:127::-;12579:10;12574:3;12570:20;12567:1;12560:31;12610:4;12607:1;12600:15;12634:4;12631:1;12624:15;12650:257;12722:4;12716:11;;;12754:17;;-1:-1:-1;;;;;12786:34:40;;12822:22;;;12783:62;12780:88;;;12848:18;;:::i;:::-;12884:4;12877:24;12650:257;:::o;12912:255::-;12984:2;12978:9;13026:6;13014:19;;-1:-1:-1;;;;;13048:34:40;;13084:22;;;13045:62;13042:88;;;13110:18;;:::i;13172:253::-;13244:2;13238:9;13286:4;13274:17;;-1:-1:-1;;;;;13306:34:40;;13342:22;;;13303:62;13300:88;;;13368:18;;:::i;13430:255::-;13502:2;13496:9;13544:6;13532:19;;-1:-1:-1;;;;;13566:34:40;;13602:22;;;13563:62;13560:88;;;13628:18;;:::i;13690:253::-;13762:2;13756:9;13804:4;13792:17;;-1:-1:-1;;;;;13824:34:40;;13860:22;;;13821:62;13818:88;;;13886:18;;:::i;13948:250::-;14015:2;14009:9;14057:6;14045:19;;-1:-1:-1;;;;;14079:34:40;;14115:22;;;14076:62;14073:88;;;14141:18;;:::i;14203:128::-;14268:20;;14297:28;14268:20;14297:28;:::i;:::-;14203:128;;;:::o;14336:362::-;14400:5;14448:4;14436:9;14431:3;14427:19;14423:30;14420:50;;;14466:1;14463;14456:12;14420:50;14488:22;;:::i;:::-;14479:31;;14546:9;14533:23;14526:5;14519:38;14609:2;14598:9;14594:18;14581:32;14622:30;14644:7;14622:30;:::i;:::-;14679:2;14668:14;;14661:31;14672:5;14336:362;-1:-1:-1;;14336:362:40:o;14703:719::-;14746:5;14799:3;14792:4;14784:6;14780:17;14776:27;14766:55;;14817:1;14814;14807:12;14766:55;14853:6;14840:20;-1:-1:-1;;;;;14916:2:40;14912;14909:10;14906:36;;;14922:18;;:::i;:::-;14997:2;14991:9;14965:2;15051:13;;-1:-1:-1;;15047:22:40;;;15071:2;15043:31;15039:40;15027:53;;;15095:18;;;15115:22;;;15092:46;15089:72;;;15141:18;;:::i;:::-;15181:10;15177:2;15170:22;15216:2;15208:6;15201:18;15262:3;15255:4;15250:2;15242:6;15238:15;15234:26;15231:35;15228:55;;;15279:1;15276;15269:12;15228:55;15343:2;15336:4;15328:6;15324:17;15317:4;15309:6;15305:17;15292:54;15390:1;15383:4;15378:2;15370:6;15366:15;15362:26;15355:37;15410:6;15401:15;;;;;;14703:719;;;;:::o;15427:171::-;15494:20;;-1:-1:-1;;;;;15543:30:40;;15533:41;;15523:69;;15588:1;15585;15578:12;15603:163;15670:20;;15730:10;15719:22;;15709:33;;15699:61;;15756:1;15753;15746:12;15771:696;15824:5;15872:4;15860:9;15855:3;15851:19;15847:30;15844:50;;;15890:1;15887;15880:12;15844:50;15923:2;15917:9;15965:4;15957:6;15953:17;16036:6;16024:10;16021:22;-1:-1:-1;;;;;15988:10:40;15985:34;15982:62;15979:88;;;16047:18;;:::i;:::-;16083:2;16076:22;16116:6;-1:-1:-1;16116:6:40;16146:28;16164:9;16146:28;:::i;:::-;16138:6;16131:44;16208:37;16241:2;16230:9;16226:18;16208:37;:::i;:::-;16203:2;16195:6;16191:15;16184:62;16279:37;16312:2;16301:9;16297:18;16279:37;:::i;:::-;16274:2;16266:6;16262:15;16255:62;16350:37;16383:2;16372:9;16368:18;16350:37;:::i;:::-;16345:2;16337:6;16333:15;16326:62;16422:38;16455:3;16444:9;16440:19;16422:38;:::i;:::-;16416:3;16408:6;16404:16;16397:64;;15771:696;;;;:::o;16472:153::-;16550:20;;16599:1;16589:12;;16579:40;;16615:1;16612;16605:12;16630:1421;16688:5;16736:6;16724:9;16719:3;16715:19;16711:32;16708:52;;;16756:1;16753;16746:12;16708:52;16778:22;;:::i;:::-;16769:31;;16823:39;16852:9;16823:39;:::i;:::-;16816:5;16809:54;16895:48;16939:2;16928:9;16924:18;16895:48;:::i;:::-;16890:2;16883:5;16879:14;16872:72;16976:48;17020:2;17009:9;17005:18;16976:48;:::i;:::-;16971:2;16964:5;16960:14;16953:72;17057:48;17101:2;17090:9;17086:18;17057:48;:::i;:::-;17052:2;17045:5;17041:14;17034:72;17139:49;17183:3;17172:9;17168:19;17139:49;:::i;:::-;17133:3;17126:5;17122:15;17115:74;17222:49;17266:3;17255:9;17251:19;17222:49;:::i;:::-;17216:3;17209:5;17205:15;17198:74;17305:49;17349:3;17338:9;17334:19;17305:49;:::i;:::-;17299:3;17292:5;17288:15;17281:74;17388:38;17421:3;17410:9;17406:19;17388:38;:::i;:::-;17382:3;17375:5;17371:15;17364:63;17446:3;17481:48;17525:2;17514:9;17510:18;17481:48;:::i;:::-;17465:14;;;17458:72;17549:3;17584:48;17613:18;;;17584:48;:::i;:::-;17568:14;;;17561:72;17652:3;17687:48;17716:18;;;17687:48;:::i;:::-;17671:14;;;17664:72;17755:3;17790:48;17819:18;;;17790:48;:::i;:::-;17774:14;;;17767:72;17858:3;17893:48;17922:18;;;17893:48;:::i;:::-;17877:14;;;17870:72;17961:3;17996:48;18025:18;;;17996:48;:::i;:::-;17980:14;;;17973:72;17984:5;16630:1421;-1:-1:-1;;16630:1421:40:o;18056:485::-;18106:5;18159:3;18152:4;18144:6;18140:17;18136:27;18126:55;;18177:1;18174;18167:12;18126:55;18201:22;;:::i;:::-;18245:3;18283;18275:6;18271:16;18310:3;18302:6;18299:15;18296:35;;;18327:1;18324;18317:12;18296:35;18351:6;18366:146;18382:6;18377:3;18374:15;18366:146;;;18450:17;;18438:30;;18497:4;18488:14;;;;18399;18366:146;;;-1:-1:-1;18530:5:40;;18056:485;-1:-1:-1;;;;;18056:485:40:o;18546:155::-;18626:20;;18675:1;18665:12;;18655:40;;18691:1;18688;18681:12;18706:285;18763:5;18811:4;18799:9;18794:3;18790:19;18786:30;18783:50;;;18829:1;18826;18819:12;18783:50;18851:22;;:::i;:::-;18842:31;;18909:9;18896:23;18889:5;18882:38;18980:2;18969:9;18965:18;18952:32;18947:2;18940:5;18936:14;18929:56;18706:285;;;;:::o;18996:538::-;19078:5;19131:3;19124:4;19116:6;19112:17;19108:27;19098:55;;19149:1;19146;19139:12;19098:55;19173:22;;:::i;:::-;19217:3;19255;19247:6;19243:16;19282:3;19274:6;19271:15;19268:35;;;19299:1;19296;19289:12;19268:35;19323:6;19338:167;19354:6;19349:3;19346:15;19338:167;;;19422:38;19456:3;19451;19422:38;:::i;:::-;19410:51;;19490:4;19481:14;;;;19380:4;19371:14;19338:167;;19539:698;19599:5;19652:3;19645:4;19637:6;19633:17;19629:27;19619:55;;19670:1;19667;19660:12;19619:55;19693:2;19724;19718:9;19766:3;19758:6;19754:16;19836:6;19824:10;19821:22;-1:-1:-1;;;;;19788:10:40;19785:34;19782:62;19779:88;;;19847:18;;:::i;:::-;19876:22;;19918:6;19959:3;19947:16;;19975:15;;;19972:35;;;20003:1;20000;19993:12;19972:35;20027:6;20042:165;20058:6;20053:3;20050:15;20042:165;;;20124:38;20158:3;20153;20124:38;:::i;:::-;20112:51;;20192:4;20183:14;;;;20075:12;;20042:165;;;-1:-1:-1;20225:6:40;;19539:698;-1:-1:-1;;;;;;19539:698:40:o;20242:1264::-;20304:5;20343:9;20338:3;20334:19;20373:6;20369:2;20365:15;20362:35;;;20393:1;20390;20383:12;20362:35;20415:22;;:::i;:::-;20406:31;;20460:41;20491:9;20460:41;:::i;:::-;20453:5;20446:56;20534:50;20580:2;20569:9;20565:18;20534:50;:::i;:::-;20529:2;20522:5;20518:14;20511:74;20604:6;20644:2;20638;20634:7;20630:2;20626:16;20622:25;20619:45;;;20660:1;20657;20650:12;20619:45;20688:22;;:::i;:::-;20673:37;;20735:81;20812:3;20807:2;20796:9;20792:18;20735:81;:::i;:::-;20726:7;20719:98;20851:60;20907:3;20901;20890:9;20886:19;20851:60;:::i;:::-;20846:2;20837:7;20833:16;20826:86;20946:55;20997:3;20990:4;20979:9;20975:20;20946:55;:::i;:::-;20941:2;20932:7;20928:16;20921:81;21038:55;21089:3;21082:4;21071:9;21067:20;21038:55;:::i;:::-;21031:4;21022:7;21018:18;21011:83;21130:55;21181:3;21174:4;21163:9;21159:20;21130:55;:::i;:::-;21123:4;21114:7;21110:18;21103:83;21222:55;21273:3;21266:4;21255:9;21251:20;21222:55;:::i;:::-;21215:4;21206:7;21202:18;21195:83;21314:55;21365:3;21358:4;21347:9;21343:20;21314:55;:::i;:::-;21307:4;21298:7;21294:18;21287:83;21406:53;21455:3;21450:2;21439:9;21435:18;21406:53;:::i;:::-;21399:4;21386:18;;21379:81;-1:-1:-1;21487:2:40;21476:14;;21469:31;21480:5;20242:1264;-1:-1:-1;;20242:1264:40:o;21511:659::-;21572:5;21625:3;21618:4;21610:6;21606:17;21602:27;21592:55;;21643:1;21640;21633:12;21592:55;21676:2;21670:9;21718:3;21710:6;21706:16;21788:6;21776:10;21773:22;-1:-1:-1;;;;;21740:10:40;21737:34;21734:62;21731:88;;;21799:18;;:::i;:::-;21835:2;21828:22;21870:6;21911:3;21899:16;;21927:15;;;21924:35;;;21955:1;21952;21945:12;21924:35;21979:6;21994:146;22010:6;22005:3;22002:15;21994:146;;;22078:17;;22066:30;;22125:4;22116:14;;;;22027;21994:146;;;-1:-1:-1;22158:6:40;;21511:659;-1:-1:-1;;;;;21511:659:40:o;22175:849::-;22234:5;22282:6;22270:9;22265:3;22261:19;22257:32;22254:52;;;22302:1;22299;22292:12;22254:52;22324:22;;:::i;:::-;22315:31;;22369:40;22405:3;22394:9;22369:40;:::i;:::-;22362:5;22355:55;22444:59;22499:3;22493;22482:9;22478:19;22444:59;:::i;:::-;22437:4;22430:5;22426:16;22419:85;22538:39;22571:4;22560:9;22556:20;22538:39;:::i;:::-;22531:4;22524:5;22520:16;22513:65;22612:62;22670:3;22663:4;22652:9;22648:20;22612:62;:::i;:::-;22605:4;22598:5;22594:16;22587:88;22709:39;22742:4;22731:9;22727:20;22709:39;:::i;:::-;22702:4;22695:5;22691:16;22684:65;22783:37;22814:4;22803:9;22799:20;22783:37;:::i;:::-;22776:4;22769:5;22765:16;22758:63;22872:4;22861:9;22857:20;22844:34;-1:-1:-1;;;;;22893:6:40;22890:30;22887:50;;;22933:1;22930;22923:12;22887:50;22971:46;23013:3;23004:6;22993:9;22989:22;22971:46;:::i;:::-;22964:4;22957:5;22953:16;22946:72;;22175:849;;;;:::o;23029:1493::-;23113:6;23166:2;23154:9;23145:7;23141:23;23137:32;23134:52;;;23182:1;23179;23172:12;23134:52;23222:9;23209:23;-1:-1:-1;;;;;23292:2:40;23284:6;23281:14;23278:34;;;23308:1;23305;23298:12;23278:34;23331:22;;;;23387:6;23369:16;;;23365:29;23362:49;;;23407:1;23404;23397:12;23362:49;23433:17;;:::i;:::-;23473:48;23513:7;23509:2;23473:48;:::i;:::-;23466:5;23459:63;23575:2;23571;23567:11;23554:25;23549:2;23542:5;23538:14;23531:49;23626:2;23622;23618:11;23605:25;23655:2;23645:8;23642:16;23639:36;;;23671:1;23668;23661:12;23639:36;23707:45;23744:7;23733:8;23729:2;23725:17;23707:45;:::i;:::-;23702:2;23695:5;23691:14;23684:69;;23785:31;23811:3;23807:2;23803:12;23785:31;:::i;:::-;23780:2;23773:5;23769:14;23762:55;23850:31;23876:3;23872:2;23868:12;23850:31;:::i;:::-;23844:3;23837:5;23833:15;23826:56;23936:3;23932:2;23928:12;23915:26;23909:3;23902:5;23898:15;23891:51;23975:58;24025:7;24019:3;24015:2;24011:12;23975:58;:::i;:::-;23969:3;23962:5;23958:15;23951:83;24053:3;24110:2;24106;24102:11;24089:25;24083:3;24076:5;24072:15;24065:50;24134:3;24173:46;24211:7;24206:2;24202;24198:11;24173:46;:::i;:::-;24164:6;24157:5;24153:18;24146:74;24252:52;24296:7;24290:3;24286:2;24282:12;24252:52;:::i;:::-;24247:2;24240:5;24236:14;24229:76;24351:3;24347:2;24343:12;24330:26;24314:42;;24381:2;24371:8;24368:16;24365:36;;;24397:1;24394;24387:12;24365:36;24433:58;24483:7;24472:8;24468:2;24464:17;24433:58;:::i;:::-;24417:14;;;24410:82;-1:-1:-1;24421:5:40;23029:1493;-1:-1:-1;;;;;23029:1493:40:o","linkReferences":{}},"methodIdentifiers":{"validateAccount((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"9029ad15","validateAccountAndReturn((bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address))":"c6478713"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"MinaAccountProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccount\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"internalType\":\"struct MinaAccountValidation.AlignedArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"validateAccountAndReturn\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"publicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"tokenIdKeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"balance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"receiptChainHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOdd\",\"type\":\"bool\"}],\"internalType\":\"struct MinaAccountValidation.CompressedECPoint\",\"name\":\"delegate\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"votingFor\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"initialMinimumBalance\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"cliffTime\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"cliffAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"vestingPeriod\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"vestingIncrement\",\"type\":\"uint64\"}],\"internalType\":\"struct MinaAccountValidation.Timing\",\"name\":\"timing\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"access\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"send\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"rreceive\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setDelegate\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setPermissions\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVerificationKeyAuth\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"setVerificationKeyUint\",\"type\":\"uint32\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setZkappUri\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"editActionState\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTokenSymbol\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"incrementNonce\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setVotingFor\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.AuthRequired\",\"name\":\"setTiming\",\"type\":\"uint8\"}],\"internalType\":\"struct MinaAccountValidation.Permissions\",\"name\":\"permissions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[8]\",\"name\":\"appState\",\"type\":\"bytes32[8]\"},{\"components\":[{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"maxProofsVerified\",\"type\":\"uint8\"},{\"internalType\":\"enum MinaAccountValidation.ProofsVerified\",\"name\":\"actualWrapDomainSize\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[7]\",\"name\":\"sigmaComm\",\"type\":\"tuple[7]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment[15]\",\"name\":\"coefficientsComm\",\"type\":\"tuple[15]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"genericComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"psmComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"completeAddComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"mulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"emulComm\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"x\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"y\",\"type\":\"bytes32\"}],\"internalType\":\"struct MinaAccountValidation.Commitment\",\"name\":\"endomulScalarComm\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.WrapIndex\",\"name\":\"wrapIndex\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.VerificationKey\",\"name\":\"verificationKey\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"zkappVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes32[5]\",\"name\":\"actionState\",\"type\":\"bytes32[5]\"},{\"internalType\":\"uint32\",\"name\":\"lastActionSlot\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"provedState\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"zkappUri\",\"type\":\"bytes\"}],\"internalType\":\"struct MinaAccountValidation.ZkappAccount\",\"name\":\"zkapp\",\"type\":\"tuple\"}],\"internalType\":\"struct MinaAccountValidation.Account\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaAccountValidation.sol\":\"MinaAccountValidation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"MinaAccountProvingSystemIdIsNotValid"},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct MinaAccountValidation.AlignedArgs","name":"args","type":"tuple","components":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}]}],"stateMutability":"view","type":"function","name":"validateAccountAndReturn","outputs":[{"internalType":"struct MinaAccountValidation.Account","name":"","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"publicKey","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"tokenIdKeyHash","type":"bytes32"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint64","name":"balance","type":"uint64"},{"internalType":"uint32","name":"nonce","type":"uint32"},{"internalType":"bytes32","name":"receiptChainHash","type":"bytes32"},{"internalType":"struct MinaAccountValidation.CompressedECPoint","name":"delegate","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bool","name":"isOdd","type":"bool"}]},{"internalType":"bytes32","name":"votingFor","type":"bytes32"},{"internalType":"struct MinaAccountValidation.Timing","name":"timing","type":"tuple","components":[{"internalType":"uint64","name":"initialMinimumBalance","type":"uint64"},{"internalType":"uint32","name":"cliffTime","type":"uint32"},{"internalType":"uint64","name":"cliffAmount","type":"uint64"},{"internalType":"uint32","name":"vestingPeriod","type":"uint32"},{"internalType":"uint64","name":"vestingIncrement","type":"uint64"}]},{"internalType":"struct MinaAccountValidation.Permissions","name":"permissions","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"access","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"send","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"rreceive","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setDelegate","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setPermissions","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVerificationKeyAuth","type":"uint8"},{"internalType":"uint32","name":"setVerificationKeyUint","type":"uint32"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setZkappUri","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"editActionState","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTokenSymbol","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"incrementNonce","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setVotingFor","type":"uint8"},{"internalType":"enum MinaAccountValidation.AuthRequired","name":"setTiming","type":"uint8"}]},{"internalType":"struct MinaAccountValidation.ZkappAccount","name":"zkapp","type":"tuple","components":[{"internalType":"bytes32[8]","name":"appState","type":"bytes32[8]"},{"internalType":"struct MinaAccountValidation.VerificationKey","name":"verificationKey","type":"tuple","components":[{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"maxProofsVerified","type":"uint8"},{"internalType":"enum MinaAccountValidation.ProofsVerified","name":"actualWrapDomainSize","type":"uint8"},{"internalType":"struct MinaAccountValidation.WrapIndex","name":"wrapIndex","type":"tuple","components":[{"internalType":"struct MinaAccountValidation.Commitment[7]","name":"sigmaComm","type":"tuple[7]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment[15]","name":"coefficientsComm","type":"tuple[15]","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"genericComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"psmComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"completeAddComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"mulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"emulComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]},{"internalType":"struct MinaAccountValidation.Commitment","name":"endomulScalarComm","type":"tuple","components":[{"internalType":"bytes32","name":"x","type":"bytes32"},{"internalType":"bytes32","name":"y","type":"bytes32"}]}]}]},{"internalType":"uint32","name":"zkappVersion","type":"uint32"},{"internalType":"bytes32[5]","name":"actionState","type":"bytes32[5]"},{"internalType":"uint32","name":"lastActionSlot","type":"uint32"},{"internalType":"bool","name":"provedState","type":"bool"},{"internalType":"bytes","name":"zkappUri","type":"bytes"}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaAccountValidation.sol":"MinaAccountValidation"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file diff --git a/core/abi/MinaStateSettlement.json b/core/abi/MinaStateSettlement.json index b84761c7..3c7ee5a5 100644 --- a/core/abi/MinaStateSettlement.json +++ b/core/abi/MinaStateSettlement.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b5060405161078c38038061078c833981016040819052602c91606a565b602080546001600160a01b0319166001600160a01b03841617905580600060546001601060a2565b60108110606157606160c8565b01555060de9050565b60008060408385031215607c57600080fd5b82516001600160a01b0381168114609257600080fd5b6020939093015192949293505050565b8181038181111560c257634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61069f806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea264697066735822122072e3b8edd41bb99dfb03c65a3905740dec345a9bcf4fb45cdf63a948622b72e164736f6c63430008190033","sourceMap":"415:4822:38:-:0;;;1132:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1214:7;:57;;-1:-1:-1;;;;;;1214:57:38;-1:-1:-1;;;;;1214:57:38;;;;;1336:13;-1:-1:-1;1298:34:38;-1:-1:-1;627:2:38;1298:34;:::i;:::-;1281:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;415:4822:38;;-1:-1:-1;415:4822:38;14:359:39;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:39;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:39:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;415:4822:38;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b6040516100979190610391565b60405180910390f35b61008a610142565b6100bb6100b6366004610482565b610178565b005b6100c56102e6565b604051908152602001610097565b6100e66100e1366004610542565b61030c565b6040519015158152602001610097565b6100c5610363565b6100c5601081565b61010e610372565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a610372565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b6020820151600061018b6001601061055b565b6010811061019b5761019b610582565b015481146101ea578060006101b26001601061055b565b601081106101c2576101c2610582565b015460405163177b002560e31b81526004810192909252602482015260440160405180910390fd5b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610233908e9086908f908f908f908f908f908e90600401610598565b602060405180830381865afa158015610250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102749190610640565b905080156102c05760006010604087016102408801835b60108110156102b657825185558151845560019485019493840193602093840193909201910161028b565b50505050506102d9565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106102f560018261055b565b6010811061030557610305610582565b0154905090565b6000805b601081101561035a578260108261032860018361055b565b610332919061055b565b6010811061034257610342610582565b0154036103525750600192915050565b600101610310565b50600092915050565b6000806102f56001601061055b565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156103ba57815183526020928301929091019060010161039b565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126103ea57600080fd5b813567ffffffffffffffff80821115610405576104056103c3565b604051601f8301601f19908116603f0116810190828211818310171561042d5761042d6103c3565b8160405283815286602085880101111561044657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b038116811461047d57600080fd5b919050565b600080600080600080600080610100898b03121561049f57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff19811681146104ca57600080fd5b955060608901359450608089013567ffffffffffffffff808211156104ee57600080fd5b6104fa8c838d016103d9565b955060a08b0135945060c08b013591508082111561051757600080fd5b506105248b828c016103d9565b92505061053360e08a01610466565b90509295985092959890939650565b60006020828403121561055457600080fd5b5035919050565b8181038181111561057c57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a60208501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b808310156105fa578783018201518584016101200152918101916105db565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261063360e08301846001600160a01b03169052565b9998505050505050505050565b60006020828403121561065257600080fd5b8151801515811461066257600080fd5b939250505056fea264697066735822122072e3b8edd41bb99dfb03c65a3905740dec345a9bcf4fb45cdf63a948622b72e164736f6c63430008190033","sourceMap":"415:4822:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:170;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2060:172;;;:::i;2679:2556::-;;;;;;:::i;:::-;;:::i;:::-;;1612:137;;;:::i;:::-;;;2776:25:39;;;2764:2;2749:18;1612:137:38;2630:177:39;2308:365:38;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:39;;3155:22;3137:41;;3125:2;3110:18;2308:365:38;2997:187:39;1416:135:38;;;:::i;570:59::-;;627:2;570:59;;1819:170;1897:46;;:::i;:::-;1959:23;;;;;;;;;;;-1:-1:-1;;1959:23:38;;-1:-1:-1;1959:23:38;;;;;;;;;;;;;;;;;;;;;;;;1819:170;:::o;2060:172::-;2139:46;;:::i;:::-;2201:24;;;;;;;;;;2208:17;2201:24;;;;;;2208:17;;2201:24;;;;;;;;;;;;;;;;2060:172;:::o;2679:2556::-;3140:4;3126:19;;3120:26;3023:34;3242;3275:1;627:2;3242:34;:::i;:::-;3225:52;;;;;;;:::i;:::-;;;3183:26;:94;3166:297;;3342:26;3386:16;3403:34;3436:1;627:2;3403:34;:::i;:::-;3386:52;;;;;;;:::i;:::-;;;3309:143;;-1:-1:-1;;;3309:143:38;;;;;3907:25:39;;;;3948:18;;;3941:34;3880:18;;3309:143:38;;;;;;;3166:297;3502:19;;;;;;;;;;3558:7;;:304;;-1:-1:-1;;;3558:304:38;;3473:26;;-1:-1:-1;;;;;3558:7:38;;:28;;:304;;3600:15;;3502:19;;3661:30;;3705:18;;3737:15;;3766:11;;3791:26;;3831:21;;3558:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3532:330;;3877:18;3873:1356;;;4015:21;4073:22;4363:2;4349:17;;4498:115;;;4015:21;4631:516;4692:30;4689:1;4686:37;4631:516;;;4821:18;;4801:39;;4994:19;;4973:41;;4949:1;4932:19;;;;5109:20;;;;4893:2;4876:20;;;;5051:21;;;;4751:9;4631:516;;;4635:50;;;;;3873:1356;;;5198:20;;-1:-1:-1;;;5198:20:38;;;;;;;;;;;3873:1356;3013:2222;;;2679:2556;;;;;;;;:::o;1612:137::-;1663:7;1689:17;1707:34;1740:1;1689:17;1707:34;:::i;:::-;1689:53;;;;;;;:::i;:::-;;;1682:60;;1612:137;:::o;2308:365::-;2377:4;;2393:252;627:2;2413:1;:34;2393:252;;;2566:10;2489:17;2544:1;2507:34;2540:1;2489:17;2507:34;:::i;:::-;:38;;;;:::i;:::-;2489:57;;;;;;;:::i;:::-;;;:87;2468:167;;-1:-1:-1;2616:4:38;;2308:365;-1:-1:-1;;2308:365:38:o;2468:167::-;2449:3;;2393:252;;;-1:-1:-1;2661:5:38;;2308:365;-1:-1:-1;;2308:365:38:o;1416:135::-;1466:7;;1509:34;1542:1;627:2;1509:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:39:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:39;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:39;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:39;1893:18;;1880:32;;-1:-1:-1;1962:2:39;1947:18;;1934:32;-1:-1:-1;;1995:43:39;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:39;2113:18;;2100:32;;-1:-1:-1;2183:3:39;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:39;;2812:180;-1:-1:-1;2812:180:39:o;3371:225::-;3438:9;;;3459:11;;;3456:134;;;3512:10;3507:3;3503:20;3500:1;3493:31;3547:4;3544:1;3537:15;3575:4;3572:1;3565:15;3456:134;3371:225;;;;:::o;3601:127::-;3662:10;3657:3;3653:20;3650:1;3643:31;3693:4;3690:1;3683:15;3717:4;3714:1;3707:15;4095:1142;4401:4;4430:3;4460:6;4449:9;4442:25;4486:2;4524:6;4519:2;4508:9;4504:18;4497:34;4567:6;4562:2;4551:9;4547:18;4540:34;4626:26;4622:31;4614:6;4610:44;4605:2;4594:9;4590:18;4583:72;4692:6;4686:3;4675:9;4671:19;4664:35;4736:2;4730:3;4719:9;4715:19;4708:31;4768:6;4762:13;4811:6;4806:2;4795:9;4791:18;4784:34;4836:1;4827:10;;4846:141;4860:6;4857:1;4854:13;4846:141;;;4956:14;;;4952:23;;4946:30;4921:17;;;4940:3;4917:27;4910:67;4875:10;;;;4846:141;;;5006:3;4996:13;;5058:1;5053:2;5044:6;5033:9;5029:22;5025:31;5018:42;5128:2;5121;5117:7;5112:2;5104:6;5100:15;5096:29;5085:9;5081:45;5077:54;5069:62;;;;;5168:6;5162:3;5151:9;5147:19;5140:35;5184:47;5226:3;5215:9;5211:19;5203:6;-1:-1:-1;;;;;4052:31:39;4040:44;;3986:104;5184:47;4095:1142;;;;;;;;;;;:::o;5242:277::-;5309:6;5362:2;5350:9;5341:7;5337:23;5333:32;5330:52;;;5378:1;5375;5368:12;5330:52;5410:9;5404:16;5463:5;5456:13;5449:21;5442:5;5439:32;5429:60;;5485:1;5482;5475:12;5429:60;5508:5;5242:277;-1:-1:-1;;;5242:277:39:o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd\",\"dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd","urls":["bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd","dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y"],"license":"UNLICENSED"}},"version":1},"id":38} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_alignedServiceAddr","type":"address","internalType":"address payable"},{"name":"_tipStateHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainLedgerHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getChainStateHashes","inputs":[],"outputs":[{"name":"","type":"bytes32[16]","internalType":"bytes32[16]"}],"stateMutability":"view"},{"type":"function","name":"getTipLedgerHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTipStateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"isLedgerVerified","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateChain","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"MinaProvingSystemIdIsNotValid","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NewStateIsNotValid","inputs":[]},{"type":"error","name":"TipStateIsWrong","inputs":[{"name":"pubInputTipStateHash","type":"bytes32","internalType":"bytes32"},{"name":"tipStatehash","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161080638038061080683398101604081905261002f91610073565b602080546001600160a01b0319166001600160a01b038416179055806000610059600160106100ad565b60108110610069576100696100d4565b0155506100ea9050565b6000806040838503121561008657600080fd5b82516001600160a01b038116811461009d57600080fd5b6020939093015192949293505050565b818103818111156100ce57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b61070d806100f96000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103df565b60405180910390f35b61008a610142565b6100bb6100b63660046104d0565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610590565b610350565b6040519015158152602001610097565b6100c56103b1565b6100c5601081565b61010e6103c0565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103c0565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d3600160106105bf565b601081106101e3576101e36105d8565b0154811461022e578060006101fa600160106105bf565b6010811061020a5761020a6105d8565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105ee565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610695565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106103396001826105bf565b60108110610349576103496105d8565b0154905090565b6000805b60108110156103a8578260108261036c6001836105bf565b61037691906105bf565b60108110610386576103866105d8565b0154036103965750600192915050565b806103a0816106be565b915050610354565b50600092915050565b600080610339600160106105bf565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104085781518352602092830192909101906001016103e9565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261043857600080fd5b813567ffffffffffffffff8082111561045357610453610411565b604051601f8301601f19908116603f0116810190828211818310171561047b5761047b610411565b8160405283815286602085880101111561049457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104cb57600080fd5b919050565b600080600080600080600080610100898b0312156104ed57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461051857600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053c57600080fd5b6105488c838d01610427565b955060a08b0135945060c08b013591508082111561056557600080fd5b506105728b828c01610427565b92505061058160e08a016104b4565b90509295985092959890939650565b6000602082840312156105a257600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105d2576105d26105a9565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561064f57878301820151858401610120015291810191610630565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261068860e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156106a757600080fd5b815180151581146106b757600080fd5b9392505050565b6000600182016106d0576106d06105a9565b506001019056fea2646970667358221220167c05ed7326b8ae71040de58bfb55cc0472b92bb5177b50f7f644064d7cd5b164736f6c63430008150033","sourceMap":"473:4848:39:-:0;;;1363:224;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1445:7;:57;;-1:-1:-1;;;;;;1445:57:39;-1:-1:-1;;;;;1445:57:39;;;;;1567:13;-1:-1:-1;1529:34:39;-1:-1:-1;858:2:39;1529:34;:::i;:::-;1512:52;;;;;;;:::i;:::-;;:68;-1:-1:-1;473:4848:39;;-1:-1:-1;473:4848:39;14:359:40;101:6;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:40;;239:42;;229:70;;295:1;292;285:12;229:70;363:2;348:18;;;;342:25;318:5;;342:25;;-1:-1:-1;;;14:359:40:o;378:225::-;445:9;;;466:11;;;463:134;;;519:10;514:3;510:20;507:1;500:31;554:4;551:1;544:15;582:4;579:1;572:15;463:134;378:225;;;;:::o;608:127::-;669:10;664:3;660:20;657:1;650:31;700:4;697:1;690:15;724:4;721:1;714:15;608:127;473:4848:39;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80633886c09b1161005b5780633886c09b146100bd5780633e16b011146100d3578063b8184745146100f6578063fb299cd8146100fe57600080fd5b806303f93e50146100825780632bc4f8d9146100a057806337baff0f146100a8575b600080fd5b61008a610106565b60405161009791906103df565b60405180910390f35b61008a610142565b6100bb6100b63660046104d0565b610178565b005b6100c561032a565b604051908152602001610097565b6100e66100e1366004610590565b610350565b6040519015158152602001610097565b6100c56103b1565b6100c5601081565b61010e6103c0565b604080516102008101918290529060009060109082845b815481526020019060010190808311610125575050505050905090565b61014a6103c0565b6040805161020081019182905260108054825290918190601160208501808311610125575050505050905090565b7fee2a4bc7db81da2b7164e56b3649b1e2a09c58c455b15dabddd9146c7582cebc87146101c05760405163c35f1ecd60e01b8152600481018890526024015b60405180910390fd5b602082015160006101d3600160106105bf565b601081106101e3576101e36105d8565b0154811461022e578060006101fa600160106105bf565b6010811061020a5761020a6105d8565b015460405163177b002560e31b8152600481019290925260248201526044016101b7565b825160208085019190912090546040516306045a9160e01b81526000916001600160a01b0316906306045a9190610277908e9086908f908f908f908f908f908e906004016105ee565b602060405180830381865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610695565b905080156103045760006010604087016102408801835b60108110156102fa5782518555815184556001948501949384019360209384019390920191016102cf565b505050505061031d565b604051630114602f60e41b815260040160405180910390fd5b5050505050505050505050565b600060106103396001826105bf565b60108110610349576103496105d8565b0154905090565b6000805b60108110156103a8578260108261036c6001836105bf565b61037691906105bf565b60108110610386576103866105d8565b0154036103965750600192915050565b806103a0816106be565b915050610354565b50600092915050565b600080610339600160106105bf565b6040518061020001604052806010906020820280368337509192915050565b6102008101818360005b60108110156104085781518352602092830192909101906001016103e9565b50505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261043857600080fd5b813567ffffffffffffffff8082111561045357610453610411565b604051601f8301601f19908116603f0116810190828211818310171561047b5761047b610411565b8160405283815286602085880101111561049457600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b03811681146104cb57600080fd5b919050565b600080600080600080600080610100898b0312156104ed57600080fd5b883597506020890135965060408901356bffffffffffffffffffffffff198116811461051857600080fd5b955060608901359450608089013567ffffffffffffffff8082111561053c57600080fd5b6105488c838d01610427565b955060a08b0135945060c08b013591508082111561056557600080fd5b506105728b828c01610427565b92505061058160e08a016104b4565b90509295985092959890939650565b6000602082840312156105a257600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105d2576105d26105a9565b92915050565b634e487b7160e01b600052603260045260246000fd5b60006101008a835260208a818501528960408501526bffffffffffffffffffffffff19891660608501528760808501528160a085015286518083860152600092505b8083101561064f57878301820151858401610120015291810191610630565b6101209250600083828701015282601f19601f83011686010193505050508360c083015261068860e08301846001600160a01b03169052565b9998505050505050505050565b6000602082840312156106a757600080fd5b815180151581146106b757600080fd5b9392505050565b6000600182016106d0576106d06105a9565b506001019056fea2646970667358221220167c05ed7326b8ae71040de58bfb55cc0472b92bb5177b50f7f644064d7cd5b164736f6c63430008150033","sourceMap":"473:4848:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2050:142;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:144;;;:::i;2808:2511::-;;;;;;:::i;:::-;;:::i;:::-;;1843:137;;;:::i;:::-;;;2776:25:40;;;2764:2;2749:18;1843:137:39;2630:177:40;2483:319:39;;;;;;:::i;:::-;;:::i;:::-;;;3162:14:40;;3155:22;3137:41;;3125:2;3110:18;2483:319:39;2997:187:40;1647:135:39;;;:::i;801:59::-;;858:2;801:59;;2050:142;2104:46;;:::i;:::-;2162:23;;;;;;;;;;;-1:-1:-1;;2162:23:39;;-1:-1:-1;2162:23:39;;;;;;;;;;;;;;;;;;;;;;;;2050:142;:::o;2263:144::-;2318:46;;:::i;:::-;2376:24;;;;;;;;;;2383:17;2376:24;;;;;;2383:17;;2376:24;;;;;;;;;;;;;;;;2263:144;:::o;2808:2511::-;608:66;3156:56;;3152:155;;3235:61;;-1:-1:-1;;;3235:61:39;;;;;2776:25:40;;;2749:18;;3235:61:39;;;;;;;;3152:155;3434:4;3420:19;;3414:26;3317:34;3511;3544:1;858:2;3511:34;:::i;:::-;3494:52;;;;;;;:::i;:::-;;;3464:26;:82;3460:217;;3585:26;3613:16;3630:34;3663:1;858:2;3630:34;:::i;:::-;3613:52;;;;;;;:::i;:::-;;;3569:97;;-1:-1:-1;;;3569:97:39;;;;;3942:25:40;;;;3983:18;;;3976:34;3915:18;;3569:97:39;3768:248:40;3460:217:39;3716:19;;;;;;;;;;3772:7;;:304;;-1:-1:-1;;;3772:304:39;;3687:26;;-1:-1:-1;;;;;3772:7:39;;:28;;:304;;3814:15;;3716:19;;3875:30;;3919:18;;3951:15;;3980:11;;4005:26;;4045:21;;3772:304;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3746:330;;4091:18;4087:1226;;;4229:21;4287:22;4577:2;4563:17;;4712:57;;;4229:21;4787:444;4812:30;4809:1;4806:37;4787:444;;;4905:18;;4885:39;;5078:19;;5057:41;;5033:1;5016:19;;;;5193:20;;;;4977:2;4960:20;;;;5135:21;;;;4851:9;4787:444;;;4791:14;;;;;4087:1226;;;5282:20;;-1:-1:-1;;;5282:20:39;;;;;;;;;;;4087:1226;3142:2177;;;2808:2511;;;;;;;;:::o;1843:137::-;1894:7;1920:17;1938:34;1971:1;1920:17;1938:34;:::i;:::-;1920:53;;;;;;;:::i;:::-;;;1913:60;;1843:137;:::o;2483:319::-;2552:4;;2568:206;858:2;2588:1;:34;2568:206;;;2708:10;2647:17;2702:1;2665:34;2698:1;2647:17;2665:34;:::i;:::-;:38;;;;:::i;:::-;2647:57;;;;;;;:::i;:::-;;;:71;2643:121;;-1:-1:-1;2745:4:39;;2483:319;-1:-1:-1;;2483:319:39:o;2643:121::-;2624:3;;;;:::i;:::-;;;;2568:206;;;-1:-1:-1;2790:5:39;;2483:319;-1:-1:-1;;2483:319:39:o;1647:135::-;1697:7;;1740:34;1773:1;858:2;1740:34;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:497:40:-;196:3;181:19;;185:9;277:6;154:4;311:194;325:4;322:1;319:11;311:194;;;384:13;;372:26;;421:4;445:12;;;;480:15;;;;345:1;338:9;311:194;;;315:3;;;14:497;;;;:::o;516:127::-;577:10;572:3;568:20;565:1;558:31;608:4;605:1;598:15;632:4;629:1;622:15;648:718;690:5;743:3;736:4;728:6;724:17;720:27;710:55;;761:1;758;751:12;710:55;797:6;784:20;823:18;860:2;856;853:10;850:36;;;866:18;;:::i;:::-;941:2;935:9;909:2;995:13;;-1:-1:-1;;991:22:40;;;1015:2;987:31;983:40;971:53;;;1039:18;;;1059:22;;;1036:46;1033:72;;;1085:18;;:::i;:::-;1125:10;1121:2;1114:22;1160:2;1152:6;1145:18;1206:3;1199:4;1194:2;1186:6;1182:15;1178:26;1175:35;1172:55;;;1223:1;1220;1213:12;1172:55;1287:2;1280:4;1272:6;1268:17;1261:4;1253:6;1249:17;1236:54;1334:1;1327:4;1322:2;1314:6;1310:15;1306:26;1299:37;1354:6;1345:15;;;;;;648:718;;;;:::o;1371:173::-;1439:20;;-1:-1:-1;;;;;1488:31:40;;1478:42;;1468:70;;1534:1;1531;1524:12;1468:70;1371:173;;;:::o;1549:1076::-;1689:6;1697;1705;1713;1721;1729;1737;1745;1798:3;1786:9;1777:7;1773:23;1769:33;1766:53;;;1815:1;1812;1805:12;1766:53;1838:23;;;-1:-1:-1;1908:2:40;1893:18;;1880:32;;-1:-1:-1;1962:2:40;1947:18;;1934:32;-1:-1:-1;;1995:43:40;;1985:54;;1975:82;;2053:1;2050;2043:12;1975:82;2076:5;-1:-1:-1;2128:2:40;2113:18;;2100:32;;-1:-1:-1;2183:3:40;2168:19;;2155:33;2207:18;2237:14;;;2234:34;;;2264:1;2261;2254:12;2234:34;2287:49;2328:7;2319:6;2308:9;2304:22;2287:49;:::i;:::-;2277:59;;2383:3;2372:9;2368:19;2355:33;2345:43;;2441:3;2430:9;2426:19;2413:33;2397:49;;2471:2;2461:8;2458:16;2455:36;;;2487:1;2484;2477:12;2455:36;;2510:51;2553:7;2542:8;2531:9;2527:24;2510:51;:::i;:::-;2500:61;;;2580:39;2614:3;2603:9;2599:19;2580:39;:::i;:::-;2570:49;;1549:1076;;;;;;;;;;;:::o;2812:180::-;2871:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;-1:-1:-1;2963:23:40;;2812:180;-1:-1:-1;2812:180:40:o;3371:127::-;3432:10;3427:3;3423:20;3420:1;3413:31;3463:4;3460:1;3453:15;3487:4;3484:1;3477:15;3503:128;3570:9;;;3591:11;;;3588:37;;;3605:18;;:::i;:::-;3503:128;;;;:::o;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;4130:1142;4436:4;4465:3;4495:6;4484:9;4477:25;4521:2;4559:6;4554:2;4543:9;4539:18;4532:34;4602:6;4597:2;4586:9;4582:18;4575:34;4661:26;4657:31;4649:6;4645:44;4640:2;4629:9;4625:18;4618:72;4727:6;4721:3;4710:9;4706:19;4699:35;4771:2;4765:3;4754:9;4750:19;4743:31;4803:6;4797:13;4846:6;4841:2;4830:9;4826:18;4819:34;4871:1;4862:10;;4881:141;4895:6;4892:1;4889:13;4881:141;;;4991:14;;;4987:23;;4981:30;4956:17;;;4975:3;4952:27;4945:67;4910:10;;;;4881:141;;;5041:3;5031:13;;5093:1;5088:2;5079:6;5068:9;5064:22;5060:31;5053:42;5163:2;5156;5152:7;5147:2;5139:6;5135:15;5131:29;5120:9;5116:45;5112:54;5104:62;;;;;5203:6;5197:3;5186:9;5182:19;5175:35;5219:47;5261:3;5250:9;5246:19;5238:6;-1:-1:-1;;;;;4087:31:40;4075:44;;4021:104;5219:47;4130:1142;;;;;;;;;;;:::o;5277:277::-;5344:6;5397:2;5385:9;5376:7;5372:23;5368:32;5365:52;;;5413:1;5410;5403:12;5365:52;5445:9;5439:16;5498:5;5491:13;5484:21;5477:5;5474:32;5464:60;;5520:1;5517;5510:12;5464:60;5543:5;5277:277;-1:-1:-1;;;5277:277:40:o;5559:135::-;5598:3;5619:17;;;5616:43;;5639:18;;:::i;:::-;-1:-1:-1;5686:1:40;5675:13;;5559:135::o","linkReferences":{}},"methodIdentifiers":{"BRIDGE_TRANSITION_FRONTIER_LEN()":"fb299cd8","getChainLedgerHashes()":"2bc4f8d9","getChainStateHashes()":"03f93e50","getTipLedgerHash()":"3886c09b","getTipStateHash()":"b8184745","isLedgerVerified(bytes32)":"3e16b011","updateChain(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"37baff0f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_alignedServiceAddr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_tipStateHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"MinaProvingSystemIdIsNotValid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewStateIsNotValid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"pubInputTipStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tipStatehash\",\"type\":\"bytes32\"}],\"name\":\"TipStateIsWrong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BRIDGE_TRANSITION_FRONTIER_LEN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainLedgerHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainStateHashes\",\"outputs\":[{\"internalType\":\"bytes32[16]\",\"name\":\"\",\"type\":\"bytes32[16]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipLedgerHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTipStateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"isLedgerVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"updateChain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Mina to Ethereum Bridge's smart contract for verifying and storing a valid state chain.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"BRIDGE_TRANSITION_FRONTIER_LEN()\":{\"notice\":\"The length of the verified state chain (also called the bridge's transition frontier) to store.\"},\"getChainLedgerHashes()\":{\"notice\":\"Returns the latest verified chain ledger hashes.\"},\"getChainStateHashes()\":{\"notice\":\"Returns the latest verified chain state hashes.\"},\"getTipLedgerHash()\":{\"notice\":\"Returns the last verified ledger hash.\"},\"getTipStateHash()\":{\"notice\":\"Returns the last verified state hash.\"},\"isLedgerVerified(bytes32)\":{\"notice\":\"Returns true if this snarked ledger hash was bridged.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/MinaStateSettlement.sol\":\"MinaStateSettlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/aligned_layer/\",\":ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_alignedServiceAddr","type":"address"},{"internalType":"bytes32","name":"_tipStateHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"type":"error","name":"MinaProvingSystemIdIsNotValid"},{"inputs":[],"type":"error","name":"NewStateIsNotValid"},{"inputs":[{"internalType":"bytes32","name":"pubInputTipStateHash","type":"bytes32"},{"internalType":"bytes32","name":"tipStatehash","type":"bytes32"}],"type":"error","name":"TipStateIsWrong"},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE_TRANSITION_FRONTIER_LEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainLedgerHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainStateHashes","outputs":[{"internalType":"bytes32[16]","name":"","type":"bytes32[16]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipLedgerHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTipStateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isLedgerVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateChain"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE_TRANSITION_FRONTIER_LEN()":{"notice":"The length of the verified state chain (also called the bridge's transition frontier) to store."},"getChainLedgerHashes()":{"notice":"Returns the latest verified chain ledger hashes."},"getChainStateHashes()":{"notice":"Returns the latest verified chain state hashes."},"getTipLedgerHash()":{"notice":"Returns the last verified ledger hash."},"getTipStateHash()":{"notice":"Returns the last verified state hash."},"isLedgerVerified(bytes32)":{"notice":"Returns true if this snarked ledger hash was bridged."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/aligned_layer/","ds-test/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/MinaStateSettlement.sol":"MinaStateSettlement"},"evmVersion":"paris","libraries":{}},"sources":{"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"}},"version":1},"id":39} \ No newline at end of file diff --git a/core/src/aligned.rs b/core/src/aligned.rs index f8aa7ae9..72574359 100644 --- a/core/src/aligned.rs +++ b/core/src/aligned.rs @@ -72,7 +72,8 @@ pub async fn submit( proving_system, proof, pub_input: Some(pub_input), - verification_key: None, + // Use this instead of `None` to force Aligned to include the commitment to the proving system ID (valid for Aligned 0.7.0) + verification_key: Some(vec![]), vm_program_code: None, proof_generator_addr, }; diff --git a/example/app/abi/SudokuValidity.json b/example/app/abi/SudokuValidity.json index 4110fc9b..2a3d2811 100644 --- a/example/app/abi/SudokuValidity.json +++ b/example/app/abi/SudokuValidity.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x60806040526000600255348015601457600080fd5b50604051610e6c380380610e6c833981016040819052603191607c565b600080546001600160a01b039384166001600160a01b0319918216179091556001805492909316911617905560aa565b80516001600160a01b0381168114607757600080fd5b919050565b60008060408385031215608e57600080fd5b6095836061565b915060a1602084016061565b90509250929050565b610db3806100b96000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea264697066735822122033c018a706b250ce77799ea25a95f87fd35571e5a4639f05451f725ad3a01fb864736f6c63430008190033","sourceMap":"186:2992:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2992;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2992:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5d565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b604052806103c0850186811115610a1457600080fd5b855b81811015610a3757610a288882610949565b83526020909201918401610a16565b50919695505050505050565b6000818303610740811215610a5757600080fd5b610a5f610324565b9150610a6a8361093a565b8252610a786020840161093a565b602083015261070080603f1983011215610a9157600080fd5b610a99610346565b9150610aa88560408601610979565b8252610ab88561020086016109c9565b6020830152610acb856105c08601610949565b6040830152610ade856106008601610949565b6060830152610af1856106408601610949565b6080830152610b04856106808601610949565b60a0830152610b17856106c08601610949565b60c0830152610b2885828601610949565b60e083015250604082015292915050565b600082601f830112610b4a57600080fd5b60405160a081018181106001600160401b0382111715610b6c57610b6c6102c3565b6040528060a0840185811115610b8157600080fd5b845b81811015610b9b578035835260209283019201610b83565b509195945050505050565b60006109608284031215610bb957600080fd5b610bc1610369565b9050610bcd83836108e9565b8152610bdd836101008401610a43565b6020820152610bef6108408301610725565b6040820152610c02836108608401610b39565b6060820152610c146109008301610725565b6080820152610c2661092083016106ca565b60a08201526109408201356001600160401b03811115610c4557600080fd5b610c51848285016103ae565b60c08301525092915050565b600060208284031215610c6f57600080fd5b81356001600160401b0380821115610c8657600080fd5b908301906103c08286031215610c9b57600080fd5b610ca361038b565b610cad86846106d5565b815260408301356020820152606083013582811115610ccb57600080fd5b610cd7878286016103ae565b604083015250610ce96080840161070e565b6060820152610cfa60a08401610725565b608082015260c083013560a0820152610d168660e085016106d5565b60c08201526101208084013560e0830152610140610d3688828701610739565b610100840152610d4a886101e087016107d8565b828401526103a0850135915083821115610d6357600080fd5b610d6f88838701610ba6565b90830152509594505050505056fea264697066735822122033c018a706b250ce77799ea25a95f87fd35571e5a4639f05451f725ad3a01fb864736f6c63430008190033","sourceMap":"186:2992:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1710;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1710;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:348;;;;;;;;2100:15;2036:348;;;;2133:30;2036:348;;;;2181:18;2036:348;;;;;;;2217:15;2036:348;;;;2250:11;2036:348;;;;2279:26;2036:348;;;;2323:8;;2036:348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:348:40;;;-1:-1:-1;;;;;;2036:348:40;;;;;;;;;;;2400:17;;:39;;-1:-1:-1;;;2400:39:40;;1988:396;;-1:-1:-1;2400:17:40;;:33;;:39;;1988:396;;2400:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2395:99;;2462:21;;-1:-1:-1;;;2462:21:40;;;;;;;;;;;2395:99;2504:29;;2536:17;:8;2545:6;2536:8;;:17;:::i;:::-;2504:49;;-1:-1:-1;2504:49:40;-1:-1:-1;2563:44:40;2610:93;;;;2504:49;2610:93;:::i;:::-;3015:13;;;;:22;:25;;;:13;;-1:-1:-1;3015:30:40;3011:159;;3090:15;3061:26;:44;3011:159;;;3143:16;;-1:-1:-1;;;3143:16:40;;;;;;;;;;;3011:159;1807:1369;;;;;1466:1710;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11992:2;11985:22;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60\",\"dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd\",\"dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xd3474b3062f2ce59256d8fdbd71a3bd29a07912dced42ed905d33074b2d248ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://afcc7a04762ad13cd9c7542e8460ae24a72ae1370b9090673ddbb9f99657a55c\",\"dweb:/ipfs/Qma2NmLuTvw7p2zQVnTU1ZYfbeqQNx5uJ9t3GdwRYiQ9J3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x5b7625bbb5f9212b2854388f6199ccaf9a66162565c163f21eafa9f5336d9400","urls":["bzz-raw://324ec9e436980c0d13005331fcd844d3bb4e0790931b70b295b5d380fcd91f60","dweb:/ipfs/QmVuqjFUdaCpAKDSCmVHnvNtkpGSeC1wQ7btnHr22FES43"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0xa94c6ffba15f8574973e3c6c02d7b776e5dece39b1d8ae486d7a35f72b8296bd","urls":["bzz-raw://f38e915b877812373d3b844b2c18efec627e43bf45daff6ab7f9c66cb7a5cdbd","dweb:/ipfs/QmYXPDpepiy2HpJj7zhba6KoMBQkCB7PKowEqqdRxRL18Y"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xd3474b3062f2ce59256d8fdbd71a3bd29a07912dced42ed905d33074b2d248ad","urls":["bzz-raw://afcc7a04762ad13cd9c7542e8460ae24a72ae1370b9090673ddbb9f99657a55c","dweb:/ipfs/Qma2NmLuTvw7p2zQVnTU1ZYfbeqQNx5uJ9t3GdwRYiQ9J3"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_stateSettlementAddr","type":"address","internalType":"address"},{"name":"_accountValidationAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLatestSolutionTimestamp","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSolution","inputs":[{"name":"proofCommitment","type":"bytes32","internalType":"bytes32"},{"name":"provingSystemAuxDataCommitment","type":"bytes32","internalType":"bytes32"},{"name":"proofGeneratorAddr","type":"bytes20","internalType":"bytes20"},{"name":"batchMerkleRoot","type":"bytes32","internalType":"bytes32"},{"name":"merkleProof","type":"bytes","internalType":"bytes"},{"name":"verificationDataBatchIndex","type":"uint256","internalType":"uint256"},{"name":"pubInput","type":"bytes","internalType":"bytes"},{"name":"batcherPaymentService","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"IncorrectZkappAccount","inputs":[{"name":"verificationKeyHash","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidLedger","inputs":[{"name":"ledgerHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidZkappAccount","inputs":[]},{"type":"error","name":"UnsolvedSudoku","inputs":[]}],"bytecode":{"object":"0x6080604052600060025534801561001557600080fd5b50604051610e75380380610e7583398101604081905261003491610081565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100b4565b80516001600160a01b038116811461007c57600080fd5b919050565b6000806040838503121561009457600080fd5b61009d83610065565b91506100ab60208401610065565b90509250929050565b610db2806100c36000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5c565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b8252806103c0850186811115610a1357600080fd5b855b81811015610a3657610a278882610949565b83526020909201918401610a15565b50919695505050505050565b6000818303610740811215610a5657600080fd5b610a5e610324565b9150610a698361093a565b8252610a776020840161093a565b602083015261070080603f1983011215610a9057600080fd5b610a98610346565b9150610aa78560408601610979565b8252610ab78561020086016109c9565b6020830152610aca856105c08601610949565b6040830152610add856106008601610949565b6060830152610af0856106408601610949565b6080830152610b03856106808601610949565b60a0830152610b16856106c08601610949565b60c0830152610b2785828601610949565b60e083015250604082015292915050565b600082601f830112610b4957600080fd5b60405160a081018181106001600160401b0382111715610b6b57610b6b6102c3565b6040528060a0840185811115610b8057600080fd5b845b81811015610b9a578035835260209283019201610b82565b509195945050505050565b60006109608284031215610bb857600080fd5b610bc0610369565b9050610bcc83836108e9565b8152610bdc836101008401610a42565b6020820152610bee6108408301610725565b6040820152610c01836108608401610b38565b6060820152610c136109008301610725565b6080820152610c2561092083016106ca565b60a08201526109408201356001600160401b03811115610c4457600080fd5b610c50848285016103ae565b60c08301525092915050565b600060208284031215610c6e57600080fd5b81356001600160401b0380821115610c8557600080fd5b908301906103c08286031215610c9a57600080fd5b610ca261038b565b610cac86846106d5565b815260408301356020820152606083013582811115610cca57600080fd5b610cd6878286016103ae565b604083015250610ce86080840161070e565b6060820152610cf960a08401610725565b608082015260c083013560a0820152610d158660e085016106d5565b60c08201526101208084013560e0830152610140610d3588828701610739565b610100840152610d49886101e087016107d8565b828401526103a0850135915083821115610d6257600080fd5b610d6e88838701610ba5565b90830152509594505050505056fea2646970667358221220823a7af578e2e8f3190cf0818370302bcc4cdb3b52ac9f8d08a657c947835d0a64736f6c63430008150033","sourceMap":"186:2909:40:-:0;;;978:1;941:38;;986:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:15;:59;;-1:-1:-1;;;;;1070:59:40;;;-1:-1:-1;;;;;;1070:59:40;;;;;;;;1139:65;;;;;;;;;;;186:2909;;14:177:41;93:13;;-1:-1:-1;;;;;135:31:41;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;186:2909:40;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630edb271214610046578063319453e81461005b578063c681e9a314610094575b600080fd5b61005961005436600461049e565b61009c565b005b6100827f2add19f6522426ca4bcf032dbee2987ac6f248ae68f716e68085d004645f62c381565b60405190815260200160405180910390f35b600254610082565b60006100ab6020828587610563565b6100b49161058d565b600054604051633e16b01160e01b8152600481018390529192506001600160a01b031690633e16b01190602401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906105bd565b61014657604051633b78a2f560e11b81526004810182905260240160405180910390fd5b60006040518061010001604052808c81526020018b81526020018a6bffffffffffffffffffffffff1916815260200189815260200188815260200187815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252506001600160a01b03808616602090920191909152600154604051639029ad1560e01b81529293501690639029ad15906101fd908490600401610627565b602060405180830381865afa15801561021a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023e91906105bd565b61025b5760405163f281a18360e01b815260040160405180910390fd5b36600061026b866028818a610563565b9092509050600061027e83830184610c5c565b61014081015151602001519091501561029a57426002556102b3565b6040516351bc860760e11b815260040160405180910390fd5b5050505050505050505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156102fb576102fb6102c3565b60405290565b6040516101c081016001600160401b03811182821017156102fb576102fb6102c3565b604051606081016001600160401b03811182821017156102fb576102fb6102c3565b60405161010081016001600160401b03811182821017156102fb576102fb6102c3565b60405160e081016001600160401b03811182821017156102fb576102fb6102c3565b60405161016081016001600160401b03811182821017156102fb576102fb6102c3565b600082601f8301126103bf57600080fd5b81356001600160401b03808211156103d9576103d96102c3565b604051601f8301601f19908116603f01168101908282118183101715610401576104016102c3565b8160405283815286602085880101111561041a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008083601f84011261044c57600080fd5b5081356001600160401b0381111561046357600080fd5b60208301915083602082850101111561047b57600080fd5b9250929050565b80356001600160a01b038116811461049957600080fd5b919050565b60008060008060008060008060006101008a8c0312156104bd57600080fd5b8935985060208a0135975060408a01356bffffffffffffffffffffffff19811681146104e857600080fd5b965060608a0135955060808a01356001600160401b038082111561050b57600080fd5b6105178d838e016103ae565b965060a08c0135955060c08c013591508082111561053457600080fd5b506105418c828d0161043a565b9094509250610554905060e08b01610482565b90509295985092959850929598565b6000808585111561057357600080fd5b8386111561058057600080fd5b5050820193919092039150565b803560208310156105a657600019602084900360031b1b165b92915050565b80151581146105ba57600080fd5b50565b6000602082840312156105cf57600080fd5b81516105da816105ac565b9392505050565b6000815180845260005b81811015610607576020818501810151868301820152016105eb565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201526bffffffffffffffffffffffff19604083015116606082015260608201516080820152600060808301516101008060a085015261067d6101208501836105e1565b915060a085015160c085015260c0850151601f198584030160e08601526106a483826105e1565b92505060e08501516106c0828601826001600160a01b03169052565b5090949350505050565b8035610499816105ac565b6000604082840312156106e757600080fd5b6106ef6102d9565b9050813581526020820135610703816105ac565b602082015292915050565b80356001600160401b038116811461049957600080fd5b803563ffffffff8116811461049957600080fd5b600060a0828403121561074b57600080fd5b60405160a081018181106001600160401b038211171561076d5761076d6102c3565b60405290508061077c8361070e565b815261078a60208401610725565b602082015261079b6040840161070e565b60408201526107ac60608401610725565b60608201526107bd6080840161070e565b60808201525092915050565b80356005811061049957600080fd5b60006101c082840312156107eb57600080fd5b6107f3610301565b90506107fe826107c9565b815261080c602083016107c9565b602082015261081d604083016107c9565b604082015261082e606083016107c9565b606082015261083f608083016107c9565b608082015261085060a083016107c9565b60a082015261086160c083016107c9565b60c082015261087260e08301610725565b60e08201526101006108858184016107c9565b908201526101206108978382016107c9565b908201526101406108a98382016107c9565b908201526101606108bb8382016107c9565b908201526101806108cd8382016107c9565b908201526101a06108df8382016107c9565b9082015292915050565b600082601f8301126108fa57600080fd5b610902610346565b8061010084018581111561091557600080fd5b845b8181101561092f578035845260209384019301610917565b509095945050505050565b80356003811061049957600080fd5b60006040828403121561095b57600080fd5b6109636102d9565b9050813581526020820135602082015292915050565b600082601f83011261098a57600080fd5b610992610369565b806101c08401858111156109a557600080fd5b845b8181101561092f576109b98782610949565b84526020909301926040016109a7565b600082601f8301126109da57600080fd5b604080516101e081018181106001600160401b03821117156109fe576109fe6102c3565b8252806103c0850186811115610a1357600080fd5b855b81811015610a3657610a278882610949565b83526020909201918401610a15565b50919695505050505050565b6000818303610740811215610a5657600080fd5b610a5e610324565b9150610a698361093a565b8252610a776020840161093a565b602083015261070080603f1983011215610a9057600080fd5b610a98610346565b9150610aa78560408601610979565b8252610ab78561020086016109c9565b6020830152610aca856105c08601610949565b6040830152610add856106008601610949565b6060830152610af0856106408601610949565b6080830152610b03856106808601610949565b60a0830152610b16856106c08601610949565b60c0830152610b2785828601610949565b60e083015250604082015292915050565b600082601f830112610b4957600080fd5b60405160a081018181106001600160401b0382111715610b6b57610b6b6102c3565b6040528060a0840185811115610b8057600080fd5b845b81811015610b9a578035835260209283019201610b82565b509195945050505050565b60006109608284031215610bb857600080fd5b610bc0610369565b9050610bcc83836108e9565b8152610bdc836101008401610a42565b6020820152610bee6108408301610725565b6040820152610c01836108608401610b38565b6060820152610c136109008301610725565b6080820152610c2561092083016106ca565b60a08201526109408201356001600160401b03811115610c4457600080fd5b610c50848285016103ae565b60c08301525092915050565b600060208284031215610c6e57600080fd5b81356001600160401b0380821115610c8557600080fd5b908301906103c08286031215610c9a57600080fd5b610ca261038b565b610cac86846106d5565b815260408301356020820152606083013582811115610cca57600080fd5b610cd6878286016103ae565b604083015250610ce86080840161070e565b6060820152610cf960a08401610725565b608082015260c083013560a0820152610d158660e085016106d5565b60c08201526101208084013560e0830152610140610d3588828701610739565b610100840152610d49886101e087016107d8565b828401526103a0850135915083821115610d6257600080fd5b610d6e88838701610ba5565b90830152509594505050505056fea2646970667358221220823a7af578e2e8f3190cf0818370302bcc4cdb3b52ac9f8d08a657c947835d0a64736f6c63430008150033","sourceMap":"186:2909:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1466:1627;;;;;;:::i;:::-;;:::i;:::-;;441:139;;503:77;441:139;;;;;4268:25:41;;;4256:2;4241:18;441:139:40;;;;;;;1217:120;1304:26;;1217:120;;1466:1627;1817:18;1846:13;1856:2;1817:18;1846:8;;:13;:::i;:::-;1838:22;;;:::i;:::-;1875:15;;:44;;-1:-1:-1;;;1875:44:40;;;;;4268:25:41;;;1817:43:40;;-1:-1:-1;;;;;;1875:15:40;;:32;;4241:18:41;;1875:44:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1870:108;;1942:25;;-1:-1:-1;;;1942:25:40;;;;;4268::41;;;4241:18;;1942:25:40;;;;;;;1870:108;1988:45;2036:299;;;;;;;;2083:15;2036:299;;;;2112:30;2036:299;;;;2156:18;2036:299;;;;;;;2188:15;2036:299;;;;2217:11;2036:299;;;;2242:26;2036:299;;;;2282:8;;2036:299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2036:299:40;;;-1:-1:-1;;;;;;2036:299:40;;;;;;;;;;;2351:17;;:39;;-1:-1:-1;;;2351:39:40;;1988:347;;-1:-1:-1;2351:17:40;;:33;;:39;;1988:347;;2351:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2346:99;;2413:21;;-1:-1:-1;;;2413:21:40;;;;;;;;;;;2346:99;2455:29;;2487:17;:8;2496:6;2487:8;;:17;:::i;:::-;2455:49;;-1:-1:-1;2455:49:40;-1:-1:-1;2514:44:40;2561:59;;;;2455:49;2561:59;:::i;:::-;2932:13;;;;:22;:25;;;:13;;-1:-1:-1;2932:30:40;2928:159;;3007:15;2978:26;:44;2928:159;;;3060:16;;-1:-1:-1;;;3060:16:40;;;;;;;;;;;2928:159;1807:1286;;;;;1466:1627;;;;;;;;;:::o;14:127:41:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:41;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:255::-;480:2;474:9;522:6;510:19;;-1:-1:-1;;;;;544:34:41;;580:22;;;541:62;538:88;;;606:18;;:::i;668:253::-;740:2;734:9;782:4;770:17;;-1:-1:-1;;;;;802:34:41;;838:22;;;799:62;796:88;;;864:18;;:::i;926:255::-;998:2;992:9;1040:6;1028:19;;-1:-1:-1;;;;;1062:34:41;;1098:22;;;1059:62;1056:88;;;1124:18;;:::i;1186:248::-;1253:2;1247:9;1295:4;1283:17;;-1:-1:-1;;;;;1315:34:41;;1351:22;;;1312:62;1309:88;;;1377:18;;:::i;1439:255::-;1511:2;1505:9;1553:6;1541:19;;-1:-1:-1;;;;;1575:34:41;;1611:22;;;1572:62;1569:88;;;1637:18;;:::i;1699:718::-;1741:5;1794:3;1787:4;1779:6;1775:17;1771:27;1761:55;;1812:1;1809;1802:12;1761:55;1848:6;1835:20;-1:-1:-1;;;;;1911:2:41;1907;1904:10;1901:36;;;1917:18;;:::i;:::-;1992:2;1986:9;1960:2;2046:13;;-1:-1:-1;;2042:22:41;;;2066:2;2038:31;2034:40;2022:53;;;2090:18;;;2110:22;;;2087:46;2084:72;;;2136:18;;:::i;:::-;2176:10;2172:2;2165:22;2211:2;2203:6;2196:18;2257:3;2250:4;2245:2;2237:6;2233:15;2229:26;2226:35;2223:55;;;2274:1;2271;2264:12;2223:55;2338:2;2331:4;2323:6;2319:17;2312:4;2304:6;2300:17;2287:54;2385:1;2378:4;2373:2;2365:6;2361:15;2357:26;2350:37;2405:6;2396:15;;;;;;1699:718;;;;:::o;2422:347::-;2473:8;2483:6;2537:3;2530:4;2522:6;2518:17;2514:27;2504:55;;2555:1;2552;2545:12;2504:55;-1:-1:-1;2578:20:41;;-1:-1:-1;;;;;2610:30:41;;2607:50;;;2653:1;2650;2643:12;2607:50;2690:4;2682:6;2678:17;2666:29;;2742:3;2735:4;2726:6;2718;2714:19;2710:30;2707:39;2704:59;;;2759:1;2756;2749:12;2704:59;2422:347;;;;;:::o;2774:173::-;2842:20;;-1:-1:-1;;;;;2891:31:41;;2881:42;;2871:70;;2937:1;2934;2927:12;2871:70;2774:173;;;:::o;2952:1165::-;3094:6;3102;3110;3118;3126;3134;3142;3150;3158;3211:3;3199:9;3190:7;3186:23;3182:33;3179:53;;;3228:1;3225;3218:12;3179:53;3251:23;;;-1:-1:-1;3321:2:41;3306:18;;3293:32;;-1:-1:-1;3375:2:41;3360:18;;3347:32;-1:-1:-1;;3408:43:41;;3398:54;;3388:82;;3466:1;3463;3456:12;3388:82;3489:5;-1:-1:-1;3541:2:41;3526:18;;3513:32;;-1:-1:-1;3596:3:41;3581:19;;3568:33;-1:-1:-1;;;;;3650:14:41;;;3647:34;;;3677:1;3674;3667:12;3647:34;3700:49;3741:7;3732:6;3721:9;3717:22;3700:49;:::i;:::-;3690:59;;3796:3;3785:9;3781:19;3768:33;3758:43;;3854:3;3843:9;3839:19;3826:33;3810:49;;3884:2;3874:8;3871:16;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:60;3991:7;3980:8;3969:9;3965:24;3939:60;:::i;:::-;4018:8;;-1:-1:-1;3913:86:41;-1:-1:-1;4072:39:41;;-1:-1:-1;4106:3:41;4091:19;;4072:39;:::i;:::-;4062:49;;2952:1165;;;;;;;;;;;:::o;4304:331::-;4409:9;4420;4462:8;4450:10;4447:24;4444:44;;;4484:1;4481;4474:12;4444:44;4513:6;4503:8;4500:20;4497:40;;;4533:1;4530;4523:12;4497:40;-1:-1:-1;;4559:23:41;;;4604:25;;;;;-1:-1:-1;4304:331:41:o;4640:255::-;4760:19;;4799:2;4791:11;;4788:101;;;-1:-1:-1;;4860:2:41;4856:12;;;4853:1;4849:20;4845:33;4834:45;4788:101;4640:255;;;;:::o;5082:118::-;5168:5;5161:13;5154:21;5147:5;5144:32;5134:60;;5190:1;5187;5180:12;5134:60;5082:118;:::o;5205:245::-;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5373:9;5367:16;5392:28;5414:5;5392:28;:::i;:::-;5439:5;5205:245;-1:-1:-1;;;5205:245:41:o;5455:422::-;5496:3;5534:5;5528:12;5561:6;5556:3;5549:19;5586:1;5596:162;5610:6;5607:1;5604:13;5596:162;;;5672:4;5728:13;;;5724:22;;5718:29;5700:11;;;5696:20;;5689:59;5625:12;5596:162;;;5600:3;5803:1;5796:4;5787:6;5782:3;5778:16;5774:27;5767:38;5866:4;5859:2;5855:7;5850:2;5842:6;5838:15;5834:29;5829:3;5825:39;5821:50;5814:57;;;5455:422;;;;:::o;5991:1045::-;6178:2;6167:9;6160:21;6223:6;6217:13;6212:2;6201:9;6197:18;6190:41;6285:2;6277:6;6273:15;6267:22;6262:2;6251:9;6247:18;6240:50;6358:26;6354:31;6348:2;6340:6;6336:15;6330:22;6326:60;6321:2;6310:9;6306:18;6299:88;6442:2;6434:6;6430:15;6424:22;6418:3;6407:9;6403:19;6396:51;6141:4;6494:3;6486:6;6482:16;6476:23;6518:6;6561:2;6555:3;6544:9;6540:19;6533:31;6587:51;6633:3;6622:9;6618:19;6604:12;6587:51;:::i;:::-;6573:65;;6693:3;6685:6;6681:16;6675:23;6669:3;6658:9;6654:19;6647:52;6748:3;6740:6;6736:16;6730:23;6822:2;6818:7;6806:9;6798:6;6794:22;6790:36;6784:3;6773:9;6769:19;6762:65;6850:40;6883:6;6867:14;6850:40;:::i;:::-;6836:54;;;6939:3;6931:6;6927:16;6921:23;6953:54;7003:2;6992:9;6988:18;6972:14;-1:-1:-1;;;;;5948:31:41;5936:44;;5882:104;6953:54;-1:-1:-1;7024:6:41;;5991:1045;-1:-1:-1;;;;5991:1045:41:o;7041:128::-;7106:20;;7135:28;7106:20;7135:28;:::i;7174:362::-;7238:5;7286:4;7274:9;7269:3;7265:19;7261:30;7258:50;;;7304:1;7301;7294:12;7258:50;7326:22;;:::i;:::-;7317:31;;7384:9;7371:23;7364:5;7357:38;7447:2;7436:9;7432:18;7419:32;7460:30;7482:7;7460:30;:::i;:::-;7517:2;7506:14;;7499:31;7510:5;7174:362;-1:-1:-1;;7174:362:41:o;7541:171::-;7608:20;;-1:-1:-1;;;;;7657:30:41;;7647:41;;7637:69;;7702:1;7699;7692:12;7717:163;7784:20;;7844:10;7833:22;;7823:33;;7813:61;;7870:1;7867;7860:12;7885:696;7938:5;7986:4;7974:9;7969:3;7965:19;7961:30;7958:50;;;8004:1;8001;7994:12;7958:50;8037:2;8031:9;8079:4;8071:6;8067:17;8150:6;8138:10;8135:22;-1:-1:-1;;;;;8102:10:41;8099:34;8096:62;8093:88;;;8161:18;;:::i;:::-;8197:2;8190:22;8230:6;-1:-1:-1;8230:6:41;8260:28;8278:9;8260:28;:::i;:::-;8252:6;8245:44;8322:37;8355:2;8344:9;8340:18;8322:37;:::i;:::-;8317:2;8309:6;8305:15;8298:62;8393:37;8426:2;8415:9;8411:18;8393:37;:::i;:::-;8388:2;8380:6;8376:15;8369:62;8464:37;8497:2;8486:9;8482:18;8464:37;:::i;:::-;8459:2;8451:6;8447:15;8440:62;8536:38;8569:3;8558:9;8554:19;8536:38;:::i;:::-;8530:3;8522:6;8518:16;8511:64;;7885:696;;;;:::o;8586:153::-;8664:20;;8713:1;8703:12;;8693:40;;8729:1;8726;8719:12;8744:1421;8802:5;8850:6;8838:9;8833:3;8829:19;8825:32;8822:52;;;8870:1;8867;8860:12;8822:52;8892:22;;:::i;:::-;8883:31;;8937:39;8966:9;8937:39;:::i;:::-;8930:5;8923:54;9009:48;9053:2;9042:9;9038:18;9009:48;:::i;:::-;9004:2;8997:5;8993:14;8986:72;9090:48;9134:2;9123:9;9119:18;9090:48;:::i;:::-;9085:2;9078:5;9074:14;9067:72;9171:48;9215:2;9204:9;9200:18;9171:48;:::i;:::-;9166:2;9159:5;9155:14;9148:72;9253:49;9297:3;9286:9;9282:19;9253:49;:::i;:::-;9247:3;9240:5;9236:15;9229:74;9336:49;9380:3;9369:9;9365:19;9336:49;:::i;:::-;9330:3;9323:5;9319:15;9312:74;9419:49;9463:3;9452:9;9448:19;9419:49;:::i;:::-;9413:3;9406:5;9402:15;9395:74;9502:38;9535:3;9524:9;9520:19;9502:38;:::i;:::-;9496:3;9489:5;9485:15;9478:63;9560:3;9595:48;9639:2;9628:9;9624:18;9595:48;:::i;:::-;9579:14;;;9572:72;9663:3;9698:48;9727:18;;;9698:48;:::i;:::-;9682:14;;;9675:72;9766:3;9801:48;9830:18;;;9801:48;:::i;:::-;9785:14;;;9778:72;9869:3;9904:48;9933:18;;;9904:48;:::i;:::-;9888:14;;;9881:72;9972:3;10007:48;10036:18;;;10007:48;:::i;:::-;9991:14;;;9984:72;10075:3;10110:48;10139:18;;;10110:48;:::i;:::-;10094:14;;;10087:72;10098:5;8744:1421;-1:-1:-1;;8744:1421:41:o;10170:485::-;10220:5;10273:3;10266:4;10258:6;10254:17;10250:27;10240:55;;10291:1;10288;10281:12;10240:55;10315:22;;:::i;:::-;10359:3;10397;10389:6;10385:16;10424:3;10416:6;10413:15;10410:35;;;10441:1;10438;10431:12;10410:35;10465:6;10480:146;10496:6;10491:3;10488:15;10480:146;;;10564:17;;10552:30;;10611:4;10602:14;;;;10513;10480:146;;;-1:-1:-1;10644:5:41;;10170:485;-1:-1:-1;;;;;10170:485:41:o;10660:155::-;10740:20;;10789:1;10779:12;;10769:40;;10805:1;10802;10795:12;10820:285;10877:5;10925:4;10913:9;10908:3;10904:19;10900:30;10897:50;;;10943:1;10940;10933:12;10897:50;10965:22;;:::i;:::-;10956:31;;11023:9;11010:23;11003:5;10996:38;11094:2;11083:9;11079:18;11066:32;11061:2;11054:5;11050:14;11043:56;10820:285;;;;:::o;11110:533::-;11192:5;11245:3;11238:4;11230:6;11226:17;11222:27;11212:55;;11263:1;11260;11253:12;11212:55;11287:17;;:::i;:::-;11326:3;11364;11356:6;11352:16;11391:3;11383:6;11380:15;11377:35;;;11408:1;11405;11398:12;11377:35;11432:6;11447:167;11463:6;11458:3;11455:15;11447:167;;;11531:38;11565:3;11560;11531:38;:::i;:::-;11519:51;;11599:4;11590:14;;;;11489:4;11480:14;11447:167;;11648:698;11708:5;11761:3;11754:4;11746:6;11742:17;11738:27;11728:55;;11779:1;11776;11769:12;11728:55;11802:2;11833;11827:9;11875:3;11867:6;11863:16;11945:6;11933:10;11930:22;-1:-1:-1;;;;;11897:10:41;11894:34;11891:62;11888:88;;;11956:18;;:::i;:::-;11985:22;;12027:6;12068:3;12056:16;;12084:15;;;12081:35;;;12112:1;12109;12102:12;12081:35;12136:6;12151:165;12167:6;12162:3;12159:15;12151:165;;;12233:38;12267:3;12262;12233:38;:::i;:::-;12221:51;;12301:4;12292:14;;;;12184:12;;12151:165;;;-1:-1:-1;12334:6:41;;11648:698;-1:-1:-1;;;;;;11648:698:41:o;12351:1264::-;12413:5;12452:9;12447:3;12443:19;12482:6;12478:2;12474:15;12471:35;;;12502:1;12499;12492:12;12471:35;12524:22;;:::i;:::-;12515:31;;12569:41;12600:9;12569:41;:::i;:::-;12562:5;12555:56;12643:50;12689:2;12678:9;12674:18;12643:50;:::i;:::-;12638:2;12631:5;12627:14;12620:74;12713:6;12753:2;12747;12743:7;12739:2;12735:16;12731:25;12728:45;;;12769:1;12766;12759:12;12728:45;12797:22;;:::i;:::-;12782:37;;12844:81;12921:3;12916:2;12905:9;12901:18;12844:81;:::i;:::-;12835:7;12828:98;12960:60;13016:3;13010;12999:9;12995:19;12960:60;:::i;:::-;12955:2;12946:7;12942:16;12935:86;13055:55;13106:3;13099:4;13088:9;13084:20;13055:55;:::i;:::-;13050:2;13041:7;13037:16;13030:81;13147:55;13198:3;13191:4;13180:9;13176:20;13147:55;:::i;:::-;13140:4;13131:7;13127:18;13120:83;13239:55;13290:3;13283:4;13272:9;13268:20;13239:55;:::i;:::-;13232:4;13223:7;13219:18;13212:83;13331:55;13382:3;13375:4;13364:9;13360:20;13331:55;:::i;:::-;13324:4;13315:7;13311:18;13304:83;13423:55;13474:3;13467:4;13456:9;13452:20;13423:55;:::i;:::-;13416:4;13407:7;13403:18;13396:83;13515:53;13564:3;13559:2;13548:9;13544:18;13515:53;:::i;:::-;13508:4;13495:18;;13488:81;-1:-1:-1;13596:2:41;13585:14;;13578:31;13589:5;12351:1264;-1:-1:-1;;12351:1264:41:o;13620:659::-;13681:5;13734:3;13727:4;13719:6;13715:17;13711:27;13701:55;;13752:1;13749;13742:12;13701:55;13785:2;13779:9;13827:3;13819:6;13815:16;13897:6;13885:10;13882:22;-1:-1:-1;;;;;13849:10:41;13846:34;13843:62;13840:88;;;13908:18;;:::i;:::-;13944:2;13937:22;13979:6;14020:3;14008:16;;14036:15;;;14033:35;;;14064:1;14061;14054:12;14033:35;14088:6;14103:146;14119:6;14114:3;14111:15;14103:146;;;14187:17;;14175:30;;14234:4;14225:14;;;;14136;14103:146;;;-1:-1:-1;14267:6:41;;13620:659;-1:-1:-1;;;;;13620:659:41:o;14284:843::-;14343:5;14391:6;14379:9;14374:3;14370:19;14366:32;14363:52;;;14411:1;14408;14401:12;14363:52;14433:17;;:::i;:::-;14424:26;;14473:40;14509:3;14498:9;14473:40;:::i;:::-;14466:5;14459:55;14548:59;14603:3;14597;14586:9;14582:19;14548:59;:::i;:::-;14541:4;14534:5;14530:16;14523:85;14642:39;14675:4;14664:9;14660:20;14642:39;:::i;:::-;14635:4;14628:5;14624:16;14617:65;14716:62;14774:3;14767:4;14756:9;14752:20;14716:62;:::i;:::-;14709:4;14702:5;14698:16;14691:88;14813:39;14846:4;14835:9;14831:20;14813:39;:::i;:::-;14806:4;14799:5;14795:16;14788:65;14887:37;14918:4;14907:9;14903:20;14887:37;:::i;:::-;14880:4;14873:5;14869:16;14862:63;14976:4;14965:9;14961:20;14948:34;-1:-1:-1;;;;;14997:6:41;14994:30;14991:50;;;15037:1;15034;15027:12;14991:50;15075:45;15116:3;15107:6;15096:9;15092:22;15075:45;:::i;:::-;15068:4;15061:5;15057:16;15050:71;;14284:843;;;;:::o;15132:1497::-;15216:6;15269:2;15257:9;15248:7;15244:23;15240:32;15237:52;;;15285:1;15282;15275:12;15237:52;15325:9;15312:23;-1:-1:-1;;;;;15395:2:41;15387:6;15384:14;15381:34;;;15411:1;15408;15401:12;15381:34;15434:22;;;;15490:6;15472:16;;;15468:29;15465:49;;;15510:1;15507;15500:12;15465:49;15536:22;;:::i;:::-;15581:48;15621:7;15617:2;15581:48;:::i;:::-;15574:5;15567:63;15683:2;15679;15675:11;15662:25;15657:2;15650:5;15646:14;15639:49;15734:2;15730;15726:11;15713:25;15763:2;15753:8;15750:16;15747:36;;;15779:1;15776;15769:12;15747:36;15815:44;15851:7;15840:8;15836:2;15832:17;15815:44;:::i;:::-;15810:2;15803:5;15799:14;15792:68;;15892:31;15918:3;15914:2;15910:12;15892:31;:::i;:::-;15887:2;15880:5;15876:14;15869:55;15957:31;15983:3;15979:2;15975:12;15957:31;:::i;:::-;15951:3;15944:5;15940:15;15933:56;16043:3;16039:2;16035:12;16022:26;16016:3;16009:5;16005:15;15998:51;16082:58;16132:7;16126:3;16122:2;16118:12;16082:58;:::i;:::-;16076:3;16069:5;16065:15;16058:83;16160:3;16217:2;16213;16209:11;16196:25;16190:3;16183:5;16179:15;16172:50;16241:3;16280:46;16318:7;16313:2;16309;16305:11;16280:46;:::i;:::-;16271:6;16264:5;16260:18;16253:74;16359:52;16403:7;16397:3;16393:2;16389:12;16359:52;:::i;:::-;16354:2;16347:5;16343:14;16336:76;16458:3;16454:2;16450:12;16437:26;16421:42;;16488:2;16478:8;16475:16;16472:36;;;16504:1;16501;16494:12;16472:36;16540:58;16590:7;16579:8;16575:2;16571:17;16540:58;:::i;:::-;16524:14;;;16517:82;-1:-1:-1;16528:5:41;15132:1497;-1:-1:-1;;;;;15132:1497:41:o","linkReferences":{}},"methodIdentifiers":{"ZKAPP_VERIFICATION_KEY_HASH()":"319453e8","getLatestSolutionTimestamp()":"c681e9a3","validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":"0edb2712"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateSettlementAddr\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_accountValidationAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"verificationKeyHash\",\"type\":\"uint256\"}],\"name\":\"IncorrectZkappAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ledgerHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidLedger\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZkappAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsolvedSudoku\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZKAPP_VERIFICATION_KEY_HASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestSolutionTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"proofCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\"},{\"internalType\":\"bytes20\",\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\"},{\"internalType\":\"bytes32\",\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"merkleProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"pubInput\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"batcherPaymentService\",\"type\":\"address\"}],\"name\":\"validateSolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ZKAPP_VERIFICATION_KEY_HASH()\":{\"notice\":\"The Sudoku zkApp verification key hash.\"},\"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)\":{\"notice\":\"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SudokuValidity.sol\":\"SudokuValidity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\",\":aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/\",\":ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":mina_bridge/=lib/mina_bridge/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol\":{\"keccak256\":\"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa\",\"dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914\",\"dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8\",\"dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol\":{\"keccak256\":\"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71\",\"dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef\",\"dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7\",\"dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f\",\"dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241\",\"dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221\",\"dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol\":{\"keccak256\":\"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e\",\"dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354\",\"dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51\",\"dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d\",\"dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol\":{\"keccak256\":\"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25\",\"dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol\":{\"keccak256\":\"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d\",\"dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f\",\"dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol\":{\"keccak256\":\"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8\",\"dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97\",\"dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae\",\"dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04\",\"dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol\":{\"keccak256\":\"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369\",\"dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol\":{\"keccak256\":\"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7\",\"urls\":[\"bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0\",\"dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3\"]},\"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol\":{\"keccak256\":\"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d\",\"dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ\"]},\"lib/mina_bridge/contract/src/MinaAccountValidation.sol\":{\"keccak256\":\"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469\",\"dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA\"]},\"lib/mina_bridge/contract/src/MinaStateSettlement.sol\":{\"keccak256\":\"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746\",\"dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz\"]},\"src/SudokuValidity.sol\":{\"keccak256\":\"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482\",\"dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_stateSettlementAddr","type":"address"},{"internalType":"address","name":"_accountValidationAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"verificationKeyHash","type":"uint256"}],"type":"error","name":"IncorrectZkappAccount"},{"inputs":[{"internalType":"bytes32","name":"ledgerHash","type":"bytes32"}],"type":"error","name":"InvalidLedger"},{"inputs":[],"type":"error","name":"InvalidZkappAccount"},{"inputs":[],"type":"error","name":"UnsolvedSudoku"},{"inputs":[],"stateMutability":"view","type":"function","name":"ZKAPP_VERIFICATION_KEY_HASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestSolutionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"proofCommitment","type":"bytes32"},{"internalType":"bytes32","name":"provingSystemAuxDataCommitment","type":"bytes32"},{"internalType":"bytes20","name":"proofGeneratorAddr","type":"bytes20"},{"internalType":"bytes32","name":"batchMerkleRoot","type":"bytes32"},{"internalType":"bytes","name":"merkleProof","type":"bytes"},{"internalType":"uint256","name":"verificationDataBatchIndex","type":"uint256"},{"internalType":"bytes","name":"pubInput","type":"bytes"},{"internalType":"address","name":"batcherPaymentService","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateSolution"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"ZKAPP_VERIFICATION_KEY_HASH()":{"notice":"The Sudoku zkApp verification key hash."},"validateSolution(bytes32,bytes32,bytes20,bytes32,bytes,uint256,bytes,address)":{"notice":"Validates a Sudoku solution by bridging from Mina, and stores the last Unix time it was solved at."}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/","aligned_layer/=lib/mina_bridge/contract/lib/aligned_layer/","ds-test/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/","eigenlayer-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","mina_bridge/=lib/mina_bridge/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SudokuValidity.sol":"SudokuValidity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol":{"keccak256":"0x3f67ab9b510b02dc3c07014b49785f1e167401bdb39cc10f737bbf545632d938","urls":["bzz-raw://48d1267e2df6c8ac9b8f419269ff3d23be9b62606ee6b6d2278c27ffebfd73aa","dweb:/ipfs/QmaFyywKCm1eotKjF1evryW8BMQJzPDstZm1wMRW79phXG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol":{"keccak256":"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00","urls":["bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983","dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol":{"keccak256":"0xab76a9f4eff865cbb689f627cf98263488765519d7a4ec5ffbcb0ca4972842f9","urls":["bzz-raw://ff57ce18e8350bf39f190645db0988bc0f1279f1872150a114a1b520c38a2914","dweb:/ipfs/QmSsUXkNUqYuJgGRumHTSs9rAaboGjecotcM4xHrdBYWaZ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol":{"keccak256":"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c","urls":["bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91","dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz"],"license":"CC0-1.0"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol":{"keccak256":"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba","urls":["bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc","dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol":{"keccak256":"0xd8a64dbed03d3a5cdbefe1af75968f2dde07f973749c2ef5197bf7187c3e448c","urls":["bzz-raw://27ccc7c1fd9352e9f9b357c9063d255dc0ed9583f43db09f786ac7497d7846b8","dweb:/ipfs/QmeJzuJkE9m2NUNwZSp4tGZEZmih1LeucePup8hzMVDRbG"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol":{"keccak256":"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f","urls":["bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324","dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol":{"keccak256":"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49","urls":["bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d","dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol":{"keccak256":"0xeab6f1140a90eb7f107d95bae1e8b2ecfbfe36282d62c9df69e6a564c2c59771","urls":["bzz-raw://785cd2777cdcab3b827b5eef2a4dae02c56db07252fdcefd8dd1016be034dc71","dweb:/ipfs/QmNyDFchTuMeiVoxNEfQw96JVq7DfkohGz1txKXe7HyNbq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol":{"keccak256":"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092","urls":["bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c","dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol":{"keccak256":"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79","urls":["bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232","dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol":{"keccak256":"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420","urls":["bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73","dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol":{"keccak256":"0x68bf02a443fc8b2f612eba3d39bfefa5f61f78b549f111cdecec5f2c58236a52","urls":["bzz-raw://76bc6875ce74128b861fdac5fd1c0c72f3cc9bacf67fa4a73721b95fb23959ef","dweb:/ipfs/QmPix4WJmf9fXyMZxfgwXEHBcg7V4NAbRqs4HUf5YrSJcM"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol":{"keccak256":"0x70d89b05c1c5f47b74a07fbb5a2c05e606fed494e749ea98a9915b7be73df377","urls":["bzz-raw://db1d3bfaee69aef53c8b12b492a17584e6d1ac94610cb8b38aad33e1cdd81af7","dweb:/ipfs/QmfVsMTj1hcf9fMEm5RzvtcBN4dMcAKFBgUUDsNDr5XFpq"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol":{"keccak256":"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d","urls":["bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f","dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol":{"keccak256":"0x9095fc29b96d102b10c02d44b3a6fbfa25593ef6ae4a810363ab885b9e6b0f71","urls":["bzz-raw://0945132d482d56278edddb1d32209903c4d3839c87ba4317aadd97dc23610d0f","dweb:/ipfs/QmVuM2aLRHxitx4rPx3GTYTBCVNcjYn6sHBRr1biUjLBP5"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/BLSSignatureChecker.sol":{"keccak256":"0x3a5c205c596d3d73c7afa63ffbbfac8204f6d6a26c151ef26b47278981c3c0fe","urls":["bzz-raw://4beb88bf5b7c7e614f0d87b157d7a4b67afbf1cc93f3127622bd66f696799241","dweb:/ipfs/QmWJKb6qsd69bWgpAHX6deCkJqmJdo9oBLQAXJk97gWEE2"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBase.sol":{"keccak256":"0x7e32ef76daf32e5eb5a93cecf204223e64243f42afe70c7ca71ad3db3925b9c4","urls":["bzz-raw://19c10aa22f2e86e27e946b65c434e541caa6af06fcdde46c3b5e9b42890bd221","dweb:/ipfs/QmPb5qDRdbJTniKSqsbjVhbtwdb72G9hWPYcHtVvj1zBxg"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/ServiceManagerBaseStorage.sol":{"keccak256":"0xa544114dbf6d973a815f997a2ac9237c531c40b08c91d3a65a23b152ed621e1e","urls":["bzz-raw://4cf69f9be7d3f3c4184b61b267280a829040973633ea9d95e2ec0dbf70f40a2e","dweb:/ipfs/QmT2HeCJWBLX2p4KAWnyU318MMx9USb2brqCKq1vn2pXpR"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol":{"keccak256":"0xc07a5edfd95ab4f16f16a8dc8e76eadf4b0e90fe49db90540d01daaad86898c5","urls":["bzz-raw://52b53266450a53da641e82d8ae3be93c5e09f8342b4ea0cc96bb9038d8406354","dweb:/ipfs/QmVuoiQyqPTLCGnyt8zDaxiyaj4ETdgTGKv4MDHWzqEDjp"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol":{"keccak256":"0xee5823a6674e553c71f5e127f08245827eb116d1ad418b5a7f2a9d6985fd95e0","urls":["bzz-raw://94aa26debddca6c0784585340cf891de4c2d7edaa3e5ec7229af9730312a5a51","dweb:/ipfs/QmWbHGbM7eVYTAmrCVaDU8b4YTm9VAN82XgLDR78uHC7vj"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol":{"keccak256":"0x83b2d56aacf27e65c4959a832c5de573e013908c044f6e48ea8284ac5282ae2b","urls":["bzz-raw://877af382587e96bb39bcc6db8bb5e4b871db5025c52347d4bee9afeaa4a6cc8d","dweb:/ipfs/QmdnhsQCChzq2o5NgbeT3JxSsEcMm1PC9QW6zenZNPjD9F"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistry.sol":{"keccak256":"0x51426a17fb7e54bd3720e2890104e97a8559a13ff248b3d6b840916751c143d3","urls":["bzz-raw://01f91289e6100d528cb8b318cb14ff22a0bc52882c9d4db41585e030cc9ddc25","dweb:/ipfs/Qmb22nqGrsrtNovHRwbMCvDHGENuxAgrWu3Db4p7Er2MHY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IRegistryCoordinator.sol":{"keccak256":"0xdd8effb082c1d5957d5ff43d7c59497b32866a6d82bcc7d5efa49ea9bc9b3385","urls":["bzz-raw://cb33a2a1446585b13b7a509e880c60d658d2d2522ec48a9f02e30d2cff54002d","dweb:/ipfs/QmVNG8ZPZkXzNEadPdTj1uBYLiZdCnYfsE5iGU6nJcJXiD"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol":{"keccak256":"0x7602cfb4397a114a0ed60e70e8e1d729fdcf406b585838181b3cb3ffa6ac9a9a","urls":["bzz-raw://b718fa016a13a2a5ce298bc5ea7495cc70cf9c358211c75595d5c9dde9a6cc0f","dweb:/ipfs/QmQNrVmU7P7pRqGBJuTQDkjf3wMDY2kJm7zXdtQwsQTbzY"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IServiceManagerUI.sol":{"keccak256":"0x365761699b4a5b7360ee6c75f12606eefc4b0394754c8b8e1e1eefec0cba7ffb","urls":["bzz-raw://ac14ada180b66cbbc5f9de0d6b4bb87b5946d2a9569ae88f2f62aaca47e879a8","dweb:/ipfs/QmcN9xKYF24naNWc6cYah9suz5gJSYE9nPj9eZFWnP35VX"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol":{"keccak256":"0x1b8b4d757c1b804bc4cf6fbbf8bf8f89ebdeb30a31014751fe7d01deb9d513d4","urls":["bzz-raw://984bf2777b898ed187d28997f9783f5c293a1a1848e3e9aa470ce9183d454c97","dweb:/ipfs/Qme3aTpBrkLu8wYHFMZbCfhXHoZ1M6SpXkeC237T9BuU5B"],"license":"BUSL-1.1"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BN254.sol":{"keccak256":"0xb428c8d0c3b325507a88a61a80115493eb88606ccc19ed64a31e11294ab853b3","urls":["bzz-raw://d7b6fb935bfe0494e6ff970c8f30a86d5f4cf5c3e0967300c28cd383c043acae","dweb:/ipfs/QmUHfFZaVjLPXhkBmcxrZhAHZaSFQDqXtrLGpjGBQBa5Ki"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol":{"keccak256":"0x44315ac460be30a6b18fd4df4d1b8afb46653bf4dc06ca9f93c32353fd0605c5","urls":["bzz-raw://da14f2ead3a375b02afd09d4a02edddf7b63a88945746b96789b2473184fdb04","dweb:/ipfs/QmRqcjxa2Vv2MrLdPeAwsktXdWTirapEDsRbJCyYRtKT6g"],"license":"MIT"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManager.sol":{"keccak256":"0xa5482292cd6b02c0d95c1965c88b204bd8f65639d4300940960fb9ac423d230f","urls":["bzz-raw://acf342d91fda0776bef39ec5cd40e92f40389d8aa4e60e5c9f48f8ed84c4e369","dweb:/ipfs/QmfZmAZn9yG1zBbtfB3tEcM7rUzS9avcys4ooe6opSx9xQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/AlignedLayerServiceManagerStorage.sol":{"keccak256":"0xcc7cdd02eb9044bc3ee898c154c81a34c4b2efade8a8748106b183ea5c68bbe7","urls":["bzz-raw://47a40b8a9bab3e815b7eea4e45d9fb81046813a94f0bdd1d3ba4dbc6d9b5fde0","dweb:/ipfs/QmPdrATs8bFAgGr4dJGsvDTU3oGBG2J2QoYuQy434xNTN3"],"license":null},"lib/mina_bridge/contract/lib/aligned_layer/contracts/src/core/IAlignedLayerServiceManager.sol":{"keccak256":"0xc3f83afcd17a5f5b953906e406e24a09bf58a17c0c7b4cd47bed95322084f473","urls":["bzz-raw://6ad3316af22ab60033d7236585512d82acfb604ec7efda34330634791998ab8d","dweb:/ipfs/QmU5BApqXk5STG6LgGccU6Fbd1Tg7WD6AnY79ZiJRM3LvQ"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaAccountValidation.sol":{"keccak256":"0x0f795ac102619781a548b05ce8698c06db0e585b51d806436e09a38a8c609c3a","urls":["bzz-raw://e555b739c5b6b06e90a382935fc4a1bc66310b9f6db80a717a4a5105ce704469","dweb:/ipfs/QmYiqznaArFFvmfztwY8WcqLpT5227a1qsfbyx1kyxx5rA"],"license":"UNLICENSED"},"lib/mina_bridge/contract/src/MinaStateSettlement.sol":{"keccak256":"0xa55240ed5373b608829b5dc9fe18f2ceca4c606088ef8819162697dffde5e18f","urls":["bzz-raw://bfd65bd951305fdf7b9b044f1457f4bca09afeb61881bfaf767e151792b6e746","dweb:/ipfs/QmaS32hLDJiE5hCx5b5bcUwGcc7ayYMUndS2HT1mEpMFGz"],"license":"UNLICENSED"},"src/SudokuValidity.sol":{"keccak256":"0xc5a609ceb920631755f86834cd7d0d6e4c02c64d164f36a830204ebdbdfb7bc3","urls":["bzz-raw://b03790d5d2cfcdda277232be4db690eb9ea540d8af1d12696efb4a1587d7b482","dweb:/ipfs/QmNNmmwFzZCv6TCm1EM2YbMNvn6NZME3FJnBSJi23cnUrW"],"license":"UNLICENSED"}},"version":1},"id":40} \ No newline at end of file diff --git a/example/eth_contract/src/SudokuValidity.sol b/example/eth_contract/src/SudokuValidity.sol index bfd5f2a2..f8478e6a 100644 --- a/example/eth_contract/src/SudokuValidity.sol +++ b/example/eth_contract/src/SudokuValidity.sol @@ -49,27 +49,23 @@ contract SudokuValidity { revert InvalidLedger(ledgerHash); } - MinaAccountValidation.AlignedArgs memory args = MinaAccountValidation - .AlignedArgs( - proofCommitment, - provingSystemAuxDataCommitment, - proofGeneratorAddr, - batchMerkleRoot, - merkleProof, - verificationDataBatchIndex, - pubInput, - batcherPaymentService - ); + MinaAccountValidation.AlignedArgs memory args = MinaAccountValidation.AlignedArgs( + proofCommitment, + provingSystemAuxDataCommitment, + proofGeneratorAddr, + batchMerkleRoot, + merkleProof, + verificationDataBatchIndex, + pubInput, + batcherPaymentService + ); if (!accountValidation.validateAccount(args)) { revert InvalidZkappAccount(); } bytes calldata encodedAccount = pubInput[32 + 8:]; - MinaAccountValidation.Account memory account = abi.decode( - encodedAccount, - (MinaAccountValidation.Account) - ); + MinaAccountValidation.Account memory account = abi.decode(encodedAccount, (MinaAccountValidation.Account)); // TODO(xqft): check verification key, it may be a poseidon hash so we should // need to change it to a keccak hash. From 7dac115b01f6b9e4bc6dfc9bae46ad5a348ddc26 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Wed, 25 Sep 2024 16:02:34 -0300 Subject: [PATCH 3/6] Parameterize Holesky contract addresses (#343) * [WIP] Update Aligned to 0.7.0 We must wait until Aligned uploads the release for 0.7.0. Once it's uploaded we need to add a batcher payment service arg to the `updateChain` call in the Aligned polling service. * Update Aligned to 0.7.0 * Update Aligned branch * Update Aligned and Bridge contracts * Update Aligned Foundry submodule * Remove bridge addr constants and parameterize them --- .env.template | 3 ++ contract_deployer/src/main.rs | 29 +++++++++---------- core/src/eth.rs | 53 ++++++++--------------------------- core/src/utils/constants.rs | 3 -- core/src/utils/contract.rs | 32 +++++++++++++++++++++ core/src/utils/mod.rs | 1 + example/app/src/main.rs | 21 ++++---------- 7 files changed, 66 insertions(+), 76 deletions(-) create mode 100644 core/src/utils/contract.rs diff --git a/.env.template b/.env.template index bbb654c2..396301cc 100644 --- a/.env.template +++ b/.env.template @@ -7,6 +7,9 @@ SAVE_PROOF=true/false # also false if other than "true" or variable were to be n # BATCHER_ETH_ADDR= # ETH_RPC_URL= # PROOF_GENERATOR_ADDR= +# BRIDGE_HOLESKY_ETH_ADDR= +# BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR= +# ALIGNED_SM_HOLESKY_ETH_ADDR= ## You can choose to use a keystore or private key for your signing wallet. ## Leave empty if choosing Anvil Devnet. diff --git a/contract_deployer/src/main.rs b/contract_deployer/src/main.rs index 50c95034..49c2a1d8 100644 --- a/contract_deployer/src/main.rs +++ b/contract_deployer/src/main.rs @@ -1,4 +1,3 @@ -use aligned_sdk::core::types::Chain; use log::{debug, error, info}; use mina_bridge_core::{ eth::{ @@ -7,11 +6,8 @@ use mina_bridge_core::{ }, mina::query_root, utils::{ - constants::{ - ALIGNED_SM_DEVNET_ETH_ADDR, ALIGNED_SM_HOLESKY_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN, - }, - env::EnvironmentVariables, - wallet_alloy::get_wallet, + constants::BRIDGE_TRANSITION_FRONTIER_LEN, contract::get_aligned_sm_contract_addr, + env::EnvironmentVariables, wallet_alloy::get_wallet, }, }; use std::process; @@ -47,18 +43,19 @@ async fn main() { process::exit(1); }); - let aligned_sm_addr = match chain { - Chain::Devnet => ALIGNED_SM_DEVNET_ETH_ADDR, - Chain::Holesky => ALIGNED_SM_HOLESKY_ETH_ADDR, - _ => todo!(), - }; + let aligned_sm_addr = get_aligned_sm_contract_addr(&chain).unwrap_or_else(|err| { + error!("{err}"); + process::exit(1); + }); let bridge_constructor_args = - MinaStateSettlementConstructorArgs::new(aligned_sm_addr, root_hash).unwrap_or_else(|err| { - error!("Failed to make constructor args for bridge contract call: {err}"); - process::exit(1); - }); - let account_constructor_args = MinaAccountValidationConstructorArgs::new(aligned_sm_addr) + MinaStateSettlementConstructorArgs::new(&aligned_sm_addr, root_hash).unwrap_or_else( + |err| { + error!("Failed to make constructor args for bridge contract call: {err}"); + process::exit(1); + }, + ); + let account_constructor_args = MinaAccountValidationConstructorArgs::new(&aligned_sm_addr) .unwrap_or_else(|err| { error!("Failed to make constructor args for account contract call: {err}"); process::exit(1); diff --git a/core/src/eth.rs b/core/src/eth.rs index c6a51bdb..e6d47ede 100644 --- a/core/src/eth.rs +++ b/core/src/eth.rs @@ -7,7 +7,7 @@ use alloy::providers::ProviderBuilder; use alloy::sol; use ethers::{abi::AbiEncode, prelude::*}; use k256::ecdsa::SigningKey; -use log::{debug, error, info}; +use log::{debug, info}; use mina_p2p_messages::v2::StateHash; use serde::{Deserialize, Serialize}; use serde_with::serde_as; @@ -15,10 +15,9 @@ use serde_with::serde_as; use crate::{ proof::{account_proof::MinaAccountPubInputs, state_proof::MinaStatePubInputs}, sol::serialization::SolSerialize, - utils::constants::{ - ANVIL_CHAIN_ID, BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, - BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, BRIDGE_TRANSITION_FRONTIER_LEN, - HOLESKY_CHAIN_ID, + utils::{ + constants::{ANVIL_CHAIN_ID, BRIDGE_TRANSITION_FRONTIER_LEN, HOLESKY_CHAIN_ID}, + contract::{get_account_validation_contract_addr, get_bridge_contract_addr}, }, }; @@ -100,15 +99,8 @@ pub async fn update_chain( wallet: Wallet, batcher_payment_service: &str, ) -> Result<(), String> { - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, - _ => { - error!("Unimplemented Ethereum contract on selected chain"); - unimplemented!() - } - }) - .map_err(|err| err.to_string())?; + let bridge_eth_addr = + Address::from_str(&get_bridge_contract_addr(chain)?).map_err(|err| err.to_string())?; let serialized_pub_input = bincode::serialize(pub_input) .map_err(|err| format!("Failed to serialize public inputs: {err}"))?; @@ -199,15 +191,8 @@ pub async fn update_chain( } pub async fn get_bridge_tip_hash(chain: &Chain, eth_rpc_url: &str) -> Result { - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, - _ => { - error!("Unimplemented Ethereum contract on selected chain"); - unimplemented!() - } - }) - .map_err(|err| err.to_string())?; + let bridge_eth_addr = + Address::from_str(&get_bridge_contract_addr(chain)?).map_err(|err| err.to_string())?; debug!("Creating contract instance"); let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; @@ -228,15 +213,8 @@ pub async fn get_bridge_chain_state_hashes( chain: &Chain, eth_rpc_url: &str, ) -> Result<[StateHash; BRIDGE_TRANSITION_FRONTIER_LEN], String> { - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, - _ => { - error!("Unimplemented Ethereum contract on selected chain"); - unimplemented!() - } - }) - .map_err(|err| err.to_string())?; + let bridge_eth_addr = + Address::from_str(&get_bridge_contract_addr(chain)?).map_err(|err| err.to_string())?; debug!("Creating contract instance"); let mina_bridge_contract = mina_bridge_contract_call_only(eth_rpc_url, bridge_eth_addr)?; @@ -269,15 +247,8 @@ pub async fn validate_account( eth_rpc_url: &str, batcher_payment_service: &str, ) -> Result<(), String> { - let bridge_eth_addr = Address::from_str(match chain { - Chain::Devnet => BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, - _ => { - error!("Unimplemented Ethereum contract on selected chain"); - unimplemented!() - } - }) - .map_err(|err| err.to_string())?; + let bridge_eth_addr = Address::from_str(&get_account_validation_contract_addr(chain)?) + .map_err(|err| err.to_string())?; debug!("Creating contract instance"); diff --git a/core/src/utils/constants.rs b/core/src/utils/constants.rs index 3d154220..392da9f3 100644 --- a/core/src/utils/constants.rs +++ b/core/src/utils/constants.rs @@ -18,12 +18,9 @@ pub const MINA_HASH_SIZE: usize = 32; // Bridge related constants pub const BRIDGE_DEVNET_ETH_ADDR: &str = "0x700b6A60ce7EaaEA56F065753d8dcB9653dbAD35"; -pub const BRIDGE_HOLESKY_ETH_ADDR: &str = "0x8ee69DeEb2692E1D260356419FB716AA55e37Ee4"; pub const BRIDGE_TRANSITION_FRONTIER_LEN: usize = 16; pub const BRIDGE_ACCOUNT_DEVNET_ETH_ADDR: &str = "0xA15BB66138824a1c7167f5E85b957d04Dd34E468"; -pub const BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR: &str = "0xF2e55D6ddde772dAcaEfEb5bbA4C0E76B0d80d1d"; // Aligned related constants pub const PROOF_GENERATOR_ADDR: &str = "0x66f9664f97F2b50F62D13eA064982f936dE76657"; pub const ALIGNED_SM_DEVNET_ETH_ADDR: &str = "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8"; -pub const ALIGNED_SM_HOLESKY_ETH_ADDR: &str = "0x39cFAb7498d73d75F3cb38a3d321de451779989D"; diff --git a/core/src/utils/contract.rs b/core/src/utils/contract.rs new file mode 100644 index 00000000..d555d217 --- /dev/null +++ b/core/src/utils/contract.rs @@ -0,0 +1,32 @@ +use aligned_sdk::core::types::Chain; + +use super::constants::{ + ALIGNED_SM_DEVNET_ETH_ADDR, BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_DEVNET_ETH_ADDR, +}; + +pub fn get_bridge_contract_addr(chain: &Chain) -> Result { + match chain { + Chain::Devnet => Ok(BRIDGE_DEVNET_ETH_ADDR.to_owned()), + Chain::Holesky => std::env::var("BRIDGE_HOLESKY_ETH_ADDR") + .map_err(|err| format!("Error getting Bridge contract address: {err}")), + _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), + } +} + +pub fn get_account_validation_contract_addr(chain: &Chain) -> Result { + match chain { + Chain::Devnet => Ok(BRIDGE_ACCOUNT_DEVNET_ETH_ADDR.to_owned()), + Chain::Holesky => std::env::var("BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR") + .map_err(|err| format!("Error getting Account validation contract address: {err}")), + _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), + } +} + +pub fn get_aligned_sm_contract_addr(chain: &Chain) -> Result { + match chain { + Chain::Devnet => Ok(ALIGNED_SM_DEVNET_ETH_ADDR.to_owned()), + Chain::Holesky => std::env::var("ALIGNED_SM_HOLESKY_ETH_ADDR") + .map_err(|err| format!("Error getting Aligned SM contract address: {err}")), + _ => Err("Unimplemented Ethereum contract on selected chain".to_owned()), + } +} diff --git a/core/src/utils/mod.rs b/core/src/utils/mod.rs index 6e24fa03..698644a5 100644 --- a/core/src/utils/mod.rs +++ b/core/src/utils/mod.rs @@ -1,4 +1,5 @@ pub mod constants; +pub mod contract; pub mod env; pub mod wallet; pub mod wallet_alloy; diff --git a/example/app/src/main.rs b/example/app/src/main.rs index 44dd029b..217ee0ac 100644 --- a/example/app/src/main.rs +++ b/example/app/src/main.rs @@ -12,10 +12,7 @@ use mina_bridge_core::{ AccountVerificationData, }, utils::{ - constants::{ - BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, - BRIDGE_DEVNET_ETH_ADDR, BRIDGE_HOLESKY_ETH_ADDR, - }, + contract::{get_account_validation_contract_addr, get_bridge_contract_addr}, env::EnvironmentVariables, wallet, wallet_alloy, }, @@ -86,22 +83,14 @@ async fn main() { Command::DeployContract => { // TODO(xqft): we might as well use the Chain type from Alloy, it isn't right to add // aligned-sdk as a dependency only for this type. - let state_settlement_addr = match chain { - Chain::Devnet => BRIDGE_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_HOLESKY_ETH_ADDR, - _ => todo!(), - }; + let state_settlement_addr = get_bridge_contract_addr(&chain).unwrap(); - let account_validation_addr = match chain { - Chain::Devnet => BRIDGE_ACCOUNT_DEVNET_ETH_ADDR, - Chain::Holesky => BRIDGE_ACCOUNT_HOLESKY_ETH_ADDR, - _ => todo!(), - }; + let account_validation_addr = get_account_validation_contract_addr(&chain).unwrap(); let contract = SudokuValidity::deploy( &provider, - Address::from_str(state_settlement_addr).unwrap(), - Address::from_str(account_validation_addr).unwrap(), + Address::from_str(&state_settlement_addr).unwrap(), + Address::from_str(&account_validation_addr).unwrap(), ) .await .map_err(|err| err.to_string()) From f550222b3a0f95fcef77ff7000dee4814db3757a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Thu, 26 Sep 2024 15:07:01 -0300 Subject: [PATCH 4/6] Update README and code doc (#347) * Fix state proof doc * Fix account proof doc * Update example * Update README * Update README' * Add new specification * Update table of contents * Fix specification paragraph * Add sdk docs * Update use case readme * Small changes * Fix identation * Fix identation * Fix identation * Modify top level desc * Update config.json * Update zkapp config * Update README.md Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> * Update README.md Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> * Update README.md Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> --------- Co-authored-by: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> --- README.md | 262 ++++++++++++++++----------- core/src/proof/account_proof.rs | 1 + core/src/proof/state_proof.rs | 6 +- example/mina_zkapp/config.json | 9 +- example/mina_zkapp/src/run.ts | 33 +++- {example => img}/example_diagram.png | Bin 6 files changed, 189 insertions(+), 122 deletions(-) rename {example => img}/example_diagram.png (100%) diff --git a/README.md b/README.md index 3df53ad0..a52d89a5 100644 --- a/README.md +++ b/README.md @@ -8,18 +8,20 @@ ## About -This project introduces the verification of [Mina Protocol](https://minaprotocol.com/) states into a EVM chain, which will serve as a foundation for token bridging. +This project introduces the verification of [Mina Protocol](https://minaprotocol.com/) states and accounts in Ethereum, which will serve as a foundation for applications and infrastructure that take advantage of bridged blockchain and zkApp state. + +The bridge leverages [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State and Mina Proofs of Account in Ethereum. -This project is being redesigned to use [Aligned Layer](https://github.com/yetanotherco/aligned_layer) to verify Mina Proofs of State on Ethereum. ## Usage 1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) -1. Setup the `core/.env` file of the bridge's core program. A template is available in `core/.env.template`. +1. Setup the `.env` file of the bridge. A template is available in `.env.template`. + 1. In the root folder, deploy the bridge's contract with: ```sh - make deploy_contract_anvil + make deploy_contract ``` 1. Submit a state to verify: @@ -32,22 +34,59 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan ```sh make submit-account PUBLIC_KEY= ``` - + +## Example use case + +The `example/` folder contains a project that uses the Sudoku zkApp example from Mina and bridges its state to a SudokuValidity Ethereum smart contract. + +For running the example you need to: + +1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) +1. Deploy the bridge smart contracts by executing + ```sh + make deploy_contract + ``` + +1. Deploy the SudokuValidity smart contract by executing + ```sh + make deploy_example_contract + ``` + +1. Install `zkapp-cli`: + ```sh + npm install -g zkapp-cli + ``` + +1. Inside the `example/mina_zkapp` directory, configure the zkApp and deploy the contract following [this guide](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/how-to-deploy-a-zkapp) on the Mina Protocol documentation + +1. After deployment, set the `zkappAddress` field on `example/mina_zkapp/config.json` + +1. Run the example by executing from the root folder: + ```sh + make execute_example + ``` + this will upload a new Sudoku, submit a solution to it and run the example Rust app that will bridge the new state of the zkApp and update the SudokuValidty smart contract on Ethereum. + + The zkApp will wait until both Mina transactions are included in a block, so this may take a while. Below is a diagram explaining the execution flow: + +![Example diagram](/img/example_diagram.png) + ## Table of Contents - [About](#about) - [Usage](#usage) +- [Example use case](#example-use-case) +- [Table of Contents](#table-of-contents) - [Specification](#specification) - * [Core](#core) - + [Mina Polling Service](#mina-polling-service) - + [Aligned Polling Service](#aligned-polling-service) - + [Smart Contract Utility](#smart-contract-utility) + * [core](#core) + + [mina](#mina) + + [aligned](#aligned) + + [eth](#eth) * [Mina Proof of State](#mina-proof-of-state) + [Definition](#definition) + [Serialization](#serialization) + [Aligned’s Mina Proof of State verifier](#aligneds-mina-proof-of-state-verifier) + [Consensus checking](#consensus-checking) + [Transition frontier](#transition-frontier) - + [State hash check](#state-hash-check) + [Pickles verification](#pickles-verification) * [Mina Proof of Account](#mina-proof-of-account) + [Definition](#definition-1) @@ -55,6 +94,8 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan + [Aligned’s Proof of Account verification](#aligneds-proof-of-account-verifier) * [Smart contract](#smart-contract) + [Gas cost](#gas-cost) + * [Mina Account Validation contract](#mina-account-validation-contract) + + [Gas cost](#gas-cost-1) - [Kimchi proving system](#kimchi-proving-system) * [Proof Construction & Verification](#proof-construction---verification) + [Secuence diagram linked to ``proof-systems/kimchi/src/verifier.rs``](#secuence-diagram-linked-to---proof-systems-kimchi-src-verifierrs--) @@ -84,123 +125,124 @@ This project is being redesigned to use [Aligned Layer](https://github.com/yetan # Specification -## Core +## core -[`mina_bridge repo: core/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core) +[mina_bridge repo: core/](https://github.com/lambdaclass/mina_bridge/tree/aligned/core) A Rust library+binary project that includes the next modules: -### Mina Polling Service +### mina -[`mina_bridge repo: core/src/mina_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/mina_polling_service.rs) +[mina_bridge repo: core/src/mina.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/mina.rs) This module can query a Mina node (defined by the user via the `MINA_RPC_URL` env. variable) GraphQL DB for: -- the latest state data (called the candidate state) and its proof -- the merkle proof of inclusion of some Mina account for the latest verified state on the bridge. +- state data and state proof +- account data and its Merkle proof of inclusion in some snarked ledger (which itself is contained in state data, so by verifying a state you are verifying its snarked ledger). -### Aligned Polling Service +### aligned -[`mina_bridge repo: core/src/aligned_polling_service.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/aligned_polling_service.rs) +[mina_bridge repo: core/src/aligned.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/aligned.rs) -This module sends the Mina Proof of State (retrieved by the Mina Polling Service) to the Aligned batcher for verification, using the Aligned SDK. The batcher executes pre-verification checks that validate the integrity of the proof and discards it if one of these checks is unsuccessful. After pre-verification, the batcher includes the Mina Proof of State in the current proof batch for then sending it to Aligned’s operators. +This module implements functions for sending the Mina Proof of State or Account (retrieved by the **mina** module) to the Aligned batcher for verification, using the Aligned SDK. The batcher verifies the proof before including it in the current proof batch for then sending it to Aligned’s operators. -The Aligned Polling Service waits until the batch that includes the Mina Proof of State is verified, polling Aligned every 10 seconds (this is done by the Aligned SDK). +The verification data sent by Aligned is returned after proof submission. This is used for updating the verified chain in the State Settlement contract. -Finally the service returns the verification data sent by Aligned after proof submission. This is used for updating the Bridge’s tip state, by sending a transaction to the Bridge’s smart contract. +### eth -### Smart Contract Utility +[mina_bridge repo: core/src/eth.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/eth.rs) -[`mina_bridge repo: core/src/smart_contract_utility.rs`](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/smart_contract_utility.rs) +Implements functions for interacting with the bridge’s smart contracts on Ethereum (getters for storage variables, update the verified state chain, validate an account). Also includes code for deploying both contracts. -This module sends a transaction to the Bridge’s smart contract that calls the “update tip” (see the [Smart Contract section](https://www.notion.so/Specification-f6941ead36fe49dca227ee3ceee972b8?pvs=21)) function by sending the **incomplete** verification data retrieved by the Aligned Polling Service, aside from the Mina Proof of State public inputs. By “incomplete” we mean that we’re sending all the verification data, except for the public input commitment, which is a keccak256 hash of the public inputs. So by sending the public inputs to the contract we can cheaply calculate on-chain the public input commitment for completing the verification data. We do this instead of directly sending the commitment so the contract can: +### sdk -- check that the `tip_state_hash` is indeed the tip state hash stored in the contract -- retrieve the `candidate_state_hash` and store it if the candidate was verified +[mina_bridge repo: core/src/sdk.rs](https://github.com/lambdaclass/mina_bridge/tree/aligned/core/src/sdk.rs) -## Mina Proof of State +Abstracts the previous modules to provide an easy way to verify states or accounts, and to retrieve storage data from the State Settlement contract. -The core role of the bridge is to verify the state of a Mina block, and store it’s hash and useful data (like its ledger hash, see account verification) in an Ethereum smart contract. +## Mina Proof of State ### Definition We understand a Mina Proof of State to be composed of: -- **public inputs** (vector of bytes): `[candidate_ledger_hash, candidate_state_hash, tip_state_hash, candidate_state_length, candidate_state, tip_state_length, tip_state]`. We include the lengths of the states in bytes because these can vary, unlike the hashes which are a fixed 32 bytes. -- **proof**: Kimchi proof of the candidate state (specifically a Wrap proof in the context of the Pickles recursive system). We like to call it “Pickles proof” for simplicity. +- **public inputs**: -This is the proof that the Mina state verifier in Aligned expects. +```rust +[ +/// The hash of the bridge's transition frontier tip state. Used for making sure that we're +/// checking if a candidate tip is better than the latest bridged tip. +bridge_tip_state_hash, + +/// The state hashes of the candidate chain. +candidate_chain_state_hashes[16], + +/// The ledger hashes of the candidate chain. The ledger hashes are the root of a Merkle tree +/// where the leafs are Mina account hashes. Used for account verification. +candidate_chain_ledger_hashes[16], +] +``` -### Serialization +- **proof**: -The Mina Polling Service serializes a Mina Proof of State: +```rust +[ +/// The state proof of the tip state (latest state of the chain, or "transition frontier"). If +/// this state is valid, then all previous states are valid thanks to Pickles recursion. +candidate_tip_proof, + +/// The state data of the candidate chain. Used for consensus checks and checking that the +/// public input state hashes correspond to states that effectively form a chain. +candidate_chain_states, + +/// The latest state of the previously bridged chain, the latter also called the bridge's +/// transition frontier. Used for consensus checks needed to be done as part of state +/// verification to ensure that the candidate tip is better than the bridged tip. +bridge_tip_state, +] +``` -- both states (which are an OCaml structure encoded in base64, standard vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state()`) -- both state hashes (field element) as bytes (arkworks serialization). The same is done for the ledger hash. (`serialize_state_hash_field()`) -- the candidate state proof (an OCaml structure encoded in base64, URL vocabulary) as bytes, representing the underlying UTF-8. (`serialize_protocol_state_proof()`) +### Serialization -This data composes what we call a **Mina Proof of State**. +We use **bincode** for serializing the data into bytes, which will then be deserialized by Aligned operators. Because the public inputs also need to be deserialized in Solidity, the module defines a `SolSerialize` struct that implements traits for serializing specific types into a Solidity-friendly format (the goal is to be able to serialize the types the same way they’re represented in the EVM and move them from calldata to memory via single Yul instructions). ### Aligned’s Mina Proof of State verifier -[`aligned_layer repo: operator/mina/`](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina) +[aligned_layer repo: operator/mina/](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina) Aligned Layer integrated a verifier in its operator code for verifying Mina Proofs of State. -### Consensus checking +### Public input checking -The first step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate state and the tip state. +The first step of the verifier is to check that the public inputs correspond to the proof data. This is: -Currently the only check implemented is the one corresponding to short-range forks. The check just compares that the candidate state’s height is greater than the tip’s. If equal, tiebreak logic is implemented. Tiebreak consists in lexicographical comparison of the VRF hashes of both states, and if these are equal then we compare the consensus state hashes. +- that the bridge tip state hash is the actual hash of the latest bridged tip state +- that the chain state hashes are the hashes of the states in the proof +- that the chain ledger hashes are the hashes of the ledgers (stored in the states) in the proof +- that the states form a chain (by hashing together the **state hash** of a state `n` and the **state body hash** of state `n+1`, we retrieve the **state hash** of the state `n+1`, so the states form a chain if we can hash from the root all the way until arriving to the tip state hash. -So the total logic can be summed up by: -```rust -if candidate_block_height > tip_block_height { - return candidate; -} - -// tiebreak logic -else if candidate_block_height == tip_block_height { - // compare last VRF digests lexicographically - if hash_last_vrf(candidate) > hash_last_vrf(tip) { - return candidate; - } else if hash_last_vrf(candidate) == hash_last_vrf(tip) { - // compare consensus state hashes lexicographically - if hash_state(candidate) > hash_state(tip) { - return candidate; - } - } -} - -return tip; - -``` - -If the candidate wins the comparisons, then verification continues. If not, verification fails. +### Consensus checking -The full code details can be consulted in the GitHub repository link at the [top of the section](https://www.notion.so/Specification-f6941ead36fe49dca227ee3ceee972b8?pvs=21). We use OpenMina’s code for hashing the consensus state. +The second step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate tip state and the bridge tip state. -> [!WARNING] -> At the moment we’re unsure about other considerations or checks for the consensus checking step. We are also ignoring the finalization of the state that we verified. This step is under investigation. +There are two general rules that implement a set of checks each: a rule for short-range forks, and another for long-range forks. The implementation can be found in the [aligned_layer repo: operator/mina/lib/src/consensus_state.rs](https://github.com/lambdaclass/aligned_layer/blob/consensus_state_input_checks/operator/mina/lib/src/consensus_state.rs) file. The implementation was based on the official [Mina Protocol consensus documentation](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md). ### Transition frontier The **transition frontier** is a chain of the latest `k` blocks of the network. The GraphQL DB of a Mina node only stores these blocks and forgets the previous ones. Currently, `k = 291` -It's common for two nodes to generate a block simultaneously, resulting in a temporary fork in the network. The network will eventually resolve this fork after a period of time. +It's not so rare for two or more nodes to generate blocks simultaneously, resulting in temporary forks of the network. The network will eventually resolve the forks after a period of time. Because of these phenomenon some blocks might not be **final** (part of the canonical chain). -We can define that a block is **partially finalized** if it has `n` blocks ahead of it, with `n` being the number defined for 'partial finalization'. +We can define that a block is **partially finalized** if it has `n` blocks ahead of it, with `n` being the number defined for 'partial finalization'. For the bridge we settled with `n = 15`, so the State Settlement contract will store a chain of `16` validated blocks. -A block is **finalized** when there’s `k - 1` blocks ahead of it. Meaning that it’s the first block of the transition frontier, also called the **root block**. The latest block of the transition frontier is called the **tip**. - -### State hash check - -We check that both the candidate and tip state hashes are correct by hashing the corresponding state data using OpenMina’s hasher. This way we can be certain that the hashes are valid if the Mina Proof of State was verified in Aligned, which is useful for the Bridge’s smart contract to check that the tip state is indeed the state corresponding to the tip, and for storing the candidate hash if its proof is valid. +A block is **finalized** when there’s `k - 1` blocks ahead of it., meaning that it’s the first block of the transition frontier, also called the **root block**. The latest block of the transition frontier is called the **tip**. ### Pickles verification -This is the last step of the Mina Proof of State verifier. We are leveraging OpenMina’s “block verifier” to verify the Pickles proof of the candidate state. The verifier takes as public input the hash of the state. +This is the last step of the Mina Proof of State verifier. We are leveraging OpenMina’s “block verifier” to verify the Pickles proof of the candidate tip state. The verifier takes as public input the hash of the state. + +After validating the candidate tip state, because in a previous step we verified that there’s a chain of `n` candidate blocks with a valid tip, and because of the built-in recursion of the Pickles composition system (each state validates the previous one), we end up validating the whole state chain. > [!WARNING] > OpenMina’s block verifier is yet to be audited. @@ -209,7 +251,7 @@ This is the last step of the Mina Proof of State verifier. We are leveraging Ope After a Mina Proof of State was verified, it’s possible to verify a Proof of Account of some Mina account in the verified state. -Verifying that some account and its state is valid in a bridged Mina state is one of the basic components of a Mina to Ethereum bridge, as it not only allows to validate account data but also the execution of a [zkApp](https://docs.minaprotocol.com/zkapps/writing-a-zkapp) tracked by this account (see [zkApp Account](https://docs.minaprotocol.com/glossary#zkapp-account)), which leverages zk-SNARKs to verify (optionally private) off-chain computation on the Mina blockchain. +Verifying that some account and its state is valid in a bridged Mina state is one of the basic components of a Mina to Ethereum bridge, as it not only allows to validate account data but also the state of a [zkApp](https://docs.minaprotocol.com/zkapps/writing-a-zkapp) tracked by this account (see [zkApp Account](https://docs.minaprotocol.com/glossary#zkapp-account)), which leverages zk-SNARKs to verify (optionally private) off-chain computation on the Mina blockchain. Account verification (paired with state verification) essentially allows to verify off-chain computation on Ethereum, after it has been validated by Mina. @@ -217,54 +259,70 @@ Account verification (paired with state verification) essentially allows to veri We understand a Mina Proof of Account to be composed of: -- **public inputs** (vector of bytes): `[merkle_root, account_hash, account_id_hash]` -- **proof**: `[merkle_proof]` +- **public inputs**: + +```rust +[ +/// Hash of the snarked ledger that this account state is included on +ledger_hash, +/// ABI encoded Mina account (Solidity structure) +encoded_account +] +``` + +- **proof**: -Where `merkle_root` and `account_hash` are field elements, and `merkle_proof` an array of field elements with an extra leading byte that specifies if a merkle node is left or right. +```rust +[ +/// Merkle path between the leaf hash (account hash) and the merkle root (ledger hash) +merkle_path, +/// The Mina account (OpenMina structure) +account +] +``` -`account_id_hash` is the keccak256 hash of an `AccountId` type, which identifies a Mina account. It’s composed of the account’s public key (which is a ec point but saved in a compressed form: via its x coordinate an a boolean) and its token id (a field element, the poseidon hash of an integer that identifies a token on the Mina blockchain). +The account is included in the proof to: -This is the proof that the Mina account verifier in Aligned expects. +- compare it with the Solidity-friendly `encoded_account` in the public inputs +- hash it to retrieve the leaf hash of the Merkle tree to verify ### Serialization -The Mina Polling Service serializes a Mina Proof of Account: +We use **bincode** for serializing the data into bytes, which will then be deserialized by Aligned operators. Because the public inputs also need to be deserialized in Solidity, the module defines a `SolSerialize` struct that implements traits for serializing specific types into a Solidity-friendly format (the goal is to be able to serialize the types the same way they’re represented in the EVM and move them from calldata to memory via single Yul instructions). -- both poseidon hashes (`merkle_root` and `account_hash` which are field elements) (field element) as bytes (arkworks serialization). -- the keccak hash (`account_id_hash`) is already an array of 32 bytes. +### Aligned’s Proof of Account verification -In the future we’ll send the account data as part of the proof so we can add information about the account in the public inputs (like the public key) and check it on the Aligned verifier. +[aligned_layer repo: operator/mina_account/](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina_account) -### Aligned’s Proof of Account verifier +The verification consists in calculating the merkle root by hashing the branch (whose nodes are contained in the `merkle_path`) corresponding to the account’s leaf, and comparing the root with the snarked ledger hash included in the public inputs. -[`aligned_layer repo: operator/mina_account/`](https://github.com/lambdaclass/aligned_layer/tree/mina/operator/mina_account) +## Mina State Settlement contract -The verification consists in calculating the merkle root by hashing the branch (whose nodes are contained in the `merkle_path`) corresponding to the account’s leaf. +[mina_bridge repo: contract/src/MinaStateSettlement.sol](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract/src/MinaStateSettlement.sol) -> [!WARNING] -> Currently we aren’t checking the validity of the `account_id_hash`. This will be fixed once we have the needed GraphQL query to retrieve the complete data of an account. +This contract stores the latest verified state and ledger hashes (also called the bridge’s transition frontier) and updates the arrays with new values whenever a new Mina Proof of State is submitted. + +Any user can submit a Mina Proof of State to Aligned and then provide the contract with the verification data for updating its storage. The contract calls the Aligned Service Manager to check that the proof was indeed verified. -## Smart contract +The contract is deployed by a `contract_deployer` crate with an initial state that is assumed to be valid. The default is to use a relatively finalized state (the sixteenth one) from the Mina node chosen to execute the query to. -[`mina_bridge repo: contract/`](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract) +### Gas cost -The contract stores the Bridge’s tip state hash and exposes functions to read (`getTipStateHash()`) or update it (`updateTipState()`). It also saves a mapping `accountId -> accountHash and ledgerHash` of verified account state hashes and the ledger hash (merkle root) they were verified against, so a user can query which account state was verified to which Mina block (`getLedgerAccountPair()`), if some account is updated to the latest verified state (`isAccountUpdated()`) or update them themselves (`updateAccount()`). +- Currently the cost of the “update chain” transaction is ~220k. -The Smart Contract Utility implements an API for submitting data of verified state and account proofs, to update the contract. +## Mina Account Validation contract -The Bridge’s contract update functions call the Aligned Service Manager smart contract to check that the Mina Proof of State or Account was verified in Aligned. The parameters that the Aligned Service Manager needs for checking is the complete verification data: +[mina_bridge repo: contract/src/MinaAccountValidation.sol](https://github.com/lambdaclass/mina_bridge/tree/aligned/contract/src/MinaAccountValidation.sol) -- For a Proof of State: if the Aligned Service Manager call returns true, this means that a Mina Proof of State of some candidate state (whose hash is known by the contract), checked against the Bridge’s tip state (consensus checking), was verified. Then this candidate state is now the tip state, and so its hash is stored in the contract. -- For a Proof of Account: if the Aligned Service Manager call returns true, this means that a Mina Proof of Account of some account state (whose hash is known by the contract) corresponding to a valid account id hash was verified against some ledger hash (which is the Merkle root of the account state tree of a given Mina block). Then this account state and ledger hash paired is saved in the contract. +This contract implements a method for validating an account, taking as parameter the verification data and public inputs of the proof sent to Aligned. It also implements a structure for representing account data. A user can decode the account from the public inputs into this structure. -The contract is deployed by a `contract_deployer` crate with an initial state that is the eleventh state from the Mina node [transition frontier’s](https://www.notion.so/Specification-f6941ead36fe49dca227ee3ceee972b8?pvs=21) tip. +Any user can submit a Mina Proof of Account to Aligned and then provide the contract with the verification data for checking on-chain that the account was validated. The contract calls the Aligned Service Manager to check that the proof was indeed verified. -The `contract_deployer` asks the Mina node for the eleventh state and deploys the contract using that state as the initial one, assuming it is valid. +The contract is deployed by a `contract_deployer` crate. ### Gas cost -- Currently the cost of the “update tip” transaction is in between 100k and 150k gas, a big part of it being the calldata cost of sending both states data in the public inputs of the Mina Proof of State. The cost could be decreased to <100k by modifying the definition of a Mina Proof of State; sending the state data as proof data instead of public inputs. At the current phase of the project this is not a priority so this change wasn’t done yet. -- The cost of the “update account” transaction is ~90k the first time and ~60k when updating a previously verified account. +- The cost of the “update account” transaction is ~80k. # Kimchi proving system diff --git a/core/src/proof/account_proof.rs b/core/src/proof/account_proof.rs index 49243779..c78f55c4 100644 --- a/core/src/proof/account_proof.rs +++ b/core/src/proof/account_proof.rs @@ -15,6 +15,7 @@ pub enum MerkleNode { #[serde_as] #[derive(Serialize, Deserialize, Clone)] pub struct MinaAccountPubInputs { + /// Hash of the snarked ledger that this account state is included on #[serde_as(as = "SolSerialize")] pub ledger_hash: Fp, /// ABI encoded Mina account (Solidity structure) diff --git a/core/src/proof/state_proof.rs b/core/src/proof/state_proof.rs index 6d9dcbe1..2f49970c 100644 --- a/core/src/proof/state_proof.rs +++ b/core/src/proof/state_proof.rs @@ -27,10 +27,8 @@ pub struct MinaStateProof { /// The state proof of the tip state (latest state of the chain, or "transition frontier"). If /// this state is valid, then all previous states are valid thanks to Pickles recursion. pub candidate_tip_proof: MinaBaseProofStableV2, - /// The latest state of the candidate chain. Used for consensus checks needed to be done as - /// part of state verification to ensure that the candidate tip is better than the bridged tip. - /// We take an array of states to ensure that the root state (oldest state on the chain) is - /// relatively (sufficiently) finalized. + /// The state data of the candidate chain. Used for consensus checks and checking that the + /// public input state hashes correspond to states that effectively form a chain. pub candidate_chain_states: [MinaStateProtocolStateValueStableV2; BRIDGE_TRANSITION_FRONTIER_LEN], /// The latest state of the previously bridged chain, the latter also called the bridge's diff --git a/example/mina_zkapp/config.json b/example/mina_zkapp/config.json index 34c4da64..3a441d5e 100644 --- a/example/mina_zkapp/config.json +++ b/example/mina_zkapp/config.json @@ -1,8 +1,5 @@ { - "networkId": "testnet", - "url": "https://api.minascan.io/node/devnet/v1/graphql", - "feepayerKeyPath": "", - "feepayerAlias": "", - "fee": "0.1", - "smartContract": "SudokuZkApp" + "zkappAddress": null, + "version": 1, + "deployAliases": {} } diff --git a/example/mina_zkapp/src/run.ts b/example/mina_zkapp/src/run.ts index 73859f8d..9d50d5b3 100644 --- a/example/mina_zkapp/src/run.ts +++ b/example/mina_zkapp/src/run.ts @@ -1,26 +1,39 @@ import fs from 'fs/promises'; import { Sudoku, SudokuZkApp } from './sudoku.js'; import { generateSudoku, solveSudoku } from './sudoku-lib.js'; -import { Mina, PrivateKey, PublicKey, NetworkId, fetchAccount } from 'o1js'; +import { Mina, PrivateKey, NetworkId, fetchAccount } from 'o1js'; -const ZKAPP_ADDRESS = "B62qmpq1JBejZYDQrZwASPRM5oLXW346WoXgbApVf5HJZXMWFPWFPuA"; const TX_MAX_TRIES = 5; +const DEPLOY_ALIAS = "devnet"; -// parse config and private key from file type Config = { - networkId?: string; - url: string; - fee: string; - feepayerKeyPath: string; - feepayerAlias: string; + deployAliases: Record< + string, + { + networkId?: string; + url: string; + keyPath: string; + fee: string; + feepayerKeyPath: string; + feepayerAlias: string; + } + >; }; -let config: Config = JSON.parse(await fs.readFile('config.json', 'utf8')); + +let configJson: Config = JSON.parse(await fs.readFile('config.json', 'utf8')); +let config = configJson.deployAliases[DEPLOY_ALIAS]; + let feepayerKeysBase58: { privateKey: string; publicKey: string } = JSON.parse( await fs.readFile(config.feepayerKeyPath, 'utf8') ); +let zkAppKeysBase58: { privateKey: string; publicKey: string } = JSON.parse( + await fs.readFile(config.keyPath, 'utf8') +); let feepayerKey = PrivateKey.fromBase58(feepayerKeysBase58.privateKey); +let zkAppKey = PrivateKey.fromBase58(zkAppKeysBase58.privateKey); + let feepayerAddress = feepayerKey.toPublicKey(); -let zkAppAddress = PublicKey.fromBase58(ZKAPP_ADDRESS); +let zkAppAddress = zkAppKey.toPublicKey(); // define network (devnet) const Network = Mina.Network({ diff --git a/example/example_diagram.png b/img/example_diagram.png similarity index 100% rename from example/example_diagram.png rename to img/example_diagram.png From 09b3469a21167ab44e5ca612aecd5640f9246c5c Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:45:58 -0300 Subject: [PATCH 5/6] Fix README links (#349) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a52d89a5..0a29de29 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ The bridge leverages [Aligned Layer](https://github.com/yetanotherco/aligned_lay ## Usage -1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) +1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/staging/docs/3_guides/6_setup_aligned.md#booting-devnet-with-default-configs) 1. Setup the `.env` file of the bridge. A template is available in `.env.template`. 1. In the root folder, deploy the bridge's contract with: @@ -41,7 +41,7 @@ The `example/` folder contains a project that uses the Sudoku zkApp example from For running the example you need to: -1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/main/docs/guides/3_setup_aligned.md#booting-devnet-with-default-configs) +1. [Setup Aligned Devnet locally](https://github.com/yetanotherco/aligned_layer/blob/staging/docs/3_guides/6_setup_aligned.md#booting-devnet-with-default-configs) 1. Deploy the bridge smart contracts by executing ```sh make deploy_contract @@ -226,7 +226,7 @@ The first step of the verifier is to check that the public inputs correspond to The second step of the verifier is to execute consensus checks, specific to the [Ouroboros Samasika consensus mechanism](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md) that the Mina Protocol uses. The checks are comparisons of state data between the candidate tip state and the bridge tip state. -There are two general rules that implement a set of checks each: a rule for short-range forks, and another for long-range forks. The implementation can be found in the [aligned_layer repo: operator/mina/lib/src/consensus_state.rs](https://github.com/lambdaclass/aligned_layer/blob/consensus_state_input_checks/operator/mina/lib/src/consensus_state.rs) file. The implementation was based on the official [Mina Protocol consensus documentation](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md). +There are two general rules that implement a set of checks each: a rule for short-range forks, and another for long-range forks. The implementation can be found in the [aligned_layer repo: operator/mina/lib/src/consensus_state.rs](https://github.com/lambdaclass/aligned_layer/blob/mina/operator/mina/lib/src/consensus_state.rs) file. The implementation was based on the official [Mina Protocol consensus documentation](https://github.com/MinaProtocol/mina/blob/develop/docs/specs/consensus/README.md). ### Transition frontier From 91efe0d92fa4d056e6f56c6c36e568f664b14648 Mon Sep 17 00:00:00 2001 From: Gabriel Bosio <38794644+gabrielbosio@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:46:07 -0300 Subject: [PATCH 6/6] Fix Tock constraint domain size and add Book reference (#350) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a29de29..b05d6e09 100644 --- a/README.md +++ b/README.md @@ -418,7 +418,9 @@ The two curves pallas and vesta (pa(llas ve)sta) created by the [Zcash team](htt These curves are referred to as “tick” and “tock” within the Mina source code. - Tick - Vesta (a.k.a. Step), constraint domain size 2¹⁸ [block and transaction proofs] -- Tock - Pallas (a.k.a. Wrap), constraint domain size 2¹² [signatures] +- Tock - Pallas (a.k.a. Wrap), constraint domain size 2¹⁷ [signatures] + +See [the Pickles section of the Mina book](https://o1-labs.github.io/proof-systems/specs/pickles.html) for more details. The Tock prover does less (only performs recursive verifications and no other logic), so it requires fewer constraints and has a smaller