From 08c4d5adec1195867fec20cff093be02c100c3b1 Mon Sep 17 00:00:00 2001 From: Ho Date: Fri, 14 Nov 2025 14:28:06 +0900 Subject: [PATCH] update build stuffs --- coordinator/Makefile | 4 +- coordinator/conf/config.json | 41 +++++- coordinator/conf/config_cloak_template.json | 40 ------ coordinator/conf/config_sepolia_template.json | 41 ------ tests/prover-e2e/Makefile | 12 +- tests/prover-e2e/cloak-xen/genesis.json | 123 ++++++++++++++++++ 6 files changed, 175 insertions(+), 86 deletions(-) mode change 120000 => 100644 coordinator/conf/config.json delete mode 100644 coordinator/conf/config_cloak_template.json delete mode 100644 coordinator/conf/config_sepolia_template.json create mode 100644 tests/prover-e2e/cloak-xen/genesis.json diff --git a/coordinator/Makefile b/coordinator/Makefile index b0c419445..a5e10e23c 100644 --- a/coordinator/Makefile +++ b/coordinator/Makefile @@ -37,9 +37,9 @@ coordinator_tool: localsetup: coordinator_api ## Local setup: build coordinator_api, copy config, and setup releases mkdir -p build/bin/conf @echo "Copying configuration files..." - cp -r $(PWD)/conf/config.json $(PWD)/build/bin/conf/config.template.json + cp -fL $(CURDIR)/conf/config.json $(CURDIR)/build/bin/conf/config.template.json @echo "Setting up releases..." - cd $(PWD)/build && bash setup_releases.sh + cd $(CURDIR)/build && bash setup_releases.sh #coordinator_api_skip_libzkp: diff --git a/coordinator/conf/config.json b/coordinator/conf/config.json deleted file mode 120000 index 1ab1a326f..000000000 --- a/coordinator/conf/config.json +++ /dev/null @@ -1 +0,0 @@ -config_sepolia_template.json \ No newline at end of file diff --git a/coordinator/conf/config.json b/coordinator/conf/config.json new file mode 100644 index 000000000..02acb2fa7 --- /dev/null +++ b/coordinator/conf/config.json @@ -0,0 +1,40 @@ +{ + "prover_manager": { + "provers_per_session": 1, + "session_attempts": 5, + "external_prover_threshold": 32, + "bundle_collection_time_sec": 180, + "batch_collection_time_sec": 180, + "chunk_collection_time_sec": 180, + "verifier": { + "min_prover_version": "v4.4.45", + "verifiers": [ + { + "assets_path": "assets", + "fork_name": "euclidV2" + }, + { + "assets_path": "assets", + "fork_name": "feynman" + } + ] + } + }, + "db": { + "driver_name": "postgres", + "dsn": "postgres://localhost/scroll?sslmode=disable", + "maxOpenNum": 200, + "maxIdleNum": 20 + }, + "l2": { + "chain_id": 111, + "l2geth": { + "endpoint": "not need to specified for mocking" + } + }, + "auth": { + "secret": "prover secret key", + "challenge_expire_duration_sec": 3600, + "login_expire_duration_sec": 3600 + } +} diff --git a/coordinator/conf/config_cloak_template.json b/coordinator/conf/config_cloak_template.json deleted file mode 100644 index eeb5cfe7f..000000000 --- a/coordinator/conf/config_cloak_template.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "prover_manager": { - "provers_per_session": 1, - "session_attempts": 5, - "external_prover_threshold": 32, - "bundle_collection_time_sec": 180, - "batch_collection_time_sec": 180, - "chunk_collection_time_sec": 180, - "verifier": { - "min_prover_version": "v4.4.45", - "verifiers": [ - { - "assets_path": "asset", - "fork_name": "feynman" - } - ] - } - }, - "db": { - "driver_name": "postgres", - "dsn": "postgres://dev:dev@localhost/scroll?sslmode=disable", - "maxOpenNum": 200, - "maxIdleNum": 20 - }, - "l2": { - "validium_mode": true, - "chain_id": 5343513301, - "l2geth": { - "endpoint": "http://cloak-xen-sequencer.sepolia.scroll.tech:8545/" - } - }, - "auth": { - "secret": "prover secret key", - "challenge_expire_duration_sec": 3600, - "login_expire_duration_sec": 3600 - }, - "sequencer": { - "decryption_key": "sequencer decryption key" - } -} diff --git a/coordinator/conf/config_sepolia_template.json b/coordinator/conf/config_sepolia_template.json deleted file mode 100644 index b0823e170..000000000 --- a/coordinator/conf/config_sepolia_template.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "prover_manager": { - "provers_per_session": 1, - "session_attempts": 5, - "external_prover_threshold": 32, - "bundle_collection_time_sec": 180, - "batch_collection_time_sec": 180, - "chunk_collection_time_sec": 180, - "verifier": { - "min_prover_version": "v4.4.33", - "features": "legacy_witness", - "verifiers": [ - { - "assets_path": "assets", - "fork_name": "feynman" - } - ] - } - }, - "db": { - "driver_name": "postgres", - "dsn": "postgres://dev:dev@localhost/scroll?sslmode=disable", - "maxOpenNum": 200, - "maxIdleNum": 20 - }, - "l2": { - "validium_mode": false, - "chain_id": 534351, - "l2geth": { - "endpoint": "https://scroll-sepolia.g.alchemy.com/v2/uFWDEQJgyTiUYSbbIQlbf" - } - }, - "auth": { - "secret": "prover secret key", - "challenge_expire_duration_sec": 3600, - "login_expire_duration_sec": 3600 - }, - "sequencer": { - "decryption_key": "sequencer decryption key" - } -} diff --git a/tests/prover-e2e/Makefile b/tests/prover-e2e/Makefile index aef2c5d70..5d7fce38f 100644 --- a/tests/prover-e2e/Makefile +++ b/tests/prover-e2e/Makefile @@ -14,7 +14,11 @@ all: setup_db test_tool import_data clean: docker compose down -check_vars: +conf: + @echo "Please link sepolia or cloak-xen as conf" + exit 1 + +check_vars: | conf @if [ -z "$(BEGIN_BLOCK)" ] || [ -z "$(END_BLOCK)" ]; then \ echo "Error: BEGIN_BLOCK and END_BLOCK must be defined"; \ echo "Usage: make import_data BEGIN_BLOCK= END_BLOCK="; \ @@ -49,4 +53,8 @@ import_data_euclid: build/bin/e2e_tool check_vars build/bin/e2e_tool --config conf/config.json --codec 7 ${BEGIN_BLOCK} ${END_BLOCK} import_data: build/bin/e2e_tool check_vars - build/bin/e2e_tool --config conf/config.json --codec 8 ${BEGIN_BLOCK} ${END_BLOCK} \ No newline at end of file + build/bin/e2e_tool --config conf/config.json --codec 8 ${BEGIN_BLOCK} ${END_BLOCK} + +coordinator_setup: + $(MAKE) -C ../../coordinator localsetup + cp -f conf/genesis.json ../../coordinator/build/bin/conf \ No newline at end of file diff --git a/tests/prover-e2e/cloak-xen/genesis.json b/tests/prover-e2e/cloak-xen/genesis.json new file mode 100644 index 000000000..207ae7d3e --- /dev/null +++ b/tests/prover-e2e/cloak-xen/genesis.json @@ -0,0 +1,123 @@ +{ + "config": { + "chainId": 5343513301, + "homesteadBlock": 0, + "eip150Block": 0, + "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "eip155Block": 0, + "eip158Block": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "istanbulBlock": 0, + "berlinBlock": 0, + "londonBlock": 0, + "archimedesBlock": 0, + "shanghaiBlock": 0, + "bernoulliBlock": 0, + "curieBlock": 0, + "darwinTime": 0, + "darwinV2Time": 0, + "euclidTime": 0, + "euclidV2Time": 0, + "feynmanTime": 0, + "systemContract": { + "period": 1, + "blocks_per_second": 2, + "system_contract_address": "0x1e6Ce958a7cb3d373028ed46F9a0c4Dd184606CF", + "system_contract_slot": "0x0000000000000000000000000000000000000000000000000000000000000067" + }, + "scroll": { + "useZktrie": false, + "maxTxPerBlock": 100, + "maxTxPayloadBytesPerBlock": 122880, + "feeVaultAddress": "0x5300000000000000000000000000000000000005", + "l1Config": { + "l1ChainId": "534351", + "l1MessageQueueAddress": "0x0000000000000000000000000000000000000001", + "l1MessageQueueV2Address": "0xb5D7c8Ec8C7A72a0ed9782cB67Cc68b3915389a1", + "l1MessageQueueV2DeploymentBlock": 0, + "scrollChainAddress": "0x283Eff377d7f38955c2aD1414DAE94e9A9b3270F", + "l2SystemConfigAddress": "0xf262AdE5841308D4379dC7FfD46A2d13F3d96bfe", + "numL1MessagesPerBlock": "10" + }, + "genesisStateRoot": "0x08d535cc60f40af5dd3b31e0998d7567c2d568b224bed2ba26070aeb078d1339", + "missingHeaderFieldsSHA256": "0x9062e2fa1200dca63bee1d18d429572f134f5f0c98cb4852f62fc394e33cf6e6" + } + }, + "nonce": "0x0", + "timestamp": "0x0000000000000000000000000000000000000000000000000000000068c85e6c", + "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gasLimit": "20000000", + "difficulty": "0x1", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "baseFeePerGas": "0x1", + "alloc": { + "0x4e59b44847b379578588920ca78fbf26c0b4956c": { + "balance": "0x0", + "code": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3", + "nonce": "0x1", + "storage": {} + }, + "0x502e605862276fa0521ca7390918e42dc78f3cb3": { + "balance": "0x7ffffffffffffffffffffffffffffffffffffffffffffff21f494c589c0000", + "code": "0x", + "nonce": "0x0", + "storage": { + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "0x5300000000000000000000000000000000000000": { + "balance": "0x0", + "code": "0x608060405234801561000f575f80fd5b5060043610610090575f3560e01c806383cc76601161006357806383cc7660146100f85780638da5cb5b1461010b578063c4d66de81461011e578063d4b9f4fa14610131578063f2fde38b14610139575f80fd5b806326aad7b7146100945780633cb747bf146100b0578063600a2e77146100db578063715018a6146100ee575b5f80fd5b61009d60015481565b6040519081526020015b60405180910390f35b6053546100c3906001600160a01b031681565b6040516001600160a01b0390911681526020016100a7565b61009d6100e9366004610539565b61014c565b6100f66101ef565b005b61009d610106366004610539565b610224565b6052546100c3906001600160a01b031681565b6100f661012c366004610550565b61023a565b61009d5f5481565b6100f6610147366004610550565b6102d2565b6053545f906001600160a01b0316331461019e5760405162461bcd60e51b815260206004820152600e60248201526d37b7363c9036b2b9b9b2b733b2b960911b60448201526064015b60405180910390fd5b5f806101a98461035e565b60408051838152602081018890529294509092507ffaa617c2d8ce12c62637dbce76efcc18dae60574aa95709bdcedce7e76071693910160405180910390a19392505050565b6052546001600160a01b031633146102195760405162461bcd60e51b81526004016101959061057d565b6102225f610477565b565b602a8160288110610233575f80fd5b0154905081565b6052546001600160a01b031633146102645760405162461bcd60e51b81526004016101959061057d565b600154156102a85760405162461bcd60e51b815260206004820152601160248201527063616e6e6f7420696e697469616c697a6560781b6044820152606401610195565b6102b06104c8565b605380546001600160a01b0319166001600160a01b0392909216919091179055565b6052546001600160a01b031633146102fc5760405162461bcd60e51b81526004016101959061057d565b6001600160a01b0381166103525760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f20616464726573730000006044820152606401610195565b61035b81610477565b50565b6003545f9081906103b15760405162461bcd60e51b815260206004820152601a60248201527f63616c6c206265666f726520696e697469616c697a6174696f6e0000000000006044820152606401610195565b600154835f5b8215610448576103c86002846105c8565b5f036104125781602a82602881106103e2576103e26105b4565b015561040b82600283602881106103fb576103fb6105b4565b01545f9182526020526040902090565b915061043c565b610439602a8260288110610428576104286105b4565b0154835f9182526020526040902090565b91505b600192831c92016103b7565b81602a826028811061045c5761045c6105b4565b0155505f819055600180548082019091559590945092505050565b605280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f5b60286104d78260016105fb565b101561035b57610508600282602881106104f3576104f36105b4565b0154600283602881106103fb576103fb6105b4565b60026105158360016105fb565b60288110610525576105256105b4565b01558061053181610614565b9150506104ca565b5f60208284031215610549575f80fd5b5035919050565b5f60208284031215610560575f80fd5b81356001600160a01b0381168114610576575f80fd5b9392505050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f826105e257634e487b7160e01b5f52601260045260245ffd5b500690565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561060e5761060e6105e7565b92915050565b5f60018201610625576106256105e7565b506001019056fea164736f6c6343000818000a", + "nonce": "0x0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000052": "0x00000000000000000000000064a53e139d11b17b24de4dd0a242a54c37d1c0ff" + } + }, + "0x5300000000000000000000000000000000000002": { + "balance": "0x0", + "code": "0x608060405234801561000f575f80fd5b50600436106101a1575f3560e01c806384189161116100f3578063c63b9e2d11610093578063e88a60ad1161006e578063e88a60ad1461032e578063f2fde38b14610341578063f45e65d814610354578063fe5b04151461035d575f80fd5b8063c63b9e2d146102ff578063c91e514914610312578063de26c4a11461031b575f80fd5b8063944b247f116100ce578063944b247f146102be578063a911d77f146102d1578063aa5e9334146102d9578063bede39b5146102ec575f80fd5b806384189161146102785780638da5cb5b1461028157806393e59dc1146102ab575f80fd5b80633d0f963e1161015e5780636112d6db116101395780636112d6db1461024b5780636a5e67e514610254578063704655971461025d578063715018a614610270575f80fd5b80633d0f963e1461021c57806349948e0e1461022f578063519b4bd314610242575f80fd5b80630c18c162146101a557806313dad5be146101c157806323e524ac146101de5780633577afc5146101e757806339455d3a146101fc5780633b7656bb1461020f575b5f80fd5b6101ae60025481565b6040519081526020015b60405180910390f35b6008546101ce9060ff1681565b60405190151581526020016101b8565b6101ae60065481565b6101fa6101f5366004610c73565b610365565b005b6101fa61020a366004610c8a565b6103f7565b600b546101ce9060ff1681565b6101fa61022a366004610caa565b6104f4565b6101ae61023d366004610ceb565b610577565b6101ae60015481565b6101ae600a5481565b6101ae60075481565b6101fa61026b366004610c73565b6105b0565b6101fa61063e565b6101ae60055481565b5f54610293906001600160a01b031681565b6040516001600160a01b0390911681526020016101b8565b600454610293906001600160a01b031681565b6101fa6102cc366004610c73565b610672565b6101fa6106fe565b6101fa6102e7366004610c73565b61075a565b6101fa6102fa366004610c73565b6107f4565b6101fa61030d366004610c73565b6108b1565b6101ae60095481565b6101ae610329366004610ceb565b61094a565b6101fa61033c366004610c73565b610974565b6101fa61034f366004610caa565b610a00565b6101ae60035481565b6101fa610a8b565b5f546001600160a01b031633146103975760405162461bcd60e51b815260040161038e90610d96565b60405180910390fd5b621c9c388111156103bb57604051635742c80560e11b815260040160405180910390fd5b60028190556040518181527f32740b35c0ea213650f60d44366b4fb211c9033b50714e4a1d34e65d5beb9bb4906020015b60405180910390a150565b6004805460405163efc7840160e01b815233928101929092526001600160a01b03169063efc7840190602401602060405180830381865afa15801561043e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104629190610dcd565b61047f576040516326b3506d60e11b815260040160405180910390fd5b600182905560058190556040518281527f351fb23757bb5ea0546c85b7996ddd7155f96b939ebaa5ff7bc49c75f27f2c449060200160405180910390a16040518181527f9a14bfb5d18c4c3cf14cae19c23d7cf1bcede357ea40ca1f75cd49542c71c214906020015b60405180910390a15050565b5f546001600160a01b0316331461051d5760405162461bcd60e51b815260040161038e90610d96565b600480546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f22d1c35fe072d2e42c3c8f9bd4a0d34aa84a0101d020a62517b33fdb3174e5f791016104e8565b600b545f9060ff16156105935761058d82610ae7565b92915050565b60085460ff16156105a75761058d82610b45565b61058d82610b81565b5f546001600160a01b031633146105d95760405162461bcd60e51b815260040161038e90610d96565b6105e9633b9aca006103e8610e00565b81111561060957604051631e44fdeb60e11b815260040160405180910390fd5b60038190556040518181527f3336cd9708eaf2769a0f0dc0679f30e80f15dcd88d1921b5a16858e8b85c591a906020016103ec565b5f546001600160a01b031633146106675760405162461bcd60e51b815260040161038e90610d96565b6106705f610bc4565b565b5f546001600160a01b0316331461069b5760405162461bcd60e51b815260040161038e90610d96565b6106a9633b9aca0080610e00565b8111156106c95760405163874f603160e01b815260040160405180910390fd5b60068190556040518181527f2ab3f5a4ebbcbf3c24f62f5454f52f10e1a8c9dcc5acac8f19199ce881a6a108906020016103ec565b5f546001600160a01b031633146107275760405162461bcd60e51b815260040161038e90610d96565b60085460ff161561074b576040516379f9c57560e01b815260040160405180910390fd5b6008805460ff19166001179055565b5f546001600160a01b031633146107835760405162461bcd60e51b815260040161038e90610d96565b633b9aca008110806107a1575061079e633b9aca0080610e00565b81115b156107bf5760405163d9b5dcdf60e01b815260040160405180910390fd5b60098190556040518181527fd50d3079c77df569cd58d55d4e5614bfe7066449009425d22bde8e75242f50bb906020016103ec565b6004805460405163efc7840160e01b815233928101929092526001600160a01b03169063efc7840190602401602060405180830381865afa15801561083b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085f9190610dcd565b61087c576040516326b3506d60e11b815260040160405180910390fd5b60018190556040518181527f351fb23757bb5ea0546c85b7996ddd7155f96b939ebaa5ff7bc49c75f27f2c44906020016103ec565b5f546001600160a01b031633146108da5760405162461bcd60e51b815260040161038e90610d96565b633b9aca008110806108f857506108f5633b9aca0080610e00565b81115b156109155760405162ae184360e01b815260040160405180910390fd5b600a8190556040518181527f8647cebb7e57360673a28415c0bed2f68c42a86c5035f1c9b2eda2b09509288a906020016103ec565b600b545f9060ff168061095f575060085460ff165b1561096b57505f919050565b61058d82610c13565b5f546001600160a01b0316331461099d5760405162461bcd60e51b815260040161038e90610d96565b6109ab633b9aca0080610e00565b8111156109cb5760405163f37ec21560e01b815260040160405180910390fd5b60078190556040518181527f6b332a036d8c3ead57dcb06c87243bd7a2aed015ddf2d0528c2501dae56331aa906020016103ec565b5f546001600160a01b03163314610a295760405162461bcd60e51b815260040161038e90610d96565b6001600160a01b038116610a7f5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161038e565b610a8881610bc4565b50565b5f546001600160a01b03163314610ab45760405162461bcd60e51b815260040161038e90610d96565b600b5460ff1615610ad857604051631a7c228b60e21b815260040160405180910390fd5b600b805460ff19166001179055565b5f633b9aca0080600a548451600554600754610b039190610e00565b600154600654610b139190610e00565b610b1d9190610e17565b610b279190610e00565b610b319190610e00565b610b3b9190610e2a565b61058d9190610e2a565b5f633b9aca006005548351600754610b5d9190610e00565b610b679190610e00565b600154600654610b779190610e00565b610b3b9190610e17565b5f80610b8c83610c13565b90505f60015482610b9d9190610e00565b9050633b9aca0060035482610bb29190610e00565b610bbc9190610e2a565b949350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80515f908190815b81811015610c6457848181518110610c3557610c35610e49565b01602001516001600160f81b0319165f03610c5557600483019250610c5c565b6010830192505b600101610c1b565b50506002540160400192915050565b5f60208284031215610c83575f80fd5b5035919050565b5f8060408385031215610c9b575f80fd5b50508035926020909101359150565b5f60208284031215610cba575f80fd5b81356001600160a01b0381168114610cd0575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610cfb575f80fd5b813567ffffffffffffffff80821115610d12575f80fd5b818401915084601f830112610d25575f80fd5b813581811115610d3757610d37610cd7565b604051601f8201601f19908116603f01168101908382118183101715610d5f57610d5f610cd7565b81604052828152876020848701011115610d77575f80fd5b826020860160208301375f928101602001929092525095945050505050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b5f60208284031215610ddd575f80fd5b81518015158114610cd0575f80fd5b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761058d5761058d610dec565b8082018082111561058d5761058d610dec565b5f82610e4457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffdfea164736f6c6343000818000a", + "nonce": "0x0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000064a53e139d11b17b24de4dd0a242a54c37d1c0ff", + "0x0000000000000000000000000000000000000000000000000000000000000008": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000009": "0x000000000000000000000000000000000000000000000000000000003b9aca00", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0x000000000000000000000000000000000000000000000000000000003b9aca00", + "0x000000000000000000000000000000000000000000000000000000000000000b": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0x5300000000000000000000000000000000000003": { + "balance": "0x0", + "code": "0x608060405234801561000f575f80fd5b5060043610610055575f3560e01c8063715018a61461005957806379586dd7146100635780638da5cb5b14610076578063efc78401146100a5578063f2fde38b146100e0575b5f80fd5b6100616100f3565b005b61006161007136600461033a565b610130565b5f54610088906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d06100b336600461040c565b6001600160a01b03165f9081526001602052604090205460ff1690565b604051901515815260200161009c565b6100616100ee36600461040c565b610222565b5f546001600160a01b031633146101255760405162461bcd60e51b815260040161011c9061042c565b60405180910390fd5b61012e5f6102ad565b565b5f546001600160a01b031633146101595760405162461bcd60e51b815260040161011c9061042c565b5f5b825181101561021d578160015f85848151811061017a5761017a610463565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055508281815181106101c9576101c9610463565b60200260200101516001600160a01b03167f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d8360405161020d911515815260200190565b60405180910390a260010161015b565b505050565b5f546001600160a01b0316331461024b5760405162461bcd60e51b815260040161011c9061042c565b6001600160a01b0381166102a15760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161011c565b6102aa816102ad565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b80356001600160a01b0381168114610326575f80fd5b919050565b80358015158114610326575f80fd5b5f806040838503121561034b575f80fd5b823567ffffffffffffffff80821115610362575f80fd5b818501915085601f830112610375575f80fd5b8135602082821115610389576103896102fc565b8160051b604051601f19603f830116810181811086821117156103ae576103ae6102fc565b6040529283528183019350848101820192898411156103cb575f80fd5b948201945b838610156103f0576103e186610310565b855294820194938201936103d0565b96506103ff905087820161032b565b9450505050509250929050565b5f6020828403121561041c575f80fd5b61042582610310565b9392505050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffdfea164736f6c6343000818000a", + "nonce": "0x0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000064a53e139d11b17b24de4dd0a242a54c37d1c0ff" + } + }, + "0x5300000000000000000000000000000000000005": { + "balance": "0x0", + "code": "0x6080604052600436106100a8575f3560e01c806384411d651161006257806384411d651461017a5780638da5cb5b1461018f5780639e7adc79146101ad578063f2fde38b146101cc578063feec756c146101eb578063ff4f35461461020a575f80fd5b80632e1a7d4d146100b35780633cb747bf146100d45780633ccfd60b14610110578063457e1a491461012457806366d003ac14610147578063715018a614610166575f80fd5b366100af57005b5f80fd5b3480156100be575f80fd5b506100d26100cd366004610663565b610229565b005b3480156100df575f80fd5b506002546100f3906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011b575f80fd5b506100d26103e9565b34801561012f575f80fd5b5061013960015481565b604051908152602001610107565b348015610152575f80fd5b506003546100f3906001600160a01b031681565b348015610171575f80fd5b506100d26103f6565b348015610185575f80fd5b5061013960045481565b34801561019a575f80fd5b505f546100f3906001600160a01b031681565b3480156101b8575f80fd5b506100d26101c736600461067a565b61042a565b3480156101d7575f80fd5b506100d26101e636600461067a565b6104a4565b3480156101f6575f80fd5b506100d261020536600461067a565b61052c565b348015610215575f80fd5b506100d2610224366004610663565b6105a6565b6001548110156102b95760405162461bcd60e51b815260206004820152604a60248201527f4665655661756c743a207769746864726177616c20616d6f756e74206d75737460448201527f2062652067726561746572207468616e206d696e696d756d20776974686472616064820152691dd85b08185b5bdd5b9d60b21b608482015260a4015b60405180910390fd5b478082111561031d5760405162461bcd60e51b815260206004820152602a60248201527f4665655661756c743a20696e73756666696369656e742062616c616e636520746044820152696f20776974686472617760b01b60648201526084016102b0565b6004805483019055600354604080518481526001600160a01b0390921660208301523382820152517fc8a211cc64b6ed1b50595a9fcb1932b6d1e5a6e8ef15b60e5b1f988ea9086bba9181900360600190a1600254600354604080516020810182525f808252915163b2267a7b60e01b81526001600160a01b039485169463b2267a7b9488946103b79491909216928592906004016106a7565b5f604051808303818588803b1580156103ce575f80fd5b505af11580156103e0573d5f803e3d5ffd5b50505050505050565b476103f381610229565b50565b5f546001600160a01b0316331461041f5760405162461bcd60e51b81526004016102b090610711565b6104285f610614565b565b5f546001600160a01b031633146104535760405162461bcd60e51b81526004016102b090610711565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f1c928c417a10a21c3cddad148c5dba5d710e4b1442d6d8a36de345935ad84612905f90a35050565b5f546001600160a01b031633146104cd5760405162461bcd60e51b81526004016102b090610711565b6001600160a01b0381166105235760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016102b0565b6103f381610614565b5f546001600160a01b031633146105555760405162461bcd60e51b81526004016102b090610711565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f7e1e96961a397c8aa26162fe259cc837afc95e33aad4945ddc61c18dabb7a6ad905f90a35050565b5f546001600160a01b031633146105cf5760405162461bcd60e51b81526004016102b090610711565b600180549082905560408051828152602081018490527f0d3c80219fe57713b9f9c83d1e51426792d0c14d8e330e65b102571816140965910160405180910390a15050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610673575f80fd5b5035919050565b5f6020828403121561068a575f80fd5b81356001600160a01b03811681146106a0575f80fd5b9392505050565b60018060a01b03851681525f60208560208401526080604084015284518060808501525f5b818110156106e85786810183015185820160a0015282016106cc565b505f60a0828601015260a0601f19601f8301168501019250505082606083015295945050505050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e657200000000000000000060408201526060019056fea164736f6c6343000818000a", + "nonce": "0x0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000064a53e139d11b17b24de4dd0a242a54c37d1c0ff", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x000000000000000000000000502e605862276fa0521ca7390918e42dc78f3cb3", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x000000000000000000000000196083769541b25a86cbea3c443f97310277bea6" + } + }, + "0x64a53e139d11b17b24de4dd0a242a54c37d1c0ff": { + "balance": "0xde0b6b3a7640000", + "code": "0x", + "nonce": "0x1", + "storage": {} + }, + "0x914d7fec6aac8cd542e72bca78b30650d45643d7": { + "balance": "0x0", + "code": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3", + "nonce": "0x0", + "storage": {} + } + } +} \ No newline at end of file