From 2ed60dac1f92a796d9ea9f5d82c993f0136ca607 Mon Sep 17 00:00:00 2001 From: okkothejawa <103260942+okkothejawa@users.noreply.github.com> Date: Wed, 27 Mar 2024 16:27:02 +0300 Subject: [PATCH 1/7] Increase timeouts of Hive CI jobs (#308) --- .github/workflows/docker_hive.yml | 2 +- .github/workflows/hive.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker_hive.yml b/.github/workflows/docker_hive.yml index 02c9ca72e..fb225c977 100644 --- a/.github/workflows/docker_hive.yml +++ b/.github/workflows/docker_hive.yml @@ -19,7 +19,7 @@ concurrency: jobs: docker: - timeout-minutes: 60 + timeout-minutes: 120 name: Build and publish Docker image runs-on: ubicloud-standard-16 steps: diff --git a/.github/workflows/hive.yml b/.github/workflows/hive.yml index 603c5887c..273e04064 100644 --- a/.github/workflows/hive.yml +++ b/.github/workflows/hive.yml @@ -50,13 +50,13 @@ jobs: path: ./artifacts test: - timeout-minutes: 15 + timeout-minutes: 120 strategy: fail-fast: false needs: prepare name: run - runs-on: ubicloud-standard-4 + runs-on: ubicloud-standard-8 permissions: issues: write steps: From eec57d56cecc9ad7eb900a442a1c98192386ec45 Mon Sep 17 00:00:00 2001 From: Esad Yusuf Atik Date: Thu, 28 Mar 2024 14:23:45 +0300 Subject: [PATCH 2/7] Refactoring (#297) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * move everything under sovereign-sdk * move some crates to citrea directory * some renamings * Add db gitignore * Fix expose rpc test * Add ethereum-rpc * Add citrea-evm * Edit sys contract part in yaml * Move demo-stf into sov-sdk * rename sov-demo-rollup to citrea * remove unused stuff from ethereum-rpc * remove unnecessary genesis files * remove old demo-rollup related stuff * tidy up configs * remove sov-cli from rollup * Add COPYING * Talip/more refactoring (#307) * Refactor rollup * Remove unused bench * Init more README * Remove unused dep * Readme refactor * readme changes * fix rollup lib.rs --------- Co-authored-by: otaliptus * Esad/refactoring readmes (#306) * start main readme and fix errors * fix byte order problem in da slot hash * fix unnecessary logs from previous commit * Insert notice to readme * remove test dbs accidentally pushed * second big refactoring * Refactor make for fuzz * fix build error * seperate readmes * udpate bitcoin regtest configs * Add banner + minor fixes (#312) * fix links * Improve README & Add acknowledgements (#313) * Add banner + minor fixes * Improve disclaimer * Add newline * Fix * Better spaced * Edit text * Typo fix * Finalize disclaimer * Fix typo * Readme + test fix * bold some text * fix ci * fix foundry ci * fix git submodules --------- Co-authored-by: otaliptus Co-authored-by: Ömer Talip Akalın <56600661+otaliptus@users.noreply.github.com> --- .dockerignore | 11 +- .github/ISSUE_TEMPLATE/feature_request.md | 7 +- .github/workflows/checks.yml | 4 +- .gitignore | 4 +- .gitmodules | 4 +- COPYING | 674 ++ Cargo.lock | 799 +- Cargo.toml | 108 +- Dockerfile | 6 +- Makefile | 14 +- README.md | 144 +- assets/banner.png | Bin 0 -> 391960 bytes .../demo-rollup => bin/citrea}/.gitignore | 0 bin/citrea/Cargo.toml | 123 + bin/citrea/README.md | 9 + {examples/demo-rollup => bin/citrea}/build.rs | 0 .../bitcoin-regtest/rollup_config.toml | 32 + .../bitcoin-regtest/sequencer_config.toml | 1 + .../sequencer_rollup_config.toml | 21 +- .../mock-dockerized/rollup_config.toml | 0 .../mock-dockerized/sequencer_config.toml | 0 .../citrea/configs/mock/rollup_config.toml | 4 +- bin/citrea/configs/mock/sequencer_config.toml | 1 + .../configs/mock/sequencer_rollup_config.toml | 25 + .../citrea/configs/mocknet/rollup_config.toml | 0 .../citrea}/provers/risc0/Cargo.toml | 2 +- .../citrea}/provers/risc0/build.rs | 0 .../provers/risc0/guest-mock/Cargo.lock | 4 +- .../provers/risc0/guest-mock/Cargo.toml | 0 .../risc0/guest-mock/src/bin/mock_da.rs | 0 .../citrea}/provers/risc0/src/lib.rs | 0 .../citrea}/publish_block.sh | 0 .../citrea}/publish_da_block.sh | 4 +- .../citrea}/src/bitcoin_rollup.rs | 0 .../demo-rollup => bin/citrea}/src/eth.rs | 27 +- .../demo-rollup => bin/citrea}/src/lib.rs | 12 - .../demo-rollup => bin/citrea}/src/main.rs | 45 +- .../citrea}/src/mock_rollup.rs | 0 .../citrea}/src/test_rpc.rs | 0 .../citrea}/tests/all_tests.rs | 0 .../citrea}/tests/e2e/mod.rs | 38 +- .../citrea}/tests/evm/archival_state.rs | 4 +- .../citrea}/tests/evm/gas_price.rs | 4 +- .../citrea}/tests/evm/mod.rs | 10 +- .../citrea}/tests/evm/tracing.rs | 4 +- .../citrea}/tests/evm/uniswap/.gitignore | 0 .../citrea}/tests/evm/uniswap/Readme.md | 0 .../citrea}/tests/evm/uniswap/WETH9.json | 0 .../tests/evm/uniswap/contracts/Tether.sol | 0 .../tests/evm/uniswap/contracts/UsdCoin.sol | 0 .../tests/evm/uniswap/hardhat.config.js | 0 .../tests/evm/uniswap/package-lock.json | 0 .../citrea}/tests/evm/uniswap/package.json | 0 .../tests/evm/uniswap/scripts/01_deploy.js | 0 .../tests/evm/uniswap/scripts/02_swap.js | 0 .../citrea}/tests/evm/uniswap/yarn.lock | 0 .../citrea}/tests/mempool/mod.rs | 8 +- .../tests/sequencer_commitments/mod.rs | 2 +- .../soft_confirmation_rule_enforcer/mod.rs | 4 +- .../citrea}/tests/test_client/mod.rs | 7 +- .../citrea}/tests/test_helpers.rs | 4 +- .../demo-tests/bitcoin-regtest}/accounts.json | 0 .../bitcoin-regtest}/chain_state.json | 0 .../demo-tests/bitcoin-regtest}/evm.json | 0 .../soft_confirmation_rule_enforcer.json | 0 .../genesis/demo-tests/celestia/accounts.json | 0 .../genesis/demo-tests/celestia/evm.json | 0 .../soft_confirmation_rule_enforcer.json | 0 .../genesis/demo-tests/mock/accounts.json | 0 .../genesis/demo-tests/mock}/chain_state.json | 0 .../genesis/demo-tests/mock/evm.json | 0 .../mock/soft_confirmation_rule_enforcer.json | 0 .../accounts.json | 0 .../chain_state.json | 0 .../evm.json | 0 .../soft_confirmation_rule_enforcer.json | 0 .../genesis/integration-tests/accounts.json | 0 .../integration-tests}/chain_state.json | 0 .../genesis/integration-tests/evm.json | 0 .../soft_confirmation_rule_enforcer.json | 0 .../bitcoin => crates/bitcoin-da}/Cargo.toml | 2 +- .../bitcoin => crates/bitcoin-da}/LICENSE | 0 .../bitcoin => crates/bitcoin-da}/README.md | 3 +- .../bitcoin-da}/src/helpers/builders.rs | 0 .../bitcoin-da}/src/helpers/mod.rs | 0 .../bitcoin-da}/src/helpers/parsers.rs | 0 .../bitcoin-da}/src/helpers/test_utils.rs | 0 .../bitcoin => crates/bitcoin-da}/src/lib.rs | 0 .../bitcoin => crates/bitcoin-da}/src/rpc.rs | 0 .../bitcoin-da}/src/service.rs | 60 +- .../bitcoin-da}/src/spec/address.rs | 0 .../bitcoin-da}/src/spec/blob.rs | 0 .../bitcoin-da}/src/spec/block.rs | 0 .../bitcoin-da}/src/spec/block_hash.rs | 2 +- .../bitcoin-da}/src/spec/header.rs | 0 .../bitcoin-da}/src/spec/header_stream.rs | 0 .../bitcoin-da}/src/spec/mod.rs | 0 .../bitcoin-da}/src/spec/proof.rs | 0 .../bitcoin-da}/src/spec/transaction.rs | 0 .../bitcoin-da}/src/spec/utxo.rs | 0 .../bitcoin-da}/src/verifier.rs | 0 .../bitcoin-da}/test_data/blob.txt | 0 .../test_data/false_signature_txs.txt | 0 .../test_data/mock_non_segwit_txs.txt | 0 .../bitcoin-da}/test_data/mock_txs.txt | 0 .../test_data/signature_check_txs.txt | 0 .../citrea-stf/Cargo.toml | 42 +- crates/citrea-stf/README.md | 11 + .../citrea-stf/src/genesis_config.rs | 2 +- .../citrea-stf/src/hooks_impl.rs | 0 .../citrea-stf/src/lib.rs | 0 .../citrea-stf/src/runtime.rs | 6 +- .../ethereum-rpc}/Cargo.toml | 18 +- crates/ethereum-rpc/README.md | 5 + .../ethereum-rpc}/src/gas_price/cache.rs | 6 +- .../src/gas_price/fee_history.rs | 2 +- .../ethereum-rpc}/src/gas_price/gas_oracle.rs | 2 +- .../ethereum-rpc}/src/gas_price/mod.rs | 0 .../ethereum-rpc}/src/lib.rs | 618 +- .../sov-evm => crates/evm}/Cargo.toml | 12 +- crates/evm/README.md | 16 + .../sov-evm => crates/evm}/src/call.rs | 0 .../sov-evm => crates/evm}/src/evm/call.rs | 0 .../evm}/src/evm/conversions.rs | 0 .../sov-evm => crates/evm}/src/evm/db.rs | 0 .../evm}/src/evm/db_commit.rs | 0 .../sov-evm => crates/evm}/src/evm/db_init.rs | 0 .../evm}/src/evm/error/mod.rs | 0 .../evm}/src/evm/error/pool.rs | 0 .../evm}/src/evm/error/result.rs | 0 .../evm}/src/evm/error/rpc.rs | 0 .../evm}/src/evm/executor.rs | 0 .../sov-evm => crates/evm}/src/evm/handler.rs | 0 .../sov-evm => crates/evm}/src/evm/mod.rs | 0 .../evm}/src/evm/primitive_types.rs | 0 .../evm}/src/evm/system_contracts/.gitignore | 0 .../evm}/src/evm/system_contracts/README.md | 0 .../src/evm/system_contracts/foundry.toml | 0 .../src/evm/system_contracts/lib/Ownable.sol | 4 +- .../src/evm/system_contracts/lib/forge-std | 1 + .../system_contracts/src/L1BlockHashList.sol | 0 .../src/interfaces/IL1BlockHashList.sol | 0 .../test/L1BlockHashList.t.sol | 0 .../evm/system_contracts/test/Ownable.t.sol | 0 .../evm}/src/evm/test_data/BlockHash.abi | 0 .../evm}/src/evm/test_data/BlockHash.bin | 0 .../evm}/src/evm/test_data/BlockHash.sol | 0 .../evm}/src/evm/test_data/Caller.abi | 0 .../evm}/src/evm/test_data/Caller.bin | 0 .../evm}/src/evm/test_data/Caller.sol | 0 .../evm}/src/evm/test_data/Coinbase.abi | 0 .../evm}/src/evm/test_data/Coinbase.bin | 0 .../evm}/src/evm/test_data/Coinbase.sol | 0 .../evm}/src/evm/test_data/ISimpleStorage.abi | 0 .../evm}/src/evm/test_data/ISimpleStorage.bin | 0 .../evm}/src/evm/test_data/Logs.abi | 0 .../evm}/src/evm/test_data/Logs.bin | 0 .../evm}/src/evm/test_data/Logs.sol | 0 .../evm}/src/evm/test_data/Payable.abi | 0 .../evm}/src/evm/test_data/Payable.bin | 0 .../evm}/src/evm/test_data/Payable.sol | 0 .../evm}/src/evm/test_data/SelfDestructor.abi | 0 .../evm}/src/evm/test_data/SelfDestructor.bin | 0 .../evm}/src/evm/test_data/SelfDestructor.sol | 0 .../evm}/src/evm/test_data/SimpleStorage.abi | 0 .../evm}/src/evm/test_data/SimpleStorage.bin | 0 .../evm}/src/evm/test_data/Store.sol | 0 .../sov-evm => crates/evm}/src/evm/tests.rs | 0 .../sov-evm => crates/evm}/src/genesis.rs | 0 .../sov-evm => crates/evm}/src/hooks.rs | 0 .../sov-evm => crates/evm}/src/lib.rs | 2 +- .../evm}/src/provider_functions.rs | 0 .../sov-evm => crates/evm}/src/query.rs | 2 +- .../evm}/src/rpc_helpers/filter.rs | 0 .../evm}/src/rpc_helpers/log_utils.rs | 0 .../evm}/src/rpc_helpers/mod.rs | 0 .../evm}/src/rpc_helpers/responses.rs | 0 .../evm}/src/rpc_helpers/tracing_utils.rs | 0 .../sov-evm => crates/evm}/src/signer/mod.rs | 0 .../src/smart_contracts/blockhash_contract.rs | 0 .../src/smart_contracts/caller_contract.rs | 0 .../src/smart_contracts/coinbase_contract.rs | 0 .../evm}/src/smart_contracts/logs_contract.rs | 0 .../evm}/src/smart_contracts/mod.rs | 2 +- .../src/smart_contracts/payable_contract.rs | 0 .../self_destructor_contract.rs | 0 .../simple_storage_contract.rs | 0 .../evm}/src/tests/call_tests.rs | 0 .../evm}/src/tests/cfg_tests.rs | 0 .../evm}/src/tests/genesis_tests.rs | 0 .../evm}/src/tests/hooks_tests.rs | 0 .../sov-evm => crates/evm}/src/tests/mod.rs | 0 .../evm}/src/tests/queries/basic_queries.rs | 2 +- .../src/tests/queries/estimate_gas_tests.rs | 2 +- .../evm}/src/tests/queries/evm_call_tests.rs | 0 .../evm}/src/tests/queries/log_tests.rs | 2 +- .../evm}/src/tests/queries/mod.rs | 0 .../evm}/src/tests/test_signer.rs | 0 .../evm}/src/tests/tx_tests.rs | 0 .../sequencer-client/Cargo.toml | 2 +- crates/sequencer-client/README.md | 3 + .../sequencer-client/src/lib.rs | 21 +- .../sequencer}/Cargo.toml | 28 +- crates/sequencer/README.md | 7 + .../sequencer}/src/commitment_controller.rs | 0 .../sequencer}/src/config.rs | 0 .../sequencer}/src/db_provider/mod.rs | 2 +- .../sequencer}/src/lib.rs | 2 +- .../sequencer}/src/mempool.rs | 0 .../sequencer}/src/rpc.rs | 2 +- .../sequencer}/src/sequencer.rs | 13 +- .../sequencer}/src/utils.rs | 2 +- .../Cargo.toml | 12 +- .../soft-confirmation-rule-enforcer/README.md | 8 + .../src/call.rs | 0 .../src/genesis.rs | 0 .../src/hooks.rs | 0 .../src/lib.rs | 0 .../src/query.rs | 0 .../src/tests/call_tests.rs | 0 .../src/tests/genesis_tests.rs | 0 .../src/tests/hooks_tests.rs | 0 .../src/tests/mod.rs | 0 .../src/tests/query_tests.rs | 0 LICENSE => crates/sovereign-sdk/LICENSE | 0 crates/sovereign-sdk/README.md | 146 + .../sovereign-sdk/Releases.md | 0 .../sovereign-sdk/adapters}/avail/Cargo.toml | 0 .../sovereign-sdk/adapters}/avail/README.md | 0 .../adapters}/avail/src/avail.rs | 0 .../sovereign-sdk/adapters}/avail/src/lib.rs | 0 .../adapters}/avail/src/service.rs | 7 - .../adapters}/avail/src/spec/address.rs | 0 .../adapters}/avail/src/spec/block.rs | 0 .../adapters}/avail/src/spec/hash.rs | 0 .../adapters}/avail/src/spec/header.rs | 0 .../adapters}/avail/src/spec/mod.rs | 0 .../adapters}/avail/src/spec/transaction.rs | 0 .../adapters}/avail/src/verifier.rs | 0 .../adapters}/celestia/.gitignore | 0 .../adapters}/celestia/Cargo.toml | 16 +- .../adapters}/celestia/README.md | 0 .../adapters}/celestia/src/celestia.rs | 0 .../adapters}/celestia/src/da_service.rs | 13 - .../adapters}/celestia/src/lib.rs | 0 .../adapters}/celestia/src/shares.rs | 0 .../adapters}/celestia/src/types.rs | 0 .../adapters}/celestia/src/utils.rs | 0 .../celestia/src/verifier/address.rs | 0 .../adapters}/celestia/src/verifier/mod.rs | 0 .../adapters}/celestia/src/verifier/proofs.rs | 0 .../test_data/block_with_rollup_data/eds.json | 0 .../block_with_rollup_data/etx_rows.json | 0 .../block_with_rollup_data/header.json | 0 .../block_with_rollup_data/rollup_rows.json | 0 .../block_without_rollup_data/eds.json | 0 .../block_without_rollup_data/etx_rows.json | 0 .../block_without_rollup_data/header.json | 0 .../rollup_rows.json | 0 .../adapters}/mock-da/Cargo.toml | 0 .../sovereign-sdk/adapters}/mock-da/README.md | 0 .../adapters}/mock-da/src/db_connector.rs | 0 .../adapters}/mock-da/src/lib.rs | 0 .../adapters}/mock-da/src/service.rs | 19 - .../adapters}/mock-da/src/types/address.rs | 0 .../adapters}/mock-da/src/types/mod.rs | 0 .../mock-da/src/validity_condition.rs | 0 .../adapters}/mock-da/src/verifier.rs | 0 .../adapters}/mock-zkvm/Cargo.toml | 0 .../adapters}/mock-zkvm/README.md | 0 .../adapters}/mock-zkvm/src/lib.rs | 0 .../sovereign-sdk/adapters}/risc0/Cargo.toml | 0 .../sovereign-sdk/adapters}/risc0/README.md | 0 .../adapters}/risc0/src/guest.rs | 0 .../sovereign-sdk/adapters}/risc0/src/host.rs | 0 .../sovereign-sdk/adapters}/risc0/src/lib.rs | 0 .../adapters}/risc0/src/metrics.rs | 0 .../adapters}/risc0/tests/native.rs | 0 .../sovereign-sdk/adapters}/solana/Makefile | 0 .../sovereign-sdk/adapters}/solana/README.md | 0 .../adapters}/solana/config.json | 0 .../adapters}/solana/da_client/Cargo.lock | 0 .../adapters}/solana/da_client/Cargo.toml | 0 .../src/bin/account_delta_processor.rs | 0 .../adapters}/solana/da_client/src/lib.rs | 0 .../adapters}/solana/da_client/src/main.rs | 0 .../solana/solana_da_programs/.gitignore | 0 .../solana/solana_da_programs/.prettierignore | 0 .../solana/solana_da_programs/Anchor.toml | 0 .../solana/solana_da_programs/Cargo.lock | 0 .../solana/solana_da_programs/Cargo.toml | 0 .../solana_da_programs/migrations/deploy.ts | 0 .../solana/solana_da_programs/package.json | 0 .../programs/blockroot/Cargo.toml | 0 .../programs/blockroot/Xargo.toml | 0 .../programs/blockroot/src/da.rs | 0 .../programs/blockroot/src/lib.rs | 0 .../tests/solana_da_programs.ts | 0 .../solana/solana_da_programs/tsconfig.json | 0 .../solana/solana_da_programs/yarn.lock | 0 .../sovereign-sdk/assets}/banner.jpg | Bin .../sovereign-sdk/assets}/discord-banner.png | Bin .../sovereign-sdk/constants.json | 0 .../sovereign-sdk/constants.test.json | 0 .../sovereign-sdk/docker}/DEMO.md | 0 .../sovereign-sdk/docker}/Dockerfile.bridge | 0 .../docker}/Dockerfile.validator | 0 .../sovereign-sdk/docker}/Makefile | 0 .../sovereign-sdk/docker}/README.md | 0 .../docker}/credentials/bridge-0.addr | 0 .../docker}/credentials/bridge-0.key | 0 .../sovereign-sdk/docker}/docker-compose.yml | 0 .../sovereign-sdk/docker}/generate_configs.sh | 0 .../docker}/rollup_config_0.toml | 0 .../sovereign-sdk/docker}/run-bridge.sh | 0 .../sovereign-sdk/docker}/run-validator.sh | 0 .../sovereign-sdk/docker}/template.toml | 0 .../examples}/const-rollup-config/Cargo.toml | 0 .../examples}/const-rollup-config/README.md | 0 .../examples}/const-rollup-config/src/lib.rs | 0 .../examples}/demo-simple-stf/Cargo.toml | 0 .../examples}/demo-simple-stf/README.md | 0 .../examples}/demo-simple-stf/src/lib.rs | 0 .../demo-simple-stf/tests/stf_test.rs | 0 .../examples/demo-stf/Cargo.toml | 95 + .../examples/demo-stf}/README.md | 0 .../examples/demo-stf}/src/genesis_config.rs | 2 +- .../examples/demo-stf}/src/hooks_impl.rs | 0 .../examples/demo-stf}/src/lib.rs | 0 .../examples/demo-stf}/src/runtime.rs | 6 +- .../demo-stf}/src/tests/da_simulation.rs | 0 .../examples/demo-stf}/src/tests/mod.rs | 2 +- .../examples/demo-stf}/src/tests/stf_tests.rs | 2 +- .../demo-stf}/src/tests/tx_revert_tests.rs | 0 .../examples}/simple-nft-module/Cargo.toml | 0 .../examples}/simple-nft-module/README.md | 0 .../examples}/simple-nft-module/src/call.rs | 0 .../simple-nft-module/src/genesis.rs | 0 .../examples}/simple-nft-module/src/lib.rs | 0 .../examples}/simple-nft-module/src/query.rs | 0 .../examples}/simple-nft-module/src/tests.rs | 0 .../simple-nft-module/tests/nft_test.rs | 0 .../genesis/demo-tests/bitcoin/accounts.json | 3 + .../genesis/demo-tests/bitcoin/bank.json | 0 .../demo-tests/bitcoin}/chain_state.json | 0 .../genesis/demo-tests/bitcoin/evm.json | 25 + .../genesis/demo-tests/bitcoin/nft.json | 0 .../bitcoin/sequencer_registry.json | 0 .../soft_confirmation_rule_enforcer.json | 5 + .../demo-tests/bitcoin/value_setter.json | 0 .../genesis/demo-tests/celestia/accounts.json | 3 + .../genesis/demo-tests/celestia/bank.json | 0 .../demo-tests/celestia/chain_state.json | 7 + .../genesis/demo-tests/celestia/evm.json | 25 + .../genesis/demo-tests/celestia/nft.json | 0 .../celestia/sequencer_registry.json | 0 .../soft_confirmation_rule_enforcer.json | 5 + .../demo-tests/celestia/value_setter.json | 0 .../genesis/demo-tests/mock/accounts.json | 3 + .../genesis/demo-tests/mock/bank.json | 0 .../genesis/demo-tests/mock/chain_state.json | 7 + .../genesis/demo-tests/mock/evm.json | 81 + .../genesis/demo-tests/mock/nft.json | 0 .../demo-tests/mock/sequencer_registry.json | 0 .../mock/soft_confirmation_rule_enforcer.json | 5 + .../genesis/demo-tests/mock/value_setter.json | 0 .../accounts.json | 3 + .../bank.json | 0 .../chain_state.json | 7 + .../evm.json | 25 + .../nft.json | 0 .../sequencer_registry.json | 0 .../soft_confirmation_rule_enforcer.json | 5 + .../value_setter.json | 0 .../genesis/integration-tests/accounts.json | 3 + .../genesis/integration-tests/bank.json | 0 .../integration-tests/chain_state.json | 7 + .../genesis/integration-tests/evm.json | 25 + .../genesis/integration-tests/nft.json | 0 .../integration-tests/sequencer_registry.json | 0 .../soft_confirmation_rule_enforcer.json | 6 + .../integration-tests/value_setter.json | 0 .../test-data/keys/minter_private_key.json | 0 .../keys/token_deployer_private_key.json | 0 .../test-data/keys/tx_signer_private_key.json | 0 .../examples}/test-data/requests/burn.json | 0 .../test-data/requests/create_token.json | 0 .../examples}/test-data/requests/mint.json | 0 .../requests/nft/create_collection.json | 0 .../requests/nft/freeze_collection.json | 0 .../test-data/requests/nft/mint_nft.json | 0 .../test-data/requests/nft/transfer_nft.json | 0 .../requests/nft/update_token_uri.json | 0 .../requests/register_sequencer.json | 0 .../test-data/requests/transfer.json | 0 .../full-node}/db/sov-db/Cargo.toml | 0 .../full-node}/db/sov-db/README.md | 0 .../db/sov-db/benches/state_db_bench.rs | 0 .../full-node}/db/sov-db/src/ledger_db/mod.rs | 0 .../full-node}/db/sov-db/src/ledger_db/rpc.rs | 0 .../full-node}/db/sov-db/src/lib.rs | 0 .../full-node}/db/sov-db/src/native_db.rs | 0 .../db/sov-db/src/rocks_db_config.rs | 0 .../full-node}/db/sov-db/src/schema/mod.rs | 0 .../full-node}/db/sov-db/src/schema/tables.rs | 0 .../full-node}/db/sov-db/src/schema/types.rs | 0 .../full-node}/db/sov-db/src/state_db.rs | 0 .../full-node}/db/sov-schema-db/Cargo.toml | 0 .../full-node}/db/sov-schema-db/README.md | 0 .../db/sov-schema-db/src/iterator.rs | 0 .../full-node}/db/sov-schema-db/src/lib.rs | 0 .../db/sov-schema-db/src/metrics.rs | 0 .../full-node}/db/sov-schema-db/src/schema.rs | 0 .../db/sov-schema-db/src/schema_batch.rs | 0 .../db/sov-schema-db/src/snapshot.rs | 0 .../full-node}/db/sov-schema-db/src/test.rs | 0 .../db/sov-schema-db/tests/db_test.rs | 0 .../db/sov-schema-db/tests/iterator_test.rs | 0 .../db/sov-schema-db/tests/snapshot_test.rs | 0 .../full-node}/sov-ledger-rpc/Cargo.toml | 0 .../full-node}/sov-ledger-rpc/src/client.rs | 0 .../full-node}/sov-ledger-rpc/src/lib.rs | 0 .../full-node}/sov-ledger-rpc/src/server.rs | 0 .../sov-ledger-rpc/tests/empty_ledger.rs | 0 .../sov-prover-storage-manager/Cargo.toml | 0 .../sov-prover-storage-manager/README.md | 0 .../benches/single_thread_progression.rs | 0 .../src/dummy_storage.rs | 0 .../sov-prover-storage-manager/src/lib.rs | 0 .../src/snapshot_manager.rs | 0 .../full-node}/sov-sequencer/Cargo.toml | 0 .../full-node}/sov-sequencer/README.md | 0 .../sov-sequencer/src/batch_builder.rs | 0 .../full-node}/sov-sequencer/src/lib.rs | 0 .../full-node}/sov-sequencer/src/utils.rs | 0 .../full-node}/sov-stf-runner/Cargo.toml | 2 +- .../full-node}/sov-stf-runner/README.md | 0 .../full-node}/sov-stf-runner/src/config.rs | 0 .../full-node}/sov-stf-runner/src/lib.rs | 0 .../full-node}/sov-stf-runner/src/mock/mod.rs | 0 .../sov-stf-runner/src/prover_service/mod.rs | 0 .../src/prover_service/parallel/mod.rs | 0 .../src/prover_service/parallel/prover.rs | 0 .../full-node}/sov-stf-runner/src/runner.rs | 0 .../full-node}/sov-stf-runner/src/verifier.rs | 0 .../sov-stf-runner/tests/hash_stf.rs | 0 .../sov-stf-runner/tests/prover_tests.rs | 0 .../tests/runner_initialization_tests.rs | 0 .../tests/runner_reorg_tests.rs | 0 crates/sovereign-sdk/fuzz/Cargo.lock | 3927 +++++++ .../sovereign-sdk/fuzz}/Cargo.toml | 0 {fuzz => crates/sovereign-sdk/fuzz}/Makefile | 0 {fuzz => crates/sovereign-sdk/fuzz}/README.md | 0 ...h-da39a3ee5e6b4b0d3255bfef95601890afd80709 | 0 ...h-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 | Bin ...h-03ff9dbf9c64fb7c125f0aec0b8b80a972907eb8 | 0 ...h-1261a81d957460d69943ae02e30528372736fc15 | 0 ...h-1f039bacf8f860eb5507d9ee3a9879dfe316cf5e | 0 ...h-44796f5e67307b5b18e648fdd016e885ebf50da9 | 0 ...h-5e665cf3759c0aabfc3e898f6294840582421b32 | 0 ...h-6929e000e5891085cf17a75de96dd505b6499083 | 0 ...h-816595d1445fb45b609cca5417ba5f537c74ab43 | Bin ...h-98daf6c68def387cffda2937a318cdfd9e956627 | Bin ...h-b4a051390ba551b5349b6f233930f32f9e16bd85 | Bin ...h-e5f45f193d720ae7264383fcc0763cd945120fc1 | 0 ...h-2221b8862d9d37ec7c714a5df89b570c1356cdba | 0 ...h-da39a3ee5e6b4b0d3255bfef95601890afd80709 | 0 ...h-ef43788e032a15a049005ce4fd839b3777597338 | 0 ...t-727720324b031a1f6408810b07628b558866fb00 | 0 ...t-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f | 0 .../fuzz}/fuzz_targets/accounts_call.rs | 0 .../fuzz_targets/accounts_call_random.rs | 0 .../accounts_parse_call_message.rs | 0 .../accounts_parse_call_message_random.rs | 0 .../address_bech_32_parse_serde.rs | 0 .../address_bech_32_try_from_bytes.rs | 0 .../fuzz}/fuzz_targets/bank_call.rs | 0 .../fuzz_targets/bank_parse_call_message.rs | 0 .../fuzz}/fuzz_targets/parse_address.rs | 0 .../fuzz}/fuzz_targets/share_deserialize.rs | 0 .../sovereign-sdk/module-system}/README.md | 0 .../module-system}/RPC_WALKTHROUGH.md | 0 .../examples/sov-accessory-state/Cargo.toml | 0 .../examples/sov-accessory-state/README.md | 0 .../examples/sov-accessory-state/src/lib.rs | 0 .../examples/sov-accessory-state/src/query.rs | 0 .../sov-accessory-state/tests/test.rs | 0 .../examples/sov-value-setter/Cargo.toml | 0 .../examples/sov-value-setter/README.md | 0 .../examples/sov-value-setter/src/call.rs | 0 .../examples/sov-value-setter/src/genesis.rs | 0 .../examples/sov-value-setter/src/lib.rs | 0 .../examples/sov-value-setter/src/query.rs | 0 .../examples/sov-value-setter/src/tests.rs | 0 .../examples/sov-vec-setter/Cargo.toml | 0 .../examples/sov-vec-setter/README.md | 0 .../examples/sov-vec-setter/src/call.rs | 0 .../examples/sov-vec-setter/src/genesis.rs | 0 .../examples/sov-vec-setter/src/lib.rs | 0 .../examples/sov-vec-setter/src/query.rs | 0 .../examples/sov-vec-setter/tests/tests.rs | 0 .../integration-tests/.gitignore | 0 .../integration-tests/Cargo.toml | 0 .../integration-tests/README.md | 0 .../src/chain_state/helpers.rs | 0 .../integration-tests/src/chain_state/mod.rs | 0 .../src/chain_state/tests.rs | 0 .../integration-tests/src/lib.rs | 0 .../src/nested_modules/helpers.rs | 0 .../src/nested_modules/mod.rs | 0 .../src/nested_modules/tests.rs | 0 .../module-template/Cargo.toml | 0 .../module-template/README.md | 0 .../module-template/src/call.rs | 0 .../module-template/src/genesis.rs | 0 .../module-template/src/lib.rs | 0 .../module-template/src/query.rs | 0 .../module-template/tests/value_setter.rs | 0 .../sov-accounts/Cargo.toml | 0 .../sov-accounts/README.md | 0 .../sov-accounts/src/call.rs | 0 .../sov-accounts/src/fuzz.rs | 0 .../sov-accounts/src/genesis.rs | 0 .../sov-accounts/src/hooks.rs | 0 .../sov-accounts/src/lib.rs | 0 .../sov-accounts/src/query.rs | 0 .../sov-accounts/src/tests.rs | 0 .../sov-attester-incentives/Cargo.toml | 0 .../sov-attester-incentives/README.md | 0 .../sov-attester-incentives/src/call.rs | 0 .../sov-attester-incentives/src/genesis.rs | 0 .../sov-attester-incentives/src/lib.rs | 0 .../sov-attester-incentives/src/query.rs | 0 .../src/tests/attestation_processing.rs | 0 .../src/tests/challenger.rs | 0 .../src/tests/helpers.rs | 0 .../src/tests/invariant.rs | 0 .../sov-attester-incentives/src/tests/mod.rs | 0 .../src/tests/unbonding.rs | 0 .../sov-bank/Cargo.toml | 0 .../module-implementations/sov-bank/README.md | 0 .../sov-bank/src/call.rs | 0 .../sov-bank/src/genesis.rs | 0 .../sov-bank/src/hooks.rs | 0 .../sov-bank/src/lib.rs | 0 .../sov-bank/src/query.rs | 0 .../sov-bank/src/token.rs | 0 .../sov-bank/src/utils.rs | 0 .../sov-bank/tests/archival_query_test.rs | 0 .../sov-bank/tests/burn_test.rs | 0 .../sov-bank/tests/create_token_test.rs | 0 .../sov-bank/tests/freeze_test.rs | 0 .../sov-bank/tests/gas_test.rs | 0 .../sov-bank/tests/helpers/mod.rs | 0 .../sov-bank/tests/mint_test.rs | 0 .../sov-bank/tests/transfer_test.rs | 0 .../sov-blob-storage/Cargo.toml | 0 .../sov-blob-storage/README.md | 0 .../sov-blob-storage/src/README.md | 0 .../sov-blob-storage/src/call.rs | 0 .../sov-blob-storage/src/capabilities.rs | 0 .../sov-blob-storage/src/lib.rs | 0 .../sov-blob-storage/src/query.rs | 0 .../tests/blob_storage_tests.rs | 0 .../tests/capability_tests.rs | 0 .../sov-chain-state/Cargo.toml | 0 .../sov-chain-state/README.md | 0 .../sov-chain-state/src/call.rs | 0 .../sov-chain-state/src/genesis.rs | 0 .../sov-chain-state/src/hooks.rs | 0 .../sov-chain-state/src/lib.rs | 0 .../sov-chain-state/src/query.rs | 0 .../sov-chain-state/src/tests.rs | 0 .../sov-chain-state/tests/all_tests.rs | 0 .../sov-nft-module/Cargo.toml | 0 .../sov-nft-module/README.md | 0 .../sov-nft-module/TUTORIAL.md | 0 .../sov-nft-module/offchain_readme.md | 0 .../sov-nft-module/src/address.rs | 0 .../sov-nft-module/src/call.rs | 0 .../sov-nft-module/src/collection.rs | 0 .../sov-nft-module/src/genesis.rs | 0 .../sov-nft-module/src/init_db.sql | 0 .../sov-nft-module/src/lib.rs | 0 .../sov-nft-module/src/nft.rs | 0 .../sov-nft-module/src/offchain.rs | 0 .../sov-nft-module/src/query.rs | 0 .../sov-nft-module/src/sql.rs | 0 .../sov-nft-module/src/utils.rs | 0 .../sov-nft-module/tests/nft_test.rs | 0 .../sov-prover-incentives/Cargo.toml | 0 .../sov-prover-incentives/README.md | 0 .../sov-prover-incentives/src/call.rs | 0 .../sov-prover-incentives/src/genesis.rs | 0 .../sov-prover-incentives/src/lib.rs | 0 .../sov-prover-incentives/src/query.rs | 0 .../sov-prover-incentives/src/tests.rs | 0 .../sov-sequencer-registry/Cargo.toml | 0 .../sov-sequencer-registry/README.md | 0 .../sov-sequencer-registry/src/call.rs | 0 .../sov-sequencer-registry/src/genesis.rs | 0 .../sov-sequencer-registry/src/hooks.rs | 0 .../sov-sequencer-registry/src/lib.rs | 0 .../sov-sequencer-registry/src/query.rs | 0 .../tests/helpers/mod.rs | 0 .../tests/hooks_test.rs | 0 .../tests/sequencer_registry_test.rs | 0 .../module-system}/module-schemas/Cargo.toml | 2 +- .../module-system}/module-schemas/README.md | 0 .../module-system}/module-schemas/build.rs | 0 .../module-schemas/schemas/sov-accounts.json | 0 .../module-schemas/schemas/sov-bank.json | 0 .../module-schemas/schemas/sov-election.json | 0 .../schemas/sov-evm-experimental.json | 0 .../module-schemas/schemas/sov-evm.json | 0 .../schemas/sov-prover-incentives.json | 0 .../schemas/sov-sequencer-registry.json | 0 .../schemas/sov-value-setter.json | 0 .../module-system}/module-schemas/src/lib.rs | 0 .../module-system}/sov-cli/Cargo.toml | 14 +- .../module-system}/sov-cli/README.md | 0 .../module-system}/sov-cli/src/lib.rs | 0 .../sov-cli/src/wallet_state.rs | 0 .../sov-cli/src/workflows/keys.rs | 0 .../sov-cli/src/workflows/mod.rs | 0 .../sov-cli/src/workflows/rpc.rs | 0 .../sov-cli/src/workflows/transactions.rs | 0 .../sov-cli/test-data/requests/burn.json | 0 .../test-data/requests/create_token.json | 0 .../sov-cli/test-data/requests/mint.json | 0 .../sov-cli/test-data/requests/transfer.json | 0 .../module-system}/sov-cli/tests/keys.rs | 0 .../sov-cli/tests/transactions.rs | 0 .../module-system}/sov-modules-api/.gitignore | 0 .../module-system}/sov-modules-api/Cargo.toml | 0 .../module-system}/sov-modules-api/README.md | 0 .../module-system}/sov-modules-api/src/cli.rs | 0 .../src/containers/accessory_map.rs | 0 .../src/containers/accessory_value.rs | 0 .../src/containers/accessory_vec.rs | 0 .../src/containers/kernel_value.rs | 0 .../sov-modules-api/src/containers/map.rs | 0 .../sov-modules-api/src/containers/mod.rs | 0 .../src/containers/traits/map.rs | 0 .../src/containers/traits/mod.rs | 0 .../src/containers/traits/value.rs | 0 .../src/containers/traits/vec.rs | 0 .../sov-modules-api/src/containers/value.rs | 0 .../sov-modules-api/src/containers/vec.rs | 0 .../src/containers/versioned_value.rs | 0 .../sov-modules-api/src/default_context.rs | 0 .../sov-modules-api/src/default_signature.rs | 0 .../sov-modules-api/src/hooks.rs | 0 .../module-system}/sov-modules-api/src/lib.rs | 0 .../sov-modules-api/src/pub_key_hex.rs | 0 .../sov-modules-api/src/reexport_macros.rs | 0 .../sov-modules-api/src/serde_pub_key.rs | 0 .../sov-modules-api/src/tests.rs | 0 .../sov-modules-api/src/transaction.rs | 0 .../sov-modules-api/src/utils.rs | 0 .../sov-modules-api/tests/state_tests.rs | 0 .../sov-modules-core/Cargo.toml | 0 .../module-system}/sov-modules-core/Makefile | 0 .../module-system}/sov-modules-core/README.md | 0 .../sov-modules-core/src/common/address.rs | 0 .../sov-modules-core/src/common/bytes.rs | 0 .../sov-modules-core/src/common/error.rs | 0 .../sov-modules-core/src/common/key.rs | 0 .../sov-modules-core/src/common/mod.rs | 0 .../sov-modules-core/src/common/witness.rs | 0 .../sov-modules-core/src/lib.rs | 0 .../sov-modules-core/src/module/dispatch.rs | 0 .../sov-modules-core/src/module/mod.rs | 0 .../sov-modules-core/src/module/spec.rs | 0 .../src/runtime/capabilities.rs | 0 .../src/runtime/kernel_module.rs | 0 .../sov-modules-core/src/runtime/mod.rs | 0 .../sov-modules-core/src/storage/cache.rs | 0 .../sov-modules-core/src/storage/codec.rs | 0 .../sov-modules-core/src/storage/mod.rs | 0 .../src/storage/scratchpad.rs | 0 .../tests/working_set_tests.rs | 0 .../sov-modules-macros/Cargo.toml | 0 .../sov-modules-macros/README.md | 0 .../sov-modules-macros/src/cli_parser.rs | 0 .../sov-modules-macros/src/common.rs | 0 .../sov-modules-macros/src/default_runtime.rs | 0 .../src/dispatch/dispatch_call.rs | 0 .../src/dispatch/genesis.rs | 0 .../src/dispatch/message_codec.rs | 0 .../sov-modules-macros/src/dispatch/mod.rs | 0 .../sov-modules-macros/src/event.rs | 0 .../sov-modules-macros/src/lib.rs | 0 .../sov-modules-macros/src/make_constants.rs | 0 .../sov-modules-macros/src/manifest.rs | 6 +- .../src/module_call_json_schema.rs | 0 .../sov-modules-macros/src/module_info.rs | 0 .../sov-modules-macros/src/new_types.rs | 0 .../sov-modules-macros/src/offchain.rs | 0 .../sov-modules-macros/src/rpc/expose_rpc.rs | 0 .../sov-modules-macros/src/rpc/mod.rs | 0 .../sov-modules-macros/src/rpc/rpc_gen.rs | 0 .../sov-modules-macros/tests/all_tests.rs | 0 .../derive_enum_mixed_fields.rs | 0 .../derive_enum_named_fields.rs | 0 .../derive_enum_unnamed_fields.rs | 0 .../derive_struct_named_fields.rs | 0 .../derive_struct_unnamed_fields.rs | 0 .../tests/cli_wallet_arg/derive_wallet.rs | 0 .../tests/constants/create_constant.rs | 0 .../tests/custom_codec_must_be_used.rs | 0 .../tests/dispatch/derive_dispatch.rs | 0 .../tests/dispatch/derive_event.rs | 0 .../tests/dispatch/derive_genesis.rs | 0 .../tests/dispatch/missing_serialization.rs | 0 .../dispatch/missing_serialization.stderr | 0 .../tests/dispatch/modules.rs | 0 .../tests/module_info/custom_codec_builder.rs | 0 .../derive_on_enum_not_supported.rs | 0 .../derive_on_enum_not_supported.stderr | 0 .../module_info/field_missing_attribute.rs | 0 .../field_missing_attribute.stderr | 0 .../tests/module_info/missing_address.rs | 0 .../tests/module_info/missing_address.stderr | 0 .../tests/module_info/mod_and_state.rs | 0 .../tests/module_info/no_generics.rs | 0 .../tests/module_info/no_generics.stderr | 0 .../module_info/not_supported_attribute.rs | 0 .../tests/module_info/not_supported_type.rs | 0 .../module_info/not_supported_type.stderr | 0 .../tests/module_info/parse.rs | 0 .../module_info/second_addr_not_supported.rs | 0 .../second_addr_not_supported.stderr | 0 .../tests/module_info/use_address_trait.rs | 0 .../tests/rpc/derive_rpc.rs | 0 .../tests/rpc/derive_rpc_with_where.rs | 0 .../tests/rpc/expose_rpc.rs | 0 .../expose_rpc_associated_type_not_static.rs | 0 ...pose_rpc_associated_type_not_static.stderr | 0 .../tests/rpc/expose_rpc_associated_types.rs | 0 .../rpc/expose_rpc_associated_types_nested.rs | 0 .../expose_rpc_first_generic_not_context.rs | 0 ...xpose_rpc_first_generic_not_context.stderr | 22 +- .../sov-modules-rollup-blueprint/Cargo.toml | 4 +- .../sov-modules-rollup-blueprint/README.md | 0 .../sov-modules-rollup-blueprint/src/lib.rs | 6 +- .../src/runtime_rpc.rs | 0 .../src/wallet.rs | 0 .../sov-modules-stf-blueprint/Cargo.toml | 0 .../sov-modules-stf-blueprint/README.md | 0 .../sov-modules-stf-blueprint/clippy.toml | 0 .../sov-modules-stf-blueprint/src/batch.rs | 0 .../src/kernels/basic.rs | 0 .../src/kernels/mod.rs | 0 .../sov-modules-stf-blueprint/src/lib.rs | 0 .../src/stf_blueprint.rs | 0 .../src/tx_verifier.rs | 0 .../sov-soft-confirmations-kernel/Cargo.toml | 0 .../sov-soft-confirmations-kernel/src/lib.rs | 0 .../module-system}/sov-state/.gitignore | 0 .../module-system}/sov-state/Cargo.toml | 0 .../module-system}/sov-state/README.md | 0 .../sov-state/src/codec/bcs_codec.rs | 0 .../sov-state/src/codec/borsh_codec.rs | 0 .../sov-state/src/codec/json_codec.rs | 0 .../module-system}/sov-state/src/codec/mod.rs | 0 .../sov-state/src/codec/split_codec.rs | 0 .../module-system}/sov-state/src/config.rs | 0 .../module-system}/sov-state/src/lib.rs | 0 .../sov-state/src/prover_storage.rs | 0 .../module-system}/sov-state/src/witness.rs | 0 .../sov-state/src/zk_storage.rs | 0 .../utils/sov-data-generators/Cargo.toml | 0 .../sov-data-generators/src/bank_data.rs | 0 .../utils/sov-data-generators/src/lib.rs | 0 .../src/value_setter_data.rs | 0 .../rollup-interface}/Cargo.toml | 0 .../sovereign-sdk/rollup-interface}/Makefile | 0 .../sovereign-sdk/rollup-interface}/README.md | 0 .../rollup-interface}/specs/assets/SovSDK.png | Bin .../rollup-interface}/specs/interfaces/da.md | 0 .../specs/interfaces/interface.md | 0 .../rollup-interface}/specs/interfaces/stf.md | 0 .../specs/interfaces/zkvm.md | 0 .../rollup-interface}/specs/overview.md | 0 .../rollup-interface}/src/lib.rs | 0 .../rollup-interface}/src/node/README.md | 0 .../rollup-interface}/src/node/mod.rs | 0 .../rollup-interface}/src/node/rpc/mod.rs | 1 + .../src/node/services/batch_builder.rs | 0 .../rollup-interface}/src/node/services/da.rs | 7 - .../src/node/services/mod.rs | 0 .../src/state_machine/README.md | 0 .../src/state_machine/crypto/mod.rs | 0 .../src/state_machine/crypto/simple_hasher.rs | 0 .../rollup-interface}/src/state_machine/da.rs | 0 .../src/state_machine/mod.rs | 0 .../src/state_machine/optimistic.rs | 0 .../src/state_machine/soft_confirmation.rs | 0 .../src/state_machine/stf.rs | 0 .../src/state_machine/stf/fuzzing.rs | 0 .../src/state_machine/storage.rs | 0 .../src/state_machine/zk/mod.rs | 0 .../sovereign-sdk/scripts}/blockscout/.env | 0 .../check_missing_dependency_versions.sh | 0 .../sovereign-sdk/scripts/retesteth/README.md | 1 + .../scripts}/retesteth/config.json | 0 .../validate_packages_to_publish_yml.sh | 0 .../sovereign-sdk/utils}/README.md | 0 .../utils}/bashtestmd/Cargo.toml | 0 .../utils}/bashtestmd/src/main.rs | 0 .../utils}/rng-da-service/Cargo.toml | 12 +- .../utils}/rng-da-service/src/lib.rs | 13 - .../utils}/zk-cycle-macros/Cargo.toml | 0 .../utils}/zk-cycle-macros/README.md | 0 .../utils}/zk-cycle-macros/src/lib.rs | 0 .../utils}/zk-cycle-macros/tests/all_tests.rs | 0 .../zk-cycle-macros/tests/cycle_macro.rs | 0 .../utils}/zk-cycle-utils/Cargo.toml | 0 .../utils}/zk-cycle-utils/README.md | 0 .../utils}/zk-cycle-utils/src/lib.rs | 0 .../utils}/zk-cycle-utils/tracer/Cargo.lock | 0 .../utils}/zk-cycle-utils/tracer/Cargo.toml | 0 .../utils}/zk-cycle-utils/tracer/src/main.rs | 0 deny.toml | 3 + docs/dev-setup.md | 73 + docs/run.md | 103 + examples/demo-rollup/Cargo.toml | 157 - examples/demo-rollup/Makefile | 120 - examples/demo-rollup/README.md | 389 - examples/demo-rollup/README_CELESTIA.md | 366 - examples/demo-rollup/benches/node/Makefile | 34 - examples/demo-rollup/benches/node/README.md | 74 - .../demo-rollup/benches/node/rollup_bench.rs | 126 - .../benches/node/rollup_coarse_measure.rs | 247 - .../benches/node/rollup_config.toml | 23 - examples/demo-rollup/benches/prover/README.md | 205 - .../demo-rollup/benches/prover/datagen.rs | 25 - .../benches/prover/prover_bench.rs | 291 - .../benches/prover/rollup_config.toml | 25 - .../demo-rollup/celestia_rollup_config.toml | 28 - examples/demo-rollup/citrea-stf/README.md | 0 .../proptest-regressions/test_rpc.txt | 11 - .../provers/risc0/guest-celestia/Cargo.lock | 9332 ----------------- .../provers/risc0/guest-celestia/Cargo.toml | 40 - .../risc0/guest-celestia/src/bin/rollup.rs | 35 - examples/demo-rollup/src/celestia_rollup.rs | 135 - examples/demo-rollup/src/sov-cli/README.md | 22 - examples/demo-rollup/src/sov-cli/main.rs | 13 - examples/demo-rollup/stf/Cargo.toml | 95 - examples/demo-rollup/submitting_1.sh | 21 - examples/demo-rollup/submitting_2.sh | 15 - full-node/sov-ethereum/src/batch_builder.rs | 32 - hive/Dockerfile | 6 +- .../module-implementations/sov-evm/README.md | 5 - .../src/evm/system_contracts/lib/forge-std | 1 - packages_to_publish.yml | 32 - scripts/retesteth/README.md | 1 - test-da-dbs/.gitignore | 5 +- 859 files changed, 6532 insertions(+), 13229 deletions(-) create mode 100644 COPYING create mode 100644 assets/banner.png rename {examples/demo-rollup => bin/citrea}/.gitignore (100%) create mode 100644 bin/citrea/Cargo.toml create mode 100644 bin/citrea/README.md rename {examples/demo-rollup => bin/citrea}/build.rs (100%) create mode 100644 bin/citrea/configs/bitcoin-regtest/rollup_config.toml create mode 100644 bin/citrea/configs/bitcoin-regtest/sequencer_config.toml rename examples/demo-rollup/bitcoin_rollup_config.toml => bin/citrea/configs/bitcoin-regtest/sequencer_rollup_config.toml (63%) rename examples/demo-rollup/mock_dockerized_rollup_config.toml => bin/citrea/configs/mock-dockerized/rollup_config.toml (100%) rename examples/demo-rollup/mock_sequencer_config.toml => bin/citrea/configs/mock-dockerized/sequencer_config.toml (100%) rename examples/demo-rollup/mock_rollup_config.toml => bin/citrea/configs/mock/rollup_config.toml (94%) create mode 100644 bin/citrea/configs/mock/sequencer_config.toml create mode 100644 bin/citrea/configs/mock/sequencer_rollup_config.toml rename examples/demo-rollup/mocknet_rollup_config.toml => bin/citrea/configs/mocknet/rollup_config.toml (100%) rename {examples/demo-rollup => bin/citrea}/provers/risc0/Cargo.toml (84%) rename {examples/demo-rollup => bin/citrea}/provers/risc0/build.rs (100%) rename {examples/demo-rollup => bin/citrea}/provers/risc0/guest-mock/Cargo.lock (99%) rename {examples/demo-rollup => bin/citrea}/provers/risc0/guest-mock/Cargo.toml (100%) rename {examples/demo-rollup => bin/citrea}/provers/risc0/guest-mock/src/bin/mock_da.rs (100%) rename {examples/demo-rollup => bin/citrea}/provers/risc0/src/lib.rs (100%) rename {examples/demo-rollup => bin/citrea}/publish_block.sh (100%) rename {examples/demo-rollup => bin/citrea}/publish_da_block.sh (99%) rename {examples/demo-rollup => bin/citrea}/src/bitcoin_rollup.rs (100%) rename {examples/demo-rollup => bin/citrea}/src/eth.rs (50%) rename {examples/demo-rollup => bin/citrea}/src/lib.rs (54%) rename {examples/demo-rollup => bin/citrea}/src/main.rs (78%) rename {examples/demo-rollup => bin/citrea}/src/mock_rollup.rs (100%) rename {examples/demo-rollup => bin/citrea}/src/test_rpc.rs (100%) rename {examples/demo-rollup => bin/citrea}/tests/all_tests.rs (100%) rename {examples/demo-rollup => bin/citrea}/tests/e2e/mod.rs (96%) rename {examples/demo-rollup => bin/citrea}/tests/evm/archival_state.rs (98%) rename {examples/demo-rollup => bin/citrea}/tests/evm/gas_price.rs (98%) rename {examples/demo-rollup => bin/citrea}/tests/evm/mod.rs (98%) rename {examples/demo-rollup => bin/citrea}/tests/evm/tracing.rs (99%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/.gitignore (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/Readme.md (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/WETH9.json (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/contracts/Tether.sol (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/contracts/UsdCoin.sol (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/hardhat.config.js (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/package-lock.json (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/package.json (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/scripts/01_deploy.js (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/scripts/02_swap.js (100%) rename {examples/demo-rollup => bin/citrea}/tests/evm/uniswap/yarn.lock (100%) rename {examples/demo-rollup => bin/citrea}/tests/mempool/mod.rs (98%) rename {examples/demo-rollup => bin/citrea}/tests/sequencer_commitments/mod.rs (99%) rename {examples/demo-rollup => bin/citrea}/tests/soft_confirmation_rule_enforcer/mod.rs (96%) rename {examples/demo-rollup => bin/citrea}/tests/test_client/mod.rs (98%) rename {examples/demo-rollup => bin/citrea}/tests/test_helpers.rs (98%) rename {examples/test-data/genesis/demo-tests/bitcoin => bin/test-data/genesis/demo-tests/bitcoin-regtest}/accounts.json (100%) rename {examples/test-data/genesis/demo-tests/bitcoin => bin/test-data/genesis/demo-tests/bitcoin-regtest}/chain_state.json (100%) rename {examples/test-data/genesis/demo-tests/bitcoin => bin/test-data/genesis/demo-tests/bitcoin-regtest}/evm.json (100%) rename {examples/test-data/genesis/demo-tests/bitcoin => bin/test-data/genesis/demo-tests/bitcoin-regtest}/soft_confirmation_rule_enforcer.json (100%) rename {examples => bin}/test-data/genesis/demo-tests/celestia/accounts.json (100%) rename {examples => bin}/test-data/genesis/demo-tests/celestia/evm.json (100%) rename {examples => bin}/test-data/genesis/demo-tests/celestia/soft_confirmation_rule_enforcer.json (100%) rename {examples => bin}/test-data/genesis/demo-tests/mock/accounts.json (100%) rename {examples/test-data/genesis/demo-tests/celestia => bin/test-data/genesis/demo-tests/mock}/chain_state.json (100%) rename {examples => bin}/test-data/genesis/demo-tests/mock/evm.json (100%) rename {examples => bin}/test-data/genesis/demo-tests/mock/soft_confirmation_rule_enforcer.json (100%) rename {examples => bin}/test-data/genesis/integration-tests-low-limiting-number/accounts.json (100%) rename {examples/test-data/genesis/demo-tests/mock => bin/test-data/genesis/integration-tests-low-limiting-number}/chain_state.json (100%) rename {examples => bin}/test-data/genesis/integration-tests-low-limiting-number/evm.json (100%) rename {examples => bin}/test-data/genesis/integration-tests-low-limiting-number/soft_confirmation_rule_enforcer.json (100%) rename {examples => bin}/test-data/genesis/integration-tests/accounts.json (100%) rename {examples/test-data/genesis/integration-tests-low-limiting-number => bin/test-data/genesis/integration-tests}/chain_state.json (100%) rename {examples => bin}/test-data/genesis/integration-tests/evm.json (100%) rename {examples => bin}/test-data/genesis/integration-tests/soft_confirmation_rule_enforcer.json (100%) rename {adapters/bitcoin => crates/bitcoin-da}/Cargo.toml (94%) rename {adapters/bitcoin => crates/bitcoin-da}/LICENSE (100%) rename {adapters/bitcoin => crates/bitcoin-da}/README.md (98%) rename {adapters/bitcoin => crates/bitcoin-da}/src/helpers/builders.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/helpers/mod.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/helpers/parsers.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/helpers/test_utils.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/lib.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/rpc.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/service.rs (94%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/address.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/blob.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/block.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/block_hash.rs (95%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/header.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/header_stream.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/mod.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/proof.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/transaction.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/spec/utxo.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/src/verifier.rs (100%) rename {adapters/bitcoin => crates/bitcoin-da}/test_data/blob.txt (100%) rename {adapters/bitcoin => crates/bitcoin-da}/test_data/false_signature_txs.txt (100%) rename {adapters/bitcoin => crates/bitcoin-da}/test_data/mock_non_segwit_txs.txt (100%) rename {adapters/bitcoin => crates/bitcoin-da}/test_data/mock_txs.txt (100%) rename {adapters/bitcoin => crates/bitcoin-da}/test_data/signature_check_txs.txt (100%) rename {examples/demo-rollup => crates}/citrea-stf/Cargo.toml (50%) create mode 100644 crates/citrea-stf/README.md rename {examples/demo-rollup => crates}/citrea-stf/src/genesis_config.rs (99%) rename {examples/demo-rollup => crates}/citrea-stf/src/hooks_impl.rs (100%) rename {examples/demo-rollup => crates}/citrea-stf/src/lib.rs (100%) rename {examples/demo-rollup => crates}/citrea-stf/src/runtime.rs (98%) rename {full-node/sov-ethereum => crates/ethereum-rpc}/Cargo.toml (65%) create mode 100644 crates/ethereum-rpc/README.md rename {full-node/sov-ethereum => crates/ethereum-rpc}/src/gas_price/cache.rs (97%) rename {full-node/sov-ethereum => crates/ethereum-rpc}/src/gas_price/fee_history.rs (99%) rename {full-node/sov-ethereum => crates/ethereum-rpc}/src/gas_price/gas_oracle.rs (99%) rename {full-node/sov-ethereum => crates/ethereum-rpc}/src/gas_price/mod.rs (100%) rename {full-node/sov-ethereum => crates/ethereum-rpc}/src/lib.rs (66%) rename {module-system/module-implementations/sov-evm => crates/evm}/Cargo.toml (83%) create mode 100644 crates/evm/README.md rename {module-system/module-implementations/sov-evm => crates/evm}/src/call.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/call.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/conversions.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/db.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/db_commit.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/db_init.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/error/mod.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/error/pool.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/error/result.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/error/rpc.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/executor.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/handler.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/mod.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/primitive_types.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/system_contracts/.gitignore (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/system_contracts/README.md (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/system_contracts/foundry.toml (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/system_contracts/lib/Ownable.sol (99%) create mode 160000 crates/evm/src/evm/system_contracts/lib/forge-std rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/system_contracts/src/L1BlockHashList.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/system_contracts/src/interfaces/IL1BlockHashList.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/system_contracts/test/L1BlockHashList.t.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/system_contracts/test/Ownable.t.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/BlockHash.abi (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/BlockHash.bin (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/BlockHash.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Caller.abi (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Caller.bin (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Caller.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Coinbase.abi (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Coinbase.bin (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Coinbase.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/ISimpleStorage.abi (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/ISimpleStorage.bin (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Logs.abi (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Logs.bin (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Logs.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Payable.abi (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Payable.bin (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Payable.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/SelfDestructor.abi (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/SelfDestructor.bin (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/SelfDestructor.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/SimpleStorage.abi (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/SimpleStorage.bin (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/test_data/Store.sol (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/evm/tests.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/genesis.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/hooks.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/lib.rs (98%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/provider_functions.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/query.rs (99%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/rpc_helpers/filter.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/rpc_helpers/log_utils.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/rpc_helpers/mod.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/rpc_helpers/responses.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/rpc_helpers/tracing_utils.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/signer/mod.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/smart_contracts/blockhash_contract.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/smart_contracts/caller_contract.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/smart_contracts/coinbase_contract.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/smart_contracts/logs_contract.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/smart_contracts/mod.rs (93%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/smart_contracts/payable_contract.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/smart_contracts/self_destructor_contract.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/smart_contracts/simple_storage_contract.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/call_tests.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/cfg_tests.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/genesis_tests.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/hooks_tests.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/mod.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/queries/basic_queries.rs (99%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/queries/estimate_gas_tests.rs (99%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/queries/evm_call_tests.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/queries/log_tests.rs (99%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/queries/mod.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/test_signer.rs (100%) rename {module-system/module-implementations/sov-evm => crates/evm}/src/tests/tx_tests.rs (100%) rename {full-node => crates}/sequencer-client/Cargo.toml (91%) create mode 100644 crates/sequencer-client/README.md rename {full-node => crates}/sequencer-client/src/lib.rs (82%) rename {full-node/chainway-sequencer => crates/sequencer}/Cargo.toml (58%) create mode 100644 crates/sequencer/README.md rename {full-node/chainway-sequencer => crates/sequencer}/src/commitment_controller.rs (100%) rename {full-node/chainway-sequencer => crates/sequencer}/src/config.rs (100%) rename {full-node/chainway-sequencer => crates/sequencer}/src/db_provider/mod.rs (99%) rename {full-node/chainway-sequencer => crates/sequencer}/src/lib.rs (78%) rename {full-node/chainway-sequencer => crates/sequencer}/src/mempool.rs (100%) rename {full-node/chainway-sequencer => crates/sequencer}/src/rpc.rs (99%) rename {full-node/chainway-sequencer => crates/sequencer}/src/sequencer.rs (97%) rename {full-node/chainway-sequencer => crates/sequencer}/src/utils.rs (94%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/Cargo.toml (59%) create mode 100644 crates/soft-confirmation-rule-enforcer/README.md rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/call.rs (100%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/genesis.rs (100%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/hooks.rs (100%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/lib.rs (100%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/query.rs (100%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/tests/call_tests.rs (100%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/tests/genesis_tests.rs (100%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/tests/hooks_tests.rs (100%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/tests/mod.rs (100%) rename {module-system/module-implementations => crates}/soft-confirmation-rule-enforcer/src/tests/query_tests.rs (100%) rename LICENSE => crates/sovereign-sdk/LICENSE (100%) create mode 100644 crates/sovereign-sdk/README.md rename Releases.md => crates/sovereign-sdk/Releases.md (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/Cargo.toml (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/README.md (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/avail.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/lib.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/service.rs (98%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/spec/address.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/spec/block.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/spec/hash.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/spec/header.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/spec/mod.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/spec/transaction.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/avail/src/verifier.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/.gitignore (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/Cargo.toml (93%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/README.md (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/src/celestia.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/src/da_service.rs (98%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/src/lib.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/src/shares.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/src/types.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/src/utils.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/src/verifier/address.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/src/verifier/mod.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/src/verifier/proofs.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/test_data/block_with_rollup_data/eds.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/test_data/block_with_rollup_data/etx_rows.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/test_data/block_with_rollup_data/header.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/test_data/block_with_rollup_data/rollup_rows.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/test_data/block_without_rollup_data/eds.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/test_data/block_without_rollup_data/etx_rows.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/test_data/block_without_rollup_data/header.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/celestia/test_data/block_without_rollup_data/rollup_rows.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-da/Cargo.toml (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-da/README.md (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-da/src/db_connector.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-da/src/lib.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-da/src/service.rs (98%) rename {adapters => crates/sovereign-sdk/adapters}/mock-da/src/types/address.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-da/src/types/mod.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-da/src/validity_condition.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-da/src/verifier.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-zkvm/Cargo.toml (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-zkvm/README.md (100%) rename {adapters => crates/sovereign-sdk/adapters}/mock-zkvm/src/lib.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/risc0/Cargo.toml (100%) rename {adapters => crates/sovereign-sdk/adapters}/risc0/README.md (100%) rename {adapters => crates/sovereign-sdk/adapters}/risc0/src/guest.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/risc0/src/host.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/risc0/src/lib.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/risc0/src/metrics.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/risc0/tests/native.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/Makefile (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/README.md (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/config.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/da_client/Cargo.lock (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/da_client/Cargo.toml (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/da_client/src/bin/account_delta_processor.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/da_client/src/lib.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/da_client/src/main.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/.gitignore (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/.prettierignore (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/Anchor.toml (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/Cargo.lock (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/Cargo.toml (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/migrations/deploy.ts (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/package.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/programs/blockroot/Cargo.toml (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/programs/blockroot/Xargo.toml (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/programs/blockroot/src/da.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/programs/blockroot/src/lib.rs (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/tests/solana_da_programs.ts (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/tsconfig.json (100%) rename {adapters => crates/sovereign-sdk/adapters}/solana/solana_da_programs/yarn.lock (100%) rename {assets => crates/sovereign-sdk/assets}/banner.jpg (100%) rename {assets => crates/sovereign-sdk/assets}/discord-banner.png (100%) rename constants.json => crates/sovereign-sdk/constants.json (100%) rename constants.test.json => crates/sovereign-sdk/constants.test.json (100%) rename {docker => crates/sovereign-sdk/docker}/DEMO.md (100%) rename {docker => crates/sovereign-sdk/docker}/Dockerfile.bridge (100%) rename {docker => crates/sovereign-sdk/docker}/Dockerfile.validator (100%) rename {docker => crates/sovereign-sdk/docker}/Makefile (100%) rename {docker => crates/sovereign-sdk/docker}/README.md (100%) rename {docker => crates/sovereign-sdk/docker}/credentials/bridge-0.addr (100%) rename {docker => crates/sovereign-sdk/docker}/credentials/bridge-0.key (100%) rename {docker => crates/sovereign-sdk/docker}/docker-compose.yml (100%) rename {docker => crates/sovereign-sdk/docker}/generate_configs.sh (100%) rename {docker => crates/sovereign-sdk/docker}/rollup_config_0.toml (100%) rename {docker => crates/sovereign-sdk/docker}/run-bridge.sh (100%) rename {docker => crates/sovereign-sdk/docker}/run-validator.sh (100%) rename {docker => crates/sovereign-sdk/docker}/template.toml (100%) rename {examples => crates/sovereign-sdk/examples}/const-rollup-config/Cargo.toml (100%) rename {examples => crates/sovereign-sdk/examples}/const-rollup-config/README.md (100%) rename {examples => crates/sovereign-sdk/examples}/const-rollup-config/src/lib.rs (100%) rename {examples => crates/sovereign-sdk/examples}/demo-simple-stf/Cargo.toml (100%) rename {examples => crates/sovereign-sdk/examples}/demo-simple-stf/README.md (100%) rename {examples => crates/sovereign-sdk/examples}/demo-simple-stf/src/lib.rs (100%) rename {examples => crates/sovereign-sdk/examples}/demo-simple-stf/tests/stf_test.rs (100%) create mode 100644 crates/sovereign-sdk/examples/demo-stf/Cargo.toml rename {examples/demo-rollup/stf => crates/sovereign-sdk/examples/demo-stf}/README.md (100%) rename {examples/demo-rollup/stf => crates/sovereign-sdk/examples/demo-stf}/src/genesis_config.rs (99%) rename {examples/demo-rollup/stf => crates/sovereign-sdk/examples/demo-stf}/src/hooks_impl.rs (100%) rename {examples/demo-rollup/stf => crates/sovereign-sdk/examples/demo-stf}/src/lib.rs (100%) rename {examples/demo-rollup/stf => crates/sovereign-sdk/examples/demo-stf}/src/runtime.rs (98%) rename {examples/demo-rollup/stf => crates/sovereign-sdk/examples/demo-stf}/src/tests/da_simulation.rs (100%) rename {examples/demo-rollup/stf => crates/sovereign-sdk/examples/demo-stf}/src/tests/mod.rs (94%) rename {examples/demo-rollup/stf => crates/sovereign-sdk/examples/demo-stf}/src/tests/stf_tests.rs (99%) rename {examples/demo-rollup/stf => crates/sovereign-sdk/examples/demo-stf}/src/tests/tx_revert_tests.rs (100%) rename {examples => crates/sovereign-sdk/examples}/simple-nft-module/Cargo.toml (100%) rename {examples => crates/sovereign-sdk/examples}/simple-nft-module/README.md (100%) rename {examples => crates/sovereign-sdk/examples}/simple-nft-module/src/call.rs (100%) rename {examples => crates/sovereign-sdk/examples}/simple-nft-module/src/genesis.rs (100%) rename {examples => crates/sovereign-sdk/examples}/simple-nft-module/src/lib.rs (100%) rename {examples => crates/sovereign-sdk/examples}/simple-nft-module/src/query.rs (100%) rename {examples => crates/sovereign-sdk/examples}/simple-nft-module/src/tests.rs (100%) rename {examples => crates/sovereign-sdk/examples}/simple-nft-module/tests/nft_test.rs (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/accounts.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/bitcoin/bank.json (100%) rename {examples/test-data/genesis/integration-tests => crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin}/chain_state.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/evm.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/bitcoin/nft.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/bitcoin/sequencer_registry.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/soft_confirmation_rule_enforcer.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/bitcoin/value_setter.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/accounts.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/celestia/bank.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/chain_state.json create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/evm.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/celestia/nft.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/celestia/sequencer_registry.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/soft_confirmation_rule_enforcer.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/celestia/value_setter.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/accounts.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/mock/bank.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/chain_state.json create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/evm.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/mock/nft.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/mock/sequencer_registry.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/soft_confirmation_rule_enforcer.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/demo-tests/mock/value_setter.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/accounts.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/integration-tests-low-limiting-number/bank.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/chain_state.json create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/evm.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/integration-tests-low-limiting-number/nft.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/integration-tests-low-limiting-number/sequencer_registry.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/soft_confirmation_rule_enforcer.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/integration-tests-low-limiting-number/value_setter.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/integration-tests/accounts.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/integration-tests/bank.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/integration-tests/chain_state.json create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/integration-tests/evm.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/integration-tests/nft.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/integration-tests/sequencer_registry.json (100%) create mode 100644 crates/sovereign-sdk/examples/test-data/genesis/integration-tests/soft_confirmation_rule_enforcer.json rename {examples => crates/sovereign-sdk/examples}/test-data/genesis/integration-tests/value_setter.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/keys/minter_private_key.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/keys/token_deployer_private_key.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/keys/tx_signer_private_key.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/burn.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/create_token.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/mint.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/nft/create_collection.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/nft/freeze_collection.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/nft/mint_nft.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/nft/transfer_nft.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/nft/update_token_uri.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/register_sequencer.json (100%) rename {examples => crates/sovereign-sdk/examples}/test-data/requests/transfer.json (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/Cargo.toml (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/README.md (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/benches/state_db_bench.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/src/ledger_db/mod.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/src/ledger_db/rpc.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/src/lib.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/src/native_db.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/src/rocks_db_config.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/src/schema/mod.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/src/schema/tables.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/src/schema/types.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-db/src/state_db.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/Cargo.toml (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/README.md (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/src/iterator.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/src/lib.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/src/metrics.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/src/schema.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/src/schema_batch.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/src/snapshot.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/src/test.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/tests/db_test.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/tests/iterator_test.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/db/sov-schema-db/tests/snapshot_test.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-ledger-rpc/Cargo.toml (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-ledger-rpc/src/client.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-ledger-rpc/src/lib.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-ledger-rpc/src/server.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-ledger-rpc/tests/empty_ledger.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-prover-storage-manager/Cargo.toml (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-prover-storage-manager/README.md (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-prover-storage-manager/benches/single_thread_progression.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-prover-storage-manager/src/dummy_storage.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-prover-storage-manager/src/lib.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-prover-storage-manager/src/snapshot_manager.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-sequencer/Cargo.toml (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-sequencer/README.md (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-sequencer/src/batch_builder.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-sequencer/src/lib.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-sequencer/src/utils.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/Cargo.toml (97%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/README.md (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/src/config.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/src/lib.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/src/mock/mod.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/src/prover_service/mod.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/src/prover_service/parallel/mod.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/src/prover_service/parallel/prover.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/src/runner.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/src/verifier.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/tests/hash_stf.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/tests/prover_tests.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/tests/runner_initialization_tests.rs (100%) rename {full-node => crates/sovereign-sdk/full-node}/sov-stf-runner/tests/runner_reorg_tests.rs (100%) create mode 100644 crates/sovereign-sdk/fuzz/Cargo.lock rename {fuzz => crates/sovereign-sdk/fuzz}/Cargo.toml (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/Makefile (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/README.md (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/accounts_call/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/bank_call/crash-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-03ff9dbf9c64fb7c125f0aec0b8b80a972907eb8 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-1261a81d957460d69943ae02e30528372736fc15 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-1f039bacf8f860eb5507d9ee3a9879dfe316cf5e (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-44796f5e67307b5b18e648fdd016e885ebf50da9 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-5e665cf3759c0aabfc3e898f6294840582421b32 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-6929e000e5891085cf17a75de96dd505b6499083 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-816595d1445fb45b609cca5417ba5f537c74ab43 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-98daf6c68def387cffda2937a318cdfd9e956627 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-b4a051390ba551b5349b6f233930f32f9e16bd85 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/crash-e5f45f193d720ae7264383fcc0763cd945120fc1 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/fuzz_namespace_group_from_b64/crash-2221b8862d9d37ec7c714a5df89b570c1356cdba (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/fuzz_namespace_group_from_b64/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/fuzz_namespace_group_from_b64/crash-ef43788e032a15a049005ce4fd839b3777597338 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/slow-unit-727720324b031a1f6408810b07628b558866fb00 (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/artifacts/slow-unit-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/accounts_call.rs (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/accounts_call_random.rs (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/accounts_parse_call_message.rs (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/accounts_parse_call_message_random.rs (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/address_bech_32_parse_serde.rs (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/address_bech_32_try_from_bytes.rs (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/bank_call.rs (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/bank_parse_call_message.rs (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/parse_address.rs (100%) rename {fuzz => crates/sovereign-sdk/fuzz}/fuzz_targets/share_deserialize.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/RPC_WALKTHROUGH.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-accessory-state/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-accessory-state/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-accessory-state/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-accessory-state/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-accessory-state/tests/test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-value-setter/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-value-setter/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-value-setter/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-value-setter/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-value-setter/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-value-setter/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-value-setter/src/tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-vec-setter/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-vec-setter/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-vec-setter/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-vec-setter/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-vec-setter/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-vec-setter/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/examples/sov-vec-setter/tests/tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/.gitignore (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/src/chain_state/helpers.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/src/chain_state/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/src/chain_state/tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/src/nested_modules/helpers.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/src/nested_modules/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/integration-tests/src/nested_modules/tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/module-template/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/module-template/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/module-template/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/module-template/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/module-template/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/module-template/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/module-template/tests/value_setter.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-accounts/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-accounts/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-accounts/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-accounts/src/fuzz.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-accounts/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-accounts/src/hooks.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-accounts/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-accounts/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-accounts/src/tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/tests/attestation_processing.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/tests/challenger.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/tests/helpers.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/tests/invariant.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/tests/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-attester-incentives/src/tests/unbonding.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/src/hooks.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/src/token.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/src/utils.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/tests/archival_query_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/tests/burn_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/tests/create_token_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/tests/freeze_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/tests/gas_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/tests/helpers/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/tests/mint_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-bank/tests/transfer_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-blob-storage/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-blob-storage/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-blob-storage/src/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-blob-storage/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-blob-storage/src/capabilities.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-blob-storage/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-blob-storage/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-blob-storage/tests/blob_storage_tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-blob-storage/tests/capability_tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-chain-state/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-chain-state/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-chain-state/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-chain-state/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-chain-state/src/hooks.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-chain-state/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-chain-state/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-chain-state/src/tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-chain-state/tests/all_tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/TUTORIAL.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/offchain_readme.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/address.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/collection.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/init_db.sql (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/nft.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/offchain.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/sql.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/src/utils.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-nft-module/tests/nft_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-prover-incentives/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-prover-incentives/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-prover-incentives/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-prover-incentives/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-prover-incentives/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-prover-incentives/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-prover-incentives/src/tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/src/call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/src/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/src/hooks.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/src/query.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/tests/helpers/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/tests/hooks_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-implementations/sov-sequencer-registry/tests/sequencer_registry_test.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/Cargo.toml (95%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/build.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/schemas/sov-accounts.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/schemas/sov-bank.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/schemas/sov-election.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/schemas/sov-evm-experimental.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/schemas/sov-evm.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/schemas/sov-prover-incentives.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/schemas/sov-sequencer-registry.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/schemas/sov-value-setter.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/module-schemas/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/Cargo.toml (82%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/src/wallet_state.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/src/workflows/keys.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/src/workflows/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/src/workflows/rpc.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/src/workflows/transactions.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/test-data/requests/burn.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/test-data/requests/create_token.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/test-data/requests/mint.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/test-data/requests/transfer.json (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/tests/keys.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-cli/tests/transactions.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/.gitignore (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/cli.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/accessory_map.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/accessory_value.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/accessory_vec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/kernel_value.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/map.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/traits/map.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/traits/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/traits/value.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/traits/vec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/value.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/vec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/containers/versioned_value.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/default_context.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/default_signature.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/hooks.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/pub_key_hex.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/reexport_macros.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/serde_pub_key.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/transaction.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/src/utils.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-api/tests/state_tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/Makefile (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/common/address.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/common/bytes.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/common/error.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/common/key.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/common/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/common/witness.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/module/dispatch.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/module/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/module/spec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/runtime/capabilities.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/runtime/kernel_module.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/runtime/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/storage/cache.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/storage/codec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/storage/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/src/storage/scratchpad.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-core/tests/working_set_tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/cli_parser.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/common.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/default_runtime.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/dispatch/dispatch_call.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/dispatch/genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/dispatch/message_codec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/dispatch/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/event.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/make_constants.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/manifest.rs (97%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/module_call_json_schema.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/module_info.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/new_types.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/offchain.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/rpc/expose_rpc.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/rpc/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/src/rpc/rpc_gen.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/all_tests.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/cli_wallet_arg/derive_enum_mixed_fields.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/cli_wallet_arg/derive_enum_named_fields.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/cli_wallet_arg/derive_enum_unnamed_fields.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/cli_wallet_arg/derive_struct_named_fields.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/cli_wallet_arg/derive_struct_unnamed_fields.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/cli_wallet_arg/derive_wallet.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/constants/create_constant.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/custom_codec_must_be_used.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/dispatch/derive_dispatch.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/dispatch/derive_event.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/dispatch/derive_genesis.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/dispatch/missing_serialization.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/dispatch/missing_serialization.stderr (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/dispatch/modules.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/custom_codec_builder.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.stderr (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/field_missing_attribute.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/field_missing_attribute.stderr (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/missing_address.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/missing_address.stderr (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/mod_and_state.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/no_generics.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/no_generics.stderr (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/not_supported_attribute.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/not_supported_type.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/not_supported_type.stderr (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/parse.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/second_addr_not_supported.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/second_addr_not_supported.stderr (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/module_info/use_address_trait.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/rpc/derive_rpc.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/rpc/derive_rpc_with_where.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/rpc/expose_rpc.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.stderr (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/rpc/expose_rpc_associated_types.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/rpc/expose_rpc_associated_types_nested.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr (92%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-rollup-blueprint/Cargo.toml (91%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-rollup-blueprint/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-rollup-blueprint/src/lib.rs (99%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-rollup-blueprint/src/runtime_rpc.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-rollup-blueprint/src/wallet.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-stf-blueprint/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-stf-blueprint/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-stf-blueprint/clippy.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-stf-blueprint/src/batch.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-stf-blueprint/src/kernels/basic.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-stf-blueprint/src/kernels/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-stf-blueprint/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-stf-blueprint/src/stf_blueprint.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-modules-stf-blueprint/src/tx_verifier.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-soft-confirmations-kernel/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-soft-confirmations-kernel/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/.gitignore (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/README.md (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/codec/bcs_codec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/codec/borsh_codec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/codec/json_codec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/codec/mod.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/codec/split_codec.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/config.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/prover_storage.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/witness.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/sov-state/src/zk_storage.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/utils/sov-data-generators/Cargo.toml (100%) rename {module-system => crates/sovereign-sdk/module-system}/utils/sov-data-generators/src/bank_data.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/utils/sov-data-generators/src/lib.rs (100%) rename {module-system => crates/sovereign-sdk/module-system}/utils/sov-data-generators/src/value_setter_data.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/Cargo.toml (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/Makefile (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/README.md (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/specs/assets/SovSDK.png (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/specs/interfaces/da.md (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/specs/interfaces/interface.md (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/specs/interfaces/stf.md (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/specs/interfaces/zkvm.md (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/specs/overview.md (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/lib.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/node/README.md (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/node/mod.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/node/rpc/mod.rs (99%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/node/services/batch_builder.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/node/services/da.rs (96%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/node/services/mod.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/README.md (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/crypto/mod.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/crypto/simple_hasher.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/da.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/mod.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/optimistic.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/soft_confirmation.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/stf.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/stf/fuzzing.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/storage.rs (100%) rename {rollup-interface => crates/sovereign-sdk/rollup-interface}/src/state_machine/zk/mod.rs (100%) rename {scripts => crates/sovereign-sdk/scripts}/blockscout/.env (100%) rename {scripts => crates/sovereign-sdk/scripts}/check_missing_dependency_versions.sh (100%) create mode 100644 crates/sovereign-sdk/scripts/retesteth/README.md rename {scripts => crates/sovereign-sdk/scripts}/retesteth/config.json (100%) rename {scripts => crates/sovereign-sdk/scripts}/validate_packages_to_publish_yml.sh (100%) rename {utils => crates/sovereign-sdk/utils}/README.md (100%) rename {utils => crates/sovereign-sdk/utils}/bashtestmd/Cargo.toml (100%) rename {utils => crates/sovereign-sdk/utils}/bashtestmd/src/main.rs (100%) rename {utils => crates/sovereign-sdk/utils}/rng-da-service/Cargo.toml (83%) rename {utils => crates/sovereign-sdk/utils}/rng-da-service/src/lib.rs (96%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-macros/Cargo.toml (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-macros/README.md (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-macros/src/lib.rs (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-macros/tests/all_tests.rs (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-macros/tests/cycle_macro.rs (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-utils/Cargo.toml (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-utils/README.md (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-utils/src/lib.rs (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-utils/tracer/Cargo.lock (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-utils/tracer/Cargo.toml (100%) rename {utils => crates/sovereign-sdk/utils}/zk-cycle-utils/tracer/src/main.rs (100%) create mode 100644 docs/dev-setup.md create mode 100644 docs/run.md delete mode 100644 examples/demo-rollup/Cargo.toml delete mode 100644 examples/demo-rollup/Makefile delete mode 100644 examples/demo-rollup/README.md delete mode 100644 examples/demo-rollup/README_CELESTIA.md delete mode 100644 examples/demo-rollup/benches/node/Makefile delete mode 100644 examples/demo-rollup/benches/node/README.md delete mode 100644 examples/demo-rollup/benches/node/rollup_bench.rs delete mode 100644 examples/demo-rollup/benches/node/rollup_coarse_measure.rs delete mode 100644 examples/demo-rollup/benches/node/rollup_config.toml delete mode 100644 examples/demo-rollup/benches/prover/README.md delete mode 100644 examples/demo-rollup/benches/prover/datagen.rs delete mode 100644 examples/demo-rollup/benches/prover/prover_bench.rs delete mode 100644 examples/demo-rollup/benches/prover/rollup_config.toml delete mode 100644 examples/demo-rollup/celestia_rollup_config.toml delete mode 100644 examples/demo-rollup/citrea-stf/README.md delete mode 100644 examples/demo-rollup/proptest-regressions/test_rpc.txt delete mode 100644 examples/demo-rollup/provers/risc0/guest-celestia/Cargo.lock delete mode 100644 examples/demo-rollup/provers/risc0/guest-celestia/Cargo.toml delete mode 100644 examples/demo-rollup/provers/risc0/guest-celestia/src/bin/rollup.rs delete mode 100644 examples/demo-rollup/src/celestia_rollup.rs delete mode 100644 examples/demo-rollup/src/sov-cli/README.md delete mode 100644 examples/demo-rollup/src/sov-cli/main.rs delete mode 100644 examples/demo-rollup/stf/Cargo.toml delete mode 100755 examples/demo-rollup/submitting_1.sh delete mode 100755 examples/demo-rollup/submitting_2.sh delete mode 100644 full-node/sov-ethereum/src/batch_builder.rs delete mode 100644 module-system/module-implementations/sov-evm/README.md delete mode 160000 module-system/module-implementations/sov-evm/src/evm/system_contracts/lib/forge-std delete mode 100644 packages_to_publish.yml delete mode 100644 scripts/retesteth/README.md diff --git a/.dockerignore b/.dockerignore index 52a5016e5..6af11492b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,15 +2,8 @@ * # include source files -!/adapters -!/examples -!/full-node -!/fuzz -!/module-system -!/rollup-interface -!/scripts -!/test-da-dbs -!/utils +!/citrea +!/sovereign-sdk !/hive !Cargo.lock !Cargo.toml diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index bbcbbe7d6..2bc5d5f71 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,10 +1,9 @@ --- name: Feature request about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - +title: "" +labels: "" +assignees: "" --- **Is your feature request related to a problem? Please describe.** diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 8091e1274..3f2ff3d3d 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -177,13 +177,13 @@ jobs: - name: Run Forge build run: | - cd module-system/module-implementations/sov-evm/src/evm/system_contracts + cd crates/evm/src/evm/system_contracts forge --version forge build --sizes id: build - name: Run Forge tests run: | - cd module-system/module-implementations/sov-evm/src/evm/system_contracts + cd crates/evm/src/evm/system_contracts forge test -vvv id: test diff --git a/.gitignore b/.gitignore index fba364320..b319a9135 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ fuzz/Cargo.lock .DS_Store demo_data/ +sequencer-db/ +full-node-db/ /.vscode/* /docker/credentials/* @@ -18,4 +20,4 @@ demo_data/ adapters/solana/libyellowstone_grpc_geyser.dylib -adapters/bitcoin/reveal_*.tx \ No newline at end of file +adapters/bitcoin/reveal_*.tx diff --git a/.gitmodules b/.gitmodules index 16945c69b..8f5beb22c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "module-system/module-implementations/sov-evm/src/evm/system_contracts/lib/forge-std"] - path = module-system/module-implementations/sov-evm/src/evm/system_contracts/lib/forge-std +[submodule "crates/evm/src/evm/system_contracts/lib/forge-std"] + path = crates/evm/src/evm/system_contracts/lib/forge-std url = https://github.com/foundry-rs/forge-std diff --git a/COPYING b/COPYING new file mode 100644 index 000000000..5e044d4fa --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ +GNU GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + + Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and +modification follow. + +TERMS AND CONDITIONS + +0. Definitions. + +"This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +1. Source Code. + +The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + +A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + +The Corresponding Source for a work in source code form is that +same work. + +2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + +4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + +a) The work must carry prominent notices stating that you modified +it, and giving a relevant date. + +b) The work must carry prominent notices stating that it is +released under this License and any conditions added under section +7. This requirement modifies the requirement in section 4 to +"keep intact all notices". + +c) You must license the entire work, as a whole, under this +License to anyone who comes into possession of a copy. This +License will therefore apply, along with any applicable section 7 +additional terms, to the whole of the work, and all its parts, +regardless of how they are packaged. This License gives no +permission to license the work in any other way, but it does not +invalidate such permission if you have separately received it. + +d) If the work has interactive user interfaces, each must display +Appropriate Legal Notices; however, if the Program has interactive +interfaces that do not display Appropriate Legal Notices, your +work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + +a) Convey the object code in, or embodied in, a physical product +(including a physical distribution medium), accompanied by the +Corresponding Source fixed on a durable physical medium +customarily used for software interchange. + +b) Convey the object code in, or embodied in, a physical product +(including a physical distribution medium), accompanied by a +written offer, valid for at least three years and valid for as +long as you offer spare parts or customer support for that product +model, to give anyone who possesses the object code either (1) a +copy of the Corresponding Source for all the software in the +product that is covered by this License, on a durable physical +medium customarily used for software interchange, for a price no +more than your reasonable cost of physically performing this +conveying of source, or (2) access to copy the +Corresponding Source from a network server at no charge. + +c) Convey individual copies of the object code with a copy of the +written offer to provide the Corresponding Source. This +alternative is allowed only occasionally and noncommercially, and +only if you received the object code with such an offer, in accord +with subsection 6b. + +d) Convey the object code by offering access from a designated +place (gratis or for a charge), and offer equivalent access to the +Corresponding Source in the same way through the same place at no +further charge. You need not require recipients to copy the +Corresponding Source along with the object code. If the place to +copy the object code is a network server, the Corresponding Source +may be on a different server (operated by you or a third party) +that supports equivalent copying facilities, provided you maintain +clear directions next to the object code saying where to find the +Corresponding Source. Regardless of what server hosts the +Corresponding Source, you remain obligated to ensure that it is +available for as long as needed to satisfy these requirements. + +e) Convey the object code using peer-to-peer transmission, provided +you inform other peers where the object code and Corresponding +Source of the work are being offered to the general public at no +charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + +a) Disclaiming warranty or limiting liability differently from the +terms of sections 15 and 16 of this License; or + +b) Requiring preservation of specified reasonable legal notices or +author attributions in that material or in the Appropriate Legal +Notices displayed by works containing it; or + +c) Prohibiting misrepresentation of the origin of that material, or +requiring that modified versions of such material be marked in +reasonable ways as different from the original version; or + +d) Limiting the use for publicity purposes of names of licensors or +authors of the material; or + +e) Declining to grant rights under trademark law for use of some +trade names, trademarks, or service marks; or + +f) Requiring indemnification of licensors and authors of that +material by anyone who conveys the material (or modified versions of +it) with contractual assumptions of liability to the recipient, for +any liability that these contractual assumptions directly impose on +those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + +8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +11. Patents. + +A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + +Copyright (C) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) +This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +This is free software, and you are welcome to redistribute it +under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + +You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + +The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index e25f0ee21..16c31ba98 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,7 +44,7 @@ dependencies = [ "memmap2 0.5.10", "object 0.32.2", "rustc-demangle", - "smallvec 1.13.1", + "smallvec 1.13.2", ] [[package]] @@ -126,9 +126,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -264,7 +264,7 @@ checksum = "1a047897373be4bbb0224c1afdabca92648dc57a9c9ef6e7b0be3aff7a859c83" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -317,11 +317,11 @@ dependencies = [ "const-hex", "dunce", "heck 0.4.1", - "indexmap 2.2.5", + "indexmap 2.2.6", "proc-macro-error", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", "syn-solidity", "tiny-keccak", ] @@ -363,7 +363,7 @@ dependencies = [ "proptest", "proptest-derive 0.4.0", "serde", - "smallvec 1.13.1", + "smallvec 1.13.2", "tracing", ] @@ -462,7 +462,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -476,9 +476,9 @@ dependencies = [ [[package]] name = "arc-swap" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "ark-bls12-377" @@ -817,24 +817,24 @@ dependencies = [ [[package]] name = "async-recursion" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -897,14 +897,14 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "autotools" @@ -993,21 +993,12 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" name = "bashtestmd" version = "0.3.0" dependencies = [ - "clap 4.5.2", + "clap 4.5.4", "indoc", "markdown", "shell-escape", ] -[[package]] -name = "basic-toml" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8" -dependencies = [ - "serde", -] - [[package]] name = "bcs" version = "0.1.6" @@ -1066,7 +1057,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -1075,7 +1066,7 @@ version = "0.69.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1086,7 +1077,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -1118,7 +1109,7 @@ checksum = "fd00f3c09b5f21fb357abe32d29946eb8bb7a0862bae62c0b5e4a692acbbe73c" dependencies = [ "bech32 0.10.0-beta", "bitcoin-internals", - "bitcoin_hashes 0.13.0", + "bitcoin_hashes", "hex-conservative", "hex_lit", "secp256k1 0.28.2", @@ -1158,21 +1149,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bitcoin-private" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" - -[[package]] -name = "bitcoin_hashes" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" -dependencies = [ - "bitcoin-private", -] - [[package]] name = "bitcoin_hashes" version = "0.13.0" @@ -1192,9 +1168,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" dependencies = [ "arbitrary", "serde", @@ -1321,10 +1297,10 @@ version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73498e9b2f0aa7db74977afa4d594657611e90587abf0dd564c0b55b4a130163" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "boa_interner", "boa_macros", - "indexmap 2.2.5", + "indexmap 2.2.6", "num-bigint 0.4.4", "rustc-hash", ] @@ -1335,7 +1311,7 @@ version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16377479d5d6d33896e7acdd1cc698d04a8f72004025bbbddf47558cd29146a6" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "boa_ast", "boa_gc", "boa_icu_provider", @@ -1347,7 +1323,7 @@ dependencies = [ "dashmap", "fast-float", "icu_normalizer", - "indexmap 2.2.5", + "indexmap 2.2.6", "itertools 0.11.0", "num-bigint 0.4.4", "num-integer", @@ -1403,7 +1379,7 @@ dependencies = [ "boa_gc", "boa_macros", "hashbrown 0.14.3", - "indexmap 2.2.5", + "indexmap 2.2.6", "once_cell", "phf", "rustc-hash", @@ -1418,7 +1394,7 @@ checksum = "005fa0c5bd20805466dda55eb34cd709bb31a2592bb26927b47714eeed6914d8" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", "synstructure 0.13.1", ] @@ -1428,7 +1404,7 @@ version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e09afb035377a9044443b598187a7d34cd13164617182a4d7c348522ee3f052" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "boa_ast", "boa_icu_provider", "boa_interner", @@ -1524,9 +1500,9 @@ dependencies = [ [[package]] name = "brotli" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1551,9 +1527,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "sha2 0.10.8", "tinyvec", @@ -1594,7 +1570,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -1605,9 +1581,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" dependencies = [ "serde", ] @@ -1774,46 +1750,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "chainway-sequencer" -version = "0.3.0" -dependencies = [ - "anyhow", - "bitcoin-da", - "borsh", - "citrea-stf", - "digest 0.10.7", - "ethers", - "futures", - "hex", - "jsonrpsee 0.20.3", - "reth-db", - "reth-interfaces", - "reth-primitives", - "reth-provider", - "reth-rpc-types", - "reth-rpc-types-compat", - "reth-tasks", - "reth-transaction-pool", - "reth-trie", - "rs_merkle", - "schnellru", - "serde", - "serde_json", - "sov-accounts", - "sov-db", - "sov-evm", - "sov-mock-da", - "sov-modules-api", - "sov-modules-stf-blueprint", - "sov-rollup-interface", - "sov-state", - "sov-stf-runner", - "tempfile", - "tokio", - "tracing", -] - [[package]] name = "chrono" version = "0.4.35" @@ -1888,14 +1824,167 @@ dependencies = [ "inout", ] +[[package]] +name = "citrea" +version = "0.3.0" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bitcoin-da", + "borsh", + "citrea-evm", + "citrea-sequencer", + "citrea-stf", + "clap 4.5.4", + "const-rollup-config", + "criterion", + "ethereum-rpc", + "ethereum-types", + "ethers", + "ethers-contract", + "ethers-core", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "hex", + "humantime", + "jsonrpsee 0.20.3", + "log", + "log4rs", + "prettytable-rs", + "prometheus 0.11.0", + "proptest", + "regex", + "reqwest", + "reth-primitives", + "reth-rpc-types", + "reth-transaction-pool", + "revm", + "risc0", + "rs_merkle", + "secp256k1 0.27.0", + "sequencer-client", + "serde", + "serde_json", + "sha2 0.10.8", + "soft-confirmation-rule-enforcer", + "sov-db", + "sov-ledger-rpc", + "sov-mock-da", + "sov-modules-api", + "sov-modules-rollup-blueprint", + "sov-modules-stf-blueprint", + "sov-prover-storage-manager", + "sov-risc0-adapter", + "sov-rng-da-service", + "sov-rollup-interface", + "sov-sequencer", + "sov-state", + "sov-stf-runner", + "sov-zk-cycle-macros", + "tempfile", + "tendermint 0.32.2", + "tokio", + "tracing", + "tracing-subscriber 0.3.18", +] + +[[package]] +name = "citrea-evm" +version = "0.3.0" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-rpc-types", + "alloy-sol-types", + "anyhow", + "borsh", + "bytes", + "citrea-evm", + "clap 4.5.4", + "derive_more", + "ethereum-types", + "ethers", + "ethers-contract", + "ethers-core", + "ethers-middleware", + "ethers-signers", + "hex", + "itertools 0.11.0", + "jsonrpsee 0.20.3", + "lazy_static", + "rand 0.8.5", + "reth-interfaces", + "reth-primitives", + "reth-revm", + "reth-rpc", + "reth-rpc-types", + "reth-rpc-types-compat", + "revm", + "revm-inspectors 0.1.0 (git+https://github.com/paradigmxyz/evm-inspectors?rev=d7317c7)", + "schemars", + "secp256k1 0.27.0", + "serde", + "serde_json", + "sov-modules-api", + "sov-prover-storage-manager", + "sov-state", + "tempfile", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "citrea-sequencer" +version = "0.3.0" +dependencies = [ + "anyhow", + "bitcoin-da", + "borsh", + "citrea-evm", + "citrea-stf", + "digest 0.10.7", + "ethers", + "futures", + "hex", + "jsonrpsee 0.20.3", + "reth-db", + "reth-interfaces", + "reth-primitives", + "reth-provider", + "reth-rpc-types", + "reth-rpc-types-compat", + "reth-tasks", + "reth-transaction-pool", + "reth-trie", + "rs_merkle", + "schnellru", + "serde", + "serde_json", + "sov-accounts", + "sov-db", + "sov-mock-da", + "sov-modules-api", + "sov-modules-stf-blueprint", + "sov-rollup-interface", + "sov-state", + "sov-stf-runner", + "tempfile", + "tokio", + "tracing", +] + [[package]] name = "citrea-stf" version = "0.3.0" dependencies = [ "anyhow", "borsh", + "citrea-evm", "citrea-stf", - "clap 4.5.2", + "clap 4.5.4", "hex", "jsonrpsee 0.20.3", "rand 0.8.5", @@ -1910,7 +1999,6 @@ dependencies = [ "sov-chain-state", "sov-cli", "sov-data-generators", - "sov-evm", "sov-mock-da", "sov-mock-zkvm", "sov-modules-api", @@ -1957,9 +2045,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.2" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -1979,14 +2067,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -2007,7 +2095,7 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" dependencies = [ - "bs58 0.5.0", + "bs58 0.5.1", "coins-core", "digest 0.10.7", "hmac 0.12.1", @@ -2041,7 +2129,7 @@ checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" dependencies = [ "base64 0.21.7", "bech32 0.9.1", - "bs58 0.5.0", + "bs58 0.5.1", "digest 0.10.7", "generic-array 0.14.7", "hex", @@ -2257,7 +2345,7 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.5.2", + "clap 4.5.4", "criterion-plot", "is-terminal", "itertools 0.10.5", @@ -2476,7 +2564,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -2561,7 +2649,7 @@ dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", "strsim 0.10.0", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -2594,7 +2682,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core 0.20.8", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -2684,7 +2772,8 @@ version = "0.3.0" dependencies = [ "anyhow", "borsh", - "clap 4.5.2", + "citrea-evm", + "clap 4.5.4", "demo-stf", "hex", "jsonrpsee 0.20.3", @@ -2700,7 +2789,6 @@ dependencies = [ "sov-chain-state", "sov-cli", "sov-data-generators", - "sov-evm", "sov-mock-da", "sov-mock-zkvm", "sov-modules-api", @@ -2758,7 +2846,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -2908,7 +2996,7 @@ dependencies = [ "parking_lot 0.11.2", "rand 0.8.5", "rlp", - "smallvec 1.13.1", + "smallvec 1.13.2", "socket2 0.4.10", "tokio", "tracing", @@ -2924,7 +3012,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -3211,7 +3299,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -3224,7 +3312,7 @@ dependencies = [ "num-traits", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -3236,7 +3324,7 @@ dependencies = [ "once_cell", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -3247,7 +3335,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -3335,6 +3423,34 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "ethereum-rpc" +version = "0.3.0" +dependencies = [ + "alloy-rpc-types", + "anyhow", + "borsh", + "citrea-evm", + "citrea-stf", + "ethers", + "jsonrpsee 0.20.3", + "proptest", + "reth-primitives", + "reth-rpc-types", + "reth-rpc-types-compat", + "rustc_version_runtime", + "schnellru", + "sequencer-client", + "serde", + "serde_json", + "sov-accounts", + "sov-modules-api", + "sov-rollup-interface", + "sov-stf-runner", + "tokio", + "tracing", +] + [[package]] name = "ethereum-types" version = "0.14.1" @@ -3359,7 +3475,7 @@ checksum = "e61ffea29f26e8249d35128a82ec8d3bd4fbc80179ea5f5e5e3daafef6a80fcb" dependencies = [ "ethereum-types", "itertools 0.10.5", - "smallvec 1.13.1", + "smallvec 1.13.2", ] [[package]] @@ -3428,7 +3544,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.52", + "syn 2.0.55", "toml 0.8.2", "walkdir", ] @@ -3446,7 +3562,7 @@ dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", "serde_json", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -3472,7 +3588,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.2", - "syn 2.0.52", + "syn 2.0.55", "tempfile", "thiserror", "tiny-keccak", @@ -3667,9 +3783,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fastrlp" @@ -3713,9 +3829,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" [[package]] name = "finl_unicode" @@ -3902,7 +4018,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -4153,9 +4269,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" dependencies = [ "bytes", "fnv", @@ -4163,7 +4279,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.5", + "indexmap 2.2.6", "slab", "tokio", "tokio-util", @@ -4289,6 +4405,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -4625,7 +4747,7 @@ dependencies = [ "icu_properties", "icu_provider", "serde", - "smallvec 1.13.1", + "smallvec 1.13.2", "utf16_iter", "utf8_iter", "write16", @@ -4835,9 +4957,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -4846,9 +4968,9 @@ dependencies = [ [[package]] name = "indoc" -version = "2.0.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" +checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" [[package]] name = "infer" @@ -4994,9 +5116,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jmt" @@ -5429,7 +5551,7 @@ dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", "regex", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -5494,7 +5616,7 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "libc", "redox_syscall 0.4.1", ] @@ -5576,9 +5698,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.15" +version = "1.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" +checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" dependencies = [ "cc", "pkg-config", @@ -5791,7 +5913,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.32", ] [[package]] @@ -5873,7 +5995,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -6038,9 +6160,9 @@ dependencies = [ [[package]] name = "new_debug_unreachable" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nibble_vec" @@ -6048,7 +6170,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" dependencies = [ - "smallvec 1.13.1", + "smallvec 1.13.2", ] [[package]] @@ -6165,7 +6287,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -6278,7 +6400,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -6290,7 +6412,7 @@ dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -6304,7 +6426,7 @@ dependencies = [ "const-hex", "proptest", "serde", - "smallvec 1.13.1", + "smallvec 1.13.2", ] [[package]] @@ -6389,7 +6511,7 @@ version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "cfg-if", "foreign-types", "libc", @@ -6406,7 +6528,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -6522,7 +6644,7 @@ dependencies = [ "instant", "libc", "redox_syscall 0.2.16", - "smallvec 1.13.1", + "smallvec 1.13.2", "winapi", ] @@ -6535,7 +6657,7 @@ dependencies = [ "cfg-if", "libc", "redox_syscall 0.4.1", - "smallvec 1.13.1", + "smallvec 1.13.2", "windows-targets 0.48.5", ] @@ -6632,7 +6754,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.2.5", + "indexmap 2.2.6", ] [[package]] @@ -6688,7 +6810,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -6726,7 +6848,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -6890,12 +7012,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "prettyplease" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" dependencies = [ "proc-macro2 1.0.79", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -7034,7 +7156,7 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.4.2", + "bitflags 2.5.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -7105,7 +7227,7 @@ dependencies = [ "prost 0.12.3", "prost-types 0.12.3", "regex", - "syn 2.0.52", + "syn 2.0.55", "tempfile", "which", ] @@ -7133,7 +7255,7 @@ dependencies = [ "itertools 0.11.0", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -7327,9 +7449,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -7391,14 +7513,14 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", @@ -7450,9 +7572,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.26" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", "bytes", @@ -7565,7 +7687,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -7773,11 +7895,11 @@ name = "reth-libmdbx" version = "0.2.0-beta.2" source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "byteorder", "dashmap", "derive_more", - "indexmap 2.2.5", + "indexmap 2.2.6", "libc", "libffi", "parking_lot 0.12.1", @@ -7817,7 +7939,7 @@ dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", "regex", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -7882,7 +8004,7 @@ dependencies = [ "secp256k1 0.27.0", "serde", "serde_json", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", "tokio", "tokio-stream", @@ -8276,7 +8398,7 @@ name = "reth-tracing" version = "0.2.0-beta.2" source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" dependencies = [ - "clap 4.5.2", + "clap 4.5.4", "eyre", "rolling-file", "tracing", @@ -8294,7 +8416,7 @@ dependencies = [ "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.4.2", + "bitflags 2.5.0", "fnv", "futures-util", "itertools 0.12.1", @@ -8310,7 +8432,7 @@ dependencies = [ "revm", "schnellru", "serde", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", "tokio", "tokio-stream", @@ -8420,7 +8542,7 @@ checksum = "2a4d7d3e793e907dc0797a9d3b43abfdf5226d133855214db9bd27d4cee33ebd" dependencies = [ "alloy-primitives", "auto_impl", - "bitflags 2.4.2", + "bitflags 2.5.0", "bitvec", "c-kzg", "cfg-if", @@ -8807,12 +8929,12 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "fallible-iterator 0.3.0", "fallible-streaming-iterator", "hashlink 0.9.0", "libsqlite3-sys", - "smallvec 1.13.1", + "smallvec 1.13.2", ] [[package]] @@ -8877,11 +8999,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys 0.4.13", @@ -9012,7 +9134,7 @@ dependencies = [ "scale-bits", "scale-decode-derive", "scale-info", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", ] @@ -9040,7 +9162,7 @@ dependencies = [ "scale-bits", "scale-encode-derive", "scale-info", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", ] @@ -9059,9 +9181,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef2175c2907e7c8bc0a9c3f86aeb5ec1f3b275300ad58a44d0c3ae379a5e52e" +checksum = "788745a868b0e751750388f4e6546eb921ef714a4317fa6954f7cde114eb2eb7" dependencies = [ "bitvec", "cfg-if", @@ -9073,9 +9195,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b8eb8fd61c5cdd3390d9b2132300a7e7618955b98b8416f118c1b4e144f" +checksum = "7dc2f4e8bc344b9fc3d5f74f72c2e55bfc38d28dc2ebc69c194a3df424e4d9ac" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2 1.0.79", @@ -9256,7 +9378,7 @@ version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ - "bitcoin_hashes 0.12.0", + "bitcoin_hashes", "rand 0.8.5", "secp256k1-sys 0.9.2", "serde", @@ -9424,7 +9546,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -9440,11 +9562,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "itoa", "ryu", "serde", @@ -9469,7 +9591,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -9503,7 +9625,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.5", + "indexmap 2.2.6", "serde", "serde_derive", "serde_json", @@ -9520,16 +9642,16 @@ dependencies = [ "darling 0.20.8", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] name = "serde_yaml" -version = "0.9.32" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "itoa", "ryu", "serde", @@ -9668,7 +9790,7 @@ version = "0.3.0" dependencies = [ "anyhow", "borsh", - "clap 4.5.2", + "clap 4.5.4", "jsonrpsee 0.20.3", "schemars", "serde", @@ -9719,9 +9841,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" dependencies = [ "arbitrary", "serde", @@ -9820,7 +9942,7 @@ dependencies = [ "anyhow", "arbitrary", "borsh", - "clap 4.5.2", + "clap 4.5.4", "jsonrpsee 0.20.3", "proptest", "proptest-derive 0.3.0", @@ -9893,7 +10015,7 @@ version = "0.3.0" dependencies = [ "anyhow", "borsh", - "clap 4.5.2", + "clap 4.5.4", "jsonrpsee 0.20.3", "schemars", "serde", @@ -9913,7 +10035,7 @@ dependencies = [ "anyhow", "bincode", "borsh", - "clap 4.5.2", + "clap 4.5.4", "hex", "jmt", "jsonrpsee 0.20.3", @@ -10044,151 +10166,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "sov-demo-rollup" -version = "0.3.0" -dependencies = [ - "anyhow", - "async-trait", - "bincode", - "bitcoin-da", - "borsh", - "chainway-sequencer", - "citrea-stf", - "clap 4.5.2", - "const-rollup-config", - "criterion", - "demo-stf", - "ethereum-types", - "ethers", - "ethers-contract", - "ethers-core", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "hex", - "humantime", - "jsonrpsee 0.20.3", - "log", - "log4rs", - "prettytable-rs", - "prometheus 0.11.0", - "proptest", - "regex", - "reqwest", - "reth-primitives", - "reth-rpc-types", - "reth-transaction-pool", - "revm", - "risc0", - "rs_merkle", - "secp256k1 0.27.0", - "sequencer-client", - "serde", - "serde_json", - "sha2 0.10.8", - "soft-confirmation-rule-enforcer", - "sov-bank", - "sov-celestia-adapter", - "sov-cli", - "sov-db", - "sov-ethereum", - "sov-evm", - "sov-ledger-rpc", - "sov-mock-da", - "sov-modules-api", - "sov-modules-rollup-blueprint", - "sov-modules-stf-blueprint", - "sov-nft-module", - "sov-prover-storage-manager", - "sov-risc0-adapter", - "sov-rng-da-service", - "sov-rollup-interface", - "sov-sequencer", - "sov-state", - "sov-stf-runner", - "sov-zk-cycle-macros", - "tempfile", - "tendermint 0.32.2", - "tokio", - "tracing", - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "sov-ethereum" -version = "0.3.0" -dependencies = [ - "alloy-rpc-types", - "anyhow", - "borsh", - "citrea-stf", - "ethers", - "jsonrpsee 0.20.3", - "proptest", - "reth-primitives", - "reth-rpc-types", - "reth-rpc-types-compat", - "rustc_version_runtime", - "schnellru", - "sequencer-client", - "serde", - "serde_json", - "sov-accounts", - "sov-evm", - "sov-modules-api", - "sov-rollup-interface", - "sov-stf-runner", - "tokio", - "tracing", -] - -[[package]] -name = "sov-evm" -version = "0.3.0" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types", - "alloy-sol-types", - "anyhow", - "borsh", - "bytes", - "clap 4.5.2", - "derive_more", - "ethereum-types", - "ethers", - "ethers-contract", - "ethers-core", - "ethers-middleware", - "ethers-signers", - "hex", - "itertools 0.11.0", - "jsonrpsee 0.20.3", - "lazy_static", - "rand 0.8.5", - "reth-interfaces", - "reth-primitives", - "reth-revm", - "reth-rpc", - "reth-rpc-types", - "reth-rpc-types-compat", - "revm", - "revm-inspectors 0.1.0 (git+https://github.com/paradigmxyz/evm-inspectors?rev=d7317c7)", - "schemars", - "secp256k1 0.27.0", - "serde", - "serde_json", - "sov-evm", - "sov-modules-api", - "sov-prover-storage-manager", - "sov-state", - "tempfile", - "thiserror", - "tokio", - "tracing", -] - [[package]] name = "sov-ledger-rpc" version = "0.3.0" @@ -10244,9 +10221,9 @@ dependencies = [ name = "sov-module-schemas" version = "0.3.0" dependencies = [ + "citrea-evm", "sov-accounts", "sov-bank", - "sov-evm", "sov-mock-da", "sov-mock-zkvm", "sov-modules-api", @@ -10264,7 +10241,7 @@ dependencies = [ "bech32 0.9.1", "bincode", "borsh", - "clap 4.5.2", + "clap 4.5.4", "derive_more", "ed25519-dalek 2.0.0", "hex", @@ -10327,7 +10304,7 @@ version = "0.3.0" dependencies = [ "anyhow", "borsh", - "clap 4.5.2", + "clap 4.5.4", "jsonrpsee 0.20.3", "proc-macro2 1.0.79", "quote 1.0.35", @@ -10351,7 +10328,7 @@ dependencies = [ "anyhow", "async-trait", "borsh", - "chainway-sequencer", + "citrea-sequencer", "const-rollup-config", "hex", "jsonrpsee 0.20.3", @@ -10555,7 +10532,7 @@ dependencies = [ "anyhow", "arbitrary", "borsh", - "clap 4.5.2", + "clap 4.5.4", "jsonrpsee 0.20.3", "proptest", "proptest-derive 0.3.0", @@ -10656,7 +10633,7 @@ version = "0.3.0" dependencies = [ "anyhow", "borsh", - "clap 4.5.2", + "clap 4.5.4", "jsonrpsee 0.20.3", "schemars", "serde", @@ -10675,7 +10652,7 @@ version = "0.3.0" dependencies = [ "anyhow", "borsh", - "clap 4.5.2", + "clap 4.5.4", "jsonrpsee 0.20.3", "schemars", "serde", @@ -10796,7 +10773,7 @@ dependencies = [ "bitflags 1.3.2", "blake2", "bounded-collections", - "bs58 0.5.0", + "bs58 0.5.1", "dyn-clonable", "ed25519-zebra", "futures", @@ -10884,7 +10861,7 @@ checksum = "c7f531814d2f16995144c74428830ccf7d94ff4a7749632b83ad8199b181140c" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -10895,7 +10872,7 @@ checksum = "50535e1a5708d3ba5c1195b59ebefac61cc8679c2c24716b87a86e8b7ed2e4a1" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -11057,7 +11034,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -11070,7 +11047,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -11084,7 +11061,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "rand 0.8.5", - "smallvec 1.13.1", + "smallvec 1.13.2", "sp-core 21.0.0", "sp-externalities 0.19.0", "sp-panic-handler", @@ -11221,7 +11198,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "smallvec 1.13.1", + "smallvec 1.13.2", "sp-arithmetic", "sp-core 21.0.0", "sp-debug-derive 8.0.0", @@ -11399,7 +11376,7 @@ dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", "rustversion", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -11498,7 +11475,7 @@ dependencies = [ "quote 1.0.35", "scale-info", "subxt-metadata", - "syn 2.0.52", + "syn 2.0.55", "thiserror", "tokio", ] @@ -11512,7 +11489,7 @@ dependencies = [ "darling 0.20.8", "proc-macro-error", "subxt-codegen", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -11582,9 +11559,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.52" +version = "2.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", @@ -11600,7 +11577,7 @@ dependencies = [ "paste", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -11629,7 +11606,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -11672,8 +11649,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "rustix 0.38.31", + "fastrand 2.0.2", + "rustix 0.38.32", "windows-sys 0.52.0", ] @@ -11822,7 +11799,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -11976,7 +11953,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -12027,9 +12004,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -12104,7 +12081,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "serde", "serde_spanned", "toml_datetime", @@ -12170,7 +12147,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -12264,7 +12241,7 @@ dependencies = [ "serde", "serde_json", "sharded-slab", - "smallvec 1.13.1", + "smallvec 1.13.2", "thread_local", "tracing", "tracing-core", @@ -12285,7 +12262,7 @@ dependencies = [ "serde", "serde_json", "sharded-slab", - "smallvec 1.13.1", + "smallvec 1.13.2", "thread_local", "tracing", "tracing-core", @@ -12303,7 +12280,7 @@ dependencies = [ "hashbrown 0.13.2", "log", "rustc-hex", - "smallvec 1.13.1", + "smallvec 1.13.2", ] [[package]] @@ -12353,7 +12330,7 @@ dependencies = [ "lazy_static", "log", "rand 0.8.5", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", "tinyvec", "tokio", @@ -12377,7 +12354,7 @@ dependencies = [ "ipnet", "once_cell", "rand 0.8.5", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", "tinyvec", "tokio", @@ -12399,7 +12376,7 @@ dependencies = [ "parking_lot 0.12.1", "rand 0.8.5", "resolv-conf", - "smallvec 1.13.1", + "smallvec 1.13.2", "thiserror", "tokio", "tracing", @@ -12414,17 +12391,17 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.89" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9d3ba662913483d6722303f619e75ea10b7855b0f8e0d72799cf8621bb488f" +checksum = "2aa6f84ec205ebf87fb7a0abdbcd1467fa5af0e86878eb6d888b78ecbb10b6d5" dependencies = [ - "basic-toml", "glob", "once_cell", "serde", "serde_derive", "serde_json", "termcolor", + "toml 0.8.2", ] [[package]] @@ -12495,7 +12472,7 @@ checksum = "ac73887f47b9312552aa90ef477927ff014d63d1920ca8037c6c1951eab64bb1" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -12595,9 +12572,9 @@ dependencies = [ [[package]] name = "unsafe-libyaml" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "unsigned-varint" @@ -12784,7 +12761,7 @@ dependencies = [ "once_cell", "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", "wasm-bindgen-shared", ] @@ -12818,7 +12795,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -12851,7 +12828,7 @@ checksum = "b7f89739351a2e03cb94beb799d47fb2cac01759b40ec441f7de39b00cbf7ef0" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -13021,7 +12998,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.31", + "rustix 0.38.32", ] [[package]] @@ -13425,7 +13402,7 @@ checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", "synstructure 0.13.1", ] @@ -13446,7 +13423,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -13466,7 +13443,7 @@ checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", "synstructure 0.13.1", ] @@ -13487,7 +13464,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] @@ -13510,7 +13487,7 @@ checksum = "7a4a1638a1934450809c2266a70362bfc96cd90550c073f5b8a55014d1010157" dependencies = [ "proc-macro2 1.0.79", "quote 1.0.35", - "syn 2.0.52", + "syn 2.0.55", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e945a1cf4..21091dfdb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,74 +1,76 @@ [workspace] resolver = "2" members = [ - "rollup-interface", - "adapters/avail", - "adapters/risc0", - "adapters/celestia", - "adapters/bitcoin", - "adapters/mock-da", - "adapters/mock-zkvm", + # Citrea + "bin/citrea", + "crates/bitcoin-da", + "crates/evm", + "crates/sequencer", + "crates/sequencer-client", + "crates/soft-confirmation-rule-enforcer", + "crates/ethereum-rpc", + # Sovereign sdk + "crates/sovereign-sdk/rollup-interface", + "crates/sovereign-sdk/adapters/avail", + "crates/sovereign-sdk/adapters/risc0", + "crates/sovereign-sdk/adapters/celestia", + "crates/sovereign-sdk/adapters/mock-da", + "crates/sovereign-sdk/adapters/mock-zkvm", # Examples - "examples/const-rollup-config", - "examples/demo-simple-stf", - "examples/demo-rollup", - "examples/simple-nft-module", + "crates/sovereign-sdk/examples/const-rollup-config", + "crates/sovereign-sdk/examples/demo-simple-stf", + "crates/sovereign-sdk/examples/simple-nft-module", + "crates/sovereign-sdk/examples/demo-stf", # Full Node - "full-node/chainway-sequencer", - "full-node/sequencer-client", - "full-node/db/sov-db", - "full-node/sov-sequencer", - "full-node/sov-ethereum", - "full-node/sov-ledger-rpc", - "full-node/sov-stf-runner", - "full-node/sov-prover-storage-manager", + "crates/sovereign-sdk/full-node/db/sov-db", + "crates/sovereign-sdk/full-node/sov-sequencer", + "crates/sovereign-sdk/full-node/sov-ledger-rpc", + "crates/sovereign-sdk/full-node/sov-stf-runner", + "crates/sovereign-sdk/full-node/sov-prover-storage-manager", # Utils - "utils/zk-cycle-macros", - "utils/zk-cycle-utils", - "utils/bashtestmd", - "utils/rng-da-service", + "crates/sovereign-sdk/utils/zk-cycle-macros", + "crates/sovereign-sdk/utils/zk-cycle-utils", + "crates/sovereign-sdk/utils/bashtestmd", + "crates/sovereign-sdk/utils/rng-da-service", # Module System - "module-system/sov-cli", - "module-system/sov-modules-stf-blueprint", - "module-system/sov-modules-rollup-blueprint", - "module-system/sov-modules-macros", - "module-system/sov-modules-core", - "module-system/sov-soft-confirmations-kernel", - "module-system/sov-state", - "module-system/sov-modules-api", - "module-system/module-schemas", - "module-system/utils/sov-data-generators", - "module-system/module-implementations/sov-accounts", - "module-system/module-implementations/sov-bank", - "module-system/module-implementations/sov-nft-module", - "module-system/module-implementations/sov-chain-state", - "module-system/module-implementations/sov-blob-storage", - "module-system/module-implementations/sov-evm", - "module-system/module-implementations/sov-prover-incentives", - "module-system/module-implementations/sov-attester-incentives", - "module-system/module-implementations/sov-sequencer-registry", - "module-system/module-implementations/module-template", - "module-system/module-implementations/examples/sov-value-setter", - "module-system/module-implementations/examples/sov-vec-setter", - "module-system/module-implementations/examples/sov-accessory-state", - "module-system/module-implementations/integration-tests", - "module-system/module-implementations/soft-confirmation-rule-enforcer", + "crates/sovereign-sdk/module-system/sov-cli", + "crates/sovereign-sdk/module-system/sov-modules-stf-blueprint", + "crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint", + "crates/sovereign-sdk/module-system/sov-modules-macros", + "crates/sovereign-sdk/module-system/sov-modules-core", + "crates/sovereign-sdk/module-system/sov-soft-confirmations-kernel", + "crates/sovereign-sdk/module-system/sov-state", + "crates/sovereign-sdk/module-system/sov-modules-api", + "crates/sovereign-sdk/module-system/module-schemas", + "crates/sovereign-sdk/module-system/utils/sov-data-generators", + "crates/sovereign-sdk/module-system/module-implementations/sov-accounts", + "crates/sovereign-sdk/module-system/module-implementations/sov-bank", + "crates/sovereign-sdk/module-system/module-implementations/sov-nft-module", + "crates/sovereign-sdk/module-system/module-implementations/sov-chain-state", + "crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage", + "crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives", + "crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives", + "crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry", + "crates/sovereign-sdk/module-system/module-implementations/module-template", + "crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter", + "crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter", + "crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state", + "crates/sovereign-sdk/module-system/module-implementations/integration-tests", ] [workspace.package] version = "0.3.0" edition = "2021" -license = "MIT OR Apache-2.0" -authors = ["Sovereign Labs "] -homepage = "https://www.sovereign.xyz" +license = "GPLv3" +authors = ["Chainway Labs "] +homepage = "https://chainway.xyz" publish = false -repository = "https://github.com/sovereign-labs/sovereign-sdk" +repository = "https://github.com/chainwayxyz/citrea" [workspace.dependencies] # Dependencies maintained by Sovereign jmt = { git = "https://github.com/penumbra-zone/jmt.git", rev = "1d007e11cb68aa5ca13e9a5af4a12e6439d5f7b6" } - # External dependencies async-trait = "0.1.71" anyhow = { version = "1.0.68", default-features = false } diff --git a/Dockerfile b/Dockerfile index 3257c9b21..f5b329c55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ RUN SKIP_GUEST_BUILD=1 cargo chef cook --release --recipe-path recipe.json COPY . . # Build the project -RUN SKIP_GUEST_BUILD=1 cargo build --release --bin sov-demo-rollup +RUN SKIP_GUEST_BUILD=1 cargo build --release --bin citrea # We need cargo to run the binary because of some path finding dependencies FROM rust:1.76 AS runtime @@ -28,7 +28,7 @@ RUN apt-get update && \ apt-get install -y curl # Copy the binary from the builder stage -COPY --from=builder /app/target/release/sov-demo-rollup /app/examples/demo-rollup/sov-demo-rollup +COPY --from=builder /app/target/release/citrea /app/examples/demo-rollup/citrea # Copying the directory except the target directory COPY --from=builder /app /app @@ -37,4 +37,4 @@ RUN rm -rf /app/target && cargo EXPOSE 8545 WORKDIR /app/examples/demo-rollup -ENTRYPOINT ["sh", "-c", "./publish_block.sh & ./sov-demo-rollup --genesis-type docker --rollup-config-path mock_dockerized_rollup_config.toml --sequencer-config-path mock_sequencer_config.toml"] +ENTRYPOINT ["sh", "-c", "./publish_block.sh & ./citrea --genesis-type docker --rollup-config-path configs/mock-dockerized/rollup_config.toml --sequencer-config-path configs/mock-dockerized/sequencer_config.toml"] diff --git a/Makefile b/Makefile index 2fb61cd72..32bb3a2c3 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,11 @@ build: ## Build the the project clean: ## Cleans compiled @cargo clean +clean-node: ## Cleans local dbs needed for sequencer and nodes + rm -rf sequencer-db + rm -rf full-node-db + rm test-da-dbs/*.db + test-legacy: ## Runs test suite with output from tests printed @cargo test -- --nocapture -Zunstable-options --report-time @@ -43,11 +48,11 @@ check-features: ## Checks that project compiles with all combinations of feature cargo hack check --workspace --feature-powerset --exclude-features default --all-targets check-fuzz: ## Checks that fuzz member compiles - $(MAKE) -C fuzz check + $(MAKE) -C crates/sovereign-sdk/fuzz check check-no-std: ## Checks that project compiles without std - $(MAKE) -C ./rollup-interface $@ - $(MAKE) -C ./module-system/sov-modules-core $@ + $(MAKE) -C crates/sovereign-sdk/rollup-interface $@ + $(MAKE) -C crates/sovereign-sdk/module-system/sov-modules-core $@ find-unused-deps: ## Prints unused dependencies for project. Note: requires nightly cargo +nightly udeps --all-targets --all-features @@ -61,9 +66,6 @@ coverage: ## Coverage in lcov format coverage-html: ## Coverage in HTML format cargo llvm-cov --locked --all-features --html -dry-run-publish: - yq '.[]' packages_to_publish.yml | xargs -I _ cargo publish --allow-dirty --dry-run -p _ - docs: ## Generates documentation locally cargo doc --open diff --git a/README.md b/README.md index 03df6ff73..f0af7ee32 100644 --- a/README.md +++ b/README.md @@ -1,127 +1,43 @@ -![](./assets/banner.jpg) +# Citrea - +**The first rollup that enhances the capabilities of Bitcoin blockspace with zero-knowledge technology.** -## What is the Sovereign SDK? +![](assets/banner.png) -The Sovereign SDK is a free and open-source toolkit for building rollups (both ZK and optimistic) **that is currently under development**. Sovereign SDK consists of three -logical components: +> [!WARNING] +> Citrea is still work-in-progress. It has not been audited and should not be used in production under any circumstances. Many key features are under heavy development, and its proper integration with [Bitcoin](https://github.com/bitcoin/bitcoin) and [Clementine](https://github.com/chainwayxyz/clementine) is still ongoing. \ +> \ +> Please note that Citrea has not been deployed to Bitcoin or any other network yet. \ +> \ +> Follow our website & social media accounts for announcements regarding testnet & mainnet phases of Citrea. \ +> \ +> Citrea uses **BTC** as its native token. **There's no Citrea token**. Please beware of scams! -1. The Rollup Interface, a minimal set of interfaces that defines a rollup -1. The Module System, an opinionated framework for building a rollup with the Rollup Interface -1. The Full Node, a client implementation capable of running any rollup which implements the Rollup Interface. +## What is Citrea? -### The Rollup Interface +Citrea is the first rollup that enhances the capabilities of Bitcoin blockspace with zero-knowledge technology, **making it possible to build everything on Bitcoin**. -At the heart of the Sovereign SDK is [the Rollup Interface](./rollup-interface/specs/overview.md), which defines the _interfaces_ that rollups -must implement. In the Sovereign SDK, we define a rollup as the combination of three components: +Every transaction occuring on Citrea, is fully secured by zero-knowledge proofs and optimistically verified by Bitcoin via BitVM. The execution environment of Citrea is trustless with respect to Bitcoin and is accessible to all participants of the Bitcoin Network. -1. A [State Transition Function](./rollup-interface/specs/interfaces/stf.md) ("STF") which defines the "business logic" of the rollup -1. A [Data Availability Layer](./rollup-interface/specs/interfaces/da.md) ("DA layer") which determines the set of transactions that are fed - to the state transition function -1. A Zero Knowledge proving system (aka "Zero Knowledge Virtual Machine" or "zkVM"), which takes the compiled rollup code and - produces succinct proofs that the logic has been executed correctly. +Citrea's vision is to build scalable infrastructure that advances Bitcoin into its next phase, foundation for world's finance. Citrea represents **Bitcoin Security at Scale** with its execution shard that keeps the settlement and data availability on-chain, on-Bitcoin. -One of the primary goals of the Sovereign SDK is to enable a clean separation of concerns between these three components. -Most rollup developers should not need to implement the DA layer interface - they can write their logic using the SDK, -and be compatible with any DA layer - so deploying their rollup on a new chain is as simple as -picking an [adapter](https://github.com/Sovereign-Labs/Jupiter) -to a specific DA layer off the shelf. +## FAQ -Similarly, teams building DA layers shouldn't need to worry about what kinds of state transitions will be built using their chain. -All they need to do is implement the DA layer interface, and they're automatically compatible with all state transition functions. +| Question | Answer | +| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | +| How do I set up the development environment? | [dev-setup.md](./docs/dev-setup.md) | +| How do I run Citrea for testing and development? | [run.md](./docs/run.md) | +| Where can I read more about the architecture? | Technical docs for the repo are in progress, in the meantime refer to [our official documentation.](https://docs.citrea.xyz) | -The code for the Rollup Interface lives in the [rollup-interface](./rollup-interface/) folder. For a technical description, we recommend the overview -[here](./rollup-interface/specs/overview.md). If you want a less technical introduction, see this [blog post](https://mirror.xyz/sovlabs.eth/pZl5kAtNIRQiKAjuFvDOQCmFIamGnf0oul3as_DhqGA). +## Official Links -### The Module System +- [Website](https://citrea.xyz) +- [Docs](https://docs.citrea.xyz) +- [Blog](https://blog.citrea.xyz) +- [X](https://x.com/citrea_xyz) +- [Discord](https://discord.citrea.xyz) -While the Rollup Interface defines a powerful set of abstractions, it's unopinionated about how a State Transition Function should actually -work. As far as the interfaces are concerned, your state machine might have nothing to do with classic "blockchain" financial applications - so -it has no built-in notion of state, accounts, tokens, and the like. This means that the Rollup Interface package on its own can't offer a -"batteries included" development experience. But one of our goals at Sovereign is to make developing -a rollup as easy as deploying a smart contract. So, we've built out an additional set of tools for defining your state transition function -called the Module System. +## Acknowledgments -At the heart of the Module System is the package [`sov-modules-api`](./module-system/sov-modules-api/). This package defines -a group of core traits which express how functionality implemented in separate modules can be combined into a `Runtime` -capable of processing transactions and serving RPC requests. It also defines macros for implementing most of these traits. -For many applications, defining your state transition function using the Module System should be as simple as picking -some modules off the shelf and defining a struct which glues them together. -To deliver this experience, the Module System relies on a set of common types and traits that are used in every module. The -`sov-modules-api` crate defines these traits (like `Context` and `MerkleTreeSpec`) and types like `Address`. - -On top of the module API, we provide a [state storage layer](./module-system/sov-state/) backed by a [Jellyfish Merkle Tree](https://github.com/penumbra-zone/jmt) -and a bunch of helpful utilities for working with stateful transactions. Finally, we provide a set of modules implementing common -blockchain functionality like `Accounts`, and fungible `Tokens`. - -For more information on the Module System, see its [README](./module-system/README.md). You can also find a tutorial on -implementing and deploying a custom module [here](./examples/simple-nft-module/README.md). - -### The Full Node - -The final component of this repository is the Full Node, which is a client implementation capable of running any -rollup that implements the Rollup Interface. The Full Node provides an easy way to deploy -and run your rollup. With the default configuration, it can automatically store chain data in its database, -serve RPC requests for chain data and application state, and interact with the DA layer to sync its state and send transactions. -While the full node implementation should be compatible with custom state transition functions, it is currently only tested for -rollups built with the Module System. If you encounter any difficulties running the full node, please reach out or open an -issue! All of the core developers can be reached via [Discord](https://discord.gg/kbykCcPrcA). - -## Getting Started - -### Running a demo rollup - -Experience how a simple rollup works by exploring our [`demo-rollup`](./examples/demo-rollup/README.md) tutorial. - -### Building a rollup - -- #### Using the Module System -This is the most straightforward way to create a rollup. - -To construct a single module, follow our [module building tutorial](./examples/simple-nft-module/README.md). -To combine multiple modules into a State Transition Function (STF), see the [`demo-stf`](./examples/demo-rollup/stf/README.md) guide. -- #### By building a custom State Transition Function -If you want even more control over your rollup's functionality, you can implement a completely custom State Transition Function without using the Module System. Our dedicated tutorial for this approach can be found [here](./examples/demo-simple-stf/README.md). - -### Adding a new Data Availability Layer - -If you want to add support for a new data availability layer, the easiest way to get started is to use the -[DA layer adapter template](https://github.com/Sovereign-Labs/da-adapter-template). - -## Adapters - -Adapters contain the logic integrating 3rd party codebases into the Sovereign SDK. Over time, we expect Sovereign SDK -to have adapters for almost all Data Availability Layers and LLVM-compatible proof systems. Currently, we -maintain adapters for [`Risc0`](https://www.risczero.com) (a zkVM) and [`Celestia`](https://www.celestia.org) a (DA layer). -The Avail project also maintains an adapter for their DA layer, which can be found [here](https://github.com/availproject/avail-sovereign-da-adapter). -[Chainway](https://chainway.xyz/) team also maintains an open-source Bitcoin DA adapter for their Sovereign Rollup on Bitcoin, which can be found [here](https://github.com/chainwayxyz/bitcoin-da). - -## Testing - -An implementation of LLVM's libFUZZER is available under [fuzz/README.md](./fuzz/README.md). - -## Warning - -The Sovereign SDK is Alpha software. It has not been audited and should not be used in production under any circumstances. -API stability and compliance with semantic versioning will be maintained on a best-effort basis. - -## License - -Licensed under the [Apache License, Version -2.0](./LICENSE). - -Unless you explicitly state otherwise, any contribution intentionally submitted -for inclusion in this repository by you, as defined in the Apache-2.0 license, shall be -licensed as above, without any additional terms or conditions. +- [Sovereign SDK](https://github.com/Sovereign-Labs/sovereign-sdk): Citrea is built on a forked version of the Sovereign SDK. We're deeply thankful to the development & support of Sovereign Labs through our journey. +- [Reth](https://github.com/paradigmxyz/reth): We use Reth crates in various components in Citrea. We're grateful for their rapid development & contribution to the Rust-Ethereum ecosystem. diff --git a/assets/banner.png b/assets/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..d2943194e89370e5638d316aeec944e26b846f07 GIT binary patch literal 391960 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

qC6&Vju*1F#$a>+kdHf?F_SYv(CD? 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

OBi7ff)Z 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

  • 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 my?Cx;q4mq8zDoF@VfsIn4rxBm2=Lbc0000 Result { - let data = std::fs::read_to_string(TX_SIGNER_PRIV_KEY_PATH).context("Unable to read file")?; - - let key_and_address: PrivateKeyAndAddress = serde_json::from_str(&data) - .unwrap_or_else(|_| panic!("Unable to convert data {} to PrivateKeyAndAddress", &data)); - - Ok(key_and_address.private_key) -} - // register ethereum methods. pub(crate) fn register_ethereum( da_service: Da, @@ -32,16 +17,14 @@ pub(crate) fn register_ethereum( ) -> Result<(), anyhow::Error> { let eth_rpc_config = { let eth_signer = eth_dev_signer(); - EthRpcConfig:: { - min_blob_size: Some(1), - sov_tx_signer_priv_key: read_sov_tx_signer_priv_key()?, + EthRpcConfig { eth_signer, gas_price_oracle_config: GasPriceOracleConfig::default(), fee_history_cache_config: FeeHistoryCacheConfig::default(), } }; - let ethereum_rpc = sov_ethereum::get_ethereum_rpc::( + let ethereum_rpc = ethereum_rpc::get_ethereum_rpc::( da_service, eth_rpc_config, storage, @@ -53,8 +36,8 @@ pub(crate) fn register_ethereum( } // TODO: #840 -fn eth_dev_signer() -> sov_ethereum::DevSigner { - sov_ethereum::DevSigner::new(vec![secp256k1::SecretKey::from_str( +fn eth_dev_signer() -> ethereum_rpc::DevSigner { + ethereum_rpc::DevSigner::new(vec![secp256k1::SecretKey::from_str( "ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", ) .unwrap()]) diff --git a/examples/demo-rollup/src/lib.rs b/bin/citrea/src/lib.rs similarity index 54% rename from examples/demo-rollup/src/lib.rs rename to bin/citrea/src/lib.rs index e6678045f..8f913845d 100644 --- a/examples/demo-rollup/src/lib.rs +++ b/bin/citrea/src/lib.rs @@ -4,29 +4,17 @@ use std::env; use std::str::FromStr; -use const_rollup_config::{ROLLUP_BATCH_NAMESPACE_RAW, ROLLUP_PROOF_NAMESPACE_RAW}; -use sov_celestia_adapter::types::Namespace; mod mock_rollup; pub use mock_rollup::*; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; use tracing_subscriber::{fmt, EnvFilter}; -mod celestia_rollup; -pub use celestia_rollup::*; - mod eth; mod bitcoin_rollup; pub use bitcoin_rollup::*; -/// The rollup stores its data in the namespace b"sov-test" on Celestia -/// You can change this constant to point your rollup at a different namespace -pub const ROLLUP_BATCH_NAMESPACE: Namespace = Namespace::const_v0(ROLLUP_BATCH_NAMESPACE_RAW); - -/// The rollup stores the zk proofs in the namespace b"sov-test-p" on Celestia. -pub const ROLLUP_PROOF_NAMESPACE: Namespace = Namespace::const_v0(ROLLUP_PROOF_NAMESPACE_RAW); - /// Default initialization of logging pub fn initialize_logging() { tracing_subscriber::registry() diff --git a/examples/demo-rollup/src/main.rs b/bin/citrea/src/main.rs similarity index 78% rename from examples/demo-rollup/src/main.rs rename to bin/citrea/src/main.rs index 1de442427..aad24575c 100644 --- a/examples/demo-rollup/src/main.rs +++ b/bin/citrea/src/main.rs @@ -2,11 +2,10 @@ use core::fmt::Debug as DebugTrait; use anyhow::{anyhow, Context as _}; use bitcoin_da::service::DaServiceConfig; -use chainway_sequencer::SequencerConfig; +use citrea::{initialize_logging, BitcoinRollup, MockDemoRollup}; +use citrea_sequencer::SequencerConfig; use citrea_stf::genesis_config::GenesisPaths; use clap::Parser; -use sov_celestia_adapter::CelestiaConfig; -use sov_demo_rollup::{initialize_logging, BitcoinRollup, CelestiaDemoRollup, MockDemoRollup}; use sov_mock_da::MockDaConfig; use sov_modules_api::runtime::capabilities::Kernel; use sov_modules_api::Spec; @@ -37,7 +36,7 @@ struct Args { da_layer: SupportedDaLayer, /// The path to the rollup config. - #[arg(long, default_value = "mock_rollup_config.toml")] + #[arg(long, default_value = "configs/mock/rollup_config.toml")] rollup_config_path: String, /// The path to the sequencer config. If set, runs the node in sequencer mode, otherwise in full node mode. @@ -52,7 +51,6 @@ struct Args { #[derive(clap::ValueEnum, Clone, Debug)] enum SupportedDaLayer { - Celestia, Mock, Bitcoin, } @@ -64,17 +62,18 @@ async fn main() -> Result<(), anyhow::Error> { let args = Args::parse(); let rollup_config_path = args.rollup_config_path.as_str(); - let sequencer_config: Option = args.sequencer_config_path.map(|path| { - from_toml_path(path) - .context("Failed to read sequencer configuration") - .unwrap() - }); + let sequencer_config: Option = + args.sequencer_config_path.clone().map(|path| { + from_toml_path(path) + .context("Failed to read sequencer configuration") + .unwrap() + }); let is_prover = args.prover; match args.da_layer { SupportedDaLayer::Mock => { let kernel_genesis_paths = &BasicKernelGenesisPaths { - chain_state: "../test-data/genesis/demo-tests/mock/chain_state.json".into(), + chain_state: (args.genesis_paths.clone() + "/chain_state.json").into(), }; let kernel_genesis = BasicKernelGenesisConfig { @@ -96,7 +95,7 @@ async fn main() -> Result<(), anyhow::Error> { } SupportedDaLayer::Bitcoin => { let kernel_genesis_paths = &BasicKernelGenesisPaths { - chain_state: "../test-data/genesis/demo-tests/bitcoin/chain_state.json".into(), + chain_state: (args.genesis_paths.clone() + "/chain_state.json").into(), }; let kernel_genesis = BasicKernelGenesisConfig { @@ -116,28 +115,6 @@ async fn main() -> Result<(), anyhow::Error> { ) .await?; } - SupportedDaLayer::Celestia => { - let kernel_genesis_paths = &BasicKernelGenesisPaths { - chain_state: "../test-data/genesis/demo-tests/celestia/chain_state.json".into(), - }; - - let kernel_genesis = BasicKernelGenesisConfig { - chain_state: serde_json::from_str( - &std::fs::read_to_string(&kernel_genesis_paths.chain_state) - .context("Failed to read chain state")?, - )?, - }; - - start_rollup::( - &GenesisPaths::from_dir(&args.genesis_paths), - kernel_genesis, - rollup_config_path, - RollupProverConfig::Execute, - sequencer_config, - is_prover, - ) - .await?; - } } Ok(()) diff --git a/examples/demo-rollup/src/mock_rollup.rs b/bin/citrea/src/mock_rollup.rs similarity index 100% rename from examples/demo-rollup/src/mock_rollup.rs rename to bin/citrea/src/mock_rollup.rs diff --git a/examples/demo-rollup/src/test_rpc.rs b/bin/citrea/src/test_rpc.rs similarity index 100% rename from examples/demo-rollup/src/test_rpc.rs rename to bin/citrea/src/test_rpc.rs diff --git a/examples/demo-rollup/tests/all_tests.rs b/bin/citrea/tests/all_tests.rs similarity index 100% rename from examples/demo-rollup/tests/all_tests.rs rename to bin/citrea/tests/all_tests.rs diff --git a/examples/demo-rollup/tests/e2e/mod.rs b/bin/citrea/tests/e2e/mod.rs similarity index 96% rename from examples/demo-rollup/tests/e2e/mod.rs rename to bin/citrea/tests/e2e/mod.rs index 2ea1a62c7..759ecd2ec 100644 --- a/examples/demo-rollup/tests/e2e/mod.rs +++ b/bin/citrea/tests/e2e/mod.rs @@ -3,12 +3,12 @@ use std::path::Path; use std::str::FromStr; use std::time::Duration; +use citrea_evm::smart_contracts::SimpleStorageContract; use citrea_stf::genesis_config::GenesisPaths; use ethereum_types::H256; use ethers::abi::Address; use reth_primitives::{BlockNumberOrTag, TxHash}; -use sov_evm::smart_contracts::SimpleStorageContract; -use sov_mock_da::{MockAddress, MockDaService, MockDaSpec}; +use sov_mock_da::{MockAddress, MockDaService, MockDaSpec, MockHash}; use sov_modules_stf_blueprint::kernels::basic::BasicKernelGenesisPaths; use sov_rollup_interface::da::DaSpec; use sov_rollup_interface::rpc::SoftConfirmationStatus; @@ -188,7 +188,7 @@ async fn test_soft_batch_save() -> Result<(), anyhow::Error> { #[tokio::test] async fn test_full_node_send_tx() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_test_client, full_node_test_client, seq_task, full_node_task, addr) = initialize_test(Default::default()).await; @@ -222,7 +222,7 @@ async fn test_full_node_send_tx() -> Result<(), anyhow::Error> { #[tokio::test] async fn test_delayed_sync_ten_blocks() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_port_tx, seq_port_rx) = tokio::sync::oneshot::channel(); @@ -296,7 +296,7 @@ async fn test_delayed_sync_ten_blocks() -> Result<(), anyhow::Error> { #[tokio::test] async fn test_e2e_same_block_sync() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_test_client, full_node_test_client, seq_task, full_node_task, _) = initialize_test(Default::default()).await; @@ -311,7 +311,7 @@ async fn test_e2e_same_block_sync() -> Result<(), anyhow::Error> { #[tokio::test] async fn test_close_and_reopen_full_node() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); // Remove temp db directories if they exist let _ = fs::remove_dir_all(Path::new("demo_data_test_close_and_reopen_full_node_copy")); @@ -469,7 +469,7 @@ async fn test_close_and_reopen_full_node() -> Result<(), anyhow::Error> { #[tokio::test] async fn test_get_transaction_by_hash() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_port_tx, seq_port_rx) = tokio::sync::oneshot::channel(); @@ -629,7 +629,7 @@ async fn test_get_transaction_by_hash() -> Result<(), anyhow::Error> { #[tokio::test] async fn test_soft_confirmations_on_different_blocks() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let da_service = MockDaService::new(MockAddress::default()); @@ -659,7 +659,7 @@ async fn test_soft_confirmations_on_different_blocks() -> Result<(), anyhow::Err if i != 1 { assert_eq!(last_da_slot_height, seq_soft_conf.da_slot_height); - assert_eq!(last_da_slot_hash, seq_soft_conf.da_slot_hash); + assert_eq!(last_da_slot_hash, MockHash(seq_soft_conf.da_slot_hash)); } assert_eq!( @@ -670,7 +670,7 @@ async fn test_soft_confirmations_on_different_blocks() -> Result<(), anyhow::Err assert_eq!(seq_soft_conf.da_slot_hash, full_node_soft_conf.da_slot_hash); last_da_slot_height = seq_soft_conf.da_slot_height; - last_da_slot_hash = seq_soft_conf.da_slot_hash; + last_da_slot_hash = MockHash(seq_soft_conf.da_slot_hash); } // publish new da block @@ -694,10 +694,10 @@ async fn test_soft_confirmations_on_different_blocks() -> Result<(), anyhow::Err if i != 7 { assert_eq!(last_da_slot_height, seq_soft_conf.da_slot_height); - assert_eq!(last_da_slot_hash, seq_soft_conf.da_slot_hash); + assert_eq!(last_da_slot_hash, MockHash(seq_soft_conf.da_slot_hash)); } else { assert_ne!(last_da_slot_height, seq_soft_conf.da_slot_height); - assert_ne!(last_da_slot_hash, seq_soft_conf.da_slot_hash); + assert_ne!(last_da_slot_hash, MockHash(seq_soft_conf.da_slot_hash)); } assert_eq!( @@ -708,7 +708,7 @@ async fn test_soft_confirmations_on_different_blocks() -> Result<(), anyhow::Err assert_eq!(seq_soft_conf.da_slot_hash, full_node_soft_conf.da_slot_hash); last_da_slot_height = seq_soft_conf.da_slot_height; - last_da_slot_hash = seq_soft_conf.da_slot_hash; + last_da_slot_hash = MockHash(seq_soft_conf.da_slot_hash); } seq_task.abort(); @@ -925,7 +925,7 @@ async fn execute_blocks( #[tokio::test] async fn test_soft_confirmations_status_one_l1() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let da_service = MockDaService::new(MockAddress::default()); @@ -946,8 +946,8 @@ async fn test_soft_confirmations_status_one_l1() -> Result<(), anyhow::Error> { // publish new da block da_service.publish_test_block().await.unwrap(); - seq_test_client.send_publish_batch_request().await; // TODO https://github.com/chainwayxyz/secret-sovereign-sdk/issues/214 - seq_test_client.send_publish_batch_request().await; // TODO https://github.com/chainwayxyz/secret-sovereign-sdk/issues/214 + seq_test_client.send_publish_batch_request().await; // TODO https://github.com/chainwayxyz/citrea/issues/214 + seq_test_client.send_publish_batch_request().await; // TODO https://github.com/chainwayxyz/citrea/issues/214 sleep(Duration::from_secs(2)).await; @@ -969,7 +969,7 @@ async fn test_soft_confirmations_status_one_l1() -> Result<(), anyhow::Error> { #[tokio::test] async fn test_soft_confirmations_status_two_l1() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let da_service = MockDaService::new(MockAddress::default()); @@ -1005,8 +1005,8 @@ async fn test_soft_confirmations_status_two_l1() -> Result<(), anyhow::Error> { // publish new da block da_service.publish_test_block().await.unwrap(); - seq_test_client.send_publish_batch_request().await; // TODO https://github.com/chainwayxyz/secret-sovereign-sdk/issues/214 - seq_test_client.send_publish_batch_request().await; // TODO https://github.com/chainwayxyz/secret-sovereign-sdk/issues/214 + seq_test_client.send_publish_batch_request().await; // TODO https://github.com/chainwayxyz/citrea/issues/214 + seq_test_client.send_publish_batch_request().await; // TODO https://github.com/chainwayxyz/citrea/issues/214 sleep(Duration::from_secs(2)).await; diff --git a/examples/demo-rollup/tests/evm/archival_state.rs b/bin/citrea/tests/evm/archival_state.rs similarity index 98% rename from examples/demo-rollup/tests/evm/archival_state.rs rename to bin/citrea/tests/evm/archival_state.rs index 738c05925..6c0b4f5d9 100644 --- a/examples/demo-rollup/tests/evm/archival_state.rs +++ b/bin/citrea/tests/evm/archival_state.rs @@ -1,10 +1,10 @@ use std::str::FromStr; +use citrea_evm::smart_contracts::SimpleStorageContract; use citrea_stf::genesis_config::GenesisPaths; use ethers::abi::Address; use ethers_core::abi::Bytes; use reth_primitives::BlockNumberOrTag; -use sov_evm::smart_contracts::SimpleStorageContract; use sov_modules_stf_blueprint::kernels::basic::BasicKernelGenesisPaths; use sov_stf_runner::RollupProverConfig; @@ -15,7 +15,7 @@ use crate::DEFAULT_MIN_SOFT_CONFIRMATIONS_PER_COMMITMENT; #[tokio::test] async fn test_archival_state() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_port_tx, seq_port_rx) = tokio::sync::oneshot::channel(); diff --git a/examples/demo-rollup/tests/evm/gas_price.rs b/bin/citrea/tests/evm/gas_price.rs similarity index 98% rename from examples/demo-rollup/tests/evm/gas_price.rs rename to bin/citrea/tests/evm/gas_price.rs index fef8e2170..668b71c88 100644 --- a/examples/demo-rollup/tests/evm/gas_price.rs +++ b/bin/citrea/tests/evm/gas_price.rs @@ -1,12 +1,12 @@ use std::net::SocketAddr; +use citrea_evm::smart_contracts::SimpleStorageContract; use citrea_stf::genesis_config::GenesisPaths; use ethers_core::rand::thread_rng; use ethers_core::types::U256; use ethers_core::utils::Units::Ether; use ethers_signers::{LocalWallet, Signer}; use reth_primitives::BlockNumberOrTag; -use sov_evm::smart_contracts::SimpleStorageContract; use sov_modules_stf_blueprint::kernels::basic::BasicKernelGenesisPaths; use sov_stf_runner::RollupProverConfig; @@ -17,7 +17,7 @@ use crate::DEFAULT_MIN_SOFT_CONFIRMATIONS_PER_COMMITMENT; #[tokio::test] async fn test_gas_price_increase() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (port_tx, port_rx) = tokio::sync::oneshot::channel(); diff --git a/examples/demo-rollup/tests/evm/mod.rs b/bin/citrea/tests/evm/mod.rs similarity index 98% rename from examples/demo-rollup/tests/evm/mod.rs rename to bin/citrea/tests/evm/mod.rs index 33179d7cd..f8602d222 100644 --- a/examples/demo-rollup/tests/evm/mod.rs +++ b/bin/citrea/tests/evm/mod.rs @@ -1,13 +1,13 @@ use std::net::SocketAddr; use std::str::FromStr; +// use citrea::initialize_logging; +use citrea_evm::smart_contracts::{LogsContract, SimpleStorageContract, TestContract}; use citrea_stf::genesis_config::GenesisPaths; use ethers_core::abi::Address; use ethers_core::types::{BlockId, Bytes, U256}; use ethers_signers::{LocalWallet, Signer}; use reth_primitives::BlockNumberOrTag; -// use sov_demo_rollup::initialize_logging; -use sov_evm::smart_contracts::{LogsContract, SimpleStorageContract, TestContract}; use sov_modules_stf_blueprint::kernels::basic::BasicKernelGenesisPaths; use sov_stf_runner::RollupProverConfig; @@ -21,7 +21,7 @@ mod tracing; #[tokio::test] async fn web3_rpc_tests() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (port_tx, port_rx) = tokio::sync::oneshot::channel(); let rollup_task = tokio::spawn(async { // Don't provide a prover since the EVM is not currently provable @@ -45,7 +45,7 @@ async fn web3_rpc_tests() -> Result<(), anyhow::Error> { let test_client = make_test_client(port).await; - let tag = sov_ethereum::get_latest_git_tag().unwrap_or_else(|_| "unknown".to_string()); + let tag = ethereum_rpc::get_latest_git_tag().unwrap_or_else(|_| "unknown".to_string()); let arch = std::env::consts::ARCH; assert_eq!( @@ -65,7 +65,7 @@ async fn web3_rpc_tests() -> Result<(), anyhow::Error> { #[tokio::test] async fn evm_tx_tests() -> Result<(), anyhow::Error> { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (port_tx, port_rx) = tokio::sync::oneshot::channel(); diff --git a/examples/demo-rollup/tests/evm/tracing.rs b/bin/citrea/tests/evm/tracing.rs similarity index 99% rename from examples/demo-rollup/tests/evm/tracing.rs rename to bin/citrea/tests/evm/tracing.rs index 91b178428..533145e8c 100644 --- a/examples/demo-rollup/tests/evm/tracing.rs +++ b/bin/citrea/tests/evm/tracing.rs @@ -1,7 +1,8 @@ use std::str::FromStr; +// use citrea::initialize_logging; +use citrea_evm::smart_contracts::{CallerContract, SimpleStorageContract}; use citrea_stf::genesis_config::GenesisPaths; -// use sov_demo_rollup::initialize_logging; use ethers::abi::Address; use reth_primitives::BlockNumberOrTag; use reth_rpc_types::trace::geth::GethTrace::{self, CallTracer, FourByteTracer}; @@ -10,7 +11,6 @@ use reth_rpc_types::trace::geth::{ GethDebugTracingOptions, }; use serde_json::{self, json}; -use sov_evm::smart_contracts::{CallerContract, SimpleStorageContract}; use sov_modules_stf_blueprint::kernels::basic::BasicKernelGenesisPaths; use sov_stf_runner::RollupProverConfig; diff --git a/examples/demo-rollup/tests/evm/uniswap/.gitignore b/bin/citrea/tests/evm/uniswap/.gitignore similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/.gitignore rename to bin/citrea/tests/evm/uniswap/.gitignore diff --git a/examples/demo-rollup/tests/evm/uniswap/Readme.md b/bin/citrea/tests/evm/uniswap/Readme.md similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/Readme.md rename to bin/citrea/tests/evm/uniswap/Readme.md diff --git a/examples/demo-rollup/tests/evm/uniswap/WETH9.json b/bin/citrea/tests/evm/uniswap/WETH9.json similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/WETH9.json rename to bin/citrea/tests/evm/uniswap/WETH9.json diff --git a/examples/demo-rollup/tests/evm/uniswap/contracts/Tether.sol b/bin/citrea/tests/evm/uniswap/contracts/Tether.sol similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/contracts/Tether.sol rename to bin/citrea/tests/evm/uniswap/contracts/Tether.sol diff --git a/examples/demo-rollup/tests/evm/uniswap/contracts/UsdCoin.sol b/bin/citrea/tests/evm/uniswap/contracts/UsdCoin.sol similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/contracts/UsdCoin.sol rename to bin/citrea/tests/evm/uniswap/contracts/UsdCoin.sol diff --git a/examples/demo-rollup/tests/evm/uniswap/hardhat.config.js b/bin/citrea/tests/evm/uniswap/hardhat.config.js similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/hardhat.config.js rename to bin/citrea/tests/evm/uniswap/hardhat.config.js diff --git a/examples/demo-rollup/tests/evm/uniswap/package-lock.json b/bin/citrea/tests/evm/uniswap/package-lock.json similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/package-lock.json rename to bin/citrea/tests/evm/uniswap/package-lock.json diff --git a/examples/demo-rollup/tests/evm/uniswap/package.json b/bin/citrea/tests/evm/uniswap/package.json similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/package.json rename to bin/citrea/tests/evm/uniswap/package.json diff --git a/examples/demo-rollup/tests/evm/uniswap/scripts/01_deploy.js b/bin/citrea/tests/evm/uniswap/scripts/01_deploy.js similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/scripts/01_deploy.js rename to bin/citrea/tests/evm/uniswap/scripts/01_deploy.js diff --git a/examples/demo-rollup/tests/evm/uniswap/scripts/02_swap.js b/bin/citrea/tests/evm/uniswap/scripts/02_swap.js similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/scripts/02_swap.js rename to bin/citrea/tests/evm/uniswap/scripts/02_swap.js diff --git a/examples/demo-rollup/tests/evm/uniswap/yarn.lock b/bin/citrea/tests/evm/uniswap/yarn.lock similarity index 100% rename from examples/demo-rollup/tests/evm/uniswap/yarn.lock rename to bin/citrea/tests/evm/uniswap/yarn.lock diff --git a/examples/demo-rollup/tests/mempool/mod.rs b/bin/citrea/tests/mempool/mod.rs similarity index 98% rename from examples/demo-rollup/tests/mempool/mod.rs rename to bin/citrea/tests/mempool/mod.rs index 32129f2b3..3d4d0d072 100644 --- a/examples/demo-rollup/tests/mempool/mod.rs +++ b/bin/citrea/tests/mempool/mod.rs @@ -41,7 +41,7 @@ async fn initialize_test() -> (JoinHandle<()>, Box) { /// Transaction with equal nonce to last tx should not be accepted by mempool. #[tokio::test] async fn test_same_nonce_tx_should_panic() { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_task, test_client) = initialize_test().await; @@ -68,7 +68,7 @@ async fn test_same_nonce_tx_should_panic() { /// Transaction with nonce lower than account's nonce on state should not be accepted by mempool. #[tokio::test] async fn test_nonce_too_low() { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_task, test_client) = initialize_test().await; @@ -96,7 +96,7 @@ async fn test_nonce_too_low() { /// but shouldn't be received by the sequencer (so it doesn't end up in the block) #[tokio::test] async fn test_nonce_too_high() { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_task, test_client) = initialize_test().await; @@ -267,7 +267,7 @@ async fn test_tx_with_low_base_fee() { assert!(!block.transactions.contains(&tx_hash_low_fee.tx_hash())); - // TODO: also check if tx is in the mempool after https://github.com/chainwayxyz/secret-sovereign-sdk/issues/83 + // TODO: also check if tx is in the mempool after https://github.com/chainwayxyz/citrea/issues/83 seq_task.abort(); } diff --git a/examples/demo-rollup/tests/sequencer_commitments/mod.rs b/bin/citrea/tests/sequencer_commitments/mod.rs similarity index 99% rename from examples/demo-rollup/tests/sequencer_commitments/mod.rs rename to bin/citrea/tests/sequencer_commitments/mod.rs index 3a76636c2..c9310c383 100644 --- a/examples/demo-rollup/tests/sequencer_commitments/mod.rs +++ b/bin/citrea/tests/sequencer_commitments/mod.rs @@ -18,7 +18,7 @@ use crate::test_helpers::{start_rollup, NodeMode}; #[tokio::test] async fn sequencer_sends_commitments_to_da_layer() { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_port_tx, seq_port_rx) = tokio::sync::oneshot::channel(); diff --git a/examples/demo-rollup/tests/soft_confirmation_rule_enforcer/mod.rs b/bin/citrea/tests/soft_confirmation_rule_enforcer/mod.rs similarity index 96% rename from examples/demo-rollup/tests/soft_confirmation_rule_enforcer/mod.rs rename to bin/citrea/tests/soft_confirmation_rule_enforcer/mod.rs index 157235fc3..39e30c8e3 100644 --- a/examples/demo-rollup/tests/soft_confirmation_rule_enforcer/mod.rs +++ b/bin/citrea/tests/soft_confirmation_rule_enforcer/mod.rs @@ -4,14 +4,14 @@ use sov_modules_stf_blueprint::kernels::basic::BasicKernelGenesisPaths; use sov_stf_runner::RollupProverConfig; use crate::evm::make_test_client; -// use sov_demo_rollup::initialize_logging; +// use citrea::initialize_logging; use crate::test_helpers::{start_rollup, NodeMode}; use crate::DEFAULT_MIN_SOFT_CONFIRMATIONS_PER_COMMITMENT; /// Transaction with equal nonce to last tx should not be accepted by mempool. #[tokio::test] async fn too_many_l2_block_per_l1_block() { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); let (seq_port_tx, seq_port_rx) = tokio::sync::oneshot::channel(); diff --git a/examples/demo-rollup/tests/test_client/mod.rs b/bin/citrea/tests/test_client/mod.rs similarity index 98% rename from examples/demo-rollup/tests/test_client/mod.rs rename to bin/citrea/tests/test_client/mod.rs index a537af326..7a6eaff19 100644 --- a/examples/demo-rollup/tests/test_client/mod.rs +++ b/bin/citrea/tests/test_client/mod.rs @@ -2,6 +2,7 @@ use std::str::FromStr; use std::sync::atomic::{AtomicU64, Ordering}; use std::time::Duration; +use citrea_evm::LogResponse; use ethereum_types::H160; use ethers_core::abi::Address; use ethers_core::k256::ecdsa::SigningKey; @@ -16,7 +17,6 @@ use jsonrpsee::rpc_params; use reth_primitives::BlockNumberOrTag; use reth_rpc_types::trace::geth::{GethDebugTracingOptions, GethTrace}; use sequencer_client::GetSoftBatchResponse; -use sov_evm::LogResponse; use sov_rollup_interface::rpc::SoftConfirmationStatus; pub const MAX_FEE_PER_GAS: u64 = 1000000001; @@ -362,7 +362,7 @@ impl TestClient { // TODO actually this function returns gas price from the last block (already committed) and it may // be different from the current gas price (for the next block being committed). // So because of that users can't fully rely on the returned value. - // A part of https://github.com/chainwayxyz/secret-sovereign-sdk/issues/150 + // A part of https://github.com/chainwayxyz/citrea/issues/150 pub(crate) async fn eth_gas_price(&self) -> ethereum_types::U256 { self.http_client .request("eth_gasPrice", rpc_params![]) @@ -507,12 +507,13 @@ impl TestClient { eth_logs } + #[allow(clippy::extra_unused_type_parameters)] pub(crate) async fn ledger_get_soft_batch_by_number< DaSpec: sov_rollup_interface::da::DaSpec, >( &self, num: u64, - ) -> Option> { + ) -> Option { self.http_client .request("ledger_getSoftBatchByNumber", rpc_params![num]) .await diff --git a/examples/demo-rollup/tests/test_helpers.rs b/bin/citrea/tests/test_helpers.rs similarity index 98% rename from examples/demo-rollup/tests/test_helpers.rs rename to bin/citrea/tests/test_helpers.rs index c4bf5346d..e2e08be42 100644 --- a/examples/demo-rollup/tests/test_helpers.rs +++ b/bin/citrea/tests/test_helpers.rs @@ -1,10 +1,10 @@ use std::net::SocketAddr; use std::path::Path; -use chainway_sequencer::SequencerConfig; +use citrea::MockDemoRollup; +use citrea_sequencer::SequencerConfig; use citrea_stf::genesis_config::GenesisPaths; use const_rollup_config::TEST_PRIVATE_KEY; -use sov_demo_rollup::MockDemoRollup; use sov_mock_da::{MockAddress, MockDaConfig}; use sov_modules_api::default_signature::private_key::DefaultPrivateKey; use sov_modules_api::PrivateKey; diff --git a/examples/test-data/genesis/demo-tests/bitcoin/accounts.json b/bin/test-data/genesis/demo-tests/bitcoin-regtest/accounts.json similarity index 100% rename from examples/test-data/genesis/demo-tests/bitcoin/accounts.json rename to bin/test-data/genesis/demo-tests/bitcoin-regtest/accounts.json diff --git a/examples/test-data/genesis/demo-tests/bitcoin/chain_state.json b/bin/test-data/genesis/demo-tests/bitcoin-regtest/chain_state.json similarity index 100% rename from examples/test-data/genesis/demo-tests/bitcoin/chain_state.json rename to bin/test-data/genesis/demo-tests/bitcoin-regtest/chain_state.json diff --git a/examples/test-data/genesis/demo-tests/bitcoin/evm.json b/bin/test-data/genesis/demo-tests/bitcoin-regtest/evm.json similarity index 100% rename from examples/test-data/genesis/demo-tests/bitcoin/evm.json rename to bin/test-data/genesis/demo-tests/bitcoin-regtest/evm.json diff --git a/examples/test-data/genesis/demo-tests/bitcoin/soft_confirmation_rule_enforcer.json b/bin/test-data/genesis/demo-tests/bitcoin-regtest/soft_confirmation_rule_enforcer.json similarity index 100% rename from examples/test-data/genesis/demo-tests/bitcoin/soft_confirmation_rule_enforcer.json rename to bin/test-data/genesis/demo-tests/bitcoin-regtest/soft_confirmation_rule_enforcer.json diff --git a/examples/test-data/genesis/demo-tests/celestia/accounts.json b/bin/test-data/genesis/demo-tests/celestia/accounts.json similarity index 100% rename from examples/test-data/genesis/demo-tests/celestia/accounts.json rename to bin/test-data/genesis/demo-tests/celestia/accounts.json diff --git a/examples/test-data/genesis/demo-tests/celestia/evm.json b/bin/test-data/genesis/demo-tests/celestia/evm.json similarity index 100% rename from examples/test-data/genesis/demo-tests/celestia/evm.json rename to bin/test-data/genesis/demo-tests/celestia/evm.json diff --git a/examples/test-data/genesis/demo-tests/celestia/soft_confirmation_rule_enforcer.json b/bin/test-data/genesis/demo-tests/celestia/soft_confirmation_rule_enforcer.json similarity index 100% rename from examples/test-data/genesis/demo-tests/celestia/soft_confirmation_rule_enforcer.json rename to bin/test-data/genesis/demo-tests/celestia/soft_confirmation_rule_enforcer.json diff --git a/examples/test-data/genesis/demo-tests/mock/accounts.json b/bin/test-data/genesis/demo-tests/mock/accounts.json similarity index 100% rename from examples/test-data/genesis/demo-tests/mock/accounts.json rename to bin/test-data/genesis/demo-tests/mock/accounts.json diff --git a/examples/test-data/genesis/demo-tests/celestia/chain_state.json b/bin/test-data/genesis/demo-tests/mock/chain_state.json similarity index 100% rename from examples/test-data/genesis/demo-tests/celestia/chain_state.json rename to bin/test-data/genesis/demo-tests/mock/chain_state.json diff --git a/examples/test-data/genesis/demo-tests/mock/evm.json b/bin/test-data/genesis/demo-tests/mock/evm.json similarity index 100% rename from examples/test-data/genesis/demo-tests/mock/evm.json rename to bin/test-data/genesis/demo-tests/mock/evm.json diff --git a/examples/test-data/genesis/demo-tests/mock/soft_confirmation_rule_enforcer.json b/bin/test-data/genesis/demo-tests/mock/soft_confirmation_rule_enforcer.json similarity index 100% rename from examples/test-data/genesis/demo-tests/mock/soft_confirmation_rule_enforcer.json rename to bin/test-data/genesis/demo-tests/mock/soft_confirmation_rule_enforcer.json diff --git a/examples/test-data/genesis/integration-tests-low-limiting-number/accounts.json b/bin/test-data/genesis/integration-tests-low-limiting-number/accounts.json similarity index 100% rename from examples/test-data/genesis/integration-tests-low-limiting-number/accounts.json rename to bin/test-data/genesis/integration-tests-low-limiting-number/accounts.json diff --git a/examples/test-data/genesis/demo-tests/mock/chain_state.json b/bin/test-data/genesis/integration-tests-low-limiting-number/chain_state.json similarity index 100% rename from examples/test-data/genesis/demo-tests/mock/chain_state.json rename to bin/test-data/genesis/integration-tests-low-limiting-number/chain_state.json diff --git a/examples/test-data/genesis/integration-tests-low-limiting-number/evm.json b/bin/test-data/genesis/integration-tests-low-limiting-number/evm.json similarity index 100% rename from examples/test-data/genesis/integration-tests-low-limiting-number/evm.json rename to bin/test-data/genesis/integration-tests-low-limiting-number/evm.json diff --git a/examples/test-data/genesis/integration-tests-low-limiting-number/soft_confirmation_rule_enforcer.json b/bin/test-data/genesis/integration-tests-low-limiting-number/soft_confirmation_rule_enforcer.json similarity index 100% rename from examples/test-data/genesis/integration-tests-low-limiting-number/soft_confirmation_rule_enforcer.json rename to bin/test-data/genesis/integration-tests-low-limiting-number/soft_confirmation_rule_enforcer.json diff --git a/examples/test-data/genesis/integration-tests/accounts.json b/bin/test-data/genesis/integration-tests/accounts.json similarity index 100% rename from examples/test-data/genesis/integration-tests/accounts.json rename to bin/test-data/genesis/integration-tests/accounts.json diff --git a/examples/test-data/genesis/integration-tests-low-limiting-number/chain_state.json b/bin/test-data/genesis/integration-tests/chain_state.json similarity index 100% rename from examples/test-data/genesis/integration-tests-low-limiting-number/chain_state.json rename to bin/test-data/genesis/integration-tests/chain_state.json diff --git a/examples/test-data/genesis/integration-tests/evm.json b/bin/test-data/genesis/integration-tests/evm.json similarity index 100% rename from examples/test-data/genesis/integration-tests/evm.json rename to bin/test-data/genesis/integration-tests/evm.json diff --git a/examples/test-data/genesis/integration-tests/soft_confirmation_rule_enforcer.json b/bin/test-data/genesis/integration-tests/soft_confirmation_rule_enforcer.json similarity index 100% rename from examples/test-data/genesis/integration-tests/soft_confirmation_rule_enforcer.json rename to bin/test-data/genesis/integration-tests/soft_confirmation_rule_enforcer.json diff --git a/adapters/bitcoin/Cargo.toml b/crates/bitcoin-da/Cargo.toml similarity index 94% rename from adapters/bitcoin/Cargo.toml rename to crates/bitcoin-da/Cargo.toml index 99884ae4e..4a4a48ef0 100644 --- a/adapters/bitcoin/Cargo.toml +++ b/crates/bitcoin-da/Cargo.toml @@ -12,7 +12,7 @@ rust-version = "1.66" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -sov-rollup-interface = { path = "../../rollup-interface" } +sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface" } tokio = { workspace = true, features = ["full"], optional = true } diff --git a/adapters/bitcoin/LICENSE b/crates/bitcoin-da/LICENSE similarity index 100% rename from adapters/bitcoin/LICENSE rename to crates/bitcoin-da/LICENSE diff --git a/adapters/bitcoin/README.md b/crates/bitcoin-da/README.md similarity index 98% rename from adapters/bitcoin/README.md rename to crates/bitcoin-da/README.md index a77d61062..8997ab34d 100644 --- a/adapters/bitcoin/README.md +++ b/crates/bitcoin-da/README.md @@ -60,8 +60,7 @@ that data into the format expected by the DA verifier and returns. ## License -Licensed under the [Apache License, Version -2.0](./LICENSE). +Licensed under the [Apache License, Version 2.0](./LICENSE). Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this repository by you, as defined in the Apache-2.0 license, shall be diff --git a/adapters/bitcoin/src/helpers/builders.rs b/crates/bitcoin-da/src/helpers/builders.rs similarity index 100% rename from adapters/bitcoin/src/helpers/builders.rs rename to crates/bitcoin-da/src/helpers/builders.rs diff --git a/adapters/bitcoin/src/helpers/mod.rs b/crates/bitcoin-da/src/helpers/mod.rs similarity index 100% rename from adapters/bitcoin/src/helpers/mod.rs rename to crates/bitcoin-da/src/helpers/mod.rs diff --git a/adapters/bitcoin/src/helpers/parsers.rs b/crates/bitcoin-da/src/helpers/parsers.rs similarity index 100% rename from adapters/bitcoin/src/helpers/parsers.rs rename to crates/bitcoin-da/src/helpers/parsers.rs diff --git a/adapters/bitcoin/src/helpers/test_utils.rs b/crates/bitcoin-da/src/helpers/test_utils.rs similarity index 100% rename from adapters/bitcoin/src/helpers/test_utils.rs rename to crates/bitcoin-da/src/helpers/test_utils.rs diff --git a/adapters/bitcoin/src/lib.rs b/crates/bitcoin-da/src/lib.rs similarity index 100% rename from adapters/bitcoin/src/lib.rs rename to crates/bitcoin-da/src/lib.rs diff --git a/adapters/bitcoin/src/rpc.rs b/crates/bitcoin-da/src/rpc.rs similarity index 100% rename from adapters/bitcoin/src/rpc.rs rename to crates/bitcoin-da/src/rpc.rs diff --git a/adapters/bitcoin/src/service.rs b/crates/bitcoin-da/src/service.rs similarity index 94% rename from adapters/bitcoin/src/service.rs rename to crates/bitcoin-da/src/service.rs index 9eb9ee624..884e7ad9f 100644 --- a/adapters/bitcoin/src/service.rs +++ b/crates/bitcoin-da/src/service.rs @@ -37,7 +37,7 @@ pub struct BitcoinService { rollup_name: String, network: bitcoin::Network, address: Address, - sequencer_da_private_key: SecretKey, + sequencer_da_private_key: Option, reveal_tx_id_prefix: Vec, } @@ -81,9 +81,9 @@ impl BitcoinService { let address = Address::from_str(&config.address).expect("Invalid bitcoin address"); - let private_key = - SecretKey::from_str(&config.sequencer_da_private_key.unwrap_or("".to_owned())) - .expect("Invalid private key"); + let private_key = config + .sequencer_da_private_key + .map(|pk| SecretKey::from_str(&pk).expect("Invalid private key")); Self::with_client( client, @@ -110,9 +110,9 @@ impl BitcoinService { let address = Address::from_str(&config.address).expect("Invalid bitcoin address"); - let private_key = - SecretKey::from_str(&config.sequencer_da_private_key.unwrap_or("".to_owned())) - .expect("Invalid private key"); + let private_key = config + .sequencer_da_private_key + .map(|pk| SecretKey::from_str(&pk).expect("Invalid private key")); Self { client, @@ -129,7 +129,7 @@ impl BitcoinService { rollup_name: String, network: bitcoin::Network, address: Address, - sequencer_da_private_key: SecretKey, + sequencer_da_private_key: Option, reveal_tx_id_prefix: Vec, ) -> Self { // We can't store address with the network check because it's not serializable @@ -172,7 +172,7 @@ impl BitcoinService { .require_network(network) .expect("Invalid network for address"); let rollup_name = self.rollup_name.clone(); - let sequencer_da_private_key = self.sequencer_da_private_key; + let sequencer_da_private_key = self.sequencer_da_private_key.expect("No private key set"); // Compress the blob let blob = compress_blob(&blob); @@ -436,28 +436,6 @@ impl DaService for BitcoinService { .await } - fn convert_rollup_batch_to_da_blob( - &self, - blob: &[u8], - ) -> Result< - ( - ::BlobTransaction, - Vec, - ), - Self::Error, - > { - let (signature, pubkey) = - sign_blob_with_private_key(blob, &self.sequencer_da_private_key).unwrap(); - Ok(( - BlobWithSender::new( - blob.to_vec(), - pubkey, - sha256d::Hash::hash(blob).to_byte_array(), - ), - signature, - )) - } - async fn send_aggregated_zk_proof( &self, _aggregated_proof_data: &[u8], @@ -618,10 +596,11 @@ mod tests { // The transaction was sent with this service and the tx data is stored in false_signature_txs.txt let da_service = get_service().await; let secp = bitcoin::secp256k1::Secp256k1::new(); - let da_pubkey = Keypair::from_secret_key(&secp, &da_service.sequencer_da_private_key) - .public_key() - .serialize() - .to_vec(); + let da_pubkey = + Keypair::from_secret_key(&secp, &da_service.sequencer_da_private_key.unwrap()) + .public_key() + .serialize() + .to_vec(); let runtime_config = DaServiceConfig { node_url: "http://localhost:38332".to_string(), @@ -645,7 +624,7 @@ mod tests { .await; let incorrect_pub_key = - Keypair::from_secret_key(&secp, &incorrect_service.sequencer_da_private_key) + Keypair::from_secret_key(&secp, &incorrect_service.sequencer_da_private_key.unwrap()) .public_key() .serialize() .to_vec(); @@ -697,10 +676,11 @@ mod tests { async fn check_signature() { let da_service = get_service().await; let secp = bitcoin::secp256k1::Secp256k1::new(); - let da_pubkey = Keypair::from_secret_key(&secp, &da_service.sequencer_da_private_key) - .public_key() - .serialize() - .to_vec(); + let da_pubkey = + Keypair::from_secret_key(&secp, &da_service.sequencer_da_private_key.unwrap()) + .public_key() + .serialize() + .to_vec(); // blob written in tx is: "01000000b60000002adbd76606f2bd4125080e6f44df7ba2d728409955c80b8438eb1828ddf23e3c12188eeac7ecf6323be0ed5668e21cc354fca90d8bca513d6c0a240c26afa7007b758bf2e7670fafaf6bf0015ce0ff5aa802306fc7e3f45762853ffc37180fe64a0000000001fea6ac5b8751120fb62fff67b54d2eac66aef307c7dde1d394dea1e09e43dd44c800000000000000135d23aee8cb15c890831ff36db170157acaac31df9bba6cd40e7329e608eabd0000000000000000"; // tx id = 0x8a1df48198a509cd91930ff44cbb92ef46e80458b1999e16aa6923171894fba3 diff --git a/adapters/bitcoin/src/spec/address.rs b/crates/bitcoin-da/src/spec/address.rs similarity index 100% rename from adapters/bitcoin/src/spec/address.rs rename to crates/bitcoin-da/src/spec/address.rs diff --git a/adapters/bitcoin/src/spec/blob.rs b/crates/bitcoin-da/src/spec/blob.rs similarity index 100% rename from adapters/bitcoin/src/spec/blob.rs rename to crates/bitcoin-da/src/spec/blob.rs diff --git a/adapters/bitcoin/src/spec/block.rs b/crates/bitcoin-da/src/spec/block.rs similarity index 100% rename from adapters/bitcoin/src/spec/block.rs rename to crates/bitcoin-da/src/spec/block.rs diff --git a/adapters/bitcoin/src/spec/block_hash.rs b/crates/bitcoin-da/src/spec/block_hash.rs similarity index 95% rename from adapters/bitcoin/src/spec/block_hash.rs rename to crates/bitcoin-da/src/spec/block_hash.rs index 7517762e9..4f6b60d70 100644 --- a/adapters/bitcoin/src/spec/block_hash.rs +++ b/crates/bitcoin-da/src/spec/block_hash.rs @@ -13,7 +13,7 @@ impl BlockHashTrait for BlockHashWrapper {} impl From for [u8; 32] { fn from(val: BlockHashWrapper) -> Self { - *val.0.as_ref() + val.0.as_raw_hash().to_byte_array() } } diff --git a/adapters/bitcoin/src/spec/header.rs b/crates/bitcoin-da/src/spec/header.rs similarity index 100% rename from adapters/bitcoin/src/spec/header.rs rename to crates/bitcoin-da/src/spec/header.rs diff --git a/adapters/bitcoin/src/spec/header_stream.rs b/crates/bitcoin-da/src/spec/header_stream.rs similarity index 100% rename from adapters/bitcoin/src/spec/header_stream.rs rename to crates/bitcoin-da/src/spec/header_stream.rs diff --git a/adapters/bitcoin/src/spec/mod.rs b/crates/bitcoin-da/src/spec/mod.rs similarity index 100% rename from adapters/bitcoin/src/spec/mod.rs rename to crates/bitcoin-da/src/spec/mod.rs diff --git a/adapters/bitcoin/src/spec/proof.rs b/crates/bitcoin-da/src/spec/proof.rs similarity index 100% rename from adapters/bitcoin/src/spec/proof.rs rename to crates/bitcoin-da/src/spec/proof.rs diff --git a/adapters/bitcoin/src/spec/transaction.rs b/crates/bitcoin-da/src/spec/transaction.rs similarity index 100% rename from adapters/bitcoin/src/spec/transaction.rs rename to crates/bitcoin-da/src/spec/transaction.rs diff --git a/adapters/bitcoin/src/spec/utxo.rs b/crates/bitcoin-da/src/spec/utxo.rs similarity index 100% rename from adapters/bitcoin/src/spec/utxo.rs rename to crates/bitcoin-da/src/spec/utxo.rs diff --git a/adapters/bitcoin/src/verifier.rs b/crates/bitcoin-da/src/verifier.rs similarity index 100% rename from adapters/bitcoin/src/verifier.rs rename to crates/bitcoin-da/src/verifier.rs diff --git a/adapters/bitcoin/test_data/blob.txt b/crates/bitcoin-da/test_data/blob.txt similarity index 100% rename from adapters/bitcoin/test_data/blob.txt rename to crates/bitcoin-da/test_data/blob.txt diff --git a/adapters/bitcoin/test_data/false_signature_txs.txt b/crates/bitcoin-da/test_data/false_signature_txs.txt similarity index 100% rename from adapters/bitcoin/test_data/false_signature_txs.txt rename to crates/bitcoin-da/test_data/false_signature_txs.txt diff --git a/adapters/bitcoin/test_data/mock_non_segwit_txs.txt b/crates/bitcoin-da/test_data/mock_non_segwit_txs.txt similarity index 100% rename from adapters/bitcoin/test_data/mock_non_segwit_txs.txt rename to crates/bitcoin-da/test_data/mock_non_segwit_txs.txt diff --git a/adapters/bitcoin/test_data/mock_txs.txt b/crates/bitcoin-da/test_data/mock_txs.txt similarity index 100% rename from adapters/bitcoin/test_data/mock_txs.txt rename to crates/bitcoin-da/test_data/mock_txs.txt diff --git a/adapters/bitcoin/test_data/signature_check_txs.txt b/crates/bitcoin-da/test_data/signature_check_txs.txt similarity index 100% rename from adapters/bitcoin/test_data/signature_check_txs.txt rename to crates/bitcoin-da/test_data/signature_check_txs.txt diff --git a/examples/demo-rollup/citrea-stf/Cargo.toml b/crates/citrea-stf/Cargo.toml similarity index 50% rename from examples/demo-rollup/citrea-stf/Cargo.toml rename to crates/citrea-stf/Cargo.toml index ca74417ac..6b5fd2de2 100644 --- a/examples/demo-rollup/citrea-stf/Cargo.toml +++ b/crates/citrea-stf/Cargo.toml @@ -27,33 +27,33 @@ tracing = { workspace = true } reth-primitives = { workspace = true } secp256k1 = { workspace = true } -sov-stf-runner = { path = "../../../full-node/sov-stf-runner" } -sov-rollup-interface = { path = "../../../rollup-interface" } -sov-cli = { path = "../../../module-system/sov-cli", optional = true } -sov-sequencer-registry = { path = "../../../module-system/module-implementations/sov-sequencer-registry" } -sov-blob-storage = { path = "../../../module-system/module-implementations/sov-blob-storage" } -sov-bank = { path = "../../../module-system/module-implementations/sov-bank" } -sov-nft-module = { path = "../../../module-system/module-implementations/sov-nft-module" } -sov-soft-confirmations-kernel = { path = "../../../module-system/sov-soft-confirmations-kernel" } +sov-stf-runner = { path = "../sovereign-sdk/full-node/sov-stf-runner" } +sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface" } +sov-cli = { path = "../sovereign-sdk/module-system/sov-cli", optional = true } +sov-sequencer-registry = { path = "../sovereign-sdk/module-system/module-implementations/sov-sequencer-registry" } +sov-blob-storage = { path = "../sovereign-sdk/module-system/module-implementations/sov-blob-storage" } +sov-bank = { path = "../sovereign-sdk/module-system/module-implementations/sov-bank" } +sov-nft-module = { path = "../sovereign-sdk/module-system/module-implementations/sov-nft-module" } +sov-soft-confirmations-kernel = { path = "../sovereign-sdk/module-system/sov-soft-confirmations-kernel" } -sov-mock-da = { path = "../../../adapters/mock-da" } -sov-chain-state = { path = "../../../module-system/module-implementations/sov-chain-state" } -sov-modules-stf-blueprint = { path = "../../../module-system/sov-modules-stf-blueprint" } -sov-value-setter = { path = "../../../module-system/module-implementations/examples/sov-value-setter" } -sov-accounts = { path = "../../../module-system/module-implementations/sov-accounts" } -sov-state = { path = "../../../module-system/sov-state" } -sov-modules-api = { path = "../../../module-system/sov-modules-api" } -sov-evm = { path = "../../../module-system/module-implementations/sov-evm" } -soft-confirmation-rule-enforcer = { path = "../../../module-system/module-implementations/soft-confirmation-rule-enforcer" } +sov-mock-da = { path = "../sovereign-sdk/adapters/mock-da" } +sov-chain-state = { path = "../sovereign-sdk/module-system/module-implementations/sov-chain-state" } +sov-modules-stf-blueprint = { path = "../sovereign-sdk/module-system/sov-modules-stf-blueprint" } +sov-value-setter = { path = "../sovereign-sdk/module-system/module-implementations/examples/sov-value-setter" } +sov-accounts = { path = "../sovereign-sdk/module-system/module-implementations/sov-accounts" } +sov-state = { path = "../sovereign-sdk/module-system/sov-state" } +sov-modules-api = { path = "../sovereign-sdk/module-system/sov-modules-api" } +citrea-evm = { path = "../evm" } +soft-confirmation-rule-enforcer = { path = "../soft-confirmation-rule-enforcer" } [dev-dependencies] citrea-stf = { path = ".", features = ["native"] } tempfile = { workspace = true } rand = { workspace = true } -sov-data-generators = { path = "../../../module-system/utils/sov-data-generators" } -sov-mock-zkvm = { path = "../../../adapters/mock-zkvm" } -sov-prover-storage-manager = { path = "../../../full-node/sov-prover-storage-manager", features = [ +sov-data-generators = { path = "../sovereign-sdk/module-system/utils/sov-data-generators" } +sov-mock-zkvm = { path = "../sovereign-sdk/adapters/mock-zkvm" } +sov-prover-storage-manager = { path = "../sovereign-sdk/full-node/sov-prover-storage-manager", features = [ "test-utils", ] } @@ -90,6 +90,6 @@ serde = [ "sov-value-setter/serde", "sov-accounts/serde", "sov-nft-module/serde", - "sov-evm/serde", + "citrea-evm/serde", "soft-confirmation-rule-enforcer/serde", ] diff --git a/crates/citrea-stf/README.md b/crates/citrea-stf/README.md new file mode 100644 index 000000000..854c58ada --- /dev/null +++ b/crates/citrea-stf/README.md @@ -0,0 +1,11 @@ +## Citrea STF + +This is the State Transition Function crate for the Citrea rollup. + +The Citrea State Transition Function consists of 3 modules: +- [EVM](../../evm/README.md): Used for handling EVM functionality. +- [sov-accounts](../../../sovereign-sdk/module-system/module-implementations/sov-accounts/README.md): Used for checking the sequencer's nonce. +- [Soft Confirmation Rule Enforcer](../../soft-confirmation-rule-enforcer/README.md): Used for enforcing Citrea's soft confirmation rules. + + +Through applying transaction/blob/soft confirmation hooks (see [`hooks_impl.rs`](./src/hooks_impl.rs)), it runs the rollup via the [`Runtime`](./src/runtime.rs). diff --git a/examples/demo-rollup/citrea-stf/src/genesis_config.rs b/crates/citrea-stf/src/genesis_config.rs similarity index 99% rename from examples/demo-rollup/citrea-stf/src/genesis_config.rs rename to crates/citrea-stf/src/genesis_config.rs index 211a61ab4..aafb5f5f9 100644 --- a/examples/demo-rollup/citrea-stf/src/genesis_config.rs +++ b/crates/citrea-stf/src/genesis_config.rs @@ -6,9 +6,9 @@ use std::convert::AsRef; use std::path::{Path, PathBuf}; use anyhow::Context as _; +use citrea_evm::EvmConfig; use soft_confirmation_rule_enforcer::SoftConfirmationRuleEnforcerConfig; use sov_accounts::AccountConfig; -use sov_evm::EvmConfig; pub use sov_modules_api::default_context::DefaultContext; use sov_modules_api::Context; use sov_modules_stf_blueprint::Runtime as RuntimeTrait; diff --git a/examples/demo-rollup/citrea-stf/src/hooks_impl.rs b/crates/citrea-stf/src/hooks_impl.rs similarity index 100% rename from examples/demo-rollup/citrea-stf/src/hooks_impl.rs rename to crates/citrea-stf/src/hooks_impl.rs diff --git a/examples/demo-rollup/citrea-stf/src/lib.rs b/crates/citrea-stf/src/lib.rs similarity index 100% rename from examples/demo-rollup/citrea-stf/src/lib.rs rename to crates/citrea-stf/src/lib.rs diff --git a/examples/demo-rollup/citrea-stf/src/runtime.rs b/crates/citrea-stf/src/runtime.rs similarity index 98% rename from examples/demo-rollup/citrea-stf/src/runtime.rs rename to crates/citrea-stf/src/runtime.rs index 9e96f9e03..5f352d4c2 100644 --- a/examples/demo-rollup/citrea-stf/src/runtime.rs +++ b/crates/citrea-stf/src/runtime.rs @@ -32,14 +32,14 @@ #![allow(unused_doc_comments)] #[cfg(feature = "native")] +use citrea_evm::{EvmRpcImpl, EvmRpcServer}; +#[cfg(feature = "native")] use soft_confirmation_rule_enforcer::{ SoftConfirmationRuleEnforcerRpcImpl, SoftConfirmationRuleEnforcerRpcServer, }; #[cfg(feature = "native")] use sov_accounts::{AccountsRpcImpl, AccountsRpcServer}; #[cfg(feature = "native")] -use sov_evm::{EvmRpcImpl, EvmRpcServer}; -#[cfg(feature = "native")] pub use sov_modules_api::default_context::DefaultContext; use sov_modules_api::macros::DefaultRuntime; #[cfg(feature = "native")] @@ -62,7 +62,7 @@ pub struct Runtime { pub accounts: sov_accounts::Accounts, #[cfg_attr(feature = "native", cli_skip)] /// The EVM module. - pub evm: sov_evm::Evm, + pub evm: citrea_evm::Evm, /// The soft confirmation rule enforcer module. pub soft_confirmation_rule_enforcer: soft_confirmation_rule_enforcer::SoftConfirmationRuleEnforcer, diff --git a/full-node/sov-ethereum/Cargo.toml b/crates/ethereum-rpc/Cargo.toml similarity index 65% rename from full-node/sov-ethereum/Cargo.toml rename to crates/ethereum-rpc/Cargo.toml index 12b0425f2..a8766d06b 100644 --- a/full-node/sov-ethereum/Cargo.toml +++ b/crates/ethereum-rpc/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "sov-ethereum" +name = "ethereum-rpc" authors = { workspace = true } edition = { workspace = true } homepage = { workspace = true } @@ -12,8 +12,8 @@ publish = false resolver = "2" [dependencies] -sov-evm = { path = "../../module-system/module-implementations/sov-evm" } -sov-stf-runner = { path = "../sov-stf-runner" } +citrea-evm = { path = "../evm" } +sov-stf-runner = { path = "../sovereign-sdk/full-node/sov-stf-runner" } sequencer-client = { path = "../sequencer-client" } anyhow = { workspace = true } tracing = { workspace = true } @@ -33,15 +33,13 @@ ethers = { workspace = true } tokio = { workspace = true } schnellru = "0.2.1" -sov-rollup-interface = { path = "../../rollup-interface", features = [ +sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface", features = [ "native", ] } -citrea-stf = { path = "../../examples/demo-rollup/citrea-stf", features = [ - "native", -] } -sov-modules-api = { path = "../../module-system/sov-modules-api" } -sov-accounts = { path = "../../module-system/module-implementations/sov-accounts" } +citrea-stf = { path = "../citrea-stf", features = ["native"] } +sov-modules-api = { path = "../sovereign-sdk/module-system/sov-modules-api" } +sov-accounts = { path = "../sovereign-sdk/module-system/module-implementations/sov-accounts" } rustc_version_runtime = "0.3.0" [dev-dependencies] @@ -52,4 +50,4 @@ proptest = { workspace = true } [features] default = ["local"] local = [] -native = ["citrea-stf/native", "sov-evm/native"] +native = ["citrea-stf/native", "citrea-evm/native"] diff --git a/crates/ethereum-rpc/README.md b/crates/ethereum-rpc/README.md new file mode 100644 index 000000000..3f6dddb83 --- /dev/null +++ b/crates/ethereum-rpc/README.md @@ -0,0 +1,5 @@ +## Ethereum RPC + +This crate provides the implementation of some of the Ethereum JSON-RPC API methods for Citrea. The remaining methods can be found in the EVM module of Citrea, in the `citrea/evm` folder. + +The main logic behind this separation is mostly due to a couple of tricks, such as implementing a cache mechanism & mempool access for some of the methods, as well as building some other logic that could be useful in the context of gas oracle & fees. diff --git a/full-node/sov-ethereum/src/gas_price/cache.rs b/crates/ethereum-rpc/src/gas_price/cache.rs similarity index 97% rename from full-node/sov-ethereum/src/gas_price/cache.rs rename to crates/ethereum-rpc/src/gas_price/cache.rs index 7558ac932..e77295fe8 100644 --- a/full-node/sov-ethereum/src/gas_price/cache.rs +++ b/crates/ethereum-rpc/src/gas_price/cache.rs @@ -1,9 +1,9 @@ use std::sync::Mutex; +use citrea_evm::EthResult; use reth_primitives::{BlockNumberOrTag, B256}; use reth_rpc_types::{Block, BlockTransactions, Rich, TransactionReceipt}; use schnellru::{ByLength, LruMap}; -use sov_evm::EthResult; use sov_modules_api::WorkingSet; use super::gas_oracle::convert_u256_to_u64; @@ -13,11 +13,11 @@ pub struct BlockCache { // Assuming number_to_hash and cache are always in sync number_to_hash: Mutex>, // Number -> hash mapping cache: Mutex, ByLength>>, - provider: sov_evm::Evm, + provider: citrea_evm::Evm, } impl BlockCache { - pub fn new(max_size: u32, provider: sov_evm::Evm) -> Self { + pub fn new(max_size: u32, provider: citrea_evm::Evm) -> Self { Self { number_to_hash: Mutex::new(LruMap::new(ByLength::new(max_size))), cache: Mutex::new(LruMap::new(ByLength::new(max_size))), diff --git a/full-node/sov-ethereum/src/gas_price/fee_history.rs b/crates/ethereum-rpc/src/gas_price/fee_history.rs similarity index 99% rename from full-node/sov-ethereum/src/gas_price/fee_history.rs rename to crates/ethereum-rpc/src/gas_price/fee_history.rs index f01c8f7f2..af90c7309 100644 --- a/full-node/sov-ethereum/src/gas_price/fee_history.rs +++ b/crates/ethereum-rpc/src/gas_price/fee_history.rs @@ -2,13 +2,13 @@ use std::fmt::Debug; use std::sync::{Arc, Mutex}; +use citrea_evm::EthApiError; use reth_primitives::{B256, U256}; use reth_rpc_types::{ Block, BlockTransactions, Rich, Transaction, TransactionReceipt, TxGasAndReward, }; use schnellru::{ByLength, LruMap}; use serde::{Deserialize, Serialize}; -use sov_evm::EthApiError; use sov_modules_api::WorkingSet; use super::cache::BlockCache; diff --git a/full-node/sov-ethereum/src/gas_price/gas_oracle.rs b/crates/ethereum-rpc/src/gas_price/gas_oracle.rs similarity index 99% rename from full-node/sov-ethereum/src/gas_price/gas_oracle.rs rename to crates/ethereum-rpc/src/gas_price/gas_oracle.rs index a3eace86c..e50b1cdce 100644 --- a/full-node/sov-ethereum/src/gas_price/gas_oracle.rs +++ b/crates/ethereum-rpc/src/gas_price/gas_oracle.rs @@ -6,12 +6,12 @@ use std::array::TryFromSliceError; use std::sync::Arc; +use citrea_evm::{EthApiError, EthResult, Evm, RpcInvalidTransactionError}; use reth_primitives::basefee::calculate_next_block_base_fee; use reth_primitives::constants::GWEI_TO_WEI; use reth_primitives::{BlockNumberOrTag, B256, U256, U64}; use reth_rpc_types::{BlockTransactions, FeeHistory}; use serde::{Deserialize, Serialize}; -use sov_evm::{EthApiError, EthResult, Evm, RpcInvalidTransactionError}; use sov_modules_api::WorkingSet; use tokio::sync::Mutex; use tracing::warn; diff --git a/full-node/sov-ethereum/src/gas_price/mod.rs b/crates/ethereum-rpc/src/gas_price/mod.rs similarity index 100% rename from full-node/sov-ethereum/src/gas_price/mod.rs rename to crates/ethereum-rpc/src/gas_price/mod.rs diff --git a/full-node/sov-ethereum/src/lib.rs b/crates/ethereum-rpc/src/lib.rs similarity index 66% rename from full-node/sov-ethereum/src/lib.rs rename to crates/ethereum-rpc/src/lib.rs index 57ca71b94..27d34546f 100644 --- a/full-node/sov-ethereum/src/lib.rs +++ b/crates/ethereum-rpc/src/lib.rs @@ -1,46 +1,33 @@ -mod batch_builder; mod gas_price; use std::collections::BTreeMap; use std::process::Command; -use std::sync::{Arc, Mutex}; +use std::sync::Mutex; -use alloy_rpc_types::request::TransactionRequest; -use citrea_stf::runtime::Runtime; +#[cfg(feature = "local")] +pub use citrea_evm::DevSigner; +use citrea_evm::{EthApiError, Evm}; use ethers::types::Bytes; pub use gas_price::fee_history::FeeHistoryCacheConfig; use gas_price::gas_oracle::GasPriceOracle; pub use gas_price::gas_oracle::GasPriceOracleConfig; use jsonrpsee::types::ErrorObjectOwned; use jsonrpsee::RpcModule; -use reth_primitives::{ - keccak256, Address, BlockNumberOrTag, TransactionSignedNoHash as RethTransactionSignedNoHash, - B256, U256, U64, -}; -use reth_rpc_types::other::OtherFields; +use reth_primitives::{keccak256, BlockNumberOrTag, B256, U256}; use reth_rpc_types::trace::geth::{ CallConfig, CallFrame, FourByteFrame, GethDebugBuiltInTracerType, GethDebugTracerConfig, GethDebugTracerType, GethDebugTracingOptions, GethTrace, NoopFrame, }; -use reth_rpc_types::transaction::{ - EIP1559TransactionRequest, EIP2930TransactionRequest, EIP4844TransactionRequest, - LegacyTransactionRequest, -}; -use reth_rpc_types::{FeeHistory, TransactionKind as RpcTransactionKind, TypedTransactionRequest}; -use reth_rpc_types_compat::transaction::to_primitive_transaction; +use reth_rpc_types::FeeHistory; use rustc_version_runtime::version; use schnellru::{ByLength, LruMap}; use sequencer_client::SequencerClient; use serde_json::json; -#[cfg(feature = "local")] -pub use sov_evm::DevSigner; -use sov_evm::{CallMessage, EthApiError, Evm, RlpEvmTransaction, SignError}; use sov_modules_api::utils::to_jsonrpsee_error_object; -use sov_modules_api::{EncodeCall, PrivateKey, WorkingSet}; +use sov_modules_api::WorkingSet; use sov_rollup_interface::services::da::DaService; use tracing::info; -use crate::batch_builder::EthBatchBuilder; use crate::gas_price::gas_oracle::convert_u256_to_u64; const ETH_RPC_ERROR: &str = "ETH_RPC_ERROR"; @@ -48,9 +35,7 @@ const ETH_RPC_ERROR: &str = "ETH_RPC_ERROR"; const MAX_TRACE_BLOCK: u32 = 1000; #[derive(Clone)] -pub struct EthRpcConfig { - pub min_blob_size: Option, - pub sov_tx_signer_priv_key: C::PrivateKey, +pub struct EthRpcConfig { pub gas_price_oracle_config: GasPriceOracleConfig, pub fee_history_cache_config: FeeHistoryCacheConfig, #[cfg(feature = "local")] @@ -59,43 +44,24 @@ pub struct EthRpcConfig { pub fn get_ethereum_rpc( da_service: Da, - eth_rpc_config: EthRpcConfig, + eth_rpc_config: EthRpcConfig, storage: C::Storage, sequencer_client: Option, ) -> RpcModule> { // Unpack config let EthRpcConfig { - min_blob_size, - sov_tx_signer_priv_key, #[cfg(feature = "local")] eth_signer, gas_price_oracle_config, fee_history_cache_config, } = eth_rpc_config; - // Fetch nonce from storage - let accounts = sov_accounts::Accounts::::default(); - let sov_tx_signer_account = accounts - .get_account( - sov_tx_signer_priv_key.pub_key(), - &mut WorkingSet::::new(storage.clone()), - ) - .unwrap(); - let sov_tx_signer_nonce: u64 = match sov_tx_signer_account { - sov_accounts::Response::AccountExists { nonce, .. } => nonce, - sov_accounts::Response::AccountEmpty { .. } => 0, - }; // If the node does not have a sequencer client, then it is the sequencer. let is_sequencer = sequencer_client.is_none(); // If the running node is a full node rpc context should also have sequencer client so that it can send txs to sequencer let mut rpc = RpcModule::new(Ethereum::new( da_service, - Arc::new(Mutex::new(EthBatchBuilder::new( - sov_tx_signer_priv_key, - sov_tx_signer_nonce, - min_blob_size, - ))), gas_price_oracle_config, fee_history_cache_config, #[cfg(feature = "local")] @@ -104,14 +70,13 @@ pub fn get_ethereum_rpc( sequencer_client, )); - register_rpc_methods(&mut rpc, is_sequencer).expect("Failed to register sequencer RPC methods"); + register_rpc_methods(&mut rpc, is_sequencer).expect("Failed to register ethereum RPC methods"); rpc } pub struct Ethereum { #[allow(dead_code)] da_service: Da, - batch_builder: Arc>>, gas_price_oracle: GasPriceOracle, #[cfg(feature = "local")] eth_signer: DevSigner, @@ -124,7 +89,6 @@ pub struct Ethereum { impl Ethereum { fn new( da_service: Da, - batch_builder: Arc>>, gas_price_oracle_config: GasPriceOracleConfig, fee_history_cache_config: FeeHistoryCacheConfig, #[cfg(feature = "local")] eth_signer: DevSigner, @@ -153,7 +117,6 @@ impl Ethereum { Self { da_service, - batch_builder, gas_price_oracle, #[cfg(feature = "local")] eth_signer, @@ -165,25 +128,21 @@ impl Ethereum { } } -impl Ethereum { - fn make_raw_tx( - &self, - raw_tx: RlpEvmTransaction, - ) -> Result<(B256, Vec), jsonrpsee::core::Error> { - let signed_transaction: RethTransactionSignedNoHash = raw_tx.clone().try_into()?; - - let tx_hash = signed_transaction.hash(); +// impl Ethereum { +// fn make_raw_tx( +// &self, +// raw_tx: RlpEvmTransaction, +// ) -> Result<(B256, Vec), jsonrpsee::core::Error> { +// let signed_transaction: RethTransactionSignedNoHash = raw_tx.clone().try_into()?; - let tx = CallMessage { txs: vec![raw_tx] }; - let message = as EncodeCall>>::encode_call(tx); +// let tx_hash = signed_transaction.hash(); - Ok((B256::from(tx_hash), message)) - } +// let tx = CallMessage { txs: vec![raw_tx] }; +// let message = as EncodeCall>>::encode_call(tx); - fn add_messages(&self, messages: Vec>) { - self.batch_builder.lock().unwrap().add_messages(messages); - } -} +// Ok((B256::from(tx_hash), message)) +// } +// } fn register_rpc_methods( rpc: &mut RpcModule>, @@ -275,43 +234,6 @@ fn register_rpc_methods( Ok::(fee_history) })?; - // rpc.register_async_method("eth_publishBatch", |params, ethereum| async move { - // info!("eth module: eth_publishBatch"); - - // let mut params_iter = params.sequence(); - - // let mut txs = Vec::default(); - // while let Some(tx) = params_iter.optional_next::>()? { - // txs.push(tx) - // } - - // ethereum - // .build_and_submit_batch(txs, Some(1)) - // .await - // .map_err(|e| to_jsonrpsee_error_object(e, ETH_RPC_ERROR))?; - - // Ok::("Submitted transaction".to_string()) - // })?; - - // rpc.register_async_method( - // "eth_sendRawTransaction", - // |parameters, ethereum| async move { - // info!("eth module: eth_sendRawTransaction"); - - // let data: Bytes = parameters.one().unwrap(); - - // let raw_evm_tx = RlpEvmTransaction { rlp: data.to_vec() }; - - // let (tx_hash, raw_message) = ethereum - // .make_raw_tx(raw_evm_tx) - // .map_err(|e| to_jsonrpsee_error_object(e, ETH_RPC_ERROR))?; - - // ethereum.add_messages(vec![raw_message]); - - // Ok::<_, ErrorObjectOwned>(tx_hash) - // }, - // )?; - #[cfg(feature = "local")] rpc.register_async_method("eth_accounts", |_, ethereum| async move { info!("eth module: eth_accounts"); @@ -319,229 +241,229 @@ fn register_rpc_methods( Ok::<_, ErrorObjectOwned>(ethereum.eth_signer.signers()) })?; - #[cfg(feature = "local")] - rpc.register_async_method("eth_sendTransaction", |parameters, ethereum| async move { - info!("eth module: eth_sendTransaction"); + // #[cfg(feature = "local")] + // rpc.register_async_method("eth_sendTransaction", |parameters, ethereum| async move { + // info!("eth module: eth_sendTransaction"); - let mut transaction_request: TransactionRequest = parameters.one().unwrap(); + // let mut transaction_request: TransactionRequest = parameters.one().unwrap(); - let evm = Evm::::default(); + // let evm = Evm::::default(); - // get from, return error if none - let from = transaction_request - .from - .ok_or(to_jsonrpsee_error_object("No from address", ETH_RPC_ERROR))?; - - // return error if not in signers - if !ethereum.eth_signer.signers().contains(&from) { - return Err(to_jsonrpsee_error_object( - "From address not in signers", - ETH_RPC_ERROR, - )); - } + // // get from, return error if none + // let from = transaction_request + // .from + // .ok_or(to_jsonrpsee_error_object("No from address", ETH_RPC_ERROR))?; - let raw_evm_tx = { - let mut working_set = WorkingSet::::new(ethereum.storage.clone()); - - // set nonce if none - if transaction_request.nonce.is_none() { - let nonce = evm - .get_transaction_count(from, None, &mut working_set) - .unwrap_or_default(); - - transaction_request.nonce = Some(nonce); - } - - // get current chain id - let chain_id = evm - .chain_id(&mut working_set) - .expect("Failed to get chain id") - .map(|id| id.to::()) - .unwrap_or(1); - - // get call request to estimate gas and gas prices - let (call_request, _gas_price, _max_fee_per_gas) = - get_call_request_and_params(from, chain_id, &transaction_request); - - // estimate gas limit - let gas_limit = U256::from( - evm.eth_estimate_gas(call_request, None, &mut working_set)? - .to::(), - ); - - let TransactionRequest { - to, - gas_price, - max_fee_per_gas, - max_priority_fee_per_gas, - gas, - value, - input: data, - nonce, - mut access_list, - max_fee_per_blob_gas, - blob_versioned_hashes, - sidecar, - .. - } = transaction_request; - - // todo: remove this inlining after https://github.com/alloy-rs/alloy/pull/183#issuecomment-1928161285 - let transaction = match ( - gas_price, - max_fee_per_gas, - access_list.take(), - max_fee_per_blob_gas, - blob_versioned_hashes, - sidecar, - ) { - // legacy transaction - // gas price required - (Some(_), None, None, None, None, None) => { - Some(TypedTransactionRequest::Legacy(LegacyTransactionRequest { - nonce: nonce.unwrap_or_default(), - gas_price: gas_price.unwrap_or_default(), - gas_limit: gas.unwrap_or_default(), - value: value.unwrap_or_default(), - input: data.into_input().unwrap_or_default(), - kind: match to { - Some(to) => RpcTransactionKind::Call(to), - None => RpcTransactionKind::Create, - }, - chain_id: None, - })) - } - // EIP2930 - // if only accesslist is set, and no eip1599 fees - (_, None, Some(access_list), None, None, None) => Some( - TypedTransactionRequest::EIP2930(EIP2930TransactionRequest { - nonce: nonce.unwrap_or_default(), - gas_price: gas_price.unwrap_or_default(), - gas_limit: gas.unwrap_or_default(), - value: value.unwrap_or_default(), - input: data.into_input().unwrap_or_default(), - kind: match to { - Some(to) => RpcTransactionKind::Call(to), - None => RpcTransactionKind::Create, - }, - chain_id: 0, - access_list, - }), - ), - // EIP1559 - // if 4844 fields missing - // gas_price, max_fee_per_gas, access_list, max_fee_per_blob_gas, blob_versioned_hashes, - // sidecar, - (None, _, _, None, None, None) => { - // Empty fields fall back to the canonical transaction schema. - Some(TypedTransactionRequest::EIP1559( - EIP1559TransactionRequest { - nonce: nonce.unwrap_or_default(), - max_fee_per_gas: max_fee_per_gas.unwrap_or_default(), - max_priority_fee_per_gas: max_priority_fee_per_gas.unwrap_or_default(), - gas_limit: gas.unwrap_or_default(), - value: value.unwrap_or_default(), - input: data.into_input().unwrap_or_default(), - kind: match to { - Some(to) => RpcTransactionKind::Call(to), - None => RpcTransactionKind::Create, - }, - chain_id: 0, - access_list: access_list.unwrap_or_default(), - }, - )) - } - // EIP4884 - // all blob fields required - ( - None, - _, - _, - Some(max_fee_per_blob_gas), - Some(blob_versioned_hashes), - Some(sidecar), - ) => { - // As per the EIP, we follow the same semantics as EIP-1559. - Some(TypedTransactionRequest::EIP4844( - EIP4844TransactionRequest { - chain_id: 0, - nonce: nonce.unwrap_or_default(), - max_priority_fee_per_gas: max_priority_fee_per_gas.unwrap_or_default(), - max_fee_per_gas: max_fee_per_gas.unwrap_or_default(), - gas_limit: gas.unwrap_or_default(), - value: value.unwrap_or_default(), - input: data.into_input().unwrap_or_default(), - kind: match to { - Some(to) => RpcTransactionKind::Call(to), - None => RpcTransactionKind::Create, - }, - access_list: access_list.unwrap_or_default(), - - // eip-4844 specific. - max_fee_per_blob_gas, - blob_versioned_hashes, - sidecar, - }, - )) - } - - _ => None, - }; - - // get typed transaction request - let transaction_request = match transaction { - Some(TypedTransactionRequest::Legacy(mut m)) => { - m.chain_id = Some(chain_id); - m.gas_limit = gas_limit; - m.gas_price = gas_price.unwrap(); - - TypedTransactionRequest::Legacy(m) - } - Some(TypedTransactionRequest::EIP2930(mut m)) => { - m.chain_id = chain_id; - m.gas_limit = gas_limit; - m.gas_price = gas_price.unwrap(); - - TypedTransactionRequest::EIP2930(m) - } - Some(TypedTransactionRequest::EIP1559(mut m)) => { - m.chain_id = chain_id; - m.gas_limit = gas_limit; - m.max_fee_per_gas = max_fee_per_gas.unwrap(); - - TypedTransactionRequest::EIP1559(m) - } - Some(TypedTransactionRequest::EIP4844(mut m)) => { - m.chain_id = chain_id; - m.gas_limit = gas_limit; - m.max_fee_per_gas = max_fee_per_gas.unwrap(); - - TypedTransactionRequest::EIP4844(m) - } - None => return Err(EthApiError::ConflictingFeeFieldsInRequest.into()), - }; - - // get raw transaction - let transaction = to_primitive_transaction(transaction_request) - .ok_or(SignError::InvalidTransactionRequest)?; + // // return error if not in signers + // if !ethereum.eth_signer.signers().contains(&from) { + // return Err(to_jsonrpsee_error_object( + // "From address not in signers", + // ETH_RPC_ERROR, + // )); + // } - // sign transaction - let signed_tx = ethereum - .eth_signer - .sign_transaction(transaction, from) - .map_err(|e| to_jsonrpsee_error_object(e, ETH_RPC_ERROR))?; + // let raw_evm_tx = { + // let mut working_set = WorkingSet::::new(ethereum.storage.clone()); + + // // set nonce if none + // if transaction_request.nonce.is_none() { + // let nonce = evm + // .get_transaction_count(from, None, &mut working_set) + // .unwrap_or_default(); + + // transaction_request.nonce = Some(nonce); + // } + + // // get current chain id + // let chain_id = evm + // .chain_id(&mut working_set) + // .expect("Failed to get chain id") + // .map(|id| id.to::()) + // .unwrap_or(1); + + // // get call request to estimate gas and gas prices + // let (call_request, _gas_price, _max_fee_per_gas) = + // get_call_request_and_params(from, chain_id, &transaction_request); + + // // estimate gas limit + // let gas_limit = U256::from( + // evm.eth_estimate_gas(call_request, None, &mut working_set)? + // .to::(), + // ); + + // let TransactionRequest { + // to, + // gas_price, + // max_fee_per_gas, + // max_priority_fee_per_gas, + // gas, + // value, + // input: data, + // nonce, + // mut access_list, + // max_fee_per_blob_gas, + // blob_versioned_hashes, + // sidecar, + // .. + // } = transaction_request; + + // // todo: remove this inlining after https://github.com/alloy-rs/alloy/pull/183#issuecomment-1928161285 + // let transaction = match ( + // gas_price, + // max_fee_per_gas, + // access_list.take(), + // max_fee_per_blob_gas, + // blob_versioned_hashes, + // sidecar, + // ) { + // // legacy transaction + // // gas price required + // (Some(_), None, None, None, None, None) => { + // Some(TypedTransactionRequest::Legacy(LegacyTransactionRequest { + // nonce: nonce.unwrap_or_default(), + // gas_price: gas_price.unwrap_or_default(), + // gas_limit: gas.unwrap_or_default(), + // value: value.unwrap_or_default(), + // input: data.into_input().unwrap_or_default(), + // kind: match to { + // Some(to) => RpcTransactionKind::Call(to), + // None => RpcTransactionKind::Create, + // }, + // chain_id: None, + // })) + // } + // // EIP2930 + // // if only accesslist is set, and no eip1599 fees + // (_, None, Some(access_list), None, None, None) => Some( + // TypedTransactionRequest::EIP2930(EIP2930TransactionRequest { + // nonce: nonce.unwrap_or_default(), + // gas_price: gas_price.unwrap_or_default(), + // gas_limit: gas.unwrap_or_default(), + // value: value.unwrap_or_default(), + // input: data.into_input().unwrap_or_default(), + // kind: match to { + // Some(to) => RpcTransactionKind::Call(to), + // None => RpcTransactionKind::Create, + // }, + // chain_id: 0, + // access_list, + // }), + // ), + // // EIP1559 + // // if 4844 fields missing + // // gas_price, max_fee_per_gas, access_list, max_fee_per_blob_gas, blob_versioned_hashes, + // // sidecar, + // (None, _, _, None, None, None) => { + // // Empty fields fall back to the canonical transaction schema. + // Some(TypedTransactionRequest::EIP1559( + // EIP1559TransactionRequest { + // nonce: nonce.unwrap_or_default(), + // max_fee_per_gas: max_fee_per_gas.unwrap_or_default(), + // max_priority_fee_per_gas: max_priority_fee_per_gas.unwrap_or_default(), + // gas_limit: gas.unwrap_or_default(), + // value: value.unwrap_or_default(), + // input: data.into_input().unwrap_or_default(), + // kind: match to { + // Some(to) => RpcTransactionKind::Call(to), + // None => RpcTransactionKind::Create, + // }, + // chain_id: 0, + // access_list: access_list.unwrap_or_default(), + // }, + // )) + // } + // // EIP4884 + // // all blob fields required + // ( + // None, + // _, + // _, + // Some(max_fee_per_blob_gas), + // Some(blob_versioned_hashes), + // Some(sidecar), + // ) => { + // // As per the EIP, we follow the same semantics as EIP-1559. + // Some(TypedTransactionRequest::EIP4844( + // EIP4844TransactionRequest { + // chain_id: 0, + // nonce: nonce.unwrap_or_default(), + // max_priority_fee_per_gas: max_priority_fee_per_gas.unwrap_or_default(), + // max_fee_per_gas: max_fee_per_gas.unwrap_or_default(), + // gas_limit: gas.unwrap_or_default(), + // value: value.unwrap_or_default(), + // input: data.into_input().unwrap_or_default(), + // kind: match to { + // Some(to) => RpcTransactionKind::Call(to), + // None => RpcTransactionKind::Create, + // }, + // access_list: access_list.unwrap_or_default(), + + // // eip-4844 specific. + // max_fee_per_blob_gas, + // blob_versioned_hashes, + // sidecar, + // }, + // )) + // } + + // _ => None, + // }; + + // // get typed transaction request + // let transaction_request = match transaction { + // Some(TypedTransactionRequest::Legacy(mut m)) => { + // m.chain_id = Some(chain_id); + // m.gas_limit = gas_limit; + // m.gas_price = gas_price.unwrap(); + + // TypedTransactionRequest::Legacy(m) + // } + // Some(TypedTransactionRequest::EIP2930(mut m)) => { + // m.chain_id = chain_id; + // m.gas_limit = gas_limit; + // m.gas_price = gas_price.unwrap(); + + // TypedTransactionRequest::EIP2930(m) + // } + // Some(TypedTransactionRequest::EIP1559(mut m)) => { + // m.chain_id = chain_id; + // m.gas_limit = gas_limit; + // m.max_fee_per_gas = max_fee_per_gas.unwrap(); + + // TypedTransactionRequest::EIP1559(m) + // } + // Some(TypedTransactionRequest::EIP4844(mut m)) => { + // m.chain_id = chain_id; + // m.gas_limit = gas_limit; + // m.max_fee_per_gas = max_fee_per_gas.unwrap(); + + // TypedTransactionRequest::EIP4844(m) + // } + // None => return Err(EthApiError::ConflictingFeeFieldsInRequest.into()), + // }; + + // // get raw transaction + // let transaction = to_primitive_transaction(transaction_request) + // .ok_or(SignError::InvalidTransactionRequest)?; + + // // sign transaction + // let signed_tx = ethereum + // .eth_signer + // .sign_transaction(transaction, from) + // .map_err(|e| to_jsonrpsee_error_object(e, ETH_RPC_ERROR))?; - RlpEvmTransaction { - rlp: signed_tx.envelope_encoded().to_vec(), - } - }; - let (tx_hash, raw_message) = ethereum - .make_raw_tx(raw_evm_tx) - .map_err(|e| to_jsonrpsee_error_object(e, ETH_RPC_ERROR))?; + // RlpEvmTransaction { + // rlp: signed_tx.envelope_encoded().to_vec(), + // } + // }; + // let (tx_hash, raw_message) = ethereum + // .make_raw_tx(raw_evm_tx) + // .map_err(|e| to_jsonrpsee_error_object(e, ETH_RPC_ERROR))?; - ethereum.add_messages(vec![raw_message]); + // ethereum.add_messages(vec![raw_message]); - Ok::<_, ErrorObjectOwned>(tx_hash) - })?; + // Ok::<_, ErrorObjectOwned>(tx_hash) + // })?; rpc.register_async_method( "debug_traceBlockByHash", @@ -872,39 +794,39 @@ fn register_rpc_methods( Ok(()) } -fn get_call_request_and_params( - from: Address, - chain_id: u64, - request: &TransactionRequest, -) -> (TransactionRequest, U256, U256) { - // TODO: we need an oracle to fetch the gas price of the current chain - // https://github.com/Sovereign-Labs/sovereign-sdk/issues/883 - let gas_price = request.gas_price.unwrap_or_default(); - let max_fee_per_gas = request.max_fee_per_gas.unwrap_or_default(); - - // TODO: Generate call request better according to the transaction type - // https://github.com/Sovereign-Labs/sovereign-sdk/issues/946 - let call_request = TransactionRequest { - from: Some(from), - to: request.to, - gas: request.gas, - gas_price: Some(U256::from(gas_price)), - max_fee_per_gas: Some(U256::from(max_fee_per_gas)), - value: request.value, - input: request.input.clone(), - nonce: request.nonce, - chain_id: Some(U64::from(chain_id)), - access_list: request.access_list.clone(), - max_priority_fee_per_gas: Some(U256::from(max_fee_per_gas)), - transaction_type: None, - blob_versioned_hashes: None, - max_fee_per_blob_gas: None, - sidecar: None, - other: OtherFields::default(), - }; - - (call_request, gas_price, max_fee_per_gas) -} +// fn get_call_request_and_params( +// from: Address, +// chain_id: u64, +// request: &TransactionRequest, +// ) -> (TransactionRequest, U256, U256) { +// // TODO: we need an oracle to fetch the gas price of the current chain +// // https://github.com/Sovereign-Labs/sovereign-sdk/issues/883 +// let gas_price = request.gas_price.unwrap_or_default(); +// let max_fee_per_gas = request.max_fee_per_gas.unwrap_or_default(); + +// // TODO: Generate call request better according to the transaction type +// // https://github.com/Sovereign-Labs/sovereign-sdk/issues/946 +// let call_request = TransactionRequest { +// from: Some(from), +// to: request.to, +// gas: request.gas, +// gas_price: Some(U256::from(gas_price)), +// max_fee_per_gas: Some(U256::from(max_fee_per_gas)), +// value: request.value, +// input: request.input.clone(), +// nonce: request.nonce, +// chain_id: Some(U64::from(chain_id)), +// access_list: request.access_list.clone(), +// max_priority_fee_per_gas: Some(U256::from(max_fee_per_gas)), +// transaction_type: None, +// blob_versioned_hashes: None, +// max_fee_per_blob_gas: None, +// sidecar: None, +// other: OtherFields::default(), +// }; + +// (call_request, gas_price, max_fee_per_gas) +// } pub fn get_latest_git_tag() -> Result { let latest_tag_commit = Command::new("git") diff --git a/module-system/module-implementations/sov-evm/Cargo.toml b/crates/evm/Cargo.toml similarity index 83% rename from module-system/module-implementations/sov-evm/Cargo.toml rename to crates/evm/Cargo.toml index aabdd040c..4aae72c7e 100644 --- a/module-system/module-implementations/sov-evm/Cargo.toml +++ b/crates/evm/Cargo.toml @@ -1,6 +1,6 @@ [package] -name = "sov-evm" -description = "EVM Module for the Sovereign SDK" +name = "citrea-evm" +description = "EVM Module of Citrea" authors = { workspace = true } edition = { workspace = true } homepage = { workspace = true } @@ -12,8 +12,8 @@ readme = "README.md" publish = false [dependencies] -sov-modules-api = { path = "../../sov-modules-api", version = "0.3" } -sov-state = { path = "../../sov-state", version = "0.3" } +sov-modules-api = { path = "../sovereign-sdk/module-system/sov-modules-api", version = "0.3" } +sov-state = { path = "../sovereign-sdk/module-system/sov-state", version = "0.3" } anyhow = { workspace = true } thiserror = { workspace = true } @@ -61,12 +61,12 @@ secp256k1 = { workspace = true } itertools = "0.11.0" [dev-dependencies] -sov-evm = { path = ".", features = ["smart_contracts"] } +citrea-evm = { path = ".", features = ["smart_contracts"] } tokio = { workspace = true } tempfile = { workspace = true } bytes = { workspace = true } rand = { workspace = true } -sov-prover-storage-manager = { path = "../../../full-node/sov-prover-storage-manager", features = [ +sov-prover-storage-manager = { path = "../sovereign-sdk/full-node/sov-prover-storage-manager", features = [ "test-utils", ] } diff --git a/crates/evm/README.md b/crates/evm/README.md new file mode 100644 index 000000000..085a1c052 --- /dev/null +++ b/crates/evm/README.md @@ -0,0 +1,16 @@ +## Citrea EVM + +This crate is key to Citrea's compatibility with the EVM, while utilizing the logic implemented by the Sovereign SDK. The key features related to this crate are: + +- Implementation of EVM logic & methods on top of Sovereign SDK's Module API + - The way EVM-related parts work, and its implementation on `sov-modules-api` for the Sovereign SDK & rollup to function properly. +- Execution, DB, Account Handlers + - A separate EVM-DB, account management of the chain and its execution +- The system contract + - A system contract that keeps track of L1. It will also play an important role for our bridge, [Clementine](https://github.com/chainwayxyz/clementine). +- Tracing methods for transactions + - Used in Call/Gas simulations for the EVM (compatible with EIP-1559), mostly. +- Extensive EVM tests + - These tests are independent from [Hive](https://github.com/ethereum/hive) tests of Ethereum Foundation. We maintain them in the `hive` folder. + +We -mostly- use the types that are developed for [Reth](https://github.com/paradigmxyz/reth), and update them on a regular basis. diff --git a/module-system/module-implementations/sov-evm/src/call.rs b/crates/evm/src/call.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/call.rs rename to crates/evm/src/call.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/call.rs b/crates/evm/src/evm/call.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/call.rs rename to crates/evm/src/evm/call.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/conversions.rs b/crates/evm/src/evm/conversions.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/conversions.rs rename to crates/evm/src/evm/conversions.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/db.rs b/crates/evm/src/evm/db.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/db.rs rename to crates/evm/src/evm/db.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/db_commit.rs b/crates/evm/src/evm/db_commit.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/db_commit.rs rename to crates/evm/src/evm/db_commit.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/db_init.rs b/crates/evm/src/evm/db_init.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/db_init.rs rename to crates/evm/src/evm/db_init.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/error/mod.rs b/crates/evm/src/evm/error/mod.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/error/mod.rs rename to crates/evm/src/evm/error/mod.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/error/pool.rs b/crates/evm/src/evm/error/pool.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/error/pool.rs rename to crates/evm/src/evm/error/pool.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/error/result.rs b/crates/evm/src/evm/error/result.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/error/result.rs rename to crates/evm/src/evm/error/result.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/error/rpc.rs b/crates/evm/src/evm/error/rpc.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/error/rpc.rs rename to crates/evm/src/evm/error/rpc.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/executor.rs b/crates/evm/src/evm/executor.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/executor.rs rename to crates/evm/src/evm/executor.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/handler.rs b/crates/evm/src/evm/handler.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/handler.rs rename to crates/evm/src/evm/handler.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/mod.rs b/crates/evm/src/evm/mod.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/mod.rs rename to crates/evm/src/evm/mod.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/primitive_types.rs b/crates/evm/src/evm/primitive_types.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/primitive_types.rs rename to crates/evm/src/evm/primitive_types.rs diff --git a/module-system/module-implementations/sov-evm/src/evm/system_contracts/.gitignore b/crates/evm/src/evm/system_contracts/.gitignore similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/system_contracts/.gitignore rename to crates/evm/src/evm/system_contracts/.gitignore diff --git a/module-system/module-implementations/sov-evm/src/evm/system_contracts/README.md b/crates/evm/src/evm/system_contracts/README.md similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/system_contracts/README.md rename to crates/evm/src/evm/system_contracts/README.md diff --git a/module-system/module-implementations/sov-evm/src/evm/system_contracts/foundry.toml b/crates/evm/src/evm/system_contracts/foundry.toml similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/system_contracts/foundry.toml rename to crates/evm/src/evm/system_contracts/foundry.toml diff --git a/module-system/module-implementations/sov-evm/src/evm/system_contracts/lib/Ownable.sol b/crates/evm/src/evm/system_contracts/lib/Ownable.sol similarity index 99% rename from module-system/module-implementations/sov-evm/src/evm/system_contracts/lib/Ownable.sol rename to crates/evm/src/evm/system_contracts/lib/Ownable.sol index 1edf917d4..31360148c 100644 --- a/module-system/module-implementations/sov-evm/src/evm/system_contracts/lib/Ownable.sol +++ b/crates/evm/src/evm/system_contracts/lib/Ownable.sol @@ -31,11 +31,11 @@ abstract contract Ownable { pendingOwner = newOwner; emit OwnershipTransferRequested(owner, newOwner); } - + function acceptOwnership() public onlyPendingOwner { address old_owner = owner; owner = pendingOwner; pendingOwner = address(0); emit OwnershipTransferred(old_owner, pendingOwner); } -} \ No newline at end of file +} diff --git a/crates/evm/src/evm/system_contracts/lib/forge-std b/crates/evm/src/evm/system_contracts/lib/forge-std new file mode 160000 index 000000000..bb4ceea94 --- /dev/null +++ b/crates/evm/src/evm/system_contracts/lib/forge-std @@ -0,0 +1 @@ +Subproject commit bb4ceea94d6f10eeb5b41dc2391c6c8bf8e734ef diff --git a/module-system/module-implementations/sov-evm/src/evm/system_contracts/src/L1BlockHashList.sol b/crates/evm/src/evm/system_contracts/src/L1BlockHashList.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/system_contracts/src/L1BlockHashList.sol rename to crates/evm/src/evm/system_contracts/src/L1BlockHashList.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/system_contracts/src/interfaces/IL1BlockHashList.sol b/crates/evm/src/evm/system_contracts/src/interfaces/IL1BlockHashList.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/system_contracts/src/interfaces/IL1BlockHashList.sol rename to crates/evm/src/evm/system_contracts/src/interfaces/IL1BlockHashList.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/system_contracts/test/L1BlockHashList.t.sol b/crates/evm/src/evm/system_contracts/test/L1BlockHashList.t.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/system_contracts/test/L1BlockHashList.t.sol rename to crates/evm/src/evm/system_contracts/test/L1BlockHashList.t.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/system_contracts/test/Ownable.t.sol b/crates/evm/src/evm/system_contracts/test/Ownable.t.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/system_contracts/test/Ownable.t.sol rename to crates/evm/src/evm/system_contracts/test/Ownable.t.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/BlockHash.abi b/crates/evm/src/evm/test_data/BlockHash.abi similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/BlockHash.abi rename to crates/evm/src/evm/test_data/BlockHash.abi diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/BlockHash.bin b/crates/evm/src/evm/test_data/BlockHash.bin similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/BlockHash.bin rename to crates/evm/src/evm/test_data/BlockHash.bin diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/BlockHash.sol b/crates/evm/src/evm/test_data/BlockHash.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/BlockHash.sol rename to crates/evm/src/evm/test_data/BlockHash.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Caller.abi b/crates/evm/src/evm/test_data/Caller.abi similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Caller.abi rename to crates/evm/src/evm/test_data/Caller.abi diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Caller.bin b/crates/evm/src/evm/test_data/Caller.bin similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Caller.bin rename to crates/evm/src/evm/test_data/Caller.bin diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Caller.sol b/crates/evm/src/evm/test_data/Caller.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Caller.sol rename to crates/evm/src/evm/test_data/Caller.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Coinbase.abi b/crates/evm/src/evm/test_data/Coinbase.abi similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Coinbase.abi rename to crates/evm/src/evm/test_data/Coinbase.abi diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Coinbase.bin b/crates/evm/src/evm/test_data/Coinbase.bin similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Coinbase.bin rename to crates/evm/src/evm/test_data/Coinbase.bin diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Coinbase.sol b/crates/evm/src/evm/test_data/Coinbase.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Coinbase.sol rename to crates/evm/src/evm/test_data/Coinbase.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/ISimpleStorage.abi b/crates/evm/src/evm/test_data/ISimpleStorage.abi similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/ISimpleStorage.abi rename to crates/evm/src/evm/test_data/ISimpleStorage.abi diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/ISimpleStorage.bin b/crates/evm/src/evm/test_data/ISimpleStorage.bin similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/ISimpleStorage.bin rename to crates/evm/src/evm/test_data/ISimpleStorage.bin diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Logs.abi b/crates/evm/src/evm/test_data/Logs.abi similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Logs.abi rename to crates/evm/src/evm/test_data/Logs.abi diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Logs.bin b/crates/evm/src/evm/test_data/Logs.bin similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Logs.bin rename to crates/evm/src/evm/test_data/Logs.bin diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Logs.sol b/crates/evm/src/evm/test_data/Logs.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Logs.sol rename to crates/evm/src/evm/test_data/Logs.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Payable.abi b/crates/evm/src/evm/test_data/Payable.abi similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Payable.abi rename to crates/evm/src/evm/test_data/Payable.abi diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Payable.bin b/crates/evm/src/evm/test_data/Payable.bin similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Payable.bin rename to crates/evm/src/evm/test_data/Payable.bin diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Payable.sol b/crates/evm/src/evm/test_data/Payable.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Payable.sol rename to crates/evm/src/evm/test_data/Payable.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/SelfDestructor.abi b/crates/evm/src/evm/test_data/SelfDestructor.abi similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/SelfDestructor.abi rename to crates/evm/src/evm/test_data/SelfDestructor.abi diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/SelfDestructor.bin b/crates/evm/src/evm/test_data/SelfDestructor.bin similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/SelfDestructor.bin rename to crates/evm/src/evm/test_data/SelfDestructor.bin diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/SelfDestructor.sol b/crates/evm/src/evm/test_data/SelfDestructor.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/SelfDestructor.sol rename to crates/evm/src/evm/test_data/SelfDestructor.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/SimpleStorage.abi b/crates/evm/src/evm/test_data/SimpleStorage.abi similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/SimpleStorage.abi rename to crates/evm/src/evm/test_data/SimpleStorage.abi diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/SimpleStorage.bin b/crates/evm/src/evm/test_data/SimpleStorage.bin similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/SimpleStorage.bin rename to crates/evm/src/evm/test_data/SimpleStorage.bin diff --git a/module-system/module-implementations/sov-evm/src/evm/test_data/Store.sol b/crates/evm/src/evm/test_data/Store.sol similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/test_data/Store.sol rename to crates/evm/src/evm/test_data/Store.sol diff --git a/module-system/module-implementations/sov-evm/src/evm/tests.rs b/crates/evm/src/evm/tests.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/evm/tests.rs rename to crates/evm/src/evm/tests.rs diff --git a/module-system/module-implementations/sov-evm/src/genesis.rs b/crates/evm/src/genesis.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/genesis.rs rename to crates/evm/src/genesis.rs diff --git a/module-system/module-implementations/sov-evm/src/hooks.rs b/crates/evm/src/hooks.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/hooks.rs rename to crates/evm/src/hooks.rs diff --git a/module-system/module-implementations/sov-evm/src/lib.rs b/crates/evm/src/lib.rs similarity index 98% rename from module-system/module-implementations/sov-evm/src/lib.rs rename to crates/evm/src/lib.rs index 214778f43..35c20d502 100644 --- a/module-system/module-implementations/sov-evm/src/lib.rs +++ b/crates/evm/src/lib.rs @@ -51,7 +51,7 @@ pub(crate) struct PendingTransaction { pub(crate) receipt: Receipt, } -/// The sov-evm module provides compatibility with the EVM. +/// The citrea-evm module provides compatibility with the EVM. #[allow(dead_code)] // #[cfg_attr(feature = "native", derive(sov_modules_api::ModuleCallJsonSchema))] #[derive(ModuleInfo, Clone)] diff --git a/module-system/module-implementations/sov-evm/src/provider_functions.rs b/crates/evm/src/provider_functions.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/provider_functions.rs rename to crates/evm/src/provider_functions.rs diff --git a/module-system/module-implementations/sov-evm/src/query.rs b/crates/evm/src/query.rs similarity index 99% rename from module-system/module-implementations/sov-evm/src/query.rs rename to crates/evm/src/query.rs index 050656ed6..5c2dc18a7 100644 --- a/module-system/module-implementations/sov-evm/src/query.rs +++ b/crates/evm/src/query.rs @@ -984,7 +984,7 @@ impl Evm { } /// Handler for: `eth_getTransactionByHash` - /// RPC method is moved to sequencer and sov-ethereum modules + /// RPC method is moved to sequencer and ethereum-rpc modules pub fn get_transaction_by_hash( &self, hash: reth_primitives::B256, diff --git a/module-system/module-implementations/sov-evm/src/rpc_helpers/filter.rs b/crates/evm/src/rpc_helpers/filter.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/rpc_helpers/filter.rs rename to crates/evm/src/rpc_helpers/filter.rs diff --git a/module-system/module-implementations/sov-evm/src/rpc_helpers/log_utils.rs b/crates/evm/src/rpc_helpers/log_utils.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/rpc_helpers/log_utils.rs rename to crates/evm/src/rpc_helpers/log_utils.rs diff --git a/module-system/module-implementations/sov-evm/src/rpc_helpers/mod.rs b/crates/evm/src/rpc_helpers/mod.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/rpc_helpers/mod.rs rename to crates/evm/src/rpc_helpers/mod.rs diff --git a/module-system/module-implementations/sov-evm/src/rpc_helpers/responses.rs b/crates/evm/src/rpc_helpers/responses.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/rpc_helpers/responses.rs rename to crates/evm/src/rpc_helpers/responses.rs diff --git a/module-system/module-implementations/sov-evm/src/rpc_helpers/tracing_utils.rs b/crates/evm/src/rpc_helpers/tracing_utils.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/rpc_helpers/tracing_utils.rs rename to crates/evm/src/rpc_helpers/tracing_utils.rs diff --git a/module-system/module-implementations/sov-evm/src/signer/mod.rs b/crates/evm/src/signer/mod.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/signer/mod.rs rename to crates/evm/src/signer/mod.rs diff --git a/module-system/module-implementations/sov-evm/src/smart_contracts/blockhash_contract.rs b/crates/evm/src/smart_contracts/blockhash_contract.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/smart_contracts/blockhash_contract.rs rename to crates/evm/src/smart_contracts/blockhash_contract.rs diff --git a/module-system/module-implementations/sov-evm/src/smart_contracts/caller_contract.rs b/crates/evm/src/smart_contracts/caller_contract.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/smart_contracts/caller_contract.rs rename to crates/evm/src/smart_contracts/caller_contract.rs diff --git a/module-system/module-implementations/sov-evm/src/smart_contracts/coinbase_contract.rs b/crates/evm/src/smart_contracts/coinbase_contract.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/smart_contracts/coinbase_contract.rs rename to crates/evm/src/smart_contracts/coinbase_contract.rs diff --git a/module-system/module-implementations/sov-evm/src/smart_contracts/logs_contract.rs b/crates/evm/src/smart_contracts/logs_contract.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/smart_contracts/logs_contract.rs rename to crates/evm/src/smart_contracts/logs_contract.rs diff --git a/module-system/module-implementations/sov-evm/src/smart_contracts/mod.rs b/crates/evm/src/smart_contracts/mod.rs similarity index 93% rename from module-system/module-implementations/sov-evm/src/smart_contracts/mod.rs rename to crates/evm/src/smart_contracts/mod.rs index c60d3c8ea..e68a5ef13 100644 --- a/module-system/module-implementations/sov-evm/src/smart_contracts/mod.rs +++ b/crates/evm/src/smart_contracts/mod.rs @@ -1,4 +1,4 @@ -//! Includes the smart contracts used by the sov-evm and the rollup itself, extensively for testing. +//! Includes the smart contracts used by the citrea-evm and the rollup itself, extensively for testing. use std::any::Any; use std::path::PathBuf; diff --git a/module-system/module-implementations/sov-evm/src/smart_contracts/payable_contract.rs b/crates/evm/src/smart_contracts/payable_contract.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/smart_contracts/payable_contract.rs rename to crates/evm/src/smart_contracts/payable_contract.rs diff --git a/module-system/module-implementations/sov-evm/src/smart_contracts/self_destructor_contract.rs b/crates/evm/src/smart_contracts/self_destructor_contract.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/smart_contracts/self_destructor_contract.rs rename to crates/evm/src/smart_contracts/self_destructor_contract.rs diff --git a/module-system/module-implementations/sov-evm/src/smart_contracts/simple_storage_contract.rs b/crates/evm/src/smart_contracts/simple_storage_contract.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/smart_contracts/simple_storage_contract.rs rename to crates/evm/src/smart_contracts/simple_storage_contract.rs diff --git a/module-system/module-implementations/sov-evm/src/tests/call_tests.rs b/crates/evm/src/tests/call_tests.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/tests/call_tests.rs rename to crates/evm/src/tests/call_tests.rs diff --git a/module-system/module-implementations/sov-evm/src/tests/cfg_tests.rs b/crates/evm/src/tests/cfg_tests.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/tests/cfg_tests.rs rename to crates/evm/src/tests/cfg_tests.rs diff --git a/module-system/module-implementations/sov-evm/src/tests/genesis_tests.rs b/crates/evm/src/tests/genesis_tests.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/tests/genesis_tests.rs rename to crates/evm/src/tests/genesis_tests.rs diff --git a/module-system/module-implementations/sov-evm/src/tests/hooks_tests.rs b/crates/evm/src/tests/hooks_tests.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/tests/hooks_tests.rs rename to crates/evm/src/tests/hooks_tests.rs diff --git a/module-system/module-implementations/sov-evm/src/tests/mod.rs b/crates/evm/src/tests/mod.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/tests/mod.rs rename to crates/evm/src/tests/mod.rs diff --git a/module-system/module-implementations/sov-evm/src/tests/queries/basic_queries.rs b/crates/evm/src/tests/queries/basic_queries.rs similarity index 99% rename from module-system/module-implementations/sov-evm/src/tests/queries/basic_queries.rs rename to crates/evm/src/tests/queries/basic_queries.rs index 8b32dd52b..c354886be 100644 --- a/module-system/module-implementations/sov-evm/src/tests/queries/basic_queries.rs +++ b/crates/evm/src/tests/queries/basic_queries.rs @@ -325,7 +325,7 @@ fn call_test() { working_set.unset_archival_version(); // TODO: Test these even further, to the extreme. - // https://github.com/chainwayxyz/secret-sovereign-sdk/issues/134 + // https://github.com/chainwayxyz/citrea/issues/134 } fn check_against_third_block(block: &Rich) { diff --git a/module-system/module-implementations/sov-evm/src/tests/queries/estimate_gas_tests.rs b/crates/evm/src/tests/queries/estimate_gas_tests.rs similarity index 99% rename from module-system/module-implementations/sov-evm/src/tests/queries/estimate_gas_tests.rs rename to crates/evm/src/tests/queries/estimate_gas_tests.rs index d3990973e..1b59a61b6 100644 --- a/module-system/module-implementations/sov-evm/src/tests/queries/estimate_gas_tests.rs +++ b/crates/evm/src/tests/queries/estimate_gas_tests.rs @@ -219,7 +219,7 @@ fn test_tx_request_fields_gas() { }]) .into(), // This should actually be 0x6e66 - // See: https://github.com/chainwayxyz/secret-sovereign-sdk/issues/272 + // See: https://github.com/chainwayxyz/citrea/issues/272 gas_used: Uint::from_str("0x6601").unwrap() } ); diff --git a/module-system/module-implementations/sov-evm/src/tests/queries/evm_call_tests.rs b/crates/evm/src/tests/queries/evm_call_tests.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/tests/queries/evm_call_tests.rs rename to crates/evm/src/tests/queries/evm_call_tests.rs diff --git a/module-system/module-implementations/sov-evm/src/tests/queries/log_tests.rs b/crates/evm/src/tests/queries/log_tests.rs similarity index 99% rename from module-system/module-implementations/sov-evm/src/tests/queries/log_tests.rs rename to crates/evm/src/tests/queries/log_tests.rs index 2d00bb1dd..89571b56c 100644 --- a/module-system/module-implementations/sov-evm/src/tests/queries/log_tests.rs +++ b/crates/evm/src/tests/queries/log_tests.rs @@ -350,7 +350,7 @@ fn log_filter_test_with_range() { #[test] fn test_log_limits() { - // sov_demo_rollup::initialize_logging(); + // citrea::initialize_logging(); // bigger block is needed to be able to include all the transactions let (config, dev_signer, contract_addr) = get_evm_config( diff --git a/module-system/module-implementations/sov-evm/src/tests/queries/mod.rs b/crates/evm/src/tests/queries/mod.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/tests/queries/mod.rs rename to crates/evm/src/tests/queries/mod.rs diff --git a/module-system/module-implementations/sov-evm/src/tests/test_signer.rs b/crates/evm/src/tests/test_signer.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/tests/test_signer.rs rename to crates/evm/src/tests/test_signer.rs diff --git a/module-system/module-implementations/sov-evm/src/tests/tx_tests.rs b/crates/evm/src/tests/tx_tests.rs similarity index 100% rename from module-system/module-implementations/sov-evm/src/tests/tx_tests.rs rename to crates/evm/src/tests/tx_tests.rs diff --git a/full-node/sequencer-client/Cargo.toml b/crates/sequencer-client/Cargo.toml similarity index 91% rename from full-node/sequencer-client/Cargo.toml rename to crates/sequencer-client/Cargo.toml index 27c08f07e..1c662cf00 100644 --- a/full-node/sequencer-client/Cargo.toml +++ b/crates/sequencer-client/Cargo.toml @@ -12,7 +12,7 @@ publish = false resolver = "2" [dependencies] -sov-rollup-interface = { path = "../../rollup-interface" } +sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface" } anyhow = { workspace = true } tracing = { workspace = true } diff --git a/crates/sequencer-client/README.md b/crates/sequencer-client/README.md new file mode 100644 index 000000000..bd4d4e45f --- /dev/null +++ b/crates/sequencer-client/README.md @@ -0,0 +1,3 @@ +## Sequencer Client + +An HTTP client to connect to the [Citrea Sequencer](../sequencer/README.md), used by the full nodes, along with some utils for Soft Batches. diff --git a/full-node/sequencer-client/src/lib.rs b/crates/sequencer-client/src/lib.rs similarity index 82% rename from full-node/sequencer-client/src/lib.rs rename to crates/sequencer-client/src/lib.rs index 8508e01c1..63535be6e 100644 --- a/full-node/sequencer-client/src/lib.rs +++ b/crates/sequencer-client/src/lib.rs @@ -27,11 +27,11 @@ impl SequencerClient { pub async fn get_soft_batch( &self, num: u64, - ) -> anyhow::Result>> { - let res: Result>, jsonrpsee::core::Error> = - self.client - .request("ledger_getSoftBatchByNumber", rpc_params![num]) - .await; + ) -> anyhow::Result> { + let res: Result, jsonrpsee::core::Error> = self + .client + .request("ledger_getSoftBatchByNumber", rpc_params![num]) + .await; match res { Ok(res) => Ok(res), @@ -68,11 +68,12 @@ impl SequencerClient { } #[derive(Deserialize, Debug, Clone)] -pub struct GetSoftBatchResponse> { +pub struct GetSoftBatchResponse { #[serde(with = "hex::serde")] pub hash: [u8; 32], pub da_slot_height: u64, - pub da_slot_hash: Hash, + #[serde(with = "hex::serde")] + pub da_slot_hash: [u8; 32], #[serde(skip_serializing_if = "Option::is_none")] pub txs: Option>>, #[serde(with = "hex::serde")] @@ -86,12 +87,12 @@ pub struct GetSoftBatchResponse> { pub l1_fee_rate: u64, } -impl> From> for SignedSoftConfirmationBatch { - fn from(val: GetSoftBatchResponse) -> Self { +impl From for SignedSoftConfirmationBatch { + fn from(val: GetSoftBatchResponse) -> Self { SignedSoftConfirmationBatch::new( val.hash, val.da_slot_height, - val.da_slot_hash.into(), + val.da_slot_hash, val.pre_state_root, val.l1_fee_rate, val.txs.unwrap_or_default(), diff --git a/full-node/chainway-sequencer/Cargo.toml b/crates/sequencer/Cargo.toml similarity index 58% rename from full-node/chainway-sequencer/Cargo.toml rename to crates/sequencer/Cargo.toml index a0edeb3c5..9984de5b2 100644 --- a/full-node/chainway-sequencer/Cargo.toml +++ b/crates/sequencer/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "chainway-sequencer" +name = "citrea-sequencer" authors = { workspace = true } edition = { workspace = true } homepage = { workspace = true } @@ -12,7 +12,7 @@ publish = false resolver = "2" [dependencies] -bitcoin-da = { path = "../../adapters/bitcoin" } +bitcoin-da = { path = "../bitcoin-da" } anyhow = { workspace = true } tracing = { workspace = true } jsonrpsee = { workspace = true, features = ["http-client", "server"] } @@ -39,23 +39,21 @@ ethers = { workspace = true } tokio = { workspace = true } schnellru = "0.2.1" -sov-rollup-interface = { path = "../../rollup-interface", features = [ +sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface", features = [ "native", ] } -sov-evm = { path = "../../module-system/module-implementations/sov-evm" } -sov-db = { path = "../db/sov-db", version = "0.3" } +citrea-evm = { path = "../evm" } +sov-db = { path = "../sovereign-sdk/full-node/db/sov-db", version = "0.3" } -sov-stf-runner = { path = "../sov-stf-runner" } +sov-stf-runner = { path = "../sovereign-sdk/full-node/sov-stf-runner" } -sov-modules-stf-blueprint = { path = "../../module-system/sov-modules-stf-blueprint" } +sov-modules-stf-blueprint = { path = "../sovereign-sdk/module-system/sov-modules-stf-blueprint" } -citrea-stf = { path = "../../examples/demo-rollup/citrea-stf", features = [ - "native", -] } -sov-modules-api = { path = "../../module-system/sov-modules-api" } -sov-accounts = { path = "../../module-system/module-implementations/sov-accounts" } -sov-state = { path = "../../module-system/sov-state" } -sov-mock-da = { path = "../../adapters/mock-da" } +citrea-stf = { path = "../citrea-stf", features = ["native"] } +sov-modules-api = { path = "../sovereign-sdk/module-system/sov-modules-api" } +sov-accounts = { path = "../sovereign-sdk/module-system/module-implementations/sov-accounts" } +sov-state = { path = "../sovereign-sdk/module-system/sov-state" } +sov-mock-da = { path = "../sovereign-sdk/adapters/mock-da" } hex = { workspace = true } [dev-dependencies] @@ -65,4 +63,4 @@ tempfile = { workspace = true } [features] default = [] local = [] -native = ["citrea-stf/native", "sov-evm/native"] +native = ["citrea-stf/native", "citrea-evm/native"] diff --git a/crates/sequencer/README.md b/crates/sequencer/README.md new file mode 100644 index 000000000..c4b5381e3 --- /dev/null +++ b/crates/sequencer/README.md @@ -0,0 +1,7 @@ +## Sequencer + +This crate defines the behaviour of Citrea sequencer. + +The crate is also responsible for Citrea's mempool and serving necessary information for full nodes to sync. + +Contrary to full nodes, the `CitreaSequencer` does not use the `StateTransitionFunction::apply_soft_batch` function, instead it drives the [`State Transition Function`](/crates/citrea-stf/README.md) using its inner functions. This gives the sequencer to see the results of transactions, without making a pending soft confirmation available to other nodes. diff --git a/full-node/chainway-sequencer/src/commitment_controller.rs b/crates/sequencer/src/commitment_controller.rs similarity index 100% rename from full-node/chainway-sequencer/src/commitment_controller.rs rename to crates/sequencer/src/commitment_controller.rs diff --git a/full-node/chainway-sequencer/src/config.rs b/crates/sequencer/src/config.rs similarity index 100% rename from full-node/chainway-sequencer/src/config.rs rename to crates/sequencer/src/config.rs diff --git a/full-node/chainway-sequencer/src/db_provider/mod.rs b/crates/sequencer/src/db_provider/mod.rs similarity index 99% rename from full-node/chainway-sequencer/src/db_provider/mod.rs rename to crates/sequencer/src/db_provider/mod.rs index 1a812cfc6..f67bd8549 100644 --- a/full-node/chainway-sequencer/src/db_provider/mod.rs +++ b/crates/sequencer/src/db_provider/mod.rs @@ -1,3 +1,4 @@ +use citrea_evm::{Evm, EvmChainConfig}; use reth_db::models::StoredBlockBodyIndices; use reth_interfaces::provider::ProviderResult; use reth_primitives::{ @@ -12,7 +13,6 @@ use reth_provider::{ }; use reth_rpc_types::{Block, BlockTransactions}; use reth_trie::updates::TrieUpdates; -use sov_evm::{Evm, EvmChainConfig}; use sov_modules_api::WorkingSet; #[derive(Clone)] diff --git a/full-node/chainway-sequencer/src/lib.rs b/crates/sequencer/src/lib.rs similarity index 78% rename from full-node/chainway-sequencer/src/lib.rs rename to crates/sequencer/src/lib.rs index bc0f2ac7e..f5d1c64fa 100644 --- a/full-node/chainway-sequencer/src/lib.rs +++ b/crates/sequencer/src/lib.rs @@ -7,4 +7,4 @@ mod sequencer; mod utils; pub use config::SequencerConfig; -pub use sequencer::ChainwaySequencer; +pub use sequencer::CitreaSequencer; diff --git a/full-node/chainway-sequencer/src/mempool.rs b/crates/sequencer/src/mempool.rs similarity index 100% rename from full-node/chainway-sequencer/src/mempool.rs rename to crates/sequencer/src/mempool.rs diff --git a/full-node/chainway-sequencer/src/rpc.rs b/crates/sequencer/src/rpc.rs similarity index 99% rename from full-node/chainway-sequencer/src/rpc.rs rename to crates/sequencer/src/rpc.rs index c4536e3e5..7640af45e 100644 --- a/full-node/chainway-sequencer/src/rpc.rs +++ b/crates/sequencer/src/rpc.rs @@ -1,12 +1,12 @@ use std::sync::Arc; +use citrea_evm::Evm; use futures::channel::mpsc::UnboundedSender; use jsonrpsee::types::ErrorObjectOwned; use jsonrpsee::RpcModule; use reth_primitives::{Bytes, FromRecoveredPooledTransaction, IntoRecoveredTransaction, B256}; use reth_rpc_types_compat::transaction::from_recovered; use reth_transaction_pool::{EthPooledTransaction, TransactionOrigin, TransactionPool}; -use sov_evm::Evm; use sov_mock_da::{MockAddress, MockDaService}; use sov_modules_api::utils::to_jsonrpsee_error_object; use sov_modules_api::WorkingSet; diff --git a/full-node/chainway-sequencer/src/sequencer.rs b/crates/sequencer/src/sequencer.rs similarity index 97% rename from full-node/chainway-sequencer/src/sequencer.rs rename to crates/sequencer/src/sequencer.rs index 4cc28be54..aeda67044 100644 --- a/full-node/chainway-sequencer/src/sequencer.rs +++ b/crates/sequencer/src/sequencer.rs @@ -4,6 +4,7 @@ use std::sync::Arc; use std::vec; use borsh::ser::BorshSerialize; +use citrea_evm::{CallMessage, RlpEvmTransaction}; use citrea_stf::runtime::Runtime; use digest::Digest; use futures::channel::mpsc::{unbounded, UnboundedReceiver, UnboundedSender}; @@ -16,7 +17,6 @@ use sov_accounts::Accounts; use sov_accounts::Response::{AccountEmpty, AccountExists}; use sov_db::ledger_db::{LedgerDB, SlotCommit}; use sov_db::schema::types::{BatchNumber, SlotNumber}; -use sov_evm::{CallMessage, RlpEvmTransaction}; use sov_modules_api::hooks::HookSoftConfirmationInfo; use sov_modules_api::transaction::Transaction; use sov_modules_api::{ @@ -40,7 +40,7 @@ use crate::rpc::{create_rpc_module, RpcContext}; type StateRoot = >::StateRoot; -pub struct ChainwaySequencer +pub struct CitreaSequencer where C: Context, Da: DaService, @@ -65,7 +65,7 @@ where listen_address: SocketAddr, } -impl ChainwaySequencer +impl CitreaSequencer where C: Context, Da: DaService, @@ -180,7 +180,7 @@ where if (self.l2_force_block_rx.next().await).is_some() { // best txs with base fee // get base fee from last blocks => header => next base fee() function - let cfg: sov_evm::EvmChainConfig = self.db_provider.cfg(); + let cfg: citrea_evm::EvmChainConfig = self.db_provider.cfg(); let base_fee = self .db_provider @@ -213,7 +213,7 @@ where let call_txs = CallMessage { txs: rlp_txs }; let raw_message = - as EncodeCall>>::encode_call(call_txs); + as EncodeCall>>::encode_call(call_txs); let signed_blob = self.make_blob(raw_message); let mut prev_l1_height = self @@ -334,7 +334,7 @@ where .expect("Sequencer: Failed to get head soft batch") { Some((l2_height, _)) => l2_height.0 + 1, - None => 0, + None => 1, }; let last_finalized_block = self .da_service @@ -398,7 +398,6 @@ where self.storage_manager .save_change_set_l2(l2_height, slot_result.change_set)?; - tracing::debug!("Finalizing l2 height: {:?}", l2_height); self.storage_manager.finalize_l2(l2_height)?; return Ok(()); } diff --git a/full-node/chainway-sequencer/src/utils.rs b/crates/sequencer/src/utils.rs similarity index 94% rename from full-node/chainway-sequencer/src/utils.rs rename to crates/sequencer/src/utils.rs index c0c6316e1..30c9c41d6 100644 --- a/full-node/chainway-sequencer/src/utils.rs +++ b/crates/sequencer/src/utils.rs @@ -1,7 +1,7 @@ //! Commonly used code snippets +use citrea_evm::{EthApiError, EthResult}; use reth_primitives::{Bytes, PooledTransactionsElement, PooledTransactionsElementEcRecovered}; -use sov_evm::{EthApiError, EthResult}; /// Recovers a [PooledTransactionsElementEcRecovered] from an enveloped encoded byte stream. /// diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/Cargo.toml b/crates/soft-confirmation-rule-enforcer/Cargo.toml similarity index 59% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/Cargo.toml rename to crates/soft-confirmation-rule-enforcer/Cargo.toml index 6cf783d93..ca13dd152 100644 --- a/module-system/module-implementations/soft-confirmation-rule-enforcer/Cargo.toml +++ b/crates/soft-confirmation-rule-enforcer/Cargo.toml @@ -12,13 +12,13 @@ publish = false resolver = "2" [dependencies] -sov-modules-api = { path = "../../sov-modules-api", version = "0.3" } -sov-state = { path = "../../sov-state", version = "0.3" } +sov-modules-api = { path = "../sovereign-sdk/module-system/sov-modules-api", version = "0.3" } +sov-state = { path = "../sovereign-sdk/module-system/sov-state", version = "0.3" } tempfile = { workspace = true } -sov-prover-storage-manager = { path = "../../../full-node/sov-prover-storage-manager", features = [ +sov-prover-storage-manager = { path = "../sovereign-sdk/full-node/sov-prover-storage-manager", features = [ "test-utils", ] } -sov-rollup-interface = { path = "../../../rollup-interface" } +sov-rollup-interface = { path = "../sovereign-sdk/rollup-interface" } borsh = { workspace = true } serde = { workspace = true } @@ -27,7 +27,9 @@ jsonrpsee = { workspace = true, features = ["macros", "client-core", "server"] } lazy_static = "1.4.0" [dev-dependencies] -sov-mock-da = { path = "../../../adapters/mock-da", features = ["native"] } +sov-mock-da = { path = "../sovereign-sdk/adapters/mock-da", features = [ + "native", +] } [features] diff --git a/crates/soft-confirmation-rule-enforcer/README.md b/crates/soft-confirmation-rule-enforcer/README.md new file mode 100644 index 000000000..495a41857 --- /dev/null +++ b/crates/soft-confirmation-rule-enforcer/README.md @@ -0,0 +1,8 @@ +## Soft Confirmation Rule Enforcer + +Implementation of Citrea's soft confirmaiton rules as a Sovereign SDK Module. + +This module can be used in any [`State Transition Function`](../citrea-stf/README.md) to enforce two rules: + +- **Block Count Rule**: A sequencer cannot publish more L2 blocks on a single L1 block than the amount set by the rollup. +- **Fee Rate Rule**: Between two consecutive L2 blocks, a sequencer cannot increase or decrease the L1 fee rate more thant the amount set by the rollup. diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/call.rs b/crates/soft-confirmation-rule-enforcer/src/call.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/call.rs rename to crates/soft-confirmation-rule-enforcer/src/call.rs diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/genesis.rs b/crates/soft-confirmation-rule-enforcer/src/genesis.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/genesis.rs rename to crates/soft-confirmation-rule-enforcer/src/genesis.rs diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/hooks.rs b/crates/soft-confirmation-rule-enforcer/src/hooks.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/hooks.rs rename to crates/soft-confirmation-rule-enforcer/src/hooks.rs diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/lib.rs b/crates/soft-confirmation-rule-enforcer/src/lib.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/lib.rs rename to crates/soft-confirmation-rule-enforcer/src/lib.rs diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/query.rs b/crates/soft-confirmation-rule-enforcer/src/query.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/query.rs rename to crates/soft-confirmation-rule-enforcer/src/query.rs diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/call_tests.rs b/crates/soft-confirmation-rule-enforcer/src/tests/call_tests.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/call_tests.rs rename to crates/soft-confirmation-rule-enforcer/src/tests/call_tests.rs diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/genesis_tests.rs b/crates/soft-confirmation-rule-enforcer/src/tests/genesis_tests.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/genesis_tests.rs rename to crates/soft-confirmation-rule-enforcer/src/tests/genesis_tests.rs diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/hooks_tests.rs b/crates/soft-confirmation-rule-enforcer/src/tests/hooks_tests.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/hooks_tests.rs rename to crates/soft-confirmation-rule-enforcer/src/tests/hooks_tests.rs diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/mod.rs b/crates/soft-confirmation-rule-enforcer/src/tests/mod.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/mod.rs rename to crates/soft-confirmation-rule-enforcer/src/tests/mod.rs diff --git a/module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/query_tests.rs b/crates/soft-confirmation-rule-enforcer/src/tests/query_tests.rs similarity index 100% rename from module-system/module-implementations/soft-confirmation-rule-enforcer/src/tests/query_tests.rs rename to crates/soft-confirmation-rule-enforcer/src/tests/query_tests.rs diff --git a/LICENSE b/crates/sovereign-sdk/LICENSE similarity index 100% rename from LICENSE rename to crates/sovereign-sdk/LICENSE diff --git a/crates/sovereign-sdk/README.md b/crates/sovereign-sdk/README.md new file mode 100644 index 000000000..f371e8120 --- /dev/null +++ b/crates/sovereign-sdk/README.md @@ -0,0 +1,146 @@ +## Disclaimer + +This folder incorporates and builds upon code from the open-source project Sovereign SDK by Sovereign Labs (https://www.sovereign.xyz/), under the Apache License 2.0 & permission. + +The following crates from the Sovereign SDK have been forked, modified, and updated by Chainway Labs: + +- sov-stf-runner +- sov-db +- sov-schema-db +- sov-modules-api +- sov-modules-rollup-blueprint +- sov-modules-stf-blueprint +- rollup-interface +- sov-evm +- sov-ethereum + +The original source code for these crates is available at the Sovereign SDK repository: [https://github.com/Sovereign-Labs/sovereign-sdk](https://github.com/Sovereign-Labs/sovereign-sdk) + +![](./assets/banner.jpg) + + + +## What is the Sovereign SDK? + +The Sovereign SDK is a free and open-source toolkit for building rollups (both ZK and optimistic) **that is currently under development**. Sovereign SDK consists of three +logical components: + +1. The Rollup Interface, a minimal set of interfaces that defines a rollup +1. The Module System, an opinionated framework for building a rollup with the Rollup Interface +1. The Full Node, a client implementation capable of running any rollup which implements the Rollup Interface. + +### The Rollup Interface + +At the heart of the Sovereign SDK is [the Rollup Interface](./rollup-interface/specs/overview.md), which defines the _interfaces_ that rollups +must implement. In the Sovereign SDK, we define a rollup as the combination of three components: + +1. A [State Transition Function](./rollup-interface/specs/interfaces/stf.md) ("STF") which defines the "business logic" of the rollup +1. A [Data Availability Layer](./rollup-interface/specs/interfaces/da.md) ("DA layer") which determines the set of transactions that are fed + to the state transition function +1. A Zero Knowledge proving system (aka "Zero Knowledge Virtual Machine" or "zkVM"), which takes the compiled rollup code and + produces succinct proofs that the logic has been executed correctly. + +One of the primary goals of the Sovereign SDK is to enable a clean separation of concerns between these three components. +Most rollup developers should not need to implement the DA layer interface - they can write their logic using the SDK, +and be compatible with any DA layer - so deploying their rollup on a new chain is as simple as +picking an [adapter](https://github.com/Sovereign-Labs/Jupiter) +to a specific DA layer off the shelf. + +Similarly, teams building DA layers shouldn't need to worry about what kinds of state transitions will be built using their chain. +All they need to do is implement the DA layer interface, and they're automatically compatible with all state transition functions. + +The code for the Rollup Interface lives in the [rollup-interface](./rollup-interface/) folder. For a technical description, we recommend the overview +[here](./rollup-interface/specs/overview.md). If you want a less technical introduction, see this [blog post](https://mirror.xyz/sovlabs.eth/pZl5kAtNIRQiKAjuFvDOQCmFIamGnf0oul3as_DhqGA). + +### The Module System + +While the Rollup Interface defines a powerful set of abstractions, it's unopinionated about how a State Transition Function should actually +work. As far as the interfaces are concerned, your state machine might have nothing to do with classic "blockchain" financial applications - so +it has no built-in notion of state, accounts, tokens, and the like. This means that the Rollup Interface package on its own can't offer a +"batteries included" development experience. But one of our goals at Sovereign is to make developing +a rollup as easy as deploying a smart contract. So, we've built out an additional set of tools for defining your state transition function +called the Module System. + +At the heart of the Module System is the package [`sov-modules-api`](./module-system/sov-modules-api/). This package defines +a group of core traits which express how functionality implemented in separate modules can be combined into a `Runtime` +capable of processing transactions and serving RPC requests. It also defines macros for implementing most of these traits. +For many applications, defining your state transition function using the Module System should be as simple as picking +some modules off the shelf and defining a struct which glues them together. +To deliver this experience, the Module System relies on a set of common types and traits that are used in every module. The +`sov-modules-api` crate defines these traits (like `Context` and `MerkleTreeSpec`) and types like `Address`. + +On top of the module API, we provide a [state storage layer](./module-system/sov-state/) backed by a [Jellyfish Merkle Tree](https://github.com/penumbra-zone/jmt) +and a bunch of helpful utilities for working with stateful transactions. Finally, we provide a set of modules implementing common +blockchain functionality like `Accounts`, and fungible `Tokens`. + +For more information on the Module System, see its [README](./module-system/README.md). You can also find a tutorial on +implementing and deploying a custom module [here](./examples/simple-nft-module/README.md). + +### The Full Node + +The final component of this repository is the Full Node, which is a client implementation capable of running any +rollup that implements the Rollup Interface. The Full Node provides an easy way to deploy +and run your rollup. With the default configuration, it can automatically store chain data in its database, +serve RPC requests for chain data and application state, and interact with the DA layer to sync its state and send transactions. +While the full node implementation should be compatible with custom state transition functions, it is currently only tested for +rollups built with the Module System. If you encounter any difficulties running the full node, please reach out or open an +issue! All of the core developers can be reached via [Discord](https://discord.gg/kbykCcPrcA). + +## Getting Started + +### Running a demo rollup + +Experience how a simple rollup works by exploring our [`demo-rollup`](./examples/demo-rollup/README.md) tutorial. + +### Building a rollup + +- #### Using the Module System + This is the most straightforward way to create a rollup. + +To construct a single module, follow our [module building tutorial](./examples/simple-nft-module/README.md). +To combine multiple modules into a State Transition Function (STF), see the [`demo-stf`](./examples/demo-rollup/stf/README.md) guide. + +- #### By building a custom State Transition Function + If you want even more control over your rollup's functionality, you can implement a completely custom State Transition Function without using the Module System. Our dedicated tutorial for this approach can be found [here](./examples/demo-simple-stf/README.md). + +### Adding a new Data Availability Layer + +If you want to add support for a new data availability layer, the easiest way to get started is to use the +[DA layer adapter template](https://github.com/Sovereign-Labs/da-adapter-template). + +## Adapters + +Adapters contain the logic integrating 3rd party codebases into the Sovereign SDK. Over time, we expect Sovereign SDK +to have adapters for almost all Data Availability Layers and LLVM-compatible proof systems. Currently, we +maintain adapters for [`Risc0`](https://www.risczero.com) (a zkVM) and [`Celestia`](https://www.celestia.org) a (DA layer). +The Avail project also maintains an adapter for their DA layer, which can be found [here](https://github.com/availproject/avail-sovereign-da-adapter). +[Chainway](https://chainway.xyz/) team also maintains an open-source Bitcoin DA adapter for their Sovereign Rollup on Bitcoin, which can be found [here](https://github.com/chainwayxyz/bitcoin-da). + +## Testing + +An implementation of LLVM's libFUZZER is available under [fuzz/README.md](./fuzz/README.md). + +## Warning + +The Sovereign SDK is Alpha software. It has not been audited and should not be used in production under any circumstances. +API stability and compliance with semantic versioning will be maintained on a best-effort basis. + +## License + +Licensed under the [Apache License, Version +2.0](./LICENSE). + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in this repository by you, as defined in the Apache-2.0 license, shall be +licensed as above, without any additional terms or conditions. diff --git a/Releases.md b/crates/sovereign-sdk/Releases.md similarity index 100% rename from Releases.md rename to crates/sovereign-sdk/Releases.md diff --git a/adapters/avail/Cargo.toml b/crates/sovereign-sdk/adapters/avail/Cargo.toml similarity index 100% rename from adapters/avail/Cargo.toml rename to crates/sovereign-sdk/adapters/avail/Cargo.toml diff --git a/adapters/avail/README.md b/crates/sovereign-sdk/adapters/avail/README.md similarity index 100% rename from adapters/avail/README.md rename to crates/sovereign-sdk/adapters/avail/README.md diff --git a/adapters/avail/src/avail.rs b/crates/sovereign-sdk/adapters/avail/src/avail.rs similarity index 100% rename from adapters/avail/src/avail.rs rename to crates/sovereign-sdk/adapters/avail/src/avail.rs diff --git a/adapters/avail/src/lib.rs b/crates/sovereign-sdk/adapters/avail/src/lib.rs similarity index 100% rename from adapters/avail/src/lib.rs rename to crates/sovereign-sdk/adapters/avail/src/lib.rs diff --git a/adapters/avail/src/service.rs b/crates/sovereign-sdk/adapters/avail/src/service.rs similarity index 98% rename from adapters/avail/src/service.rs rename to crates/sovereign-sdk/adapters/avail/src/service.rs index 24770b441..b6ade8614 100644 --- a/adapters/avail/src/service.rs +++ b/crates/sovereign-sdk/adapters/avail/src/service.rs @@ -289,13 +289,6 @@ impl DaService for DaProvider { ((), ()) } - fn convert_rollup_batch_to_da_blob( - &self, - _blob: &[u8], - ) -> Result<(::BlobTransaction, Vec), Self::Error> { - unimplemented!(); - } - async fn send_transaction(&self, blob: &[u8]) -> Result<(), Self::Error> { let data_transfer = api::tx() .data_availability() diff --git a/adapters/avail/src/spec/address.rs b/crates/sovereign-sdk/adapters/avail/src/spec/address.rs similarity index 100% rename from adapters/avail/src/spec/address.rs rename to crates/sovereign-sdk/adapters/avail/src/spec/address.rs diff --git a/adapters/avail/src/spec/block.rs b/crates/sovereign-sdk/adapters/avail/src/spec/block.rs similarity index 100% rename from adapters/avail/src/spec/block.rs rename to crates/sovereign-sdk/adapters/avail/src/spec/block.rs diff --git a/adapters/avail/src/spec/hash.rs b/crates/sovereign-sdk/adapters/avail/src/spec/hash.rs similarity index 100% rename from adapters/avail/src/spec/hash.rs rename to crates/sovereign-sdk/adapters/avail/src/spec/hash.rs diff --git a/adapters/avail/src/spec/header.rs b/crates/sovereign-sdk/adapters/avail/src/spec/header.rs similarity index 100% rename from adapters/avail/src/spec/header.rs rename to crates/sovereign-sdk/adapters/avail/src/spec/header.rs diff --git a/adapters/avail/src/spec/mod.rs b/crates/sovereign-sdk/adapters/avail/src/spec/mod.rs similarity index 100% rename from adapters/avail/src/spec/mod.rs rename to crates/sovereign-sdk/adapters/avail/src/spec/mod.rs diff --git a/adapters/avail/src/spec/transaction.rs b/crates/sovereign-sdk/adapters/avail/src/spec/transaction.rs similarity index 100% rename from adapters/avail/src/spec/transaction.rs rename to crates/sovereign-sdk/adapters/avail/src/spec/transaction.rs diff --git a/adapters/avail/src/verifier.rs b/crates/sovereign-sdk/adapters/avail/src/verifier.rs similarity index 100% rename from adapters/avail/src/verifier.rs rename to crates/sovereign-sdk/adapters/avail/src/verifier.rs diff --git a/adapters/celestia/.gitignore b/crates/sovereign-sdk/adapters/celestia/.gitignore similarity index 100% rename from adapters/celestia/.gitignore rename to crates/sovereign-sdk/adapters/celestia/.gitignore diff --git a/adapters/celestia/Cargo.toml b/crates/sovereign-sdk/adapters/celestia/Cargo.toml similarity index 93% rename from adapters/celestia/Cargo.toml rename to crates/sovereign-sdk/adapters/celestia/Cargo.toml index 3cfa06a0a..5d3d7220b 100644 --- a/adapters/celestia/Cargo.toml +++ b/crates/sovereign-sdk/adapters/celestia/Cargo.toml @@ -39,7 +39,9 @@ pin-project = { workspace = true, optional = true } thiserror = { workspace = true } tracing = { workspace = true } sov-zk-cycle-macros = { path = "../../utils/zk-cycle-macros", version = "0.3", optional = true } -risc0-zkvm = { workspace = true, default-features = false, features = ["std"], optional = true } +risc0-zkvm = { workspace = true, default-features = false, features = [ + "std", +], optional = true } risc0-zkvm-platform = { workspace = true, optional = true } sov-rollup-interface = { path = "../../rollup-interface", version = "0.3" } @@ -52,7 +54,7 @@ sov-celestia-adapter = { path = ".", features = ["native"] } wiremock = "0.5" [features] -default = [] +default = ["native"] native = [ "dep:tokio", "dep:futures", @@ -63,11 +65,5 @@ native = [ "tendermint/default", "sov-rollup-interface/native", ] -risc0 = [ - "dep:risc0-zkvm", - "dep:risc0-zkvm-platform" -] -bench = [ - "sov-zk-cycle-macros/bench", - "risc0" -] +risc0 = ["dep:risc0-zkvm", "dep:risc0-zkvm-platform"] +bench = ["sov-zk-cycle-macros/bench", "risc0"] diff --git a/adapters/celestia/README.md b/crates/sovereign-sdk/adapters/celestia/README.md similarity index 100% rename from adapters/celestia/README.md rename to crates/sovereign-sdk/adapters/celestia/README.md diff --git a/adapters/celestia/src/celestia.rs b/crates/sovereign-sdk/adapters/celestia/src/celestia.rs similarity index 100% rename from adapters/celestia/src/celestia.rs rename to crates/sovereign-sdk/adapters/celestia/src/celestia.rs diff --git a/adapters/celestia/src/da_service.rs b/crates/sovereign-sdk/adapters/celestia/src/da_service.rs similarity index 98% rename from adapters/celestia/src/da_service.rs rename to crates/sovereign-sdk/adapters/celestia/src/da_service.rs index 51ad62cbb..fde918424 100644 --- a/adapters/celestia/src/da_service.rs +++ b/crates/sovereign-sdk/adapters/celestia/src/da_service.rs @@ -270,19 +270,6 @@ impl DaService for CelestiaService { Ok(()) } - fn convert_rollup_batch_to_da_blob( - &self, - _blob: &[u8], - ) -> Result< - ( - ::BlobTransaction, - Vec, - ), - Self::Error, - > { - unimplemented!(); - } - async fn send_aggregated_zk_proof(&self, aggregated_proof: &[u8]) -> Result { let gas_limit = get_gas_limit_for_bytes(aggregated_proof.len()) as u64; let fee = gas_limit * GAS_PRICE as u64; diff --git a/adapters/celestia/src/lib.rs b/crates/sovereign-sdk/adapters/celestia/src/lib.rs similarity index 100% rename from adapters/celestia/src/lib.rs rename to crates/sovereign-sdk/adapters/celestia/src/lib.rs diff --git a/adapters/celestia/src/shares.rs b/crates/sovereign-sdk/adapters/celestia/src/shares.rs similarity index 100% rename from adapters/celestia/src/shares.rs rename to crates/sovereign-sdk/adapters/celestia/src/shares.rs diff --git a/adapters/celestia/src/types.rs b/crates/sovereign-sdk/adapters/celestia/src/types.rs similarity index 100% rename from adapters/celestia/src/types.rs rename to crates/sovereign-sdk/adapters/celestia/src/types.rs diff --git a/adapters/celestia/src/utils.rs b/crates/sovereign-sdk/adapters/celestia/src/utils.rs similarity index 100% rename from adapters/celestia/src/utils.rs rename to crates/sovereign-sdk/adapters/celestia/src/utils.rs diff --git a/adapters/celestia/src/verifier/address.rs b/crates/sovereign-sdk/adapters/celestia/src/verifier/address.rs similarity index 100% rename from adapters/celestia/src/verifier/address.rs rename to crates/sovereign-sdk/adapters/celestia/src/verifier/address.rs diff --git a/adapters/celestia/src/verifier/mod.rs b/crates/sovereign-sdk/adapters/celestia/src/verifier/mod.rs similarity index 100% rename from adapters/celestia/src/verifier/mod.rs rename to crates/sovereign-sdk/adapters/celestia/src/verifier/mod.rs diff --git a/adapters/celestia/src/verifier/proofs.rs b/crates/sovereign-sdk/adapters/celestia/src/verifier/proofs.rs similarity index 100% rename from adapters/celestia/src/verifier/proofs.rs rename to crates/sovereign-sdk/adapters/celestia/src/verifier/proofs.rs diff --git a/adapters/celestia/test_data/block_with_rollup_data/eds.json b/crates/sovereign-sdk/adapters/celestia/test_data/block_with_rollup_data/eds.json similarity index 100% rename from adapters/celestia/test_data/block_with_rollup_data/eds.json rename to crates/sovereign-sdk/adapters/celestia/test_data/block_with_rollup_data/eds.json diff --git a/adapters/celestia/test_data/block_with_rollup_data/etx_rows.json b/crates/sovereign-sdk/adapters/celestia/test_data/block_with_rollup_data/etx_rows.json similarity index 100% rename from adapters/celestia/test_data/block_with_rollup_data/etx_rows.json rename to crates/sovereign-sdk/adapters/celestia/test_data/block_with_rollup_data/etx_rows.json diff --git a/adapters/celestia/test_data/block_with_rollup_data/header.json b/crates/sovereign-sdk/adapters/celestia/test_data/block_with_rollup_data/header.json similarity index 100% rename from adapters/celestia/test_data/block_with_rollup_data/header.json rename to crates/sovereign-sdk/adapters/celestia/test_data/block_with_rollup_data/header.json diff --git a/adapters/celestia/test_data/block_with_rollup_data/rollup_rows.json b/crates/sovereign-sdk/adapters/celestia/test_data/block_with_rollup_data/rollup_rows.json similarity index 100% rename from adapters/celestia/test_data/block_with_rollup_data/rollup_rows.json rename to crates/sovereign-sdk/adapters/celestia/test_data/block_with_rollup_data/rollup_rows.json diff --git a/adapters/celestia/test_data/block_without_rollup_data/eds.json b/crates/sovereign-sdk/adapters/celestia/test_data/block_without_rollup_data/eds.json similarity index 100% rename from adapters/celestia/test_data/block_without_rollup_data/eds.json rename to crates/sovereign-sdk/adapters/celestia/test_data/block_without_rollup_data/eds.json diff --git a/adapters/celestia/test_data/block_without_rollup_data/etx_rows.json b/crates/sovereign-sdk/adapters/celestia/test_data/block_without_rollup_data/etx_rows.json similarity index 100% rename from adapters/celestia/test_data/block_without_rollup_data/etx_rows.json rename to crates/sovereign-sdk/adapters/celestia/test_data/block_without_rollup_data/etx_rows.json diff --git a/adapters/celestia/test_data/block_without_rollup_data/header.json b/crates/sovereign-sdk/adapters/celestia/test_data/block_without_rollup_data/header.json similarity index 100% rename from adapters/celestia/test_data/block_without_rollup_data/header.json rename to crates/sovereign-sdk/adapters/celestia/test_data/block_without_rollup_data/header.json diff --git a/adapters/celestia/test_data/block_without_rollup_data/rollup_rows.json b/crates/sovereign-sdk/adapters/celestia/test_data/block_without_rollup_data/rollup_rows.json similarity index 100% rename from adapters/celestia/test_data/block_without_rollup_data/rollup_rows.json rename to crates/sovereign-sdk/adapters/celestia/test_data/block_without_rollup_data/rollup_rows.json diff --git a/adapters/mock-da/Cargo.toml b/crates/sovereign-sdk/adapters/mock-da/Cargo.toml similarity index 100% rename from adapters/mock-da/Cargo.toml rename to crates/sovereign-sdk/adapters/mock-da/Cargo.toml diff --git a/adapters/mock-da/README.md b/crates/sovereign-sdk/adapters/mock-da/README.md similarity index 100% rename from adapters/mock-da/README.md rename to crates/sovereign-sdk/adapters/mock-da/README.md diff --git a/adapters/mock-da/src/db_connector.rs b/crates/sovereign-sdk/adapters/mock-da/src/db_connector.rs similarity index 100% rename from adapters/mock-da/src/db_connector.rs rename to crates/sovereign-sdk/adapters/mock-da/src/db_connector.rs diff --git a/adapters/mock-da/src/lib.rs b/crates/sovereign-sdk/adapters/mock-da/src/lib.rs similarity index 100% rename from adapters/mock-da/src/lib.rs rename to crates/sovereign-sdk/adapters/mock-da/src/lib.rs diff --git a/adapters/mock-da/src/service.rs b/crates/sovereign-sdk/adapters/mock-da/src/service.rs similarity index 98% rename from adapters/mock-da/src/service.rs rename to crates/sovereign-sdk/adapters/mock-da/src/service.rs index 1c173f6c9..e10e9c44a 100644 --- a/adapters/mock-da/src/service.rs +++ b/crates/sovereign-sdk/adapters/mock-da/src/service.rs @@ -373,25 +373,6 @@ impl DaService for MockDaService { Ok(()) } - /// Convert Batch to a DA layer blob. - fn convert_rollup_batch_to_da_blob( - &self, - blob: &[u8], - ) -> Result< - ( - ::BlobTransaction, - Vec, - ), - Self::Error, - > { - let blob = MockBlob::new( - blob.to_vec(), - self.sequencer_da_address, - hash_to_array(blob), - ); - Ok((blob, vec![])) - } - async fn send_aggregated_zk_proof(&self, proof: &[u8]) -> Result { self.add_blob(Default::default(), proof.to_vec()).await } diff --git a/adapters/mock-da/src/types/address.rs b/crates/sovereign-sdk/adapters/mock-da/src/types/address.rs similarity index 100% rename from adapters/mock-da/src/types/address.rs rename to crates/sovereign-sdk/adapters/mock-da/src/types/address.rs diff --git a/adapters/mock-da/src/types/mod.rs b/crates/sovereign-sdk/adapters/mock-da/src/types/mod.rs similarity index 100% rename from adapters/mock-da/src/types/mod.rs rename to crates/sovereign-sdk/adapters/mock-da/src/types/mod.rs diff --git a/adapters/mock-da/src/validity_condition.rs b/crates/sovereign-sdk/adapters/mock-da/src/validity_condition.rs similarity index 100% rename from adapters/mock-da/src/validity_condition.rs rename to crates/sovereign-sdk/adapters/mock-da/src/validity_condition.rs diff --git a/adapters/mock-da/src/verifier.rs b/crates/sovereign-sdk/adapters/mock-da/src/verifier.rs similarity index 100% rename from adapters/mock-da/src/verifier.rs rename to crates/sovereign-sdk/adapters/mock-da/src/verifier.rs diff --git a/adapters/mock-zkvm/Cargo.toml b/crates/sovereign-sdk/adapters/mock-zkvm/Cargo.toml similarity index 100% rename from adapters/mock-zkvm/Cargo.toml rename to crates/sovereign-sdk/adapters/mock-zkvm/Cargo.toml diff --git a/adapters/mock-zkvm/README.md b/crates/sovereign-sdk/adapters/mock-zkvm/README.md similarity index 100% rename from adapters/mock-zkvm/README.md rename to crates/sovereign-sdk/adapters/mock-zkvm/README.md diff --git a/adapters/mock-zkvm/src/lib.rs b/crates/sovereign-sdk/adapters/mock-zkvm/src/lib.rs similarity index 100% rename from adapters/mock-zkvm/src/lib.rs rename to crates/sovereign-sdk/adapters/mock-zkvm/src/lib.rs diff --git a/adapters/risc0/Cargo.toml b/crates/sovereign-sdk/adapters/risc0/Cargo.toml similarity index 100% rename from adapters/risc0/Cargo.toml rename to crates/sovereign-sdk/adapters/risc0/Cargo.toml diff --git a/adapters/risc0/README.md b/crates/sovereign-sdk/adapters/risc0/README.md similarity index 100% rename from adapters/risc0/README.md rename to crates/sovereign-sdk/adapters/risc0/README.md diff --git a/adapters/risc0/src/guest.rs b/crates/sovereign-sdk/adapters/risc0/src/guest.rs similarity index 100% rename from adapters/risc0/src/guest.rs rename to crates/sovereign-sdk/adapters/risc0/src/guest.rs diff --git a/adapters/risc0/src/host.rs b/crates/sovereign-sdk/adapters/risc0/src/host.rs similarity index 100% rename from adapters/risc0/src/host.rs rename to crates/sovereign-sdk/adapters/risc0/src/host.rs diff --git a/adapters/risc0/src/lib.rs b/crates/sovereign-sdk/adapters/risc0/src/lib.rs similarity index 100% rename from adapters/risc0/src/lib.rs rename to crates/sovereign-sdk/adapters/risc0/src/lib.rs diff --git a/adapters/risc0/src/metrics.rs b/crates/sovereign-sdk/adapters/risc0/src/metrics.rs similarity index 100% rename from adapters/risc0/src/metrics.rs rename to crates/sovereign-sdk/adapters/risc0/src/metrics.rs diff --git a/adapters/risc0/tests/native.rs b/crates/sovereign-sdk/adapters/risc0/tests/native.rs similarity index 100% rename from adapters/risc0/tests/native.rs rename to crates/sovereign-sdk/adapters/risc0/tests/native.rs diff --git a/adapters/solana/Makefile b/crates/sovereign-sdk/adapters/solana/Makefile similarity index 100% rename from adapters/solana/Makefile rename to crates/sovereign-sdk/adapters/solana/Makefile diff --git a/adapters/solana/README.md b/crates/sovereign-sdk/adapters/solana/README.md similarity index 100% rename from adapters/solana/README.md rename to crates/sovereign-sdk/adapters/solana/README.md diff --git a/adapters/solana/config.json b/crates/sovereign-sdk/adapters/solana/config.json similarity index 100% rename from adapters/solana/config.json rename to crates/sovereign-sdk/adapters/solana/config.json diff --git a/adapters/solana/da_client/Cargo.lock b/crates/sovereign-sdk/adapters/solana/da_client/Cargo.lock similarity index 100% rename from adapters/solana/da_client/Cargo.lock rename to crates/sovereign-sdk/adapters/solana/da_client/Cargo.lock diff --git a/adapters/solana/da_client/Cargo.toml b/crates/sovereign-sdk/adapters/solana/da_client/Cargo.toml similarity index 100% rename from adapters/solana/da_client/Cargo.toml rename to crates/sovereign-sdk/adapters/solana/da_client/Cargo.toml diff --git a/adapters/solana/da_client/src/bin/account_delta_processor.rs b/crates/sovereign-sdk/adapters/solana/da_client/src/bin/account_delta_processor.rs similarity index 100% rename from adapters/solana/da_client/src/bin/account_delta_processor.rs rename to crates/sovereign-sdk/adapters/solana/da_client/src/bin/account_delta_processor.rs diff --git a/adapters/solana/da_client/src/lib.rs b/crates/sovereign-sdk/adapters/solana/da_client/src/lib.rs similarity index 100% rename from adapters/solana/da_client/src/lib.rs rename to crates/sovereign-sdk/adapters/solana/da_client/src/lib.rs diff --git a/adapters/solana/da_client/src/main.rs b/crates/sovereign-sdk/adapters/solana/da_client/src/main.rs similarity index 100% rename from adapters/solana/da_client/src/main.rs rename to crates/sovereign-sdk/adapters/solana/da_client/src/main.rs diff --git a/adapters/solana/solana_da_programs/.gitignore b/crates/sovereign-sdk/adapters/solana/solana_da_programs/.gitignore similarity index 100% rename from adapters/solana/solana_da_programs/.gitignore rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/.gitignore diff --git a/adapters/solana/solana_da_programs/.prettierignore b/crates/sovereign-sdk/adapters/solana/solana_da_programs/.prettierignore similarity index 100% rename from adapters/solana/solana_da_programs/.prettierignore rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/.prettierignore diff --git a/adapters/solana/solana_da_programs/Anchor.toml b/crates/sovereign-sdk/adapters/solana/solana_da_programs/Anchor.toml similarity index 100% rename from adapters/solana/solana_da_programs/Anchor.toml rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/Anchor.toml diff --git a/adapters/solana/solana_da_programs/Cargo.lock b/crates/sovereign-sdk/adapters/solana/solana_da_programs/Cargo.lock similarity index 100% rename from adapters/solana/solana_da_programs/Cargo.lock rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/Cargo.lock diff --git a/adapters/solana/solana_da_programs/Cargo.toml b/crates/sovereign-sdk/adapters/solana/solana_da_programs/Cargo.toml similarity index 100% rename from adapters/solana/solana_da_programs/Cargo.toml rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/Cargo.toml diff --git a/adapters/solana/solana_da_programs/migrations/deploy.ts b/crates/sovereign-sdk/adapters/solana/solana_da_programs/migrations/deploy.ts similarity index 100% rename from adapters/solana/solana_da_programs/migrations/deploy.ts rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/migrations/deploy.ts diff --git a/adapters/solana/solana_da_programs/package.json b/crates/sovereign-sdk/adapters/solana/solana_da_programs/package.json similarity index 100% rename from adapters/solana/solana_da_programs/package.json rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/package.json diff --git a/adapters/solana/solana_da_programs/programs/blockroot/Cargo.toml b/crates/sovereign-sdk/adapters/solana/solana_da_programs/programs/blockroot/Cargo.toml similarity index 100% rename from adapters/solana/solana_da_programs/programs/blockroot/Cargo.toml rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/programs/blockroot/Cargo.toml diff --git a/adapters/solana/solana_da_programs/programs/blockroot/Xargo.toml b/crates/sovereign-sdk/adapters/solana/solana_da_programs/programs/blockroot/Xargo.toml similarity index 100% rename from adapters/solana/solana_da_programs/programs/blockroot/Xargo.toml rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/programs/blockroot/Xargo.toml diff --git a/adapters/solana/solana_da_programs/programs/blockroot/src/da.rs b/crates/sovereign-sdk/adapters/solana/solana_da_programs/programs/blockroot/src/da.rs similarity index 100% rename from adapters/solana/solana_da_programs/programs/blockroot/src/da.rs rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/programs/blockroot/src/da.rs diff --git a/adapters/solana/solana_da_programs/programs/blockroot/src/lib.rs b/crates/sovereign-sdk/adapters/solana/solana_da_programs/programs/blockroot/src/lib.rs similarity index 100% rename from adapters/solana/solana_da_programs/programs/blockroot/src/lib.rs rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/programs/blockroot/src/lib.rs diff --git a/adapters/solana/solana_da_programs/tests/solana_da_programs.ts b/crates/sovereign-sdk/adapters/solana/solana_da_programs/tests/solana_da_programs.ts similarity index 100% rename from adapters/solana/solana_da_programs/tests/solana_da_programs.ts rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/tests/solana_da_programs.ts diff --git a/adapters/solana/solana_da_programs/tsconfig.json b/crates/sovereign-sdk/adapters/solana/solana_da_programs/tsconfig.json similarity index 100% rename from adapters/solana/solana_da_programs/tsconfig.json rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/tsconfig.json diff --git a/adapters/solana/solana_da_programs/yarn.lock b/crates/sovereign-sdk/adapters/solana/solana_da_programs/yarn.lock similarity index 100% rename from adapters/solana/solana_da_programs/yarn.lock rename to crates/sovereign-sdk/adapters/solana/solana_da_programs/yarn.lock diff --git a/assets/banner.jpg b/crates/sovereign-sdk/assets/banner.jpg similarity index 100% rename from assets/banner.jpg rename to crates/sovereign-sdk/assets/banner.jpg diff --git a/assets/discord-banner.png b/crates/sovereign-sdk/assets/discord-banner.png similarity index 100% rename from assets/discord-banner.png rename to crates/sovereign-sdk/assets/discord-banner.png diff --git a/constants.json b/crates/sovereign-sdk/constants.json similarity index 100% rename from constants.json rename to crates/sovereign-sdk/constants.json diff --git a/constants.test.json b/crates/sovereign-sdk/constants.test.json similarity index 100% rename from constants.test.json rename to crates/sovereign-sdk/constants.test.json diff --git a/docker/DEMO.md b/crates/sovereign-sdk/docker/DEMO.md similarity index 100% rename from docker/DEMO.md rename to crates/sovereign-sdk/docker/DEMO.md diff --git a/docker/Dockerfile.bridge b/crates/sovereign-sdk/docker/Dockerfile.bridge similarity index 100% rename from docker/Dockerfile.bridge rename to crates/sovereign-sdk/docker/Dockerfile.bridge diff --git a/docker/Dockerfile.validator b/crates/sovereign-sdk/docker/Dockerfile.validator similarity index 100% rename from docker/Dockerfile.validator rename to crates/sovereign-sdk/docker/Dockerfile.validator diff --git a/docker/Makefile b/crates/sovereign-sdk/docker/Makefile similarity index 100% rename from docker/Makefile rename to crates/sovereign-sdk/docker/Makefile diff --git a/docker/README.md b/crates/sovereign-sdk/docker/README.md similarity index 100% rename from docker/README.md rename to crates/sovereign-sdk/docker/README.md diff --git a/docker/credentials/bridge-0.addr b/crates/sovereign-sdk/docker/credentials/bridge-0.addr similarity index 100% rename from docker/credentials/bridge-0.addr rename to crates/sovereign-sdk/docker/credentials/bridge-0.addr diff --git a/docker/credentials/bridge-0.key b/crates/sovereign-sdk/docker/credentials/bridge-0.key similarity index 100% rename from docker/credentials/bridge-0.key rename to crates/sovereign-sdk/docker/credentials/bridge-0.key diff --git a/docker/docker-compose.yml b/crates/sovereign-sdk/docker/docker-compose.yml similarity index 100% rename from docker/docker-compose.yml rename to crates/sovereign-sdk/docker/docker-compose.yml diff --git a/docker/generate_configs.sh b/crates/sovereign-sdk/docker/generate_configs.sh similarity index 100% rename from docker/generate_configs.sh rename to crates/sovereign-sdk/docker/generate_configs.sh diff --git a/docker/rollup_config_0.toml b/crates/sovereign-sdk/docker/rollup_config_0.toml similarity index 100% rename from docker/rollup_config_0.toml rename to crates/sovereign-sdk/docker/rollup_config_0.toml diff --git a/docker/run-bridge.sh b/crates/sovereign-sdk/docker/run-bridge.sh similarity index 100% rename from docker/run-bridge.sh rename to crates/sovereign-sdk/docker/run-bridge.sh diff --git a/docker/run-validator.sh b/crates/sovereign-sdk/docker/run-validator.sh similarity index 100% rename from docker/run-validator.sh rename to crates/sovereign-sdk/docker/run-validator.sh diff --git a/docker/template.toml b/crates/sovereign-sdk/docker/template.toml similarity index 100% rename from docker/template.toml rename to crates/sovereign-sdk/docker/template.toml diff --git a/examples/const-rollup-config/Cargo.toml b/crates/sovereign-sdk/examples/const-rollup-config/Cargo.toml similarity index 100% rename from examples/const-rollup-config/Cargo.toml rename to crates/sovereign-sdk/examples/const-rollup-config/Cargo.toml diff --git a/examples/const-rollup-config/README.md b/crates/sovereign-sdk/examples/const-rollup-config/README.md similarity index 100% rename from examples/const-rollup-config/README.md rename to crates/sovereign-sdk/examples/const-rollup-config/README.md diff --git a/examples/const-rollup-config/src/lib.rs b/crates/sovereign-sdk/examples/const-rollup-config/src/lib.rs similarity index 100% rename from examples/const-rollup-config/src/lib.rs rename to crates/sovereign-sdk/examples/const-rollup-config/src/lib.rs diff --git a/examples/demo-simple-stf/Cargo.toml b/crates/sovereign-sdk/examples/demo-simple-stf/Cargo.toml similarity index 100% rename from examples/demo-simple-stf/Cargo.toml rename to crates/sovereign-sdk/examples/demo-simple-stf/Cargo.toml diff --git a/examples/demo-simple-stf/README.md b/crates/sovereign-sdk/examples/demo-simple-stf/README.md similarity index 100% rename from examples/demo-simple-stf/README.md rename to crates/sovereign-sdk/examples/demo-simple-stf/README.md diff --git a/examples/demo-simple-stf/src/lib.rs b/crates/sovereign-sdk/examples/demo-simple-stf/src/lib.rs similarity index 100% rename from examples/demo-simple-stf/src/lib.rs rename to crates/sovereign-sdk/examples/demo-simple-stf/src/lib.rs diff --git a/examples/demo-simple-stf/tests/stf_test.rs b/crates/sovereign-sdk/examples/demo-simple-stf/tests/stf_test.rs similarity index 100% rename from examples/demo-simple-stf/tests/stf_test.rs rename to crates/sovereign-sdk/examples/demo-simple-stf/tests/stf_test.rs diff --git a/crates/sovereign-sdk/examples/demo-stf/Cargo.toml b/crates/sovereign-sdk/examples/demo-stf/Cargo.toml new file mode 100644 index 000000000..e5d568fa9 --- /dev/null +++ b/crates/sovereign-sdk/examples/demo-stf/Cargo.toml @@ -0,0 +1,95 @@ +[package] +name = "demo-stf" +version = { workspace = true } +edition = { workspace = true } +resolver = "2" +authors = { workspace = true } +license = { workspace = true } +homepage = "sovereign.xyz" +publish = false + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow = { workspace = true } +borsh = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true, optional = true } +clap = { workspace = true, optional = true } +toml = { workspace = true, optional = true } +jsonrpsee = { workspace = true, features = [ + "http-client", + "server", +], optional = true } +tokio = { workspace = true, optional = true } +hex = { workspace = true } +tracing = { workspace = true } +reth-primitives = { workspace = true } +secp256k1 = { workspace = true } + +sov-stf-runner = { path = "../../../sovereign-sdk/full-node/sov-stf-runner" } +sov-rollup-interface = { path = "../../../sovereign-sdk/rollup-interface" } +sov-cli = { path = "../../../sovereign-sdk/module-system/sov-cli", optional = true } +sov-sequencer-registry = { path = "../../../sovereign-sdk/module-system/module-implementations/sov-sequencer-registry" } +sov-blob-storage = { path = "../../../sovereign-sdk/module-system/module-implementations/sov-blob-storage" } +sov-bank = { path = "../../../sovereign-sdk/module-system/module-implementations/sov-bank" } +sov-nft-module = { path = "../../../sovereign-sdk/module-system/module-implementations/sov-nft-module" } +sov-soft-confirmations-kernel = { path = "../../../sovereign-sdk/module-system/sov-soft-confirmations-kernel" } + +sov-mock-da = { path = "../../../sovereign-sdk/adapters/mock-da" } +sov-chain-state = { path = "../../../sovereign-sdk/module-system/module-implementations/sov-chain-state" } +sov-modules-stf-blueprint = { path = "../../../sovereign-sdk/module-system/sov-modules-stf-blueprint" } +sov-value-setter = { path = "../../../sovereign-sdk/module-system/module-implementations/examples/sov-value-setter" } +sov-accounts = { path = "../../../sovereign-sdk/module-system/module-implementations/sov-accounts" } +sov-state = { path = "../../../sovereign-sdk/module-system/sov-state" } +sov-modules-api = { path = "../../../sovereign-sdk/module-system/sov-modules-api" } +citrea-evm = { path = "../../../evm" } +soft-confirmation-rule-enforcer = { path = "../../../soft-confirmation-rule-enforcer" } + + +[dev-dependencies] +demo-stf = { path = ".", features = ["native"] } +tempfile = { workspace = true } +rand = { workspace = true } +sov-data-generators = { path = "../../../sovereign-sdk/module-system/utils/sov-data-generators" } +sov-mock-zkvm = { path = "../../../sovereign-sdk/adapters/mock-zkvm" } +sov-prover-storage-manager = { path = "../../../sovereign-sdk/full-node/sov-prover-storage-manager", features = [ + "test-utils", +] } + + +[features] +default = [] +offchain = ["sov-nft-module/offchain"] +native = [ + "sov-stf-runner/native", + "sov-bank/native", + "sov-nft-module/native", + "sov-cli", + "sov-accounts/native", + "sov-sequencer-registry/native", + "sov-blob-storage/native", + "sov-chain-state/native", + "sov-value-setter/native", + "sov-modules-api/native", + "sov-rollup-interface/native", + "sov-mock-da/native", + "sov-modules-stf-blueprint/native", + "sov-soft-confirmations-kernel/native", + "clap", + "serde", + "serde_json", + "jsonrpsee", + "tokio", + "toml", +] +serde = [ + "sov-bank/serde", + "sov-sequencer-registry/serde", + "sov-blob-storage/serde", + "sov-value-setter/serde", + "sov-accounts/serde", + "sov-nft-module/serde", + "citrea-evm/serde", + "soft-confirmation-rule-enforcer/serde", +] diff --git a/examples/demo-rollup/stf/README.md b/crates/sovereign-sdk/examples/demo-stf/README.md similarity index 100% rename from examples/demo-rollup/stf/README.md rename to crates/sovereign-sdk/examples/demo-stf/README.md diff --git a/examples/demo-rollup/stf/src/genesis_config.rs b/crates/sovereign-sdk/examples/demo-stf/src/genesis_config.rs similarity index 99% rename from examples/demo-rollup/stf/src/genesis_config.rs rename to crates/sovereign-sdk/examples/demo-stf/src/genesis_config.rs index d38ce0c94..6986c362b 100644 --- a/examples/demo-rollup/stf/src/genesis_config.rs +++ b/crates/sovereign-sdk/examples/demo-stf/src/genesis_config.rs @@ -6,10 +6,10 @@ use std::convert::AsRef; use std::path::{Path, PathBuf}; use anyhow::{bail, Context as _}; +use citrea_evm::EvmConfig; use soft_confirmation_rule_enforcer::SoftConfirmationRuleEnforcerConfig; use sov_accounts::AccountConfig; use sov_bank::BankConfig; -use sov_evm::EvmConfig; pub use sov_modules_api::default_context::DefaultContext; use sov_modules_api::Context; use sov_modules_stf_blueprint::Runtime as RuntimeTrait; diff --git a/examples/demo-rollup/stf/src/hooks_impl.rs b/crates/sovereign-sdk/examples/demo-stf/src/hooks_impl.rs similarity index 100% rename from examples/demo-rollup/stf/src/hooks_impl.rs rename to crates/sovereign-sdk/examples/demo-stf/src/hooks_impl.rs diff --git a/examples/demo-rollup/stf/src/lib.rs b/crates/sovereign-sdk/examples/demo-stf/src/lib.rs similarity index 100% rename from examples/demo-rollup/stf/src/lib.rs rename to crates/sovereign-sdk/examples/demo-stf/src/lib.rs diff --git a/examples/demo-rollup/stf/src/runtime.rs b/crates/sovereign-sdk/examples/demo-stf/src/runtime.rs similarity index 98% rename from examples/demo-rollup/stf/src/runtime.rs rename to crates/sovereign-sdk/examples/demo-stf/src/runtime.rs index 8df7bb72e..5bb3231de 100644 --- a/examples/demo-rollup/stf/src/runtime.rs +++ b/crates/sovereign-sdk/examples/demo-stf/src/runtime.rs @@ -32,6 +32,8 @@ #![allow(unused_doc_comments)] #[cfg(feature = "native")] +use citrea_evm::{EvmRpcImpl, EvmRpcServer}; +#[cfg(feature = "native")] use soft_confirmation_rule_enforcer::{ SoftConfirmationRuleEnforcerRpcImpl, SoftConfirmationRuleEnforcerRpcServer, }; @@ -40,8 +42,6 @@ use sov_accounts::{AccountsRpcImpl, AccountsRpcServer}; #[cfg(feature = "native")] use sov_bank::{BankRpcImpl, BankRpcServer}; #[cfg(feature = "native")] -use sov_evm::{EvmRpcImpl, EvmRpcServer}; -#[cfg(feature = "native")] pub use sov_modules_api::default_context::DefaultContext; use sov_modules_api::macros::DefaultRuntime; #[cfg(feature = "native")] @@ -78,7 +78,7 @@ pub struct Runtime { pub nft: sov_nft_module::NonFungibleToken, #[cfg_attr(feature = "native", cli_skip)] /// The EVM module. - pub evm: sov_evm::Evm, + pub evm: citrea_evm::Evm, /// The soft confirmation rule enforcer module. pub soft_confirmation_rule_enforcer: soft_confirmation_rule_enforcer::SoftConfirmationRuleEnforcer, diff --git a/examples/demo-rollup/stf/src/tests/da_simulation.rs b/crates/sovereign-sdk/examples/demo-stf/src/tests/da_simulation.rs similarity index 100% rename from examples/demo-rollup/stf/src/tests/da_simulation.rs rename to crates/sovereign-sdk/examples/demo-stf/src/tests/da_simulation.rs diff --git a/examples/demo-rollup/stf/src/tests/mod.rs b/crates/sovereign-sdk/examples/demo-stf/src/tests/mod.rs similarity index 94% rename from examples/demo-rollup/stf/src/tests/mod.rs rename to crates/sovereign-sdk/examples/demo-stf/src/tests/mod.rs index be90d3a00..25fc4d63f 100644 --- a/examples/demo-rollup/stf/src/tests/mod.rs +++ b/crates/sovereign-sdk/examples/demo-stf/src/tests/mod.rs @@ -39,7 +39,7 @@ pub(crate) fn create_storage_manager_for_tests( pub(crate) fn get_genesis_config_for_tests( ) -> GenesisParams, BasicKernelGenesisConfig> { - let integ_test_conf_dir: &Path = "../../test-data/genesis/integration-tests".as_ref(); + let integ_test_conf_dir: &Path = "../test-data/genesis/integration-tests".as_ref(); let rt_params = get_genesis_config::(&GenesisPaths::from_dir(integ_test_conf_dir)) .unwrap(); diff --git a/examples/demo-rollup/stf/src/tests/stf_tests.rs b/crates/sovereign-sdk/examples/demo-stf/src/tests/stf_tests.rs similarity index 99% rename from examples/demo-rollup/stf/src/tests/stf_tests.rs rename to crates/sovereign-sdk/examples/demo-stf/src/tests/stf_tests.rs index 781afe703..de636994a 100644 --- a/examples/demo-rollup/stf/src/tests/stf_tests.rs +++ b/crates/sovereign-sdk/examples/demo-stf/src/tests/stf_tests.rs @@ -276,7 +276,7 @@ fn test_sequencer_unknown_sequencer() { fn read_private_key() -> PrivateKeyAndAddress { let token_deployer_data = - std::fs::read_to_string("../../test-data/keys/token_deployer_private_key.json") + std::fs::read_to_string("../test-data/keys/token_deployer_private_key.json") .expect("Unable to read file to string"); let token_deployer: PrivateKeyAndAddress = serde_json::from_str(&token_deployer_data) diff --git a/examples/demo-rollup/stf/src/tests/tx_revert_tests.rs b/crates/sovereign-sdk/examples/demo-stf/src/tests/tx_revert_tests.rs similarity index 100% rename from examples/demo-rollup/stf/src/tests/tx_revert_tests.rs rename to crates/sovereign-sdk/examples/demo-stf/src/tests/tx_revert_tests.rs diff --git a/examples/simple-nft-module/Cargo.toml b/crates/sovereign-sdk/examples/simple-nft-module/Cargo.toml similarity index 100% rename from examples/simple-nft-module/Cargo.toml rename to crates/sovereign-sdk/examples/simple-nft-module/Cargo.toml diff --git a/examples/simple-nft-module/README.md b/crates/sovereign-sdk/examples/simple-nft-module/README.md similarity index 100% rename from examples/simple-nft-module/README.md rename to crates/sovereign-sdk/examples/simple-nft-module/README.md diff --git a/examples/simple-nft-module/src/call.rs b/crates/sovereign-sdk/examples/simple-nft-module/src/call.rs similarity index 100% rename from examples/simple-nft-module/src/call.rs rename to crates/sovereign-sdk/examples/simple-nft-module/src/call.rs diff --git a/examples/simple-nft-module/src/genesis.rs b/crates/sovereign-sdk/examples/simple-nft-module/src/genesis.rs similarity index 100% rename from examples/simple-nft-module/src/genesis.rs rename to crates/sovereign-sdk/examples/simple-nft-module/src/genesis.rs diff --git a/examples/simple-nft-module/src/lib.rs b/crates/sovereign-sdk/examples/simple-nft-module/src/lib.rs similarity index 100% rename from examples/simple-nft-module/src/lib.rs rename to crates/sovereign-sdk/examples/simple-nft-module/src/lib.rs diff --git a/examples/simple-nft-module/src/query.rs b/crates/sovereign-sdk/examples/simple-nft-module/src/query.rs similarity index 100% rename from examples/simple-nft-module/src/query.rs rename to crates/sovereign-sdk/examples/simple-nft-module/src/query.rs diff --git a/examples/simple-nft-module/src/tests.rs b/crates/sovereign-sdk/examples/simple-nft-module/src/tests.rs similarity index 100% rename from examples/simple-nft-module/src/tests.rs rename to crates/sovereign-sdk/examples/simple-nft-module/src/tests.rs diff --git a/examples/simple-nft-module/tests/nft_test.rs b/crates/sovereign-sdk/examples/simple-nft-module/tests/nft_test.rs similarity index 100% rename from examples/simple-nft-module/tests/nft_test.rs rename to crates/sovereign-sdk/examples/simple-nft-module/tests/nft_test.rs diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/accounts.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/accounts.json new file mode 100644 index 000000000..f65b078f6 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/accounts.json @@ -0,0 +1,3 @@ +{ + "pub_keys": [] +} diff --git a/examples/test-data/genesis/demo-tests/bitcoin/bank.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/bank.json similarity index 100% rename from examples/test-data/genesis/demo-tests/bitcoin/bank.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/bank.json diff --git a/examples/test-data/genesis/integration-tests/chain_state.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/chain_state.json similarity index 100% rename from examples/test-data/genesis/integration-tests/chain_state.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/chain_state.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/evm.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/evm.json new file mode 100644 index 000000000..c0bccaa0e --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/evm.json @@ -0,0 +1,25 @@ +{ + "data": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + } + ], + "chain_id": 5655, + "limit_contract_code_size": null, + "spec": { + "0": "SHANGHAI" + }, + "coinbase": "0x0000000000000000000000000000000000000000", + "starting_base_fee": 1000000000, + "block_gas_limit": 30000000, + "genesis_timestamp": 1705957200, + "block_timestamp_delta": 2, + "base_fee_params": { + "max_change_denominator": 8, + "elasticity_multiplier": 2 + } +} \ No newline at end of file diff --git a/examples/test-data/genesis/demo-tests/bitcoin/nft.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/nft.json similarity index 100% rename from examples/test-data/genesis/demo-tests/bitcoin/nft.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/nft.json diff --git a/examples/test-data/genesis/demo-tests/bitcoin/sequencer_registry.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/sequencer_registry.json similarity index 100% rename from examples/test-data/genesis/demo-tests/bitcoin/sequencer_registry.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/sequencer_registry.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/soft_confirmation_rule_enforcer.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/soft_confirmation_rule_enforcer.json new file mode 100644 index 000000000..53e17649b --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/soft_confirmation_rule_enforcer.json @@ -0,0 +1,5 @@ +{ + "limiting_number": 86400, + "authority": "sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94", + "l1_fee_rate_change_percentage": 10 +} \ No newline at end of file diff --git a/examples/test-data/genesis/demo-tests/bitcoin/value_setter.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/value_setter.json similarity index 100% rename from examples/test-data/genesis/demo-tests/bitcoin/value_setter.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/bitcoin/value_setter.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/accounts.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/accounts.json new file mode 100644 index 000000000..f65b078f6 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/accounts.json @@ -0,0 +1,3 @@ +{ + "pub_keys": [] +} diff --git a/examples/test-data/genesis/demo-tests/celestia/bank.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/bank.json similarity index 100% rename from examples/test-data/genesis/demo-tests/celestia/bank.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/bank.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/chain_state.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/chain_state.json new file mode 100644 index 000000000..d439a6854 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/chain_state.json @@ -0,0 +1,7 @@ +{ + "initial_slot_height": 0, + "current_time": { + "secs": 0, + "nanos": 0 + } +} diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/evm.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/evm.json new file mode 100644 index 000000000..a4dfe441b --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/evm.json @@ -0,0 +1,25 @@ +{ + "data": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + } + ], + "chain_id": 5655, + "limit_contract_code_size": null, + "spec": { + "0": "SHANGHAI" + }, + "coinbase": "0x0000000000000000000000000000000000000000", + "starting_base_fee": 1000000000, + "block_gas_limit": 30000000, + "genesis_timestamp": 1705957200, + "block_timestamp_delta": 2, + "base_fee_params": { + "max_change_denominator": 8, + "elasticity_multiplier": 2 + } +} diff --git a/examples/test-data/genesis/demo-tests/celestia/nft.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/nft.json similarity index 100% rename from examples/test-data/genesis/demo-tests/celestia/nft.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/nft.json diff --git a/examples/test-data/genesis/demo-tests/celestia/sequencer_registry.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/sequencer_registry.json similarity index 100% rename from examples/test-data/genesis/demo-tests/celestia/sequencer_registry.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/sequencer_registry.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/soft_confirmation_rule_enforcer.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/soft_confirmation_rule_enforcer.json new file mode 100644 index 000000000..53e17649b --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/soft_confirmation_rule_enforcer.json @@ -0,0 +1,5 @@ +{ + "limiting_number": 86400, + "authority": "sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94", + "l1_fee_rate_change_percentage": 10 +} \ No newline at end of file diff --git a/examples/test-data/genesis/demo-tests/celestia/value_setter.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/value_setter.json similarity index 100% rename from examples/test-data/genesis/demo-tests/celestia/value_setter.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/celestia/value_setter.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/accounts.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/accounts.json new file mode 100644 index 000000000..f65b078f6 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/accounts.json @@ -0,0 +1,3 @@ +{ + "pub_keys": [] +} diff --git a/examples/test-data/genesis/demo-tests/mock/bank.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/bank.json similarity index 100% rename from examples/test-data/genesis/demo-tests/mock/bank.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/bank.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/chain_state.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/chain_state.json new file mode 100644 index 000000000..d439a6854 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/chain_state.json @@ -0,0 +1,7 @@ +{ + "initial_slot_height": 0, + "current_time": { + "secs": 0, + "nanos": 0 + } +} diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/evm.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/evm.json new file mode 100644 index 000000000..35c5ca636 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/evm.json @@ -0,0 +1,81 @@ +{ + "data": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + }, + { + "address": "0x66f68692c03eB9C0656D676f2F4bD13eba40D1B7", + "balance": "0xffffffffffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + }, + { + "address": "0xaafB7442f7F00B64057C2e9EaE2815bb63Ee0EcE", + "balance": "0xffffffffffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + }, + { + "address": "0x9fCDf8f60d3009656E50Bf805Cd53C7335b284Fb", + "balance": "0xffffffffffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + }, + { + "address": "0xe756fdf89367EF428b48BCa2d272Ec8EcEC053fD", + "balance": "0xffffffffffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + }, + { + "address": "0x3AEEb871F83C85E68fFD1868bef3425eD6649D39", + "balance": "0xffffffffffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + }, + { + "address": "0xd44821f906E3909b8AE944F7060551c33b922cc9", + "balance": "0xffffffffffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + }, + { + "address": "0x0f820f428AE436C1000b27577bF5bbf09BfeC8f2", + "balance": "0xffffffffffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + }, + { + "address": "0xC2F8Eed77da1583f7bae0a3125Dc7BC426002dDE", + "balance": "0xffffffffffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + } + ], + "chain_id": 5655, + "limit_contract_code_size": null, + "spec": { + "0": "SHANGHAI" + }, + "coinbase": "0x0000000000000000000000000000000000000000", + "starting_base_fee": 1000000000, + "block_gas_limit": 30000000, + "genesis_timestamp": 1705957200, + "block_timestamp_delta": 2, + "base_fee_params": { + "max_change_denominator": 8, + "elasticity_multiplier": 2 + } +} \ No newline at end of file diff --git a/examples/test-data/genesis/demo-tests/mock/nft.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/nft.json similarity index 100% rename from examples/test-data/genesis/demo-tests/mock/nft.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/nft.json diff --git a/examples/test-data/genesis/demo-tests/mock/sequencer_registry.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/sequencer_registry.json similarity index 100% rename from examples/test-data/genesis/demo-tests/mock/sequencer_registry.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/sequencer_registry.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/soft_confirmation_rule_enforcer.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/soft_confirmation_rule_enforcer.json new file mode 100644 index 000000000..53e17649b --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/soft_confirmation_rule_enforcer.json @@ -0,0 +1,5 @@ +{ + "limiting_number": 86400, + "authority": "sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94", + "l1_fee_rate_change_percentage": 10 +} \ No newline at end of file diff --git a/examples/test-data/genesis/demo-tests/mock/value_setter.json b/crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/value_setter.json similarity index 100% rename from examples/test-data/genesis/demo-tests/mock/value_setter.json rename to crates/sovereign-sdk/examples/test-data/genesis/demo-tests/mock/value_setter.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/accounts.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/accounts.json new file mode 100644 index 000000000..f65b078f6 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/accounts.json @@ -0,0 +1,3 @@ +{ + "pub_keys": [] +} diff --git a/examples/test-data/genesis/integration-tests-low-limiting-number/bank.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/bank.json similarity index 100% rename from examples/test-data/genesis/integration-tests-low-limiting-number/bank.json rename to crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/bank.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/chain_state.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/chain_state.json new file mode 100644 index 000000000..d439a6854 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/chain_state.json @@ -0,0 +1,7 @@ +{ + "initial_slot_height": 0, + "current_time": { + "secs": 0, + "nanos": 0 + } +} diff --git a/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/evm.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/evm.json new file mode 100644 index 000000000..cfd6048ec --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/evm.json @@ -0,0 +1,25 @@ +{ + "data": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + } + ], + "chain_id": 5655, + "limit_contract_code_size": null, + "spec": { + "0": "SHANGHAI" + }, + "coinbase": "0x0000000000000000000000000000000000000000", + "starting_base_fee": 1000000000, + "block_gas_limit": 30000000, + "genesis_timestamp": 0, + "block_timestamp_delta": 1, + "base_fee_params": { + "max_change_denominator": 8, + "elasticity_multiplier": 2 + } +} \ No newline at end of file diff --git a/examples/test-data/genesis/integration-tests-low-limiting-number/nft.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/nft.json similarity index 100% rename from examples/test-data/genesis/integration-tests-low-limiting-number/nft.json rename to crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/nft.json diff --git a/examples/test-data/genesis/integration-tests-low-limiting-number/sequencer_registry.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/sequencer_registry.json similarity index 100% rename from examples/test-data/genesis/integration-tests-low-limiting-number/sequencer_registry.json rename to crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/sequencer_registry.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/soft_confirmation_rule_enforcer.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/soft_confirmation_rule_enforcer.json new file mode 100644 index 000000000..b082a1825 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/soft_confirmation_rule_enforcer.json @@ -0,0 +1,5 @@ +{ + "limiting_number": 10, + "authority": "sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94", + "l1_fee_rate_change_percentage": 10 +} \ No newline at end of file diff --git a/examples/test-data/genesis/integration-tests-low-limiting-number/value_setter.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/value_setter.json similarity index 100% rename from examples/test-data/genesis/integration-tests-low-limiting-number/value_setter.json rename to crates/sovereign-sdk/examples/test-data/genesis/integration-tests-low-limiting-number/value_setter.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/accounts.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/accounts.json new file mode 100644 index 000000000..f65b078f6 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/accounts.json @@ -0,0 +1,3 @@ +{ + "pub_keys": [] +} diff --git a/examples/test-data/genesis/integration-tests/bank.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/bank.json similarity index 100% rename from examples/test-data/genesis/integration-tests/bank.json rename to crates/sovereign-sdk/examples/test-data/genesis/integration-tests/bank.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/chain_state.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/chain_state.json new file mode 100644 index 000000000..d439a6854 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/chain_state.json @@ -0,0 +1,7 @@ +{ + "initial_slot_height": 0, + "current_time": { + "secs": 0, + "nanos": 0 + } +} diff --git a/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/evm.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/evm.json new file mode 100644 index 000000000..9be666473 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/evm.json @@ -0,0 +1,25 @@ +{ + "data": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "balance": "0xffffffffffffffffffffff", + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "code": "0x", + "nonce": 0 + } + ], + "chain_id": 5655, + "limit_contract_code_size": null, + "spec": { + "0": "SHANGHAI" + }, + "coinbase": "0x0000000000000000000000000000000000000000", + "starting_base_fee": 1000000000, + "block_gas_limit": 30000000, + "genesis_timestamp": 1705957200, + "block_timestamp_delta": 2, + "base_fee_params": { + "max_change_denominator": 8, + "elasticity_multiplier": 2 + } +} \ No newline at end of file diff --git a/examples/test-data/genesis/integration-tests/nft.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/nft.json similarity index 100% rename from examples/test-data/genesis/integration-tests/nft.json rename to crates/sovereign-sdk/examples/test-data/genesis/integration-tests/nft.json diff --git a/examples/test-data/genesis/integration-tests/sequencer_registry.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/sequencer_registry.json similarity index 100% rename from examples/test-data/genesis/integration-tests/sequencer_registry.json rename to crates/sovereign-sdk/examples/test-data/genesis/integration-tests/sequencer_registry.json diff --git a/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/soft_confirmation_rule_enforcer.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/soft_confirmation_rule_enforcer.json new file mode 100644 index 000000000..39daab062 --- /dev/null +++ b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/soft_confirmation_rule_enforcer.json @@ -0,0 +1,6 @@ +{ + "limiting_number": 86400, + "authority": "sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94", + "l1_fee_rate_change_percentage": 10 + +} \ No newline at end of file diff --git a/examples/test-data/genesis/integration-tests/value_setter.json b/crates/sovereign-sdk/examples/test-data/genesis/integration-tests/value_setter.json similarity index 100% rename from examples/test-data/genesis/integration-tests/value_setter.json rename to crates/sovereign-sdk/examples/test-data/genesis/integration-tests/value_setter.json diff --git a/examples/test-data/keys/minter_private_key.json b/crates/sovereign-sdk/examples/test-data/keys/minter_private_key.json similarity index 100% rename from examples/test-data/keys/minter_private_key.json rename to crates/sovereign-sdk/examples/test-data/keys/minter_private_key.json diff --git a/examples/test-data/keys/token_deployer_private_key.json b/crates/sovereign-sdk/examples/test-data/keys/token_deployer_private_key.json similarity index 100% rename from examples/test-data/keys/token_deployer_private_key.json rename to crates/sovereign-sdk/examples/test-data/keys/token_deployer_private_key.json diff --git a/examples/test-data/keys/tx_signer_private_key.json b/crates/sovereign-sdk/examples/test-data/keys/tx_signer_private_key.json similarity index 100% rename from examples/test-data/keys/tx_signer_private_key.json rename to crates/sovereign-sdk/examples/test-data/keys/tx_signer_private_key.json diff --git a/examples/test-data/requests/burn.json b/crates/sovereign-sdk/examples/test-data/requests/burn.json similarity index 100% rename from examples/test-data/requests/burn.json rename to crates/sovereign-sdk/examples/test-data/requests/burn.json diff --git a/examples/test-data/requests/create_token.json b/crates/sovereign-sdk/examples/test-data/requests/create_token.json similarity index 100% rename from examples/test-data/requests/create_token.json rename to crates/sovereign-sdk/examples/test-data/requests/create_token.json diff --git a/examples/test-data/requests/mint.json b/crates/sovereign-sdk/examples/test-data/requests/mint.json similarity index 100% rename from examples/test-data/requests/mint.json rename to crates/sovereign-sdk/examples/test-data/requests/mint.json diff --git a/examples/test-data/requests/nft/create_collection.json b/crates/sovereign-sdk/examples/test-data/requests/nft/create_collection.json similarity index 100% rename from examples/test-data/requests/nft/create_collection.json rename to crates/sovereign-sdk/examples/test-data/requests/nft/create_collection.json diff --git a/examples/test-data/requests/nft/freeze_collection.json b/crates/sovereign-sdk/examples/test-data/requests/nft/freeze_collection.json similarity index 100% rename from examples/test-data/requests/nft/freeze_collection.json rename to crates/sovereign-sdk/examples/test-data/requests/nft/freeze_collection.json diff --git a/examples/test-data/requests/nft/mint_nft.json b/crates/sovereign-sdk/examples/test-data/requests/nft/mint_nft.json similarity index 100% rename from examples/test-data/requests/nft/mint_nft.json rename to crates/sovereign-sdk/examples/test-data/requests/nft/mint_nft.json diff --git a/examples/test-data/requests/nft/transfer_nft.json b/crates/sovereign-sdk/examples/test-data/requests/nft/transfer_nft.json similarity index 100% rename from examples/test-data/requests/nft/transfer_nft.json rename to crates/sovereign-sdk/examples/test-data/requests/nft/transfer_nft.json diff --git a/examples/test-data/requests/nft/update_token_uri.json b/crates/sovereign-sdk/examples/test-data/requests/nft/update_token_uri.json similarity index 100% rename from examples/test-data/requests/nft/update_token_uri.json rename to crates/sovereign-sdk/examples/test-data/requests/nft/update_token_uri.json diff --git a/examples/test-data/requests/register_sequencer.json b/crates/sovereign-sdk/examples/test-data/requests/register_sequencer.json similarity index 100% rename from examples/test-data/requests/register_sequencer.json rename to crates/sovereign-sdk/examples/test-data/requests/register_sequencer.json diff --git a/examples/test-data/requests/transfer.json b/crates/sovereign-sdk/examples/test-data/requests/transfer.json similarity index 100% rename from examples/test-data/requests/transfer.json rename to crates/sovereign-sdk/examples/test-data/requests/transfer.json diff --git a/full-node/db/sov-db/Cargo.toml b/crates/sovereign-sdk/full-node/db/sov-db/Cargo.toml similarity index 100% rename from full-node/db/sov-db/Cargo.toml rename to crates/sovereign-sdk/full-node/db/sov-db/Cargo.toml diff --git a/full-node/db/sov-db/README.md b/crates/sovereign-sdk/full-node/db/sov-db/README.md similarity index 100% rename from full-node/db/sov-db/README.md rename to crates/sovereign-sdk/full-node/db/sov-db/README.md diff --git a/full-node/db/sov-db/benches/state_db_bench.rs b/crates/sovereign-sdk/full-node/db/sov-db/benches/state_db_bench.rs similarity index 100% rename from full-node/db/sov-db/benches/state_db_bench.rs rename to crates/sovereign-sdk/full-node/db/sov-db/benches/state_db_bench.rs diff --git a/full-node/db/sov-db/src/ledger_db/mod.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/mod.rs similarity index 100% rename from full-node/db/sov-db/src/ledger_db/mod.rs rename to crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/mod.rs diff --git a/full-node/db/sov-db/src/ledger_db/rpc.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/rpc.rs similarity index 100% rename from full-node/db/sov-db/src/ledger_db/rpc.rs rename to crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/rpc.rs diff --git a/full-node/db/sov-db/src/lib.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/lib.rs similarity index 100% rename from full-node/db/sov-db/src/lib.rs rename to crates/sovereign-sdk/full-node/db/sov-db/src/lib.rs diff --git a/full-node/db/sov-db/src/native_db.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/native_db.rs similarity index 100% rename from full-node/db/sov-db/src/native_db.rs rename to crates/sovereign-sdk/full-node/db/sov-db/src/native_db.rs diff --git a/full-node/db/sov-db/src/rocks_db_config.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/rocks_db_config.rs similarity index 100% rename from full-node/db/sov-db/src/rocks_db_config.rs rename to crates/sovereign-sdk/full-node/db/sov-db/src/rocks_db_config.rs diff --git a/full-node/db/sov-db/src/schema/mod.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/schema/mod.rs similarity index 100% rename from full-node/db/sov-db/src/schema/mod.rs rename to crates/sovereign-sdk/full-node/db/sov-db/src/schema/mod.rs diff --git a/full-node/db/sov-db/src/schema/tables.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/schema/tables.rs similarity index 100% rename from full-node/db/sov-db/src/schema/tables.rs rename to crates/sovereign-sdk/full-node/db/sov-db/src/schema/tables.rs diff --git a/full-node/db/sov-db/src/schema/types.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/schema/types.rs similarity index 100% rename from full-node/db/sov-db/src/schema/types.rs rename to crates/sovereign-sdk/full-node/db/sov-db/src/schema/types.rs diff --git a/full-node/db/sov-db/src/state_db.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/state_db.rs similarity index 100% rename from full-node/db/sov-db/src/state_db.rs rename to crates/sovereign-sdk/full-node/db/sov-db/src/state_db.rs diff --git a/full-node/db/sov-schema-db/Cargo.toml b/crates/sovereign-sdk/full-node/db/sov-schema-db/Cargo.toml similarity index 100% rename from full-node/db/sov-schema-db/Cargo.toml rename to crates/sovereign-sdk/full-node/db/sov-schema-db/Cargo.toml diff --git a/full-node/db/sov-schema-db/README.md b/crates/sovereign-sdk/full-node/db/sov-schema-db/README.md similarity index 100% rename from full-node/db/sov-schema-db/README.md rename to crates/sovereign-sdk/full-node/db/sov-schema-db/README.md diff --git a/full-node/db/sov-schema-db/src/iterator.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/iterator.rs similarity index 100% rename from full-node/db/sov-schema-db/src/iterator.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/src/iterator.rs diff --git a/full-node/db/sov-schema-db/src/lib.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/lib.rs similarity index 100% rename from full-node/db/sov-schema-db/src/lib.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/src/lib.rs diff --git a/full-node/db/sov-schema-db/src/metrics.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/metrics.rs similarity index 100% rename from full-node/db/sov-schema-db/src/metrics.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/src/metrics.rs diff --git a/full-node/db/sov-schema-db/src/schema.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/schema.rs similarity index 100% rename from full-node/db/sov-schema-db/src/schema.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/src/schema.rs diff --git a/full-node/db/sov-schema-db/src/schema_batch.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/schema_batch.rs similarity index 100% rename from full-node/db/sov-schema-db/src/schema_batch.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/src/schema_batch.rs diff --git a/full-node/db/sov-schema-db/src/snapshot.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/snapshot.rs similarity index 100% rename from full-node/db/sov-schema-db/src/snapshot.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/src/snapshot.rs diff --git a/full-node/db/sov-schema-db/src/test.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/src/test.rs similarity index 100% rename from full-node/db/sov-schema-db/src/test.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/src/test.rs diff --git a/full-node/db/sov-schema-db/tests/db_test.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/tests/db_test.rs similarity index 100% rename from full-node/db/sov-schema-db/tests/db_test.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/tests/db_test.rs diff --git a/full-node/db/sov-schema-db/tests/iterator_test.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/tests/iterator_test.rs similarity index 100% rename from full-node/db/sov-schema-db/tests/iterator_test.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/tests/iterator_test.rs diff --git a/full-node/db/sov-schema-db/tests/snapshot_test.rs b/crates/sovereign-sdk/full-node/db/sov-schema-db/tests/snapshot_test.rs similarity index 100% rename from full-node/db/sov-schema-db/tests/snapshot_test.rs rename to crates/sovereign-sdk/full-node/db/sov-schema-db/tests/snapshot_test.rs diff --git a/full-node/sov-ledger-rpc/Cargo.toml b/crates/sovereign-sdk/full-node/sov-ledger-rpc/Cargo.toml similarity index 100% rename from full-node/sov-ledger-rpc/Cargo.toml rename to crates/sovereign-sdk/full-node/sov-ledger-rpc/Cargo.toml diff --git a/full-node/sov-ledger-rpc/src/client.rs b/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/client.rs similarity index 100% rename from full-node/sov-ledger-rpc/src/client.rs rename to crates/sovereign-sdk/full-node/sov-ledger-rpc/src/client.rs diff --git a/full-node/sov-ledger-rpc/src/lib.rs b/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/lib.rs similarity index 100% rename from full-node/sov-ledger-rpc/src/lib.rs rename to crates/sovereign-sdk/full-node/sov-ledger-rpc/src/lib.rs diff --git a/full-node/sov-ledger-rpc/src/server.rs b/crates/sovereign-sdk/full-node/sov-ledger-rpc/src/server.rs similarity index 100% rename from full-node/sov-ledger-rpc/src/server.rs rename to crates/sovereign-sdk/full-node/sov-ledger-rpc/src/server.rs diff --git a/full-node/sov-ledger-rpc/tests/empty_ledger.rs b/crates/sovereign-sdk/full-node/sov-ledger-rpc/tests/empty_ledger.rs similarity index 100% rename from full-node/sov-ledger-rpc/tests/empty_ledger.rs rename to crates/sovereign-sdk/full-node/sov-ledger-rpc/tests/empty_ledger.rs diff --git a/full-node/sov-prover-storage-manager/Cargo.toml b/crates/sovereign-sdk/full-node/sov-prover-storage-manager/Cargo.toml similarity index 100% rename from full-node/sov-prover-storage-manager/Cargo.toml rename to crates/sovereign-sdk/full-node/sov-prover-storage-manager/Cargo.toml diff --git a/full-node/sov-prover-storage-manager/README.md b/crates/sovereign-sdk/full-node/sov-prover-storage-manager/README.md similarity index 100% rename from full-node/sov-prover-storage-manager/README.md rename to crates/sovereign-sdk/full-node/sov-prover-storage-manager/README.md diff --git a/full-node/sov-prover-storage-manager/benches/single_thread_progression.rs b/crates/sovereign-sdk/full-node/sov-prover-storage-manager/benches/single_thread_progression.rs similarity index 100% rename from full-node/sov-prover-storage-manager/benches/single_thread_progression.rs rename to crates/sovereign-sdk/full-node/sov-prover-storage-manager/benches/single_thread_progression.rs diff --git a/full-node/sov-prover-storage-manager/src/dummy_storage.rs b/crates/sovereign-sdk/full-node/sov-prover-storage-manager/src/dummy_storage.rs similarity index 100% rename from full-node/sov-prover-storage-manager/src/dummy_storage.rs rename to crates/sovereign-sdk/full-node/sov-prover-storage-manager/src/dummy_storage.rs diff --git a/full-node/sov-prover-storage-manager/src/lib.rs b/crates/sovereign-sdk/full-node/sov-prover-storage-manager/src/lib.rs similarity index 100% rename from full-node/sov-prover-storage-manager/src/lib.rs rename to crates/sovereign-sdk/full-node/sov-prover-storage-manager/src/lib.rs diff --git a/full-node/sov-prover-storage-manager/src/snapshot_manager.rs b/crates/sovereign-sdk/full-node/sov-prover-storage-manager/src/snapshot_manager.rs similarity index 100% rename from full-node/sov-prover-storage-manager/src/snapshot_manager.rs rename to crates/sovereign-sdk/full-node/sov-prover-storage-manager/src/snapshot_manager.rs diff --git a/full-node/sov-sequencer/Cargo.toml b/crates/sovereign-sdk/full-node/sov-sequencer/Cargo.toml similarity index 100% rename from full-node/sov-sequencer/Cargo.toml rename to crates/sovereign-sdk/full-node/sov-sequencer/Cargo.toml diff --git a/full-node/sov-sequencer/README.md b/crates/sovereign-sdk/full-node/sov-sequencer/README.md similarity index 100% rename from full-node/sov-sequencer/README.md rename to crates/sovereign-sdk/full-node/sov-sequencer/README.md diff --git a/full-node/sov-sequencer/src/batch_builder.rs b/crates/sovereign-sdk/full-node/sov-sequencer/src/batch_builder.rs similarity index 100% rename from full-node/sov-sequencer/src/batch_builder.rs rename to crates/sovereign-sdk/full-node/sov-sequencer/src/batch_builder.rs diff --git a/full-node/sov-sequencer/src/lib.rs b/crates/sovereign-sdk/full-node/sov-sequencer/src/lib.rs similarity index 100% rename from full-node/sov-sequencer/src/lib.rs rename to crates/sovereign-sdk/full-node/sov-sequencer/src/lib.rs diff --git a/full-node/sov-sequencer/src/utils.rs b/crates/sovereign-sdk/full-node/sov-sequencer/src/utils.rs similarity index 100% rename from full-node/sov-sequencer/src/utils.rs rename to crates/sovereign-sdk/full-node/sov-sequencer/src/utils.rs diff --git a/full-node/sov-stf-runner/Cargo.toml b/crates/sovereign-sdk/full-node/sov-stf-runner/Cargo.toml similarity index 97% rename from full-node/sov-stf-runner/Cargo.toml rename to crates/sovereign-sdk/full-node/sov-stf-runner/Cargo.toml index 29b7a5c2d..2ef3a6db3 100644 --- a/full-node/sov-stf-runner/Cargo.toml +++ b/crates/sovereign-sdk/full-node/sov-stf-runner/Cargo.toml @@ -34,7 +34,7 @@ sov-rollup-interface = { path = "../../rollup-interface", version = "0.3" } sov-modules-stf-blueprint = { path = "../../module-system/sov-modules-stf-blueprint", features = [ "native", ] } -sequencer-client = { path = "../sequencer-client" } +sequencer-client = { path = "../../../sequencer-client" } sov-modules-api = { path = "../../module-system/sov-modules-api", version = "0.3" } diff --git a/full-node/sov-stf-runner/README.md b/crates/sovereign-sdk/full-node/sov-stf-runner/README.md similarity index 100% rename from full-node/sov-stf-runner/README.md rename to crates/sovereign-sdk/full-node/sov-stf-runner/README.md diff --git a/full-node/sov-stf-runner/src/config.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/config.rs similarity index 100% rename from full-node/sov-stf-runner/src/config.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/src/config.rs diff --git a/full-node/sov-stf-runner/src/lib.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/lib.rs similarity index 100% rename from full-node/sov-stf-runner/src/lib.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/src/lib.rs diff --git a/full-node/sov-stf-runner/src/mock/mod.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/mock/mod.rs similarity index 100% rename from full-node/sov-stf-runner/src/mock/mod.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/src/mock/mod.rs diff --git a/full-node/sov-stf-runner/src/prover_service/mod.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/prover_service/mod.rs similarity index 100% rename from full-node/sov-stf-runner/src/prover_service/mod.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/src/prover_service/mod.rs diff --git a/full-node/sov-stf-runner/src/prover_service/parallel/mod.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/prover_service/parallel/mod.rs similarity index 100% rename from full-node/sov-stf-runner/src/prover_service/parallel/mod.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/src/prover_service/parallel/mod.rs diff --git a/full-node/sov-stf-runner/src/prover_service/parallel/prover.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/prover_service/parallel/prover.rs similarity index 100% rename from full-node/sov-stf-runner/src/prover_service/parallel/prover.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/src/prover_service/parallel/prover.rs diff --git a/full-node/sov-stf-runner/src/runner.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/runner.rs similarity index 100% rename from full-node/sov-stf-runner/src/runner.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/src/runner.rs diff --git a/full-node/sov-stf-runner/src/verifier.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/verifier.rs similarity index 100% rename from full-node/sov-stf-runner/src/verifier.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/src/verifier.rs diff --git a/full-node/sov-stf-runner/tests/hash_stf.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/tests/hash_stf.rs similarity index 100% rename from full-node/sov-stf-runner/tests/hash_stf.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/tests/hash_stf.rs diff --git a/full-node/sov-stf-runner/tests/prover_tests.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/tests/prover_tests.rs similarity index 100% rename from full-node/sov-stf-runner/tests/prover_tests.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/tests/prover_tests.rs diff --git a/full-node/sov-stf-runner/tests/runner_initialization_tests.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/tests/runner_initialization_tests.rs similarity index 100% rename from full-node/sov-stf-runner/tests/runner_initialization_tests.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/tests/runner_initialization_tests.rs diff --git a/full-node/sov-stf-runner/tests/runner_reorg_tests.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/tests/runner_reorg_tests.rs similarity index 100% rename from full-node/sov-stf-runner/tests/runner_reorg_tests.rs rename to crates/sovereign-sdk/full-node/sov-stf-runner/tests/runner_reorg_tests.rs diff --git a/crates/sovereign-sdk/fuzz/Cargo.lock b/crates/sovereign-sdk/fuzz/Cargo.lock new file mode 100644 index 000000000..729458475 --- /dev/null +++ b/crates/sovereign-sdk/fuzz/Cargo.lock @@ -0,0 +1,3927 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d58d9f5da7b40e9bfff0b7e7816700be4019db97d4b6359fe7f94a9e22e42ac" +dependencies = [ + "arrayvec", + "bytes", +] + +[[package]] +name = "anstream" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint", + "num-traits", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-trait" +version = "0.1.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "autocfg" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" + +[[package]] +name = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" +dependencies = [ + "serde", + "thiserror", +] + +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "prettyplease", + "proc-macro2 1.0.79", + "quote 1.0.35", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.55", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake3" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "borsh" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +dependencies = [ + "borsh-derive", + "bytes", + "hashbrown 0.13.2", +] + +[[package]] +name = "borsh-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate 0.1.5", + "proc-macro2 1.0.79", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "bumpalo" +version = "3.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cc" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "celestia-proto" +version = "0.1.0" +source = "git+https://github.com/eigerco/celestia-node-rs.git?rev=66b7c6c#66b7c6cd58213c0cbf79207ba549cef82764ddca" +dependencies = [ + "anyhow", + "prost", + "prost-build", + "prost-types", + "serde", + "tendermint-proto", +] + +[[package]] +name = "celestia-rpc" +version = "0.1.0" +source = "git+https://github.com/eigerco/celestia-node-rs.git?rev=66b7c6c#66b7c6cd58213c0cbf79207ba549cef82764ddca" +dependencies = [ + "async-trait", + "celestia-types", + "http", + "jsonrpsee", + "serde", + "thiserror", + "tracing", +] + +[[package]] +name = "celestia-types" +version = "0.1.0" +source = "git+https://github.com/eigerco/celestia-node-rs.git?rev=66b7c6c#66b7c6cd58213c0cbf79207ba549cef82764ddca" +dependencies = [ + "base64 0.21.7", + "bech32", + "bytes", + "celestia-proto", + "cid", + "const_format", + "enum_dispatch", + "getrandom", + "nmt-rs", + "ruint", + "serde", + "sha2 0.10.8", + "tendermint", + "tendermint-proto", + "thiserror", + "wasm-bindgen-test", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cid" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" +dependencies = [ + "core2", + "multibase", + "multihash", + "serde", + "unsigned-varint", +] + +[[package]] +name = "clang-sys" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +dependencies = [ + "heck 0.5.0", + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const_format" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "unicode-xid 0.2.4", +] + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version 0.4.0", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "data-encoding" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" + +[[package]] +name = "data-encoding-macro" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "derive_arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2 1.0.79", + "quote 1.0.35", + "rustc_version 0.4.0", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common", + "subtle", +] + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "serde", + "signature", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core", + "serde", + "sha2 0.10.8", + "zeroize", +] + +[[package]] +name = "either" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" + +[[package]] +name = "enum_dispatch" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e" +dependencies = [ + "once_cell", + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fastrand" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c007b1ae3abe1cb6f85a16305acd418b7ca6343b953633fee2b76d8f108b830f" + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flex-error" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" +dependencies = [ + "eyre", + "paste", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "h2" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", +] + +[[package]] +name = "ics23" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc3b8be84e7285c73b88effdc3294b552277d6b0ec728ee016c861b7b9a2c19c" +dependencies = [ + "anyhow", + "blake2", + "blake3", + "bytes", + "hex", + "informalsystems-pbjson", + "prost", + "ripemd", + "serde", + "sha2 0.10.8", + "sha3", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", +] + +[[package]] +name = "informalsystems-pbjson" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa4a0980c8379295100d70854354e78df2ee1c6ca0f96ffe89afeb3140e3a3d" +dependencies = [ + "base64 0.21.7", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jmt" +version = "0.9.0" +source = "git+https://github.com/penumbra-zone/jmt.git?rev=1d007e11cb68aa5ca13e9a5af4a12e6439d5f7b6#1d007e11cb68aa5ca13e9a5af4a12e6439d5f7b6" +dependencies = [ + "anyhow", + "borsh", + "digest 0.10.7", + "hashbrown 0.13.2", + "hex", + "ics23", + "itertools 0.10.5", + "mirai-annotations", + "num-derive", + "num-traits", + "serde", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "jobserver" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpsee" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "affdc52f7596ccb2d7645231fc6163bb314630c989b64998f3699a28b4d5d4dc" +dependencies = [ + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-ws-client", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b005c793122d03217da09af68ba9383363caa950b90d3436106df8cabce935" +dependencies = [ + "futures-util", + "http", + "jsonrpsee-core", + "pin-project", + "rustls-native-certs", + "soketto", + "thiserror", + "tokio", + "tokio-rustls", + "tokio-util", + "tracing", + "url", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da2327ba8df2fdbd5e897e2b5ed25ce7f299d345b9736b6828814c3dbd1fd47b" +dependencies = [ + "anyhow", + "async-lock", + "async-trait", + "beef", + "futures-timer", + "futures-util", + "hyper", + "jsonrpsee-types", + "parking_lot", + "rand", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f80c17f62c7653ce767e3d7288b793dfec920f97067ceb189ebdd3570f2bc20" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls", + "jsonrpsee-core", + "jsonrpsee-types", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "tracing", + "url", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29110019693a4fa2dbda04876499d098fa16d70eba06b1e6e2b3f1b251419515" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 1.1.3", + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82c39a00449c9ef3f50b84fc00fc4acba20ef8f559f07902244abf4c15c5ab9c" +dependencies = [ + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "route-recognizer", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be0be325642e850ed0bdff426674d2e66b2b7117c9be23a7caef68a2902b7d9" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bca9cb3933ccae417eb6b08c3448eb1cb46e39834e5b503e395e5e5bd08546c0" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", + "url", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libfuzzer-sys" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" +dependencies = [ + "arbitrary", + "cc", + "once_cell", +] + +[[package]] +name = "libloading" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +dependencies = [ + "cfg-if", + "windows-targets 0.52.4", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "librocksdb-sys" +version = "0.11.0+8.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", +] + +[[package]] +name = "libz-sys" +version = "1.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "lz4-sys" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "memchr" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "mirai-annotations" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "core2", + "multihash-derive", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "nmt-rs" +version = "0.1.0" +source = "git+https://github.com/Sovereign-Labs/nmt-rs.git?rev=d821332#d821332baa03aea625d23060dc239af57b9121f5" +dependencies = [ + "borsh", + "bytes", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "parity-scale-codec" +version = "3.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +dependencies = [ + "proc-macro-crate 2.0.2", + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "platforms" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "prettyplease" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" +dependencies = [ + "proc-macro2 1.0.79", + "syn 2.0.55", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +dependencies = [ + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot", + "thiserror", +] + +[[package]] +name = "proptest" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.5.0", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "proptest-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b46295382dc76166cb7cf2bb4a97952464e4b7ed5a43e6cd34e1fec3349ddc" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "prost" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" +dependencies = [ + "bytes", + "heck 0.4.1", + "itertools 0.11.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.55", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "prost-types" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +dependencies = [ + "prost", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2 1.0.79", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rustc-hex", +] + +[[package]] +name = "rocksdb" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + +[[package]] +name = "ruint" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f308135fef9fc398342da5472ce7c484529df23743fb7c734e0f3d472971e62" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f86854cf50259291520509879a5c294c3c9a4c334e9ff65071c51e42ef1e2343" + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.22", +] + +[[package]] +name = "rustix" +version = "0.38.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "schemars" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "serde_derive_internals", + "syn 1.0.109", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.197" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", +] + +[[package]] +name = "serde_json" +version = "1.0.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "rand_core", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "futures", + "http", + "httparse", + "log", + "rand", + "sha-1", +] + +[[package]] +name = "sov-accounts" +version = "0.3.0" +dependencies = [ + "anyhow", + "arbitrary", + "borsh", + "clap", + "jsonrpsee", + "proptest", + "proptest-derive", + "schemars", + "serde", + "serde_json", + "sov-modules-api", + "sov-state", + "thiserror", +] + +[[package]] +name = "sov-bank" +version = "0.3.0" +dependencies = [ + "anyhow", + "borsh", + "clap", + "jsonrpsee", + "schemars", + "serde", + "serde_json", + "sov-modules-api", + "sov-state", + "thiserror", +] + +[[package]] +name = "sov-celestia-adapter" +version = "0.3.0" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.7", + "bech32", + "borsh", + "celestia-proto", + "celestia-rpc", + "celestia-types", + "futures", + "hex", + "jsonrpsee", + "nmt-rs", + "pin-project", + "prost", + "serde", + "serde_json", + "sha2 0.10.8", + "sov-rollup-interface", + "tendermint", + "tendermint-proto", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "sov-db" +version = "0.3.0" +dependencies = [ + "anyhow", + "bincode", + "borsh", + "byteorder", + "jmt", + "rocksdb", + "serde", + "sov-rollup-interface", + "sov-schema-db", + "tokio", +] + +[[package]] +name = "sov-modules-api" +version = "0.3.0" +dependencies = [ + "anyhow", + "arbitrary", + "bech32", + "borsh", + "clap", + "derive_more", + "ed25519-dalek", + "hex", + "jmt", + "jsonrpsee", + "proptest", + "proptest-derive", + "rand", + "schemars", + "serde", + "serde_json", + "sha2 0.10.8", + "sov-modules-core", + "sov-modules-macros", + "sov-prover-storage-manager", + "sov-rollup-interface", + "sov-state", + "thiserror", +] + +[[package]] +name = "sov-modules-core" +version = "0.3.0" +dependencies = [ + "anyhow", + "arbitrary", + "bech32", + "borsh", + "derive_more", + "digest 0.10.7", + "hex", + "jmt", + "proptest", + "proptest-derive", + "schemars", + "serde", + "sha2 0.10.8", + "sov-rollup-interface", + "thiserror", +] + +[[package]] +name = "sov-modules-macros" +version = "0.3.0" +dependencies = [ + "anyhow", + "borsh", + "jsonrpsee", + "proc-macro2 1.0.79", + "quote 1.0.35", + "schemars", + "serde_json", + "sov-modules-core", + "syn 1.0.109", +] + +[[package]] +name = "sov-prover-storage-manager" +version = "0.3.0" +dependencies = [ + "anyhow", + "sov-db", + "sov-rollup-interface", + "sov-schema-db", + "sov-state", + "tracing", +] + +[[package]] +name = "sov-rollup-interface" +version = "0.3.0" +dependencies = [ + "anyhow", + "async-trait", + "borsh", + "bytes", + "digest 0.10.7", + "futures", + "hex", + "proptest", + "serde", + "sha2 0.10.8", + "thiserror", + "tokio", +] + +[[package]] +name = "sov-schema-db" +version = "0.3.0" +dependencies = [ + "anyhow", + "once_cell", + "prometheus", + "rocksdb", + "thiserror", + "tracing", +] + +[[package]] +name = "sov-state" +version = "0.3.0" +dependencies = [ + "anyhow", + "arbitrary", + "bcs", + "borsh", + "hex", + "jmt", + "proptest", + "proptest-derive", + "serde", + "serde_json", + "sha2 0.10.8", + "sov-db", + "sov-modules-core", + "sov-rollup-interface", + "thiserror", +] + +[[package]] +name = "sovereign-sdk-fuzz" +version = "0.3.0" +dependencies = [ + "libfuzzer-sys", + "rand", + "serde_json", + "sov-accounts", + "sov-bank", + "sov-celestia-adapter", + "sov-modules-api", + "sov-prover-storage-manager", + "sov-state", + "tempfile", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 1.0.109", + "unicode-xid 0.2.4", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "tendermint" +version = "0.32.0" +source = "git+https://github.com/eigerco/celestia-tendermint-rs.git?rev=ef58b85#ef58b85e3e8b35b0f94b822d3996613539dcddd7" +dependencies = [ + "bytes", + "digest 0.10.7", + "ed25519", + "ed25519-consensus", + "flex-error", + "futures", + "instant", + "num-traits", + "once_cell", + "prost", + "prost-types", + "serde", + "serde_bytes", + "serde_json", + "serde_repr", + "sha2 0.10.8", + "signature", + "subtle", + "subtle-encoding", + "tendermint-proto", + "time", + "zeroize", +] + +[[package]] +name = "tendermint-proto" +version = "0.32.0" +source = "git+https://github.com/eigerco/celestia-tendermint-rs.git?rev=ef58b85#ef58b85e3e8b35b0f94b822d3996613539dcddd7" +dependencies = [ + "bytes", + "flex-error", + "num-derive", + "num-traits", + "prost", + "prost-types", + "serde", + "serde_bytes", + "subtle-encoding", + "time", +] + +[[package]] +name = "thiserror" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "time" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote 1.0.35", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-bindgen-test" +version = "0.3.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9bf62a58e0780af3e852044583deee40983e5886da43a271dd772379987667b" +dependencies = [ + "console_error_panic_hook", + "js-sys", + "scoped-tls", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test-macro", +] + +[[package]] +name = "wasm-bindgen-test-macro" +version = "0.3.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f89739351a2e03cb94beb799d47fb2cac01759b40ec441f7de39b00cbf7ef0" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.4", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +dependencies = [ + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.79", + "quote 1.0.35", + "syn 2.0.55", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/fuzz/Cargo.toml b/crates/sovereign-sdk/fuzz/Cargo.toml similarity index 100% rename from fuzz/Cargo.toml rename to crates/sovereign-sdk/fuzz/Cargo.toml diff --git a/fuzz/Makefile b/crates/sovereign-sdk/fuzz/Makefile similarity index 100% rename from fuzz/Makefile rename to crates/sovereign-sdk/fuzz/Makefile diff --git a/fuzz/README.md b/crates/sovereign-sdk/fuzz/README.md similarity index 100% rename from fuzz/README.md rename to crates/sovereign-sdk/fuzz/README.md diff --git a/fuzz/artifacts/accounts_call/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 b/crates/sovereign-sdk/fuzz/artifacts/accounts_call/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 similarity index 100% rename from fuzz/artifacts/accounts_call/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 rename to crates/sovereign-sdk/fuzz/artifacts/accounts_call/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 diff --git a/fuzz/artifacts/bank_call/crash-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 b/crates/sovereign-sdk/fuzz/artifacts/bank_call/crash-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 similarity index 100% rename from fuzz/artifacts/bank_call/crash-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 rename to crates/sovereign-sdk/fuzz/artifacts/bank_call/crash-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 diff --git a/fuzz/artifacts/crash-03ff9dbf9c64fb7c125f0aec0b8b80a972907eb8 b/crates/sovereign-sdk/fuzz/artifacts/crash-03ff9dbf9c64fb7c125f0aec0b8b80a972907eb8 similarity index 100% rename from fuzz/artifacts/crash-03ff9dbf9c64fb7c125f0aec0b8b80a972907eb8 rename to crates/sovereign-sdk/fuzz/artifacts/crash-03ff9dbf9c64fb7c125f0aec0b8b80a972907eb8 diff --git a/fuzz/artifacts/crash-1261a81d957460d69943ae02e30528372736fc15 b/crates/sovereign-sdk/fuzz/artifacts/crash-1261a81d957460d69943ae02e30528372736fc15 similarity index 100% rename from fuzz/artifacts/crash-1261a81d957460d69943ae02e30528372736fc15 rename to crates/sovereign-sdk/fuzz/artifacts/crash-1261a81d957460d69943ae02e30528372736fc15 diff --git a/fuzz/artifacts/crash-1f039bacf8f860eb5507d9ee3a9879dfe316cf5e b/crates/sovereign-sdk/fuzz/artifacts/crash-1f039bacf8f860eb5507d9ee3a9879dfe316cf5e similarity index 100% rename from fuzz/artifacts/crash-1f039bacf8f860eb5507d9ee3a9879dfe316cf5e rename to crates/sovereign-sdk/fuzz/artifacts/crash-1f039bacf8f860eb5507d9ee3a9879dfe316cf5e diff --git a/fuzz/artifacts/crash-44796f5e67307b5b18e648fdd016e885ebf50da9 b/crates/sovereign-sdk/fuzz/artifacts/crash-44796f5e67307b5b18e648fdd016e885ebf50da9 similarity index 100% rename from fuzz/artifacts/crash-44796f5e67307b5b18e648fdd016e885ebf50da9 rename to crates/sovereign-sdk/fuzz/artifacts/crash-44796f5e67307b5b18e648fdd016e885ebf50da9 diff --git a/fuzz/artifacts/crash-5e665cf3759c0aabfc3e898f6294840582421b32 b/crates/sovereign-sdk/fuzz/artifacts/crash-5e665cf3759c0aabfc3e898f6294840582421b32 similarity index 100% rename from fuzz/artifacts/crash-5e665cf3759c0aabfc3e898f6294840582421b32 rename to crates/sovereign-sdk/fuzz/artifacts/crash-5e665cf3759c0aabfc3e898f6294840582421b32 diff --git a/fuzz/artifacts/crash-6929e000e5891085cf17a75de96dd505b6499083 b/crates/sovereign-sdk/fuzz/artifacts/crash-6929e000e5891085cf17a75de96dd505b6499083 similarity index 100% rename from fuzz/artifacts/crash-6929e000e5891085cf17a75de96dd505b6499083 rename to crates/sovereign-sdk/fuzz/artifacts/crash-6929e000e5891085cf17a75de96dd505b6499083 diff --git a/fuzz/artifacts/crash-816595d1445fb45b609cca5417ba5f537c74ab43 b/crates/sovereign-sdk/fuzz/artifacts/crash-816595d1445fb45b609cca5417ba5f537c74ab43 similarity index 100% rename from fuzz/artifacts/crash-816595d1445fb45b609cca5417ba5f537c74ab43 rename to crates/sovereign-sdk/fuzz/artifacts/crash-816595d1445fb45b609cca5417ba5f537c74ab43 diff --git a/fuzz/artifacts/crash-98daf6c68def387cffda2937a318cdfd9e956627 b/crates/sovereign-sdk/fuzz/artifacts/crash-98daf6c68def387cffda2937a318cdfd9e956627 similarity index 100% rename from fuzz/artifacts/crash-98daf6c68def387cffda2937a318cdfd9e956627 rename to crates/sovereign-sdk/fuzz/artifacts/crash-98daf6c68def387cffda2937a318cdfd9e956627 diff --git a/fuzz/artifacts/crash-b4a051390ba551b5349b6f233930f32f9e16bd85 b/crates/sovereign-sdk/fuzz/artifacts/crash-b4a051390ba551b5349b6f233930f32f9e16bd85 similarity index 100% rename from fuzz/artifacts/crash-b4a051390ba551b5349b6f233930f32f9e16bd85 rename to crates/sovereign-sdk/fuzz/artifacts/crash-b4a051390ba551b5349b6f233930f32f9e16bd85 diff --git a/fuzz/artifacts/crash-e5f45f193d720ae7264383fcc0763cd945120fc1 b/crates/sovereign-sdk/fuzz/artifacts/crash-e5f45f193d720ae7264383fcc0763cd945120fc1 similarity index 100% rename from fuzz/artifacts/crash-e5f45f193d720ae7264383fcc0763cd945120fc1 rename to crates/sovereign-sdk/fuzz/artifacts/crash-e5f45f193d720ae7264383fcc0763cd945120fc1 diff --git a/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-2221b8862d9d37ec7c714a5df89b570c1356cdba b/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-2221b8862d9d37ec7c714a5df89b570c1356cdba similarity index 100% rename from fuzz/artifacts/fuzz_namespace_group_from_b64/crash-2221b8862d9d37ec7c714a5df89b570c1356cdba rename to crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-2221b8862d9d37ec7c714a5df89b570c1356cdba diff --git a/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 b/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 similarity index 100% rename from fuzz/artifacts/fuzz_namespace_group_from_b64/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 rename to crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 diff --git a/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-ef43788e032a15a049005ce4fd839b3777597338 b/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-ef43788e032a15a049005ce4fd839b3777597338 similarity index 100% rename from fuzz/artifacts/fuzz_namespace_group_from_b64/crash-ef43788e032a15a049005ce4fd839b3777597338 rename to crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-ef43788e032a15a049005ce4fd839b3777597338 diff --git a/fuzz/artifacts/slow-unit-727720324b031a1f6408810b07628b558866fb00 b/crates/sovereign-sdk/fuzz/artifacts/slow-unit-727720324b031a1f6408810b07628b558866fb00 similarity index 100% rename from fuzz/artifacts/slow-unit-727720324b031a1f6408810b07628b558866fb00 rename to crates/sovereign-sdk/fuzz/artifacts/slow-unit-727720324b031a1f6408810b07628b558866fb00 diff --git a/fuzz/artifacts/slow-unit-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f b/crates/sovereign-sdk/fuzz/artifacts/slow-unit-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f similarity index 100% rename from fuzz/artifacts/slow-unit-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f rename to crates/sovereign-sdk/fuzz/artifacts/slow-unit-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f diff --git a/fuzz/fuzz_targets/accounts_call.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/accounts_call.rs similarity index 100% rename from fuzz/fuzz_targets/accounts_call.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/accounts_call.rs diff --git a/fuzz/fuzz_targets/accounts_call_random.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/accounts_call_random.rs similarity index 100% rename from fuzz/fuzz_targets/accounts_call_random.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/accounts_call_random.rs diff --git a/fuzz/fuzz_targets/accounts_parse_call_message.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/accounts_parse_call_message.rs similarity index 100% rename from fuzz/fuzz_targets/accounts_parse_call_message.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/accounts_parse_call_message.rs diff --git a/fuzz/fuzz_targets/accounts_parse_call_message_random.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/accounts_parse_call_message_random.rs similarity index 100% rename from fuzz/fuzz_targets/accounts_parse_call_message_random.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/accounts_parse_call_message_random.rs diff --git a/fuzz/fuzz_targets/address_bech_32_parse_serde.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_parse_serde.rs similarity index 100% rename from fuzz/fuzz_targets/address_bech_32_parse_serde.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_parse_serde.rs diff --git a/fuzz/fuzz_targets/address_bech_32_try_from_bytes.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_try_from_bytes.rs similarity index 100% rename from fuzz/fuzz_targets/address_bech_32_try_from_bytes.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_try_from_bytes.rs diff --git a/fuzz/fuzz_targets/bank_call.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/bank_call.rs similarity index 100% rename from fuzz/fuzz_targets/bank_call.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/bank_call.rs diff --git a/fuzz/fuzz_targets/bank_parse_call_message.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/bank_parse_call_message.rs similarity index 100% rename from fuzz/fuzz_targets/bank_parse_call_message.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/bank_parse_call_message.rs diff --git a/fuzz/fuzz_targets/parse_address.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/parse_address.rs similarity index 100% rename from fuzz/fuzz_targets/parse_address.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/parse_address.rs diff --git a/fuzz/fuzz_targets/share_deserialize.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/share_deserialize.rs similarity index 100% rename from fuzz/fuzz_targets/share_deserialize.rs rename to crates/sovereign-sdk/fuzz/fuzz_targets/share_deserialize.rs diff --git a/module-system/README.md b/crates/sovereign-sdk/module-system/README.md similarity index 100% rename from module-system/README.md rename to crates/sovereign-sdk/module-system/README.md diff --git a/module-system/RPC_WALKTHROUGH.md b/crates/sovereign-sdk/module-system/RPC_WALKTHROUGH.md similarity index 100% rename from module-system/RPC_WALKTHROUGH.md rename to crates/sovereign-sdk/module-system/RPC_WALKTHROUGH.md diff --git a/module-system/module-implementations/examples/sov-accessory-state/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/Cargo.toml similarity index 100% rename from module-system/module-implementations/examples/sov-accessory-state/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/Cargo.toml diff --git a/module-system/module-implementations/examples/sov-accessory-state/README.md b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/README.md similarity index 100% rename from module-system/module-implementations/examples/sov-accessory-state/README.md rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/README.md diff --git a/module-system/module-implementations/examples/sov-accessory-state/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/src/lib.rs similarity index 100% rename from module-system/module-implementations/examples/sov-accessory-state/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/src/lib.rs diff --git a/module-system/module-implementations/examples/sov-accessory-state/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/src/query.rs similarity index 100% rename from module-system/module-implementations/examples/sov-accessory-state/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/src/query.rs diff --git a/module-system/module-implementations/examples/sov-accessory-state/tests/test.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/tests/test.rs similarity index 100% rename from module-system/module-implementations/examples/sov-accessory-state/tests/test.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-accessory-state/tests/test.rs diff --git a/module-system/module-implementations/examples/sov-value-setter/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/Cargo.toml similarity index 100% rename from module-system/module-implementations/examples/sov-value-setter/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/Cargo.toml diff --git a/module-system/module-implementations/examples/sov-value-setter/README.md b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/README.md similarity index 100% rename from module-system/module-implementations/examples/sov-value-setter/README.md rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/README.md diff --git a/module-system/module-implementations/examples/sov-value-setter/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/call.rs similarity index 100% rename from module-system/module-implementations/examples/sov-value-setter/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/call.rs diff --git a/module-system/module-implementations/examples/sov-value-setter/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/genesis.rs similarity index 100% rename from module-system/module-implementations/examples/sov-value-setter/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/genesis.rs diff --git a/module-system/module-implementations/examples/sov-value-setter/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/lib.rs similarity index 100% rename from module-system/module-implementations/examples/sov-value-setter/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/lib.rs diff --git a/module-system/module-implementations/examples/sov-value-setter/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/query.rs similarity index 100% rename from module-system/module-implementations/examples/sov-value-setter/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/query.rs diff --git a/module-system/module-implementations/examples/sov-value-setter/src/tests.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/tests.rs similarity index 100% rename from module-system/module-implementations/examples/sov-value-setter/src/tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-value-setter/src/tests.rs diff --git a/module-system/module-implementations/examples/sov-vec-setter/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/Cargo.toml similarity index 100% rename from module-system/module-implementations/examples/sov-vec-setter/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/Cargo.toml diff --git a/module-system/module-implementations/examples/sov-vec-setter/README.md b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/README.md similarity index 100% rename from module-system/module-implementations/examples/sov-vec-setter/README.md rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/README.md diff --git a/module-system/module-implementations/examples/sov-vec-setter/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/src/call.rs similarity index 100% rename from module-system/module-implementations/examples/sov-vec-setter/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/src/call.rs diff --git a/module-system/module-implementations/examples/sov-vec-setter/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/src/genesis.rs similarity index 100% rename from module-system/module-implementations/examples/sov-vec-setter/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/src/genesis.rs diff --git a/module-system/module-implementations/examples/sov-vec-setter/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/src/lib.rs similarity index 100% rename from module-system/module-implementations/examples/sov-vec-setter/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/src/lib.rs diff --git a/module-system/module-implementations/examples/sov-vec-setter/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/src/query.rs similarity index 100% rename from module-system/module-implementations/examples/sov-vec-setter/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/src/query.rs diff --git a/module-system/module-implementations/examples/sov-vec-setter/tests/tests.rs b/crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/tests/tests.rs similarity index 100% rename from module-system/module-implementations/examples/sov-vec-setter/tests/tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/examples/sov-vec-setter/tests/tests.rs diff --git a/module-system/module-implementations/integration-tests/.gitignore b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/.gitignore similarity index 100% rename from module-system/module-implementations/integration-tests/.gitignore rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/.gitignore diff --git a/module-system/module-implementations/integration-tests/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/Cargo.toml similarity index 100% rename from module-system/module-implementations/integration-tests/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/Cargo.toml diff --git a/module-system/module-implementations/integration-tests/README.md b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/README.md similarity index 100% rename from module-system/module-implementations/integration-tests/README.md rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/README.md diff --git a/module-system/module-implementations/integration-tests/src/chain_state/helpers.rs b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/chain_state/helpers.rs similarity index 100% rename from module-system/module-implementations/integration-tests/src/chain_state/helpers.rs rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/chain_state/helpers.rs diff --git a/module-system/module-implementations/integration-tests/src/chain_state/mod.rs b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/chain_state/mod.rs similarity index 100% rename from module-system/module-implementations/integration-tests/src/chain_state/mod.rs rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/chain_state/mod.rs diff --git a/module-system/module-implementations/integration-tests/src/chain_state/tests.rs b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/chain_state/tests.rs similarity index 100% rename from module-system/module-implementations/integration-tests/src/chain_state/tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/chain_state/tests.rs diff --git a/module-system/module-implementations/integration-tests/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/lib.rs similarity index 100% rename from module-system/module-implementations/integration-tests/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/lib.rs diff --git a/module-system/module-implementations/integration-tests/src/nested_modules/helpers.rs b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/nested_modules/helpers.rs similarity index 100% rename from module-system/module-implementations/integration-tests/src/nested_modules/helpers.rs rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/nested_modules/helpers.rs diff --git a/module-system/module-implementations/integration-tests/src/nested_modules/mod.rs b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/nested_modules/mod.rs similarity index 100% rename from module-system/module-implementations/integration-tests/src/nested_modules/mod.rs rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/nested_modules/mod.rs diff --git a/module-system/module-implementations/integration-tests/src/nested_modules/tests.rs b/crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/nested_modules/tests.rs similarity index 100% rename from module-system/module-implementations/integration-tests/src/nested_modules/tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/integration-tests/src/nested_modules/tests.rs diff --git a/module-system/module-implementations/module-template/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/module-template/Cargo.toml similarity index 100% rename from module-system/module-implementations/module-template/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/module-template/Cargo.toml diff --git a/module-system/module-implementations/module-template/README.md b/crates/sovereign-sdk/module-system/module-implementations/module-template/README.md similarity index 100% rename from module-system/module-implementations/module-template/README.md rename to crates/sovereign-sdk/module-system/module-implementations/module-template/README.md diff --git a/module-system/module-implementations/module-template/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/module-template/src/call.rs similarity index 100% rename from module-system/module-implementations/module-template/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/module-template/src/call.rs diff --git a/module-system/module-implementations/module-template/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/module-template/src/genesis.rs similarity index 100% rename from module-system/module-implementations/module-template/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/module-template/src/genesis.rs diff --git a/module-system/module-implementations/module-template/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/module-template/src/lib.rs similarity index 100% rename from module-system/module-implementations/module-template/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/module-template/src/lib.rs diff --git a/module-system/module-implementations/module-template/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/module-template/src/query.rs similarity index 100% rename from module-system/module-implementations/module-template/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/module-template/src/query.rs diff --git a/module-system/module-implementations/module-template/tests/value_setter.rs b/crates/sovereign-sdk/module-system/module-implementations/module-template/tests/value_setter.rs similarity index 100% rename from module-system/module-implementations/module-template/tests/value_setter.rs rename to crates/sovereign-sdk/module-system/module-implementations/module-template/tests/value_setter.rs diff --git a/module-system/module-implementations/sov-accounts/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/sov-accounts/Cargo.toml similarity index 100% rename from module-system/module-implementations/sov-accounts/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/sov-accounts/Cargo.toml diff --git a/module-system/module-implementations/sov-accounts/README.md b/crates/sovereign-sdk/module-system/module-implementations/sov-accounts/README.md similarity index 100% rename from module-system/module-implementations/sov-accounts/README.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-accounts/README.md diff --git a/module-system/module-implementations/sov-accounts/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/call.rs similarity index 100% rename from module-system/module-implementations/sov-accounts/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/call.rs diff --git a/module-system/module-implementations/sov-accounts/src/fuzz.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/fuzz.rs similarity index 100% rename from module-system/module-implementations/sov-accounts/src/fuzz.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/fuzz.rs diff --git a/module-system/module-implementations/sov-accounts/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/genesis.rs similarity index 100% rename from module-system/module-implementations/sov-accounts/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/genesis.rs diff --git a/module-system/module-implementations/sov-accounts/src/hooks.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/hooks.rs similarity index 100% rename from module-system/module-implementations/sov-accounts/src/hooks.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/hooks.rs diff --git a/module-system/module-implementations/sov-accounts/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/lib.rs similarity index 100% rename from module-system/module-implementations/sov-accounts/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/lib.rs diff --git a/module-system/module-implementations/sov-accounts/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/query.rs similarity index 100% rename from module-system/module-implementations/sov-accounts/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/query.rs diff --git a/module-system/module-implementations/sov-accounts/src/tests.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/tests.rs similarity index 100% rename from module-system/module-implementations/sov-accounts/src/tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-accounts/src/tests.rs diff --git a/module-system/module-implementations/sov-attester-incentives/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/Cargo.toml similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/Cargo.toml diff --git a/module-system/module-implementations/sov-attester-incentives/README.md b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/README.md similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/README.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/README.md diff --git a/module-system/module-implementations/sov-attester-incentives/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/call.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/call.rs diff --git a/module-system/module-implementations/sov-attester-incentives/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/genesis.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/genesis.rs diff --git a/module-system/module-implementations/sov-attester-incentives/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/lib.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/lib.rs diff --git a/module-system/module-implementations/sov-attester-incentives/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/query.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/query.rs diff --git a/module-system/module-implementations/sov-attester-incentives/src/tests/attestation_processing.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/attestation_processing.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/tests/attestation_processing.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/attestation_processing.rs diff --git a/module-system/module-implementations/sov-attester-incentives/src/tests/challenger.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/challenger.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/tests/challenger.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/challenger.rs diff --git a/module-system/module-implementations/sov-attester-incentives/src/tests/helpers.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/helpers.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/tests/helpers.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/helpers.rs diff --git a/module-system/module-implementations/sov-attester-incentives/src/tests/invariant.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/invariant.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/tests/invariant.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/invariant.rs diff --git a/module-system/module-implementations/sov-attester-incentives/src/tests/mod.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/mod.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/tests/mod.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/mod.rs diff --git a/module-system/module-implementations/sov-attester-incentives/src/tests/unbonding.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/unbonding.rs similarity index 100% rename from module-system/module-implementations/sov-attester-incentives/src/tests/unbonding.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-attester-incentives/src/tests/unbonding.rs diff --git a/module-system/module-implementations/sov-bank/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/Cargo.toml similarity index 100% rename from module-system/module-implementations/sov-bank/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/Cargo.toml diff --git a/module-system/module-implementations/sov-bank/README.md b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/README.md similarity index 100% rename from module-system/module-implementations/sov-bank/README.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/README.md diff --git a/module-system/module-implementations/sov-bank/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/call.rs similarity index 100% rename from module-system/module-implementations/sov-bank/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/call.rs diff --git a/module-system/module-implementations/sov-bank/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/genesis.rs similarity index 100% rename from module-system/module-implementations/sov-bank/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/genesis.rs diff --git a/module-system/module-implementations/sov-bank/src/hooks.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/hooks.rs similarity index 100% rename from module-system/module-implementations/sov-bank/src/hooks.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/hooks.rs diff --git a/module-system/module-implementations/sov-bank/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/lib.rs similarity index 100% rename from module-system/module-implementations/sov-bank/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/lib.rs diff --git a/module-system/module-implementations/sov-bank/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/query.rs similarity index 100% rename from module-system/module-implementations/sov-bank/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/query.rs diff --git a/module-system/module-implementations/sov-bank/src/token.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/token.rs similarity index 100% rename from module-system/module-implementations/sov-bank/src/token.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/token.rs diff --git a/module-system/module-implementations/sov-bank/src/utils.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/utils.rs similarity index 100% rename from module-system/module-implementations/sov-bank/src/utils.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/src/utils.rs diff --git a/module-system/module-implementations/sov-bank/tests/archival_query_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/archival_query_test.rs similarity index 100% rename from module-system/module-implementations/sov-bank/tests/archival_query_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/archival_query_test.rs diff --git a/module-system/module-implementations/sov-bank/tests/burn_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/burn_test.rs similarity index 100% rename from module-system/module-implementations/sov-bank/tests/burn_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/burn_test.rs diff --git a/module-system/module-implementations/sov-bank/tests/create_token_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/create_token_test.rs similarity index 100% rename from module-system/module-implementations/sov-bank/tests/create_token_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/create_token_test.rs diff --git a/module-system/module-implementations/sov-bank/tests/freeze_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/freeze_test.rs similarity index 100% rename from module-system/module-implementations/sov-bank/tests/freeze_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/freeze_test.rs diff --git a/module-system/module-implementations/sov-bank/tests/gas_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/gas_test.rs similarity index 100% rename from module-system/module-implementations/sov-bank/tests/gas_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/gas_test.rs diff --git a/module-system/module-implementations/sov-bank/tests/helpers/mod.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/helpers/mod.rs similarity index 100% rename from module-system/module-implementations/sov-bank/tests/helpers/mod.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/helpers/mod.rs diff --git a/module-system/module-implementations/sov-bank/tests/mint_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/mint_test.rs similarity index 100% rename from module-system/module-implementations/sov-bank/tests/mint_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/mint_test.rs diff --git a/module-system/module-implementations/sov-bank/tests/transfer_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/transfer_test.rs similarity index 100% rename from module-system/module-implementations/sov-bank/tests/transfer_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-bank/tests/transfer_test.rs diff --git a/module-system/module-implementations/sov-blob-storage/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/Cargo.toml similarity index 100% rename from module-system/module-implementations/sov-blob-storage/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/Cargo.toml diff --git a/module-system/module-implementations/sov-blob-storage/README.md b/crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/README.md similarity index 100% rename from module-system/module-implementations/sov-blob-storage/README.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/README.md diff --git a/module-system/module-implementations/sov-blob-storage/src/README.md b/crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/README.md similarity index 100% rename from module-system/module-implementations/sov-blob-storage/src/README.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/README.md diff --git a/module-system/module-implementations/sov-blob-storage/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/call.rs similarity index 100% rename from module-system/module-implementations/sov-blob-storage/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/call.rs diff --git a/module-system/module-implementations/sov-blob-storage/src/capabilities.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/capabilities.rs similarity index 100% rename from module-system/module-implementations/sov-blob-storage/src/capabilities.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/capabilities.rs diff --git a/module-system/module-implementations/sov-blob-storage/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/lib.rs similarity index 100% rename from module-system/module-implementations/sov-blob-storage/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/lib.rs diff --git a/module-system/module-implementations/sov-blob-storage/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/query.rs similarity index 100% rename from module-system/module-implementations/sov-blob-storage/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/src/query.rs diff --git a/module-system/module-implementations/sov-blob-storage/tests/blob_storage_tests.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/tests/blob_storage_tests.rs similarity index 100% rename from module-system/module-implementations/sov-blob-storage/tests/blob_storage_tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/tests/blob_storage_tests.rs diff --git a/module-system/module-implementations/sov-blob-storage/tests/capability_tests.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/tests/capability_tests.rs similarity index 100% rename from module-system/module-implementations/sov-blob-storage/tests/capability_tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-blob-storage/tests/capability_tests.rs diff --git a/module-system/module-implementations/sov-chain-state/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/Cargo.toml similarity index 100% rename from module-system/module-implementations/sov-chain-state/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/Cargo.toml diff --git a/module-system/module-implementations/sov-chain-state/README.md b/crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/README.md similarity index 100% rename from module-system/module-implementations/sov-chain-state/README.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/README.md diff --git a/module-system/module-implementations/sov-chain-state/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/call.rs similarity index 100% rename from module-system/module-implementations/sov-chain-state/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/call.rs diff --git a/module-system/module-implementations/sov-chain-state/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/genesis.rs similarity index 100% rename from module-system/module-implementations/sov-chain-state/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/genesis.rs diff --git a/module-system/module-implementations/sov-chain-state/src/hooks.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/hooks.rs similarity index 100% rename from module-system/module-implementations/sov-chain-state/src/hooks.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/hooks.rs diff --git a/module-system/module-implementations/sov-chain-state/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/lib.rs similarity index 100% rename from module-system/module-implementations/sov-chain-state/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/lib.rs diff --git a/module-system/module-implementations/sov-chain-state/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/query.rs similarity index 100% rename from module-system/module-implementations/sov-chain-state/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/query.rs diff --git a/module-system/module-implementations/sov-chain-state/src/tests.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/tests.rs similarity index 100% rename from module-system/module-implementations/sov-chain-state/src/tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/src/tests.rs diff --git a/module-system/module-implementations/sov-chain-state/tests/all_tests.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/tests/all_tests.rs similarity index 100% rename from module-system/module-implementations/sov-chain-state/tests/all_tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-chain-state/tests/all_tests.rs diff --git a/module-system/module-implementations/sov-nft-module/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/Cargo.toml similarity index 100% rename from module-system/module-implementations/sov-nft-module/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/Cargo.toml diff --git a/module-system/module-implementations/sov-nft-module/README.md b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/README.md similarity index 100% rename from module-system/module-implementations/sov-nft-module/README.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/README.md diff --git a/module-system/module-implementations/sov-nft-module/TUTORIAL.md b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/TUTORIAL.md similarity index 100% rename from module-system/module-implementations/sov-nft-module/TUTORIAL.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/TUTORIAL.md diff --git a/module-system/module-implementations/sov-nft-module/offchain_readme.md b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/offchain_readme.md similarity index 100% rename from module-system/module-implementations/sov-nft-module/offchain_readme.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/offchain_readme.md diff --git a/module-system/module-implementations/sov-nft-module/src/address.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/address.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/address.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/address.rs diff --git a/module-system/module-implementations/sov-nft-module/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/call.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/call.rs diff --git a/module-system/module-implementations/sov-nft-module/src/collection.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/collection.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/collection.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/collection.rs diff --git a/module-system/module-implementations/sov-nft-module/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/genesis.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/genesis.rs diff --git a/module-system/module-implementations/sov-nft-module/src/init_db.sql b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/init_db.sql similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/init_db.sql rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/init_db.sql diff --git a/module-system/module-implementations/sov-nft-module/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/lib.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/lib.rs diff --git a/module-system/module-implementations/sov-nft-module/src/nft.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/nft.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/nft.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/nft.rs diff --git a/module-system/module-implementations/sov-nft-module/src/offchain.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/offchain.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/offchain.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/offchain.rs diff --git a/module-system/module-implementations/sov-nft-module/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/query.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/query.rs diff --git a/module-system/module-implementations/sov-nft-module/src/sql.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/sql.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/sql.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/sql.rs diff --git a/module-system/module-implementations/sov-nft-module/src/utils.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/utils.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/src/utils.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/src/utils.rs diff --git a/module-system/module-implementations/sov-nft-module/tests/nft_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/tests/nft_test.rs similarity index 100% rename from module-system/module-implementations/sov-nft-module/tests/nft_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-nft-module/tests/nft_test.rs diff --git a/module-system/module-implementations/sov-prover-incentives/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/Cargo.toml similarity index 100% rename from module-system/module-implementations/sov-prover-incentives/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/Cargo.toml diff --git a/module-system/module-implementations/sov-prover-incentives/README.md b/crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/README.md similarity index 100% rename from module-system/module-implementations/sov-prover-incentives/README.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/README.md diff --git a/module-system/module-implementations/sov-prover-incentives/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/call.rs similarity index 100% rename from module-system/module-implementations/sov-prover-incentives/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/call.rs diff --git a/module-system/module-implementations/sov-prover-incentives/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/genesis.rs similarity index 100% rename from module-system/module-implementations/sov-prover-incentives/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/genesis.rs diff --git a/module-system/module-implementations/sov-prover-incentives/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/lib.rs similarity index 100% rename from module-system/module-implementations/sov-prover-incentives/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/lib.rs diff --git a/module-system/module-implementations/sov-prover-incentives/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/query.rs similarity index 100% rename from module-system/module-implementations/sov-prover-incentives/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/query.rs diff --git a/module-system/module-implementations/sov-prover-incentives/src/tests.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/tests.rs similarity index 100% rename from module-system/module-implementations/sov-prover-incentives/src/tests.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-prover-incentives/src/tests.rs diff --git a/module-system/module-implementations/sov-sequencer-registry/Cargo.toml b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/Cargo.toml similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/Cargo.toml rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/Cargo.toml diff --git a/module-system/module-implementations/sov-sequencer-registry/README.md b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/README.md similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/README.md rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/README.md diff --git a/module-system/module-implementations/sov-sequencer-registry/src/call.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/call.rs similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/src/call.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/call.rs diff --git a/module-system/module-implementations/sov-sequencer-registry/src/genesis.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/genesis.rs similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/src/genesis.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/genesis.rs diff --git a/module-system/module-implementations/sov-sequencer-registry/src/hooks.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/hooks.rs similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/src/hooks.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/hooks.rs diff --git a/module-system/module-implementations/sov-sequencer-registry/src/lib.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/lib.rs similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/src/lib.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/lib.rs diff --git a/module-system/module-implementations/sov-sequencer-registry/src/query.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/query.rs similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/src/query.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/src/query.rs diff --git a/module-system/module-implementations/sov-sequencer-registry/tests/helpers/mod.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/tests/helpers/mod.rs similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/tests/helpers/mod.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/tests/helpers/mod.rs diff --git a/module-system/module-implementations/sov-sequencer-registry/tests/hooks_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/tests/hooks_test.rs similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/tests/hooks_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/tests/hooks_test.rs diff --git a/module-system/module-implementations/sov-sequencer-registry/tests/sequencer_registry_test.rs b/crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/tests/sequencer_registry_test.rs similarity index 100% rename from module-system/module-implementations/sov-sequencer-registry/tests/sequencer_registry_test.rs rename to crates/sovereign-sdk/module-system/module-implementations/sov-sequencer-registry/tests/sequencer_registry_test.rs diff --git a/module-system/module-schemas/Cargo.toml b/crates/sovereign-sdk/module-system/module-schemas/Cargo.toml similarity index 95% rename from module-system/module-schemas/Cargo.toml rename to crates/sovereign-sdk/module-system/module-schemas/Cargo.toml index 0891d5d84..91a0db234 100644 --- a/module-system/module-schemas/Cargo.toml +++ b/crates/sovereign-sdk/module-system/module-schemas/Cargo.toml @@ -30,7 +30,7 @@ sov-prover-incentives = { path = "../module-implementations/sov-prover-incentive sov-sequencer-registry = { path = "../module-implementations/sov-sequencer-registry", features = [ "native", ] } -sov-evm = { path = "../module-implementations/sov-evm" } +citrea-evm = { path = "../../../evm" } sov-value-setter = { path = "../module-implementations/examples/sov-value-setter", features = [ "native", ] } diff --git a/module-system/module-schemas/README.md b/crates/sovereign-sdk/module-system/module-schemas/README.md similarity index 100% rename from module-system/module-schemas/README.md rename to crates/sovereign-sdk/module-system/module-schemas/README.md diff --git a/module-system/module-schemas/build.rs b/crates/sovereign-sdk/module-system/module-schemas/build.rs similarity index 100% rename from module-system/module-schemas/build.rs rename to crates/sovereign-sdk/module-system/module-schemas/build.rs diff --git a/module-system/module-schemas/schemas/sov-accounts.json b/crates/sovereign-sdk/module-system/module-schemas/schemas/sov-accounts.json similarity index 100% rename from module-system/module-schemas/schemas/sov-accounts.json rename to crates/sovereign-sdk/module-system/module-schemas/schemas/sov-accounts.json diff --git a/module-system/module-schemas/schemas/sov-bank.json b/crates/sovereign-sdk/module-system/module-schemas/schemas/sov-bank.json similarity index 100% rename from module-system/module-schemas/schemas/sov-bank.json rename to crates/sovereign-sdk/module-system/module-schemas/schemas/sov-bank.json diff --git a/module-system/module-schemas/schemas/sov-election.json b/crates/sovereign-sdk/module-system/module-schemas/schemas/sov-election.json similarity index 100% rename from module-system/module-schemas/schemas/sov-election.json rename to crates/sovereign-sdk/module-system/module-schemas/schemas/sov-election.json diff --git a/module-system/module-schemas/schemas/sov-evm-experimental.json b/crates/sovereign-sdk/module-system/module-schemas/schemas/sov-evm-experimental.json similarity index 100% rename from module-system/module-schemas/schemas/sov-evm-experimental.json rename to crates/sovereign-sdk/module-system/module-schemas/schemas/sov-evm-experimental.json diff --git a/module-system/module-schemas/schemas/sov-evm.json b/crates/sovereign-sdk/module-system/module-schemas/schemas/sov-evm.json similarity index 100% rename from module-system/module-schemas/schemas/sov-evm.json rename to crates/sovereign-sdk/module-system/module-schemas/schemas/sov-evm.json diff --git a/module-system/module-schemas/schemas/sov-prover-incentives.json b/crates/sovereign-sdk/module-system/module-schemas/schemas/sov-prover-incentives.json similarity index 100% rename from module-system/module-schemas/schemas/sov-prover-incentives.json rename to crates/sovereign-sdk/module-system/module-schemas/schemas/sov-prover-incentives.json diff --git a/module-system/module-schemas/schemas/sov-sequencer-registry.json b/crates/sovereign-sdk/module-system/module-schemas/schemas/sov-sequencer-registry.json similarity index 100% rename from module-system/module-schemas/schemas/sov-sequencer-registry.json rename to crates/sovereign-sdk/module-system/module-schemas/schemas/sov-sequencer-registry.json diff --git a/module-system/module-schemas/schemas/sov-value-setter.json b/crates/sovereign-sdk/module-system/module-schemas/schemas/sov-value-setter.json similarity index 100% rename from module-system/module-schemas/schemas/sov-value-setter.json rename to crates/sovereign-sdk/module-system/module-schemas/schemas/sov-value-setter.json diff --git a/module-system/module-schemas/src/lib.rs b/crates/sovereign-sdk/module-system/module-schemas/src/lib.rs similarity index 100% rename from module-system/module-schemas/src/lib.rs rename to crates/sovereign-sdk/module-system/module-schemas/src/lib.rs diff --git a/module-system/sov-cli/Cargo.toml b/crates/sovereign-sdk/module-system/sov-cli/Cargo.toml similarity index 82% rename from module-system/sov-cli/Cargo.toml rename to crates/sovereign-sdk/module-system/sov-cli/Cargo.toml index 2b253707d..82e748046 100644 --- a/module-system/sov-cli/Cargo.toml +++ b/crates/sovereign-sdk/module-system/sov-cli/Cargo.toml @@ -16,9 +16,15 @@ path = "src/lib.rs" [dependencies] -sov-modules-api = { path = "../sov-modules-api", version = "0.3", features = ["native"] } -sov-bank = { path = "../module-implementations/sov-bank", version = "0.3", features = ["native"] } -sov-accounts = { path = "../module-implementations/sov-accounts", version = "0.3", features = ["native"] } +sov-modules-api = { path = "../sov-modules-api", version = "0.3", features = [ + "native", +] } +sov-bank = { path = "../module-implementations/sov-bank", version = "0.3", features = [ + "native", +] } +sov-accounts = { path = "../module-implementations/sov-accounts", version = "0.3", features = [ + "native", +] } directories = "5.0.1" anyhow = { workspace = true } hex = { workspace = true, features = ["serde"] } @@ -29,5 +35,5 @@ jsonrpsee = { workspace = true, features = ["client"] } [dev-dependencies] tempfile = { workspace = true } -demo-stf = { path = "../../examples/demo-rollup/stf", features = ["native"] } +demo-stf = { path = "../../examples/demo-stf", features = ["native"] } sov-mock-da = { path = "../../adapters/mock-da", features = ["native"] } diff --git a/module-system/sov-cli/README.md b/crates/sovereign-sdk/module-system/sov-cli/README.md similarity index 100% rename from module-system/sov-cli/README.md rename to crates/sovereign-sdk/module-system/sov-cli/README.md diff --git a/module-system/sov-cli/src/lib.rs b/crates/sovereign-sdk/module-system/sov-cli/src/lib.rs similarity index 100% rename from module-system/sov-cli/src/lib.rs rename to crates/sovereign-sdk/module-system/sov-cli/src/lib.rs diff --git a/module-system/sov-cli/src/wallet_state.rs b/crates/sovereign-sdk/module-system/sov-cli/src/wallet_state.rs similarity index 100% rename from module-system/sov-cli/src/wallet_state.rs rename to crates/sovereign-sdk/module-system/sov-cli/src/wallet_state.rs diff --git a/module-system/sov-cli/src/workflows/keys.rs b/crates/sovereign-sdk/module-system/sov-cli/src/workflows/keys.rs similarity index 100% rename from module-system/sov-cli/src/workflows/keys.rs rename to crates/sovereign-sdk/module-system/sov-cli/src/workflows/keys.rs diff --git a/module-system/sov-cli/src/workflows/mod.rs b/crates/sovereign-sdk/module-system/sov-cli/src/workflows/mod.rs similarity index 100% rename from module-system/sov-cli/src/workflows/mod.rs rename to crates/sovereign-sdk/module-system/sov-cli/src/workflows/mod.rs diff --git a/module-system/sov-cli/src/workflows/rpc.rs b/crates/sovereign-sdk/module-system/sov-cli/src/workflows/rpc.rs similarity index 100% rename from module-system/sov-cli/src/workflows/rpc.rs rename to crates/sovereign-sdk/module-system/sov-cli/src/workflows/rpc.rs diff --git a/module-system/sov-cli/src/workflows/transactions.rs b/crates/sovereign-sdk/module-system/sov-cli/src/workflows/transactions.rs similarity index 100% rename from module-system/sov-cli/src/workflows/transactions.rs rename to crates/sovereign-sdk/module-system/sov-cli/src/workflows/transactions.rs diff --git a/module-system/sov-cli/test-data/requests/burn.json b/crates/sovereign-sdk/module-system/sov-cli/test-data/requests/burn.json similarity index 100% rename from module-system/sov-cli/test-data/requests/burn.json rename to crates/sovereign-sdk/module-system/sov-cli/test-data/requests/burn.json diff --git a/module-system/sov-cli/test-data/requests/create_token.json b/crates/sovereign-sdk/module-system/sov-cli/test-data/requests/create_token.json similarity index 100% rename from module-system/sov-cli/test-data/requests/create_token.json rename to crates/sovereign-sdk/module-system/sov-cli/test-data/requests/create_token.json diff --git a/module-system/sov-cli/test-data/requests/mint.json b/crates/sovereign-sdk/module-system/sov-cli/test-data/requests/mint.json similarity index 100% rename from module-system/sov-cli/test-data/requests/mint.json rename to crates/sovereign-sdk/module-system/sov-cli/test-data/requests/mint.json diff --git a/module-system/sov-cli/test-data/requests/transfer.json b/crates/sovereign-sdk/module-system/sov-cli/test-data/requests/transfer.json similarity index 100% rename from module-system/sov-cli/test-data/requests/transfer.json rename to crates/sovereign-sdk/module-system/sov-cli/test-data/requests/transfer.json diff --git a/module-system/sov-cli/tests/keys.rs b/crates/sovereign-sdk/module-system/sov-cli/tests/keys.rs similarity index 100% rename from module-system/sov-cli/tests/keys.rs rename to crates/sovereign-sdk/module-system/sov-cli/tests/keys.rs diff --git a/module-system/sov-cli/tests/transactions.rs b/crates/sovereign-sdk/module-system/sov-cli/tests/transactions.rs similarity index 100% rename from module-system/sov-cli/tests/transactions.rs rename to crates/sovereign-sdk/module-system/sov-cli/tests/transactions.rs diff --git a/module-system/sov-modules-api/.gitignore b/crates/sovereign-sdk/module-system/sov-modules-api/.gitignore similarity index 100% rename from module-system/sov-modules-api/.gitignore rename to crates/sovereign-sdk/module-system/sov-modules-api/.gitignore diff --git a/module-system/sov-modules-api/Cargo.toml b/crates/sovereign-sdk/module-system/sov-modules-api/Cargo.toml similarity index 100% rename from module-system/sov-modules-api/Cargo.toml rename to crates/sovereign-sdk/module-system/sov-modules-api/Cargo.toml diff --git a/module-system/sov-modules-api/README.md b/crates/sovereign-sdk/module-system/sov-modules-api/README.md similarity index 100% rename from module-system/sov-modules-api/README.md rename to crates/sovereign-sdk/module-system/sov-modules-api/README.md diff --git a/module-system/sov-modules-api/src/cli.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/cli.rs similarity index 100% rename from module-system/sov-modules-api/src/cli.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/cli.rs diff --git a/module-system/sov-modules-api/src/containers/accessory_map.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/accessory_map.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/accessory_map.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/accessory_map.rs diff --git a/module-system/sov-modules-api/src/containers/accessory_value.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/accessory_value.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/accessory_value.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/accessory_value.rs diff --git a/module-system/sov-modules-api/src/containers/accessory_vec.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/accessory_vec.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/accessory_vec.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/accessory_vec.rs diff --git a/module-system/sov-modules-api/src/containers/kernel_value.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/kernel_value.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/kernel_value.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/kernel_value.rs diff --git a/module-system/sov-modules-api/src/containers/map.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/map.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/map.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/map.rs diff --git a/module-system/sov-modules-api/src/containers/mod.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/mod.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/mod.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/mod.rs diff --git a/module-system/sov-modules-api/src/containers/traits/map.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/traits/map.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/traits/map.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/traits/map.rs diff --git a/module-system/sov-modules-api/src/containers/traits/mod.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/traits/mod.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/traits/mod.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/traits/mod.rs diff --git a/module-system/sov-modules-api/src/containers/traits/value.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/traits/value.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/traits/value.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/traits/value.rs diff --git a/module-system/sov-modules-api/src/containers/traits/vec.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/traits/vec.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/traits/vec.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/traits/vec.rs diff --git a/module-system/sov-modules-api/src/containers/value.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/value.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs diff --git a/module-system/sov-modules-api/src/containers/vec.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/vec.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/vec.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/vec.rs diff --git a/module-system/sov-modules-api/src/containers/versioned_value.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/versioned_value.rs similarity index 100% rename from module-system/sov-modules-api/src/containers/versioned_value.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/containers/versioned_value.rs diff --git a/module-system/sov-modules-api/src/default_context.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/default_context.rs similarity index 100% rename from module-system/sov-modules-api/src/default_context.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/default_context.rs diff --git a/module-system/sov-modules-api/src/default_signature.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/default_signature.rs similarity index 100% rename from module-system/sov-modules-api/src/default_signature.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/default_signature.rs diff --git a/module-system/sov-modules-api/src/hooks.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/hooks.rs similarity index 100% rename from module-system/sov-modules-api/src/hooks.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/hooks.rs diff --git a/module-system/sov-modules-api/src/lib.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs similarity index 100% rename from module-system/sov-modules-api/src/lib.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs diff --git a/module-system/sov-modules-api/src/pub_key_hex.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/pub_key_hex.rs similarity index 100% rename from module-system/sov-modules-api/src/pub_key_hex.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/pub_key_hex.rs diff --git a/module-system/sov-modules-api/src/reexport_macros.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/reexport_macros.rs similarity index 100% rename from module-system/sov-modules-api/src/reexport_macros.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/reexport_macros.rs diff --git a/module-system/sov-modules-api/src/serde_pub_key.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/serde_pub_key.rs similarity index 100% rename from module-system/sov-modules-api/src/serde_pub_key.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/serde_pub_key.rs diff --git a/module-system/sov-modules-api/src/tests.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/tests.rs similarity index 100% rename from module-system/sov-modules-api/src/tests.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/tests.rs diff --git a/module-system/sov-modules-api/src/transaction.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/transaction.rs similarity index 100% rename from module-system/sov-modules-api/src/transaction.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/transaction.rs diff --git a/module-system/sov-modules-api/src/utils.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/utils.rs similarity index 100% rename from module-system/sov-modules-api/src/utils.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/src/utils.rs diff --git a/module-system/sov-modules-api/tests/state_tests.rs b/crates/sovereign-sdk/module-system/sov-modules-api/tests/state_tests.rs similarity index 100% rename from module-system/sov-modules-api/tests/state_tests.rs rename to crates/sovereign-sdk/module-system/sov-modules-api/tests/state_tests.rs diff --git a/module-system/sov-modules-core/Cargo.toml b/crates/sovereign-sdk/module-system/sov-modules-core/Cargo.toml similarity index 100% rename from module-system/sov-modules-core/Cargo.toml rename to crates/sovereign-sdk/module-system/sov-modules-core/Cargo.toml diff --git a/module-system/sov-modules-core/Makefile b/crates/sovereign-sdk/module-system/sov-modules-core/Makefile similarity index 100% rename from module-system/sov-modules-core/Makefile rename to crates/sovereign-sdk/module-system/sov-modules-core/Makefile diff --git a/module-system/sov-modules-core/README.md b/crates/sovereign-sdk/module-system/sov-modules-core/README.md similarity index 100% rename from module-system/sov-modules-core/README.md rename to crates/sovereign-sdk/module-system/sov-modules-core/README.md diff --git a/module-system/sov-modules-core/src/common/address.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/common/address.rs similarity index 100% rename from module-system/sov-modules-core/src/common/address.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/common/address.rs diff --git a/module-system/sov-modules-core/src/common/bytes.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/common/bytes.rs similarity index 100% rename from module-system/sov-modules-core/src/common/bytes.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/common/bytes.rs diff --git a/module-system/sov-modules-core/src/common/error.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/common/error.rs similarity index 100% rename from module-system/sov-modules-core/src/common/error.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/common/error.rs diff --git a/module-system/sov-modules-core/src/common/key.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/common/key.rs similarity index 100% rename from module-system/sov-modules-core/src/common/key.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/common/key.rs diff --git a/module-system/sov-modules-core/src/common/mod.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/common/mod.rs similarity index 100% rename from module-system/sov-modules-core/src/common/mod.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/common/mod.rs diff --git a/module-system/sov-modules-core/src/common/witness.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/common/witness.rs similarity index 100% rename from module-system/sov-modules-core/src/common/witness.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/common/witness.rs diff --git a/module-system/sov-modules-core/src/lib.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/lib.rs similarity index 100% rename from module-system/sov-modules-core/src/lib.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/lib.rs diff --git a/module-system/sov-modules-core/src/module/dispatch.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs similarity index 100% rename from module-system/sov-modules-core/src/module/dispatch.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs diff --git a/module-system/sov-modules-core/src/module/mod.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/module/mod.rs similarity index 100% rename from module-system/sov-modules-core/src/module/mod.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/module/mod.rs diff --git a/module-system/sov-modules-core/src/module/spec.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/module/spec.rs similarity index 100% rename from module-system/sov-modules-core/src/module/spec.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/module/spec.rs diff --git a/module-system/sov-modules-core/src/runtime/capabilities.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/runtime/capabilities.rs similarity index 100% rename from module-system/sov-modules-core/src/runtime/capabilities.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/runtime/capabilities.rs diff --git a/module-system/sov-modules-core/src/runtime/kernel_module.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/runtime/kernel_module.rs similarity index 100% rename from module-system/sov-modules-core/src/runtime/kernel_module.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/runtime/kernel_module.rs diff --git a/module-system/sov-modules-core/src/runtime/mod.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/runtime/mod.rs similarity index 100% rename from module-system/sov-modules-core/src/runtime/mod.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/runtime/mod.rs diff --git a/module-system/sov-modules-core/src/storage/cache.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/cache.rs similarity index 100% rename from module-system/sov-modules-core/src/storage/cache.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/storage/cache.rs diff --git a/module-system/sov-modules-core/src/storage/codec.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/codec.rs similarity index 100% rename from module-system/sov-modules-core/src/storage/codec.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/storage/codec.rs diff --git a/module-system/sov-modules-core/src/storage/mod.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/mod.rs similarity index 100% rename from module-system/sov-modules-core/src/storage/mod.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/storage/mod.rs diff --git a/module-system/sov-modules-core/src/storage/scratchpad.rs b/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/scratchpad.rs similarity index 100% rename from module-system/sov-modules-core/src/storage/scratchpad.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/src/storage/scratchpad.rs diff --git a/module-system/sov-modules-core/tests/working_set_tests.rs b/crates/sovereign-sdk/module-system/sov-modules-core/tests/working_set_tests.rs similarity index 100% rename from module-system/sov-modules-core/tests/working_set_tests.rs rename to crates/sovereign-sdk/module-system/sov-modules-core/tests/working_set_tests.rs diff --git a/module-system/sov-modules-macros/Cargo.toml b/crates/sovereign-sdk/module-system/sov-modules-macros/Cargo.toml similarity index 100% rename from module-system/sov-modules-macros/Cargo.toml rename to crates/sovereign-sdk/module-system/sov-modules-macros/Cargo.toml diff --git a/module-system/sov-modules-macros/README.md b/crates/sovereign-sdk/module-system/sov-modules-macros/README.md similarity index 100% rename from module-system/sov-modules-macros/README.md rename to crates/sovereign-sdk/module-system/sov-modules-macros/README.md diff --git a/module-system/sov-modules-macros/src/cli_parser.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/cli_parser.rs similarity index 100% rename from module-system/sov-modules-macros/src/cli_parser.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/cli_parser.rs diff --git a/module-system/sov-modules-macros/src/common.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/common.rs similarity index 100% rename from module-system/sov-modules-macros/src/common.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/common.rs diff --git a/module-system/sov-modules-macros/src/default_runtime.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/default_runtime.rs similarity index 100% rename from module-system/sov-modules-macros/src/default_runtime.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/default_runtime.rs diff --git a/module-system/sov-modules-macros/src/dispatch/dispatch_call.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/dispatch/dispatch_call.rs similarity index 100% rename from module-system/sov-modules-macros/src/dispatch/dispatch_call.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/dispatch/dispatch_call.rs diff --git a/module-system/sov-modules-macros/src/dispatch/genesis.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/dispatch/genesis.rs similarity index 100% rename from module-system/sov-modules-macros/src/dispatch/genesis.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/dispatch/genesis.rs diff --git a/module-system/sov-modules-macros/src/dispatch/message_codec.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/dispatch/message_codec.rs similarity index 100% rename from module-system/sov-modules-macros/src/dispatch/message_codec.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/dispatch/message_codec.rs diff --git a/module-system/sov-modules-macros/src/dispatch/mod.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/dispatch/mod.rs similarity index 100% rename from module-system/sov-modules-macros/src/dispatch/mod.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/dispatch/mod.rs diff --git a/module-system/sov-modules-macros/src/event.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/event.rs similarity index 100% rename from module-system/sov-modules-macros/src/event.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/event.rs diff --git a/module-system/sov-modules-macros/src/lib.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/lib.rs similarity index 100% rename from module-system/sov-modules-macros/src/lib.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/lib.rs diff --git a/module-system/sov-modules-macros/src/make_constants.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/make_constants.rs similarity index 100% rename from module-system/sov-modules-macros/src/make_constants.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/make_constants.rs diff --git a/module-system/sov-modules-macros/src/manifest.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/manifest.rs similarity index 97% rename from module-system/sov-modules-macros/src/manifest.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/manifest.rs index 8f3fbdc36..98a5fd083 100644 --- a/module-system/sov-modules-macros/src/manifest.rs +++ b/crates/sovereign-sdk/module-system/sov-modules-macros/src/manifest.rs @@ -59,16 +59,16 @@ impl<'a> Manifest<'a> { /// The `parent` is used to report the errors to the correct span location. pub fn read_constants(parent: &'a Ident) -> Result { #[cfg(not(test))] - let mut name = "constants.json"; + let mut name = "crates/sovereign-sdk/constants.json"; #[cfg(test)] - let mut name = "constants.test.json"; + let mut name = "crates/sovereign-sdk/constants.test.json"; // workaround to https://github.com/dtolnay/trybuild/issues/231 // despite trybuild being a crate to build tests, it won't set the `test` flag. It isn't // setting the `trybuild` flag properly either. if env::var_os("CONSTANTS_MANIFEST_TRYBUILD").is_some() { - name = "constants.test.json"; + name = "crates/sovereign-sdk/constants.test.json"; } let constants_dir = env::var_os("CONSTANTS_MANIFEST") diff --git a/module-system/sov-modules-macros/src/module_call_json_schema.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/module_call_json_schema.rs similarity index 100% rename from module-system/sov-modules-macros/src/module_call_json_schema.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/module_call_json_schema.rs diff --git a/module-system/sov-modules-macros/src/module_info.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/module_info.rs similarity index 100% rename from module-system/sov-modules-macros/src/module_info.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/module_info.rs diff --git a/module-system/sov-modules-macros/src/new_types.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/new_types.rs similarity index 100% rename from module-system/sov-modules-macros/src/new_types.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/new_types.rs diff --git a/module-system/sov-modules-macros/src/offchain.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/offchain.rs similarity index 100% rename from module-system/sov-modules-macros/src/offchain.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/offchain.rs diff --git a/module-system/sov-modules-macros/src/rpc/expose_rpc.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/rpc/expose_rpc.rs similarity index 100% rename from module-system/sov-modules-macros/src/rpc/expose_rpc.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/rpc/expose_rpc.rs diff --git a/module-system/sov-modules-macros/src/rpc/mod.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/rpc/mod.rs similarity index 100% rename from module-system/sov-modules-macros/src/rpc/mod.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/rpc/mod.rs diff --git a/module-system/sov-modules-macros/src/rpc/rpc_gen.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/src/rpc/rpc_gen.rs similarity index 100% rename from module-system/sov-modules-macros/src/rpc/rpc_gen.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/src/rpc/rpc_gen.rs diff --git a/module-system/sov-modules-macros/tests/all_tests.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/all_tests.rs similarity index 100% rename from module-system/sov-modules-macros/tests/all_tests.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/all_tests.rs diff --git a/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_mixed_fields.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_mixed_fields.rs similarity index 100% rename from module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_mixed_fields.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_mixed_fields.rs diff --git a/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_named_fields.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_named_fields.rs similarity index 100% rename from module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_named_fields.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_named_fields.rs diff --git a/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_unnamed_fields.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_unnamed_fields.rs similarity index 100% rename from module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_unnamed_fields.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_enum_unnamed_fields.rs diff --git a/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_struct_named_fields.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_struct_named_fields.rs similarity index 100% rename from module-system/sov-modules-macros/tests/cli_wallet_arg/derive_struct_named_fields.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_struct_named_fields.rs diff --git a/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_struct_unnamed_fields.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_struct_unnamed_fields.rs similarity index 100% rename from module-system/sov-modules-macros/tests/cli_wallet_arg/derive_struct_unnamed_fields.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_struct_unnamed_fields.rs diff --git a/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_wallet.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_wallet.rs similarity index 100% rename from module-system/sov-modules-macros/tests/cli_wallet_arg/derive_wallet.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/cli_wallet_arg/derive_wallet.rs diff --git a/module-system/sov-modules-macros/tests/constants/create_constant.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/constants/create_constant.rs similarity index 100% rename from module-system/sov-modules-macros/tests/constants/create_constant.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/constants/create_constant.rs diff --git a/module-system/sov-modules-macros/tests/custom_codec_must_be_used.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/custom_codec_must_be_used.rs similarity index 100% rename from module-system/sov-modules-macros/tests/custom_codec_must_be_used.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/custom_codec_must_be_used.rs diff --git a/module-system/sov-modules-macros/tests/dispatch/derive_dispatch.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/derive_dispatch.rs similarity index 100% rename from module-system/sov-modules-macros/tests/dispatch/derive_dispatch.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/derive_dispatch.rs diff --git a/module-system/sov-modules-macros/tests/dispatch/derive_event.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/derive_event.rs similarity index 100% rename from module-system/sov-modules-macros/tests/dispatch/derive_event.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/derive_event.rs diff --git a/module-system/sov-modules-macros/tests/dispatch/derive_genesis.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/derive_genesis.rs similarity index 100% rename from module-system/sov-modules-macros/tests/dispatch/derive_genesis.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/derive_genesis.rs diff --git a/module-system/sov-modules-macros/tests/dispatch/missing_serialization.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/missing_serialization.rs similarity index 100% rename from module-system/sov-modules-macros/tests/dispatch/missing_serialization.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/missing_serialization.rs diff --git a/module-system/sov-modules-macros/tests/dispatch/missing_serialization.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/missing_serialization.stderr similarity index 100% rename from module-system/sov-modules-macros/tests/dispatch/missing_serialization.stderr rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/missing_serialization.stderr diff --git a/module-system/sov-modules-macros/tests/dispatch/modules.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/modules.rs similarity index 100% rename from module-system/sov-modules-macros/tests/dispatch/modules.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/dispatch/modules.rs diff --git a/module-system/sov-modules-macros/tests/module_info/custom_codec_builder.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/custom_codec_builder.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/custom_codec_builder.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/custom_codec_builder.rs diff --git a/module-system/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.rs diff --git a/module-system/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.stderr similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.stderr rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/derive_on_enum_not_supported.stderr diff --git a/module-system/sov-modules-macros/tests/module_info/field_missing_attribute.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/field_missing_attribute.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/field_missing_attribute.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/field_missing_attribute.rs diff --git a/module-system/sov-modules-macros/tests/module_info/field_missing_attribute.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/field_missing_attribute.stderr similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/field_missing_attribute.stderr rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/field_missing_attribute.stderr diff --git a/module-system/sov-modules-macros/tests/module_info/missing_address.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/missing_address.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/missing_address.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/missing_address.rs diff --git a/module-system/sov-modules-macros/tests/module_info/missing_address.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/missing_address.stderr similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/missing_address.stderr rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/missing_address.stderr diff --git a/module-system/sov-modules-macros/tests/module_info/mod_and_state.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/mod_and_state.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/mod_and_state.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/mod_and_state.rs diff --git a/module-system/sov-modules-macros/tests/module_info/no_generics.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/no_generics.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/no_generics.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/no_generics.rs diff --git a/module-system/sov-modules-macros/tests/module_info/no_generics.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/no_generics.stderr similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/no_generics.stderr rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/no_generics.stderr diff --git a/module-system/sov-modules-macros/tests/module_info/not_supported_attribute.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/not_supported_attribute.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/not_supported_attribute.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/not_supported_attribute.rs diff --git a/module-system/sov-modules-macros/tests/module_info/not_supported_type.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/not_supported_type.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/not_supported_type.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/not_supported_type.rs diff --git a/module-system/sov-modules-macros/tests/module_info/not_supported_type.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/not_supported_type.stderr similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/not_supported_type.stderr rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/not_supported_type.stderr diff --git a/module-system/sov-modules-macros/tests/module_info/parse.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/parse.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/parse.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/parse.rs diff --git a/module-system/sov-modules-macros/tests/module_info/second_addr_not_supported.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/second_addr_not_supported.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/second_addr_not_supported.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/second_addr_not_supported.rs diff --git a/module-system/sov-modules-macros/tests/module_info/second_addr_not_supported.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/second_addr_not_supported.stderr similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/second_addr_not_supported.stderr rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/second_addr_not_supported.stderr diff --git a/module-system/sov-modules-macros/tests/module_info/use_address_trait.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/use_address_trait.rs similarity index 100% rename from module-system/sov-modules-macros/tests/module_info/use_address_trait.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/module_info/use_address_trait.rs diff --git a/module-system/sov-modules-macros/tests/rpc/derive_rpc.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/derive_rpc.rs similarity index 100% rename from module-system/sov-modules-macros/tests/rpc/derive_rpc.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/derive_rpc.rs diff --git a/module-system/sov-modules-macros/tests/rpc/derive_rpc_with_where.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/derive_rpc_with_where.rs similarity index 100% rename from module-system/sov-modules-macros/tests/rpc/derive_rpc_with_where.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/derive_rpc_with_where.rs diff --git a/module-system/sov-modules-macros/tests/rpc/expose_rpc.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc.rs similarity index 100% rename from module-system/sov-modules-macros/tests/rpc/expose_rpc.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc.rs diff --git a/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.rs similarity index 100% rename from module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.rs diff --git a/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.stderr similarity index 100% rename from module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.stderr rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_type_not_static.stderr diff --git a/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_types.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_types.rs similarity index 100% rename from module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_types.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_types.rs diff --git a/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_types_nested.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_types_nested.rs similarity index 100% rename from module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_types_nested.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_associated_types_nested.rs diff --git a/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.rs b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.rs similarity index 100% rename from module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.rs rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.rs diff --git a/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr similarity index 92% rename from module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr rename to crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr index 024ae486d..f6a5c672a 100644 --- a/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr +++ b/crates/sovereign-sdk/module-system/sov-modules-macros/tests/rpc/expose_rpc_first_generic_not_context.stderr @@ -13,7 +13,7 @@ error[E0277]: the trait bound `S: sov_modules_api::Context` is not satisfied | ^ the trait `sov_modules_api::Context` is not implemented for `S` | note: required by a bound in `sov_modules_api::Genesis::Context` - --> $WORKSPACE/module-system/sov-modules-core/src/module/mod.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/mod.rs | | type Context: Context; | ^^^^^^^ required by this bound in `Genesis::Context` @@ -35,7 +35,7 @@ note: required because it appears within the type `PhantomData<:: | pub struct PhantomData; | ^^^^^^^^^^^ note: required because it appears within the type `sov_modules_api::StateValue<::Data>` - --> $WORKSPACE/module-system/sov-modules-api/src/containers/value.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs | | pub struct StateValue { | ^^^^^^^^^^ @@ -50,7 +50,7 @@ note: required because it appears within the type `Runtime` 99 | struct Runtime { | ^^^^^^^ note: required by a bound in `sov_modules_api::DispatchCall` - --> $WORKSPACE/module-system/sov-modules-core/src/module/dispatch.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs | | pub trait DispatchCall: Send + Sync { | ^^^^ required by this bound in `DispatchCall` @@ -72,7 +72,7 @@ note: required because it appears within the type `PhantomData<:: | pub struct PhantomData; | ^^^^^^^^^^^ note: required because it appears within the type `sov_modules_api::StateValue<::Data>` - --> $WORKSPACE/module-system/sov-modules-api/src/containers/value.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-api/src/containers/value.rs | | pub struct StateValue { | ^^^^^^^^^^ @@ -87,7 +87,7 @@ note: required because it appears within the type `Runtime` 99 | struct Runtime { | ^^^^^^^ note: required by a bound in `sov_modules_api::DispatchCall` - --> $WORKSPACE/module-system/sov-modules-core/src/module/dispatch.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs | | pub trait DispatchCall: Send + Sync { | ^^^^ required by this bound in `DispatchCall` @@ -103,7 +103,7 @@ error[E0277]: the trait bound `S: sov_modules_api::Context` is not satisfied | ^ the trait `sov_modules_api::Context` is not implemented for `S` | note: required by a bound in `sov_modules_api::DispatchCall::Context` - --> $WORKSPACE/module-system/sov-modules-core/src/module/dispatch.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs | | type Context: Context; | ^^^^^^^ required by this bound in `DispatchCall::Context` @@ -125,7 +125,7 @@ note: required because it appears within the type `RuntimeCall` 97 | #[derive(Genesis, DispatchCall, MessageCodec, DefaultRuntime)] | ^^^^^^^^^^^^ note: required by a bound in `sov_modules_api::DispatchCall::Decodable` - --> $WORKSPACE/module-system/sov-modules-core/src/module/dispatch.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs | | type Decodable: Send + Sync; | ^^^^ required by this bound in `DispatchCall::Decodable` @@ -148,7 +148,7 @@ note: required because it appears within the type `RuntimeCall` 97 | #[derive(Genesis, DispatchCall, MessageCodec, DefaultRuntime)] | ^^^^^^^^^^^^ note: required by a bound in `sov_modules_api::DispatchCall::Decodable` - --> $WORKSPACE/module-system/sov-modules-core/src/module/dispatch.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/module/dispatch.rs | | type Decodable: Send + Sync; | ^^^^ required by this bound in `DispatchCall::Decodable` @@ -214,7 +214,7 @@ error[E0277]: the trait bound `S: sov_modules_api::Context` is not satisfied | ^^^^^^^ the trait `sov_modules_api::Context` is not implemented for `S` | note: required by a bound in `sov_modules_api::WorkingSet` - --> $WORKSPACE/module-system/sov-modules-core/src/storage/scratchpad.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/scratchpad.rs | | pub struct WorkingSet { | ^^^^^^^ required by this bound in `WorkingSet` @@ -231,7 +231,7 @@ error[E0277]: the trait bound `S: sov_modules_api::Context` is not satisfied | ^^^^^^^^^^^^ the trait `sov_modules_api::Context` is not implemented for `S` | note: required by a bound in `sov_modules_api::WorkingSet` - --> $WORKSPACE/module-system/sov-modules-core/src/storage/scratchpad.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/scratchpad.rs | | pub struct WorkingSet { | ^^^^^^^ required by this bound in `WorkingSet` @@ -248,7 +248,7 @@ error[E0277]: the trait bound `S: sov_modules_api::Context` is not satisfied | ^^^^^^^^^^^^^ the trait `sov_modules_api::Context` is not implemented for `S` | note: required by a bound in `sov_modules_api::WorkingSet` - --> $WORKSPACE/module-system/sov-modules-core/src/storage/scratchpad.rs + --> $WORKSPACE/crates/sovereign-sdk/module-system/sov-modules-core/src/storage/scratchpad.rs | | pub struct WorkingSet { | ^^^^^^^ required by this bound in `WorkingSet` diff --git a/module-system/sov-modules-rollup-blueprint/Cargo.toml b/crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/Cargo.toml similarity index 91% rename from module-system/sov-modules-rollup-blueprint/Cargo.toml rename to crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/Cargo.toml index 60b7123b7..ce7731167 100644 --- a/module-system/sov-modules-rollup-blueprint/Cargo.toml +++ b/crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/Cargo.toml @@ -18,11 +18,11 @@ sov-rollup-interface = { path = "../../rollup-interface", features = [ sov-stf-runner = { path = "../../full-node/sov-stf-runner", features = [ "native", ], version = "0.3" } -chainway-sequencer = { path = "../../full-node/chainway-sequencer", features = [ +citrea-sequencer = { path = "../../../sequencer", features = [ ], version = "0.3" } const-rollup-config = { path = "../../examples/const-rollup-config" } sov-state = { path = "../sov-state", version = "0.3" } -sequencer-client = { path = "../../full-node/sequencer-client" } +sequencer-client = { path = "../../../sequencer-client" } sov-modules-api = { path = "../../module-system/sov-modules-api", features = [ "native", ], version = "0.3" } diff --git a/module-system/sov-modules-rollup-blueprint/README.md b/crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/README.md similarity index 100% rename from module-system/sov-modules-rollup-blueprint/README.md rename to crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/README.md diff --git a/module-system/sov-modules-rollup-blueprint/src/lib.rs b/crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/src/lib.rs similarity index 99% rename from module-system/sov-modules-rollup-blueprint/src/lib.rs rename to crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/src/lib.rs index 2e6b2a126..a267ef2d8 100644 --- a/module-system/sov-modules-rollup-blueprint/src/lib.rs +++ b/crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/src/lib.rs @@ -6,7 +6,7 @@ mod wallet; use std::net::SocketAddr; use async_trait::async_trait; -use chainway_sequencer::{ChainwaySequencer, SequencerConfig}; +use citrea_sequencer::{CitreaSequencer, SequencerConfig}; use const_rollup_config::TEST_PRIVATE_KEY; pub use runtime_rpc::*; use sequencer_client::SequencerClient; @@ -188,7 +188,7 @@ pub trait RollupBlueprint: Sized + Send + Sync { }; let seq = - ChainwaySequencer::new( + CitreaSequencer::new( da_service, <<::NativeContext as Spec>::PrivateKey as TryFrom< &[u8], @@ -308,7 +308,7 @@ pub trait RollupBlueprint: Sized + Send + Sync { pub struct Sequencer { /// The State Transition Runner of Sequencer. #[allow(clippy::type_complexity)] - pub runner: ChainwaySequencer< + pub runner: CitreaSequencer< S::NativeContext, S::DaService, S::StorageManager, diff --git a/module-system/sov-modules-rollup-blueprint/src/runtime_rpc.rs b/crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/src/runtime_rpc.rs similarity index 100% rename from module-system/sov-modules-rollup-blueprint/src/runtime_rpc.rs rename to crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/src/runtime_rpc.rs diff --git a/module-system/sov-modules-rollup-blueprint/src/wallet.rs b/crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/src/wallet.rs similarity index 100% rename from module-system/sov-modules-rollup-blueprint/src/wallet.rs rename to crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint/src/wallet.rs diff --git a/module-system/sov-modules-stf-blueprint/Cargo.toml b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/Cargo.toml similarity index 100% rename from module-system/sov-modules-stf-blueprint/Cargo.toml rename to crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/Cargo.toml diff --git a/module-system/sov-modules-stf-blueprint/README.md b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/README.md similarity index 100% rename from module-system/sov-modules-stf-blueprint/README.md rename to crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/README.md diff --git a/module-system/sov-modules-stf-blueprint/clippy.toml b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/clippy.toml similarity index 100% rename from module-system/sov-modules-stf-blueprint/clippy.toml rename to crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/clippy.toml diff --git a/module-system/sov-modules-stf-blueprint/src/batch.rs b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/batch.rs similarity index 100% rename from module-system/sov-modules-stf-blueprint/src/batch.rs rename to crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/batch.rs diff --git a/module-system/sov-modules-stf-blueprint/src/kernels/basic.rs b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/kernels/basic.rs similarity index 100% rename from module-system/sov-modules-stf-blueprint/src/kernels/basic.rs rename to crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/kernels/basic.rs diff --git a/module-system/sov-modules-stf-blueprint/src/kernels/mod.rs b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/kernels/mod.rs similarity index 100% rename from module-system/sov-modules-stf-blueprint/src/kernels/mod.rs rename to crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/kernels/mod.rs diff --git a/module-system/sov-modules-stf-blueprint/src/lib.rs b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/lib.rs similarity index 100% rename from module-system/sov-modules-stf-blueprint/src/lib.rs rename to crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/lib.rs diff --git a/module-system/sov-modules-stf-blueprint/src/stf_blueprint.rs b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/stf_blueprint.rs similarity index 100% rename from module-system/sov-modules-stf-blueprint/src/stf_blueprint.rs rename to crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/stf_blueprint.rs diff --git a/module-system/sov-modules-stf-blueprint/src/tx_verifier.rs b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/tx_verifier.rs similarity index 100% rename from module-system/sov-modules-stf-blueprint/src/tx_verifier.rs rename to crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/tx_verifier.rs diff --git a/module-system/sov-soft-confirmations-kernel/Cargo.toml b/crates/sovereign-sdk/module-system/sov-soft-confirmations-kernel/Cargo.toml similarity index 100% rename from module-system/sov-soft-confirmations-kernel/Cargo.toml rename to crates/sovereign-sdk/module-system/sov-soft-confirmations-kernel/Cargo.toml diff --git a/module-system/sov-soft-confirmations-kernel/src/lib.rs b/crates/sovereign-sdk/module-system/sov-soft-confirmations-kernel/src/lib.rs similarity index 100% rename from module-system/sov-soft-confirmations-kernel/src/lib.rs rename to crates/sovereign-sdk/module-system/sov-soft-confirmations-kernel/src/lib.rs diff --git a/module-system/sov-state/.gitignore b/crates/sovereign-sdk/module-system/sov-state/.gitignore similarity index 100% rename from module-system/sov-state/.gitignore rename to crates/sovereign-sdk/module-system/sov-state/.gitignore diff --git a/module-system/sov-state/Cargo.toml b/crates/sovereign-sdk/module-system/sov-state/Cargo.toml similarity index 100% rename from module-system/sov-state/Cargo.toml rename to crates/sovereign-sdk/module-system/sov-state/Cargo.toml diff --git a/module-system/sov-state/README.md b/crates/sovereign-sdk/module-system/sov-state/README.md similarity index 100% rename from module-system/sov-state/README.md rename to crates/sovereign-sdk/module-system/sov-state/README.md diff --git a/module-system/sov-state/src/codec/bcs_codec.rs b/crates/sovereign-sdk/module-system/sov-state/src/codec/bcs_codec.rs similarity index 100% rename from module-system/sov-state/src/codec/bcs_codec.rs rename to crates/sovereign-sdk/module-system/sov-state/src/codec/bcs_codec.rs diff --git a/module-system/sov-state/src/codec/borsh_codec.rs b/crates/sovereign-sdk/module-system/sov-state/src/codec/borsh_codec.rs similarity index 100% rename from module-system/sov-state/src/codec/borsh_codec.rs rename to crates/sovereign-sdk/module-system/sov-state/src/codec/borsh_codec.rs diff --git a/module-system/sov-state/src/codec/json_codec.rs b/crates/sovereign-sdk/module-system/sov-state/src/codec/json_codec.rs similarity index 100% rename from module-system/sov-state/src/codec/json_codec.rs rename to crates/sovereign-sdk/module-system/sov-state/src/codec/json_codec.rs diff --git a/module-system/sov-state/src/codec/mod.rs b/crates/sovereign-sdk/module-system/sov-state/src/codec/mod.rs similarity index 100% rename from module-system/sov-state/src/codec/mod.rs rename to crates/sovereign-sdk/module-system/sov-state/src/codec/mod.rs diff --git a/module-system/sov-state/src/codec/split_codec.rs b/crates/sovereign-sdk/module-system/sov-state/src/codec/split_codec.rs similarity index 100% rename from module-system/sov-state/src/codec/split_codec.rs rename to crates/sovereign-sdk/module-system/sov-state/src/codec/split_codec.rs diff --git a/module-system/sov-state/src/config.rs b/crates/sovereign-sdk/module-system/sov-state/src/config.rs similarity index 100% rename from module-system/sov-state/src/config.rs rename to crates/sovereign-sdk/module-system/sov-state/src/config.rs diff --git a/module-system/sov-state/src/lib.rs b/crates/sovereign-sdk/module-system/sov-state/src/lib.rs similarity index 100% rename from module-system/sov-state/src/lib.rs rename to crates/sovereign-sdk/module-system/sov-state/src/lib.rs diff --git a/module-system/sov-state/src/prover_storage.rs b/crates/sovereign-sdk/module-system/sov-state/src/prover_storage.rs similarity index 100% rename from module-system/sov-state/src/prover_storage.rs rename to crates/sovereign-sdk/module-system/sov-state/src/prover_storage.rs diff --git a/module-system/sov-state/src/witness.rs b/crates/sovereign-sdk/module-system/sov-state/src/witness.rs similarity index 100% rename from module-system/sov-state/src/witness.rs rename to crates/sovereign-sdk/module-system/sov-state/src/witness.rs diff --git a/module-system/sov-state/src/zk_storage.rs b/crates/sovereign-sdk/module-system/sov-state/src/zk_storage.rs similarity index 100% rename from module-system/sov-state/src/zk_storage.rs rename to crates/sovereign-sdk/module-system/sov-state/src/zk_storage.rs diff --git a/module-system/utils/sov-data-generators/Cargo.toml b/crates/sovereign-sdk/module-system/utils/sov-data-generators/Cargo.toml similarity index 100% rename from module-system/utils/sov-data-generators/Cargo.toml rename to crates/sovereign-sdk/module-system/utils/sov-data-generators/Cargo.toml diff --git a/module-system/utils/sov-data-generators/src/bank_data.rs b/crates/sovereign-sdk/module-system/utils/sov-data-generators/src/bank_data.rs similarity index 100% rename from module-system/utils/sov-data-generators/src/bank_data.rs rename to crates/sovereign-sdk/module-system/utils/sov-data-generators/src/bank_data.rs diff --git a/module-system/utils/sov-data-generators/src/lib.rs b/crates/sovereign-sdk/module-system/utils/sov-data-generators/src/lib.rs similarity index 100% rename from module-system/utils/sov-data-generators/src/lib.rs rename to crates/sovereign-sdk/module-system/utils/sov-data-generators/src/lib.rs diff --git a/module-system/utils/sov-data-generators/src/value_setter_data.rs b/crates/sovereign-sdk/module-system/utils/sov-data-generators/src/value_setter_data.rs similarity index 100% rename from module-system/utils/sov-data-generators/src/value_setter_data.rs rename to crates/sovereign-sdk/module-system/utils/sov-data-generators/src/value_setter_data.rs diff --git a/rollup-interface/Cargo.toml b/crates/sovereign-sdk/rollup-interface/Cargo.toml similarity index 100% rename from rollup-interface/Cargo.toml rename to crates/sovereign-sdk/rollup-interface/Cargo.toml diff --git a/rollup-interface/Makefile b/crates/sovereign-sdk/rollup-interface/Makefile similarity index 100% rename from rollup-interface/Makefile rename to crates/sovereign-sdk/rollup-interface/Makefile diff --git a/rollup-interface/README.md b/crates/sovereign-sdk/rollup-interface/README.md similarity index 100% rename from rollup-interface/README.md rename to crates/sovereign-sdk/rollup-interface/README.md diff --git a/rollup-interface/specs/assets/SovSDK.png b/crates/sovereign-sdk/rollup-interface/specs/assets/SovSDK.png similarity index 100% rename from rollup-interface/specs/assets/SovSDK.png rename to crates/sovereign-sdk/rollup-interface/specs/assets/SovSDK.png diff --git a/rollup-interface/specs/interfaces/da.md b/crates/sovereign-sdk/rollup-interface/specs/interfaces/da.md similarity index 100% rename from rollup-interface/specs/interfaces/da.md rename to crates/sovereign-sdk/rollup-interface/specs/interfaces/da.md diff --git a/rollup-interface/specs/interfaces/interface.md b/crates/sovereign-sdk/rollup-interface/specs/interfaces/interface.md similarity index 100% rename from rollup-interface/specs/interfaces/interface.md rename to crates/sovereign-sdk/rollup-interface/specs/interfaces/interface.md diff --git a/rollup-interface/specs/interfaces/stf.md b/crates/sovereign-sdk/rollup-interface/specs/interfaces/stf.md similarity index 100% rename from rollup-interface/specs/interfaces/stf.md rename to crates/sovereign-sdk/rollup-interface/specs/interfaces/stf.md diff --git a/rollup-interface/specs/interfaces/zkvm.md b/crates/sovereign-sdk/rollup-interface/specs/interfaces/zkvm.md similarity index 100% rename from rollup-interface/specs/interfaces/zkvm.md rename to crates/sovereign-sdk/rollup-interface/specs/interfaces/zkvm.md diff --git a/rollup-interface/specs/overview.md b/crates/sovereign-sdk/rollup-interface/specs/overview.md similarity index 100% rename from rollup-interface/specs/overview.md rename to crates/sovereign-sdk/rollup-interface/specs/overview.md diff --git a/rollup-interface/src/lib.rs b/crates/sovereign-sdk/rollup-interface/src/lib.rs similarity index 100% rename from rollup-interface/src/lib.rs rename to crates/sovereign-sdk/rollup-interface/src/lib.rs diff --git a/rollup-interface/src/node/README.md b/crates/sovereign-sdk/rollup-interface/src/node/README.md similarity index 100% rename from rollup-interface/src/node/README.md rename to crates/sovereign-sdk/rollup-interface/src/node/README.md diff --git a/rollup-interface/src/node/mod.rs b/crates/sovereign-sdk/rollup-interface/src/node/mod.rs similarity index 100% rename from rollup-interface/src/node/mod.rs rename to crates/sovereign-sdk/rollup-interface/src/node/mod.rs diff --git a/rollup-interface/src/node/rpc/mod.rs b/crates/sovereign-sdk/rollup-interface/src/node/rpc/mod.rs similarity index 99% rename from rollup-interface/src/node/rpc/mod.rs rename to crates/sovereign-sdk/rollup-interface/src/node/rpc/mod.rs index f45445005..a798f2d4d 100644 --- a/rollup-interface/src/node/rpc/mod.rs +++ b/crates/sovereign-sdk/rollup-interface/src/node/rpc/mod.rs @@ -169,6 +169,7 @@ pub struct SoftBatchResponse { /// The DA slothash of the soft batch. // TODO: find a way to hex serialize this and then // deserialize in `SequencerClient` + #[serde(with = "hex::serde")] pub da_slot_hash: [u8; 32], /// The hash of the soft batch. #[serde(with = "hex::serde")] diff --git a/rollup-interface/src/node/services/batch_builder.rs b/crates/sovereign-sdk/rollup-interface/src/node/services/batch_builder.rs similarity index 100% rename from rollup-interface/src/node/services/batch_builder.rs rename to crates/sovereign-sdk/rollup-interface/src/node/services/batch_builder.rs diff --git a/rollup-interface/src/node/services/da.rs b/crates/sovereign-sdk/rollup-interface/src/node/services/da.rs similarity index 96% rename from rollup-interface/src/node/services/da.rs rename to crates/sovereign-sdk/rollup-interface/src/node/services/da.rs index 42f373bd6..5b72e7366 100644 --- a/rollup-interface/src/node/services/da.rs +++ b/crates/sovereign-sdk/rollup-interface/src/node/services/da.rs @@ -113,13 +113,6 @@ pub trait DaService: Send + Sync + 'static { /// Returns nothing if the transaction was successfully sent. async fn send_transaction(&self, blob: &[u8]) -> Result; - #[allow(clippy::type_complexity)] - /// Convert blob to a DA layer transaction. - fn convert_rollup_batch_to_da_blob( - &self, - blob: &[u8], - ) -> Result<(::BlobTransaction, Vec), Self::Error>; - /// Sends am aggregated ZK proofs to the DA layer. async fn send_aggregated_zk_proof( &self, diff --git a/rollup-interface/src/node/services/mod.rs b/crates/sovereign-sdk/rollup-interface/src/node/services/mod.rs similarity index 100% rename from rollup-interface/src/node/services/mod.rs rename to crates/sovereign-sdk/rollup-interface/src/node/services/mod.rs diff --git a/rollup-interface/src/state_machine/README.md b/crates/sovereign-sdk/rollup-interface/src/state_machine/README.md similarity index 100% rename from rollup-interface/src/state_machine/README.md rename to crates/sovereign-sdk/rollup-interface/src/state_machine/README.md diff --git a/rollup-interface/src/state_machine/crypto/mod.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/mod.rs similarity index 100% rename from rollup-interface/src/state_machine/crypto/mod.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/mod.rs diff --git a/rollup-interface/src/state_machine/crypto/simple_hasher.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/simple_hasher.rs similarity index 100% rename from rollup-interface/src/state_machine/crypto/simple_hasher.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/simple_hasher.rs diff --git a/rollup-interface/src/state_machine/da.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/da.rs similarity index 100% rename from rollup-interface/src/state_machine/da.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/da.rs diff --git a/rollup-interface/src/state_machine/mod.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/mod.rs similarity index 100% rename from rollup-interface/src/state_machine/mod.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/mod.rs diff --git a/rollup-interface/src/state_machine/optimistic.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/optimistic.rs similarity index 100% rename from rollup-interface/src/state_machine/optimistic.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/optimistic.rs diff --git a/rollup-interface/src/state_machine/soft_confirmation.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/soft_confirmation.rs similarity index 100% rename from rollup-interface/src/state_machine/soft_confirmation.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/soft_confirmation.rs diff --git a/rollup-interface/src/state_machine/stf.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/stf.rs similarity index 100% rename from rollup-interface/src/state_machine/stf.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/stf.rs diff --git a/rollup-interface/src/state_machine/stf/fuzzing.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/stf/fuzzing.rs similarity index 100% rename from rollup-interface/src/state_machine/stf/fuzzing.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/stf/fuzzing.rs diff --git a/rollup-interface/src/state_machine/storage.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/storage.rs similarity index 100% rename from rollup-interface/src/state_machine/storage.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/storage.rs diff --git a/rollup-interface/src/state_machine/zk/mod.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/zk/mod.rs similarity index 100% rename from rollup-interface/src/state_machine/zk/mod.rs rename to crates/sovereign-sdk/rollup-interface/src/state_machine/zk/mod.rs diff --git a/scripts/blockscout/.env b/crates/sovereign-sdk/scripts/blockscout/.env similarity index 100% rename from scripts/blockscout/.env rename to crates/sovereign-sdk/scripts/blockscout/.env diff --git a/scripts/check_missing_dependency_versions.sh b/crates/sovereign-sdk/scripts/check_missing_dependency_versions.sh similarity index 100% rename from scripts/check_missing_dependency_versions.sh rename to crates/sovereign-sdk/scripts/check_missing_dependency_versions.sh diff --git a/crates/sovereign-sdk/scripts/retesteth/README.md b/crates/sovereign-sdk/scripts/retesteth/README.md new file mode 100644 index 000000000..b0f734a77 --- /dev/null +++ b/crates/sovereign-sdk/scripts/retesteth/README.md @@ -0,0 +1 @@ +`config.json` is the WIP configuration file for using `retesteth` with `citrea-evm`. It's based on the configuration options of `evmone` and must be extensively updated to work with `citrea-evm`, it's broken as of now. Nonetheless, it's committed into version control to share progress across `citrea-evm` maintainers. diff --git a/scripts/retesteth/config.json b/crates/sovereign-sdk/scripts/retesteth/config.json similarity index 100% rename from scripts/retesteth/config.json rename to crates/sovereign-sdk/scripts/retesteth/config.json diff --git a/scripts/validate_packages_to_publish_yml.sh b/crates/sovereign-sdk/scripts/validate_packages_to_publish_yml.sh similarity index 100% rename from scripts/validate_packages_to_publish_yml.sh rename to crates/sovereign-sdk/scripts/validate_packages_to_publish_yml.sh diff --git a/utils/README.md b/crates/sovereign-sdk/utils/README.md similarity index 100% rename from utils/README.md rename to crates/sovereign-sdk/utils/README.md diff --git a/utils/bashtestmd/Cargo.toml b/crates/sovereign-sdk/utils/bashtestmd/Cargo.toml similarity index 100% rename from utils/bashtestmd/Cargo.toml rename to crates/sovereign-sdk/utils/bashtestmd/Cargo.toml diff --git a/utils/bashtestmd/src/main.rs b/crates/sovereign-sdk/utils/bashtestmd/src/main.rs similarity index 100% rename from utils/bashtestmd/src/main.rs rename to crates/sovereign-sdk/utils/bashtestmd/src/main.rs diff --git a/utils/rng-da-service/Cargo.toml b/crates/sovereign-sdk/utils/rng-da-service/Cargo.toml similarity index 83% rename from utils/rng-da-service/Cargo.toml rename to crates/sovereign-sdk/utils/rng-da-service/Cargo.toml index df7384327..26856a036 100644 --- a/utils/rng-da-service/Cargo.toml +++ b/crates/sovereign-sdk/utils/rng-da-service/Cargo.toml @@ -18,8 +18,14 @@ serde = { workspace = true } tokio = { workspace = true } futures = { workspace = true } # Sovereign dependencies -demo-stf = { path = "../../examples/demo-rollup/stf", features = ["native"] } +demo-stf = { path = "../../../sovereign-sdk/examples/demo-stf", features = [ + "native", +] } sov-bank = { path = "../../module-system/module-implementations/sov-bank" } -sov-modules-api = { path = "../../module-system/sov-modules-api", features = ["native"] } -sov-rollup-interface = { path = "../../rollup-interface", features = ["native"] } +sov-modules-api = { path = "../../module-system/sov-modules-api", features = [ + "native", +] } +sov-rollup-interface = { path = "../../rollup-interface", features = [ + "native", +] } sov-mock-da = { path = "../../adapters/mock-da", features = ["native"] } diff --git a/utils/rng-da-service/src/lib.rs b/crates/sovereign-sdk/utils/rng-da-service/src/lib.rs similarity index 96% rename from utils/rng-da-service/src/lib.rs rename to crates/sovereign-sdk/utils/rng-da-service/src/lib.rs index 74a3c37ae..3ea842089 100644 --- a/utils/rng-da-service/src/lib.rs +++ b/crates/sovereign-sdk/utils/rng-da-service/src/lib.rs @@ -159,19 +159,6 @@ impl DaService for RngDaService { unimplemented!() } - fn convert_rollup_batch_to_da_blob( - &self, - _blob: &[u8], - ) -> Result< - ( - ::BlobTransaction, - Vec, - ), - Self::Error, - > { - unimplemented!() - } - async fn send_aggregated_zk_proof(&self, _proof: &[u8]) -> Result { unimplemented!() } diff --git a/utils/zk-cycle-macros/Cargo.toml b/crates/sovereign-sdk/utils/zk-cycle-macros/Cargo.toml similarity index 100% rename from utils/zk-cycle-macros/Cargo.toml rename to crates/sovereign-sdk/utils/zk-cycle-macros/Cargo.toml diff --git a/utils/zk-cycle-macros/README.md b/crates/sovereign-sdk/utils/zk-cycle-macros/README.md similarity index 100% rename from utils/zk-cycle-macros/README.md rename to crates/sovereign-sdk/utils/zk-cycle-macros/README.md diff --git a/utils/zk-cycle-macros/src/lib.rs b/crates/sovereign-sdk/utils/zk-cycle-macros/src/lib.rs similarity index 100% rename from utils/zk-cycle-macros/src/lib.rs rename to crates/sovereign-sdk/utils/zk-cycle-macros/src/lib.rs diff --git a/utils/zk-cycle-macros/tests/all_tests.rs b/crates/sovereign-sdk/utils/zk-cycle-macros/tests/all_tests.rs similarity index 100% rename from utils/zk-cycle-macros/tests/all_tests.rs rename to crates/sovereign-sdk/utils/zk-cycle-macros/tests/all_tests.rs diff --git a/utils/zk-cycle-macros/tests/cycle_macro.rs b/crates/sovereign-sdk/utils/zk-cycle-macros/tests/cycle_macro.rs similarity index 100% rename from utils/zk-cycle-macros/tests/cycle_macro.rs rename to crates/sovereign-sdk/utils/zk-cycle-macros/tests/cycle_macro.rs diff --git a/utils/zk-cycle-utils/Cargo.toml b/crates/sovereign-sdk/utils/zk-cycle-utils/Cargo.toml similarity index 100% rename from utils/zk-cycle-utils/Cargo.toml rename to crates/sovereign-sdk/utils/zk-cycle-utils/Cargo.toml diff --git a/utils/zk-cycle-utils/README.md b/crates/sovereign-sdk/utils/zk-cycle-utils/README.md similarity index 100% rename from utils/zk-cycle-utils/README.md rename to crates/sovereign-sdk/utils/zk-cycle-utils/README.md diff --git a/utils/zk-cycle-utils/src/lib.rs b/crates/sovereign-sdk/utils/zk-cycle-utils/src/lib.rs similarity index 100% rename from utils/zk-cycle-utils/src/lib.rs rename to crates/sovereign-sdk/utils/zk-cycle-utils/src/lib.rs diff --git a/utils/zk-cycle-utils/tracer/Cargo.lock b/crates/sovereign-sdk/utils/zk-cycle-utils/tracer/Cargo.lock similarity index 100% rename from utils/zk-cycle-utils/tracer/Cargo.lock rename to crates/sovereign-sdk/utils/zk-cycle-utils/tracer/Cargo.lock diff --git a/utils/zk-cycle-utils/tracer/Cargo.toml b/crates/sovereign-sdk/utils/zk-cycle-utils/tracer/Cargo.toml similarity index 100% rename from utils/zk-cycle-utils/tracer/Cargo.toml rename to crates/sovereign-sdk/utils/zk-cycle-utils/tracer/Cargo.toml diff --git a/utils/zk-cycle-utils/tracer/src/main.rs b/crates/sovereign-sdk/utils/zk-cycle-utils/tracer/src/main.rs similarity index 100% rename from utils/zk-cycle-utils/tracer/src/main.rs rename to crates/sovereign-sdk/utils/zk-cycle-utils/tracer/src/main.rs diff --git a/deny.toml b/deny.toml index ca525000c..16cab1548 100644 --- a/deny.toml +++ b/deny.toml @@ -1,4 +1,7 @@ [licenses] + +# TODO: figure this out after refactoring + # Deny crates that do not have a license. unlicensed = "deny" allow = [ diff --git a/docs/dev-setup.md b/docs/dev-setup.md new file mode 100644 index 000000000..4b0e1b040 --- /dev/null +++ b/docs/dev-setup.md @@ -0,0 +1,73 @@ +## Set up Citrea developer environment + +### Linux +```sh +# install Rust +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + +# install dependencies +sudo apt-get install build-essential pkg-config make clang lldb lld libssl-dev + +# clone the repo +git clone https://github.com/chainwayxyz/citrea.git + +cd citrea + +# install dev tools +make install-dev-tools +``` + +### Mac +```sh +# install Rust +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + +# install dependencies +xcode-select --install +brew install openssl + +# clone the repo +git clone https://github.com/chainwayxyz/citrea.git + +cd citrea + +# install dev tools +make install-dev-tools +``` + +## Install Bitcoin core for testing with Bitcoin regtest + +### Linux +```sh +# install dependencies +sudo apt-get install git build-essential autoconf libtool autotools-dev automake pkg-config bsdmainutils python3 libevent-dev libboost-dev libsqlite3-dev cpufrequtils libssl-dev cargo + +# clone the Bitcoin repository +git clone https://github.com/bitcoin/bitcoin.git + +cd bitcoin + +# checkout the latest release +git checkout v26.0 + +# some configs +./autogen.sh +./configure + +# get number of cores in the system +CORES=`lscpu|grep "CPU(s)"|head -1|awk '{print $2}'` + +# build Bitcoin +make -j $CORES + +# install binaries +sudo make install + +# check if it works +bitcoind --version +``` + +### Mac +```sh +brew install bitcoin +``` \ No newline at end of file diff --git a/docs/run.md b/docs/run.md new file mode 100644 index 000000000..00d3b2a7f --- /dev/null +++ b/docs/run.md @@ -0,0 +1,103 @@ +# Running Citrea + +This document covers how to run Citrea sequencer and a full node locally using a mock DA layer and Bitcoin Regtest. + +## Prerequisites +Follow the instructions in [this document.](./dev-setup.md) + +## Building and running +Build citrea: +```sh +SKIP_GUEST_BUILD=1 make build +``` + +### Run on Mock DA +Run on a local da layer, sharable between nodes that run on your computer. + +Run sequencer on Mock DA: +```sh +./target/debug/citrea --da-layer mock --rollup-config-path citrea/rollup/configs/mock/sequencer_rollup_config.toml --sequencer-config-path citrea/rollup/configs/mock/sequencer_config.toml --genesis-paths citrea/test-data/genesis/demo-tests/mock +``` + +Sequencer RPC is accessible at `127.0.0.1:12345` + +_Optional_: Run full node on Mock DA: +```sh +./target/debug/citrea --rollup-config-path citrea/rollup/configs/mock/rollup_config.toml --genesis-paths citrea/test-data/genesis/demo-tests/mock +``` + +Full node RPC is accessible at `127.0.0.1:12346` + +To publish blocks on Mock DA, run these on two seperate terminals: +```sh + ./citrea/rollup/publish_block.sh + + ./citrea/rollup/publish_da_block.sh +``` + +### Run on Bitcoin Regtest + +Run on local Bitcoin network. + +Run Bitcoin Regtest: +```sh +bitcoind -regtest -txindex=1 +``` +Keep this terminal open. + +Create bitcoin wallet for Bitcoin DA adapter. +```sh +bitcoin-cli -regtest createwallet citreatesting +bitcoin-cli -regtest loadwallet citreatesting +``` + +Mine blocks so that the wallet has BTC: +```sh +bitcoin-cli -regtest -generate 201 +``` + +Edit `bin/citrea/configs/bitcoin-regtest/sequencer_rollup_config.toml` and `bin/citrea/configs/bitcoin-regtest/sequencer_rollup_config.toml` files and put in your rpc url, username and password: + +```toml +[da] +# fill here +node_url = "" +# fill here +node_username = "" +# fill here +node_password = "" +``` + +Run sequencer: +```sh +./target/debug/citrea --da-layer bitcoin --rollup-config-path citrea/rollup/configs/bitcoin-regtest/sequencer_rollup_config.toml --sequencer-config-path citrea/rollup/configs/bitcoin-regtest/sequencer_config.toml --genesis-paths citrea/test-data/genesis/demo-tests/bitcoin-regtest +``` + +Sequencer RPC is accessible at `127.0.0.1:12345` + +_Optional_: Run full node + +Run full node: +```sh +./target/debug/citrea --da-layer bitcoin --rollup-config-path citrea/rollup/configs/bitcoin-regtest/rollup_config.toml --genesis-paths citrea/test-data/genesis/demo-tests/bitcoin-regtest +``` + +Full node RPC is accessible at `127.0.0.1:12346` + +To publish blocks on Bitcoin Regtest, run this and keep the terminal open: +```sh + ./citrea/rollup/publish_block.sh +``` + +To delete sequencer or full nodes databases run: +```sh +make clean-node +``` + +## Testing + +To run tests: +```sh +SKIP_GUEST_BUILD=1 make test +``` +This will run [`cargo nextest`](https://nexte.st). \ No newline at end of file diff --git a/examples/demo-rollup/Cargo.toml b/examples/demo-rollup/Cargo.toml deleted file mode 100644 index 8947922c4..000000000 --- a/examples/demo-rollup/Cargo.toml +++ /dev/null @@ -1,157 +0,0 @@ -[package] -name = "sov-demo-rollup" -version = { workspace = true } -edition = { workspace = true } -authors = { workspace = true } -license = { workspace = true } -homepage = "sovereign.xyz" -publish = false -resolver = "2" -default-run = "sov-demo-rollup" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -# non-optional dependencies -sov-celestia-adapter = { path = "../../adapters/celestia", features = [ - "native", -] } -bitcoin-da = { path = "../../adapters/bitcoin", features = ["native"] } -sov-mock-da = { path = "../../adapters/mock-da", features = ["native"] } -const-rollup-config = { path = "../const-rollup-config" } -sov-stf-runner = { path = "../../full-node/sov-stf-runner", features = [ - "native", -] } -sov-rollup-interface = { path = "../../rollup-interface", features = [ - "native", -] } -sov-prover-storage-manager = { path = "../../full-node/sov-prover-storage-manager" } - -sov-modules-rollup-blueprint = { path = "../../module-system/sov-modules-rollup-blueprint" } -sov-modules-stf-blueprint = { path = "../../module-system/sov-modules-stf-blueprint", features = [ - "native", -] } -sov-modules-api = { path = "../../module-system/sov-modules-api", features = [ - "native", -] } -sov-nft-module = { path = "../../module-system/module-implementations/sov-nft-module" } -demo-stf = { path = "./stf", features = ["native"] } -citrea-stf = { path = "./citrea-stf", features = ["native"] } -sov-ledger-rpc = { path = "../../full-node/sov-ledger-rpc", features = [ - "server", -] } -risc0 = { path = "./provers/risc0" } -borsh = { workspace = true, features = ["bytes"] } -async-trait = { workspace = true } -anyhow = { workspace = true } -jsonrpsee = { workspace = true, features = ["http-client", "server"] } -serde = { workspace = true, features = ["derive"] } -serde_json = { workspace = true } -tracing = { workspace = true } -hex = { workspace = true, optional = true } -tokio = { workspace = true } -reth-primitives = { workspace = true } -reth-transaction-pool = { workspace = true } -reth-rpc-types = { workspace = true } -tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } - -sov-evm = { path = "../../module-system/module-implementations/sov-evm" } -soft-confirmation-rule-enforcer = { path = "../../module-system/module-implementations/soft-confirmation-rule-enforcer" } -sov-db = { path = "../../full-node/db/sov-db" } -sov-ethereum = { path = "../../full-node/sov-ethereum" } -sov-sequencer = { path = "../../full-node/sov-sequencer" } -sequencer-client = { path = "../../full-node/sequencer-client" } -chainway-sequencer = { path = "../../full-node/chainway-sequencer" } -sov-risc0-adapter = { path = "../../adapters/risc0", features = ["native"] } -sov-state = { path = "../../module-system/sov-state", features = ["native"] } -sov-cli = { path = "../../module-system/sov-cli" } -clap = { workspace = true } -secp256k1 = { workspace = true } - -[dev-dependencies] -sov-rng-da-service = { path = "../../utils/rng-da-service" } -sov-rollup-interface = { path = "../../rollup-interface", features = [ - "fuzzing", -] } -sov-prover-storage-manager = { path = "../../full-node/sov-prover-storage-manager", features = [ - "test-utils", -] } -sov-mock-da = { path = "../../adapters/mock-da" } -sov-evm = { path = "../../module-system/module-implementations/sov-evm", features = [ - "smart_contracts", -] } -sov-bank = { path = "../../module-system/module-implementations/sov-bank", features = [ - "native", -] } -sov-nft-module = { path = "../../module-system/module-implementations/sov-nft-module", features = [ - "native", -] } -sov-zk-cycle-macros = { path = "../../utils/zk-cycle-macros" } -humantime = "2.1" -rs_merkle = { workspace = true } -borsh = { workspace = true } -bincode = { workspace = true } -sha2 = { workspace = true } -hex = { workspace = true } -serde_json = { workspace = true } -tempfile = { workspace = true } -proptest = { workspace = true } -tokio = { workspace = true } - -ethereum-types = { workspace = true } -ethers-core = { workspace = true } -ethers-contract = { workspace = true } -ethers-middleware = { workspace = true } -ethers-providers = { workspace = true } -ethers-signers = { workspace = true } -ethers = { workspace = true } -revm = { workspace = true } - -reqwest = "0.11" -tendermint = "0.32" -prometheus = "0.11.0" -prettytable-rs = "^0.10" -criterion = "0.5.1" -log = "0.4" -log4rs = "1.0" -regex = "1.10" - -[features] -default = [ -] # Deviate from convention by making the "native" feature active by default. This aligns with how this package is meant to be used (as a binary first, library second). - - -bench = [ - "hex", - "sov-risc0-adapter/bench", - "sov-zk-cycle-macros/bench", - "risc0/bench", -] -offchain = ["demo-stf/offchain"] - -[[bench]] -name = "rollup_bench" -path = "benches/node/rollup_bench.rs" -harness = false -required-features = ["bench"] - -[[bench]] -name = "rollup_coarse_measure" -path = "benches/node/rollup_coarse_measure.rs" -harness = false -required-features = ["bench"] - -[[bench]] -name = "prover_bench" -path = "benches/prover/prover_bench.rs" -harness = false -required-features = ["bench"] - -[[bin]] -name = "sov-cli" -path = "src/sov-cli/main.rs" - - -[[bin]] -name = "sov-demo-rollup" -path = "src/main.rs" diff --git a/examples/demo-rollup/Makefile b/examples/demo-rollup/Makefile deleted file mode 100644 index b0496b3bf..000000000 --- a/examples/demo-rollup/Makefile +++ /dev/null @@ -1,120 +0,0 @@ -PROJECT_ROOT := $(shell git rev-parse --show-toplevel) -DOCKER_COMPOSE_DIR := $(PROJECT_ROOT)/docker -DOCKER_COMPOSE_CFG := $(DOCKER_COMPOSE_DIR)/docker-compose.yml -CREDENTIALS_DIR := $(DOCKER_COMPOSE_DIR)/credentials -TEST_PRIVATE_KEY_PATH := $(PROJECT_ROOT)/examples/test-data/keys/minter_private_key.json -SOV_CLI_REL_PATH := $(PROJECT_ROOT)/target/debug/sov-cli - -# at height 3 the credits will already belong to the keys -START_HEIGHT := 3 -KEY_NAME := bridge-0 -RPC_PORT := 26658 - -# get the jwt token -get_auth = $(shell cat $(CREDENTIALS_DIR)/$(KEY_NAME).jwt) - -# Docker compose commands -docker_compose := docker compose -f $(DOCKER_COMPOSE_CFG) -# start the service -compose_up := $(docker_compose) up --build --force-recreate -d -# stop the service -compose_down := $(docker_compose) down -# follow the logs -compose_logs := $(docker_compose) logs -f -# check if service is running -# we need a bridge and validator so naive check is to have at least 2 services -compose_is_running = test 2 -le "$(shell $(docker_compose) ps --filter status=running --format json | jq 'length')" - -# start the celestia network and generate a new config -start: check-docker start-network update-config - @$(compose_logs) - -# start the celestia network or attach to existing -start-network: check-docker - @echo "Starting local celestia network setup" - @if $(compose_is_running); then $(compose_logs); else $(compose_up); fi - -# stop the celestia network -stop: check-docker - @echo "Stopping local celestia network setup" - @$(compose_down) - -# clean up rollup data and stop the celestia network -clean: stop clean-celestia-rollup-db - -# listen to celestia network logs -compose-logs: check-docker - @echo "Showing celestia logs" - @$(compose_logs) - -# check if docker is installed -check-docker: - @command -v docker > /dev/null 2>&1 || { echo "Docker is not installed"; exit 1; } - -# check if celestia network is running -check-compose-running: check-docker - @$(compose_is_running) - -# wait for the celestia network to perform setup and coins transfers -wait-compose-ready: - @echo "Waiting for services to finish setup" - @$(compose_logs) | awk '/Provisioning finished./ {print;exit}' # exit when encounter this log entry - -# update the rollup configuration with local network params -update-config: wait-compose-ready -ifeq ($(shell uname -s),Darwin) - @sed -i '' 's/^\(celestia_rpc_auth_token = \)"[^"]*"/\1"$(get_auth)"/' celestia_rollup_config.toml - @sed -i '' 's#^\(celestia_rpc_address = \)"[^"]*"#\1"http://127.0.0.1:$(RPC_PORT)"#' celestia_rollup_config.toml - @sed -i '' 's#^\(start_height = \)[0-9]*#\1$(START_HEIGHT)#' celestia_rollup_config.toml -else - @sed -i 's/^\(celestia_rpc_auth_token = \)"[^"]*"/\1"$(get_auth)"/' celestia_rollup_config.toml - @sed -i 's#^\(celestia_rpc_address = \)"[^"]*"#\1"http://127.0.0.1:$(RPC_PORT)"#' celestia_rollup_config.toml - @sed -i 's#^\(start_height = \)[0-9]*#\1$(START_HEIGHT)#' celestia_rollup_config.toml -endif - -build-sov-cli: - cargo build --bin sov-cli - -test-generate-create-token-tx: wait-compose-ready build-sov-cli - $(SOV_CLI_REL_PATH) transactions import from-file bank --chain-id 0 --path ../test-data/requests/create_token.json - -set-rpc-url: build-sov-cli - $(SOV_CLI_REL_PATH) rpc set-url http://127.0.0.1:12345 - -import-keys: build-sov-cli - $(SOV_CLI_REL_PATH) keys import --nickname DANGER__DO_NOT_USE_WITH_REAL_MONEY --path ../test-data/keys/token_deployer_private_key.json - -test-create-token: set-rpc-url test-generate-create-token-tx import-keys - $(SOV_CLI_REL_PATH) rpc submit-batch by-nickname DANGER__DO_NOT_USE_WITH_REAL_MONEY - -remove-insecure-keys: build-sov-cli - $(SOV_CLI_REL_PATH) keys remove by-address sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94 - -clean-celestia-rollup-db: - $(eval path := ./$(shell awk -F'=' '/^path/ {print $$2}' celestia_rollup_config.toml | tr -d '[:space:]"\n')) - @if [ -z "${path}" ] || [ "${path}" = "./" ]; then \ - echo "Path is empty or too short, not safe to remove"; \ - exit 1; \ - fi - @echo removing rollup database "${path}" - rm -rf "${path}" - - -clean-mock-rollup-db: - $(eval path := ./$(shell awk -F'=' '/^path/ {print $$2}' mock_rollup_config.toml | tr -d '[:space:]"\n')) - @if [ -z "${path}" ] || [ "${path}" = "./" ]; then \ - echo "Path is empty or too short, not safe to remove"; \ - exit 1; \ - fi - @echo removing rollup database "${path}" - rm -rf "${path}" - - -clean-mock-rollup-db: - $(eval path := ./$(shell awk -F'=' '/^path/ {print $$2}' mock_rollup_config.toml | tr -d '[:space:]"\n')) - @if [ -z "${path}" ] || [ "${path}" = "./" ]; then \ - echo "Path is empty or too short, not safe to remove"; \ - exit 1; \ - fi - @echo removing rollup database "${path}" - rm -rf "${path}" \ No newline at end of file diff --git a/examples/demo-rollup/README.md b/examples/demo-rollup/README.md deleted file mode 100644 index 5b13a5b69..000000000 --- a/examples/demo-rollup/README.md +++ /dev/null @@ -1,389 +0,0 @@ -# Demo Rollup ![Time - ~5 mins](https://img.shields.io/badge/Time-~5_mins-informational) - -

    - -
    - Stuck, facing problems, or unsure about something? -
    - Join our Discord and ask your questions in #support! -

    - -#### Table of Contents - - - - - - -- [What is This?](#what-is-this) -- [Getting Started](#getting-started) - - [Run a local DA layer instance](#run-a-local-da-layer-instance) - - [Start the Rollup Full Node](#start-the-rollup-full-node) - - [Sanity Check: Creating a Token](#sanity-check-creating-a-token) - - [How to Submit Transactions](#how-to-submit-transactions) - - [How to Submit Transactions](#how-to-submit-transactions-1) - - [1. Build `sov-cli`](#1-build-sov-cli) - - [2. Generate the Transaction](#2-generate-the-transaction) - - [Submit the Transaction(s)](#submit-the-transactions) - - [Verify the Token Supply](#verify-the-token-supply) -- [Disclaimer](#disclaimer) -- [Interacting with your Node via RPC](#interacting-with-your-node-via-rpc) - - [Key Concepts](#key-concepts) - - [RPC Methods](#rpc-methods) - - [`ledger_getHead`](#ledger_gethead) - - [`ledger_getSlots`](#ledger_getslots) - - [`ledger_getBatches`](#ledger_getbatches) - - [`ledger_getTransactions`](#ledger_gettransactions) - - [`ledger_getEvents`](#ledger_getevents) -- [Testing with specific DA layers](#testing-with-specific-da-layers) -- [License](#license) - - - -## What is This? -This demo shows how to integrate a State Transition Function (STF) with a Data Availability (DA) layer and a zkVM to create a full -zk-rollup. The code in this repository corresponds to running a full-node of the rollup, which executes -every transaction. - -By swapping out or modifying the imported state transition function, you can customize -this example full-node to run arbitrary logic. -This particular example relies on the state transition exported by [`demo-stf`](../demo-rollup/stf/). If you want to -understand how to build your own state transition function, check out at the docs in that package. - -## Getting Started -If you are looking for a simple rollup with minimal dependencies as a starting point, please have a look here: -[sov-rollup-starter](https://github.com/Sovereign-Labs/sov-rollup-starter/) - - -### Run a local DA layer instance -This setup works with an in-memory DA that is easy to set up for testing purposes. - -### Start the Rollup Full Node -1. Switch to the `examples/demo-rollup` and compile the application: - -```shell,test-ci -$ cd examples/demo-rollup/ -$ cargo build --bins -``` - -2. Clean up the existing database. -Makefile to simplify that process: -```sh,test-ci -$ make clean-mock-rollup-db -``` - -3. Now run the demo-rollup full node, as shown below. -```sh,test-ci,bashtestmd:long-running -$ cargo run -``` -Leave it running while you proceed with the rest of the demo. - - -### Sanity Check: Creating a Token -After switching to a new terminal tab, let's submit our first transaction by creating a token: - -```sh,test-ci -$ make test-create-token -``` - -### How to Submit Transactions -The `make test-create-token` command above was useful to test if everything is running correctly. Now let's get a better understanding of how to create and submit a transaction - -### How to Submit Transactions -The `make test-create-token` command above was useful to test if everything is running correctly. Now let's get a better understanding of how to create and submit a transaction. - -#### 1. Build `sov-cli` -You'll need the `sov-cli` binary in order to create transactions. Build it with these commands: - -```bash,test-ci,bashtestmd:compare-output -# Make sure you're still in `examples/demo-rollup` -$ cargo run --bin sov-cli -- --help -Usage: sov-cli - -Commands: - transactions Generate, sign, and send transactions - keys View and manage keys associated with this wallet - rpc Query the current state of the rollup and send transactions - help Print this message or the help of the given subcommand(s) - -Options: - -h, --help Print help - -V, --version Print version -``` - -Each transaction that we want to submit is a member of the `CallMessage` enum defined as part of creating a module. For example, let's consider the `Bank` module's `CallMessage`: - -```rust -use sov_bank::CallMessage::Transfer; -use sov_bank::Coins; -use sov_bank::Amount; - -pub enum CallMessage { - /// Creates a new token with the specified name and initial balance. - CreateToken { - /// Random value used to create a unique token address. - salt: u64, - /// The name of the new token. - token_name: String, - /// The initial balance of the new token. - initial_balance: Amount, - /// The address of the account that the new tokens are minted to. - minter_address: C::Address, - /// Authorized minter list. - authorized_minters: Vec, - }, - - /// Transfers a specified amount of tokens to the specified address. - Transfer { - /// The address to which the tokens will be transferred. - to: C::Address, - /// The amount of tokens to transfer. - coins: Coins::, - }, - - /// Burns a specified amount of tokens. - Burn { - /// The amount of tokens to burn. - coins: Coins::, - }, - - /// Mints a specified amount of tokens. - Mint { - /// The amount of tokens to mint. - coins: Coins::, - /// Address to mint tokens to - minter_address: C::Address, - }, - - /// Freeze a token so that the supply is frozen - Freeze { - /// Address of the token to be frozen - token_address: C::Address, - }, -} -``` - -In the above snippet, we can see that `CallMessage` in `Bank` supports five different types of calls. The `sov-cli` has the ability to parse a JSON file that aligns with any of these calls and subsequently serialize them. The structure of the JSON file, which represents the call, closely mirrors that of the Enum member. You can view the relevant JSON Schema for `Bank` [here](../../module-system/module-schemas/schemas/sov-bank.json) Consider the `Transfer` message as an example: - -```rust -use sov_bank::Coins; - -struct Transfer { - /// The address to which the tokens will be transferred. - to: C::Address, - /// The amount of tokens to transfer. - coins: Coins, -} -``` - -Here's an example of a JSON representing the above call: - -```json -{ - "Transfer": { - "to": "sov1zgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfqve8h6h", - "coins": { - "amount": 200, - "token_address": "sov1zdwj8thgev2u3yyrrlekmvtsz4av4tp3m7dm5mx5peejnesga27svq9m72" - } - } -} -``` - -#### 2. Generate the Transaction - -The JSON above is the contents of the file [`examples/test-data/requests/transfer.json`](../../examples/test-data/requests/transfer.json). We'll use this transaction as our example for the rest of the tutorial. In order to send the transaction, we need to perform 2 operations: - -- Import the transaction data into the wallet -- Sign and submit the transaction - -Note: we're able to make a `Transfer` call here because we already created the token as part of the sanity check above, using `make test-create-token`. - -To generate transactions you can use the `transactions import from-file` subcommand, as shown below: - -```bash,test-ci,bashtestmd:compare-output -$ cargo run --bin sov-cli -- transactions import from-file -h -Import a transaction from a JSON file at the provided path - -Usage: sov-cli transactions import from-file - -Commands: - bank A subcommand for the `bank` module - sequencer-registry A subcommand for the `sequencer_registry` module - value-setter A subcommand for the `value_setter` module - accounts A subcommand for the `accounts` module - nft A subcommand for the `nft` module - help Print this message or the help of the given subcommand(s) - -Options: - -h, --help Print help -``` - -Let's go ahead and import the transaction into the wallet - - -```bash,test-ci,bashtestmd:compare-output -$ cargo run --bin sov-cli -- transactions import from-file bank --chain-id 0 --path ../test-data/requests/transfer.json -Adding the following transaction to batch: -{ - "tx": { - "bank": { - "Transfer": { - "to": "sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94", - "coins": { - "amount": 200, - "token_address": "sov1zdwj8thgev2u3yyrrlekmvtsz4av4tp3m7dm5mx5peejnesga27svq9m72" - } - } - } - }, - "chain_id": 0, - "gas_tip": 0, - "gas_limit": 0 -} -``` - -#### Submit the Transaction(s) -You now have a batch with a single transaction in your wallet. If you want to submit any more transactions as part of this -batch, you can import them now. Finally, let's submit your transaction to the rollup. - -```bash,test-ci -$ cargo run --bin sov-cli rpc submit-batch by-address sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94 -``` - -#### Verify the Token Supply -```bash,test-ci,bashtestmd:compare-output -$ curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"bank_supplyOf","params":["sov1zdwj8thgev2u3yyrrlekmvtsz4av4tp3m7dm5mx5peejnesga27svq9m72"],"id":1}' http://127.0.0.1:12345 -{"jsonrpc":"2.0","result":{"amount":1000},"id":1} -``` - -## Disclaimer - -> ⚠️ Warning! ⚠️ - -`demo-rollup` is a prototype! It contains known vulnerabilities and should not be used in production under any circumstances. - -## Interacting with your Node via RPC - -By default, this implementation prints the state root and the number of blobs processed for each slot. To access any other data, you'll -want to use our RPC server. You can configure its host and port in `rollup_config.toml`. - -### Key Concepts - -**Query Modes** - -Most queries for ledger information accept an optional `QueryMode` argument. There are three QueryModes: - -- `Standard`. In Standard mode, a response to a query for an outer struct will contain the full outer struct and hashes of inner structs. For example - a standard `ledger_getSlots` query would return all information relating to the requested slot, but only the hashes of the batches contained therein. - If no `QueryMode` is specified, a `Standard` response will be returned -- `Compact`. In Compact mode, even the hashes of child structs are omitted. -- `Full`. In Full mode, child structs are recursively expanded. So, for example, a query for a slot would return the slot's data, as well as data relating - to any `batches` that occurred in that slot, any transactions in those batches, and any events that were emitted by those transactions. - -**Identifiers** - -There are several ways to uniquely identify items in the Ledger DB. - -- By _number_. Each family of structs (`slots`, `blocks`, `transactions`, and `events`) is numbered in order starting from `1`. So, for example, the - first transaction to appear on the DA layer will be numered `1` and might emit events `1`-`5`. Or, slot `17` might contain batches `41` - `44`. -- By _hash_. (`slots`, `blocks`, and `transactions` only) -- By _containing item_id and offset_. -- (`Events` only) By _transaction_id and key_. - -To request an item from the ledger DB, you can provide any identifier - and even mix and match different identifiers. We recommend using item number -wherever possible, though, since resolving other identifiers may require additional database lookups. - -Some examples will make this clearer. Suppose that slot number `5` contains batches `9`, `10`, and `11`, that batch `10` contains -transactions `50`-`81`, and that transaction `52` emits event number `17`. If we want to fetch events number `17`, we can use any of the following queries: - -- `{"jsonrpc":"2.0","method":"ledger_getEvents","params":[[17]], ... }` -- `{"jsonrpc":"2.0","method":"ledger_getEvents","params":[[{"transaction_id": 50, "offset": 0}]], ... }` -- `{"jsonrpc":"2.0","method":"ledger_getEvents","params":[[{"transaction_id": 50, "key": [1, 2, 4, 2, ...]}]], ... }` -- `{"jsonrpc":"2.0","method":"ledger_getEvents","params":[[{"transaction_id": { "batch_id": 10, "offset": 2}, "offset": 0}]], ... }` - -### RPC Methods - -#### `ledger_getHead` - -This method returns the current head of the ledger. It has no arguments. - -**Example Query:** - -```shell -$ curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"ledger_getHead","params":[],"id":1}' http://127.0.0.1:12345 - -{"jsonrpc":"2.0","result":{"number":22019,"hash":"0xe8daef0f58a558aea44632a420bb62318bff6c38bbc616ff849d0a4be0a69cd3","batch_range":{"start":2,"end":2}},"id":1} -``` - -This response indicates that the most recent slot processed was number `22019`, its hash, and that it contained no batches (since the `start` and `end` -of the `batch_range` overlap). It also indicates that the next available batch to occur will be numbered `2`. - -#### `ledger_getSlots` - -This method retrieves slot data. It takes two arguments, a list of `SlotIdentifier`s and an optional `QueryMode`. If no query mode is provided, -this list of identifiers may be flattened: `"params":[[7]]` and `"params":[7]` are both acceptable, but `"params":[7, "Compact"]` is not. - -**Example Query:** - -```shell -$ curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"ledger_getSlots","params":[[7], "Compact"],"id":1}' http://127.0.0.1:12345 - -{"jsonrpc":"2.0","result":[{"number":6,"hash":"0x6a23ea92fbe3250e081b3e4c316fe52bda53d0113f9e7f8f495afa0e24b693ff","batch_range":{"start":1,"end":2}}],"id":1} -``` - -This response indicates that slot number `6` contained batch `1` and gives the - -#### `ledger_getBatches` - -This method retrieves slot data. It takes two arguments, a list of `BatchIdentifier`s and an optional `QueryMode`. If no query mode is provided, -this list of identifiers may be flattened: `"params":[[7]]` and `"params":[7]` are both acceptable, but `"params":[7, "Compact"]` is not. - -**Example Query:** - -```shell -$ curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"ledger_getBatches","params":[["0xf784a42555ed652ed045cc8675f5bc11750f1c7fb0fbc8d6a04470a88c7e1b6c"]],"id":1}' http://127.0.0.1:12345 - -{"jsonrpc":"2.0","result":[{"hash":"0xf784a42555ed652ed045cc8675f5bc11750f1c7fb0fbc8d6a04470a88c7e1b6c","tx_range":{"start":1,"end":2},"txs":["0x191d87a51e4e1dd13b4d89438c6717b756bd995d7108bef21a5ac0c9b6c77101"],"custom_receipt":"Rewarded"}],"id":1}% -``` - -#### `ledger_getTransactions` - -This method retrieves transactions. It takes two arguments, a list of `TxIdentifiers`s and an optional `QueryMode`. If no query mode is provided, -this list of identifiers may be flattened: `"params":[[7]]` and `"params":[7]` are both acceptable, but `"params":[7, "Compact"]` is not. - -**Example Query:** - -```shell -$ curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"ledger_getTransactions","params":[[{ "batch_id": 1, "offset": 0}]],"id":1}' http://127.0.0.1:12345 - -{"jsonrpc":"2.0","result":[{"hash":"0x191d87a51e4e1dd13b4d89438c6717b756bd995d7108bef21a5ac0c9b6c77101","event_range":{"start":1,"end":1},"custom_receipt":"Successful"}],"id":1} -``` - -This response indicates that transaction `1` emitted no events but executed successfully. - -#### `ledger_getEvents` - -This method retrieves the events based on the provided event identifiers. - -**Example Query:** - -```shell -$ curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"ledger_getEvents","params":[1],"id":1}' http://127.0.0.1:12345 - -{"jsonrpc":"2.0","result":[null],"id":1} -``` - -This response indicates that event `1` has not been emitted yet. - -## Testing with specific DA layers -Check [here](./README_CELESTIA.md) if you want to run with dockerized local Celestia instance. - - -## License - -Licensed under the [Apache License, Version 2.0](../../LICENSE). - -Unless you explicitly state otherwise, any contribution intentionally submitted -for inclusion in this repository by you, as defined in the Apache-2.0 license, shall be -licensed as above, without any additional terms or conditions. diff --git a/examples/demo-rollup/README_CELESTIA.md b/examples/demo-rollup/README_CELESTIA.md deleted file mode 100644 index 6aae7ef37..000000000 --- a/examples/demo-rollup/README_CELESTIA.md +++ /dev/null @@ -1,366 +0,0 @@ -# Demo Rollup ![Time - ~5 mins](https://img.shields.io/badge/Time-~5_mins-informational) - -This is a demo full node running a simple Sovereign SDK rollup on [Celestia](https://celestia.org/). - -

    - -
    - Stuck, facing problems, or unsure about something? -
    - Join our Discord and ask your questions in #support! -

    - -You can follow the steps below to run the demo rollup on a local Celestia devnet instance. However, due to numerous users encountering failures because of basic local setup or Docker issues, we strongly suggest using the plain demo rollup with mock Data Availability (DA) for testing. -We are developing more robust tooling to enable seamless deployment of rollups on any DA layer. Until this tooling is available, we will only support our early partners in deploying on devnets. - -#### Table of Contents - - - - - - -- [What is This?](#what-is-this) -- [Getting Started](#getting-started) - - [Run a local DA layer instance](#run-a-local-da-layer-instance) - - [Start the Rollup Full Node](#start-the-rollup-full-node) - - [Sanity Check: Creating a Token](#sanity-check-creating-a-token) - - [How to Submit Transactions](#how-to-submit-transactions) - - [1. Build `sov-cli`](#1-build-sov-cli) - - [2. Generate the Transaction](#2-generate-the-transaction) - - [3. Submit the Transaction(s)](#3-submit-the-transactions) - - [4. Verify the Token Supply](#4-verify-the-token-supply) - - [Makefile](#makefile) - - [Remote setup](#remote-setup) -- [How to Customize This Example](#how-to-customize-this-example) - - [1. Initialize the DA Service](#1-initialize-the-da-service) - - [2. Run the Main Loop](#2-run-the-main-loop) - - - -## What is This? - -This demo shows how to integrate a State Transition Function (STF) with a Data Availability (DA) layer and a zkVM to create a full -zk-rollup. The code in this repository corresponds to running a full-node of the rollup, which executes -every transaction. - -By swapping out or modifying the imported state transition function, you can customize -this example full-node to run arbitrary logic. -This particular example relies on the state transition exported by [`demo-stf`](../demo-rollup/stf/). If you want to -understand how to build your own state transition function, check out at the docs in that package. - -## Getting Started -If you are looking for a simple rollup with minimal dependencies as a starting point, please have a look here: -[sov-rollup-starter](https://github.com/Sovereign-Labs/sov-rollup-starter/) - -### Run a local DA layer instance - -1. Install Docker: . - -2. Follow [this guide](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-with-a-personal-access-token-classic) -to authorize yourself in github's container registry. (we use original celestia images which they publish in ghcr) - -```shell -# this has to be ran only once, unless your token expires -$ echo $MY_PERSONAL_GITHUB_TOKEN | docker login ghcr.io -u $MY_GITHUB_USERNAME --password-stdin -``` - -3. Switch to the `examples/demo-rollup` directory (which is where this `README.md` is located!), and compile the application: - -```shell,test-ci -$ cd examples/demo-rollup/ -$ cargo build --bins -``` - -4. Spin up a local Celestia instance as your DA layer. We've built a small Makefile to simplify that process: - -```sh,test-ci,bashtestmd:long-running,bashtestmd:wait-until=genesis.json -$ make clean -# Make sure to run `make stop` or `make clean` when you're done with this demo! -$ make start -``` - -If interested, you can check out what the Makefile does [here](#Makefile). - The above command will also modify some configuration files: - -```sh,test-ci -$ git status -.. -.. - modified: rollup_config.toml -``` - -### Start the Rollup Full Node - -Now run the demo-rollup full node, as shown below. You will see it consuming blocks from the Celestia node running inside Docker: - -```sh,test-ci,bashtestmd:long-running -# Make sure you're still in the examples/demo-rollup directory. -$ cargo run -- --da-layer celestia --rollup-config-path celestia_rollup_config.toml -2023-06-07T10:03:25.473920Z INFO sov_celestia_adapter::da_service: Fetching header at height=1... -2023-06-07T10:03:25.496853Z INFO sov_demo_rollup: Received 0 blobs -2023-06-07T10:03:25.497700Z INFO sov_demo_rollup: Requesting data for height 2 and prev_state_root 0xa96745d3184e54d098982daf44923d84c358800bd22c1864734ccb978027a670 -2023-06-07T10:03:25.497719Z INFO sov_celestia_adapter::da_service: Fetching header at height=2... -2023-06-07T10:03:25.505412Z INFO sov_demo_rollup: Received 0 blobs -2023-06-07T10:03:25.505992Z INFO sov_demo_rollup: Requesting data for height 3 and prev_state_root 0xa96745d3184e54d098982daf44923d84c358800bd22c1864734ccb978027a670 -2023-06-07T10:03:25.506003Z INFO sov_celestia_adapter::da_service: Fetching header at height=3... -2023-06-07T10:03:25.511237Z INFO sov_demo_rollup: Received 0 blobs -2023-06-07T10:03:25.511815Z INFO sov_demo_rollup: Requesting data for height 4 and prev_state_root 0xa96745d3184e54d098982daf44923d84c358800bd22c1864734ccb978027a670 -``` - -Leave it running while you proceed with the rest of the demo. - -### Sanity Check: Creating a Token - -After switching to a new terminal tab, let's submit our first transaction by creating a token: - -```sh,test-ci -$ make test-create-token -``` - -...wait a few seconds and you will see the transaction receipt in the output of the demo-rollup full node: - -```sh -2023-07-12T15:04:52.291073Z INFO sov_celestia_adapter::da_service: Fetching header at height=31... -2023-07-12T15:05:02.304393Z INFO sov_demo_rollup: Received 1 blobs at height 31 -2023-07-12T15:05:02.305257Z INFO sov_demo_rollup: blob #0 at height 31 with blob_hash 0x4876c2258b57104356efa4630d3d9f901ccfda5dde426ba8aef81d4a3e357c79 has been applied with #1 transactions, sequencer outcome Rewarded(0) -2023-07-12T15:05:02.305280Z INFO sov_demo_rollup: tx #0 hash: 0x1e1892f77cf42c0abd2ca2acdd87eabb9aa65ec7497efea4ff9f5f33575f881a result Successful -2023-07-12T15:05:02.310714Z INFO sov_demo_rollup: Requesting data for height 32 and prev_state_root 0xae87adb5291d3e645c09ff74dfe3580a25ef0b893b67f09eb58ae70c1bf135c2 -``` - -### How to Submit Transactions - -The `make test-create-token` command above was useful to test if everything is running correctly. Now let's get a better understanding of how to create and submit a transaction. - -#### 1. Build `sov-cli` - -You'll need the `sov-cli` binary in order to create transactions. Build it with these commands: - -```bash,test-ci,bashtestmd:compare-output -# Make sure you're still in `examples/demo-rollup` -$ cargo run --bin sov-cli -- --help -Usage: sov-cli - -Commands: - transactions Generate, sign, and send transactions - keys View and manage keys associated with this wallet - rpc Query the current state of the rollup and send transactions - help Print this message or the help of the given subcommand(s) - -Options: - -h, --help Print help - -V, --version Print version -``` - -Each transaction that we want to submit is a member of the `CallMessage` enum defined as part of creating a module. For example, let's consider the `Bank` module's `CallMessage`: - -```rust -use sov_bank::CallMessage::Transfer; -use sov_bank::Coins; -use sov_bank::Amount; - -pub enum CallMessage { - /// Creates a new token with the specified name and initial balance. - CreateToken { - /// Random value used to create a unique token address. - salt: u64, - /// The name of the new token. - token_name: String, - /// The initial balance of the new token. - initial_balance: Amount, - /// The address of the account that the new tokens are minted to. - minter_address: C::Address, - /// Authorized minter list. - authorized_minters: Vec, - }, - - /// Transfers a specified amount of tokens to the specified address. - Transfer { - /// The address to which the tokens will be transferred. - to: C::Address, - /// The amount of tokens to transfer. - coins: Coins::, - }, - - /// Burns a specified amount of tokens. - Burn { - /// The amount of tokens to burn. - coins: Coins::, - }, - - /// Mints a specified amount of tokens. - Mint { - /// The amount of tokens to mint. - coins: Coins::, - /// Address to mint tokens to - minter_address: C::Address, - }, - - /// Freeze a token so that the supply is frozen - Freeze { - /// Address of the token to be frozen - token_address: C::Address, - }, -} -``` - -In the above snippet, we can see that `CallMessage` in `Bank` supports five different types of calls. The `sov-cli` has the ability to parse a JSON file that aligns with any of these calls and subsequently serialize them. The structure of the JSON file, which represents the call, closely mirrors that of the Enum member. You can view the relevant JSON Schema for `Bank` [here](../../module-system/module-schemas/schemas/sov-bank.json) Consider the `Transfer` message as an example: - -```rust -use sov_bank::Coins; - -struct Transfer { - /// The address to which the tokens will be transferred. - to: C::Address, - /// The amount of tokens to transfer. - coins: Coins, -} -``` - -Here's an example of a JSON representing the above call: - -```json -{ - "Transfer": { - "to": "sov1zgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfqve8h6h", - "coins": { - "amount": 200, - "token_address": "sov1zdwj8thgev2u3yyrrlekmvtsz4av4tp3m7dm5mx5peejnesga27svq9m72" - } - } -} -``` - -#### 2. Generate the Transaction - -The JSON above is the contents of the file [`examples/test-data/requests/transfer.json`](../../examples/test-data/requests/transfer.json). We'll use this transaction as our example for the rest of the tutorial. In order to send the transaction, we need to perform 2 operations: - -- Import the transaction data into the wallet -- Sign and submit the transaction - -Note: we're able to make a `Transfer` call here because we already created the token as part of the sanity check above, using `make test-create-token`. - -To generate transactions you can use the `transactions import from-file` subcommand, as shown below: - -```bash,test-ci,bashtestmd:compare-output -$ cargo run --bin sov-cli -- transactions import from-file -h -Import a transaction from a JSON file at the provided path - -Usage: sov-cli transactions import from-file - -Commands: - bank A subcommand for the `bank` module - sequencer-registry A subcommand for the `sequencer_registry` module - value-setter A subcommand for the `value_setter` module - accounts A subcommand for the `accounts` module - nft A subcommand for the `nft` module - help Print this message or the help of the given subcommand(s) - -Options: - -h, --help Print help -``` - -Let's go ahead and import the transaction into the wallet - -```bash,test-ci,bashtestmd:compare-output -$ cargo run --bin sov-cli -- transactions import from-file bank --chain-id 0 --path ../test-data/requests/transfer.json -Adding the following transaction to batch: -{ - "tx": { - "bank": { - "Transfer": { - "to": "sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94", - "coins": { - "amount": 200, - "token_address": "sov1zdwj8thgev2u3yyrrlekmvtsz4av4tp3m7dm5mx5peejnesga27svq9m72" - } - } - } - }, - "chain_id": 0, - "gas_tip": 0, - "gas_limit": 0 -} -``` - -This output indicates that the wallet has saved the transaction details for later signing. - -#### 3. Submit the Transaction(s) - -You now have a batch with a single transaction in your wallet. If you want to submit any more transactions as part of this -batch, you can import them now. Finally, let's submit your transaction to the rollup. - -```bash,test-ci -$ cargo run --bin sov-cli rpc submit-batch by-address sov1l6n2cku82yfqld30lanm2nfw43n2auc8clw7r5u5m6s7p8jrm4zqrr8r94 -``` - -This command will use your default private key. - -#### 4. Verify the Token Supply - -```bash,test-ci,bashtestmd:compare-output -$ curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"bank_supplyOf","params":["sov1zdwj8thgev2u3yyrrlekmvtsz4av4tp3m7dm5mx5peejnesga27svq9m72"],"id":1}' http://127.0.0.1:12345 -{"jsonrpc":"2.0","result":{"amount":1000},"id":1} -``` - -### Makefile - -`demo-rollup/Makefile` automates a number of things for convenience: - -- Starts docker compose with a Celestia network for a local setup -- `make start`: - - Performs a number of checks to ensure services are not already running - - Starts the docker compose setup - - Exposes the RPC port `26658` - - Waits until the container is started - - Sets up the config - - `examples/demo-rollup/rollup_config.toml` is modified - - - `start_height` is set to `3`, which is the block in which sequencers are funded with credits - - `celestia_rpc_auth_token` is set to the auth token exposed by sequencer (in /docker/credentials directory) - - `celestia_rpc_address` is set to point to `127.0.0.1` and the `RPC_PORT` -- `make stop`: - - Shuts down the Celestia docker compose setup, if running. - - Deletes all contents of the demo-rollup database. -- `make clean`: - - Stops any running containers with the name `sov-celestia-local` and also removes them - - Removes `demo-data` (or the configured path of the rollup database from rollup_config.toml) - -### Remote setup - -> 🚧 This feature is under development! 🚧 - -The above setup runs Celestia node locally to avoid any external network dependencies and to speed up development. Soon, the Sovereign SDK will also support connecting to the Celestia testnet using a Celestia light node running on your machine. - -## How to Customize This Example - -Any time you change out the state transition function, zkVM, or DA layer of your rollup, you'll -need to tweak this full-node code. At the very least, you'll need to modify the dependencies. In most cases, -your full node will also need to be aware of the STF's initialization logic, and how it exposes RPC. - -Given that constraint, we won't try to give you specific instructions for supporting every imaginable -combination of DA layers and State Transition Functions. Instead, we'll explain at a high level what -tasks a full-node needs to accomplish. - -### 1. Initialize the DA Service - -The first _mandatory_ step is to initialize a DA service, which allows the full node implementation to -communicate with the DA layer's RPC endpoints. - -If you're using Celestia as your DA layer, you can follow the instructions at the end -of this document to set up a local full node, or connect to -a remote node. Whichever option you pick, simply place the URL and authentication token -in the `celestia_rollup_config.toml` file and it will be -automatically picked up by the node implementation. For this tutorial, the Makefile below (which also helps start a local Celestia instance) handles this step for you. - -### 2. Run the Main Loop - -The full node implements a simple loop for processing blocks. The workflow is: - -1. Fetch slot data from the DA service -2. Run `stf.begin_slot()` -3. Iterate over the blobs, running `apply_batch` -4. Run `stf.end_slot()` - -In this demo, we also keep a `ledger_db`, which stores information -related to the chain's history - batches, transactions, receipts, etc. - diff --git a/examples/demo-rollup/benches/node/Makefile b/examples/demo-rollup/benches/node/Makefile deleted file mode 100644 index 75f4df4b4..000000000 --- a/examples/demo-rollup/benches/node/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -# Default values for num blocks and transactions per block -BLOCKS ?= 100 -TXNS_PER_BLOCK ?= 10000 - -export BLOCKS -export TXNS_PER_BLOCK - -criterion: - @echo "Running criterion bench with $(TXNS_PER_BLOCK) transactions per block" - @echo "Method: Criterion" - @echo "Output: Criterion" - @cd ../.. && cargo bench --features="bench" --bench=rollup_bench - -basic: - @echo "Running basic benchmark with $(BLOCKS) blocks and $(TXNS_PER_BLOCK) transactions per block" - @echo "Method: Coarse Timers" - @echo "Output: Standard" - @cd ../.. && cargo bench --features="bench" --bench=rollup_coarse_measure - -prometheus: - @echo "Running basic benchmark with $(BLOCKS) blocks and $(TXNS_PER_BLOCK) transactions per block" - @echo "Method: Coarse Timers" - @echo "Output: Prometheus" - @cd ../.. && PROMETHEUS=1 cargo bench --features="bench" --bench=rollup_coarse_measure - -flamegraph: - @echo "Running basic benchmark with $(BLOCKS) blocks and $(TXNS_PER_BLOCK) transactions per block" - @echo "Method: Coarse Timers" - @echo "Output: Flamegraph" - @echo "WARNING: Flamegraph requires sudo. The Makefile does cleanup, but there is a unforeseen risk of files being owned by root after the script is done. The Makefile also does full cleanup so subsequent builds with default user will be from scratch." - @read -p "Proceed (y/n): " REPLY; if [ $$REPLY = "y" ]; then \ - cd .. && sudo BLOCKS=$(BLOCKS) TXNS_PER_BLOCK=$(TXNS_PER_BLOCK) cargo flamegraph -o benches/flamegraph.svg --bench rollup_coarse_measure && sudo rm -rf benches/demo_data ; \ - sudo rm -rf ../../../../target ; \ - fi diff --git a/examples/demo-rollup/benches/node/README.md b/examples/demo-rollup/benches/node/README.md deleted file mode 100644 index 25714be02..000000000 --- a/examples/demo-rollup/benches/node/README.md +++ /dev/null @@ -1,74 +0,0 @@ - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Native Benchmarks](#native-benchmarks) - - [Methodology](#methodology) -- [Makefile](#makefile) - - - -# Native Benchmarks -Native benchmarks refer to the performance of the rollup SDK in native mode - this does not involve proving -## Methodology -* We use the Bank module's Transfer call as the main transaction for running this benchmark. So what we're measuring is the number of value transfers that can be done per second. -* We do not connect to the DA layer since that will be the bottleneck if we do. We pre-populate 10 blocks (configurable via env var BLOCKS) with 1 blob each containing 10,000 transactions each (configurable via env var TXNS_PER_BLOCK). -* The first block only contains a "CreateToken" transaction. Subsequent blocks contain "Transfer" transactions. -* All token transfers are initiated from the created token's mint address - -We use two scripts for benchmarking: -* **rollup_bench.rs**: This makes use of the rust criterion benchmarking framework. - * One issue with this is that most benching frameworks are focused on micro-benchmarks for pure functions. - * To get a true estimate of TPS we need to write to disk and this has a side effect for the bench framework and when it tries executing the same writes. - * Bench frameworks (criterion, glassbench) take an iterator as an argument, and we cannot control the number of iterations directly. The framework chooses the sampling and the number of iterations. - * Giving the entire rollup loop (for all the blocks) to criterion would require a cleanup of the data or using a new data destination for each iteration. - * To get around the above problems, we pre-generate a "large" number of blocks and set the measurement time bounds for criterion to 20 seconds. Instead of having a loop from block_0 to block_n, we let criterion choose how many blocks to process. - * The output of the framework is the mean time for processing a single block (containing the configured number of transactions) -``` -Benchmarking rollup main loop -Benchmarking rollup main loop: Warming up for 3.0000 s -Benchmarking rollup main loop: Collecting 10 samples in estimated 24.220 s (20 iterations) -Benchmarking rollup main loop: Analyzing -rollup main loop time: [2.5035 s 2.7001 s 2.9122 s] -Found 1 outliers among 10 measurements (10.00%) - 1 (10.00%) high mild -``` -* **rollup_coarse_measure.rs** - * This script uses coarse grained timers (with std::time) to measure the time taken to process all the pre-generated blocks. - * We can control the number of blocks and transactions per block with environment variables - * There are timers around the main loop for a total measurement, as well as timers around key functions - * begin_slot - * apply_blob - * end_slot - * The script uses rust lib prettytable-rs to format the output in a readable way - * Optionally, the script also allows generating prometheus metrics (histogram), so they can be aggregated by other tools. -``` -+--------------------+--------------------+ -| Blocks | 100 | -+--------------------+--------------------+ -| Txns per Block | 10000 | -+--------------------+--------------------+ -| Total | 292.819598958s | -+--------------------+--------------------+ -| Begin slot | 39.414µs | -+--------------------+--------------------+ -| End slot | 243.091403746s | -+--------------------+--------------------+ -| Apply Blob | 46.639351922s | -+--------------------+--------------------+ -| Txns per sec (TPS) | 3424.6575342465753 | -+--------------------+--------------------+ -``` - -# Makefile -We abstract having to manually run the benchmarks by using a Makefile for the common benchmarks we want to run - -The Makefile is located in the demo-rollup/benches folder and supports the following commands -* **make criterion** - generates the criterion benchmark using rollup_bench.rs -* **make basic** - supports the coarse grained timers (getting the TPS) using rollup_coarse_measure.rs -* **make prometheus** - runs rollup_coarse_measure.rs but instead of aggregating std::time directly and printing in a table, it outputs a json containing histogram metrics populated by the script -* **make flamegraph** - runs `cargo flamegraph`. On mac this requires `sudo` permissions. The script ensures some cleanup and to err on the side of caution, it deletes the `sovereign/target` folder since new artifacts can be owned by root - -The Makefile supports setting number of blocks and transactions per block using BLOCKS and TXNS_PER_BLOCK env vars. Defaults are 100 blocks and 10,000 transactions per block when using the Makefile - -![Flamegraph](flamegraph_sample.svg) diff --git a/examples/demo-rollup/benches/node/rollup_bench.rs b/examples/demo-rollup/benches/node/rollup_bench.rs deleted file mode 100644 index b3d034a97..000000000 --- a/examples/demo-rollup/benches/node/rollup_bench.rs +++ /dev/null @@ -1,126 +0,0 @@ -use std::env; -use std::path::{Path, PathBuf}; -use std::sync::Arc; -use std::time::Duration; - -use anyhow::Context; -use criterion::{criterion_group, criterion_main, Criterion}; -use demo_stf::genesis_config::{get_genesis_config, GenesisPaths}; -use demo_stf::runtime::Runtime; -use sov_db::ledger_db::{LedgerDB, SlotCommit}; -use sov_mock_da::{MockBlock, MockBlockHeader}; -use sov_modules_api::default_context::DefaultContext; -use sov_modules_stf_blueprint::kernels::basic::{BasicKernel, BasicKernelGenesisConfig}; -use sov_modules_stf_blueprint::{GenesisParams, StfBlueprint}; -use sov_prover_storage_manager::new_orphan_storage; -use sov_risc0_adapter::host::Risc0Verifier; -use sov_rng_da_service::{RngDaService, RngDaSpec}; -use sov_rollup_interface::da::Time; -use sov_rollup_interface::services::da::DaService; -use sov_rollup_interface::stf::StateTransitionFunction; -use sov_state::DefaultStorageSpec; -use sov_stf_runner::{from_toml_path, read_json_file, RollupConfig}; -use tempfile::TempDir; - -fn rollup_bench(_bench: &mut Criterion) { - let start_height: u64 = 0u64; - let mut end_height: u64 = 100u64; - if let Ok(val) = env::var("BLOCKS") { - end_height = val.parse().expect("BLOCKS var should be a +ve number"); - } - - let mut c = Criterion::default() - .sample_size(10) - .measurement_time(Duration::from_secs(20)); - let rollup_config_path = "benches/node/rollup_config.toml".to_string(); - let mut rollup_config: RollupConfig = - from_toml_path(rollup_config_path) - .context("Failed to read rollup configuration") - .unwrap(); - - let temp_dir = TempDir::new().expect("Unable to create temporary directory"); - rollup_config.storage.path = PathBuf::from(temp_dir.path()); - let ledger_db = - LedgerDB::with_path(&rollup_config.storage.path).expect("Ledger DB failed to open"); - - let da_service = Arc::new(RngDaService::new()); - - let storage_config = sov_state::config::Config { - path: rollup_config.storage.path, - }; - let storage = new_orphan_storage::(&storage_config.path) - .expect("Failed to initialize orphan ProverStorage"); - let stf = StfBlueprint::< - DefaultContext, - RngDaSpec, - Risc0Verifier, - Runtime, - BasicKernel, - >::new(); - - let demo_genesis_config = { - let integ_test_conf_dir: &Path = "../../test-data/genesis/integration-tests".as_ref(); - let rt_params = - get_genesis_config::(&GenesisPaths::from_dir(integ_test_conf_dir)) - .unwrap(); - - let chain_state = read_json_file(integ_test_conf_dir.join("chain_state.json")).unwrap(); - let kernel_params = BasicKernelGenesisConfig { chain_state }; - GenesisParams { - runtime: rt_params, - kernel: kernel_params, - } - }; - - let (mut current_root, storage) = stf.init_chain(storage, demo_genesis_config); - - // data generation - let mut blobs = vec![]; - let mut blocks = vec![]; - for height in start_height..end_height { - let num_bytes = height.to_le_bytes(); - let mut barray = [0u8; 32]; - barray[..num_bytes.len()].copy_from_slice(&num_bytes); - let filtered_block = MockBlock { - header: MockBlockHeader { - hash: barray.into(), - prev_hash: [0u8; 32].into(), - height, - time: Time::now(), - }, - validity_cond: Default::default(), - blobs: Default::default(), - }; - blocks.push(filtered_block.clone()); - - let blob_txs = da_service.extract_relevant_blobs(&filtered_block); - blobs.push(blob_txs.clone()); - } - - let mut height = 0u64; - c.bench_function("rollup main loop", |b| { - b.iter(|| { - let filtered_block = &blocks[height as usize]; - - let mut data_to_commit = SlotCommit::new(filtered_block.clone()); - let apply_block_result = stf.apply_slot( - ¤t_root, - storage.clone(), - Default::default(), - &filtered_block.header, - &filtered_block.validity_cond, - &mut blobs[height as usize], - ); - current_root = apply_block_result.state_root; - for receipts in apply_block_result.batch_receipts { - data_to_commit.add_batch(receipts); - } - - ledger_db.commit_slot(data_to_commit).unwrap(); - height += 1; - }) - }); -} - -criterion_group!(benches, rollup_bench); -criterion_main!(benches); diff --git a/examples/demo-rollup/benches/node/rollup_coarse_measure.rs b/examples/demo-rollup/benches/node/rollup_coarse_measure.rs deleted file mode 100644 index 8138429e0..000000000 --- a/examples/demo-rollup/benches/node/rollup_coarse_measure.rs +++ /dev/null @@ -1,247 +0,0 @@ -#[macro_use] -extern crate prettytable; - -use std::env; -use std::path::{Path, PathBuf}; -use std::sync::Arc; -use std::time::{Duration, Instant}; - -use anyhow::Context; -use demo_stf::genesis_config::{get_genesis_config, GenesisPaths}; -use demo_stf::runtime::Runtime; -use humantime::format_duration; -use prettytable::Table; -use prometheus::{Histogram, HistogramOpts, Registry}; -use sov_db::ledger_db::{LedgerDB, SlotCommit}; -use sov_mock_da::{MockBlock, MockBlockHeader, MockDaSpec}; -use sov_modules_api::default_context::DefaultContext; -use sov_modules_stf_blueprint::kernels::basic::{BasicKernel, BasicKernelGenesisConfig}; -use sov_modules_stf_blueprint::{GenesisParams, StfBlueprint, TxEffect}; -use sov_prover_storage_manager::ProverStorageManager; -use sov_risc0_adapter::host::Risc0Verifier; -use sov_rng_da_service::{RngDaService, RngDaSpec}; -use sov_rollup_interface::da::BlockHeaderTrait; -use sov_rollup_interface::services::da::{DaService, SlotData}; -use sov_rollup_interface::stf::StateTransitionFunction; -use sov_rollup_interface::storage::HierarchicalStorageManager; -use sov_state::DefaultStorageSpec; -use sov_stf_runner::{from_toml_path, read_json_file, RollupConfig}; -use tempfile::TempDir; - -fn print_times( - total: Duration, - apply_block_time: Duration, - blocks: u64, - num_txns: u64, - num_success_txns: u64, -) { - let mut table = Table::new(); - - let total_txns = blocks * num_txns; - table.add_row(row!["Blocks", format!("{:?}", blocks)]); - table.add_row(row!["Transactions per block", format!("{:?}", num_txns)]); - table.add_row(row![ - "Processed transactions (success/total)", - format!("{:?}/{:?}", num_success_txns, total_txns) - ]); - table.add_row(row!["Total", format_duration(total)]); - table.add_row(row!["Apply block", format_duration(apply_block_time)]); - let tps = (total_txns as f64) / total.as_secs_f64(); - table.add_row(row!["Transactions per sec (TPS)", format!("{:.1}", tps)]); - - // Print the table to stdout - table.printstd(); -} - -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> { - let registry = Registry::new(); - let h_apply_block = Histogram::with_opts(HistogramOpts::new( - "block_processing_apply_block", - "Histogram of block processing - apply blob times", - )) - .expect("Failed to create histogram"); - - registry - .register(Box::new(h_apply_block.clone())) - .expect("Failed to register apply blob histogram"); - - let mut end_height: u64 = 10; - let mut num_success_txns = 0; - let mut num_txns_per_block = 10000; - let mut timer_output = true; - let mut prometheus_output = false; - if let Ok(val) = env::var("TXNS_PER_BLOCK") { - num_txns_per_block = val - .parse() - .expect("TXNS_PER_BLOCK var should be a +ve number"); - } - if let Ok(val) = env::var("BLOCKS") { - end_height = val - .parse::() - .expect("BLOCKS var should be a +ve number") - + 1; - } - if let Ok(_val) = env::var("PROMETHEUS_OUTPUT") { - prometheus_output = true; - timer_output = false; - } - if let Ok(_val) = env::var("TIMER_OUTPUT") { - timer_output = true; - } - - let rollup_config_path = "benches/node/rollup_config.toml".to_string(); - let mut rollup_config: RollupConfig = - from_toml_path(rollup_config_path) - .context("Failed to read rollup configuration") - .unwrap(); - - let temp_dir = TempDir::new().expect("Unable to create temporary directory"); - rollup_config.storage.path = PathBuf::from(temp_dir.path()); - let ledger_db = - LedgerDB::with_path(&rollup_config.storage.path).expect("Ledger DB failed to open"); - - let da_service = Arc::new(RngDaService::new()); - - let storage_config = sov_state::config::Config { - path: rollup_config.storage.path.clone(), - }; - let mut storage_manager = - ProverStorageManager::::new(storage_config) - .expect("ProverStorage initialization failed"); - - let genesis_block_header = MockBlockHeader::from_height(0); - - let storage = storage_manager - .create_storage_on(&genesis_block_header) - .expect("Getting genesis storage failed"); - - let stf = StfBlueprint::< - DefaultContext, - RngDaSpec, - Risc0Verifier, - Runtime, - BasicKernel, - >::new(); - - let demo_genesis_config = { - let integ_test_conf_dir: &Path = "../../test-data/genesis/integration-tests".as_ref(); - let rt_params = - get_genesis_config::(&GenesisPaths::from_dir(integ_test_conf_dir)) - .unwrap(); - - let chain_state = read_json_file(integ_test_conf_dir.join("chain_state.json")).unwrap(); - let kernel_params = BasicKernelGenesisConfig { chain_state }; - GenesisParams { - runtime: rt_params, - kernel: kernel_params, - } - }; - - let (mut current_root, storage) = stf.init_chain(storage, demo_genesis_config); - - storage_manager - .save_change_set(&genesis_block_header, storage) - .expect("Saving genesis storage failed"); - storage_manager.finalize(&genesis_block_header).unwrap(); - - // data generation - let mut blobs = vec![]; - let mut blocks = vec![]; - for height in 1..=end_height { - let filtered_block = MockBlock { - header: MockBlockHeader::from_height(height), - validity_cond: Default::default(), - blobs: Default::default(), - }; - let blob_txs = da_service.extract_relevant_blobs(&filtered_block); - blocks.push(filtered_block); - blobs.push(blob_txs); - } - - // Setup. Block h=1 has a single tx that creates the token. Exclude from timers - let filtered_block = blocks.remove(0); - let storage = storage_manager - .create_storage_on(filtered_block.header()) - .unwrap(); - let apply_block_result = stf.apply_slot( - ¤t_root, - storage, - Default::default(), - filtered_block.header(), - &filtered_block.validity_cond, - &mut blobs.remove(0), - ); - current_root = apply_block_result.state_root; - storage_manager - .save_change_set(filtered_block.header(), apply_block_result.change_set) - .unwrap(); - storage_manager.finalize(filtered_block.header()).unwrap(); - - let mut data_to_commit = SlotCommit::new(filtered_block); - data_to_commit.add_batch(apply_block_result.batch_receipts[0].clone()); - ledger_db.commit_slot(data_to_commit).unwrap(); - - // 3 blocks to finalization - let fork_length = 3; - let blocks_num = blocks.len() as u64; - // Rollup processing. Block h=2 -> end are the transfer transactions. Timers start here - let total = Instant::now(); - let mut apply_block_time = Duration::new(0, 0); - for (filtered_block, mut blobs) in blocks.into_iter().zip(blobs.into_iter()) { - let storage = storage_manager - .create_storage_on(filtered_block.header()) - .unwrap(); - let now = Instant::now(); - let apply_block_result = stf.apply_slot( - ¤t_root, - storage, - Default::default(), - filtered_block.header(), - &filtered_block.validity_cond, - &mut blobs, - ); - apply_block_time += now.elapsed(); - h_apply_block.observe(now.elapsed().as_secs_f64()); - current_root = apply_block_result.state_root; - storage_manager - .save_change_set(filtered_block.header(), apply_block_result.change_set) - .unwrap(); - - if let Some(height_to_finalize) = filtered_block.header().height().checked_sub(fork_length) - { - // Blocks 0 & 1 has been finalized before - if height_to_finalize > 1 { - let header_to_finalize = MockBlockHeader::from_height(height_to_finalize); - storage_manager.finalize(&header_to_finalize).unwrap(); - } - } - - let mut data_to_commit = SlotCommit::new(filtered_block); - for receipt in apply_block_result.batch_receipts { - for t in &receipt.tx_receipts { - if t.receipt == TxEffect::Successful { - num_success_txns += 1 - } - } - data_to_commit.add_batch(receipt); - } - - ledger_db.commit_slot(data_to_commit).unwrap(); - } - - let total = total.elapsed(); - if timer_output { - print_times( - total, - apply_block_time, - blocks_num, - num_txns_per_block, - num_success_txns, - ); - } - if prometheus_output { - println!("{:#?}", registry.gather()); - } - Ok(()) -} diff --git a/examples/demo-rollup/benches/node/rollup_config.toml b/examples/demo-rollup/benches/node/rollup_config.toml deleted file mode 100644 index 1f8e74250..000000000 --- a/examples/demo-rollup/benches/node/rollup_config.toml +++ /dev/null @@ -1,23 +0,0 @@ -[da] -# The JWT used to authenticate with the celestia light client. Instructions for generating this token can be found in the README -celestia_rpc_auth_token = "MY.SECRET.TOKEN" -# The address of the *trusted* Celestia light client to interact with -celestia_rpc_address = "http://localhost:11111/" -# The largest response the rollup will accept from the Celestia node. Defaults to 100 MB -max_celestia_response_body_size = 104_857_600 -# The maximum time to wait for a response to an RPC query against Celestia node. Defaults to 60 seconds. -celestia_rpc_timeout_seconds = 60 - -[storage] -# The path to the rollup's data directory. Paths that do not begin with `/` are interpreted as relative paths. -path = "benches/demo_data" - -[runner] -# We define the rollup's genesis to occur at block number `start_height`. The rollup will ignore -# any blocks before this height -start_height = 1 - -[runner.rpc_config] -# the host and port to bind the rpc server for -bind_host = "127.0.0.1" -bind_port = 12345 diff --git a/examples/demo-rollup/benches/prover/README.md b/examples/demo-rollup/benches/prover/README.md deleted file mode 100644 index e7e6ba802..000000000 --- a/examples/demo-rollup/benches/prover/README.md +++ /dev/null @@ -1,205 +0,0 @@ -# Prover Benchmarks -* For benchmarking the prover, we measure the number of risc0 vm cycles for each of the major functions. -* The reason for using the cycles is the assumption that proving works off a cycles/second (KHz, MHz) based on the hardware used - -## Running the bench -* From sovereign-sdk -``` -$ cd examples/demo-rollup/benches/prover -$ cargo bench --features bench --bench prover_bench -``` - -## Methodology -* We have `cycle_tracker` macro defined which can be used to annotate a function in zk that we want to measure the cycles for -* The `cycle_tracker` macro is defined at `sovereign-sdk/zk-cycle-util` -```rust - #[cfg_attr(all(target_os = "zkvm", feature="bench"), cycle_tracker)] - fn begin_slot(&mut self, witness: Self::Witness) { - self.checkpoint = Some(StateCheckpoint::with_witness( - self.current_storage.clone(), - witness, - )); - } -``` -* The method we use to track metrics is by registering the `io_callback` syscall when creating the risc0 host. -``` -pub fn get_syscall_name_handler() -> (SyscallName, fn(&[u8]) -> Vec) { - let cycle_string = "cycle_metrics\0"; - let bytes = cycle_string.as_bytes(); - let metrics_syscall_name = unsafe { - SyscallName::from_bytes_with_nul(bytes.as_ptr()) - }; - - let metrics_callback = |input: &[u8]| -> Vec { - { - let met_tuple = deserialize_custom(input); - add_value(met_tuple.0, met_tuple.1); - } - vec![] - }; - - (metrics_syscall_name, metrics_callback) - -} - -#[cfg(feature = "bench")] -{ - let (metrics_syscall_name, metrics_callback) = get_syscall_name_handler(); - default_env.io_callback(metrics_syscall_name, metrics_callback); -} -``` -* The above allows us to use `risc0_zkvm::guest::env::send_recv_slice` which lets the guest pass a slice of raw bytes to host and get back a vector of bytes -* We use it to pass cycle metrics to the host -* Cycles are tracked by the macro which gets a cycle count at the beginning and end of the function -```rust -let before = risc0_zkvm::guest::env::cycle_count(); -let result = (|| #block)(); -let after = risc0_zkvm::guest::env::cycle_count(); -``` -* We feature gate the application of the macro `cycle_tracker` with both the target_os set to `zkvm` and the feature flag `bench` -* The reason for using both is that we need conditional compilation to work in all cases -* For the purpose of this profiling we run the prover without generating the proof - -## Input set -* Unlike demo-prover it's harder to generate fake data since all the proofs and checks need to succeed. -* This means the DA samples, hashes, signatures etc need to succeed -* To make this easier we use a static input set consisting of 3 blocks - * we avoid using empty blocks because they skew average metrics - * we have 3 blocks - * block 1 -> 1 blob containing 1 create token transaction - * block 2 -> 1 blob containing 1 transfer transaction - * block 3 -> 1 blob containing 2 transfer transactions -* This dataset is stored at `demo-prover/benches/blocks.hex` -* The dataset can be substituted with another valid dataset as well from Celestia (TBD: automate parametrized generation of blocks.hex) -* We can run this on different kinds of workloads to gauge the efficiency of different parts of the code - -## Result -* Standard hash function patched with risc0/rust_crypto -* Signature verification currently NOT patched (TBD) -* Signature verification takes about 60% of the total cycles -``` -Block stats - -+------------------------------------------+---+ -| Total blocks | 3 | -+------------------------------------------+---+ -| Blocks with transactions | 3 | -+------------------------------------------+---+ -| Number of blobs | 3 | -+------------------------------------------+---+ -| Total number of transactions | 4 | -+------------------------------------------+---+ -| Average number of transactions per block | 1 | -+------------------------------------------+---+ - -Cycle Metrics - -+-------------------------+----------------+-----------+ -| Function | Average Cycles | Num Calls | -+-------------------------+----------------+-----------+ -| Cycles per block | 6935250 | 3 | -+-------------------------+----------------+-----------+ -| apply_slot | 6433166 | 3 | -+-------------------------+----------------+-----------+ -| verify | 3965858 | 4 | -+-------------------------+----------------+-----------+ -| end_slot | 514929 | 3 | -+-------------------------+----------------+-----------+ -| validate_and_commit | 496189 | 3 | -+-------------------------+----------------+-----------+ -| verify_relevant_tx_list | 277438 | 3 | -+-------------------------+----------------+-----------+ -| begin_slot | 4683 | 3 | -+-------------------------+----------------+-----------+ -``` - -## Custom annotations -* We can also get finer grained information by annotating low level functions, but the process for this isn't straightforward. -* For code that we control, it's as simple as adding the `cycle_tracker` annotation to our function and then feature gating it (not feature gating it causes compilation errors) -* For external dependencies, we need to fork and include a path dependency locally after annotating -* We did this for the `jmt` jellyfish merkle tree library to measure cycle gains when we use the risc0 accelerated sha function vs without -* We apply the risc0 patch in the following way in demo-prover/methods/guest/Cargo.toml -```yaml -[patch.crates-io] -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2/v0.10.6-risc0" } -``` -* Note that the specific tag needs to be pointed to, since master and other branches don't contain acceleration - -## Accelerated vs Non-accelerated libs -* Accelerated and risc0 optimized crypto libraries give a significant (nearly 10x) cycle gain -* With sha2 acceleration -``` -=====> hash: 1781 -=====> hash: 1781 -=====> hash: 1781 -=====> hash: 1781 -=====> hash: 1781 -``` -* Without sha2 acceleration -``` -=====> hash: 13901 -=====> hash: 13901 -=====> hash: 13901 -=====> hash: 13901 -=====> hash: 13901 -``` -* Overall performance difference when using sha acceleration vs without for the same dataset (3 blocks, 4 transactions) as described above -* With sha acceleration -``` -+-------------------------+----------------+-----------+ -| Function | Average Cycles | Num Calls | -+-------------------------+----------------+-----------+ -| Cycles per block | 6944938 | 3 | -+-------------------------+----------------+-----------+ -| validate_and_commit | 503468 | 3 | -+-------------------------+----------------+-----------+ -| verify_relevant_tx_list | 277092 | 3 | -+-------------------------+----------------+-----------+ -Total cycles consumed for test: 20834815 -``` -* Without sha acceleration -``` -+-------------------------+----------------+-----------+ -| Function | Average Cycles | Num Calls | -+-------------------------+----------------+-----------+ -| Cycles per block | 8717567 | 3 | -+-------------------------+----------------+-----------+ -| validate_and_commit | 1432461 | 3 | -+-------------------------+----------------+-----------+ -| verify_relevant_tx_list | 966893 | 3 | -+-------------------------+----------------+-----------+ -Total cycles consumed for test: 26152702 -``` -* There's an overall efficiency of 6 million cycles in total for 3 blocks. -* Keep in mind that the above table shows average number of cycles per call, so they give an efficiency per call, but the "Total cycles consumed for test" metric at the bottom shows total for 3 blocks - -* With ed25519 acceleration -``` -+----------------------+---------------------+----------------------+----------+-----------+ -| Function | Avg Cycles w/o Accel | Avg Cycles w/ Accel | % Change | Num Calls | -+----------------------+---------------------+----------------------+----------+-----------+ -| Cycles per block | 4,764,675 | 1,684,534 | -64.65% | 3 | -+----------------------+----------------------+---------------------+----------+-----------+ -| apply_blob | 3,979,880 | 899,771 | -77.39% | 3 | -+----------------------+----------------------+---------------------+----------+-----------+ -| verify | 3,579,797 | 714,955 | -80.03% | 3 | -+----------------------+----------------------+---------------------+----------+-----------+ -| end_slot | 413,717 | 415,147 | +0.35% | 3 | -+----------------------+----------------------+---------------------+----------+-----------+ -| compute_state_update | 393,992 | 397,247 | +0.83% | 3 | -+----------------------+----------------------+---------------------+----------+-----------+ -| begin_slot | 83,817 | 82,357 | -1.74% | 3 | -+----------------------+----------------------+---------------------+----------+-----------+ -| commit | 7 | 7 | 0.00% | 3 | -+----------------------+----------------------+---------------------+----------+-----------+ -| Total | 13,215,885 | 4,194,018 | -68.27% | | -+----------------------+----------------------+---------------------+----------+-----------+ - -``` -* We can see a ~4x speedup for the `verify` function when using risc0 accelerated ed25519-dalek patch -``` -[patch.crates-io] -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2/v0.10.6-risc0" } -ed25519-dalek = { git = "https://github.com/risc0/curve25519-dalek", tag = "curve25519-4.1.0-risczero.1" } -crypto-bigint = {git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.2-risc0"} -``` \ No newline at end of file diff --git a/examples/demo-rollup/benches/prover/datagen.rs b/examples/demo-rollup/benches/prover/datagen.rs deleted file mode 100644 index 77da4bed2..000000000 --- a/examples/demo-rollup/benches/prover/datagen.rs +++ /dev/null @@ -1,25 +0,0 @@ -use sov_mock_da::{MockAddress, MockBlock, MockDaService}; -use sov_rng_da_service::{generate_create_token_payload, generate_transfers}; -use sov_rollup_interface::services::da::DaService; - -pub async fn get_bench_blocks() -> Vec { - let da_service = MockDaService::new(MockAddress::default()); - - let mut blocks = vec![]; - let blob = generate_create_token_payload(0); - da_service.send_transaction(&blob).await.unwrap(); - let block1 = da_service.get_block_at(1).await.unwrap(); - blocks.push(block1); - - let blob = generate_transfers(3, 1); - da_service.send_transaction(&blob).await.unwrap(); - let block2 = da_service.get_block_at(2).await.unwrap(); - blocks.push(block2); - - let blob = generate_transfers(10, 4); - da_service.send_transaction(&blob).await.unwrap(); - let block2 = da_service.get_block_at(3).await.unwrap(); - blocks.push(block2); - - blocks -} diff --git a/examples/demo-rollup/benches/prover/prover_bench.rs b/examples/demo-rollup/benches/prover/prover_bench.rs deleted file mode 100644 index 5d7755760..000000000 --- a/examples/demo-rollup/benches/prover/prover_bench.rs +++ /dev/null @@ -1,291 +0,0 @@ -mod datagen; - -use std::collections::HashMap; -use std::env; -use std::fs::{remove_file, File, OpenOptions}; -use std::io::Write; -use std::path::{Path, PathBuf}; -use std::sync::{Arc, Mutex}; - -use sov_mock_da::{MockAddress, MockBlock, MockDaConfig, MockDaService, MockDaSpec}; - -#[macro_use] -extern crate prettytable; - -use anyhow::Context; -use demo_stf::genesis_config::{get_genesis_config, GenesisPaths}; -use demo_stf::runtime::Runtime; -use log4rs::config::{Appender, Config, Root}; -use prettytable::Table; -use regex::Regex; -use risc0::MOCK_DA_ELF; -use sov_modules_api::default_context::DefaultContext; -use sov_modules_api::SlotData; -use sov_modules_stf_blueprint::kernels::basic::{BasicKernel, BasicKernelGenesisConfig}; -use sov_modules_stf_blueprint::{GenesisParams, StfBlueprint}; -use sov_prover_storage_manager::ProverStorageManager; -use sov_risc0_adapter::host::Risc0Host; -#[cfg(feature = "bench")] -use sov_risc0_adapter::metrics::GLOBAL_HASHMAP; -use sov_rollup_interface::da::BlockHeaderTrait; -use sov_rollup_interface::services::da::DaService; -use sov_rollup_interface::stf::StateTransitionFunction; -use sov_rollup_interface::storage::HierarchicalStorageManager; -use sov_rollup_interface::zk::{StateTransitionData, ZkvmHost}; -use sov_state::DefaultStorageSpec; -use sov_stf_runner::{from_toml_path, read_json_file, RollupConfig}; -use tempfile::TempDir; - -use crate::datagen::get_bench_blocks; - -#[derive(Debug)] -struct RegexAppender { - regex: Regex, - file: Arc>, -} - -impl RegexAppender { - fn new(pattern: &str, file_path: &str) -> Self { - if Path::new(file_path).exists() { - remove_file(file_path).expect("Failed to remove existing file"); - } - let file = Arc::new(Mutex::new( - OpenOptions::new() - .create(true) - .append(true) - .open(file_path) - .unwrap(), - )); - let regex = Regex::new(pattern).unwrap(); - RegexAppender { regex, file } - } -} - -impl log::Log for RegexAppender { - fn enabled(&self, _metadata: &log::Metadata) -> bool { - true - } - - fn log(&self, record: &log::Record) { - if let Some(captures) = self.regex.captures(record.args().to_string().as_str()) { - let mut file_guard = self.file.lock().unwrap(); - if let Some(matched_pc) = captures.get(1) { - let pc_value_num = u64::from_str_radix(&matched_pc.as_str()[2..], 16).unwrap(); - let pc_value = format!("{}\t", pc_value_num); - file_guard.write_all(pc_value.as_bytes()).unwrap(); - } - if let Some(matched_iname) = captures.get(2) { - let iname = matched_iname.as_str().to_uppercase(); - let iname_value = format!("{}\n", iname); - file_guard.write_all(iname_value.as_bytes()).unwrap(); - } - } - } - - fn flush(&self) {} -} - -fn get_config(rollup_trace: &str) -> Config { - // [942786] pc: 0x0008e564, insn: 0xffc67613 => andi x12, x12, -4 - let regex_pattern = r".*?pc: (0x[0-9a-fA-F]+), insn: .*?=> ([a-z]*?) "; - - let custom_appender = RegexAppender::new(regex_pattern, rollup_trace); - - Config::builder() - .appender(Appender::builder().build("custom_appender", Box::new(custom_appender))) - .build( - Root::builder() - .appender("custom_appender") - .build(log::LevelFilter::Trace), - ) - .unwrap() -} - -fn print_cycle_averages(metric_map: HashMap) { - let mut metrics_vec: Vec<(String, (u64, u64))> = metric_map - .iter() - .map(|(k, (sum, count))| { - ( - k.clone(), - (((*sum as f64) / (*count as f64)).round() as u64, *count), - ) - }) - .collect(); - - metrics_vec.sort_by(|a, b| b.1.cmp(&a.1)); - - let mut table = Table::new(); - table.add_row(row!["Function", "Average Cycles", "Num Calls"]); - for (k, (avg, count)) in metrics_vec { - table.add_row(row![k, format!("{}", avg), format!("{}", count)]); - } - table.printstd(); -} - -fn chain_stats(num_blocks: usize, num_blocks_with_txns: usize, num_txns: usize, num_blobs: usize) { - let mut table = Table::new(); - table.add_row(row!["Total blocks", num_blocks]); - table.add_row(row!["Blocks with transactions", num_blocks_with_txns]); - table.add_row(row!["Number of blobs", num_blobs]); - table.add_row(row!["Total number of transactions", num_txns]); - table.add_row(row![ - "Average number of transactions per block", - ((num_txns as f64) / (num_blocks_with_txns as f64)) as u64 - ]); - table.printstd(); -} - -type BenchSTF<'a> = StfBlueprint< - DefaultContext, - MockDaSpec, - Risc0Host<'a>, - Runtime, - BasicKernel, ->; - -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> { - if let Ok(rollup_trace) = env::var("ROLLUP_TRACE") { - if let Err(e) = log4rs::init_config(get_config(&rollup_trace)) { - eprintln!("Error initializing logger: {:?}", e); - } - } - - let rollup_config_path = "benches/prover/rollup_config.toml".to_string(); - let mut rollup_config: RollupConfig = from_toml_path(rollup_config_path) - .context("Failed to read rollup configuration") - .unwrap(); - - let mut num_blocks = 0; - let mut num_blobs = 0; - let mut num_blocks_with_txns = 0; - let mut num_total_transactions = 0; - - let temp_dir = TempDir::new().expect("Unable to create temporary directory"); - rollup_config.storage.path = PathBuf::from(temp_dir.path()); - let da_service = MockDaService::new(MockAddress::default()); - let storage_config = sov_state::config::Config { - path: rollup_config.storage.path, - }; - - let mut storage_manager = - ProverStorageManager::::new(storage_config) - .expect("ProverStorageManager initialization has failed"); - let stf = BenchSTF::new(); - - let genesis_config = { - let integ_test_conf_dir: &Path = "../test-data/genesis/integration-tests".as_ref(); - let rt_params = - get_genesis_config::(&GenesisPaths::from_dir(integ_test_conf_dir)) - .unwrap(); - - let chain_state = read_json_file(integ_test_conf_dir.join("chain_state.json")).unwrap(); - let kernel_params = BasicKernelGenesisConfig { chain_state }; - GenesisParams { - runtime: rt_params, - kernel: kernel_params, - } - }; - - println!("Starting from empty storage, initialization chain"); - let genesis_block = MockBlock::default(); - let (mut prev_state_root, storage) = stf.init_chain( - storage_manager - .create_storage_on(genesis_block.header()) - .unwrap(), - genesis_config, - ); - storage_manager - .save_change_set(genesis_block.header(), storage) - .unwrap(); - // Write it to the database immediately! - storage_manager.finalize(&genesis_block.header).unwrap(); - - // TODO: Fix this with genesis logic. - let blocks = get_bench_blocks().await; - - for filtered_block in &blocks { - num_blocks += 1; - let mut host = Risc0Host::new(MOCK_DA_ELF); - - let height = filtered_block.header().height(); - println!( - "Requesting data for height {} and prev_state_root 0x{}", - height, - hex::encode(prev_state_root.0) - ); - let (mut blob_txs, inclusion_proof, completeness_proof) = da_service - .extract_relevant_blobs_with_proof(filtered_block) - .await; - - if !blob_txs.is_empty() { - num_blobs += blob_txs.len(); - } - - let storage = storage_manager - .create_storage_on(filtered_block.header()) - .unwrap(); - - let result = stf.apply_slot( - &prev_state_root, - storage, - Default::default(), - filtered_block.header(), - &filtered_block.validity_condition(), - &mut blob_txs, - ); - - for r in result.batch_receipts { - let num_tx = r.tx_receipts.len(); - num_total_transactions += num_tx; - if num_tx > 0 { - num_blocks_with_txns += 1; - } - } - - let data = StateTransitionData::< - , MockDaSpec>>::StateRoot, - , MockDaSpec>>::Witness, - MockDaSpec, - > { - initial_state_root: prev_state_root, - da_block_header: filtered_block.header().clone(), - inclusion_proof, - completeness_proof, - state_transition_witness: result.witness, - blobs: blob_txs, - final_state_root: result.state_root, - }; - host.add_hint(data); - - println!("Skipping prover at block {height} to capture cycle counts\n"); - let _receipt = host - .run_without_proving() - .expect("Prover should run successfully"); - println!("==================================================\n"); - prev_state_root = result.state_root; - storage_manager - .save_change_set(filtered_block.header(), result.change_set) - .unwrap(); - // TODO: Do we want to finalize some older blocks - } - - #[cfg(feature = "bench")] - { - let hashmap_guard = GLOBAL_HASHMAP.lock(); - let metric_map = hashmap_guard.clone(); - let total_cycles = metric_map.get("Cycles per block").unwrap().0; - println!("\nBlock stats\n"); - chain_stats( - num_blocks, - num_blocks_with_txns, - num_total_transactions, - num_blobs, - ); - println!("\nCycle Metrics\n"); - print_cycle_averages(metric_map); - println!("\nTotal cycles consumed for test: {}\n", total_cycles); - } - - Ok(()) -} diff --git a/examples/demo-rollup/benches/prover/rollup_config.toml b/examples/demo-rollup/benches/prover/rollup_config.toml deleted file mode 100644 index eb7b47968..000000000 --- a/examples/demo-rollup/benches/prover/rollup_config.toml +++ /dev/null @@ -1,25 +0,0 @@ -[da] -# The JWT used to authenticate with the celestia light client. Instructions for generating this token can be found in the README -celestia_rpc_auth_token = "MY.SECRET.TOKEN" -# The address of the *trusted* Celestia light client to interact with -celestia_rpc_address = "http://localhost:11111/" -# The largest response the rollup will accept from the Celestia node. Defaults to 100 MB -max_celestia_response_body_size = 104_857_600 -sender_address = "0000000000000000000000000000000000000000000000000000000000000000" - -[storage] -# The path to the rollup's data directory. Paths that do not begin with `/` are interpreted as relative paths. -path = "benches/demo_data" - -[runner] -# We define the rollup's genesis to occur at block number `start_height`. The rollup will ignore -# any blocks before this height -start_height = 1 - -[runner.rpc_config] -# the host and port to bind the rpc server for -bind_host = "127.0.0.1" -bind_port = 12345 - -[prover_service] -aggregated_proof_block_jump = 0 \ No newline at end of file diff --git a/examples/demo-rollup/celestia_rollup_config.toml b/examples/demo-rollup/celestia_rollup_config.toml deleted file mode 100644 index 22368d078..000000000 --- a/examples/demo-rollup/celestia_rollup_config.toml +++ /dev/null @@ -1,28 +0,0 @@ -include_tx_body = false - -[da] -# The JWT used to authenticate with the celestia light client. Instructions for generating this token can be found in the README -celestia_rpc_auth_token = "MY.SECRET.TOKEN" -# The address of the *trusted* Celestia light client to interact with -celestia_rpc_address = "http://127.0.0.1:26658" -# The largest response the rollup will accept from the Celestia node. Defaults to 100 MB -max_celestia_response_body_size = 104_857_600 -# The maximum time to wait for a response to an RPC query against Celestia node. Defaults to 60 seconds. -celestia_rpc_timeout_seconds = 60 - -[storage] -# The path to the rollup's data directory. Paths that do not begin with `/` are interpreted as relative paths. -path = "demo_data" - -# We define the rollup's genesis to occur at block number `start_height`. The rollup will ignore -# any blocks before this height -[runner] -start_height = 3 - -[runner.rpc_config] -# the host and port to bind the rpc server for -bind_host = "127.0.0.1" -bind_port = 12345 - -[prover_service] -aggregated_proof_block_jump = 1 diff --git a/examples/demo-rollup/citrea-stf/README.md b/examples/demo-rollup/citrea-stf/README.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/demo-rollup/proptest-regressions/test_rpc.txt b/examples/demo-rollup/proptest-regressions/test_rpc.txt deleted file mode 100644 index 7d67fcb7d..000000000 --- a/examples/demo-rollup/proptest-regressions/test_rpc.txt +++ /dev/null @@ -1,11 +0,0 @@ -# Seeds for failure cases proptest has generated in the past. It is -# automatically read and these particular cases re-run before any -# novel cases are generated. -# -# It is recommended to check this file in to source control so that -# everyone who runs the test benefits from these saved cases. -cc fab0c06ba9f6bd15f35211b156da6be837017f7b69934a498481c3584647474f # shrinks to hashs = [] -cc 6805677eeea0a33645505430353d94a78a56b61833b3ad242642df676c124244 # shrinks to (slots, _total_num_batches) = ([SlotCommit { slot_data: TestBlock { curr_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], header: TestBlockHeader { prev_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] } }, batch_receipts: [BatchReceipt { batch_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], tx_receipts: [], inner: 0 }], num_txs: 0, num_events: 0 }], 2), random_batch_num = 0 -cc eacf44997850505c3eb823fe6848a21efcdfe3f4428b35380664061efd6b2df3 # shrinks to (slots, tx_id_to_event_range, _total_num_batches) = ([SlotCommit { slot_data: TestBlock { curr_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], header: TestBlockHeader { prev_hash: TestHash([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) } }, batch_receipts: [BatchReceipt { batch_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], tx_receipts: [], inner: 0 }, BatchReceipt { batch_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], tx_receipts: [], inner: 0 }, BatchReceipt { batch_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], tx_receipts: [], inner: 0 }, BatchReceipt { batch_hash: [0, 0, 53, 129, 28, 11, 14, 8, 189, 61, 106, 65, 11, 177, 93, 47, 144, 85, 182, 193, 136, 201, 18, 41, 254, 110, 88, 219, 83, 249, 118, 44], tx_receipts: [TransactionReceipt { tx_hash: [45, 231, 248, 166, 106, 192, 45, 41, 83, 86, 239, 166, 85, 202, 146, 106, 118, 221, 175, 139, 22, 218, 226, 2, 142, 101, 77, 164, 74, 86, 203, 212], body_to_save: None, events: [], receipt: 906002893 }, TransactionReceipt { tx_hash: [15, 172, 1, 109, 72, 112, 142, 48, 243, 177, 90, 115, 117, 153, 148, 197, 152, 165, 133, 89, 63, 207, 75, 91, 136, 30, 214, 229, 210, 74, 138, 171], body_to_save: None, events: [], receipt: 3074292939 }, TransactionReceipt { tx_hash: [214, 49, 121, 239, 36, 70, 203, 4, 82, 57, 91, 136, 207, 2, 73, 117, 254, 150, 120, 192, 239, 119, 189, 158, 161, 48, 6, 231, 35, 56, 231, 108], body_to_save: None, events: [], receipt: 720232568 }, TransactionReceipt { tx_hash: [154, 186, 53, 169, 15, 57, 205, 217, 75, 83, 238, 117, 153, 210, 192, 44, 98, 32, 73, 133, 38, 53, 229, 133, 240, 198, 3, 4, 233, 0, 251, 194], body_to_save: None, events: [Event { key: EventKey([152, 163, 169, 237, 44, 208, 53, 181, 31, 47, 64, 62, 254, 84, 117, 135]), value: EventValue([99, 199, 35, 246, 191, 19, 215, 248, 126, 233, 4, 202, 88, 180, 220, 25, 191, 201, 240, 128, 28, 77, 89, 185, 182, 158, 91, 239, 155, 131, 236, 137, 89, 189, 222, 176, 70, 253, 36, 30, 229, 239, 151, 89, 66, 2, 180, 30, 15, 233, 159, 197, 227, 131, 253, 176, 63, 159, 251, 156, 15, 81, 214, 189, 188, 117, 208]) }, Event { key: EventKey([1, 178, 120, 184, 220, 118, 182, 113, 19, 175, 220, 249, 31, 24, 201, 88, 125, 199, 194, 189, 31, 23, 152, 31, 139, 82, 25, 114, 187, 201, 133, 56, 61, 225, 174, 199, 243, 235, 74, 199, 210, 153, 93, 160, 235, 143, 4, 57, 206, 57, 196, 67]), value: EventValue([42, 254, 185, 214, 118, 126, 100, 181, 210, 96, 59, 201, 239, 78, 9, 20, 164, 232, 106, 141, 140, 39, 186, 209, 186, 221, 175, 85, 52, 130, 252, 86, 50, 135, 112, 5, 101, 131, 149, 71, 19, 171, 26, 69, 217, 161, 222, 245, 83, 237, 61, 36, 229, 78, 142, 197, 166, 146, 64, 254, 190, 225, 48, 122, 239, 240, 28, 29, 249, 29, 115, 72, 157, 40, 54, 112, 236, 77, 54, 95, 112, 103, 177, 75, 200, 15, 160, 73, 97, 124, 110, 111, 36]) }, Event { key: EventKey([159, 197, 90, 44, 192, 25, 84, 139, 217, 79, 118, 64, 237, 54, 107, 48, 12, 242, 55, 125, 101, 253, 147, 64, 72, 171, 150, 87, 91, 245, 166, 49, 92, 247, 241, 123, 192, 93, 57, 164, 83, 168, 37, 217, 88, 54, 83, 189, 95, 47, 186, 63, 104, 14, 235, 221, 98, 118, 234, 249, 20, 81, 133, 49, 160, 55, 45, 97, 248, 145, 177, 254, 133, 187, 228, 197, 153, 174, 163, 164, 102, 193, 194, 139, 20, 114, 246, 83, 237, 88]), value: EventValue([120, 133, 71, 60, 239, 63, 29, 157, 85, 220, 168, 15, 177, 123, 162, 248, 186, 24, 207, 248, 4, 49, 234, 223, 225, 37, 17, 244, 107, 253, 46, 164]) }, Event { key: EventKey([123, 125, 46, 178, 252, 92, 226, 250, 205, 24, 182, 122, 196, 45, 53, 170, 157, 249, 106, 63, 214, 49, 163, 140, 99, 237, 87, 211, 183, 184, 19, 158, 209, 221, 211, 143, 80, 188, 162, 14, 221, 29, 238, 6, 93, 19, 159, 250, 174, 237, 255, 155, 3, 175, 162, 70, 141, 164, 16, 186, 100, 194, 117, 201, 166, 116, 46, 47, 13, 145, 223, 149, 82, 72, 57, 117, 83, 148]), value: EventValue([188, 129, 48, 158, 169, 187, 163, 67, 117, 210, 150, 223, 67, 41, 127, 186, 177, 22, 100, 89, 142, 101, 131, 146, 9, 66, 116, 85, 157, 108, 225, 128, 154, 136, 174, 43, 27, 16, 47, 33, 248, 0, 180, 150, 109, 209, 163, 29, 163, 121, 33, 129, 84, 71, 11, 146, 232, 25, 231, 45, 175, 70, 133, 234, 47, 172, 161, 135, 190, 198, 118, 8, 228, 168, 201, 173, 73, 211, 105, 50, 100, 142, 24, 219, 37, 46, 79, 48]) }, Event { key: EventKey([18, 98, 9, 106, 8, 151, 169, 214, 157, 182, 50, 50, 1, 204, 196, 109, 49, 64, 150, 121, 237, 142, 96, 103, 103, 57, 68, 165, 123, 89, 85, 64, 138, 193, 65, 198, 106, 8, 5, 62, 191, 223, 215, 54, 85, 216, 136, 29, 217, 166, 31, 121, 93, 30, 72, 14, 221, 124, 44, 116, 203, 130, 161]), value: EventValue([76, 15, 79, 112, 152, 212, 233, 250, 107, 149, 192, 171, 4, 128, 246, 137, 61, 87, 210, 173, 51, 10, 11, 201, 36, 83, 158, 52, 212, 105, 226, 222, 26, 28, 54, 203, 87, 192, 200, 122, 39]) }, Event { key: EventKey([107, 243, 115, 56, 120, 241, 217, 166, 119, 106, 246, 42, 81, 239, 131, 8, 184, 100, 241, 145, 184, 112, 221, 28, 188, 58, 41, 208, 129, 181, 42, 55, 71, 111, 229, 157, 120, 153, 18, 194, 253, 230, 73, 52, 76, 182, 181, 115, 62, 194, 90, 132, 148, 159, 29, 224, 81, 228, 103, 34, 188, 81, 70, 27, 3, 16, 19, 251]), value: EventValue([36, 186, 130, 18, 254, 216, 102, 85, 87, 207, 214, 82, 246, 254, 109, 228, 233, 232, 241, 224, 152, 247, 160, 216, 44, 40, 231, 17, 33, 112, 37, 5, 68, 188, 149, 80, 253, 206, 215, 59, 101, 207, 29, 23, 136, 15, 152, 53, 136, 59, 122, 235, 194, 24, 57]) }, Event { key: EventKey([43, 50, 97, 8, 234, 206, 188, 104, 28, 157, 44, 157, 191, 210, 33, 10, 24, 89, 254, 151, 162, 245, 114, 56, 174, 251, 132, 91, 231, 99, 4, 70, 91, 129, 147, 53, 156, 132, 187, 97, 40, 155, 175, 109, 192, 169, 131, 13, 146, 52, 71, 86, 133, 110, 183, 153, 16, 119, 23, 139, 73, 41, 99, 230, 249, 70, 61, 99, 125, 221, 193, 49, 247, 183, 79, 74, 234, 200, 186, 67, 220, 2, 228, 23, 140, 171, 126, 164]), value: EventValue([255, 108, 59, 56, 93, 138, 38, 143, 135, 38, 212, 106]) }], receipt: 993428752 }, TransactionReceipt { tx_hash: [25, 195, 161, 228, 252, 141, 45, 68, 188, 11, 55, 197, 50, 118, 137, 15, 233, 213, 231, 213, 251, 6, 2, 118, 217, 148, 39, 39, 93, 141, 201, 222], body_to_save: Some([228, 31, 254, 79, 101, 26, 254, 51, 190, 163, 227, 27, 214, 214, 190, 26, 16, 103, 5, 45, 205, 201, 154, 43, 41, 44, 45, 227, 75, 164, 85, 130, 121, 17, 192, 82, 159, 113, 59, 39, 106, 85, 3, 181, 129, 61, 14, 147, 98, 135, 68, 167, 76, 182, 230, 208, 29, 45, 179, 178, 28, 16, 242, 68, 248]), events: [Event { key: EventKey([166, 128, 45, 74, 4, 111, 90, 144, 54, 218, 112, 164, 223, 91, 72, 173, 88, 246, 55, 170, 177, 18, 100, 195, 202, 108, 188, 78, 64, 147, 246, 162, 22, 146, 78, 74, 59, 146, 109, 159, 215, 184, 56, 127, 26, 178, 140, 243, 207, 79, 198, 131, 53, 187, 88, 236, 82, 35, 169, 228, 142, 8, 196, 175, 121, 155, 76, 146, 234, 126, 11, 104, 136, 52, 85, 83, 23, 10, 228, 3, 129, 63, 51, 104, 244]), value: EventValue([22, 195, 50, 103, 80, 185, 191, 228, 96, 124, 134, 206, 88, 81]) }, Event { key: EventKey([110, 125, 172, 102, 41, 135, 194, 158, 67, 106, 183]), value: EventValue([18, 154, 166, 199, 36, 205, 212, 240, 233, 249, 78, 244, 53, 40, 53, 31, 255, 184, 236, 223, 171, 192, 207, 60, 25, 250, 159, 61, 175, 210, 178, 65, 123, 129, 92, 244, 85, 220, 6, 198, 232, 91, 231, 170, 36, 69, 158, 181, 164, 208, 203, 139, 82, 253, 216, 110, 31, 150, 21, 44, 253, 47, 91, 105, 15, 186, 125, 136, 220, 169, 140, 221, 6, 169, 201, 91, 72, 5, 0, 119, 34, 226, 88, 149, 228, 24, 148, 72, 113, 153, 124, 56]) }, Event { key: EventKey([18, 6, 230, 120, 150, 186, 253, 43, 169, 252, 225, 219, 237, 162, 136, 24, 255, 145, 9, 30, 152, 53, 149, 57, 87, 241, 33, 166, 144, 152, 46, 205, 206, 223, 22, 143, 217, 172, 180, 51, 190, 127, 235, 12, 80, 175, 18, 42, 237, 136, 154, 55, 29, 137, 185, 41, 201, 184, 169, 230, 185, 200, 113, 72, 150, 73, 128, 68, 39, 146, 124, 114, 176, 44, 206, 134, 158, 42, 190, 112, 113, 20, 139, 123, 248, 249, 13, 151]), value: EventValue([72, 77, 209, 228, 215, 17, 82, 192, 8, 144, 145, 193, 140, 154, 185, 149, 109, 71, 69, 179, 123]) }, Event { key: EventKey([8, 167, 83, 202, 41, 152, 98, 34, 143, 195, 180, 215, 31, 49, 122, 138, 1, 250, 228, 34, 52, 51, 79, 92, 104, 78, 211, 15, 15, 239, 9, 65, 178, 156, 27, 148, 29, 222, 42, 5, 4, 166, 16, 249, 58, 45, 254, 175, 25, 59, 83, 37, 248, 108, 232, 138, 192, 235, 154, 37, 141, 146, 160, 56, 226, 135, 12, 79, 112, 50, 15, 149, 81, 63, 124, 62, 21, 214, 111, 212, 0, 194, 10, 173, 225, 176, 139, 143, 34, 251, 177, 44, 247, 58]), value: EventValue([130, 210, 25, 239, 193, 174, 194, 211, 106, 177, 199, 1, 14, 178, 117, 154, 11, 252, 245, 88, 65, 205, 204, 133, 131, 74, 134, 243, 141, 198, 85, 82, 193, 179, 169, 72, 124, 126, 139, 30, 130, 152, 141, 156, 198, 250, 54, 164, 110, 239, 122, 29, 197, 22, 174, 47, 108, 134, 145, 190, 139, 240, 100, 43, 202, 227]) }, Event { key: EventKey([120, 248, 75, 155, 181, 62, 233, 83, 9, 243, 177, 44, 58, 135, 71, 37, 89, 243, 4, 197, 213, 108, 205, 125, 45, 209, 134, 146, 248, 36, 202, 76, 195, 86, 59, 118, 180, 83, 135, 169, 186, 64, 94, 79, 19, 121, 11, 23, 100, 72, 173, 86, 235, 228, 2, 252, 249, 225, 230, 199, 237, 77, 233, 56, 140, 24, 249, 252, 76, 176, 120, 129, 35, 241, 220, 115, 122, 131, 90, 98]), value: EventValue([]) }, Event { key: EventKey([223, 205, 28, 255, 53, 249, 212, 55, 212, 119, 173, 199, 89, 233, 102, 165, 219, 233, 51, 195, 178, 173, 134, 75, 186, 155, 106, 107, 6, 123, 94, 76, 36, 185, 202, 49, 70, 64, 56, 137, 159, 225, 88, 41, 104, 233, 95, 101, 77, 80, 0, 195, 202, 63, 126, 158, 46, 8, 192, 172, 167, 70, 198, 218, 183, 209, 177, 242, 161, 31, 231, 191, 217, 128, 253, 248, 125, 145]), value: EventValue([45, 84, 10, 188, 239, 28, 175, 197, 19, 174, 121, 241, 13, 148, 207, 168, 245, 208, 102, 135, 122, 233]) }, Event { key: EventKey([38, 159, 132]), value: EventValue([87, 83, 1, 131, 162, 64, 14, 193, 65, 95, 28, 145, 34, 86, 160, 51, 229, 180, 248, 64, 100, 27, 138, 88, 59, 37, 8, 207, 101, 106, 162, 9, 122, 207, 186, 214, 68, 127, 168, 240, 230, 70, 92, 67, 96, 142, 111, 219, 120, 133, 103, 220, 45, 204, 66, 170, 219, 237, 141, 109, 208, 59, 100, 97, 102, 146, 109, 129, 201, 177, 24, 233, 186, 153, 81, 192, 82, 146, 180, 81, 227, 143, 240, 223, 116, 69, 234, 48, 151, 201, 17, 131, 84, 192, 167, 214]) }, Event { key: EventKey([182, 42, 246, 24, 226, 156, 37, 167, 232, 190, 216, 162, 144, 124, 137, 68, 179, 249]), value: EventValue([31, 138, 219, 57, 192, 131, 177, 173, 59, 198, 221, 250, 60, 48, 255, 93, 167, 168, 187, 17, 243, 5, 52, 105, 140, 16, 92, 194, 85, 252, 184, 145, 144, 148, 103, 226, 244, 181, 150, 138, 67, 20, 94, 145, 148, 87, 108, 160, 142, 159, 35, 135, 246, 178, 110, 158, 163, 65, 105, 70, 42, 104, 47, 54, 50, 186, 92, 248, 171, 53, 128, 97, 103, 245, 194, 246, 78, 73, 69, 198, 5, 66, 101, 128, 132, 22, 177, 196, 110, 81, 75, 60, 135, 167, 89]) }, Event { key: EventKey([97, 22, 58, 41]), value: EventValue([85, 121, 247, 169, 123, 167, 137]) }], receipt: 3663553897 }], inner: 3595839999 }, BatchReceipt { batch_hash: [59, 9, 140, 222, 7, 178, 85, 174, 221, 192, 118, 0, 115, 184, 120, 101, 87, 47, 100, 233, 76, 193, 135, 90, 241, 175, 64, 84, 83, 141, 48, 212], tx_receipts: [TransactionReceipt { tx_hash: [209, 212, 206, 75, 118, 226, 251, 157, 67, 106, 68, 80, 81, 119, 21, 3, 117, 75, 57, 242, 11, 104, 185, 156, 93, 105, 124, 159, 11, 177, 234, 179], body_to_save: Some([222, 205, 137, 250, 245, 160, 88, 32, 100, 123, 153, 50, 167, 115, 42, 110, 164, 230, 152, 232, 187, 5, 169, 205, 234, 149, 50, 78, 246, 192]), events: [Event { key: EventKey([130, 83, 65, 20, 33, 99, 147, 73, 255, 7, 132, 69, 232, 127, 102, 17, 245, 226, 30, 136, 83, 164, 86, 184, 182, 196, 100, 82, 245, 248, 231, 62, 228, 231, 204, 32, 44, 75, 162, 221, 236, 79, 100, 130, 91, 175, 0, 64, 56, 147, 31, 92, 184, 154, 152, 225, 140, 150, 64, 230, 99, 102, 57, 175, 109, 205, 1, 115, 227, 231, 105, 102, 94, 146, 247, 77, 99, 199, 78, 42, 178, 84, 96, 145, 212, 213, 123, 242, 66, 133, 42, 87, 90, 166, 90, 150, 90]), value: EventValue([141, 145, 9, 8, 244, 255, 231, 101, 236, 236, 165, 98, 210, 73, 101, 0, 188, 130, 209, 44, 225, 225, 20, 207, 85, 13, 120, 140, 113, 172, 244, 200, 86, 190, 176, 77, 124, 15, 18, 156, 104, 209, 175, 155, 148, 226, 228, 230, 162, 193, 204, 209, 151, 134, 73, 163, 123, 31, 50, 188, 162, 233, 177, 54, 196, 57, 159, 168, 216, 137, 229, 49, 69, 171, 137, 102, 62, 154, 190, 18, 194, 37, 161, 85, 51]) }, Event { key: EventKey([51, 3, 129, 169, 130, 98, 22, 173, 219, 132, 248, 163, 95, 160, 218, 87, 183, 33, 24, 6, 194, 2, 59, 245, 111, 206, 230, 20, 240, 66, 254, 4, 116, 152, 47, 173, 76, 194, 202, 141, 157, 60, 152, 102, 0, 221, 6, 50, 99, 151, 186, 48, 83, 236, 55, 133, 82, 148, 106, 254, 153, 170, 202, 188, 59, 54, 7, 47, 123, 240, 145, 245, 195, 14, 183, 38, 97, 200, 41, 55, 59, 54, 57, 89, 250, 157, 93, 45, 131, 234, 167, 202, 170, 252]), value: EventValue([241, 165, 37, 4, 86, 117, 219, 247, 37, 14, 154, 131, 114, 90, 100, 86, 146, 12, 24, 203, 155, 195, 45, 129, 92, 33, 27, 32, 20, 125, 13, 222, 118, 28, 75, 246, 64, 228, 187, 16, 135, 111]) }], receipt: 1244527232 }, TransactionReceipt { tx_hash: [218, 154, 227, 77, 24, 137, 252, 127, 189, 232, 211, 97, 81, 91, 41, 222, 31, 218, 243, 254, 110, 201, 48, 89, 12, 178, 52, 140, 171, 13, 5, 236], body_to_save: Some([69, 247, 216, 50, 46, 29, 118, 127, 236, 134, 106, 219, 94, 68, 241, 71, 67, 2, 19, 235, 105, 227, 33, 182, 166, 56, 124, 21, 198, 100, 0, 225, 255, 165, 65, 65, 21, 215]), events: [Event { key: EventKey([181, 196, 223, 166, 68, 57, 87, 102, 189, 42, 181, 23, 243, 45, 49, 148, 108, 198, 15, 134, 177, 154, 52, 151, 95, 125, 181, 106, 30, 243, 252, 161]), value: EventValue([232, 51, 74, 204, 164, 109, 27, 32, 33, 20, 124, 12, 199, 225, 90, 63, 208, 109, 168, 134, 89, 171, 151, 61, 238, 198, 250, 56, 40, 134, 14, 224, 236, 90, 66, 177, 63, 67, 224, 193, 166, 170, 131, 95, 32, 94, 206, 183, 222, 244, 45, 162, 44, 213, 107, 51, 9, 10, 124, 185]) }, Event { key: EventKey([113, 153, 247, 145, 235, 31, 250, 18, 193, 115, 217, 135, 229, 200, 130, 152, 151, 233, 52, 115, 231, 136, 237, 197, 89, 105, 68, 36, 191, 44, 200, 160, 131, 40, 250, 150, 71, 250, 233, 141, 225, 229, 230, 92, 224, 33, 29, 220, 63, 71, 122, 120, 48, 54, 159, 78, 189, 64, 73, 150, 47, 91, 140, 176, 26, 150, 79, 50, 67, 9, 184, 206, 134, 223, 168, 207, 147, 149, 65, 247, 126, 102, 18, 115, 249, 139, 164, 29, 46, 40, 254, 182, 243, 33, 46, 22]), value: EventValue([33]) }, Event { key: EventKey([116, 47, 126, 211, 165, 36, 176, 94, 39, 246, 92, 113, 95, 85, 80, 227, 78, 36, 127, 21, 5, 47, 89, 128, 232, 193, 75, 91, 188, 196, 213]), value: EventValue([176, 143, 96, 10, 195, 122, 37, 16, 220, 100, 39, 175, 66, 161, 199, 152, 175, 213, 191]) }, Event { key: EventKey([46, 251, 112, 143, 4, 77, 65, 129, 91, 146, 232, 99, 67, 139, 71, 116, 69, 235, 241, 225, 196, 19, 143, 180, 239, 193, 114, 176, 201, 1, 91, 25, 195, 233, 37, 192, 151, 51, 210, 176, 48, 41, 231, 155, 9, 109, 248, 206, 216, 94, 172, 89, 196, 46, 137, 79, 167, 73, 48, 9, 139, 110, 21, 118, 114, 189, 255, 200, 214, 243, 65, 103, 42, 109, 72, 220, 76, 69, 215, 212, 10, 198, 28, 3, 101, 35, 214, 148, 25, 37, 187, 235, 194, 26, 246]), value: EventValue([163, 153, 47, 57, 68, 145, 179, 178, 24, 210, 128, 195, 127, 73, 17, 164, 78, 117, 189, 133, 224, 217, 63, 97, 116, 3, 83, 209, 93]) }], receipt: 3415682284 }], inner: 2299387456 }, BatchReceipt { batch_hash: [194, 17, 226, 51, 243, 125, 213, 4, 117, 12, 228, 59, 176, 213, 3, 26, 202, 182, 87, 194, 52, 245, 250, 107, 98, 104, 81, 199, 49, 83, 36, 157], tx_receipts: [TransactionReceipt { tx_hash: [2, 34, 83, 153, 147, 96, 193, 68, 82, 133, 195, 208, 170, 41, 185, 58, 96, 159, 54, 215, 217, 74, 112, 110, 96, 3, 240, 49, 184, 253, 175, 190], body_to_save: None, events: [Event { key: EventKey([71, 186, 226, 204, 11, 22, 183, 140, 242, 53, 248, 254, 109, 4, 64, 25, 0, 133, 1, 139, 88, 197, 219, 47]), value: EventValue([20, 133, 80, 212, 164, 144, 195, 123, 86, 242, 40, 186, 56, 121, 182, 73, 233, 239, 215, 193, 177, 28, 37, 1, 233, 37, 215, 89, 116, 184, 206, 45, 64, 190, 56, 153, 52, 156, 165, 16, 190, 71, 83, 183, 174, 54, 247, 48, 74, 173, 166, 59, 4, 128, 176, 8, 198, 96, 204, 5, 65, 156, 136, 51, 169, 15, 215, 178, 39, 164, 207, 219, 253, 129, 159, 52, 169, 124, 109, 216, 9, 82, 134, 82, 69, 73, 77, 218, 86, 88, 57, 129, 23]) }], receipt: 2247786762 }, TransactionReceipt { tx_hash: [149, 28, 238, 110, 98, 9, 7, 66, 150, 255, 199, 7, 148, 83, 234, 37, 102, 173, 168, 194, 117, 45, 189, 111, 178, 107, 181, 241, 49, 100, 77, 32], body_to_save: Some([173, 167, 12, 34, 196, 130, 86, 120, 98, 29, 193, 165, 128, 104, 12, 173, 118, 43, 138, 166, 236, 118, 142, 77, 173, 236, 67, 9, 113]), events: [Event { key: EventKey([176, 202, 110, 203]), value: EventValue([119, 71, 211, 147, 78, 69, 185, 235, 69, 85, 220, 8, 12, 171, 197, 178, 209, 52, 57, 245, 140, 93, 0, 136, 29, 130, 66, 54, 85, 65, 137, 3, 50, 130, 29, 182, 236, 51, 84, 155, 70, 60, 225, 70, 111, 250, 8, 123, 160, 15, 55, 103, 97, 102, 198, 11, 234, 38, 117, 21, 22, 138, 15, 238, 164, 75, 29, 195, 148, 20, 202, 29, 200, 4, 111, 149, 160, 42, 148, 233, 205, 5, 171, 29, 190]) }, Event { key: EventKey([103, 205, 176, 96, 172, 81, 107, 82, 64, 216, 68, 251, 251, 251, 37, 233, 145, 243, 240, 215, 145, 251, 208, 116, 211, 31, 182, 59, 183, 249, 117, 129, 54, 90, 189, 63, 1, 219, 48, 169, 77, 89, 175, 99, 216, 59, 167, 20, 8, 129, 203, 122, 28, 176, 34, 50, 15, 125, 7, 38, 132, 94, 227, 147, 219, 184, 24, 140, 230, 206, 209, 5, 182, 132, 92, 228, 250, 249, 159, 17, 171, 35, 152, 149]), value: EventValue([35, 248, 196, 180, 18, 16, 214, 186, 130, 150, 243, 125, 95, 200, 208, 57, 69, 1, 215, 196, 115, 128, 132, 158, 29, 8, 68, 215, 205, 85, 183, 197, 103, 89, 47]) }, Event { key: EventKey([140]), value: EventValue([126, 185, 236, 17, 18, 149, 208, 195, 219, 145, 69, 135, 47, 235, 29, 120, 233, 204, 221, 33, 133, 156, 199, 26, 142, 37, 94, 188, 124, 57, 234, 160, 105, 185, 233, 0, 124, 59, 180, 94, 203, 152, 11, 249, 235, 55, 68, 63, 216, 56, 94, 177, 69, 225, 127, 237, 227, 117, 135, 67, 68, 252, 151, 148, 171, 189, 199, 161, 14, 222, 254]) }], receipt: 2241684962 }, TransactionReceipt { tx_hash: [46, 213, 89, 205, 58, 58, 160, 189, 121, 171, 217, 13, 190, 0, 126, 231, 130, 114, 203, 114, 54, 168, 209, 242, 171, 197, 162, 96, 57, 21, 248, 107], body_to_save: None, events: [Event { key: EventKey([69, 188, 111, 96, 141, 95, 80, 42, 238, 182, 89, 209, 25, 152, 158, 238, 206, 190, 154, 169, 13, 171, 67, 255, 48, 209, 17, 115, 105, 147, 144, 117, 0, 134, 28, 255, 47, 219, 123, 137, 130, 147, 23, 182, 196, 195, 4, 80, 176, 220, 182, 69, 186, 206, 52, 200, 13, 123, 12, 184, 78, 228]), value: EventValue([190, 87, 212, 196, 241, 12, 156, 255, 29, 14, 225, 242, 230, 227, 154, 153, 198, 220, 152, 218, 79, 126, 189, 53, 86, 200, 147, 232, 240, 156, 24, 247, 22, 90, 104, 125, 65, 200, 137, 190, 210, 250]) }, Event { key: EventKey([84, 94, 237, 188, 107, 165, 54, 26, 72, 34, 209, 199, 200, 81, 70, 166, 92, 219, 180, 167, 47, 233, 153, 198, 142, 145, 54, 94, 86, 98, 46, 214, 100, 81, 1, 23, 10, 53, 19, 121, 148, 209, 144, 220, 53, 71, 4, 98, 160, 202, 122, 116, 151, 157, 167, 132, 168, 126, 97, 94, 75, 150, 200, 69, 242, 238]), value: EventValue([72, 227, 222, 90, 52, 248, 36, 216, 175, 216, 70, 84, 86, 142, 77, 160, 140, 159, 103, 43, 16, 180, 62, 177]) }, Event { key: EventKey([163, 229, 184, 6, 27, 253, 58, 18, 2, 145, 39, 162, 109, 216, 83, 28]), value: EventValue([54, 232, 178, 91, 14, 151, 198, 37, 224, 175, 39, 155, 8, 254, 97, 13, 11, 218, 113, 59, 156, 68, 59, 80, 245, 228, 13, 241, 191, 154, 118, 19, 76, 238, 135, 63, 129, 255, 195]) }, Event { key: EventKey([209, 220, 103, 22, 2, 40, 239, 37, 223, 183, 129, 230, 208, 247, 206, 89, 78, 34, 2]), value: EventValue([116, 47, 37, 44, 90, 179, 208, 220, 95, 28, 197, 3, 100, 181, 225, 34, 5, 118, 74, 117, 173, 176, 82, 1, 214, 167, 13, 109, 171, 117, 227, 84, 62, 64, 196, 91, 23, 83, 201, 218, 200, 16, 240, 197, 138, 106, 105, 164, 62, 212, 200, 167, 115, 40, 160, 251, 61, 218, 253, 121, 20, 143, 212, 42, 244, 151, 54, 169, 249, 78, 198, 239]) }, Event { key: EventKey([167, 188, 44, 192, 157, 77, 205, 68, 226, 23, 84, 68, 252, 212, 56, 82, 160, 121, 20, 111, 14, 143, 249, 55, 51, 93, 84, 73, 86, 159, 171, 162, 249, 163, 60, 227, 201, 154, 96, 96, 74, 195, 112, 91, 87, 248, 67, 62, 154, 30, 130, 4]), value: EventValue([204, 47, 173, 42, 120, 245, 171, 178, 33, 72, 177, 166, 216, 255, 70, 234, 15, 214, 234, 29, 157, 185, 224, 9, 104, 206, 236, 108, 232, 54, 71, 147]) }], receipt: 1885157597 }], inner: 1308651512 }, BatchReceipt { batch_hash: [41, 167, 1, 11, 68, 57, 133, 175, 133, 217, 219, 142, 161, 189, 69, 63, 181, 81, 7, 0, 197, 208, 160, 94, 45, 25, 2, 211, 201, 129, 14, 42], tx_receipts: [TransactionReceipt { tx_hash: [74, 151, 19, 75, 156, 173, 111, 150, 70, 2, 16, 165, 161, 217, 117, 42, 227, 208, 73, 229, 149, 116, 94, 124, 165, 172, 0, 239, 189, 26, 205, 131], body_to_save: Some([244, 150, 193, 159, 210, 235, 178, 118, 106, 113, 17, 204, 85, 35, 239, 101, 158, 20, 148, 49, 203, 14, 162, 125, 196, 111, 142, 118, 60, 96, 136]), events: [Event { key: EventKey([54, 121, 57, 103, 165, 210, 123, 178, 186, 109, 236, 86, 165, 91, 148, 39, 42, 6, 253, 248, 10, 190, 253, 215, 62, 230, 175, 7, 197, 54, 164, 41, 140, 49, 61, 11, 147, 225, 197, 70, 93, 83, 245, 120, 172, 3, 78]), value: EventValue([213, 37, 39, 230, 195, 67, 173, 242, 4, 139, 205, 9, 29, 163, 219, 63, 87, 251, 49, 244, 46, 11, 181, 60, 35, 131, 111, 16, 155, 14, 35, 181, 31, 90, 108, 205, 111, 108, 33, 114, 95, 114, 144, 79, 146, 134, 91, 248, 139, 254, 126, 20, 231, 195, 102, 250, 25, 197, 76, 228, 98, 220, 221, 114, 179, 18, 214, 2, 210, 7, 104, 181, 64]) }, Event { key: EventKey([97]), value: EventValue([174, 19, 213, 94, 229, 76, 170, 241, 201, 77, 59, 64, 64, 18, 160, 238, 202, 82, 90, 213, 111, 249, 160, 140, 154, 67, 44, 213, 126, 195, 217, 160, 165, 98, 234, 39, 210, 205, 150, 224, 145, 128, 163, 130, 71, 53, 165, 212, 81, 164, 110, 14, 81, 68, 45, 29, 137, 86, 202]) }, Event { key: EventKey([92, 57, 139, 4, 106, 95, 72, 239, 16, 23, 142, 37, 235, 27, 140, 235, 90, 3, 112, 128, 91, 42, 127, 231, 184, 165, 146, 173, 189, 233, 204, 174, 44, 172, 221, 74, 254, 125, 152, 173, 212, 170, 168, 99, 159, 90, 87, 173, 186, 73, 228, 158, 213, 236, 156, 187, 145, 81, 60, 207, 9, 64, 142, 116]), value: EventValue([201, 137, 32, 110, 112, 227, 90, 122, 210, 207, 248, 116, 80, 55, 151, 161, 150, 85, 90, 185, 86, 72]) }, Event { key: EventKey([78, 121, 32, 105, 42, 86, 1, 145, 67, 57, 102, 233, 162, 175, 109, 247, 140, 228, 72, 149, 206, 216, 18, 88, 87, 101, 113, 120, 31, 24, 89, 209, 3, 103, 31, 17, 33, 181, 71, 199, 165, 121, 194, 123, 178, 15, 197, 106, 119, 134, 236, 135, 175, 157, 82, 105, 6, 120, 222, 194, 206, 158, 29, 32, 198, 142, 44, 28, 26, 243, 9, 140, 224, 16, 33, 249, 155, 20, 74, 59, 99, 56, 88, 92, 246, 7, 81, 228, 194]), value: EventValue([95, 91, 141, 234, 199, 74, 21, 2, 255, 229, 212, 53, 10, 220, 29, 89, 129, 46, 149, 171, 177, 99, 166, 251, 176, 177, 20, 217, 47, 108, 66, 9, 232, 126, 242, 69, 144, 179, 151]) }, Event { key: EventKey([234, 103, 21, 175, 242]), value: EventValue([252, 113, 22, 211, 233, 76, 144, 250, 57, 25, 26, 71, 63, 6, 9, 63, 33, 190, 25, 222, 58, 201, 11, 75, 242, 250, 248, 100, 39, 238, 121, 233, 25, 103, 182, 233, 49, 111, 135, 121, 8, 85, 233, 145, 69, 187, 21, 254, 241, 201, 228, 250, 42, 84, 79, 210, 168, 157, 68, 134, 230, 13, 98, 96, 10, 173]) }, Event { key: EventKey([169, 203, 83, 222, 31, 61, 196, 63, 28, 42, 73, 10, 143, 173, 75, 143, 32, 210, 35, 194, 73, 236, 149, 237, 70, 217, 237, 111, 194, 129, 63, 226, 235, 18, 216, 129, 2, 28, 78, 15, 162, 132, 160, 24, 232, 188, 194, 37, 118, 133, 253, 117, 52, 232, 183]), value: EventValue([202, 152, 98, 39, 147, 91, 36, 234, 172, 16, 48, 175, 70, 51, 165, 56, 176, 135, 196, 206, 195, 114, 169, 37, 142, 254, 28, 225, 200, 31, 230, 183, 159, 125, 98, 151, 138, 201, 211, 237, 59, 210, 9, 17, 21, 196, 182, 50, 110, 172, 61, 134, 61, 193, 116, 181, 189, 148, 253, 127, 248, 137, 246, 1]) }], receipt: 2587865063 }, TransactionReceipt { tx_hash: [99, 19, 73, 195, 63, 37, 248, 60, 205, 72, 205, 149, 180, 133, 55, 232, 205, 5, 226, 97, 105, 139, 250, 134, 26, 143, 209, 93, 180, 94, 79, 180], body_to_save: None, events: [Event { key: EventKey([12, 124, 165, 27, 66, 247, 6, 107, 207, 37, 125, 39, 215, 127, 175, 159, 222, 50, 25, 41, 219, 162, 150, 6, 232, 159, 97, 126, 150, 41, 231, 247, 211, 65, 4, 192, 121, 117]), value: EventValue([232, 219, 225, 185, 158, 158, 193, 86, 150, 166, 56, 112, 90, 32, 92, 124, 154, 120, 128, 235, 164, 177, 162, 110, 203, 189, 35, 16, 210, 33, 119, 7, 52, 249, 144, 73, 187, 168, 34, 86]) }, Event { key: EventKey([163, 100, 215, 202, 162, 31, 20]), value: EventValue([155, 134, 89, 7, 52, 160, 117, 205, 65, 153, 226, 131, 141, 122, 218, 203, 63, 145, 41, 52, 131, 131, 200, 247, 77, 58, 111, 130, 94, 208, 242, 122, 182, 113, 116, 104, 116, 187, 59, 184, 109, 101, 191, 47, 24, 137, 46, 104, 154, 155, 53, 113, 212, 253, 120, 152, 149, 81, 183, 62, 146, 20, 180, 94, 65, 178, 189, 219, 7, 235, 220, 201, 171, 28, 2, 155, 34, 86, 61, 124, 153, 119, 146, 71, 82, 125]) }, Event { key: EventKey([114, 109, 49, 225, 196, 212, 190, 51, 26, 85, 251, 111, 52, 87, 70, 213, 159, 167, 43, 195, 67, 68, 235, 203, 200, 73, 73, 63, 74, 39, 172, 236, 248, 216, 74, 105, 28, 207, 53, 110, 27, 100, 22, 158, 107, 232, 95, 78]), value: EventValue([141, 24, 241, 211, 38, 155]) }], receipt: 2354544375 }, TransactionReceipt { tx_hash: [200, 178, 27, 112, 225, 195, 158, 35, 17, 113, 242, 195, 137, 162, 70, 121, 119, 145, 201, 7, 21, 32, 58, 182, 20, 52, 48, 101, 141, 195, 12, 94], body_to_save: None, events: [Event { key: EventKey([40, 157, 59, 60, 170, 108, 223, 130, 253, 199, 213, 81, 85, 181, 65, 20, 93, 87, 53, 230, 188, 114, 80, 194, 249, 6, 31, 136, 229, 47, 206, 84, 72, 86, 207, 103, 228, 16, 37, 90, 215, 237, 9, 6, 20, 185, 140, 139, 23, 119, 199, 196, 146, 36, 64, 104, 178, 221, 43, 80, 139, 110, 47, 29]), value: EventValue([99, 210, 189, 42, 145, 148, 165, 240, 34, 253, 136, 223, 74, 26, 27, 250, 62, 24, 178, 61, 233, 11, 77, 103, 141, 95, 15, 135, 184, 147, 124, 169]) }, Event { key: EventKey([74, 181, 46, 72, 255, 186, 96, 164, 224, 233, 161, 104, 184, 1, 14, 155, 214, 230, 205, 21, 5, 185, 107, 22, 248, 139, 39, 136, 45, 196, 183, 222, 39, 123, 146, 49, 101, 172, 27, 188, 74, 134, 225, 177, 152, 194, 92, 10, 204, 73, 20, 234, 83, 9, 88]), value: EventValue([135, 232, 199, 96, 121, 26, 226, 154, 171, 140, 199, 253, 208, 123, 207, 70, 196, 196, 9, 73, 94, 86, 140, 188, 52, 103, 13, 245, 165, 36, 88, 248, 96, 182, 178, 253, 5, 192, 219, 107, 102, 60, 82, 90, 169, 190, 201, 15, 170, 193, 244, 122, 148, 241, 65, 136, 147, 94, 116, 123, 46, 147, 39, 149, 114, 233, 109, 14, 61, 172, 212, 62, 189, 164, 245, 38, 212, 134, 144, 88, 198, 153, 41, 99, 20, 175]) }, Event { key: EventKey([29, 218, 107, 50, 153, 249, 190, 71, 165, 246, 250, 0, 124, 206, 210, 136, 3, 32, 54, 111, 150, 124, 42, 7, 5, 164, 134, 114, 106, 13, 138, 246, 114, 252, 237, 85, 16, 47, 76, 165, 238, 159, 175, 113, 224, 185, 103, 233, 8, 122, 140, 101, 39, 240, 159, 242, 25, 139, 5, 34, 174, 104, 250]), value: EventValue([91, 235, 93, 62, 134, 106, 28, 254, 93, 28, 105, 72, 198, 185, 95, 4, 234, 243, 167]) }, Event { key: EventKey([8, 80, 160, 181, 205, 231, 115, 38, 66, 146, 249, 193, 183, 209, 175, 238, 104, 92, 31, 206, 101, 238, 39, 194, 139, 111, 181, 197, 124, 14, 125, 126, 200, 192, 160, 3, 165, 0, 97, 179, 218, 230, 249, 74, 168, 6, 239, 103, 190, 130, 165, 73, 51, 185, 172, 168, 134, 98, 152, 126, 120, 46, 189, 60]), value: EventValue([82, 169, 27, 186, 109, 150, 252, 49, 196, 146, 179, 98, 185]) }, Event { key: EventKey([223, 112, 106, 235, 111, 1, 233, 221]), value: EventValue([3, 61, 98, 157, 122, 56, 234, 220, 51, 37, 22, 125, 235, 115, 137, 24, 67, 60, 43, 101, 222]) }, Event { key: EventKey([5, 10, 92, 225, 219, 66, 224, 81, 26, 39, 190, 201, 58, 131, 196, 240, 195, 204, 237, 79, 5, 247, 115, 42, 54, 56, 99, 183, 140, 110, 117, 128, 92, 153, 11, 57, 12, 6, 53, 243, 146, 126, 125, 39, 222, 31, 27, 173, 145, 115, 115, 197, 158, 220, 81, 210, 189, 87, 118, 133, 245, 173, 54, 237, 218, 124, 104, 81]), value: EventValue([41, 195, 242, 38, 94, 137, 134, 20, 172, 74, 160, 141, 121, 127, 214, 106, 119, 60, 56, 178, 106, 68, 118, 98, 193, 128, 74, 26, 136, 69, 129, 242, 213, 229, 146, 82, 147, 166, 16, 230, 173, 249, 181, 42, 1, 254, 213, 162, 202, 143, 172, 197, 216, 20, 237, 67, 164, 111, 162, 200, 231, 171, 62, 26, 154, 130]) }, Event { key: EventKey([252, 196, 29, 45, 233, 63, 60, 119, 164, 40, 151, 29, 24, 208, 122, 239, 128, 10, 44, 155, 129, 131, 36, 137, 87, 110, 119, 134, 168, 103, 122, 174, 2, 100, 119, 33, 98, 224, 70, 75, 195, 80, 7, 49, 122, 17, 178, 81, 203, 89, 222, 171, 79, 232, 114, 80, 54, 21, 119, 171, 207]), value: EventValue([78, 177, 223, 211, 253, 97, 150, 217, 234, 214, 11, 132, 162, 33, 163, 159, 57]) }, Event { key: EventKey([189, 82, 232, 41, 117, 223, 171, 192, 18, 100, 160, 204, 99, 15, 189, 206, 248, 198, 57, 149, 136, 27, 145, 199, 163, 111, 241, 181, 72, 92, 2, 34, 7, 209, 0, 121, 211, 81, 135, 104, 108, 205, 99, 254, 237, 147, 169, 228, 129, 65, 80, 154, 168, 84, 34, 137, 103, 12, 220, 186, 183, 219, 42, 125, 139, 253, 3, 78, 238, 0, 65, 101]), value: EventValue([227, 28, 92, 179, 188, 254, 215, 77, 170, 174, 61, 121, 229, 202, 213, 211, 68, 252, 176, 159, 126, 149, 191, 214, 129, 64, 214, 114, 114, 51, 121, 100, 240, 88, 63, 141, 241, 172, 50, 39, 80, 123, 187, 108, 11, 130, 39, 156, 231, 191, 34, 111, 219, 108, 21, 250, 101, 193, 56, 234, 211, 60, 111, 235, 196, 31, 175, 237, 77, 173, 138, 237, 57, 82, 239]) }], receipt: 1826952357 }, TransactionReceipt { tx_hash: [15, 158, 86, 61, 100, 135, 196, 147, 222, 92, 155, 10, 53, 107, 66, 97, 109, 58, 199, 63, 215, 125, 139, 137, 223, 32, 43, 155, 143, 165, 145, 196], body_to_save: None, events: [], receipt: 2709302234 }, TransactionReceipt { tx_hash: [145, 249, 176, 230, 57, 32, 46, 123, 45, 158, 220, 52, 111, 24, 36, 227, 71, 184, 0, 152, 90, 55, 228, 202, 22, 9, 158, 7, 4, 92, 194, 198], body_to_save: Some([229, 223, 47, 170, 136, 179, 162, 232, 186, 13, 30, 48, 92, 139, 135, 3, 221, 101, 202, 133, 238, 251, 1, 3, 182, 217, 13, 54, 172, 34, 50, 95, 147, 115, 135, 32, 185, 89, 191, 100, 135, 55, 203, 14, 142, 71, 109, 153, 234, 223, 146, 164, 47, 198, 207, 81, 72, 77, 57]), events: [Event { key: EventKey([30, 35, 55, 91, 29, 61, 82, 51, 250, 155, 57, 173, 50, 23, 255, 234, 23, 241, 27, 95, 131, 95, 253, 225, 198, 193, 186, 36]), value: EventValue([138, 77, 177, 33, 56, 149, 161, 150, 99, 214, 155, 166, 79, 42, 205, 162, 144, 34, 93, 52, 6, 90, 112, 245, 199, 2, 147, 244, 229, 147, 167, 192, 73, 187, 125, 248, 193, 195, 243, 32, 39, 4, 103, 26, 105, 45, 111, 172, 156, 245, 241, 75, 14, 178, 115, 115, 158, 160, 108, 169, 205, 145]) }, Event { key: EventKey([229, 85, 179, 90, 149, 150, 194, 27, 29, 200, 187, 15, 3, 4, 70, 25, 231, 27, 133, 115, 42, 82, 234, 168, 41, 92, 237, 147, 207, 68, 123, 196, 206, 183, 193, 35, 212, 5, 77, 192, 68, 72, 163, 163, 80, 218, 107, 119, 231]), value: EventValue([116, 135, 168, 40, 110, 186, 201, 37, 243, 213, 3, 7, 106, 209, 195, 183, 222, 77, 87, 254, 123, 171, 239, 181, 47, 95, 46, 138, 243, 192, 130, 160, 66, 15, 1, 34, 64, 194, 134, 81, 157, 70, 57, 65, 165, 18, 209, 17, 111, 163, 132, 130, 216, 180, 205, 167, 110, 56, 48, 153]) }, Event { key: EventKey([193, 150, 110, 92, 191, 110, 119, 246, 240, 101, 216, 245, 5, 42, 165, 253, 185, 230, 8, 45, 57, 226, 246, 26, 155, 122, 230, 52, 161, 233]), value: EventValue([215, 83, 124, 134, 161, 158, 189, 222, 50, 233, 120, 206, 9, 204, 225, 214, 246, 1]) }, Event { key: EventKey([29, 50, 13, 119, 8, 78, 91, 94]), value: EventValue([160, 127, 17, 101, 178, 157, 65, 1, 241, 77, 17, 74, 105, 53]) }], receipt: 970898734 }], inner: 2468272342 }], num_txs: 15, num_events: 52 }, SlotCommit { slot_data: TestBlock { curr_hash: [211, 51, 247, 9, 194, 162, 239, 118, 204, 64, 190, 39, 240, 125, 98, 114, 236, 53, 136, 24, 160, 134, 70, 25, 189, 132, 47, 176, 214, 183, 209, 180], header: TestBlockHeader { prev_hash: TestHash([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) } }, batch_receipts: [BatchReceipt { batch_hash: [21, 32, 85, 245, 102, 10, 29, 9, 93, 14, 187, 137, 211, 108, 23, 109, 1, 145, 219, 193, 181, 212, 79, 55, 110, 239, 205, 156, 5, 90, 151, 198], tx_receipts: [TransactionReceipt { tx_hash: [221, 147, 57, 172, 241, 155, 84, 68, 84, 132, 33, 193, 72, 69, 54, 142, 169, 217, 247, 86, 240, 81, 121, 32, 66, 200, 14, 212, 223, 224, 112, 18], body_to_save: None, events: [Event { key: EventKey([25, 31, 84, 104, 190, 177, 1, 227, 170, 75, 167, 188, 156, 168, 105, 4, 133, 209, 3, 46, 72, 124, 198, 193, 118, 97, 81, 2, 252, 97, 237, 150, 161, 95, 195, 18, 233, 213, 16, 254, 202, 106, 89, 95, 168, 45, 58, 63, 164, 200, 186, 14, 109]), value: EventValue([12, 123, 202, 19, 148, 15, 53, 21, 113, 114, 8, 61, 22, 242, 187, 79, 127, 3, 126, 249, 57, 168, 214, 22, 181, 159, 2, 57, 195, 158, 76, 187, 157, 252, 153, 61, 180, 127, 61, 186, 243, 81, 203, 218, 19, 209, 26, 209, 25, 228, 217, 46, 6, 38, 33, 14, 187]) }, Event { key: EventKey([120, 163, 124, 35, 158, 137, 227, 68, 246, 163, 128, 153, 0, 117, 117, 246, 217, 84, 111, 50, 40, 21, 205, 121, 130, 46, 13, 171, 39, 172, 97, 240, 253, 194, 15, 109, 217, 54, 22, 65, 64, 172, 213, 37, 241, 13, 174, 9, 94, 232, 226, 145, 184, 165, 60, 186, 177]), value: EventValue([26, 50, 244, 1, 32, 179, 28, 242, 159, 248, 168, 106, 211, 24, 3, 233, 164, 240, 75, 147, 109, 236, 53, 243, 152, 157, 90, 132, 6, 74, 82, 212, 19, 25, 25, 18, 21, 88, 80, 52, 187, 152, 4, 108, 7, 74, 251, 58, 212, 11, 12, 3, 114, 178, 145, 237, 90, 147, 166, 33, 103, 176, 73, 131, 208, 53, 169, 172, 122, 137]) }, Event { key: EventKey([226, 175, 253, 238, 167, 68, 22, 52, 129, 89]), value: EventValue([78, 89, 111, 0, 245, 125, 74, 31, 195, 157, 7, 56, 165, 207, 37, 104, 8, 1, 143, 111, 79, 97, 193, 115, 217, 156, 151, 243]) }], receipt: 279383823 }, TransactionReceipt { tx_hash: [105, 157, 43, 131, 128, 40, 34, 228, 196, 96, 182, 124, 55, 165, 28, 157, 84, 86, 3, 228, 220, 59, 150, 121, 25, 57, 57, 155, 244, 90, 128, 245], body_to_save: Some([31, 184, 214, 72, 59, 94, 80, 84, 223, 187, 214, 21, 174, 236, 101, 128, 76, 61, 49, 73]), events: [Event { key: EventKey([206, 236, 39, 3, 107, 124, 46, 127, 72, 106, 193, 82, 175, 37, 169, 217, 184, 150, 223, 2, 191, 150, 86, 137, 172, 123, 135, 190, 138, 111, 112, 203, 10, 157, 150, 104, 181, 210, 153, 161, 39, 5, 225, 108, 202, 99, 143, 64, 21, 181, 225, 41, 2, 65, 97, 107, 210, 12, 65, 7, 133, 244, 108, 166, 154, 168, 215, 94, 60, 183, 95, 255, 141, 164, 201, 147, 208, 131, 185, 136, 184, 110, 202]), value: EventValue([1, 13, 22, 85, 81, 219, 191, 149, 144, 243, 139, 168, 154, 40, 161, 51, 81, 8, 128, 12, 181, 141, 107, 214, 195, 147, 186, 246, 184, 19, 100, 174, 176, 68, 98, 89, 35, 173, 18, 197, 215, 98, 99, 9, 169, 29, 133, 253, 227, 125, 60, 252, 20]) }, Event { key: EventKey([202, 27, 102, 105, 54, 184, 7, 248, 58, 55, 233, 55, 206, 60, 149, 52, 131, 81, 48, 9, 150, 181, 48, 52, 186, 166, 74, 130, 113, 137, 231, 86, 170, 32]), value: EventValue([253, 117, 119, 86, 38, 222, 20, 18, 81, 172, 207, 164, 251, 140, 132, 151, 57, 95, 165, 146, 133, 209, 68, 217, 90, 112, 44, 35, 7, 198, 147, 192, 202, 119, 155, 183, 156, 190, 52, 126, 32]) }, Event { key: EventKey([238, 122, 84, 17, 46, 223, 180, 255, 58, 170]), value: EventValue([192, 61, 141, 7, 143, 253, 98, 18, 94, 231, 130, 150, 110, 97, 252, 129, 40, 193, 211, 238, 121, 230, 138, 94, 157, 201, 109, 22, 79, 20, 119, 146, 184, 14, 118, 103, 226, 48, 213, 237, 240, 55, 78, 218, 36, 191, 174, 156, 216, 161, 225, 27, 18, 97, 184, 137, 23, 53, 116, 171, 54, 73, 121, 255, 124, 158, 26, 68, 144, 214, 215, 157, 133, 240, 116, 20, 145, 213, 201, 50, 164, 204, 34, 130, 136, 252]) }, Event { key: EventKey([39, 24, 88, 168, 199, 18, 209, 169, 67, 165, 132, 96, 171, 225, 189, 189, 180, 45, 199, 116, 171, 105, 215, 201, 169, 164, 110, 106, 145, 24, 176, 216, 55, 243, 216, 164, 191, 6, 148, 206, 31, 214, 20, 118, 81, 101, 187, 67, 122, 15, 155, 148, 25, 194, 213, 6, 171, 64, 60, 134, 65, 155, 226, 80, 178, 106, 62, 1, 192, 175, 19, 50]), value: EventValue([125, 143, 95, 171, 69, 171, 79, 153, 179, 135, 101, 127, 65, 31, 13, 219, 110, 31, 161, 0, 248, 164, 218, 141, 195, 252, 30, 80, 107, 8, 178, 231, 160, 10, 158, 123, 246, 250, 212, 166, 186, 52, 34, 247, 73, 225, 90, 93, 7, 221, 206, 226]) }, Event { key: EventKey([147, 73, 247, 241, 65, 74, 226, 190, 220, 90, 227, 228, 108, 201, 132, 180, 106, 115, 154, 123, 76, 168, 230, 214, 101, 195, 19, 16, 36, 212, 159, 141, 11, 76, 95, 239, 186, 22, 234, 85, 101, 32, 64, 231, 169, 27, 57, 116, 213, 248, 204, 40, 156, 26, 194, 78, 59, 214, 145, 252, 221, 238]), value: EventValue([121, 89, 45, 42, 166, 41, 77, 56, 89, 23, 149, 178, 68, 80, 84, 231, 56, 166, 227, 73, 60, 105, 74, 188, 190, 148, 33, 156, 63, 217, 29, 159, 40, 195, 96, 198, 28, 154, 251, 85, 42, 215, 121, 230, 43, 23, 8, 195, 57, 201, 210, 89, 255, 171, 59, 62, 107, 56, 169, 235, 42, 2, 36, 102, 35, 252, 83, 214, 137, 159, 140, 64, 137, 240, 75, 40, 71, 32, 122, 194, 95, 82, 125, 46, 20, 104, 11, 243, 5, 104, 141, 14, 37]) }, Event { key: EventKey([175, 49, 16, 230, 69, 217, 133, 117, 209, 243, 81]), value: EventValue([6, 253, 159, 141, 103, 140, 92, 63, 120, 210, 102, 9, 216, 81, 200, 77, 15, 87, 176, 187, 191, 152, 51, 79, 61, 104, 192, 114, 174, 206, 250, 33, 17, 48, 189, 207, 147, 51, 13, 217, 241, 82, 44, 243, 219, 155, 189, 145, 162, 123, 255, 200, 166, 96, 219, 225, 16, 74, 21, 175, 76, 81, 176, 202, 167, 245, 75, 163, 230, 81, 58, 255, 58, 6, 175, 27, 249, 29, 180, 243, 247, 40, 151, 80, 62, 107, 168, 158, 245, 52, 255, 191, 157, 37, 143, 124, 4]) }, Event { key: EventKey([139, 154, 120, 243, 79, 136, 211, 245, 210, 140, 110, 96, 115, 128, 43, 10, 203, 74, 188, 2, 181, 61, 155, 130, 59, 127, 234, 198, 235, 233, 252, 202, 236, 111, 110]), value: EventValue([237, 83, 142, 138, 118, 211, 17, 122, 83, 82, 104, 60, 242, 102, 20, 217, 3, 13, 57, 167, 45, 166, 4, 205, 136, 165, 30, 243, 45, 178, 93, 167, 59, 58, 102]) }, Event { key: EventKey([]), value: EventValue([220, 67, 214, 0, 183, 177, 67, 119, 194, 69, 224, 232, 182, 58, 156, 5, 178, 114, 17, 18, 27, 43, 88, 111, 3, 182, 134, 232, 194, 152, 17, 23, 68, 41, 31, 11, 121, 136, 10, 142, 130, 9, 20, 27, 39, 19, 67, 75, 161, 146, 34, 26, 42, 77, 199, 79, 161, 157, 116, 30, 72]) }], receipt: 4102898017 }, TransactionReceipt { tx_hash: [226, 229, 75, 211, 192, 93, 248, 83, 165, 38, 202, 123, 124, 123, 174, 238, 139, 48, 182, 75, 190, 96, 124, 96, 61, 1, 154, 130, 54, 46, 121, 221], body_to_save: Some([93, 16, 196, 63, 97, 33, 202, 11, 171, 78, 163, 103, 236, 255, 19, 70, 172, 225, 132, 152, 139, 131, 46, 174, 164, 199, 178, 174, 236, 79, 4, 199, 0, 24, 155, 38, 84, 104, 198, 96, 122, 169, 67, 55, 71, 184, 218, 48, 0, 125, 217, 251]), events: [Event { key: EventKey([163, 104, 114, 149, 1, 26, 199, 130, 120, 212, 90, 9, 154, 212, 146, 71, 187, 71, 225, 20, 143, 194, 24, 19, 84, 18, 66, 225, 62, 69, 112, 200, 254, 73, 234, 227, 38, 157, 96, 24, 194, 35, 138, 10, 132, 226, 253, 74, 178, 65]), value: EventValue([198, 44, 61, 87, 178, 232, 210, 147, 140, 194, 139, 98, 63, 87, 237, 34, 234, 56, 5, 109, 134, 101, 144, 164, 17, 60, 230, 242, 79, 17, 249, 95, 1, 137, 222, 202, 63, 77, 249, 77, 56, 123, 3, 206, 15, 224, 12, 30, 21, 171, 107, 145, 240, 140, 221, 221, 19, 201, 146, 219, 37, 26, 77, 143, 240, 92, 82, 73, 141, 123]) }, Event { key: EventKey([235, 164, 107, 250, 181, 128, 236, 121, 68, 93, 115, 28, 110, 114, 61, 142, 223, 92, 160, 104, 128, 215, 232, 115, 63, 245, 251, 104, 62, 53, 45, 127, 57, 61, 159, 148, 239, 32, 104, 245, 12, 128, 106, 92, 24, 248, 152, 224, 38, 229, 93, 7, 219, 77, 37, 232, 99, 110, 187, 248, 24, 6, 147, 73]), value: EventValue([29, 138, 5, 172, 176, 213, 101, 146, 13, 216, 34, 206, 118, 140, 19, 219, 80, 132, 142, 207, 31, 181, 52, 10, 151, 179, 58, 190, 138, 13, 241, 196, 219, 90, 101, 186, 216, 189, 93, 218, 237, 151, 121, 93, 169, 148, 105, 38, 160, 24, 9, 184, 176, 4, 219, 207, 8, 89, 251, 179, 96, 128, 168, 167, 197, 143, 115]) }, Event { key: EventKey([7, 232, 94, 108, 94, 25, 165, 132, 145, 251, 217, 22, 80, 35, 255, 81, 186, 119, 22, 154]), value: EventValue([4, 173, 109, 27, 234, 216, 130, 204, 26, 8, 242, 84, 230, 19, 113, 174, 62, 28, 253, 17, 192, 175, 230, 64, 166, 146, 92, 168, 223, 217, 11, 174, 121, 58, 89, 85, 215, 109, 17, 7, 187, 235, 251, 109, 7, 100, 240, 180, 66, 173, 243, 161, 21, 120, 97, 225, 122, 52, 35, 117, 48, 79, 177, 124, 60, 237, 76, 131]) }, Event { key: EventKey([68, 159, 97, 196, 136, 69, 108, 177, 63]), value: EventValue([13, 197, 15, 197, 19, 53, 164, 226, 41, 157, 71, 26, 221, 14, 12, 175, 177, 79, 25, 149, 87, 15, 238, 13, 254, 97, 201, 82, 236, 32, 106, 113, 77, 244, 51, 212, 143, 84, 205, 2, 172, 229, 180, 93, 103, 211, 15, 23, 130, 222, 34, 161, 255, 85, 187, 246, 183, 97, 151, 50, 89, 187, 21, 163, 145, 60, 72, 4, 215, 22, 103, 234, 25, 217, 30]) }], receipt: 3663053794 }, TransactionReceipt { tx_hash: [125, 55, 47, 157, 253, 194, 212, 191, 159, 101, 185, 14, 193, 195, 192, 89, 83, 136, 2, 224, 123, 51, 155, 130, 192, 250, 197, 172, 203, 182, 251, 175], body_to_save: None, events: [Event { key: EventKey([53, 129, 51, 31, 91, 6, 246, 7, 155, 222, 27, 72, 247, 253, 231, 45, 8, 187, 166, 60, 245, 23, 164, 53, 124, 115, 241, 49, 134, 167, 203, 48, 235, 128, 129, 79, 56, 156, 234, 16, 181, 21, 58, 63, 126, 223, 121, 130, 189, 119, 118, 6, 19, 178, 14, 126, 146, 24, 53, 174, 95, 47, 249, 167, 137, 214, 88, 234, 229, 33, 191, 76, 19]), value: EventValue([132, 213, 224, 0, 242, 236, 74, 28, 168, 11, 31, 196, 167, 165, 125, 60, 90, 220, 12, 23, 49, 129, 33, 67, 255, 34, 251, 208, 125, 123, 2, 66, 88, 30, 121, 163, 57, 96, 166, 117, 245, 137, 140, 24, 61, 18, 111, 66, 11, 118, 85, 40, 244, 98, 24, 83, 192, 17, 105, 150, 162, 94, 116, 238, 225, 103, 177, 84, 11, 173, 63, 247, 246, 38, 9, 101]) }, Event { key: EventKey([80, 41, 5, 105, 12, 81, 34, 104, 67, 225, 92, 45, 194, 87, 195, 34, 139, 141, 42, 83, 111, 177, 238, 107, 79, 72, 142, 28, 108, 126, 11, 56, 239, 243, 239, 183, 186, 224, 119, 79, 105, 92, 91, 44, 50, 98, 226, 230, 180, 43, 121, 87, 176, 220, 166, 137, 187, 107, 3, 115, 72, 220, 107, 106, 71, 167, 120, 204, 108, 64, 239, 64, 179, 245, 24, 42, 35, 252, 124, 66, 146, 227, 207, 40, 193, 5, 193, 160, 143, 242, 8]), value: EventValue([132, 105, 192]) }, Event { key: EventKey([173, 156, 150, 108, 100, 81, 101, 133, 194, 36, 60, 223, 156, 208, 160, 195, 42, 197, 5, 21, 127, 115, 38, 178, 196, 184, 175, 82, 177, 98, 29, 3, 129, 68, 92, 144, 194, 86, 46, 18, 122, 141, 212, 99, 222, 216, 50, 126, 70, 52, 212, 114, 192, 22, 127, 199, 21, 182, 74, 228, 81, 186, 61, 10, 155, 92, 170, 66, 27, 104, 36]), value: EventValue([159, 2, 48, 86, 10, 170, 150, 31, 3, 107, 51, 52, 84, 108, 76, 156, 2, 107, 50, 245, 21, 79, 77, 245, 89, 16, 249, 245, 41, 7, 221, 207, 177, 101, 200, 233, 204, 192, 226, 21, 113, 175, 132, 57, 138, 192, 30, 133, 53, 54, 155, 159, 171, 78, 29, 113, 193, 125, 14, 250, 183, 6, 101, 112, 81, 104, 211, 171, 11, 218, 229, 1, 134, 100, 123, 58, 169, 20, 26]) }, Event { key: EventKey([98, 108, 246, 127, 126, 180, 216, 55, 104, 229, 5, 100, 191, 185, 100, 225, 23, 51, 67, 157, 202, 85, 7, 245, 152, 47, 76, 31, 122, 138, 67, 175, 120, 228, 249, 213, 101, 231, 57, 246, 179, 113, 103, 171]), value: EventValue([5, 239, 238, 93, 242, 65, 246, 130, 201, 91, 174, 115, 5, 189, 151, 243, 160, 1, 61, 69, 117, 206, 52, 222, 117, 89, 172, 2, 207, 189, 5, 78, 94, 227, 247, 111, 11, 153, 138, 98, 81, 181, 195, 121, 135, 53, 219, 169, 82, 213, 146, 11, 54, 223, 197, 78, 66, 248, 171, 130, 191, 178, 132, 212, 18, 179, 146, 146, 61, 92, 190, 117, 240, 45, 232, 196, 103, 243, 92, 52, 31, 108, 203]) }, Event { key: EventKey([77, 73, 142, 94, 207, 145, 123, 164, 182, 110, 48, 158, 214, 250, 53, 145, 240, 44, 40, 165, 220, 94, 83, 110, 144, 108, 112, 164, 66, 245, 140, 186, 61, 61, 73, 144, 186, 200, 66, 136, 91, 68, 212, 17, 180, 132, 179, 209, 69, 137, 39, 6, 243, 79, 239, 221, 78, 151, 234, 216, 185, 117, 183, 207, 130, 164, 188, 157, 74, 100, 145, 173, 178, 228, 25, 216, 229, 242, 87, 173, 182, 76, 73, 72, 255, 166, 17, 190, 44, 100, 111, 17, 52, 3, 218, 1, 125, 207]), value: EventValue([]) }], receipt: 2299030254 }], inner: 4182787329 }, BatchReceipt { batch_hash: [135, 225, 95, 101, 181, 63, 171, 154, 158, 3, 53, 229, 29, 182, 19, 153, 165, 173, 223, 55, 212, 165, 180, 10, 194, 216, 229, 56, 193, 237, 188, 197], tx_receipts: [TransactionReceipt { tx_hash: [89, 178, 220, 90, 118, 70, 247, 141, 19, 133, 95, 208, 83, 62, 185, 161, 206, 70, 17, 57, 190, 105, 93, 123, 172, 54, 74, 242, 34, 127, 189, 175], body_to_save: Some([6, 145, 137, 10, 66, 154, 21, 236, 49, 233, 15, 30, 175, 17, 38, 222, 157, 16, 104]), events: [], receipt: 2119305521 }, TransactionReceipt { tx_hash: [194, 95, 174, 142, 174, 32, 229, 68, 181, 245, 2, 113, 14, 116, 69, 219, 29, 219, 58, 244, 53, 85, 4, 197, 84, 93, 51, 204, 194, 190, 37, 168], body_to_save: Some([119, 61, 1, 111, 39, 124, 5, 11, 73, 226, 111, 31, 234, 238, 29, 109, 43, 104, 100, 62, 124, 144, 204, 157, 181, 155, 117, 163, 153, 61, 122, 115, 154, 148, 232, 147, 173, 118, 99, 139, 155, 24, 159, 46, 213, 108, 161, 32, 51, 215, 111, 114, 187, 110, 77, 25, 137, 53, 173, 245, 199, 229, 143, 92, 119, 58, 139, 220, 182, 214, 171, 252, 143, 18, 200, 216, 95, 154, 151, 62, 239, 168, 60, 201, 127, 212]), events: [Event { key: EventKey([61, 252, 191, 202, 208, 229, 253, 40, 101, 137, 8, 12, 90, 204, 98, 147, 33, 171, 120, 230, 151, 9, 12]), value: EventValue([242, 14, 215, 117, 180, 156, 146, 34, 164, 226, 181, 45, 190, 170, 175, 144, 162, 106, 89, 117, 109, 209, 75, 90, 46, 128, 148, 207, 54, 43, 79, 235, 231, 141, 201, 183, 187, 52, 148, 113, 57, 95, 242, 110, 95, 65, 135, 67, 124, 220, 85, 167, 26, 46, 234, 191, 255, 181, 53, 21, 157, 215, 172, 243, 235, 68, 62, 56, 197, 110, 174, 19, 61, 58, 51, 38, 184, 35, 135, 65, 229, 165, 93]) }, Event { key: EventKey([77, 211, 39, 175, 30, 12, 248, 249, 132, 116, 12, 202, 190, 230, 103, 92, 141, 84, 29, 125, 75, 46, 119, 146, 112, 28, 128, 138, 208, 177, 95, 113, 98, 58, 38, 236, 211, 8, 195, 176, 86, 33, 140, 234, 195, 87, 17, 216, 44, 85, 107, 104, 31, 157, 26, 149]), value: EventValue([22, 59, 207, 73, 65, 231, 124, 129, 237, 37, 204, 1, 169, 100, 27, 131, 140, 218, 6, 82, 189, 6, 172, 60, 190, 115, 13, 13, 77, 118, 99, 93, 177, 226, 53, 159, 111, 110, 222, 201, 202, 238, 107, 132, 178, 146, 87, 42, 144, 164, 100, 48, 147, 195, 58, 254, 133, 112, 71, 181, 75, 27, 138, 251, 39, 39, 12, 147, 205, 197, 44, 179, 160, 226, 11, 159, 36, 228, 249, 175, 142, 14, 141, 52, 83, 149, 104, 32, 53, 45, 86, 215, 115, 196, 33, 119, 152]) }, Event { key: EventKey([77, 138, 92, 170, 199, 198, 231, 92, 87, 151, 131, 108, 224, 60, 9, 11, 177, 28, 130, 206, 89, 0, 74, 211, 68, 247, 134, 164, 14, 22, 17, 149, 245, 30, 162, 212, 136, 55, 142, 232, 243, 177, 94, 188, 75, 235, 116, 232, 97, 202, 152, 144, 148, 53, 17, 88, 167, 131, 86, 160, 70, 246, 114, 189, 49]), value: EventValue([9, 76, 187, 12, 164, 84, 10, 63, 127, 107, 124, 155, 207, 218, 132, 130, 224, 159, 221, 134, 120, 34, 203, 23, 120, 37, 51, 154, 33, 10, 24, 178, 14, 58, 191, 66, 167, 160, 251, 228, 51, 110]) }, Event { key: EventKey([225, 141, 70, 2, 70, 255, 37, 202, 219, 150, 1, 33, 97, 221]), value: EventValue([176, 125, 201, 234, 10, 134, 39, 93, 96, 163, 185, 226, 96, 23, 238, 243, 61, 122, 163, 143, 102, 21, 192, 252, 136, 102, 135, 184, 57, 78, 157, 47, 4, 20, 179, 219, 255, 135, 198, 145, 222, 12, 234, 27, 174]) }], receipt: 1384634617 }, TransactionReceipt { tx_hash: [157, 172, 245, 159, 157, 145, 162, 76, 106, 218, 45, 117, 61, 28, 110, 73, 17, 25, 92, 201, 34, 169, 135, 3, 169, 187, 10, 93, 245, 6, 108, 199], body_to_save: None, events: [Event { key: EventKey([32, 62, 34, 254, 207, 219, 50, 38, 5, 166, 66, 225, 216, 142, 25, 4, 242, 134, 133, 17, 55, 30, 107, 161, 61, 197, 225, 248, 237, 216, 118, 47, 81, 76, 168, 187, 139, 160, 212, 21, 32, 26, 90, 137, 120, 64, 81, 3, 2, 131, 225, 141, 120, 218, 95, 251, 216, 198, 31, 6, 3, 210, 218, 213, 104, 198, 245, 45, 98, 182, 51, 32, 253, 69, 1, 139, 139, 221, 26, 218, 73, 77, 25, 4, 231, 215, 173, 238, 152, 169, 247, 255, 192]), value: EventValue([216, 121, 160, 189, 211, 130, 72, 181, 88, 58, 99, 192, 233, 55, 108, 25, 148, 98, 229, 217, 61, 115, 189, 139, 252, 133, 56, 212, 108, 80, 118, 133, 40, 239, 250, 115, 164, 232, 141, 42, 181, 196, 139, 109, 164, 182, 228, 8, 178, 230, 208, 10, 152, 32, 148, 47, 143, 205, 19, 50, 125, 242, 210, 88, 107, 10, 246]) }, Event { key: EventKey([114, 150, 201, 94, 104, 36, 111, 28, 14, 112, 44, 201, 196, 225, 4, 121, 21, 40, 222, 193, 4, 167, 74, 238, 249, 93, 20, 150, 37, 109]), value: EventValue([36, 11, 244, 216, 89, 114, 234, 213, 207, 34, 5, 161, 63, 77, 67, 61, 127, 84, 82, 228, 19, 149, 227, 212, 96, 155, 29, 23, 149, 52, 51, 253, 89, 135, 7, 238, 76, 162, 192, 51, 110, 228, 65, 129, 67, 123, 13, 92, 119, 70, 77, 180, 77, 75, 200, 250, 88, 255, 229, 71, 67]) }, Event { key: EventKey([114, 186, 145, 240, 244, 56, 66, 179, 136, 75, 76, 252, 65, 99, 242, 11, 162, 175, 43, 186, 154, 202, 214, 8, 244, 190, 3, 207, 172, 239, 238, 115, 255, 188, 98, 87, 123, 105, 242, 87, 32, 0, 208, 30, 220, 33, 218, 16, 242, 39, 171, 9, 159, 162, 146, 111, 208, 162, 240, 3, 193, 96, 32, 244, 75, 163, 222, 77, 93, 19, 71, 208, 168, 245, 124, 147, 108, 82, 150, 93, 185, 13, 163, 121, 40, 57, 134, 190, 213, 229]), value: EventValue([13, 73, 168, 54, 105, 63, 132, 255, 7, 216, 98, 190, 30, 184, 212, 131, 0, 3, 48, 106, 174, 59, 94, 86, 8, 96, 110, 108, 52, 31, 20, 111, 153, 63, 47, 75, 172, 185, 100, 51, 34, 138, 110, 110, 248, 196, 86, 19, 154, 0, 169, 21, 132, 128, 119, 13, 70, 220, 100, 215, 32, 212, 158, 193, 143, 243, 9, 115, 189, 22, 239, 180, 43, 21, 18, 28, 154, 31, 199, 55, 7, 182, 250, 79, 165, 45, 22, 214, 78, 106, 115, 94, 39, 68, 110, 162, 237, 46]) }, Event { key: EventKey([80, 223, 97, 220, 45, 75, 103, 4, 1, 125, 119, 28, 140, 252, 75, 238, 251, 181, 31, 178, 151, 231, 179, 107, 139, 111, 29, 19, 28, 91, 78, 193, 71, 14, 187, 112, 27, 71, 147, 58, 175, 124, 26, 161, 144, 198, 93, 100, 200, 152, 81]), value: EventValue([176, 141, 143, 60, 0, 193, 142, 36, 8, 20, 233, 162, 0, 38, 58, 89, 2, 53, 195, 189, 79, 143, 0, 4, 159, 196, 18, 2, 117, 235, 106, 3, 181, 148, 238, 242, 205, 231, 149, 156, 27, 52, 162, 161, 5, 179, 249, 94, 136, 72, 94, 228, 21, 230, 163, 59, 247, 3, 40, 3, 123]) }, Event { key: EventKey([125, 188, 201, 207, 213, 187, 240, 121, 172, 11, 27, 88, 241, 163, 52, 219, 171, 102, 2, 33, 175, 25, 111, 67, 117, 221, 50, 236, 203, 161, 179, 61, 171, 0, 133, 9, 64, 234, 239, 217, 1, 231, 160, 223, 109, 217, 186, 6, 2, 94, 156, 59, 27, 168, 181, 99, 80, 70, 24, 99, 54]), value: EventValue([238, 252, 214, 139, 167, 190, 179, 227, 158, 119]) }, Event { key: EventKey([240, 140, 82, 225, 130, 252, 235, 199, 114, 95, 174, 135, 107, 179, 241, 133, 51, 237, 196, 43, 212, 241, 147, 214, 148, 187, 4, 236, 14, 63, 47, 170, 137, 50, 13, 1, 105, 196, 63, 218, 252, 169, 62, 202, 77, 137, 135, 165, 68, 166, 140, 217, 15, 2, 248, 157, 53, 199, 215, 92, 231, 212, 72, 199, 112, 142, 230, 138, 98, 46, 31, 102, 72, 219, 163, 5, 185, 162, 127, 156, 136, 140, 118, 189, 206, 144, 114, 153, 190, 173, 71, 200, 49, 26]), value: EventValue([202, 204, 99, 68, 136, 224, 46, 237, 12, 198, 44, 51]) }, Event { key: EventKey([52, 183, 182, 65, 1, 251, 41, 92, 184, 156, 177, 158, 167, 246, 249, 214, 171, 193, 195, 91, 83, 227, 123, 210, 100, 247, 247, 15, 64, 168, 119, 133, 80, 66, 68, 232, 132, 194, 248, 104, 164, 205, 165, 5, 29, 6, 204, 48, 169, 2]), value: EventValue([187, 115, 193, 150, 175, 212, 142, 113, 28, 219, 62, 132, 60, 72, 65, 76, 83, 188, 102, 37, 76, 81, 169, 106, 33, 135, 142, 152, 148, 2, 209, 212, 231, 48, 135, 32, 110, 80, 96, 130, 78, 238, 102, 167, 34, 250, 138, 107, 219, 176, 215, 144, 81, 221, 76, 89, 7, 166, 66, 166, 155, 224, 100, 61, 144, 61, 191, 19, 188, 89, 165, 145, 18, 252, 159, 6, 65, 227, 69, 20, 64, 4, 118, 126, 198, 227, 26, 151, 215, 136, 162, 222, 107, 188, 117, 125, 5, 117]) }, Event { key: EventKey([130, 54, 17, 85, 159, 151, 24, 69, 38, 174, 85, 13, 136, 244, 238, 194, 158, 4, 105, 67, 165, 249, 76, 76, 144, 162, 111, 175, 26, 199, 183, 99, 199, 232, 214, 52, 139, 99, 187, 100, 156, 214, 14, 150, 168, 66, 153, 128, 236, 48, 242, 205, 65, 156, 82, 78, 51, 156, 157, 125, 44, 184, 178, 39, 99, 255, 217, 19, 80, 251, 106, 157, 133, 186, 250, 87, 81, 35, 223, 97, 29, 4, 159, 229, 55, 14, 156, 154, 40, 105, 216, 68]), value: EventValue([38, 119, 114, 196, 164, 58, 152, 14, 153, 253, 55, 101, 1, 215, 13, 43, 104, 1, 73, 101, 146, 79, 85, 159, 90, 193, 232, 118, 255, 12, 164, 79, 3, 75, 115, 98, 122, 59, 119, 238, 213, 252, 239, 79, 35, 190, 14, 122]) }, Event { key: EventKey([175, 159, 28, 147, 171, 116, 110, 106, 106, 177, 234, 71, 96, 239, 183, 217, 12, 209, 189, 154, 12, 51, 183, 139, 196, 92, 35, 36, 23, 53, 230, 108, 140, 66, 33, 170, 141, 83, 74, 157, 99, 104, 244, 3, 237, 185, 163, 197, 109, 191, 76, 195, 112, 236, 123, 15, 209, 162, 140, 239, 1, 27, 90, 165, 54, 162, 223, 206, 192, 250, 248, 196, 114, 186, 31, 19, 70, 145, 192, 213, 118, 72]), value: EventValue([108, 138, 85]) }], receipt: 807127342 }, TransactionReceipt { tx_hash: [204, 114, 194, 144, 131, 167, 33, 14, 35, 176, 53, 102, 228, 29, 152, 100, 65, 64, 169, 48, 175, 114, 109, 136, 165, 219, 222, 170, 196, 49, 238, 230], body_to_save: Some([74, 189, 207, 59, 93, 74, 189, 55, 230, 234, 29, 113, 12, 215, 227, 55, 5, 156, 239, 175, 142, 121, 223, 235, 203, 64, 49, 80, 241, 179, 67, 207, 34, 117, 212, 31, 255, 108, 223, 109, 166, 254, 117, 180, 65, 95, 75, 146, 41, 137, 171, 214, 153, 182, 127, 219, 145, 150, 123, 118, 105, 232, 175, 7, 147, 55, 18, 107, 65, 180, 170, 35, 43, 77, 224, 197, 179, 255, 123, 172, 79]), events: [Event { key: EventKey([155, 35, 100, 155, 128, 195, 225, 199, 84, 102, 60, 197, 240, 226, 232, 209, 201, 10, 215, 67, 138, 13, 192, 226, 4, 235, 219, 152, 144, 141, 13, 68, 124, 100, 149, 198, 176, 129, 231, 213, 73, 11, 234, 101, 238, 6, 139, 141, 168, 129, 253, 117, 121, 235, 163, 165, 247, 96, 10, 59, 8, 244]), value: EventValue([]) }, Event { key: EventKey([217, 189, 227, 190, 135, 69, 20, 138, 205, 76, 70, 152, 219, 46, 144, 238, 131, 212, 251, 176, 72, 64, 176, 116, 120, 112, 118, 176, 121, 106, 226, 126, 200, 62, 76, 69, 247, 141, 138, 7, 126, 13, 219, 55, 21, 160, 249, 116, 133, 236, 97, 192, 202, 190, 163, 179, 238, 16, 12, 190, 248, 12, 0, 45, 249, 224, 160, 145, 214, 232, 96, 16, 95, 114, 86, 127, 159, 250, 68, 110, 53, 179, 206]), value: EventValue([26, 86, 252, 49, 199, 92, 222, 32, 222, 97, 18, 46, 151, 170, 18, 31, 206, 18, 121, 191, 124, 72, 204, 165, 3, 103, 29, 228, 116, 14, 249, 40, 175, 211, 28, 91, 27, 82, 242, 94, 123, 114, 164, 174, 87, 152, 44, 232, 173, 100, 112, 94, 68, 153, 227, 210, 160, 54, 195, 82, 233, 18, 239]) }, Event { key: EventKey([82, 111, 235, 231, 228, 209, 200, 44, 85, 73, 65, 107, 57, 85, 86, 182, 111, 166, 145, 121, 104, 243, 141, 225, 59, 158, 204, 194, 97, 4, 61, 162, 42, 134, 33, 63, 21, 25, 168, 112]), value: EventValue([103, 243, 220, 243, 169, 0, 101, 20, 192, 204, 171, 37, 232]) }, Event { key: EventKey([153, 136, 2, 153, 198]), value: EventValue([253, 150, 250, 225, 227, 128, 230, 203, 127, 91, 201, 152, 97, 194, 218, 33, 88, 8, 249, 2, 243, 163, 139, 15, 11, 16, 83, 80, 110, 240, 51, 49, 236, 149, 6, 91, 48, 49, 14, 87, 95, 18, 139, 80, 147, 148, 139, 150, 249]) }], receipt: 1164806824 }], inner: 745025527 }, BatchReceipt { batch_hash: [219, 39, 134, 57, 212, 109, 46, 191, 100, 157, 92, 191, 36, 140, 44, 112, 34, 186, 170, 27, 115, 22, 65, 231, 144, 66, 21, 144, 79, 40, 74, 149], tx_receipts: [TransactionReceipt { tx_hash: [52, 45, 66, 61, 220, 206, 180, 129, 57, 190, 69, 48, 171, 75, 159, 48, 119, 230, 242, 198, 3, 109, 80, 179, 70, 121, 195, 89, 177, 194, 29, 102], body_to_save: None, events: [Event { key: EventKey([53, 213, 194, 124, 250, 44, 180, 173, 80, 113, 43, 83, 243, 68, 62, 235, 38, 83, 247, 30, 57, 54, 32, 33]), value: EventValue([255, 70, 115, 95, 11, 208, 119, 60, 166, 72, 117, 4, 182, 169, 60, 68, 247, 229, 167, 233, 184, 255, 149, 58, 194, 250, 185, 119, 208, 40, 201, 162, 240, 200, 9, 178, 81, 42, 50, 254, 210, 248, 188, 46, 204, 89, 123, 138, 181, 131, 98, 108, 6, 175, 5, 229, 63, 168, 122, 30, 155, 98, 15, 225, 42, 254, 130, 78, 18, 49, 75, 154, 139, 184, 186, 48, 52, 175, 3, 42, 107, 122, 36, 78, 219]) }, Event { key: EventKey([62, 131, 130, 37, 153, 195, 76, 234, 80, 178, 2, 172, 173, 109, 30, 212, 9, 209, 58, 60, 123, 26, 36, 77, 207, 198, 250, 141, 170, 66, 73, 38, 196, 212, 73, 15, 159, 166, 184, 38, 250, 184, 178, 19, 61, 192, 48, 31, 178, 39, 76, 185, 76, 0, 81, 50, 182, 105, 187, 249]), value: EventValue([246, 182, 234, 77, 75, 8, 158, 176, 31, 250, 206, 225, 251, 93, 196, 70, 129, 58, 255, 187, 78, 139, 193, 187, 33, 235, 23, 248]) }, Event { key: EventKey([119, 127, 150, 141, 244, 26, 73, 50, 200, 110, 108]), value: EventValue([233, 106, 16, 194, 71, 230, 212, 194, 53, 194, 178, 112, 71, 120, 95, 153, 51, 101, 209, 198, 201, 227, 195, 163, 143, 94, 208, 123, 163, 20, 246, 4, 74, 80, 188, 224, 118, 39, 34, 207, 218, 183, 60, 184, 243, 3, 143, 54, 12, 104, 148, 71, 221, 88, 84, 240, 140, 175, 221, 86, 16, 151, 204, 152, 243, 98, 195, 240, 187, 126, 12, 117, 49, 185, 22, 65, 200, 75]) }, Event { key: EventKey([98, 3, 85, 249, 118, 42, 140, 148, 13, 7, 141, 67, 127, 112, 190, 203, 30, 213, 163, 140, 47, 24, 25, 189, 62, 132, 89, 54, 230, 108, 24, 128, 36, 39, 157, 231, 131, 47, 108, 86, 145, 219, 91, 178, 255, 81, 214, 193, 80, 192, 84, 54, 117, 157, 184, 229, 14, 196, 24, 45, 186, 96, 133, 182, 164, 112]), value: EventValue([9, 41, 144, 226, 148, 157, 78, 177, 96, 141, 16, 35, 60, 57, 166, 87, 7, 36, 16, 197, 247, 48, 159, 45, 0, 5, 177, 5, 186, 108, 13, 213, 169, 67, 162, 117, 91, 144, 133, 100, 117, 213]) }], receipt: 959630543 }, TransactionReceipt { tx_hash: [246, 38, 131, 13, 155, 171, 138, 123, 19, 155, 231, 114, 109, 6, 210, 33, 24, 24, 179, 27, 36, 207, 220, 238, 53, 28, 12, 86, 103, 202, 105, 212], body_to_save: None, events: [Event { key: EventKey([175, 237, 89, 101, 66, 248, 45, 218, 221, 89, 213, 234, 254]), value: EventValue([14, 177, 89, 128, 187, 232, 249, 154, 142, 253, 27, 191, 35, 237, 6, 16, 209, 177, 148, 168, 81, 21, 93, 52, 169, 183, 29, 244, 79, 57, 220, 140, 193, 20, 169, 90, 80, 136, 9, 201, 245, 82, 2, 93, 103, 2, 189, 7, 246, 104, 69, 87, 187, 2, 124, 26, 161, 114, 9, 78, 100, 231, 178, 35, 245, 54, 3, 168]) }, Event { key: EventKey([150, 217, 57, 95, 57, 8, 142, 255, 67, 18, 151, 112, 195, 32]), value: EventValue([81, 88, 33, 100, 185, 87, 144, 110, 215, 67, 17, 228]) }, Event { key: EventKey([215, 110, 163, 150, 97, 99, 138, 75, 1, 50, 91, 46, 128, 126, 187, 200, 158, 171, 118, 31, 77, 61, 219, 91, 116, 46, 137, 209, 180, 251, 36, 66, 32, 17]), value: EventValue([183, 203, 241, 12, 60, 11, 63, 177, 223, 255, 122, 208, 76, 188, 238, 233, 72, 71, 18, 76, 141, 254, 77, 41, 252, 151, 209, 21, 87, 83, 182, 84, 254, 168, 87, 170, 128, 92, 59, 182, 161, 251, 211, 74, 189, 55, 49, 212, 140, 72, 104, 16, 35, 148, 248, 1, 36, 110]) }, Event { key: EventKey([156, 199, 107, 27, 104, 18, 126, 77, 17, 231, 185, 219, 221, 5, 140, 67, 0, 134, 207, 201, 53, 240, 60, 6, 149, 226, 189, 134, 173, 157, 20, 55, 37, 77, 182, 43, 231, 209, 126, 195, 29, 215, 24, 218, 237, 180, 141, 177, 39, 173, 224, 90, 248, 212, 111]), value: EventValue([169, 97, 96, 86, 28, 78, 59, 82, 188, 108, 33, 120, 114, 232, 219, 59, 182, 245, 13, 91, 123, 202, 117, 25, 31, 131, 184, 206, 230, 154, 54, 215, 133, 6, 28, 58, 114, 127, 109, 60, 18, 11, 43, 218, 54, 232, 205, 213, 38, 238, 16, 81, 233, 125, 10, 182, 188, 220, 6, 213, 142, 171, 87, 243, 81, 2, 67, 88, 235, 17]) }, Event { key: EventKey([245, 115, 135, 73, 221, 167, 5, 138, 36, 138, 211, 176, 222, 185, 188, 228, 240, 169, 117, 238, 212, 8, 81, 184, 209, 63, 88, 136, 103, 101, 209, 220, 144, 131, 251, 219, 172, 113, 23, 89, 178, 194, 209, 121, 77, 18, 13, 4, 236, 238, 108, 9, 156, 27, 228]), value: EventValue([14, 184, 15, 44, 195, 183, 151, 10, 141, 8, 96, 243, 134, 159, 51, 23, 76]) }, Event { key: EventKey([222, 9, 253, 9, 206, 228, 126, 223, 149, 90, 83, 159, 200, 202, 32, 33, 153, 42, 53, 141, 255, 250, 70, 75, 213, 141, 244, 252, 86, 10, 218, 196, 79, 56, 117, 152, 82, 129, 81, 122, 251, 67, 188, 70, 255, 91, 249, 8, 187, 231, 34, 119, 96, 198, 138, 127, 99, 150, 75, 198, 161, 130, 199, 49]), value: EventValue([90, 122, 74, 141, 206, 14, 35, 130, 101, 146, 214, 246, 53, 147, 100, 181, 160, 215, 152, 245, 48, 146, 70, 164, 82, 221, 117, 177, 167, 189, 232, 255, 10, 143, 199, 242]) }, Event { key: EventKey([217, 99, 186, 87, 57, 234, 143, 11, 203, 96, 19, 170, 68, 151, 14, 197, 138, 55, 11, 193, 234, 251, 236, 189, 124, 187, 53, 211, 130, 221, 63, 86, 91, 188, 243, 248, 11, 144, 185, 3, 4, 133, 211, 102, 108, 15, 223, 73, 25, 251, 254]), value: EventValue([198, 134, 185, 163, 1, 201, 81, 74, 219, 11, 35, 47, 103, 135, 172, 188, 131, 99, 121, 62, 48, 215, 6, 168, 196, 188, 121, 137, 31, 19, 99, 221, 178, 8, 191, 86, 16, 128, 181, 31, 163, 204, 139, 177, 122, 138, 146, 86, 160, 134, 130, 34, 155, 206, 70, 118, 249, 12, 42, 83, 176, 231, 71, 51, 128, 101, 112, 15, 92, 240, 184, 136, 168, 141, 5, 161, 163, 173, 33, 86, 181, 234, 21, 88, 44, 146, 107, 32, 130, 198, 106, 50]) }, Event { key: EventKey([221, 148, 29, 255, 88, 61, 213, 213, 46, 175, 38, 129, 58, 143, 101, 223, 136, 240, 154, 236, 162, 177, 230, 200, 56, 81, 160, 83, 88, 105, 40, 191, 69, 35, 28, 202, 139, 85, 238, 229, 31, 69, 4, 232, 179, 59, 252, 16, 243, 14, 226, 228, 2, 238, 246, 209, 246, 3, 49, 11, 83, 58, 13, 142, 254]), value: EventValue([222, 100, 148, 97, 247, 25, 90, 240, 73, 69, 201, 67, 53, 78, 152, 192, 38, 64, 161, 113, 169, 172, 6]) }, Event { key: EventKey([210, 210, 118, 17, 65, 215, 157, 217, 138, 94, 127, 196, 73, 67, 198, 122, 112, 243, 70, 167, 133, 181, 132, 134, 241, 250, 183, 58, 34, 103, 183, 3, 38, 157, 151, 165, 234, 241, 156, 99, 110, 65, 65, 196, 53, 109]), value: EventValue([196, 85, 150, 240, 107, 217, 116, 100, 137, 138, 249, 187, 247, 40, 243, 255, 60, 57, 111, 172, 6, 162, 5, 188, 155, 30, 117, 180, 229, 192, 22, 46, 175, 164, 167, 158, 82, 131, 170, 48, 1, 26, 66, 50, 225, 111, 84, 139, 17, 139, 37, 162, 64, 92, 139, 173, 194, 209, 14, 48, 50, 149, 44, 106, 27, 182, 79, 146, 118, 176, 234, 11, 15, 84, 121, 79, 16, 27, 30, 227, 144, 118, 67]) }], receipt: 1610962314 }, TransactionReceipt { tx_hash: [96, 136, 167, 136, 181, 154, 12, 161, 4, 218, 64, 72, 1, 23, 227, 119, 99, 71, 226, 124, 208, 7, 153, 88, 51, 148, 109, 36, 22, 85, 117, 53], body_to_save: Some([62, 157, 217, 2, 109, 237, 9, 69, 2, 41, 86, 212, 250, 60, 89, 189, 3, 93, 128, 160, 66, 153, 224, 147, 126, 83, 13, 80, 169, 216, 112, 144, 64, 51, 81, 241, 205, 189, 198, 87, 42, 246, 164, 132, 71, 80, 132, 234, 89, 64, 34, 247, 181, 193, 185, 159, 130, 216, 252, 85, 73, 158, 38, 24, 14, 143, 252, 11, 237, 103, 217, 240, 56, 142, 107, 57, 157, 27, 34, 13, 60, 144, 135, 107, 228, 147, 137, 122, 30, 112, 136, 47]), events: [Event { key: EventKey([189, 107, 23, 206, 160, 160, 105, 101, 161, 42, 230, 141, 42, 220, 4, 111, 226, 216, 147, 125, 171, 34, 56, 163, 170, 36, 165, 107, 240, 104, 187, 135, 144, 131, 182, 161]), value: EventValue([170, 108, 52, 52, 181, 207, 84, 151, 20, 161, 164, 181, 151, 95, 139, 12, 17, 183, 133, 167, 6, 52, 107]) }, Event { key: EventKey([204]), value: EventValue([22, 124, 27, 49]) }], receipt: 2235678664 }], inner: 3762805006 }, BatchReceipt { batch_hash: [96, 49, 147, 81, 47, 221, 169, 178, 123, 41, 4, 36, 183, 92, 15, 36, 40, 46, 252, 196, 91, 121, 219, 153, 192, 123, 74, 22, 134, 33, 36, 215], tx_receipts: [TransactionReceipt { tx_hash: [0, 185, 208, 132, 56, 64, 168, 96, 55, 208, 59, 176, 108, 1, 212, 54, 168, 157, 116, 136, 19, 236, 94, 32, 92, 180, 28, 171, 69, 63, 40, 21], body_to_save: None, events: [Event { key: EventKey([16, 171, 183, 22, 18, 20, 179, 215, 89, 71, 102, 124, 78, 58, 184, 207, 25, 30, 28, 241, 90, 71, 252, 2, 188, 39, 165, 227, 179, 235, 68, 78, 205, 221, 66, 206, 225, 44, 62, 72, 107, 143, 205, 136, 232, 212, 45, 126, 12, 178, 186, 254, 71, 194, 21, 21, 165, 89, 182, 17, 29, 120, 224, 229, 180, 132, 22, 236, 112, 110, 28, 49, 160, 82, 238, 100, 192]), value: EventValue([199, 129, 28, 97, 221, 238, 75, 145, 204, 237, 225, 139, 148, 182, 244, 42, 241, 109, 72, 85, 182, 73, 202, 4, 38, 186, 232, 25, 246, 22, 2, 96, 4, 166, 133, 64, 119, 49, 58, 204, 122, 103, 188, 115, 55, 68, 151, 83, 62, 236, 107, 168, 70, 70, 132, 33, 151, 74, 105, 66, 174, 55, 163, 161, 254, 226, 56, 21, 2, 154, 45, 67, 30, 211, 125, 209, 55, 125, 166, 0, 21]) }, Event { key: EventKey([239, 213, 253, 0, 56, 47, 112, 217, 182, 158, 121, 11, 152, 173, 91, 112, 114, 123, 2, 7, 67, 55, 141, 189, 172, 90, 74, 87, 190, 82, 38, 11, 95, 85, 163, 198, 60, 136, 37, 81, 145, 19, 82, 132, 124, 143, 39, 174, 137, 121, 16, 48, 45, 133, 30, 218, 52, 84, 150, 95, 16, 55, 98, 177, 231, 228, 235, 92, 81, 241, 69, 148, 32, 227, 161, 233, 243, 208, 140, 99, 15, 34]), value: EventValue([112, 132, 131, 129, 229, 134, 238, 14, 43, 247, 199, 187, 136, 140, 57, 132, 39, 13]) }, Event { key: EventKey([217, 246, 123]), value: EventValue([66, 8, 237, 73, 176, 223, 158, 219, 100, 99, 191, 149, 182, 92, 194, 80, 82, 228, 125, 132, 12, 179]) }, Event { key: EventKey([86, 48, 67, 137, 8, 103, 58, 173, 14, 175, 253, 250, 100, 128, 169, 221, 82, 199, 231, 183, 30, 214, 70, 131, 188, 186, 167, 110, 255, 124, 172, 186, 145, 51, 102, 9, 158, 161, 8, 180, 92, 251, 205, 151, 202, 72, 111, 222, 7, 156, 4, 1, 56, 123, 102, 20, 213, 115, 249, 242, 92, 162, 67, 243, 176, 71, 89, 205, 114, 135, 253, 210, 65, 245, 244, 116, 201, 253, 38, 37, 121, 7, 196, 105, 103, 155]), value: EventValue([171, 153, 1, 148, 30, 143, 175, 21, 59, 247, 238, 112, 85, 98, 247, 139, 163, 229, 180, 214, 191, 111, 52, 153, 37, 66, 160, 178, 61, 167, 93, 209, 158, 233, 49, 74, 18, 73, 206, 161, 35, 124, 117, 82, 140, 148, 163, 182, 109, 207, 83, 214, 115, 238, 110, 154, 233, 88, 47, 167, 114, 124, 119, 105, 1, 176, 239, 32, 59, 154, 37, 193, 113, 63, 74, 161, 108, 170, 251, 203, 2, 201, 158, 45, 215, 59, 166, 72, 181]) }, Event { key: EventKey([209, 153, 143, 0, 95, 198, 244, 83, 222, 114, 245, 243, 130, 125, 99, 145, 220, 176, 104, 107, 64, 216, 216, 23, 31, 225, 156, 91, 114, 61, 189, 252, 112, 150, 101, 240, 190, 113, 109, 122, 158, 204, 52, 241, 253, 207, 178, 250, 110, 196, 128, 57, 126, 99, 191, 96, 118, 24, 184, 173, 5, 16]), value: EventValue([56, 226, 40, 248, 37, 125, 0, 151, 233, 132, 216, 69, 148, 251, 142, 149, 241, 231, 40, 128, 100, 196, 78, 57, 134, 200, 26, 115, 23, 22, 126, 232, 241, 206, 135, 96, 103, 160, 242, 37, 14, 240, 19, 33, 250, 156, 71, 109, 124, 243, 4, 217, 141, 156, 16, 206, 5, 242, 162, 80, 54, 231, 251, 158, 152, 27, 18, 13, 135, 67, 219, 196, 11, 160, 244, 178, 92, 183, 143, 26, 83, 172, 5, 197, 5, 148]) }, Event { key: EventKey([112, 92, 187, 18, 34, 108, 18, 8, 121, 200, 48, 6, 201, 2, 89, 142, 217, 28, 177, 177, 217, 98, 38, 72, 112, 24, 41, 76, 161, 17, 75, 66, 79, 67, 147, 89, 180, 228, 238, 16, 148, 186, 211, 5, 108, 181, 246, 212, 89, 63, 22, 7, 245, 92, 152, 228, 189, 112, 155, 112, 100, 103, 203, 47, 132, 193, 43, 178, 169, 89, 240, 51, 134, 27, 235, 120, 40, 77, 59, 107, 179, 226, 138, 139, 13, 64, 36, 9, 210, 253, 16, 166, 182, 47, 23]), value: EventValue([159, 161, 192, 130, 113, 71, 161, 83, 112, 44, 96, 128, 144, 70, 40, 86, 56]) }, Event { key: EventKey([141, 183, 18, 114, 121, 173, 219, 104, 174, 194, 43, 134, 226, 26, 174, 190, 221, 6, 181, 12, 209, 86, 228, 39, 36, 236, 119, 210, 187, 143, 147, 206, 68, 171, 76, 159, 119, 64, 139, 228, 224, 193, 28, 224, 135, 84, 126, 61, 92, 201, 73, 91, 91, 211, 83, 19, 198, 235, 98, 111, 15, 250, 251, 67, 198, 84, 8, 14, 192, 25, 96, 48, 95, 161, 62, 133, 148, 11, 84, 204, 230, 202, 82, 163, 112, 168, 181, 74, 27, 128, 124, 74, 163, 244, 92, 101, 218, 226]), value: EventValue([111, 231, 65, 84, 153, 183, 157, 201, 244, 23, 153, 39, 184, 151, 240, 187, 211, 7, 2, 5, 208, 65, 220, 244, 65, 85, 31, 248, 148, 228, 1, 39, 123, 204, 25, 112, 18, 208, 0, 35, 202, 52, 200, 21, 224, 176, 119, 8, 235, 232, 164, 141, 218, 78, 248, 130, 87, 193, 171, 136, 61, 74, 228, 50, 238, 248, 10]) }, Event { key: EventKey([98, 47, 35, 124, 14, 88, 140, 242, 54, 21, 123, 61, 49, 165, 100, 164, 149, 104, 8, 189, 105, 49, 210, 55, 135, 142, 248, 182, 103, 38, 145, 210, 165, 115, 114, 218, 66, 54, 229, 36, 229, 149, 156, 33, 241, 189, 158, 177, 183, 60, 83, 213, 197, 10, 148, 189, 55, 121, 160, 135, 213, 116, 187, 102, 137, 180, 33, 3, 5, 84, 147, 133, 134, 55, 36, 191]), value: EventValue([63, 167, 65, 64, 11, 231, 21, 83, 236, 84, 112, 68, 173, 78, 3, 16, 89, 97, 231, 180, 186, 120, 81, 28, 79, 179, 204, 78, 65, 216, 247, 127, 171, 207, 192, 193, 66, 240, 80, 89, 58, 190, 193, 181, 194, 53, 31, 1, 169, 204, 29, 204, 101, 233, 236, 188, 113, 88, 36, 128, 27, 62, 198, 7, 149, 212, 227, 214, 254, 107, 47, 205, 222, 74, 180, 162, 87, 191, 90, 180, 155, 230, 250, 183, 113]) }], receipt: 2373563341 }, TransactionReceipt { tx_hash: [77, 45, 65, 25, 168, 158, 211, 121, 178, 26, 213, 71, 155, 204, 91, 201, 105, 6, 203, 96, 179, 3, 103, 130, 119, 77, 50, 250, 105, 93, 19, 54], body_to_save: None, events: [Event { key: EventKey([67, 101, 228, 139, 43, 150, 84, 5, 81, 222, 142]), value: EventValue([9, 80, 159, 188, 234, 215, 232, 252, 56, 27, 219, 157, 91, 0, 30, 182, 44, 193, 124, 135, 34, 22, 137, 78, 135, 74, 246, 14, 199, 189, 234, 130, 58, 129, 16, 183, 146, 188, 141, 137, 220, 203, 60, 139, 75, 255, 164, 73, 177, 38, 132, 221, 5, 197, 203, 125, 252, 196]) }, Event { key: EventKey([233, 23, 153, 121, 138, 185, 38, 30, 120, 183, 92, 189, 28, 82, 88, 170, 105, 184, 113, 177, 6, 44, 243, 22, 183, 232, 27, 90, 51, 65, 34, 240, 135, 16, 237, 46]), value: EventValue([249, 58, 113, 186]) }, Event { key: EventKey([70, 75]), value: EventValue([252, 44, 234, 195, 57, 122, 132, 132, 210, 119, 30, 163, 25, 128, 190, 86, 108, 100, 82, 182, 115, 199, 146, 184, 81, 253, 29, 191, 164, 25, 58, 49, 29, 5, 211, 235, 255, 15, 65, 51, 175, 35, 226, 230, 112, 201, 99, 164, 130, 31, 79, 30, 53, 172, 65, 181, 181, 219, 87, 76, 158, 122, 68, 94, 253, 243, 88, 15, 199, 69, 96, 51, 121, 7, 31, 136, 5, 143, 159, 209, 232, 136, 120, 180, 23, 227, 215, 224, 147, 8, 121, 60, 63, 95, 207, 37, 95]) }, Event { key: EventKey([243, 218, 205, 139, 103, 159, 181, 147, 251, 38, 152, 130, 95, 164, 151, 90, 65, 83, 219, 162, 114, 78, 41, 150, 223, 233, 230, 246, 124, 3, 85, 56, 9, 55, 85, 89, 203, 253, 249, 40, 150, 198, 161, 173, 16, 64, 2, 75, 101, 239, 51, 158, 122]), value: EventValue([130, 132, 187, 232, 23, 19, 28, 49, 130, 159, 13, 11, 124, 135, 11, 242, 18, 103, 146, 40, 135, 9, 185, 153, 15, 222, 137, 97, 35, 195, 245, 60, 132, 48, 99, 207, 192, 52, 121, 14]) }, Event { key: EventKey([232, 19, 231, 134, 94, 122, 97, 226, 232, 93, 196, 185, 172, 106, 3, 49, 30, 244, 220, 37, 58, 23, 111, 210, 203, 82, 25, 154, 40, 89, 131, 138, 141, 200, 246, 78, 26, 165, 186, 185, 127, 57, 34, 149, 91, 138, 0, 42, 148, 118, 110]), value: EventValue([255, 189, 89, 150, 216, 123, 67, 53, 175, 142, 105, 126, 197, 88, 9, 121, 253, 28, 255, 248, 226, 164, 14]) }, Event { key: EventKey([110, 151, 19, 59, 157, 11, 33, 107, 123, 152, 105, 208, 38, 161, 234, 228, 245, 253, 239, 152, 241, 143, 202, 240, 193, 43, 131, 7, 141, 132, 81]), value: EventValue([222, 51, 27, 251, 105, 1, 211, 152, 187, 129, 200, 79, 234, 85, 158, 1, 11, 103, 245, 85, 125, 1, 60, 25, 163, 242, 210, 173, 247, 114, 254, 250, 207, 92, 210, 231, 133, 108, 180, 252, 114, 220]) }, Event { key: EventKey([86, 223, 186, 133, 80, 218, 163, 82, 140, 80, 74, 7, 131, 21, 118, 39, 231, 119, 238, 141, 221, 201, 175, 144, 63, 114, 52, 194, 132, 158, 202, 54, 250, 67, 7, 145, 54, 5, 164, 14, 209, 251, 224, 89, 49, 242, 96, 173, 26, 223, 165, 199, 227, 243, 236, 204, 113, 20, 96, 80, 165, 154, 102, 93, 123, 145, 88, 236, 134, 200, 110, 220, 184, 31, 6, 2, 34, 32, 220, 139, 217, 54, 65, 4, 75, 96, 108]), value: EventValue([254, 136, 245, 147, 88, 247, 211, 16, 25, 89, 169, 120, 175, 33, 110, 44, 11, 36, 194, 230, 249, 67, 173, 127, 74, 138]) }, Event { key: EventKey([50, 110, 29, 45, 215, 17, 215, 153, 15, 90, 16, 136, 50, 86, 30, 249, 141, 132, 221, 167, 26, 194, 136, 9, 179, 176, 0, 242, 141, 226, 171, 57, 65, 34, 147, 25, 41, 142, 83, 177]), value: EventValue([234, 46, 15, 149, 70, 48, 46, 207, 51, 67, 189, 5, 31, 105, 53, 105, 200, 48, 165, 227, 247, 46, 254, 36, 98, 104, 252, 212, 226, 246, 204, 181, 161, 228, 89, 133, 219, 89, 3, 120, 125, 174, 168, 172, 193, 108, 76, 113, 249]) }, Event { key: EventKey([207, 28, 209, 156, 222, 45]), value: EventValue([251, 117, 138, 180]) }], receipt: 3127065025 }, TransactionReceipt { tx_hash: [93, 62, 86, 242, 54, 19, 211, 100, 14, 135, 151, 217, 83, 74, 198, 137, 193, 170, 117, 77, 201, 96, 113, 191, 119, 30, 21, 251, 248, 15, 187, 186], body_to_save: None, events: [Event { key: EventKey([230, 184, 134, 145, 195, 225, 208, 119, 18, 22, 182, 245, 252, 1, 46, 11, 36, 56, 53, 21, 196, 217, 225, 203, 35, 218, 85, 96, 77, 142, 232, 21, 207, 205, 110, 1, 158, 24, 34, 6, 217, 238, 167, 88, 10, 92, 34, 220, 1, 18, 240, 40, 208, 143, 155, 117, 188, 212, 237, 0, 173, 44, 229, 20, 240, 66, 71, 21, 212, 69, 56, 127, 200, 147, 143, 89, 66, 82, 56, 39, 19, 202, 106, 162, 229]), value: EventValue([249, 70, 243, 122, 189, 40, 61, 214, 67, 208, 75, 223, 1, 34, 154, 30, 241, 74]) }, Event { key: EventKey([145, 85, 162, 168, 128, 208, 193, 119, 173, 194, 43, 226, 202, 254, 151, 126, 221, 117, 117, 157, 169, 132, 46, 64, 245, 136, 7, 93, 149, 163, 43, 216, 51, 34, 170, 20, 245, 235, 186, 194, 77, 42, 238, 133, 127, 192, 242, 199, 245, 2, 253, 176, 68, 72, 30, 120, 193, 142, 34, 220, 74, 21, 224, 232, 41, 142, 76, 167, 22, 75, 77, 116, 178, 197, 9, 200, 69, 96, 47, 196, 167, 150, 208, 122, 128, 231, 9, 179, 177, 177, 127, 194]), value: EventValue([136, 105, 226, 216, 28, 194, 126, 218, 174, 57, 143, 187, 121, 70, 104, 210, 93, 225, 84, 85, 204, 1, 229, 16, 141]) }, Event { key: EventKey([40, 73, 150, 18, 84, 51, 218, 36, 154, 68, 71, 145, 152, 88, 43, 61, 182, 166, 24, 174, 126, 90, 109, 31, 123, 68, 169]), value: EventValue([152, 124, 228, 19, 233, 69, 228, 210, 187, 244, 43, 59, 235, 190, 81, 203, 168, 102, 206, 201, 36, 43, 180, 211, 49, 89, 254, 159, 92, 227, 48, 82, 221, 100, 118, 17, 170, 35, 226, 245, 21, 172, 173, 20, 10, 176, 118, 239, 111, 209, 68, 113, 36, 45, 200, 209, 233, 88, 78, 32, 196, 139, 111, 189, 3, 67, 46]) }, Event { key: EventKey([72, 167, 17, 96, 249, 240, 194, 101, 226, 113, 221, 125, 167, 239, 4, 138, 220, 35, 127, 103, 43, 207, 62, 100, 252, 140, 186, 132, 97, 174, 142, 107, 125, 191, 8, 67, 250, 123, 255, 138, 157, 157, 204, 251, 36, 75, 250, 251, 150, 51, 112, 222, 58, 31, 95, 99, 253, 182, 137, 65, 117, 114, 99, 251, 85, 178, 140, 227, 208, 209, 158, 141, 232, 176, 65, 6, 79, 185, 19, 6, 106, 63, 82, 24, 13, 162, 97, 210, 106, 210, 92, 46, 191]), value: EventValue([46, 123, 211, 189, 16, 87, 177, 182, 145, 53, 84, 238, 168, 212, 15, 124, 193, 10, 46, 208, 141, 95, 180, 187, 191, 153, 6, 60, 189, 123, 214, 204, 31, 132, 238, 97, 57, 56, 242, 222, 210, 217, 9, 182, 94, 161, 242, 34, 104, 133, 161, 207, 223, 230, 67, 174, 87, 18, 92, 228, 215, 160, 132, 184, 10, 93, 223, 58, 253, 178, 43, 140, 223, 20, 2, 247, 81]) }, Event { key: EventKey([150, 224, 142, 162, 195, 96, 26, 162, 140, 254, 44, 66, 6, 139, 63, 160, 200, 57, 170, 224, 23, 183, 187, 172, 28, 3, 236, 108, 37, 128, 0, 186, 187, 216, 235, 241, 19, 194, 161, 46, 251, 36, 15, 152, 220, 122, 160, 230, 58, 234, 143, 6, 23, 57, 118, 158, 85, 231, 48, 153, 90, 46, 58, 72, 169, 237, 221, 147, 32, 254, 106, 62, 57, 58, 239, 40, 35, 12]), value: EventValue([197, 246, 158, 219, 11, 6, 200, 105, 86, 237, 194, 198, 7, 207, 75, 55, 7, 79, 6, 111, 67, 141, 98, 41, 176, 24, 118, 13, 192, 120, 99, 41, 209, 211, 102, 234, 233, 116, 166, 156, 123, 219, 128, 95, 5, 152, 188, 223, 81, 197, 136, 3, 122, 183, 78, 237, 95, 75, 2]) }, Event { key: EventKey([138, 92, 214, 127, 212, 143, 169, 242, 69, 171, 177, 19, 117, 180, 206, 41, 105, 230, 49, 116, 71, 20, 92, 197, 12, 58, 147, 14, 72, 110, 188, 9, 227, 188, 61, 190, 1, 74, 29, 175, 78, 162, 154, 43, 199, 173, 230, 62, 22, 110, 171, 236]), value: EventValue([25, 38, 215, 64, 212, 196, 157, 6, 68, 96, 166, 176, 71, 29, 143, 94, 227, 155, 228, 74, 33, 117, 157, 102, 149, 144, 160, 171, 109, 179, 177, 18, 119, 15]) }], receipt: 4166057209 }], inner: 2314249168 }, BatchReceipt { batch_hash: [245, 28, 210, 93, 84, 184, 101, 112, 70, 73, 221, 53, 154, 130, 53, 1, 54, 159, 244, 169, 92, 28, 76, 83, 193, 84, 29, 169, 219, 84, 55, 203], tx_receipts: [TransactionReceipt { tx_hash: [248, 191, 115, 139, 5, 5, 53, 12, 131, 158, 74, 200, 159, 138, 151, 176, 128, 194, 134, 5, 20, 219, 175, 25, 102, 34, 31, 45, 138, 37, 225, 230], body_to_save: None, events: [Event { key: EventKey([8, 252, 107, 160, 187, 175, 123, 253, 109, 198, 93, 149, 206, 119, 188, 41, 204, 215, 212, 246, 214, 93, 117, 228, 163, 250, 82, 197, 224, 101, 126, 165, 51, 138, 114, 244, 173, 1, 20, 144, 243, 20, 189, 216, 242, 47, 117, 251, 198, 233, 105, 199, 16, 133, 205, 191, 83, 46, 82, 75, 13, 232, 116, 198, 190, 95, 59, 182, 163, 156, 5, 238, 139, 170, 24, 239, 141, 94, 245, 147, 152, 193, 14, 159, 207, 68, 114, 39, 85, 78, 64, 172, 168, 54, 161, 175, 231, 94]), value: EventValue([48, 217, 252, 81, 3, 109, 19, 250, 240, 129, 62, 188, 172, 227, 19, 190, 167, 222, 59, 22, 180, 154, 61, 96, 3, 49, 92, 0, 22, 163, 211, 197, 123, 113, 16, 20, 12, 65, 142, 170, 8, 236, 11, 43, 29, 191, 13, 59, 126, 202, 121, 124]) }, Event { key: EventKey([93, 42, 101, 221, 250, 8, 211, 115, 255, 205, 255, 149, 138, 224, 164, 69, 144, 239, 175, 227, 75, 199, 154, 41, 124, 146, 93, 207, 62, 79, 253, 40, 28, 143, 103, 93, 232, 153, 198, 147, 31, 188, 211, 233, 229, 95, 82, 31, 97, 244, 109, 100, 146, 4, 225, 218, 176, 46, 30]), value: EventValue([150, 235, 156, 209, 42, 160, 227, 122, 93, 230, 86, 182, 85, 201, 163, 83, 1, 233, 103, 167, 30, 177, 69, 143, 120, 41, 143, 203, 156, 159, 18, 183, 237, 1, 108, 150, 243, 194, 234, 181, 208, 234, 73, 174, 31, 203, 78, 60, 108, 74, 232, 227, 197, 0, 59]) }, Event { key: EventKey([250, 30, 69, 86, 176, 8, 192, 217, 57, 77, 243, 177, 254, 108, 209, 11, 20, 109, 152, 186, 7, 238, 15, 145, 205, 207, 123, 174, 239, 200, 111, 16, 215, 64, 123, 134, 163, 20, 141, 52, 222, 12, 43, 213, 180, 206, 244, 101, 168, 20, 221, 76, 28, 49, 131, 93, 108, 158, 138, 91, 127, 102, 100, 68, 208, 0, 224, 72, 141, 71, 101, 148, 86, 24, 195, 247, 44]), value: EventValue([190, 175, 178, 47, 235, 101, 252, 196, 163, 187, 40, 144, 196, 39, 163, 174, 5, 161, 190, 235, 137, 124, 89, 59, 128, 93, 155, 24, 149, 77, 129, 13, 226, 75, 98, 235, 48, 103, 204, 116, 210, 56, 171, 108, 217, 56, 36, 28, 54, 247, 101, 8, 227]) }, Event { key: EventKey([50, 142, 235, 167, 94, 84, 133, 235, 133, 12, 206, 75, 40, 154, 145, 17, 135, 219, 136, 23, 126, 42, 182, 213, 149, 61, 207, 232, 173, 37, 61, 123, 209, 108, 205, 217, 89, 210, 195, 233, 20, 9, 148, 226, 73, 122, 186, 153, 186, 207, 146, 249, 13, 61, 209, 27]), value: EventValue([185, 130, 228, 84, 240, 234, 231, 138, 195, 246, 75, 216, 233, 194, 44, 148, 47, 228, 164, 83, 98, 159, 220, 10, 152, 221, 142, 237, 1, 94, 251, 47, 250, 48, 23, 249, 224, 105, 249, 140, 180, 82, 19, 74, 174, 236, 253, 116, 21, 200, 65, 89, 153, 87, 209, 219, 18, 20, 211, 59, 62, 185, 234, 154, 160, 207, 4, 194, 104, 129, 248, 31]) }, Event { key: EventKey([90, 81]), value: EventValue([46, 148, 213, 204, 202, 47, 224, 14, 156, 213, 185, 28, 151, 153, 243, 26, 100, 171, 141, 88, 10, 212, 222, 53, 219, 106, 129, 139, 223, 139, 206, 1, 225, 242, 132, 238, 71, 238, 255, 38, 34, 165, 233, 96, 163, 189, 243, 73, 160, 177, 110, 55, 132, 49, 211, 82, 85, 10, 88, 204, 68, 82, 110, 165, 35, 14, 228, 201, 254, 161, 194, 36, 17, 192, 69, 171, 82, 38, 254, 150, 93, 180, 167, 63, 222, 26, 166, 132, 32, 52, 219, 197, 162]) }, Event { key: EventKey([177, 130, 167, 152, 195, 237, 153, 251, 84, 31, 47, 74, 52, 180, 12, 74, 232, 9, 92, 228, 3, 144, 185, 110, 245, 51, 234, 158, 12, 139, 210, 7, 51, 82, 158, 109, 26, 38, 210, 212, 212, 18, 168, 204, 11, 170, 110, 25, 227, 184, 138, 140, 9, 90, 109, 202, 229, 107, 85, 206, 201, 136]), value: EventValue([118, 52, 143, 77, 162, 62, 57, 52, 222, 133, 111, 112, 127, 83, 38, 84, 60, 96, 9, 86, 18, 249, 128, 57, 54, 215, 21, 89, 154, 190, 30, 44, 225, 243, 121, 0, 189, 103, 182, 194, 200, 150, 27, 127, 146, 223, 88, 113, 178, 225, 201, 3, 131, 239, 128, 248, 243, 7, 1, 4, 16, 26, 151, 223, 33, 0, 11, 0, 249, 122, 233]) }, Event { key: EventKey([13, 197, 197, 204, 178, 159, 39, 59, 40, 160, 150, 47, 223, 116, 36, 102, 109, 180, 51, 83, 17, 233, 188, 167, 15, 188, 179, 195, 42, 21, 46, 33, 215, 211, 207, 13, 172, 179, 56, 123, 218, 74, 217, 145, 24, 205, 213, 47, 208, 205, 70, 111]), value: EventValue([27, 25, 159, 211, 167, 120, 158, 218, 105, 84, 133, 42, 93, 65, 172, 80, 115, 24, 183, 187, 36, 84, 208, 140, 98, 40, 182, 81, 76, 120, 16, 176, 197, 151, 199, 202, 9, 227, 126, 79, 86, 140, 172, 17, 103, 238, 77, 238, 181, 199, 107, 168, 143, 245, 188, 36, 12, 110, 123, 10, 75, 137, 143, 180, 176, 235, 62, 200, 232, 214, 83, 119, 186, 36, 100]) }, Event { key: EventKey([159, 157, 234, 33, 182, 47, 221, 62]), value: EventValue([165, 237, 153, 99, 28, 219, 9, 178, 33, 73, 185, 23, 72, 23, 118, 3, 13]) }, Event { key: EventKey([244, 155, 254, 229, 138, 237, 35, 146, 200, 52, 31, 47, 150, 254, 22, 179]), value: EventValue([37, 56, 222, 131, 140, 166, 141, 166, 140, 49, 248, 5, 147, 136, 235, 155, 148, 47, 30, 190, 243, 227, 206, 22, 119, 105, 239, 197, 226, 153, 143, 97, 63, 239, 57, 1, 206, 68, 246, 17, 4, 62, 17, 164, 87, 36, 81, 24, 35, 171, 60, 173, 251, 202, 31, 243, 219, 192, 197, 214, 217, 238, 45, 211, 158, 1, 12, 160, 178, 193, 0, 180, 183, 60, 81, 151, 242, 249, 127, 138, 192, 237, 26]) }], receipt: 851390591 }, TransactionReceipt { tx_hash: [234, 249, 33, 52, 145, 21, 11, 215, 95, 195, 63, 11, 139, 93, 73, 48, 131, 115, 249, 193, 4, 198, 44, 244, 169, 194, 10, 143, 90, 56, 104, 136], body_to_save: None, events: [Event { key: EventKey([138, 168, 137, 182, 0, 137, 113, 55, 63, 194, 66, 4, 122, 4, 254, 251, 221, 59, 7, 10, 241, 71, 28, 242, 64, 86, 212, 172, 137, 60, 106, 69, 142, 122, 13, 28, 62, 102, 114, 57, 151, 95, 189, 238, 83, 202, 100, 238, 87, 248, 0, 32, 163, 21, 90, 42, 249, 167, 180, 20, 87, 243, 162, 13]), value: EventValue([]) }, Event { key: EventKey([191, 147, 30, 160, 101, 121, 246, 116, 160]), value: EventValue([144, 171, 255, 217, 94, 113, 59, 185, 203, 245, 226, 187, 57, 155, 242, 92, 50, 238, 243, 190, 210, 220, 1, 157, 4, 143, 142, 90, 186, 236, 37, 29, 52, 167, 184, 158, 105, 248, 109, 128, 183, 53, 249, 92, 114, 116, 91, 90, 249, 2, 69, 63, 204, 99, 130, 241, 177, 32, 239, 214, 176, 76, 126, 183, 71, 189, 145, 181, 8, 63, 39, 232, 14, 226, 6, 132, 232, 122, 75, 0]) }, Event { key: EventKey([90, 90, 4, 30, 161, 151, 6, 238, 207, 114, 173, 90, 127, 70, 69, 25, 17, 112, 16, 183, 159, 57, 72, 196, 135, 92, 68, 139, 171, 65, 229, 56, 36, 26, 215, 109, 215, 68, 169, 158]), value: EventValue([148, 21, 185, 120, 247, 248, 137, 226, 126, 43, 87, 143, 184, 132, 218, 69, 15, 81, 45, 34, 84, 137, 123, 13, 202, 194, 238, 78, 165, 210, 110, 168, 161, 231, 62, 5, 118, 78, 113, 64, 225, 230, 218, 146, 96, 116, 22, 78, 158, 67, 248, 62, 194, 26, 33]) }, Event { key: EventKey([221, 15, 102, 129, 236, 85, 52, 43, 193, 187, 148, 65, 240, 238, 71, 48, 55, 187, 164, 121, 231, 125, 189, 214, 139, 9, 21, 226, 144, 148, 84, 94, 141, 69, 127, 240, 29, 194, 6, 85, 92, 166, 153, 229, 95, 180, 240, 61, 102, 50, 191, 47, 94, 79, 63, 129, 55, 175, 209, 77, 87, 182, 103, 71, 249, 190, 103, 139, 167, 33, 195]), value: EventValue([242, 71, 56, 14, 42, 131, 66, 133, 243, 116, 81, 13, 199, 199, 133, 168, 109, 225, 69, 11, 158, 220, 41, 210, 50, 139, 64, 226, 205, 113, 32, 127, 232, 83]) }, Event { key: EventKey([167, 41, 234, 53, 206, 229, 96, 229, 76, 247, 193, 105, 139, 38, 10, 210, 223, 37, 142, 215]), value: EventValue([220, 85, 9, 216, 120, 234, 23, 37, 201, 235, 115, 203, 76, 185, 209, 226, 174, 160, 69]) }], receipt: 735247805 }, TransactionReceipt { tx_hash: [74, 129, 166, 87, 246, 88, 2, 15, 109, 69, 223, 47, 233, 83, 229, 232, 134, 23, 214, 98, 147, 159, 188, 58, 17, 239, 73, 122, 128, 23, 10, 33], body_to_save: Some([47, 245, 193, 192, 29, 239, 232, 66, 51, 236, 73, 33, 70, 240, 179, 117, 214, 90, 193, 212, 237, 198, 32, 148, 119, 117, 33, 69, 192, 232, 202, 117, 227, 131, 43, 79, 252, 63, 101, 118, 139, 119, 29, 30, 34, 113, 142, 19, 134]), events: [Event { key: EventKey([27, 81, 53, 74, 220, 178, 117, 82, 53, 19, 176, 47, 138, 146, 172, 105, 249, 6, 131, 63, 234, 17, 188, 174, 255, 157, 147, 145, 210, 172, 216, 27, 69, 254, 146, 210, 98, 166, 168, 67, 128, 185, 182, 50, 189, 1, 221, 151, 171, 237, 136, 231, 186, 226, 134, 98]), value: EventValue([28, 54, 108, 206, 186, 255, 157, 139, 242, 54, 140, 116, 46, 159, 176, 172, 117, 67, 168, 162, 139, 40, 55, 206, 252, 16, 183, 124, 90, 86, 170, 37, 95, 188, 150, 65, 147, 145, 49, 95, 229, 26, 255, 9, 61, 201, 214, 179, 237, 2, 32, 194, 88, 115, 118, 222, 175, 104, 155, 216, 119, 25]) }, Event { key: EventKey([216, 12, 14, 10, 131, 88, 226, 4, 234, 232, 199, 166, 107, 62, 77, 90, 82, 186, 235, 126, 24, 213, 173, 104, 112, 40, 128, 118, 22, 163, 101, 81, 5, 235, 57, 213, 56, 102, 207, 32, 50, 153, 235, 57, 142, 70, 229, 130, 182, 11, 215, 98, 40, 88, 109, 80, 83, 163, 114, 112]), value: EventValue([126, 104, 28, 71, 44, 124, 208, 192, 126, 210, 1, 15, 47, 226, 127, 139, 23, 246, 128, 8, 124, 101, 144, 224, 99, 72, 98, 68, 149, 233, 35, 90, 167, 197, 32, 240, 63, 64, 0, 52, 19, 187, 95, 220, 245, 209, 123, 82, 28, 168, 49, 156, 45]) }, Event { key: EventKey([129, 65, 83, 68, 18, 227, 47, 241, 106, 233, 210, 80, 104, 250, 33, 229, 126, 164, 38, 208, 222, 8, 228, 50, 194, 152, 190, 187, 62, 153, 185, 167, 60, 127, 176, 199, 121, 250, 147, 192, 113, 35, 165, 181, 35, 145, 75, 204, 163, 254, 39, 212, 113, 142, 56, 203, 60, 97, 167, 64, 22, 43, 157, 130, 70, 182, 178, 138, 105, 176, 22, 161, 184, 177, 9, 242, 108, 189, 157, 184, 56, 121, 119, 196, 169, 24]), value: EventValue([105, 207, 217, 95, 169, 59, 184, 201, 212, 128, 36, 118, 7, 77, 197, 93, 9, 195, 39, 176, 128, 120, 46, 88, 108, 16, 30, 109, 118, 215, 168, 113, 211, 240, 74, 93, 250, 127, 3, 113, 74, 24, 46, 254, 236, 219, 157, 111, 204, 64, 195, 190, 114, 129, 93, 186, 69, 42, 97, 78, 57, 162, 160, 222, 178, 11, 149, 109, 22, 75, 119, 133, 123, 43, 54, 114, 177, 173, 144]) }], receipt: 2378712351 }, TransactionReceipt { tx_hash: [215, 31, 214, 23, 249, 8, 252, 10, 21, 227, 173, 214, 74, 5, 8, 133, 58, 250, 231, 128, 9, 151, 2, 177, 35, 106, 213, 25, 192, 103, 190, 226], body_to_save: None, events: [Event { key: EventKey([8, 95, 122, 4, 171, 37, 148, 204, 53, 139, 194, 189, 64, 171, 121, 185, 39, 200, 36, 60, 144, 163, 242, 119, 123, 97, 102, 241, 46, 71, 222, 49, 166, 4, 241, 245, 34, 131, 37, 56, 2, 217, 133, 62, 78, 132, 66]), value: EventValue([223, 124, 101, 163, 104, 94, 40, 172, 250, 58, 213, 157, 205, 170, 131, 28, 179, 199, 193, 179, 117, 96, 107, 77, 1, 30, 96, 167, 80, 75, 62, 15, 187, 161, 32, 223, 217, 151, 229, 214, 25, 184, 178, 10, 59, 105, 45, 47, 19, 132, 161, 187, 24, 246, 66]) }], receipt: 1394419936 }, TransactionReceipt { tx_hash: [146, 76, 246, 105, 203, 3, 216, 207, 82, 75, 39, 78, 194, 106, 117, 76, 242, 120, 45, 112, 185, 251, 171, 5, 136, 165, 189, 133, 35, 24, 179, 165], body_to_save: None, events: [], receipt: 3193356401 }, TransactionReceipt { tx_hash: [38, 11, 60, 112, 200, 115, 5, 195, 217, 150, 180, 4, 109, 74, 34, 137, 43, 79, 200, 153, 65, 66, 120, 180, 51, 241, 135, 235, 17, 124, 199, 216], body_to_save: None, events: [Event { key: EventKey([191, 240, 232, 184, 147, 175, 207, 51, 56, 214, 90, 85, 39, 135, 38, 196, 63, 75, 242, 125, 6, 158, 240, 113, 170, 141, 104, 3, 99, 107, 84, 65, 239, 64, 227, 144, 95, 175, 33, 175, 227, 219, 210, 41, 254, 71, 27, 88, 38, 101, 31]), value: EventValue([3, 55, 203, 7, 224, 161, 225, 214]) }, Event { key: EventKey([159, 31, 135, 132, 79, 238, 40, 181, 27, 41, 154, 100, 169, 187, 60, 133, 129, 17, 13, 75, 220, 218, 132, 195, 221, 194, 251, 168, 190, 42, 243, 18, 25]), value: EventValue([156, 133, 173, 88, 146, 203, 219, 79, 64, 17, 61, 3, 230, 25, 36, 10, 142, 223, 8, 36, 213, 199, 196, 211, 223, 113, 252, 164, 13, 23, 40, 30, 86, 145, 185, 118, 4, 193, 28, 106, 231, 250, 136, 250, 132, 234, 191, 215, 244, 218, 194, 161, 100, 129, 194, 235, 162, 133, 205, 234, 117, 253, 99, 141, 243, 125, 30, 167, 188, 251, 237, 76, 216, 234, 136, 232, 106, 136, 21, 139, 6, 207, 73, 58, 216, 149, 163, 193, 224, 47, 124, 144, 221]) }, Event { key: EventKey([147, 79, 13, 89, 97, 211, 16]), value: EventValue([87, 243, 202, 178, 187, 184, 34, 158, 9, 66, 30, 19, 63, 66, 164, 155, 53, 0]) }, Event { key: EventKey([50, 140, 9, 119, 134, 45, 148, 156, 201, 252]), value: EventValue([65, 210, 32, 61, 125, 80, 118, 160, 240, 86, 239, 109, 133, 139, 99, 223, 205, 109, 209, 95, 26, 165, 30, 195, 231, 37, 48, 59, 54, 26, 106, 61, 168, 180, 65, 152, 80, 45, 1, 141, 35, 233, 115, 19, 182, 42, 161, 183, 246, 217, 98, 56, 158, 254, 188, 29, 203, 139, 97, 12, 160, 143, 16, 201, 59, 124, 14, 4, 82, 124, 187, 227]) }, Event { key: EventKey([74, 247, 57, 13, 77, 22, 134, 243, 210, 108, 117, 21, 45, 149, 221, 59, 180, 208, 108, 110, 57, 118, 40, 92, 252, 67, 232, 234, 124, 104, 194, 167, 158, 179, 18, 243, 184, 151, 205, 33, 131, 181, 175, 111, 65, 236, 115, 60, 237, 141, 193, 122, 104, 130, 168, 204, 214, 90, 208, 163, 46, 96, 243, 231, 154, 76, 167, 249, 2, 99, 177, 112, 188, 39, 173, 3, 255, 85, 220]), value: EventValue([223, 110, 32, 116, 43, 140, 171, 103, 139, 27, 133, 139, 64, 189, 255]) }, Event { key: EventKey([150, 206, 235, 29, 154, 64, 228, 215, 170, 174, 116, 208, 210, 150, 109, 185, 83, 152, 103]), value: EventValue([60, 12, 106, 194, 123, 68, 69, 60, 44, 54, 144, 97, 121, 186, 83, 12, 187, 3, 7, 1, 225, 87, 115, 174, 212, 106, 171, 174, 49, 61, 222, 244, 137, 113, 197, 152, 39, 217, 251, 97, 67, 178, 250, 59, 156, 206, 159, 225, 129, 156, 179, 67, 117, 184, 117, 34, 5, 235, 60, 203, 182, 229, 98, 97, 161, 19, 131, 189, 91, 191, 17, 12, 174, 9, 147, 39, 76, 193, 66, 239, 223, 122, 149, 21, 140, 193, 85, 85, 209, 90, 119, 246, 210, 21, 115, 246]) }, Event { key: EventKey([237, 232, 120, 48, 79, 184, 63, 123, 199, 137, 79, 27, 144, 76, 55, 110, 26, 254, 248, 4, 96, 192, 216, 25, 104, 94, 162, 138, 4, 50, 37, 177, 60, 73, 24, 253, 214, 211, 133, 190, 170, 34, 157, 95, 209, 94, 71, 242, 253, 237, 248, 174, 131, 70, 34, 185, 171, 60, 117, 32, 239, 224, 183, 188, 129, 102, 9, 111, 27, 3, 4, 100, 113, 167, 156, 55, 201, 43, 35, 52, 64, 97, 251, 104, 244, 203, 253, 92, 179, 63]), value: EventValue([113, 25, 249, 6, 31, 115, 181, 160, 122, 23, 242, 10, 1, 35, 241, 77, 89, 93, 144, 118, 240, 69, 34, 214, 3, 81, 88, 47, 174, 65, 174, 52, 140, 49, 155, 217, 132, 88, 92, 248, 114, 157, 232, 198, 116, 240, 186, 64, 218, 34, 225, 245, 178, 153, 237, 30, 219, 233, 24, 76, 47, 141, 128, 86, 210, 112, 54, 168, 242, 81, 21, 50, 19, 237, 45, 33]) }, Event { key: EventKey([3, 250, 214, 247, 182, 79, 208, 182]), value: EventValue([36, 102, 107, 247, 37, 134, 168, 42, 186, 241, 59, 120, 232, 181, 221, 133, 226, 218, 9, 158, 182, 146, 138, 145, 118, 145, 179, 57, 28, 116, 54, 145, 46, 138, 17]) }], receipt: 3350805061 }, TransactionReceipt { tx_hash: [177, 89, 78, 141, 175, 20, 148, 98, 164, 98, 193, 176, 35, 177, 221, 92, 106, 192, 147, 43, 251, 55, 222, 110, 141, 250, 32, 46, 161, 170, 162, 95], body_to_save: Some([173, 140, 147, 105, 161, 200, 66, 67, 17, 148, 218, 113, 140, 223, 240, 250, 0, 217, 76, 236, 214, 100, 64, 6, 191, 143, 173, 232, 126, 247, 89, 205, 13, 171, 32, 193, 211, 2, 201, 69, 200, 62, 49, 238, 98, 220, 60, 64, 52, 46, 36, 186, 87, 113, 224, 116, 195, 81, 251, 17, 91, 168, 231, 54, 84, 195, 102, 215, 76, 104, 239, 45, 251, 193, 44, 134, 168, 213, 16, 80, 38, 177, 86, 52, 82, 155, 104, 188, 246, 134, 61, 196, 202, 164, 9, 92, 118, 49, 61]), events: [Event { key: EventKey([28, 136, 109, 195, 2, 180, 52, 81, 68, 102, 194, 215, 200, 82, 197, 10, 180, 63, 254, 253, 179, 59, 10, 64, 248, 68, 8, 91, 236, 251, 233, 242, 145, 107, 156, 147, 68, 204, 214, 69, 41, 64, 76, 26, 168, 125, 36, 28, 90, 9, 244, 29, 186, 134, 169, 93, 94, 152, 28, 39, 120, 4, 205, 87, 130, 148, 18, 77, 128, 164, 53, 54, 225, 53, 116, 11, 189, 192, 186, 19, 12, 166, 23, 230, 122, 158, 32, 67, 194, 19, 206, 118, 2, 186, 111, 230, 112, 214, 20]), value: EventValue([52, 198, 175, 221, 152, 148, 79, 59, 250, 171, 61, 157, 228, 134, 238, 96, 236, 183, 187, 159, 193, 56, 240, 124, 128, 83, 94, 142, 138, 108, 8, 141, 168, 122, 229, 140, 32, 208, 81, 9]) }, Event { key: EventKey([44, 197, 254, 27, 231, 72, 227, 144, 126, 150, 51, 104, 248, 26, 79, 11, 253, 105, 204, 119, 213, 120, 95, 55, 248, 163, 172, 67, 145, 73, 226, 209, 251, 14, 113, 134, 104, 163, 243, 43, 236, 115, 212, 15, 218, 228, 65, 190, 208, 155, 10, 151, 51, 152, 253, 76, 101, 34, 68, 73, 76, 207, 23, 40, 21, 99, 43, 170, 99, 55, 241, 35, 76, 128, 65, 35, 103, 84, 142, 30, 253, 112]), value: EventValue([44, 142, 42, 177, 84, 85, 21, 202, 219, 31, 6, 234, 8, 62, 85, 115, 146, 115, 135, 82, 80, 87, 153, 174, 175, 160, 125, 135, 221, 187, 40, 229, 229, 99, 160, 254, 225, 171, 180, 80, 149, 141, 110, 115, 113, 84, 246, 26, 196, 73, 203]) }, Event { key: EventKey([133, 198, 193, 79, 88, 9, 48, 24, 79, 172, 224, 193, 193]), value: EventValue([173, 95, 139, 144, 114, 158, 232, 58, 126, 122, 78, 211, 116, 134, 125, 53, 14, 222, 210, 139, 117, 223, 117, 110, 96, 151, 222, 251, 43, 123, 103, 17, 81, 238, 147, 177, 130, 88, 172, 75, 143, 106, 72, 145, 85, 16, 62, 237, 252, 159, 8, 255, 212, 5, 172, 110, 145, 87]) }, Event { key: EventKey([84, 224, 248, 128, 25, 250, 213, 47]), value: EventValue([178, 28, 132, 254, 101, 118, 180, 167, 193, 18, 132, 235, 145, 211, 13, 129, 185, 110, 250, 1, 121, 149, 242, 98, 251, 93, 44, 102, 78, 232, 207, 2, 106, 162, 18, 242, 9, 58, 81, 180, 18, 78, 241, 196, 173, 123, 190, 222, 43, 85, 125, 214, 22, 4, 135, 147, 18, 145, 115, 102, 157, 159, 158, 185, 206, 80, 161, 90, 133, 93, 250, 87, 212, 230, 104, 14, 73, 153, 227, 18, 198, 149, 52, 128, 216, 58, 243, 167, 197, 77, 24, 91, 182, 170, 140, 79, 172, 42]) }, Event { key: EventKey([214, 117, 62, 58, 134, 183, 45, 11, 198, 167, 14, 72, 129, 23, 213, 32, 20, 91, 119, 231, 98, 224, 25, 187, 49, 218, 3, 113, 136, 23, 251, 152, 225, 49, 211, 202, 37, 189, 89, 33, 168, 132, 122, 131, 47, 223, 106, 5, 66, 112, 150, 9, 144, 14, 55, 20, 138, 201, 217, 40, 56, 77, 150, 242, 61, 190, 83, 202, 176, 146, 10, 228, 64, 172, 140, 91, 173, 118, 201, 6, 133, 118, 130, 196, 183, 106, 68, 142, 245]), value: EventValue([60, 107, 54, 204, 123, 163, 130, 224, 239, 249, 104, 69, 237, 0, 119, 41, 26, 138, 69, 73, 167, 33, 86, 247, 73, 224, 84, 253, 148, 250, 236, 168, 91, 18, 27, 118, 184, 74, 109, 106, 162, 74, 148, 133, 109, 228, 149, 247, 56, 219, 145, 106, 86, 11, 132, 52, 239, 6, 130, 228, 80, 112, 23, 6, 206, 169, 81, 75, 44, 113, 114, 144, 135, 163, 51, 21, 247, 103, 215, 54, 122, 92]) }], receipt: 1583265351 }, TransactionReceipt { tx_hash: [213, 41, 116, 199, 219, 34, 152, 162, 106, 208, 255, 153, 1, 176, 89, 50, 48, 196, 101, 114, 111, 226, 209, 49, 96, 224, 86, 48, 187, 14, 206, 221], body_to_save: Some([211, 196, 65, 59, 133, 190, 204, 237, 138, 173, 27, 111, 67, 22, 199, 18, 107, 42, 28, 70, 164, 136, 59, 247, 53, 245, 194, 231, 221, 79, 92, 72, 135, 152, 15, 187, 85, 223, 102, 238, 157, 81, 218, 80, 249, 162, 143, 160, 41, 8]), events: [Event { key: EventKey([254, 37, 212, 13, 75, 175, 28, 161, 180, 240, 217, 64, 213, 143, 191, 62, 137, 113, 30, 178, 166, 242, 186, 91, 255, 128, 19, 249]), value: EventValue([210, 203, 144, 111, 244, 178, 190, 178, 228, 109, 72, 46, 115, 230, 44, 194, 223, 27, 193, 102, 192, 130, 181, 240, 233, 21, 210, 131, 72, 211, 109, 124, 19, 91, 149, 51, 215, 106, 36, 2, 7, 65, 159, 231, 127, 192, 169, 48, 70, 25, 204, 114, 93, 99, 167, 79]) }, Event { key: EventKey([145, 214, 37, 62, 164, 109, 175, 104, 163, 206, 147, 181, 205, 56, 16, 137, 202, 138, 137, 194, 230, 67, 84, 109, 14, 145, 239, 228, 70, 28, 13, 205, 108, 8, 34, 254, 3, 33, 0, 16, 26, 105, 121, 17, 143]), value: EventValue([37, 178, 199, 137, 62, 176, 132, 151, 184, 91, 22, 55, 181, 4, 161, 223, 145, 42, 52, 186, 78, 232, 114, 229, 123, 128, 128, 43, 31, 64, 112, 17, 131, 182, 191, 154, 174, 200, 105, 170, 10, 183, 133, 79, 42, 188, 87, 154, 38, 238, 0, 201, 196, 130, 110, 20, 6, 129, 33, 132, 194, 216, 157]) }, Event { key: EventKey([90, 139, 120, 158, 75, 237, 138, 1, 48, 183, 101, 84, 2, 86, 241, 128, 91, 255, 23, 26, 91, 41, 0, 81, 155, 8, 94, 156, 139, 24, 21, 116, 78, 3, 205, 37, 249, 198, 130, 80, 50, 160, 132, 54, 145, 17, 87, 15, 233, 243, 106, 253, 164, 173, 162, 251, 235, 160, 97, 21, 1, 60, 214, 112]), value: EventValue([40, 210, 43, 104, 3, 157, 33, 94, 225, 44, 215, 135, 109, 253, 236, 182, 207, 245, 124, 13, 159, 79, 127, 30, 225, 238, 28, 80, 128, 110, 109, 28, 198, 114, 189, 64, 133, 53, 138, 151, 152, 217, 39, 90, 220, 135, 252, 93, 137, 64, 30, 251, 244, 187, 12, 172, 75, 141, 109, 32, 78, 236, 85, 2, 101, 202, 19, 233, 80, 231, 115, 213, 124, 69, 94, 23, 168, 186, 207, 26, 178]) }, Event { key: EventKey([219, 88, 130, 153, 24, 211, 15, 227, 21, 220, 5, 220, 99, 245, 34, 132, 140, 37, 169, 141, 213, 227, 170, 145]), value: EventValue([5, 36, 10, 79, 119, 195, 55, 252, 196, 23, 210, 156, 193, 2, 88, 224, 238, 84, 155, 78, 132, 19, 106, 130, 10, 214, 107, 106, 216, 255, 212, 238, 46, 126, 137, 254, 148, 27, 38, 8, 140, 216, 57, 218, 176, 232, 122, 189, 56, 28, 153, 167, 18, 179, 214, 12, 173, 100, 200, 88, 244]) }, Event { key: EventKey([7, 99, 88, 103, 18, 216, 59, 113, 88, 14, 51, 67, 84, 99, 209, 48, 109, 153, 150, 69, 44, 211, 46, 55, 103, 90, 32, 197, 68, 70, 18, 196, 161, 134, 222, 18, 53, 190, 13, 136, 237, 175, 17, 59, 230, 205, 71, 5, 78, 206, 246, 12, 68, 173, 217, 228, 220, 137, 142, 76, 152, 223, 169, 0, 176, 215, 114]), value: EventValue([253, 200, 240, 69]) }, Event { key: EventKey([186, 115, 110, 137, 193, 221, 52, 99, 166, 224, 201, 30, 175, 251, 107, 235, 171, 205, 165, 140, 209, 189]), value: EventValue([49, 245, 23, 184, 9, 8, 239, 33, 205, 91, 139, 155, 93, 13, 220, 196, 70, 225, 2, 223, 67, 166, 124, 55, 105, 159, 124, 28, 198, 77, 17, 246, 11, 22, 140]) }, Event { key: EventKey([]), value: EventValue([51, 244, 96, 56, 29, 86, 92, 199, 207, 168, 193, 129, 253, 211, 21, 62, 32, 127, 195, 126, 61, 56, 73, 154, 76, 218, 8, 22, 186, 104, 172, 232, 32, 146, 44, 107, 137, 165, 89, 116, 93, 180, 87, 254, 4, 246, 197, 218, 236, 58, 108, 152, 188, 147, 91, 219, 177, 219, 136, 184]) }, Event { key: EventKey([204, 109, 202, 148, 137, 62, 34, 69, 60, 21, 195, 156, 104, 91, 190, 2, 223, 84, 123, 217, 20, 122, 86, 83, 185, 39, 77, 6, 73, 178, 20, 106, 64, 89, 65, 55, 69, 139, 23, 245, 231]), value: EventValue([96, 27, 185, 247, 82, 200, 194, 109, 41, 215, 218, 106, 203, 144, 65, 39, 34, 89, 88, 7, 252, 181, 57, 158, 242, 250, 254, 37, 16, 128, 180, 105, 6]) }, Event { key: EventKey([224, 72, 73, 128, 183, 12, 39, 27, 3, 207, 224, 2, 147, 139]), value: EventValue([50, 109, 157, 194, 234, 39, 27, 202, 169, 59, 232, 89, 178, 22, 172, 124, 128, 125, 124, 178, 104, 24, 38, 165, 33, 80, 142, 208, 72, 136, 149, 206, 2, 225, 152, 224, 128, 56, 128, 211, 161, 207, 201, 188, 117, 87, 18, 237, 113, 182, 168, 238, 213, 3, 122, 135, 9, 105, 24, 248, 233, 97, 196, 95, 154, 120, 212]) }], receipt: 1414522087 }, TransactionReceipt { tx_hash: [147, 6, 141, 209, 199, 215, 154, 128, 186, 228, 152, 68, 23, 83, 110, 27, 11, 27, 110, 44, 208, 1, 136, 198, 110, 88, 240, 222, 25, 195, 74, 50], body_to_save: Some([41, 186, 243, 110, 85, 154, 120, 160, 162, 95, 193, 16, 106, 187, 69, 176, 2, 251, 202, 201, 152, 158, 214, 3, 96, 228, 176, 245, 63, 155, 90, 23, 165, 193, 12, 71, 42, 193, 239, 86, 5, 80, 250, 51, 51, 136, 39, 124, 133, 229, 26, 226, 243, 233, 155, 111, 155, 127, 196, 248, 176, 185, 174, 30, 28, 47, 186, 46, 102, 152, 104]), events: [Event { key: EventKey([61, 105, 130, 36, 183, 249, 168, 9, 86, 123, 236, 223, 251, 199, 103, 187, 227, 216, 239, 241, 55, 32, 128, 4, 159, 192, 161, 17, 147, 209, 41, 188, 97, 91, 98, 194, 154, 212, 178, 188, 152, 165, 63, 152, 174, 142, 167, 73, 10, 114, 159, 119, 30, 30, 243]), value: EventValue([180, 241, 87, 218, 72, 229, 134, 247, 69, 123, 235, 92, 152, 101, 222, 134, 98, 217, 221, 198, 181, 133, 94, 214, 195, 231, 174, 11, 90, 93, 13, 2, 120, 86, 94, 88, 107, 66, 2, 13, 176, 255, 224, 6, 178, 236, 155, 124, 2, 35, 253, 19, 91, 138, 251, 229, 241, 188, 214, 54, 58, 61, 66]) }, Event { key: EventKey([68, 173, 116, 83, 135, 38, 8, 1, 9, 251, 12, 203, 209, 192, 94, 217, 83, 206, 228, 200, 76, 185]), value: EventValue([171, 220, 195, 100, 144, 46, 31, 167, 199, 166, 38, 0, 166, 12, 39, 68, 118, 35, 234, 69, 17, 103, 248, 226, 15, 148, 74, 29, 6, 106, 102, 103, 212, 219, 49, 184, 246, 15, 214, 82, 132, 29, 45, 191, 9, 12, 157, 175, 103, 67, 153, 76, 174, 5, 187]) }, Event { key: EventKey([129, 66, 197, 5, 200, 223, 15, 98, 149, 59, 101, 135, 15, 204, 6, 90, 17, 65, 91, 169, 181, 210, 150, 169, 191, 97, 84, 137, 141, 134, 175, 211, 73, 148, 27, 173, 207, 84, 1, 111, 77, 64, 145, 175, 149, 141, 163, 105, 44, 78, 117, 159, 254, 171, 228, 132, 239, 125, 16, 202]), value: EventValue([113, 113, 65, 102, 222, 148, 89, 232, 237, 34, 115, 185, 61, 200, 227, 210, 180, 19, 176, 6, 18, 84, 64, 56, 229, 127, 225, 249, 151, 133, 132, 98, 48, 168, 189, 241, 11, 241, 171, 188, 53, 28, 67, 43, 139, 240, 116, 146, 234, 79, 66, 59]) }, Event { key: EventKey([10, 57, 113, 240, 189, 25, 105, 42, 199, 38, 75, 215, 174, 79, 141, 64, 188, 225, 218, 239, 143, 140, 225, 41, 28, 62, 67, 124, 154, 249, 144, 25, 56, 42, 221, 27, 126, 128]), value: EventValue([177, 78, 250, 86, 103, 252, 247, 49, 16, 225, 65, 202, 77, 48, 126, 1, 229, 125, 112, 66, 170, 190, 225, 97, 244, 79, 184, 57, 167, 139, 36, 184, 187, 167, 255, 71, 85, 211, 85, 192, 115, 7, 43, 187, 108, 184, 43, 240, 124, 61, 36, 236, 158, 242, 111, 60, 83, 113, 237, 184, 171, 123, 231, 28, 118, 128, 25, 164, 0, 15, 133, 54, 2, 147, 178, 81]) }, Event { key: EventKey([43, 129, 174, 29, 18, 50, 230, 29]), value: EventValue([75, 168, 60, 175, 0, 195, 68, 215, 79, 172, 171, 163, 211, 218, 216, 115, 0, 9, 64, 162, 104, 10, 162, 143]) }], receipt: 557438054 }], inner: 2149275168 }, BatchReceipt { batch_hash: [141, 173, 150, 63, 181, 167, 38, 65, 243, 228, 190, 111, 87, 103, 212, 228, 106, 150, 198, 239, 114, 131, 222, 142, 81, 207, 15, 81, 56, 30, 124, 204], tx_receipts: [], inner: 2367110022 }, BatchReceipt { batch_hash: [231, 100, 67, 55, 102, 5, 221, 55, 30, 69, 202, 38, 55, 25, 80, 207, 146, 231, 239, 155, 128, 157, 74, 59, 4, 7, 216, 74, 1, 79, 151, 225], tx_receipts: [TransactionReceipt { tx_hash: [89, 224, 83, 50, 224, 117, 48, 155, 157, 206, 193, 189, 2, 87, 216, 214, 105, 119, 172, 168, 109, 22, 251, 36, 188, 93, 232, 13, 244, 247, 35, 81], body_to_save: None, events: [Event { key: EventKey([151, 131, 61, 245, 110, 141, 237, 47, 73, 236, 200, 222, 4, 196, 30, 203, 98, 45, 235, 36, 248, 224, 221, 229, 224, 40, 225, 123, 105, 105, 35, 202, 159, 61, 188, 19, 146, 33, 216, 234, 250, 56, 35, 88, 123, 146, 34, 100, 210, 90, 189, 153, 51, 147, 97, 128, 70, 206, 200, 161, 37, 121, 131, 171, 16, 202, 171, 17, 220, 157, 206, 173, 84, 67, 244, 107, 18, 30, 17, 252, 213]), value: EventValue([149, 202, 10, 157, 171, 15, 26, 142, 84, 82, 29, 116, 109, 94, 211, 199, 6, 85, 19, 86, 7, 245, 37, 36, 9, 40, 156, 158, 139, 114, 87, 133, 33, 125, 110, 18, 50, 184, 81, 164, 124, 82, 184, 164, 114, 151, 215, 91, 109, 151, 46, 24, 115, 201, 203, 58, 16, 94, 83, 48, 190, 241, 115, 192, 153, 99, 45, 44, 216, 25, 90, 40, 89, 2, 211, 230, 162, 112, 208, 134, 216, 139, 254, 149, 129, 10, 25, 192, 11, 40, 132, 54, 51, 96]) }], receipt: 1431408058 }, TransactionReceipt { tx_hash: [245, 248, 82, 233, 192, 65, 221, 20, 207, 105, 142, 47, 117, 62, 134, 209, 26, 55, 210, 143, 111, 76, 97, 12, 151, 40, 10, 28, 127, 193, 201, 15], body_to_save: Some([55, 127, 240, 246, 218, 174, 39, 67, 61, 217, 39, 234, 179, 81]), events: [Event { key: EventKey([228, 130]), value: EventValue([208, 121, 40, 210, 146, 72, 201, 203, 216, 157, 3, 36, 104, 39, 41, 109, 177, 101, 34, 143, 61, 251, 27, 56, 29, 115, 121, 20, 102, 216, 76, 172, 180, 81, 183, 117, 117, 183, 90, 6, 140, 20, 3, 225, 105, 118, 209, 179, 5, 123, 188, 32, 19, 187, 43, 241, 252, 252, 140, 3, 112, 240, 0, 199, 98, 23, 125, 83, 57, 119, 96, 213, 98, 203, 80, 128, 8, 100, 111, 183, 193, 251, 129, 133]) }, Event { key: EventKey([205, 248, 151, 191, 210, 13, 203, 179, 62, 206, 241, 84, 32, 167, 156, 55, 169, 58, 189, 145, 242, 137, 250, 231, 205, 69, 151, 211, 55, 251, 163, 216, 88, 193, 85, 98, 139, 88, 96, 20, 147, 179, 139, 218, 115, 245, 44, 8, 244, 245, 119, 136, 70, 92, 157, 15, 161, 61, 176, 224, 2, 190, 52, 239, 235, 151]), value: EventValue([118, 38, 204, 75, 160, 150, 127, 99, 229, 161, 111, 230, 254, 165, 82, 26, 222, 58, 24, 25, 133, 177, 230, 111, 113, 243, 124, 186, 165, 187, 37, 147]) }, Event { key: EventKey([72, 122, 140, 154, 200, 104, 144, 215, 74, 150, 107, 204, 10, 94, 100, 238, 116, 87, 144, 59, 195, 66]), value: EventValue([90, 129, 39, 217, 246, 136, 134, 60, 60, 140, 28, 141, 196, 72, 187, 68, 11, 155, 198, 190, 136, 235, 188, 139, 169, 127, 176, 0, 12, 83, 141, 15, 50, 116, 46, 146, 104, 62, 109, 90, 12, 29, 93, 228, 100, 43, 138, 254, 202, 129, 236, 16, 126, 196, 230, 167, 143, 180, 64, 10, 38, 31, 218]) }, Event { key: EventKey([96, 238, 214, 13, 165, 129, 60, 111, 39, 162, 119, 128, 246, 97, 7, 140, 69, 27, 193, 58, 54, 111, 20, 95, 171, 96, 146, 239, 139, 36, 32, 108, 109, 151, 179, 237, 172, 158, 83, 201, 64, 41, 48, 98, 248, 142, 63, 92, 163, 13, 27, 187, 208, 185, 128, 76, 116, 213, 198, 81, 84, 198, 168, 78, 228, 119, 184, 46, 241, 26, 215, 231, 88, 18, 101, 177, 48, 251, 59, 175, 129, 188, 203, 114, 99, 233, 75, 226, 237, 164, 231, 244, 57, 152, 69, 103]), value: EventValue([152, 65, 44, 220, 49, 94, 246, 106, 237, 90, 36, 14, 109, 3, 242, 6, 76, 181, 9, 29, 168, 137, 174, 55, 185, 210, 185, 36, 182, 76, 68, 3, 163, 215, 102, 82, 71, 232, 82, 71, 49, 23, 226, 98, 14, 123, 96, 109, 216, 74, 176, 22, 82, 36, 194, 32, 246, 5, 0, 81, 26, 91, 140, 76, 192, 109, 72, 122]) }, Event { key: EventKey([81, 151, 176, 108, 246, 183, 115]), value: EventValue([94, 38, 192, 18, 254, 207, 251, 229, 21, 34, 50, 152, 152, 54, 173, 195, 63, 255, 230]) }, Event { key: EventKey([242, 222, 228, 73, 170, 94, 74, 188, 216, 173, 194, 159, 247, 153, 92, 253, 166, 191, 222, 196, 17, 14, 171, 18, 19, 7, 234, 202]), value: EventValue([110, 209, 169, 102, 206, 203, 67, 148, 15, 236, 73, 220, 129, 158, 109, 237, 109, 194, 42, 242, 225, 66, 70, 92, 110, 233, 102, 158, 62, 84, 238, 28, 57, 159, 198, 61, 21]) }, Event { key: EventKey([201, 121, 70, 143, 123, 110, 137, 226, 224, 196, 40, 247, 148, 241, 71, 19, 79, 26, 253, 254, 191, 56, 226, 44, 204, 126, 26, 138, 166, 18, 120, 175]), value: EventValue([32, 223, 10, 11, 192, 96, 37, 168, 248, 249, 113, 34, 108, 21, 159, 20, 31, 130, 61, 35, 189, 86, 39, 186, 78, 48, 20, 97, 185, 171, 89, 205, 167]) }], receipt: 629863073 }, TransactionReceipt { tx_hash: [36, 211, 219, 231, 73, 205, 1, 75, 114, 118, 141, 125, 119, 189, 90, 167, 45, 20, 139, 88, 207, 229, 80, 138, 222, 131, 252, 102, 244, 26, 135, 128], body_to_save: Some([161, 67, 88, 122, 201, 252, 244, 40, 194, 237, 65, 118, 255, 186, 190, 84, 214, 236, 188, 69, 42, 75, 244, 212, 101, 99, 141, 204, 225, 69, 120, 105, 100, 178, 95, 111, 83, 3, 233, 62, 93, 138, 218, 95]), events: [Event { key: EventKey([69, 89, 0, 147, 196, 24, 218, 218, 225, 7, 51, 228, 111, 49, 188, 4, 142, 108, 101, 19, 190, 180, 122, 167, 165, 208, 158, 253, 169, 131, 102, 55, 230, 234, 16, 188, 100, 53, 31, 207, 149, 187, 136, 45, 57, 20, 69, 10, 36, 90, 242, 182, 121, 70, 32, 146, 31, 181, 167, 153, 26]), value: EventValue([118, 154, 49, 182, 205, 59, 216, 253, 132, 215, 182]) }, Event { key: EventKey([43, 169, 56, 47, 205]), value: EventValue([207, 135]) }, Event { key: EventKey([181, 173]), value: EventValue([56, 18, 22, 90, 13, 47, 66, 14, 39, 125, 196, 192, 216, 178, 227, 208, 131, 240, 57, 90]) }, Event { key: EventKey([244, 243, 175, 239, 174, 95, 162, 8, 219, 207, 7, 147, 28, 133, 203, 70, 131, 113, 191, 214, 200, 239, 71, 12, 82, 200, 225, 188, 245, 40]), value: EventValue([120, 66, 188, 140, 196, 38, 133, 138, 64, 208, 14, 145, 78, 224, 220, 100, 88, 92, 2, 124, 130, 2, 76, 41, 98, 237, 49, 201, 40, 224, 52, 48, 200]) }, Event { key: EventKey([122]), value: EventValue([4, 28, 135, 237, 88, 238, 148, 97, 196, 72, 106, 66, 181, 221, 245, 2, 20, 39, 238, 41, 109, 31, 206, 98, 228, 16, 184, 55, 55, 66, 231, 140, 154, 199, 82, 6, 159, 67, 147, 30, 220, 251, 160, 161, 172, 163, 48, 113, 26, 86, 231, 193, 231, 97, 60, 128, 111, 74, 235, 10, 64, 9, 195, 179, 31, 130]) }, Event { key: EventKey([23, 148, 32, 121, 214, 115, 111, 134, 221, 164, 118, 56, 10, 144, 15, 198, 33]), value: EventValue([169, 211, 153, 55, 218, 127, 69, 186, 30, 164, 216, 63, 146, 12, 87, 254, 62, 115, 157, 17, 176, 196, 118, 184]) }, Event { key: EventKey([144, 11, 105, 252, 27, 106, 212, 33, 56, 181, 63, 149, 248, 96, 51, 88, 100, 148, 248, 152, 14, 196, 235, 65, 153, 53, 237, 113, 39, 29, 254, 250, 21, 236, 87, 155, 140, 149, 249, 154, 59, 189, 7, 189, 176, 183, 89, 70, 119, 141, 164, 180, 112, 211, 91, 68, 173, 34, 10, 232, 53, 31, 102, 129, 92, 65, 155, 185, 71]), value: EventValue([192, 233, 33, 66, 79, 23, 49, 18, 92, 147, 131, 25, 10, 75, 222, 177, 190, 184, 232, 202, 188, 3, 108, 164, 139, 158, 167, 204, 88, 123, 69, 207, 238, 116, 104, 233, 219, 2, 120, 251, 59, 36, 183, 18, 218, 43, 254, 51, 128, 132, 191, 115, 34, 243, 89, 229, 157, 230, 77, 96, 46, 242, 99, 8, 163, 57, 172, 18, 196, 121, 240, 30, 194, 64, 124, 26]) }], receipt: 493716705 }, TransactionReceipt { tx_hash: [79, 85, 253, 247, 157, 54, 209, 238, 211, 152, 27, 55, 56, 143, 153, 252, 189, 155, 254, 177, 194, 57, 126, 98, 212, 105, 208, 196, 171, 4, 106, 188], body_to_save: Some([172, 151, 31, 39, 236, 120, 246, 112, 247, 4, 40, 23, 52, 221, 243, 4, 181, 222, 122, 70, 237, 216, 27, 38, 17, 164, 62, 212, 154, 24, 99, 22, 164, 245, 173, 103, 198, 80, 62, 77, 153, 207, 139, 55, 163, 57, 189, 201, 22, 38, 113, 124, 1, 200, 67, 37, 6, 39, 233, 27, 134, 99, 3, 140, 95, 70, 214, 244, 3, 56, 62, 144, 207]), events: [Event { key: EventKey([115, 246, 247, 41, 154, 135, 41, 52, 98, 181, 220, 76, 62, 145, 131, 106]), value: EventValue([60, 91, 252, 66, 236, 225, 43, 211, 184, 247, 166, 200, 5, 76, 150, 85, 108, 171, 42, 230, 128, 182, 206, 30, 237, 95, 222, 67, 87, 60, 75, 137, 178, 187, 52, 151, 235, 245, 200, 56, 213, 238, 227, 137, 231, 35, 233, 156, 179, 200, 247, 244, 71]) }, Event { key: EventKey([35, 77, 154, 238, 183, 159, 119, 104, 26, 16, 145, 240, 44, 32, 139, 115, 180, 157, 120, 249, 148, 171, 134, 3, 206, 102, 131, 82, 54, 254, 241, 78, 43, 2, 190, 205, 197, 12, 161, 108, 138, 53, 16, 231, 76, 184, 83, 82, 49, 218, 151, 124, 92]), value: EventValue([208, 245, 171, 237, 139, 199, 112, 221, 63, 223, 27, 234, 151, 11, 137, 26, 117, 127, 151, 244, 5, 106, 118, 22, 202, 150, 214]) }, Event { key: EventKey([196, 251, 109, 31, 46, 241, 6, 168, 200, 250, 103, 210, 109, 251, 66, 60, 28, 62, 111, 254, 242, 62, 230, 162, 60, 139, 97, 125, 103, 238, 17, 18, 50, 246, 8, 205, 241, 159, 171, 133, 88, 15, 157, 139, 213, 237, 105, 183]), value: EventValue([28, 26, 104, 19, 110, 15, 18, 71, 58, 95, 150, 85, 99, 184, 43, 164, 143, 221, 76, 66, 83, 139]) }, Event { key: EventKey([226, 84, 51, 148, 59, 27, 164, 97, 233, 216, 117, 92, 92, 221, 22, 57, 6, 25, 178, 240, 118, 7, 140, 204, 196, 108, 9, 148, 223, 18, 150, 153, 15, 126, 4, 167, 191, 96, 5, 243, 185, 6, 79, 219, 212, 106, 252, 199, 104, 216, 218, 127, 170, 45, 52]), value: EventValue([44, 91, 80, 15, 113, 133, 94, 107, 248, 95, 85, 207, 93, 131, 32, 154, 135, 15, 219, 90, 52, 167, 191, 137, 43, 238, 157, 74, 117, 166, 255, 152, 191, 147, 135, 201, 104, 241, 6, 210, 228, 148, 35, 102, 156, 75, 120, 197, 70, 95, 53, 93, 56, 248, 84, 46, 213]) }, Event { key: EventKey([61, 29, 45, 196, 30, 30, 135, 202, 170, 58, 62, 122, 238, 226, 82, 255, 224, 96, 191, 34, 187, 142, 155, 153, 119, 90, 166, 119, 163, 34, 20, 144, 196, 111, 123, 96, 89, 122, 31, 204, 133, 32, 36, 139, 189, 44, 19, 215, 219, 128, 81, 3, 47, 87, 95, 69, 29, 79]), value: EventValue([223, 82, 76, 202, 40, 143, 38, 244, 130, 146, 81, 247, 152, 255, 152, 193, 240, 75, 92, 213, 186, 231, 82, 37, 12, 80, 47, 68]) }, Event { key: EventKey([24, 56, 112, 158, 246, 244]), value: EventValue([191, 52, 153, 178, 57, 27, 107, 54, 145, 199, 32, 52, 126, 196, 209, 143, 86, 250, 175, 215, 127, 190, 112, 254, 99, 94, 182, 146, 189, 119, 173, 168, 98, 32, 71, 187, 23, 198, 230, 79, 142, 91, 123, 42, 23, 227, 1, 48, 220, 62, 1, 113, 2, 136, 51, 206, 180, 130, 132, 154, 45, 193, 39, 58, 34, 95, 65, 17, 118, 113, 65, 205, 68, 52, 114, 115, 130, 108, 49, 153, 200, 138, 119, 22, 179, 123, 29, 110, 96]) }], receipt: 743026242 }, TransactionReceipt { tx_hash: [46, 80, 134, 110, 171, 152, 50, 143, 117, 120, 173, 241, 40, 10, 140, 31, 211, 147, 25, 152, 46, 101, 144, 67, 185, 104, 97, 19, 16, 66, 204, 181], body_to_save: Some([230, 84, 212, 91, 217, 164, 15, 1, 154, 38, 97, 157, 5, 177, 214, 241, 105, 16, 106, 141, 213, 118, 132, 27, 50, 227, 171, 52, 173, 114, 224, 196, 175, 126, 1, 130, 159, 19, 184, 157, 37, 42, 87, 44, 219, 247, 203, 98, 214, 21]), events: [Event { key: EventKey([221, 227, 227, 133, 87, 78, 143, 72, 212, 42, 38, 81, 213, 102, 120, 195, 90, 10, 228, 94, 101, 156, 90, 91, 87, 186, 91, 85, 10, 2, 237, 228, 34, 254, 131]), value: EventValue([111, 210, 147, 182, 25, 80, 165, 99, 50, 132, 25, 121, 167, 5, 44, 226, 183, 248, 141, 91, 31, 61, 38, 154, 177, 233, 211, 98, 107, 29, 36, 5, 51, 242, 87, 30, 196, 62, 49, 195, 223, 245, 244, 163, 3, 69, 57, 129, 126, 36, 40]) }, Event { key: EventKey([220, 40, 64, 23, 113, 86, 67, 254, 153, 184, 96, 74, 164, 79, 115, 68, 60, 182, 66, 164, 134, 5, 76, 115, 18, 48, 117, 67, 229, 29, 23, 203, 96, 151, 205, 71, 209, 73, 9, 38, 7, 172, 184, 57, 82, 49]), value: EventValue([127, 230, 236, 33, 153, 86, 183, 238, 141, 220, 195, 194, 188, 182, 198, 22, 165, 115, 214, 4, 127, 182, 66, 100, 100, 198, 25, 160, 188]) }, Event { key: EventKey([75, 251, 226, 64, 28, 54, 135, 64, 206, 152, 59, 193, 183, 39, 121, 126, 168, 1, 2, 199, 100, 14, 141, 191, 199, 194, 181, 67, 227, 163, 199, 116, 12, 101, 187, 150, 167, 121, 5, 91, 104, 244, 153, 81, 16, 205, 81, 112, 44, 86, 104, 110, 65, 12, 89, 174, 76, 77, 217, 95, 212, 102, 253, 221, 167, 73, 188, 184, 65]), value: EventValue([206, 246, 65, 234, 152, 104, 117, 175, 164, 76, 114, 234, 9, 135, 74, 180, 38, 47, 221, 31, 76, 41, 1, 20, 87, 193, 180, 78, 151, 226, 183, 131, 67]) }, Event { key: EventKey([77, 92, 253, 162, 7, 208, 254, 211, 7, 142, 112, 235, 158, 245, 227, 49, 24, 86, 179, 143, 251, 76, 124, 85, 130, 28, 35, 207, 11, 218, 188, 55, 32, 150, 51, 135, 150, 45, 250, 221, 111, 209, 87, 75, 243, 249, 221, 50, 9, 108, 170, 119, 131, 87, 211, 192, 177, 124, 98, 234, 64, 249, 97]), value: EventValue([218, 95, 18, 135, 65, 115, 6, 179, 195, 217, 213, 97, 156, 171, 118, 195, 1, 14, 137, 62, 27, 90, 154, 154, 142, 235, 193, 92, 208, 54, 243, 125, 103, 83, 124, 254, 85, 77, 166, 65, 91, 14, 13, 123, 139, 248, 51, 109, 54, 80, 155, 234, 216, 138, 175, 198, 149, 194, 42, 64, 82, 229, 58, 162, 222, 127]) }, Event { key: EventKey([170, 115, 149, 181, 10, 119, 42, 237, 214, 12, 119, 19, 37, 198, 131, 193, 177, 79, 5, 1, 217, 39, 253, 128, 143, 221, 80, 154, 47, 62, 130, 16, 59, 83, 151, 246, 212, 44, 166, 40, 42, 37, 250, 85, 3, 191, 240, 111, 226, 87, 235, 198, 104, 65, 249, 91, 52, 171, 169, 23, 111, 188, 117, 233, 101, 159, 177, 91, 39, 202, 244, 196, 180, 24, 55, 29, 179, 57]), value: EventValue([34, 156, 218, 195, 134, 110, 15, 236, 188, 53, 158, 77, 220, 35, 27, 232, 238, 64, 76, 52, 130, 219, 117, 128, 29, 84, 8, 234, 179, 137, 18, 183, 105, 84, 112, 155, 239, 208, 242]) }, Event { key: EventKey([220, 43, 44, 103, 131, 15, 100, 186, 231, 194, 202, 227, 89, 35, 195, 104, 69, 99, 254, 180, 64, 87, 19, 80, 203, 196, 17, 49, 145, 137, 213, 110, 66, 121, 154, 120, 92, 37, 46, 220, 125, 169, 180, 120, 15, 158, 253, 251, 99, 65, 240, 70, 35, 32, 75, 160, 81, 218, 75, 198, 209, 246, 160, 145, 197, 88, 22, 212, 142, 174, 183, 95, 25, 21, 165, 220, 157, 70, 211, 188, 173, 136, 137, 10, 55, 170]), value: EventValue([159, 41, 130, 136, 90, 34, 138, 246, 28, 253, 2, 99, 170, 116, 115, 249, 155, 154, 86, 84, 51, 229, 250, 97, 145, 199, 127, 255, 112, 93, 125, 38, 199, 56, 1, 237, 106, 220, 44, 110, 218, 83, 208, 158, 58, 16, 79, 98, 30, 105, 50, 202]) }, Event { key: EventKey([180, 79, 63, 227, 145, 234, 143, 145, 11, 119, 94, 241, 127, 125, 148, 103, 189, 164, 109, 141, 203, 105, 243, 86, 39, 96, 200, 183, 35, 50, 150, 201, 85, 219, 79, 88, 119, 103, 138, 215, 204, 140, 227, 36, 44, 39, 23, 84, 107, 74, 230, 209, 108, 98, 169, 162, 238, 105, 145, 187, 209, 106, 144, 149, 123, 71, 156, 187, 170, 115, 166, 242, 8, 148, 159, 206, 240, 83, 76, 136, 166, 99, 67, 44, 47, 208, 251, 114, 133, 124]), value: EventValue([66, 248, 163, 202, 42, 61, 123, 238, 17]) }, Event { key: EventKey([67, 153, 4, 186, 234, 143, 5, 114, 100, 252, 25, 160, 123, 125, 124, 27, 40, 59, 167, 52, 30, 39, 199, 128, 214, 161, 148, 116, 64, 129, 143, 175, 132, 125, 193, 58, 116, 47, 235, 27, 236, 217, 51, 126, 138, 221, 196, 54, 37, 215, 229, 60, 161, 251, 72, 55, 236, 7, 33, 18, 222, 154, 103]), value: EventValue([200, 139, 81, 24, 206, 102, 169, 197, 56, 195, 21]) }, Event { key: EventKey([44, 69, 254, 71, 114, 241, 23, 53, 213, 127, 185, 223, 143, 155, 100, 216, 148, 81, 205, 174, 255, 150, 98, 151, 227, 116, 71, 75, 43, 24, 42, 110, 197, 18, 144, 44, 151, 126, 117, 154, 106, 142, 230, 53, 192, 164, 12, 238, 100, 40, 27, 167, 138, 32, 88, 96, 55, 186, 157, 79, 168, 130, 252, 88, 150, 235, 209, 77, 139]), value: EventValue([194, 148, 113, 225, 95, 166, 183, 110, 110, 18, 246, 38, 197, 72, 56, 79, 107, 226, 59, 35, 85, 98, 43, 43, 75, 242, 155, 227, 196, 191, 88, 253, 95, 97, 108, 170, 192, 18, 63, 10, 6, 217, 24, 246, 252, 235, 146, 86, 134, 38, 226, 147, 123, 228, 95, 227, 97, 248, 161, 147, 71, 198, 221, 81, 7]) }], receipt: 980827018 }, TransactionReceipt { tx_hash: [194, 181, 216, 127, 163, 61, 10, 60, 8, 108, 250, 59, 191, 75, 209, 247, 164, 26, 194, 223, 242, 189, 2, 43, 232, 16, 85, 222, 55, 233, 36, 56], body_to_save: Some([223, 23, 131, 142, 196, 149, 232, 239, 63, 230, 170, 252, 148, 87, 202, 110, 197, 136, 237, 253, 248, 215, 93, 0, 97, 85, 202, 208, 8, 60, 139, 18, 68, 87, 121, 111, 252, 245, 212, 47, 181, 77, 188, 13, 44, 221, 92, 249, 93, 209, 4, 13, 119, 5, 142, 154, 112, 53, 105, 198, 196, 218, 228, 70, 220, 81, 221, 10, 55, 143, 132, 58, 81, 81, 223]), events: [Event { key: EventKey([210, 129, 148, 205, 9, 25, 65, 242, 78, 18, 135, 45, 51, 104, 255, 116, 205, 235, 47, 191, 156, 143, 206, 205, 229, 73, 191, 175, 118, 22, 47]), value: EventValue([181, 109, 54, 143, 110, 12, 234, 85, 187, 83, 104, 42, 56, 87, 42, 114, 102, 184, 114, 183, 0, 122, 210, 6, 236, 137, 151, 230, 78, 204, 196, 95, 42, 203, 109, 93, 6, 51, 47, 225, 37, 13, 105, 99, 186, 84, 151, 115, 195, 199, 67, 109, 161, 194, 201, 31, 75, 16, 88, 30, 81, 219, 52, 231, 39, 52, 2, 61, 1, 63, 40, 166]) }, Event { key: EventKey([28, 90, 157, 90, 230, 117, 240, 206, 229, 116, 230, 150, 81, 134, 209, 2, 242, 62, 96, 163, 58, 38, 201, 14, 40, 124, 250, 144, 64, 52, 95, 192, 141, 236, 40, 32, 50, 242, 87, 212, 62, 36, 103, 120, 93, 43, 239, 248, 81, 187, 39, 182, 3, 244, 53, 66, 108, 62, 120, 253, 255, 167, 176, 25, 187, 13, 140, 39, 137, 14, 10, 18, 95, 69, 119, 147, 91, 40, 15, 27, 23, 130, 23, 13, 183, 170, 252, 61, 139, 34, 146, 206]), value: EventValue([167, 185, 14, 238, 190, 183, 145, 233, 237, 235, 16, 6, 206, 141, 46, 130, 77, 193, 169, 5, 101, 79, 95, 28, 117, 243, 212, 71, 45, 23, 3, 116, 155, 53, 233, 161, 129, 92, 197, 32, 170]) }, Event { key: EventKey([8, 82, 70, 232, 112, 78, 69, 130, 56, 251, 226, 68, 236, 14, 239, 53, 84, 207, 249, 172, 37, 10, 6, 211, 42, 234, 53, 168, 57, 151, 77, 12, 78, 60, 109, 249, 67, 246, 10, 230, 150, 20, 30, 211, 2, 118, 19, 115, 195, 222, 253, 227, 130, 240, 197, 244, 214, 179, 46, 143, 47, 139, 185, 41, 41, 149, 238, 161, 81, 221, 174, 182, 127, 254, 139, 175, 231]), value: EventValue([127, 69, 209, 43, 78, 31, 110, 240, 254, 65, 154, 195, 149, 151, 214, 199, 155, 141, 208, 76, 250, 230, 90, 132, 112, 192, 54, 99, 176, 68, 125, 247, 192, 54, 66, 204, 124, 58, 36, 86, 235, 126, 167, 81]) }, Event { key: EventKey([52, 6, 174, 11, 68, 236, 201, 133, 132, 93, 141, 154, 20, 193, 28, 39, 117, 78, 73, 113, 224, 167, 246, 95, 37, 25, 30, 132, 36, 36, 209, 123, 205, 177, 51, 74, 126, 41, 180, 241, 217, 217, 61, 105, 26, 205, 154, 92, 23, 187, 183, 239, 96, 144, 217, 25, 92, 246, 24]), value: EventValue([112, 249, 46, 175, 140, 26, 188, 20, 255, 11, 38, 145, 128, 203, 161, 85, 206, 107, 93, 8, 42, 130, 54, 176, 5]) }, Event { key: EventKey([176, 84, 36, 223, 199, 58, 241, 115, 68, 83, 178, 36, 68, 35, 19, 122, 142, 243, 151, 104, 181, 220, 137, 221, 166, 151, 142, 193, 179, 251, 243, 1, 103, 176, 9, 202, 113, 83, 163, 217, 9, 253, 167, 188, 230, 30, 68, 34, 152, 11, 213, 29, 201, 244, 100, 141, 63, 86, 198, 157, 29, 210, 53, 207, 95, 112, 105, 237, 126]), value: EventValue([239, 241, 161, 58, 187, 228, 48, 135, 35, 239, 237, 104, 242, 94, 198, 166, 249, 243, 103, 177, 145, 150, 94, 252, 172, 236, 248, 83, 7, 56, 134, 147, 76, 87, 50, 171, 251, 204]) }, Event { key: EventKey([157, 181, 30, 179, 163, 209, 83, 17, 127, 184, 62, 244, 139, 180, 101, 162, 130, 243, 150, 226, 61, 120, 166, 66, 27, 120, 89, 211, 98, 179, 202, 167, 135, 173, 202, 124, 12, 250, 144, 125, 202, 206, 240, 252, 122, 202, 63, 181, 16, 129, 76, 220, 6, 29, 129, 208, 19, 219, 33, 219, 185, 222, 159, 82, 54, 176, 235, 32, 105, 115, 194, 192, 143]), value: EventValue([135, 223, 32, 84, 112, 144, 150, 196, 35, 143, 172, 233, 212, 91, 247, 70, 212, 139, 16, 223, 85, 1, 77, 156, 67, 203, 160, 253, 139, 88, 191, 146, 38, 233, 150, 94, 114, 86, 212, 202, 121, 67, 78, 121, 195, 0, 229, 198, 173, 186, 120, 204, 33, 240, 80, 63, 201, 228, 79, 137, 159, 32, 212, 242, 6, 171, 35, 162, 125, 214, 5, 227, 55, 215, 35, 190, 103, 16, 160, 114, 229, 131, 164, 171]) }], receipt: 1377162904 }, TransactionReceipt { tx_hash: [87, 56, 101, 139, 184, 99, 44, 165, 184, 185, 4, 136, 3, 204, 110, 182, 183, 126, 240, 178, 154, 8, 158, 19, 37, 175, 58, 65, 200, 245, 208, 66], body_to_save: None, events: [Event { key: EventKey([190, 184, 70, 127, 146, 93, 142, 222, 52, 130, 180, 220, 124, 98, 63, 30, 220, 35, 15, 104, 183, 18, 113, 151, 44, 56, 20, 8, 227, 71, 11, 102, 67, 253, 206, 78, 224, 220, 88, 195]), value: EventValue([89, 227, 252, 164, 192, 195, 20, 131, 116, 160, 101, 26, 237, 220, 4, 165, 172, 12, 189, 254, 196, 213, 77, 208, 158, 41, 234, 250, 25, 79, 18, 140, 35, 77, 234, 238, 169, 191, 62, 91, 95, 50, 1, 137, 150, 116, 52, 143, 185, 207, 72, 201, 147, 84, 219, 41, 239, 75, 203, 150, 53, 124, 84, 163, 26, 165, 70, 254, 11, 39, 127, 112, 103, 65, 28, 245, 44, 235, 82, 226]) }, Event { key: EventKey([14, 3, 174, 8, 19, 155, 195, 124, 192, 105, 183, 234, 89, 10, 57, 149, 44, 242, 141, 247, 18, 231, 205, 121, 221, 30, 142, 159, 183, 82, 141, 14, 96, 25, 55, 202, 5, 20, 48, 83, 134, 69, 149, 37, 153, 251, 51, 227, 156, 198, 209, 102, 129, 33, 130, 143, 5, 199, 151, 139, 52, 6, 41, 85, 187, 8, 225, 158, 101]), value: EventValue([251, 150, 203, 118, 205, 99, 72, 48, 153, 5, 107, 195, 43, 76, 38, 192, 111, 92, 81, 62, 12, 123, 243, 8, 24, 37, 185, 51, 203, 155, 57, 110, 48, 25, 30, 200, 110, 159, 155]) }, Event { key: EventKey([181, 7, 179, 108, 110, 78, 32, 155, 34, 215, 64, 162, 64, 197, 192, 242, 77, 108, 208, 216, 73, 40, 195, 111, 105, 189, 30]), value: EventValue([128, 145, 52, 195, 144, 33, 76, 203, 237, 61, 51, 40, 121, 6, 186, 86, 55, 62, 15, 233, 3, 97, 169, 132, 180, 169, 148, 3, 244, 255, 238, 128, 176, 135, 25, 99, 14, 49, 236, 80, 162, 164, 228, 160, 233, 115, 2, 94, 70, 90, 177, 207, 137, 72, 234, 245, 236, 48, 72, 30]) }, Event { key: EventKey([53, 155, 160, 82, 20, 68, 90, 221, 251, 141, 148, 255, 54, 117, 91, 177, 85, 174, 187, 76, 120, 105, 37, 240, 94, 190, 114, 180, 148, 120, 240, 130, 4, 103, 40, 160, 151, 247, 6, 239, 5, 247, 162, 145, 153, 5, 247, 6, 139, 26, 79, 67, 254, 191, 96, 41, 174, 196, 186, 13, 239, 17, 81]), value: EventValue([24, 20, 152, 171, 170, 249, 231, 60, 230, 155, 229, 22, 139, 240, 7, 212, 211, 77, 74, 95, 127, 252, 73, 156, 244, 24, 143, 92, 67, 41, 68, 227, 17, 5, 118, 151, 192, 253, 191, 160, 104, 34, 215, 2, 49, 238, 66, 206, 77, 167, 45, 157, 23, 56, 32]) }, Event { key: EventKey([20, 168, 187, 108, 219, 228, 111, 113, 90, 102, 245, 134, 71, 181, 12, 208, 163, 187, 171, 117, 99, 190, 164, 22, 164, 253]), value: EventValue([74, 230, 122, 199, 231, 122, 101, 136, 71, 232, 247, 194, 47, 47, 125, 106, 25, 70, 112, 239, 7, 86, 66, 209, 165, 7, 212, 23, 229, 79, 24, 170, 13, 70, 191, 100, 124, 177, 136, 222, 80, 90, 149, 139, 160, 223, 217, 125, 37, 100, 231, 240, 121, 104, 22, 17, 30, 188, 107, 141, 28, 240, 178, 171, 210, 70, 181, 81, 66, 250, 92, 149, 26, 142, 181, 105, 107, 141, 205, 113, 187, 59, 111, 37, 203, 207]) }, Event { key: EventKey([40, 73, 205, 45, 8, 27, 221, 176, 225, 48, 47, 187, 228, 159, 95, 155, 189, 50, 209, 187, 13, 132, 11, 184, 25, 37, 185, 23, 10, 180]), value: EventValue([35, 98, 245, 44, 20, 63, 211, 129, 115, 75, 198, 67, 223, 246, 218, 107, 217, 60, 28, 189, 25, 232, 40, 236, 168]) }, Event { key: EventKey([26, 107, 139, 97, 112, 187, 149, 222, 132, 148, 41, 43, 84, 117, 193, 226, 123, 164, 141, 30, 64, 41, 144, 205, 199, 63, 17, 29, 252, 197, 76, 249, 42, 13, 135, 98, 106, 186, 84, 146, 44, 244, 102, 114, 252, 166, 177, 240, 0, 222, 47, 10, 49, 173, 194, 45, 96, 32, 79, 103, 156, 78, 48, 45, 38, 243, 9, 12, 186, 179, 243, 238, 160, 90, 94, 155, 14, 64, 229]), value: EventValue([227, 193, 249, 107, 81, 166, 164, 219, 93, 244, 81, 71, 213, 37, 94, 27, 229, 218, 158, 3, 144, 172, 79, 56, 72, 74, 134, 99, 46, 84, 19, 249, 119, 143, 140, 245, 92, 192, 93]) }, Event { key: EventKey([47, 87, 224, 110, 32, 146, 38, 108, 125, 72, 49, 229, 156, 158, 214, 65, 206, 112, 106, 72, 157, 158, 209, 118, 238, 174, 135, 123, 58]), value: EventValue([247, 238, 96, 20, 128, 79, 122, 193, 54, 108, 151, 203, 163, 255, 31, 96, 202, 193, 161, 116, 203, 157, 43, 65, 103, 218, 82, 244, 16, 11, 217, 178, 62, 24, 9, 176, 154, 137, 109, 24, 169, 227, 197, 0, 132, 93, 158, 52, 214, 29, 192, 119, 110, 67, 101, 78, 47, 83, 139, 68, 10, 138, 185, 252, 76, 21, 213, 99, 73, 228, 90, 103, 207, 115, 185, 1, 43, 71, 251, 253, 108, 203, 201, 175, 13, 180, 139, 232, 134, 212, 199, 5]) }], receipt: 3585422578 }], inner: 3982688025 }, BatchReceipt { batch_hash: [145, 44, 159, 154, 58, 196, 34, 209, 148, 93, 101, 198, 52, 142, 112, 143, 122, 217, 230, 9, 146, 238, 197, 204, 142, 80, 194, 231, 166, 101, 240, 129], tx_receipts: [TransactionReceipt { tx_hash: [137, 54, 102, 32, 17, 87, 239, 229, 182, 169, 82, 231, 160, 231, 192, 108, 229, 235, 144, 237, 152, 101, 229, 108, 14, 130, 6, 14, 102, 203, 122, 186], body_to_save: None, events: [Event { key: EventKey([251, 234, 232, 105, 41, 244, 61, 183, 88, 206, 59, 125, 56, 86, 77, 157, 8, 237, 116, 252, 7, 145, 153, 77, 129, 164, 75, 147, 204, 105, 179, 194, 15, 183, 143, 78, 107, 7, 226, 134, 184, 111, 126, 156, 190, 230, 180, 60, 12, 199]), value: EventValue([110, 81, 167, 52, 247, 82, 228, 156, 44, 120, 30, 45, 163, 70, 206, 180, 70, 254, 89, 225, 185, 6, 74, 87, 100, 212, 215, 199, 216, 128, 117, 129, 83, 176, 41, 14, 103, 184, 118, 141, 70, 168, 2, 85, 233, 146, 118, 220, 170, 102, 161, 212, 27, 131, 107, 229, 2, 222, 173, 76, 123, 7, 122, 32, 2, 253, 22, 215, 159, 28, 66, 192, 232, 202, 124]) }, Event { key: EventKey([4, 23, 230, 22, 159, 74, 130, 56, 93, 64, 251, 173, 71, 42, 91, 52, 189, 130, 153, 187, 43, 164, 84, 205, 29, 210, 81, 123, 14, 168, 104, 141, 121, 113, 216, 81, 129, 248, 104, 239, 163, 130, 11, 124, 222, 12, 19, 1, 20, 140, 25, 79, 63, 205, 38, 203, 85, 82, 124, 108, 219, 242, 47, 37, 113, 157, 57, 19, 133, 150, 123, 10, 14, 91]), value: EventValue([195, 81, 165, 16, 107, 66, 76, 247, 247, 88, 65, 211, 140, 34, 165, 245, 86, 10, 204, 192, 247, 155, 198, 226, 117, 234, 58, 171]) }, Event { key: EventKey([139, 55, 35, 188, 207, 51, 246, 169, 166, 99, 90, 41, 6, 126, 177, 93, 32, 176, 242, 156, 254, 75, 141, 91, 135, 4, 72, 59, 167, 22, 38]), value: EventValue([64, 243]) }, Event { key: EventKey([125, 201, 206, 23, 109, 187, 18, 119, 124, 130, 169, 35, 103, 142, 201, 195, 241, 236, 121, 38, 64, 4, 23, 91, 118, 151, 87, 172, 170, 112, 69, 170, 49, 184, 56, 192]), value: EventValue([148, 46, 184, 75, 224, 108, 29, 150, 81, 141, 89, 11, 109, 158, 1, 228, 148, 224, 176, 9, 229, 107, 14, 24, 240, 172, 7, 140, 34, 255, 41, 113, 52, 159, 230, 195, 203, 144, 128, 45, 137, 62, 99, 211, 240, 80, 225, 46, 216, 58, 226, 86, 194, 186, 214, 177, 178, 139, 38, 55, 110, 188, 29, 115, 100, 215, 222, 87]) }], receipt: 677742350 }, TransactionReceipt { tx_hash: [207, 18, 82, 126, 196, 78, 85, 255, 35, 168, 190, 34, 142, 58, 80, 9, 4, 45, 80, 44, 127, 58, 86, 87, 28, 17, 121, 82, 150, 105, 35, 214], body_to_save: None, events: [Event { key: EventKey([54, 235, 10, 94, 46, 95]), value: EventValue([149, 30, 112, 205, 46, 132, 182, 176, 233, 158, 83, 214, 195, 146, 215, 214, 92, 193, 37, 107, 239, 67, 6, 18, 194, 103, 142, 102, 134, 142]) }, Event { key: EventKey([164, 126, 182, 253, 206, 231, 250, 115, 38, 188, 82]), value: EventValue([20, 28, 48, 64]) }, Event { key: EventKey([20, 249, 235, 139, 184, 156, 57, 205, 229, 67, 7, 193, 253, 201, 249, 148, 171, 13, 80, 57, 230, 102, 203, 110, 46, 116, 214, 23, 228, 134, 224, 33, 231, 183, 223, 111, 253, 31, 141, 35, 39, 210, 237]), value: EventValue([125, 48, 81, 252, 105, 65, 238, 76, 79, 169, 251, 152, 56, 26, 41, 31, 127, 237, 180, 149, 164, 100, 191, 203, 21, 245, 248, 11, 194, 33, 245, 228, 46, 231, 159, 83, 185, 26, 3, 244, 127, 190, 0, 102, 164, 156, 159, 235, 33, 199, 175, 243, 162, 120, 201, 239, 125, 246, 25, 36, 154, 8, 70, 152, 164]) }], receipt: 1679770869 }], inner: 3489795183 }, BatchReceipt { batch_hash: [103, 73, 40, 55, 238, 15, 109, 97, 241, 151, 0, 176, 194, 178, 154, 211, 228, 1, 248, 113, 163, 197, 116, 7, 83, 157, 173, 62, 91, 247, 19, 138], tx_receipts: [TransactionReceipt { tx_hash: [35, 150, 242, 167, 240, 166, 166, 230, 54, 52, 147, 106, 39, 116, 140, 114, 207, 156, 108, 196, 30, 18, 172, 7, 157, 79, 41, 231, 33, 213, 84, 6], body_to_save: Some([8, 154, 85, 229, 31, 222, 253, 152, 206, 106, 183, 242, 47, 184, 234, 249, 229, 108, 236, 187, 166, 2, 5, 202, 210, 52, 95, 182, 39, 196, 136, 59, 45, 119, 196, 182, 170, 106, 193, 149, 219, 10, 211, 0, 165, 94, 134, 179, 134, 177, 142, 113, 237, 184, 124, 202, 66, 41, 17, 181, 152, 201, 204, 125, 6, 221, 136, 3, 200, 255, 10, 61, 48, 159, 76, 161, 173, 44, 82, 35, 64, 96, 225, 107, 68, 57, 87, 102, 162, 247, 250, 49, 169, 83, 97, 62]), events: [Event { key: EventKey([47, 26, 85, 233, 95, 207, 94, 22, 108, 48, 35, 242, 204, 53, 60]), value: EventValue([54, 60, 195, 11, 147, 114, 40, 182]) }, Event { key: EventKey([207, 42, 17, 164, 6, 66, 193, 165, 39, 138, 136, 183, 178, 163, 230, 46, 148, 117, 131, 243, 61, 4, 81, 2, 163, 96, 92, 101, 83, 102, 157, 157, 190, 231, 48, 174, 144, 63, 17, 95, 244, 89, 144, 66, 185, 162, 233, 193, 110, 102, 2, 119, 183, 5, 250, 84, 46, 24, 156, 161, 147, 119, 234, 193, 227, 241, 112, 209, 178, 234, 129, 153, 134, 35, 21, 160, 46, 131, 8, 134, 25, 191, 164, 100, 111, 53, 175, 248, 39, 243, 84, 202, 138, 166, 92, 110, 22]), value: EventValue([113, 138, 213, 116, 180, 206, 14, 41, 56, 142, 121, 114, 18, 156, 88, 194, 177, 175, 72, 247, 190, 71, 57, 3, 139, 116, 145, 40, 134]) }, Event { key: EventKey([129, 162, 191, 174, 32, 160, 182, 49, 42, 130, 214, 82, 117, 87, 105, 97, 140, 251, 206, 20, 204]), value: EventValue([190, 147, 120, 155, 115, 175, 240, 149, 75, 118, 207, 222, 116, 223, 99, 192, 89]) }, Event { key: EventKey([41, 101, 168, 46]), value: EventValue([111, 231]) }, Event { key: EventKey([9, 81, 100, 104, 120, 222, 90, 215, 65, 132, 26, 210, 124, 213, 11, 89, 159, 25, 50, 144, 101, 63, 148, 116, 170, 253, 179, 19, 197, 82, 125, 254, 130, 44, 78, 201, 165, 174, 104, 240, 169, 198, 2, 2, 101, 131, 86, 201, 153, 155, 104, 241, 6, 198, 25, 166, 90, 183, 30]), value: EventValue([148, 9, 126, 63, 231, 47, 224, 139, 211, 226, 221, 146, 18, 79, 87, 233, 187, 92, 30]) }], receipt: 1512340183 }], inner: 1736491574 }], num_txs: 33, num_events: 176 }, SlotCommit { slot_data: TestBlock { curr_hash: [70, 25, 127, 129, 198, 15, 173, 110, 209, 240, 218, 123, 167, 253, 244, 152, 139, 73, 92, 113, 144, 94, 215, 55, 174, 231, 222, 94, 23, 140, 44, 219], header: TestBlockHeader { prev_hash: TestHash([211, 51, 247, 9, 194, 162, 239, 118, 204, 64, 190, 39, 240, 125, 98, 114, 236, 53, 136, 24, 160, 134, 70, 25, 189, 132, 47, 176, 214, 183, 209, 180]) } }, batch_receipts: [BatchReceipt { batch_hash: [241, 149, 6, 71, 82, 165, 152, 26, 206, 206, 234, 31, 52, 204, 178, 127, 153, 137, 9, 20, 60, 33, 17, 128, 249, 95, 148, 33, 186, 210, 19, 24], tx_receipts: [TransactionReceipt { tx_hash: [221, 221, 106, 124, 174, 203, 192, 75, 19, 51, 217, 98, 63, 249, 122, 171, 252, 202, 127, 5, 155, 192, 64, 255, 151, 136, 151, 155, 116, 133, 144, 156], body_to_save: Some([193, 53, 73, 158, 19, 65, 51, 72, 15, 134, 3, 72, 2, 37, 119, 104, 27, 202, 22, 7, 85, 171, 133, 19, 152, 171, 42, 24, 137, 128, 214, 122, 77, 41, 254, 26, 157, 12, 18, 193, 101, 206, 220, 161, 204, 128, 16, 114, 170, 57, 63, 253, 14, 243, 165, 205, 245, 199, 237, 255, 204, 193, 237, 2, 235, 114, 127, 30, 86, 198, 3, 114, 237, 243, 152, 19, 155, 164, 46, 213, 60, 69, 217, 22, 185, 231, 173, 154, 48, 161, 182, 221, 226, 95, 197]), events: [Event { key: EventKey([193, 152]), value: EventValue([72, 100, 39, 172, 159, 219, 161, 142, 178, 181, 198, 66, 160, 174, 34, 87, 197, 204, 75, 221, 183, 213, 133, 154, 148, 158, 191, 128, 3, 250, 236, 83, 180, 225, 206, 185, 93, 126, 203, 53, 40, 198, 246, 108]) }, Event { key: EventKey([245, 24, 224, 34, 168, 4, 118, 3, 241, 104, 156, 75, 23, 48, 114, 76, 226, 228, 84, 132, 145, 157, 112, 25, 8, 226, 179, 91, 225, 84, 24, 91, 8, 135, 35, 106, 82, 182, 20, 3, 178, 96, 96, 29, 246, 51, 2, 168, 166, 72, 58, 36, 19, 234, 76, 134, 185, 36, 40, 71, 79]), value: EventValue([104, 244, 16, 39, 118, 16, 230, 209, 254, 48, 209, 135, 35, 10]) }, Event { key: EventKey([77, 170, 143, 235, 22, 191, 41, 199, 192, 24, 179, 131, 94, 162, 12, 191, 232, 201, 252, 4, 94, 34, 225, 230, 182, 30, 150, 17, 234, 68, 8, 150, 131, 248, 226, 1, 169, 163, 127, 142, 217, 168, 27, 37, 194, 246, 226, 180, 170, 17, 65, 34, 178, 140, 255, 233, 132, 226, 166, 116, 61, 29, 184, 48, 112, 18, 22]), value: EventValue([0, 52, 73, 107, 220, 9, 234, 100, 106, 47, 156, 217, 190, 177, 252]) }, Event { key: EventKey([142, 102, 84, 54, 238, 211, 94, 115, 65, 55, 122, 60, 48, 162, 81, 178, 117, 105, 51, 181, 15, 232, 1, 129, 116, 224, 65, 92, 131, 220, 44, 22, 95, 218, 196, 22, 126, 37, 31, 204, 117, 113, 216, 113, 50, 68, 243, 72, 53, 103, 77, 116, 8, 46, 41, 206, 154, 245, 48, 119, 135, 34]), value: EventValue([64, 159, 68, 185, 217, 35, 228, 84, 87, 59, 36, 78, 93, 218, 57, 208, 222, 90, 63, 123, 71, 236, 141, 141, 197, 189, 241, 40, 65, 165, 205, 102, 4, 37, 158, 48, 34, 80, 44, 223, 203, 3, 148, 48, 78, 43, 5, 73, 243, 5, 230, 120, 64, 73, 77, 227, 72, 174, 226, 118, 206, 196, 92, 172, 3, 161, 172, 179, 71, 157, 18, 4, 109, 225, 11, 170, 209, 65]) }], receipt: 795597611 }, TransactionReceipt { tx_hash: [18, 47, 11, 225, 62, 61, 5, 112, 118, 28, 25, 221, 34, 83, 240, 164, 63, 14, 223, 181, 238, 219, 110, 78, 161, 180, 207, 29, 204, 86, 176, 205], body_to_save: None, events: [Event { key: EventKey([92]), value: EventValue([120, 7, 60, 254, 21, 188, 76, 162, 125, 71, 193, 212, 122, 124, 162, 245, 161, 131, 167, 158, 37, 226, 191, 132, 162, 158, 230, 32, 79, 16, 197, 18, 94, 210, 133]) }, Event { key: EventKey([125, 217, 162, 8, 117, 59, 30, 126, 201, 131, 73, 140, 219, 209, 132, 170, 32, 212, 216, 238, 66, 237, 159, 89, 37, 223, 136, 156, 249, 31, 229, 177, 233, 25, 178, 172, 233, 249, 141, 10, 97, 10, 10, 123, 162, 95, 116, 86, 16, 6, 253, 87, 183, 166, 50, 2, 120, 142, 192, 236, 236, 89, 177, 4, 156, 115, 204, 223, 219, 55, 108, 228, 100, 205, 91, 231]), value: EventValue([246, 161, 42, 78, 72, 253, 245, 43, 109, 230, 144, 35, 29, 63, 133, 218, 124, 133, 218, 172, 27, 122, 149, 247, 5, 126, 135, 63, 45, 141, 204, 239, 121, 67, 228, 0, 169, 22, 215, 128, 52, 200, 82, 100, 198, 98, 227, 77, 77, 173, 83, 65, 11, 68, 196, 164, 39, 221, 120, 16, 98, 137, 106, 97, 213, 154, 79, 249, 200, 47, 182, 45, 149, 56, 214, 18, 130, 31, 127, 64, 87, 189]) }, Event { key: EventKey([151, 54, 75, 110, 53, 139, 199, 220, 55, 129, 162, 199, 110, 22, 223, 199, 74, 0, 128, 193, 196, 199, 128, 254, 34, 130, 118, 139, 100, 175, 31, 73, 255, 129, 143, 83, 15, 27, 90, 236, 101, 123, 252, 184, 135, 238, 42, 131, 89, 152, 212, 145, 72, 83, 174, 251, 197, 146, 10, 70, 8, 247, 180, 226, 96, 40, 170, 0, 79, 94, 169, 215, 11, 119, 104, 135, 128, 157, 228, 56, 237, 192, 14, 126, 54, 34, 213, 187, 124, 122, 98, 73, 23]), value: EventValue([183, 67, 28, 254, 217, 253, 123, 48, 106, 37, 141, 191, 49, 244, 35, 3, 172, 204, 233, 180, 114, 111, 189, 97, 153, 237, 0, 92, 45, 231, 148, 253, 106, 53, 196, 127, 27, 216, 172, 141, 147, 26, 67, 168, 5, 92]) }], receipt: 1351817314 }, TransactionReceipt { tx_hash: [36, 140, 254, 254, 233, 131, 220, 254, 169, 151, 89, 65, 214, 103, 109, 96, 146, 210, 33, 186, 14, 150, 38, 6, 197, 68, 229, 255, 239, 43, 82, 30], body_to_save: Some([187, 195, 194, 165, 174, 39, 131, 180, 42, 41, 211, 61, 23, 113, 21, 27, 32, 66, 146, 181, 75, 214, 119, 116, 91, 21, 54, 55, 118, 149, 230, 110, 114, 56, 217, 25, 253, 125, 224, 113, 38, 23, 169, 153, 133, 188, 25, 246, 72, 21, 158, 132, 241, 240, 205]), events: [Event { key: EventKey([53, 28, 229, 31, 16, 26, 7, 38, 22, 237, 23, 171, 166, 126, 1, 192, 54, 87, 65, 248, 159, 184, 236, 38, 193, 148, 210, 85, 177, 76, 97, 33, 255, 38]), value: EventValue([23, 168, 187, 188, 75, 92, 140, 233, 187, 124, 8, 25, 117, 208, 41, 47, 130, 162, 104, 13, 225, 58, 84, 40, 220, 78, 193, 69, 191, 92, 81, 19, 71, 109, 57, 144, 9, 81, 235, 128, 98, 137, 136, 34, 101, 73, 133, 131, 223, 75, 236, 210, 91, 213, 117, 233, 212, 117, 246, 104, 60, 50, 10, 235, 128, 179, 202, 31, 153, 56, 2, 206, 47, 8, 224, 45, 11, 75, 172, 252, 10, 143, 110, 34, 107, 232, 128, 85, 61, 235]) }, Event { key: EventKey([204, 120, 192, 34, 167, 24, 78, 200, 127, 158, 130, 148, 180, 252, 106, 0, 29, 138, 154, 227, 173, 127, 4, 1, 48, 173]), value: EventValue([18, 151, 42, 114, 3, 110, 46, 189, 26, 155, 233, 30, 254, 48, 98, 156]) }, Event { key: EventKey([58, 118, 51, 86, 115, 148, 171, 209, 180, 97, 172, 201, 189, 90, 6, 54, 254, 89, 161, 158, 63, 132, 39, 41, 110, 74, 89, 231, 39]), value: EventValue([57, 172, 254, 240, 214, 255, 214, 161, 144, 114, 171, 162, 104, 220, 105, 159, 229, 1, 112, 71, 10, 195, 179, 43, 99, 230, 44, 124, 17, 237, 225, 194, 146, 93, 252, 31, 33, 188, 62, 1, 135, 111, 35, 213, 143, 53, 53, 136, 41, 178, 182, 130, 77, 35, 166, 200, 194, 193, 193, 83, 229, 139, 163, 164, 191, 223, 176, 133, 122, 4, 44, 210, 140, 30, 19, 135, 74, 106, 174, 210, 190, 185, 153, 237, 55, 15, 99, 211, 156, 0, 201, 223]) }, Event { key: EventKey([87, 124, 17, 112, 226, 74, 19, 244, 52, 176, 194, 112, 25, 182, 147, 227, 219, 217, 44, 78, 67, 46, 225, 142, 130, 167, 217, 84, 204, 196, 190, 21, 195, 80, 123, 22, 194, 243, 92, 93, 111, 24, 172, 147, 58, 166, 71, 219, 118, 207, 102, 103, 252, 214, 122, 38, 133, 90, 226, 93, 168, 242, 212, 175, 26, 225, 59, 26, 124, 15, 89, 79, 72, 207, 60, 235, 199, 65]), value: EventValue([239, 59, 179, 23, 250, 254, 37, 149, 196, 39, 127, 201, 10, 77, 106, 44, 96, 184, 163, 39, 173, 222, 211, 65, 238, 171, 22, 203, 10, 187, 139, 170, 34, 18, 204, 220, 253, 191, 206, 154, 66, 181, 225, 63, 192, 237, 228, 88, 133, 140, 9, 3, 160, 9, 9, 202, 239, 113, 164, 54, 38, 57, 49, 229, 87, 151, 167, 237, 73, 89, 52, 70, 167, 43, 71, 21, 100, 10, 249, 145, 255, 54, 179, 206, 25, 53, 118, 55, 204, 63, 197, 148, 86, 185, 91]) }, Event { key: EventKey([125, 247, 178, 244, 231, 194, 68, 174, 32, 130, 176, 18, 16, 68, 224, 117, 187, 108, 16, 89, 117, 20, 9, 240, 48, 210, 211]), value: EventValue([169, 174, 255, 57, 93, 79, 92, 200, 71, 195, 218, 84, 131, 74, 14, 212, 98, 6, 209, 175, 20, 95, 180, 178, 221, 151, 163, 187, 124, 185, 32, 54, 80, 96, 101, 244, 16, 129, 203, 34, 125, 102, 195, 173, 123, 80, 205, 178, 20, 199, 114, 76, 50, 166, 175, 175, 133, 62]) }, Event { key: EventKey([183, 236, 182, 118, 114, 180, 182]), value: EventValue([29, 239, 104, 9, 197, 88, 1, 165, 161, 185, 63, 65, 54, 148, 249, 203, 228, 18, 167, 193, 84, 192, 13, 12, 221, 186, 151, 95, 84, 110, 106, 232, 146, 21, 226, 167, 66, 234, 188, 127, 203, 13, 244, 194, 6, 25, 44, 115, 28, 211, 97, 151, 183, 130, 98, 94, 184, 100, 103, 120, 65, 64, 136, 75, 6, 72, 173, 29, 243, 235, 120, 177, 108, 208, 59, 161, 230, 72, 84, 17, 145, 63, 70, 170]) }, Event { key: EventKey([208, 142, 157, 149, 85, 126, 249, 69, 190, 70, 225, 149, 11, 51, 167, 95, 244, 129, 39, 212, 245, 198, 254, 144, 3, 170, 16, 45, 242, 93, 193, 130, 252, 123, 199, 131, 195, 204, 20, 214, 106, 202, 110, 105, 73, 7, 42, 64, 31]), value: EventValue([79, 6, 63, 63, 219, 250, 247, 148, 180, 147, 87, 41]) }], receipt: 1801857535 }, TransactionReceipt { tx_hash: [43, 166, 107, 240, 155, 137, 125, 36, 120, 204, 56, 2, 226, 246, 242, 170, 197, 122, 18, 121, 189, 77, 165, 94, 106, 192, 101, 208, 204, 226, 213, 102], body_to_save: None, events: [Event { key: EventKey([22, 55, 146, 237, 205, 252, 126, 108, 164, 224, 214, 135, 179, 114, 204, 164, 188, 18, 107, 12, 253, 193, 202, 220, 195, 92, 55]), value: EventValue([39, 42, 134, 211, 79, 159, 20, 49, 122, 146, 167, 13, 206, 146, 211, 117, 101, 18, 45, 52, 106, 7, 216, 150, 45, 230, 29, 218, 32, 189, 227, 167, 107]) }, Event { key: EventKey([20, 38, 210, 137, 245, 88, 77]), value: EventValue([104, 42, 41]) }, Event { key: EventKey([39, 240, 177, 213, 176, 138, 238, 220, 47, 143, 239, 47, 3, 245, 62]), value: EventValue([109, 28, 40, 215, 25, 25, 131, 129, 47, 50, 248, 150, 111, 34, 170, 155, 185, 195, 153, 45, 40, 20, 118, 87, 202, 129, 193, 22, 219, 58, 199, 151, 167, 57, 62, 31, 5, 22, 195, 141, 247, 222, 220, 23, 90, 186, 4, 251, 235, 246, 195, 181, 215, 198, 190, 12, 62, 241, 170, 70, 76, 17, 170, 166, 63, 241, 40, 34, 17, 143, 145, 64, 162, 10, 39, 170, 53, 122, 179, 19, 123, 123, 88, 44, 14]) }, Event { key: EventKey([15, 115, 90, 97, 209, 116, 181, 198, 52, 0, 110, 110, 52, 251, 160, 83, 85, 211, 159, 198, 1, 14, 215, 137, 175, 138, 231, 242, 95, 149, 166, 244, 119, 20, 255, 124, 15, 154, 53, 128, 153, 59, 245, 31, 171, 44, 140, 43, 112, 81, 201, 238, 190, 91, 77, 186, 91]), value: EventValue([137, 84, 4, 187, 193, 48, 194, 95, 98, 199, 190, 166, 91, 189, 145, 176, 80, 192, 152, 112, 46, 103, 76, 89, 152, 132, 191, 75, 107, 29, 250, 102, 116, 172, 203, 18, 75, 67, 254, 28, 117]) }, Event { key: EventKey([91, 80, 162, 201, 43, 127, 149, 128]), value: EventValue([132, 247, 181, 91, 252, 61, 214, 15, 197, 39, 45, 46, 236, 134, 245, 100, 240, 18, 36, 119, 3, 242, 83, 44, 207, 159, 8, 59, 113, 124, 192, 158, 238, 195, 202, 230, 219, 69, 71, 251, 245, 0, 200, 79, 253, 166, 182, 29, 3, 82, 219, 141, 156, 55, 167, 204, 79, 249, 8, 243, 75, 57, 110, 200, 241, 200, 117, 234, 120, 23, 123, 120, 104, 78, 32, 191]) }, Event { key: EventKey([102, 26, 122, 102, 230, 144, 182, 202, 100, 152, 100, 190, 147, 109, 78, 143, 212, 234, 158, 158, 111, 120, 89, 146, 63, 215, 145, 230, 247, 72, 234, 249, 79, 13, 50, 168, 233, 197, 121, 21, 235, 213, 187, 216, 85, 131, 118, 166, 117, 154, 71, 225, 184, 154, 118, 145, 161, 82, 36, 241, 86, 163, 234, 201, 37, 114, 201, 187, 157, 20, 28, 10, 115, 114, 113, 244, 26, 213, 107, 40, 125, 239, 233, 233, 39, 30, 148, 100, 12]), value: EventValue([235, 88, 22, 56, 127, 1, 133, 110, 49, 141, 210, 72, 119, 159, 49, 100, 147, 235, 218, 64, 252, 125, 19, 72, 107, 21, 41, 159, 204, 85, 235, 162, 40, 54, 81, 227, 142, 36, 60, 235, 116, 41, 178, 115, 106, 71, 29, 74, 247, 216, 137, 233, 56, 210]) }, Event { key: EventKey([241, 11, 94, 16, 71, 92, 134, 232, 167, 31, 125, 189, 2, 216, 162, 80, 134, 169, 58, 253, 245, 172, 134, 44, 117, 27, 219, 242, 109, 52, 110, 244, 94, 31, 233, 101, 13, 108, 193, 17, 215, 123, 117, 64, 238, 116, 213, 60, 119, 221, 53, 37, 71, 187, 213, 245, 104, 118, 219, 213, 58, 70, 213, 88, 163, 111, 139, 170]), value: EventValue([0, 152, 207, 192, 233, 78, 3, 241, 163, 221, 135, 184, 13, 191, 127, 96, 252, 79, 62, 120, 185, 28, 50, 140, 171, 144, 36, 55, 139, 23, 202, 162, 37, 198, 67, 28, 6, 76, 146, 106, 158, 20, 161]) }, Event { key: EventKey([29, 23]), value: EventValue([225, 164, 22, 236, 163, 58, 32, 222, 147, 198, 161, 14, 71, 121, 72, 107, 203, 127, 54, 185, 18, 161, 38, 25, 194]) }, Event { key: EventKey([192, 92, 181, 95, 192, 146, 145, 14, 220, 54, 42, 185, 55, 90, 118, 8, 172, 193, 16, 20, 183, 13, 57, 25, 20, 254, 181, 215, 60, 63, 118, 45, 125, 242, 103, 139, 221, 173, 3, 126, 168, 239, 251, 135, 13, 144, 180, 230, 204, 158, 178, 72, 119, 84, 5, 58, 68, 44, 144, 193, 248, 128, 122, 235, 159]), value: EventValue([243, 97, 206, 245, 166, 175, 190, 43, 30, 244, 140, 240, 249, 98, 76, 239, 236, 255, 167, 142, 199, 19, 229, 64, 28, 100, 158, 83, 4, 217, 215, 30, 248, 245, 73, 249, 34, 3, 206, 138, 196, 132, 106, 4, 245, 110, 195, 29, 109, 161, 154, 13, 232, 96, 199]) }], receipt: 2102372789 }, TransactionReceipt { tx_hash: [126, 215, 114, 7, 72, 82, 88, 219, 221, 10, 162, 71, 193, 151, 90, 120, 58, 60, 122, 112, 255, 9, 139, 75, 252, 215, 255, 24, 214, 149, 240, 120], body_to_save: None, events: [Event { key: EventKey([51, 76, 169, 207, 154, 135, 103, 36, 81, 209, 46, 109, 219, 64, 79, 30, 152, 39, 23, 86, 200, 26, 6, 57, 81, 243, 241, 146, 149, 50, 169, 104, 64, 188, 210, 101, 232, 93, 99, 127, 25, 169, 125, 140, 236, 172, 186, 15, 111, 6, 175, 101, 165, 8, 6, 100, 217, 203, 107, 239, 148, 160, 87, 86]), value: EventValue([103, 221, 106, 38, 122, 131, 0, 176, 7, 154, 188, 243, 40, 122, 41, 43, 4, 135, 85, 196, 161, 133, 13, 149, 80, 191, 233, 212, 240, 62, 174, 26, 225, 204, 158, 190, 208, 122, 204, 155, 97, 194, 119, 2, 64, 127, 188, 137, 205, 49, 67, 116, 45, 115, 81, 2, 231, 214, 221, 117, 33, 52, 77, 6, 96, 142, 64, 63, 246, 93, 165, 29, 127, 179, 172, 252, 246, 7, 239]) }, Event { key: EventKey([129, 25, 35, 87, 136, 29, 9, 25, 148, 68, 63, 161, 34, 170, 32, 23, 70, 167, 15, 22, 167]), value: EventValue([137, 193, 142, 6, 230, 6, 153, 28, 112, 33, 159, 113, 17, 134, 112, 202, 118, 53, 248, 96, 214, 51, 28, 30, 230, 103, 71, 112, 181, 26, 76, 94, 170, 252, 198, 104, 3, 142, 227, 118, 226, 193, 241, 248, 126, 171, 70, 245, 200, 219, 166, 26, 227, 25, 154, 61, 218, 206, 137, 53, 63, 104, 101, 250, 190, 76, 196, 86, 107, 185, 179, 94, 228, 91, 9, 234, 191, 154, 191, 96, 205, 40, 33, 109, 94, 222]) }, Event { key: EventKey([54, 91, 249, 31, 147, 61, 78, 4, 100, 100, 152, 162, 193, 31, 166, 66, 124, 51, 54, 138, 123, 39, 67, 181, 3, 99, 247, 73, 124, 93, 121, 0, 12, 93, 200, 185, 141, 204, 149, 194, 188, 195, 85, 197, 25, 147, 57, 95, 219, 174, 219, 83, 217, 138, 37, 193]), value: EventValue([222, 174, 34, 169, 185, 215, 164, 123, 151, 181, 237, 37, 212, 187, 159, 8, 21, 47, 215, 241, 115, 35, 250, 123, 208, 37, 57, 202, 160, 221, 196, 130, 200, 7, 228, 246, 17, 183, 242, 62, 206, 127, 166, 201, 24, 194, 160, 94, 126, 55, 66, 46, 255, 147, 251, 93, 119, 55, 151, 96, 58, 213, 86, 252, 211, 36, 124, 72, 98, 66, 247, 43, 99, 252, 137, 19, 217, 75, 15, 119, 148, 133, 160]) }, Event { key: EventKey([109, 186, 118, 45, 130, 4, 9, 228, 64, 139, 129, 115, 1, 185, 185, 164, 133, 37, 190, 30, 179, 101, 181, 157, 158, 64, 122, 59, 227, 50, 144, 48, 65, 238, 146, 21, 185, 241, 220, 108, 220, 146, 112, 166, 132, 208, 187, 68, 29, 217, 129, 167, 108, 236, 165, 252, 8, 118, 151, 241, 93, 3, 172, 61]), value: EventValue([122, 41, 158, 223, 221, 151, 158, 11, 14, 10, 199, 124, 87, 202, 235, 179, 47, 135, 207, 77, 93, 29, 73, 233, 210, 182, 159, 219, 230, 231, 125, 24, 103, 44, 111, 199, 28, 7, 97, 26, 51, 95, 113, 241, 63, 86, 248, 31, 169, 240, 90, 125, 216, 160, 117, 169, 212]) }, Event { key: EventKey([116, 91, 101, 132, 80, 117, 142, 115, 101, 238, 182, 10, 224, 101, 26, 233, 173, 223, 24, 32, 5, 117, 144, 133, 203, 185, 138, 223, 123]), value: EventValue([177, 223, 42, 52, 172, 114, 241, 211, 205, 164, 154, 157, 155, 221, 35, 187, 87, 155, 101, 0, 5, 142, 237, 17, 199, 132, 165, 43, 52, 213, 64, 122, 189, 80, 152, 6, 185, 152, 134, 250, 255, 178, 96, 106, 55, 38, 86, 107, 230, 8, 136, 14, 83, 153, 123, 118, 32, 37, 158, 179, 204, 194, 133, 69, 78, 164]) }, Event { key: EventKey([1, 122, 133, 185, 18, 201, 186, 247, 30, 211, 202, 164, 171, 197, 156, 188, 177, 131, 144, 89, 229, 68, 26, 224, 105, 183, 122, 42, 153, 125, 13, 43, 59, 28, 180, 107, 80, 195, 133, 135, 67, 83, 152, 140, 41, 10, 243, 208, 139, 201, 109, 169, 21, 158, 91, 91, 46, 164, 254, 209, 39, 159, 227, 218, 160, 85, 131, 90, 208, 170, 146, 224, 34, 80, 118, 224]), value: EventValue([56, 245, 48, 221, 15, 13, 68, 235, 237, 88, 139, 199, 255, 134, 106, 252, 180, 106, 240, 217, 26, 252, 243, 201, 105, 130, 93, 110, 86, 229, 188, 162, 196, 114, 113, 100, 158, 131, 1, 182, 5, 120, 219, 60, 143, 55, 239, 41, 101, 163, 125, 117, 88, 79, 97, 209, 26, 32, 201, 43, 69, 19, 205, 68, 95, 83, 169, 115]) }], receipt: 3493238544 }, TransactionReceipt { tx_hash: [31, 120, 175, 17, 40, 213, 134, 212, 161, 38, 252, 203, 156, 44, 191, 128, 38, 119, 121, 48, 158, 250, 109, 159, 89, 3, 139, 57, 114, 175, 162, 201], body_to_save: Some([57, 31, 204, 162]), events: [Event { key: EventKey([0, 232, 134, 199, 204, 239, 185, 37, 102, 5, 90, 136, 79, 120, 33, 36, 78, 35, 191, 186, 39, 53]), value: EventValue([177]) }, Event { key: EventKey([37, 254, 138, 74, 47, 147, 51, 56, 91, 227, 93, 245, 254, 4, 31, 48, 8, 80, 19, 214, 20, 3, 52, 204, 164, 68, 71, 124, 136, 140, 4, 38, 221, 195, 128, 104, 118, 82, 95]), value: EventValue([51, 8, 83, 66, 124, 61, 33, 204, 194, 76, 232, 94, 214, 220, 165, 56, 255, 106]) }, Event { key: EventKey([160, 204, 76, 16, 17, 127, 70, 14, 169, 57, 110, 254, 188, 143, 111, 75, 102, 15, 66, 212, 135, 13, 67, 124, 24, 185, 150, 237, 251, 199, 156, 232, 131, 9, 242, 121, 175, 69, 193, 202, 123, 199, 237, 59, 231, 164, 253, 70, 216, 59, 65, 38, 27, 128, 158, 98, 50, 46, 218, 103, 22, 172, 15, 245, 233, 58, 146, 144, 191, 151, 72, 102, 97, 133, 68, 250, 40]), value: EventValue([233, 93, 19, 244, 199, 14, 201, 60, 79, 254, 79, 4, 235, 207, 177, 204, 198, 198, 20, 118, 195, 209, 14, 48, 165, 227, 60, 89, 88, 85, 19, 133, 194, 167, 134, 174, 79, 75, 234, 64, 68, 134, 219, 19, 113, 52, 164, 159]) }], receipt: 2594884522 }, TransactionReceipt { tx_hash: [118, 1, 112, 224, 104, 100, 133, 241, 52, 158, 62, 141, 81, 168, 214, 171, 103, 143, 117, 131, 36, 154, 171, 41, 96, 131, 118, 133, 90, 6, 4, 5], body_to_save: Some([176, 238, 107, 177, 142]), events: [Event { key: EventKey([5, 23, 57, 102, 145, 37, 211, 170, 28, 243, 129, 235, 188, 131, 38, 135, 178, 211, 181, 155, 168, 32, 94, 96, 67, 77, 158, 215, 35, 192, 29, 153, 180, 56, 248, 61, 237, 43, 95, 249, 69, 101, 147, 163, 102, 70, 142, 157, 80, 22, 150, 6, 139, 93]), value: EventValue([117, 5, 132, 48, 214, 150, 238, 38, 137, 249, 109, 82, 253, 84, 60, 94, 125, 233, 245, 163, 249, 235, 24, 153, 73, 67, 151, 0, 53, 130, 188, 118, 138, 84, 157, 163, 117, 50, 206, 175, 193, 243, 101, 32, 30, 113, 192, 152, 50, 83, 98, 220, 239, 211, 247, 238]) }, Event { key: EventKey([106, 226, 242, 36, 100, 115, 130, 217, 5, 149, 63, 58, 22, 1, 159, 132, 77, 171, 142, 177, 141, 234, 81, 10, 118, 196, 245, 60, 69, 143, 119, 191, 177, 149, 20, 107, 222, 171, 166, 32, 148, 161, 228, 80, 188, 217, 243, 101, 105, 166, 180, 191, 76, 139, 84, 52, 4, 230, 90, 3, 148, 106, 127, 98, 240, 84, 127, 241, 126, 189, 172, 87, 37]), value: EventValue([86, 201, 7, 198, 19, 70, 33, 27, 117, 134, 239, 40, 165, 155, 52, 238, 254, 69, 109, 88, 38, 50, 138, 251, 119, 141, 143, 43, 252, 1, 56, 64, 5, 209, 226, 125, 253, 155, 52, 129, 67, 247, 70, 104, 148, 231, 179, 117, 202, 61, 24, 30, 201, 187, 178, 17, 114, 214, 231]) }, Event { key: EventKey([21, 169, 59, 158, 72, 42, 166, 226, 178, 92, 11, 112, 129, 25, 9, 250, 50, 215, 248, 250, 163, 246, 11]), value: EventValue([98, 16, 140, 211, 124, 30, 29, 101, 149, 13, 4, 151, 193, 11, 11, 251, 84, 176, 174, 18, 63, 7, 194, 43, 223, 54, 221, 112, 78, 1, 55, 81, 98, 151, 121, 46, 127, 50, 138, 131, 87, 99, 116, 194, 78, 156, 37, 233, 34, 153, 114, 191, 116, 110, 54, 145, 241, 27, 66, 162, 120, 117, 231, 90, 105, 120, 201]) }, Event { key: EventKey([226, 119, 51, 249, 198, 38, 8, 210, 0, 54, 159, 174, 226, 239, 107, 200, 217, 155, 183, 174, 51, 111, 121, 23, 245, 173, 184, 32, 225]), value: EventValue([235, 217, 235, 248, 244, 168, 66, 118, 148, 195, 163, 253, 74, 169, 55, 107, 125, 109, 216, 21, 231, 89, 30, 83, 44, 195, 216, 139, 197, 33, 227, 236, 198, 22, 232, 31, 83, 194, 148]) }, Event { key: EventKey([104, 112, 86, 212, 94, 224, 144, 63, 85, 174, 33, 20, 28, 57, 75, 247, 60, 161, 62, 188, 99, 221, 202, 196, 212, 64, 73, 239, 243, 204, 219, 137, 20, 53, 62, 71, 127, 64, 249, 109, 83, 249, 99, 208, 85, 100, 60, 106, 118, 148, 134, 54, 55, 238, 213, 109, 225, 73, 215, 103, 157, 67, 19, 98, 189]), value: EventValue([126, 241, 157, 128, 154, 232, 206, 144, 242, 120, 15, 108, 157, 24, 75, 139, 101, 216, 38, 236, 71, 131, 246, 43, 9, 223, 44, 49, 213, 114, 199, 22, 114, 43, 245, 75, 225, 117, 62, 53, 138, 152, 16, 83, 156, 251, 137, 147, 70, 227, 153, 196, 186, 11]) }], receipt: 532131385 }, TransactionReceipt { tx_hash: [221, 26, 241, 116, 122, 240, 188, 61, 93, 168, 11, 96, 87, 253, 178, 195, 218, 169, 224, 154, 146, 95, 173, 184, 203, 11, 85, 20, 205, 221, 7, 134], body_to_save: None, events: [Event { key: EventKey([213, 95, 154, 182, 184, 99, 161]), value: EventValue([168, 114, 39, 131, 155, 229, 202, 136, 10, 134, 227, 54, 59, 208, 122]) }, Event { key: EventKey([186, 121, 36, 236, 130, 210, 33, 59, 19, 205, 121, 120, 154, 237, 57, 177, 229, 152, 19, 180, 71, 102, 149, 97, 214, 70, 222, 9, 79, 115, 113, 169, 253, 79, 214, 22, 186, 16, 178, 156, 62, 45, 171, 105, 112, 26, 180, 108, 169, 9]), value: EventValue([149, 194, 124, 35, 148, 95, 195, 199, 160, 237, 111, 155, 233, 173, 223, 59, 112, 75, 77, 145, 4, 113, 214, 1, 95, 58, 32, 215, 230, 224, 22, 5, 28, 151, 100, 251, 66, 83, 77, 27, 79, 249, 145, 254, 248, 205, 210]) }, Event { key: EventKey([81, 235, 124, 84, 178, 216, 19, 210, 75, 240, 44, 30, 50, 60, 34, 85, 115, 160, 196, 26, 68, 161, 111, 250, 65, 201, 125, 137, 240, 206, 4, 215, 100, 118, 23, 28, 223, 171, 8, 231, 129, 26, 169, 159, 155]), value: EventValue([192, 23, 57, 200, 61, 152, 20]) }, Event { key: EventKey([235, 178, 251, 150, 136, 180, 65, 71]), value: EventValue([157, 240, 120, 36, 122, 14, 2, 28, 213]) }, Event { key: EventKey([224, 220, 119, 98]), value: EventValue([145, 6, 53, 221, 96, 253, 102, 195, 154, 206, 14, 114, 204, 15, 209, 98]) }, Event { key: EventKey([176, 42, 126, 242, 144, 188, 138, 222, 105, 231, 201, 35, 107, 128, 203, 30, 232, 20, 94, 67, 69, 30, 35, 191, 90, 151, 161, 109, 223, 21, 243, 46]), value: EventValue([206, 244, 62, 136, 5, 41, 27, 13, 201, 142, 57, 71, 123, 118, 246, 209, 0]) }, Event { key: EventKey([243, 124, 156, 248, 203, 24, 184, 136, 159, 112, 31, 110, 92, 235, 147, 144, 193, 68, 225, 147, 129, 168, 118, 57, 8, 44, 171, 62, 20, 202, 104, 41, 54, 203, 14, 243, 78, 82, 249, 68, 41, 119, 78]), value: EventValue([27, 69, 128, 122, 27, 230, 161, 107, 2, 193, 197, 150, 49, 142, 220, 21, 87, 188, 225, 193, 136, 165, 39, 107, 61, 96, 120, 9, 239, 38, 31, 213, 193, 70, 125, 4, 111, 120, 208, 90, 89, 217, 89, 221, 182, 134, 159, 242, 88, 213, 10, 1, 193, 67, 202, 6, 63, 53, 206, 202, 204, 193, 163, 13, 249, 205, 105, 5, 177, 185, 178, 189, 43, 128, 234, 221, 152, 168]) }, Event { key: EventKey([182, 161, 53, 30, 183, 167, 66, 186, 125, 251, 255, 58, 243, 122, 110, 119, 180, 136, 146, 164, 141, 185, 80, 4, 141, 211, 9, 183, 237, 48, 244, 223, 225, 46, 117, 206, 142, 202, 117, 163, 65, 128, 106, 1, 128, 130, 72, 21, 213, 254, 7, 194, 4, 178, 199, 213, 125, 25, 161, 198, 6, 13, 67]), value: EventValue([46, 13, 26, 79, 64, 67, 120, 88, 185, 230, 129, 107, 186, 39, 157, 116, 71, 151, 124, 8, 112]) }], receipt: 3368430981 }], inner: 1674879438 }, BatchReceipt { batch_hash: [48, 121, 105, 113, 207, 18, 214, 41, 79, 15, 119, 252, 23, 102, 186, 35, 224, 253, 78, 94, 74, 177, 227, 116, 186, 12, 59, 113, 100, 43, 186, 105], tx_receipts: [TransactionReceipt { tx_hash: [42, 214, 60, 99, 197, 151, 232, 227, 91, 57, 217, 17, 104, 17, 193, 26, 96, 222, 1, 48, 70, 28, 255, 160, 120, 156, 24, 62, 6, 13, 186, 65], body_to_save: Some([179, 235, 62, 89, 124, 56, 45, 214, 86, 47, 4, 132, 85, 241, 46, 217, 5, 108, 63, 166, 70, 7, 249, 30, 148, 78, 161, 122, 39, 92, 96, 105, 192, 151, 168]), events: [Event { key: EventKey([240, 101, 121, 150, 141, 79, 239, 47, 255, 255, 155, 223, 75, 236, 135, 216, 230, 29, 44, 242, 183, 145, 229, 144, 83, 64, 220, 139, 142, 178, 228, 134, 201, 246, 26, 241, 215, 135, 150, 46, 65, 22, 190, 198, 118, 73, 137, 54, 233, 118, 197, 4, 30, 33, 155, 34, 78, 20]), value: EventValue([104, 22, 58, 40, 221, 25, 139, 229, 108, 114, 185, 24, 112, 20, 89, 74, 186, 97, 169, 4, 137, 179, 170, 130, 250, 0, 136, 92, 114, 69, 15, 199, 60, 193, 195, 106, 93, 34, 3, 219, 153, 103, 76, 73, 155, 206, 122, 98, 183, 75, 86, 20]) }, Event { key: EventKey([178, 242, 21, 19, 163]), value: EventValue([136, 47, 76, 250, 89, 34, 26, 141, 136, 30, 73, 221, 11, 166, 52, 64, 127, 52, 51, 157, 152, 193, 69, 1, 133, 184, 130, 117, 95, 0, 208, 140, 206, 4, 207, 178, 49, 254, 37, 183, 215, 2, 248, 179, 38, 198, 26, 51, 127, 166, 151, 79, 129, 155, 34, 201, 105, 52, 77, 63, 172, 111, 18, 72, 94, 16, 128, 214, 66, 234, 33, 133, 35, 254, 137, 148, 71, 67, 114, 103, 211, 87, 26, 69, 226, 15, 102, 198, 252, 191, 40, 212, 107, 86, 76, 246, 103, 17]) }, Event { key: EventKey([228, 197, 146, 1, 230, 179, 182]), value: EventValue([45, 0, 144, 244, 202, 56, 167, 134, 147, 17, 207, 206, 119, 139, 195, 167, 115, 207, 83, 186, 17, 1, 46, 25, 185, 244, 129, 30, 52, 233, 215, 7, 16, 170, 247, 56, 149, 11, 12, 225, 67, 146, 100, 46, 163, 223, 199, 219, 103, 186, 143, 127, 171, 157, 240, 15, 99, 22, 152, 28, 109, 233, 190]) }, Event { key: EventKey([27, 75, 24, 218, 73, 194, 243, 10, 162, 24, 45, 100, 73, 94, 220, 107, 174, 231, 127, 196, 150, 164, 252, 195, 74, 184, 146, 177, 139, 195, 241, 84, 128, 23, 165, 178, 107, 219, 119, 22, 87, 86, 224, 117, 222, 164, 139, 248, 124, 156, 243, 228, 131, 103, 108, 147, 244, 249, 154, 25, 190, 203, 81, 40, 224, 160, 55, 255, 248, 207, 77, 189, 201, 104, 18, 36, 190, 127, 179, 180]), value: EventValue([67, 216, 68, 120, 132, 68, 178, 38, 63, 239, 124, 135, 154, 178, 157, 247, 62, 219, 87]) }, Event { key: EventKey([28, 55, 100, 63, 55, 81, 92, 239, 192, 7, 40, 238, 215, 26, 247, 225, 100, 16, 61, 1, 144, 119, 80, 149, 109, 188, 181, 223, 26, 162, 178, 0, 111, 179, 106, 74, 190, 254, 57, 104, 17, 138, 62, 185, 175, 68, 138, 171, 225, 8, 41, 173, 30, 161, 185, 251, 97, 115, 242]), value: EventValue([237, 195, 96, 136, 218, 219, 27, 246, 65, 211, 100, 238, 168, 223, 112, 46, 130, 78, 58, 84, 166, 245, 141, 31, 20, 102]) }], receipt: 3386494344 }, TransactionReceipt { tx_hash: [178, 113, 17, 67, 255, 134, 236, 179, 105, 168, 165, 207, 139, 220, 86, 74, 220, 226, 88, 170, 104, 25, 45, 232, 56, 82, 214, 109, 140, 135, 144, 156], body_to_save: Some([0, 123, 69, 227, 155, 232, 176, 24, 202, 245, 140, 11, 23, 158, 102, 116, 120, 178, 89, 81, 128, 243, 76, 153, 251, 57, 243, 0, 73, 108, 37, 236, 63, 99, 155, 53, 61, 47, 139, 64, 51, 115, 131, 184, 145, 167, 141, 146, 16, 141, 140, 30, 144, 68, 67, 103, 66, 221, 55, 31, 214, 163, 44, 0, 118, 91, 127]), events: [Event { key: EventKey([240, 123, 70, 254, 34, 114, 56, 190, 228, 197, 87, 71, 75, 225, 176, 173, 241, 15, 50, 15]), value: EventValue([219, 139, 165, 94, 252, 138, 120, 129, 114, 15, 97, 71, 92, 236, 171, 26, 118, 130, 142, 89, 139, 178, 196, 197, 31, 102, 10, 179, 62, 180, 20]) }, Event { key: EventKey([191, 157, 90, 235, 55, 229, 0, 3, 223, 164, 142, 26, 49, 131, 231, 97, 111, 10, 247, 21, 170, 242, 39, 124, 253, 198, 24, 48, 23, 104, 15, 190, 214, 204, 174, 58, 39, 222, 240, 140, 73, 30, 250, 65, 29, 247, 197, 58, 161, 212, 104, 236, 76, 234, 117, 126, 207, 221, 11, 106, 207, 102, 172, 22, 152, 29, 37, 157, 223, 173, 65, 35, 178, 1, 178, 135, 16, 170, 3, 143, 119, 0, 179, 205, 223, 132, 142, 184, 221, 153, 74, 33]), value: EventValue([187, 2, 42, 200, 239, 161, 78]) }], receipt: 2889100936 }, TransactionReceipt { tx_hash: [22, 147, 126, 181, 238, 133, 236, 241, 126, 141, 132, 52, 175, 99, 137, 58, 23, 188, 23, 66, 185, 138, 90, 215, 183, 176, 156, 133, 47, 156, 175, 249], body_to_save: None, events: [], receipt: 2134161184 }, TransactionReceipt { tx_hash: [58, 92, 233, 155, 165, 118, 183, 6, 217, 169, 50, 170, 149, 8, 12, 124, 209, 148, 129, 240, 171, 8, 45, 61, 82, 81, 239, 156, 108, 114, 22, 64], body_to_save: None, events: [Event { key: EventKey([0, 174, 70, 107, 51, 123, 220, 221, 220, 234, 23, 215, 107, 22, 148, 191, 158, 132, 215, 198, 15, 58, 183, 28, 66, 111, 31, 157]), value: EventValue([45, 70, 174, 219, 109, 106, 172, 161, 33, 171, 154, 13, 237, 15, 204, 24, 211, 174, 49, 186, 22, 64, 64, 50, 231, 14, 231, 188, 57, 53, 135, 116, 48, 15, 89, 55, 244, 237, 34, 123, 85, 112, 6, 134, 82, 28, 188, 7, 8, 166, 135, 170, 186, 202, 91, 33, 116, 119, 159, 151, 76, 40, 37, 69, 131, 150, 113, 3, 125, 69, 175, 89, 226, 220, 177, 142, 77, 106, 221, 151, 97, 242, 216, 233, 236, 106, 59, 127, 188]) }, Event { key: EventKey([12, 125, 146, 187, 11, 244, 72, 21, 197, 71, 187, 26, 84, 73, 227, 128, 241, 230, 136, 169, 89, 160, 11, 224, 164, 154, 243, 229, 217, 252, 112, 2, 222, 250, 73, 241, 202, 60, 51, 50, 164, 2, 253, 212, 65, 31, 179, 191, 74, 62, 2, 219, 146, 47, 249, 84, 222, 212, 168, 72, 251, 185, 112, 199, 186, 247, 239, 2, 21]), value: EventValue([170, 30, 61, 135, 244, 17, 78, 212, 174, 71, 42, 145, 187, 115, 205, 148, 76, 20, 25, 190, 54, 135, 33, 199, 18, 172, 74, 161, 230, 21, 75, 71, 197, 110, 133, 49, 69, 156, 202, 136, 91, 86, 242, 199, 0, 108, 177, 223, 179, 45, 13, 4, 36, 237, 190, 184, 158, 251, 242, 41, 66, 93, 210, 107, 19, 174, 224, 169]) }, Event { key: EventKey([194, 81, 58, 70, 157, 193, 170, 14, 246, 21, 95, 250, 201, 93, 80, 172, 107, 30, 81, 85, 87, 216, 189, 162, 168, 112, 203, 231, 11, 129, 85, 158, 9, 138, 70, 131, 34, 45, 100]), value: EventValue([167, 64, 242, 145, 74, 95, 181, 23, 19, 18, 249, 32, 242, 211, 0, 217, 48, 215, 183, 95, 144, 157, 111, 161, 178, 145, 81, 80, 94, 70, 100, 141, 220, 112, 115, 70, 185, 173, 223, 154, 80, 15, 72, 232, 26, 27, 239, 75, 223, 160, 188, 135, 72, 0, 57, 123, 174, 116, 140, 42, 166, 220, 200, 95, 161, 230, 244, 245, 178, 50, 120, 187, 213, 233, 76, 73, 244, 25, 4, 56, 187]) }, Event { key: EventKey([43, 172, 251, 46, 119, 71, 160, 251, 242, 164, 174, 201, 77, 221, 229, 59, 99, 142, 253, 193, 206, 33, 133, 51, 226, 238, 246, 6, 138, 184, 99, 117, 215, 230, 178, 222, 243, 235, 213, 219, 8, 144, 157, 87, 53, 61, 5, 250, 155, 127, 33, 41, 166, 113, 44, 115, 123, 128, 162, 156, 88, 247, 235, 224, 240, 222, 192, 230, 107, 47, 32, 154, 204, 184, 247]), value: EventValue([154, 199, 182, 116, 144, 61, 192, 161, 19, 80, 239, 57, 64, 153, 39, 90, 169, 175, 156, 40]) }, Event { key: EventKey([62, 96, 101, 81, 144, 39, 82, 0, 114, 74, 120, 161, 45, 82, 93, 220, 229, 26, 147, 48, 54, 127, 5, 236, 163, 5, 203, 91, 145, 255, 1, 109, 110, 62, 102, 144, 25, 94, 210, 24, 215, 105, 18, 197, 182, 178, 167, 138, 86, 245, 39, 241, 211, 57, 4, 13, 46, 23, 127, 124, 20, 149, 240, 87, 38, 134, 123, 86, 127, 230, 101, 243, 141, 148, 166, 235, 96, 66, 30, 154, 218, 33, 151, 145, 131, 30, 106, 173, 31, 41, 104, 232, 53, 26, 121, 61]), value: EventValue([116, 4, 36, 111, 125, 150, 56, 160, 39, 184, 44, 196, 196, 138, 171, 171, 60, 126, 224]) }, Event { key: EventKey([88, 17, 141, 182, 4, 64, 146, 162, 221, 196, 101, 74, 118, 68, 153, 170, 213, 21, 113, 240, 210, 107, 254, 59, 38, 111, 181, 149, 0, 226, 235, 140, 75, 77, 78, 198, 120, 132, 32, 54, 51, 173, 185, 93, 243, 124, 70, 193, 231, 188, 118, 140, 237, 143, 44, 89, 105, 82, 1, 143, 203]), value: EventValue([152, 42, 224, 251, 10, 190, 182, 119, 181, 11, 233, 250, 251]) }], receipt: 158904389 }, TransactionReceipt { tx_hash: [254, 181, 232, 217, 20, 7, 61, 7, 218, 133, 192, 76, 23, 22, 132, 76, 171, 90, 95, 141, 97, 125, 140, 179, 133, 80, 102, 201, 67, 8, 184, 189], body_to_save: None, events: [Event { key: EventKey([151, 36]), value: EventValue([35, 76, 12, 89, 72, 89, 189, 228, 172, 112, 72, 13, 202, 22, 18, 111, 13, 92, 233, 156, 177, 136, 28, 33, 176, 167, 49, 211, 80, 69, 198, 122, 163, 205]) }, Event { key: EventKey([170, 25, 108, 145, 170, 215, 74, 81, 9, 157, 109, 222, 227, 183, 203, 26, 23, 103, 147, 174, 105, 45, 213, 243, 116, 246, 170, 56, 152, 10, 148, 118, 117, 34, 210, 252, 208, 196, 61, 107, 174, 192, 140, 97, 251, 219, 199, 44, 216, 97, 157, 24, 249, 91, 125, 31, 187, 189, 18, 40, 194, 91, 67, 196, 74, 118, 125, 21, 89, 87, 16, 165, 60, 188, 159, 190, 70, 13, 94, 177, 176, 124, 116, 106, 252, 149, 155, 250, 162, 235, 183, 115, 148, 141, 206, 192, 144]), value: EventValue([35, 84, 11, 73, 34, 115, 47, 101, 181, 1, 197, 79, 56, 17, 148, 146, 135, 13, 106, 195, 177, 124, 232, 63, 26, 164, 255, 248, 52, 138, 114, 44, 106, 249, 222, 184, 113, 227, 218, 6, 124, 71, 167, 86, 22, 111, 58, 61, 34, 4, 240, 175, 188, 50, 216, 155, 221, 169, 63, 216, 242, 205, 213, 199, 108, 82, 170, 113, 51, 213, 70, 173]) }], receipt: 572844090 }, TransactionReceipt { tx_hash: [116, 18, 7, 209, 8, 94, 205, 198, 76, 39, 15, 191, 153, 58, 83, 149, 142, 2, 209, 159, 147, 144, 63, 99, 1, 250, 99, 73, 24, 151, 67, 76], body_to_save: Some([42, 195, 15, 29, 109, 191, 52, 10, 149, 29, 27]), events: [], receipt: 3236092256 }, TransactionReceipt { tx_hash: [251, 141, 125, 90, 176, 5, 2, 47, 232, 146, 51, 33, 60, 51, 214, 88, 137, 139, 211, 206, 112, 6, 93, 101, 73, 49, 220, 175, 2, 176, 33, 111], body_to_save: Some([27, 49, 243, 133, 199, 82, 51]), events: [Event { key: EventKey([116, 221, 10, 200, 186, 10, 195, 254, 110, 218, 168, 54, 130, 158, 180, 96, 245, 170, 65, 85, 103, 92, 151, 235, 237, 165]), value: EventValue([184, 24, 155, 215, 99, 101, 180, 173, 41, 91, 130, 144, 111, 219, 4, 34, 142, 143, 146, 17, 254, 181, 154, 65, 227, 25, 135, 8, 148, 139, 86, 194, 156, 105, 38, 140, 195]) }], receipt: 268745520 }, TransactionReceipt { tx_hash: [81, 143, 176, 132, 59, 241, 128, 72, 66, 4, 112, 221, 60, 146, 10, 132, 16, 49, 66, 98, 151, 85, 131, 60, 249, 70, 197, 215, 213, 133, 46, 190], body_to_save: Some([156, 56, 50, 147, 0, 87, 18, 98, 83, 150, 98, 240, 6, 90, 64, 243, 10, 87, 214, 202, 51, 136, 35, 47, 115, 78, 92, 44, 32, 113, 251, 9, 197, 178, 122, 103, 4, 250, 249, 192]), events: [], receipt: 1276972074 }], inner: 4117970274 }, BatchReceipt { batch_hash: [175, 229, 115, 217, 199, 222, 77, 62, 80, 82, 27, 50, 247, 89, 205, 219, 165, 26, 82, 223, 63, 146, 186, 70, 143, 137, 22, 60, 190, 81, 172, 174], tx_receipts: [TransactionReceipt { tx_hash: [70, 38, 241, 172, 133, 113, 51, 178, 30, 178, 27, 246, 86, 80, 88, 190, 184, 175, 16, 82, 198, 107, 60, 9, 124, 54, 31, 153, 19, 194, 29, 83], body_to_save: None, events: [Event { key: EventKey([196, 210, 112, 170, 153, 212, 43, 1, 223, 166, 173, 5, 212, 88, 154, 206, 106, 219, 160, 120, 60, 242, 139, 176, 254, 213, 119, 83, 124, 235, 120, 151, 48, 118]), value: EventValue([101, 24, 145, 152, 27, 39, 191, 65, 231, 111, 129, 132, 62, 246, 230, 157, 67, 194, 19, 197, 181, 97, 225, 97, 131, 222, 124, 174, 112, 35, 219, 7, 197, 36, 166, 3, 69, 56, 239, 183, 235, 116, 133, 95, 210, 5, 67, 102]) }], receipt: 1645987202 }, TransactionReceipt { tx_hash: [131, 249, 165, 13, 21, 213, 63, 144, 105, 172, 93, 150, 171, 7, 124, 37, 114, 97, 12, 242, 110, 54, 126, 124, 41, 55, 171, 20, 254, 151, 169, 125], body_to_save: None, events: [], receipt: 3844597800 }, TransactionReceipt { tx_hash: [72, 79, 190, 66, 145, 89, 201, 40, 44, 163, 191, 13, 133, 136, 61, 91, 104, 46, 198, 105, 62, 6, 44, 63, 154, 137, 76, 176, 35, 126, 62, 225], body_to_save: None, events: [Event { key: EventKey([84, 59, 205, 182, 201, 229, 71, 107, 49, 83, 10, 85, 172, 174, 186, 218, 37, 73, 194, 61, 156, 21, 252, 89, 104, 113, 88, 89, 173, 49, 128, 128, 59, 205, 220, 246, 112, 229, 220, 30, 180, 8, 59, 8, 104, 151, 182, 205, 8, 217, 57, 112, 232, 241, 182, 236, 107, 226, 7, 30, 41, 227, 108, 8, 246, 112, 146, 140, 174, 148, 205, 38, 189, 38, 134, 58, 85, 49, 157, 159, 226, 224, 191, 174, 131, 30, 134, 85, 127, 112, 210, 15, 127, 99, 11, 139]), value: EventValue([191, 121, 22, 175, 203, 154, 123, 91, 164, 8, 31, 156]) }, Event { key: EventKey([79, 33, 189, 146, 126, 177, 203, 94, 61, 158, 93, 156, 125, 216, 20, 175, 53, 176, 137, 124, 80, 221, 37, 196, 80, 31, 23, 187, 17, 202, 190, 135, 99, 72, 150, 34, 174, 192, 197, 208, 67, 51, 88, 111, 13, 25, 249, 89, 82, 5, 176, 10, 21, 57, 123, 218, 133, 38, 33, 247, 255, 163, 211, 38, 214, 181, 192, 195, 253, 186, 203, 204, 236, 123, 239, 42, 43]), value: EventValue([133, 74, 244, 117, 212, 133, 148, 93, 30, 99, 197, 242, 12, 185, 102, 100, 30, 126, 244, 195, 156, 109, 225, 4, 138, 149, 41, 254, 5, 119, 23, 95, 232, 64, 186, 107, 222, 32, 176, 151, 206, 71, 33, 63, 157, 180, 135, 101, 43, 202, 111, 6, 251, 215, 195, 49]) }], receipt: 4190550214 }, TransactionReceipt { tx_hash: [7, 32, 135, 220, 183, 73, 202, 13, 82, 21, 160, 1, 241, 141, 22, 160, 18, 112, 176, 160, 119, 185, 14, 144, 154, 123, 44, 71, 79, 36, 199, 72], body_to_save: None, events: [Event { key: EventKey([184, 199, 115, 91, 9, 135, 142, 17, 207, 232, 179, 86, 118, 34, 147, 64, 209, 197, 124, 8, 27, 93, 210, 66, 97, 56, 113, 32, 68, 193, 150, 88, 75, 196, 103, 50, 88, 147, 23, 136, 184, 244, 7, 193, 251, 110, 132, 170, 72, 113, 121, 82, 249, 69, 128, 159, 197, 191, 130, 210, 250, 44, 237, 87, 209, 56, 176, 136, 76, 98, 233, 128, 187, 54, 66, 83, 195, 163, 224, 175, 61, 132, 68, 25, 106, 212, 144, 241]), value: EventValue([55, 230, 246, 32, 146, 209, 90, 212, 57, 73, 142, 4, 169, 9, 33, 61, 191, 154, 58, 127, 230, 208, 2, 46, 154, 200, 119, 56, 38, 227, 69, 223, 114, 115, 84, 51, 213, 135, 10, 144, 140, 219, 214, 175, 52, 100, 229, 173, 121, 111, 175, 190, 208, 137, 140, 45, 57, 136, 61, 139, 78, 46, 128, 79, 129, 108, 148, 209, 207, 94, 80]) }, Event { key: EventKey([62, 105, 104, 59, 147, 175, 143, 100, 24, 150, 241, 185, 33, 119, 243, 70, 255, 90, 73, 182, 25, 169, 74, 168, 0, 138, 135, 207]), value: EventValue([56, 191, 109, 144, 189, 91, 224, 218, 52, 81, 103, 120, 50, 91, 111, 166, 47, 24, 51, 217, 239, 74, 140, 204, 49, 175, 103, 79, 137, 186, 219, 231, 201, 236, 94, 197, 212, 202, 175, 239, 188, 254, 233, 121, 69, 149, 202, 198]) }, Event { key: EventKey([85, 72, 242, 158, 158, 73, 44, 55, 128, 126, 14, 144, 227, 247, 7, 9, 176, 122, 250, 147, 155, 71, 52, 223, 253, 151, 50, 214, 28, 249, 55, 93, 73, 181, 32, 119, 154, 148, 250, 28, 215, 17, 250, 180, 85, 196, 132, 25, 240, 49, 234, 99, 18, 184, 101, 116, 11, 194, 137, 57, 192, 26, 129, 237, 32, 33, 66, 247, 146, 199, 100, 174, 163, 238, 30, 38, 80, 11, 195, 13, 102, 68, 43, 34, 47, 64, 198, 146, 203, 138, 215, 34, 84, 249, 197, 236, 42, 197, 15]), value: EventValue([119, 13, 144, 181, 161, 22, 183, 45, 28, 236, 162, 99, 87, 123, 147, 10, 129, 31, 23, 72, 98, 203, 74, 198, 202, 28, 134, 60, 3, 225, 175, 196, 252, 229, 120, 125, 211, 71, 24, 215, 42, 212, 0, 140]) }, Event { key: EventKey([25, 78, 197, 11, 20, 189, 152, 11, 31, 109, 187, 53, 113, 37, 95, 135, 99, 168]), value: EventValue([44, 17, 240, 247, 33, 118, 89, 240, 12, 110, 56, 246, 217, 108, 43, 100, 107, 163, 39, 214, 60, 231, 2, 175, 93, 244, 236, 59, 173, 9, 103]) }, Event { key: EventKey([246, 78, 70, 176, 145, 82, 56, 86, 71, 148, 94, 251, 62, 89]), value: EventValue([7, 160, 231, 222, 56, 17, 88, 21, 125, 194, 161, 203, 43, 248, 224, 153, 185, 19, 249, 145, 55, 208, 60, 203, 8, 34]) }, Event { key: EventKey([100, 129, 169, 139, 57, 225, 234, 29, 36, 94, 58, 135, 103, 111, 1, 89, 180, 117, 242, 86, 7, 14, 24, 82, 128, 112, 201, 48, 71, 64, 28, 106, 86, 193, 34, 38, 126, 183, 7, 115, 101, 110, 238, 84, 199, 132, 124, 217, 237, 71, 229, 38, 120, 18, 44, 49, 244, 161, 174, 227, 104, 164, 23, 253, 241, 221, 151, 181, 46, 195, 208, 241, 242, 172, 237, 6, 85]), value: EventValue([182, 40, 12, 54, 156, 31, 80, 70, 246, 66, 238, 6, 91, 214, 89]) }, Event { key: EventKey([105, 20, 239, 121, 22, 73, 26, 217, 61, 163, 232, 42, 78, 104, 166, 94, 246, 128, 32, 86, 6, 77, 102, 131, 106, 59, 206, 172, 130, 130, 49, 177, 171, 197, 64, 82, 204, 40, 189, 92, 123, 19, 188, 4, 251, 189, 35, 14, 237, 131, 33, 101, 61, 131, 231, 163]), value: EventValue([15, 76, 238, 166, 7, 141, 85, 92, 178, 208, 82, 210, 186, 0, 152, 8, 226, 89, 7, 97, 41, 215, 197, 118, 194, 191, 12, 85, 0, 106, 94, 84, 67, 80, 251, 249, 15, 159, 81, 127, 86, 120, 227, 192, 50, 255, 127, 241, 249, 176, 60, 136, 52, 78, 96, 195, 186, 180, 76, 126, 182, 226, 124, 79, 229, 122, 252, 191, 39, 20, 134, 184, 103, 101, 170, 227, 72, 82, 50, 71, 2, 6, 127, 186, 36, 205, 39, 223, 227, 188, 194, 198, 3, 248]) }, Event { key: EventKey([219, 164, 138, 219, 4, 21, 141, 179, 27, 251, 208, 114, 145, 126, 213, 88, 108, 155]), value: EventValue([155, 150, 123, 112, 0, 142, 218, 48, 142, 164, 130, 247, 250, 25, 135, 86, 140, 25, 206, 248, 76, 213, 86, 232, 93, 222, 140, 120, 19, 89, 222, 145, 178, 3, 64, 88, 162, 14, 48, 255, 106, 197, 169, 221, 203, 34, 82, 126, 209, 10, 40, 231, 56, 23, 21, 190, 55, 149, 53, 123, 209, 5, 22, 92, 204, 244, 228, 25, 241, 132, 24, 251, 22, 147, 76, 197, 40, 69, 89, 63, 60, 99, 242, 91, 242, 191, 2, 90, 83, 122, 49, 144, 104]) }, Event { key: EventKey([213, 83, 78, 109, 237, 35, 195, 253, 70, 225, 8, 59, 137, 87, 137, 147, 139, 45, 55, 204, 94, 156, 176, 68, 218, 101, 29, 77, 178, 217, 196, 36, 149, 215, 59, 87, 188, 40, 20, 244, 33, 12, 6, 48, 172, 132, 154, 97, 82, 110, 179, 77, 155, 198, 108, 75, 225, 149, 253, 92, 126, 179, 11]), value: EventValue([59, 56, 27, 116, 77, 107, 17, 76, 46, 44, 221, 219, 131, 64, 246, 48, 110, 45, 247, 151, 205, 29, 62, 108, 213, 24, 64, 190, 133, 88, 48, 230, 131, 131, 128, 33, 101, 107, 247, 161, 134, 135, 238, 205, 98, 148, 211, 175, 101, 253, 242, 213, 92, 105, 224, 47, 118, 248, 244, 85, 212, 76, 94, 242, 183, 251, 92, 118, 123, 14, 136, 40, 246, 106, 233, 55, 136, 31, 105, 21, 28, 217, 2, 1, 49, 0, 65, 131, 88, 62, 75, 116, 51, 52, 246, 63, 100]) }], receipt: 262861702 }, TransactionReceipt { tx_hash: [122, 41, 66, 131, 246, 248, 89, 106, 74, 233, 167, 212, 200, 138, 74, 110, 109, 70, 182, 189, 67, 170, 5, 59, 211, 1, 57, 56, 244, 242, 88, 169], body_to_save: Some([147, 83, 21, 210, 221]), events: [Event { key: EventKey([219, 236, 229, 238, 18, 94, 54, 29, 216, 66, 127, 244, 75, 85]), value: EventValue([99, 34, 83, 193, 136, 206, 94, 13, 128, 199, 163, 162, 74, 60, 157, 150, 191, 212, 214, 162, 25, 64, 30, 142, 206, 249, 174, 41, 47, 221, 43, 68, 139, 208, 140, 217, 41, 62, 29, 162, 219, 171, 89, 57, 35, 199, 128, 17, 126, 44, 65, 148, 29, 38, 53, 66, 81, 67, 39, 132, 207, 127, 97, 147, 72, 190, 63, 136, 167, 166, 72]) }, Event { key: EventKey([186, 122, 149, 167, 159, 24, 142, 114, 91, 105, 26, 64, 225, 220, 173, 154, 207, 251, 208, 2, 53, 229, 105, 14, 181, 85, 224, 187, 203, 142, 180, 174, 185, 89, 107, 217, 151, 0, 12, 12, 77, 5, 36, 172, 60, 108, 137, 158, 216, 152, 155, 79, 105, 74, 8, 5, 239, 55, 239, 79, 136, 54, 144, 2, 165, 216, 247, 147, 160, 50, 34, 108, 39, 165, 9, 102, 57, 24, 76, 131, 95]), value: EventValue([61, 204, 176, 202, 119, 27, 50, 80, 68, 56, 44, 243, 171, 51]) }, Event { key: EventKey([133, 68, 155, 4, 89, 154, 124, 244, 240, 184, 179, 140, 175, 146, 203, 219, 147, 207, 98, 167, 109, 42, 139, 94, 146, 65, 233, 146, 235, 226, 51, 254, 66, 166, 18, 69, 6, 204, 227, 6, 155, 26, 82, 188]), value: EventValue([143, 109, 15, 176, 78, 156, 158, 236, 21, 220, 194, 40, 3, 205]) }, Event { key: EventKey([54, 80, 107, 160, 188, 160, 133, 66, 177, 89, 228, 19, 207, 199, 1, 136, 189, 24, 21, 148, 135, 26, 233, 92, 177, 138, 8, 254, 56, 105, 241, 83, 26, 33, 211, 170, 53, 27]), value: EventValue([214, 66, 161, 18, 87, 151, 151, 58, 171, 146, 112, 103, 205, 218, 65, 170, 203, 150, 182, 105, 59, 73, 113, 90, 174, 212, 147, 191, 182, 254, 57, 247, 31, 106, 249, 171, 205, 28, 72, 127, 21, 141, 159, 166, 142, 38, 160, 229, 144, 228, 245, 140, 62, 200, 245, 244, 100, 7, 123, 232, 206, 118, 202, 186, 124, 156, 248, 238, 75, 140, 130, 211, 247, 106, 240, 102, 244, 25, 56, 139, 57, 124, 220, 26, 108]) }, Event { key: EventKey([158, 39, 247, 114, 70, 89, 34, 25, 183, 79, 144, 95, 210, 196]), value: EventValue([153, 11]) }, Event { key: EventKey([29, 210, 115, 125, 98, 207, 78, 201, 146, 211, 114, 162, 24, 50, 34, 100, 185, 179, 73, 94]), value: EventValue([64, 44, 186, 224, 19, 195, 133, 18, 155, 125, 86, 209, 143, 212, 97, 51, 170, 49, 151, 95, 242, 132, 183, 115, 220, 216, 215, 204, 95, 46, 176, 109]) }, Event { key: EventKey([68, 172, 45, 131, 205, 41, 255, 201, 218, 150, 193, 248, 228, 118, 179, 138, 41, 99, 97, 74, 11, 71, 137, 95, 99, 6, 94, 200, 225, 242, 203, 200, 72, 37, 18, 53, 97, 101, 59, 238, 232, 23, 141, 137, 45]), value: EventValue([107, 249, 119, 46, 124, 134, 43, 126, 198, 103, 92, 37, 94, 45, 137, 226, 109, 221, 234, 15, 60, 186, 219, 169, 68, 190, 213, 236, 55, 231, 18, 245, 161, 14, 147, 74, 16, 245, 165, 198, 24, 202, 105, 151, 4, 218, 97, 195, 182, 64, 114, 253, 134, 26, 112, 73, 0, 166, 132, 91, 109, 26, 112, 232, 0, 19, 61, 16, 247, 65, 107, 88, 73, 133, 191]) }], receipt: 2559752058 }, TransactionReceipt { tx_hash: [179, 48, 119, 224, 208, 137, 64, 214, 114, 239, 15, 136, 230, 62, 171, 33, 243, 199, 160, 109, 118, 64, 204, 135, 155, 34, 83, 0, 32, 103, 155, 114], body_to_save: Some([150, 137, 120, 143, 143, 197, 228, 164, 89, 88, 194, 59, 29, 145, 228, 130, 110, 198, 70, 121, 227, 253, 191, 2, 12, 50, 0, 165, 87, 149, 74, 74, 255, 134, 136, 222, 112, 49, 100, 149, 153, 0, 28, 2, 44, 170, 21, 132, 111, 248, 206, 193, 231, 177, 115, 135, 160, 26, 90, 220, 248]), events: [Event { key: EventKey([25, 160, 91, 40, 156, 158, 222, 142, 185, 158, 138, 144, 199, 30, 249, 69, 161, 106, 242, 117, 227, 25, 89, 159, 58, 79, 193, 175, 224, 27, 211, 232, 253, 41, 22, 19, 24, 111, 107, 58, 219, 185, 213, 233, 183, 146, 242, 225, 92, 137, 253, 204, 26, 14, 24, 59, 94, 237, 245, 159, 69, 233, 149, 17, 109, 241, 152, 148, 37, 187, 225, 19, 1, 243, 8, 208, 250, 215, 155, 16, 40]), value: EventValue([234, 18, 184, 107, 64, 197, 149, 164, 174, 115, 94, 75, 221]) }, Event { key: EventKey([95, 106, 227, 85, 216, 97, 213, 74, 58, 224, 55, 151, 129, 173, 71, 75, 16, 134, 226, 69, 94, 129, 27, 196, 159, 221, 143, 136, 188, 89, 202, 65, 74, 240, 137, 145, 61, 37, 252, 205, 129, 150, 135, 15, 183, 81, 100, 97, 9, 13, 215, 7, 183, 162, 241, 157, 18, 87, 120, 37, 99, 16, 129, 74, 227, 141, 5, 200, 255, 160, 123, 28, 102, 9, 42, 40, 122, 97, 0, 158, 5, 222, 113, 174, 110, 119, 58, 155, 85, 72, 101]), value: EventValue([67, 186, 218, 27, 11, 115, 136, 152, 243, 9, 164, 141, 41, 236, 123, 118, 211, 134, 252, 6, 239, 254, 110, 240, 92, 241, 107]) }, Event { key: EventKey([241, 20, 220, 165, 146, 51, 133, 127, 204, 248, 30, 121, 227, 170, 127, 76, 34, 165, 74, 183, 26, 199, 246, 183, 86, 223, 172, 220, 111, 74, 29, 160, 237, 20, 157, 90, 137, 78, 73, 120, 219, 131, 100, 254, 232, 209, 147, 118, 119, 212, 1, 109, 245, 84, 239, 228, 142, 18, 58, 78, 225, 215, 252, 199, 41, 180, 180, 150, 29, 214, 162, 38, 103, 75, 68, 106, 24, 105, 30, 69, 220, 124, 98, 59, 241, 255, 234, 156, 142, 132, 152]), value: EventValue([218, 22, 15, 72, 148, 77, 115, 161, 246, 179, 250, 20, 207, 73, 44, 43, 106, 186, 181, 31, 219, 219, 26, 181, 253, 150, 50, 84, 251, 92, 247, 154, 24, 239, 70, 153, 168, 141, 172, 180, 64, 37, 50, 227, 80, 147, 181, 45, 197]) }, Event { key: EventKey([180, 186, 7, 194, 178, 126, 235, 78, 50, 157, 57, 201, 171, 182, 250, 136, 78, 100, 163, 121, 200, 137, 143, 206]), value: EventValue([202, 248, 153, 80, 127, 56, 183, 36, 100, 98, 186, 74, 195, 152, 164, 222, 221, 119, 143, 225, 154, 216, 238, 51, 182, 171, 0, 173, 128, 197, 253, 8, 109, 86, 248, 214, 123, 203, 159, 175, 198, 48, 121, 248, 252, 152, 188, 212, 13, 228, 114]) }, Event { key: EventKey([140, 60, 255, 109, 111]), value: EventValue([26, 193, 60, 28, 79, 157, 142, 39, 64, 136, 46, 9, 49, 168, 223, 115, 190, 185, 31, 164, 94, 88, 125, 45, 120, 47, 41, 72, 86, 193, 44, 105]) }, Event { key: EventKey([15, 4, 128, 182, 212, 232, 254, 31, 2, 116, 100, 90, 130, 10, 0, 240, 49, 9, 185, 48, 43, 1, 84, 7, 238, 41, 127, 223, 249, 57, 180, 177, 51, 189, 220, 173, 232, 24, 14, 93, 183, 210, 251, 19, 157, 227, 180, 2, 10, 96, 101, 182, 106, 51, 253, 233, 84, 54, 154, 178, 1, 73, 184, 9, 22, 33, 4, 55, 23, 246, 165, 129, 244, 252, 118, 52, 191, 131, 147, 13, 46, 33]), value: EventValue([37, 125, 101, 127, 17, 95, 249, 10, 46, 125, 39, 74, 231, 119, 37, 61, 17, 180, 101, 26, 188, 141, 0, 209, 26, 20, 31, 233, 84, 119, 48, 96, 25, 65, 227, 83, 73, 35, 187, 79, 205, 93, 238, 71, 112, 231, 214, 145, 198, 42, 151, 69, 146, 72, 247, 122, 114, 206, 215, 63, 99, 52, 61, 96, 102, 6, 132, 30, 232, 210, 16, 111, 227, 100, 159, 80, 16, 172, 94, 30, 67, 182, 123, 175, 64, 72, 156, 253, 1, 143, 28, 17, 143, 255, 36]) }, Event { key: EventKey([28, 169, 30, 189, 230, 230, 153, 92, 129, 53, 166, 53, 136, 149, 143, 11, 91, 220, 228, 35, 243, 60, 185, 37, 57, 92, 220, 144, 253, 171, 41, 33, 58, 123, 194, 16, 251, 127, 7, 156, 232, 45, 239, 9, 80, 14, 148, 96, 70, 218, 176, 171, 19, 64, 96, 22, 216, 42, 85, 53, 181, 97, 205, 152]), value: EventValue([126, 59, 55, 118, 174, 67, 148, 25, 174, 124, 126, 86, 237, 158, 224, 107, 9, 172, 18, 130, 180, 132, 44, 0, 15, 230, 216, 158, 240, 168, 243, 136, 162, 62, 215, 248, 113, 143, 204, 28, 49, 38, 144, 56, 202, 165, 214, 171, 221, 200, 54, 66, 233, 111, 168, 13, 132, 240, 218, 155, 239, 67, 50, 176, 253, 40, 182, 232, 45, 226, 155, 151]) }, Event { key: EventKey([128, 94, 70, 135, 184, 126, 238, 61, 3, 85, 104, 230, 37, 155, 35, 94, 93, 87, 206, 190, 193, 126, 231, 231, 168, 245, 255, 99, 45, 131, 66, 148, 126, 33, 65, 60, 95, 127, 35, 53, 113, 163, 172, 152, 10, 59, 38, 91, 13, 201, 14, 24, 118, 196, 112, 208, 146, 108, 185, 207, 13, 114]), value: EventValue([40, 212, 43, 33, 240, 203, 24, 175, 167, 50, 131, 55, 104, 202, 74, 31, 13, 204, 96, 101, 245, 80, 215, 255, 161, 100, 27, 30, 230, 197, 132, 238, 212, 251, 111, 183, 83, 64, 29, 186, 211, 146, 71, 128, 219]) }], receipt: 284780705 }], inner: 2348301542 }, BatchReceipt { batch_hash: [8, 55, 187, 109, 38, 78, 31, 53, 88, 80, 194, 232, 109, 86, 255, 158, 154, 142, 52, 245, 68, 128, 171, 135, 169, 133, 94, 194, 251, 127, 9, 247], tx_receipts: [TransactionReceipt { tx_hash: [192, 131, 81, 181, 92, 163, 56, 252, 123, 103, 89, 52, 175, 8, 193, 163, 164, 94, 119, 243, 200, 121, 126, 60, 111, 238, 42, 170, 255, 241, 178, 231], body_to_save: Some([20, 202, 22, 229, 41, 168, 138, 62, 77, 79, 143, 22, 94, 115, 236, 145, 253, 122, 157]), events: [Event { key: EventKey([106, 190, 156, 110, 213, 87, 186, 131, 241, 218, 225, 179, 124, 105, 124, 94, 66, 218, 69, 83, 206, 213, 100, 245, 140, 61, 29, 10, 173, 115, 188, 149, 26, 152, 169, 10, 16, 51, 134, 191, 205, 122, 134, 165, 30, 85, 123, 128, 183, 11, 233, 161, 251, 125, 95, 83, 91, 199, 187, 201, 200, 246, 31, 158, 107, 71, 77, 158, 204, 144, 242, 177, 190, 158, 12, 170, 23]), value: EventValue([58, 185, 250, 252, 62, 168, 160, 108, 139, 162, 21, 180, 130, 180, 169, 66, 167]) }], receipt: 3063656425 }, TransactionReceipt { tx_hash: [210, 94, 183, 158, 47, 94, 201, 214, 224, 32, 99, 34, 185, 36, 68, 175, 55, 213, 26, 236, 123, 29, 93, 137, 29, 132, 130, 58, 129, 208, 35, 78], body_to_save: None, events: [Event { key: EventKey([215, 113, 16, 133, 117, 98, 116, 153, 158, 162, 250, 227, 88, 110, 184, 42, 253, 211, 149, 23, 102, 150]), value: EventValue([188, 181, 108, 231, 34, 60, 65, 75, 249, 8, 252, 180, 46, 58, 61, 221, 29, 163, 71, 128, 8, 173, 64, 161, 50, 231, 21, 233, 174, 68, 169, 142, 175, 188, 108, 119, 83, 134, 164, 17, 202, 207, 24, 208, 47, 233, 0, 238, 158, 74, 53, 246, 107, 211, 133, 84, 152, 59, 229, 118, 226, 170, 52, 164, 214, 141, 216, 2, 56, 69, 93]) }, Event { key: EventKey([24, 255, 24, 121, 115, 111, 49, 224, 209, 191, 175, 83, 193, 252, 101, 31, 98, 35, 202, 20, 24, 191, 243, 243, 142, 96, 211, 15, 107, 246, 203, 209, 88, 5, 77, 3, 200, 227, 249, 136, 222, 200, 126, 148, 212, 38, 41, 112, 112, 81, 113, 106, 255, 86, 79, 68, 172, 97, 10, 240, 85, 149, 31, 184, 119]), value: EventValue([135, 92, 116, 188, 24, 185, 56, 220, 206, 61, 227, 171, 102, 141, 204, 54, 95, 177, 156, 148, 20, 95, 183, 171, 20, 32, 47, 180, 241, 7, 194, 34, 207, 214, 3, 30, 209, 111, 5, 24, 110, 173, 167, 148, 174, 213, 92, 177, 137, 84, 198, 127, 165, 65, 165, 41]) }, Event { key: EventKey([180, 244, 35, 124, 151, 197, 126, 214, 175, 98, 242, 238, 189, 121, 182, 221, 160, 10, 208, 53, 61, 164, 127, 103, 239, 124, 29, 41, 34, 88, 114, 149, 220, 170, 8, 156, 180, 183, 108, 149, 238, 157, 64, 201, 54, 213, 130, 80, 151, 140, 247, 167, 146, 96, 126, 31, 102, 27, 145, 71, 160, 230, 174, 68, 135, 252, 103, 48, 61, 177, 3, 8, 122, 63, 75, 32, 11, 106, 28, 12, 163, 199]), value: EventValue([205, 86, 23, 75, 164, 188, 136, 230, 5, 251, 198, 18, 76, 63, 76, 238, 21, 163, 56, 86, 98, 244, 225, 76, 160, 141, 242, 230, 243, 49, 146, 191, 20, 122, 37, 54, 57, 231, 117, 53, 186, 79, 138, 126, 28, 104, 50, 34, 67, 36, 32, 82, 24, 233, 154, 161, 255, 118, 64, 108, 5, 31, 115, 2, 235, 87, 110, 39, 234]) }, Event { key: EventKey([30, 193, 228, 163, 179, 18, 150, 248, 221, 204, 166, 88, 18, 196, 64, 85, 48, 240, 247, 255, 115, 36, 170, 197, 197, 209, 71, 208, 27, 149, 41, 202, 192, 190, 137, 10, 185, 93, 117, 107, 135, 191, 32, 72, 5, 188, 168, 208, 91, 6, 235, 31, 65, 245, 154, 67, 119, 10, 205, 214, 223, 76, 227, 164, 0, 119, 27, 13, 229, 208, 178, 173, 143, 247, 210, 116, 141, 72, 57, 103, 253, 68, 98, 254, 165, 23, 241, 66, 164, 17, 226, 83, 95]), value: EventValue([87, 214, 207, 218, 24, 116, 47, 223, 228, 102, 15, 165, 224, 86, 238, 203, 49, 214, 6, 147, 187, 168, 123, 73, 207, 245, 42, 33, 171, 41, 194, 89, 203, 143, 181, 69, 187, 101, 21, 32, 192, 21, 89, 32, 86, 182, 128, 167, 35, 9, 155, 174, 247, 211, 6, 62, 149, 196, 122]) }, Event { key: EventKey([230, 203, 128, 14, 125, 229, 120, 111, 170, 194, 83, 95, 251, 197, 117, 111, 214, 235, 113, 26, 145, 214, 110, 90, 54, 61, 175, 174, 5, 248, 97, 59, 160, 177, 192, 232]), value: EventValue([]) }, Event { key: EventKey([208, 119, 212, 241, 3, 58, 99, 228, 200, 237, 212, 112, 130, 147, 242, 238]), value: EventValue([243, 204, 127, 150, 142, 27, 226, 126, 112, 128, 34, 11, 88, 101, 218]) }, Event { key: EventKey([113, 195, 222, 118, 145, 82, 200, 215, 141, 236, 38, 28, 106, 192, 18, 60, 61, 149, 236, 176, 99, 170, 225, 167, 145, 242, 14, 96, 73, 106, 181, 128, 155, 204, 11, 154, 61, 46, 172, 171, 101, 79, 15, 130, 182, 220, 218, 8, 217, 228, 246, 159, 201, 159, 93, 25, 100, 87, 53, 18, 245, 223, 196]), value: EventValue([32, 202, 229, 133, 226, 152, 181, 233, 187, 178, 166, 158, 207, 224, 228, 230, 189, 150, 15, 4, 181, 253, 0]) }, Event { key: EventKey([169, 110, 94, 32, 247, 73, 160, 173, 223, 171, 88, 146, 106, 1, 200, 144, 246, 118, 114, 158, 25, 115, 128, 101, 24, 55, 15, 127, 161, 139, 31, 138, 103, 198, 173, 202, 226, 150, 160, 231, 133, 158, 76, 26, 97, 214, 226, 105, 211, 154, 67, 45, 119, 87, 195, 219, 108, 123, 23, 28, 181, 76, 32, 169, 65, 129, 225, 116, 3, 54, 81, 71, 37, 55, 84, 235, 228, 237, 193, 53, 226, 127]), value: EventValue([173, 25, 172, 5, 248, 38, 73, 22, 109, 211, 58, 174, 188]) }], receipt: 2051902237 }, TransactionReceipt { tx_hash: [196, 104, 177, 213, 84, 84, 76, 53, 62, 25, 126, 69, 107, 244, 6, 245, 192, 34, 73, 46, 79, 80, 163, 244, 105, 244, 10, 160, 160, 97, 216, 167], body_to_save: Some([254, 255, 145, 18, 138, 26, 77, 122, 231, 130, 213, 187, 77, 9, 70, 224, 217, 246, 60, 190, 1, 30, 66, 202, 242, 152, 46, 255, 100, 187, 77, 208, 146, 112, 114, 118, 6, 204, 137, 172, 231, 230, 143, 35, 7, 232, 157, 120, 40, 244, 38, 252, 89, 177, 27, 157, 166, 205, 32, 7, 254, 230, 187, 8, 125, 163, 5, 248, 57, 152, 129, 20, 32, 181, 209, 32, 94, 70, 65, 78, 199, 0, 231, 93, 179, 5, 25, 114, 98, 172, 200, 73, 15, 232, 117]), events: [Event { key: EventKey([181, 94, 55, 137, 154, 95, 242, 166, 11, 32, 194, 151, 102, 27, 8, 39, 178, 224, 123, 127, 139, 205, 223, 235, 207, 96, 56, 58, 101, 49, 87, 188, 103]), value: EventValue([53, 253]) }, Event { key: EventKey([112, 202, 211, 197, 160, 28, 58, 174, 12, 119, 240, 156]), value: EventValue([252, 173, 109, 107, 8, 106, 66, 116, 47, 209, 216, 133, 125, 128, 88, 212, 159, 61, 193, 230, 68, 231, 221, 137, 255, 162, 49, 70, 140, 210, 62, 240, 92, 35, 236, 217, 21, 126, 131, 9, 87, 210, 69, 23, 84, 30, 38, 134, 242, 250, 107, 168, 252, 143, 45, 115, 58, 154, 149, 176, 58, 194, 212, 161, 100, 145, 237, 48, 243, 22, 77, 164, 237, 246, 187, 201, 212, 71, 18, 17, 192, 114, 210, 157, 57, 132, 120, 183]) }, Event { key: EventKey([66, 95, 85, 46, 6, 46, 49, 108, 187, 204, 67, 140, 111, 218, 72, 188, 38, 188, 32, 40, 42, 163, 181, 66, 137, 125, 87, 145, 85, 63, 39, 124, 64, 64, 162, 151, 181, 80, 106, 31, 5, 152, 124, 128, 229, 108, 125, 55, 32, 39, 143, 164, 108, 71, 60, 192, 21, 140, 221, 126, 64, 50, 131, 236, 241, 59, 1, 4, 241, 125, 241, 80, 174, 199, 193, 124, 110, 25, 109, 29, 149, 5]), value: EventValue([112, 112, 190, 87, 214, 110, 241, 195, 175, 112, 133, 180, 17, 9, 26, 236, 94, 229, 9, 12, 72, 146, 31, 18, 98, 96, 161, 166, 97, 94]) }], receipt: 951886404 }, TransactionReceipt { tx_hash: [226, 180, 209, 177, 77, 14, 110, 243, 44, 246, 8, 28, 223, 81, 137, 91, 165, 28, 203, 194, 252, 103, 199, 227, 188, 55, 36, 71, 84, 89, 0, 84], body_to_save: Some([24, 47, 118, 193, 216, 51, 81, 81, 127, 232, 48, 182, 145, 28, 180, 135, 30, 103, 26, 35, 103, 158, 47, 160, 34, 23, 141, 149, 91, 119, 7, 122, 139, 225, 236, 221, 68, 59, 250, 160, 210, 56, 197, 100, 120, 70, 139, 65, 55, 156, 128, 217, 221, 11, 198, 93, 4, 242, 131, 219, 190, 90, 82, 196, 219, 122, 226, 89, 76, 141, 93, 226, 102, 241, 116, 69, 129, 46, 150, 245, 166, 191, 127, 159, 31, 38, 74, 197, 52, 20, 11, 67, 214, 248, 69, 199, 9, 177]), events: [Event { key: EventKey([74, 1, 152, 70, 50, 31, 215, 107, 67, 55, 161, 77, 248, 233, 49, 125, 250, 120]), value: EventValue([193, 226, 94, 226, 77, 225, 89, 191, 67, 125, 166, 35, 58, 98, 58]) }, Event { key: EventKey([119, 234, 41, 165, 207, 199, 180, 111, 86, 60, 232, 76, 242, 147, 190, 226, 83, 148, 184, 60, 220, 32, 175, 130, 81, 35, 148, 189, 142, 40, 114, 206, 210, 31, 69, 69, 40, 162, 168, 144, 42, 69, 109, 179, 109, 228, 227, 116, 150, 250, 134, 255, 112, 196, 21, 93, 187, 250, 116, 109, 156, 149, 27, 148, 118, 42, 46, 173, 188, 54, 206, 169, 35, 206, 61, 65, 15, 214, 180, 112, 172, 160, 145, 80, 95, 222, 29, 236, 231, 192, 52, 219, 25, 9, 42, 142, 233, 9, 245]), value: EventValue([172, 236, 117, 143, 248, 103, 42, 79, 187, 39, 100, 137, 243, 21, 115, 196, 158, 14, 114, 198, 62, 140, 71, 81, 234, 19, 81, 236, 22, 24, 27, 221, 248, 229, 48, 60, 65, 227, 170, 22, 211, 35, 188, 147, 34, 138, 180, 25, 224, 59, 120, 199, 153, 162, 174, 199, 11, 131, 254, 75, 8, 17, 120, 132, 189, 106, 27, 122, 73, 124, 31, 94, 255, 137, 67, 185, 148]) }, Event { key: EventKey([151, 22, 14, 179, 44, 211, 234, 29, 212, 72, 55, 132, 221, 163, 153, 138, 139, 188, 197, 252, 46, 203, 234, 5, 228, 85, 7, 148, 68, 176, 158, 200, 228, 192, 176, 69, 80, 33, 232, 151, 60, 182, 183, 109, 54, 202, 0, 113, 37, 245, 115, 196, 153, 180, 12, 126, 174, 149, 173, 228, 190, 244, 247, 219, 78, 171, 250, 66, 71, 106, 222, 225, 6, 2, 7, 164, 172, 238, 252, 65, 51, 114, 144, 148, 51, 35, 40, 211, 87, 198, 51, 177]), value: EventValue([222, 30, 96, 32, 206, 212, 224, 128, 33, 58, 77, 79, 139, 79, 40, 213, 230, 159, 15, 32, 100, 126, 250, 26, 231, 58, 10, 45, 128, 12, 26, 110, 74, 47, 142, 23, 135, 60, 182, 167, 26, 132, 190, 20, 102, 59, 110, 130, 238, 14, 50, 104, 20, 117, 116, 169, 43, 221, 0, 239, 79, 6, 21, 75, 199, 127, 112, 86, 223, 248, 164, 103, 136, 195, 187, 116, 198, 203, 208, 193, 41, 143, 129, 88, 105, 99, 145, 178, 188, 145, 68, 218, 103, 66, 172, 162, 16]) }, Event { key: EventKey([178, 162, 55, 11]), value: EventValue([206, 44, 52, 125, 182, 49, 107, 145, 109, 187, 24, 184, 205, 103, 52, 251, 228, 21, 43]) }, Event { key: EventKey([159, 33, 28, 140, 192, 96, 44, 23, 65, 162, 32, 167, 222, 40, 21, 254, 47, 125, 166, 174, 11, 49, 97, 231, 5, 172, 140, 175, 57, 241, 215, 68, 118, 62, 241, 18, 164, 185, 208, 36, 182, 150, 230, 58, 85, 10, 235, 26, 85, 155, 88, 26, 127, 41, 74, 76, 209, 12, 255, 118, 183, 170, 50, 59, 187, 95, 67, 126, 123, 214, 73, 193]), value: EventValue([191]) }, Event { key: EventKey([71, 61, 186, 41, 217, 141, 18, 106, 99, 230, 209, 31, 45, 249, 197, 4, 140, 159, 143, 37, 255, 59, 156, 165, 15, 65, 92, 168, 67, 183, 3, 238, 171, 198, 255, 167, 98, 230, 144, 146, 78, 93, 232, 80, 163, 34, 111, 229, 148, 81, 34, 120, 236, 100, 227, 153, 54, 109, 107, 23, 94, 153, 126, 70, 134, 90, 176, 66]), value: EventValue([165, 29, 98, 114, 20, 227, 60, 165, 12, 126, 233, 118, 35, 224, 124, 122, 137, 191, 118, 77, 87, 22, 100, 101, 83, 153, 79, 162, 68, 235, 73, 201, 89, 20, 221, 97, 212, 233, 163, 171, 39, 108, 165, 215, 49, 75, 73, 120, 179, 64, 51, 47, 157, 93, 166, 66, 194, 202, 220, 137, 109, 121, 94, 171, 47, 143, 25, 155, 100, 89, 174, 11, 210, 253, 1, 37, 108, 172, 123, 74, 249, 54, 229, 101, 103, 71, 7, 121, 121, 52]) }, Event { key: EventKey([156, 124, 138, 92, 227, 236, 158, 164, 180, 90, 150, 112, 23, 243, 3, 216, 167, 70, 164, 17, 152, 179, 140, 241, 201, 165, 124, 59, 106, 210, 67, 212, 15, 45, 60, 168, 134, 167, 25, 192, 163, 181, 19]), value: EventValue([239, 211, 126, 74, 36, 238, 208, 19, 169, 84, 27, 163, 96, 3, 120, 160, 84, 122, 60, 15, 189, 55, 74, 109, 92, 180, 250, 252, 227, 138, 136, 154, 103, 9, 51, 203, 82, 13, 112, 6, 44, 155, 101, 178, 113, 183, 255, 79, 17, 4, 159, 66, 0, 113, 109, 67, 176, 179, 72, 108, 108, 72, 140, 199, 219, 67, 142, 213, 25, 163, 106, 181, 232, 189]) }, Event { key: EventKey([114, 87, 176, 187, 124, 226, 78, 190, 143, 72, 178, 124, 39, 112, 251, 44, 233, 12, 204, 221, 11, 215, 33, 141, 121, 215, 20, 178, 36, 228, 153, 212, 69, 138, 175, 46, 74, 222, 109, 183, 150, 192, 62, 82, 47, 142, 122, 196, 149, 224, 139, 68, 137, 238, 136, 241, 238, 164, 166, 104, 3, 142, 92, 172, 89, 5, 68, 84]), value: EventValue([182, 173, 210, 134, 255, 34, 59, 138, 27, 215]) }], receipt: 1963606134 }, TransactionReceipt { tx_hash: [61, 103, 134, 9, 133, 208, 214, 44, 220, 249, 39, 7, 145, 33, 137, 52, 56, 21, 72, 169, 114, 221, 68, 88, 220, 104, 47, 184, 21, 50, 237, 157], body_to_save: None, events: [Event { key: EventKey([239, 12, 95, 134, 255, 30, 27, 42, 129, 86, 74, 195, 159, 102, 78, 17, 218, 190, 184, 79, 227, 121, 34, 177, 133, 4, 8, 97, 204, 31, 210, 73, 92, 216, 57, 227, 76, 54, 48, 171, 121, 135, 189, 38, 244, 43, 26, 33, 120, 36, 35, 58, 191, 140, 187, 26, 96, 210, 79, 168, 196, 159, 234, 85, 154, 228, 18, 204, 79, 194, 222, 140, 47, 1, 128, 242, 255, 215, 238, 20, 130, 213, 76, 33, 67, 79, 140, 1, 28, 190, 109, 114]), value: EventValue([227, 133, 122, 202, 191, 243, 106, 194, 85, 108, 230, 147, 125, 112, 104, 74, 215, 186, 86, 15, 37, 157, 190, 82, 42, 192, 108, 148, 85, 242, 141, 240, 164, 13, 164, 162, 159, 130, 251, 224, 84, 81, 151, 95, 183, 82, 114, 59, 62, 195, 106, 200, 137, 233, 74, 149, 18, 243, 245, 20, 182, 37, 35, 0, 190, 83, 56, 207, 22, 186, 250, 67, 84, 241, 154, 70, 50, 62, 7, 99, 117, 120, 14, 142, 83]) }, Event { key: EventKey([182, 215, 74, 79, 48, 120, 142, 222, 222, 190, 64]), value: EventValue([197, 81, 72, 200, 115, 201, 173, 16, 44]) }, Event { key: EventKey([75, 194, 243, 232, 135, 199, 91, 11, 14, 52, 7, 32, 78, 183, 14, 231, 233, 61, 31, 128, 75, 142, 84, 30, 101, 227, 132, 83, 63, 252, 206, 127, 155, 0, 136, 59, 123, 97, 46, 137, 85, 81, 197, 103, 235, 168, 190, 181, 113, 163, 66, 178, 3, 141, 50, 36, 206, 79, 173, 115, 22, 10, 84, 110, 135, 54, 227, 122, 124, 169, 243, 197, 41, 164, 45, 40, 21, 38, 34, 200, 66, 185, 87, 149, 187, 118]), value: EventValue([2, 6, 197, 237, 166, 33, 42, 233, 161, 132, 221, 173, 24, 122, 21, 233, 174, 94, 239, 168, 46, 39, 9, 242, 44, 150, 84, 26, 17, 149, 249, 64, 154, 54, 150, 111, 126, 115, 42, 237, 12, 67, 196, 211, 33, 75, 58, 188, 154, 197, 241, 171, 88, 87, 60, 101, 114, 127, 148, 154, 61, 157, 228, 225, 169, 202, 231, 145, 156, 172, 134, 106, 80, 36, 149, 162]) }, Event { key: EventKey([158, 183, 127, 25, 5, 195, 162, 24, 63, 223, 241, 21, 242, 248, 190, 179, 51, 26, 226, 212, 64, 206, 143, 172, 118, 242, 79, 82, 52, 42, 23, 26, 244, 136, 253, 101, 143, 72]), value: EventValue([158, 251, 235, 221, 92, 73, 96, 82, 77, 226, 161, 56, 150, 179, 117, 198, 148, 2, 59, 225, 158, 166, 106, 128, 76, 66, 60, 121, 91, 192, 176, 71, 219, 163, 84, 61, 91, 216, 120, 174, 149, 132, 38, 100, 89, 228, 182, 53, 35, 68, 100, 224, 200, 247, 87, 152, 168, 254]) }, Event { key: EventKey([239, 99, 161, 190, 211, 212, 24, 212, 151, 149, 253, 121, 178, 109, 157, 26, 131, 58, 29, 74, 198, 194, 190, 13, 155, 122, 44, 21, 139, 75, 54, 164, 252, 153, 2, 68, 251, 15, 1, 109, 231, 250, 226, 40, 88, 240, 245, 110, 249, 48, 58, 143, 143, 168, 27, 214, 174, 106, 210, 167, 197, 142, 115, 22, 132, 213, 198, 112, 205, 18, 247, 13, 236, 147, 234, 78, 13, 60, 93, 255, 41, 51, 57, 90]), value: EventValue([241, 157, 134, 172, 104, 86, 48, 40, 206, 219, 97, 195, 50, 57, 65, 10, 187, 70, 103, 52, 6, 245, 128, 232, 203, 222, 212, 98, 144, 4, 80, 79, 12, 57, 145, 62, 7, 177, 45, 161, 72, 244, 165, 68, 93, 14, 223, 189, 149, 164, 75, 129, 198, 8, 162, 128, 112, 58, 202, 167, 11]) }, Event { key: EventKey([145, 40, 151, 187, 174, 20, 27, 106, 45, 45, 211, 99, 69, 141, 51, 74, 147, 25, 154, 77, 107, 105, 164, 6, 184, 235, 124, 154]), value: EventValue([131, 42, 220, 190, 9, 111, 96, 67, 181, 15, 47, 239, 161, 167, 212, 47, 122, 84, 157, 118, 110, 237, 202, 41, 205]) }, Event { key: EventKey([159, 101, 184, 73, 40, 49, 248, 37, 215, 171, 20, 100, 61, 120, 112, 181, 181, 181, 149, 240, 89, 216, 1, 31, 159, 228, 227, 115, 11, 174, 34, 237, 60, 224, 159, 150, 61, 46, 189, 113, 2, 32, 203, 175, 55, 115, 155, 206, 112, 163, 20, 173, 72, 41, 223, 235, 150, 198, 16, 230, 81, 180, 189, 141, 12, 173, 178, 148, 15, 88, 144, 143, 159, 32, 84, 231, 104, 230, 171, 236, 32, 233, 224, 75, 80, 58, 31, 138, 71, 197, 147, 12, 51, 64, 134, 82]), value: EventValue([189, 115, 214, 118, 150, 67, 21, 43, 140, 215, 51, 12, 147, 221, 235, 216, 192, 227, 172, 79, 89, 29, 54, 68, 25, 251, 31, 162, 35, 68, 199, 187, 171, 83, 165, 35, 57, 58, 67, 180, 233, 31, 26, 98, 13, 74, 54, 104, 19, 170, 159, 107, 56, 199]) }], receipt: 3876124005 }, TransactionReceipt { tx_hash: [118, 26, 122, 147, 136, 54, 249, 228, 180, 37, 167, 197, 110, 145, 95, 195, 187, 96, 56, 169, 239, 68, 242, 159, 230, 184, 89, 193, 178, 20, 5, 94], body_to_save: Some([177, 209, 168, 204, 24, 204, 124, 125, 249, 150, 14, 221, 71, 139, 50, 24, 16, 98, 26, 172, 188, 184]), events: [Event { key: EventKey([191, 145, 131, 222, 37, 27, 109, 152, 53, 40, 125, 88, 78, 140, 154, 242, 236, 44, 134, 171, 226, 243, 200, 250, 5, 192, 198, 201, 94, 183, 84, 58, 11]), value: EventValue([160, 2, 70, 187, 240, 148, 203, 78, 196, 52, 40, 42, 174, 172, 100, 170, 200, 6, 85, 185, 86, 28, 183, 166, 132, 117, 3, 86, 149, 228, 226, 199, 9, 119, 81, 53, 2, 75, 24, 20, 210, 93, 124, 47, 127, 117, 130, 112, 206, 122, 36, 205, 244, 86, 17, 12, 5, 236, 207, 239, 57, 93, 52, 15, 39, 244, 125, 76, 199, 169, 244, 201, 18, 77, 171, 108, 22, 252, 232, 157, 87, 25, 185, 199, 79, 168, 192, 40, 22, 81, 47, 148, 182, 227, 62, 145, 38, 98]) }, Event { key: EventKey([81, 20, 145, 145, 94, 30, 70, 47, 191, 134, 184, 32, 19, 122, 16, 110, 159, 53, 242, 2, 40, 80, 86, 36, 120, 25, 41, 110, 140, 195, 217, 218, 42, 125, 188, 218, 141, 202, 163, 147, 89, 30, 192, 116, 155, 243, 37, 78, 69, 39, 132, 95, 72, 32, 208, 136, 33, 131, 189, 58, 253, 29, 1, 15, 140, 215, 55]), value: EventValue([235, 175, 54, 98, 148, 21, 63, 66, 211, 215, 177, 73, 99, 199, 156, 110, 100, 246, 243, 225, 204, 216, 28, 192, 107, 126, 221, 195, 155, 149, 97, 11, 5, 76, 151, 110, 155, 138, 77, 174, 40, 77, 27, 67, 166, 163]) }, Event { key: EventKey([148, 238, 89, 190, 131, 210, 133, 210, 52, 28, 131, 61, 255, 191, 101, 84, 68, 97, 146, 48, 221, 115, 107, 83, 80, 171, 113, 182, 148, 192, 184, 198, 239, 50, 10, 163, 251, 163, 40, 18, 227, 131, 73, 137, 13, 196, 106, 188, 154, 184, 231, 137, 221, 19, 185, 42, 245, 201, 140, 103, 249, 60, 140, 62, 145, 101, 34, 115, 250, 208, 41, 215, 132, 101, 215, 39, 65, 99, 15, 238, 37, 93, 40, 74, 105, 34, 43, 102, 172, 162, 231, 4]), value: EventValue([105, 219, 182, 246, 246, 160]) }, Event { key: EventKey([86, 88, 150, 33, 208, 174, 160, 64, 201, 122, 38, 187, 169, 234, 165, 213, 130, 235, 243, 49, 39, 169, 174, 154, 174, 85, 184, 21, 25, 18, 96, 240, 145, 153, 165, 208, 207, 50, 252, 5, 135, 132, 61, 167, 206, 171, 239, 35, 151, 154, 158, 100, 56, 233, 236, 238, 80, 77, 141, 21, 65, 159, 21, 27, 238, 6, 183, 249, 78, 3, 14, 92, 84, 97, 38, 220, 222, 166, 42, 158, 221, 89, 44, 250, 31, 214, 99, 18, 104, 153, 10, 206, 190, 211, 117]), value: EventValue([185, 217, 51, 197, 96, 47, 31, 211, 16, 36, 129, 119, 155, 57, 10, 17, 222, 225, 196, 28, 85, 243, 184, 188, 19, 115, 248, 14, 235, 243, 134, 14, 142, 19, 249, 13, 105, 131, 33, 208, 127, 131, 43, 142, 180, 34, 152, 108, 40]) }, Event { key: EventKey([117, 206, 131, 100, 66, 35, 121, 188, 121, 142, 251, 78, 195, 250, 167, 134, 127, 96, 70, 60, 33, 200, 154, 167, 99, 141, 233, 132, 34, 89, 159, 57, 247, 96, 197, 73, 120, 182, 216, 239, 247, 232, 13, 190, 232, 146, 80, 248]), value: EventValue([174, 19, 63, 4, 219, 15, 68, 251, 120, 68, 6, 236, 16, 35, 219, 82, 39, 101, 44, 236, 130, 187, 17, 117, 3, 249, 91, 102, 222, 132, 105, 180, 67, 1, 255, 113, 79, 177, 109, 214, 187, 184]) }, Event { key: EventKey([204, 21, 172, 37, 166, 46, 81, 86, 30, 156, 170, 82, 238, 84, 245, 7, 180, 216, 103, 129, 203, 179, 114, 75, 106, 74, 64, 51, 138, 124, 192, 251, 119, 219, 157, 74, 225, 117, 52, 101, 104, 252, 48, 142, 79, 58, 197, 4, 176, 144, 32, 185, 13, 212, 169, 42, 5, 46, 160, 31, 100, 241, 178, 99, 90, 58, 115, 220, 63, 107, 175, 194, 136, 117, 233, 85, 149, 129, 233, 68, 185, 183, 254, 243, 87, 186, 66, 96, 75, 98, 42, 230, 157, 78, 42, 90, 65]), value: EventValue([231, 84, 65, 246, 183, 158, 151, 13, 158, 19, 196, 157, 102, 123, 146, 185, 159, 166, 95, 69, 21, 48, 207, 191, 119, 161, 227, 56, 40, 103, 17, 212, 164, 79, 193, 80, 3, 13, 46, 197, 47, 179, 52, 159, 230, 28, 148, 165, 229, 103, 20, 125, 182, 30, 170, 225, 212, 152, 177]) }, Event { key: EventKey([142, 167, 203, 62, 55, 45, 5, 191]), value: EventValue([13, 168, 191, 240, 22, 206, 95, 84, 138, 2, 229, 141, 216, 27, 173, 55, 95, 91, 214, 137, 85, 150, 11, 55, 210, 191, 179, 209, 223, 133, 114, 65, 254, 217, 17, 3, 10, 216, 255, 252, 158, 101, 195, 208, 228, 8, 8, 23, 113]) }, Event { key: EventKey([197, 25, 107, 13, 242, 228, 207, 217, 156, 167, 90, 50, 179, 10, 142, 252, 128, 30, 211, 119, 186, 76, 65, 105, 195, 61, 83, 87, 69, 48, 54, 180, 243, 26, 131, 226, 26, 252, 92, 35, 232, 62, 69, 227, 84, 127, 157, 132, 25, 211, 253, 13, 123, 9, 41, 3, 89, 43, 211, 56, 35, 9, 205, 151, 202, 103, 245, 230, 193, 200, 198, 113, 81, 88, 220, 214, 238, 64, 66, 217, 234, 221, 237, 231, 26, 136, 128, 88, 26, 191, 54, 63, 52]), value: EventValue([230, 57, 160, 231, 48, 214, 164, 196, 42, 17, 20, 198, 204, 237, 74, 3, 220, 62, 43, 42, 127, 213, 25, 71, 98, 48, 235, 171, 29, 224, 104, 173, 248, 194, 4, 187, 235, 172, 12, 216, 147, 183, 190, 197, 41, 78, 238, 0, 171, 176, 248, 235, 26, 117, 41, 22, 121, 143, 151, 94, 73, 21, 128, 24, 177, 99, 59, 99, 152, 70]) }, Event { key: EventKey([36, 26, 202, 57, 111, 200, 154, 31, 207, 183, 254, 26, 180, 92, 241, 204, 144, 141, 169, 101, 53, 230, 144, 169, 199, 215, 95, 131, 179, 66, 220, 18, 73, 48, 122, 65, 90, 0, 78, 86, 149, 76, 190, 169, 56, 133, 182, 119, 202, 96, 75, 32, 46, 217, 71, 209]), value: EventValue([144, 255, 242, 42, 37, 216, 146, 99, 193, 144, 160, 236, 15, 223, 194, 23, 234, 62, 23, 105, 15]) }], receipt: 748638777 }, TransactionReceipt { tx_hash: [163, 66, 206, 170, 28, 205, 161, 224, 154, 135, 233, 96, 147, 2, 102, 127, 211, 206, 252, 72, 72, 228, 228, 246, 52, 136, 160, 33, 95, 254, 17, 114], body_to_save: Some([178, 86, 68, 151, 16, 39, 168, 226, 42, 131, 85, 227, 142, 33, 11, 248, 186, 48, 92, 59, 14, 88, 4, 14, 197, 135]), events: [], receipt: 1668369432 }], inner: 3092878962 }, BatchReceipt { batch_hash: [126, 163, 91, 110, 221, 25, 41, 106, 7, 169, 148, 41, 218, 188, 250, 52, 231, 84, 146, 114, 147, 87, 7, 165, 12, 158, 232, 101, 105, 184, 168, 99], tx_receipts: [TransactionReceipt { tx_hash: [205, 136, 170, 66, 163, 169, 150, 87, 41, 21, 228, 48, 245, 152, 250, 32, 191, 206, 48, 255, 143, 200, 128, 147, 81, 89, 123, 141, 54, 190, 150, 11], body_to_save: None, events: [Event { key: EventKey([190, 39, 211, 168, 11, 109, 88, 241, 43, 31, 244, 181, 41, 153, 124, 194, 36, 11, 215, 129, 26, 134, 204, 87, 195, 209, 241, 63, 58, 44, 88, 112, 230, 186, 161, 128, 192, 94, 16, 208, 95, 190, 251, 179, 147, 180, 13, 123, 151, 48, 118, 33, 158, 35, 228, 189, 193, 241, 63, 115, 118, 47]), value: EventValue([240, 195, 151, 207, 80, 150, 104, 255, 191, 193, 0, 26, 27, 144, 102, 103, 119, 57, 142, 56, 212, 9, 34, 98, 121, 153, 131, 148, 240, 34, 115, 231, 43, 118, 248, 32, 15, 175, 137, 235, 90, 78, 161, 36, 229, 61, 34, 0, 69, 25, 15, 165, 99, 44, 159, 53, 126, 172, 142, 76, 146, 208, 145, 38, 226, 26, 180, 119, 5, 95, 81, 150, 226, 154, 189, 19, 77, 185, 202, 157, 141, 221, 41, 214, 227, 210, 180, 104, 122, 253, 19, 137, 216, 141, 115, 32, 234, 129, 96]) }, Event { key: EventKey([111, 143, 46, 152, 246, 220, 95]), value: EventValue([145, 239, 34, 9, 185, 60, 124, 103, 85, 201, 240, 140, 135, 101, 124, 111, 24, 234, 143, 89, 142, 53, 15, 172, 38, 73, 211, 157, 68, 139]) }, Event { key: EventKey([71, 191, 113, 1, 200, 226, 31, 193, 230, 164, 55, 220, 172, 91, 152, 92, 149, 229, 253, 107, 62, 39, 98, 61, 12, 81, 74, 64, 250, 101, 219, 187, 74, 165, 105, 162, 11, 78, 213, 160, 227, 133, 196, 225, 58, 195, 15, 239, 3, 155, 144, 132, 120, 38, 167, 96]), value: EventValue([120, 26, 78, 230, 26, 0, 136, 92, 145, 41, 58, 107, 24, 12, 218, 65, 42, 167, 94, 213, 85, 206, 165, 165, 200, 92]) }, Event { key: EventKey([251, 137, 202, 58, 128, 94, 183, 172, 12, 238, 56, 231, 192, 25, 135, 99, 77, 129, 174, 106, 53, 33, 158, 90, 73, 8, 251, 125, 214, 181, 175, 3, 103, 6, 36, 112, 63, 45, 70, 248, 60, 223, 64, 184, 230, 212, 181, 211, 165, 143, 219, 13, 189, 33, 185, 129, 230, 214, 68, 39, 21, 116, 100, 120, 236, 240, 111, 45, 42, 125, 106, 131, 159, 72, 175, 217, 238, 203, 36, 140, 118, 146, 20, 146, 59, 207, 52, 101, 70, 178, 219, 63, 28, 196, 127, 110, 252, 120]), value: EventValue([80, 177, 98, 218, 86, 78, 195, 12, 23, 97, 93, 216, 155, 66, 131, 210, 41, 44, 107, 175, 43, 156, 134, 110, 223, 132, 241, 228, 61, 201, 121, 30, 129, 23, 246, 183, 80, 9, 92, 84, 230, 67, 200, 63, 129, 76, 244, 198, 231, 97, 81, 108, 60, 241, 161, 161, 94, 4, 243, 170, 61, 15, 1, 8, 70, 72, 189, 50, 208, 108, 97, 204, 89, 73]) }, Event { key: EventKey([]), value: EventValue([170, 224, 233, 63, 95, 107, 8, 7, 42, 131, 207, 3, 112, 191, 164, 246, 173, 219, 251, 103, 144, 27, 152, 81, 106, 28, 233, 32, 203, 212, 183, 127, 233, 200, 60]) }], receipt: 3093988807 }, TransactionReceipt { tx_hash: [38, 238, 45, 34, 195, 5, 135, 61, 14, 70, 103, 3, 139, 128, 25, 172, 149, 88, 243, 74, 8, 91, 107, 44, 25, 253, 81, 114, 192, 240, 151, 244], body_to_save: Some([22]), events: [Event { key: EventKey([26, 150, 112, 238, 190, 228, 132, 149, 201, 208, 114, 99, 68, 164, 83]), value: EventValue([159, 232, 218, 60, 78, 80, 179, 232, 30, 101, 131, 194, 229, 206, 148, 228, 134, 71, 229, 252, 169, 114, 212, 144, 219, 83, 140, 82, 24, 228, 236, 31, 203, 128, 89, 197, 99, 130, 5, 122, 41, 254, 175, 178, 112, 227, 207, 167, 126, 36, 133, 201, 201, 173, 49, 101]) }, Event { key: EventKey([167, 17, 107, 77, 10, 246, 56, 129, 241, 203, 112, 10, 126, 120, 157, 237, 54, 22, 106, 191, 252, 47, 172, 55, 71, 247, 243, 116, 111, 144, 113, 74, 136, 7, 60, 86, 57, 54, 109, 64, 160, 251, 243, 129, 229, 250, 35, 36, 178, 100, 5, 102, 129, 204, 176, 247, 2, 227, 75, 159, 152, 48, 150, 165, 221, 240, 74, 144, 132, 73, 127, 103, 190, 174, 153, 77, 140, 206]), value: EventValue([114, 96, 9, 197, 106, 42, 85, 78, 75, 192, 149, 219, 25, 71, 216, 151, 65, 51, 230, 244, 244, 75, 108, 109, 20, 15, 226, 46, 249, 136, 211, 8, 24, 229, 255, 92, 227, 177, 93, 213, 29, 236, 19, 152, 49, 242, 231, 89, 251, 124, 123, 182, 117, 231, 111, 247, 214, 145, 138, 207, 37, 103, 6, 104, 234, 138, 148, 183, 192, 252, 213, 169, 104, 235, 23, 196, 117, 207, 153, 10, 101, 58, 133, 23, 26, 56, 45, 23, 37, 134, 228, 107, 209, 148, 222, 65, 246, 11]) }, Event { key: EventKey([143, 74, 236, 156, 68, 114, 124, 166, 168, 116, 235, 27, 133, 136, 73, 38, 175, 6, 95, 83, 77, 44, 137, 191, 105, 233, 138, 69, 134, 0, 250, 61, 28, 51, 190, 181, 189, 242, 225, 110, 146, 72, 50, 190]), value: EventValue([228, 125, 221, 24, 10, 149, 38, 10, 145, 28, 238, 68, 206, 135, 59, 86, 51, 197, 13, 148, 197, 21, 163, 179, 240, 156, 9, 175, 226, 173, 104, 2, 183, 27, 81, 53, 252, 146, 246, 116, 38, 114, 42, 160, 70, 213, 192, 43, 190, 230, 115, 101, 134, 22, 2, 249, 183, 219, 123, 46, 134, 36, 36, 199, 186, 123, 145, 140, 95, 218, 213, 246, 38, 110, 214, 23, 214, 126, 72, 143, 6, 217, 215, 220, 54, 125, 165, 49, 110, 176, 89, 224, 155, 177, 198, 23, 225, 153]) }, Event { key: EventKey([249, 4, 177, 147, 23, 238, 24, 216, 204, 31, 15, 190, 214, 21, 255, 83, 141, 37, 229, 121, 177, 224, 21, 240, 99, 188, 96, 254, 43, 150, 251, 111, 181, 243, 108, 226, 199, 102, 25, 142, 210, 16, 56, 211, 90, 100, 5, 39, 215, 36, 240, 221, 60, 119, 97, 55, 116, 145, 118, 65, 161, 143, 182, 202, 82, 158, 88, 157, 64, 68, 65, 25, 237, 74, 212, 140, 36, 112, 28, 22, 170]), value: EventValue([142, 157, 195, 46, 6, 163, 123, 223, 157, 196, 219, 225, 2, 4, 207, 62, 15, 103, 211, 62, 234, 149, 165, 22, 25, 25, 201, 151, 169, 113, 183, 113, 237, 235, 74, 4, 175, 172, 134, 190, 198, 220, 130, 255, 112, 1, 18, 187, 195, 213, 122, 104]) }, Event { key: EventKey([50, 200, 137, 125, 248, 171, 197, 254, 183, 248, 187, 110, 34, 153, 66, 108, 94, 1, 105, 3, 131, 85, 68, 157, 208, 215, 204, 210, 54, 184, 32, 235, 39, 168, 22, 200, 208, 192, 22, 199, 217, 234, 51, 106, 70, 54, 87, 41, 148, 0]), value: EventValue([20, 253, 244, 139]) }, Event { key: EventKey([39, 35, 216, 217, 10, 105, 32, 125, 216, 213, 71, 40, 250, 146, 183, 35, 255, 17, 77, 45, 232, 116, 156, 117]), value: EventValue([7, 189, 58, 2, 109, 88, 186, 5, 38, 206, 98, 152, 235, 171, 157, 181, 26, 124, 109, 230, 152, 8, 214, 103, 82, 165, 172, 171, 214, 20, 177, 52, 14, 246, 191, 36, 84, 19, 246, 225, 178, 210, 199, 152, 225, 139, 4, 117, 226, 80, 2, 180, 43, 244, 151, 55, 54, 248, 9, 34, 111, 108, 151, 102, 223, 238, 52, 67, 27, 133, 157, 213, 3]) }], receipt: 2138061187 }, TransactionReceipt { tx_hash: [45, 162, 179, 218, 170, 108, 135, 159, 196, 87, 56, 77, 58, 231, 202, 248, 82, 122, 215, 175, 144, 133, 113, 198, 77, 94, 66, 31, 139, 156, 192, 97], body_to_save: None, events: [Event { key: EventKey([192, 61, 176, 183, 122, 245, 91, 4, 52, 183, 71, 186, 228, 194, 55, 231, 189, 25, 54, 227, 75, 16, 48, 246, 182, 40, 188, 194, 71, 196, 255, 231, 10, 176, 243, 227, 168, 191, 177, 166, 62, 59, 181, 234, 125, 183, 198, 198, 164, 245, 82, 134, 55, 140, 224, 40, 85, 163, 166, 219, 18, 243, 232, 253, 228, 173, 44, 95, 254, 223, 254, 97, 6, 18, 38, 105, 171]), value: EventValue([82, 88, 175, 9, 216, 109, 112, 231, 225, 213, 192, 58, 55, 17, 115, 191, 17, 108, 164, 140, 244, 213, 137, 47, 199, 124, 168, 130, 234, 121, 85, 227, 252, 10, 179, 229, 170, 78]) }, Event { key: EventKey([21, 150, 67, 61, 165, 251, 38, 8, 199, 106, 24, 46, 83, 163, 13, 96, 8, 70, 19, 208, 191, 203, 254, 162, 122, 16, 245, 109, 15, 88, 127, 224, 148, 32, 187, 65, 226, 88, 2, 213, 245, 64, 135, 26, 104, 41, 193, 62, 154, 240, 253, 51, 132, 117, 225, 117, 141, 22, 163, 29, 147, 226, 211, 198, 18, 37, 81, 15, 100]), value: EventValue([54, 100, 39, 209, 100, 131, 52, 140, 93, 230, 218, 81, 109, 235, 77, 127, 9, 34, 38, 152, 214, 103, 159, 110, 8, 217, 191, 92, 19, 95, 21, 51, 52, 7, 57, 49, 99, 151, 108, 87, 113, 111, 133, 119, 193, 215, 253, 186, 203, 135]) }, Event { key: EventKey([54, 69, 175, 107, 240, 86, 173, 242, 59]), value: EventValue([17, 207, 200, 127, 246, 85, 195, 84, 67, 172, 176, 161, 215, 107, 16, 14, 231, 144, 9, 98, 15, 87, 58, 237, 46, 146, 158, 72, 240, 118, 29, 231, 132, 151, 26, 35, 33, 166, 182, 229, 125, 159, 22, 194, 92, 247, 132, 15, 103, 42, 215, 136, 81, 13, 138, 244, 148, 203, 225, 214, 110, 175, 47, 231, 60, 66, 133, 96, 98, 195, 66, 198, 172, 177, 54, 60, 65, 126, 197, 37]) }, Event { key: EventKey([214, 105, 65, 95, 255, 27, 15, 230, 168, 191, 175, 69, 176, 50, 202, 63, 114, 117, 189, 135, 136, 14, 14, 225, 212, 46, 130, 141, 39, 204, 160, 191, 127, 116, 122, 95, 42, 196, 206, 51, 31, 1, 30, 53, 149, 15, 53, 230, 76, 175, 79, 160, 136, 252, 85, 72, 107, 253, 61, 50, 123, 196, 220, 123, 176, 88, 197, 79, 133, 170, 157]), value: EventValue([133, 110, 45, 128, 143, 232, 76, 152, 126, 167, 22, 238, 244, 57, 238, 160, 242, 128, 163, 112, 145, 36, 195, 35, 14, 20, 190, 90, 76, 108, 146, 53, 127, 193, 205, 189, 188, 68, 159, 31, 127, 213, 91, 223, 224, 172, 162, 76, 160, 140, 252, 232, 99, 132, 228, 161, 231, 207, 39, 76, 154, 87, 100, 89, 34, 211, 65, 98, 8, 113, 110, 147, 41, 224, 25, 183, 103, 218, 86, 201, 184]) }, Event { key: EventKey([40, 219, 187, 231, 110, 57, 221, 153, 161, 95, 171, 142, 66, 60, 12, 122, 37, 247, 226, 71, 90, 95, 159, 108, 109, 218, 133, 87, 226, 141, 117, 214, 49, 115, 11, 85, 22, 232, 251, 188, 25, 73, 124, 189, 223, 142, 150, 156, 96, 246, 243, 29, 119, 213, 140, 17, 192, 108, 80, 219, 39, 172, 127, 116, 96, 213, 134, 17, 233, 140, 13, 127, 43, 93, 208, 123, 185, 163, 133, 100, 71, 138, 198, 164, 251, 246, 38, 89, 34, 44]), value: EventValue([51, 10, 78, 165, 233, 100]) }, Event { key: EventKey([109, 168, 91, 51, 17, 252, 226, 54, 220, 222, 78, 117, 234, 188, 178, 235, 62, 170, 75, 53, 50, 21, 203, 103, 88, 155, 149, 172, 168, 47, 75, 37, 209, 212, 42, 72, 9, 2, 137, 70, 9, 177, 83, 0, 73, 90, 140, 12, 135, 117, 87, 62, 105, 73, 10, 3, 92, 208, 34, 133, 59, 207, 157, 30, 224, 182, 119, 136, 168, 175, 233, 82]), value: EventValue([155, 25, 76, 175, 250, 26, 133, 31, 82, 148, 153, 123, 32, 21, 181, 63, 78, 178, 66, 70, 215, 73, 228, 181]) }], receipt: 1309578551 }, TransactionReceipt { tx_hash: [165, 7, 110, 180, 248, 211, 166, 93, 145, 72, 35, 1, 164, 90, 35, 53, 94, 29, 62, 55, 86, 51, 222, 187, 176, 124, 28, 8, 205, 29, 228, 113], body_to_save: Some([232, 94, 151, 213, 47, 127, 149, 66, 188, 110, 128, 141, 163, 149, 233, 65, 53, 120, 208, 131, 235, 105, 134, 145, 14, 177, 58, 234, 217, 206, 87, 101, 253, 33, 220, 17, 201]), events: [Event { key: EventKey([227, 75, 217, 207, 166, 81, 60, 34, 191, 42, 176, 209, 10, 253, 121, 193, 237, 106, 204, 225, 241, 15, 2, 119, 163, 202, 240, 41, 134, 168, 133, 150, 21, 71, 13, 72, 72, 112, 166, 136, 189, 192]), value: EventValue([14, 46, 242, 219, 251, 210, 187, 24, 25, 49, 5, 65, 170, 248, 148, 225, 86, 47, 151, 132, 199, 28, 123, 118, 80, 217, 185, 48, 92, 66, 45, 135, 108, 210, 135, 168, 72, 233, 243, 62, 45, 132, 104, 51, 209, 129, 191, 122, 112, 182, 191, 81, 153, 27, 25, 132, 136, 168, 202, 38, 221, 174, 59, 41, 99, 11, 56, 205, 68, 200, 103, 108, 88, 64, 217, 47, 221, 21, 229, 7, 181, 186, 95, 93, 74, 149]) }, Event { key: EventKey([150, 50, 189, 124, 126, 162, 177, 219, 72, 128, 221, 13, 156, 182, 83, 103, 136, 254, 16, 117, 17, 5, 249, 162, 22, 170, 210, 75, 196, 86, 17, 68, 166, 217, 52, 125, 196, 114, 247, 2, 35, 142, 147, 18, 225, 178, 253, 64, 187, 170, 118, 123, 67, 5]), value: EventValue([5, 214, 148, 219, 45, 172, 11, 136, 31, 64, 98, 165, 44, 98, 47, 131, 29, 228, 139, 82, 177, 254, 109, 217, 105, 124, 43, 58, 232, 66, 151, 213, 62, 95, 76, 77, 58, 244, 190, 122, 64, 177, 57, 206, 145, 250, 242, 24, 115, 144, 218, 255, 90, 56, 38, 194, 95, 101, 21, 241, 106, 18, 59, 242, 7, 158, 147, 236, 246, 1, 253, 35, 87, 253, 95, 25, 212, 98, 227, 83, 73, 20, 123, 107, 142, 114, 158, 148, 69, 226, 184]) }, Event { key: EventKey([149, 228, 37, 98, 81]), value: EventValue([]) }], receipt: 1296382286 }], inner: 897710220 }, BatchReceipt { batch_hash: [214, 24, 66, 114, 172, 130, 202, 51, 20, 76, 81, 10, 250, 164, 125, 129, 121, 43, 8, 11, 227, 112, 14, 11, 219, 253, 94, 15, 178, 173, 137, 82], tx_receipts: [TransactionReceipt { tx_hash: [98, 138, 249, 50, 85, 98, 86, 75, 147, 170, 166, 119, 247, 48, 179, 214, 200, 154, 182, 196, 229, 232, 234, 117, 194, 18, 250, 53, 176, 37, 186, 181], body_to_save: Some([84, 6, 245, 28, 234, 242, 46, 66, 8, 173, 251, 95, 113, 125, 202, 90, 138, 248, 151, 153, 157, 185, 202, 241, 164, 128, 204, 16, 209, 28, 192, 19, 119, 101, 16, 123, 253, 19, 74, 61, 206, 23, 219, 72, 168, 131, 108, 2, 27, 199, 29, 192, 24, 112, 179, 192, 164, 119, 168, 121, 215, 120, 175, 227, 223, 232, 92, 249, 206, 22, 187, 47, 58, 100, 121, 134, 39, 48, 177, 102, 202, 97, 245, 16, 72, 255, 129, 55, 25, 165, 246, 164, 221, 230, 102, 43, 142, 44, 255]), events: [Event { key: EventKey([239, 221, 63, 172, 25, 235, 228, 232, 153, 171, 239, 84, 18, 154, 179, 199, 3, 193, 233, 245, 160, 43]), value: EventValue([133, 45, 2, 96, 1, 0, 135, 153, 83, 153, 104, 230, 180, 156, 243, 20, 32, 187]) }], receipt: 2094326726 }, TransactionReceipt { tx_hash: [179, 200, 132, 143, 39, 180, 3, 124, 39, 188, 230, 239, 11, 30, 209, 17, 198, 75, 172, 252, 149, 182, 101, 85, 108, 135, 188, 30, 156, 253, 43, 20], body_to_save: None, events: [Event { key: EventKey([192, 173, 120, 214, 4, 129, 115, 202, 157, 141, 0, 247, 78, 28, 116, 39, 79, 198, 236, 22, 168, 148, 119, 192, 86, 171, 56, 139, 113, 174, 98, 188, 33, 12, 93, 222, 144, 210, 4, 64, 56, 8, 65, 157, 112, 87, 131, 66, 187, 61, 143, 106, 18, 105, 54, 223, 135, 118, 72, 122, 133, 209, 244, 224]), value: EventValue([236, 251, 6, 108, 145, 53, 108, 15, 76, 177, 245, 233, 39, 228, 6, 94, 23, 216, 15, 90, 95, 123, 222, 175, 14, 1, 211, 207, 222, 41, 239, 124, 228, 17, 100, 191, 236, 211, 153, 37, 121, 230, 83, 200, 131, 76, 56, 34, 89, 91, 164, 53, 174, 14, 101, 60, 238, 46, 18, 158, 151, 240, 198]) }, Event { key: EventKey([180, 108, 232, 200, 69, 48, 133, 255, 78, 51, 155, 1, 114, 164, 55, 173, 237, 14, 191, 226, 192, 216, 77, 184, 85, 35, 14, 207, 168, 12, 39, 22, 204, 127, 62, 42, 208, 224, 224, 213, 51, 55, 88, 123, 182, 66, 66, 208, 82, 7, 214, 77, 186, 26, 118, 58, 116, 108, 196, 49, 216, 183, 18, 147, 159, 74, 234, 239, 155, 226, 175, 193, 255, 28, 65, 42, 178, 44, 60, 58, 185, 168, 133, 95, 227, 8, 66, 94]), value: EventValue([247, 45, 98, 216, 229, 71, 65, 228, 147, 140, 34, 240, 0, 56, 192, 218, 61, 87, 167]) }, Event { key: EventKey([92, 240, 6, 204, 57, 165, 255, 34, 25, 170, 106, 243, 135, 173, 151, 119, 120, 50, 40, 57, 63, 176, 242, 67, 177, 52, 38, 36, 55, 130, 248, 184, 172, 192, 173, 200, 76, 147, 82, 105, 187, 149, 79, 103, 66, 201, 167, 17, 3, 53, 133, 214]), value: EventValue([48, 167, 75, 65, 6, 102, 110, 135, 20, 114, 34, 27, 145, 200, 179, 43, 137, 56, 220, 57, 137, 71, 207, 222]) }, Event { key: EventKey([88, 123, 65, 129, 187, 241, 149, 244, 232, 55, 133, 22, 224, 83, 78, 61, 216, 155, 111, 206, 89, 233, 161, 201, 216, 137, 226, 195, 241, 17, 182, 63, 183, 250, 45, 88, 199, 220, 59, 99]), value: EventValue([137, 181, 101, 227, 231, 2, 212, 231, 234, 156, 133, 158, 165, 156, 104, 128, 26, 181, 4, 197, 95, 63, 41, 136, 166, 122, 90, 10, 159, 24, 28, 152]) }, Event { key: EventKey([140, 210, 129, 4, 23, 178, 38, 25, 105, 110, 144, 156, 67, 57, 36, 87, 126, 89, 93, 185, 233, 171, 97, 157, 218, 99, 238, 155, 246, 225, 223, 96, 207, 126, 210, 155, 44, 8, 246, 218, 203, 242]), value: EventValue([7, 61, 143, 123, 126, 40, 150, 124, 217, 21, 233, 62, 77, 40, 132, 158, 207, 221, 167, 132, 45, 118, 53, 120, 40, 239, 227, 187, 131, 186, 19, 146, 222, 19, 184, 113, 132, 52, 178, 15, 219, 37, 175, 135, 75, 190, 182, 39, 47, 75, 78, 98, 159, 104, 237, 233]) }, Event { key: EventKey([117, 107, 231, 101, 83, 48, 68, 19, 33, 12, 116, 42, 241, 166, 150, 30, 53, 215, 124, 246, 102, 96, 118, 206, 128, 202, 95, 34, 215, 215, 23, 106, 171, 239, 235, 227, 33, 7, 235, 185, 110, 163, 178, 251, 7, 149, 9, 186, 77, 14, 237, 182, 134, 25, 191, 18, 168, 88, 199, 222, 108, 192, 203, 159, 65, 32, 116, 40, 47, 15, 255, 36, 102, 239, 128, 241, 31, 72, 144, 192, 128, 73, 195]), value: EventValue([136, 96, 229, 81, 91, 217, 15, 207, 14, 163, 10, 93, 95, 210, 161, 74, 169, 214, 103, 59, 46, 128, 7, 68, 117, 96, 80, 113, 58, 182, 31, 253, 82, 150, 35, 132, 85, 159, 137, 68, 85, 191, 225, 133, 155, 15, 69, 192, 228, 114, 63, 81, 134, 168, 161, 221, 114, 146, 116, 82, 192, 205, 137, 156, 57, 244, 99, 159, 136, 149, 255, 38, 203, 210, 43, 153, 20, 96, 33, 180, 51, 72, 115]) }, Event { key: EventKey([129, 148, 196, 51, 21, 110, 225, 189, 18, 122, 91, 200, 113, 149, 82, 58, 123, 137, 145, 0, 192, 206, 240, 153, 133, 1, 45, 165, 233, 188, 218, 81, 177, 4, 187, 241, 96, 164, 187, 117, 247, 167, 0, 205, 167, 170, 94, 86, 79, 1, 25, 170, 83, 224, 226, 79, 246, 253, 190, 223, 4, 191, 191, 133, 4, 34, 239, 216, 183, 185, 235, 141, 125, 228, 101, 111, 120, 147, 134, 168, 205, 65, 207, 113, 87, 221, 5, 134, 232, 203]), value: EventValue([23, 171, 204, 239, 130, 236, 74, 152, 85, 174, 50, 168, 179, 97, 161, 6, 218, 117, 34]) }, Event { key: EventKey([108, 57, 24, 110, 28, 217, 71, 156, 62, 124, 236, 199]), value: EventValue([60, 82, 209, 186, 60, 133, 220, 43, 231, 185, 72, 145, 107, 112, 72, 84, 218, 210, 161, 194, 165, 85, 80, 15, 253, 247, 212, 39, 171, 212, 216, 55, 4, 171, 126, 187, 34, 35, 255]) }], receipt: 738514413 }, TransactionReceipt { tx_hash: [164, 15, 12, 49, 31, 130, 231, 1, 51, 215, 10, 170, 168, 57, 97, 208, 47, 239, 235, 253, 183, 146, 46, 251, 44, 174, 96, 16, 245, 32, 68, 162], body_to_save: Some([9, 73, 132, 76, 194, 52, 179, 146, 190, 151, 53, 134, 13, 102, 42, 61, 237, 106, 204, 16, 147, 144, 95, 55, 131, 37, 240, 13, 236, 48]), events: [Event { key: EventKey([94, 81, 233, 109, 193, 9, 245, 220, 116, 93, 45, 49, 63, 127, 92, 243, 37, 181, 190, 32, 233, 236, 253, 132, 48, 197, 122, 35, 96, 214, 241, 251, 51, 96, 89, 33, 27, 209, 106, 92, 85, 116, 23, 56, 170, 140, 185, 35, 184, 77, 42, 41, 130, 251, 215, 235, 37, 223, 101, 157, 219, 116, 53, 123, 42, 118, 105, 105, 29, 131, 181, 192, 193, 119, 189, 88, 17, 81, 155, 12, 168, 27, 33, 103, 27, 220, 201, 34, 202, 179, 254]), value: EventValue([135, 175, 15, 36, 180, 189, 107, 197, 114, 112, 216, 92, 59, 105, 155, 250, 106, 9, 233]) }, Event { key: EventKey([250, 211, 18, 251, 253, 19, 30, 4, 87, 13, 136, 240, 168, 6, 180, 193, 101, 202, 65, 60, 49, 38, 37, 237, 48, 142, 140, 227, 248, 231, 158, 212, 111, 251, 167, 36, 202, 236, 47]), value: EventValue([255, 225, 147, 210, 127, 142, 75, 167, 191, 53, 194, 20, 201, 103, 44, 202, 46, 121, 213, 56, 64, 81, 46, 186, 170, 199, 90, 75, 113, 81, 94, 106, 10, 173, 138, 73, 248, 186, 247, 230, 68, 176, 233, 222, 81, 93, 204, 247, 133]) }, Event { key: EventKey([191, 234, 68, 69, 36, 30, 72, 99, 157, 252, 37, 161, 137, 242, 23, 190, 184, 118, 193, 64, 54, 118, 54, 62, 193]), value: EventValue([225, 196, 217, 182, 240, 66, 169, 186, 140, 232, 45, 139, 202, 28, 218, 129, 232, 77, 31, 129, 202, 0, 182, 193, 133, 39, 201, 251, 223, 180, 27, 202, 140, 252, 174, 151, 84, 58, 30, 174, 75, 141, 196, 35, 116, 217, 181, 21, 151, 138, 185, 233, 253, 249, 182, 188, 239, 116, 91, 123, 114, 139, 116, 224, 183, 127, 54, 229, 156, 117, 47, 17, 136, 251, 31, 1, 214, 246, 117, 45, 16, 129, 71, 72, 82, 30, 67, 127]) }, Event { key: EventKey([59, 222, 26, 254, 102, 145, 90, 150, 173, 233, 159, 5, 136, 185, 94, 154, 44, 206, 249, 79, 228, 239, 22, 220, 87, 64, 100, 41, 4, 62, 222, 224, 108, 233, 209, 157, 114, 80, 209, 15, 128, 69, 163, 126, 233, 40, 96, 132, 239, 217, 39, 226, 102, 111, 175, 190, 122, 254, 152, 99, 18, 203, 64, 30, 115, 121, 203, 230, 26, 169, 204, 89, 63, 70, 49, 11, 98, 32, 101, 35, 59, 157, 118, 96, 239, 122, 183, 247, 120, 41, 98, 237, 115, 149, 163, 45]), value: EventValue([23, 26, 227, 110, 162, 245, 169, 165, 155, 84, 144, 55, 126, 229, 110, 12, 75, 236, 133, 114, 22, 75, 53, 110, 148, 60, 131, 161, 121, 55, 185, 75, 106, 79, 153, 192, 131, 216, 163, 93, 65, 159, 74, 110, 86, 82, 58, 73, 36, 235, 244, 82, 142, 184, 92, 186, 253, 216, 203, 116, 28, 7, 201, 138, 65, 145, 1, 167, 130, 222, 34, 231, 173, 171, 79, 76, 117, 125, 27, 235, 133, 221, 168, 83, 103, 186, 159, 19, 199, 116, 161, 19, 54, 218, 181, 85, 124, 143, 131]) }, Event { key: EventKey([112, 24, 246, 116, 101, 93, 60, 42, 86, 255, 162, 74, 121, 59, 187, 74, 61, 145, 207, 80, 141, 119, 65, 166, 87, 225, 145, 250, 222, 172, 157, 212]), value: EventValue([129, 253, 59, 59, 142, 153, 1, 101, 25, 104, 11, 65, 199]) }, Event { key: EventKey([73, 91, 48, 126, 65, 199, 77, 48, 43, 73, 184, 29, 15, 176, 155, 181, 25, 190, 90, 97, 144, 4, 9, 217, 132, 166, 230, 15, 246, 65, 69, 27, 15, 227, 191, 86, 168, 185, 234, 147, 124, 236, 220, 67, 63, 117, 39, 174, 99, 99, 103, 20, 189, 7, 220, 183, 46]), value: EventValue([132, 56, 205, 249, 20, 90, 158, 40, 255, 173, 97, 162, 64, 34, 217, 149, 207, 109, 102, 3, 125, 70, 36, 122, 69, 67, 172, 56, 189, 141, 220, 107, 28, 106, 177, 15, 230, 17, 20, 46, 17, 131, 217, 33, 20, 57, 207, 31, 145, 221, 118, 64, 195, 191, 90, 194, 173, 132, 235, 45, 168, 70, 124]) }, Event { key: EventKey([163, 171, 83, 101, 88, 169, 206, 109, 81]), value: EventValue([164, 177, 11, 105, 85, 78, 29, 176, 31, 210, 197, 130, 87, 165, 83, 241, 209, 167, 48, 137, 38, 126, 140, 30, 12, 104, 185, 184, 24, 183, 63, 88, 4, 227, 8, 85, 152, 152, 53, 133, 62, 244, 186, 127, 70, 71, 227, 238, 175, 74, 191, 203, 242, 32, 13, 51, 135, 160, 215, 230, 95, 36, 89, 157, 187, 44, 53, 62, 18, 34, 0, 1, 167, 131, 158, 16, 251, 226, 208, 104, 76, 248, 20, 28, 245, 171, 71, 207, 175, 216, 236, 210, 227]) }], receipt: 2461770167 }, TransactionReceipt { tx_hash: [96, 68, 105, 220, 168, 77, 63, 105, 40, 220, 217, 191, 254, 11, 55, 181, 3, 30, 8, 104, 134, 205, 74, 43, 78, 94, 162, 102, 239, 29, 23, 112], body_to_save: Some([188, 247, 231, 255, 29, 131, 12, 194, 121, 119, 216, 45, 7, 32, 204, 182, 133, 153, 93, 115, 186, 255, 50, 195, 227, 159, 249, 42, 216, 208, 105, 245, 189, 188, 110, 247, 66, 4, 71, 19, 2, 112, 103, 47, 180, 72, 201, 111, 85, 171, 90, 54, 102, 74, 158, 200, 246, 79, 245, 81, 162, 39, 225, 100, 132, 135, 188, 220, 5, 62, 168, 88, 79, 229, 151, 179, 94, 3]), events: [Event { key: EventKey([242, 145, 106, 87, 236, 185, 106, 224, 61, 7, 197, 200, 133, 79]), value: EventValue([45, 252, 193, 176, 120, 245, 122, 255, 230, 158, 88, 148, 135]) }], receipt: 2104272452 }], inner: 1876769934 }], num_txs: 37, num_events: 161 }], {73: (326, 329), 18: (64, 68), 62: (289, 289), 40: (174, 181), 67: (291, 293), 2: (1, 1), 46: (217, 221), 27: (105, 113), 41: (181, 188), 57: (274, 279), 7: (19, 23), 47: (221, 224), 58: (279, 281), 6: (17, 19), 8: (23, 24), 30: (128, 137), 38: (168, 173), 51: (236, 243), 24: (90, 94), 43: (194, 203), 77: (353, 353), 81: (370, 373), 3: (1, 1), 20: (73, 73), 9: (24, 27), 14: (49, 49), 19: (68, 73), 50: (233, 236), 53: (252, 258), 66: (291, 291), 37: (159, 168), 5: (8, 17), 13: (41, 49), 85: (389, 390), 60: (281, 287), 72: (318, 326), 1: (1, 1), 33: (145, 146), 45: (209, 217), 26: (103, 105), 32: (142, 145), 17: (56, 64), 65: (290, 291), 68: (293, 302), 10: (27, 32), 54: (258, 261), 23: (86, 90), 25: (94, 103), 55: (261, 266), 84: (382, 389), 4: (1, 8), 42: (188, 194), 63: (289, 290), 12: (38, 41), 70: (309, 317), 75: (337, 344), 76: (344, 353), 79: (358, 364), 56: (266, 274), 29: (122, 128), 61: (287, 289), 80: (364, 370), 39: (173, 174), 64: (290, 290), 15: (49, 53), 74: (329, 337), 22: (77, 86), 31: (137, 142), 34: (146, 146), 52: (243, 252), 49: (229, 233), 11: (32, 38), 28: (113, 122), 36: (154, 159), 78: (353, 358), 21: (73, 77), 83: (374, 382), 35: (146, 154), 69: (302, 309), 48: (224, 229), 82: (373, 374), 44: (203, 209), 16: (53, 56), 59: (281, 281), 71: (317, 318)}, 23), random_batch_num = 22 -cc b43e7437fff244ba32c1115a8325f53ac8b81688fb5a72a0ea75db6c3c9d0902 # shrinks to (slots, tx_id_to_event_range, _total_num_batches) = ([SlotCommit { slot_data: TestBlock { curr_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], header: TestBlockHeader { prev_hash: TestHash([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) } }, batch_receipts: [BatchReceipt { batch_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], tx_receipts: [TransactionReceipt { tx_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], body_to_save: None, events: [Event { key: EventKey([]), value: EventValue([]) }, Event { key: EventKey([]), value: EventValue([]) }, Event { key: EventKey([47, 137, 97, 50, 57, 126, 105, 27, 114, 88, 117, 20, 126, 35, 41, 21, 189, 96, 143, 91, 217, 129, 147, 177, 218, 244, 64, 78, 231, 186, 157, 198, 222, 177, 121, 72, 37, 160, 243, 150, 172, 51, 20, 254, 78, 87, 179, 39, 118, 12, 130, 129, 210, 40, 91, 66, 220, 253, 19, 35, 66, 132, 199, 32, 186, 96]), value: EventValue([112, 72, 159, 8, 225, 238, 50, 216, 172, 83, 211, 235, 1, 124, 233, 117, 218, 248, 14, 25, 13, 240, 58, 135, 223, 187, 254, 76, 188, 102, 65, 7, 236, 156, 111, 77, 186, 178, 138, 107, 161, 177, 204, 208, 225, 152, 118]) }, Event { key: EventKey([156, 2, 9, 214, 42, 212, 96, 254, 235, 67, 92, 35, 243, 113, 150, 225, 87, 209, 83, 91, 175, 219, 202, 215, 131, 198, 27]), value: EventValue([139, 151, 221, 182, 104, 57, 74, 99, 127, 226, 70, 101, 46, 111, 237, 128, 235, 203, 221, 210, 249, 26, 115, 15, 166, 240, 134, 177, 223, 1, 217, 11, 30, 198, 118, 124, 136, 113, 36, 72, 16, 122, 101, 179, 90, 170, 193, 168, 103, 229, 26, 111, 184, 177, 118, 246, 107, 153, 51, 124, 180, 97, 204, 81, 123, 156, 228, 89, 184]) }, Event { key: EventKey([91, 70, 35, 45, 32, 170, 169, 140, 91, 149, 76, 188, 164, 192, 217, 140, 234, 114, 57, 1, 204, 52, 2, 183, 123, 204, 221, 152, 97, 115, 229, 99, 58, 217, 157, 5, 238, 186, 207, 54, 231, 103, 50, 153]), value: EventValue([235, 54, 49, 255, 52, 9, 163, 93, 7, 8, 80, 96, 90, 91, 253, 215, 37, 191, 78, 15, 143, 117, 169, 62, 91, 78, 86, 195, 208, 240, 33, 226, 200, 44, 114, 52, 162, 218, 182, 94, 77, 104, 232, 17, 192, 202, 152, 228, 162, 185, 203, 28, 83, 139, 184, 159, 146, 237, 255, 136, 40, 247, 121, 32, 141, 73, 57, 111, 96, 34, 252, 191, 56, 198, 63, 88, 48, 209, 43, 1, 245, 28, 4, 57, 32, 25, 239, 230, 68, 103, 244, 133, 172, 182, 230, 150, 69, 44, 102]) }], receipt: 1699297200 }, TransactionReceipt { tx_hash: [35, 151, 201, 138, 67, 0, 39, 36, 201, 50, 6, 140, 223, 76, 50, 70, 72, 131, 255, 232, 235, 221, 236, 59, 9, 164, 206, 231, 35, 111, 225, 154], body_to_save: Some([176, 54, 80, 188, 63, 253, 103, 127, 52, 214, 46, 239, 186, 8, 155, 94, 87, 38, 42, 78, 51, 116, 214, 1]), events: [Event { key: EventKey([173, 70, 252, 172]), value: EventValue([70, 187, 81, 197, 148, 138, 135, 246, 216, 215, 176, 186, 78, 95, 185, 153, 138, 93, 111, 107, 46, 245, 82, 1, 51, 20, 155, 95, 227, 15, 75, 90, 131, 208, 37, 81, 229, 226, 251, 12, 46, 17, 231, 75, 107, 206, 95, 142, 15, 125, 152, 39, 232, 1, 50, 162, 27, 153, 5, 144, 27]) }, Event { key: EventKey([93, 162, 22, 168, 98, 187, 97, 31, 173, 84, 46, 145, 137, 229, 255, 21, 68, 225, 113, 27, 73, 255, 221, 189, 175, 18, 100, 227, 206, 136, 51, 80, 14, 113, 120, 224, 49, 95, 108, 42, 210, 193, 204, 6, 237, 214, 13, 209, 102, 201, 75, 52, 210, 151, 127, 58, 168, 202, 82, 35, 120, 30]), value: EventValue([103, 138, 168, 32, 232, 167, 228, 97, 117, 98, 137, 59, 216, 12, 55, 85, 194, 85, 180, 105, 61, 201, 193, 47, 150, 91, 129, 86, 119, 67, 47, 143, 63, 52, 178, 34, 192, 173, 75, 76, 196, 212, 111, 245, 49, 98, 6, 33, 42, 14, 67, 194, 231, 213, 88, 95, 75, 93, 255, 168, 170, 73, 121, 231, 184, 176, 193, 74, 43, 96, 122, 40, 44, 100, 17, 35, 103, 219, 32]) }, Event { key: EventKey([160, 46, 41, 137, 174, 20, 171, 33, 38, 35, 215, 179, 127, 61, 211, 159, 184, 237, 181, 89, 21, 21, 10, 118, 12, 231, 199, 100]), value: EventValue([188, 124, 36, 52, 137, 20, 107, 104, 35, 102, 38, 223, 200, 90, 111, 235, 17, 208, 217, 219, 0, 232, 87, 169, 152, 98, 178, 62, 160, 35, 227, 241, 160, 10, 47, 184, 26, 95, 246, 130, 94, 127, 163, 123, 15, 234, 60, 47, 75, 173, 183, 7, 52, 174, 212, 117, 190, 155, 205, 55, 98, 239, 232, 200, 103, 167, 237, 12, 97, 66, 252, 157, 102, 133, 124]) }, Event { key: EventKey([154, 220, 75, 66, 13, 164, 7, 186, 188, 208, 216, 251, 37, 53, 154, 136, 19, 20, 43, 207, 10, 217, 146, 85, 192, 251, 82, 249, 115, 173, 180, 146, 5, 204, 141, 182, 12, 103, 194, 127, 31, 62, 145, 148, 120, 152, 215, 118, 113, 210, 157, 145, 173, 47, 244, 245, 116, 17, 42, 239, 55, 79, 164, 213, 204, 106, 76, 151, 233, 58, 187, 39, 27, 173, 219, 51, 91, 247, 190, 168, 117, 88, 87, 20, 194, 166, 73, 13]), value: EventValue([139, 55, 155, 144, 121, 219, 172, 157, 31, 126, 101, 17, 125, 149, 64, 144, 156, 155, 70, 157, 55, 231, 172, 199, 203, 233, 33, 57, 67, 85, 21, 189, 216, 0, 45, 49, 45, 122, 56, 200, 244, 192, 130, 0, 63, 139, 210, 175, 153, 154, 244, 199, 24, 27, 229, 190, 230, 19, 114]) }], receipt: 914851340 }, TransactionReceipt { tx_hash: [41, 12, 6, 8, 36, 8, 63, 115, 214, 171, 186, 127, 163, 73, 216, 217, 192, 176, 214, 62, 235, 216, 99, 189, 188, 32, 59, 254, 251, 122, 76, 14], body_to_save: None, events: [Event { key: EventKey([139, 136, 222, 39, 93, 63, 87, 0, 177, 142, 177, 101, 118, 7, 109, 34, 13, 186, 185, 32, 120]), value: EventValue([195, 177, 121, 94, 224, 248, 225, 252, 94, 16, 246, 143, 183, 79, 133, 121, 179, 12, 45, 130, 134, 79, 201, 187, 157, 254, 49, 201, 165, 115, 65, 11, 140, 8, 189, 163, 231, 156, 156, 213, 203, 61, 60, 70, 2, 138, 14, 112, 235, 11, 148, 11, 254, 192, 161, 201, 211, 240, 211, 8, 163, 58, 68, 66, 8, 173, 76, 174, 194, 249, 228, 222, 210]) }, Event { key: EventKey([59, 133, 73, 140, 248, 153, 143, 64, 218, 16, 137, 102, 227, 45, 73, 33, 14, 61, 132, 222, 55, 223]), value: EventValue([128, 226, 180, 224, 158, 88, 245, 243, 119, 132, 132, 12, 65, 20, 63, 145, 108, 157, 253, 132, 246, 229, 113, 87, 202, 224, 166, 33, 188, 216, 79, 7, 136, 144, 168, 242, 198, 223, 199, 235, 152, 207, 172, 172, 29, 209, 107, 245, 205, 142, 121, 49, 192, 134, 68, 99, 251]) }, Event { key: EventKey([95, 81, 136, 109, 201, 159, 47, 191, 134, 81, 110, 210, 78, 253, 20, 245, 37, 134, 22, 214, 120, 71, 68, 205, 29, 22, 115, 248, 102, 57, 70, 12, 54, 74, 142, 26, 241, 212, 220, 230, 122, 81, 61, 198, 204, 18, 85, 167, 179, 41, 87, 22, 16, 197, 172, 139, 200, 91, 216, 180, 119, 11, 174, 234, 71, 244, 203, 152, 56, 188, 24, 108, 185, 157, 30, 207, 80, 60, 155, 133, 31, 220, 93, 14, 159, 192, 115, 246, 37, 217, 63, 197, 88, 134, 93, 186]), value: EventValue([184, 3, 108, 254, 205, 2, 211, 82, 158, 252, 4, 207, 244, 193, 53, 206, 251, 145, 97, 76, 15, 58, 243, 192, 140, 25, 126, 43, 224, 165, 21, 248, 29, 167, 41, 252, 134, 117, 34, 213, 140, 68, 47, 85, 243, 233, 194, 207, 183, 114, 255, 174, 214, 53, 71, 111, 216, 250, 3, 53, 16, 105, 222, 71, 225]) }, Event { key: EventKey([154, 171, 219, 16, 132, 3, 210, 181, 76, 229, 60, 236, 223, 16, 99, 244, 166, 122, 27, 45, 47, 25, 75, 163, 187, 112, 52, 44, 157, 124, 96, 143, 142, 41, 234, 64, 167, 3, 242, 83, 4]), value: EventValue([7, 104, 63, 43, 196, 85, 8, 27, 79, 100, 0, 119, 134, 176, 94, 175, 118, 58, 151, 13, 107, 194, 191, 7, 39, 245, 190, 201, 77, 188, 89, 7, 18, 2, 251, 53, 67, 183, 198, 118, 139, 54, 6, 237, 120, 129, 72, 97, 95, 217, 35, 190, 195, 165, 139, 216, 216, 20, 85]) }, Event { key: EventKey([73, 12, 239, 196, 242, 20, 22, 32, 248, 111, 189, 143, 187, 230, 135, 46, 74, 31, 168, 103, 155, 44, 149, 60, 228, 198, 126, 174, 226]), value: EventValue([44, 47, 218, 85, 14, 144, 45, 27, 105, 16, 24, 144, 103, 33, 124, 115, 187, 254, 123, 63, 25, 42, 200, 64, 233, 225, 175, 146, 46, 137, 196, 154, 38, 191, 218, 227, 248, 245, 50, 164, 150, 31, 86, 3, 215, 41, 235, 45, 187, 252, 23, 23, 25, 27, 209, 205, 181, 27, 29, 50, 0, 236, 224, 237, 243, 203, 110, 196, 66, 97, 136, 114, 89, 252, 239, 238, 226, 162, 252, 68, 98, 166, 154, 161, 30, 170, 177, 84, 98, 98, 67]) }, Event { key: EventKey([198, 77, 131, 48, 139, 27, 180, 19, 247, 14, 172, 72, 242, 244, 46, 100, 51, 26, 195, 241, 241, 136, 112, 8, 5, 222, 201, 201, 136, 185, 76, 176, 22, 78, 219, 249, 116, 59, 19, 16, 218, 58, 105, 157, 224, 56, 136, 55, 119, 26, 81, 212, 125, 182, 7, 236]), value: EventValue([74, 102, 118, 102, 206, 177, 119, 73, 166, 29, 156, 199, 187, 62, 149, 13, 40, 71, 241, 113, 244, 183, 85, 238, 72, 31, 155, 40, 48, 206, 206, 146, 228, 228, 249, 71, 40, 36, 74, 136, 47, 168, 80, 129, 103, 202, 126, 171, 180, 140, 248, 18, 65, 73, 140, 0, 28, 43, 203, 221, 54, 192]) }, Event { key: EventKey([15, 139, 223, 119, 85, 91, 30, 52, 17, 147, 41, 226, 223, 106, 181, 255, 57, 178, 22, 227, 237, 114, 141, 90, 98, 203, 201, 146, 32, 151, 83, 118, 82, 252, 134, 52, 200, 50, 66, 139, 104, 59, 64, 38, 166, 31, 61, 75, 243, 78, 127, 232, 117, 38, 128, 81, 225, 112, 177, 206, 119, 238, 10, 10, 62, 93, 242, 87, 229, 162, 174, 19, 49, 117, 246, 47, 226, 240, 186, 38]), value: EventValue([18, 31, 12, 34, 149, 146, 3, 12, 47, 93, 60, 97, 99, 196, 180, 225, 40, 3, 43, 197, 103, 238, 20, 197, 180, 99, 126, 4, 61, 2, 228, 95, 193, 249, 137, 186, 3, 57, 77, 184, 19, 142, 2, 202, 174, 239, 50, 13, 92, 146, 14, 29, 89, 19, 3, 219, 55, 157, 51, 52, 131, 39, 253, 210, 95, 79, 167, 189, 62, 150, 57, 73, 98, 174, 216, 188, 68, 95, 70, 131, 12, 142, 254, 130, 181, 144, 164, 136, 6, 141, 122, 172, 209, 198, 32, 89, 52, 84]) }, Event { key: EventKey([73, 126, 208, 239, 115, 31, 55, 114, 29, 199, 88, 94, 76, 219, 169, 50, 32, 73, 163, 219, 103, 221, 188, 232, 192, 169, 110, 98, 122, 110, 28, 164, 76, 161, 82, 124, 135, 159, 29, 251, 109, 79, 126, 243, 82, 219, 132, 58, 32, 107, 130, 178, 40, 211, 41, 42, 64, 32, 129, 121, 252, 48, 211, 93, 212, 37, 238, 88, 74, 160, 194, 77, 248, 21, 232, 243]), value: EventValue([249, 69, 221, 66, 67, 144, 119, 109, 221, 213, 92, 90, 186, 19, 234, 106, 207, 15, 35, 247, 87, 31, 84, 78, 171, 86, 252, 239, 26, 120, 111, 56, 147, 185, 251, 202, 142, 115, 213, 169, 111, 14, 158, 157, 149, 130, 129, 86, 127, 136, 65, 193, 9, 244, 195, 31, 202, 36, 218, 58, 184, 24, 82, 182, 189, 122, 45, 226, 248, 229, 39, 10]) }, Event { key: EventKey([103, 43, 57, 29, 113, 69, 152, 164, 90, 40, 84, 152, 155, 11, 9, 96, 217, 247, 57, 200, 173, 183, 172, 154, 209, 255, 234, 181, 30, 176, 243, 195, 19, 199, 144, 134, 28, 231, 71, 202, 52]), value: EventValue([133, 126, 174, 204, 69, 166, 230, 158, 207, 214, 24, 60, 123, 54, 217, 153, 195, 29, 170, 103, 156, 189, 213, 212, 96, 70, 236, 246, 208, 220, 56, 225, 153, 96, 131]) }], receipt: 1971641964 }], inner: 1264588665 }, BatchReceipt { batch_hash: [173, 84, 250, 113, 184, 122, 139, 120, 42, 184, 189, 133, 113, 209, 219, 123, 133, 44, 232, 94, 127, 7, 61, 169, 15, 67, 70, 85, 50, 182, 159, 198], tx_receipts: [TransactionReceipt { tx_hash: [25, 233, 114, 103, 254, 241, 188, 239, 202, 78, 196, 81, 96, 157, 176, 158, 186, 43, 220, 127, 25, 136, 83, 34, 32, 5, 45, 128, 250, 153, 153, 163], body_to_save: Some([12, 76, 53, 94, 213, 250, 55, 112, 116, 117, 199, 205, 160, 27, 165, 169, 108]), events: [Event { key: EventKey([9, 59, 247, 36, 185, 49, 156, 137, 186, 94, 96, 193, 87, 100, 250, 23, 51, 172, 84, 193, 246, 193, 169, 45, 146, 224, 24, 155, 240, 51, 241, 193, 186, 170, 154, 170, 237, 60, 229, 241, 6, 145, 147, 56, 65, 150, 185, 152, 138, 69, 255, 3, 41, 154, 10, 119, 48, 25, 97, 158, 61, 83, 182, 45, 25, 65, 209, 9, 156, 25, 119, 191, 108, 110, 73, 27, 197, 178, 188, 169, 32, 107, 133, 149, 44, 9, 40, 68]), value: EventValue([125, 174, 77, 17, 3, 91, 164, 88, 252, 20, 34, 134, 118, 19, 124, 151, 167, 29, 174, 142, 35, 118, 87, 212, 163, 245, 242, 93, 92, 173, 161, 119, 209, 249, 189, 166, 195, 187, 111, 12]) }, Event { key: EventKey([208, 8, 225, 126, 26, 133, 90, 220, 208, 26, 36, 153, 223, 106, 179, 14, 15, 27, 245, 97, 221, 31, 25, 44, 21, 4, 165, 39, 17, 96, 2, 231, 113, 193, 95, 185, 222, 124, 226, 142]), value: EventValue([37, 96, 209, 177, 94, 133, 98, 17, 165, 84, 52, 32, 159, 77, 117, 168, 104, 8, 201, 68, 233, 220, 202, 97, 231, 134, 57, 169, 205, 2, 214, 196, 81, 112, 37, 12, 175, 137, 232, 176, 16, 185, 234, 71, 191, 159, 200, 84, 60, 228, 16, 54, 127, 30, 155, 129, 178, 213, 223, 208, 251, 194, 225, 6, 31, 153, 179, 43, 116, 231, 234, 19, 44, 120, 226, 48, 107, 83, 251, 150]) }, Event { key: EventKey([16, 249, 145, 27, 46, 61, 26, 78, 128, 44, 86, 154, 151, 49, 101, 206, 189, 137, 61, 183, 186, 77, 40, 97, 144]), value: EventValue([210, 178, 151, 145, 112, 193, 237, 154, 248, 214, 111, 191, 104, 47, 40, 193, 69, 73, 214, 5, 219, 144, 224, 180, 106, 134, 231, 156, 205, 80, 202, 125, 43, 158, 248, 88, 77, 57, 125, 152, 38, 185, 107, 66, 216, 114, 56, 76, 159, 233, 137, 82, 52, 132, 185, 214, 129, 208, 210, 237, 146, 121, 103, 71, 251, 92, 209, 194, 149, 168, 84, 209, 175, 211, 97, 8, 206, 137, 232, 77, 59, 26, 105, 1, 133]) }], receipt: 3997603776 }, TransactionReceipt { tx_hash: [210, 206, 167, 103, 173, 216, 180, 19, 199, 14, 158, 71, 35, 62, 237, 251, 194, 40, 29, 5, 14, 210, 70, 185, 129, 238, 229, 238, 166, 50, 120, 166], body_to_save: None, events: [Event { key: EventKey([215, 1, 54, 179, 240, 77, 108, 241, 4, 148, 46, 199, 108, 118, 92, 112, 193, 146, 25, 8, 235, 64, 220, 245, 41, 254]), value: EventValue([57, 192, 76, 30, 20, 205, 109, 76, 188, 230, 223, 247, 69, 84, 22, 61, 218, 127, 226, 10, 160, 13, 11, 231, 171, 125, 171, 46, 148, 73, 3, 61, 39, 40, 96, 91, 51, 199, 58, 225, 70, 246, 34, 12, 131, 192, 127, 243, 28, 186, 85, 20, 104, 229, 65, 68, 53, 143, 140, 173, 228, 29, 245, 220, 157, 161, 165]) }], receipt: 420167660 }, TransactionReceipt { tx_hash: [137, 40, 184, 1, 185, 211, 161, 128, 38, 70, 194, 119, 111, 252, 219, 157, 59, 98, 55, 32, 247, 242, 250, 56, 196, 201, 66, 52, 224, 235, 16, 249], body_to_save: Some([35, 109, 165, 15, 48, 109, 56, 193, 100, 69, 87, 222, 246, 76, 21, 226, 144, 181, 244, 199, 88, 197, 157, 224, 241, 46, 56, 209, 80, 225, 215, 3, 74]), events: [Event { key: EventKey([157, 16, 214, 114, 183, 231, 50, 133, 35, 65, 255, 35, 154, 119, 62, 33, 30, 155, 211, 7, 28, 3, 81, 249, 192, 204, 87, 248, 90, 131, 74, 127, 90]), value: EventValue([165, 2, 226, 121, 67, 220, 114, 201, 243, 51, 240, 148, 189, 20, 133, 222, 93, 80, 44, 109, 252, 106, 236, 73, 46, 110, 101, 240, 122, 43, 142, 37, 25, 167, 217, 63, 243, 140, 68, 18, 75, 185, 1, 179, 88, 22, 17, 216, 138, 232, 126, 247, 67, 143, 40, 17, 242, 232, 197, 155, 97]) }, Event { key: EventKey([100, 209, 126, 200, 97, 141, 8, 108, 220, 205, 110, 115, 15, 77, 105, 245, 166, 181, 141, 36, 90, 245, 207, 42, 90, 153, 67, 83, 1, 159, 120, 179, 43, 199, 44, 77, 29, 55, 113, 212, 15, 47, 81, 251, 223, 171, 245, 119, 131, 18, 187, 176, 225, 99, 215, 135, 64, 39, 170, 241, 255, 170, 211, 24, 184, 217, 8, 154, 189, 238, 21, 236, 235, 104, 108, 196, 87, 248, 157, 199, 69, 231, 80, 41, 42, 98, 9, 5, 76, 180, 176, 137, 174, 33, 18, 200, 43]), value: EventValue([45, 200, 126, 132, 24, 158, 218, 76, 245, 59, 134, 104, 19, 147, 221, 119, 121, 133, 47, 25, 174, 18, 194, 120, 145, 172, 229, 100, 223, 81, 224, 185, 178, 99, 23, 27, 19, 93, 47, 216, 246, 54, 137, 213, 241, 251, 128, 159, 54, 169, 62, 21, 31, 10, 8, 236, 226]) }, Event { key: EventKey([236, 165, 174, 45, 11, 222, 69, 194, 115, 0, 238, 103, 220, 115, 249, 50, 166, 65, 143, 123, 29, 83, 20, 198, 37, 111, 99, 170, 182]), value: EventValue([193, 198, 22, 146, 203, 37, 171, 158, 71, 254, 158, 161, 147, 202, 21, 95, 0, 148, 199, 119, 28, 19, 86, 253, 128, 47, 215, 47, 181, 125, 51, 5, 63, 137, 27, 230, 60, 252, 18, 75, 48, 66, 187, 130, 246, 132, 66, 154, 203, 86, 90, 241, 198, 35, 165, 121, 57, 208, 184, 202, 84, 188, 165, 222, 210, 186, 200, 252, 253, 231, 113, 177, 10, 47, 75, 26, 194, 140, 59, 109, 241, 200, 119, 213, 155, 145, 81, 114, 33, 206, 3, 102, 175, 156]) }, Event { key: EventKey([179, 143, 215, 101, 241, 200, 200, 18, 91, 221, 12, 59, 81, 131, 97, 217, 173, 106, 170, 57, 171, 190, 41, 49, 253, 125, 109, 43, 172, 133, 217, 251, 131, 209, 121, 86, 65, 85, 119, 204, 39, 7, 191, 75, 222, 171, 41, 76, 170, 174, 212, 224, 189, 113, 224, 157, 114, 114, 40, 168, 85, 120, 206, 201, 28, 183, 143, 223, 82, 3, 108, 90, 41, 75, 97, 199, 188, 167, 156, 143, 67, 52, 181, 214, 229, 192, 123]), value: EventValue([120, 187, 225, 60, 129, 251, 119, 47, 106, 28, 121, 236, 208, 98, 215, 66, 179, 4, 251, 73, 58, 224, 204, 146, 216, 26]) }, Event { key: EventKey([133, 108, 226, 246, 156, 124, 127, 204, 250, 156, 147]), value: EventValue([200, 83, 102, 25, 81, 144, 123, 213, 150, 82, 48, 122, 112, 43, 170, 194]) }, Event { key: EventKey([211, 225, 194, 189, 232, 61, 230, 34, 126, 147, 165, 143, 152, 96, 32, 101, 134, 70, 100, 26, 108, 150, 173, 110, 111, 6, 86, 116, 102, 178, 203, 88, 198, 240, 77, 56, 250, 152, 74, 148, 176, 74, 111, 122, 190, 232, 42, 98, 7, 105, 174, 50, 145, 189, 235, 149, 101, 233, 245, 224, 76, 218, 14, 98, 230, 54, 170]), value: EventValue([171, 23, 142, 81, 19, 106, 107, 155, 233, 226, 242, 245, 187, 131, 247, 155, 230, 145, 7, 177, 109, 83, 120, 132, 30, 24, 209, 79, 15, 158, 163, 206, 82, 127, 146, 168, 221, 9, 168, 70, 3]) }, Event { key: EventKey([255, 183, 36, 168, 214, 11, 121, 83, 88, 71, 232, 100, 61, 191, 88, 206, 175, 63]), value: EventValue([114, 79, 19, 171, 107, 39, 208, 204, 8, 30, 149, 131, 135, 6, 33, 3, 46, 239, 228, 162, 25, 193, 183, 183, 86, 0, 159, 56, 76, 29, 1, 20, 243, 198, 222, 187, 149, 125, 232, 5, 122, 217, 118, 63, 240, 28, 117, 243, 45, 13, 27, 215, 7, 165, 37, 190, 16, 214, 60, 202, 53, 158, 109, 77, 137, 246, 206, 194, 9, 188, 27, 133, 158, 42, 230, 250, 122, 3, 110]) }, Event { key: EventKey([12, 81, 64, 43, 236, 58, 153, 64, 62, 175, 236, 134]), value: EventValue([201, 123, 68, 118, 99, 125, 232, 22, 247, 148, 60, 60, 223, 124, 140, 62, 14, 17, 165, 64, 14, 101, 197, 72, 43, 215, 91, 140, 73, 250, 114, 102, 82, 175, 248, 166, 253, 209, 225, 158, 213, 195, 177, 65, 192, 105, 84, 35, 15, 117, 103, 24, 18, 17, 0, 26, 209, 17, 78, 121, 96, 30, 101, 240, 109, 180, 245, 166, 232, 29, 98, 210, 151, 230, 23, 38, 81, 170, 45, 196, 218, 251, 42, 231, 70, 174, 15]) }], receipt: 3120188020 }, TransactionReceipt { tx_hash: [90, 118, 131, 102, 75, 82, 42, 83, 87, 251, 155, 53, 7, 69, 31, 199, 199, 58, 219, 145, 88, 226, 63, 159, 22, 13, 215, 164, 108, 156, 251, 91], body_to_save: None, events: [Event { key: EventKey([5, 138, 140, 209, 50, 39, 103, 132, 66, 60, 239, 60, 157, 167, 207, 30, 42, 131, 129, 222, 91, 58, 21, 227, 20, 176, 202, 230, 139, 136, 56, 133, 36, 197, 9, 195, 183, 26, 189, 107, 58, 118, 77, 213, 65, 110, 59, 5, 70, 219, 209, 217, 67, 168, 161, 91, 35, 46, 245, 85, 232, 109, 45, 184, 133, 158, 50]), value: EventValue([168, 240, 89, 178, 233, 148, 188, 54, 28, 227, 82, 97, 146, 229, 145, 205, 73, 244, 33, 82, 100, 61, 30, 196]) }, Event { key: EventKey([120, 50, 62, 24, 47, 238, 137, 108, 58, 167, 126, 211, 36, 105]), value: EventValue([32, 43, 121, 108, 116, 151, 237, 228, 241, 18, 224, 206, 186, 39, 95, 25, 78, 154, 61, 14, 51, 225, 15, 213, 249, 143, 39, 242, 94, 228, 142, 109, 180, 200, 125, 73, 238, 164, 126, 165, 56, 224, 249, 52, 210, 153, 239, 100, 23, 210, 250, 12, 236, 95, 148, 180]) }, Event { key: EventKey([10, 236, 166, 219, 152, 225, 113, 197, 101, 79, 14, 36, 226, 19, 5, 73, 62, 43, 52, 68, 203, 0, 64, 105, 74, 124, 53, 44, 234, 86, 216, 244, 255, 80, 93, 72, 135, 105, 185, 83, 148, 219, 94, 47, 64]), value: EventValue([109, 127, 22, 128, 152, 142, 190, 140, 14, 124, 222, 152, 45]) }, Event { key: EventKey([8, 147, 250, 76, 165, 90, 113, 82, 42, 203, 248, 208, 103, 189, 140, 209, 242, 229, 140, 50, 84, 14, 236, 24, 204, 208, 202, 144, 79, 71, 3, 209, 202, 80, 177, 83, 63, 14, 41, 118, 244, 46, 160, 248, 118, 37, 97, 244, 104, 190, 97, 49, 107, 167, 131, 252, 131, 246, 77, 159, 82, 171, 60]), value: EventValue([75, 72, 12, 9, 195, 12, 113, 11, 97, 186, 93, 77, 221, 128, 117, 133, 192, 163, 166, 197, 27, 107, 87, 20, 81, 6, 199, 74, 59, 89, 49, 46, 169, 247, 165, 107, 44, 192, 1, 189, 89, 165, 176, 136, 60, 43, 133, 22, 187, 175, 27, 16, 123, 104, 141, 90, 201, 59, 224, 183, 181, 18, 182, 169, 184, 93, 181, 78, 126, 79, 133, 217, 199, 178, 72, 106, 169, 127, 168, 205, 249, 70, 120, 170]) }, Event { key: EventKey([108, 65, 81, 141, 204, 188, 238, 75, 189, 168, 193, 98, 239, 134, 160, 46]), value: EventValue([126, 230, 164, 67, 105, 61, 126, 124, 178, 4, 81, 202, 51, 172, 172, 142, 27, 48, 51, 143, 126, 40, 115, 42, 234, 236, 197, 109, 74, 113, 61, 123, 145, 54, 8, 180, 238, 51, 117, 177, 188, 30, 66, 168, 239, 129, 157, 29, 28, 46, 27, 122, 79, 79, 238, 71, 164, 185, 61, 160]) }, Event { key: EventKey([223, 18, 47, 126, 101, 210, 106, 157, 122, 29, 16, 143, 218, 193, 207, 235, 151, 187, 107, 144, 195, 226, 217, 143, 255, 80, 72, 168, 22, 151, 82, 174, 70, 230, 101, 92, 200, 96, 250, 248, 245, 169, 17, 72, 82, 54, 145, 195, 174, 141, 160, 165, 225, 39]), value: EventValue([128, 42, 195, 232, 238, 26, 155, 142, 164, 25, 85, 212, 122, 196, 227, 254, 2, 177, 65, 32, 118, 14, 113, 56, 75, 75, 197, 176, 238, 6, 57, 220, 162, 37, 14, 7, 143, 124, 160, 106, 113, 11, 212, 103, 61, 189, 118, 22, 16, 13, 170, 39, 109, 210, 71, 186, 69, 113, 19, 119, 227, 131, 131, 75, 38, 204, 20, 181, 48, 125, 145, 244]) }, Event { key: EventKey([55, 12, 24, 88, 196, 155, 124, 141, 160, 137, 163, 195, 41, 233, 203, 193, 143, 32, 203, 220, 129, 155, 61, 231, 132, 51, 157, 83, 200, 186, 97, 235, 157, 107, 247, 107, 191, 83, 197, 204, 165, 253, 239, 86, 217, 246, 94, 252, 104]), value: EventValue([130, 9, 76, 33, 65, 103, 211, 44, 81, 56, 63, 214, 121, 218, 164, 126, 144, 155, 47, 96, 181, 184, 207, 197, 179, 116, 134, 57, 154, 157, 241, 105, 151, 18, 7, 117, 29, 221, 75, 227, 193, 76, 65, 165, 40, 87, 58, 236, 21, 190, 190, 170, 175]) }, Event { key: EventKey([143, 252, 159, 64, 189, 151, 131]), value: EventValue([66, 175, 130, 79, 173, 41, 228, 133, 181, 202, 101, 8, 75, 74, 164, 12, 230, 224, 5, 228, 63, 5, 136, 30, 244, 141, 11, 97, 77, 190, 96, 178, 221, 183, 253, 56, 13, 249, 57, 104, 242, 175, 159, 75, 90, 189, 136, 165, 69, 17, 214, 173, 39, 56, 208, 107, 247, 32, 185, 96, 140, 84, 21, 183, 110, 18, 163, 68]) }, Event { key: EventKey([1, 91, 103, 148, 101, 96, 84, 122, 212, 71, 196, 80, 142, 251, 75, 138, 136, 55, 183, 170, 192, 19, 131, 10, 190, 245, 139, 203, 76, 176, 97, 225, 175, 244, 61, 144, 196, 127, 163, 234, 38, 245, 255, 254, 137, 118, 43, 48, 228, 54, 186, 213, 82]), value: EventValue([232, 221, 218, 123, 179, 70, 73, 127, 59, 47, 215, 150, 212, 202, 65, 34, 246, 171, 138, 138, 106, 157, 185, 135, 194, 84, 33, 176, 3, 141, 100, 61, 111, 8, 122, 111, 111, 172, 144, 92, 154, 250, 161, 196, 182, 136, 13, 66, 123, 145, 98, 100, 36, 19, 169, 240, 64, 46, 41, 117, 228, 57, 239, 10, 245, 63, 158, 254, 244, 78, 232, 152]) }], receipt: 1828111537 }, TransactionReceipt { tx_hash: [141, 233, 144, 100, 2, 71, 139, 188, 133, 152, 3, 253, 100, 134, 7, 149, 169, 178, 145, 158, 246, 251, 195, 46, 250, 88, 246, 0, 71, 146, 138, 100], body_to_save: Some([249, 158, 33, 182, 152, 37, 46, 69, 23, 211, 27, 222, 251, 157, 24, 242, 82, 216, 101, 177, 103, 190, 198, 207, 155, 9, 47, 177, 55, 143, 187, 22, 111, 0, 246, 228, 66, 155, 212, 225, 46, 28, 130, 29, 138, 207, 252, 62, 173, 180, 72, 144, 68, 253, 218, 17, 129, 91, 165]), events: [Event { key: EventKey([200, 21, 123, 67, 5, 191, 76, 159, 60, 188, 88, 110, 254, 219, 202, 242, 116, 145, 109, 110, 33, 164, 228, 3, 13, 179, 194, 145, 18, 150, 36, 202, 166, 56, 187, 40, 109, 122, 176, 102, 6, 110, 2, 137, 55, 37, 94, 107, 254, 220, 224, 50, 42, 73, 131, 101]), value: EventValue([82, 114, 95, 123, 40, 207, 225, 128, 80, 189, 15, 172, 101, 62, 14, 16, 211, 76, 186, 141, 22, 30, 142, 218, 60, 160, 202, 22, 245, 119, 165, 84, 224, 246, 116, 194, 153, 126, 51, 76, 196, 45, 97, 37, 184, 110, 112, 226, 217, 249, 162, 190, 187, 255]) }, Event { key: EventKey([28, 211, 176, 213, 164, 157, 236, 226, 28, 237, 228, 81, 10, 30]), value: EventValue([145, 98, 223, 242, 191, 134, 241, 116, 89, 80, 60, 139, 52, 71, 16, 234, 120, 153, 166, 75, 231, 100, 236, 212, 132, 66, 80, 21, 87, 73, 58, 149, 120, 69, 210, 94, 86, 154, 246, 227, 46, 227, 242, 17, 71, 85, 205, 237, 243, 168, 120, 228, 21, 19, 182]) }, Event { key: EventKey([126, 141, 48, 175, 189, 113, 210, 46, 4, 95, 22, 154, 57, 186, 129, 16, 72, 225, 234, 72, 237, 139, 39, 183, 87, 1, 23, 252, 2, 181, 20, 118, 147, 167]), value: EventValue([8, 244, 150, 238, 162, 62, 194, 188, 38, 8, 78, 231, 242, 228, 37, 46, 219, 177, 151, 63, 19, 151, 32, 169, 32, 175, 115, 113, 78, 49, 234, 28, 175, 40, 192, 8, 56, 77, 244, 71, 85, 185, 252, 185, 89, 211, 231, 84, 223, 235, 105, 89, 128, 174, 90]) }, Event { key: EventKey([220, 171, 32, 163, 86, 94, 19, 44, 248, 87, 36, 154, 226, 250, 71, 74, 13, 110, 51, 31, 31, 236, 127, 83, 17, 125, 19, 126, 29, 30, 119, 71, 47, 95, 223, 174, 235, 178, 229, 220, 159, 239, 42, 184, 136, 169, 74, 15, 190, 172, 20, 65, 150]), value: EventValue([28, 129, 138, 5, 116, 65, 229, 5, 16, 55, 243, 23, 111, 8, 3, 15, 91, 123, 51, 215, 82, 123, 242, 240, 54, 218, 139, 83, 88, 147, 101, 247, 164, 208, 75, 121, 19, 87, 67, 3, 165, 116, 67, 200, 238, 88, 234, 131, 201, 235]) }, Event { key: EventKey([162, 28, 2, 255, 42, 62, 146, 107, 18, 201, 208, 206, 22, 120, 1, 116, 50, 222, 178, 182, 73, 108, 63, 100, 112, 243, 222, 241, 241, 40, 129, 86, 141, 83, 104, 195, 209, 216, 87, 67, 48, 118, 82, 119, 199, 72, 68, 6, 14, 218, 64, 229, 151, 124, 232, 99, 235, 64, 178, 117, 216, 52, 160, 8, 240, 52, 121, 159, 236, 34, 58, 131, 244, 69, 21, 7, 97, 162, 86, 87, 155, 223, 241, 139, 163, 75, 9, 14, 157, 229, 252, 112, 243, 21, 186, 7]), value: EventValue([81, 229, 165, 66, 147, 75, 198, 199, 152, 169, 86, 82, 118, 56, 195, 67, 231, 145, 132, 66, 23]) }, Event { key: EventKey([229, 162, 233, 245, 16, 43, 126, 120, 14, 168, 20, 60, 46, 110, 118, 6, 47, 164, 80, 50, 71, 151, 225, 236, 191, 99, 201, 105, 236, 230, 197, 15, 130, 146, 49, 56, 70, 67, 248, 63, 87, 90, 17, 87, 167, 84, 164, 9, 208, 190, 134, 43, 163, 254, 248, 39, 8, 149, 109, 6, 140, 160, 21, 169, 139, 199, 34, 185, 188, 151, 202, 161, 49, 100, 101, 2, 229, 25, 10, 15, 49, 113, 244, 139, 86, 215, 119, 117, 14, 193, 207, 240, 89, 150]), value: EventValue([196, 23, 211, 27, 44, 23, 152, 19, 201, 8, 43, 242, 83, 62, 101, 137, 125, 47, 8, 231, 45, 223, 231, 204, 81, 123, 164, 128, 90, 56, 242, 136, 59, 223, 102, 159, 217, 214, 162, 94, 110, 199, 97, 95, 90, 16, 26, 160, 4, 27, 229, 97, 234, 1, 209, 127, 164, 198, 1, 247, 179, 105, 32, 100, 170, 4]) }, Event { key: EventKey([47, 228, 250, 201, 148, 251, 41, 137, 192, 46, 111, 193, 34, 239, 74, 188, 96, 51, 254, 72, 68, 146, 169, 147, 59, 65, 119, 92, 169, 178, 216, 69, 68]), value: EventValue([36, 196, 109, 55, 222, 187, 95, 106, 200, 43, 76, 18, 84, 175, 158, 252, 149, 101, 240, 174, 130, 16, 213, 225, 20, 157, 79, 69, 198, 34, 183, 149, 175, 110, 211, 53, 20, 136, 220, 77, 28, 172, 222, 73, 146, 139, 68, 37]) }, Event { key: EventKey([14, 84, 202, 83, 131, 10, 83, 8, 43, 72, 54, 89, 84, 9, 194, 36, 248, 12, 212, 235, 222, 24, 148, 116, 20, 214, 193, 26, 152, 227, 9, 138, 25, 92, 3, 251, 238, 200, 57, 35, 121, 148, 163, 106, 156, 175, 140, 129, 7, 107, 156, 164, 133, 37, 102, 124, 211, 238, 207, 195, 247, 149, 163, 19, 93, 28, 251, 131, 45, 26, 115, 8, 200, 129, 99, 149, 12, 84, 200, 235, 84, 219, 213, 53, 180, 178, 206, 135]), value: EventValue([34, 40, 224, 116, 29, 252, 166, 121, 152, 29, 241, 198, 36, 145, 245, 58, 152, 236, 169, 0, 41, 4, 128, 40, 196, 0, 189, 116, 119, 241, 162, 79, 40, 144, 88, 132, 223, 65, 108, 77, 52, 120, 119, 227, 77, 3, 143, 225, 84, 184, 18, 181, 200, 206, 191, 202, 167, 81, 7, 170, 92, 150, 0, 246, 78, 222, 217, 94, 132, 124, 42, 235, 137, 145, 33, 227, 104, 176, 9, 207, 245, 165, 146, 175, 15, 7, 56, 117, 20, 136, 133, 175, 199, 243, 217, 68]) }, Event { key: EventKey([105, 20, 82, 64, 147, 197, 216, 137, 106, 17, 65, 50, 239, 59, 69, 210, 238, 201, 84, 72, 0, 3, 213, 143, 41, 219, 3, 153, 163, 57, 148, 27]), value: EventValue([19, 207, 5, 103, 56, 100, 2, 252, 48, 127, 246, 167, 164, 222, 203, 29, 20, 213, 11, 100, 18, 72, 7, 57, 204, 71, 223, 172, 200, 81, 83, 169, 169, 255, 161, 102, 178, 154, 181, 137, 107, 34, 50, 70, 227, 122, 54, 59, 237, 249, 254, 2, 5, 178, 79, 127, 67, 237, 255, 61, 184]) }], receipt: 826972617 }, TransactionReceipt { tx_hash: [128, 13, 51, 141, 211, 156, 40, 68, 1, 62, 38, 58, 207, 49, 159, 56, 212, 249, 94, 183, 184, 51, 231, 191, 116, 10, 14, 200, 141, 172, 150, 211], body_to_save: Some([201, 118, 80, 143, 52, 61, 38, 76, 148, 194, 198, 91, 45, 122, 96, 186, 151, 174, 174, 166, 131, 174, 168, 126, 0, 122, 181, 210, 82, 49, 191, 144, 126, 216, 206, 21, 85, 216]), events: [Event { key: EventKey([219, 8, 114, 191, 138, 76, 143, 159, 250, 31, 135, 81, 43, 223, 255, 134, 29, 144, 119, 13, 138, 9, 62, 75, 198, 208, 220, 220, 55, 179, 218, 25, 15, 68, 140, 214, 253, 52, 179, 252, 206, 165, 48, 166, 2, 161, 245, 75, 111, 19, 86, 59, 49, 39, 204, 83, 60, 6, 79, 87, 12]), value: EventValue([154, 117, 225, 18, 44, 194, 4, 163, 26, 183, 104, 227, 109, 144, 216, 152, 252, 90, 159, 226, 126, 60, 233, 14, 78, 218, 6, 86, 49, 81, 214, 109, 119, 111, 146, 39, 183, 164, 226, 197, 233, 201, 107, 206, 27, 4, 130, 176, 202, 43, 89, 108, 178, 181, 36, 93, 145, 142, 181, 242, 136, 191, 204, 117, 106, 245]) }], receipt: 2527238426 }, TransactionReceipt { tx_hash: [53, 64, 99, 43, 193, 205, 41, 137, 231, 90, 60, 176, 46, 8, 215, 110, 37, 62, 161, 25, 44, 239, 243, 114, 220, 151, 146, 146, 253, 162, 38, 7], body_to_save: Some([176, 234, 35, 77, 233, 213, 116, 196, 180, 90, 206, 39, 6, 112, 136, 75, 142, 69, 121, 126, 70, 159, 84, 106, 118, 82, 101, 185, 243, 82, 71, 35, 241, 104, 201, 45, 201, 210, 184, 13, 95, 231, 128, 165, 46, 249, 24, 234, 136, 66, 129, 219, 49, 25, 172, 188, 160, 74, 30, 142, 87, 6, 9, 198, 66, 181, 218, 80, 48, 202, 106, 226, 213]), events: [Event { key: EventKey([188, 106, 186, 246, 128, 53, 54, 158, 237, 2, 9, 184, 210, 93, 197, 187, 195, 249, 199, 23, 178, 109, 113]), value: EventValue([50, 190, 191, 167, 131, 11, 93, 78, 122, 136, 125, 117, 7, 28, 57, 227, 226, 72, 122, 235, 87, 22, 61, 196, 151, 131, 57, 152, 16, 60, 58, 100, 134, 142, 65, 115, 198, 197, 19, 15, 63, 228, 195, 37, 25, 253, 237, 44, 103, 177, 71, 242, 95, 178, 180, 84, 40, 196, 95, 192, 239, 73, 235, 150, 253, 185, 247, 113, 75, 126, 110, 201, 151, 91, 75]) }, Event { key: EventKey([153, 230, 72, 40, 159, 78, 34, 233, 87, 253, 121, 83, 163, 235, 223, 152, 183, 250, 208, 200, 251, 69]), value: EventValue([32, 172, 73, 101, 146, 71, 34, 187, 209, 71, 122, 35, 123, 254, 112, 156, 226, 40, 26, 130, 218, 46, 15, 169, 241, 72, 32, 186, 143, 219, 12, 137, 240, 20, 119, 138, 149, 101, 185, 227, 115, 232, 130, 84, 248, 167, 152, 70, 48, 145, 228, 104]) }, Event { key: EventKey([174, 231, 107, 183, 53, 233, 72, 88, 33, 203, 252, 71, 181, 140, 241, 184, 202, 21, 13, 199, 104, 189, 199, 129, 207, 62, 235, 140, 20, 142, 131, 9, 33, 160, 255, 173, 199, 225, 159, 199, 66, 162, 200, 190, 212, 120, 214, 187, 32, 67, 62, 179, 93, 19, 3, 252, 13, 193, 169, 176, 66, 2, 198, 211, 213, 65, 92, 87, 102]), value: EventValue([137, 184, 118, 126, 6, 56, 37, 235, 47, 250, 202, 234, 80, 196, 193, 204, 115, 178, 112, 167, 246, 162, 146, 192, 54, 249, 203, 180, 161, 6, 229, 209, 84, 219, 235, 167, 82, 201, 71, 249, 241, 129, 118, 129, 124, 247, 214, 61, 76, 251, 177, 219, 194, 17, 235, 47, 47, 236, 139, 108, 63, 85, 37, 240, 111, 251, 27, 181, 203, 226, 33, 46, 161, 123, 82, 1, 188, 28, 182, 101, 171, 193, 152, 14, 130, 194, 123]) }, Event { key: EventKey([74, 67, 106, 162, 21, 144, 85, 233, 26, 174, 56, 49, 37, 137, 227, 26, 227, 206, 87, 117, 219, 136, 61, 81, 25, 56, 26, 118, 194, 27, 209, 252, 65, 19, 64, 5, 119, 254, 101, 98, 61, 104, 115, 106, 193, 182, 107, 108, 119, 4, 210, 106, 142, 32, 4, 124, 29, 148, 148, 9, 74, 243, 75, 168, 135, 93, 189, 17, 44, 148, 223, 84, 78, 111, 113, 94, 121, 26, 140, 6, 206, 98, 27]), value: EventValue([116, 30, 212, 171, 114, 2, 167, 255, 140, 13, 177, 16, 77, 152, 244, 67, 248, 183, 184, 111, 30, 58, 105]) }], receipt: 1327712728 }, TransactionReceipt { tx_hash: [133, 230, 90, 117, 39, 242, 205, 148, 43, 214, 187, 143, 146, 225, 114, 195, 119, 9, 41, 141, 207, 93, 127, 233, 37, 103, 110, 209, 176, 73, 169, 55], body_to_save: None, events: [Event { key: EventKey([241, 229, 66, 113, 110, 70, 116, 181, 180, 38, 121, 47, 240, 108, 240, 202, 214, 184, 170, 209, 206, 132, 214, 150, 54, 95, 119, 135, 149, 27, 168, 61, 197, 211, 46, 145, 121, 125, 115, 119, 204, 170]), value: EventValue([217]) }, Event { key: EventKey([78, 89, 106, 3, 192, 61, 236, 235, 83, 127, 111, 176, 181, 34, 105, 106, 30, 213, 37, 125, 159, 133, 49, 255, 17, 211, 249, 159, 248, 144, 195, 99, 167, 167, 2, 79, 101, 155, 229, 92, 177, 100, 131, 20, 81, 233, 163, 101, 190, 107, 133, 58, 25, 78, 184, 167, 220, 100, 42]), value: EventValue([193, 107, 72, 207, 86, 92, 150, 89, 220, 113, 124, 175, 160, 175, 71, 242, 66, 91, 105, 39, 94, 61, 157, 176, 45, 47, 137, 15, 118, 229, 167, 240, 236, 231, 41, 172, 242, 132, 182, 58, 123, 43, 128, 231, 65, 186, 11, 194, 244, 239, 233, 131, 135, 219, 129, 126, 185]) }, Event { key: EventKey([195, 96, 252, 92, 25, 69, 121, 222, 68, 62, 252, 187, 222, 41, 198, 62, 121, 142, 37, 59, 243, 229, 219, 129, 81, 103, 201, 235, 183, 45, 51, 101]), value: EventValue([127, 61, 185, 59, 97, 204, 81, 187, 89, 147, 202, 244, 202, 27, 176, 41, 96, 26, 252, 188, 142, 182, 147, 172, 166, 200, 96, 85, 51, 133, 173, 91, 212, 206, 3, 246, 241, 94, 12, 204, 35, 0, 175, 219, 180, 140, 178, 157, 39, 100, 230, 209, 230, 141, 84, 83, 119, 6, 198, 152, 150, 189, 98, 173, 115, 74, 123, 237, 150, 17, 139, 78, 111, 80]) }, Event { key: EventKey([32, 26, 210, 201, 202, 93, 47]), value: EventValue([189, 14, 8, 14, 74, 217, 45, 232, 18, 245, 10, 235, 92, 184, 85, 146, 62, 37, 149, 196, 64, 60, 202, 164, 26, 35, 28, 189, 62, 152, 166, 40, 133, 178, 22, 124, 87, 162, 175, 21, 78, 131, 94, 4, 90, 70, 234, 7, 212, 51, 198, 223, 118, 135, 145, 141, 99, 146, 77, 124, 43, 31, 6, 47, 50, 140, 39, 237, 169, 0, 254, 6, 45, 114, 133, 129]) }, Event { key: EventKey([6, 127, 61, 105, 220, 147, 100, 220, 40, 158, 194, 130, 155, 122, 96, 127, 9, 4, 97, 226]), value: EventValue([52, 52, 126, 139, 249, 72, 235, 166, 154, 123, 29, 246, 50, 178, 86, 209, 4, 207, 122, 103, 143, 77, 240, 60, 114, 133, 155, 255, 10, 244, 8, 203, 152, 183, 235, 134, 239, 163, 71, 38, 208, 151, 85, 69, 72, 234, 228, 122, 107, 120, 238, 181, 125, 99, 242, 147, 44, 186, 244, 75, 43, 123, 216, 52, 219, 87, 248, 71, 220, 155, 231, 133, 179, 98, 164, 51, 167, 232, 156, 54, 85, 191, 224, 31, 112]) }, Event { key: EventKey([217, 112, 195, 215, 36, 42, 59, 96, 70, 78, 189, 181, 238, 191, 99, 190, 200, 126, 251, 158, 172, 162, 139, 197, 187, 28]), value: EventValue([85, 53, 197, 61, 150, 251, 83, 187, 5, 184, 242, 100, 32, 51, 183, 65, 106, 146, 190, 123, 134, 100, 122, 32, 69, 107, 6, 51, 88, 228, 231, 15, 127, 12, 30, 122, 63, 205, 188, 76, 95, 15, 54, 78, 188, 44, 236, 23, 247, 48, 86, 211, 178, 59, 220, 162, 42, 216, 190, 151, 120, 227, 223, 67, 87, 160, 189]) }, Event { key: EventKey([253, 115, 150, 1, 168, 136, 64, 81, 40, 174, 153, 137, 223, 23, 243, 56, 125, 229, 74, 210, 220, 91, 251, 171, 31, 8, 142, 13, 24, 49, 100, 97, 110, 244, 67, 81, 77, 58, 181, 255, 43, 142, 251, 199, 108, 68, 195, 109, 107, 63, 69, 77, 108, 169, 149, 118, 196, 176, 121, 163, 69, 160, 64, 27, 50, 15, 82, 3, 69, 127, 19, 151, 129, 171, 245, 141, 180, 136, 89, 25, 156, 15, 187, 208, 2, 217]), value: EventValue([142, 91, 53, 22, 232, 70, 1, 167, 38, 72, 153, 177, 71, 142, 104, 134, 61, 17, 235, 38, 177, 199, 173, 52, 146, 230, 179, 221, 4, 100, 183, 74, 118, 211, 48, 47, 55, 70, 151, 115, 57, 70, 254, 90, 0, 230, 217, 195, 180, 162, 228, 145, 237, 107, 115, 150, 67, 56, 40, 238, 127, 160, 6, 89, 2, 93, 82, 86, 12, 182]) }], receipt: 1895370917 }, TransactionReceipt { tx_hash: [34, 4, 221, 95, 73, 201, 236, 6, 195, 64, 74, 84, 61, 129, 100, 5, 64, 193, 69, 236, 57, 77, 241, 182, 191, 185, 118, 200, 12, 222, 77, 105], body_to_save: None, events: [Event { key: EventKey([31, 238, 90, 72, 150, 186, 158, 97, 148, 191, 38, 107, 89, 49, 205, 212, 159, 5, 161, 94, 180, 232, 189, 253, 87, 26, 166, 199, 115, 173, 234, 237, 180, 111, 28, 52, 171, 49, 25, 6, 7, 58, 185, 137, 163, 169, 27, 82, 208, 175, 53, 226, 229, 90]), value: EventValue([30, 250, 54, 1, 179, 132, 209, 90, 119, 156, 94, 34, 162, 243, 68, 117, 93, 156, 107, 245, 58, 148, 207, 68, 87, 40, 189, 36, 194, 56, 65, 183, 142, 183, 167, 119, 226, 134, 245, 163, 72, 192, 215, 34, 160, 67, 26, 16, 84, 11, 157, 46, 116, 20, 131, 86, 64, 179, 232, 53, 194, 113, 31, 201, 247, 79, 10, 66, 40, 242, 176, 124, 148, 228, 65, 49, 82, 141, 151, 167, 6, 48, 234, 241, 164, 69, 56, 40, 187, 195, 18, 43, 113]) }, Event { key: EventKey([166, 167, 242, 200, 32, 188, 72, 174, 14, 219, 135, 173, 209, 217, 147, 121, 171, 231, 189, 162, 244, 62, 35, 75, 214, 82, 201, 3, 55, 66, 251, 217, 176, 217, 115, 235, 83, 31, 121, 83, 61, 23, 102, 105, 177, 170, 175, 57, 168, 99, 145, 31, 105, 40, 88, 137, 37, 14, 34, 226, 153, 125, 158, 120, 119, 207, 162, 221, 88, 9, 193, 192, 60, 234, 5, 172, 124, 141, 239, 178, 35, 55, 132, 255, 178, 79, 65, 183, 152, 168, 109, 247, 157, 84, 161]), value: EventValue([69, 163, 189, 199, 126, 113, 91, 186, 154, 44, 191, 247, 24]) }, Event { key: EventKey([4, 217, 101, 186, 209, 75, 177, 30, 112, 172, 5, 209, 96, 178, 144, 24, 243, 34, 214, 4, 86, 75, 181, 173, 114, 174, 85, 83, 188, 84, 106, 200, 234, 29, 208, 219, 161, 74, 243, 2, 31, 78, 166, 50, 164, 184, 137, 37, 1, 90, 229, 21, 169, 244, 39, 70, 15, 28, 205, 27, 53, 11, 131, 243, 249, 174, 97, 226, 163, 145, 49, 183, 25, 193, 39, 219, 157, 41, 199, 235, 40, 183, 59, 118, 132, 120, 252, 155, 187, 169, 188, 125, 229, 90, 196]), value: EventValue([6, 100, 229, 60, 230, 190, 209, 140, 160, 0, 245, 186, 58, 60, 213, 24, 95, 161, 70, 211, 59, 123, 208, 160, 34, 63, 201, 191, 229, 132, 199, 38, 132, 151, 163, 176, 249, 48, 200, 116, 249, 1, 30, 49, 210, 20, 237, 18, 149, 102, 103, 52, 29, 206, 237, 41, 4, 75, 95, 35, 111, 37, 17, 38, 22, 164, 128, 116, 60, 181, 147, 158, 11, 254, 253]) }, Event { key: EventKey([241, 24, 13]), value: EventValue([46, 101, 68, 243, 171, 240, 52, 131, 25, 155, 98, 151, 140, 251, 219, 179, 112, 121, 138, 188, 237, 31, 28, 211, 26, 102, 183, 213, 116, 62, 50, 0, 158, 30, 229, 105, 121, 46, 179]) }, Event { key: EventKey([81, 218, 119]), value: EventValue([206, 8, 96, 186, 40]) }, Event { key: EventKey([173, 73, 253, 92, 64, 117, 69, 198, 118, 128, 249]), value: EventValue([12, 25, 150, 147, 164, 9, 69, 149, 172, 113, 98, 169, 230, 212, 119, 152, 23, 253, 242, 194, 1, 255, 149, 1, 165, 216, 73, 13, 24, 187, 161, 71, 108, 116, 212, 185, 188, 211, 235, 108, 135, 26, 153, 228, 103, 141, 2, 73, 41, 60, 68, 10, 235, 90, 175]) }, Event { key: EventKey([223, 127, 128, 186, 93, 34, 172, 129, 204, 153, 217, 125, 205, 217, 123, 126, 126, 188, 5, 230, 63, 17, 83, 164, 145, 158, 222, 13, 228, 172, 2, 105, 116]), value: EventValue([184, 189, 59, 155, 35, 222, 126, 44, 148, 233, 71, 62, 51, 133, 71, 101, 30, 207, 173, 9, 38, 7, 5, 197, 232, 19, 226, 30, 159, 97, 68, 197, 159, 108, 34, 38, 147, 212, 110, 211, 217, 26, 160, 44, 168, 169, 150, 6, 85, 21]) }], receipt: 1294912462 }], inner: 4070724932 }, BatchReceipt { batch_hash: [205, 231, 26, 108, 176, 93, 149, 212, 237, 47, 219, 14, 71, 9, 47, 128, 186, 199, 82, 254, 89, 60, 152, 179, 150, 87, 16, 173, 244, 150, 196, 236], tx_receipts: [TransactionReceipt { tx_hash: [55, 166, 205, 250, 67, 41, 247, 21, 70, 127, 238, 225, 25, 180, 232, 143, 34, 31, 14, 53, 207, 130, 60, 176, 51, 99, 85, 4, 27, 158, 224, 46], body_to_save: Some([]), events: [Event { key: EventKey([52, 159, 46, 184]), value: EventValue([250, 150, 219, 177, 146, 238, 162, 20, 67, 160, 73, 178, 1, 136, 148, 40, 59, 56, 241, 247, 191, 245, 161, 229, 30, 251, 51, 200, 191, 82, 221, 193, 142, 180, 68, 148, 111]) }, Event { key: EventKey([185, 249, 241, 50, 77, 199, 22, 215, 53, 107, 49, 42, 120, 240, 77, 206, 19, 113, 3, 235, 219, 102, 230, 139, 247, 231, 70, 132, 192, 54, 99, 125, 101, 72, 244, 211, 161, 123, 148, 77, 133, 37, 236, 200, 34, 231, 135, 41, 69, 57, 41, 253, 183, 161, 210, 67, 71, 182, 10, 225, 218, 197, 51, 123, 48, 178, 75, 154, 5, 204, 167, 246, 236, 253, 226, 158, 31, 23, 209, 15, 141, 45, 209, 140, 197, 80, 77, 17, 66, 66, 71, 64, 250, 104, 205]), value: EventValue([253, 252, 164, 68, 63, 78, 155, 235, 177, 250, 253, 97, 103, 152]) }, Event { key: EventKey([243, 202, 237, 82, 88, 50, 107, 80, 242, 10, 8, 153, 212, 230, 240, 176, 183, 155, 221, 168, 243, 165, 43, 190, 130, 223, 24, 115, 82, 243, 58, 254, 155, 243, 133, 28, 172, 91, 132, 100, 67, 212, 255, 70, 254, 214, 207, 90, 131, 40, 153, 209, 229, 118, 153, 76, 181, 210, 231, 168, 80, 183, 12, 146, 144, 145, 15, 249, 44, 196, 127, 119, 51, 145, 94, 51, 206, 108, 138, 182, 80, 224, 201, 170, 198, 134]), value: EventValue([204, 69, 181, 129, 196, 228, 223, 142, 25]) }], receipt: 2440668754 }, TransactionReceipt { tx_hash: [226, 30, 127, 233, 100, 60, 29, 239, 53, 11, 101, 117, 249, 181, 7, 111, 171, 245, 197, 254, 240, 130, 177, 7, 107, 141, 201, 9, 193, 239, 31, 139], body_to_save: Some([168, 160, 130, 104, 104, 86, 196, 82, 170, 211, 148, 156, 127, 133, 70, 197, 136, 27, 5, 247, 79, 187, 87, 72, 49, 81, 27, 70, 157, 160, 5, 114, 149, 58, 35, 174, 22, 55, 23, 88, 126, 19, 197, 172, 245, 50, 216, 139, 93, 75, 159, 234, 58, 195, 128, 202, 95, 228, 191, 159, 154, 37, 238, 228, 19, 224, 5, 105, 25, 185, 6, 42, 247, 245, 250, 107, 29, 135, 19, 24, 128, 244, 128, 234, 144, 19, 26, 114, 191]), events: [Event { key: EventKey([28, 115, 91, 109, 115, 132, 54, 255, 19, 250, 250, 84, 114, 174, 216, 254, 14, 133, 181, 32, 189, 188, 78, 2, 108, 56, 98, 119, 40, 252, 32, 71, 103, 46, 73, 10, 43, 170, 142, 152, 51, 249, 56, 48, 20, 221, 199, 155, 35, 212, 230, 223, 221, 7, 45, 161, 161, 70, 176, 226, 32, 213, 7, 248, 169, 46, 32, 78, 122, 117, 189, 228, 30, 51, 235, 198, 3, 171, 72, 8, 136]), value: EventValue([151, 65, 80, 119, 197, 49, 206, 57, 16, 127, 65, 248, 211, 34, 84, 174, 186, 23, 85, 157, 9, 9, 205, 240, 59, 241, 22, 147, 157, 20, 120, 63, 172, 159, 147, 236, 168, 4, 199, 242, 255, 98, 12, 64, 25, 71, 207, 113, 164, 106, 31, 96, 141, 200, 149, 180]) }, Event { key: EventKey([105, 116, 14, 188, 97, 71, 255, 79, 124, 179, 150, 7, 211, 204, 187, 66, 144, 225, 32, 72, 134, 91, 2, 122, 40, 52, 8, 154, 134, 2, 189, 187]), value: EventValue([174, 107, 189, 173, 37, 85, 201, 35, 214, 35, 89, 6, 250, 151, 78, 64, 136, 226, 236, 193, 196, 73, 193, 32, 43, 25, 108, 188, 208, 180, 116, 41, 205, 31, 255, 133, 156, 159, 214, 128, 169, 230, 223, 239, 50, 54, 74, 94, 219, 24, 96, 202, 176, 221, 222, 16, 206, 83, 221, 56, 134, 67, 188, 106, 128, 134, 252, 75, 20, 7, 165, 69, 205, 51]) }, Event { key: EventKey([168, 33, 149, 239, 97, 45, 122, 27, 8, 80, 185, 191, 53, 134, 50, 157, 132, 254, 132]), value: EventValue([52, 88, 228, 93, 58, 189, 90, 3, 49, 141, 183, 156, 90, 107, 251, 6, 218, 211, 60, 64, 243, 195, 210, 122, 118, 252, 212, 189, 64, 128, 232, 179, 149, 198, 137, 138, 236, 172, 82, 207, 251, 136, 234, 175, 250, 249, 223, 200, 79, 66, 170, 15, 195, 222, 97, 65, 111, 22, 137, 142, 177, 111, 253, 91, 200, 157, 88, 197, 201, 56, 147, 182, 134, 173, 1, 104, 222, 170, 44, 29, 159, 139, 37, 54, 51]) }, Event { key: EventKey([98, 69, 53, 235, 136, 206, 87, 77, 50, 187, 145, 239, 89, 116, 115, 46, 235, 167, 71, 127, 17, 31, 251, 76, 255, 144, 28, 20, 55, 241, 28, 140, 219, 37, 202, 124, 173, 101, 24, 233, 45, 103, 135, 215, 131, 48, 242, 215, 113, 130, 64, 197, 227, 156, 152, 154, 102, 130, 178, 194, 143, 5, 108, 162, 173]), value: EventValue([]) }, Event { key: EventKey([63, 189, 76, 192, 241, 240, 166, 228, 186, 235, 124, 127, 9, 37, 88, 167, 254, 40, 41, 178, 167, 227, 177, 24, 15, 64, 13, 40, 115, 233, 227, 6, 218, 48, 236, 187, 79, 222, 155, 12, 81, 199, 212, 239, 0, 23, 213, 227, 1, 246, 253, 40, 236, 47, 107, 255, 230, 185, 76, 221, 91, 2, 39, 72, 232, 185, 190, 214, 139, 113, 74, 104, 97, 75, 63, 197, 197, 0, 105, 248, 190, 90, 108, 95, 112, 126, 247, 149, 41, 113]), value: EventValue([117, 238, 34, 255, 58, 132, 145, 127, 227, 223, 130, 52, 77, 217, 193, 192, 149, 169, 88, 2, 109, 174, 47, 167, 88, 176, 218, 46, 13, 144, 117, 18, 74, 91, 208, 76, 228, 195, 27, 185, 9, 190, 108, 214, 65, 30, 206, 77, 216, 233, 122, 177, 140]) }], receipt: 3274133657 }, TransactionReceipt { tx_hash: [147, 90, 2, 120, 8, 184, 177, 5, 178, 149, 214, 219, 110, 182, 155, 225, 62, 91, 97, 211, 110, 82, 147, 173, 16, 186, 77, 124, 75, 40, 203, 35], body_to_save: Some([72, 234, 253, 17, 155, 41, 202, 27, 92, 19, 157, 179, 155, 0, 55, 55, 201, 223, 41, 43, 86, 145, 20, 36, 81, 188, 81, 107, 146, 71, 143, 198, 158, 126, 183, 144, 240, 21, 28, 96, 80, 51, 26, 241, 112, 243, 165, 58, 112, 236, 92, 132, 222, 24, 101, 145]), events: [], receipt: 1426416286 }, TransactionReceipt { tx_hash: [243, 239, 27, 200, 216, 92, 247, 211, 155, 87, 158, 1, 113, 41, 95, 117, 176, 134, 66, 43, 114, 111, 228, 42, 186, 247, 44, 232, 206, 114, 156, 152], body_to_save: None, events: [Event { key: EventKey([117, 80, 222, 95, 139, 224, 11, 227, 252, 158, 245, 176, 166, 92, 129, 176, 138, 183, 169, 118, 80, 113, 122, 244, 69, 30, 204, 85, 243, 222, 200, 46, 222, 104, 200, 72, 227, 141, 107]), value: EventValue([220, 29, 106, 99, 60, 229, 107, 87, 129, 86, 63, 58, 203, 239, 234, 217, 10, 68, 233, 204, 99, 105, 229, 154, 75, 1, 13, 59, 61, 185, 231, 202, 248, 48, 226, 222, 169, 47, 40, 128, 137, 49, 174, 178, 244, 57, 123, 201, 224, 201, 33, 191, 12, 222, 152, 98, 29, 99, 222, 225, 227, 174, 88, 49, 112, 144, 127, 66, 92, 11, 85, 173, 182, 40, 80, 7, 26, 34, 104, 36, 32, 172, 63, 95, 100, 204, 190, 152, 222, 155, 66, 48, 6, 149, 71, 135, 254, 89, 189]) }, Event { key: EventKey([137, 136, 7, 143, 117, 122, 200, 204, 111, 65, 78, 109, 117, 77, 6, 77, 55, 255, 228, 40, 244, 137, 185, 204, 58, 56, 240, 96, 202, 91, 128, 218, 46, 152, 69, 213, 126, 87, 29, 51, 15, 105, 110, 191, 223, 232, 144, 19, 130, 66, 30, 123, 246, 147, 241, 230, 139, 20, 133, 112, 204, 254, 247, 51, 100, 86, 126, 113, 142, 243]), value: EventValue([227, 130, 14, 8, 239, 16, 7, 198, 136, 201, 69, 26, 152, 229, 120, 178, 130, 3, 158, 245, 209, 241, 37, 85, 11, 84, 61, 227, 36]) }, Event { key: EventKey([235, 215, 178, 59, 220, 79, 206, 208, 224, 16, 90, 14, 99, 186, 10, 47, 5, 249, 164, 73, 90, 9, 213, 29, 233, 173, 186, 79, 70, 126, 239]), value: EventValue([9, 221, 144, 38, 92, 110, 130, 104, 105, 124, 154, 55, 184, 237, 129, 202, 133, 117, 94, 209, 186, 202, 188, 100, 150, 34, 151, 78, 139, 62, 165, 200, 17, 234, 117, 244, 168, 122, 239, 35, 8, 194, 12, 208, 250, 203, 146, 19]) }, Event { key: EventKey([131, 65, 228, 153, 20, 103, 15, 70, 117, 92, 61, 140, 46, 96, 156, 234, 64, 92, 149, 155, 210, 73, 147, 78, 248, 120, 250, 134, 190, 203, 254, 104, 115, 204, 34, 91, 125, 133, 65, 119, 30, 152, 5, 84, 97, 251, 199, 76, 166, 155, 116, 101, 70, 107, 64, 166, 98, 209, 212, 159, 71, 76, 68, 120, 169, 15, 2, 74, 181, 75, 27, 255, 233, 246, 113, 103, 129, 245]), value: EventValue([42, 17, 233, 165, 2, 2, 87, 124, 136, 180, 13, 255, 22, 134, 144, 215, 225, 155, 8, 76, 219, 142, 252, 210, 53, 239, 220, 235, 5, 238, 163, 162, 176, 23, 187, 34, 77, 56, 248, 128, 195, 230, 208, 241, 15, 36, 40, 39, 3, 135, 139, 202, 59, 75, 121, 237, 23, 38]) }], receipt: 1605770728 }], inner: 3342595516 }, BatchReceipt { batch_hash: [102, 25, 191, 70, 84, 92, 8, 12, 138, 33, 64, 104, 27, 12, 99, 44, 159, 178, 13, 246, 243, 7, 5, 148, 26, 191, 22, 79, 27, 40, 0, 77], tx_receipts: [TransactionReceipt { tx_hash: [213, 50, 133, 8, 40, 36, 215, 250, 151, 141, 198, 66, 103, 65, 161, 220, 63, 254, 89, 100, 228, 6, 5, 22, 149, 36, 58, 168, 35, 231, 152, 206], body_to_save: None, events: [Event { key: EventKey([107, 137, 27, 252, 91, 151, 16, 136, 159, 78, 92, 105, 102, 178, 61, 236, 226, 83, 226, 239, 26, 230, 13, 54, 67, 38, 205, 40, 19, 170, 173, 127, 138, 222, 228, 143, 14, 247, 239, 35, 18, 98, 11, 228, 51, 88, 68, 150, 80, 107, 216, 104, 230, 136]), value: EventValue([1, 20, 73, 99, 167, 20, 100, 117, 76, 33, 92, 238, 90, 188, 59, 125, 135, 21, 88, 165, 149, 202, 54, 207, 7, 68, 118, 133, 154, 114, 227, 120, 18, 4, 49, 119]) }, Event { key: EventKey([42, 101, 231, 14, 224, 249, 217, 222, 29, 96, 211, 218, 116, 160, 86, 51, 167, 65, 27, 4, 147, 18, 6, 126, 165, 5, 111, 225, 62, 162, 233, 249, 147, 246, 43, 88, 234, 109, 43, 168]), value: EventValue([10, 200, 81, 197, 176, 243, 50]) }, Event { key: EventKey([166, 42, 83, 250, 144, 24, 47, 52, 108, 64, 11, 13, 148, 209, 109, 60, 192, 64, 221, 223, 73, 157, 144, 22, 197, 125, 145, 74, 58, 235, 116, 121, 71, 78, 70, 226, 163, 154, 131, 144, 144, 223, 27, 201, 216, 88, 247, 132, 145, 143, 190, 38, 116, 255, 186, 97, 155, 63, 114, 66, 8, 141, 29, 169, 91, 85, 58, 185, 162, 153, 152, 91, 237, 237, 71, 243, 217, 143, 230, 218, 199, 154, 68, 201, 84, 184, 167, 169, 178, 161, 93, 46, 50, 85, 84, 176, 206, 90]), value: EventValue([87, 75, 41, 43, 90, 51, 198, 212, 34, 166, 127, 215, 228, 112, 55, 183, 18, 152, 104, 208, 51, 48, 230, 34, 226, 51, 200, 39, 80]) }, Event { key: EventKey([215, 178, 131, 20, 104, 16, 211, 38, 144, 244, 116, 117, 185, 35, 111, 228, 102, 231, 9, 244, 57, 108, 104, 209, 92, 244, 246, 190, 71, 186, 176, 239, 243, 202, 20, 70, 54, 22, 157, 152, 168, 246, 144, 163, 129, 37, 193, 104, 164, 193, 140, 128, 97, 134, 144]), value: EventValue([217, 34, 240, 40, 149, 98, 59, 36, 123, 188, 89, 202, 126, 217, 207, 186, 74, 98, 131, 31, 170, 93, 192, 97, 91, 62, 98, 2, 23, 239, 231, 74, 94, 68, 116, 20, 249, 217, 86, 85, 102, 50, 127, 47, 179, 227, 64, 15, 145, 99, 163, 187, 138]) }, Event { key: EventKey([98, 182, 182, 16, 137, 167, 100, 57, 77, 181, 222, 28, 214, 44, 232, 54, 109, 15, 134, 58, 77, 180, 255, 165, 148, 72, 148, 48, 230, 247, 248, 175, 252, 146, 233, 249, 72, 201, 131, 196, 253, 146, 183, 87, 198, 57, 197, 234, 105, 203, 93, 23, 177, 167, 194, 235, 18, 36, 152, 130, 36, 48, 230, 232, 159, 107, 237, 99, 136, 13, 250, 55, 146, 163, 51, 165, 94, 135, 36, 173, 14, 149, 62, 248, 141, 41, 235, 9, 59, 207, 15, 100, 41, 96]), value: EventValue([99, 55, 90, 231, 139, 143, 24, 53, 167, 88, 126, 150, 218, 205, 51, 120, 193, 233, 175, 52, 14, 63, 196, 246, 219, 160, 157, 43, 83, 2, 43, 96, 118, 161, 66, 101, 99]) }, Event { key: EventKey([21, 29, 95, 49, 182, 215, 245, 187, 233, 151, 59, 204, 212, 203, 23, 73, 36, 97, 124, 192, 78, 16, 249, 234, 196, 131, 215, 140, 6, 142, 248, 241, 174, 166, 205, 157, 22, 81, 191, 210, 69, 44, 37, 20, 102, 112, 202, 123, 75, 155, 65, 175, 149, 141, 98, 237, 101, 255, 244, 225, 118, 42, 103, 48, 89, 114, 116, 116, 195, 91, 200]), value: EventValue([78, 184, 102, 7, 141, 177, 186, 140, 100, 215, 112, 129, 15, 248, 103, 177, 23, 106, 93, 41, 181, 239, 130, 56, 91, 194, 201, 252, 49, 81, 101, 93, 249, 159, 41, 126, 151, 41, 183, 235, 184, 232, 189, 91, 205, 172, 191, 126, 29, 140, 200, 229, 170, 151, 169, 18, 60, 54, 221, 237, 121, 6]) }, Event { key: EventKey([232, 254, 84, 147, 26, 10, 204, 188, 202, 45, 88, 85, 199, 106, 67, 214, 207, 141, 31, 204, 136, 203, 116, 134, 128, 18, 115, 144, 233, 61, 179, 76, 215, 212, 8]), value: EventValue([213, 115, 47, 134, 235, 149, 82, 16, 198, 75, 117, 129, 1, 33, 249, 115, 203, 164, 191, 36, 23, 135, 8, 147, 235, 209, 88, 202, 50, 109, 176, 238, 223, 126, 147, 133, 196, 232, 194, 36, 102, 167, 27, 50, 26, 61, 104, 23, 217, 227, 152, 108, 59, 114, 192, 120, 164, 225, 2, 182, 115, 57, 64, 66, 220, 234, 44, 234, 95, 115, 87, 6, 127, 4, 102, 72, 108, 126, 210, 180, 148, 86, 175, 127, 3, 15]) }, Event { key: EventKey([97, 135, 41, 17, 52, 151, 42, 247, 91, 224, 52, 61, 80, 210, 8, 163, 81, 161, 86, 7, 232, 0, 33, 5, 96, 87, 143, 37, 253, 179, 121, 14, 116, 19, 200, 151, 163, 42, 216, 41, 96]), value: EventValue([63, 234, 242, 215, 79, 59, 133, 149, 52, 64, 203, 54, 175, 13, 144, 144, 118, 134, 172, 1, 179, 152, 155, 219, 233, 66, 137, 224, 242, 66, 7, 107, 24, 115, 9, 163, 87, 113, 162, 88, 40, 168, 133]) }], receipt: 1944215617 }, TransactionReceipt { tx_hash: [47, 119, 58, 254, 67, 64, 234, 90, 33, 192, 215, 47, 7, 102, 179, 222, 97, 72, 0, 199, 240, 126, 34, 97, 43, 88, 28, 218, 104, 73, 174, 169], body_to_save: Some([7, 131, 163, 173, 168, 8, 174, 101, 204, 53, 77, 231, 143, 226, 156, 119, 231, 88, 115, 241, 151, 239, 37, 166, 108, 153, 217, 138, 66, 217, 140, 134, 38, 224, 142, 77, 11, 33, 141, 229, 97, 37, 49, 100, 56, 76, 97, 246, 193, 125, 93, 57, 160, 22, 152, 165, 81, 176, 205, 246, 8, 185, 253, 51, 39, 38, 159, 201, 249, 247, 167, 155]), events: [Event { key: EventKey([135, 207, 179, 250, 147, 66, 72, 105, 0, 42, 209, 141, 148, 221, 40, 48, 54, 201, 158, 227, 45, 177, 254, 23, 243, 72, 7, 143, 105, 225, 32, 155, 112, 44, 155, 155, 172, 194, 82, 93, 103, 183, 45, 121, 82, 247, 56, 73, 0, 200, 208, 124, 20, 163, 250, 42]), value: EventValue([103, 101, 134, 182]) }, Event { key: EventKey([88, 172, 155, 171, 105, 113, 198, 196, 176, 224, 118, 33, 125, 4, 246, 146, 192]), value: EventValue([188, 78, 120, 3, 134, 164, 63, 46, 34, 85, 51, 64, 97, 218, 45, 185, 141, 93, 250, 112, 59, 52, 21, 208, 75, 99, 50, 34, 24, 9, 228, 202, 247, 41, 215, 199, 190]) }, Event { key: EventKey([19, 173, 3, 49, 163, 159, 189, 31, 115, 176, 34, 45, 227, 207, 184, 63, 37, 163]), value: EventValue([146, 80, 238, 198, 97, 9, 190, 10, 87, 204, 210, 175, 205, 133, 221, 103, 195, 127, 197, 155, 36, 45, 118, 69, 160, 144, 160, 3, 44, 214, 85, 70, 120, 172, 171, 216, 26, 119, 55, 114]) }, Event { key: EventKey([50, 160, 80, 186, 214, 237, 47, 14, 54, 45, 16, 130, 221, 7, 71, 115, 35, 223, 152, 168, 32, 175, 166, 188, 201, 17, 217, 143, 144, 201, 198, 159, 54, 245, 158, 107, 206, 219, 107, 219, 209, 6, 168, 56, 126, 227, 127, 164, 83, 34, 24]), value: EventValue([45, 2, 0, 138, 86, 2, 214, 73, 232, 157, 46, 122, 238, 136, 154, 97, 254, 44, 91, 249, 84, 87, 222, 64, 252, 183, 38]) }, Event { key: EventKey([89, 115, 183, 120, 75, 206, 128, 90, 125, 103, 87, 191, 155, 120, 130, 182, 107, 250, 42, 21, 163, 61, 131, 191, 127, 164, 102, 199, 48, 68, 220, 139, 167, 177, 166, 25, 21, 108, 23]), value: EventValue([177, 25, 226, 56, 106, 109, 131, 215, 198, 108, 31, 161, 210, 120, 77, 20, 217, 51, 222, 124, 29, 28, 75, 90, 125, 87, 95, 100, 53, 100, 246, 47, 85, 161, 237, 124, 185, 3, 197, 231, 251, 65, 186, 104, 180, 182, 3, 239, 210, 201, 28, 114, 24]) }, Event { key: EventKey([25, 179, 33, 190, 50, 245, 85, 93, 61, 203, 18, 214, 58, 115, 96, 230, 253, 243, 149, 130, 108, 102, 22, 153, 143, 157, 254, 209, 100, 240, 75, 211, 7, 22, 9]), value: EventValue([19, 77, 211, 196, 97, 18, 15, 247, 197, 8, 34, 196, 149, 182, 233, 195, 142, 176, 191, 40, 90, 34, 31, 94, 116, 227, 241, 254, 41, 252, 103, 75, 83, 203, 4, 190, 253, 151, 91, 117, 163, 54, 81, 40, 79, 51, 203, 154, 120, 152, 246, 155, 0, 15, 141, 194, 68, 165, 19, 50, 94, 153, 192, 173, 247, 138, 168, 66, 73, 44, 133, 254, 239, 51, 10, 37, 185, 135, 240, 92, 27, 170, 163, 39, 36, 9, 121, 68, 246, 230, 198, 50, 80, 78, 185, 171, 204, 198, 113]) }], receipt: 2450202864 }, TransactionReceipt { tx_hash: [15, 35, 189, 12, 47, 237, 38, 108, 106, 221, 170, 64, 214, 212, 183, 108, 154, 210, 115, 176, 103, 99, 108, 216, 73, 221, 201, 9, 223, 17, 115, 221], body_to_save: None, events: [Event { key: EventKey([102, 121, 77, 36, 154, 27, 55, 237, 111, 150, 155, 184, 7, 228, 199, 84, 51, 156, 5, 52, 60, 100, 87, 24, 181, 89, 207, 227, 160, 172, 17, 135, 249, 80, 23, 20, 203, 54, 52, 76, 93, 255, 85, 176, 102, 43, 176, 249, 176, 224, 207, 153, 81, 75, 115, 186, 82, 3, 235, 240, 255, 172, 234, 96, 97, 157, 128, 26, 57, 23, 7, 16, 104, 38, 109, 99, 54, 218, 105, 216, 122, 66, 63, 3, 191, 39, 178, 203, 101, 83, 207, 178, 48, 207, 195, 13]), value: EventValue([145, 49, 238, 111, 32, 99, 227, 165, 149, 143, 199, 39, 13, 15, 13, 91, 38, 126, 15, 238, 227, 78, 128, 9, 164, 155, 5, 146, 249, 180, 26, 18, 94, 241, 252, 16, 242, 162, 161, 192, 176, 21, 80, 158, 189, 2, 1, 176, 236, 231, 187, 151, 146, 67, 222, 166, 219, 20, 61, 35, 149, 222, 178, 164, 212, 15, 68, 250, 89, 7, 131, 53, 54, 214, 229, 121, 241, 20, 175]) }, Event { key: EventKey([54, 171, 210, 100, 250, 90, 142, 91, 129, 110, 177, 244, 121, 43, 26, 50, 109, 128, 50, 121, 3, 130, 117, 247, 219, 132, 152, 27, 212, 225, 227, 40, 80, 153, 18, 58, 41, 141, 31, 57, 234, 6, 27, 240, 50, 143, 33, 79, 57, 64, 162, 103, 135, 208, 20, 175, 68, 84, 60, 60, 194]), value: EventValue([31, 157, 173, 194, 117, 66, 227, 103, 122, 80, 185, 155, 33, 225, 45, 216, 27, 105, 70, 197, 241, 220, 146, 225, 51, 208, 107, 110, 177, 37, 106, 243, 121, 10, 246, 71, 222, 56, 223, 32, 33, 149, 129, 6, 177, 160, 162, 27, 106, 41, 68, 237, 204, 249, 74, 224, 59, 129, 148, 70, 26, 52, 81, 85, 254, 211, 228, 20, 18, 128, 202, 228, 28, 19, 162, 130, 189, 28, 29, 9]) }], receipt: 2371743518 }, TransactionReceipt { tx_hash: [115, 146, 178, 60, 201, 156, 210, 54, 182, 56, 0, 219, 86, 234, 100, 121, 106, 43, 217, 5, 227, 239, 172, 11, 7, 160, 55, 67, 192, 185, 249, 6], body_to_save: Some([28, 123, 131, 100, 62, 105, 42, 62, 228]), events: [Event { key: EventKey([123, 80, 147, 114, 202, 224, 23, 140, 0, 29, 74, 11, 136, 115, 9, 76, 47, 140, 21, 202, 97, 240, 92, 48, 204, 200, 207, 61, 251, 199, 108, 195, 133, 223, 216, 143, 169]), value: EventValue([15, 161, 157, 23, 113, 42, 176, 75, 45, 252, 113, 169, 119, 84, 22, 14, 133, 76, 36, 119, 138, 22, 73, 131, 213, 92, 187, 7, 81, 200, 133, 24, 24, 115, 176, 136, 61, 129, 38, 41, 214, 85, 239, 88, 192, 229, 160, 57, 240, 93, 11, 52, 204, 41, 7, 163, 14, 34]) }, Event { key: EventKey([146, 35, 146, 129, 46]), value: EventValue([238, 144, 112, 3, 46, 122, 112, 162, 123, 205, 139, 110, 21, 51, 242, 135, 141, 134, 218, 27, 39, 184, 19, 221, 72, 79, 185, 62, 36]) }, Event { key: EventKey([128, 37, 99, 110, 152, 63, 209, 71, 48, 4, 73, 201, 60, 235, 21, 60, 79, 15, 87, 224, 152, 111, 170, 221, 217, 234, 151, 124, 107, 222, 105, 179, 168, 219, 65, 157, 234, 115, 2, 60, 31, 62, 77, 63, 87, 155, 227, 236, 49, 219, 10, 129, 8, 167, 8, 12, 196, 224, 2, 18, 196, 123, 153, 178, 211, 198, 172, 132, 210, 26, 67, 148, 218, 112, 117, 103, 139, 226, 105, 151, 68, 207, 248, 90, 89, 153]), value: EventValue([154, 90, 237, 59, 130, 54, 86, 106, 186, 161, 178, 73, 34, 200, 105, 17, 234, 94, 60, 136, 255, 34, 157, 251, 98, 145, 135, 159, 67, 38, 224, 204, 157, 225, 5, 181, 181, 56, 114, 191, 96, 249, 38, 106, 3, 215, 217, 237, 142, 63, 186, 238, 20, 94, 205, 253, 215, 121, 226, 173, 205, 112, 145, 224]) }, Event { key: EventKey([96, 48, 29, 125, 101, 88, 8, 121, 174, 22, 29, 6, 251, 234, 221, 180, 155, 24, 222, 125, 155, 149, 100, 105, 85, 121, 58, 136, 23, 29, 58, 65, 151, 163, 126, 242, 209, 119, 16, 3, 31, 94, 115, 46, 9, 53, 74, 145, 7, 142, 228, 44, 88, 240, 159, 126, 115, 199, 180, 82, 82, 189, 203, 82, 98, 222, 253, 250, 223, 23, 154, 95, 93, 40, 161, 120, 99]), value: EventValue([64, 137, 109, 39, 91, 7, 44, 220, 114, 148, 204, 181, 24, 158, 129, 240, 31, 93, 93, 220, 252, 217, 139, 153, 164, 93, 142, 70, 38, 40, 198, 253, 190, 156, 76, 6, 176, 57, 137, 33, 13, 93, 251, 191, 218, 71, 173, 253, 201, 12, 237, 151, 72, 48, 173, 187, 96, 166, 170, 67, 191, 163, 13, 178, 42, 152, 128, 171, 192, 237, 201, 106, 174, 214, 82, 235, 231, 125, 184, 253, 238, 58, 43, 51, 224, 180, 27, 227, 87, 26, 41, 79, 118, 253]) }, Event { key: EventKey([99, 242, 116, 144, 157, 122, 56, 1, 38, 147, 231, 143, 229, 207, 211, 34, 223, 183, 102, 222, 240, 16, 177, 124, 130, 124, 107, 173, 141, 114, 50, 47, 15, 201, 170, 24, 96, 55, 40, 97, 182, 82, 69, 135, 11, 97, 56, 147, 197, 121, 125, 153, 39, 44, 52, 137, 18, 193, 81, 104, 232, 231, 23, 240, 91, 158, 39, 103, 18, 122, 197, 150, 193, 254, 70]), value: EventValue([11, 186, 15, 93, 36, 118, 105, 216, 70, 145, 128, 141, 159, 234, 73, 36, 27, 147, 231, 177, 23, 16, 100, 245, 168, 146, 47, 41, 201, 111, 62, 122, 89, 61, 146, 131, 254, 52, 44, 149, 154, 50, 67, 239, 75, 244, 116, 4, 61, 149, 235, 115, 215, 197, 101, 29, 114, 188, 152, 165, 122, 74, 30, 53, 229, 79, 200, 8, 15, 214, 122, 137, 113, 114, 254, 42, 141, 229, 102, 102, 75, 33, 132, 235, 75, 219, 219, 7, 241, 52, 9, 5, 93]) }, Event { key: EventKey([224, 27, 184, 121, 250, 81, 246, 24, 19, 124, 115, 132, 43, 14, 169, 237, 6, 181, 147, 48, 144, 1, 70, 104, 190, 192, 80, 160, 205, 205, 69, 98, 23, 233, 89, 62, 59, 82, 158, 235, 159, 212, 238, 55, 12, 8, 211, 185, 135, 21, 193, 99, 162, 88, 185, 154, 141, 145, 247, 228, 129, 112, 192, 1, 153, 160]), value: EventValue([62, 168, 180, 147, 240, 142, 112, 45, 102, 56, 240, 5, 9, 136, 47, 77, 84, 15]) }, Event { key: EventKey([80, 134, 249, 165, 103, 43, 61, 81, 42, 26, 224, 16, 102, 74, 4, 109, 107, 22, 189, 112, 33, 143, 7, 45, 58, 63, 205, 67, 93, 49, 181, 76, 248, 66, 229, 140, 246, 44, 184, 153, 34, 231, 158, 102, 92, 170, 143, 156, 103, 201, 250, 152, 105, 143, 253]), value: EventValue([69, 205, 254, 10, 50, 101, 126, 191, 190, 135, 16, 37, 52, 206, 12, 104, 10, 118, 94, 240, 179, 147, 183, 128, 80, 95, 253, 180, 176, 190, 117, 28, 189, 187, 218, 87, 72, 76, 246, 101, 152, 246, 202, 111, 197, 181, 80, 80, 190, 9, 43, 95, 251, 97, 149, 78, 10, 225, 1, 8, 81, 124, 211, 43, 117, 22, 227, 121, 154, 66, 114, 254, 229, 3, 201, 185, 71, 173, 54, 43, 211, 14, 42, 162, 207, 39, 251, 128, 96, 234, 76, 187, 10, 199, 35, 169, 10]) }, Event { key: EventKey([143, 203, 234, 67, 213, 55, 200, 143, 22, 74, 223, 119, 208, 11, 232, 1, 209, 224, 7, 151, 132, 245, 198, 8, 146, 45, 251, 241, 126, 230, 132, 195, 233, 248, 229, 104, 25, 91, 27, 58, 34, 111, 172, 194, 42, 239, 44, 18, 53, 12, 117, 72, 104, 168, 70, 208, 237, 203, 32]), value: EventValue([]) }, Event { key: EventKey([170, 130, 25, 177, 211, 0, 109, 150, 7, 155, 186, 141, 193, 18, 151, 205, 214, 13, 79, 249, 68, 140, 36, 84, 174, 86, 149, 27, 234, 14, 154, 199, 15, 73, 197, 157, 121, 57, 176, 9, 101, 79, 82, 135, 67, 111]), value: EventValue([49, 208, 218, 184, 28, 240, 160, 66, 122, 192, 195, 240, 13, 211, 74, 217, 187, 167, 45, 26, 135, 114, 123, 198, 201, 112, 3, 8, 91, 142, 171, 176, 96, 0, 31, 75, 18, 202, 215, 132, 179, 193, 58, 248, 127, 140, 16, 229, 209, 42, 233, 139, 216, 189, 62, 33, 184, 217, 242, 198, 228, 143, 84, 104]) }], receipt: 3465622959 }, TransactionReceipt { tx_hash: [132, 242, 239, 171, 255, 89, 231, 20, 124, 1, 93, 248, 168, 252, 210, 223, 217, 104, 246, 247, 10, 159, 66, 224, 20, 33, 250, 23, 210, 70, 41, 221], body_to_save: Some([239, 123, 111, 21, 0, 212, 36, 51, 138, 74, 252, 21, 111, 33, 116, 220, 205, 70, 190, 231, 198, 66, 59, 8, 90, 71, 173, 47, 187, 122, 37, 107, 220, 72, 33, 101, 57, 187, 95, 169, 49, 182, 78, 194, 49, 24]), events: [Event { key: EventKey([140, 82, 66, 59, 119, 125, 148, 162, 112, 27, 211, 190, 124, 156, 132, 61, 78, 162, 62, 58, 80]), value: EventValue([140, 9, 152, 198, 13, 156, 103, 177, 89, 231, 228, 17, 70, 23, 31, 199, 151, 246, 98, 18, 180, 94, 9, 28, 35, 47, 32, 136, 147, 212, 46, 48, 237, 82, 55, 25, 28, 118, 18, 109, 24, 238, 185, 47, 181, 49, 69, 58, 201, 255, 109, 251, 81, 169, 206, 2, 214, 196, 65, 16, 251, 210, 0, 178, 234, 55, 210, 96, 199, 69, 206, 65, 131, 176, 73, 84, 237, 22, 180, 14, 43, 241, 233, 19, 85, 135]) }, Event { key: EventKey([234, 82, 156, 100, 171, 14, 137, 141, 190, 192, 234, 255, 237, 150, 130, 252, 201, 35, 54, 73, 16, 137, 30, 47, 136, 97, 192, 61, 233, 247, 85, 135, 186, 197, 247, 143, 126, 190, 121, 88, 46, 141, 121, 116, 98, 14, 61, 159, 229, 21, 165, 139, 31, 107, 242, 51, 235, 129, 145, 128, 25, 128, 171, 20, 219, 247, 142, 172, 176, 207, 10, 70, 7, 160, 218, 218, 12, 31, 206, 222, 176, 119, 94, 184, 212, 61, 87, 67, 161, 251, 134, 99, 103, 126, 87, 134, 146, 83]), value: EventValue([2, 245, 150, 204, 71, 227, 91]) }, Event { key: EventKey([39, 211, 214, 48, 235, 95, 161, 104, 62, 239, 16, 124, 249, 193, 72, 51, 14, 214, 155, 195, 123, 209, 11, 49, 247, 76, 197, 90, 13, 24, 93, 90, 32, 194, 221, 252, 82, 179, 221, 0, 72, 209]), value: EventValue([141, 149, 234, 167, 174, 5, 82, 51, 42, 163, 177, 79, 73, 159, 220, 59, 194, 59, 154, 83, 200, 38, 152, 8, 18, 137, 115, 22, 86, 39, 147, 140, 27, 155, 160, 213, 238, 250, 218, 162, 133, 55, 125, 20, 176, 71, 151, 40, 43]) }, Event { key: EventKey([144, 60, 168, 77, 54, 10, 188, 161, 199, 59, 4, 161, 78]), value: EventValue([68, 144, 226, 5, 68, 127, 55, 111, 145, 140, 213, 23, 222, 80, 198, 234, 173, 219, 233, 183, 77, 158, 30, 195, 23, 92, 189, 235, 143, 80, 39, 37, 176, 101, 39, 75, 248, 115, 119, 128, 102, 85, 210, 138, 121, 121, 245, 77, 111, 193, 60, 158, 230, 117, 25, 207, 166, 51, 212, 123, 203, 95, 199, 227, 19, 35]) }, Event { key: EventKey([162, 158, 129, 23, 90, 100, 211, 254, 131, 127, 157, 99, 42, 67, 5, 138, 14, 150, 73, 112, 100, 85, 94, 236, 237, 172, 84, 186, 176, 10, 210, 222, 171, 238, 176, 18, 184, 13, 129, 121, 69, 186, 61, 71, 12, 121, 83, 146, 254, 38, 213, 119, 134, 176, 49, 18, 225, 50, 38, 67, 37, 120, 118, 206, 0, 98, 167, 134, 144, 134, 67, 152, 130, 105, 174, 122, 94, 224, 7, 191, 96, 244, 190, 73]), value: EventValue([171, 43, 230, 26, 243, 120, 86, 62, 109, 18, 173, 141, 71, 32, 101, 106, 183, 147, 57, 243, 132, 162, 23, 133, 190, 227, 120, 187, 138, 210, 135, 98, 72, 169, 208, 143, 226, 41, 211, 41, 112, 36, 62, 234, 102, 120, 4, 230, 218, 140, 85, 154, 174, 158, 50, 243, 19, 28, 67, 86, 169, 112, 231, 70, 52, 9, 82, 98, 204, 140, 135, 170, 64, 37, 213, 160, 229, 209, 239, 82, 16, 207, 121, 170, 98, 2, 47, 235, 173, 178, 72]) }, Event { key: EventKey([5, 206, 90, 3, 77, 175, 236, 220, 119, 119, 171, 161, 152, 101, 168, 29, 143, 221, 96, 21, 212, 62, 214, 203, 165, 198, 105, 81, 93, 193, 149, 216, 195, 24, 213, 225, 31, 105, 157, 218, 226, 104, 33, 141, 20, 9, 71, 90, 242, 86, 199, 57, 147, 177, 218, 163, 27, 92, 233, 246, 142, 134, 240, 27, 108, 2, 18, 38, 241, 50, 39, 244, 96, 206, 52, 234, 24, 161, 105, 62, 14, 151, 195, 205, 104, 184, 114, 177, 136, 98, 44, 37, 85]), value: EventValue([60, 216, 78, 22, 209, 203, 120, 33, 248, 53, 236, 184, 101, 76, 185, 220, 52, 11, 111, 247, 22, 195, 17, 159, 240, 107, 37, 174, 120, 29, 119, 199, 158, 46, 170, 243, 126, 108, 134, 203, 247, 93, 181, 22, 199, 236, 160, 105, 103, 171, 232, 119, 98, 222, 13, 121]) }], receipt: 3185790181 }, TransactionReceipt { tx_hash: [0, 205, 6, 193, 144, 161, 154, 76, 57, 7, 145, 106, 96, 215, 246, 172, 45, 3, 141, 253, 220, 190, 6, 64, 73, 202, 72, 103, 95, 199, 27, 188], body_to_save: Some([213, 83, 69, 224, 29, 73, 224, 225, 26, 241, 87, 170, 40, 176, 52, 16, 172, 11, 51, 242, 37, 106, 117, 184, 218, 163, 130, 92, 107, 144, 122, 183, 47, 110, 86, 7, 211, 26, 187, 134, 118, 106, 4, 5, 154, 214, 183, 168, 206, 230, 246, 106, 38, 50, 159, 106, 19, 39, 86, 184, 163, 255, 102, 34, 133, 12, 133, 231, 148, 32]), events: [Event { key: EventKey([15, 11, 86, 35, 202, 70, 63, 163, 196, 17, 163, 217, 88, 235, 29, 174, 200, 39, 238, 151, 253, 227, 106, 168, 198, 81, 131, 17, 99, 11, 38, 219, 238, 190, 98, 16, 221, 227, 194, 14, 182, 234, 209, 185, 125, 29, 38, 29, 94, 196, 27, 57, 92, 136, 63, 234]), value: EventValue([167, 242, 30, 134, 229, 182, 221, 221, 7, 113, 31, 115, 151, 100, 45, 226, 127, 68, 72, 72, 84, 83, 100, 145, 222, 230, 42, 155, 27, 186, 37, 164, 60, 215, 253, 63, 90, 173, 29, 11, 41, 224, 130, 119, 193, 16, 105]) }, Event { key: EventKey([79, 69, 139, 97, 217, 69, 177, 96, 165, 162, 187, 9, 58, 251]), value: EventValue([188, 57, 62, 109, 240, 55, 213, 226, 93, 33, 24, 112, 25, 110, 28, 36, 139, 211, 92, 9, 10, 254, 100, 161, 31, 101, 141, 221, 169, 155, 193, 36, 62, 186, 154, 13, 44, 177, 21, 200, 43, 144, 230, 143, 132, 195, 168, 245, 5, 234, 146, 161, 64, 31, 57]) }, Event { key: EventKey([143, 227, 100, 93, 168, 169, 132, 107, 131, 183, 225, 191, 91, 202, 188, 98, 140, 70, 207, 199, 253, 178, 111, 168, 226, 222, 234, 74, 233, 22, 189, 132, 34, 102, 165, 232, 250, 113, 246, 239, 41, 21, 237, 86, 250, 195, 189, 92, 69, 169, 56, 31, 79, 94, 225, 83, 177, 55, 180, 188, 29, 19, 210, 241, 134, 182, 11, 248, 208, 100, 177, 187, 157, 199, 137, 105, 42, 46, 87, 0, 195, 82]), value: EventValue([191, 70, 159, 111, 115, 252, 28, 214, 22, 182, 218, 220, 80, 147, 56, 211, 150, 210, 116, 135, 100, 136, 96, 241, 183, 155, 57, 102, 4, 245, 177, 64, 142, 168, 88, 0, 209, 86, 153, 223, 238, 212, 94, 227, 221, 168, 216, 23, 186, 0, 70, 111, 43, 7]) }, Event { key: EventKey([19, 238, 229, 55, 98, 231, 33, 234, 222, 17, 227, 202, 220, 247, 67]), value: EventValue([233, 17, 246, 191, 249, 165, 248, 13, 84, 50, 120, 21, 113, 90, 199, 166, 214, 41, 114, 180, 203, 180, 244, 8, 246, 158, 83, 101, 46, 96, 123, 246, 208, 179, 125, 208, 144, 96, 36, 50, 88, 23, 180, 184, 157, 188, 115, 64, 206, 240, 230, 35, 122, 178, 15, 115, 130, 191, 143, 34, 209, 117, 171, 11, 233, 238, 28, 19, 143, 64, 245, 149, 90, 20, 133, 61]) }, Event { key: EventKey([221, 124, 104, 89, 127, 88, 222, 193, 18, 246, 237, 60, 39, 183, 194, 80, 249, 166, 90, 63, 130, 89, 51, 124, 117, 105, 50, 111, 158, 34, 36, 34, 198, 198, 101, 173, 29, 8, 30, 235, 197, 122, 212, 68, 211, 54, 246, 99, 168, 136, 12, 82, 2, 17, 7, 212, 7, 142, 201, 119, 184, 253, 145, 249, 193, 188, 39, 224, 152, 200, 106, 29, 137, 168, 3, 69, 110, 207, 51, 218, 147, 22, 13]), value: EventValue([45, 153, 221, 245, 71, 198, 159, 26, 67, 134, 119, 94, 174, 92, 225, 127, 102, 20, 220, 196, 198, 247, 151, 70, 225, 226, 246, 174, 235, 220, 0, 217, 210, 6, 60, 220, 147, 227, 140]) }, Event { key: EventKey([226, 191, 70, 251, 160, 3, 151, 110, 144, 193, 39, 19, 139, 81, 255, 127, 67, 81, 89, 250, 91, 249, 51, 191, 62, 212, 187, 23, 75, 192, 139, 144, 194, 227, 200, 10, 79, 19, 255, 178, 165, 25, 217, 43, 216, 142, 8, 50, 152, 66, 116, 160, 162, 146, 158, 71, 75, 111, 56, 206, 37, 118, 76, 141, 21, 65, 189, 228, 190, 235, 65, 186, 85, 212, 15, 228, 0, 105, 116]), value: EventValue([183, 29, 71, 226, 49, 215, 32, 57, 103, 49, 255]) }], receipt: 299740257 }, TransactionReceipt { tx_hash: [190, 241, 44, 150, 118, 205, 123, 173, 240, 140, 159, 10, 63, 252, 139, 36, 201, 223, 97, 45, 121, 8, 133, 212, 21, 219, 67, 143, 45, 133, 46, 169], body_to_save: None, events: [Event { key: EventKey([148, 144, 162, 110, 157, 177, 161, 119, 0, 184, 87, 74, 140, 104, 255, 174, 12, 55, 57, 250, 52, 159, 119, 131, 202, 126, 12, 11, 192, 77, 108, 186, 23, 73, 144, 40]), value: EventValue([147, 248, 137, 85, 132, 114, 124, 13, 145, 212, 136, 117, 242, 224, 53, 168, 72, 170, 108, 244, 65, 22, 86, 218, 163, 87, 154, 100, 182, 64, 244, 215, 131, 205, 144, 233, 251, 186, 28, 164, 54, 142, 222, 180, 122, 164, 67, 172, 190, 105, 0, 118, 116, 2, 217, 231, 81, 250, 134, 205, 188, 141]) }, Event { key: EventKey([]), value: EventValue([45, 61, 24, 50, 33, 185, 43, 80, 20, 153, 198, 126, 249, 90, 17, 248, 207, 252, 164, 191, 237, 101, 192, 127, 111, 164, 151, 48, 184, 122, 70, 203, 231, 55, 194]) }, Event { key: EventKey([63, 17, 131, 29, 114, 195, 29, 234, 62, 201, 230, 124, 97, 245, 126, 111, 133, 138, 186, 173, 222]), value: EventValue([103, 171, 35, 14, 134, 148, 221, 160, 231, 120, 96, 212]) }, Event { key: EventKey([87, 183, 218, 77, 137, 88, 215, 252, 209, 202, 240, 60, 123, 187, 140, 225, 195, 58, 12, 118, 241, 185, 41, 142, 6, 197, 111, 227, 86, 133, 2, 23, 80, 186, 222, 101, 206, 129, 12, 115, 67, 132, 5, 7, 81, 130, 200, 37, 77, 233, 119, 202, 1, 244, 23, 42, 104, 227, 160, 192, 248, 223, 96, 87, 10, 53, 14, 36, 13, 150, 207, 192, 31, 249, 98, 158, 80, 87, 227, 36, 183, 29, 101, 156, 34, 13, 128, 145, 14, 145, 200, 195, 190, 73, 179, 124, 212]), value: EventValue([17, 26, 203, 209, 121, 136, 102, 110, 211, 209, 48, 184]) }, Event { key: EventKey([251, 89, 152, 249, 74, 100, 7, 184, 200, 222, 170, 199, 9, 232, 137, 127, 238, 159, 0, 164, 48, 111, 103, 36, 58, 175, 43, 54, 223, 121, 253, 232, 167]), value: EventValue([218, 255, 146, 125, 30, 75, 79, 161, 231, 213, 172, 63, 150, 193, 223, 191, 164, 160, 102, 4, 9, 0, 203, 86, 103, 137, 209, 136, 147, 63, 250, 7, 160, 246, 166, 140, 3, 39, 142, 136, 238, 115, 238, 115, 190, 217, 29, 44, 217, 10, 116, 73, 203, 72, 119, 6, 130, 44, 182, 53, 128, 94, 156, 86, 12, 52, 144, 34, 219, 231, 93, 117, 118, 184, 156, 76, 198, 34, 221, 189]) }, Event { key: EventKey([112, 216, 77, 58, 138, 1, 189, 49, 128, 60, 242, 165, 41, 173, 122, 44, 16, 51, 147, 208, 113, 43, 245, 213, 237, 193, 186, 227, 136, 238, 110, 159, 164, 63, 74, 4, 196, 215, 63, 184, 157, 105, 19, 71, 226, 150, 55, 112, 30, 188, 249, 95, 6, 181, 27, 221, 53, 86, 165, 42, 199, 18, 233, 188, 19, 215, 212, 45, 60, 93, 115, 105, 143, 162, 185, 13, 216, 125, 232, 230, 150, 42, 97, 170, 163, 87, 242, 166]), value: EventValue([172, 242, 129, 151, 158, 152, 94, 172, 223, 44, 210, 17, 70, 134, 140, 175, 48, 221, 138, 100, 67, 240, 34, 233, 246, 104, 163, 93, 70, 29, 121, 67, 44, 127, 8, 96, 66, 55, 221, 247, 77, 86, 29, 148, 10, 164, 10, 190, 133, 29, 110, 119, 170, 81, 108, 97, 190, 111, 209, 66, 63, 10, 149, 148, 240, 185, 205, 44, 157, 13, 206, 121, 39, 219, 159, 60, 108, 195, 97, 53, 242, 243, 50]) }, Event { key: EventKey([133, 208, 19, 175, 138, 68, 156, 192, 237, 100, 21, 210, 245, 199, 44, 106, 102, 43, 29, 71, 186, 184, 228, 254, 227, 120, 72, 201, 170, 46, 181, 66, 74, 57, 213, 132, 20, 87, 146, 240, 17, 193, 136, 184, 93, 231, 134, 161, 241, 109, 140, 36, 156, 188, 126, 189, 248, 76, 59, 194]), value: EventValue([77, 232, 141, 52, 141, 125, 141, 77, 235, 164, 57, 33, 154, 169, 207, 102, 92, 225, 248, 123, 207, 96, 195, 92, 135, 250, 75, 99, 216, 121, 95, 233, 133, 150, 5, 208, 125, 104, 128, 64, 17]) }, Event { key: EventKey([115, 192, 241, 107, 244, 132, 162]), value: EventValue([17, 33, 97, 179, 138, 216, 138, 108, 122, 118, 251, 182, 46, 194, 28, 206, 91, 35, 47, 224, 197, 133, 183, 150, 49, 3, 231, 100, 138, 161, 103, 26, 92, 21, 57, 226, 18, 223, 60, 209, 35, 10, 25, 154, 205, 99, 128, 17, 22, 135, 240, 118, 112, 64, 188, 210]) }, Event { key: EventKey([102, 91, 203, 234, 101, 153, 110, 107, 81, 33, 246, 226]), value: EventValue([92, 76, 81, 219, 252, 9, 236, 83, 71, 218, 49, 193, 53, 247, 126, 73, 145, 195, 108, 4, 67, 88, 237, 227, 178, 23, 98, 229, 255, 158, 137, 233, 149, 126, 36, 143, 236, 133, 200, 42, 128, 100, 17, 14, 138, 109, 146, 73, 241, 219, 83, 249, 78, 46, 17, 53, 77, 146, 35, 178, 113, 85, 254, 189, 222, 247, 90, 236, 184, 175, 78, 22, 85, 34, 94, 169, 69, 114, 78, 89, 15, 154, 41]) }], receipt: 950315838 }, TransactionReceipt { tx_hash: [179, 10, 38, 195, 111, 7, 33, 176, 3, 68, 94, 148, 7, 10, 141, 86, 189, 90, 146, 227, 103, 132, 89, 132, 195, 90, 148, 37, 63, 20, 217, 23], body_to_save: Some([24, 219, 185, 13, 114, 184, 235, 224, 255, 126, 220, 50, 46, 32, 253, 115, 28, 180, 44, 71, 240, 218, 222, 163, 115, 65, 129, 37, 43, 34, 247, 210, 255, 158, 15, 118, 64, 159, 232, 144, 122, 171, 44, 64, 243, 210, 151, 120, 101, 220, 229, 252, 87, 209, 186, 223, 213, 103, 10, 137, 187, 61, 206, 228, 85, 54, 61, 144, 41, 118, 140, 210, 14, 16, 171, 155, 99, 110, 146, 228, 91, 65, 69, 217, 161, 212]), events: [Event { key: EventKey([13, 61, 12, 184, 254, 203, 141, 255, 246, 222, 198, 70, 163, 136, 86, 30, 179, 207, 25, 98, 74, 145, 46, 193, 103, 148, 169, 138, 208, 217, 130, 156, 7, 15, 48, 255, 169, 218, 117, 158, 138, 21, 119, 139, 65, 35, 33, 171, 213, 204, 49, 177, 113, 78, 243, 246, 206, 104, 163, 189, 82, 209, 185, 78, 219, 239, 49, 7, 105, 58, 255, 63, 151, 101, 35, 29, 16, 121, 94, 146, 49, 218, 223, 248, 235, 72, 90]), value: EventValue([185, 27, 175, 26, 152, 200, 96, 192, 90, 43, 57, 172, 150, 185, 25, 104, 70, 74, 127, 137, 9, 155, 13, 204, 143, 108, 199, 0, 202, 225, 253, 65, 24, 106, 101, 75, 25, 21, 146, 242, 71, 85, 59, 22, 119, 194, 160, 115, 41, 41, 213, 183, 132, 224, 33, 226, 166, 128, 189, 87, 151, 46, 240, 217, 223]) }, Event { key: EventKey([136, 129, 9, 46, 251, 206, 132, 197, 172, 200, 57, 101, 156, 173, 6, 144, 79, 143, 176, 162, 225, 67, 153, 151, 54, 9, 30]), value: EventValue([100, 204, 9, 162, 107, 177, 95, 117, 159, 128, 81, 97, 11, 170, 67, 106, 246, 109, 111, 38, 197, 108, 38, 115, 12, 155, 114, 218, 90, 119, 51, 64, 104, 102, 6, 83, 47, 156, 242, 107]) }, Event { key: EventKey([97, 60, 249, 162, 157, 36, 120, 29, 180, 113, 173, 176, 166, 42, 133, 111, 157, 28, 199, 31, 209, 37, 167, 93, 229, 199, 27, 5, 193, 88, 133, 144, 25, 175, 209, 14, 168, 72, 61, 141, 59, 131, 133, 214, 52, 253, 44, 23, 79, 83, 66, 166, 141, 254, 172, 75, 108, 96, 13, 59, 102, 163, 150, 54, 115, 113, 203, 12, 69, 37, 22, 28, 168, 76, 70, 10, 182, 41, 111, 28, 39, 58, 235, 75]), value: EventValue([153, 28, 232, 68, 24, 150, 39, 16, 217, 66, 6, 113, 221, 113, 148, 114, 96, 249, 42, 18, 68, 68, 88, 138, 76, 193, 36, 133, 231, 167, 171, 240, 118, 158, 160, 125, 178, 190, 255, 134, 227, 205, 54, 137, 85, 40, 237, 26, 29, 25, 47, 63, 90]) }, Event { key: EventKey([99, 175, 156, 46, 220, 196, 209, 61, 131, 86, 131, 208, 140, 104, 67, 131, 190, 22, 195, 169, 222, 106, 224, 48]), value: EventValue([72, 138, 139, 104, 251, 209, 109, 82, 163, 54, 16, 37, 164, 222, 98, 119, 0, 72, 138, 12, 180, 170, 62, 225, 133, 246, 30, 252, 86, 32, 46, 236, 226, 31, 76, 212, 44, 170, 145, 117, 24, 43, 229, 135, 45, 214, 55, 87, 115, 5, 80, 108, 72, 115, 178, 35, 121, 35, 225, 221, 47, 58, 44, 253, 130]) }, Event { key: EventKey([149, 232, 97, 112, 23, 252, 0, 142, 135, 205, 213, 169, 131, 219, 174, 196, 81, 24, 61, 127, 238, 209, 248, 97, 191, 69, 254, 149, 236, 66, 242, 38]), value: EventValue([191, 9, 135, 149, 225, 46, 226, 149, 224, 127, 132, 51, 195, 222, 142, 10]) }], receipt: 2205541377 }, TransactionReceipt { tx_hash: [58, 215, 198, 219, 112, 135, 105, 53, 193, 163, 112, 96, 25, 191, 27, 227, 115, 220, 84, 205, 107, 8, 13, 91, 128, 10, 229, 1, 149, 66, 92, 51], body_to_save: None, events: [Event { key: EventKey([252, 141, 134, 93, 18, 51, 244, 254, 64, 234, 145, 59, 118, 171, 184, 60, 237, 25, 161, 200, 127, 40, 144, 24, 140, 215, 35, 240, 128, 41, 55, 20, 133, 119, 137, 117, 107, 87, 55, 159, 224, 182, 13, 136, 87, 206, 152, 22, 17, 73, 212, 35, 99, 196, 134, 125, 14, 169, 246, 13, 138, 173, 144, 11, 251, 125, 108, 132, 18, 158, 56, 244, 68, 247, 219, 37, 9, 87, 66, 23, 103, 30, 197, 103, 2, 114, 151, 158, 75, 8, 44, 120, 140, 10, 78]), value: EventValue([]) }, Event { key: EventKey([152, 47, 235, 75, 98, 237, 80, 152, 51, 181, 191, 133, 150, 242, 67, 5, 31, 148, 52, 203, 163, 75, 242, 17, 217, 59, 214, 116, 25, 151, 209, 59, 81, 53, 165, 200, 138, 78, 169, 105, 67, 148, 66, 191, 2, 116, 104, 20, 147, 127, 105, 216, 174, 226, 177, 245, 129, 35, 25, 193, 118, 75, 162, 2, 165, 175, 7, 20, 133, 159, 11, 131, 232]), value: EventValue([226, 166, 213, 2, 195, 17, 171, 81, 95, 40, 45, 172, 122, 239, 223, 74, 143, 30, 63, 115, 3, 114, 219, 92, 118, 199, 54, 86, 123, 234]) }, Event { key: EventKey([]), value: EventValue([118, 170, 226, 112, 196, 56, 242, 239, 176, 75, 225, 70, 210, 127, 85, 5, 244, 223, 208, 6, 10, 44, 9, 175, 14, 217, 6, 227, 232, 93, 249, 192, 249, 72, 171, 193, 184, 240, 177, 177, 214, 140, 209, 50, 85, 67, 175, 158, 93, 151, 75, 176, 79, 251, 216, 41, 188, 123, 217, 170, 170, 37, 184, 9, 206, 119, 178, 188, 127, 46, 220, 58, 56, 121, 87, 90, 62, 145, 142, 219, 217, 255, 183, 180, 224, 104, 165, 69, 197, 47]) }, Event { key: EventKey([223, 31, 9, 172, 172, 23, 220, 88, 178, 158, 106, 100, 37, 217, 240, 182, 50, 183, 67, 209, 220, 38, 191, 144, 124, 207, 51, 236, 17, 2, 92, 22, 129, 139, 103, 227, 57, 160, 93, 38, 112, 228, 35, 222, 210, 171, 199, 159, 103, 15, 189, 137, 191, 150, 196, 249, 124]), value: EventValue([149, 90, 98, 202, 220, 179, 159, 6, 48, 27, 30, 161, 4, 107, 211, 160, 27, 33, 79, 14, 227, 77, 87, 195, 37, 161, 54, 80, 243, 183, 112, 147, 92, 229, 5, 82, 120, 28, 39, 156, 227, 87, 216, 150, 14, 69, 113, 81, 153, 146, 166, 68, 54, 207, 167, 99, 79, 120, 36, 87, 85, 86, 19, 170, 31, 182, 120, 73, 129, 249, 107, 54, 208, 213, 157, 66, 91, 97, 241, 115, 137, 176, 36, 182, 246, 81, 254, 20, 41, 197, 212, 87, 35, 214, 27, 236]) }, Event { key: EventKey([166, 168, 206, 235, 167, 102, 251, 185, 72, 242, 196, 86, 93, 206, 51, 251, 138, 36, 251, 194, 223, 80, 117, 193, 53, 41, 233, 250, 229, 254, 229, 61, 160, 244, 156, 179, 86, 230, 145, 31, 69, 105, 195, 35, 143, 248, 61, 233, 244, 71, 179, 30, 188, 41, 61, 108, 114, 202, 30, 208, 57, 3, 168, 248, 172, 159, 9, 122, 45, 17, 164, 186, 156, 6, 164, 174, 43, 2, 219, 0, 151, 164, 70, 205, 88, 170, 97]), value: EventValue([204, 226, 30, 17, 8, 166, 153, 159, 113, 29, 165]) }, Event { key: EventKey([255, 168, 32, 152, 214, 92, 198, 186, 43, 202, 84, 47, 150, 106, 115, 70, 196, 126, 209, 160, 149, 199, 2, 77, 209, 55, 226, 23, 37, 58, 150, 138, 91, 89, 112, 8, 154, 158, 225, 1, 115, 211, 245, 61, 155, 57, 179, 125, 37, 76, 238, 216, 71, 127, 241, 211, 171, 188, 231, 194, 44, 242, 203, 184, 153, 32, 87, 68, 135, 46, 75, 140, 230, 4, 233, 123, 103, 112, 222, 15, 153, 60, 41, 166, 168, 191, 168, 72, 238]), value: EventValue([158, 249, 243, 214, 41, 44, 33, 141, 143, 220, 126, 218, 165, 154, 93, 21, 85, 32, 25, 108, 79, 89, 113, 105, 78, 32, 234, 134, 108, 210, 213, 90, 230, 195, 224, 138, 218, 167, 108, 35, 107, 178, 96, 170, 84, 64, 224, 13, 84, 51, 211]) }], receipt: 2527768258 }], inner: 276977396 }, BatchReceipt { batch_hash: [5, 39, 8, 94, 24, 130, 138, 67, 87, 195, 17, 215, 54, 90, 73, 209, 193, 43, 116, 140, 196, 139, 93, 124, 206, 190, 54, 62, 169, 159, 164, 190], tx_receipts: [TransactionReceipt { tx_hash: [57, 80, 207, 196, 39, 212, 105, 8, 26, 30, 150, 157, 161, 209, 126, 13, 52, 249, 131, 180, 61, 205, 52, 245, 92, 82, 20, 206, 177, 251, 222, 215], body_to_save: None, events: [Event { key: EventKey([105, 137, 61, 149, 211, 212, 101, 30, 220, 242, 28, 49, 77, 121, 37, 199, 173, 44, 19, 226, 12, 129, 72, 220, 55, 193, 133, 197, 37, 64, 181, 48, 175, 165, 114, 59, 206, 99, 151, 48, 219, 39, 149, 101, 61, 77, 139, 59, 179, 120, 164]), value: EventValue([218, 34, 239, 166, 51, 59, 153, 11, 89, 115, 249, 164, 33, 40, 189, 208, 77, 113, 91, 15, 39, 208, 195, 92, 129, 135, 140, 183, 172, 199, 211, 177, 141, 221, 228, 15, 204]) }, Event { key: EventKey([35, 15, 250, 156, 228, 233, 97, 22, 235, 62, 20, 106, 19, 204, 78, 77, 20, 228, 225, 140, 192, 16, 31, 154, 218, 122, 180]), value: EventValue([250, 100, 24, 130, 97, 161, 215, 89, 9, 167]) }, Event { key: EventKey([]), value: EventValue([94, 233, 183, 235, 147, 174, 61, 252, 157, 24, 191, 87, 21, 14, 120, 45, 127, 121, 166, 67, 42, 196, 199, 182, 174, 148, 80, 91, 140, 156, 137, 193, 189, 81, 212, 227, 54, 94, 177, 151, 23, 77, 87, 226, 123, 29, 195, 24, 8, 36, 54, 239, 109, 117, 226, 248, 135, 84, 88, 169, 217, 221, 170, 150, 241, 146, 196, 190, 167, 13, 97, 150, 80, 32, 246, 204, 93, 96, 175, 84, 117]) }, Event { key: EventKey([214, 44, 132, 154, 69, 123, 87, 32, 49, 122, 248, 245, 223, 37, 69, 13, 176, 44, 180, 12, 121, 122, 44, 244, 142, 135, 44, 236, 143, 7, 134, 22, 117, 153, 26, 80, 46, 108, 215, 61, 159, 144, 202, 186, 222, 175, 77, 151, 223, 68, 82, 187, 43, 166, 141, 183, 100, 158, 246, 146, 211, 148, 96]), value: EventValue([252, 168, 216, 188, 55, 139, 44, 55, 33, 173, 137, 142, 150, 116, 144, 181, 212, 117, 52, 141, 153, 119, 168, 15, 134, 45, 61, 125, 152, 128, 182, 5, 23, 130, 37, 196, 0, 18, 8, 136, 200, 197, 244, 137, 243, 188, 116, 12, 36, 131, 195, 179, 147, 106, 216, 0, 134, 0, 152, 102, 209, 70, 5, 193, 111, 182, 151, 22, 212, 102, 249]) }], receipt: 3425808397 }, TransactionReceipt { tx_hash: [62, 16, 103, 80, 54, 17, 192, 73, 13, 189, 171, 102, 44, 106, 54, 222, 139, 108, 167, 113, 159, 210, 124, 40, 141, 215, 55, 142, 42, 253, 98, 31], body_to_save: Some([227, 18, 95, 128, 120, 216, 154, 239, 202, 87, 201, 182, 17, 125, 213, 213, 21, 248, 254, 168, 49, 61, 138, 10, 121, 155, 126, 83, 186, 153, 37, 9, 8, 195, 196, 239, 39, 24, 6, 70, 55, 228, 55]), events: [Event { key: EventKey([184, 188, 142, 159, 123, 10, 198, 152, 201, 167, 231, 251, 225, 92, 73, 89, 68, 55, 52, 231, 19, 245, 234, 205, 124, 147, 185, 141, 179, 235, 138, 232, 115, 207, 16, 91, 135, 26, 160, 159, 150, 244, 16, 69, 6, 221, 9, 189, 48, 73, 107, 17, 61, 170, 88, 197, 0, 159, 230, 119, 220, 130, 72, 54, 250, 85, 156, 179, 221, 121, 252, 239, 151, 195, 24]), value: EventValue([125, 1, 234, 7, 76, 51, 222, 201, 144, 153, 91, 218, 37, 169, 244, 80, 203, 127, 243, 170, 148, 215, 169, 11, 1, 200, 208, 2, 223, 60, 175, 245, 136, 234, 64, 195, 15, 114, 245, 148, 40, 211, 89, 77, 167, 204, 142, 172, 30, 191, 240, 90, 165, 227, 243, 152, 253, 102, 235, 63, 89, 173, 44, 106, 19, 211, 19, 122, 138, 17, 6, 216, 41, 179, 116, 54, 171, 83, 170, 82, 62, 130, 187, 185, 127, 148, 51, 148, 177]) }, Event { key: EventKey([149, 175, 168, 149, 252, 229, 188, 81, 33, 156, 178, 206, 218, 71, 22, 172, 230, 86, 227, 217, 192, 103, 196, 88, 41, 61, 224, 7, 36, 198, 149, 212, 18, 14, 162, 146, 142, 134, 127, 246, 122, 183, 209, 58, 36, 105, 45, 232, 213, 139, 184, 232, 119, 88, 223, 143, 152, 55, 25, 237, 53, 4, 147, 95, 48, 229, 205, 200, 67, 8, 117, 62, 93, 89, 243, 75, 189, 107, 107, 50, 59, 174, 237, 214, 186, 175, 194, 179, 164, 21, 59, 50, 103, 75]), value: EventValue([18, 185, 161, 37, 202, 94, 86, 251, 208, 184, 219, 204, 236, 201, 197, 151, 125, 254, 184, 5, 161, 250, 184, 67, 14, 81, 141, 49, 24, 121, 38, 102, 62, 249, 4, 6, 148, 84, 152, 16, 245, 212, 30, 20, 250, 32, 52]) }, Event { key: EventKey([214, 225, 245, 39, 175, 186, 254, 156, 95, 83, 232, 163, 206, 26, 107, 10, 153, 122, 12, 227, 208, 224, 130, 57, 129, 31, 240, 45, 202, 179, 247, 87, 154, 192, 126, 221, 253, 110, 75, 111, 148, 201, 29, 153, 172, 239, 68, 127, 255, 33, 67, 120, 154, 3, 249, 91, 181, 196, 58, 123, 181, 16, 166, 38, 195, 5, 215, 66, 71, 7, 16, 172, 209, 252, 159, 124, 145, 113, 38, 212, 180, 5, 117, 34, 135, 190, 84, 238, 119, 192, 21]), value: EventValue([171, 82, 111, 89, 227, 236]) }], receipt: 3974896814 }, TransactionReceipt { tx_hash: [127, 8, 7, 70, 125, 199, 172, 212, 44, 18, 224, 122, 132, 109, 219, 112, 206, 4, 59, 241, 29, 113, 193, 138, 226, 28, 245, 17, 130, 115, 73, 138], body_to_save: Some([25, 11, 131, 37, 254, 46, 251, 1, 70, 237, 98, 235, 235, 88, 192, 48, 139, 130, 193, 64, 38, 121, 240, 53, 122, 85, 181, 219, 19, 167, 141, 249, 139, 122, 121, 212, 7, 140, 169, 240, 161, 220, 174, 119, 5, 248, 28, 32, 162, 62, 31, 145, 65, 189, 201, 3, 7, 4, 248, 118, 178, 1, 119, 218]), events: [Event { key: EventKey([62, 48, 137, 246, 170, 61, 116, 2, 94, 25, 177, 26, 196, 216, 49, 245, 10, 192, 106, 81, 222, 62, 148, 166, 185]), value: EventValue([167, 75, 74, 17, 212, 13, 196, 87, 247, 214, 14, 164, 173, 14, 230, 18, 134, 61, 121, 189, 110, 75, 235, 53, 125, 4, 14, 76, 23, 107, 76, 134, 129, 220, 202, 23, 205, 74, 16, 247, 156, 223, 210, 200, 152, 63, 183, 83, 253, 0, 241, 60, 252, 242, 135, 56, 117, 216, 81, 74, 213, 121, 226, 103, 103, 7, 133, 210, 106, 198, 182, 9, 40, 70]) }, Event { key: EventKey([126, 183, 98, 65, 15, 178, 123, 83, 108, 66, 33, 43, 84, 25, 114, 157, 1, 38, 214, 78, 157, 181, 36, 195, 117, 118, 159, 129, 237, 148, 160, 29, 221, 155, 160, 113, 77, 26, 236]), value: EventValue([185, 165, 194, 116, 231, 74, 120, 89, 208, 88, 62, 80, 59, 230, 20, 176, 86, 28, 175, 175, 244, 170, 177, 108, 221, 98, 165, 217, 39, 143, 77, 4, 243, 97, 119, 211, 165, 242, 226, 105, 117, 53, 58, 66, 251, 152, 83, 110, 24, 89, 251, 156, 169, 167, 240, 26, 87, 17, 2, 174, 0, 176, 165, 166, 118, 142, 41, 163, 79, 73, 6]) }, Event { key: EventKey([93, 151, 54, 80, 91, 234, 28, 55, 82, 154, 57, 79, 65, 61, 152, 9, 113, 61, 226, 7, 139, 31, 101, 78, 71, 163, 96, 5, 44, 41, 254, 58, 196, 111, 211, 110, 192, 77, 31, 226, 1, 152, 89, 109, 30, 146, 237, 205, 75, 25, 219, 28, 246, 128, 204, 71, 37, 169, 148, 211, 191, 155, 233, 4]), value: EventValue([180, 22, 233, 132, 233, 38, 196, 1, 23, 158, 3, 147, 88, 33, 71, 35, 237, 216, 52, 175, 79, 218, 1]) }, Event { key: EventKey([92, 252, 54]), value: EventValue([124, 49, 167, 21, 91, 91, 157, 187, 64, 64, 172, 126]) }, Event { key: EventKey([57, 10, 117, 230, 218, 136, 177, 234, 49, 92, 171, 47, 136, 222, 122, 80, 43, 238, 20, 210, 231, 14, 104, 238, 195, 211, 162, 203, 201]), value: EventValue([252, 62, 210, 121, 164, 40, 223]) }, Event { key: EventKey([200, 58, 106, 144, 255, 146, 19, 158, 29, 24, 249, 23, 216, 243, 218, 215, 219, 255, 88, 70, 228, 171, 51, 112, 75, 185, 192, 102, 167, 126, 127, 44, 99, 171, 134, 213, 58, 90, 248, 206, 108, 221, 221, 20, 48, 116, 67, 139, 213]), value: EventValue([75, 151, 175, 71, 32, 150, 46, 183, 7, 154, 58, 61, 60, 12, 80, 199, 103, 239, 57, 226, 217, 31, 217, 122]) }], receipt: 880418200 }, TransactionReceipt { tx_hash: [148, 225, 183, 96, 58, 177, 210, 126, 26, 20, 153, 46, 32, 2, 200, 191, 245, 31, 122, 223, 18, 90, 164, 106, 124, 125, 30, 77, 143, 8, 82, 218], body_to_save: None, events: [Event { key: EventKey([161, 15, 178, 124, 252, 102, 187, 158, 176, 211, 117, 181, 0, 224, 92, 91, 150, 15, 132, 29, 243, 245, 193, 188, 154, 15, 155, 28, 173, 182, 11, 207, 100, 14, 57, 35, 23, 139, 83, 9, 45, 36, 147, 104, 120, 226, 100, 42]), value: EventValue([62, 72, 238, 12, 237, 121, 28, 184, 32, 165, 159, 231, 61, 14, 74, 115, 11, 207, 185, 154, 94, 89, 199, 221, 205, 203, 239, 129, 222, 130, 42, 99, 66, 85, 59, 195, 41, 191, 162, 31, 49, 75, 7, 240, 200, 100, 100, 204, 122, 166, 194, 205, 229, 185, 66, 53, 26, 66, 106, 109, 39, 254, 233, 255, 69, 48, 53, 195, 181, 30, 236]) }, Event { key: EventKey([67, 15, 5, 199, 84, 160, 210, 180, 168, 95, 91, 51, 104, 156, 24, 218, 3, 62, 85, 57, 143, 116, 134, 102, 15, 175, 14, 112, 183, 141, 250, 120, 74, 109, 175, 177, 179, 52, 115, 238, 245, 56, 234, 44, 92, 242, 220, 42, 180, 16, 68, 252, 112, 99, 75, 53, 42, 192, 209, 6, 238, 7, 126, 246, 126, 23, 211, 167, 154, 5, 48, 41, 78, 210, 147, 18, 32, 16, 193, 187, 198, 175, 199, 242, 110, 165, 85]), value: EventValue([70, 155, 145, 201, 113, 134, 138, 174, 141, 193, 47, 194, 210, 55]) }, Event { key: EventKey([89, 120, 69, 180, 37, 174, 236, 51, 49, 101, 25, 4, 179, 177, 17, 101, 7, 56, 6, 138, 56, 218, 56, 122, 237, 37, 102, 21, 207, 233, 112, 123, 81, 140, 142, 14, 180, 183, 100, 116, 122, 86, 25, 161, 145, 79, 172, 148, 237, 55, 80, 24, 93, 74, 7, 155, 228, 28, 200, 151, 196, 187, 197]), value: EventValue([]) }, Event { key: EventKey([167, 94, 240, 171, 59, 105, 246, 95, 73, 26, 242, 100, 181, 82, 42, 146, 20, 172, 157, 122, 137, 181, 233, 218, 81, 170, 151, 227, 61, 186, 219, 101, 197, 50, 144, 225, 76, 167, 191, 80, 235, 81, 106, 7, 176, 133, 74, 220, 43, 197, 19, 50, 213, 173, 97, 60, 56, 2, 221, 185, 30, 98, 213, 228, 151, 212, 198, 228, 104, 18, 217, 42, 42, 125, 199, 107, 70, 131, 218, 178, 182, 102, 13, 184, 206, 198, 183, 76, 221, 179, 38, 233, 138, 118, 188, 13, 193]), value: EventValue([17, 221, 10, 191, 154, 121, 237, 228, 46, 115, 73, 212, 37, 166, 193, 150, 238, 157, 121, 170, 74, 243, 130, 78, 171, 199, 189, 124, 157, 51, 167, 83, 125, 228, 31, 133, 198, 240, 219, 88, 81, 239]) }, Event { key: EventKey([87, 14, 173, 87, 209, 104, 24, 215, 136, 227, 14, 70, 93, 55, 154, 129, 193, 197, 172, 170, 1, 92, 112, 37, 38, 244, 246, 129, 175, 202, 42, 59, 48, 190, 98, 235, 52, 212, 87, 10, 139, 28, 219, 28, 122, 87, 84, 133, 246, 192, 233, 224, 87, 62, 70, 211, 133, 235, 46]), value: EventValue([223, 77, 172, 224]) }, Event { key: EventKey([184, 181, 61, 231, 13]), value: EventValue([106, 191]) }, Event { key: EventKey([103, 191, 171, 217, 69, 83, 222, 23, 167, 17, 106, 127, 242, 220, 91, 178, 178, 37, 72, 195, 63, 222, 103, 2, 229, 172, 52, 255, 6, 241, 255, 214, 214, 174, 137, 2, 176, 52, 84, 196, 73]), value: EventValue([109, 174, 75, 236, 184, 200, 158, 76, 145, 37, 38, 31, 1, 181, 67, 63, 235, 74, 152, 138, 221, 62, 193, 80, 165, 159, 12, 195, 47, 7, 67, 227, 206, 123, 147, 251, 18, 190, 13, 89, 14, 151, 254, 222, 39, 33, 254, 95, 42, 177, 174, 252, 43, 84, 109, 218, 241, 98, 127, 23, 236, 207, 194, 250, 200, 246, 195]) }, Event { key: EventKey([234]), value: EventValue([50, 81, 244, 36, 178, 98, 62, 154, 254, 39, 41, 59, 156, 202, 154, 134, 200, 44, 152, 233, 163, 60, 45, 112, 28, 185, 190, 228, 198, 243, 165, 114, 4, 201, 12, 252, 42, 64, 38, 86, 153, 225, 130, 145, 215, 83, 219, 190, 40, 116, 50, 29, 112, 218, 199, 230, 206, 46, 238, 236, 195, 39, 145, 71, 24, 248, 96, 182, 93, 182, 103, 193, 149, 17, 195, 58, 90, 136, 145, 153, 245, 69, 68, 247, 240, 121, 204, 250, 116, 157, 156, 236, 30, 160, 16, 43, 220, 128, 251]) }, Event { key: EventKey([16, 165, 102, 180, 215, 108, 94, 36, 116, 54, 162, 2, 121]), value: EventValue([18, 83, 47, 115, 142, 204, 165, 225, 191, 202, 47, 120, 102, 51, 138, 144, 143, 46, 57, 171, 118, 5, 176, 60, 177, 241, 42, 27, 158, 148, 53, 224, 5, 60, 73, 91, 64, 194, 245, 159, 1, 176, 97, 77, 182]) }], receipt: 4088813877 }], inner: 3982594262 }, BatchReceipt { batch_hash: [186, 48, 245, 182, 10, 194, 27, 149, 129, 172, 20, 169, 11, 16, 239, 71, 47, 59, 175, 206, 74, 167, 91, 101, 185, 133, 167, 72, 165, 252, 107, 239], tx_receipts: [TransactionReceipt { tx_hash: [9, 168, 98, 0, 179, 207, 48, 147, 129, 101, 215, 108, 2, 198, 190, 60, 107, 70, 45, 2, 43, 197, 6, 134, 147, 139, 253, 145, 39, 218, 177, 188], body_to_save: None, events: [Event { key: EventKey([20, 129, 58, 214, 49, 70, 45, 235, 213, 177, 214, 83, 231, 86, 213, 181, 92, 121, 243, 253, 191, 32, 254, 52, 37, 132, 59, 222, 241, 12, 189, 5, 110, 63, 28, 223, 68, 16, 120, 174, 103, 12, 120, 241, 11, 79, 24, 211, 183, 0, 65, 171, 68, 23, 124, 156, 164]), value: EventValue([167, 145, 4, 248, 107, 51, 136, 241, 15, 51, 242, 103, 136, 16, 109]) }, Event { key: EventKey([202, 42, 156, 225, 227, 126, 140, 226, 231, 122, 91, 103, 64, 200, 150, 61, 5, 61, 163, 143, 248, 69, 175, 12, 172, 151, 42, 124, 245, 220, 172, 111, 199, 160]), value: EventValue([159, 215, 162, 147, 50, 195, 104, 18, 176, 173, 116, 118]) }, Event { key: EventKey([115, 83, 2, 42, 123, 227, 87, 92, 126, 107, 178, 154, 152, 207, 227, 111, 156, 48, 58, 199, 166, 83, 9, 220, 92, 9, 62, 1, 129, 249, 59, 115, 125, 50, 123, 217, 146, 83, 73, 125, 187, 126, 123, 19, 217, 91, 123, 18, 69, 196, 47, 136, 232, 183, 24, 61, 99]), value: EventValue([254, 100, 113, 203, 176, 73, 160, 232, 193, 187, 233, 141, 64, 50, 5, 222, 16, 43, 110, 29, 55, 220, 99, 248]) }, Event { key: EventKey([239, 184, 185, 7, 52, 177, 109, 23, 213, 124, 45, 216, 148, 94, 3, 102, 107, 184, 133]), value: EventValue([140, 16, 246, 52, 130, 36, 47, 160, 178, 186, 174, 131, 9, 195, 249, 131, 151, 198, 177, 165, 196, 36, 64, 232, 139]) }, Event { key: EventKey([118, 163, 18, 43, 129, 170, 43, 38, 26, 241, 88, 242, 121, 57, 72, 87, 226, 129, 166, 144, 246, 155, 49, 148, 204, 58, 222, 244, 5, 230, 239, 95, 109, 40, 32, 193, 96, 12, 232, 169, 213, 215, 247, 141, 172, 196, 32, 120, 147, 231]), value: EventValue([224, 101, 205, 171, 129, 39, 91, 4, 18, 27, 187, 28, 84, 220, 36, 121, 188, 154, 151, 215, 212, 222, 59, 206, 209, 163, 251, 206, 93, 124, 146, 158, 70, 253, 22, 90, 58, 40, 31, 133, 162, 239, 58, 182, 208, 201, 137, 88, 68, 35, 56, 135, 30, 227, 197, 16, 51, 111, 119, 218, 108, 108, 49, 70, 255, 123, 190, 22, 226, 80, 51, 203, 82, 101, 185, 255, 135, 129, 169, 52, 229, 10, 151, 6, 251, 236, 124, 30, 252, 162, 121, 112, 219, 31, 156]) }, Event { key: EventKey([0, 68, 129, 131, 69, 217, 223, 74, 45, 88, 38, 21, 95, 192, 102, 168, 205, 221, 93, 87, 150, 253, 45, 162, 213, 16, 148, 139, 138]), value: EventValue([30, 162, 254, 226, 193, 120, 165, 133, 101, 240, 98, 99, 112, 176, 147, 225, 196, 101, 71, 89, 130, 16, 17, 185, 2, 250, 172, 245, 234, 6, 120, 194, 41, 104, 179, 159, 154, 168, 209, 69, 243, 222, 134, 44, 134, 199, 225, 220, 156, 83, 102, 67, 250, 79, 23, 73, 225, 242, 20, 221, 12, 152, 221, 244, 233, 192, 30, 3, 215]) }, Event { key: EventKey([90, 62, 10, 236, 202, 122, 201, 200, 44, 191, 84, 136, 140, 208, 54, 111, 213, 13, 91, 72, 112, 137, 162, 211, 4, 168, 118, 7, 201, 87, 125, 169, 22, 6, 24, 161, 199, 114, 197, 17, 80, 164, 19, 108, 60, 10, 223, 238, 213, 170, 20]), value: EventValue([100, 109, 231, 93, 52, 116, 214, 208, 223, 30, 66, 5, 134, 109, 217, 156, 192, 11, 66, 153, 233, 245, 244, 222, 188, 35, 150, 229, 123, 124, 222, 239, 163, 151, 15, 227, 25, 113, 43, 238, 114, 192, 180, 16, 202, 159, 183, 197, 243, 136, 122, 226, 1, 80, 251, 89, 14, 130]) }, Event { key: EventKey([154, 6, 168, 247, 139, 7, 36, 1, 199, 42, 112, 18, 23, 224, 147, 104, 50, 15, 197, 220, 169, 99, 171, 165, 159, 139, 228, 61, 36, 12, 240, 25, 225, 81, 23, 93, 96, 191, 29, 51, 124, 170, 241, 49, 115, 82, 218, 98, 4, 6, 83, 117, 251, 196, 29, 126, 1, 7, 202, 132, 136, 74, 103, 229, 70, 143, 86, 176, 181, 250]), value: EventValue([88, 183, 150, 169, 219, 70, 106, 102, 220, 15, 109, 190, 43, 135, 56, 6, 233, 155, 219, 83, 19, 253, 22, 67, 20, 163, 29, 98, 105, 153, 76, 75, 233, 195, 23, 207, 206, 229, 112, 99, 11, 143, 42, 168, 9, 29, 108, 45, 237, 111, 45, 153, 136, 255, 98, 138]) }], receipt: 2362077825 }, TransactionReceipt { tx_hash: [130, 123, 218, 107, 42, 9, 224, 98, 106, 118, 181, 210, 198, 253, 23, 57, 182, 27, 61, 152, 11, 187, 121, 36, 240, 127, 148, 222, 16, 88, 49, 220], body_to_save: Some([200, 126, 198, 195, 183, 38, 159, 70]), events: [Event { key: EventKey([133, 207]), value: EventValue([237, 51, 174, 62, 45, 28, 35, 87, 54, 134, 182, 78, 176, 135, 21, 232, 233, 50, 214, 164, 56, 176, 251, 156, 172, 53, 207, 98, 194, 155, 113, 196, 184, 125, 143, 33, 61, 138, 109, 215, 93, 93, 0, 92, 116, 34, 125, 233, 242, 61, 68, 0, 157, 86, 31, 230, 239, 13, 162, 142]) }, Event { key: EventKey([10, 188, 135, 216, 187, 217, 146, 190, 132, 215, 111, 229, 24, 179, 114, 246, 172, 11, 61, 174, 66, 205, 15, 184, 222, 190, 183, 71, 51, 57, 200, 223, 84, 39, 147, 103, 81, 124, 41, 89, 46, 179, 70, 251, 3, 60, 164, 102, 22, 202, 77, 180, 3, 42, 13, 122, 56, 186, 82, 51, 50, 162, 144, 94, 253, 237, 166, 15, 139, 219, 228, 160, 32, 38, 37, 129, 84, 208]), value: EventValue([208, 147, 19, 25, 16, 128, 80, 65, 198, 61, 217, 11, 189, 182, 136, 229, 93, 118, 93, 10, 28, 217, 193, 78, 255, 235, 166, 235]) }, Event { key: EventKey([255, 249, 10, 216, 109, 250, 114, 186, 211, 231, 95, 183, 41]), value: EventValue([66, 198, 228, 214, 192, 14, 72, 35, 106, 240, 70, 240, 126, 91, 219, 156, 52, 132, 251, 97, 197, 146]) }], receipt: 2338315349 }, TransactionReceipt { tx_hash: [159, 60, 210, 91, 159, 20, 141, 92, 145, 68, 150, 34, 244, 100, 128, 89, 80, 239, 15, 201, 82, 171, 104, 85, 53, 56, 109, 182, 153, 230, 95, 97], body_to_save: Some([135, 85, 215, 192, 152, 48, 178, 247, 241, 100, 235]), events: [Event { key: EventKey([130, 137, 119, 205, 191, 253, 63, 154, 237, 64, 60, 96, 33, 56, 94, 94, 88, 181, 200, 192, 24, 108, 248, 161, 143, 229]), value: EventValue([129, 119, 95, 237, 155, 0, 3, 58, 73, 56, 24, 83, 66, 198, 137, 153, 14, 9, 180, 156, 84, 140, 69, 47, 17, 21, 233, 37, 203, 29, 202, 49, 164, 241, 246, 62, 196, 237, 59, 129, 158, 22, 192, 166, 160, 41, 17, 26, 182, 5, 231, 94, 227, 129, 78, 127, 244, 188, 243, 47, 216]) }, Event { key: EventKey([66, 204, 65, 29, 10, 143, 102, 146, 226, 14, 129, 35, 216, 142, 149, 242, 189, 17, 124, 204, 96]), value: EventValue([154, 68, 93, 138, 230, 10, 180, 161, 73, 136, 181, 174, 244, 218, 37, 119, 127, 177, 165, 156, 141, 181, 230, 252, 133, 236]) }, Event { key: EventKey([206, 97, 32, 27, 37, 133, 54, 31, 176, 60, 30, 189, 197, 17, 178, 66, 133, 126, 82, 4, 187, 168, 160, 70, 102, 210, 108, 22, 160, 249, 21, 40, 183, 131, 104, 68, 73, 122, 7, 184, 67, 50, 153, 215, 154, 194, 103, 40, 80, 158, 64, 160, 248, 81, 68, 136, 135, 223, 12, 11, 228, 173, 100, 63]), value: EventValue([195, 205, 187]) }, Event { key: EventKey([250, 121, 80, 177, 15, 98, 186, 200, 196, 51, 195, 190, 56, 88, 61, 217, 130, 40, 41, 187, 49, 107, 83, 63, 146, 4, 249, 44, 210, 75, 24, 180, 166, 199, 43, 78]), value: EventValue([157, 26, 235, 228, 173, 188, 116, 247, 58, 89, 160, 239, 74, 115, 213, 199, 52, 81, 3, 117, 100, 208, 89, 207, 216, 44, 159, 62, 44, 46, 145, 0, 36, 96, 195, 116, 233, 161, 65, 242, 85, 31, 94, 74, 73, 106, 106, 164, 54, 214, 207, 39, 238, 191, 174, 188, 247, 145, 251, 12, 126, 11, 239, 11, 126, 112, 193, 3, 9, 61, 141, 230, 218, 125, 68, 216, 61, 111]) }, Event { key: EventKey([57, 125, 122, 97, 98, 202, 245, 159, 233, 5, 244, 121, 146, 18, 223, 42, 248, 30, 135, 97, 195, 127, 152, 135, 254, 50, 247, 48, 58, 98, 56, 44, 0, 118, 249, 246, 197, 154, 117, 177, 18, 182, 207, 26, 140, 94, 4, 116, 144, 150, 99, 194, 44, 206, 218, 62, 66, 103, 181, 148, 22, 103, 40, 119, 126, 126, 4]), value: EventValue([207, 172, 112, 108, 156, 67, 37, 39, 137, 39, 81, 204, 114, 19, 253, 163, 213, 61, 15, 21, 43, 184, 210, 147, 188, 32, 69, 239, 31, 195, 125, 38, 49, 60, 252, 255, 107, 147, 142, 63, 189, 189, 53, 7, 165, 85, 9, 175, 159, 49, 152, 45, 230, 151, 65, 217, 230, 227, 186, 87, 16, 224, 147, 164, 5, 48, 158, 158, 76, 245, 146, 31, 52, 229, 173, 46, 197, 236, 64, 197, 154, 232, 26, 173, 189, 31, 174, 243, 83, 128, 155, 2]) }, Event { key: EventKey([4, 254, 55, 232, 65, 103, 232, 76, 193, 13, 54, 247, 76, 165, 163, 143, 248, 150, 185, 114, 124, 222, 51, 213, 172, 200, 210, 144, 196, 173, 102, 91, 105, 86, 57, 77, 133, 10, 170, 135, 146, 115, 242, 40, 34, 17, 40, 52, 169, 194, 158, 100, 34, 223, 253, 172, 15, 45, 171, 60, 142, 141, 178, 7, 249, 221, 114, 189, 252, 108, 48, 147, 60, 14, 36, 242, 51, 92, 221, 103, 33, 138, 38, 243]), value: EventValue([59, 76, 150, 88, 148, 138, 11, 224, 164, 105, 161, 212, 206, 98, 186]) }, Event { key: EventKey([120, 161, 105, 210, 198, 9, 188, 169, 145, 163, 122, 225, 234, 136]), value: EventValue([40, 85, 71, 183, 210, 189, 236, 37, 254, 205, 77, 114, 110, 45, 92, 38, 171, 212, 80, 217, 66, 90, 202, 135, 15, 64, 52]) }], receipt: 2092737491 }, TransactionReceipt { tx_hash: [157, 180, 84, 239, 169, 121, 200, 190, 14, 53, 168, 191, 220, 21, 177, 196, 41, 65, 244, 132, 194, 220, 105, 156, 116, 57, 145, 227, 11, 66, 91, 118], body_to_save: None, events: [Event { key: EventKey([92, 5, 23, 185, 123, 238, 192, 199, 25, 204, 165, 4, 133, 84, 40, 223, 216, 197, 238, 7, 185, 135, 246, 170, 62, 107, 26, 222, 143, 232, 236, 174, 62, 110, 48, 88, 253, 248, 152, 40, 99, 87, 225, 214, 226]), value: EventValue([102, 15, 29, 26, 124, 202, 161, 204, 255, 63, 127, 229, 179, 102, 165, 170, 24, 177, 224, 184, 181, 178, 2, 224, 113, 75, 26, 14, 245, 68, 195, 56, 133, 137, 156, 224, 208, 104, 35, 180, 110, 13, 162, 127, 34, 225, 171, 105, 104, 170, 245, 13, 109, 111, 167, 86, 227, 119, 122, 232, 205, 70, 155, 213, 198, 188, 77, 70, 27, 13, 27, 2, 144, 142, 101, 139, 30, 119, 167, 203, 243, 132, 82, 13, 2, 220, 219, 247, 54, 239, 123]) }, Event { key: EventKey([192, 194, 138, 189, 50, 175, 204, 166, 230, 241, 36, 170, 218, 147, 115, 233, 165, 26, 204, 100, 245, 27, 215, 163, 242, 20, 214, 247, 251, 98, 172, 86, 33, 32, 214, 186, 155, 45, 233, 1, 216, 97, 30, 34, 53, 50, 23, 111, 67, 182, 7, 4, 101, 45, 156, 127, 113, 220, 234, 110, 134, 78, 0]), value: EventValue([160, 73, 29, 19, 115, 139, 48, 15, 185, 205, 139, 219, 106, 135, 133, 105, 163, 144, 248, 115, 230, 188, 241, 245, 33, 44, 192, 82, 23, 213, 168, 248, 98, 203, 229, 141, 58, 187, 86, 17, 178, 67, 133, 108, 100, 121, 249, 129, 45, 11, 24, 90, 62, 212, 65]) }, Event { key: EventKey([25, 169, 85, 42, 149, 5, 229, 180, 101, 170, 83, 209, 195, 243, 84, 99, 183, 238, 168, 20, 60, 39, 30, 182, 37, 225, 114, 215, 68, 112, 254, 26, 162, 225, 199, 164, 221, 219, 28, 109, 58, 133, 194, 160, 4]), value: EventValue([20, 136, 236, 68, 205, 135, 191, 235, 67, 246, 52, 61, 17, 21, 48, 246, 218, 140, 238, 219, 227, 244, 147, 204, 131, 70, 139, 7, 213, 23, 3, 14, 28, 103, 62, 145, 100, 15, 247, 250, 218, 209, 172, 252, 154, 252, 108, 35, 69, 132, 218, 61, 239, 192, 171, 168, 56, 176, 90, 133, 71, 225, 152, 79, 71, 168, 208, 78, 118, 69, 253, 114, 163, 83, 5, 155, 81, 103, 226, 42, 91, 160, 0, 234, 50, 100, 214, 118, 102, 99, 81]) }, Event { key: EventKey([40, 126, 250, 160, 131, 251]), value: EventValue([7, 117, 158, 27, 39, 86, 132, 246, 75, 79, 135, 69, 111, 34, 216, 163, 238, 189, 52, 41, 232, 63, 151, 246, 34, 0, 94, 69, 197, 60, 251, 204, 30, 29, 57, 100, 140, 188, 111, 146, 115, 249, 140, 118, 224, 19, 65, 100, 58, 105, 43, 19, 178, 206, 199, 226, 235, 124, 236, 191, 248, 9, 250, 118, 95, 243, 238, 35, 254, 242, 204, 235, 58, 58, 197]) }], receipt: 2656453357 }, TransactionReceipt { tx_hash: [250, 149, 1, 84, 47, 239, 17, 5, 193, 84, 50, 227, 73, 253, 38, 159, 16, 92, 6, 230, 56, 58, 224, 137, 187, 244, 233, 211, 170, 78, 37, 32], body_to_save: Some([12, 78, 136, 105, 201, 154, 165, 208, 125, 253, 67, 58, 71, 127, 106, 121, 24, 62, 66, 0, 186, 238, 172, 246, 221, 213, 28, 227, 91, 69, 27, 12, 246, 185, 241, 25, 188, 113, 199]), events: [Event { key: EventKey([16, 76, 61, 175, 174, 5, 233, 204, 111, 190, 252, 86, 65, 213, 56, 15, 99, 221, 196, 6, 72, 37, 245, 198, 143, 26, 252, 72, 181, 203, 124]), value: EventValue([239, 210, 57, 191, 79, 252, 109, 108, 147, 146, 123, 124, 156, 63, 229, 149, 5, 217, 206, 218, 89, 154, 211, 124, 66, 213, 137, 5, 255, 24, 42, 47, 37, 176, 38, 156, 133, 162, 248, 3, 39, 103, 145, 223, 73, 176, 142, 159, 209, 35, 119, 245, 132, 195, 72, 57, 75, 13, 9, 132, 218, 37, 99]) }, Event { key: EventKey([44, 124, 131, 245, 227, 188, 198, 4, 145, 15, 148, 95, 165, 93, 210, 210, 55, 41, 193, 243, 81, 101, 213, 145, 211, 171, 20, 246, 73, 217, 74, 193, 255, 250, 68, 239, 44, 124, 53, 173, 88, 231, 240, 202, 158, 172, 26, 106, 196, 126, 200, 224, 30, 58, 191, 100, 218, 98, 243, 29, 196, 85, 89, 33, 71, 125, 122, 204, 126, 229, 132, 161, 155, 121, 57, 239, 124, 239, 169, 125, 175, 206, 12, 154, 198, 202, 5, 157, 247, 81, 64, 102, 6]), value: EventValue([67, 84, 44, 54, 214]) }, Event { key: EventKey([3, 148, 82, 10, 151, 4, 218, 75, 8, 252, 231, 202, 13, 20, 16, 167, 123, 199, 97, 131, 213, 174, 44, 123, 63, 134, 107, 59, 121, 89, 41, 78, 172, 24, 149, 133, 112, 58, 236, 24, 78, 227, 199, 102, 93, 140, 170, 15, 224]), value: EventValue([49, 229, 231, 185, 37, 48, 37]) }, Event { key: EventKey([]), value: EventValue([91, 125, 239, 76, 230, 192, 230, 71, 2, 15, 126, 241, 99, 99, 131, 188, 199, 136, 58, 54, 236, 211, 61, 184, 25, 214, 40, 37, 156, 183, 87, 190, 101, 168, 246, 111, 43, 15, 197, 225, 142, 191, 228, 205, 188, 167, 60, 195, 170, 107, 193, 53, 121, 118, 182, 0, 99, 117, 128, 227, 150, 146, 85, 63, 159, 47, 15, 97, 40, 133, 30, 169, 207, 219, 4, 21, 65, 143, 157, 112, 255, 190, 192, 65, 255, 71, 41, 229, 134, 204, 17, 82, 191, 195]) }, Event { key: EventKey([21, 101, 184, 44, 199, 237, 231, 113]), value: EventValue([164, 241, 251, 23, 157, 86, 35, 128, 92, 240, 145, 65, 74, 75, 184, 52, 246, 242, 174, 82, 229, 187, 127, 64, 8, 225, 73, 173, 202, 218, 211, 84, 49, 54, 86, 99, 201, 165, 137, 98, 105, 181, 9, 220, 166, 37, 133, 216, 76]) }, Event { key: EventKey([93, 238, 222, 6, 224, 6, 244, 19, 203, 4, 130, 74, 152, 38, 194, 45, 184, 35, 54, 162, 36, 6, 246, 157, 73, 149, 222, 151, 89, 180, 251, 150, 28, 170, 59, 245, 63, 170, 226, 191, 235, 173, 218, 231, 32, 159, 238, 114, 152, 78, 154, 198, 13, 200, 79, 145, 244, 191, 171, 134, 73, 211, 244, 104]), value: EventValue([245, 70, 190, 167, 216, 179, 160, 100, 181, 230, 236, 167, 131, 210, 108, 250, 172, 242, 234, 90, 169, 102, 184, 82, 99, 0, 54, 154, 223, 242, 39, 71, 74, 147, 242, 189, 89, 205, 44, 12, 90, 116, 51, 197, 178, 131, 114, 76, 47, 53, 182, 102, 85, 140, 231, 132, 114, 254, 211, 227, 106, 153, 67, 37, 196, 150, 181, 112, 231, 0, 80, 191, 245, 13, 144, 119, 19, 168, 162, 103, 247, 130, 193, 121, 65, 177, 224]) }, Event { key: EventKey([119, 190, 69, 143, 57, 201, 90, 194, 160, 108, 67, 104, 140, 135, 136, 171, 146, 243, 6, 64, 170, 4, 66, 19, 193, 203, 141, 194, 251, 39, 48, 104, 183, 248, 120, 52, 74, 221, 193, 32, 169, 180, 27, 220, 255, 255, 101, 194, 24, 109]), value: EventValue([]) }, Event { key: EventKey([140, 108, 148, 125, 86, 197, 119, 248, 114, 25, 229, 83, 42, 26, 41, 229, 50, 76, 98, 205, 134, 237, 69, 14, 77, 68, 190, 99, 159, 174, 38, 106]), value: EventValue([237, 68, 205, 203, 13, 250, 231, 75, 6, 14, 132, 199, 124, 31, 238, 193, 195, 221, 61, 181, 210, 218, 176, 203, 17, 71, 219, 147, 94, 7, 42, 155, 1, 203, 22, 32, 144, 127, 36, 141, 149, 189, 110, 244, 144, 251, 150, 7, 20, 164, 255, 204, 149, 196, 141, 221, 198, 96, 107, 156, 217, 120, 69, 42, 69, 150, 175, 251, 48, 46, 103, 24, 120, 39, 14, 52, 14, 158, 14, 232, 205, 129, 220]) }, Event { key: EventKey([238, 28, 37, 126, 112, 97]), value: EventValue([49, 78, 116, 171, 73, 57, 190, 193, 248, 24, 78, 128, 22, 180, 63, 144, 232, 161, 33, 214, 28, 75, 131, 169, 56, 91, 182, 54, 173, 208, 92, 182, 210, 217, 36, 129, 42, 150, 192, 181, 103, 225, 50, 197, 218, 213, 2, 157, 94, 17, 138, 153, 216, 76, 92, 46, 146, 134, 181, 216, 38, 142, 4, 129, 172, 9, 121, 163, 130, 168, 60, 96, 155, 133, 57, 107, 167, 48, 56, 48, 181, 214, 100, 4, 23, 198, 153]) }], receipt: 93914727 }, TransactionReceipt { tx_hash: [214, 234, 235, 37, 13, 156, 122, 1, 178, 219, 5, 240, 29, 119, 103, 167, 129, 35, 239, 147, 224, 106, 153, 155, 79, 60, 168, 225, 13, 197, 198, 75], body_to_save: Some([186, 118, 35, 108, 71, 252, 219, 68, 118, 21, 173, 185, 197, 239]), events: [Event { key: EventKey([15, 127, 85, 146, 189, 58, 167, 219, 209, 193, 1, 127, 159, 30, 218, 18, 158, 0, 166, 3, 165, 150, 110, 151, 207, 143, 126, 225, 19, 59, 101, 197, 117, 55, 171, 90, 111, 41, 20, 237, 145, 175, 34, 11, 15, 42, 10, 19, 206, 244, 201, 113, 196, 40, 91, 143, 174, 50, 242, 7, 251, 142, 149, 164, 65, 156, 62, 60, 40, 237, 38, 106, 109, 172, 83, 88, 237, 212, 26, 30, 147, 73, 46, 157]), value: EventValue([75, 56, 101, 212, 153, 28]) }, Event { key: EventKey([96, 242, 79, 42, 211, 219, 253, 221, 221, 22, 205, 5, 170, 167, 32, 29, 94, 115, 69, 79, 115, 139, 173, 35, 208, 132, 248, 85, 209, 16, 126, 240, 58, 238, 32, 167, 249, 81, 243, 61, 249, 150, 35, 137, 4, 25]), value: EventValue([226, 159, 90, 104, 104, 14, 178, 72, 22, 76, 8, 88, 1, 100, 105, 72, 199, 110, 136, 79, 72, 111, 148, 211, 185, 123, 131, 39, 174, 94, 138, 175, 146, 40, 175, 112, 222, 49, 30, 1, 166, 2, 181, 37, 150, 176, 83, 166, 57, 79, 103, 124, 139, 120, 190, 170, 58, 156, 170, 203, 184, 192, 106, 214, 200, 133, 57, 171, 44, 218, 164, 19, 141, 164, 11, 34, 107, 181, 64, 82, 95, 165, 56, 16, 110, 58, 198, 133, 184, 14, 116, 165, 186, 15, 29, 210, 48]) }, Event { key: EventKey([11, 94, 128, 62, 228, 92, 202, 106, 134, 89, 157, 237, 242, 242, 76, 124, 247, 74, 148, 254, 180, 88, 224, 241, 193, 206, 147, 251, 112, 62, 211, 212, 208, 81, 224, 131, 241, 147, 172, 173, 22, 121, 117]), value: EventValue([216, 32, 53, 159, 128, 150, 201, 188, 174, 121, 19, 192, 31, 8, 33, 149, 216, 109, 6, 219, 51, 34, 25, 156, 4, 67, 147, 156, 49, 173, 32, 203, 122, 251, 255, 202, 170, 150, 234, 103, 244, 145, 84, 24, 73, 108, 124, 237, 103, 115, 198, 2, 166, 192, 82, 155, 191, 221, 87, 130, 39, 176, 241, 16, 93, 12, 169, 148, 157, 187, 10, 135, 75, 203, 228, 207, 75, 246, 131, 203, 247, 186, 202, 16, 52, 177, 130, 172, 138, 52, 37, 74]) }, Event { key: EventKey([35, 166, 85, 145, 14, 192, 226, 214, 77, 48, 35, 98, 88, 211, 241, 23, 109, 104, 32, 157, 81, 122, 243, 98, 89, 67, 119, 100, 218, 31, 195, 122, 220, 61, 36, 93, 60, 99, 27, 101, 39, 135, 183, 154, 71, 202, 233, 217, 40, 150, 47, 237, 178, 162, 207, 9, 144, 24]), value: EventValue([134, 207, 231, 83, 13]) }, Event { key: EventKey([135, 82, 121, 102, 68, 4, 111, 68, 160, 17, 35, 32, 35, 167, 121, 65, 13, 90, 220, 21, 75, 74, 234, 95, 205, 145, 243, 134, 19, 80, 90, 121, 227, 52, 120, 79, 85, 244, 95, 83, 232, 127, 128, 137, 41, 161, 167, 150, 244, 29, 178, 49, 2, 111, 59, 175, 91, 228, 16, 96, 160, 193, 254, 8, 217, 184, 116, 15, 102, 80, 2, 170, 62, 161, 217, 241, 18, 87, 106, 223, 4, 221, 39, 253, 226, 215, 42, 185, 194, 192, 82, 10]), value: EventValue([208, 204, 224, 84, 53, 60, 0, 239, 128, 194, 147, 160, 0, 32, 234, 101, 56, 128, 132, 68, 196, 227, 132, 46, 111, 91, 85, 181, 36, 242, 186, 128, 46, 169, 221, 243, 128, 34, 66, 86, 50, 191, 253, 42, 88, 201, 179, 101, 57, 191, 147, 13, 166, 196, 108, 144, 13, 96, 42, 1, 235]) }, Event { key: EventKey([1, 217, 67, 210, 95, 5, 109, 27, 177, 203, 65, 127, 125, 51, 39, 104, 205, 165, 40, 178, 246, 48, 36, 199, 223, 77, 52, 140, 83, 128, 93, 163, 229, 240, 173, 102, 15, 35, 88, 138, 35, 202, 74, 3, 127, 215, 167, 182, 127, 38, 61, 31, 114, 23, 151, 198, 95, 121, 254, 127, 74, 4, 80, 68, 81, 148, 85, 179, 73, 234, 137, 123, 72, 121, 12, 108, 171, 46, 102, 188, 52, 167, 52]), value: EventValue([153, 27, 51, 135, 221, 28, 241, 7, 130, 114, 254, 110, 52, 129, 139, 95, 150, 228, 226, 22, 91, 190, 215, 200, 48, 216, 209, 2, 80, 50, 63, 238, 202, 190, 106, 29, 181, 49, 91, 13, 152, 67, 2, 49, 199, 89, 167, 112, 254, 193, 24, 41, 209, 208, 125, 24, 241, 235, 251, 231, 5, 74, 161, 5, 148, 80, 193, 160, 183, 171, 157, 248, 100, 30, 236, 81, 163, 242, 67, 53, 209, 253, 220, 78, 161, 91, 67, 189, 245, 94]) }, Event { key: EventKey([85, 215, 3, 51, 252, 34, 130, 124, 50, 205, 219, 177, 32, 160, 164, 221, 93, 125, 145, 33, 100, 5, 24, 3, 125, 157, 186, 42, 217, 238, 125, 241, 146, 75, 226, 124, 252, 210, 52, 30, 124, 244, 140, 180, 242, 21, 31, 131, 143, 157, 51, 33, 8, 188]), value: EventValue([231, 18, 214, 8, 181, 37, 233, 115, 118, 123, 5, 42, 248, 114, 153, 246, 224, 236, 251, 152, 244, 93, 36, 44, 10, 116, 4]) }], receipt: 2093845596 }, TransactionReceipt { tx_hash: [240, 176, 182, 137, 69, 204, 164, 32, 49, 163, 133, 97, 111, 177, 216, 244, 181, 198, 180, 13, 6, 132, 182, 254, 56, 124, 118, 63, 240, 114, 130, 75], body_to_save: Some([177, 36, 140, 63, 239, 16, 37, 175, 20, 118, 111, 24, 199, 244, 190, 170, 0, 14, 181, 125, 11, 145, 41, 221, 49, 70, 181, 145, 93, 27]), events: [Event { key: EventKey([9, 157, 58, 146, 84, 113, 118, 95, 201, 160, 201, 2, 244, 141, 165, 100, 33, 205, 233, 223, 100, 221, 223, 147, 30, 164, 176, 126, 156, 174, 155, 220, 101, 22, 151, 217, 229, 246, 45, 97, 46, 52, 180, 47, 231, 139, 86, 245, 210, 190, 233, 52, 157, 30, 191, 216, 18, 73, 88, 55, 6, 141, 165, 97, 126, 56, 12, 195, 198, 142, 84, 1, 183, 172, 35, 132, 112, 228]), value: EventValue([112, 142, 171, 139, 11, 156, 187, 38, 223, 21, 166, 202, 184, 215, 117, 5, 124, 179, 24, 120, 94, 93, 129, 146, 23, 12, 254, 109, 32, 125, 15, 240, 48, 75, 50, 135, 105, 89, 172, 104, 192, 173, 50, 25, 90, 126, 150, 206, 210, 165, 128, 102, 236, 178, 37, 154, 131, 197, 116, 251, 119, 76, 99, 54, 104, 246, 176, 44, 200, 222, 243, 241, 122, 236, 138, 229, 21, 11, 68, 129, 142, 96, 85, 185, 255, 172, 23, 42]) }, Event { key: EventKey([200, 98, 152, 47, 175, 75, 128, 166, 27, 200, 192, 242, 207, 78, 0, 248, 52, 49, 224]), value: EventValue([53, 217, 172, 28, 254, 215, 11, 215, 199, 87, 62, 55, 220, 22, 253, 42, 211, 19, 190, 179, 241, 138, 137, 248, 196, 95, 79, 24, 19, 114, 232, 176, 100, 170, 190, 14, 246, 227, 194, 101, 188, 129, 10, 187, 26, 139, 251, 34, 53, 155, 161, 219, 25, 164, 42, 233, 181, 119, 169, 112, 154, 81, 148, 177, 128, 1, 231, 213, 228, 111, 87, 125, 128, 99, 209, 44, 0, 117, 74, 61, 117, 152, 177, 55, 28, 189, 74, 77, 127, 222, 70, 74, 101, 146, 202, 123, 246]) }, Event { key: EventKey([40, 159, 233, 178, 101, 4, 154, 6, 100, 104, 110, 245, 195, 85, 127, 137, 60, 233, 195, 190, 124, 165, 36, 13, 250, 208, 142, 193, 58, 167, 225, 82, 165, 231, 91, 251, 176, 87, 239, 6, 0, 136, 80, 26, 83, 134, 71, 224, 32, 123, 246, 108, 254, 245, 133, 157, 136, 62, 26, 6, 255, 205, 183, 58, 124, 245, 145, 171, 14, 19, 144, 231, 45, 12, 168, 99, 47, 93, 119, 25, 39, 193, 103, 49, 150, 70, 194, 194]), value: EventValue([83, 27, 31, 114, 245, 54, 141, 21, 136, 127, 70, 127, 111, 78, 189, 189, 97, 167, 175, 67, 91, 193, 77, 253, 143, 106, 13, 135, 177, 206, 34, 206, 162, 156, 182, 81, 193, 224, 26, 121, 89, 208, 146, 181, 160, 26, 228, 138, 170, 241, 174, 175, 197, 20, 64, 144, 200, 188, 168, 171, 130, 105, 250, 190, 126, 61, 1, 222, 176, 225, 44, 46, 60, 140, 74, 57, 204, 10, 77, 156, 35, 128, 24, 171, 147]) }, Event { key: EventKey([60, 104, 35, 15, 147, 143, 46, 229, 68, 93, 9, 206, 235, 252, 11, 47, 243, 95, 220, 134, 80, 204, 134, 141, 59, 199, 155, 196, 17, 108, 158, 197, 205, 142, 237]), value: EventValue([157, 78, 207, 235, 31, 236, 214, 192, 242, 174, 122, 153, 235, 62, 254, 190, 55, 136, 249, 124, 42, 185, 45, 38, 70, 224, 47, 208, 232, 181, 8, 197, 191, 199, 133, 189, 84, 180, 252, 140, 183, 206, 71, 56, 97, 42, 228, 30, 7, 199, 47, 167, 72, 91]) }, Event { key: EventKey([181, 128, 211, 95, 200, 58, 1, 171, 102, 94, 131, 152, 186, 10, 228, 229, 60, 227, 218, 18, 207, 243, 33, 212, 185, 212, 61, 21, 81, 222, 127, 175, 166, 39, 101, 236, 102, 54, 54, 25]), value: EventValue([203, 216, 32, 211, 205, 97, 230, 182, 126, 75, 199, 219, 12, 177, 7, 116, 171, 26, 117, 251, 64, 47, 47, 195, 195, 30, 57, 77, 77, 132, 235, 29, 20, 247, 190]) }, Event { key: EventKey([239, 76, 29, 15, 18, 254, 174, 131, 251, 1, 160, 70, 39, 127, 112, 38, 144, 168, 63, 32, 229, 123, 157, 91]), value: EventValue([164, 250, 93, 147, 179, 218, 243, 87, 200, 177, 143, 146, 173, 144, 211, 246, 133, 189, 203, 38, 165, 94, 225, 214, 12, 181, 26, 190, 192, 224, 130, 93, 114, 62, 15, 69, 240, 48, 117, 113, 246, 198, 201, 22, 120, 216, 121, 249, 152, 15, 73, 191, 73, 6, 54, 201, 43, 62, 18, 224, 221, 216, 182, 138, 94, 158, 96, 178, 66, 106, 78, 213, 29, 186, 31, 67]) }, Event { key: EventKey([82, 157, 206, 239, 184, 154, 211, 131, 157, 177, 127, 138, 98, 185, 22, 16, 238, 93, 64, 103, 173, 145, 52, 25, 108, 167, 181, 197, 135, 44, 239, 237, 137, 75, 55, 65, 56, 145, 231, 73, 187, 93, 228, 212, 121, 78, 30, 99, 176, 100, 54, 222, 234, 73, 45, 0, 50, 172, 158, 81, 113, 32, 228, 99, 95, 26, 249, 126, 66, 67, 63, 94, 173, 99, 12, 84, 108, 190, 113, 7, 186, 106, 65, 102, 16, 81]), value: EventValue([22, 91, 175, 161, 7, 86, 7, 63, 88, 154, 98, 154, 44, 9, 158, 244, 69, 201, 189, 23, 130, 126, 239, 192, 185, 6, 175, 215, 131, 129, 79, 89, 227, 77, 246, 184, 130, 95, 190, 221, 160, 249, 24, 170, 174, 143, 226, 173, 232, 25, 114, 230, 221, 63, 212, 83, 190, 191, 26, 88, 246, 113, 209, 58, 99, 70, 195, 242, 86, 161, 27, 128, 1, 113, 215, 246, 195, 10, 154, 40, 5, 168, 211, 78, 221, 152, 149, 157]) }, Event { key: EventKey([158, 61, 14, 135, 77, 79, 245, 237, 211, 146, 254, 112, 31, 195, 20, 113, 16, 184, 252, 207, 8, 191, 155, 218, 79, 126, 251, 174, 155, 73, 205, 141, 25, 156, 50, 249]), value: EventValue([226, 90, 128, 55, 39, 220, 188, 16, 13, 183, 163, 109, 135, 42, 168, 207, 237, 73, 21, 181, 77]) }], receipt: 695856081 }], inner: 3126913480 }, BatchReceipt { batch_hash: [35, 243, 193, 1, 180, 177, 58, 59, 191, 197, 198, 196, 174, 183, 33, 149, 245, 137, 33, 108, 146, 174, 237, 213, 149, 166, 172, 0, 128, 251, 67, 210], tx_receipts: [TransactionReceipt { tx_hash: [234, 32, 75, 59, 83, 23, 69, 123, 58, 73, 83, 88, 44, 10, 147, 157, 228, 139, 165, 101, 4, 187, 161, 220, 73, 244, 108, 28, 218, 115, 167, 223], body_to_save: None, events: [Event { key: EventKey([192, 129, 99, 33, 7, 19, 5, 57, 152, 185, 124, 9, 82, 21, 252, 127, 1, 147]), value: EventValue([206, 9, 76, 162, 59, 231, 218, 56, 50, 19, 195, 138, 149, 111, 214, 247, 64, 250, 109, 39, 140, 176, 230, 50, 206, 243, 205, 240, 189, 214, 151, 134, 91, 48, 16, 170, 204, 37, 249, 185, 38, 38, 253, 206, 13, 97, 3, 191, 206, 114, 164, 66, 75, 49, 14, 7, 14, 134, 85, 73, 195, 36, 171, 124, 242, 43, 24, 211, 90, 73, 44, 176, 222]) }, Event { key: EventKey([64, 234, 19, 47, 246, 117, 46, 1, 222, 75, 103, 119, 121, 224, 37, 214, 201, 231, 224, 197, 237, 46, 212, 156, 48, 85, 240, 239, 176, 207, 71, 200, 188, 28, 162, 167, 174, 121, 203, 64, 204, 98, 80, 13, 102, 158, 11, 62, 84, 112, 96, 41, 149, 72, 31, 149, 39, 80, 184, 201, 200, 187, 9, 52, 208]), value: EventValue([20, 170, 115, 20, 191, 23, 206, 50, 9, 26, 57, 23, 25, 106, 68, 119, 254, 213, 235, 61, 40, 173, 171, 143, 74, 49, 171, 120, 223, 176, 227, 126, 181, 244, 198, 10, 138, 20, 52, 51, 132, 222, 46, 34, 174, 73, 24]) }, Event { key: EventKey([195, 171, 111, 31, 79, 41, 104, 160, 244, 226, 97, 31, 253, 138, 236, 17, 45, 80, 254, 154, 10, 105, 249, 48, 104, 63, 50, 155, 223, 2, 32, 211, 114, 3, 218, 29, 68, 15, 230, 174, 212, 19, 120, 118, 9, 157, 86, 106, 128, 57, 41]), value: EventValue([20, 164, 199, 245]) }, Event { key: EventKey([203, 213, 36, 0, 70, 247, 206, 178, 208, 147, 188, 251, 179, 203, 53, 154, 0, 14, 167, 126, 136, 104, 234, 82, 75, 114, 80, 113, 250, 111, 244, 128, 167, 55, 164, 44, 37, 154, 252, 92, 149, 80, 210, 140, 64, 90, 141, 43, 206, 87, 219, 52, 22, 249, 130]), value: EventValue([148, 181, 176, 101, 217, 139, 140, 191, 76, 106, 32, 35, 30, 202]) }, Event { key: EventKey([17, 108, 97, 70, 182, 153, 68, 172, 147, 178, 83, 74, 85, 184, 205, 255, 31, 8, 176, 201, 229, 91, 33, 151, 17, 1, 53, 203, 121, 131, 247, 162, 151, 135, 81, 48, 191, 183, 47, 248, 53, 197, 12, 57, 125, 156, 81, 163, 164, 125, 240, 178, 53, 143, 64, 80, 221]), value: EventValue([83, 239, 80, 246, 197, 87, 193, 244, 55, 50, 147, 108, 135, 180, 49, 56, 66, 186, 19, 69, 128, 63, 178, 98, 139, 47, 105, 47, 246, 151, 208, 48, 177, 32, 16, 87, 95, 230, 72, 249, 135, 253, 195, 171, 108, 113, 61, 243, 35, 142, 54, 81, 120, 212, 85, 125, 250, 22, 201, 145, 220, 39, 13, 87, 119, 171, 74, 217, 149, 76, 190, 231, 188, 116]) }], receipt: 2918560081 }], inner: 1342487436 }], num_txs: 37, num_events: 209 }, SlotCommit { slot_data: TestBlock { curr_hash: [116, 241, 74, 168, 10, 218, 245, 166, 4, 159, 149, 223, 219, 21, 244, 97, 40, 178, 225, 206, 239, 103, 1, 128, 179, 50, 218, 88, 215, 149, 130, 184], header: TestBlockHeader { prev_hash: TestHash([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) } }, batch_receipts: [BatchReceipt { batch_hash: [105, 175, 120, 85, 89, 12, 7, 132, 235, 122, 173, 77, 101, 10, 158, 121, 238, 200, 19, 93, 120, 142, 128, 87, 215, 233, 185, 107, 236, 200, 8, 173], tx_receipts: [TransactionReceipt { tx_hash: [108, 186, 187, 136, 183, 232, 232, 213, 41, 230, 88, 46, 224, 20, 161, 250, 242, 251, 41, 129, 153, 245, 75, 42, 17, 37, 173, 56, 139, 132, 19, 76], body_to_save: None, events: [Event { key: EventKey([129, 11, 203, 116, 233, 199, 166, 103, 37, 159]), value: EventValue([92, 213, 166, 148, 217, 27, 96, 88, 115, 234, 138, 107, 148, 49, 221, 4, 208, 120, 171, 140, 162, 46, 246, 192, 102, 51, 248, 39, 79, 204, 55, 189, 216, 249, 208, 87, 242, 184, 112, 165, 195, 117, 131, 60, 55, 72, 104, 222, 80, 4, 139, 204, 110, 217, 18, 239, 107, 196, 95, 160, 171, 162, 149, 21, 193, 44, 252, 213, 30, 233, 234, 11, 248, 128, 145, 7, 231, 251, 179, 202, 18, 54, 239, 20, 238, 73, 219, 60, 14, 135]) }, Event { key: EventKey([110, 119, 137, 54, 223, 37, 141, 147, 144, 165, 109, 112, 177, 124, 111, 65, 172, 106, 165, 177, 193, 89, 62, 182, 183, 128, 120, 116, 80, 167, 148, 229, 236, 104, 206, 43, 50, 45, 215, 131, 70, 247, 77, 37, 155, 200, 29, 86, 100, 143, 52, 18, 138, 4, 50, 223, 89, 82, 75, 110, 26, 55, 16]), value: EventValue([139, 49, 210, 111, 63, 34, 7, 135, 20, 8]) }, Event { key: EventKey([20, 68, 16, 203, 171, 9, 184, 128, 215, 74, 235, 109, 26, 125, 106, 252, 176, 50, 227, 129, 54, 98, 103, 77, 26, 77, 229, 67, 219, 147, 198, 140, 191, 248, 128, 237, 166, 220, 52, 94, 164, 255, 72, 64, 175, 227, 64, 199]), value: EventValue([84, 215, 45, 191, 172, 225, 248, 220, 44, 176, 173, 24, 70, 141, 93, 174, 73, 123, 7, 153, 12, 207, 146, 162, 197, 206, 226, 197, 241, 113, 125, 176, 174, 83, 214, 140, 100, 25, 215, 146, 194, 149, 35, 20, 50]) }], receipt: 3836109648 }, TransactionReceipt { tx_hash: [137, 86, 109, 70, 221, 103, 68, 165, 90, 147, 12, 48, 4, 62, 74, 148, 196, 233, 68, 120, 129, 39, 50, 101, 73, 130, 116, 57, 209, 106, 9, 134], body_to_save: None, events: [Event { key: EventKey([16, 37, 147, 150, 54, 113, 249, 177, 119, 19, 60, 90, 134, 222, 245, 167, 85, 83, 244, 62, 98, 122, 149, 82, 52, 224, 65, 208, 249, 38, 7, 209, 28, 171, 212, 65, 23, 28, 91, 187, 169, 97, 83, 72, 238, 79, 57, 142, 80, 82, 89, 239, 127, 28, 8, 193, 142, 46, 152, 77, 214, 208, 71, 89, 13, 131, 147, 86, 78, 8, 113, 62, 178, 101, 148]), value: EventValue([231, 143, 91, 115, 40, 188, 181, 250, 185, 201, 32, 14]) }, Event { key: EventKey([55, 77, 12, 137, 49, 166, 98, 222, 88, 223, 243, 167, 233, 114, 157, 131, 131, 8, 239, 133, 188, 36, 170, 40, 205, 149, 137, 75, 102, 217, 21, 15, 176, 120, 37, 230, 153, 122, 200, 77, 70, 47, 117, 48, 31, 162, 93, 43, 21, 141, 69, 237, 89, 2, 226, 104, 218, 140, 14, 194, 59, 33, 233]), value: EventValue([195, 138, 134, 146, 123, 169, 179, 76, 152, 215, 242, 81, 136, 82, 231, 94, 67, 2, 65, 225, 221, 122, 62, 93, 237, 225, 153, 73, 240, 126, 246, 237, 8, 159, 114, 201, 18, 156, 213, 11, 242, 53, 97, 115, 229, 52, 78, 134, 135, 124, 5, 207, 69, 84, 209, 181, 44]) }, Event { key: EventKey([176, 253, 240, 207, 114, 170, 78, 25, 224, 93, 175, 88, 42, 183, 84, 33, 106, 135, 15, 22, 49, 244, 237, 81, 34, 37, 96, 245]), value: EventValue([52, 2, 119, 247, 194, 74, 179, 180, 7, 118, 48, 254, 223, 27, 42, 208, 82, 107, 103, 255, 92, 231, 73, 121, 227, 176, 96, 72, 82, 87, 31, 80, 40, 238, 113, 11, 122, 87, 218, 118, 149, 172, 241, 155, 238, 115, 164, 196, 168, 65, 118, 238, 212, 64, 252, 102, 75, 160, 78, 227, 45, 234, 238, 107, 158, 5, 156, 250, 118, 3, 196, 15, 32, 93, 67, 148, 16, 58, 236, 153, 85, 199, 145, 55, 64, 148, 240, 18, 186, 43, 78, 102, 148, 90, 13, 106]) }, Event { key: EventKey([174, 34, 238, 152, 9, 166, 53, 132, 114, 228]), value: EventValue([189, 115, 212, 66, 202, 56, 152, 98, 169, 72, 152, 250, 119, 110, 129, 200, 19, 53, 52, 135, 191, 61, 197, 219, 209, 160, 121, 58, 40, 198, 63, 163, 191, 42, 182, 86, 163, 117, 68, 211, 178, 234, 134, 96, 137, 58, 110, 148, 145, 96, 215, 110, 39, 43, 57, 217, 111, 74, 44, 156, 16, 126, 184, 175, 145, 217, 133, 173, 160, 122, 141, 103, 57, 166, 207, 227, 214, 199, 161, 82, 224, 57, 252, 6, 163, 69, 133, 54, 74, 191, 21, 65, 67, 238, 120, 202, 26, 213, 198]) }, Event { key: EventKey([60, 61, 178, 199, 235, 3, 253, 15, 112, 27, 12, 76, 147, 241, 10, 116, 150, 114, 52, 230, 163, 177, 216, 51, 200, 180, 51, 177, 251, 158, 41, 252, 66, 24, 74, 55, 252, 162, 67, 67, 124, 172, 188, 249, 243, 101, 5, 101, 4, 246, 58, 236, 152]), value: EventValue([191, 58, 121, 57, 8, 105, 191, 97, 182, 250, 73, 43, 2, 46, 244, 32, 165, 221, 181, 167, 53, 102, 5, 115, 61, 193, 110, 94, 186, 249, 137, 129, 84, 6, 86, 86, 72, 196, 223, 248, 13, 248, 175, 237, 187, 251, 39, 227, 252, 208, 73, 39, 191, 213, 106, 202, 244, 213, 211, 36, 54, 33, 47, 96, 38, 223, 239, 107, 214, 44, 180, 62, 32, 121, 151, 140, 48, 185, 3, 186, 221, 212, 107, 122, 239, 93, 4, 184, 244, 180, 63, 239, 28, 18, 31, 86]) }, Event { key: EventKey([171, 169, 243, 226]), value: EventValue([109, 77, 44, 73, 147, 23, 88, 4, 138, 224, 130, 100, 33, 122, 182]) }, Event { key: EventKey([59, 57, 245, 112, 37, 176, 206, 166, 0, 6, 48, 170, 58, 20, 55, 220, 187, 110, 3, 131, 71, 240, 226, 26, 46, 83, 72, 245, 237, 121, 248, 184, 217, 135, 84, 94, 58, 255, 113, 1, 49, 221, 109, 27, 30, 113, 37, 58, 169, 150, 202, 46, 242, 52, 41, 157, 42, 199, 241, 90, 164, 168, 10, 167, 23, 169, 64]), value: EventValue([79, 175, 127, 10, 158, 219, 10, 70, 206, 69, 10, 237, 121, 250, 211, 113, 237, 170, 14, 191, 62, 181, 167, 207, 89, 195, 138, 70, 124, 129, 145, 240, 163, 198, 108, 123, 85, 101, 56, 30, 78, 207, 248, 130, 41, 218, 8, 151, 13, 58, 220, 71, 104, 150, 55, 202, 225, 196, 189, 157, 23, 66, 164, 37, 140, 254, 183]) }], receipt: 1070129144 }], inner: 3003266041 }, BatchReceipt { batch_hash: [60, 117, 206, 219, 102, 231, 144, 135, 81, 42, 184, 245, 84, 193, 239, 98, 250, 126, 184, 198, 222, 139, 98, 220, 123, 119, 104, 106, 141, 9, 185, 18], tx_receipts: [TransactionReceipt { tx_hash: [190, 169, 155, 152, 225, 203, 18, 128, 45, 207, 90, 207, 163, 59, 170, 203, 83, 73, 69, 56, 112, 38, 208, 172, 184, 147, 226, 87, 215, 216, 144, 50], body_to_save: Some([109, 195, 149, 170, 229, 201, 75, 250, 154, 113, 244, 120, 0, 12, 161, 15, 156, 19, 3, 178, 247, 180, 176, 179, 104, 40, 47, 57, 92, 244, 54, 229, 42, 53, 76, 209, 186, 198, 175, 57, 237, 31, 34, 204, 83, 67, 89, 141, 208, 165, 250, 191, 222, 238, 59, 116, 202, 201, 181, 244, 237, 172, 25, 57, 32, 147, 95, 70, 178, 93, 174, 210, 45, 206, 106, 155, 21, 148, 224, 243, 241, 12, 229, 121, 172, 28, 210, 138, 114, 211, 160, 26, 47, 247, 83, 167, 244, 55]), events: [Event { key: EventKey([205, 113, 7, 86, 178, 179, 230, 157, 137, 68, 26, 237, 108, 153, 90, 187, 187, 128, 23, 50, 209, 59, 6, 35, 194, 158, 32, 200, 221, 60, 129, 250, 21, 191, 44, 214, 246, 94, 51, 82, 140, 35, 62, 169, 204, 61, 9, 41, 242, 145, 71, 119, 151, 86, 214, 48, 227, 246, 43, 103, 167]), value: EventValue([133, 120, 45, 59, 16, 208, 181, 21, 114, 167, 86, 193, 250, 217, 224, 204, 113, 129, 97, 203, 38, 73, 155, 217, 107, 65, 204, 121, 42, 108, 255]) }, Event { key: EventKey([200, 30, 152, 242, 2, 139, 117, 112, 246, 176, 163, 145, 100, 54, 76, 83, 22, 207, 123, 250, 232, 20, 82, 12, 237, 109, 89, 112, 110, 163, 60, 157, 221, 119, 139, 58, 80, 165, 218, 245, 60, 62, 55, 94, 217, 167, 229, 47, 27, 145]), value: EventValue([83, 207, 46, 50, 33, 198, 224, 32, 61, 58, 254, 116, 189, 232, 191]) }, Event { key: EventKey([195, 224, 238, 203, 223, 253, 36, 134, 32, 74, 4, 227, 27, 208, 183, 107, 183, 24, 80, 140, 198, 67, 214, 87, 107, 238, 111, 249, 247, 100, 228, 237, 137, 165, 191]), value: EventValue([30, 226, 47, 135, 72, 38, 169, 54, 189, 227, 63, 249, 173, 206, 85, 136, 64, 165, 83, 75, 49, 223, 194, 121, 254, 46, 184, 117, 189, 41, 74, 165, 129, 5, 210, 148, 61]) }], receipt: 1053301513 }, TransactionReceipt { tx_hash: [185, 172, 206, 75, 97, 69, 142, 213, 40, 32, 1, 39, 137, 204, 181, 82, 249, 98, 128, 120, 68, 62, 207, 76, 236, 143, 144, 79, 75, 189, 169, 100], body_to_save: Some([24, 107, 94, 204, 128, 30, 60, 254, 11, 58, 39, 221, 162, 253, 176, 221, 8, 169, 230, 159, 231, 112, 213, 181, 58, 176, 215, 145, 34, 190, 25, 75, 104, 152, 59, 62, 221, 27, 99, 136, 96, 223, 163, 191, 43, 221, 113, 94, 243, 205, 215, 247, 66, 111, 77, 211, 49, 183, 121]), events: [Event { key: EventKey([119, 241, 64, 6, 203, 204, 33, 22]), value: EventValue([221, 67]) }, Event { key: EventKey([73, 253, 204, 191, 211, 204, 122, 10, 108, 196]), value: EventValue([81, 25, 156, 161, 40, 76, 46]) }, Event { key: EventKey([248, 20, 237, 104, 75, 93, 43, 125, 0, 152, 12, 0, 31, 19, 59, 45, 53, 87, 66, 191, 104, 183, 231, 20, 100, 184, 116, 17, 6, 84, 15, 201, 246, 68, 227, 97, 59, 242, 30, 131, 19, 78, 194, 197, 233, 18, 39, 105, 145, 152, 9, 176, 183, 102, 11, 98, 92, 20, 90, 33, 228, 101, 104, 83, 120, 136, 24]), value: EventValue([139, 100, 76, 201, 162, 37, 184, 162, 96, 30, 125, 144, 31, 233, 39, 14, 82, 31, 225, 96, 36, 164, 19, 156, 113, 224, 234, 19, 222, 1, 203, 197, 58, 128, 255, 96, 70, 204, 233, 45, 158, 111, 141, 137, 162, 103, 8, 28, 109, 185, 209, 71, 18, 71, 101, 253, 160, 114, 206, 108, 151, 77, 220, 226, 113, 167, 82, 121, 207, 113, 205, 119, 40, 176, 31, 238, 97, 228, 178, 91, 54, 242, 141, 158, 209]) }, Event { key: EventKey([91, 70, 208, 88, 32, 56, 17, 99, 133, 63, 154, 91, 205, 62, 133, 52, 190, 18, 33, 202, 31, 234, 151, 160, 6, 196, 118, 115, 0, 70, 107, 81, 204, 131, 200, 73, 123, 182, 18, 48, 40, 139, 152, 214, 248, 22, 135, 151, 122, 129, 159, 79, 244, 12, 144, 68, 97, 21, 181, 30, 74, 245, 244, 51, 5, 87, 177, 145, 56, 121, 227, 237, 23, 0, 13, 190, 210, 180, 110, 253, 231, 154, 117, 174, 30, 47, 199, 185]), value: EventValue([230, 12, 135, 117, 127, 28, 73, 12, 134, 124, 27, 184, 245, 87, 18, 138, 11, 42, 240, 23, 68, 244, 54, 70, 105, 42, 240, 117, 83, 31, 154, 72, 62, 48, 210, 248, 12, 171, 61, 38, 45, 45, 93, 95, 195, 239, 138, 181, 3, 138, 79, 91, 223, 212, 5, 134, 17, 199, 94, 62, 188, 225, 180, 39, 49, 69, 219, 228, 47, 174, 61, 246, 210, 163, 214, 233, 137, 223, 144, 104, 26, 95, 227]) }, Event { key: EventKey([10, 195, 161, 185, 147, 39, 65, 0, 86, 27, 27, 174, 106, 32, 198, 88, 93, 253, 37, 195, 14, 56, 102, 208, 175, 62, 28, 56, 97, 90, 252, 74, 132, 132, 223, 198, 184, 201, 101, 39, 229, 209, 199, 108, 142, 108, 114, 69, 125, 88, 49, 147, 5, 215, 176, 120, 146, 86, 4, 98, 0, 6, 25, 63, 107, 170, 103, 113, 211, 71, 191, 253, 214, 52, 78, 27, 158, 75, 131, 74, 193, 236, 86, 93, 192]), value: EventValue([113, 128, 87, 4, 244, 251, 57]) }, Event { key: EventKey([35, 202, 70, 15, 110, 137, 51, 254, 253, 222, 173, 181, 116, 76, 6, 123, 241, 151, 172, 174, 142, 110, 98, 244, 190, 146, 211, 204, 244, 22, 118, 78, 155, 208, 217, 41, 76, 23, 176, 10, 82, 66, 44, 182, 192, 38, 122, 100, 106, 183, 168, 103, 195, 196, 241, 164, 222, 81, 252, 125, 75, 114, 95, 165, 155, 75, 164, 81, 229, 68, 116, 231, 232, 79, 123, 178, 120, 0, 153, 4, 236, 109, 132, 214, 232, 122, 157, 96, 6, 201, 218, 13, 250, 86, 46, 145]), value: EventValue([101, 189, 130, 69, 181, 219, 13, 79, 210, 71, 88, 175, 10, 95, 121, 216, 209, 40, 231, 205, 70, 12, 154, 17]) }, Event { key: EventKey([157, 195, 97, 90, 65, 156, 212]), value: EventValue([243, 118, 178, 73, 154, 10, 17, 136, 207, 24, 202, 148, 145, 47, 236, 35, 5, 253, 255, 31, 220, 61, 213, 109, 4, 88, 69, 2, 210, 127, 160, 190, 154, 79, 32, 191]) }], receipt: 3931704751 }, TransactionReceipt { tx_hash: [39, 84, 213, 211, 95, 199, 132, 13, 48, 75, 113, 212, 254, 48, 145, 122, 11, 187, 158, 237, 242, 29, 95, 234, 221, 9, 232, 96, 168, 50, 167, 139], body_to_save: None, events: [Event { key: EventKey([173, 234, 81, 93, 51, 94, 110, 30, 64, 88, 154, 201, 24, 85, 78, 222, 51, 119, 8, 197, 127, 208, 85, 84, 153, 97, 137, 90, 25, 240, 136, 220, 71, 60, 240, 91, 205, 155, 116, 26, 176, 115, 214, 199, 219, 34, 121, 73, 134, 144, 18, 43, 220, 1, 158]), value: EventValue([151, 1, 17, 33, 206, 26, 176, 149, 136, 222, 205, 45, 253, 230, 172, 140, 235, 232, 195, 237, 99, 89, 19, 17, 153, 62, 42, 100, 154, 202, 160, 202, 174, 235, 129, 212, 121, 146, 10, 77, 104, 70, 164, 86, 49, 4, 157, 226, 95, 79, 217, 136, 125, 178, 164, 246, 227, 251, 154, 168, 192, 172, 207, 153, 115, 100]) }, Event { key: EventKey([220, 153, 85, 59, 222, 184, 26, 124, 123, 39, 233, 113, 150, 63, 145, 212]), value: EventValue([254, 122, 255, 63, 82, 6, 124, 178, 1, 138, 58, 122, 109, 14, 122, 220, 195, 177, 234, 26, 138, 124, 40, 141, 221, 255, 131, 129, 6, 90, 177, 46, 117, 77, 97, 148, 124, 223, 132, 247, 246, 193, 223, 180, 127, 72, 16, 228, 253, 247, 141, 190, 104, 123, 17, 186, 254, 114, 32, 141, 76, 36, 167, 81, 58, 201, 69, 55, 78, 65]) }, Event { key: EventKey([108, 21, 129, 9, 175, 90, 13, 238, 38, 82, 198, 6, 102, 86, 52, 54, 192, 217, 225, 220, 104, 211, 124, 190, 20, 219, 128, 131, 116, 217, 111, 108, 150, 182, 197, 62, 152, 116, 156, 250, 46, 224, 156, 95, 228, 132, 85, 109, 92, 215, 66, 216, 5, 147, 213, 244, 104, 24, 29, 208, 23, 117, 247, 154, 107, 188, 180, 118, 93, 149, 158, 210, 200, 231, 133, 157, 63, 103, 105, 189, 193, 50]), value: EventValue([99, 121, 147, 12, 53, 227, 48, 77, 248, 205, 171, 213, 186, 123, 73, 44, 31, 168, 180, 45, 122, 204, 87, 239, 251, 112, 77, 241, 102, 177, 184, 2, 3, 200, 75]) }], receipt: 493562479 }, TransactionReceipt { tx_hash: [209, 41, 153, 77, 9, 128, 191, 245, 216, 213, 160, 44, 192, 23, 208, 183, 110, 181, 132, 210, 189, 43, 242, 68, 158, 219, 206, 192, 99, 238, 97, 207], body_to_save: Some([72, 33, 99, 112, 241, 149, 190, 199, 91, 22, 240, 162, 123, 147, 167, 172, 202, 9, 56, 132, 30, 193, 125, 118, 121, 23, 250, 90, 160, 227, 148, 200, 85, 24, 200, 77, 244, 81, 172, 226, 40, 159, 38, 218, 77, 65, 249, 32, 82, 194, 107, 192, 57, 185, 117, 0, 198, 28, 53, 128, 251, 113, 112, 162, 193, 163, 71, 173]), events: [], receipt: 1783391650 }, TransactionReceipt { tx_hash: [97, 7, 189, 209, 192, 168, 75, 197, 108, 247, 233, 8, 77, 86, 238, 169, 19, 92, 46, 174, 199, 150, 62, 240, 206, 196, 241, 62, 225, 130, 198, 144], body_to_save: Some([110, 248, 17, 129, 195, 186, 13, 24, 81, 148, 42, 2, 207, 169, 228, 16, 167, 20, 1, 74, 124, 126, 173, 54, 40, 141, 220, 183, 61, 1, 136, 34, 65, 226, 46, 165, 252, 1, 220, 33, 138, 49, 183, 234, 86, 126, 63, 217, 89, 208, 60, 140, 219]), events: [Event { key: EventKey([104, 128, 80, 152, 159, 250, 197, 147, 76, 127, 223, 186, 215, 166, 47, 63, 11, 24, 18, 177, 110, 218, 145, 161]), value: EventValue([131, 42, 37, 164, 226, 73, 193, 26, 157, 222, 204, 96, 74, 201, 188, 125, 11, 202, 2, 215]) }, Event { key: EventKey([17, 171, 206, 49, 190, 1, 169, 35, 216, 240, 76, 94, 182, 119, 74, 194, 40, 243, 255, 209, 173, 251, 60, 141, 136, 203, 179, 125, 101, 80, 7, 45, 96, 62, 129, 254, 152, 155, 114, 89, 62, 189, 88, 111, 117, 218, 251, 146, 244, 101, 119, 75, 58, 141, 59, 131, 202, 137, 211, 189, 176, 108, 225, 222, 210, 184, 11, 49, 231, 204, 225, 57, 57, 128, 32, 107, 78, 69, 111, 169, 5, 196, 169, 89, 168, 30, 236, 6]), value: EventValue([28, 143, 165, 29, 91, 132, 181, 190, 229, 21, 234, 49, 165, 248, 182, 50, 165, 0, 17, 86, 68, 214, 74, 123, 94, 79, 128, 189, 237, 129, 83, 171, 147, 106, 243, 6, 76, 39, 170, 6, 156, 129, 16, 103, 39, 142, 198, 219, 33, 193, 225, 24, 25, 67, 122, 4, 88, 172]) }, Event { key: EventKey([71, 33, 117, 104, 11, 161, 127, 95, 134, 178, 252, 100, 34, 16, 13, 112, 15, 127, 123, 87, 99, 249, 43, 60, 105, 21, 242, 82, 111, 186, 144, 139, 68, 235, 159, 25, 227, 128, 120, 194, 118, 125, 65, 224, 110, 112, 253, 95, 88, 207, 29, 197, 232, 48, 90, 227, 27, 225, 67, 99, 9, 186, 158, 10, 197, 27, 15, 11, 236, 141]), value: EventValue([84, 49, 85, 144, 161, 70, 96, 85, 145, 98, 37, 225, 32, 121, 110, 86, 252, 145, 170]) }, Event { key: EventKey([239, 115, 250, 105, 41, 88, 6, 31, 198, 116, 157, 25, 222, 54, 126, 64, 146, 139, 84, 167, 172, 32, 205, 160, 254, 115, 81, 28, 32, 1, 229, 39, 1, 57, 180, 200, 66, 88, 80, 238, 130, 111, 123, 14, 118, 122, 63, 161, 94, 235]), value: EventValue([35, 111, 80, 111, 34]) }, Event { key: EventKey([21, 74, 188, 122, 167, 217, 213, 15, 79, 204]), value: EventValue([109, 129, 234, 237, 184, 106, 88, 230, 168, 56, 229, 8, 238, 138, 209, 50, 170, 104, 242, 214, 109, 209, 212, 170, 79, 136, 204, 221, 79, 94, 71, 7, 26, 80, 113, 73, 115, 249, 255]) }, Event { key: EventKey([26, 195, 163, 77, 224, 214, 183, 245, 72, 125, 105, 5, 185, 131, 112, 69, 207, 212, 127, 72, 27, 27, 108, 167, 155, 20, 95, 126, 57, 226, 159, 186, 11, 225, 4, 254, 71, 68, 60, 200, 23, 17, 186, 121, 193, 51, 14, 237, 156, 70, 163, 13, 73, 196, 87, 211, 124, 136, 111, 205, 41, 244, 132, 167, 91, 13, 204, 166, 248, 137, 249, 95, 10, 188, 60, 129, 87, 189, 145, 138, 56, 105, 90, 132, 124, 182, 134]), value: EventValue([52, 193, 243, 240, 75, 205, 9, 1, 146, 60, 6]) }, Event { key: EventKey([216, 238, 226, 92, 216, 131, 88, 87, 203, 235, 190, 64, 45, 61, 29, 227, 251, 58, 3, 125, 204, 10, 229, 102, 204, 195, 217, 132, 41, 149, 49, 47, 187, 165, 149, 42, 84, 173, 81, 18, 157, 237, 109, 251, 133, 174, 39, 130, 136, 157, 251, 166, 196, 65, 221, 166, 180, 53, 124]), value: EventValue([90, 235, 236, 31, 131, 107, 239, 51, 72, 134, 52, 29, 171, 164, 98, 172, 245, 242, 47, 223, 26, 135, 44, 150, 158, 181, 254, 213, 208, 155, 40, 122, 205, 98, 156, 88, 234, 114, 227, 5, 121, 185, 140, 196, 163, 191, 36, 223, 171, 128, 5, 198, 49, 164, 26, 109, 148, 239, 46, 207, 34, 78, 79, 183, 254, 90, 184, 18, 120, 38, 23, 232, 115, 154, 151, 91, 227, 103]) }], receipt: 164158471 }, TransactionReceipt { tx_hash: [95, 21, 52, 39, 7, 5, 34, 245, 145, 252, 67, 27, 81, 27, 203, 52, 236, 165, 61, 63, 234, 155, 198, 231, 26, 92, 103, 133, 145, 177, 82, 106], body_to_save: None, events: [Event { key: EventKey([126, 45, 121, 98, 20, 7, 249, 9, 205, 28, 65, 59, 8, 248, 251, 172, 70, 131, 73, 255, 235, 61, 0, 183, 6, 23, 120, 118, 151, 89, 91, 170, 199, 75, 184, 88, 241, 83, 210, 157, 241, 68, 126, 96, 28, 225, 251, 193, 130, 10, 136, 35, 42, 188, 233, 217, 40, 16, 111, 169, 170, 103, 144, 41, 122, 218, 58, 180]), value: EventValue([27, 47, 126, 114, 241, 239, 114, 186, 189, 28, 203, 110, 16, 19, 58, 84, 119, 78, 103, 186, 182, 11, 212, 58, 30, 155, 3, 168, 149, 68, 231, 169, 170, 18, 201, 147, 24, 92, 246, 60, 83, 201, 105, 201, 143, 105, 34, 233, 96, 198, 34, 158, 163, 129, 247, 178, 190, 35, 127, 107, 170, 158, 40, 71, 201]) }, Event { key: EventKey([118, 213, 194, 112, 74, 73, 29, 10, 70, 106, 218, 43, 24, 157, 154, 48, 246, 112, 107]), value: EventValue([248, 253, 123, 202, 41, 166, 255, 212, 40, 153, 111, 7, 172, 226, 147, 237, 236, 185, 182, 128, 70, 207, 148, 134, 163, 160, 130, 144, 121, 55, 68, 7, 90, 145, 255, 172, 247]) }, Event { key: EventKey([209, 236, 119, 87, 92, 204, 51, 27, 231, 184, 255, 89, 41, 211, 121, 135, 253, 231, 214, 16, 108, 127, 121, 125, 101, 198, 9, 218, 65, 47, 197, 70, 78, 188, 81, 190, 78, 71, 93, 104, 190, 67, 24, 8, 2, 20, 78, 119, 147, 140, 92, 197, 206, 16, 25, 43, 20, 252, 44, 210, 68, 217, 165, 72, 6, 27, 106, 109, 27, 136, 145, 255, 13, 211, 16, 91, 113, 101, 185, 116, 222, 40, 63, 108, 145, 151, 230, 73, 5, 137, 152, 49, 202, 216, 109, 34, 246, 237]), value: EventValue([170, 37, 193, 235, 249, 205, 89, 249, 213, 203, 41, 111, 199, 121, 66, 254, 226, 240, 212, 255, 142, 78, 128, 11, 230, 58, 182, 183, 39, 205, 19, 132, 8, 114, 53, 157, 163, 93, 62, 48, 109, 225, 48, 108, 222, 214, 243, 191, 57, 192, 86, 92, 237, 104, 208, 87, 44, 82, 204, 139, 12, 219, 112, 138, 111, 132, 216, 22, 107, 70, 169, 184, 191, 234, 224, 27]) }, Event { key: EventKey([235, 27, 23, 74, 43, 79, 223, 113, 224, 156, 133]), value: EventValue([106, 116, 132, 21, 237, 156, 48, 99, 202, 182, 57, 245, 66, 90, 42, 114, 131, 156, 51, 225, 39, 81, 152, 222, 141, 231, 230, 106, 246, 47, 134, 225, 143, 205, 109, 207, 10, 61, 100, 141, 214, 199, 33, 227, 34, 48, 46, 93, 71, 152, 29, 30, 187, 87, 168]) }, Event { key: EventKey([238, 67, 132, 113, 69, 249, 199, 13, 185, 30, 143, 133, 39, 12, 152, 18, 2, 41, 161, 156, 72, 5, 229, 136, 23, 82, 142, 104, 25, 69, 3, 247, 119, 123, 10, 227, 191, 151, 149, 129, 108, 23, 37, 253, 30, 59, 51, 67, 59, 113, 55, 141, 147, 204, 181, 111, 197, 73, 9, 65, 178, 73, 156, 249, 136, 222, 21, 36, 38, 128, 78, 217, 116, 205, 46, 123, 42, 204, 62, 122, 102, 167, 231, 25, 153, 39, 144, 44, 151]), value: EventValue([83, 68, 96, 95, 253, 53, 57, 246, 160, 180, 198, 125, 205, 33, 136, 85, 84, 209, 180, 84, 246, 33, 9, 82, 183, 202, 204, 10, 20, 254, 75, 146, 137, 33, 12, 227, 172, 243, 107, 153, 180, 223, 232, 22, 69, 223, 89, 116, 85, 142, 108, 163, 155, 145, 44, 204, 145, 56, 146, 47, 58, 6, 52, 220, 20, 242, 84, 216, 67, 140, 186, 154, 237, 238, 233, 27, 224, 180, 116, 103, 242, 197, 34, 76, 142, 184, 203, 211, 85, 71, 80, 163, 169, 58, 248, 109]) }], receipt: 3426913935 }, TransactionReceipt { tx_hash: [223, 229, 138, 96, 43, 52, 90, 87, 69, 142, 211, 52, 234, 201, 62, 156, 122, 48, 118, 210, 187, 145, 224, 197, 192, 102, 63, 191, 40, 106, 61, 68], body_to_save: None, events: [Event { key: EventKey([241, 0, 244, 156, 73, 164, 47, 213, 1, 120, 77, 229, 72, 247, 122, 158, 90, 54, 147, 193, 87, 180, 50, 26, 130, 226, 163, 146, 111, 29, 137, 143, 128, 108, 197, 236, 215, 156, 36, 91, 110, 103, 226, 115, 53, 52, 177, 177, 76, 223, 212, 109, 207, 252, 175, 8, 66, 26, 114, 60, 247, 232, 253, 141, 253, 27, 214, 213, 67, 156, 136, 199]), value: EventValue([40, 36, 236]) }, Event { key: EventKey([184, 94, 80, 43, 124, 140, 227, 157, 42, 216, 253, 195, 211, 159, 35, 176, 44, 185]), value: EventValue([153, 245, 29, 81, 71, 52, 97, 193, 104, 51, 160, 131, 236, 192, 70, 220, 161, 194, 151, 171, 175, 193, 140, 81, 149, 171, 231, 182, 115, 178, 128, 180, 98, 237, 131, 211, 19, 93, 140, 233, 96, 128, 153, 5, 213, 110, 204, 155, 73, 110, 67, 156, 89, 25]) }, Event { key: EventKey([15, 224, 239, 142, 148, 176, 124, 34, 113, 217, 21, 209, 45, 9, 59, 84, 81, 16, 150, 206, 239, 96, 152, 16, 246, 76, 223, 211, 248, 35, 34, 88, 228, 53, 54, 183, 217, 105, 93, 168, 41, 200, 5, 131, 222, 130, 131, 81, 195, 154, 55, 183, 17, 1, 194, 197, 77, 169, 232, 249, 83, 199, 57]), value: EventValue([105, 55, 210, 249, 96, 105, 12, 187, 132, 42, 136, 198, 1, 79, 82, 159, 80, 206, 156, 162, 187, 61, 2, 210, 197, 123, 187, 38, 254, 74, 113, 238, 251, 94, 130, 191, 172, 252, 33, 136, 127, 108, 77, 246, 207, 216, 109, 228, 222, 106, 47, 128, 168, 151, 11, 49, 244, 81, 202, 7, 62, 72]) }, Event { key: EventKey([209, 84, 239, 190, 98, 145, 94, 185, 98, 116, 92, 204, 17, 137, 67, 20, 174, 83, 7, 244, 225, 114, 124, 175, 9, 136, 20, 170, 162, 215, 158, 153, 188, 44, 219, 166, 161, 76, 121, 4, 196, 206, 111, 239, 116, 208, 42, 72, 129, 207, 40, 55, 126, 234, 238, 233, 85, 104, 227, 201, 55, 169, 61, 182, 142, 67, 153, 102, 143, 120, 105, 229, 129, 54, 232, 163, 186, 113, 188, 153, 36, 29, 54, 128, 8, 212, 87]), value: EventValue([180, 204, 210, 8, 109, 12, 2, 169, 110, 128, 234, 223, 16, 46, 149, 118, 167, 117, 64, 227, 223, 44, 152, 202, 9, 63, 170, 235, 19, 67, 164, 18, 219, 61, 219, 6, 202, 12, 253, 209, 7, 211, 49, 16, 29, 169, 0, 207, 187, 132, 25, 29, 180, 93, 64, 88, 142, 148, 197, 97, 185, 218, 201, 254, 85, 161, 113, 114, 36, 189, 253, 57, 79, 127, 166, 252, 66, 202, 113, 217, 76, 194, 222, 45, 251, 38, 229, 17, 174, 221, 156, 24, 181, 226, 249, 174, 170]) }, Event { key: EventKey([27, 74, 36, 30, 186, 157, 6, 210, 51, 220, 97, 170, 62, 65, 141, 215, 195, 94, 69, 243, 222, 253, 134, 86, 7, 194, 120, 220, 3, 174, 226, 228, 73, 160, 247, 113, 253, 113]), value: EventValue([82, 40, 63, 64, 73, 6, 254, 90, 217, 184, 192, 240, 129]) }, Event { key: EventKey([131, 189, 39, 84, 234, 10, 224, 95, 116, 90, 223, 232, 178, 201, 217, 165, 198, 121, 226, 103, 22, 66, 39, 168, 140, 21, 60, 92, 21, 93, 81, 36, 186, 53, 123, 50, 164, 16, 173, 134, 72, 245, 220, 4, 77, 29, 255, 13, 29, 223, 202, 63, 83, 105, 160, 86, 10, 216, 111, 174, 139, 125, 149, 143, 74, 241, 17, 188, 2, 197, 213, 121, 141, 10, 157, 168, 93]), value: EventValue([177, 147, 101, 107, 227, 202, 40, 117, 135, 153, 28, 254, 246, 69, 107, 233, 60, 238, 249, 22, 238, 115, 65, 222, 114, 176, 108, 203, 78, 178, 114, 189, 16, 233, 159, 217, 175, 145, 35, 151, 149, 46, 38, 149, 69, 222, 223, 227, 142, 191, 3, 117, 7, 225, 20, 9, 97, 14, 78, 78, 78, 41, 83, 78, 193, 57, 2, 250, 101, 178, 237, 227, 148, 68, 135, 147, 70, 37, 101, 161, 161, 242, 98, 14]) }, Event { key: EventKey([217, 157, 55, 59, 192, 13, 166, 213, 26, 69, 47, 92, 8, 237, 191, 40, 231, 129, 234, 230, 61, 61, 134, 116, 114, 45, 117, 37, 216, 101, 235, 25, 225, 33, 97, 63, 22, 161, 212, 6, 40, 5, 126, 215]), value: EventValue([157, 217, 205, 246, 168, 12, 189, 142, 225, 78, 117, 158, 150, 85, 151, 20, 196, 147, 113, 56, 75, 187, 149, 233, 244, 121, 112, 134, 230, 147, 200, 245, 74, 8, 208, 230, 252, 100, 240, 150, 200, 174, 67, 68, 142, 157, 93, 82, 62, 159, 144, 5, 114, 226, 185, 35, 197, 33, 192, 27, 52, 148, 133, 252, 190, 244, 18, 127, 208, 11, 221, 19, 95, 159, 210, 50, 197, 169, 191, 23, 114, 238, 15, 128, 169, 127, 64, 148, 89, 34, 47]) }, Event { key: EventKey([6, 98, 26, 211, 61, 36, 75, 128, 10, 164, 207, 136, 188, 10, 46, 240, 18, 210, 181, 184, 95, 58, 179, 17, 202, 11, 227, 194, 29, 201, 118, 40, 54, 233, 148, 229, 85, 204, 195, 128, 205, 185, 239, 163, 119, 65, 82, 34, 217, 207, 210, 103, 19, 184, 170, 22, 184, 27, 92, 17, 106, 164, 134, 243, 169, 17, 202, 163, 89, 63, 150, 160, 241, 71, 89, 173, 47, 217, 158, 77, 249, 106, 54, 136, 222, 48, 0]), value: EventValue([68, 67, 231, 110, 49, 91, 74, 72, 194, 84, 181, 170, 157, 152, 198, 92, 237, 204, 76, 86, 91, 90, 255, 209, 125, 79, 200, 32, 33, 227, 214]) }], receipt: 1833722630 }, TransactionReceipt { tx_hash: [82, 89, 237, 171, 132, 116, 165, 14, 202, 41, 50, 182, 250, 224, 200, 82, 20, 127, 50, 61, 216, 199, 163, 206, 138, 90, 199, 75, 200, 235, 71, 208], body_to_save: None, events: [Event { key: EventKey([215, 66, 147, 42, 29, 50, 46, 227, 174, 253, 209, 7, 94, 168, 27, 78, 73, 173, 80, 219, 196, 59, 0, 173, 144, 76, 194, 91, 71, 159, 140, 111, 164, 92, 35, 149, 160, 111, 63, 52, 186, 149, 96, 43, 198, 245, 181, 21, 253, 61, 143, 167, 245, 36, 218, 216, 101, 42, 122, 55, 118, 179, 96, 103, 86, 130, 169, 99, 6, 168, 153, 30, 162, 175, 150, 219, 238, 224, 30, 183]), value: EventValue([33, 214, 197, 194, 215, 74, 94, 27, 126, 170, 250, 17, 32, 137, 225, 230, 130, 246, 9, 218, 178, 131, 13, 176, 33, 222, 6, 61, 3, 115, 74, 175, 150, 13, 167, 246, 2, 84, 29, 117, 22, 149, 163, 176, 44, 241, 62, 28, 135, 155, 193, 101, 184, 234, 47, 118, 26, 76, 19, 218, 111, 61, 21, 21, 193, 153, 132, 147, 184, 221, 100, 44, 173, 174, 82, 54, 24]) }, Event { key: EventKey([231, 158, 115, 5, 95, 203, 71, 124, 252, 93, 91, 93, 11, 241, 215, 106, 249, 43, 98, 161, 17, 173, 23, 30, 164, 34, 178, 150, 207, 69, 133, 46, 56, 20, 144, 100, 70, 92, 240, 139, 249, 213, 73, 170, 9, 75, 108, 246, 243, 9, 164, 183, 79, 44, 179, 230, 123, 130, 102, 239, 7, 150, 143, 150, 161]), value: EventValue([122, 174, 183, 220, 239, 242, 97]) }, Event { key: EventKey([10, 91, 125, 189, 213, 71, 184, 101, 185, 151, 8, 193, 131, 205, 174, 211, 177, 163, 223, 188, 142, 151, 56, 201, 217, 10, 218, 71, 255, 117, 220, 173, 232, 48, 142, 5, 186, 229, 67, 92, 20, 88, 49, 71, 131, 87, 246, 81, 217, 83, 45, 211, 46, 204, 7, 51, 201, 253, 48, 32, 105, 44, 18, 6, 128, 160, 134, 136, 227, 200, 86, 52, 15, 165, 4, 43, 79, 188, 51, 10, 212, 48, 147, 59, 66, 144, 228, 247, 72, 54, 116, 105, 195, 96, 112, 68, 37, 211, 178]), value: EventValue([170, 200, 47, 254, 30, 179, 90, 178, 220, 2, 235, 190, 195, 101, 55, 43, 8, 24, 235, 176, 138, 95, 45, 216, 86, 4, 68, 18, 158, 1]) }, Event { key: EventKey([202, 189, 87, 47, 97, 55, 135, 208, 254, 169, 245, 126, 134, 49, 176, 169, 87, 56, 204, 209, 137, 186, 20, 16, 108, 35, 49, 126, 182, 165, 33, 199, 59, 204, 219, 198, 234, 82, 55, 242, 119, 183, 251, 201, 89, 121, 3, 251, 117, 251, 48, 2, 3, 252, 22, 142, 122, 13, 244, 101, 59, 103, 105, 199, 231, 217, 193, 131, 76, 37, 70, 110, 43, 151, 166, 146, 43, 159, 67, 226, 64, 212, 203, 234, 41, 119, 149, 242, 172]), value: EventValue([73, 242, 86, 251, 136, 169, 210, 154, 61, 6, 13, 51, 2, 35, 184, 230, 134, 235, 117, 245, 174, 80, 212, 37, 177, 211, 156, 9, 62, 155, 51, 197, 6, 192, 18, 83, 251, 94, 63, 25, 237, 224]) }, Event { key: EventKey([95, 10, 24, 239, 53, 82, 254, 53, 71, 128, 159, 66, 119, 27, 155, 52, 23, 140, 106, 202, 240, 37, 127, 79, 96, 87, 182, 175, 15, 7, 146, 165, 180, 247, 126, 162, 163, 115, 1, 173, 93, 157, 213, 249, 80, 211, 139, 164, 236, 95, 118, 154, 255, 144, 121, 193, 87, 59, 139, 149, 190, 99, 42, 87, 174, 237, 173, 225, 240, 66, 108, 225, 186, 83, 16, 221, 54, 44, 106, 20, 87, 84, 129, 245, 225, 54, 104]), value: EventValue([52, 89, 114, 186, 32, 89, 205, 140, 2, 242, 116, 78, 164, 97, 164, 188, 216, 39, 239, 39, 196, 119, 174, 123, 252, 24, 19, 195, 161, 158, 254, 51, 179, 98, 180, 209, 59, 108, 111, 79, 226, 176, 245, 107, 51, 242, 96, 108, 135, 255, 26, 32, 244]) }, Event { key: EventKey([47, 148, 60, 5, 209, 227, 42, 252, 58, 47, 44, 4, 201, 127, 183, 28, 171, 55, 239, 36, 164, 254, 150, 137, 101]), value: EventValue([120, 49, 239, 42, 110, 21, 154, 50, 143, 26, 42, 17, 166, 79, 131, 225, 141, 107, 89, 247, 167, 226, 68, 217, 214, 47, 216, 223, 119, 144, 234, 74, 145, 104, 81, 132, 185, 73, 189, 90, 5, 29, 48, 87, 105, 118, 181, 55, 116, 192, 158, 137, 181, 220, 58, 195, 70, 99, 111, 190, 166, 228, 52, 134, 18, 240, 56, 72, 117, 95, 244, 13, 16, 243, 110, 57, 162, 1, 241, 76, 235, 178, 4, 174, 212, 48, 179, 73, 14, 72, 78, 123, 200, 118]) }, Event { key: EventKey([161, 157, 7, 50, 183, 23, 158, 179, 173, 25, 172, 25, 72, 242, 110, 153, 207, 100, 135, 131, 229, 23, 86, 229, 177, 217, 210, 94, 242, 28, 207, 181, 231, 72, 1, 181, 0, 133, 172, 33, 20, 194, 40, 239, 29, 17, 8, 142, 66, 123, 52, 149, 121, 107, 68, 141, 171, 92, 224, 243, 134, 4]), value: EventValue([72, 105, 109, 231, 144, 84, 27, 180, 45, 63, 10, 27, 76, 168, 247, 41, 144, 22, 198]) }, Event { key: EventKey([163, 49, 4, 189, 255, 80, 134, 165, 253, 10, 19, 235, 184, 241]), value: EventValue([164, 56, 195, 145, 141, 235, 148, 43, 215, 114, 73, 94, 120, 179, 14, 182, 222, 185, 242, 215, 52, 41, 205, 89, 82, 159, 26, 153, 61, 34, 72, 226, 176, 235, 82, 187, 147, 41, 37, 180, 4, 145, 127, 206, 230]) }], receipt: 1437897566 }, TransactionReceipt { tx_hash: [253, 89, 12, 162, 164, 229, 43, 248, 148, 80, 112, 135, 158, 19, 239, 245, 252, 234, 151, 81, 210, 62, 249, 190, 108, 71, 143, 105, 127, 173, 17, 248], body_to_save: None, events: [Event { key: EventKey([20, 56, 136, 189, 248, 141, 225, 169, 179, 42, 64, 89, 21, 188, 158, 120, 96, 71, 33, 166, 142, 179, 194, 112, 77, 201, 11, 222, 137, 150, 50, 216, 162, 45, 154, 211, 87, 247, 2, 36, 118, 207, 177, 130, 61, 231, 229, 86, 66, 226, 209, 174, 239, 108, 187, 146, 153, 174, 218, 144, 5, 213, 119, 169, 171, 240, 85, 1, 173, 155, 80, 68, 176, 128, 173, 102, 25, 40, 145, 166, 165, 186, 31, 148, 182, 37, 22, 117, 96, 242, 175, 129, 200, 104]), value: EventValue([92, 147, 214, 125, 129, 63, 241, 28, 219, 210, 130, 117, 27, 189, 48, 198, 86, 224, 53, 109, 42, 177, 230, 236]) }, Event { key: EventKey([76, 61, 12, 173, 240, 49, 175, 177, 85, 144, 130, 79, 250, 77, 160, 15, 203, 169, 55, 144, 83, 236, 240, 16, 86, 107, 210, 240, 115, 242, 153, 152]), value: EventValue([133, 180, 231, 131, 29, 223, 81, 175, 31, 5, 188, 146, 99, 43, 89, 93, 206, 29, 144, 137, 4, 249, 197, 108, 9, 36, 1, 173, 222, 31, 253, 190, 30, 192, 165, 228, 12, 247, 183, 59, 189, 177, 155, 27, 81, 187, 26, 70, 222, 72, 70, 152, 74, 218, 165, 24, 53, 187, 22, 111, 176, 103, 93, 68, 144, 246, 150, 16, 6, 219, 121, 95, 191, 8, 116, 121, 60, 225, 58, 23, 78, 22, 209, 144, 161, 207, 192, 105, 186, 229, 229, 90, 252, 22, 141, 71, 161, 109]) }], receipt: 3988580522 }], inner: 3861759979 }, BatchReceipt { batch_hash: [57, 138, 89, 73, 132, 110, 238, 244, 203, 87, 51, 106, 25, 90, 224, 85, 166, 175, 42, 56, 80, 38, 159, 200, 41, 140, 248, 42, 44, 104, 128, 2], tx_receipts: [TransactionReceipt { tx_hash: [209, 236, 106, 149, 126, 109, 148, 130, 134, 218, 41, 75, 100, 194, 34, 252, 112, 29, 90, 80, 19, 55, 74, 118, 62, 117, 11, 72, 29, 202, 80, 103], body_to_save: None, events: [Event { key: EventKey([84, 178, 69, 185, 71, 67, 43, 247, 143, 219, 209, 214, 252, 19, 10, 236, 253, 39, 135, 173, 246, 215, 160, 145, 83, 8, 98, 152, 152, 181, 249, 204, 144, 72, 110, 49, 57, 199, 186, 235, 72, 129, 65, 78, 118, 147, 187, 143, 227, 45, 97, 48, 44, 4, 194, 28, 43, 182, 48, 173, 225, 97, 124, 105]), value: EventValue([61, 66, 189, 242, 88, 63, 232, 12, 18, 140, 54, 218, 137, 228, 200, 85, 209, 68, 53, 3]) }, Event { key: EventKey([10, 38, 120, 26, 167, 72, 190, 12, 59, 207, 205, 136, 216, 249, 249, 131, 207, 146, 67, 165, 14, 141, 58, 70, 213, 149, 67]), value: EventValue([143, 23, 111, 82, 36, 53, 38]) }, Event { key: EventKey([101, 103, 143, 181, 123, 224, 161, 23, 176, 221, 156, 200, 179, 32, 201, 50, 49, 204, 251, 69, 164, 86, 181, 115, 90, 17, 28, 240, 122, 75, 170, 186, 43, 146, 204, 41, 145, 24, 143, 61, 210, 198, 224, 5, 214, 115, 241, 230, 133, 149, 220, 238, 41, 47, 60, 99, 70, 91, 194, 238, 148, 253, 231, 104, 55, 43, 222, 52, 229, 182, 133, 230, 99, 185, 187, 161, 251, 250, 61, 110, 132, 89, 143, 171, 215, 251, 163, 248, 160, 175, 38, 26, 81, 134]), value: EventValue([48, 149, 23, 35, 145, 38, 66, 89, 108, 196, 157, 70, 231, 116, 22, 229, 66, 25, 17, 104, 152, 206, 223, 183, 102, 243, 107, 179, 33, 123, 89, 222, 118, 18, 75, 50, 247, 102, 227, 150, 177, 49]) }, Event { key: EventKey([166, 105, 252, 212, 97, 129, 135, 90, 98, 106, 128, 149, 226, 251, 213, 63, 48, 206, 72, 211, 45, 168, 24, 249, 71, 239, 165, 255, 186, 241, 38, 58, 178]), value: EventValue([70, 248, 105, 140, 169, 14, 39, 73, 101, 65, 53, 99, 102, 46, 125, 7, 23, 52, 141, 49, 83, 55, 73, 111, 184, 91, 17, 197, 119, 123, 255, 177, 239, 97, 202, 242, 162, 245, 220, 81, 229, 176, 13, 182, 112, 107, 198, 208, 191, 198, 41, 44, 102, 135, 105, 228, 69, 161, 242]) }, Event { key: EventKey([210, 228, 191, 243, 132, 112, 253, 131, 130, 49, 102, 77, 238, 199, 121, 23, 171, 40]), value: EventValue([157, 80, 140, 155, 124, 91, 126, 141, 190, 51, 151, 230, 51, 246, 4, 132, 36, 246, 166, 51, 106, 90, 155, 43, 88, 194, 186, 178, 244, 222, 129]) }], receipt: 1920573626 }, TransactionReceipt { tx_hash: [149, 91, 200, 180, 19, 94, 85, 250, 237, 192, 140, 123, 22, 172, 72, 175, 151, 71, 112, 15, 82, 239, 85, 63, 249, 72, 152, 55, 210, 242, 222, 225], body_to_save: None, events: [Event { key: EventKey([141, 50, 73, 43, 41, 142, 55, 145, 104, 237, 27, 57, 158, 246, 69, 142, 217, 252, 129, 218, 235, 148, 110, 140, 141, 63, 78, 41, 117, 196, 29]), value: EventValue([83, 108, 196, 66, 155, 135, 112, 112, 238, 203, 61, 222, 25, 255, 139, 247, 139, 233, 15, 173, 194, 70, 134, 32, 75, 60, 173, 141, 217, 11, 211, 113, 27, 85, 206, 109, 210, 122, 172, 122, 223, 255, 252, 12, 174, 157, 108, 170, 15, 130, 28, 28, 57, 116, 38, 165, 63, 196, 164, 183, 63, 8, 237, 120, 119, 249]) }, Event { key: EventKey([227, 105, 18, 143, 254, 244, 199, 86, 143, 149, 157, 171, 177, 126, 233, 54, 84, 164, 57, 98, 208]), value: EventValue([230, 54, 140, 255, 6, 150, 5, 149, 154, 115, 17, 188, 251, 166, 23, 71, 230, 179, 216, 51, 76, 6, 1, 65, 229, 85, 155, 119, 36, 76, 204, 115, 210, 39, 141, 233, 100, 185, 73, 79, 9, 234, 6, 60, 130, 30, 7, 107, 118, 201, 109, 67, 0, 51, 204, 107, 241, 112, 87, 131, 198, 160, 103, 184, 227, 79, 164, 136, 166, 83, 105, 21, 97, 174, 163, 20, 80, 76, 33, 242, 231, 88, 59, 193, 2, 162, 140, 84, 250]) }], receipt: 257878944 }, TransactionReceipt { tx_hash: [207, 33, 139, 111, 40, 41, 231, 129, 10, 188, 144, 21, 76, 138, 89, 140, 8, 166, 208, 182, 35, 240, 214, 83, 122, 143, 242, 224, 117, 176, 221, 147], body_to_save: None, events: [Event { key: EventKey([17, 124, 9, 253, 23, 43, 215, 32, 62, 174, 12, 38, 173, 182, 171, 80, 214, 101, 9, 98, 16, 164, 93, 184, 248, 29, 44, 131, 46, 140, 80]), value: EventValue([209, 33, 12, 33, 228, 147, 128, 141, 207, 224, 81, 160, 46, 103, 156, 164, 223, 169, 217, 199, 83, 20, 252, 107, 40, 236, 4, 44, 123, 69, 231, 224, 1, 176, 40, 165, 188, 2, 252, 117, 8, 40, 78, 49, 215, 58, 56, 13, 178, 210, 159, 223, 126, 239, 234, 208, 6, 47, 97, 201, 40, 108, 29, 131, 54, 22, 125, 74, 35, 196, 24, 239, 250, 13, 29]) }, Event { key: EventKey([41, 34, 235, 164, 170, 165, 48, 222, 24, 153, 170, 76, 200, 26, 87, 236, 19, 81, 89, 38, 235, 119, 208, 200, 53, 60, 47, 90, 206, 9, 88, 99, 184, 151, 114, 48, 91, 170, 177, 3, 150, 232, 117, 211, 40, 234, 220, 59, 192, 47, 22, 31, 142, 204, 188, 230, 106, 69, 76, 69, 55, 37, 145, 58, 4, 255, 78, 3, 77, 33, 125, 100, 22, 37, 184, 92, 22, 171, 103, 144, 167, 106, 116, 237, 146]), value: EventValue([246, 182, 212, 248, 170, 79, 44, 10, 27, 220, 148, 196, 193, 217, 155, 245, 229, 107, 130, 99, 222, 7]) }, Event { key: EventKey([72, 99, 43, 205, 189, 82, 231, 163, 76, 168, 71, 100, 104, 34, 14, 201, 250, 223, 43, 83, 208, 184, 195, 208, 210, 73, 221]), value: EventValue([200, 226, 69, 198, 166, 255, 222, 16, 65, 12, 215, 74, 103, 112, 255, 17, 7, 81, 85, 108, 116, 183, 180, 114, 92, 185]) }, Event { key: EventKey([162, 9, 91, 40, 64, 173, 68, 50, 168, 105, 72, 43, 171, 97, 18, 152, 123, 158, 94, 143, 78, 58, 205, 121, 208, 149, 219, 117, 167, 18, 5, 97, 68, 31, 86, 54, 205, 255, 90, 136, 237, 245, 147, 55, 243, 174, 31, 123, 148, 107, 202, 227, 127, 84, 86, 253, 218, 35, 175, 26, 167, 239, 28, 171, 134, 148, 182]), value: EventValue([200, 187, 240, 91, 200, 224, 85, 139, 50, 150, 8, 12, 132, 30, 254, 142, 116, 160, 135, 80, 164, 241, 228, 182, 53, 90, 94, 45, 128, 57, 88, 160, 32, 171, 147, 121, 68, 190, 70, 53, 228, 100, 108, 85, 134, 165, 174, 131, 245, 93, 128, 185, 61, 24, 144, 82, 223, 98, 67, 5, 160, 91, 37, 183, 136, 102, 85, 76, 71, 195, 149, 254, 121, 211, 207, 49, 132, 21, 7, 31, 106, 83, 11, 64, 115, 153, 230, 10, 9, 14, 245, 111, 103, 78]) }, Event { key: EventKey([118, 228, 239, 197, 144, 121, 139, 196, 238, 247, 248, 42, 11, 151, 112, 112, 107, 143, 144, 85, 106, 133, 119, 83, 13, 64, 251, 102, 172, 129, 43, 2, 251, 62, 27, 162, 201, 136, 254, 171, 196, 225, 173, 123, 205, 28, 77, 6]), value: EventValue([83, 247, 240, 169, 17, 127, 73, 200, 226, 160, 158, 90, 31, 85, 36, 154, 39, 208, 237, 199, 126, 200, 250, 60, 177, 22, 53, 173, 195, 252, 199, 53, 163, 214, 145, 182, 172, 54, 143, 192, 14, 126, 83]) }, Event { key: EventKey([101, 92, 109, 47, 224, 156, 6, 43, 246, 215, 53, 130, 2, 59, 131, 32, 193, 226, 172, 68, 220, 91, 174, 208, 203, 24, 23, 88, 205, 81, 207, 249, 164, 50, 163, 167, 131, 219, 50]), value: EventValue([118, 117, 41, 211, 94, 8, 236, 171, 74, 49, 23, 175, 171, 119, 71, 45, 123, 112, 156, 199, 129, 151, 182, 41, 41, 251, 39, 232, 137, 189, 31, 227, 117, 247, 198, 232, 130, 210, 62, 35, 209, 218, 99, 41, 196, 241, 43, 166, 160, 44, 238, 120, 12, 12, 54, 91, 23, 168, 161, 91, 203, 232, 149, 188, 146, 190, 78, 75, 214, 31, 23, 197, 48, 174, 42, 156, 27, 56, 254, 10, 158, 77, 214, 24, 169, 57, 107, 70, 124, 189, 235]) }, Event { key: EventKey([146, 7, 227, 152, 62, 132, 191, 124, 155, 119, 192, 141, 20, 117, 24, 247, 162, 103, 157, 11, 236, 225, 109, 95, 244, 13, 202, 49, 216, 237, 63, 103, 88, 222, 129, 168, 96, 197, 71, 13, 187, 3, 153, 238, 13, 78, 245, 210, 176]), value: EventValue([214, 87, 86, 240, 219, 195, 170, 173, 255, 239, 201, 23, 162, 54, 183, 28, 49, 241, 179, 102, 64, 129, 182, 146, 132, 161, 16, 13, 113, 204, 229, 85, 205, 171, 159, 219, 70, 199, 203, 108, 35, 138, 117, 169, 35, 212, 157, 62, 108, 175, 216, 52, 104, 198, 115, 139, 127, 244, 179, 129, 171, 190, 107, 235, 126, 7, 150, 41, 81, 212, 118]) }], receipt: 2111189093 }, TransactionReceipt { tx_hash: [99, 189, 209, 179, 213, 142, 101, 97, 237, 208, 115, 189, 184, 19, 240, 115, 227, 44, 77, 211, 100, 164, 33, 0, 189, 46, 136, 161, 108, 64, 143, 200], body_to_save: Some([167, 78, 211, 35, 47, 143, 70, 236, 82, 54, 95, 56, 24, 101, 222, 155, 210, 120, 180, 156, 49, 116, 40, 100, 243, 241, 157, 74, 198, 27, 81, 161, 86, 78, 194, 17, 9, 19]), events: [], receipt: 3426478559 }, TransactionReceipt { tx_hash: [151, 111, 47, 203, 214, 155, 253, 172, 95, 20, 20, 67, 145, 169, 190, 172, 161, 205, 152, 251, 75, 110, 139, 106, 232, 7, 76, 172, 2, 67, 31, 253], body_to_save: None, events: [Event { key: EventKey([85, 127, 125, 215, 3, 79, 160, 176, 168, 157, 133, 0, 73, 15, 173, 35, 140, 31, 221, 19, 16, 82, 128, 186, 141, 115]), value: EventValue([195, 21, 37, 93, 176, 87, 132, 73, 38, 233, 128, 230, 16, 30, 187, 175, 188, 55, 243, 31, 165, 251, 38, 98, 186, 60, 53, 37, 113, 198, 117, 123, 127, 180, 232]) }, Event { key: EventKey([187, 102, 105, 120, 184, 101, 6, 160, 146, 81, 21, 203, 89, 27, 98, 160, 225, 122, 176, 78, 99, 109, 232, 22, 54, 60, 249, 64, 172, 43, 68, 92, 129, 180, 148, 251, 231, 46, 197, 196, 186, 71, 171, 5, 19, 202, 206, 39, 210, 53, 254, 161, 91, 105, 22, 97, 25, 121, 239, 88, 71, 69, 5, 9, 121, 205, 91, 126, 203, 5, 169, 202, 61, 68, 67, 111, 48, 68]), value: EventValue([194, 216, 82, 149, 106, 117, 220, 235, 156, 41, 219, 71, 49, 94, 83, 117, 114, 94, 28, 44, 68, 100, 115, 44, 50, 206, 75, 214]) }, Event { key: EventKey([109, 172, 115, 210, 38, 61, 233, 96, 117, 176, 108, 212, 152, 219, 83, 55, 192, 33, 78, 92, 170, 245, 32]), value: EventValue([195, 53, 34, 8, 152, 37, 180, 84, 62, 84, 9, 179, 7, 164, 146, 124, 110, 176, 151, 231, 46]) }, Event { key: EventKey([67, 40]), value: EventValue([200, 30, 151, 138, 166, 128, 35, 225, 71, 179, 194, 132, 147, 129, 42, 18, 182, 206, 240, 84, 224, 82, 216, 195, 92, 60, 53, 142, 115, 248, 204, 26, 223, 78, 216, 245, 196, 165, 58, 242, 81, 227, 191, 1, 14, 135]) }], receipt: 2612078069 }, TransactionReceipt { tx_hash: [241, 62, 97, 156, 31, 86, 88, 190, 191, 62, 3, 184, 190, 125, 215, 12, 97, 165, 12, 73, 205, 146, 77, 80, 94, 162, 79, 107, 184, 102, 239, 81], body_to_save: Some([190, 121, 22, 167, 162, 166, 124, 179, 9, 95, 217, 166, 102, 210, 125, 101, 207, 199, 147, 204, 137, 151, 244, 127, 239, 174, 99, 107, 184, 72, 215, 182, 117, 132, 188, 11, 147, 238, 10, 24, 161, 163, 103, 236, 201, 222, 70, 5, 16, 150, 193, 139, 239, 166, 151, 23, 131, 92, 189, 64, 98, 173, 102]), events: [Event { key: EventKey([234, 106, 227, 169, 75, 87, 138, 31, 222, 108, 131, 78, 7, 125, 158, 85, 88, 221, 7, 166, 171, 43, 71, 138, 38, 17, 21, 150, 126, 160, 242, 136, 30, 179, 44, 0, 232, 94, 53, 5, 238, 40, 236, 84, 44, 202, 27, 236, 117, 83, 118, 66, 140, 77, 177, 7, 192, 224, 150, 111, 219, 142, 48, 103, 98, 142, 62, 80, 109, 47, 227, 238, 195, 152, 68, 13, 25, 184, 60, 47, 32, 157, 38, 215, 243, 139, 125, 207, 237, 64]), value: EventValue([131, 52, 181, 77, 176, 222, 42, 93, 226, 34, 190, 21, 230, 24, 126, 221, 25, 87, 179, 30, 167, 69, 95, 201, 249, 208, 108, 254, 147, 233, 58, 75, 84, 132, 170, 82, 17, 87, 246, 240, 151]) }, Event { key: EventKey([187, 63, 31, 1, 34, 4, 2, 22, 191, 193, 227, 212, 57, 209, 184, 133, 101, 46, 40, 181, 164, 89, 81, 209, 108, 132, 131, 42, 215, 182, 157, 249, 12, 174, 244, 128, 109, 29, 202]), value: EventValue([227, 37, 190, 145, 37, 234, 80, 52, 119, 10, 152, 151, 18, 168, 253, 169, 69, 142, 187, 112, 72, 73]) }, Event { key: EventKey([40, 34, 222, 238, 29, 66, 57, 209, 182, 111, 174, 53, 85, 93, 229, 49, 210, 87, 38, 90, 205, 162, 135, 152, 18, 103, 89, 150, 157, 181, 69, 104, 141, 205, 19, 191, 119, 121, 58, 159, 60, 172, 10, 75, 243, 101, 107, 132, 203, 12, 254, 247, 142, 171, 62, 140, 15, 241, 130, 99, 191, 182, 32, 14, 24, 226, 174, 122, 48, 123, 53]), value: EventValue([148, 169, 191, 162, 13, 98, 189, 108, 91, 77, 55, 143, 6, 152, 15, 154, 117, 85, 182, 64, 255, 161, 223, 22, 200, 124, 94, 179, 55, 214, 246, 60, 20, 207, 30, 148, 188, 219, 34, 13, 133, 0, 194, 110, 57, 228, 111, 145, 88, 93, 40, 17, 218, 229, 200, 24, 129, 95, 243, 5, 158, 49, 15, 202, 43, 8, 141, 47, 176, 240, 172, 199, 118, 43, 37, 207, 173, 184, 14, 185, 170, 74]) }, Event { key: EventKey([23, 194, 146, 68, 186, 155, 73, 172, 4, 229, 187, 189, 206, 78, 135, 80, 107, 111, 8, 159, 206, 81, 85, 223, 96, 24, 123, 195, 17, 169, 137, 151, 48, 93, 235, 91, 1, 164, 170, 60, 156, 153, 34, 30, 116, 184, 97, 242, 3, 109, 208, 118, 206]), value: EventValue([226, 212, 193, 131, 10, 192, 142, 117, 145, 140, 221, 45, 200, 45, 10, 176, 120, 99, 221, 211, 23, 151, 1, 135, 184, 48, 243, 127, 148, 182, 169, 169, 46, 113, 118, 193, 22, 234, 54, 226, 232, 81, 255]) }, Event { key: EventKey([246, 101, 238, 201, 156, 93, 160, 161, 127, 187, 255, 245, 189, 128, 70, 42, 246, 241, 15, 15, 208, 204, 137, 176, 183, 78, 79, 128, 154, 156, 193, 186, 67, 40, 252, 31, 92, 88, 4, 194, 39, 188, 79, 69, 158, 128, 172, 86, 210, 101, 63, 166, 118, 159, 106, 6, 141, 146, 219, 7, 7, 99, 157, 245, 143, 80, 55, 107, 149, 93, 68, 28, 33, 215, 21, 92, 30, 250, 158, 142, 198, 184, 146, 235, 6, 39]), value: EventValue([135, 192, 184, 54, 124, 197, 23, 143, 188, 11, 94, 249, 134, 90, 54, 32, 176, 82, 69, 135, 233]) }, Event { key: EventKey([134, 73, 152, 101, 219, 42, 136, 250, 214, 40, 213, 202]), value: EventValue([33, 24, 145, 166, 2, 188, 139, 42, 31, 4, 175, 129]) }, Event { key: EventKey([179, 122, 99, 106, 160, 111, 172, 85, 235, 134, 247, 66, 40, 159, 149, 225, 50, 7, 193, 213, 219, 244, 206, 151, 111, 228, 181, 152, 97, 181, 41, 177, 53, 206, 106, 180, 102, 119, 76, 183, 27, 223, 35, 186, 253, 108, 90, 194, 202]), value: EventValue([94, 251, 52, 124, 194, 94, 10, 181, 167, 240, 147, 103, 123, 167, 125, 142, 201, 184, 83, 187, 78, 0, 239, 20, 53, 249, 31, 72, 214, 245, 81, 96, 132, 240, 107, 46, 131, 226, 219, 239, 36, 128, 159, 12, 48, 228, 161, 108, 14, 96, 224, 21, 109, 116, 91, 213, 172, 103, 129, 92, 94, 225, 222, 129, 67, 44, 218, 252]) }, Event { key: EventKey([183, 25, 240, 62, 133, 249, 212, 240, 150, 39, 27, 102, 23, 251, 133, 137, 166, 253, 116, 149, 223, 45, 140, 193, 22, 224, 141, 41, 195, 195, 61, 73, 17, 22, 196, 171, 21, 221, 195, 121, 180, 63, 253, 21, 56, 53, 72, 3, 123]), value: EventValue([58, 34, 127, 168, 31, 88, 153, 227, 192, 250, 226, 61, 16, 216, 182, 150, 253, 228, 173, 202, 187, 211, 233, 96, 244]) }, Event { key: EventKey([57, 110, 125, 26, 31, 111, 67, 105, 217, 121, 127, 215, 120, 23, 235, 119, 125, 14, 70, 26, 195, 13, 207, 182, 237, 153, 134, 48, 189, 231, 194, 120, 205, 57, 22, 189, 165, 191, 75, 180, 252, 229, 216, 128, 10, 210, 134, 77, 204, 26, 183, 110, 228, 148, 201, 96, 75, 200, 155, 67, 211, 188, 81, 161, 20, 102, 136, 10, 9, 223, 89, 253, 177, 143, 70, 240, 215, 208, 105, 119, 8, 79, 10, 72, 95, 8]), value: EventValue([142, 111, 2, 184, 173, 130, 228, 149, 6, 111, 223, 216, 16, 50, 133, 176, 14, 223, 252, 99, 252, 56, 33, 156, 30, 96, 116, 6, 255]) }], receipt: 752899412 }, TransactionReceipt { tx_hash: [69, 83, 118, 51, 229, 77, 216, 79, 192, 120, 190, 152, 190, 44, 125, 47, 6, 78, 94, 44, 32, 219, 201, 228, 33, 108, 57, 147, 118, 134, 184, 208], body_to_save: None, events: [Event { key: EventKey([59, 99, 161, 36, 236, 30, 110, 254, 218, 137, 35, 192, 105, 245, 124, 131, 105, 177, 23, 249, 25, 181, 15, 101, 234, 119, 143, 157, 1, 20, 163]), value: EventValue([21, 178, 36, 54, 238, 152, 212, 61, 159, 20, 101, 240, 216, 24, 224, 80, 239, 27, 138, 200, 104, 58, 211, 76, 97, 50, 66, 9, 2, 246, 138, 19, 49, 175, 155, 170, 194, 199, 171, 31]) }, Event { key: EventKey([52, 175, 16, 41, 84, 221, 5, 149, 22, 122, 203, 132, 58, 65, 255, 62, 237, 53, 179, 157, 125, 227, 163, 91, 48, 55, 162, 82, 28, 152, 123, 115, 158, 77, 135, 104, 237, 109, 253, 144, 133]), value: EventValue([70, 222, 200, 75, 221, 108, 117, 140, 163, 110, 233, 64, 27, 223, 195, 162, 77, 147, 97, 237, 221, 36, 182, 17, 156, 87, 175, 42, 248, 188, 103, 149, 3, 227, 151, 204, 132, 38, 6, 239, 203, 117, 217, 128, 249, 113, 232, 22, 78, 252, 139, 35, 181, 124, 86, 100, 53, 150, 143, 31]) }, Event { key: EventKey([64, 165, 155, 28, 137, 165, 146, 77, 191, 87, 175, 168, 3, 85, 95, 235, 66, 205, 66, 171, 1, 247, 100, 171, 65, 231, 7, 145, 186, 74, 53, 220, 175, 180, 96, 1, 173, 12, 71, 229, 88, 90, 6, 114, 81, 132, 92, 125, 44, 208]), value: EventValue([4, 205, 97, 132, 152, 97, 70, 9, 119, 72, 250, 42, 128, 81, 12, 215, 167, 230, 69, 79, 208, 18, 47, 215, 152, 133, 0, 128, 175, 153, 215, 84, 135, 27, 170, 16, 250, 67, 241, 169, 9, 229, 65, 186, 73, 224, 247, 39, 182, 202, 95, 107, 29]) }, Event { key: EventKey([120, 209, 138, 164, 147, 229, 22, 166, 224, 54, 158, 38, 140, 242, 222, 37, 46, 216, 148, 233, 159, 217, 206, 123, 148, 29, 100, 154, 224, 130, 193, 179, 65, 139, 92, 111, 153, 119, 238, 161, 194, 117, 104, 213, 175, 69, 53, 230, 154, 115, 167]), value: EventValue([179, 108, 188, 233, 114, 247, 173, 56, 146, 229, 19, 208, 35, 50, 123, 56]) }, Event { key: EventKey([166, 86, 67, 197, 155, 51, 201, 145, 182, 112, 59, 170, 218, 223, 51, 245, 229, 144, 47, 142, 54, 189, 145, 218, 128, 11, 199, 82, 2, 254, 103, 7, 62, 102, 149, 18, 122, 141, 109, 61, 230, 163, 159, 162, 128, 63, 143, 46, 221, 46, 37, 121, 83, 113, 111, 18, 245, 164, 234, 105, 30, 40, 85, 126, 179, 188, 241, 125]), value: EventValue([89, 179, 33, 51, 74, 34, 247, 117, 113, 227, 199, 3, 92, 245, 96, 87, 71, 49, 97, 119, 144, 70, 89, 165, 87, 32, 183, 34, 177, 111, 255, 202, 36, 170, 206, 96, 219, 14, 170, 228, 186, 219, 214, 169, 73, 171, 211]) }, Event { key: EventKey([173, 134, 224, 74, 49, 191, 209, 70, 29, 155, 155, 40, 9, 40, 21, 206, 223, 240, 208, 0, 112, 152, 152, 121, 233, 50, 7, 15, 48, 158, 214, 102, 68, 180, 120, 0, 245, 118, 122, 107, 156, 87, 211, 97, 163, 73, 33, 147, 154, 242, 21, 10, 45, 59, 112, 29, 43, 205, 192, 181, 139, 198, 252, 56, 118, 32, 234, 156, 181, 211, 247, 212, 214, 49, 122, 174, 190, 86]), value: EventValue([93, 134, 106, 222, 26, 72, 220, 62, 144, 154, 131, 229, 133, 83, 49, 172, 120, 224, 12, 30, 253]) }], receipt: 967046561 }], inner: 839914789 }], num_txs: 18, num_events: 86 }, SlotCommit { slot_data: TestBlock { curr_hash: [29, 195, 21, 94, 18, 117, 250, 62, 10, 241, 245, 101, 105, 117, 144, 93, 187, 2, 156, 76, 46, 39, 140, 143, 198, 23, 180, 48, 6, 161, 18, 25], header: TestBlockHeader { prev_hash: TestHash([116, 241, 74, 168, 10, 218, 245, 166, 4, 159, 149, 223, 219, 21, 244, 97, 40, 178, 225, 206, 239, 103, 1, 128, 179, 50, 218, 88, 215, 149, 130, 184]) } }, batch_receipts: [BatchReceipt { batch_hash: [11, 194, 129, 210, 7, 190, 116, 163, 202, 126, 255, 185, 16, 29, 81, 132, 82, 38, 23, 134, 92, 156, 213, 84, 177, 250, 179, 59, 250, 28, 129, 92], tx_receipts: [TransactionReceipt { tx_hash: [106, 194, 199, 252, 134, 128, 196, 172, 101, 56, 23, 46, 104, 249, 85, 12, 212, 81, 45, 197, 139, 172, 170, 40, 167, 38, 212, 159, 242, 99, 157, 6], body_to_save: None, events: [Event { key: EventKey([10, 106, 58, 98, 136, 229, 131, 95, 17, 23, 103, 34, 29, 147, 196, 201, 163, 245, 78, 253, 76, 222, 117, 160, 50, 29, 187, 234, 150, 129, 15, 76, 169, 245, 95, 182]), value: EventValue([130, 55, 40, 75, 33, 210, 0, 243, 102, 159, 112, 117, 111, 130, 189, 60, 52, 132, 13, 147, 28, 197, 85, 66, 73, 163, 93, 207, 5, 140, 51, 200, 93, 208, 206, 253, 167, 2, 78, 104, 143, 239, 138, 25, 180, 186, 249, 192, 119, 96, 83, 22, 231, 198, 137, 55, 200, 121, 103, 56, 131, 66, 191, 130, 223, 19, 179, 183, 24, 75, 87, 70, 39, 186, 232, 205, 125, 116, 246, 159, 96, 194, 147, 218, 28, 141, 45, 83, 113, 126, 18, 205, 106, 13, 27]) }], receipt: 3430915087 }], inner: 2936036093 }, BatchReceipt { batch_hash: [60, 126, 132, 1, 46, 134, 245, 39, 113, 98, 205, 244, 170, 165, 132, 222, 182, 63, 39, 22, 230, 161, 12, 140, 213, 163, 10, 128, 253, 198, 247, 205], tx_receipts: [TransactionReceipt { tx_hash: [16, 79, 1, 158, 202, 121, 145, 20, 209, 139, 195, 127, 148, 184, 186, 195, 146, 206, 102, 39, 80, 18, 138, 215, 235, 246, 156, 115, 213, 127, 169, 48], body_to_save: None, events: [Event { key: EventKey([144, 14, 193, 133, 213, 236, 189, 193, 146, 150, 250, 219, 162, 178, 104, 55, 204, 100, 6, 95, 107, 16, 183, 68, 163, 101, 137, 77, 13, 16, 52, 203, 195, 213, 183, 163, 133, 99, 224, 24, 92, 14, 210, 131, 175, 84, 15, 74, 91, 23, 45, 23, 130, 192, 226]), value: EventValue([246, 129, 218, 2, 227, 56, 76, 246, 225, 48, 120, 141, 229, 49, 55, 191, 177, 180, 142, 3, 106, 126, 233, 130, 88, 50, 95, 45, 83, 145, 137, 118, 197, 159, 78, 19, 180, 67, 87, 152, 75, 225, 85, 96, 180, 42, 41, 240, 150, 2, 99, 165, 83, 244, 67, 231, 197, 116, 103, 249, 76, 247, 75, 5, 76, 149, 219, 90, 14, 202, 191, 131, 58, 236, 32, 36, 25, 201, 233, 220, 201, 220, 189, 116, 137, 178, 219, 227, 221, 50, 224, 210, 65]) }, Event { key: EventKey([56, 181, 190, 161, 131, 46, 1]), value: EventValue([73]) }, Event { key: EventKey([42, 175, 50, 20, 143, 164, 218, 88, 110, 141, 228, 243, 145, 11, 248, 168, 243, 30, 102, 234, 93, 71, 221, 5, 65, 68, 231, 232, 86, 151, 48, 89, 250, 150, 146, 56, 41, 61, 90, 208, 203, 39, 123, 238, 101, 155, 142, 112, 178, 71]), value: EventValue([172, 9, 66, 140, 138, 232, 243, 117, 75, 161, 209, 199, 230, 131, 251, 245, 38, 248, 208, 145, 204, 143, 116, 185, 62, 191, 84, 146, 177, 156, 53, 120, 216, 127, 98, 113, 215, 13, 99, 70, 74, 172, 6, 180, 155, 97]) }, Event { key: EventKey([218, 106, 150, 43, 21, 206, 102, 236, 37, 232, 164, 176, 29, 183, 215, 114, 135, 187, 207, 64, 17, 1, 107, 160, 187, 55, 252, 3, 98, 182, 212, 95, 180, 38, 195, 69, 231, 17, 70, 97, 121, 195, 191, 125, 125, 143, 79]), value: EventValue([248, 117, 196, 189, 226, 126, 193, 70, 67, 159, 64, 83, 51, 9, 169, 145, 45, 224, 38, 75, 16, 43, 47, 252, 128, 58, 28, 209, 112, 112, 120, 102, 224, 250, 70, 240, 150, 181, 104, 52, 86, 229, 179, 235, 6, 154, 60, 222, 97, 72, 184, 35, 120, 146, 18, 61, 155, 43]) }, Event { key: EventKey([89, 63, 71, 133, 92, 74, 18, 236, 20, 13, 12, 20, 46, 72, 106, 229, 87, 214, 165, 215, 194, 70, 127, 22, 156, 218, 224, 195, 170, 125, 21, 195, 255, 55, 168, 198, 42, 8, 20, 245, 69, 246, 217, 70, 225, 235, 91, 25, 130, 209, 39, 181, 30, 179, 179, 81, 242, 133, 117, 55, 20, 44, 199, 157, 15, 226, 43, 141, 82, 46, 145, 198, 87, 159, 70, 77, 123, 53, 17, 30, 153, 148, 26, 138, 76, 33, 68, 244]), value: EventValue([208, 207, 102, 106, 180, 188, 35, 52, 110, 18, 43, 210, 205, 218, 185, 6, 155, 123, 241, 9, 206, 249, 2, 176, 23, 31, 43, 150, 141, 25]) }], receipt: 1520835796 }, TransactionReceipt { tx_hash: [204, 37, 90, 216, 137, 57, 139, 136, 8, 29, 86, 142, 159, 29, 232, 6, 8, 119, 59, 17, 91, 223, 204, 27, 70, 243, 200, 19, 220, 215, 12, 118], body_to_save: Some([137]), events: [Event { key: EventKey([32, 67, 187, 161, 107, 1, 109, 51, 242, 109, 164, 97, 66, 13]), value: EventValue([122, 0, 114, 35, 63, 142, 239, 137, 202, 13, 193, 77, 253, 225, 59, 40, 109, 144, 137, 130, 154, 211, 19, 67, 58, 216]) }], receipt: 2516277195 }, TransactionReceipt { tx_hash: [204, 88, 55, 123, 95, 58, 149, 75, 184, 251, 100, 186, 65, 174, 222, 121, 82, 85, 215, 153, 30, 71, 65, 148, 199, 124, 13, 238, 110, 39, 124, 38], body_to_save: None, events: [Event { key: EventKey([89, 43, 21, 95, 46, 233, 190, 153, 90, 104, 252, 19, 145, 242, 66, 138, 154, 130, 134, 39, 55, 4, 208, 231, 120, 147, 114, 141, 46]), value: EventValue([61, 29, 255, 81, 42, 143, 52, 235, 49, 118, 244, 144, 146, 179, 49, 151, 195, 98, 157, 50, 182, 255, 98, 214, 6, 205, 126, 166, 64, 181, 232, 27, 197, 252, 97, 55, 130, 64, 208, 168, 217, 7, 117, 85, 40, 84, 104, 27, 95, 165, 69, 172, 127, 13, 125, 218, 185, 56, 93, 54, 4, 13, 23, 33, 173, 203, 163, 53, 9, 254, 235, 220, 170, 65, 16, 27, 66, 140, 123, 34, 135, 37, 23]) }], receipt: 3536288430 }, TransactionReceipt { tx_hash: [166, 165, 160, 218, 36, 20, 244, 165, 30, 50, 155, 29, 207, 187, 5, 196, 18, 42, 197, 68, 167, 73, 94, 107, 248, 17, 27, 159, 47, 231, 67, 195], body_to_save: None, events: [Event { key: EventKey([43, 176, 85, 229, 157, 170, 33, 73, 180, 97, 41, 178, 144, 129, 224, 173, 119, 165, 153, 39, 91, 90, 237, 157, 197, 71, 181, 79, 244, 10, 234, 229, 159, 157, 233, 162, 132, 51, 112, 99, 181, 4, 205, 72, 47, 70, 192, 238, 157, 212, 202, 126, 176, 122, 72, 83, 81, 113, 143, 203, 45, 252, 250, 243, 244, 6, 31, 102, 243, 221, 56, 59, 38, 53, 128, 4, 93, 213, 226]), value: EventValue([93, 115, 30, 102, 233, 171, 94, 109, 210, 105, 165, 251, 239, 220, 119, 63, 112, 175, 128, 29, 23, 2, 106, 241, 101, 247, 216, 131, 10, 81, 120, 173, 43, 38, 78, 40, 226, 90, 13, 44, 39, 43, 236, 175, 108, 97, 20, 16]) }, Event { key: EventKey([93, 137, 40, 125, 133, 67, 117, 132, 11, 40, 17, 162, 76, 43, 205, 56, 7, 188, 255, 169, 159, 87, 37, 186, 202, 210, 58, 202, 168, 112, 187, 2, 79, 32, 19, 232, 61, 12, 67, 158, 141, 4, 108, 24, 255, 176, 109, 163, 184, 217, 219, 192, 112, 219, 103, 178, 220, 128, 148]), value: EventValue([78]) }, Event { key: EventKey([53, 66, 166, 79, 212, 54, 197, 74, 18, 184, 98, 8, 20, 28, 250, 118, 226, 188, 84, 216, 251, 243, 90, 102, 239, 95, 145, 236, 120, 161, 214, 186, 170, 181, 183, 225, 94, 77, 135, 48, 145, 77, 250, 79, 166, 30, 101, 112, 198, 30, 123, 36, 252, 175, 247, 5, 211, 17, 14, 47, 110, 18, 216, 84, 234, 167, 31, 51, 180, 194, 81, 162, 88, 216, 60, 10, 45, 99, 214, 150, 158, 74, 222, 122]), value: EventValue([194]) }, Event { key: EventKey([201, 211, 106, 163, 200, 185, 232, 75, 35, 172]), value: EventValue([230, 238, 134, 91, 72, 158, 131, 163, 46, 34, 48, 104, 124, 180, 2, 57, 252, 80, 235, 245, 28, 106, 52, 144, 96, 239, 249, 183, 105, 51, 255, 21, 77, 155, 186, 70, 234, 107, 38, 28, 50, 85, 31, 68, 38, 109, 119, 230, 2, 213, 224, 34, 36, 137, 171, 130]) }, Event { key: EventKey([86, 114, 45, 148, 87, 230, 136, 178, 77, 232, 172, 238, 94, 96, 60, 38, 210, 156, 198, 167, 98, 197, 18, 159, 50, 77, 118, 70, 69, 125, 23, 210, 179, 12, 177, 237, 227, 205, 27, 89, 75, 209, 78, 98, 167, 114, 61, 17, 202, 208, 94, 121, 34, 241, 181, 96, 215, 109, 78, 95, 95, 38, 164, 86, 132, 40, 65, 184, 19, 47, 25, 203, 188, 26, 157, 163, 252, 1, 74, 36, 163, 26, 178, 60, 147, 181, 156, 244, 3, 30, 226, 104, 97, 105, 179]), value: EventValue([105, 15, 88, 77, 40, 101, 190, 35, 212, 110, 30, 228, 21, 22, 20, 66, 74, 140, 247, 56, 231, 16, 250, 79, 242, 11, 79, 206, 26, 89, 82, 250]) }, Event { key: EventKey([132, 20, 214, 81, 89, 96, 58, 9, 86, 102, 216, 27, 113, 127, 147, 220, 244, 103]), value: EventValue([227, 140, 2, 223, 95, 165, 17, 48, 124, 9, 155, 247, 234, 211, 118, 111, 24, 176, 178, 196, 71, 81, 141, 29, 139, 3, 175, 105, 5, 28, 125, 147, 41, 38, 46, 83, 138, 37, 71, 219, 216, 174, 195, 2, 121, 234, 188, 230, 73, 238, 214, 188, 226, 92, 4, 125, 198, 84, 118, 225, 130, 31, 29, 146]) }], receipt: 4041124041 }, TransactionReceipt { tx_hash: [152, 13, 203, 108, 16, 23, 101, 134, 205, 32, 15, 186, 66, 184, 126, 101, 217, 186, 150, 30, 183, 146, 90, 237, 210, 42, 211, 208, 134, 156, 249, 10], body_to_save: None, events: [Event { key: EventKey([56, 88, 79, 5, 84, 75, 242, 159, 174, 42, 192, 4, 150, 150, 104, 242, 83, 183, 196, 227, 125, 38, 224, 69, 64, 3, 164, 157, 245, 11, 37, 190, 171, 232, 28, 134, 88, 48, 165, 161, 146, 143, 243, 74, 155, 179, 178, 166, 176, 5, 70, 245, 248, 180, 222, 69, 242, 152, 122, 47, 117, 125, 40, 29, 74, 123, 227, 137, 54, 30, 78, 139, 231, 36, 176, 177, 170, 78, 137, 64, 75, 222, 206, 66, 22, 48, 144, 99, 195, 149]), value: EventValue([181, 9, 199, 187, 170, 62, 140, 107, 169, 2, 54, 129, 154, 131, 77, 160, 28, 92, 207, 13, 0, 70, 202, 114, 91, 237, 47, 210, 150, 53, 152, 94, 145, 96, 66, 181, 253, 157, 94, 37, 8, 200, 202, 146, 193, 255, 206, 127, 18, 3, 50, 22, 234, 199, 207, 118, 6, 28, 152, 1, 142, 27]) }, Event { key: EventKey([2, 252, 206, 11, 121]), value: EventValue([127, 194, 36, 71, 194, 165, 103, 3, 183, 0, 76, 164, 51, 93, 191, 241, 85]) }, Event { key: EventKey([250, 29, 58, 231, 97, 37, 234, 169, 23, 85, 152, 198, 27, 202, 125, 77, 172, 87, 163, 86, 66, 152, 216, 240, 158, 142, 225, 63, 68, 120, 193, 107, 195, 53, 61, 84, 232, 100, 10, 105, 235, 33, 47, 231, 197, 199, 181, 136, 127, 113, 71, 25, 17, 72, 228, 180, 111, 201, 169, 14, 109, 91, 89, 241, 132, 178, 95, 39, 87, 166]), value: EventValue([246, 12, 157, 222, 188, 156, 128, 158, 249, 54, 217, 198, 126, 210, 131, 230]) }, Event { key: EventKey([115, 168, 139, 244, 9, 72, 226, 103, 9, 198, 191, 163, 147, 5, 239, 196, 216, 73, 90, 226, 224, 144, 218, 121, 198, 191, 46, 163, 86, 6, 210, 84, 218, 37, 209, 219, 59, 74, 190, 204, 173, 180, 223, 233, 189, 134, 125, 69, 65, 13, 60, 229]), value: EventValue([61, 55, 225, 55, 236, 186, 188, 12, 237, 196, 84, 62, 169, 6, 245, 201, 132, 61, 120, 172, 18, 215, 94, 94, 110, 164, 99, 242, 27, 24, 202, 82, 11, 27, 168, 197, 66, 232, 94, 134, 196, 237, 180, 225, 241, 42, 71, 87, 191, 52, 235, 141, 68, 35, 19, 133, 194, 190, 6, 168, 39, 4, 107, 228, 126, 52, 12, 189, 70, 28, 53, 244, 77, 216, 30, 47]) }, Event { key: EventKey([14, 0, 235, 144, 251, 10, 98, 187, 177, 51, 147, 68, 82, 105, 91, 217, 53, 239, 171, 18, 254, 172, 107, 187, 29, 18, 159, 73, 168, 222, 41, 156, 211, 3, 20, 89, 72, 21, 230, 86, 239, 11, 211, 227, 164, 199, 242, 7, 91, 142, 58, 16, 21, 130, 227, 229, 163, 232, 165, 171, 130, 104, 189, 192, 182, 15, 244, 176, 109, 247, 92, 154, 135, 247, 193, 177, 146, 144, 39, 111, 43, 239, 175, 220]), value: EventValue([241, 130, 152, 22, 134, 152, 21, 173, 125, 16, 47, 160, 169, 146, 240, 253, 180, 164, 27, 63, 80, 250, 146, 78, 170, 70, 60, 173, 37, 85, 67, 65, 94, 152, 236, 226, 103, 45, 72, 57, 251, 216, 46, 57, 172, 73, 5, 238, 55, 246, 77, 236]) }], receipt: 3724815686 }], inner: 2853513795 }, BatchReceipt { batch_hash: [203, 35, 132, 14, 81, 93, 21, 127, 99, 139, 26, 220, 201, 233, 10, 22, 165, 54, 37, 222, 15, 156, 223, 185, 69, 234, 227, 129, 71, 190, 223, 191], tx_receipts: [TransactionReceipt { tx_hash: [122, 208, 168, 57, 191, 245, 156, 121, 195, 193, 220, 57, 62, 21, 11, 179, 129, 252, 163, 181, 177, 147, 249, 44, 134, 58, 58, 171, 69, 50, 102, 60], body_to_save: None, events: [Event { key: EventKey([67, 131, 86, 163, 197, 139, 183, 101, 66, 161, 182, 182, 94, 237, 241, 203, 145, 225, 114, 38, 192, 131, 49, 99, 28, 157, 154, 253, 185, 104, 168, 63, 143, 86, 84, 181, 71, 2, 194, 58, 192, 225, 252, 192, 81, 2, 249, 87, 85, 59, 122, 9, 106, 113, 221, 230, 108, 202, 254, 200]), value: EventValue([129, 58, 36, 107, 164, 74, 16, 5, 218, 38, 243, 98, 67, 239, 19, 189, 75, 206, 173, 188, 251, 249, 45, 19, 200, 239, 136, 175, 153, 98, 22, 56, 40, 177, 198, 84, 244, 6, 124, 69, 7, 168, 162, 232, 218, 247, 80, 0, 129, 119, 228, 190, 45, 122, 165, 14, 216, 221, 99, 35, 113, 76, 206, 40, 7, 136, 29, 28, 215, 75, 154, 108, 204, 77, 132]) }, Event { key: EventKey([126, 101, 210, 28, 23, 112, 66, 235, 32, 38, 173, 224, 9, 254, 223, 31, 57, 64, 28, 140, 167, 74, 254, 22, 179, 176, 224, 25, 230, 245, 232, 37, 245]), value: EventValue([183, 52, 12, 201, 11, 164, 126, 14, 166, 242, 80, 56, 105, 170, 184, 187, 152, 205, 116, 136, 156, 175, 22, 96, 171, 210, 190, 145, 8, 41, 255, 27, 130, 108, 218, 233, 80, 221, 54, 231, 33, 253, 226, 86, 134, 226, 75, 122, 194, 97, 188, 96, 250, 55, 71, 195]) }, Event { key: EventKey([12, 100, 190, 193, 119, 164, 242, 56, 18, 64, 73, 3, 252, 55, 68, 195, 240, 132, 160, 174, 53, 202, 20, 76]), value: EventValue([30, 115, 181, 203, 226, 51, 19, 97, 248, 134, 68, 134, 14, 127, 103, 96, 231, 240, 26, 187, 230, 46, 23, 153, 253, 142, 112, 205, 205]) }, Event { key: EventKey([161, 123, 225, 53, 169, 64, 246, 140, 230, 139, 153, 163, 247, 230, 220, 60, 19, 19, 239, 9, 239, 16, 43, 56, 190, 67, 11, 147, 140, 147, 113, 41, 182, 73, 195, 180, 76, 123, 87, 94, 87, 255, 0, 177, 177, 93, 50, 234, 153, 74, 73, 250, 50, 28, 97, 107, 160, 12, 86, 235, 2]), value: EventValue([18, 48, 29, 219, 216, 115, 205, 175, 241, 217, 63, 226, 255, 218, 65, 115]) }, Event { key: EventKey([201, 228, 184, 63, 95, 3, 79, 40, 226, 176, 251, 116, 100, 166, 8, 218, 56, 85, 167, 69, 107, 40, 58, 56, 24, 92, 166, 104, 42, 190, 97, 249, 152, 149, 9, 243, 78, 177, 142, 43]), value: EventValue([225, 147, 87, 128, 97, 19, 177, 158, 183, 37, 248, 90, 60, 70, 221, 134, 69, 250, 158, 183, 89, 106, 229, 199, 143, 140, 32, 8, 32, 96, 18, 164, 85, 220, 222, 24, 205, 243, 113, 170, 72, 61, 22, 223, 26, 180, 16, 130, 161, 124, 238, 31, 99, 77, 116, 225, 252, 138, 66, 59, 242, 155]) }, Event { key: EventKey([243, 43]), value: EventValue([20, 214, 3, 11, 44, 78, 97, 96, 154, 53, 85, 254, 174, 159, 111, 144, 246, 41, 185, 177, 11, 53, 169, 45, 220, 148, 155, 55, 39, 33, 206, 69, 225, 234, 136, 18, 253, 71, 32, 39, 1]) }, Event { key: EventKey([80, 95, 79, 249, 85, 223, 239, 250, 29, 182, 134, 216, 79, 143, 69, 226, 251, 79, 195, 228, 166, 117, 67, 243, 49, 12, 4, 65, 96, 206, 32, 228, 146, 165, 153, 247, 102, 151]), value: EventValue([90, 245, 251, 252, 16, 73, 217, 107, 253, 66, 8, 131, 144, 44, 156, 160, 85, 235, 155, 41, 5, 233, 11, 64, 115, 105, 155, 55, 224, 188, 154, 146, 35, 40, 240, 222, 161, 100, 130, 157, 189, 142, 211, 213, 147, 92, 78, 127, 183, 185, 125, 140, 4, 9, 68, 184, 65, 142, 232, 35, 188, 118, 98, 14, 199, 35, 90, 25, 152, 246, 157, 213, 203]) }], receipt: 1542185857 }], inner: 2835079705 }, BatchReceipt { batch_hash: [177, 233, 177, 225, 233, 233, 183, 177, 124, 161, 161, 106, 245, 113, 157, 1, 229, 234, 55, 14, 243, 74, 151, 138, 35, 88, 95, 51, 68, 41, 195, 130], tx_receipts: [TransactionReceipt { tx_hash: [39, 200, 18, 241, 31, 161, 32, 131, 58, 106, 108, 26, 197, 36, 26, 133, 251, 33, 166, 186, 159, 205, 129, 95, 225, 124, 101, 0, 214, 86, 210, 26], body_to_save: Some([106, 45, 83, 253, 47, 169, 14, 244, 75, 33, 211, 154, 125, 186, 1, 101, 91, 119, 181]), events: [Event { key: EventKey([93, 245, 207, 205, 223, 76, 225, 30, 21, 8, 16, 38, 122, 18, 34, 23, 128, 31, 218, 250, 4, 37, 82, 167, 0, 178, 63, 197, 246, 194, 204, 211, 127, 38, 52, 104, 90, 207, 170, 7, 218, 135, 74, 209, 27, 240, 179, 47, 113, 255, 211, 183, 34, 7, 230, 31, 10, 1, 204, 51, 225, 175, 48, 137, 153, 215, 159, 17, 178]), value: EventValue([100, 117, 63]) }, Event { key: EventKey([170, 160, 179, 124, 209, 1, 0, 200, 118, 251, 221, 148, 13, 149, 230, 148, 99, 189, 50, 193, 75, 99, 200, 6, 194, 174, 118, 99, 104]), value: EventValue([123, 250, 45, 220, 245, 207, 155, 110, 153, 238, 194, 247, 6, 66, 152, 188, 40, 41, 105, 160, 251, 31, 87, 167, 14, 120, 161, 176, 56, 178, 187, 229, 255, 223, 50, 255, 220, 134, 29, 82, 13, 67, 112, 29, 78, 88, 194, 202, 125, 153, 235, 98, 114, 44, 96, 229, 183, 20, 231, 9, 117, 140, 119, 51, 211, 74, 37, 99, 215, 60, 183, 247, 188, 219, 252, 231, 204, 131]) }, Event { key: EventKey([126, 141, 3, 85, 133, 96, 211, 78, 247, 58, 153, 165, 180, 126, 91, 133, 13, 184, 107, 225, 46, 213, 205, 122, 34, 138, 139, 28, 124, 70, 118, 56, 217, 242, 30, 194, 222, 34, 155, 221, 92, 125, 90, 232, 36]), value: EventValue([241, 230, 45, 180, 72]) }, Event { key: EventKey([111, 43, 100, 122, 27, 130, 25, 67, 111, 156]), value: EventValue([220, 35, 138]) }, Event { key: EventKey([232, 106, 211, 43, 16, 208, 13, 73, 136, 175, 22, 198, 213, 120, 224, 255, 116, 206, 41, 60, 242, 150, 41, 100, 158]), value: EventValue([93, 229, 147, 157, 100, 157, 145, 117, 142, 68, 76, 69, 15, 80, 137, 188, 111, 241, 137, 162, 61, 165, 140, 100, 72, 75, 5, 110, 137, 244, 75, 114, 198, 147, 117, 106, 211, 137, 227, 67, 35, 195, 95, 100, 49, 98, 176, 113, 160, 134, 214, 163, 151, 63, 220, 166, 116, 189, 99, 208, 81, 88, 59, 237, 243, 194]) }, Event { key: EventKey([34, 3, 196, 132, 241, 44, 58, 22, 217, 29, 185, 188, 231, 148, 72, 120, 138, 127, 161, 113, 69, 166, 146, 123, 115, 200, 223, 232, 244, 54, 125, 154, 233, 91, 63, 136, 148, 206, 165, 92, 202, 216, 203, 60, 137, 193, 163, 187, 130, 161, 225, 209, 91, 222, 242, 221, 119, 46, 203, 9, 109, 44, 110, 215, 39, 187, 228, 53, 225]), value: EventValue([151, 88, 9, 72]) }, Event { key: EventKey([57, 235, 250, 231, 114, 136, 1, 83, 74, 113, 187, 128, 175, 74, 12, 212, 148, 168, 23, 167, 132, 165, 177, 208, 36, 123, 108, 244, 106, 236, 79, 19, 228, 88, 113, 108, 231, 233, 41, 50, 62, 118, 105, 61, 182, 13, 176, 207, 82, 189, 106, 186, 248, 41, 33, 245, 58, 43, 74, 216, 35, 3, 7, 29, 54, 94, 23, 187, 33, 201, 255, 183, 98, 65, 188, 158, 36, 183, 104, 197, 37, 88, 72, 174, 111, 5, 214, 114, 172, 87, 147, 142, 208, 107, 111, 235, 196]), value: EventValue([109, 50, 100, 24, 221, 140, 188, 154, 45, 236, 177, 121, 8, 228, 187, 0, 214, 168, 203, 186, 163, 60, 175, 117, 156, 56, 255, 123, 55, 159, 141, 51, 209]) }, Event { key: EventKey([123, 27, 31, 53, 237, 95, 226, 11, 253, 132, 9, 84, 32, 138, 89, 134, 161, 0, 94, 80, 185, 81, 87, 20, 51, 135, 249, 238]), value: EventValue([156, 8, 85, 30, 10, 125, 90, 81, 62, 38, 116, 189, 48, 51, 0, 49, 79, 125, 85, 22, 87, 252, 236, 162, 150, 146, 134, 21, 203, 49, 161, 70, 191, 246, 71, 187, 254, 69, 53, 130, 227, 83, 44, 50, 231, 54, 250, 190, 3, 180, 119, 220, 73, 38, 123, 78, 152]) }], receipt: 1389888411 }, TransactionReceipt { tx_hash: [83, 16, 228, 125, 222, 127, 13, 255, 169, 27, 159, 141, 210, 215, 111, 234, 180, 39, 103, 167, 255, 140, 138, 187, 227, 216, 41, 249, 202, 183, 172, 125], body_to_save: None, events: [Event { key: EventKey([24, 96, 235, 220, 239, 246, 244, 189, 50, 241, 138, 56, 199, 98, 119, 7, 166, 226, 238, 27, 76, 75, 163, 134, 199, 248, 35, 21, 148]), value: EventValue([3, 10, 206, 207, 100, 23, 77, 15, 125, 250, 179, 232, 70, 158, 48, 157, 235, 249, 233, 138, 28, 148, 17]) }, Event { key: EventKey([38, 77, 242, 177, 77, 209, 46, 255, 32, 229, 79, 22, 177, 227, 211, 171, 246, 119, 219, 168, 30, 184, 6, 229, 141, 64, 178, 175, 41, 206, 200, 142, 115, 234, 172, 12, 114, 95, 182, 180, 146, 73, 137, 144, 107, 177, 227, 141, 217, 44, 200, 234, 244, 47, 166, 248, 190, 244, 95, 81, 161, 5, 92, 161, 140, 169, 195, 224]), value: EventValue([85, 97, 145, 179, 27, 54, 10, 163, 124, 124, 100, 109, 201, 31, 169, 18, 129, 84, 140, 210, 91, 166, 203, 181, 22, 162, 239, 208, 0, 117, 142, 155, 43, 186, 6, 163, 228, 255, 116, 58, 227, 195, 105, 0, 206, 229, 131, 143, 221, 64, 145, 56, 121, 221, 17, 247, 60, 144, 17, 210, 31, 1, 195, 216, 44, 248, 41, 29, 91, 182, 128, 19, 20, 196, 97, 238, 159, 181, 152, 251, 254, 190, 113, 178, 66, 218, 142, 56, 149, 186, 68, 48, 60, 155, 139, 166]) }, Event { key: EventKey([11, 253, 241, 205, 57, 150, 66, 104, 219, 100, 237, 144, 196, 111]), value: EventValue([10, 188, 152, 17, 164, 167, 157, 233, 133, 90, 145, 51, 220, 214, 155, 241, 67, 37, 252, 156, 84, 175, 30, 18, 73, 105, 237, 158, 22]) }, Event { key: EventKey([157, 205, 168, 69, 140, 68, 219, 145, 209, 78, 206, 182, 81, 76, 109, 35, 82, 136, 145, 101, 44, 175, 42, 74, 96, 92, 55, 171, 255, 20, 95]), value: EventValue([136, 123, 79, 240, 103, 43, 211, 213, 11, 168, 121, 13, 34, 16, 243, 46, 251, 194, 12, 40, 33, 220, 148, 219, 110, 26, 114, 253, 103, 213, 246, 50, 165, 44, 101, 71, 139, 121, 59, 177, 133, 252, 40, 90, 111, 33, 126, 232]) }, Event { key: EventKey([207, 254, 119, 224, 157, 12, 158, 74]), value: EventValue([84, 183, 94, 196, 126, 116, 157, 252, 70, 244, 215, 47, 81, 248, 214, 205, 169, 71, 41, 138, 76, 198, 160, 41, 185, 213, 173, 25, 225, 137, 154, 182, 85, 39, 17, 93, 213, 136, 242, 61, 57, 185, 36, 249, 32, 21, 112, 220, 70, 55, 109, 36, 93, 233, 97, 226, 209, 170, 217]) }, Event { key: EventKey([240, 100, 215, 142, 17, 55, 92, 61, 162, 187, 34, 25, 47, 103, 183, 62, 22, 246, 182, 40, 160, 18, 27, 139, 192, 103, 236, 66, 48, 99, 150, 206, 121, 74, 247, 17, 0]), value: EventValue([1, 103, 121, 255, 225, 229, 224, 147, 157, 248, 9, 13, 179, 164, 32, 29, 210, 118]) }], receipt: 3735267259 }, TransactionReceipt { tx_hash: [228, 37, 124, 202, 250, 57, 170, 120, 166, 125, 184, 217, 250, 8, 148, 147, 28, 204, 173, 200, 250, 42, 232, 103, 109, 23, 158, 7, 16, 194, 12, 252], body_to_save: Some([171, 113, 207, 177, 211, 198, 220, 102, 163, 103, 159, 160, 47, 34, 79, 238, 67, 71, 210, 71, 16]), events: [Event { key: EventKey([252, 170, 165, 230, 17, 142, 109, 246, 76, 238, 214, 167, 153, 251, 31, 165, 136, 229, 66, 32, 178]), value: EventValue([85, 37, 83, 20, 149, 135, 89, 40, 120, 178, 166, 233, 66, 72, 50, 134, 200, 48, 113, 83, 102, 60, 121, 196, 182, 161, 66, 104, 129, 165, 129, 9, 21, 16, 143, 18, 72, 76, 223]) }, Event { key: EventKey([186, 156, 52, 174, 113, 72, 71, 91, 53, 78, 119, 198, 228, 78, 149, 187, 57, 89, 54, 35, 89, 198, 235, 192, 85, 210, 89, 192, 39, 137, 157, 17, 16, 33, 16, 100, 130, 70, 34, 151, 47, 188, 64, 73, 135, 33, 172, 67, 116, 178, 180, 97, 118, 164, 28, 242, 26, 182, 209, 226, 41, 107, 210, 23, 144, 245, 71, 191, 109, 151, 147, 144, 167, 118, 6, 119, 141, 76, 221, 59, 240, 158, 67, 245, 156, 7, 20, 139, 76, 52, 241, 163, 184, 201, 230, 5, 171, 83, 186]), value: EventValue([243, 68, 229, 54, 215, 28, 60, 234, 158, 38, 200, 22, 41, 249, 61, 77, 251, 45, 39, 70, 135, 240, 238, 89, 197, 196, 21, 142, 243, 97]) }, Event { key: EventKey([114, 25, 155]), value: EventValue([82, 23, 94, 91, 215, 20, 212, 22, 237, 244, 40, 90, 88, 210, 57, 105, 170, 233, 144, 210, 7, 123, 157, 87, 141, 114, 127, 109, 191, 95, 163, 105, 22, 220, 62, 101, 218, 174, 10, 188, 177, 206, 250, 20, 210, 239, 151, 94, 39, 224, 120, 102, 2, 26, 176, 231, 164, 73, 146, 81, 139, 4, 57, 30, 16, 42, 9, 77, 169, 217, 69, 30, 212, 36, 87, 242, 55, 48, 35, 47, 81, 167, 203, 58, 201, 85, 43, 165, 137, 110, 247]) }, Event { key: EventKey([35, 181, 82, 213, 164, 116, 130, 249, 221, 66, 8, 22, 209, 206, 19, 137, 36]), value: EventValue([64, 186, 30, 43, 56, 128, 42, 128, 222, 214, 146, 218, 255, 47, 51, 157, 116, 236, 236, 43, 123, 254, 87, 189, 193, 254, 252, 147, 42, 96, 114, 233, 84, 225, 178, 120, 159, 31, 56, 233, 141, 154, 146, 224, 151, 174, 176, 132, 210, 67]) }, Event { key: EventKey([144, 86, 44, 187, 52, 211, 30, 174, 119, 214, 224, 50, 90, 15, 211, 122, 80, 153, 141, 165, 86, 160, 19, 178, 10, 122, 24, 35, 79, 6, 216, 114, 99, 205, 104, 145, 99, 217, 203, 238, 11, 103, 58, 74, 10, 10, 75, 239, 78, 136, 126, 194, 145, 142, 148, 55, 120, 209, 243, 236, 54, 69, 193, 66, 92, 47, 167, 147, 141, 201, 47, 17, 106, 99, 238, 105, 57, 117, 171, 89, 37, 219, 39, 81, 180, 113, 198, 206, 127, 216, 231, 255, 100, 51, 245, 61, 61, 91]), value: EventValue([240, 98, 88, 201, 161, 11, 157, 147, 143, 51, 138, 200, 195, 75, 192, 113, 103, 61, 164, 140, 168, 97, 185, 25, 62, 254, 163, 142, 41, 195, 66, 186, 80, 111, 114, 220, 41, 23, 239, 169, 246, 177, 222, 255, 44, 52, 238, 156, 182, 235, 119, 29, 217, 232, 230, 179, 153, 39, 4, 28, 143, 253, 164, 58, 76, 143, 116, 60, 240, 4, 196, 38, 251, 255, 27]) }, Event { key: EventKey([250, 132, 163, 29, 140, 149, 183]), value: EventValue([200, 15, 229, 201, 223, 4, 240, 183, 11, 79, 92, 187, 93, 124, 112, 253, 51, 164, 29, 192, 193, 25, 195, 143, 140, 253, 137, 183, 105, 195, 35, 217, 234, 31, 22, 85, 150, 131, 240, 140, 104, 120, 61, 18, 169, 173, 173, 76, 157, 126, 165, 236, 166, 127, 80, 132, 86, 126, 142, 48, 85]) }, Event { key: EventKey([221, 81, 79, 9, 218, 159, 130, 3, 234, 195, 39, 39, 137, 25, 68, 92, 41, 199, 247, 78, 19, 27, 107, 192, 143, 26, 115, 163, 187, 194, 239, 221, 165, 33, 66, 62, 253, 245, 58, 108, 140, 11, 35, 86, 85, 214, 186, 132, 254, 11, 59, 253, 174, 120, 225, 210]), value: EventValue([112, 40, 250, 41, 15, 115, 144, 99, 117, 48, 31, 186, 213, 201, 138, 209, 65, 45, 223, 222, 235, 159, 95, 139, 92, 30, 44, 40, 247, 97, 81, 3, 202, 76, 216, 81, 15, 230, 191, 211, 49, 85, 104, 249, 137, 255, 69, 38]) }], receipt: 3058779096 }, TransactionReceipt { tx_hash: [59, 141, 178, 39, 14, 39, 211, 94, 116, 126, 83, 255, 207, 138, 232, 73, 56, 55, 41, 247, 180, 53, 92, 243, 139, 236, 109, 54, 172, 168, 162, 74], body_to_save: None, events: [Event { key: EventKey([235, 2, 50, 229, 5, 50, 175, 174, 29, 143, 231, 45, 21, 138, 254, 71, 206, 244, 235, 175, 13, 7, 7, 102, 125, 103, 153, 250, 232, 150, 237, 20, 220, 250, 13, 4, 76, 185, 48, 230, 62, 1, 48, 25, 79, 96, 34, 135, 50, 113, 184, 95, 127, 42, 0, 6, 82, 6, 94, 234, 146, 193, 177, 226, 180, 24, 170, 171, 117, 7, 140, 178, 69, 88, 7, 52, 230, 239, 127, 169, 74, 90, 219, 104, 111, 122, 96, 20, 181, 151, 35, 137, 24, 31, 157, 164, 23]), value: EventValue([178, 120, 130, 16, 122, 0, 166, 178, 218, 49, 170, 188, 194, 34, 250, 115, 114, 147, 37, 48, 174, 137, 168, 68, 255, 255, 131, 184, 40, 138, 86, 179, 222, 204, 27, 0, 137, 140, 55, 121, 227, 245, 30, 71, 218, 45, 72, 237, 136, 227, 137, 105, 69, 216, 140, 182, 92, 147, 131, 157, 74, 108, 235, 23, 0, 94, 46, 177, 217, 196, 43, 42, 165, 21, 245, 250, 252, 124, 136, 255, 112, 172, 243, 31, 228, 90, 8, 25, 185]) }, Event { key: EventKey([96, 147, 57, 159, 181, 81, 49, 51, 154, 19, 126, 52, 133, 198, 93, 133, 93, 252, 234, 13, 198, 106, 224, 214, 154, 148, 68, 189, 83, 123, 39, 223, 101, 169, 152, 182, 135, 34, 26, 1, 83, 102, 154, 135, 31, 94, 29, 175, 76, 216, 189, 182, 199, 91, 136, 226, 218, 177, 142, 206, 19, 141, 178, 70, 33, 173, 214, 215, 207, 125, 135, 70, 173, 68, 248, 164, 156, 237, 240, 164, 154, 45, 127, 122, 91, 200, 130, 150, 35, 199, 240, 161, 174, 128, 212, 182, 126]), value: EventValue([105, 114, 7, 197, 135, 223, 124, 67, 24, 224, 212, 252, 34, 199, 29, 156]) }, Event { key: EventKey([94, 223, 215, 91, 242, 230, 93, 131, 223, 217, 102, 31, 129, 206, 148, 231, 98, 242, 183]), value: EventValue([230, 234, 181, 78, 247, 207, 229, 13, 221, 85, 209, 198, 70, 102, 126, 109, 112, 222, 245, 21, 189, 109, 151, 120, 240, 71, 239, 38, 169, 40, 118, 128, 55, 204, 110, 155, 14, 53, 248, 116, 87, 122, 47, 189, 178, 119, 188, 96, 67, 172, 56, 236, 209, 83, 246, 8, 8, 162, 210, 188, 130, 200, 35, 209, 180, 114, 234, 25, 183, 123, 235, 211]) }, Event { key: EventKey([127, 46, 97, 97, 15, 53, 214, 38, 140, 232, 69, 50, 53, 156, 104, 172, 8, 178, 232, 27, 98, 123, 81, 65, 127, 33, 45, 200, 168, 144]), value: EventValue([204, 216, 110, 183, 87, 164, 111, 7, 33, 135, 122]) }, Event { key: EventKey([246, 96, 230]), value: EventValue([131, 157, 70, 202, 249, 46, 64, 167, 188, 210, 111, 189, 31, 53, 64, 107, 228, 225, 145, 172, 114, 29, 171, 148, 60, 230, 119, 21, 160, 147, 15, 221, 127, 196, 78, 129, 68, 28, 124, 153, 162, 172, 169, 100, 45, 111, 110, 91, 80, 134, 96, 252, 178, 169, 250, 108, 146, 48, 155, 89, 190, 246, 173, 111, 78, 218]) }, Event { key: EventKey([41, 239, 41, 107, 25, 104, 14, 247, 100, 220, 255, 50, 74, 178, 207, 199, 2, 65, 171, 252, 245, 51, 3, 62, 137, 19, 150, 89, 217, 168, 166, 186, 47, 212, 67, 142, 88, 26]), value: EventValue([242, 116, 2, 153, 58, 238, 58, 83, 247, 35, 169, 119, 41, 38, 97, 134, 145, 15, 60, 219, 170, 29, 235, 144, 20, 90, 23, 76, 233, 201, 234, 161, 202, 216, 252, 44, 21, 230, 67, 95, 50, 2, 194, 86, 125, 253, 84, 86, 127, 77, 105, 228, 44, 144, 19, 18, 107, 241, 130, 45, 146, 8, 176, 84, 24, 170, 130, 53, 158, 83, 234, 92, 142, 183, 149, 163, 127, 157, 208, 85, 194, 171, 58, 133, 124, 10, 85, 103, 159, 143, 18, 6, 201, 31]) }, Event { key: EventKey([118, 223, 49, 126, 152, 159, 46, 162, 50, 236, 55, 233, 179, 55, 212, 95, 34, 49, 151, 45, 107, 201, 32, 130, 15, 1, 67, 2, 134, 113, 137, 40, 169, 83, 49, 189, 217, 64, 155, 79, 101, 114, 226, 186, 132, 147, 54, 171, 7, 54, 34, 218, 179, 173, 149, 113, 168]), value: EventValue([98, 171, 41, 135, 250, 22, 49, 218, 111, 205, 20, 76, 49, 37, 57, 38, 157, 179, 76, 113, 103, 18, 126, 114, 120, 127, 168, 100, 87, 235, 223, 163, 48, 191, 75, 223, 140, 146, 87, 158, 103, 6, 188, 164, 223, 205, 75, 135, 109, 151, 25, 60, 103, 164, 126, 187, 221, 147, 21, 104, 158, 117, 180, 70, 206, 184, 76, 199, 255, 129, 196, 147, 38, 208, 229, 16, 38, 191, 222, 170, 57, 237, 10, 35, 185]) }], receipt: 653890701 }], inner: 2044946545 }, BatchReceipt { batch_hash: [41, 89, 64, 216, 56, 225, 207, 164, 228, 7, 115, 240, 242, 157, 44, 206, 240, 175, 223, 10, 144, 245, 162, 78, 40, 252, 169, 76, 222, 122, 103, 57], tx_receipts: [TransactionReceipt { tx_hash: [124, 143, 87, 59, 26, 69, 68, 184, 84, 127, 88, 193, 230, 26, 77, 166, 132, 176, 235, 136, 173, 73, 40, 117, 234, 132, 57, 176, 98, 109, 223, 140], body_to_save: Some([188, 35, 180, 80, 226, 147, 119, 188, 101, 200, 198, 44, 108, 236, 238, 24, 140]), events: [Event { key: EventKey([124, 168, 17, 7, 16, 183, 41, 80, 213, 139, 55, 210, 73, 40, 9, 162, 202, 131, 253, 137, 165, 101, 197]), value: EventValue([159, 194, 139, 10, 206, 254, 103, 165, 30, 183, 51, 165, 227, 46, 216, 117, 42, 12, 201, 132, 68, 120, 144, 29, 19, 219, 184, 100, 192, 63, 224, 194, 29, 151, 27, 140, 222, 77, 26, 37, 64, 213, 125, 255]) }], receipt: 481081633 }], inner: 3030245939 }, BatchReceipt { batch_hash: [74, 222, 253, 74, 156, 248, 238, 65, 124, 182, 254, 27, 143, 194, 217, 117, 180, 210, 220, 36, 122, 106, 214, 55, 93, 130, 214, 25, 38, 202, 74, 112], tx_receipts: [TransactionReceipt { tx_hash: [167, 41, 164, 114, 26, 237, 102, 52, 235, 156, 179, 108, 255, 224, 148, 88, 146, 107, 178, 181, 203, 118, 141, 140, 140, 45, 18, 26, 43, 30, 78, 148], body_to_save: None, events: [Event { key: EventKey([12, 243, 197, 122]), value: EventValue([242, 54, 147, 188, 162, 207, 40, 80, 45, 215, 127, 75, 97, 154, 253, 170, 25, 38, 82, 80, 18, 180, 159, 78, 102, 170, 198, 7, 135, 105, 39, 170, 78, 54, 17, 70, 189, 128, 183, 56, 63, 103, 143, 204, 148, 31, 208, 127, 152, 144, 81, 145, 236, 171, 33, 143, 115, 40, 208, 203, 202, 167, 78, 163, 215, 157, 33, 142, 9, 121, 248]) }, Event { key: EventKey([230, 22, 61, 220, 144, 195, 20, 153, 178, 252, 112, 239, 22, 66, 223, 212, 156, 171, 80, 140, 169, 76, 38, 246, 199, 168, 206, 34, 69, 225]), value: EventValue([19, 103, 123, 96, 21, 46, 110, 15, 113, 114, 125, 173, 69, 29, 132, 100, 31, 220, 159, 74, 213, 163, 143, 249, 132, 14, 255, 98, 221, 48, 243, 166, 170, 42, 71, 56, 129, 229, 239, 208, 238, 209, 24, 202, 124, 207, 148, 116]) }, Event { key: EventKey([141, 245, 131, 106, 232, 236, 204]), value: EventValue([140, 10, 81, 173, 52, 148, 32, 195, 4, 202, 235, 234, 226, 148, 148, 151, 147, 110, 7, 226, 118, 146, 7, 22, 149, 7, 190, 234, 155, 195, 174, 155, 48, 189, 105, 169, 1, 217, 156, 23, 221, 128, 218, 34, 188, 116, 48, 84, 41, 98, 172, 32, 44, 28, 98, 147, 105, 52, 167, 173, 64, 73, 76, 8, 101, 121, 220, 172, 143, 247, 64, 128, 92, 147, 38, 254, 75, 172, 237, 3, 76, 16, 71, 148, 40, 3, 184, 156, 36, 137, 82, 39, 192, 251, 27, 248, 232, 22]) }, Event { key: EventKey([9, 173, 183, 2, 66, 203, 143, 248, 97, 35, 63, 92, 250, 90, 91, 37, 115, 247, 2, 55, 247, 191, 162, 200, 99, 77, 255, 89, 64, 112, 225, 136, 0, 165]), value: EventValue([228, 216, 120, 15, 1, 188, 222, 208, 21, 241, 184, 178, 17, 192, 30, 125, 204, 99, 252, 234, 10, 203, 151]) }], receipt: 616497554 }, TransactionReceipt { tx_hash: [97, 29, 30, 78, 60, 191, 206, 163, 96, 180, 79, 84, 146, 41, 114, 121, 216, 166, 195, 13, 108, 164, 58, 41, 112, 127, 2, 91, 52, 88, 78, 132], body_to_save: None, events: [Event { key: EventKey([170, 74, 7, 90, 168, 85, 131, 52, 108, 199, 97, 223, 1, 191, 249, 17, 228, 0, 200, 136, 175, 74, 77, 3, 99, 237, 243, 145, 250, 118, 133, 62, 125, 247, 106, 106, 177, 64, 176, 165, 77, 106, 244, 67, 26, 198, 43, 47, 34, 147, 52, 142, 252, 131, 78, 87, 10, 215, 115, 188, 46, 138, 228, 101]), value: EventValue([69, 109, 137, 58, 118, 80, 233, 179, 219, 88, 74, 207, 11, 7, 47, 148, 248, 24, 124, 230, 249, 65, 139, 164, 1, 238, 163, 165, 108, 64, 138, 199, 123, 208, 88, 39, 165, 175]) }, Event { key: EventKey([161, 62, 153, 81, 21, 232, 32, 224, 56, 138, 238, 165, 56, 125, 144, 142, 84, 37, 63, 214, 76, 147, 120, 177, 36, 78, 162, 56, 151, 122, 166, 123, 23, 67, 150, 183, 109, 78, 216]), value: EventValue([159, 204, 164, 233, 185, 137, 51, 133, 6, 129]) }, Event { key: EventKey([149, 54, 62, 146, 111, 189, 94, 54, 52, 0, 119, 153, 224, 141, 8, 103, 21, 244, 202, 131, 204, 235, 111, 60, 37, 184, 26, 77, 215, 184]), value: EventValue([122, 91, 220, 130, 20, 237, 27, 24, 60, 200, 83, 146, 87, 212, 46, 225, 19, 171, 122, 190, 192, 153, 199, 42, 224, 106, 128, 55, 109, 122, 10, 46, 149, 234, 56, 33, 46, 252, 246, 48, 158, 17, 190, 129, 73, 69, 239, 51, 157, 0, 212, 26, 24, 105, 100, 89, 149, 219, 169, 198, 48, 15, 112, 223, 237, 254, 7, 54, 221, 154, 76, 196, 51, 137, 142, 63, 61, 103, 181, 73, 204, 142, 93, 197, 6, 116, 35, 37, 241, 108]) }, Event { key: EventKey([187, 227, 234, 192, 29, 159, 225, 166, 75, 233, 184, 210, 135, 253, 187, 182, 53, 151, 8, 118, 130, 170, 105, 62, 111, 46, 167, 141, 216, 141, 88, 175, 92, 250, 140, 81, 93, 253, 193, 93, 85, 234, 4, 225, 64, 168, 227, 246, 222, 228, 62, 204, 213, 244, 227, 153, 121, 177, 201, 146, 148, 127, 179, 118, 45, 246, 84, 234, 22, 63, 19, 17, 53, 83, 31, 209, 54, 213]), value: EventValue([199, 185, 56, 226, 192, 232, 39, 60, 145, 180, 6, 143, 0, 190, 183, 125, 124, 77, 219, 84, 108, 27, 178, 187, 67, 78, 31, 139, 93, 33, 128, 107, 245, 9, 136, 72, 56, 136, 243, 27, 248, 33, 135, 122, 79, 123, 220, 7, 109, 18, 194, 251, 107, 175, 12, 137, 192, 185, 234, 254, 240, 5, 140, 239, 162, 86, 149, 221, 36]) }, Event { key: EventKey([13, 21, 12, 148, 112, 160, 232, 132, 156, 205, 61, 19, 25, 167, 205, 160, 129, 131, 221, 227, 247, 175, 83, 168, 90, 120, 140, 216, 161, 60, 223, 29, 165, 50, 166, 12, 209, 199, 51, 48, 16, 171, 170, 216, 93, 76, 132, 162, 168, 16, 18, 1, 57, 24, 9, 25, 25, 118, 67, 34, 38, 20, 12, 45]), value: EventValue([133, 91, 175, 154, 121, 215, 173, 46, 193, 160, 178, 69, 198, 204, 203, 129, 25, 29, 191, 203, 121, 141, 0, 108, 245, 79, 78, 241, 144, 171, 242, 247, 186, 17, 55, 50, 154, 198, 183, 220, 0, 158]) }, Event { key: EventKey([157, 58, 181, 93, 180, 92, 130, 28, 179, 110, 39, 187, 251, 152, 237, 12, 19, 10, 222, 77, 196, 113, 213, 249, 71, 228, 46, 243, 84, 167, 75, 205, 247, 172, 31, 158, 114, 165, 103, 193, 186, 20, 147, 159, 170, 248, 217, 240, 209, 16, 72, 208, 231, 215, 150, 55, 28, 14, 225, 97, 5, 210, 70, 81, 243, 129, 13, 235, 61]), value: EventValue([127, 97, 159, 40, 165, 127, 140, 213, 225, 42, 247, 160, 155, 47, 70, 211, 102, 29, 20, 20, 252, 178, 172, 244, 83, 31, 9, 27, 105, 147, 168, 156, 149, 4, 129, 25, 224, 89, 205, 90, 211, 240, 116]) }, Event { key: EventKey([195, 113, 18, 0, 27, 68, 216, 112, 39, 218, 25, 67, 87, 88, 41, 118, 231, 44, 71, 149, 31, 221, 71, 24, 114, 72, 110, 123, 195, 184, 112, 249, 158, 148, 191, 178, 103, 136, 194, 62, 67, 151, 83, 176, 125, 93, 52, 72, 55]), value: EventValue([118, 208, 138, 123, 241, 33, 104, 131, 105, 142, 99, 198, 250, 175, 87, 236, 92, 229, 19, 21, 61, 228, 124, 90, 145, 245, 86, 255, 183, 67, 255, 206, 174, 72, 175, 118, 87, 251, 85, 141, 99, 118, 117, 112, 43, 105, 8, 144, 224, 163, 126, 241, 86, 25, 202, 74, 121, 222, 164, 121, 130, 239, 67, 7, 37, 153, 189, 146, 167, 194, 100, 174, 187, 217]) }, Event { key: EventKey([26, 159, 72, 215, 198, 237, 175, 106, 28, 118, 15, 134, 82, 60, 209, 19, 64, 94, 127, 175, 106, 184, 19, 141, 225, 214, 97, 68, 225, 63, 168, 183, 120, 247, 178, 147, 188, 134, 227, 251, 214, 4, 101, 50, 204, 42, 167, 2, 172, 253, 250, 164, 72, 204, 139, 224, 129, 147]), value: EventValue([198, 240, 123, 174, 98, 101, 139]) }], receipt: 1190735578 }, TransactionReceipt { tx_hash: [158, 131, 67, 194, 13, 223, 112, 7, 52, 209, 178, 236, 13, 185, 171, 170, 22, 130, 98, 35, 233, 6, 91, 145, 237, 40, 75, 151, 70, 11, 22, 34], body_to_save: Some([161, 60, 231, 125, 182, 211, 176, 209, 7, 116, 144, 77, 89, 144, 156, 196, 142, 98, 242, 123, 146, 185, 207, 94, 196, 132, 74, 52, 183, 231, 61, 114, 76, 200, 82, 249, 50, 128, 231, 72, 106, 200, 169, 241, 18, 176, 82, 43, 135, 162, 91, 166, 50]), events: [], receipt: 3718959594 }, TransactionReceipt { tx_hash: [52, 158, 132, 241, 8, 169, 216, 133, 209, 240, 117, 127, 19, 223, 53, 254, 67, 54, 12, 193, 212, 204, 181, 59, 85, 34, 19, 163, 151, 26, 77, 118], body_to_save: Some([8, 88, 146, 97, 165, 106, 64, 40, 89, 45, 139, 182, 11, 180, 152, 83, 241, 180, 230, 96, 205, 43, 150, 208, 52, 99, 57, 144, 229, 71, 101, 108, 153, 171, 91, 217, 206, 86, 118, 161, 120, 242, 179, 11, 97, 135, 185, 105, 133, 79, 182, 107, 45, 74, 56, 233, 72, 111, 26, 190, 133, 131, 177, 33, 71]), events: [Event { key: EventKey([131, 200, 112, 17, 206]), value: EventValue([188, 135, 112, 190, 22, 223, 176, 214, 176, 7, 155, 5, 193, 109, 247, 191, 242, 87, 221, 120, 201, 158, 237, 214, 30, 47, 13, 94, 94, 187, 31, 94, 234, 124, 222, 91, 244, 49, 10, 149, 48, 43, 43, 234, 5, 18, 182, 97, 101, 207, 101, 103, 73, 187, 34, 133, 50, 95, 192, 189, 1, 202, 86, 79, 119]) }, Event { key: EventKey([75, 122, 11, 221, 225, 162, 1, 148, 73, 178, 254, 220, 153, 198, 168, 80, 160, 48, 46, 12, 141, 33, 112, 78, 31, 222, 127, 183, 6, 139, 50, 212, 214, 194, 165, 69, 169, 148, 183, 101, 160, 237, 84, 143, 182, 202, 84, 244, 148, 49, 202, 172, 217, 213, 107, 246, 216, 21, 74, 79, 149, 100, 139, 35, 89, 35, 207, 207]), value: EventValue([223, 73, 132, 181, 67]) }, Event { key: EventKey([194, 93, 130, 101, 190, 11, 68, 133, 169, 145, 111, 185, 23, 84, 225, 167, 201, 231, 215, 39, 133, 146, 122, 250, 191, 16, 215, 161, 242, 172, 56, 143, 26, 129, 156, 79, 168, 199, 29, 18, 28, 145, 87, 149, 210, 47, 168, 99, 68, 36, 39, 73, 234, 18, 108, 131, 252, 211, 64, 83, 205, 146, 171, 252, 95, 167, 61, 4, 144]), value: EventValue([173, 127, 205, 99, 234, 136, 31, 153, 228, 189, 142, 54, 248, 100, 246, 68, 51, 137, 130, 189, 203, 26, 104, 39, 123, 247, 103, 86, 21, 116, 225, 212, 112, 51, 103, 244, 189, 169, 57, 48, 170, 142, 149, 155, 146, 21, 30, 204, 119, 47, 117, 150, 252, 79, 36, 185, 6, 121, 15, 247, 225, 241, 23, 30, 238, 162, 94, 246, 63, 205, 85, 57, 118, 44, 198, 68, 205, 109, 105, 96, 65, 82, 220, 66, 114, 28, 200]) }, Event { key: EventKey([212, 174, 11, 23, 184, 164, 83, 2, 43, 80, 25, 97, 228, 107, 118, 117, 10, 6, 109, 8, 169, 32, 72, 124, 11, 56, 247, 176, 6, 34, 232, 49, 35, 13, 41, 233, 191, 251, 221, 75, 100, 26, 39, 237, 10, 192, 137, 48, 30, 12, 214, 247, 240, 151, 184, 47, 62, 200, 32, 139, 57, 35, 185, 54, 255, 43, 171, 5, 107, 25, 202, 8, 250, 68, 0, 89, 87, 54, 135, 244, 203, 123, 237, 69, 110, 50, 111, 35, 74, 222, 49]), value: EventValue([103, 231, 104, 180, 124, 104, 1, 32, 102, 81, 139, 103, 141, 14, 10, 68, 95, 206, 222, 181, 25, 94]) }, Event { key: EventKey([51, 230, 24, 252, 235, 123, 37, 197, 173, 112, 139, 11, 124, 49, 47, 188, 82, 122, 24, 154, 18, 60, 174, 229, 151, 156, 232, 73, 38, 75, 64, 52, 130, 166, 18]), value: EventValue([111, 131, 26, 63, 91, 117, 141, 81, 145, 58, 4, 20, 115, 145, 148, 64, 199, 167, 127, 77, 86, 215, 201, 97, 122, 191, 82, 17, 217, 137, 214, 73, 184, 213, 165, 230, 180, 6, 218, 122, 235, 95, 186, 140, 34, 238, 170, 165, 73, 58, 41, 195, 219, 183, 123, 178, 210, 151, 1, 175, 166, 204, 62, 12, 59, 174, 162, 12, 228, 66, 87, 58]) }, Event { key: EventKey([247, 240, 10, 35, 89, 227, 62, 207, 59, 245, 151, 222, 51, 104, 75, 224, 94, 254, 227, 216, 145, 71, 15, 194, 22, 90, 208, 99, 12, 243, 124, 63, 238, 49, 245, 32, 244, 27, 249, 33, 47, 187, 153, 230, 114, 139, 151, 193, 78, 143, 238, 204, 169, 72, 243, 191, 132, 87, 154, 235, 60, 50, 196, 43, 143, 71, 25, 213, 218, 158, 181, 224, 7, 109, 51, 222, 221, 85, 1, 34, 112, 138, 88, 74, 113, 105, 230, 228]), value: EventValue([124, 0, 171, 174, 223, 89, 173, 237, 253, 134, 0, 16, 101, 182, 223, 225, 144, 251, 123, 4, 234, 41, 171]) }, Event { key: EventKey([150, 100, 196, 157, 229, 198, 143, 83, 99, 145, 66, 222, 52, 169, 210, 215, 209, 200, 82, 95, 224, 63, 114, 69, 102, 205, 54, 39, 49, 131, 11, 66, 125, 13, 166, 222, 232, 226, 132, 32, 239, 47, 184, 140, 120, 118, 201, 217, 240, 48, 22, 0, 1, 69, 186, 68, 59, 76, 61, 209, 142, 227, 68, 188, 208, 226, 91, 196, 151, 4, 216, 84, 204, 107, 166, 247, 25, 182, 125, 241, 145, 196, 64, 202, 130, 34, 81, 110, 198, 131, 138, 48, 89, 83, 181, 218, 61, 86, 55]), value: EventValue([252, 44, 14, 3, 16, 102, 181, 70, 214, 174, 97, 22, 217, 213, 122, 121, 117, 121, 127, 119, 171, 65, 250, 124, 175, 128, 152, 42, 19, 73, 56, 161, 207, 116, 13, 121, 33, 165, 42, 89, 18, 28, 80, 242, 251, 73, 203, 12, 8, 218, 26, 224, 130, 92, 192, 22, 235, 6, 212, 22, 34, 100, 139, 81, 134, 147, 198, 119, 45, 193, 71]) }], receipt: 3116882334 }, TransactionReceipt { tx_hash: [126, 171, 125, 159, 184, 160, 193, 226, 6, 111, 255, 184, 196, 47, 103, 82, 48, 134, 67, 8, 198, 115, 251, 139, 75, 234, 212, 251, 55, 46, 215, 227], body_to_save: Some([231, 207, 37, 81, 133, 1, 164, 186, 223, 167, 253, 189, 116, 53, 58, 143, 115, 174, 209, 125, 139, 32, 83, 67, 242, 110, 173, 101, 59, 178, 133, 251, 49, 100, 78, 227, 188, 33, 84, 214, 181, 202, 12, 222, 109, 22, 164, 12, 120, 181, 118, 110, 151, 195, 182, 52, 6, 197, 153]), events: [Event { key: EventKey([19, 38, 179, 24, 201]), value: EventValue([190, 207, 62, 9, 139, 250, 93, 154, 244, 77, 112, 75, 248, 126, 79, 14, 34, 54, 1, 99, 92, 118, 211, 146, 50, 99, 32, 222, 52, 150, 60, 190, 3, 141, 251, 220, 12, 188, 67, 27, 231, 66, 20, 41, 233, 152, 60, 0, 251, 140, 59, 102, 153, 122, 155, 25, 15, 11, 220, 139, 107, 255, 196, 95, 139, 55, 192, 141, 58, 248, 85, 235, 118, 91, 240, 213, 174, 115, 232, 15, 187, 135, 130]) }, Event { key: EventKey([6, 128, 97, 97, 207, 163, 60, 253, 62, 60, 151, 63, 165, 104, 122, 74, 231, 52, 38, 194, 110, 167, 93, 191, 170, 62, 213, 102, 24, 75, 35, 4, 136, 63, 194, 156, 252, 45, 134, 31, 54, 182, 90, 15, 169, 168, 230, 139, 108, 126, 179, 67, 130, 131, 121, 185, 64, 116, 99, 191, 214, 14, 180, 205, 100, 84, 67, 140, 89, 65, 37, 207, 120, 110, 10, 10, 88, 247, 79, 89, 124, 104, 255, 102, 123, 93, 219, 202, 149, 253, 118, 136]), value: EventValue([87]) }, Event { key: EventKey([180, 8]), value: EventValue([88, 228, 6, 45, 67, 62, 249, 21, 217, 0, 78, 131, 167, 99, 243, 231, 252, 118, 13, 6, 70, 77, 236, 171, 251, 42, 245, 247, 226, 150, 251, 28, 65, 171, 118, 129, 14, 158, 214, 191, 145, 181, 151, 111, 192, 248, 237, 34, 174, 128, 0, 169, 153, 2]) }], receipt: 1063705041 }, TransactionReceipt { tx_hash: [28, 200, 117, 12, 18, 120, 236, 127, 252, 112, 47, 214, 159, 103, 177, 33, 255, 246, 63, 103, 132, 213, 194, 126, 6, 113, 188, 143, 109, 169, 108, 139], body_to_save: Some([217, 247, 171, 227, 139, 18, 40, 87, 48, 249, 104, 128, 233, 118, 133, 211, 141, 5, 245, 11, 44, 123, 188, 131, 117, 212, 239, 151, 216, 142, 133, 221, 192, 111, 237]), events: [Event { key: EventKey([99, 59, 39, 40, 158, 66, 84, 192, 9, 175, 72, 77, 124, 136, 137, 198, 218, 221, 130, 64, 254, 173, 80, 61, 12, 188, 222, 83, 147, 12, 224, 38, 12, 36, 13, 207, 79, 112, 251, 66, 49, 180, 221, 52, 72, 179, 54, 176, 14, 113, 141, 11, 20, 3, 183, 5, 160, 225, 162, 71, 104, 164, 75, 211, 97, 243, 243, 129]), value: EventValue([243, 45, 247, 105, 177, 218]) }, Event { key: EventKey([151, 43, 69, 16]), value: EventValue([114, 83, 142, 5, 118, 40, 19, 235, 41, 108, 252, 191, 166, 203, 132, 205, 87, 170, 10, 47, 4, 135, 201, 234, 71, 133]) }, Event { key: EventKey([233, 8, 87, 134, 98, 111, 10, 92, 45, 138, 224, 59, 218, 234, 250, 183, 105, 34, 5, 2, 236, 6, 15, 234, 164, 52, 66, 56, 20, 57, 136, 216]), value: EventValue([56]) }, Event { key: EventKey([125, 195, 55, 201, 92, 244, 156, 13, 201, 48, 149, 149, 204, 180, 177, 220, 35, 255, 4, 150, 208, 182, 242, 49, 109, 17, 254, 50, 43, 30, 230, 194, 53, 204, 215, 168, 15, 80, 160, 170, 233, 135, 213, 150, 133, 137, 149, 7, 89, 74, 99, 138, 197, 60, 4, 156, 246, 23, 220, 109, 163, 110, 8, 40, 104, 31, 78, 175, 142, 208, 20, 202, 170, 3, 48, 19, 18, 241, 59, 162, 96, 40, 151, 247, 87]), value: EventValue([55, 45, 103, 170, 147, 187, 185, 222, 209, 13, 200, 139, 183, 124, 205, 237, 28, 239, 65, 85, 131, 146, 250, 234, 129, 168, 182, 207, 124, 10, 138, 180, 120, 230, 235, 58, 55, 132, 30, 142, 89, 255, 14, 114, 64, 68, 43, 0, 17, 33, 250, 144, 203, 64, 83, 162, 51, 177, 138, 4, 77, 243, 109, 101, 102, 53, 118, 0, 82, 103, 41, 32]) }, Event { key: EventKey([123, 122, 220, 57, 224, 43, 245, 112, 123, 74, 103, 31, 162, 112, 7, 103, 38, 3, 234, 153, 217, 252, 4, 136, 54, 154, 92, 149, 57, 65, 35, 82, 1, 190, 123, 139, 129, 210, 234, 222, 98, 212, 207, 160, 69, 124, 6, 245, 35, 128, 81, 221, 9, 106, 96, 127]), value: EventValue([11, 153, 170, 103, 166, 216, 141, 8, 253, 111, 55, 177, 82, 201, 65]) }, Event { key: EventKey([243, 104, 124, 154, 12, 164, 35, 134, 94, 101, 95, 210, 52, 204, 40, 211, 243, 127, 99, 39, 55, 88, 103, 178, 101, 150, 6, 20, 239, 114, 198, 29, 227]), value: EventValue([14, 137, 226, 166, 85, 240, 179, 15, 39, 170, 180, 162, 23, 98, 95, 112, 99, 207, 232, 206, 167, 132, 88, 184, 19, 177, 196]) }, Event { key: EventKey([144, 160, 162, 39, 164, 101, 205, 194, 107, 86, 90, 101, 215, 98, 120, 165, 231, 189, 213, 234, 203, 105, 107, 190, 167, 72, 56, 128, 83, 4, 189, 185, 225, 230, 29, 203, 76, 120, 131, 93, 230, 96, 70, 190, 243, 238, 136, 85, 146, 114, 224, 189, 218, 246, 105, 66, 136, 70, 127, 222, 162, 67, 175, 135, 223, 241, 2, 44, 141, 189, 90, 246, 76, 80, 198, 100, 128, 57, 60, 121, 162, 4, 156, 130]), value: EventValue([230, 106, 99, 79, 68, 21, 250, 148, 4, 212, 101, 8, 142, 165, 100, 43, 39, 23, 225, 207, 140, 54, 26, 137, 14, 128, 83, 27, 11, 0, 62, 219, 176, 181, 67, 121, 116, 81, 74, 8, 50, 239, 123, 34, 233, 226, 24, 117, 34, 203, 83, 228, 199, 65, 109, 247, 127, 21, 187, 235, 123, 99, 96, 146, 8, 82, 84]) }], receipt: 776302864 }, TransactionReceipt { tx_hash: [245, 234, 28, 152, 109, 198, 179, 2, 65, 42, 51, 14, 23, 86, 126, 61, 70, 254, 15, 147, 62, 115, 154, 160, 200, 212, 84, 93, 128, 35, 195, 227], body_to_save: Some([227, 19, 146, 168, 95, 28, 255, 104, 147, 212, 146, 208, 222, 119, 21, 130, 110, 16, 157, 255, 12, 129, 152, 125, 127, 106, 196, 2, 145, 192, 5, 92, 231, 64, 150, 91, 105, 162, 66, 116, 67, 156, 83, 115, 66, 214, 242, 173, 219, 108, 129, 172, 175, 238, 71, 84, 63, 101, 32, 173, 202, 17, 182, 131, 242, 64, 98, 190, 233, 243]), events: [Event { key: EventKey([133, 137, 10, 44, 42, 247, 168, 53, 141, 191, 251, 32, 122, 180, 107, 174, 137, 252, 194, 137, 123, 216, 17, 22, 48, 169, 52, 63, 95, 94, 154, 7, 180, 34, 186, 29, 175, 191, 11, 221, 103, 126, 155, 153, 218, 95, 99, 207, 42, 231, 62, 179, 195, 60, 106, 165, 175, 58, 230, 176, 23, 216, 156, 34, 102, 148, 21, 114, 253, 26, 249, 126, 174, 135, 196, 205, 208, 145, 243, 53, 155, 204, 154]), value: EventValue([227, 42, 211]) }, Event { key: EventKey([173, 217, 61, 105, 32, 21, 98, 98, 219, 24, 233, 97, 253, 235, 121, 218, 120, 208, 15, 178, 190, 42, 67, 136, 176, 25, 151, 63, 237, 158, 103, 232, 44, 168, 193, 20, 8, 207, 95, 187, 240, 106, 56, 159, 102]), value: EventValue([155, 61, 56, 43, 4, 57, 22, 208, 67, 198, 209]) }, Event { key: EventKey([192, 77, 152, 152, 51, 185, 65, 83, 159, 16, 250, 200, 69, 242, 213, 100, 45, 13, 138, 84, 214, 92, 160, 145, 36, 254, 121, 128, 5, 81, 184, 78, 87, 40, 55, 116, 98, 43, 235, 22, 94, 95, 46, 30, 98, 227, 118, 55, 63, 49, 108, 245, 231, 107, 46, 175, 165, 185, 134, 7, 189, 199, 57, 31, 121, 203, 41, 113, 65, 83, 224, 62, 146, 250, 130, 47, 61, 109, 64, 199, 46, 204, 14, 54, 237, 206]), value: EventValue([17]) }, Event { key: EventKey([141, 243, 13, 128, 139, 136, 234, 110, 188, 242, 53, 128, 63, 218, 231, 190, 147, 12, 217, 162, 60, 112, 120, 79, 48, 226, 233, 247, 95, 225, 137, 231, 176, 228, 15, 165, 93, 133, 47, 104, 231, 111, 9, 160, 199, 238, 128, 174, 114, 243, 106, 13, 108, 32, 148, 47, 50, 70, 188, 28, 56, 186, 53, 38, 79, 211, 159, 212, 214, 183, 79, 216, 227]), value: EventValue([167, 161, 72, 186, 138, 244, 192, 42, 10, 209, 152, 210, 164, 226, 31, 242, 70, 78, 86, 53, 205, 148, 26, 235, 60, 82, 246, 230, 199, 11, 255, 44, 108, 221]) }, Event { key: EventKey([245, 232, 112, 237, 167, 137, 146, 197, 189, 75, 96, 109, 99, 225, 81, 204, 131, 143, 37, 199, 62, 12, 63, 105, 111, 56, 243, 214, 185, 163, 133, 244, 113, 104]), value: EventValue([124, 97, 139, 128, 235, 227, 145, 188, 132, 219, 142, 214, 172, 253, 91, 254, 194, 119, 107, 237, 51, 40, 176, 195, 199, 23, 126, 70, 1, 81, 253, 99, 144, 210, 209, 154, 211, 200, 82, 153, 15, 116, 222, 174, 41, 35, 89, 59, 159, 44, 5, 174, 113, 32, 27, 38, 224, 215, 10, 94, 131, 102, 110, 186, 37, 224, 174, 243, 167, 48, 195, 167, 220]) }, Event { key: EventKey([32, 27, 69, 121, 173, 59, 28, 73, 113, 85, 181, 151, 114, 141, 146, 122, 17, 158, 222, 238, 192, 54, 16, 119, 95, 29, 160, 55, 11, 193, 10, 193, 242, 75, 54]), value: EventValue([200, 180, 248, 235, 106, 12, 200, 129, 56, 51, 179, 8, 142, 72, 160, 235, 87, 232, 1, 226, 205, 1, 26]) }, Event { key: EventKey([59, 43, 170, 250, 105, 15, 112, 173, 82, 53, 31, 139, 60, 238, 1, 171, 158, 71, 109, 215, 84, 98, 156, 45, 177, 103, 196, 255, 255, 6, 223, 181, 36, 138, 49, 20, 134, 105, 139, 23, 164, 135, 10, 214, 124, 21, 41, 213, 102, 18, 119, 41, 63, 249, 72, 76, 198, 69, 40, 162, 81, 150, 225, 174, 194, 207, 232]), value: EventValue([161, 131, 12, 132, 65, 38, 169, 77, 97, 181, 35, 102, 103, 194, 239, 161, 227, 126, 18, 167, 153, 177, 116, 16, 20, 134, 70, 109, 164, 153, 211, 59, 45, 120, 154, 101, 49, 96, 83, 229, 203, 222, 210]) }, Event { key: EventKey([191, 243, 130, 216, 166, 216, 137, 122, 59, 169, 127, 45, 37, 101, 99, 105, 162, 234, 246, 11, 109, 68, 255, 182, 167, 117, 144, 154, 250, 96]), value: EventValue([111, 111, 217, 99, 248, 206, 199, 181, 179, 234, 250, 203, 10, 210, 17, 162, 201, 94, 107, 173, 135, 29, 191, 219, 51, 104, 108, 119, 242, 228, 27, 213, 200, 157, 68, 4, 121, 164, 137, 182, 84, 216]) }], receipt: 3220950906 }], inner: 3631539783 }], num_txs: 19, num_events: 92 }, SlotCommit { slot_data: TestBlock { curr_hash: [238, 209, 148, 186, 16, 128, 82, 89, 187, 152, 13, 112, 133, 114, 62, 1, 13, 110, 102, 14, 55, 129, 133, 66, 86, 166, 47, 65, 57, 102, 29, 131], header: TestBlockHeader { prev_hash: TestHash([29, 195, 21, 94, 18, 117, 250, 62, 10, 241, 245, 101, 105, 117, 144, 93, 187, 2, 156, 76, 46, 39, 140, 143, 198, 23, 180, 48, 6, 161, 18, 25]) } }, batch_receipts: [BatchReceipt { batch_hash: [15, 96, 134, 231, 104, 16, 116, 9, 172, 178, 187, 83, 240, 246, 174, 58, 87, 63, 197, 50, 144, 111, 205, 129, 174, 204, 76, 154, 36, 130, 66, 155], tx_receipts: [TransactionReceipt { tx_hash: [249, 251, 28, 225, 149, 130, 162, 54, 132, 62, 236, 178, 116, 44, 83, 110, 98, 94, 164, 138, 169, 224, 26, 24, 241, 175, 180, 191, 96, 253, 70, 100], body_to_save: Some([6, 168, 82, 100, 199, 8, 164, 132, 28, 239, 66, 161, 47, 147, 111, 131, 238, 248, 237, 90, 53, 0, 87, 89, 187, 154, 121]), events: [Event { key: EventKey([166, 133, 112, 159, 204, 151, 205, 9, 139, 30, 108, 110, 8, 134, 162, 169, 225, 155, 250, 209, 158, 214, 200, 102, 59, 201, 194, 230, 51, 239, 66, 186, 225, 111, 142, 36, 43, 83, 40, 215, 7, 36, 111, 74, 199, 73, 14, 103, 153, 22, 249, 107, 251, 38, 226, 211, 48, 58, 243, 88, 81, 156, 173, 225, 8, 75]), value: EventValue([245, 193, 11, 240, 123, 214, 209, 87, 103, 8, 241, 72, 99, 138, 20, 78, 178, 252, 247, 207, 92, 17, 148, 141, 115, 144, 138, 113, 152, 149, 167, 94, 178, 90, 165, 153, 202, 140, 99, 232, 112, 85, 5, 235, 12, 92, 25, 26, 43, 241, 177, 248, 173, 182, 242, 160, 254, 51, 246, 150, 65, 177, 168, 57, 208, 129, 237, 105, 209, 141, 227, 207, 51, 221, 250, 210, 25, 192, 249, 224, 163, 20, 157, 235, 154, 212, 146, 22, 128, 186]) }, Event { key: EventKey([21, 35, 193, 77, 156, 17, 86, 82, 55, 104, 129, 214, 143, 234, 123, 171, 60, 2, 69, 19, 152, 118, 43, 69, 203, 245, 26, 91, 49, 8, 17]), value: EventValue([10, 19, 230, 249, 205, 206, 43, 8, 203, 35, 97, 25, 40, 169, 50, 66, 158, 144, 60, 153, 67, 81, 212, 74, 38, 153, 154, 1, 20, 109, 145, 134, 0, 63, 160, 86, 207, 235, 1]) }, Event { key: EventKey([100, 74, 101, 47, 123, 113, 7, 137, 125, 243, 76, 9, 172, 148, 141, 100, 166, 35, 219, 215, 25]), value: EventValue([153, 156, 181, 230, 194, 198, 143, 125, 66, 180, 78, 27, 93, 61, 178, 81, 79, 218, 204, 39, 91, 51, 104, 30, 156, 120, 66, 255, 165, 8, 126, 218, 102, 215, 142, 96, 95, 139, 119, 186, 241, 123, 86, 112, 255, 8, 151, 8, 182, 109, 150, 215, 49, 53, 3, 28, 13, 181, 90, 158, 186, 230, 104, 155, 70, 51, 176, 105, 132, 205, 173, 82, 48, 24, 16, 155]) }, Event { key: EventKey([44, 116, 253, 144, 150, 176, 236, 23, 203, 199, 138, 128, 97, 181, 72, 224, 240, 212, 169, 164, 212, 2, 255, 224, 75, 99, 124, 108, 59, 249, 165, 45, 86, 242, 8, 185, 92, 196, 132, 251, 173, 228, 166]), value: EventValue([110, 75, 90, 43, 104, 152, 126, 15, 251, 132, 36, 144, 243, 235, 7, 215, 9, 255, 73, 137, 115, 161, 69, 162, 149, 46, 68, 35, 85, 127, 193, 41, 18, 171, 30, 19, 197, 21, 192, 200, 98, 70, 9, 81, 239, 77, 12, 101, 28, 0, 132, 229, 210, 4, 158, 214, 6, 171, 234, 131, 63, 214, 197, 71, 207, 118, 125, 238, 214, 145, 61, 135, 136, 91, 9, 111, 76, 64, 188, 215, 155, 25, 192, 235, 104, 5, 47, 143, 21]) }, Event { key: EventKey([135, 103, 181, 92, 186, 179, 39, 237, 153, 183, 76, 198, 253, 89, 207, 87, 54, 128, 72, 119, 231, 39, 179, 84, 135, 151, 126, 185, 96, 141, 75, 44, 187, 2, 59, 235, 150, 228, 66, 212, 186, 12, 108, 113, 115, 76, 251, 203, 243, 73, 83, 160, 148, 117, 5, 113, 119, 8, 24, 2, 21, 58, 144, 79, 103, 230, 221, 127, 179, 153, 233, 251, 181, 113, 137, 107, 129, 87, 214, 64, 162, 61, 24]), value: EventValue([117, 135, 63, 48, 35, 249, 85, 37, 3, 244, 131, 173, 45, 35, 83, 82, 222, 233, 213, 243, 146]) }, Event { key: EventKey([216, 232, 49, 119, 253, 185, 144, 237, 130, 32, 31, 255, 223, 30, 101, 72, 215, 149, 225, 174, 65, 94, 180, 47, 77, 141, 157, 10, 9, 110, 3, 127, 69, 218, 57, 119, 139, 23, 105, 68, 56, 74, 208, 123, 160, 141, 198, 45, 82, 181, 79, 14, 130, 194, 75, 91, 29, 58, 158, 89, 189, 26, 89, 167, 166, 42, 219, 29, 115, 218, 209, 32, 66, 170, 51, 221, 133, 170, 247, 222, 159, 154, 183, 45, 12, 25, 180, 101, 157, 186, 41, 136, 245, 174, 223, 196]), value: EventValue([]) }, Event { key: EventKey([120, 58, 115, 242, 78, 82, 29, 193, 61, 28, 80, 146, 58, 24, 162, 105, 226, 238, 140, 107, 77, 102, 95, 30, 75, 162, 254, 155, 108, 180, 50, 156, 44, 53, 46, 102, 136, 87, 156]), value: EventValue([236, 7, 112, 246, 187, 64, 128, 149, 192, 208, 163, 22, 39, 68, 167, 200, 191, 214, 35, 179, 98, 5, 71, 109, 221, 160, 154, 92, 69, 173, 152, 1, 187, 59, 150, 235, 238, 109, 167, 125, 89, 131, 79, 30, 69, 110, 77, 30, 9, 55, 190, 97, 218, 45, 172, 119, 206, 254, 204]) }, Event { key: EventKey([105, 143, 180, 105, 161, 176, 230, 209, 204, 80, 157, 100, 20, 13, 186, 122, 113, 145, 22, 41, 196, 161, 175, 246, 121, 143, 127, 217, 10, 252, 61, 231, 90, 122, 152, 151, 246, 73, 74, 160, 137, 134, 16, 165, 228, 78, 131, 62, 158, 53, 3, 91, 114, 8, 237, 121, 100, 179, 217, 214, 167, 146, 141, 215, 52, 103, 131, 70, 8, 43, 1, 33, 161, 168, 80, 71, 18, 71, 86]), value: EventValue([6, 180, 211, 113, 199, 5, 33, 14, 243, 111, 89, 45, 224, 156, 96, 11, 152, 174, 220, 201, 151, 53, 143, 203, 176, 43, 117, 157, 39, 113, 119, 200, 142, 180, 9, 172, 244, 58, 224, 23, 21, 190, 39, 169, 54, 97, 4, 121, 249, 47, 37, 218, 208, 233, 23, 186, 20, 148, 215, 16, 198, 122, 58, 33, 124, 102, 104, 56, 34, 83, 94, 151, 105, 159, 250, 59, 142, 157, 174, 178, 85, 172, 107, 90, 64, 15, 91]) }], receipt: 2948719102 }, TransactionReceipt { tx_hash: [148, 195, 227, 108, 19, 20, 15, 120, 240, 114, 161, 101, 9, 35, 200, 230, 244, 65, 33, 99, 83, 173, 15, 225, 140, 226, 35, 197, 30, 100, 5, 7], body_to_save: Some([201, 118, 141, 132, 131, 204, 213, 195, 230, 147, 113, 160, 166, 133, 50, 221, 12, 59, 198, 8, 206, 60, 26, 172, 98, 232, 126, 238, 48, 101, 18, 75, 78, 132, 20, 162, 206, 151, 28, 176, 11, 183, 178, 46, 50, 87, 35, 44, 8, 11, 89, 226, 41]), events: [Event { key: EventKey([221, 119, 125, 28, 148]), value: EventValue([210, 167, 142, 172, 33, 253, 78, 139, 123, 144, 116, 66, 167, 165, 17, 214, 8, 219, 22, 6, 248, 126, 67, 206, 245, 154, 39, 12, 189, 35, 154, 174, 142, 57, 118, 32, 232, 244, 175, 196, 26, 167, 67, 79, 61, 253, 205, 244, 227, 39, 29, 36, 55, 43, 147, 98, 62, 38, 215, 30, 107, 152, 4, 246, 220, 166, 10, 109, 218, 218, 139, 190, 171, 223, 124, 27, 163, 79, 179, 116, 98, 189, 200, 15, 240, 181, 138, 31, 5]) }, Event { key: EventKey([109, 194, 98, 188, 177, 126, 63, 97, 130, 243, 175, 90, 150, 216, 71, 175, 175, 186, 0, 32, 117, 68, 107, 198, 32, 88, 121, 93, 80, 179, 23, 166, 200, 21, 44, 254, 190, 224, 111, 152, 168, 246, 92, 144, 181]), value: EventValue([114, 221, 115, 205, 225, 4, 51, 129, 77, 10, 132, 119, 153, 63, 151]) }, Event { key: EventKey([133, 230, 106, 98, 201, 196, 22, 193, 121, 144, 205]), value: EventValue([189, 193, 173, 175, 17, 44, 143, 245, 232, 195, 75, 232, 151, 190, 141, 23, 66, 136, 126, 53, 163, 80, 173, 210, 223, 6, 94, 115, 226, 190, 157, 169, 219, 78, 179, 225, 181, 87, 77, 251, 80, 72, 62, 35, 42, 23, 222, 87, 12, 0, 52]) }, Event { key: EventKey([139, 236, 144, 85, 211, 154, 56, 211, 34, 93, 87, 151, 146, 152, 242, 44, 52, 112, 29, 27, 224, 160, 254, 109, 137, 131, 128, 245, 216, 227, 150, 221, 251, 144, 84, 125, 132, 166, 34, 78, 192, 183, 198, 172, 113, 245, 37]), value: EventValue([86, 88, 175, 187, 88, 142, 112, 110, 240, 11, 186, 159]) }, Event { key: EventKey([104, 221, 106, 43, 186, 136, 255, 230, 172, 6]), value: EventValue([130, 74, 229, 93, 28, 114, 157, 99, 43, 156, 246, 171, 177, 177, 235, 37, 188, 161, 169, 67, 70, 14, 93, 127, 14, 241, 128, 219, 31, 59, 17, 165, 52, 208, 81, 76, 110, 121, 136]) }, Event { key: EventKey([248, 30, 126, 120, 170, 235, 73, 48, 13, 194, 138, 183, 200, 7, 78]), value: EventValue([85, 78, 156, 175, 176, 219, 41, 204, 121, 173, 55, 219, 194, 235, 119, 125, 5, 142, 67, 177, 229, 86, 118, 131, 96, 175, 80, 253, 58, 205, 227, 38, 164, 136, 35, 104, 190, 87, 7, 21, 144, 187, 70, 96]) }, Event { key: EventKey([223, 110, 41, 2, 118, 202, 224, 39, 84, 134, 122, 241, 211, 205, 8, 20, 102, 242, 229, 105, 235, 34, 20, 104, 104, 17, 144, 130, 229, 166, 119, 110, 226, 71, 164, 18, 222, 172, 197, 30, 32, 182, 243, 29, 54, 114, 93, 31, 212, 160, 15, 172, 173, 208, 230, 83, 125, 247, 130, 161, 96, 30, 13, 254, 98, 127, 77, 176]), value: EventValue([78, 148, 112, 95, 249, 55, 212, 53, 251, 148, 117, 244, 251, 63, 227, 223, 169, 252, 159, 60, 245, 49, 103, 201, 254, 7, 160, 155, 101, 194, 222, 233, 180, 101, 213, 126, 123, 166, 35, 152, 30, 121, 166, 210, 220, 69, 111, 135, 34, 240, 137, 122, 123, 17, 123, 88, 26, 253, 161, 158, 121, 240, 112, 1, 229, 193, 134, 184, 178]) }, Event { key: EventKey([11, 199, 84, 103, 187, 197, 158, 155, 181, 21, 152, 104, 193, 129, 153, 10, 106, 229, 248, 49, 70, 142, 245, 17, 164, 25, 146, 241, 168, 156, 59, 98, 109, 163, 128, 99, 56, 5, 52, 246, 223, 169, 127, 112, 37, 12, 103, 78, 89, 99, 198]), value: EventValue([76, 142, 208, 235, 209, 210, 240, 113, 247, 195, 250, 93, 105, 22, 162, 110, 240, 138, 119, 243, 132, 104, 125, 5, 50, 125, 26, 189, 255, 1, 102, 194, 21, 55, 242, 254, 124, 253, 30, 224, 138, 109, 133, 211, 57, 9, 8, 20, 182, 191, 116, 49, 139, 201, 192, 125, 160]) }, Event { key: EventKey([86, 38, 3, 136, 116, 136]), value: EventValue([166, 61, 56, 226, 130, 97, 207, 92, 68, 184, 0, 234, 211, 49, 66, 23, 245]) }], receipt: 2827110180 }, TransactionReceipt { tx_hash: [164, 131, 22, 49, 125, 156, 215, 253, 55, 242, 80, 61, 192, 123, 111, 138, 176, 227, 27, 73, 237, 87, 97, 29, 192, 152, 114, 114, 2, 98, 176, 210], body_to_save: None, events: [Event { key: EventKey([39, 60, 22, 121, 135, 196, 171, 31, 76, 71, 141, 140, 139, 61, 65, 22, 134, 170, 109, 8, 84, 168, 121, 172, 132, 62, 255, 150, 6, 103, 56, 194, 107, 96, 242, 166, 215, 102, 66, 135, 191, 245, 66, 5, 218]), value: EventValue([143, 153, 16, 218, 68, 36, 116, 53, 74, 34, 217, 210, 118, 238, 59, 3, 195, 134, 213, 219, 178, 0, 77, 49, 17, 40, 239, 30, 99, 171, 211, 219, 212, 7, 54, 173, 136, 119, 27, 120, 233, 141, 72, 31, 221, 145, 109, 178, 91, 51, 237, 14, 217, 223, 55, 3, 54, 146, 204, 143, 255, 156, 177, 50, 12, 33, 151, 18, 40, 3, 11, 254, 235, 32, 185, 160, 41, 15, 38, 127]) }, Event { key: EventKey([10, 18, 103, 165, 181, 88, 169, 4, 231, 166, 56, 8, 166, 180, 121, 55, 209, 67, 173, 192, 22, 157, 220, 30, 46, 209, 137, 30, 13, 51, 27, 164, 1, 41, 225, 132, 79, 92, 157, 51, 216, 62, 215, 141, 207, 73, 8, 84, 67, 155, 198, 243, 194, 180, 241, 118, 50, 220, 151, 21, 35, 190, 196, 120, 251, 204, 186, 194, 128, 38, 254, 59, 255, 43, 101, 191, 63, 211, 93, 185, 222, 151, 190, 100, 214, 148, 155, 239, 211, 220, 20, 92, 212, 3, 128]), value: EventValue([139, 150, 5, 102, 182, 80, 219, 235, 214, 226, 65, 164, 254, 137, 74, 50, 95, 9, 202, 174, 154, 28, 93, 234, 174, 43, 233, 70, 151, 87, 130, 59, 57, 244, 214, 100, 125, 160, 45, 246, 47, 93, 202, 221, 105, 250, 71, 177, 221, 250, 77, 234, 198, 63, 129, 234, 255, 71, 2, 180, 49, 89, 165, 224, 239, 51, 69, 231]) }, Event { key: EventKey([81, 131, 27, 31, 56, 157, 192, 63, 124, 167, 92, 158, 180, 48, 119, 109, 224, 73, 220, 28, 136, 48, 114, 6, 200, 42, 111, 206, 94, 177, 63, 164, 53, 89, 111, 229, 138, 107, 221, 97, 90, 63, 253, 117, 51, 112, 18, 9, 16, 132, 237, 180, 227, 222, 68, 23, 12, 214, 225, 213, 241, 165, 229, 116, 81, 238, 88]), value: EventValue([221, 242, 151, 169, 102, 155, 63, 17, 137, 173, 113, 195, 170, 240, 38, 219, 242, 30, 251, 207, 147, 182, 10, 160, 94, 167, 129, 163, 136, 96, 236, 155, 18, 181, 44, 136, 123, 53, 214, 48, 116, 219, 153, 228, 184, 135]) }, Event { key: EventKey([78, 35, 176, 180, 137, 195, 153, 163, 244, 40, 205, 255, 46, 177, 128, 255, 217, 230, 199, 38, 111, 21, 139, 162, 250, 105, 249, 211, 234, 187, 224, 217, 71, 29, 62, 156, 148, 97, 149, 119, 62, 25, 189, 85, 18, 44, 218, 176, 115, 116, 199, 9, 246, 64, 127, 23, 16, 188, 252, 33, 220, 104, 69, 163, 204, 13, 252, 28, 111, 188, 149, 139, 35, 89, 160, 153, 137, 80, 59, 82, 116, 192, 119, 213, 142, 28, 143, 185, 74, 56, 19, 157, 25, 160, 242, 15, 147, 212, 164]), value: EventValue([233, 129, 121, 131, 226, 42, 250, 132, 47, 87, 56, 163, 233, 52, 117, 80, 80, 198, 31, 178, 67, 34, 6, 58, 61, 9, 178]) }, Event { key: EventKey([44, 210, 130, 119, 170, 21, 202, 255, 107, 4, 82, 103, 19, 234, 245, 64, 49, 95, 11, 100, 249, 107, 164, 121, 252, 166, 127, 25, 58, 26, 192, 76, 165, 197, 64, 224, 87, 251, 40, 181, 43, 98, 159, 160, 46, 10, 203, 225, 188, 28, 175, 173, 66, 218, 66, 135, 238, 233, 59, 101, 55, 120]), value: EventValue([227, 100, 249, 25, 181, 73, 174, 229, 48, 135, 253, 232, 245, 146, 67, 175, 26, 119, 185, 206, 77, 47, 188, 182, 105, 193, 175, 169, 2, 69, 206, 217, 180, 17, 102, 114, 132, 36, 143, 101, 81, 25, 30, 154, 197, 52, 192, 155, 170, 159, 109, 248, 24, 54, 152, 140, 49, 158, 25, 209, 94, 12, 227, 138, 211, 67, 163, 204, 51, 60, 66, 23, 227, 241]) }, Event { key: EventKey([]), value: EventValue([175, 66, 39]) }], receipt: 1900827041 }, TransactionReceipt { tx_hash: [6, 25, 175, 65, 191, 70, 21, 241, 216, 108, 226, 111, 54, 225, 144, 125, 213, 162, 215, 9, 116, 60, 187, 162, 142, 79, 177, 49, 18, 78, 218, 185], body_to_save: Some([223, 40, 45, 19, 227, 131, 199, 7, 163, 52, 226, 25, 37, 144, 206, 38, 169, 174, 118, 72, 178, 63, 232, 227, 237, 238, 135, 205, 147, 78, 32, 163, 169, 208, 61, 94, 34, 224, 52, 89, 121, 209, 118, 178, 123, 198, 189, 227, 231, 160, 98, 237, 135, 99, 7, 133, 225, 92, 224, 2, 1, 168, 227, 181, 159, 114, 171, 60]), events: [Event { key: EventKey([15, 98, 32, 7, 138, 23, 177, 161, 234, 144, 204, 28, 121, 160, 119, 122, 66]), value: EventValue([125, 164, 204, 100, 75, 20, 2, 24, 138, 29, 204, 213, 15, 40, 51, 198, 53, 10, 166, 149, 34, 39, 212, 158, 188, 114, 55, 129, 41, 224, 78, 5, 135, 168, 174, 240, 112, 130, 67, 89, 198, 158, 249, 156, 140, 229, 20, 56, 152, 180, 10, 132, 252, 83, 29, 188, 74, 220, 18, 240, 227, 195, 206, 120, 53, 13, 206, 162]) }, Event { key: EventKey([102, 136, 66, 101, 152, 209, 243, 247, 134, 54, 10, 182, 213, 16, 141, 140, 0, 162, 3, 11, 68, 177, 13, 93, 4, 255, 165, 229, 226, 26, 58, 12, 101, 191, 62, 50, 69, 145, 190, 154, 140, 218, 15, 93, 129, 124, 56, 10, 145, 26, 95, 141, 237, 116, 240, 9, 247, 247, 157, 107, 195, 212, 179, 90, 175, 106, 189, 51, 45, 48, 232, 232, 58, 218, 58, 31, 31, 157, 7, 128, 57]), value: EventValue([239, 67, 239, 166, 52, 6, 201, 6, 52, 164]) }, Event { key: EventKey([13, 87, 127, 196, 172, 207, 161, 77, 194, 18, 133, 42, 61, 161, 79, 36, 143, 61, 13, 137, 147, 202, 36, 190, 230, 196, 241, 223, 99, 185, 158, 54, 214, 130]), value: EventValue([65, 37, 67, 33, 143, 99, 142, 113, 176, 174, 221, 93, 208, 235, 1, 244, 149, 107, 21, 153, 245, 31, 158, 53, 173, 254, 194, 94, 14, 195, 16, 130, 181, 91, 51, 11, 27, 75, 236]) }, Event { key: EventKey([98, 119, 113, 158, 240, 80, 233, 246, 63, 157, 54, 123, 242, 46, 52, 228, 133, 178, 197, 116]), value: EventValue([227, 122, 205, 223, 132, 112, 10, 111, 155, 162, 51, 254, 35, 89, 206, 63, 238, 240, 6, 231, 162, 96, 131, 190, 24, 126, 75, 210, 33, 49, 217, 143, 102, 14, 230, 92, 87]) }, Event { key: EventKey([21, 130, 245, 234, 32, 118, 187, 252, 214, 11, 20, 197, 68, 209, 104, 218, 122, 46, 193, 150]), value: EventValue([224, 209, 198, 124, 181, 222, 169, 138, 186, 157, 134, 92, 214, 106, 117, 196, 222, 6, 119, 233, 43, 136, 245, 130, 21, 228, 121, 219, 45, 142, 33, 225, 1, 10, 229, 202, 78, 111]) }, Event { key: EventKey([150, 98, 33, 253, 149, 163, 49, 103, 117, 59, 43, 164, 9, 153, 31, 197, 149, 69, 214, 67, 10, 63, 254, 152, 85, 160, 133, 129, 173, 150, 167, 30, 154, 160, 234, 24, 207, 80, 79, 211, 146, 188, 90, 96, 41, 125, 202, 225, 67, 208, 33, 246, 112, 185, 149, 87, 228, 67, 75, 157]), value: EventValue([201, 249, 143, 44, 222, 223, 224, 56, 48, 124, 127, 252, 161, 64, 182, 70, 105, 27, 239, 36, 163, 49, 63, 168, 108, 202, 209, 61, 151, 63, 189, 77, 92, 124, 96, 99, 108, 133, 204, 119, 200, 58, 175, 28, 71, 246, 104, 224, 235, 236, 65, 204, 214, 107, 75, 109, 249, 27, 119, 176, 240, 187]) }], receipt: 506168998 }, TransactionReceipt { tx_hash: [67, 161, 213, 215, 15, 74, 97, 195, 236, 143, 225, 200, 38, 29, 119, 231, 59, 168, 205, 104, 243, 183, 126, 108, 105, 37, 157, 154, 137, 174, 251, 10], body_to_save: None, events: [Event { key: EventKey([117, 225, 93]), value: EventValue([48, 110, 242, 253, 111, 160, 125, 87, 222, 192, 109, 33, 62, 119, 37, 169, 253, 136, 93, 41, 143, 132, 171, 82, 134, 212, 61, 163, 172, 214, 221, 81, 152, 235, 102, 242, 197, 220, 35, 241, 108, 250, 82, 182, 98, 241, 196, 209, 40, 173, 208, 181, 198, 62, 183, 77, 77, 123, 51, 20, 196, 83, 5, 252, 101, 31, 194, 212, 237, 241, 41, 23, 188, 8, 135, 189, 200, 244, 180, 126, 150, 14, 164, 111, 25]) }, Event { key: EventKey([212, 231, 93, 211, 84, 209, 115, 236, 92, 146, 156, 1, 112, 57, 196, 41, 172, 84, 19, 32, 248, 90, 148, 225, 245, 115, 80, 211, 178, 187, 149, 88, 36, 221, 13, 30, 123, 193, 70, 87, 64, 74, 85, 243, 145, 101, 98, 222, 200, 90, 87, 212, 197, 40, 80, 156, 148, 42, 199, 59, 55, 88, 67, 46, 204, 238, 113, 146, 111, 167, 110, 98, 141, 93, 192, 239, 188, 69, 202, 184, 64, 148, 221, 135, 170, 70, 129, 147, 66, 114, 172, 190, 161, 51, 5, 175, 215, 19]), value: EventValue([209, 91, 69, 236, 188, 27, 219, 161, 196, 225, 230, 137, 8, 55, 106, 75, 254, 167, 54, 77, 124, 72, 197, 32, 251, 239, 15, 124, 51, 184, 246, 183, 239, 137, 8, 18, 51, 172, 46, 176, 151, 173, 189, 71, 134, 119, 46, 49, 61, 62, 67, 187, 55, 194, 148, 78, 101, 120, 155, 240, 157, 56, 127, 210, 169, 32]) }, Event { key: EventKey([73, 199, 155, 73, 147, 65, 159, 185, 232, 109, 237, 226, 21, 126, 96, 175, 161, 174, 166, 58, 189, 126, 169, 39, 66, 220, 233, 121, 87, 246, 89, 90, 86, 159, 162, 60, 130, 171, 101, 42, 11, 192, 253, 35, 167, 174, 235, 248, 232, 236, 248, 251, 129, 137, 42, 245, 5, 133, 43, 105, 20, 228, 75, 138, 248, 106, 41, 65, 216, 156, 128, 92, 148, 142, 146, 67, 218, 1, 244, 100, 18, 109, 200, 152, 92, 165, 145, 13, 114, 179, 159, 170, 163, 192, 222, 128, 84]), value: EventValue([157, 111, 11, 177, 171, 155, 211, 160, 109, 143, 43, 249, 161, 69, 161, 82, 112, 154, 111, 43, 134, 207, 107, 162, 18, 230]) }, Event { key: EventKey([237, 22, 177, 229, 219, 110, 157, 41, 238, 238, 162, 149, 5, 126, 26, 141, 133, 21, 92, 158, 77, 130, 17, 163, 209, 29, 93, 137, 143, 96, 244, 144, 238, 173, 173, 136, 118, 113, 85, 181, 156, 52, 50, 156, 54, 141, 90, 55, 207, 19, 61, 3, 210, 196, 191, 77, 158, 46, 190, 72]), value: EventValue([107, 78, 132, 254, 220, 150, 199, 135, 214, 35, 223, 247, 186, 243, 6, 237, 49, 249, 1, 154, 77, 55, 153, 55, 190, 222, 118, 121, 102, 210, 77, 249, 163, 13, 129, 127, 188, 90, 223, 152, 95, 227, 20, 122]) }, Event { key: EventKey([157, 181, 123, 45, 210, 96, 174, 133]), value: EventValue([178, 194, 29, 108, 153, 30, 237, 159, 152, 63, 34, 69, 109, 195, 136, 187, 45, 117, 110, 76, 38, 23, 204, 203, 115, 213, 112, 41, 94, 45, 170, 135, 180, 27, 170, 154, 78, 149, 246, 247, 90, 167, 40, 140, 50, 92, 80, 212, 144, 211, 246, 171, 76, 134, 2, 215, 148, 9, 89, 171, 222, 205, 189, 163, 192, 125, 110, 88, 114, 61]) }, Event { key: EventKey([133, 186, 152, 164, 221, 149, 154, 155, 168, 32, 45, 77, 43, 146, 126, 172, 108, 151, 233, 98, 173, 68, 6, 252, 175, 214, 180, 139, 2, 179, 18, 188, 232, 59, 151, 26]), value: EventValue([115, 111, 140, 116, 44, 134, 244, 213, 125, 221, 208, 188, 210, 136, 198, 159, 84, 122, 102, 237]) }, Event { key: EventKey([79, 86, 103, 34, 41, 98, 1, 239, 27, 205, 199, 152, 210, 67, 234, 169, 249, 54, 20, 102, 218, 60, 65, 199, 30, 68, 138, 119, 68, 52, 88, 202, 142, 246, 231, 187, 201, 130, 95, 243, 58, 175, 245, 253, 192, 32, 182, 201]), value: EventValue([69, 224, 103, 185, 114, 154, 201, 62, 69, 144, 193, 20, 61, 94, 137, 82, 233, 91, 142, 49, 115, 48, 13, 164, 158, 106, 181, 128, 158, 121, 61, 139, 182, 72, 36, 93, 213, 123, 99, 122, 224, 163, 58, 166, 90, 190, 124, 197, 174, 178, 220, 11, 32, 231, 196, 9, 62, 7, 129, 60, 223, 220, 20, 138, 57, 231, 211, 112, 166, 201]) }, Event { key: EventKey([2, 29, 96, 130, 192, 177, 145, 130, 189, 37, 251, 223, 23, 109, 10, 48, 39, 242, 150, 113, 73, 204, 112, 188, 192, 213, 200, 29, 86, 94, 61, 126, 21, 115, 214, 219, 57]), value: EventValue([196, 79, 231, 83, 228, 41, 84, 114, 114, 93, 219, 56, 124, 134, 192, 133, 135, 32, 115, 162, 111, 46, 69, 180, 206, 207, 57, 169, 203, 14, 130, 173, 100, 189, 38, 234, 90, 105]) }, Event { key: EventKey([164, 15, 31, 112, 83, 28, 163, 19, 255, 240, 202, 66, 11, 133, 207, 124, 21, 195, 84, 124, 211, 19, 85, 44, 213, 175, 68, 62, 240, 14, 91, 162, 86, 86, 120, 206, 160, 92, 129, 187, 133, 51, 205, 8, 221, 162, 175, 144, 170, 147, 147, 46, 150, 52, 132, 31, 118, 232, 32, 112, 97, 26, 128, 216, 20, 10]), value: EventValue([70, 170, 143, 35, 81, 15, 108, 237, 43, 208, 253, 51, 168, 156, 24, 1, 107, 79, 3, 154, 66, 133, 0, 245, 224, 69, 29, 56, 223, 119, 121, 131, 19, 73, 76, 225, 178, 72, 74, 191, 80, 214, 62, 157, 61, 202, 241, 243, 223, 112, 53, 149, 51, 39, 52, 2, 250, 31, 9, 142, 35, 77, 93, 209, 144, 103, 184, 230, 23, 59, 68, 25, 180, 19, 64, 109, 98, 181, 108, 148, 41, 234, 235, 84, 75]) }], receipt: 2957564614 }, TransactionReceipt { tx_hash: [119, 174, 128, 237, 38, 36, 104, 41, 130, 69, 57, 41, 140, 185, 216, 186, 236, 178, 141, 193, 219, 201, 205, 250, 215, 130, 43, 250, 20, 83, 224, 189], body_to_save: None, events: [Event { key: EventKey([106, 8, 54, 92, 19, 234, 236, 16, 84, 103, 50, 113, 213, 22, 210, 176, 90, 223, 144, 186, 244, 149, 4, 121, 209, 13, 173, 23, 217, 231, 72, 236, 250, 105, 83, 107, 163, 113, 110, 212, 69, 227, 137, 101, 122, 143, 135, 89, 163, 110, 133, 215, 249, 187, 55, 253, 63, 210, 253, 212, 72, 192, 8, 69, 167, 177, 186, 69, 40]), value: EventValue([138, 0, 106, 15, 73, 19, 166, 31, 243, 30, 198, 100, 197, 83, 44, 191, 89, 51, 16, 240, 92, 242, 177, 178, 49, 48, 148, 204, 161, 67, 224, 117, 33, 5, 190, 128, 77, 220, 45, 234, 89, 2, 200, 211, 212, 132, 220, 246, 147, 46, 150, 29, 212, 43, 36, 253, 100, 198, 179, 68, 187, 143, 91, 130, 31, 60, 217, 120, 184, 146, 182, 59, 88, 83, 180, 96, 140, 209, 185, 209, 147, 198, 18]) }, Event { key: EventKey([248, 219, 118, 20, 3, 76, 213, 94, 250, 165, 126, 108, 103]), value: EventValue([195, 206, 96]) }, Event { key: EventKey([96, 115, 109, 232, 80, 97, 186, 4, 198, 167, 105, 224, 222, 117, 183, 102, 37, 206, 197, 16, 121, 169, 78, 214, 188, 205, 47, 243, 144, 86, 227, 81, 49, 55, 84, 91, 101, 58, 171, 165, 2, 29, 92, 73, 23, 78, 137, 192, 116, 146, 10, 156, 143, 159, 30, 226, 65, 33, 3, 187, 43, 107, 226, 242, 65, 227, 149, 35, 174, 210, 216, 2, 66, 46, 8, 245, 152, 109, 48, 147, 67, 47, 114, 227, 204, 104, 215, 169, 91, 150, 46, 127, 56, 119, 213, 67]), value: EventValue([112, 187, 7, 167, 4, 62, 82, 95, 145, 44, 41, 202, 181, 232, 68, 114, 27, 154]) }, Event { key: EventKey([232, 114, 116, 217, 203, 200, 231, 98]), value: EventValue([173, 61, 100, 38, 130, 229, 119, 163, 40, 13, 235, 215, 77, 149, 125]) }, Event { key: EventKey([203, 205, 18, 14, 102, 165, 194, 0, 31, 89, 32, 159, 29, 18, 166, 79, 27, 184, 120, 94, 172, 13, 185, 2, 87, 254, 110, 199, 223, 206, 33, 207, 63, 73, 203, 3, 225, 179, 218, 171, 23, 217, 240, 218, 78, 241, 104, 255, 212, 240, 172]), value: EventValue([96, 55, 61, 217, 238, 77, 57, 30, 160, 108, 115, 204, 0, 122, 50, 67, 126, 190, 111, 143, 0, 187, 238, 94, 202, 132, 175, 51, 120, 15, 31, 45, 7, 61, 95, 57, 200, 69, 249, 232, 91, 112, 212, 244, 243, 162, 216, 133, 142]) }, Event { key: EventKey([12, 222, 108, 20, 132, 219, 184, 242, 120, 33, 58, 98, 186, 161, 214, 235, 237, 133, 239, 125, 93, 3, 134, 62, 233, 207, 128, 214, 230, 3, 181, 27, 173, 126, 122, 106, 43, 72, 7, 230, 96, 155, 224, 185, 7, 232, 83, 119, 92, 192, 67, 83, 70, 72, 121, 206, 186, 56, 87, 252, 23, 65, 204, 85, 49, 234, 197, 7]), value: EventValue([21, 29, 253, 72, 123, 233, 142, 56, 220, 97, 247, 84, 27, 90, 51, 88, 149, 20, 182, 50, 46, 239, 61, 236, 168, 160, 142, 73, 53, 94, 136, 241, 249, 91, 15, 30, 34, 66, 50, 35, 4, 240, 102, 194, 114, 246, 168, 65, 111, 184, 1, 153, 179, 244, 213, 92, 9, 166, 120, 29, 204, 57, 245, 75, 55, 92, 124, 38, 44, 135, 55, 230, 144, 21, 70, 168, 198, 160, 38, 68, 145, 213, 160, 168, 164, 185, 6, 86, 175]) }, Event { key: EventKey([183, 225, 129]), value: EventValue([29, 189, 91, 101, 105, 233, 0, 9, 116, 214, 197, 61, 157, 16, 227, 177, 63, 107, 133, 143, 91, 245, 207, 160, 227, 82, 220, 247, 99, 70, 8, 15]) }], receipt: 4218885009 }], inner: 3353197607 }, BatchReceipt { batch_hash: [101, 239, 37, 46, 23, 6, 195, 31, 33, 191, 180, 113, 118, 141, 191, 0, 172, 104, 146, 37, 190, 143, 82, 218, 246, 36, 245, 94, 127, 167, 201, 205], tx_receipts: [TransactionReceipt { tx_hash: [30, 183, 5, 187, 124, 48, 252, 81, 190, 254, 189, 160, 102, 153, 168, 47, 158, 108, 60, 161, 146, 109, 102, 196, 78, 142, 13, 33, 227, 239, 162, 89], body_to_save: None, events: [Event { key: EventKey([40, 128, 18, 160, 204, 103, 33, 169, 42, 41, 159, 123, 75, 16, 249, 23, 184, 226, 234, 192, 17, 147, 131, 20, 93, 13, 155, 123, 201, 149, 66, 100, 170, 219, 65, 104, 106, 51, 66, 133, 19, 99, 135, 134, 53, 233, 48, 79, 26, 68, 169, 33, 199, 224, 79, 43, 81, 205, 152, 121, 162, 52, 87, 196, 6, 95, 176, 214, 57, 206, 137, 16, 37, 213, 27, 17, 187, 49, 226, 71, 171, 179, 63, 65, 255, 166, 199, 105, 78, 149, 70, 242, 71, 65, 102, 77, 144, 75]), value: EventValue([252, 37, 69, 237, 232, 13, 193, 119, 234, 61, 219, 251, 24, 1, 34, 125, 174, 177, 253, 91, 13, 93, 179, 97, 195, 244, 94, 206, 27, 31, 11, 141, 229, 95, 118, 245, 230, 203, 191, 107, 62, 93, 195, 198, 242, 51, 2, 43, 203, 43, 43, 71, 190, 125, 101, 16, 254, 101, 170, 178, 3, 18, 7, 114, 52, 236, 245, 103, 253, 195, 199, 88, 60, 12, 12]) }], receipt: 4241227895 }, TransactionReceipt { tx_hash: [11, 131, 113, 90, 13, 142, 232, 56, 117, 225, 241, 112, 107, 109, 94, 241, 67, 13, 61, 93, 92, 47, 0, 244, 34, 240, 103, 126, 107, 160, 143, 101], body_to_save: Some([24, 93, 58, 34, 46, 148, 250, 84, 41, 254, 81, 54, 160, 119, 206, 235, 198, 76, 6, 113, 195, 72, 204, 244, 25, 54, 58, 115, 178, 237, 29, 70, 178, 153, 236, 27, 2, 156, 31, 91, 97, 235, 169, 169, 247, 12, 136, 95, 181, 187, 81, 129, 59, 66, 160, 72, 203, 41, 59, 226, 199, 100, 171, 110, 205, 84, 137, 51, 4, 8, 69, 23, 158]), events: [], receipt: 626250218 }, TransactionReceipt { tx_hash: [176, 12, 31, 100, 203, 31, 103, 141, 166, 101, 127, 22, 156, 175, 151, 207, 195, 155, 183, 30, 190, 155, 22, 128, 72, 157, 58, 215, 73, 164, 155, 46], body_to_save: Some([143, 176, 212, 110, 215, 202, 76, 32, 182, 37, 15, 75, 43, 192, 217, 83, 155, 185, 36, 62, 180, 230, 144, 120, 153, 78, 84, 11, 25, 145, 216, 12, 134, 40, 220, 87, 221, 161, 145, 8, 184, 195, 17, 85, 113, 247, 18, 112, 64, 71, 14, 237, 217, 98, 25, 160, 131, 17, 100, 178, 215, 133, 73, 116, 205, 231, 156, 133, 15, 94, 211, 242, 76, 86, 198, 35, 238, 100, 188, 126, 117, 255, 145, 177, 49, 168, 78, 228, 247, 25]), events: [], receipt: 4015450443 }, TransactionReceipt { tx_hash: [233, 125, 149, 55, 36, 110, 144, 236, 176, 13, 180, 150, 132, 1, 54, 155, 72, 213, 76, 59, 3, 226, 3, 150, 156, 105, 240, 140, 153, 221, 29, 46], body_to_save: Some([171]), events: [Event { key: EventKey([161, 223, 222, 58, 22, 100, 134, 52, 3, 74, 197, 103, 93, 22, 194, 66, 194, 169, 10, 133, 193, 19, 241, 255, 101, 18, 13, 236, 11, 207, 190, 6, 92, 181, 174, 248, 84, 181, 100, 165, 114, 76, 150, 206, 154, 155, 170, 17, 92, 164, 44, 85, 124, 104, 99, 249, 102, 82, 102, 251, 40, 13]), value: EventValue([35, 205, 243, 209, 230, 49, 90, 50, 162, 208, 1, 236, 162, 129, 241, 39, 55, 157, 221, 132, 212, 3, 90, 146, 136, 244, 16, 38, 41, 3, 40, 238, 138, 41, 174, 133, 111, 83, 238, 244, 175, 96, 68, 10, 128]) }, Event { key: EventKey([213, 103, 24, 250, 233, 129, 42, 40, 5, 182, 6, 101, 135, 155, 103, 150, 124, 52, 151, 28, 82, 138, 1, 135, 187, 252, 95, 191, 37, 40, 51, 220, 197, 235, 92, 28, 55, 166, 21]), value: EventValue([94, 223, 148, 139, 185, 205, 232, 3, 117, 10, 42, 23, 46, 240, 7, 129, 152, 72, 83, 190, 9, 48, 157, 158, 239, 62, 76, 182, 73, 188, 125, 255, 207, 51, 180]) }, Event { key: EventKey([201, 50, 156, 223, 4, 145, 140, 50, 82, 191, 129, 122, 85, 87, 223, 128, 50, 157, 90, 254, 201, 239, 230, 126, 74, 141, 189, 197, 73, 164, 210, 251, 99, 76, 30, 80, 175, 58, 37, 148, 67, 154, 214, 154, 253, 217, 106, 196, 215, 136, 189, 172, 204, 66, 149, 139, 43, 124, 8, 80, 114, 41, 6, 216, 30, 28, 141, 149, 62, 65, 186, 164]), value: EventValue([56, 27, 25, 169, 136, 141, 241, 91, 93, 155, 31, 31, 157, 31, 50, 212, 153, 124, 232, 241, 51, 128, 103, 3, 137, 227, 128, 51, 235, 26, 140, 5, 86, 235, 150, 28, 138, 200, 208, 105, 28, 63, 121, 60, 119, 26, 162, 192, 239, 205, 82, 50, 184, 228, 80, 38, 225, 76, 56, 198, 63, 81, 195, 71, 110, 254, 99, 3, 67, 178, 177, 223, 162, 140, 176, 161, 63, 168, 59, 242, 29, 221, 92, 186, 207, 88, 56, 34, 197, 22, 254, 74, 112, 49, 118, 173, 36, 84, 21]) }, Event { key: EventKey([20, 19, 249, 233, 3, 42, 83, 200, 183, 26, 211, 49, 232, 90, 42, 51, 230, 190, 170, 237, 96, 219, 10, 51, 186, 204, 159, 222, 137, 37, 108, 195, 234, 196]), value: EventValue([198, 254, 120, 140, 194, 107, 162, 209, 129, 142, 68, 180, 88, 216, 134, 89, 244, 39, 155, 24, 181, 190, 95, 92, 30, 246, 81, 202, 226, 74, 94, 63, 55, 217, 25, 131, 151, 27, 184, 110, 36, 81, 90, 51, 10, 210, 205, 142, 199, 205, 155, 249, 2, 87, 63, 78, 59, 232, 12, 34, 237, 116, 141, 114, 225, 36, 23, 184, 96, 175, 229, 0, 18, 175, 59, 160, 88, 4, 213, 219, 9, 238, 236, 196, 244, 191, 4, 205, 206, 233]) }, Event { key: EventKey([255, 133, 245, 43, 58, 178, 28, 158, 46, 63, 10, 177, 46, 128, 187, 19, 89, 153, 198, 130, 215, 106, 6, 96, 111, 198, 105, 232, 227, 84, 146, 150, 61, 39, 221, 197, 160, 57, 69, 174, 61, 25, 169, 123, 172, 12, 29, 84, 58, 198, 115, 40, 7, 136, 76, 166, 27, 35, 13, 189, 195, 23, 149, 1, 12, 199, 74, 246, 115, 62, 253, 105, 90, 84, 176, 234, 157, 34, 245, 120, 18, 91, 181, 86, 51, 141, 3, 172, 127, 235, 140]), value: EventValue([144, 123, 83, 163, 140, 95, 255, 11, 176, 90, 60, 241, 240, 147, 82, 215, 158, 190, 198, 204, 249, 108, 30, 240, 160, 2, 139, 184, 57, 170, 79, 99, 64, 254, 39, 242, 2, 105, 65, 205, 53, 140, 185, 199, 210, 203, 8, 18, 64, 78, 11, 152, 178, 157, 79, 111, 175, 92, 147, 70, 103, 117, 237, 115, 165, 167, 237, 188, 212, 234, 151, 216, 180, 183, 4, 141, 6, 234, 110, 118, 231, 125, 74, 150]) }, Event { key: EventKey([2, 109, 150, 10, 103, 96, 157, 7, 155, 200, 171, 13, 148, 149, 200, 62, 9, 194, 249, 169, 159, 247, 5, 187, 44, 16, 111, 95, 240, 215, 152, 233, 24, 69, 245, 17, 122, 97, 143, 100, 144, 172, 61]), value: EventValue([65, 88, 68, 109, 83, 80, 102, 133, 31, 247, 241, 30, 148, 26, 47, 110, 21, 59, 245, 32, 249, 141, 214, 48, 198, 207, 182, 213, 38, 70, 252, 27, 205, 143, 132, 222, 168, 127, 42, 238, 50, 183, 190, 200, 19, 146, 107, 184, 124, 90, 179, 55, 126, 231, 121, 103, 28, 92, 205, 95, 2, 181, 30, 46, 15, 119]) }, Event { key: EventKey([44, 40, 63, 212, 32, 48, 199, 136, 233, 78, 227, 123, 154, 114, 253, 181, 90, 79, 167, 35, 161, 241, 216, 215, 194, 52, 70, 85, 62, 250, 251, 244, 196, 62, 143, 59, 57, 242, 64, 206]), value: EventValue([6, 164, 146, 15, 112, 144, 214, 166, 163, 154, 87, 244, 232, 7, 134, 43, 62, 28, 157, 11, 177, 124, 142, 33, 69, 119, 78, 213, 253, 25, 189, 155, 174, 73, 123, 119, 15, 167, 84, 255, 79, 231, 72, 177, 33, 111, 160, 248, 25, 210, 61, 249, 63, 84, 170, 182]) }, Event { key: EventKey([176, 245, 8, 139, 138, 178, 107, 193, 218, 148, 30, 235, 117, 255, 7, 163, 66, 243, 216, 77, 25, 140, 251, 217, 203, 48, 12, 127, 149, 152, 149, 29, 201, 136, 51, 57, 12]), value: EventValue([12, 30, 202, 173, 76, 239, 237, 209, 243, 54, 181, 48]) }, Event { key: EventKey([122, 27, 65, 128, 73, 50, 118, 211, 47, 83, 146, 174, 59, 21, 64, 82, 202, 119, 22, 241, 199, 0, 59, 85, 234, 103, 115, 106, 152, 34, 178, 33, 43, 50, 243, 171, 91, 54, 218, 37, 99, 168, 193, 83, 199, 74, 220, 238, 127, 152, 239, 2, 142, 246, 218, 44, 64, 199]), value: EventValue([39, 184, 173, 198, 3, 104, 203, 198, 228, 30, 77, 86, 57, 18, 203, 38, 164, 54, 13, 232, 146, 51, 114, 186, 80, 252, 97, 165, 154, 76, 144, 220, 169, 169, 58, 21, 241, 52, 199, 171, 135, 87, 205, 255, 46, 120, 220, 100, 130, 26, 83, 110, 233, 209, 194, 185, 10, 251, 33, 228, 212, 168, 35, 132, 55, 147, 146, 132, 215, 200, 152, 131, 123, 96, 196, 130, 186, 251, 157, 58, 104, 209, 26, 150, 107, 212, 55]) }], receipt: 826573594 }], inner: 1866454571 }, BatchReceipt { batch_hash: [103, 2, 78, 178, 12, 199, 140, 86, 109, 39, 71, 48, 63, 252, 88, 124, 138, 180, 243, 170, 169, 220, 217, 18, 121, 3, 206, 6, 78, 124, 141, 23], tx_receipts: [], inner: 1916345857 }], num_txs: 10, num_events: 55 }, SlotCommit { slot_data: TestBlock { curr_hash: [168, 10, 100, 241, 25, 11, 111, 116, 194, 59, 63, 69, 232, 167, 100, 179, 67, 159, 98, 63, 182, 18, 34, 75, 24, 111, 35, 40, 131, 105, 2, 203], header: TestBlockHeader { prev_hash: TestHash([238, 209, 148, 186, 16, 128, 82, 89, 187, 152, 13, 112, 133, 114, 62, 1, 13, 110, 102, 14, 55, 129, 133, 66, 86, 166, 47, 65, 57, 102, 29, 131]) } }, batch_receipts: [BatchReceipt { batch_hash: [230, 162, 73, 68, 219, 12, 233, 28, 149, 1, 244, 151, 37, 220, 40, 102, 203, 54, 118, 40, 168, 26, 110, 192, 31, 90, 57, 194, 96, 73, 116, 7], tx_receipts: [TransactionReceipt { tx_hash: [231, 16, 100, 110, 172, 195, 96, 40, 105, 166, 243, 126, 218, 74, 84, 5, 44, 30, 73, 214, 94, 57, 70, 193, 129, 9, 156, 147, 240, 7, 242, 249], body_to_save: Some([30, 143, 113, 0, 218, 112, 28, 46, 52, 167, 60, 207, 44, 212, 223]), events: [Event { key: EventKey([74, 3, 10, 126, 88, 66, 67, 177, 56, 172, 149, 172]), value: EventValue([126, 30, 209, 59, 10, 166, 214, 42, 243, 34, 101, 75, 192, 6, 31, 37, 129, 83, 150, 179, 157, 168, 237, 106, 24, 147, 61, 24, 127, 0, 50, 132, 232, 158, 240, 214, 166, 13, 113, 104, 209, 228, 77, 50, 120, 213, 24, 211, 247, 62, 33, 82, 147, 250, 32, 149, 143, 152, 235, 136, 56, 246, 69, 209, 33, 61, 68, 126, 217, 200, 252, 48, 54, 242, 209, 187, 81, 114, 206, 111, 247, 238]) }, Event { key: EventKey([152, 35, 243, 94, 119, 121, 158, 43, 183, 212, 127, 152, 96, 254, 87, 87, 12, 86, 199, 4, 36, 56, 31, 235, 110, 235, 33, 248, 25, 253, 86, 150, 168, 17, 19, 168, 209, 187, 82, 253, 74, 91, 42, 213, 79, 101, 231, 124, 0, 191, 204, 178, 59, 48, 225, 246, 249]), value: EventValue([163, 31, 198, 201, 202, 115, 44, 196, 227, 247, 88, 178, 251, 100, 122, 226, 247, 125, 155, 82, 55, 99, 101, 222, 2, 0, 16, 251, 243, 217, 41, 67, 60, 212, 1, 68, 246, 34, 37, 97, 234, 242, 56, 159, 119, 122, 232, 61, 221, 10, 221, 118, 109, 57, 54, 25, 78, 169, 188, 25, 63, 199, 173, 249, 97, 95, 249, 164, 138, 119, 54, 49, 191, 207, 100, 80, 151, 11, 96, 108, 85]) }, Event { key: EventKey([233, 125, 195, 91, 215, 98, 190, 224, 89, 111, 20, 173, 4, 214, 215, 246, 92, 136, 106, 135, 163, 146, 74, 30, 242, 182, 88, 145, 10, 88, 10, 221, 228, 126, 29, 31, 167, 30, 39, 182, 57, 146, 167, 241, 179, 162, 220, 14, 105, 212, 58, 2, 90, 161, 63, 199, 137, 23, 106, 184, 114, 95, 247, 179, 172, 3, 2, 6, 225, 2, 223]), value: EventValue([192, 31, 62, 180, 177, 239, 81, 189, 124, 21, 249, 158, 138, 153, 36, 203, 148, 29, 4, 48, 186, 192, 14, 115, 216, 4, 174, 164, 181, 187, 182, 185, 210, 138, 144, 43, 203, 142, 68, 127, 144, 199, 214, 76, 178, 53, 240, 22, 153, 149, 53, 74, 17, 202, 133, 209, 80, 5, 184, 209, 138, 220, 116, 105, 86, 156, 107, 92, 158, 244, 101, 70, 174, 41, 79, 79, 133, 128, 251, 128, 224, 177, 211, 77, 126, 221, 35, 163, 225, 29, 90, 44, 181, 133, 225, 215]) }, Event { key: EventKey([54, 125, 86, 175, 5, 132, 193, 145, 206, 151, 110, 15, 69, 55, 26, 168, 59, 13, 128, 194, 0, 128, 91]), value: EventValue([246, 230, 118, 47, 248, 253, 234, 127, 133, 4, 107, 160, 131, 136, 32, 15, 103, 45, 134, 28, 89, 244, 29, 222, 168, 30, 7, 67, 95, 74, 70, 117, 45, 240]) }, Event { key: EventKey([228, 139, 8, 38, 150, 41, 180, 232, 235, 15, 224, 56, 254, 217, 148, 196, 16, 11, 139, 124, 42, 29, 198, 113, 241, 113, 242, 118, 130, 110, 246, 27, 1, 3]), value: EventValue([242, 146, 159, 70, 66, 193, 136, 180, 112, 65, 105, 94, 220, 112, 46, 144, 160, 37, 39, 250, 2, 64, 204, 125, 158, 84, 108, 159, 209, 110, 19, 221, 185, 182, 157, 35, 28, 144, 119, 55, 44, 72, 15, 0, 25, 156, 196, 99, 127, 23, 18, 69, 85, 133]) }], receipt: 1427027434 }, TransactionReceipt { tx_hash: [93, 222, 246, 88, 248, 224, 167, 197, 173, 108, 233, 24, 196, 208, 147, 25, 81, 218, 243, 197, 178, 95, 226, 74, 69, 227, 240, 51, 220, 81, 28, 117], body_to_save: None, events: [Event { key: EventKey([127, 70, 55, 87, 87, 91, 86, 180, 143, 249, 218, 206, 71, 238, 228, 72, 190, 111, 119, 8, 49, 146, 254, 220, 152, 228, 20, 117, 88, 127, 90, 76, 162, 70, 116, 20, 138, 68, 156, 161, 146, 56, 184, 121, 104, 33, 230, 254, 207, 229, 230, 24, 18, 141, 158, 194, 131]), value: EventValue([34, 76, 206, 124, 61, 59, 73, 34, 32, 98, 35, 153, 220, 149, 206, 236, 205, 176, 114, 229, 28, 140, 168, 3, 220, 253, 208, 184, 238, 24, 63, 38, 99, 72, 168, 86, 58, 35, 148, 82, 90, 119, 161, 240, 154, 49, 211]) }, Event { key: EventKey([249, 184, 114, 31, 164, 31, 122, 227, 162, 24, 218, 158, 45, 229, 12, 120, 224, 232, 120, 26, 121, 145, 82, 10, 184, 191, 7, 125, 212, 81, 159, 92, 249, 147, 2, 247, 16, 2, 183, 89, 197, 160, 228, 165, 211, 215, 64, 251, 227, 5, 60, 181, 53, 251]), value: EventValue([120, 30, 238, 77, 147, 249, 147, 226, 101, 79, 90, 141, 6, 234, 87, 190, 123, 252, 92, 140, 21, 218, 76, 59, 33, 173, 102, 72, 143, 177, 72, 215, 56, 2, 114, 1, 109, 183, 91, 175, 235, 255, 71, 248, 81, 93, 210, 14, 50, 136, 85, 45, 39, 150, 196, 141, 204, 76, 185, 246, 247, 71, 149, 60, 42, 72, 73, 103, 65, 33, 80, 211, 62]) }], receipt: 1062075202 }, TransactionReceipt { tx_hash: [45, 61, 74, 119, 224, 1, 30, 59, 156, 60, 77, 157, 114, 116, 96, 233, 254, 81, 228, 99, 205, 150, 208, 161, 183, 57, 10, 46, 75, 74, 100, 4], body_to_save: Some([124, 79, 63, 212, 150, 54, 71, 231, 59, 184, 192, 44, 55, 173, 232, 126, 111, 244, 109, 209, 115, 117, 14, 14, 192, 73, 118, 82, 133, 113, 88, 185, 101, 143, 160, 77, 84, 239, 241, 226, 70, 121, 105, 170, 132, 172, 168, 200, 150, 112, 99, 255, 43, 6, 254, 188, 128, 62, 60, 119, 250, 235, 193]), events: [], receipt: 4261697837 }, TransactionReceipt { tx_hash: [217, 37, 199, 100, 90, 244, 180, 226, 18, 136, 5, 119, 222, 17, 79, 13, 39, 237, 255, 220, 133, 118, 103, 209, 28, 129, 159, 141, 252, 42, 238, 13], body_to_save: Some([208, 19, 244, 191, 64, 255, 174, 116, 39, 229, 212, 159, 106, 99, 68, 142, 218, 23]), events: [Event { key: EventKey([253, 45, 74, 94, 210, 246, 15, 108, 250, 56, 10, 70, 156, 241, 165, 234, 228, 147, 147, 200, 218, 148, 208, 175, 26, 79, 83, 101]), value: EventValue([155, 22, 248, 2, 198, 122, 137, 123, 189, 73, 3, 213, 198, 64, 53, 239, 136, 232, 127, 11, 40, 133, 24, 107, 237, 245, 187, 22, 205, 83, 170, 212, 104, 235, 108, 23, 160, 154, 173, 20, 24, 238, 154, 158, 255, 6, 7, 16, 204, 36, 163, 145, 110, 79, 90, 200, 10, 42, 247, 93, 59, 178, 108, 145, 115, 138, 113, 133, 16, 234, 114, 255, 93, 139, 237]) }, Event { key: EventKey([191, 108, 95, 213, 99, 2, 4, 222, 138, 32, 170, 250, 12, 115, 39, 210, 136, 25, 50, 199, 44, 190, 101, 177, 93, 78, 138, 215, 75, 197, 110, 9, 196, 249, 71, 237, 146, 88, 121, 125, 21, 72, 84, 232, 159, 43, 56, 91, 195, 16, 245, 43, 181, 112, 186, 103]), value: EventValue([151, 49, 218, 8, 24, 47, 49, 116, 144, 224, 151, 254, 161, 27, 40, 228, 78]) }, Event { key: EventKey([210, 17, 27, 60, 255, 127, 206, 247, 217, 141, 248, 132]), value: EventValue([56, 25, 91, 4, 44, 167, 14, 116, 211, 223, 27, 17, 212, 135, 168, 155, 186, 67, 12, 176]) }, Event { key: EventKey([162, 182, 29, 98, 152, 171, 178, 181, 189, 209, 126, 212, 219, 22, 34, 231, 147, 74, 76, 48, 237, 135, 120, 30, 27, 192, 205, 160, 205, 21, 219, 114, 182, 177, 139, 51, 200, 222, 165, 124, 123, 196, 11, 230, 224, 112, 14, 213, 56, 100, 23, 108, 140, 57, 16, 116, 140, 199, 34, 228, 127, 154, 240, 78, 82, 209, 200, 117, 19, 169, 215, 103, 21, 106, 128, 248, 203, 34, 213, 185, 235, 117, 85, 244, 253, 23, 205, 4, 34, 164, 204, 186, 181, 137, 73, 103]), value: EventValue([153, 217, 25, 22, 78, 240, 43, 71, 119, 73, 114, 71, 156, 235, 150, 98, 70, 88, 87, 230, 223, 61, 103, 176, 20, 160, 21, 219, 248, 207, 192, 204, 156, 4, 15, 251, 154, 159, 103, 158, 129, 241, 107, 29, 20, 205, 81, 228, 36, 195, 22, 176, 41, 33, 132, 43, 94, 56, 145, 89, 204, 155, 51, 47, 78, 49, 156, 172, 167, 135, 232]) }], receipt: 976290775 }, TransactionReceipt { tx_hash: [6, 207, 65, 7, 1, 24, 111, 155, 34, 209, 170, 48, 1, 123, 135, 145, 13, 102, 204, 32, 46, 75, 122, 13, 177, 228, 221, 152, 62, 147, 29, 56], body_to_save: None, events: [Event { key: EventKey([162, 115, 90, 236, 83, 213, 145, 129, 242, 35, 185, 120, 192, 54, 159, 156, 46, 91, 176, 182, 0, 116, 116, 73, 118, 205, 143, 102, 58, 184, 16]), value: EventValue([92, 1, 232, 21, 37, 201, 156, 94, 169, 47, 230, 224, 11, 164, 68, 96, 111, 250, 4, 212, 176, 194, 83, 146, 232, 37, 112, 112, 161, 87, 121, 145, 59, 204, 144, 212, 71, 252, 228, 100, 191, 58, 132, 208, 72, 37, 221, 216, 143, 244, 42, 41, 149, 249, 223, 3, 86, 170, 21, 60, 69, 234, 136, 191, 205, 109, 207, 232, 200, 239, 3, 233, 137, 87, 174, 200, 215, 13, 253, 77, 1, 218, 128, 133, 52, 228, 202, 94, 240, 121, 35, 133, 66, 19]) }, Event { key: EventKey([31, 237, 34, 192, 97, 1, 30, 116, 143, 14, 219, 37, 83, 55, 243, 0, 173, 170, 119, 126, 62, 206, 149, 222, 192, 236, 19, 139, 85, 106, 51, 31, 29]), value: EventValue([85, 190, 12, 196, 224, 248, 35, 6, 193, 133, 249, 192, 188, 175, 144, 45, 153, 132, 76, 87, 2, 47, 70, 233, 109, 201, 120, 45, 185, 162, 115, 17, 9, 56, 14, 7, 11, 211, 120, 252, 119, 36, 135, 138, 20, 121, 200, 239, 38, 178]) }, Event { key: EventKey([69, 178, 30, 32, 132, 80, 248, 208, 168, 187, 202, 88, 78, 134, 233, 13, 166, 39, 62, 145, 126, 202, 170, 131, 20, 77, 149, 91, 87, 132, 55, 183, 50, 122, 45, 165, 24, 158, 169, 64, 34, 136, 18, 151, 56, 69, 239, 90, 130, 36, 65, 150, 41, 247, 2, 128, 225, 1, 235, 122, 137, 35, 145, 172, 63, 17, 30, 240, 10, 85, 211, 185, 153, 64, 142, 191, 197, 182, 183, 153, 45, 116, 245, 31, 106, 97, 241, 117, 213, 69, 114, 254]), value: EventValue([238, 190, 242, 226, 57, 35, 107, 182, 102, 174, 183, 24, 110, 29, 96, 48, 46, 118, 128, 89, 21, 229, 253, 175, 174, 206, 211, 30, 180, 121, 174, 140, 37, 106, 184, 44, 166, 164, 66, 219, 109, 214, 5, 186, 63, 147, 109, 137, 105, 175, 239, 216, 178, 158, 6, 16, 191, 178, 100, 207, 220, 23, 48, 227, 220, 115, 36, 97, 43, 195, 175, 53, 251, 34, 109, 197, 116, 88, 164, 230, 99, 248, 212, 87, 29, 167, 18, 138, 123, 207]) }, Event { key: EventKey([241, 35, 27, 62, 255, 139, 111, 177, 250, 109, 135, 33, 47, 166, 25, 14, 120, 0, 69, 108, 151, 52, 94, 5, 236, 242, 93, 47, 31, 1, 45, 176, 72, 121, 32, 28, 20, 147, 249, 84, 30, 160, 221, 55, 109, 213, 134, 200, 14, 188, 161, 35]), value: EventValue([201, 126, 85, 93, 183, 190, 7, 29, 248, 130, 27, 44, 151, 200, 65, 53, 181, 81, 202, 150, 70, 219, 212, 76, 113, 157, 56, 190, 249, 155, 158, 167, 64, 185, 86, 192, 110, 103, 1, 118, 232, 217, 51, 31, 72, 6, 88, 0, 35, 53, 64, 93, 88, 96, 157, 254, 71, 103, 104, 25, 173, 94, 252, 192, 27, 246, 146, 154, 213]) }, Event { key: EventKey([123, 205, 85, 16, 154, 234, 178, 169, 173, 121, 141, 220, 115, 221, 183, 9, 66, 94, 171, 138, 34, 67, 86, 113, 139, 10, 18, 199, 223, 155, 144, 209, 67, 109, 197, 209, 205, 252, 252, 6, 174, 251, 226, 153]), value: EventValue([201, 22, 240, 37, 108, 229, 101, 62, 212, 243, 9, 235, 100, 34, 45, 118, 182, 231, 200, 86, 173, 24, 121, 40, 107, 187, 205, 118, 36, 51, 196, 49, 220, 111, 84, 18, 176, 221, 127, 244, 70, 74, 231, 62, 80, 53, 152, 8, 227, 230, 31, 103, 250, 19]) }, Event { key: EventKey([253, 122, 63, 90, 57, 197, 114, 211, 191, 55, 235, 241, 172, 133, 242, 253, 68, 125, 251, 143, 143, 29, 225, 243, 79, 147, 168, 38, 61, 40, 42, 250, 47, 125, 234, 163, 70, 134, 234, 208, 157, 134, 205, 111, 208, 140, 91, 216, 94, 38, 31, 5, 182, 182, 41, 160, 161, 253, 134, 105, 141, 142, 195, 177, 151, 27, 14]), value: EventValue([15, 185, 145, 47, 178, 47, 22, 94, 134, 126, 252, 9, 242, 183, 31, 76, 32, 77, 57, 164, 11, 163, 244, 74, 47, 222, 31, 107, 69, 159, 94, 137, 76, 88, 205, 225, 17, 193, 159, 109, 83, 203, 115, 212, 74, 188, 50, 50, 94, 41, 15, 95, 170, 89, 51, 117, 122, 235, 141, 110, 190, 216, 101, 119, 138, 217, 201, 89, 76, 185, 143, 207, 121]) }, Event { key: EventKey([201, 123, 136, 65, 171, 196, 52, 36, 174, 22, 3, 32, 49, 244, 175, 237, 205, 129, 252, 116, 123, 242, 52, 22, 206, 187, 56, 173, 44, 104, 82, 52, 120]), value: EventValue([85, 133, 142, 249, 200, 113, 65, 98, 184, 21, 156, 148, 130, 233, 9, 12, 110, 98, 23, 136, 81, 50, 143, 143, 249, 163, 74, 163, 113, 68, 190, 226, 63, 174, 121, 250, 93]) }, Event { key: EventKey([111, 64, 84, 159, 195, 244, 184, 51, 35, 177, 183, 84, 106, 25, 8]), value: EventValue([90, 61, 177, 60, 154, 28, 93, 211, 86, 233, 117, 238, 243, 230, 3, 47, 138, 143, 184, 102, 141, 135, 92, 118, 171, 194, 209, 168, 192, 5, 157]) }, Event { key: EventKey([23, 92, 165, 184, 92, 103, 145, 228, 27, 176, 183, 216, 72, 135, 84, 171, 159, 123, 230, 122, 71, 228, 49, 15, 238, 217, 147, 119, 155, 230, 157, 185]), value: EventValue([184, 29, 199, 63, 102, 168, 89, 75, 234, 178, 38, 79, 247, 117, 162, 190, 24, 163, 0, 233, 103, 194, 36, 173, 110, 212, 21, 208, 216, 173, 46, 169, 185, 6, 231, 142, 155, 178, 53, 29, 157, 92, 18, 183, 249, 50, 139, 98, 97, 173, 165, 145, 243, 29, 11, 116, 226, 228, 33, 8, 168]) }], receipt: 1289181084 }, TransactionReceipt { tx_hash: [162, 85, 151, 193, 189, 68, 102, 46, 97, 181, 156, 52, 9, 101, 252, 106, 222, 116, 74, 144, 180, 206, 47, 247, 199, 164, 28, 35, 120, 237, 111, 164], body_to_save: Some([35, 152, 0, 91, 142, 198, 31, 240, 205, 114, 3, 141, 113, 90, 94, 61, 29, 97, 52, 250, 125, 163, 146, 147, 207, 64, 221, 143, 186, 151, 193, 211, 135, 231, 128, 151, 141, 54, 227, 99, 185, 84, 105, 161, 36, 83, 51, 0, 41, 180, 163, 19, 117, 124, 176, 92, 186, 133, 6, 221, 116, 134, 185, 50, 83, 224, 178, 141, 0, 184, 155, 50, 182, 84, 159, 29, 217, 150, 150, 147, 248, 60, 217, 124, 47, 235, 231, 24, 70]), events: [Event { key: EventKey([207, 99, 211, 28, 5, 126, 65, 177, 177, 200, 51, 27, 98, 54, 12, 245, 134, 110, 8, 38, 68, 217, 0, 130, 66, 4, 194, 14, 220, 236, 198, 222, 242, 158, 125, 171, 212, 131, 30, 3, 109, 85, 102, 31, 22, 98, 130, 25, 199, 245, 31, 31, 99, 161, 47, 41, 77, 86, 228, 171, 243, 18, 213, 97, 86, 194]), value: EventValue([121, 49, 132, 5, 7, 199, 47, 67, 102, 80, 141, 164, 31, 198, 209, 75, 63, 19, 112, 41, 55, 82, 1, 142, 28, 193, 45, 199, 80, 104, 174, 137, 245, 226, 66, 97, 35, 97, 5, 71, 245, 254, 20, 57, 190, 53, 210, 74, 103, 64, 186, 72, 148, 224, 47, 60, 193, 73, 227, 124, 202, 15, 83, 125, 91, 195, 139, 142, 73, 212, 82, 181, 61, 207, 38, 44, 118, 153, 70]) }, Event { key: EventKey([74, 28, 194, 206, 176, 48, 141, 41, 81, 125, 140, 36, 231, 35, 72, 78, 85, 216, 77, 226, 46, 214, 14, 187, 99, 135, 226, 185, 244, 78, 145, 76, 216, 73, 79, 36, 107, 42, 77, 31, 227, 27, 238, 254, 107, 61, 169, 64, 162]), value: EventValue([214, 155, 190, 73, 41]) }, Event { key: EventKey([166, 202, 161, 245, 218, 69, 97, 184, 26, 196, 83, 36, 173, 231, 134, 121, 195, 44, 70, 189, 212, 219, 183, 113, 248, 131, 78, 18, 41, 80, 198, 66, 53, 31, 135, 247, 184, 43, 80, 191, 151, 3, 157, 65, 168, 22, 71]), value: EventValue([22, 97, 110, 192, 202, 110, 99, 212, 181, 9, 239, 216, 229, 97, 188, 108, 5, 249, 124, 61, 103]) }, Event { key: EventKey([111, 64, 17, 50, 209, 11, 148, 9, 233, 9, 2, 240, 237, 68, 47, 243, 61, 22, 47, 180, 202, 55, 242, 4, 247, 163, 129, 245, 26, 194, 248, 228, 179, 168, 30, 221, 232, 177, 192, 21, 254, 21, 201, 101, 20, 118, 133, 211, 32, 44, 142, 72, 65, 167, 40, 49, 239, 155, 51, 226, 163, 244, 33, 138, 55, 205, 195, 75, 179, 82]), value: EventValue([252, 236, 111, 12, 203, 231, 91, 210, 25, 13, 154, 175, 85, 252, 56, 112, 233, 6, 249, 214, 248, 103, 132, 17, 74, 220, 166, 249, 101, 80, 86, 28, 93, 3, 224, 51, 47, 166, 113, 164, 234, 169, 132, 5, 200, 15, 155, 232, 19, 209, 202, 5, 234, 219, 205, 188, 49, 189, 187, 216, 244, 44, 201, 33, 128, 90, 95, 123, 189, 54, 164, 12, 211, 202]) }, Event { key: EventKey([225, 45, 35, 86, 52, 210, 36]), value: EventValue([61, 212, 185, 12, 211, 205, 214, 19, 195, 177, 156, 238, 188, 21, 122, 26, 93, 142, 9, 234, 182, 147, 117, 151, 9, 38, 89, 234, 195, 114, 11, 102, 112, 189, 216, 155, 144, 41, 114, 170, 208, 170, 127, 174, 186, 253, 209, 168, 101, 25, 22, 183, 87, 197, 122, 46, 28, 22, 135, 137, 189, 32, 174, 168, 19, 194]) }, Event { key: EventKey([163, 23]), value: EventValue([79, 115, 30, 132, 132, 185, 164, 148, 150, 119, 254, 146, 129, 209, 242, 137, 22, 65, 171, 48, 231, 10, 196, 16, 251, 213, 44, 94, 136, 32, 47, 27]) }, Event { key: EventKey([252, 29, 71, 105, 123, 133, 93, 51, 194, 157, 228, 215, 41, 220, 187, 253, 123, 88, 5, 210, 24, 76, 208, 19, 1, 217, 216, 208, 228, 93, 189, 121, 206, 170, 104, 229, 105, 252, 144, 32, 152, 214, 236, 31]), value: EventValue([214, 93, 255, 132, 6, 54, 170, 54, 154, 214, 80, 10, 66, 57, 218, 227, 115, 184, 208, 193, 111, 189, 184, 160, 138, 109, 244, 119, 180, 237, 42, 211, 15, 201, 148, 208, 107]) }], receipt: 3474250988 }, TransactionReceipt { tx_hash: [112, 235, 223, 86, 141, 12, 119, 89, 76, 106, 255, 161, 25, 175, 147, 221, 104, 183, 33, 233, 9, 171, 199, 94, 186, 104, 77, 14, 31, 197, 215, 126], body_to_save: Some([182, 115, 62, 125, 42, 244, 208, 218, 56, 171, 228, 84, 37, 79, 20, 6, 46, 70, 92, 9, 53, 111, 183, 71, 230, 151, 50, 117, 154, 179, 255, 130, 105, 130, 240, 176, 35, 137, 249, 132, 173, 169, 219, 242, 34, 180, 212, 9]), events: [Event { key: EventKey([175, 50, 193, 138, 163, 27, 199, 218, 242, 106, 140, 215, 228, 47, 141, 71, 55, 193, 128, 227, 19, 71, 133, 187, 239, 19, 211]), value: EventValue([217, 229, 34, 141, 202, 132, 234, 206, 37, 93, 145, 52, 166, 168, 11, 58, 40, 53, 253, 94, 135, 54, 71, 175, 246, 24, 112, 8, 130, 186, 159, 17, 174, 130, 62, 196, 229, 56, 166, 96, 197, 64, 161, 21, 139, 55, 46, 116, 45, 111, 20, 49, 164, 183, 153, 198, 37, 83, 245, 73, 69, 87, 188, 225, 82, 79, 239]) }, Event { key: EventKey([181, 234, 189, 183, 1, 207, 172, 132, 93, 120, 72, 134, 233, 64, 92, 157, 242, 68, 0, 211, 53, 225]), value: EventValue([122, 186, 95, 220, 2, 255, 174, 1, 133]) }, Event { key: EventKey([195, 155, 161, 13, 45, 226, 49, 133, 208, 56, 32, 52, 101, 202, 26, 109, 184, 126, 97, 45, 5, 24, 142, 80, 105, 162, 223, 62, 140, 98, 160, 239, 250, 52, 244, 9, 170, 198, 6, 224, 117, 63, 199, 120, 225, 214, 243, 81, 68, 254, 50, 88, 217, 143, 30, 169]), value: EventValue([228, 125, 202, 31, 133, 38, 86, 189, 39, 147, 36, 245, 226, 202, 151, 202, 250, 255, 52, 235, 215, 70, 153, 165, 112, 9]) }], receipt: 2177002042 }], inner: 1848136775 }, BatchReceipt { batch_hash: [120, 191, 74, 118, 51, 132, 71, 9, 66, 198, 135, 151, 126, 33, 244, 5, 69, 42, 94, 57, 24, 159, 108, 48, 105, 235, 174, 56, 74, 34, 169, 200], tx_receipts: [TransactionReceipt { tx_hash: [239, 170, 245, 108, 48, 48, 91, 167, 245, 214, 15, 206, 11, 182, 159, 37, 168, 32, 119, 255, 30, 122, 41, 4, 101, 235, 161, 178, 80, 232, 154, 166], body_to_save: None, events: [Event { key: EventKey([190, 255, 89, 205, 140, 68, 157, 15, 113, 3, 229, 5, 81, 181, 144, 227, 72, 61, 24]), value: EventValue([158, 195, 22, 17, 209, 60, 9, 144, 45, 50, 202, 5, 158, 45, 233, 99, 217, 201, 111, 239, 169, 201, 185, 45, 8, 103, 219, 110, 130, 222, 72, 163, 1, 133, 140, 99, 244, 58, 101, 151, 77, 31, 204, 172, 24, 31, 75, 151, 32, 86, 123, 65, 70, 77, 60, 137, 214, 182, 229, 43, 89, 36, 247, 3, 50, 228, 122, 34, 226, 81, 216, 155, 197, 64, 145, 15, 43, 185, 19, 171, 18, 65, 54, 84, 36, 122, 19, 201, 76, 56, 134, 153, 75, 0, 104]) }, Event { key: EventKey([228, 110, 93, 154]), value: EventValue([249, 176, 152, 225, 220, 96, 198]) }, Event { key: EventKey([252, 18, 91, 112, 105, 191, 107, 71, 232, 43, 160, 198, 86, 16, 207, 106, 4, 61, 249, 78, 158, 208, 213, 216, 182, 117, 204, 194, 36, 112, 59, 163, 44, 54, 253, 72, 79, 47, 122, 45, 141, 23, 56, 35, 96, 1, 240, 229, 0, 133, 178, 162]), value: EventValue([82, 6, 119, 221, 115, 211, 59, 100, 232, 17, 44, 192, 216, 10, 208, 11, 49, 202, 54, 98, 189, 233, 64, 195, 229, 255, 201, 104, 142, 110, 239, 29, 193, 48, 160, 101, 4]) }, Event { key: EventKey([205, 114, 8, 54, 40, 203, 117, 33, 96, 203, 99, 74, 152, 174, 8, 8, 144, 189, 227, 26, 145, 6, 211, 61, 73, 66, 7, 191, 12, 8, 163, 133, 7, 13, 57, 239, 243, 35, 163, 229, 138, 68, 51, 198, 54, 117]), value: EventValue([179, 21, 252, 5, 114, 157, 205]) }, Event { key: EventKey([7, 177, 188, 49, 239, 45, 146, 145, 125, 51, 149, 154, 209, 163, 196, 4, 36, 82, 144, 239, 249, 204, 217, 50, 69, 255, 152, 72, 117, 139, 227, 196, 169, 103, 98, 79, 47, 123, 201, 138, 222, 84, 110, 8, 134, 60, 81, 242, 34, 88, 73, 142, 230, 46, 93, 14, 103, 35, 67, 207, 126, 78, 132, 132, 225, 175, 196, 184, 14, 102, 188, 172, 176, 101, 251, 121, 108, 16, 228, 76, 149, 87, 130, 55, 56, 153, 147, 181, 240, 37, 183, 13, 185, 228, 111, 96, 194, 175]), value: EventValue([82, 107, 37, 76, 241, 129, 247, 95, 132, 227, 159, 186, 178, 58, 11, 88, 92, 176, 89, 230, 49, 95, 125, 62, 66, 147, 230, 215, 193, 135, 180, 194, 60, 222, 39, 253, 55, 91, 179, 157, 115, 71, 230, 213, 136, 186, 178, 213, 208, 233, 156, 148, 196, 163, 135, 169, 64, 148, 37, 203, 245, 169, 174, 236, 139, 59, 143, 247, 163, 101, 78, 117, 192, 111, 147, 119, 60, 79, 101, 215, 23, 8, 232, 4, 79, 250, 168, 98]) }, Event { key: EventKey([9, 180, 40, 100, 44, 134, 142, 23, 141, 19, 118, 33, 169, 219, 153, 131, 2, 89, 107, 34, 129, 112, 140, 205, 110, 99, 61, 73, 78, 11, 71, 216, 139]), value: EventValue([113, 27, 97, 79, 59, 114, 21, 24, 122, 26, 226, 189, 98, 177, 176, 108, 246]) }, Event { key: EventKey([236, 32, 24, 126, 255, 63, 90, 139, 29, 59, 199, 223, 83, 79, 9, 241, 78, 224, 90, 240, 23, 159, 154, 247, 1, 148, 201, 121, 243, 232, 20, 200, 144, 145, 162, 215, 106, 228, 24, 165, 242, 105, 47, 125, 1, 144, 18, 249, 146, 126, 33, 152, 124, 126, 185, 29, 251, 187, 27, 47, 103, 230, 100, 151, 86, 74]), value: EventValue([92, 43, 127, 221, 130, 155, 210, 174, 128, 215, 169, 217, 196, 19, 193, 168, 56, 176, 2, 205]) }, Event { key: EventKey([5, 25, 6, 220, 82, 69, 238, 189, 54, 240, 215, 32, 80, 56, 122, 234, 195, 213, 132, 58, 101, 89, 153, 93, 170, 173, 240, 21, 55, 41, 163, 151, 253, 53, 35, 192, 194, 228, 193, 223, 226, 148, 120, 44, 178, 64, 179, 106, 225, 17, 148, 135, 171, 27, 101]), value: EventValue([103, 68, 23, 54, 246, 154]) }], receipt: 2642095319 }, TransactionReceipt { tx_hash: [172, 94, 193, 44, 26, 174, 88, 140, 179, 156, 224, 66, 252, 152, 20, 203, 6, 91, 62, 100, 72, 155, 173, 224, 138, 160, 142, 215, 174, 30, 139, 41], body_to_save: None, events: [Event { key: EventKey([61, 179, 0, 244, 116, 156, 27, 167, 225, 98, 132, 118, 117, 132, 179, 93, 29, 113, 145, 49, 223, 211, 18, 29, 223, 165, 72, 53, 5, 153, 41, 59, 238, 50, 191, 222, 78, 83, 70, 164, 250, 113, 13, 18, 117, 132, 102, 65, 126, 30, 113, 89, 234, 195, 175, 222, 51, 103, 238, 6, 25, 36, 196, 144, 97, 30, 188, 178, 227, 234, 55, 86, 139, 0, 85, 175, 83, 149, 120, 219, 139, 174, 215, 173, 25, 204]), value: EventValue([131, 99, 100, 170, 86, 142, 196, 96, 109, 145, 84, 65, 78, 61, 180, 154, 103, 88, 111, 62, 224, 232, 120, 9, 82, 215, 27, 73, 53]) }, Event { key: EventKey([235, 69, 221, 243, 229, 220, 169, 45, 238, 81, 11, 227, 240, 115, 206, 63, 142, 72, 120, 149, 46, 73, 234, 223, 169, 12, 100, 243, 192, 85, 7, 87, 28, 125, 176, 101, 148, 221, 176, 222, 83, 192, 129, 182, 230, 187, 121, 197, 125, 132, 1, 22, 228, 166, 46, 86, 228, 193, 47, 109, 91, 74]), value: EventValue([245, 239, 201, 66, 43, 50, 233, 228, 236, 107, 229, 178, 220, 240, 205, 25, 10, 97, 13, 183, 39, 116, 33, 202, 243, 51, 97]) }, Event { key: EventKey([24, 134, 68, 173, 116, 141, 85, 195, 23, 65, 241, 97, 239, 204, 104, 196, 65, 79, 213, 52, 178, 143, 219, 69, 245, 183, 79, 111, 230, 176, 214, 207, 177, 34, 133, 158, 250, 76, 208, 214, 97, 206, 25, 167, 154, 189, 195, 132, 228, 98, 245, 113, 83, 251, 192, 188, 31, 250, 74, 203, 76, 85, 27, 62, 104, 238, 228, 244, 199, 63, 148, 192, 138, 232, 253, 70, 11, 21, 134, 213, 83, 121, 121, 230, 239, 56, 68, 74]), value: EventValue([172, 63, 156, 15, 97, 117, 13, 91, 243, 139, 153, 190, 25, 180, 212, 81, 170, 243, 22, 132, 159, 174, 6, 26, 244, 219, 154, 209, 49, 146, 77, 149, 121, 190, 5, 159, 184, 6, 165, 11, 71, 93, 82, 197, 212, 115, 171, 116, 52, 93, 174, 177, 166, 153, 62, 159, 106, 167, 60, 7, 191, 198, 220, 243, 151, 90, 110, 172, 87, 19, 130, 42, 233, 224, 235, 125, 238, 197, 63, 107]) }, Event { key: EventKey([92, 68, 254, 118, 223, 34, 169, 240, 247, 216, 64, 232, 119, 210, 43, 2, 41, 254, 11, 178, 181, 219, 234, 75, 75, 233, 51, 241, 218, 35, 177, 112, 113, 140, 215, 225, 143, 106, 183, 122, 172, 230, 180, 67]), value: EventValue([105, 116, 123, 220, 214, 246, 27, 113, 223, 82, 41, 134, 84, 179, 171, 222, 189, 25, 159, 166, 160, 135, 99, 146, 25, 72, 134, 96, 238, 185, 40]) }, Event { key: EventKey([82, 56, 198, 235, 239, 152, 185, 148, 152, 232, 199, 223, 132, 70, 233, 214, 215, 96, 214, 162, 19, 220, 185, 88, 111, 130, 232, 105, 122, 53, 155, 19, 16, 224, 155, 227, 184, 189, 167, 239, 95, 127, 253, 225, 25, 69, 194, 188, 155, 10, 154, 107, 151, 65, 248, 153, 199, 177, 201, 201, 56, 198, 246, 93, 85, 21, 231, 99, 192, 181, 49, 124, 221, 85, 149]), value: EventValue([41, 74, 239, 170, 94, 203, 33, 216, 93, 198, 229, 28, 244, 208, 110]) }, Event { key: EventKey([125, 219, 199, 13, 249, 178, 251, 82, 209, 132, 80, 115, 108, 33, 55, 202, 180, 198, 21, 222, 228, 64, 238, 237, 93, 84, 191, 87, 26, 177, 114, 85, 91, 50, 253, 171, 21, 148, 26, 83, 207, 31, 249, 20, 32, 166, 227, 90, 200, 194, 36, 99, 56, 131, 83, 169, 106, 202, 155, 96, 254, 82, 218, 240, 154, 184, 95, 17, 19, 120, 238, 93, 189, 241, 41, 174, 42, 247, 1, 6, 127, 19, 149]), value: EventValue([0, 49, 70, 208, 49, 141, 217, 202, 154, 155, 253, 6, 148, 31, 29, 172, 3, 44, 254, 251, 167, 163, 236, 254, 212, 178, 100, 206, 190, 46, 250, 28, 53, 234, 215, 211, 173, 196, 11, 145, 140, 249, 94, 176, 44, 129, 126, 4, 149, 82, 125, 71, 113, 53, 207, 169, 252, 173, 146, 125, 245, 163, 40, 126, 158, 190, 173, 224, 12, 195, 255, 247, 59]) }, Event { key: EventKey([49, 137, 158, 88, 237, 20, 165, 72, 81, 207, 45, 153, 207, 84, 172, 201, 0, 142, 143, 74, 244, 136, 180, 216, 196, 81, 212, 95, 133, 229, 23, 196, 64, 13, 241, 22, 35, 109, 192, 195]), value: EventValue([149, 253, 40, 51, 229, 127, 248, 235, 48, 127, 229, 180, 37, 66, 239, 161, 164, 218, 3, 191, 11, 119, 52, 124, 223, 184, 14, 54, 137, 103, 131, 244, 250, 83, 163, 163, 48, 203, 132, 187, 184, 83, 112, 122, 204]) }, Event { key: EventKey([78, 160, 211, 235, 31, 181, 181, 165, 6, 153, 120, 198, 253, 152, 130, 134, 42, 90, 99, 18, 62, 8, 83, 10, 158, 180, 234, 172, 211, 98, 241, 190, 223, 156, 232, 187, 146, 62, 140, 166, 138, 241, 192, 112, 130, 28, 150, 163, 158, 10, 79, 113, 161, 46, 88, 100, 177, 173, 118, 189, 1, 36, 124, 185, 217, 23]), value: EventValue([245, 205, 105, 187, 181, 142, 225, 151, 231, 108, 198, 88, 120, 63, 141, 91, 63, 174, 105, 21, 108, 68, 103, 219, 107, 140, 103, 79, 151, 236, 125, 183, 245, 69, 65, 32, 141, 92, 200, 241, 9, 72, 152, 88, 21, 52, 243, 89, 252, 226, 9, 245, 106, 64, 191, 219, 209, 59, 208, 237, 203, 130, 17, 100, 224, 231, 173, 191, 190, 31, 228, 93, 73, 232, 102, 208, 183, 203, 160, 58, 210, 210, 223, 96, 44, 190]) }, Event { key: EventKey([183, 21, 89, 131, 134, 55, 32, 247, 21, 110, 20, 217, 92, 237, 188, 250, 28, 220, 124, 161, 137, 231, 172, 16, 173, 212, 194, 65, 213, 169, 12, 148, 216, 189, 144, 5, 110, 113, 23, 111, 56, 201, 53, 110, 213, 210, 166, 41, 166, 103, 193, 128, 215, 224, 114, 122, 170, 140, 110, 201, 12, 146, 67, 5, 103, 233, 69, 15, 238, 189, 13, 142, 162, 188, 5, 236, 24, 219, 204, 99, 163, 141, 156, 141, 244, 163, 204, 221, 105, 102, 143, 193, 183, 138, 112, 151, 230, 113]), value: EventValue([197, 173, 137, 125, 21, 73, 157, 188, 139, 195, 68, 25, 100, 83, 54, 141, 59, 11, 67, 98, 81, 16, 26, 82, 92, 46, 9, 76, 104, 225, 43, 4, 151, 166, 70, 224, 143, 163, 96, 240, 120, 61, 180, 160, 159, 148, 128, 168, 84, 107, 137, 253, 156, 184, 36, 221, 132, 116, 194, 33, 232, 206, 243, 149, 251, 238, 252, 171, 240, 54, 252, 141, 100, 92, 56, 50, 56, 134, 57, 25, 14, 8, 134, 29, 130, 74, 193, 211, 117, 153, 31, 26, 22, 3, 169]) }], receipt: 1680490638 }, TransactionReceipt { tx_hash: [55, 217, 71, 87, 107, 231, 158, 84, 25, 56, 52, 100, 94, 165, 138, 243, 60, 242, 191, 5, 134, 31, 243, 97, 38, 218, 18, 157, 236, 227, 222, 101], body_to_save: None, events: [Event { key: EventKey([246, 221, 118, 80, 215, 158, 211, 127, 5, 131, 216, 251, 236, 201, 153, 189, 83, 40, 119, 151, 4, 131, 162, 42, 209, 236, 200, 19, 4, 252, 228, 25, 45, 41, 79, 73, 154, 63]), value: EventValue([115, 253, 186, 132, 17, 213, 233, 143, 214, 93]) }, Event { key: EventKey([40, 46, 214, 120, 58, 76, 41, 37, 143, 224, 10, 208, 226, 221, 70, 149, 219, 129, 213, 39, 227, 92, 88]), value: EventValue([90, 30, 40, 182, 209, 46, 43, 231, 233, 29, 193, 69, 21, 172, 90, 210, 100, 219, 212, 109, 130, 254, 128, 17, 209, 204, 123, 6, 50, 124, 4, 156, 228, 104, 135, 59, 90, 3, 123, 240]) }, Event { key: EventKey([80, 142, 117, 60, 203, 9, 161, 236, 88, 6, 103, 35, 236, 11, 156, 212]), value: EventValue([76, 180, 86, 20, 88, 86, 161, 162, 183, 55, 97, 12, 250, 73, 45, 6, 235, 78, 7, 95, 123, 120, 53, 117, 171, 129, 38, 107, 230, 192, 192, 95, 8, 62, 205, 104, 8, 235, 150, 188, 249, 170, 215, 12, 189, 82, 136, 81, 152, 180, 165, 237, 58, 239, 226, 89, 48, 185, 66, 220, 162, 207, 146, 30, 103, 137, 171, 88, 216, 249, 241, 42, 25]) }], receipt: 3154939466 }], inner: 1340737516 }, BatchReceipt { batch_hash: [232, 244, 245, 219, 231, 63, 255, 156, 103, 190, 10, 197, 117, 247, 238, 28, 192, 75, 203, 179, 165, 174, 109, 129, 166, 85, 223, 62, 64, 151, 187, 245], tx_receipts: [TransactionReceipt { tx_hash: [82, 25, 26, 116, 214, 217, 159, 157, 53, 202, 120, 99, 166, 40, 59, 232, 241, 96, 6, 179, 155, 95, 224, 88, 119, 77, 99, 42, 95, 84, 255, 205], body_to_save: None, events: [Event { key: EventKey([1, 221, 177, 40, 213, 47, 200, 106, 139, 42, 64, 143, 215, 123, 82, 72, 253, 131, 96, 62, 162, 203, 240, 15, 255, 186, 86, 117, 204, 164, 77, 247, 50, 69, 194, 201, 162, 107, 160, 44, 4, 121, 101, 87, 99, 185, 36, 223, 151, 150, 168, 111, 78, 94, 203, 101, 180, 215, 74, 89, 198, 204, 237, 170, 134, 218, 214, 122, 95, 185, 11, 107, 7, 138, 223, 238, 175, 72, 229]), value: EventValue([180, 48, 211, 0, 194, 158, 11]) }, Event { key: EventKey([64, 29, 59, 180, 36, 57, 101, 23, 253, 249, 175, 78, 124, 152, 230, 163, 5, 229, 90, 210, 223, 168, 28, 132, 215, 102, 97, 204, 44, 241, 169, 240, 87, 248, 200, 236, 66]), value: EventValue([218, 87, 140, 142, 36, 80, 94, 18, 51, 66, 108, 74, 27, 131, 196, 17, 19, 186, 44, 98, 38, 223]) }, Event { key: EventKey([127, 223, 86, 241, 251, 23, 88, 19, 165, 169, 119, 128, 120, 71, 173, 126, 18, 38, 166, 206, 123, 207, 10, 55, 96, 53, 195, 241, 175, 88, 12, 56, 86, 102, 201, 187, 84, 131, 176, 73, 221, 151, 178, 117, 52, 83, 166, 252, 156, 35, 132, 3, 115, 18, 20, 239, 184, 124, 65, 158, 87, 76, 251, 24, 49]), value: EventValue([14, 167, 44, 36, 229, 86, 66, 241, 196, 72, 238, 76, 57, 73, 53, 28, 80, 192, 201, 163, 177, 9, 236, 180, 24, 143, 67, 196, 141, 181, 131, 59, 208, 145, 228, 55, 15, 5, 210, 29, 227]) }, Event { key: EventKey([178, 119, 90, 214, 116, 204, 132, 101, 238, 113, 147, 191, 194, 63, 220, 106, 76, 251, 182, 133, 179, 159, 45, 142, 240, 37, 43, 240, 205, 57, 59, 77, 181, 108, 159, 244, 158, 30, 83, 28, 162, 69, 187, 89, 137, 58, 56, 49, 130, 106, 64, 178, 127, 89, 210, 86, 39, 167, 170, 39, 159, 89, 109, 246, 83, 70, 59, 2, 94, 178, 91, 148, 147, 37, 5, 171, 58, 99, 16, 197, 181, 63, 126, 80, 15, 217, 157, 123, 10, 54, 127, 116, 139, 142, 210, 241, 222, 85, 249]), value: EventValue([5, 115, 186, 8, 188, 129, 202, 170, 5, 112, 1, 195, 207, 175, 129, 195, 157, 93, 173, 254, 127, 36, 134, 3, 75, 194, 194, 237, 136, 245, 192, 160, 98, 164, 247, 229, 14, 124, 154, 53, 136, 183, 16, 182, 101, 181, 195, 91, 83, 214, 156, 224, 59, 228, 75, 143, 52, 23, 137, 70, 65, 240, 70, 107, 113, 101, 52]) }, Event { key: EventKey([168, 68, 27, 232, 190, 23, 103, 50, 252, 187, 31, 205, 15, 243, 181, 121, 198]), value: EventValue([23, 93, 193, 136, 68, 95, 137, 211, 100, 184, 85, 57, 24, 140, 236, 218, 124, 100, 247, 105, 140, 62, 198, 252, 224, 216, 83, 69, 128, 243, 112, 186, 94, 18, 30, 33, 95, 34, 31, 141, 3, 82, 44, 41, 211, 231, 16, 104, 137, 243, 143, 216, 53, 115, 23, 252, 132, 48, 207, 190, 202, 43, 55, 193, 239, 41, 46, 192, 240, 234, 60, 230, 125, 113, 34, 75, 145, 206, 45, 49, 33, 200, 114, 134, 55, 245, 173, 44, 122, 215, 235, 231, 80, 111, 206, 162, 1]) }], receipt: 1592680631 }], inner: 3570724536 }, BatchReceipt { batch_hash: [40, 40, 0, 138, 37, 231, 10, 4, 170, 73, 115, 128, 223, 138, 45, 134, 194, 244, 52, 87, 117, 23, 54, 10, 13, 205, 94, 207, 145, 255, 3, 156], tx_receipts: [TransactionReceipt { tx_hash: [85, 34, 151, 143, 0, 77, 103, 94, 117, 119, 90, 43, 34, 176, 230, 143, 214, 233, 204, 32, 104, 193, 73, 86, 195, 118, 97, 200, 162, 124, 164, 170], body_to_save: None, events: [Event { key: EventKey([130, 85, 59, 26, 117, 232, 69, 186, 161, 16, 108, 182, 123, 254, 179, 87, 162, 244, 222, 169, 235, 85, 60, 128, 82, 20, 123, 83, 130, 9, 129, 67, 113, 251, 89, 55, 222, 159, 102, 127, 165, 212, 229, 218, 234, 146, 150, 104, 185, 7, 0, 92, 121, 106, 147, 183, 142, 165, 199, 253, 11, 161, 44, 174, 79, 226, 53, 255, 20, 128, 43, 51, 60, 189, 217, 149, 96, 22, 119, 190, 162, 243, 115, 232, 181, 226, 127, 22, 38, 20]), value: EventValue([161, 96, 155, 76, 129, 175, 39, 177, 10, 252, 111, 47, 143, 200, 7, 53, 203, 141, 219, 124, 150, 186, 99, 148, 187, 104, 234, 34, 248, 170, 28, 250, 46, 121, 195, 142, 123, 46]) }, Event { key: EventKey([197, 2, 137, 103, 234, 125, 195, 209, 225, 103, 34, 127, 95, 184, 8, 73, 216, 139, 18, 43, 70]), value: EventValue([25, 167, 19, 229, 111, 24, 193, 227, 97, 105, 218, 208, 92, 167, 172, 81, 130, 134, 192, 226, 107, 240, 189, 83, 212, 139, 252, 191, 41, 119, 87, 227, 23, 160, 222]) }, Event { key: EventKey([217, 229, 147, 226, 12, 54, 34, 201, 136, 153, 218, 122, 155, 120, 250, 126, 7, 103, 94, 208, 89, 39, 119, 39, 126, 120, 53, 193, 208, 79, 30, 63, 20, 44, 193, 167, 175, 101, 169, 108, 220, 75, 39, 247, 247, 220, 150, 55, 236, 253, 88, 15, 195, 176, 228, 131, 71, 40, 41, 37, 50, 65, 227, 52, 6, 126, 1, 172, 211, 191, 12, 222, 9, 181, 128, 32, 149, 211, 83, 175, 0]), value: EventValue([168, 57, 126, 38, 146, 164, 204, 174, 230, 147, 44, 71, 54, 48, 17, 212, 175, 172, 93, 159, 228, 223, 124, 248, 75, 78, 244, 92, 63, 7, 87, 52, 5, 192, 58, 82, 39, 170, 134, 201, 61, 206, 129, 104, 23, 242, 172, 180, 88, 221, 196, 154, 102, 167, 12, 118, 203, 207, 81, 93, 8]) }, Event { key: EventKey([151, 220, 211, 44, 234, 217, 217, 173, 138, 222, 247, 254, 166, 165, 178, 208, 205, 177, 162, 91, 236, 168, 212, 132, 40, 15, 243, 124, 221]), value: EventValue([222, 32, 81, 234, 253, 125, 120, 188, 198, 88, 138, 105, 154, 146, 45, 72, 174]) }, Event { key: EventKey([246, 5, 74, 155, 87, 65, 35, 167, 38, 111, 174, 168, 69, 95, 19, 24, 94, 190, 196, 158, 244, 164, 57, 82, 199, 57, 11, 235, 249, 67, 82, 118, 217, 67, 163, 39, 205, 48, 33, 17, 58, 143, 86, 230, 120]), value: EventValue([20, 112, 42, 67, 118, 174, 195, 70, 79, 100, 32, 174, 125, 234, 16, 65, 238, 172, 183, 72, 112, 159, 248, 56, 161, 203, 200, 188, 32, 242, 74, 245, 47, 67, 247, 82, 70, 244, 197, 182, 158, 47, 85, 144, 187, 3, 17, 72, 136, 101, 151, 227, 100, 193, 77, 238, 175, 27, 81, 95, 101, 149, 80, 126, 160, 25, 36, 107, 144, 47, 92, 43, 254, 212, 9, 87, 164, 137, 72, 13, 45, 93, 115, 183, 69, 40, 223, 228]) }, Event { key: EventKey([117, 121, 90, 43, 55, 164, 133, 233, 190, 230, 172, 108, 249, 245, 36, 155, 5, 175, 214, 204, 56, 0, 34, 9, 117, 82, 206, 216, 223, 226, 32, 52, 241, 53, 218, 114, 104, 184, 109, 16, 251, 71, 84, 208, 176, 200, 216, 30, 239]), value: EventValue([182, 6, 169, 161]) }, Event { key: EventKey([180, 99, 128, 215, 229, 246, 47, 204, 203, 160, 187, 107]), value: EventValue([209, 79, 165, 47, 18, 54, 253, 54, 34, 45, 114, 28, 126, 114, 71, 133, 210, 184, 217, 194, 147, 172, 187, 49, 97, 17, 252, 92, 205, 188, 141, 198, 103, 5, 4, 169]) }, Event { key: EventKey([125, 226, 200, 112, 232, 149, 194, 235, 61, 34, 187, 100]), value: EventValue([177, 71, 214, 128, 1, 194, 234, 163, 183, 165, 191, 245, 20, 162, 53, 22, 108, 225, 152, 63, 97, 180, 157, 145, 62, 123, 146, 165, 76, 22, 153, 187, 184, 182, 141, 166, 217, 244, 139, 198, 59, 132, 52, 203, 250, 150, 118, 182, 42, 241, 148, 230, 153, 133, 130, 43, 122, 95, 98, 222, 54, 70, 61, 245, 148, 19, 151, 20, 241, 1, 82, 75, 140, 89, 23, 172, 137, 166, 139, 75, 1, 16, 236, 94, 115, 66, 230, 116, 160, 18, 173, 225, 34, 19, 15, 192, 10, 122]) }, Event { key: EventKey([172, 115, 229, 229, 57, 56, 241, 46, 50, 235, 155, 217, 98, 239, 171, 45, 21, 119, 200, 125, 132, 181, 249, 53, 215, 27, 200, 59, 243, 149, 223, 82, 233, 212, 86, 147, 254, 5, 42, 18, 68, 177, 14, 239, 175, 64, 195, 47, 231, 76, 106, 169, 246, 222, 16, 85, 89, 233, 92, 174, 243, 51, 185, 172, 138, 170, 56, 205, 140, 139, 162, 153, 12, 16, 61, 183, 43, 69, 255, 248, 151, 200, 221, 150, 90, 236, 163, 9, 132]), value: EventValue([34, 40, 213, 21, 23, 55, 178, 150, 39, 241, 141, 189, 241, 10, 20, 147, 28, 48, 71, 222, 65, 157, 9, 249, 152, 92, 36, 27, 6, 153, 172, 1, 47, 129, 158, 196, 101, 76, 52, 202, 187, 43, 201, 234, 20, 33, 125, 241, 131, 79, 144, 156, 6, 126, 114, 4, 42, 50, 22, 39]) }], receipt: 581917980 }, TransactionReceipt { tx_hash: [214, 254, 216, 112, 13, 249, 18, 133, 183, 236, 80, 50, 135, 218, 230, 155, 175, 199, 166, 223, 179, 35, 54, 222, 152, 41, 138, 126, 21, 190, 141, 121], body_to_save: None, events: [Event { key: EventKey([242, 108, 229, 93, 67, 156, 249, 113, 181, 230]), value: EventValue([165, 71, 150, 40, 143, 192, 197, 210, 88, 78, 49]) }, Event { key: EventKey([55, 211, 10, 60, 206, 14, 76, 213, 133, 228, 133, 41, 18, 72, 58, 89, 163, 153, 7, 60, 154, 67, 22, 26, 103, 241, 115, 92]), value: EventValue([147, 233, 7, 94, 253, 98, 216, 35, 95, 9, 238, 101, 176, 159, 48, 167, 196, 93, 243, 247, 209, 244, 94, 151, 152, 90, 159, 12, 212, 5, 160, 236, 132, 182, 140, 170, 198, 84, 102, 164]) }, Event { key: EventKey([143, 46, 45, 121, 130, 110, 129, 167, 208, 145, 80, 86, 169, 248, 138, 144, 6, 74, 20, 93, 194, 198, 27, 55, 90, 83, 85, 246, 87, 198, 28, 206, 14, 60, 138, 165, 6, 125, 248, 100, 219, 131, 202, 44, 211, 42, 189, 19, 31, 196, 215, 5, 42, 231, 158, 193, 185, 253, 151, 76, 74, 213, 200, 104, 255, 151, 89, 186, 61, 168, 234, 39, 131, 94, 59, 45, 5, 243, 164, 95]), value: EventValue([73, 103, 175, 89, 22, 190, 114, 189, 16, 90, 60, 69, 161, 146, 240, 72, 92, 173, 158, 127, 57, 174, 18, 243, 131, 46, 177]) }, Event { key: EventKey([18, 220, 103, 49, 63, 54, 168, 205, 4]), value: EventValue([32, 208, 163, 250, 219, 129, 199, 147, 61, 126, 170, 115, 141, 40, 172, 206, 234, 249, 100, 127, 63, 104, 221, 40, 212, 93, 204, 27, 95, 187, 172, 192, 120, 153, 113, 51, 193, 178, 67, 247, 224, 82, 125, 238, 80, 105, 164, 41, 242]) }, Event { key: EventKey([156, 173, 227, 142, 170, 72, 23, 38, 208, 68, 31, 161, 164, 186, 246, 0, 168, 128, 114, 166, 210, 171, 74, 118, 223, 137, 124, 241, 100, 40, 199, 91, 70, 165, 133, 33, 221, 105]), value: EventValue([67, 234, 180, 167, 18, 10, 20, 185, 125, 96, 152, 107, 140, 238, 201, 160, 81, 194, 209, 111, 178, 223, 4, 86, 52, 143, 184, 171, 113, 12, 77, 64, 218, 240, 255, 190, 123, 11, 91, 213, 64, 55, 56, 89, 169, 12, 122, 159, 84, 230, 244, 218, 8, 108, 187, 201, 17, 224, 184, 3, 67, 87, 220, 238, 228, 95, 58, 133, 59, 187, 191, 97, 201, 18, 36, 182, 73, 199, 65, 214, 190, 93, 179, 128, 109, 170, 103, 255, 221, 223, 135, 48, 169, 194]) }], receipt: 3293934396 }, TransactionReceipt { tx_hash: [87, 165, 40, 2, 173, 192, 113, 134, 149, 240, 153, 149, 223, 40, 170, 21, 17, 98, 65, 178, 208, 39, 117, 106, 153, 192, 12, 210, 12, 208, 180, 118], body_to_save: None, events: [Event { key: EventKey([110, 245, 109, 118, 9, 198, 252, 254, 70, 179, 215, 9, 102, 36, 160, 213, 57, 212, 48, 81, 51, 73, 104, 43, 5, 28, 41]), value: EventValue([182, 199, 27, 33, 116, 213, 76, 172, 43, 89, 233, 124, 6, 68, 54, 123, 157, 59, 83, 220, 217, 155, 50, 240, 9, 226, 185, 94, 97, 75, 207, 141, 49, 254, 124, 91, 185, 74, 3, 147, 154, 161, 248, 103, 50, 240, 50, 120]) }, Event { key: EventKey([141, 73, 229]), value: EventValue([76, 203, 156, 37, 9, 131, 164, 173, 68, 231, 197, 36, 190, 148, 19, 116, 13, 54, 240, 146, 234, 158, 225, 224, 249, 142, 15, 252, 136, 21, 130, 214, 39, 2, 90, 130, 222, 79, 85, 4, 82, 172, 199, 47, 4, 41, 237, 238, 106, 183, 177, 114, 19, 179, 241, 97, 169, 209, 142, 238, 31, 102, 134, 66, 116, 119, 83, 84, 32, 248, 107, 40, 28, 138, 152, 118, 132, 212, 242, 219, 230, 227, 38, 57, 252, 23, 246, 180, 247, 164, 46]) }, Event { key: EventKey([64, 96, 75, 61, 209, 157, 14, 68, 162, 72, 28, 247, 34, 12, 19, 238, 214, 26, 55, 119, 129, 9, 185, 103, 99, 205, 180, 223, 86, 101, 221, 148, 124, 163, 85, 192, 87, 29, 139, 178, 169, 215, 60, 60, 11, 33, 42, 166, 149, 88, 251, 160, 206, 177, 126, 167, 246, 236, 248, 60, 41, 20, 110, 8, 193, 45, 48, 22, 16, 41, 133, 226, 76, 91, 68, 10, 8, 196, 124, 204, 119, 65, 197, 40, 74, 252, 110]), value: EventValue([171, 140, 156, 19, 133, 35, 189, 86, 139, 175, 116, 106, 251, 227, 96, 149, 94, 221, 138, 193, 54, 175, 252, 149, 63, 128, 66, 233, 167, 226, 227, 155, 70, 151, 32, 210, 248, 188, 193, 87, 115, 209, 208, 153, 194, 96, 145, 176, 38, 91, 77, 51, 223, 237, 138, 146, 20, 39, 151, 187, 231, 61, 160, 164, 216, 189, 217, 33, 230, 87, 164, 29, 25, 99, 54, 152, 160, 21, 159, 215, 213, 189, 112, 105, 124]) }, Event { key: EventKey([167, 14, 63, 128, 159, 162, 73, 30, 118, 169, 105, 103, 213, 59, 93, 7, 74]), value: EventValue([187, 71, 248, 173, 175, 146, 236, 75, 72, 217, 99, 210, 135, 7, 191, 195, 136, 133, 106, 182, 83, 68, 177, 168, 82, 64, 163, 206, 79, 249, 164, 202, 135, 18]) }, Event { key: EventKey([124]), value: EventValue([188, 246, 210, 118, 176, 35, 164, 207, 17, 61, 151, 13, 55, 29, 0, 188, 239, 231, 126, 172, 79, 25, 41, 27, 51, 209, 17, 2, 40, 116, 21, 237, 56, 44, 248, 113, 197, 177, 204, 14, 4, 63, 237, 119, 177, 71, 44, 56, 225, 221, 104, 227, 212, 180, 107, 241, 57, 112, 167, 189, 67, 63, 185, 98, 49, 71, 104]) }, Event { key: EventKey([166, 9, 19, 43, 90, 214, 132, 130, 248, 216, 3, 100, 4, 100, 207, 6, 17, 119, 93, 2, 53, 118, 172, 165, 128, 93, 194, 157]), value: EventValue([185, 184, 124, 242, 111, 116, 83, 189, 57, 121, 39, 175, 57, 251, 147, 247, 18, 100, 254, 101, 230, 203, 143, 227, 17, 63, 107, 42, 255, 241, 21, 190, 246, 29, 31, 199, 88, 64, 3, 229, 204, 92, 75, 220, 168, 5, 41, 69, 90, 151, 108, 250, 151, 72, 36, 1, 230, 194, 224, 40, 16, 193, 90, 75, 62, 200, 247, 102, 172, 163, 1, 72, 105, 91, 228, 204, 78, 1, 83, 228, 91, 141]) }, Event { key: EventKey([217, 5, 166, 34, 56, 235, 139, 139, 65, 98, 7, 31, 136, 125, 229, 23, 98, 55, 221, 151, 151, 184, 9, 98, 40, 67, 83, 231, 150, 216, 71, 21, 123, 68, 253, 195, 177, 171, 149, 36, 186, 255]), value: EventValue([68, 253, 137, 13, 114, 64, 208, 197, 152, 237, 152, 164, 13, 0, 143, 178, 5, 37, 116, 33, 160, 109, 170, 116, 244, 252, 54, 98, 236, 68, 77, 177, 131, 216, 196, 38, 28, 170, 11, 202, 254, 84, 41, 177, 121, 148, 156, 120, 240, 178, 78, 86, 172, 238, 157, 94, 60, 74, 45, 59, 41, 224, 245, 223, 125, 84, 159, 148, 135, 100, 153, 151, 205, 216, 6, 88, 127, 29, 70, 135, 19, 233, 248, 174, 8]) }, Event { key: EventKey([185, 23, 152, 254, 24, 79, 170, 151, 151, 69, 117, 180, 88, 99, 185, 30, 135, 176, 14, 186, 28, 170, 136, 174, 245, 99, 248, 117, 70, 124, 171, 57, 61, 181, 237, 166, 42, 6, 106, 202, 76, 211, 198, 165, 165, 121, 205, 40, 94, 133, 210, 65, 90, 175, 21, 174, 6, 244, 2, 47, 113, 172, 55, 9, 132, 143, 50, 119, 0, 5, 193]), value: EventValue([250, 64, 106, 187, 166, 150, 232, 153, 40, 80, 231, 159, 130, 4, 81, 120, 146, 127, 163, 69, 230, 165, 17, 225, 211, 42, 12, 192, 19, 230, 90, 70, 186, 40, 111, 174, 211, 190, 31, 192, 91, 133, 246, 102, 238, 97, 185, 247, 239, 182, 77, 26, 255, 196, 136, 74, 131, 61, 203, 90, 165, 252, 46, 121, 138, 73, 97, 26, 125, 68, 86, 137, 240, 35, 46, 116, 236, 39, 7, 127, 172, 111, 237, 198, 250, 83, 110, 40]) }], receipt: 2620062128 }, TransactionReceipt { tx_hash: [173, 36, 88, 37, 114, 103, 88, 238, 84, 182, 109, 134, 24, 83, 84, 29, 3, 56, 28, 54, 3, 0, 244, 157, 236, 227, 219, 74, 88, 224, 189, 145], body_to_save: None, events: [Event { key: EventKey([12, 137, 132, 33, 72, 47, 219, 87, 65, 232, 224, 145, 93, 183, 152, 45, 158, 75, 194, 46, 56, 241, 33, 107, 239, 65, 237, 175, 24, 215, 92, 96, 29, 167, 83, 122, 104, 166, 13, 131, 68, 141, 164, 202, 245]), value: EventValue([168, 134, 140, 29, 83, 64, 3, 88, 250, 184, 248, 10, 182, 10, 140, 227, 145, 78, 87, 160, 124, 12, 15, 5, 74, 132, 219, 56, 117, 58, 26, 29, 236, 141, 73, 132, 41, 176, 178, 4, 64, 16, 220, 70, 103, 203, 81, 191, 197, 40, 39, 72, 22, 1, 137, 43, 253, 207, 11, 136, 188, 157, 182, 190, 58, 140, 77, 51, 99, 213, 172]) }], receipt: 1538345207 }, TransactionReceipt { tx_hash: [189, 162, 64, 10, 33, 14, 165, 115, 74, 179, 227, 103, 59, 144, 34, 128, 109, 244, 177, 50, 162, 99, 12, 89, 177, 227, 87, 192, 147, 212, 127, 117], body_to_save: Some([171, 208, 218, 208, 136, 121, 84, 215, 31, 16, 167, 198, 4, 202, 38, 233, 136, 178, 104, 172, 105, 199, 250, 189, 254, 225, 186, 194, 140, 203, 235, 102, 146, 251, 252, 4, 24, 226, 200, 222, 253, 16, 226, 120, 185, 82, 42, 68, 200, 202, 78, 249, 217, 163, 42, 226, 97, 110, 211, 60, 253, 206, 81, 212]), events: [Event { key: EventKey([65, 33, 181, 128, 20, 0, 47, 160, 57, 55, 179, 68, 22, 155, 241, 16, 98, 73, 161, 223, 208, 112, 23, 220, 57, 40, 191, 120, 253, 51, 115, 76, 240, 67, 48, 180, 172, 92, 127, 147, 137, 193, 202, 220, 27, 193, 150, 68, 63, 239, 4, 92, 0, 33, 195, 240, 63, 250, 153, 99, 68, 152, 22, 7, 217, 184, 143, 97, 41, 10, 17, 53, 165, 96, 187, 174, 140, 101, 110, 75, 143, 179, 184, 179, 80, 39, 254, 91, 7, 164, 202]), value: EventValue([164, 37, 208, 81, 85, 20, 122, 154, 185, 88, 83, 117, 109, 41, 127, 226]) }, Event { key: EventKey([208, 241]), value: EventValue([91, 6, 40, 230, 60, 27, 0, 113, 211, 210, 70, 122, 204, 132, 199, 52, 66, 132, 188, 185, 130, 35, 119, 120, 200, 160, 237, 176, 197, 225, 198, 129, 253, 221, 194, 148, 122, 74, 54, 106, 18, 216, 60, 2, 181, 249, 87, 161, 129, 242, 27, 81, 119, 97, 168, 144, 115, 218, 14, 163, 241, 176, 76, 107, 250, 22, 221, 187, 34, 69, 139, 84, 174, 170, 226, 242, 86, 196, 163, 45, 74, 230, 227]) }, Event { key: EventKey([42, 99, 148, 190, 108, 116, 21, 200, 170, 26, 110, 118, 199, 48, 64, 244, 127, 167, 153, 190, 188, 163, 197, 199, 4, 241, 130, 78, 28, 76, 159, 112, 209, 87, 194, 31, 36, 114, 197, 26, 45, 157, 30, 246, 96, 90, 207, 86, 157, 230, 136, 72, 24, 126, 66, 176]), value: EventValue([212, 48, 115, 20, 60, 113]) }], receipt: 663567490 }, TransactionReceipt { tx_hash: [16, 209, 101, 171, 196, 207, 101, 131, 112, 7, 218, 109, 195, 239, 224, 223, 164, 101, 141, 117, 105, 18, 75, 195, 145, 76, 26, 148, 11, 90, 217, 56], body_to_save: None, events: [Event { key: EventKey([137]), value: EventValue([66, 30, 242, 234, 128, 246, 95, 48, 33, 37, 244, 71, 128, 255, 162, 255, 11, 42, 74, 218, 2, 106, 250, 152, 111, 65, 123]) }, Event { key: EventKey([80, 104, 92, 149, 89, 220, 239, 78, 175, 50, 97, 27, 87, 195, 240, 68, 8, 158, 227, 113, 78, 14, 219, 49, 252, 135, 155, 105, 4, 137, 69, 210, 67, 181, 223, 135, 241, 240, 72, 115, 235, 200, 16, 102, 216, 78, 118, 111, 16, 10, 218, 195, 81, 183, 91, 177, 210, 194, 248, 120, 92, 203, 192, 122, 136, 3, 207, 240, 69, 176, 123, 252, 1, 148, 26, 141, 22, 89, 129, 112, 105, 38, 153, 250]), value: EventValue([112, 154, 8, 186, 97, 171, 227, 111, 166, 130, 153, 83, 245, 86, 56, 106, 99, 1, 236, 87, 158, 10, 194, 84, 234, 249, 1, 98, 234, 196, 193, 147, 58, 36, 203, 177, 197, 72, 117, 11, 19, 184, 90, 117, 175, 226, 43, 16, 2, 28, 128, 130, 82, 25, 38]) }, Event { key: EventKey([10, 184, 24, 251, 233, 178, 58, 18, 16, 46, 26, 118, 69, 236, 35, 162, 62, 58, 102, 82, 26, 163, 115, 252, 160, 224, 82, 9, 103, 67, 123, 100, 218, 11, 183, 12, 194, 163, 86, 1, 120, 207, 113, 167, 22, 227, 170, 29, 83, 18, 108, 106, 148, 206, 190, 20, 197, 82, 142, 209, 21, 173, 91, 235, 245, 223, 113, 41, 40, 178]), value: EventValue([52, 139, 201, 22, 226, 113, 168, 237, 255, 255, 218, 78, 236, 228, 168, 65, 0, 42, 215, 110, 243, 24, 232, 149, 9, 124, 58, 221, 106, 235, 178, 64, 200, 239, 67, 253, 113, 112, 197, 120, 253, 205, 57, 223, 26, 169, 62]) }, Event { key: EventKey([156, 37, 119, 125, 174, 87, 40, 116, 232, 80, 97, 112, 17, 206, 152, 88, 47, 64, 71, 190, 85, 239, 222, 11, 99, 30, 178, 87, 10, 104, 162, 197, 128, 104, 168, 69, 119, 212, 174, 12, 238, 72, 176, 120, 225, 51, 77]), value: EventValue([28, 96, 179, 151, 219, 67, 33, 31, 166, 14, 212, 71, 149, 10, 66, 56, 196, 67, 187, 162, 214, 85, 220, 252, 59, 104, 181, 63, 58, 211, 211, 252, 248, 85, 108, 91, 30, 55, 158, 33, 237, 16, 1, 2, 147, 131, 156, 65, 176, 84, 113, 119, 201, 136, 42, 160, 99, 160, 184, 129]) }, Event { key: EventKey([237, 211, 74, 196, 24, 131, 188, 240, 206, 115, 250, 202, 0, 42, 210, 80, 144, 141, 90, 81, 170, 196, 191, 64, 46, 62, 169, 36, 147, 235, 104, 45, 0, 130, 143, 13, 93, 193, 59, 237, 2, 67, 140, 168, 3, 84, 203, 69, 232, 254, 183, 99, 210, 14, 177, 130, 191, 222, 156, 218, 61, 55, 142, 52, 192, 2, 96, 161, 152, 214, 88, 168, 103, 44, 220, 37, 153, 46, 232, 149, 158]), value: EventValue([168, 82, 102, 101, 43, 212, 128, 67, 175, 203, 56, 181, 64, 32, 55, 128, 14, 249, 225, 45, 6, 177, 181, 184, 196, 28, 230, 125, 82, 49, 244, 79, 209, 92, 141, 162, 200, 58, 103, 245, 37, 252, 169, 249, 114, 238, 52, 226, 76, 216, 68, 228, 172, 175, 53, 48, 245, 20, 118, 117, 172, 131, 136, 139]) }, Event { key: EventKey([202, 37, 71, 61, 166, 71, 43, 9, 201, 40, 59, 165, 203, 254, 242, 138, 26, 29, 185, 190, 146, 165, 149, 35, 148, 16, 179, 99, 221, 59, 52, 48, 226, 0, 229, 45, 73, 236, 93, 202, 14, 49, 159, 106, 127, 58, 195, 199, 188, 227, 96, 9, 119, 214, 178, 227]), value: EventValue([199, 164, 97, 44, 17, 161, 119, 110, 180, 216, 43, 95, 227, 177, 173, 124, 116, 193, 49, 133, 5, 92, 36, 246, 53, 141, 26, 38, 1, 181, 185, 108, 91, 72, 252, 82, 28, 111, 172, 228, 103, 128, 152, 126, 125, 177, 17, 54, 124, 210, 234, 215, 41, 182, 235, 86, 233, 85, 200, 165, 240, 78, 232, 175, 184, 184]) }, Event { key: EventKey([169, 133, 21, 71, 108, 38, 103, 215, 194, 86, 206, 128, 106, 180, 89, 178]), value: EventValue([121, 118, 195, 71, 118, 159, 162, 231, 187, 202, 168, 128, 24, 140, 191, 83, 12, 23, 135, 241, 209, 115, 247, 187, 221, 150, 166, 229, 151, 198, 24, 61, 37, 236, 124, 75, 2, 95, 140, 110, 143, 88, 81, 81, 160, 246, 230, 201, 102, 114, 233, 28, 222, 43, 3, 142, 12]) }], receipt: 551730097 }, TransactionReceipt { tx_hash: [46, 162, 117, 38, 42, 247, 238, 228, 183, 144, 208, 111, 129, 184, 165, 44, 3, 62, 148, 140, 88, 3, 17, 14, 51, 113, 214, 176, 219, 10, 253, 195], body_to_save: Some([55, 157, 86, 3, 97, 173, 204, 82, 65, 155, 185, 205, 167, 88, 17, 179, 233, 183, 25, 247, 230, 32, 87, 37, 7, 36, 89, 145, 79, 245, 48, 241, 2, 200, 80, 183, 10, 76, 18, 95, 166, 64, 173, 35, 148, 195, 255, 72, 15, 184, 121, 14, 25, 203, 239, 217, 75, 190, 187, 219, 174, 8, 154, 138, 68, 75, 169, 111, 132, 136, 31, 22, 241, 68, 64, 84, 81, 217, 130, 165, 242, 224, 248, 203, 55, 28, 255, 37, 189, 38, 221]), events: [], receipt: 624686245 }], inner: 796010417 }, BatchReceipt { batch_hash: [120, 208, 25, 137, 21, 63, 235, 144, 252, 174, 127, 170, 85, 103, 78, 74, 120, 211, 11, 34, 247, 97, 24, 239, 247, 248, 233, 45, 64, 249, 140, 253], tx_receipts: [TransactionReceipt { tx_hash: [66, 165, 96, 173, 13, 114, 149, 250, 168, 47, 171, 193, 218, 3, 25, 163, 182, 215, 164, 128, 158, 183, 186, 203, 16, 168, 202, 87, 95, 190, 108, 170], body_to_save: None, events: [Event { key: EventKey([41, 249, 17, 216, 28, 108, 162, 86, 77, 173, 214, 238, 168, 44, 32, 85, 66, 199, 73, 110, 157, 24, 86, 237, 243, 128, 64, 26, 50, 153, 112, 190, 105, 125, 88, 30, 118, 180, 69, 19, 31, 176, 16, 132, 55, 47, 52, 211, 40, 188, 237, 37, 119, 80, 198, 237, 183, 113, 32, 33, 181, 3, 37, 26, 181, 224]), value: EventValue([58, 182, 129, 92, 115, 122, 68, 184, 228, 118, 90, 141, 189, 174, 11, 165, 135, 24, 14, 196, 199, 31, 208, 212, 214, 68, 222, 20, 120, 94, 116, 68, 117, 152, 38, 11, 21, 209, 232, 156, 66, 9, 28, 22, 85, 229]) }, Event { key: EventKey([242, 94, 115, 248, 206, 176, 223, 169, 161, 240, 97, 102, 45, 28, 94, 115, 32, 50, 87, 186, 231, 228, 207, 217, 30, 87, 211, 162, 22, 38, 219, 44, 58, 119, 140, 25, 244, 173, 178, 101, 198, 141, 55, 170, 25, 95, 189, 220, 64, 134, 254]), value: EventValue([42, 146, 106, 139, 162, 108, 41, 166, 247, 78, 246, 69, 47, 198, 23, 47, 177, 108, 25, 165, 100, 202, 242, 63, 254, 49, 35, 76, 70, 151, 177, 61, 82, 118, 28, 173, 3, 66, 147, 249, 165, 106, 131, 74, 55, 151, 62]) }, Event { key: EventKey([46, 78, 83, 5, 61, 243, 236, 180, 127, 70, 10, 4, 143, 191, 184, 27, 255, 121, 30, 146, 112, 52, 37, 253, 249, 94, 251, 255, 164, 223, 113, 102, 232, 4, 217, 93, 161, 90, 248, 70, 105, 74, 166, 38, 255, 169, 234, 209, 51, 80, 11, 232, 203, 29, 226, 92, 17, 206, 144, 165, 183, 253, 185, 47, 223, 255, 16, 161, 197, 156, 121, 130, 94, 64, 245, 149, 11, 63, 68, 35, 149, 81, 148, 158, 116, 244, 194, 58, 64, 237, 224, 170, 147]), value: EventValue([181, 157, 64, 5, 171, 32, 208, 177, 230, 34, 225]) }, Event { key: EventKey([207, 98, 45, 4, 55, 41, 26, 90, 172, 59, 141, 35, 8, 234, 115, 69, 242, 95, 212, 126, 144, 46, 83, 89, 18, 86, 220, 209, 125, 117, 29, 219, 200, 225, 230, 134, 56, 55, 112, 229, 253, 123, 25, 115, 181, 7, 184, 87, 108, 175, 73, 187, 125, 101, 119, 135, 17, 204]), value: EventValue([2, 102, 138, 157, 110, 77, 78, 74, 115, 251, 28, 174, 206, 139, 144, 34, 47, 88, 72, 79, 5, 112, 178, 201, 33, 186, 95, 18, 192, 236, 218, 158, 132, 32, 113, 13, 157, 29, 239, 139, 181, 95, 194, 188, 12, 230, 51, 236, 25, 125, 81, 166, 33, 75, 135, 139, 83, 217, 173, 144, 90, 144, 66, 168, 107, 108, 61, 138, 209, 136, 250, 216, 128, 29, 104, 179, 139, 97, 96, 241, 175]) }, Event { key: EventKey([236, 17, 0, 205, 237, 202, 17, 12, 247, 62, 7, 150, 113, 127, 240, 146, 48, 45, 64, 60, 216, 243, 106, 79, 73, 92, 64, 157, 175, 95, 105, 141, 218, 180, 71, 34, 79, 159, 148, 34, 100, 211, 29, 241, 198, 62, 61, 30, 68, 74, 50, 216, 147, 118, 159, 185, 46]), value: EventValue([13, 195, 49, 187, 21, 224, 92, 11, 37, 169, 123, 36, 47, 126, 117, 52, 217, 191, 244, 31, 71, 124, 124, 54, 205, 85, 255, 218, 251, 90, 209, 20, 60, 241, 216, 199]) }], receipt: 3265736582 }, TransactionReceipt { tx_hash: [121, 37, 72, 40, 126, 192, 114, 19, 99, 27, 96, 18, 124, 53, 38, 39, 125, 164, 63, 250, 235, 36, 233, 61, 5, 19, 149, 236, 223, 145, 147, 89], body_to_save: Some([152, 161, 164, 223, 142, 38, 211, 44, 70, 216, 32, 89, 92, 14, 114, 58, 77, 198, 221, 139, 74, 74, 198, 184, 68, 207, 211, 220, 243, 178, 234, 15, 152, 82, 65, 116, 209, 225, 111, 64, 93, 239, 64, 90, 253, 149, 183, 199, 113, 186, 222, 190, 204, 39, 37, 167, 181]), events: [Event { key: EventKey([1, 214, 49, 25, 243, 12, 152, 170, 55, 125, 46, 73, 134, 116, 71, 104, 4, 95, 168, 197, 147, 226, 56, 238, 45, 112, 158, 162, 152, 237, 97, 35, 135, 224, 175, 59, 153, 27, 94, 54, 152, 157, 218, 135, 121, 58, 6, 155, 21, 154, 86]), value: EventValue([12, 136, 70, 175, 131, 117, 230, 11, 185, 101, 254, 147, 75, 211, 91, 221, 209, 34, 110, 178, 66, 24, 84, 247, 231, 178, 252, 254, 158, 215, 61, 139, 139, 121, 63, 141, 64, 73, 204, 48, 37, 160, 129, 1, 9, 4, 215, 146, 38, 96, 110, 11, 68]) }, Event { key: EventKey([198, 237, 25, 28, 229, 99, 173, 151, 34, 129, 28, 92]), value: EventValue([103, 121]) }, Event { key: EventKey([48, 224, 94, 37, 99, 237, 197, 143, 211, 187, 48, 116]), value: EventValue([22, 239, 153, 148, 161, 230, 219, 194, 166, 193, 169, 94, 170, 237, 22, 54, 106, 236, 199, 1, 111, 220, 60, 183, 102, 146, 156, 82, 105, 96, 94, 131, 236, 222, 32, 174, 48, 243, 176, 199, 173, 60, 243, 182, 102, 52, 101, 176, 211, 242, 57, 234, 195, 209, 232, 224, 173, 220, 194, 80, 189, 198, 6, 69, 203, 212, 141, 80, 241, 72, 41, 8, 229, 63, 140, 224, 185, 82, 54, 38, 39, 104, 75]) }, Event { key: EventKey([84, 150, 245, 17, 154, 81, 52, 41, 54, 52, 179, 219, 201, 245, 238, 30, 18, 206, 178, 102, 38, 0, 157, 125, 53, 233, 229, 238, 214, 16, 75, 242, 160, 65, 137, 207, 112, 255, 104, 104, 184, 175, 223, 145, 189, 173, 57, 74, 115, 13, 186, 188, 178, 247, 60, 44, 100, 210, 162, 103, 159, 32, 107, 128, 143, 123, 66, 116, 177, 5]), value: EventValue([165, 30, 234, 38, 126, 64, 150, 179, 3, 162, 168, 139, 161, 193, 116, 50, 160, 40, 232, 8, 66, 237, 70, 107, 22, 163, 210, 210, 7, 135, 5, 136, 183, 17, 4, 212, 128, 9, 221, 121, 212, 123, 172, 198, 61, 206, 151, 175, 97, 48, 136, 94, 122, 185, 155, 41, 86, 151, 140, 215, 255, 1, 30, 191, 42, 184, 248, 34, 217, 133, 173]) }, Event { key: EventKey([213, 207, 132, 248, 149, 28, 122, 194, 216, 12, 46, 248, 186, 217, 155, 138, 252, 208, 47, 245, 51, 26, 229, 16, 167, 86, 15, 96, 100, 6, 60, 34, 106, 76, 245, 117, 222, 120, 3, 227, 40, 186, 75, 47, 187, 161, 102, 60, 248, 186, 130, 137, 39, 149, 40, 138, 71, 56, 31, 51, 242]), value: EventValue([249, 75, 153, 122, 1, 95, 88, 243, 183, 0, 80, 146, 153, 172, 223, 96, 248, 225, 40, 35, 45, 10, 74, 252, 110, 103, 154, 120, 234, 133, 121, 146, 230, 26, 0, 45, 38, 191, 199, 102, 178, 63, 185, 228, 208, 11, 29, 138, 168, 7, 85, 184, 118, 69, 125, 27, 115, 49, 115, 119, 134, 143, 95, 102, 137, 170, 82, 48, 1, 234, 178, 160]) }, Event { key: EventKey([148, 219, 90, 82, 178, 135, 69, 21, 18, 9, 71, 74, 234, 119, 72, 253, 112, 186, 73, 178, 227, 95, 18, 253, 242, 160, 87, 228, 236, 47, 178, 239, 22, 47, 248, 150, 224, 108, 233, 254, 203, 47, 99, 171, 240, 198, 91, 188, 180, 138, 88, 57, 106, 152, 157, 18, 245, 48, 99, 144, 226, 212, 116, 120, 27, 204, 29, 78, 249, 204, 10, 193, 210, 232, 28, 32, 19, 54, 203, 28, 97]), value: EventValue([193, 175, 102, 11, 106, 130, 149, 211, 228, 213, 188, 69, 218, 187, 239, 134, 255, 49, 40, 206, 116, 145, 157, 114, 2, 92, 189, 60, 176, 87, 70, 115, 185, 88, 68, 112, 195, 123, 149, 101, 78, 180, 250, 6, 147, 209, 202, 207, 102, 41, 44, 190, 249, 78, 48, 180, 163, 177, 90, 131, 204, 84, 126, 37, 113, 104, 180, 55, 192, 4, 174, 168, 158, 4, 216, 34, 83, 145, 107, 160, 100, 152, 29, 49, 57, 197, 220, 21, 219, 92, 189, 252, 244, 177, 143, 181, 234]) }], receipt: 2077076589 }, TransactionReceipt { tx_hash: [114, 15, 250, 112, 59, 59, 2, 178, 96, 7, 116, 44, 252, 136, 88, 52, 20, 173, 162, 179, 187, 173, 23, 144, 170, 165, 187, 39, 80, 19, 3, 50], body_to_save: Some([165, 100, 246, 62, 102, 165, 42, 23, 33, 47, 31, 194, 64, 210, 31, 115, 117, 223, 13, 76, 207, 175, 93, 24, 209, 200, 89, 221, 172, 65, 50, 204, 202, 89, 71, 50, 82, 161, 106, 211, 66, 83, 127, 111, 49, 108, 195, 188, 133, 20, 238, 210, 51, 19, 33, 186, 42, 148, 151, 171, 183, 163, 33, 37, 125, 17, 224, 228, 41, 247, 14, 102, 100, 117, 173, 187, 71, 217, 178, 140, 251, 149, 157, 145, 160, 183, 120, 178, 231, 10, 188, 82, 219, 76, 62, 219, 197, 218, 157]), events: [Event { key: EventKey([99, 35, 65, 18, 14, 168, 64, 26, 190, 9, 43, 5, 184, 18, 139, 47, 73, 195, 144, 172, 213, 77, 34, 42, 186, 47, 18, 186, 47, 122, 248, 50, 171, 183, 233, 223, 189, 103, 145, 239, 234, 201, 222, 34, 64, 194, 0, 90, 218, 28, 104, 85, 175, 153, 247, 119, 31, 250, 145, 85, 44, 71, 26, 23, 118, 239, 28, 98, 71, 218, 126, 108, 230, 24, 153, 122, 21, 85, 118, 211]), value: EventValue([98, 254, 251, 66, 242, 63, 207, 67, 164, 118, 172, 24, 132, 134, 53, 76, 126, 20, 89, 48]) }, Event { key: EventKey([105, 176, 45, 121, 215, 25, 243, 208, 162, 70, 68, 235, 38, 215, 101, 69, 208, 21, 236, 173, 28, 55, 151, 176, 76, 226, 200, 48, 122, 195, 177, 153, 150, 119, 30, 35, 224, 152, 144, 7, 196, 207, 50, 173, 250, 213, 70, 93, 62, 95, 145, 184, 129, 4, 98, 47, 24]), value: EventValue([217, 206, 165, 113, 191, 143, 207, 1, 123, 178, 76, 61, 35, 240, 196, 231, 182, 30, 187, 177, 110, 195, 51, 71, 174, 114, 167, 193, 114, 154, 38, 171, 152, 12, 122, 156, 54, 14, 147, 109, 173, 33, 91, 38, 64, 180, 185, 26, 22, 57, 32, 79, 170, 37, 184, 102, 37, 16, 155, 233, 106, 155, 47, 158, 251]) }, Event { key: EventKey([99, 232, 174, 130, 252, 2, 6, 89, 54, 69, 73, 243, 188, 122, 90, 74, 83, 208, 9, 14, 187, 115, 47, 108, 171, 26, 131, 89, 197, 88, 15, 72, 22, 100, 227, 31, 63, 216, 59, 72, 97, 247, 5, 106, 61, 145, 159, 253, 166, 192, 227, 8, 10, 74, 82, 110, 65, 74, 177, 230, 103, 70, 197, 10, 43, 76, 29, 236, 16, 232, 100, 57, 252, 48, 25, 127, 254, 60, 174, 129, 22]), value: EventValue([195, 137, 84, 38, 231, 148, 170, 152, 242, 27, 205, 74, 29, 66, 91, 150, 141, 64, 150, 186, 151, 45, 41, 253, 159, 57, 38, 28, 193, 35, 101, 68, 26, 117, 238, 116, 40, 18, 67, 252, 124, 106, 137, 207, 205, 17, 112, 244, 53, 241, 118, 195, 156, 80, 244, 0]) }, Event { key: EventKey([153, 122, 148, 164, 143, 121, 3, 1, 94, 101, 155, 240, 76, 255, 169, 216, 129, 143, 22, 19, 54, 73, 178, 31, 43, 17, 43, 22, 209, 96, 114, 99, 29, 47, 252, 54, 6, 138, 59, 136, 167, 63, 241, 168, 160, 23, 168, 227, 167, 103, 84, 70, 251]), value: EventValue([135, 25, 20, 194, 92, 172, 56, 233, 147, 115, 106, 104, 6, 124, 90, 131, 127, 74, 202, 149, 97, 56, 151, 195, 27, 159, 194, 132, 189, 254, 104, 0, 218, 193, 109, 209, 75, 232, 161, 216, 124, 198, 142, 109, 37, 108, 232, 8, 10, 58, 32, 9, 88, 223, 97, 132, 77, 12, 169, 123, 143, 182, 210, 227, 17]) }], receipt: 2479656997 }, TransactionReceipt { tx_hash: [186, 108, 14, 193, 27, 121, 166, 89, 35, 147, 30, 110, 225, 99, 98, 212, 12, 191, 54, 197, 37, 109, 169, 105, 126, 155, 130, 26, 177, 218, 161, 162], body_to_save: None, events: [Event { key: EventKey([162, 208, 101, 249, 253, 171, 78, 46, 218, 12, 193, 99, 13, 155, 229, 101, 3, 14, 201, 161, 40, 27, 62, 189, 47, 45, 93, 72, 245, 202, 46, 129, 149, 81, 122, 83, 233, 98, 123, 208, 2, 147, 39, 220, 146, 171, 66]), value: EventValue([174, 116, 128, 202, 155, 160, 175, 56, 148, 245, 223, 95, 195, 46, 87, 213, 94, 221, 97, 131, 22, 65, 178, 233, 135, 198, 151, 118, 54, 94, 81, 25, 34, 185, 11, 84, 220, 85, 109, 5, 251, 72, 83, 221, 248, 28, 141, 21, 7, 14, 40, 215, 52, 94, 190, 36, 154, 29, 157, 85, 193, 116, 203, 51, 146, 213, 53, 10, 151, 146, 158, 199, 218, 18, 36, 224, 201, 135, 12, 253, 26, 34, 25, 234, 142, 28, 150, 74, 76]) }, Event { key: EventKey([224, 123, 43, 245, 179, 11, 244, 194, 47, 135, 143, 141, 93, 57, 162, 148, 75, 81, 120, 101, 51, 213, 54, 83, 224, 20, 90, 70, 63, 105, 159, 212, 249, 95, 212, 8, 148, 29, 243, 92, 84, 42, 21, 161, 198, 189, 63, 217, 2, 147, 176, 183, 198, 84, 33, 6, 36, 125, 136, 215, 117, 129, 50, 35, 24, 95, 140, 216, 218, 173, 172, 120, 62, 67, 21, 76, 216, 28, 171, 244, 87, 97, 61, 182, 232, 87, 27, 239, 104, 57, 229, 255, 122, 211]), value: EventValue([60, 197, 113, 109, 141, 228, 54, 207, 160, 42, 63, 8, 199, 188, 69, 188, 85, 181, 164, 251, 56, 201, 12, 135, 196, 35, 26, 219, 84, 65, 1, 31, 29, 251, 119, 13, 144, 51, 167, 85, 18, 19, 89, 206, 203, 245, 187, 89, 71, 157, 138, 4, 168, 124, 22, 87, 28, 98, 50, 241, 211, 76, 89, 43, 254, 245, 225, 83, 153, 57, 192, 192, 118, 207, 239, 19, 218, 193, 19, 162, 222, 150, 70, 99, 14, 13, 215, 4]) }], receipt: 1002812794 }], inner: 214826781 }, BatchReceipt { batch_hash: [0, 182, 240, 59, 171, 169, 38, 131, 9, 159, 78, 183, 76, 118, 63, 253, 208, 38, 213, 107, 150, 4, 215, 215, 112, 95, 232, 0, 124, 38, 117, 137], tx_receipts: [TransactionReceipt { tx_hash: [155, 250, 39, 149, 129, 190, 101, 169, 204, 249, 193, 145, 251, 21, 139, 195, 182, 245, 234, 141, 177, 191, 193, 179, 0, 239, 138, 217, 109, 186, 37, 126], body_to_save: Some([132, 203, 67, 166, 19, 243, 59, 151, 52, 155, 20, 51, 65, 166, 66, 78, 24, 231, 141, 154, 228, 98]), events: [Event { key: EventKey([243, 166, 175, 16, 238, 11, 209, 214, 159, 135, 91, 149, 45, 39, 25, 222, 195, 109, 87, 215, 252, 101, 44, 133, 197, 226, 127, 58, 47, 51, 154]), value: EventValue([210, 191, 5, 49, 219, 230, 159, 143, 204, 13, 181, 50, 222, 238, 32, 125, 101, 34, 185, 94, 215, 102, 31, 172, 134, 237, 213, 235, 239, 79, 163, 127, 23, 19, 11, 195, 190, 184, 248, 224, 118, 201, 86, 173, 139, 204, 174, 217, 154, 13, 62, 35, 32, 158, 27, 233, 129, 215, 159, 246, 225, 38, 193, 65, 30, 229, 9, 167, 103, 34, 46, 112]) }, Event { key: EventKey([56, 88, 44, 182, 135]), value: EventValue([252, 253, 6, 41, 97, 92, 81, 29, 25, 25, 126, 3, 197, 105, 35, 9, 214, 199, 34, 210, 155, 81, 136, 67, 54, 230, 139, 3, 70, 220, 62, 238, 42, 205, 0, 180, 122, 145, 81, 154, 225, 120, 115, 80, 185, 253, 139, 79, 107, 235, 99, 183, 122, 27, 138, 6, 75, 195, 22, 235, 67, 109, 192, 54, 119, 149, 180, 215, 66, 177, 220, 144, 47, 144, 3, 50, 204, 142, 13, 197, 42, 75]) }, Event { key: EventKey([157, 244]), value: EventValue([167, 167, 140, 169, 215, 164, 229, 160, 108, 89, 118, 173, 96, 249, 62, 163, 177, 16, 38, 99, 153, 66, 210, 76, 52, 40, 156, 218, 43, 23, 68, 18, 53, 56, 201, 165, 191, 12, 245, 252, 23, 158]) }, Event { key: EventKey([112, 247, 70, 67, 89, 39, 225, 106]), value: EventValue([129, 60, 20, 94, 27, 175, 59, 255, 108, 154, 194, 141, 127, 230, 181, 90, 255, 17, 126, 136, 184, 39, 51, 184, 171, 171, 225, 252, 14, 0, 214, 99, 154, 40, 225, 92, 209, 53, 175, 250, 76, 92, 29, 237, 224, 12, 92, 65, 41, 1, 3, 241, 100, 181, 223, 100, 245, 149, 30, 79, 72, 223, 27, 21, 115, 167, 201, 252]) }, Event { key: EventKey([131, 190, 233, 166, 100, 199, 102, 109, 67, 221, 134, 87, 231, 223, 253, 209, 103, 82, 242, 247, 181, 99, 148, 30, 240, 2, 129, 198, 200, 26, 212, 200, 233, 164, 187, 58, 22, 42, 204, 37, 6, 190, 240, 111, 144, 225, 162, 10, 63, 192, 54, 144, 156, 93, 33, 93, 198, 217, 49, 26, 91, 152, 28, 159]), value: EventValue([29, 86, 207, 162, 75, 14, 222, 139, 206, 98, 96, 131]) }, Event { key: EventKey([54, 38, 129, 34, 168, 45, 34, 159, 213, 66, 214, 93, 164, 97, 104, 31, 97, 246, 204, 119, 200, 220, 44, 147, 115, 112, 107, 45, 136, 78, 232, 164, 218, 10, 149, 219, 17, 28, 155, 138, 67, 59, 242, 69, 119, 2, 221, 254, 142, 130, 19, 167, 115, 166, 38, 212, 50, 166, 169]), value: EventValue([11, 255, 68, 132, 40, 164, 131, 179, 152, 208, 186, 206, 134, 202, 149, 24, 235, 96, 81, 112, 68, 130, 43, 137, 170, 152, 57, 99, 238, 196, 110, 110, 3, 164, 75, 160, 213, 96, 121, 232, 150, 37, 160, 129, 237, 139]) }, Event { key: EventKey([176, 253, 174, 63, 170, 87, 167, 145, 16, 87, 113, 255, 19, 64, 223, 160, 23, 228, 228, 103, 14, 97, 134, 49, 241, 68, 33, 237, 48, 174, 129, 148, 212, 159, 157, 135, 135, 153, 84, 40, 174, 63, 103, 100, 70, 110, 187, 31, 241, 66, 214]), value: EventValue([183, 24, 33, 161, 215, 158, 120, 185, 89, 21, 169, 0, 106, 103, 4, 181, 67, 23, 141, 59, 71, 164, 86, 209, 221, 208, 86, 192, 40, 82, 104, 98, 226, 220, 176, 61, 131, 96, 220, 134, 232, 222, 40, 17, 65, 15, 36, 191, 99, 182, 124, 142, 31, 190, 149, 17, 45, 78, 1, 161, 131, 12, 114, 57, 51, 115, 143, 95, 92, 173, 210, 74, 106, 100, 222]) }], receipt: 2316255648 }, TransactionReceipt { tx_hash: [36, 9, 46, 31, 239, 252, 221, 197, 168, 130, 233, 122, 224, 168, 215, 121, 160, 120, 61, 173, 129, 168, 241, 100, 116, 248, 199, 166, 29, 16, 154, 41], body_to_save: None, events: [Event { key: EventKey([146, 143, 179, 77, 215, 246, 194, 197, 182, 181, 58, 150, 179, 108, 33, 184, 79, 89, 66, 236, 151, 191, 113, 110, 11, 179, 146, 18, 189, 33, 85, 5, 193, 254, 187, 217, 223, 43, 13, 160, 154, 157, 75, 86, 161, 42, 13, 122, 172, 213, 34, 235, 53, 209, 4, 93, 110, 96]), value: EventValue([188, 102, 48, 81, 203, 247, 178, 33, 218, 35, 43, 237, 54, 86, 34, 8, 160, 72, 207, 85, 251, 114, 112, 242, 107, 57, 255, 213, 86, 222, 144, 181, 84, 166, 245, 207, 91, 135, 212, 5, 97, 52, 135, 92, 54, 53, 126, 123, 37, 64, 163, 26, 221, 228, 132, 5, 116, 245, 144, 47, 55, 12, 74, 34, 69, 225, 19, 171, 5, 188]) }, Event { key: EventKey([154, 67, 131, 154, 151, 86, 111, 183, 242, 42, 31, 171, 250, 29, 60, 95, 222, 164, 122, 119, 244, 217, 39, 192, 205, 228, 32]), value: EventValue([91, 222, 238, 206, 154, 149, 201, 41, 158]) }, Event { key: EventKey([86, 184, 188, 35, 37, 103, 86, 127, 230, 219, 107, 210, 252, 57, 119, 189, 20, 249, 1, 99, 79, 12, 3, 127, 237, 62, 26, 48, 31, 142, 250, 154, 40, 251, 79, 71, 65, 221, 152, 33, 123, 161, 139, 4]), value: EventValue([26, 140, 160, 255, 213, 240, 135, 152, 4, 52, 251, 102, 250, 108, 72, 61, 249, 50]) }], receipt: 2070860982 }], inner: 850237920 }, BatchReceipt { batch_hash: [138, 108, 105, 139, 246, 5, 73, 119, 210, 184, 164, 101, 123, 147, 131, 167, 17, 48, 4, 207, 5, 249, 194, 151, 70, 87, 83, 90, 178, 140, 56, 190], tx_receipts: [TransactionReceipt { tx_hash: [180, 67, 90, 154, 243, 44, 151, 32, 135, 132, 43, 245, 133, 225, 83, 213, 72, 86, 77, 12, 232, 46, 106, 11, 64, 100, 239, 50, 26, 192, 199, 197], body_to_save: Some([83, 15, 162, 84, 215, 6, 146, 54, 226, 224, 34, 111, 131, 104, 165, 30, 53, 20, 29, 118, 232, 35, 126, 80, 106, 60, 4, 193, 175, 160, 204, 219, 24, 123, 244, 13, 135, 121, 219, 78, 43, 195, 77, 141, 56, 153, 161, 229, 185, 247, 102]), events: [Event { key: EventKey([40, 209, 92, 191, 103, 233, 28, 136, 3, 74, 241, 14, 93, 31, 4, 186, 40, 127, 199, 124, 156, 12, 175, 64, 158, 134, 245, 10, 14, 5, 32, 254, 114, 237, 229, 8, 230, 16, 83, 12, 26, 42, 42, 213, 55, 85, 74, 8, 213, 185, 255, 72, 185, 204, 154]), value: EventValue([90, 129, 84, 197, 210, 204, 181, 123, 138, 234, 157, 32, 132, 91, 93, 174, 104, 31, 192, 23, 201, 89, 44, 118, 200, 14, 232, 177, 115, 162, 133, 57, 192, 102, 109, 79, 114, 197, 20, 252, 185, 171, 101, 211, 53, 91, 14, 193, 232, 66, 210, 134, 191, 134, 255, 66, 130, 42, 187, 71, 227, 233, 157, 110, 157, 22, 100, 5, 206, 216, 44, 211, 87, 0, 101, 145, 106, 80, 170, 192, 76, 34, 75, 182, 11, 116, 236, 148, 211, 32, 36]) }, Event { key: EventKey([53, 17, 195, 197, 64, 169, 255, 102, 142, 14, 187, 146, 0, 169, 204, 112, 0, 132, 126, 47, 237, 49, 50, 39, 197, 250, 20, 109, 45, 82, 153, 232, 125, 134, 101, 215, 189, 166, 169, 35, 81, 134, 39, 24, 244, 62, 100, 133, 133, 163, 253, 187, 243, 16, 132, 177, 178, 41, 39, 122, 168, 112, 136, 235, 237, 231, 176, 55, 107, 119, 115, 232, 64, 209, 193, 148, 176, 239, 17, 145, 76, 226, 229, 168, 216, 237, 123, 247, 91, 59, 185, 141, 203, 96]), value: EventValue([254, 89, 88, 127, 194, 28, 96, 121, 71, 225, 225, 112, 150, 182, 122, 172, 172, 57, 44, 9, 4, 99, 220, 254, 80, 39, 202, 42, 174, 180, 24, 98, 165, 202, 40, 242, 34, 8, 43, 219, 162, 40, 93, 83, 102, 163, 89, 75, 207, 149, 171, 95, 205, 147, 107, 29, 150, 163, 54, 151, 80, 138, 233, 164, 47, 22, 158, 53, 65, 142, 172, 174, 22, 175, 13, 190, 248, 25, 144, 132, 52, 121, 132, 38, 61, 119, 185, 81, 250, 82, 15, 145, 35, 225, 246]) }, Event { key: EventKey([179, 65, 208, 155, 76, 229, 114, 213, 242, 207, 94, 139, 220, 216, 238, 134, 64, 57]), value: EventValue([248, 66, 160, 101, 15, 53, 176, 21, 169, 68, 128, 168, 69, 240, 70, 223, 211, 41, 99, 148, 253, 86, 19, 254, 31, 242, 234, 111, 69, 80, 111, 13, 241, 246, 26, 135, 152, 88, 69, 13]) }, Event { key: EventKey([199, 157, 37, 62, 244, 157, 222, 68, 163, 29, 245, 116, 240, 253, 232, 51, 244, 232, 185, 198, 116, 229, 19, 246, 13, 53, 119, 90, 90, 217, 38, 23, 80, 226, 85, 141, 38, 196, 58, 83, 111, 191, 80, 104, 70, 48, 228, 127, 88, 198, 252, 100, 91, 5, 47, 243, 193, 102, 94, 135, 113, 142, 247, 227, 1, 248, 166, 62, 160, 169, 8, 190, 190, 252, 25, 167, 47, 11, 191, 150, 125, 99, 252, 72, 183, 155, 138, 147, 138, 11, 152, 138, 75, 120, 250, 173, 55, 155]), value: EventValue([42, 152, 27, 186, 249, 108, 242, 134, 30, 164, 74, 202, 70, 249, 252, 148, 184, 8, 72, 224, 238, 223, 246, 36]) }], receipt: 1271708450 }, TransactionReceipt { tx_hash: [98, 100, 67, 118, 3, 164, 228, 178, 188, 102, 124, 65, 41, 92, 47, 171, 71, 164, 5, 38, 68, 219, 56, 201, 197, 146, 13, 222, 67, 131, 226, 182], body_to_save: Some([134, 103, 199, 248, 102, 69, 115, 200, 61, 58, 207, 167, 168, 116, 184, 139, 61, 63, 252, 171, 83, 65, 139, 32, 142, 231, 123, 178, 92, 100, 64, 156, 55, 22, 201, 223, 202, 170, 12, 8, 245, 121, 127, 232, 212, 43, 165, 109, 162, 151, 105, 210, 156, 58, 61, 201, 56, 246, 18, 98, 174, 109, 31, 7, 124, 156, 56, 217, 24, 254, 39, 141, 159, 62, 199, 40, 157, 177, 232, 57, 210, 118, 52, 133, 156, 112, 214, 131, 213, 161]), events: [], receipt: 2220823641 }, TransactionReceipt { tx_hash: [153, 170, 29, 70, 172, 214, 239, 242, 96, 255, 240, 47, 47, 93, 228, 246, 203, 30, 229, 41, 5, 100, 61, 192, 112, 30, 163, 153, 86, 155, 13, 128], body_to_save: None, events: [Event { key: EventKey([82, 130, 131, 201, 218, 227, 114, 126, 38, 184, 171, 106, 156, 240, 188, 102, 16, 15, 10, 71, 204, 67]), value: EventValue([200, 169, 244, 53, 165, 38, 231, 50, 205, 177, 5, 179, 252, 62, 164]) }, Event { key: EventKey([222, 4, 41, 83, 129, 115, 78, 160, 160, 150, 231, 153, 155, 140, 180, 147, 158, 4, 58, 207, 18, 33, 65, 34, 40, 212, 213, 227, 197, 93, 120, 17, 59, 9, 38, 149, 116, 97, 18, 95, 254, 236, 20, 180, 43, 219, 38, 239, 250, 167, 237, 147, 68, 63, 169, 217, 130, 231, 221, 110, 59]), value: EventValue([243, 161, 248, 115, 85, 120, 213, 78, 109, 98, 149, 113, 89, 191, 144, 27, 5, 150, 187, 148, 250, 119, 5, 200, 211, 216, 25, 221]) }, Event { key: EventKey([107, 106, 119]), value: EventValue([99, 36, 127, 156, 145, 216, 166, 184, 191, 209, 248, 137, 90, 121, 66, 68, 16, 186, 123, 24, 76, 38, 153, 206, 249, 3, 77, 166, 58, 163, 23, 97, 117, 247, 52, 189, 209, 173, 98, 118, 241, 126, 254, 126, 83, 173, 199, 228, 232, 218, 142, 12, 145, 167, 101, 98, 14, 51, 33, 37, 134, 173, 249, 207, 183, 91, 131, 48, 227, 166, 92, 37, 219, 53, 187, 66, 10, 147, 100, 219]) }, Event { key: EventKey([119, 139, 180, 151, 184, 53, 66, 255, 109, 3, 75, 91, 123, 236, 184, 20, 96, 123]), value: EventValue([249, 104, 133, 194, 216, 237, 224, 9, 201, 237, 158, 46, 167, 143, 132, 46, 10, 175, 243, 30, 155, 222]) }, Event { key: EventKey([148, 42, 148, 13, 193, 101, 118, 154, 113, 234, 82, 83, 60, 159, 202, 222, 98, 153, 197, 98, 22, 246, 232, 244, 65, 84, 234, 113, 156, 149, 241, 11, 39, 94, 40, 97, 64, 80, 132, 39, 133, 120, 8, 217, 222, 255, 113, 178, 228, 221, 212, 238, 252, 172, 124, 226, 137, 55, 129, 200, 126, 222, 129, 201, 124, 170, 249, 75, 191, 31, 185, 230, 137, 52, 136, 19, 228, 38, 28, 52, 87, 68, 57, 71, 130, 40, 151, 209, 84, 238, 116, 162, 28, 134, 106, 45, 166, 40]), value: EventValue([154, 192, 236, 46, 236, 57, 128, 112, 51, 78, 142, 53, 185, 223, 226, 44, 110, 4, 33, 117, 31, 183, 128, 244, 218, 167, 210, 119, 129, 255, 66, 74, 187, 84, 50, 71, 166, 41, 155, 233, 177, 14, 221, 115, 214, 124, 109, 132, 136, 31, 29, 195, 32, 120, 47, 253, 80, 152, 255, 202, 77, 87, 43, 208, 95, 55, 186, 255, 212, 205, 101]) }, Event { key: EventKey([162, 185, 72, 139, 75, 47, 205, 89, 220, 9, 48, 167, 3, 162, 143, 94, 13, 127, 24, 119, 203, 113, 151, 3, 238, 138, 107, 223, 132, 177, 207, 145, 136, 58, 118, 5, 36, 247, 61, 29, 45, 140, 42, 87, 251, 58, 75]), value: EventValue([99, 126, 28, 81, 96, 253, 116, 22, 26, 164, 170, 26, 241, 141, 114, 214, 50, 255, 88, 31, 95, 93, 31, 44, 219, 136, 206, 123, 0, 174, 157, 128, 17, 242, 117, 225, 50, 85, 81]) }], receipt: 2402209736 }, TransactionReceipt { tx_hash: [26, 132, 218, 207, 6, 87, 170, 230, 65, 89, 200, 202, 216, 101, 123, 42, 170, 244, 144, 28, 211, 232, 205, 156, 205, 187, 111, 150, 21, 107, 66, 45], body_to_save: None, events: [Event { key: EventKey([195, 5, 153, 14, 145, 72, 16, 67, 184, 30, 140, 241, 242, 100, 121, 203, 211, 150, 115, 140, 80, 84, 67, 76, 11, 73, 230, 175, 157, 51, 210, 179, 185, 234, 27, 117, 156, 9, 95, 152, 162, 188, 59, 104, 71, 113, 124, 87, 147, 13, 147, 65, 249, 74, 106, 110, 226, 28, 165, 46, 99, 66, 200, 45, 14, 1, 227, 12, 255, 33, 177, 63, 155, 154, 238, 233, 247, 37, 238, 91, 4, 189, 25, 40, 39, 213, 75, 108, 237, 63, 237, 61, 12, 125, 112, 56]), value: EventValue([63, 135, 207, 217, 54, 254, 133, 47, 106, 14, 11, 220, 128, 21, 61, 208, 48, 240, 147, 205, 61, 81, 29, 185, 34, 136, 198, 159, 253, 64, 215, 23, 41, 207, 245, 103, 23, 71, 177, 38, 92, 101, 157, 49, 50, 77, 116, 230, 138, 38, 216, 226, 124, 128, 82, 49, 163, 42, 155, 66, 79, 175, 109, 35, 12, 234, 146, 19, 56, 61, 140, 228, 76, 239, 71, 234, 130, 236, 92, 139, 51, 252]) }, Event { key: EventKey([86, 252, 22, 159, 38, 106, 80, 230, 99, 87, 119, 226, 43, 138, 13, 32, 77, 100, 97, 245, 41, 47, 106, 135, 101, 209, 36, 67, 213, 254, 143, 84, 125, 203, 167, 187, 27, 69, 113, 42, 227, 176, 107, 28, 252, 240, 164, 190, 61, 20, 251, 24, 68, 167, 111, 106, 239, 139, 141, 38, 180, 98, 162, 250, 112, 151, 168, 149, 1, 146, 222, 57, 161, 101]), value: EventValue([7, 109, 35, 144, 45, 162, 68, 198, 158, 212, 234, 163, 123, 191, 57, 238, 248, 185, 184, 74, 134, 217, 77, 208, 131, 32, 211, 143, 119, 136, 168, 43, 248, 142, 98, 60, 156, 255, 93, 254, 200, 142, 40, 225, 57, 45, 235, 242, 43, 169, 57, 46, 187, 250, 205, 108, 253, 187, 148]) }, Event { key: EventKey([75, 131, 2, 96, 44, 159, 120, 28, 200, 164, 26, 169, 88, 231, 140, 142, 214, 185, 1, 42, 201, 149, 246, 119, 105, 8, 203, 122, 118, 91, 18, 168, 142, 71, 136, 185, 144, 179, 106, 58, 155, 252, 210, 167, 38, 189, 161, 163, 124, 150, 148, 93, 186, 88, 126, 90, 206, 35, 97, 134, 59, 18, 112, 235, 98, 204, 24, 63, 200, 135, 154, 243, 24, 234, 142, 40, 73, 192, 165, 207, 228, 53, 135, 23, 29, 32, 212, 117, 45, 243, 249]), value: EventValue([50, 57, 206, 12]) }, Event { key: EventKey([60, 109, 237, 201, 24, 158, 55, 65, 53, 55, 167, 162, 18, 41, 249, 198, 156, 216, 77, 237, 103, 34, 196, 79, 14, 47, 160, 234, 171, 65, 172, 162, 63, 60, 109, 166, 46, 81, 214, 8, 248, 184, 132, 72, 23, 3, 75, 183, 38, 212, 121, 222, 23, 175, 22, 201, 209, 136, 67, 50, 0, 203, 125, 46, 60, 193, 53, 27, 210, 189, 163, 228, 167, 8, 125, 19, 92, 45, 213, 251, 110, 221, 3, 53, 181, 131, 178, 220, 204, 19, 235, 193, 7, 45, 77, 243]), value: EventValue([251, 180, 250, 5, 200, 233, 27, 35, 178, 63, 94, 225, 59, 229, 35, 53, 148, 143, 65, 127, 200, 103, 80, 5, 120, 255, 113, 128, 142, 76, 163, 138, 153, 216, 76, 185, 241, 171, 50, 182, 137, 66, 93, 128, 147, 176, 212, 82, 189, 128, 233, 105, 124, 70]) }], receipt: 3996156845 }, TransactionReceipt { tx_hash: [160, 131, 224, 226, 68, 240, 108, 179, 104, 84, 110, 152, 221, 120, 162, 182, 151, 124, 142, 241, 161, 76, 250, 203, 130, 80, 239, 112, 211, 113, 27, 61], body_to_save: None, events: [Event { key: EventKey([196, 159, 66, 43, 21, 127, 120, 103, 42, 51, 107, 161, 186, 83, 198, 227, 3, 52, 138, 228, 81, 16, 67, 98, 38, 127, 14, 122, 51, 250, 245, 41, 37, 13, 39, 136, 12, 17, 226, 124, 93, 39, 169, 74, 36, 81, 244, 81, 252, 83, 36, 46, 112, 208, 219, 27, 161, 109, 166, 180, 166, 76, 145, 240, 149, 13, 64, 133, 82, 205, 235, 185, 225, 61, 208, 222, 12, 213, 49, 161, 242, 162, 149, 196, 231, 73, 4, 34, 14, 79, 246, 130, 242, 89, 29, 231]), value: EventValue([164, 144, 83, 202, 99, 136, 78, 43, 159, 114, 122, 224, 44, 41, 136, 166, 253, 185, 142, 177, 175, 1, 252, 78, 88, 68, 180, 251, 252, 96, 54, 244, 234, 88, 49, 115, 252, 153, 109, 200, 221, 32, 243, 228, 88, 52, 143, 132, 173, 58, 62, 87, 86, 51, 154, 218, 193, 178, 175, 176, 85, 234, 50, 102, 89, 179, 252, 38, 51, 193, 51, 225, 186, 43, 150]) }, Event { key: EventKey([164, 166, 109, 198, 86, 108, 193, 160, 190, 229, 190, 50, 182, 7, 7, 123, 140, 165, 246, 243, 171, 65, 152, 39, 202, 83, 64, 166, 230, 164, 193, 246, 136, 175, 27, 115, 91, 171, 122, 34, 7, 212, 253, 4, 147, 38, 221, 184, 56, 171, 231, 150, 159, 159, 196, 147, 142, 146, 40, 60, 40, 130, 98, 67, 113, 152, 74, 235, 201, 60, 12, 129, 0, 38, 6, 73, 243, 19, 117, 17]), value: EventValue([0, 94, 199, 90, 12, 198, 114, 204, 49, 128, 123, 97, 116, 72, 67, 131, 47, 35, 237, 30, 101, 143, 82, 59, 46, 58, 2, 216, 124, 55, 31, 177, 125, 2, 104, 25, 203, 47, 157, 20, 248, 78, 202, 233, 50, 187, 192, 243, 126, 8, 57, 106, 214, 53, 41]) }, Event { key: EventKey([64, 90, 42, 217, 151, 203, 9, 133, 51, 19, 214, 21, 246, 205, 148, 132, 152, 42, 64, 136, 223, 184, 147, 29, 27, 209, 181, 191]), value: EventValue([5, 62, 142, 202, 34, 227, 225, 47, 131, 236, 227, 188, 191, 202, 205, 132, 170, 109, 149, 218, 185, 52, 242, 237, 121, 199, 190, 175, 96, 146, 165, 8, 30, 142, 102, 67, 104, 101, 74, 253, 81, 201, 111, 182, 51, 173, 237, 105, 163, 44, 225, 53, 4, 89, 197, 126, 204, 226, 33, 113, 145, 166, 151, 145, 115, 153, 251, 23, 83, 4, 138, 196, 158, 170, 16, 187, 10, 113, 244, 249, 42, 21, 15, 171, 134, 86, 20, 113, 250, 171, 2, 97, 112, 183, 90, 221, 74, 123, 60]) }, Event { key: EventKey([151, 207, 30, 130, 158, 38, 66, 82, 136, 24, 205, 218, 212, 248, 36, 252]), value: EventValue([188, 232, 87, 129, 19, 101, 40, 129, 42, 61, 64, 172, 195, 203, 3, 129]) }], receipt: 3360940012 }], inner: 1887818756 }, BatchReceipt { batch_hash: [226, 105, 24, 140, 111, 9, 152, 98, 6, 38, 194, 179, 127, 179, 155, 4, 53, 213, 100, 192, 89, 134, 224, 156, 82, 102, 96, 14, 10, 247, 31, 193], tx_receipts: [TransactionReceipt { tx_hash: [89, 248, 248, 105, 45, 56, 111, 121, 250, 144, 153, 17, 1, 176, 91, 241, 60, 239, 71, 63, 246, 93, 50, 122, 20, 121, 223, 226, 161, 110, 104, 172], body_to_save: Some([118, 0, 76, 175, 125, 152, 247, 33, 112, 55, 134, 148, 109, 139, 182, 35, 241, 253, 179, 112, 187, 99, 110, 175, 193, 146, 48, 118, 99, 23, 166, 83, 34, 186, 204, 232, 208, 4, 219, 31, 230, 233, 155, 36, 42, 255, 242, 156, 20, 236, 149, 205, 192, 205, 7, 52, 137, 50, 115, 77, 194, 134, 112, 32, 86, 159, 233, 132, 119, 147, 119, 44, 112, 154, 127, 226, 145, 136, 154, 124, 122, 171, 209, 111, 71, 117, 114, 156, 138, 195, 138, 9, 219, 148, 162, 116]), events: [Event { key: EventKey([162, 77, 78, 27, 224, 74, 179, 198]), value: EventValue([238, 28, 183, 41, 30, 7, 212, 89, 170, 211, 62, 77, 4, 45, 4, 85, 46, 82, 187, 223, 41, 21, 82, 72, 220, 35, 238, 137, 86, 44, 29, 52, 4, 252, 97, 12, 199, 40, 96, 228, 106, 231, 33, 223, 79, 185, 76, 119, 24, 248, 187, 211, 53, 10]) }, Event { key: EventKey([109, 159, 60, 186, 95, 124, 240, 21, 216, 188, 75, 58, 67, 140, 185, 15, 51, 233, 7, 100, 255, 56, 86, 53, 213, 24, 181, 127, 201, 18, 251, 212, 93, 231, 192, 236, 171, 1, 178, 83, 62, 140, 171, 140, 164, 21, 247, 199, 196, 165, 0, 127, 81, 161, 49, 15, 48, 253, 60, 3, 138, 194, 113, 78, 144, 198, 199]), value: EventValue([106, 247, 48, 119, 233, 99, 90]) }, Event { key: EventKey([176, 86, 255, 12, 37, 78, 177, 14, 13, 109, 85, 59, 53, 27, 204, 192, 39, 154, 253, 70, 36, 71, 238, 162, 54, 117, 86, 86, 43, 115, 117, 176, 198, 28, 253, 2, 200, 127, 67, 85, 87, 167, 48, 31, 169, 122, 136, 181, 100, 52, 11, 227, 71, 9, 195, 94, 91, 204, 134, 151, 28, 26, 22, 90, 254, 109, 144, 185, 157, 175, 171, 42, 18, 246, 117, 203, 1, 29, 94, 195, 249, 171, 60, 146, 37, 153, 40, 240, 190, 141, 155, 15, 208, 38]), value: EventValue([149, 253, 22, 200, 136, 9, 227, 27, 43, 160, 12, 112, 118, 60, 176]) }, Event { key: EventKey([104, 39, 79, 172, 183, 137, 160, 206, 81, 123, 169, 176, 205, 214, 228, 195, 52]), value: EventValue([70, 179, 54, 108, 128, 127, 27, 251, 80, 174, 39, 110, 115, 250, 30, 205, 102, 15, 56, 95, 227, 26, 166, 230, 66, 84, 101, 108, 143, 142, 56, 210, 186, 85, 150, 243, 92, 138, 90, 107, 183, 220, 44, 189, 10, 124, 187, 56, 109, 73, 15, 143, 53, 26, 157, 167, 39, 121, 10, 17, 90, 141, 147, 161, 148, 149, 217, 226, 68, 250, 95, 140, 8, 75, 80, 24, 64, 213, 222, 57, 213, 113, 185, 215, 240, 235]) }], receipt: 3383308273 }], inner: 1695532414 }, BatchReceipt { batch_hash: [236, 169, 132, 24, 248, 108, 87, 169, 16, 47, 215, 28, 250, 22, 45, 94, 38, 119, 131, 206, 32, 239, 198, 72, 135, 130, 206, 162, 175, 250, 95, 126], tx_receipts: [TransactionReceipt { tx_hash: [28, 245, 31, 10, 93, 85, 165, 148, 28, 77, 181, 122, 255, 79, 162, 169, 255, 233, 93, 21, 197, 187, 197, 147, 150, 29, 229, 144, 47, 237, 129, 26], body_to_save: None, events: [Event { key: EventKey([134, 45, 213, 129, 145, 45, 215, 193, 63, 93, 91, 236, 113, 14, 174, 218, 155, 74, 110, 88, 68, 68, 131, 5, 217, 167, 95, 3, 170, 146, 163, 74, 250, 152, 215, 109, 159, 200, 107, 139, 196, 155, 108, 161, 174, 206, 57, 174, 10, 240, 6, 113, 154, 54, 174, 181, 201, 84, 104, 35, 176, 232, 138, 70, 170, 103, 132, 163, 252, 56, 134]), value: EventValue([186, 94, 106, 101, 95, 233, 195, 200, 89, 26, 202, 138, 114, 113, 138, 109, 76, 44, 60, 222, 56, 251, 147]) }, Event { key: EventKey([37, 160, 117, 250, 157, 137, 105, 201, 50, 248, 145, 125, 208, 88, 122, 244, 206, 118, 11, 213, 23, 48, 192, 227, 48, 241, 189, 28, 14, 185, 39, 68, 7, 179, 158, 111, 135, 6, 122, 65, 26, 14, 75, 50, 159, 230, 182, 70, 101, 144, 38, 220, 255, 145, 137, 159, 218, 8, 100, 111, 237, 49, 106, 1, 175, 17, 144, 211, 209, 34, 133, 0, 254, 54, 237, 219, 240, 13, 79, 220, 188, 162, 5, 170]), value: EventValue([89, 152, 12, 128, 14, 64, 38, 119, 193, 144, 143, 84, 0, 11, 246, 114, 75, 249, 52, 201, 39, 232, 201, 60, 73, 149, 225, 220, 117, 222, 88, 44, 84, 239, 235, 100, 153, 213, 198, 31, 222, 205, 174, 85, 32, 100, 44, 140, 45, 29, 19, 35, 69, 141, 75, 194, 202, 160, 41, 43, 32, 130, 22, 226, 68, 222, 42, 89, 186, 20, 98, 134, 227, 17, 145, 88, 131, 31, 83, 210, 173, 141, 177, 147, 68, 209, 84, 183, 70, 10, 44, 146, 174, 164]) }, Event { key: EventKey([180, 147, 32, 28, 159, 162, 227, 156, 33, 51, 84, 238, 164, 239, 84, 251, 153, 225, 160, 74, 123, 131, 28, 139, 25, 83, 205, 30, 159, 244, 147, 7, 203, 61, 76, 197, 215, 210, 54, 177, 112, 55, 75]), value: EventValue([177, 211, 128, 127, 24, 120, 55, 3, 229, 229, 164, 124, 132, 64, 99, 124, 121, 107, 221, 8, 17, 113, 7, 126, 92, 80, 92]) }, Event { key: EventKey([167, 53, 243, 171, 151, 199, 56, 141]), value: EventValue([12, 250, 216, 134]) }, Event { key: EventKey([148, 229, 135, 44, 85, 159, 34, 69, 167, 237, 202, 187, 229, 125, 232, 213, 21, 110, 154, 140, 26, 192, 167, 21, 153, 201, 34, 133, 29, 6, 138, 216, 26, 69, 59, 214, 122, 172, 127, 55, 157, 207, 92, 204, 114, 249, 92, 33, 101, 83, 79, 21, 19, 245, 20, 130, 12, 33, 31, 229, 222, 224, 239, 120, 97, 158, 164, 147, 149, 103, 182, 211, 26, 34, 150, 198, 135]), value: EventValue([5, 191, 146, 116, 45, 43, 111, 106, 140, 85, 169, 212, 139, 232, 186, 197, 37, 35, 213, 75, 196, 106, 207, 178, 205, 3, 145, 39, 31, 236, 30, 95, 108, 95, 175, 215, 33, 206, 135, 194, 137, 53, 23, 99, 165, 135, 191, 82, 176, 79, 2, 149, 127, 212, 23, 230, 228, 36, 226, 217, 130, 161, 123, 171, 128, 219, 133, 227, 89, 146, 189, 190, 178, 120, 42, 59, 97, 21, 142, 107, 124, 242, 163, 99, 81, 61, 58, 201]) }, Event { key: EventKey([236, 59, 173, 79, 238, 108, 1, 61, 6, 124, 31, 247, 135, 134, 134, 125, 224, 24, 172, 215, 165, 61, 196, 48, 237, 122, 174, 215, 238, 161, 215, 6, 178, 237, 89, 223, 197, 100, 226, 145, 189, 22, 127, 47, 64, 197, 226, 126, 60, 91, 194, 244, 221, 177, 8, 50, 179, 80, 186, 8, 196, 33, 155, 152, 247, 62, 189, 32, 102, 163, 149, 220, 45, 169, 88, 109, 216, 182, 222, 218, 10, 199, 19, 242, 94, 156, 189, 64, 210, 94, 241]), value: EventValue([27, 77, 203, 83, 210, 60, 144, 254, 27, 111, 188, 187, 196, 79, 70, 201, 56, 53, 247, 175, 151, 203, 96, 32, 207, 150, 254, 204, 92, 38, 113, 118, 32, 11, 98, 19, 247, 197, 207, 97, 60, 214, 44, 171, 176, 79, 238, 241, 156, 52, 137, 200, 220, 132, 70, 96, 86, 151, 242, 72, 193, 59, 173, 189, 20, 36]) }], receipt: 2822730641 }, TransactionReceipt { tx_hash: [254, 79, 0, 83, 202, 66, 134, 215, 23, 82, 144, 181, 144, 149, 9, 134, 130, 179, 65, 36, 255, 34, 125, 159, 134, 125, 54, 28, 180, 203, 45, 124], body_to_save: Some([54, 214, 47, 164, 55, 99, 40, 116, 124, 206, 139, 209, 117, 96, 162, 133, 153, 50, 43, 219, 18, 88, 159, 227, 172, 148]), events: [Event { key: EventKey([185, 160, 31, 120, 234, 205, 212, 31, 18, 94, 178, 56, 24, 144, 197, 245, 114, 64, 3, 164, 135, 128, 211, 124, 164, 218, 17, 224, 44, 31, 91, 120, 200, 132, 24, 177, 253, 59, 94, 167, 228, 230, 137, 247, 125, 174, 252, 9, 172, 102, 67, 39, 132, 198, 81, 150, 96, 115, 128, 210, 192, 129, 249, 242, 61, 150, 240, 113, 14, 133]), value: EventValue([161, 26, 215, 246, 77, 168, 71, 69, 24, 96, 33, 175, 40, 230, 97, 245, 243, 232, 82, 157, 124, 36, 85, 174, 63, 5, 237, 197, 7]) }, Event { key: EventKey([234, 120, 77, 160, 92, 230, 77, 143, 55, 45, 29, 226, 101, 41, 187, 161, 192, 217, 6, 172, 208, 202, 5, 129, 171, 237, 94, 33, 82, 149, 242, 111, 125, 118, 158, 149, 97, 107, 54, 230, 131, 14, 215, 93, 195, 208, 141]), value: EventValue([62, 122, 108, 254, 174, 75, 127, 196, 113, 67, 202, 58, 27, 125, 31]) }, Event { key: EventKey([113, 164, 96, 101, 89, 130, 75, 24, 7, 253, 129, 6, 220, 239, 245, 67, 176, 91, 184, 183, 31, 120, 186, 219, 47, 141, 175, 10, 14, 106, 179, 221, 86, 205]), value: EventValue([195, 217, 83, 146, 112, 38, 161, 108, 137, 219, 105, 243, 249, 7, 142, 195, 203, 88, 82, 229, 109, 23, 45]) }, Event { key: EventKey([120, 205, 115, 49, 69, 82, 75, 127, 47, 239, 244, 223, 255, 220, 163, 240, 26, 148, 78, 222, 2, 81, 47, 110, 197]), value: EventValue([85, 158, 107, 167, 117, 169, 218, 217, 134, 91, 228, 0, 58, 232, 21, 151, 107, 224, 14, 43, 50, 14, 252, 43, 154, 118, 230, 181, 56, 88, 30, 32, 115, 209, 134, 242, 115, 144, 234, 161, 205, 110, 212, 36, 105, 147, 203, 53, 118, 38, 23, 227, 164, 207, 226, 86, 77, 207, 1, 177, 152, 76, 168, 86, 85, 104, 175, 136, 239, 210, 36, 148]) }, Event { key: EventKey([175, 18, 138, 252, 47, 90, 44, 227, 4, 167, 28, 180, 9, 214, 54, 125, 165, 11, 141, 62, 58, 133, 97, 244, 19, 28, 164, 43, 122, 181, 229, 31, 150, 40, 238, 245, 56, 210, 105, 222, 120, 87, 200, 76, 64, 187, 0, 4, 19, 252, 13, 68, 134, 16, 232, 42, 94]), value: EventValue([121, 253, 204, 152, 17, 126, 238, 94, 117, 121, 55, 9, 242, 183, 54, 202, 34, 232, 62, 132, 15, 35, 213, 5, 148, 128, 241, 141, 10, 203, 41, 144, 84, 99, 131, 117, 105, 93, 94, 54, 4, 150, 45, 59, 117, 209, 138, 144, 170, 148, 191, 98, 155, 155, 55, 162, 241]) }, Event { key: EventKey([42, 164, 181, 113, 113, 192, 230, 150, 201, 74, 191, 121, 215, 193, 147, 133, 180, 219, 68, 65, 178, 86, 100, 87, 194, 128, 219, 123, 220, 92, 42, 205, 223, 174, 198, 66, 197, 116, 213, 123, 179, 91, 95, 52, 102, 88, 22, 62, 27, 215, 44, 105, 10, 55, 173, 227, 213, 73, 115, 114, 189, 97, 85, 153, 83, 9, 234, 255, 113, 222, 13, 107, 185, 227, 178, 165, 132, 98, 204, 49, 135, 187, 180, 193, 209]), value: EventValue([35, 6, 27, 46, 110, 242, 2, 58, 30, 69, 64, 98, 74, 120, 223, 153, 213, 161, 105, 172, 208, 72, 100, 47, 6, 21, 171, 110, 215, 165, 112, 10, 87, 249, 72, 244, 82, 73, 95, 199, 137, 194, 168, 224, 210, 236, 226, 2, 125, 133, 98, 252, 132, 168, 132, 109]) }, Event { key: EventKey([111, 242, 180, 111, 85, 153, 95, 34, 69, 44, 169, 233, 234, 248, 110, 242, 44, 139, 38, 18, 221, 1, 168, 135, 104, 112, 242, 132, 219, 207, 158, 84, 76, 237, 117, 133, 94, 223, 56, 19, 47, 159, 46, 148, 89, 72, 207, 245, 2, 193, 140, 164, 107, 4, 207, 36, 53, 251, 176, 12, 240, 233, 20, 208, 171, 198]), value: EventValue([182, 77, 212, 98, 2, 226, 226, 114, 132, 159, 138, 1, 122, 38, 33, 66, 98, 61, 93, 67, 131, 110, 233, 106, 112, 121, 90, 32, 87, 21, 156, 215, 91, 219, 4, 18, 43, 168, 92, 232, 255, 157, 253, 183, 46, 233, 167, 134, 172]) }, Event { key: EventKey([145, 52, 44, 160, 200]), value: EventValue([108, 79, 156, 250, 236, 178, 228, 36, 161, 73, 203, 42, 127, 118, 199, 218, 171, 214, 37, 64, 110, 219, 108, 246, 245, 135, 22, 138, 109, 77, 175, 100, 190, 158, 221, 3, 83, 205, 197, 241, 125, 204, 227, 88, 149, 109, 161, 228, 83, 250, 96, 197, 62, 147, 90, 54, 228, 209]) }], receipt: 4136233837 }, TransactionReceipt { tx_hash: [74, 99, 38, 75, 107, 243, 153, 82, 112, 12, 93, 132, 58, 21, 55, 124, 226, 21, 94, 5, 140, 244, 101, 173, 161, 46, 89, 11, 232, 239, 133, 141], body_to_save: Some([201, 175, 14, 143, 206, 132, 23, 141, 222, 9, 193, 106, 251, 194, 93, 159, 74, 106, 82, 32, 206, 24, 39, 98, 204, 186, 93, 214, 166, 115, 110, 244, 180, 203, 210, 107, 242, 165]), events: [Event { key: EventKey([136, 224, 247, 98, 2, 66, 244, 111, 181, 72, 51, 60, 25, 38, 148, 176, 4, 209, 20, 1, 165, 38, 43, 184, 41, 94, 138, 9, 168, 110, 177, 227, 230, 213, 243, 200, 96, 147, 201, 22, 108, 76, 146, 255, 105, 206, 215, 212, 0, 115, 205, 190, 50, 18, 153, 134, 73, 81, 248, 227, 49, 123, 23, 126, 72, 225, 239, 171, 252, 152, 206, 139, 118, 56, 39, 229, 79]), value: EventValue([68, 236, 136, 204, 0, 69]) }, Event { key: EventKey([94, 42, 125, 50, 96, 94, 249, 130, 226, 66, 175, 225, 156, 50]), value: EventValue([87, 132, 123, 204, 112, 63, 250, 109, 123, 20, 134, 239, 200, 134, 97, 215, 236, 180, 240, 52, 84, 109, 183, 203, 106, 21, 211, 218, 234, 171, 202, 39, 189, 74, 115, 67, 89, 186, 250, 172, 6, 238, 62, 139, 209, 179, 122, 255, 211, 180, 10, 212, 110, 193, 209, 95, 22, 171, 246, 116, 89, 163, 164, 164, 74, 6, 126, 193, 240, 249, 207, 188, 215, 161, 212, 63, 244, 147, 117]) }, Event { key: EventKey([45, 123, 171, 169, 250, 206, 161, 105, 198, 30, 128, 227, 210, 162, 223, 156, 139, 87, 147, 163, 182, 117, 205, 54, 86, 164, 30, 198, 75, 63, 130, 13, 94, 55, 148, 158, 119, 27, 111, 32, 110, 58, 189, 148, 123, 22, 177, 51, 199, 138, 234, 163, 92, 181, 245, 123, 223, 114, 247, 43, 102, 97, 69]), value: EventValue([104, 174, 142, 91, 174, 21, 241, 83, 104, 226, 83, 100, 182, 162, 32, 244, 219, 211, 160, 162, 116, 214, 112, 45, 2, 125, 177, 38, 249, 141, 70, 126, 13, 232, 229, 197, 135, 134, 47, 143, 66, 164, 115, 253, 166, 148, 34, 5, 115, 117, 114, 76, 195]) }], receipt: 489642130 }, TransactionReceipt { tx_hash: [20, 169, 208, 234, 202, 119, 214, 53, 154, 28, 236, 15, 96, 1, 199, 138, 36, 141, 189, 38, 157, 154, 18, 216, 117, 66, 1, 113, 245, 144, 145, 103], body_to_save: None, events: [Event { key: EventKey([47, 115, 224, 156, 72, 164, 186, 212, 250, 104, 122, 164, 184, 49, 218, 109, 48, 44, 74, 208, 104, 137, 199, 223, 56, 69, 2, 196, 96, 85, 6, 139, 1, 174, 26, 173, 9, 166, 75, 87, 96, 15, 158, 144, 51, 54, 171, 126, 119, 205, 120, 223, 209, 181, 173, 51, 38, 252, 7, 142, 251, 163, 84, 133, 9, 233, 170, 11, 236, 65, 41, 163, 143, 159, 91, 161, 45, 71, 24, 160]), value: EventValue([236, 194, 58, 192, 216, 26, 199, 243, 161, 200, 85, 193, 142, 199, 167, 241, 9, 139, 88, 61, 243, 88, 70, 115, 93, 151, 191, 58, 25, 18, 69, 253, 116, 83, 90, 139, 86, 203, 194, 181, 132, 100, 109, 33, 175, 192, 17, 43, 8, 24, 175, 197, 85, 77, 209, 214, 103, 10, 252, 44, 156, 78, 61, 61, 86, 185, 17, 129, 233, 52, 141, 50, 57, 140, 170, 227]) }, Event { key: EventKey([111, 174, 201, 110, 30]), value: EventValue([202, 45, 111, 215, 140, 48, 110, 215, 72, 107, 28, 189, 57, 181, 73, 118, 138, 144, 138, 175, 179, 68, 218, 74, 28, 62, 167, 26, 209, 145, 32, 207, 92, 243, 36, 36, 4, 251, 174, 144, 224, 220, 45, 143, 49, 135, 17, 103, 65, 167, 230, 24, 124, 91, 48, 0, 210, 51, 153, 178, 199, 223, 28, 212, 73, 34, 176, 225, 95, 199, 22, 215, 206, 225, 169, 211, 231, 193, 99, 4, 211, 35, 250, 128, 168, 108, 186, 34, 33, 245, 36, 228, 60, 102]) }, Event { key: EventKey([70, 252, 189, 39, 55, 77, 177, 217, 27, 85, 27, 75, 83, 101, 135, 34, 161, 10, 197, 220, 121, 224, 241, 244, 76, 112, 171, 93, 247, 59, 228, 128, 167, 47, 130, 188, 113, 216, 79, 101, 175]), value: EventValue([47, 224, 186, 202, 59, 187, 74, 78, 250, 116, 157, 115, 55, 224, 136, 3, 162, 116, 13, 117, 62, 119, 213, 125, 226, 232, 177, 252, 50, 23, 85, 84, 155, 221, 183, 57, 44, 41, 246, 30, 136, 84, 46, 169, 62, 4, 81, 216, 210, 33, 165, 33, 9, 106, 102, 3, 232, 180]) }, Event { key: EventKey([92, 112, 244, 212, 172, 224, 171, 77, 236, 248, 92, 67, 193, 97, 91, 52, 180, 80, 238, 217, 167]), value: EventValue([196, 41, 65, 133, 46, 181, 241, 255, 187, 180, 167, 217, 160]) }], receipt: 1673803851 }], inner: 26265906 }], num_txs: 34, num_events: 158 }, SlotCommit { slot_data: TestBlock { curr_hash: [104, 66, 31, 173, 155, 19, 56, 0, 27, 52, 49, 154, 104, 7, 47, 98, 200, 38, 4, 137, 24, 246, 211, 167, 201, 90, 193, 80, 52, 190, 165, 198], header: TestBlockHeader { prev_hash: TestHash([168, 10, 100, 241, 25, 11, 111, 116, 194, 59, 63, 69, 232, 167, 100, 179, 67, 159, 98, 63, 182, 18, 34, 75, 24, 111, 35, 40, 131, 105, 2, 203]) } }, batch_receipts: [BatchReceipt { batch_hash: [52, 160, 189, 246, 140, 184, 231, 89, 89, 15, 50, 57, 251, 120, 45, 113, 156, 228, 44, 82, 133, 18, 62, 150, 39, 4, 47, 243, 81, 132, 127, 157], tx_receipts: [TransactionReceipt { tx_hash: [211, 254, 233, 129, 251, 51, 247, 235, 252, 150, 210, 90, 60, 35, 232, 108, 1, 244, 40, 254, 200, 4, 216, 4, 104, 206, 23, 163, 152, 140, 91, 10], body_to_save: Some([189, 207, 196, 43, 90, 102, 5, 151, 50, 92, 107, 213, 10, 66, 14, 74, 210, 50, 103, 122, 237, 86, 62, 166, 89, 242, 152, 103, 78, 95, 22, 153, 46, 65, 233, 92, 120, 73, 137, 213, 161, 61, 21, 174, 112, 225, 176, 77, 223, 183, 184, 217, 17, 196, 154, 137]), events: [Event { key: EventKey([21, 199, 240, 77, 40, 191, 186, 181, 125, 89, 179, 78, 73, 107, 171, 64, 94, 132, 253, 20, 119, 117, 43, 117, 252, 218, 5, 252, 179, 147, 149, 86, 204, 33, 238, 12, 188, 175, 87, 91, 4, 170, 0, 235, 244, 146, 30, 73, 120, 219, 94, 111, 203, 36, 135, 113, 11, 226, 30, 165, 239, 24]), value: EventValue([82, 25, 54, 120, 251, 213, 232, 235, 160, 222, 54, 232, 88, 24, 117, 111, 240, 42, 250, 135, 212, 146, 191, 155, 38, 128, 229, 32, 71, 57, 129, 19, 247, 28, 126, 140, 181, 247, 85, 25, 9, 117, 93, 124, 128]) }, Event { key: EventKey([123, 102, 125, 232, 216, 11, 48, 71, 160, 196, 61, 175, 120, 99, 185, 18, 128, 115, 153, 100, 134, 134, 229, 19, 242, 174, 55, 24, 213, 67, 177, 240, 204, 242, 88, 235, 122, 56, 184, 213, 158, 26, 212, 139, 238, 236, 103, 100, 114, 243, 123, 231, 191, 37, 97, 101, 44, 80, 7]), value: EventValue([101, 96, 45, 132, 135, 84, 219, 95, 217, 45, 237, 165, 27, 161, 113, 86, 232, 125, 219, 243, 190, 64, 255, 54, 190, 146, 99, 93, 21, 87, 229, 167, 126, 34]) }, Event { key: EventKey([91, 143, 157, 116, 244, 145, 175, 178, 23, 107, 221, 189, 188, 86, 130, 220, 143, 132, 76, 183, 72, 11, 195, 237, 174, 59, 216, 99, 152, 67, 146, 49, 110, 206, 65, 43, 102, 72, 236, 160, 117, 32, 163, 16, 40, 72, 212, 57, 175, 169, 207, 181, 252, 156]), value: EventValue([39, 194, 113, 224, 134, 90, 173, 50]) }, Event { key: EventKey([158, 226, 247, 55, 100, 226, 177, 111, 28, 69, 89, 15, 19, 205, 247, 159, 229, 165, 118, 113, 130, 252, 52, 192, 87, 176, 60, 203, 20, 247, 253, 41, 153, 34, 1, 140, 184, 215, 240, 236, 253, 227, 242, 107, 88, 218, 37, 28, 158, 193, 149, 89, 81, 115, 62, 82, 14, 83, 233, 81, 6, 134, 76, 6, 172, 72, 122, 225, 75, 84, 126, 17, 66, 191, 125, 101, 178, 32, 0, 31, 231, 53, 163, 120, 117, 200, 223, 14, 72, 12, 206, 240, 166, 102, 115, 238, 154]), value: EventValue([245, 3, 232, 156, 112, 132, 105, 138, 245, 252, 45, 186, 91, 8, 145, 0, 91, 168, 68, 90, 218, 253, 171, 94, 200, 146, 13, 97, 94, 27, 207, 51, 28, 89, 15, 245, 35, 41, 128, 227, 2, 120, 223, 221, 57, 54, 150, 24, 246, 230, 90, 16, 89, 215, 47, 115, 137, 243, 43, 215, 201, 50, 131, 16]) }, Event { key: EventKey([139, 180, 113, 179, 1, 233, 133, 195, 81, 67, 105, 91, 101, 231, 89, 100, 255, 35, 5, 131, 56, 205, 150, 188, 119, 93, 58, 79, 183, 159, 7, 175, 85, 174, 23, 222, 191, 73, 225, 121, 121, 125, 185, 58, 152]), value: EventValue([31, 35, 187, 117, 112, 189, 14, 93, 99, 35, 216, 209, 43, 241]) }, Event { key: EventKey([86, 166, 81, 224, 161, 112, 16, 39, 56, 149, 1, 104, 217, 9, 37, 58, 239, 243, 231, 94, 98, 165, 161, 154]), value: EventValue([197, 241, 22, 187, 13]) }, Event { key: EventKey([105, 78, 180, 69, 183, 166, 246, 164, 113, 190, 54, 12, 146, 7]), value: EventValue([101, 248, 117, 114, 225, 204, 182, 240, 245, 76, 72, 3, 204, 129, 229, 153, 3, 89, 161, 95, 73, 215, 3, 35, 37, 160, 10, 59, 223, 152, 40, 25, 39, 205, 42, 19, 247, 137, 120, 236, 67, 94, 247, 81, 181, 241, 77, 41, 38, 83, 180, 6, 192, 92, 175, 62, 44, 77, 231, 231, 237, 13, 193, 216, 51, 237, 57, 26, 92, 92, 26, 43, 179, 90, 249, 41, 237, 112, 62, 229, 41, 52, 117]) }, Event { key: EventKey([63, 173, 52, 12, 151, 140, 216, 104, 154, 21, 140, 156, 239, 79, 2, 52, 37, 183, 141, 248, 106, 104, 225, 87, 24, 21, 184, 35, 212, 35, 253, 183, 27, 161, 206, 53, 225, 192, 108, 29, 200, 197, 247, 174, 34, 247, 58, 7, 41, 158, 31, 102, 147, 80, 25, 220, 157, 163, 20, 171, 207, 52, 204, 250, 71, 54, 72, 215, 106, 119, 206, 190, 122, 82, 213, 151, 76, 225, 184, 166, 33, 11, 162]), value: EventValue([156, 171, 110, 37, 133, 94, 124, 116, 69, 154, 66, 214, 26, 214, 14, 45, 6, 89, 36, 116, 199, 51, 54, 168, 30, 224, 64, 68, 0, 95, 119, 185, 11, 221, 107, 165, 57, 97, 185, 251, 254, 35, 32, 182, 212, 228, 222, 47, 105, 150, 241, 111, 5, 249, 231, 90, 111, 75, 221, 154, 44, 122]) }, Event { key: EventKey([98, 192, 232, 84, 33, 70, 6, 37, 192, 141, 217, 24, 217, 175, 226, 170, 233, 32, 167, 204, 62, 20, 240, 52, 199, 243, 96, 14, 166, 245, 157, 39, 1, 38, 190, 91, 163, 126, 104, 199, 206, 131, 179, 59, 255, 79, 166, 253, 95, 58, 58, 232, 73, 23, 244, 20, 204, 255, 137, 25, 10, 130, 183, 240, 110, 239, 145, 28, 114, 173, 224, 132, 175, 131, 164, 77, 133, 237, 182, 77, 249, 66, 33, 14]), value: EventValue([202, 189, 8, 81, 113, 85, 12, 202, 197, 33, 168, 170, 238, 248]) }], receipt: 3595823648 }, TransactionReceipt { tx_hash: [192, 236, 34, 203, 33, 42, 203, 115, 151, 127, 3, 71, 129, 248, 78, 241, 73, 6, 38, 198, 221, 153, 219, 240, 180, 30, 133, 249, 193, 230, 242, 105], body_to_save: Some([164, 239, 158, 211, 34, 99, 243, 136, 214, 49, 141, 236, 25, 22, 62, 128, 62, 159]), events: [], receipt: 3497930389 }], inner: 1196915852 }, BatchReceipt { batch_hash: [129, 109, 142, 6, 61, 15, 250, 191, 231, 53, 106, 194, 159, 26, 182, 81, 147, 38, 44, 231, 177, 214, 58, 134, 113, 200, 231, 241, 60, 181, 85, 152], tx_receipts: [TransactionReceipt { tx_hash: [56, 20, 49, 233, 120, 135, 140, 118, 116, 58, 159, 90, 32, 153, 2, 97, 103, 41, 239, 31, 87, 15, 207, 111, 55, 158, 212, 183, 217, 10, 131, 102], body_to_save: None, events: [Event { key: EventKey([222, 82, 218, 192, 214, 232, 44, 75, 5, 175, 253, 149, 196, 73, 247, 199, 126, 54, 28, 15, 56, 171, 172, 241, 99, 254, 237, 102, 133, 232, 161, 228, 202, 197, 241, 51, 207, 105, 192, 237, 91, 164, 55, 156, 78, 49, 115, 90, 191]), value: EventValue([58, 116, 62, 153, 189, 241, 82, 73, 97]) }, Event { key: EventKey([16, 217, 224, 229, 132, 53, 238, 225, 109, 217, 125, 244, 233, 117, 80, 8, 255, 32, 8, 92, 179, 200, 223]), value: EventValue([170, 26, 242, 122, 104, 106, 142, 26, 108, 86, 30, 6, 173, 92, 52, 211, 111, 117, 210, 109, 5, 190, 213, 235, 49, 234, 125, 54, 174, 180, 120, 172, 237, 244, 151, 228, 140, 45, 121, 45, 68, 174, 0, 14, 35, 138, 119, 173, 158, 164, 136, 71, 79, 109]) }, Event { key: EventKey([83, 107, 19, 36, 98, 151, 193, 254, 132, 150, 0, 122, 38, 185, 149, 85, 70, 152, 59, 40, 97, 93, 102, 197, 220, 2, 18, 225, 64, 54, 162, 36, 58, 228, 45, 80, 209, 149, 228, 143, 62, 120, 193, 106, 104, 119, 218, 86, 227, 203, 64, 160, 121, 207, 103, 111, 94, 120, 220, 57, 218, 217, 97, 38, 131, 147, 30, 220, 85, 167, 17, 243, 143, 53, 99, 240, 254, 209, 23, 72, 105, 172]), value: EventValue([254, 254, 188, 49, 185, 76, 138, 132, 87, 103, 2, 89, 42, 66, 20, 132, 152, 166, 147, 195, 68, 179, 182, 94, 63, 93, 174, 65, 66]) }, Event { key: EventKey([104, 144, 185, 244, 27, 89, 164, 246, 226, 182, 94, 197, 112, 247, 223, 197, 31, 206, 251, 184, 8, 10, 152, 69, 138, 247, 180, 185, 174, 225, 194, 64, 72, 14, 211, 48, 71, 224, 238, 116, 241, 162, 58, 69, 250, 195, 84, 127, 94, 110, 121, 68, 206, 54, 227, 136]), value: EventValue([224, 60, 100, 75, 79, 153, 237, 234, 141, 167, 99, 49, 49, 94, 151, 147, 213, 18, 159, 3, 174, 6, 27, 208, 28, 217, 194, 31, 114, 30, 162, 234, 166, 47, 25, 225, 3, 136, 117, 161, 98, 40, 63, 184, 135, 43, 16, 186, 41, 237, 137, 185, 154, 181, 65, 244, 176, 1]) }, Event { key: EventKey([231, 1, 91, 85, 67, 255, 234, 48, 119, 136, 3, 167, 34, 24, 125, 54, 191, 161, 22, 129, 246, 231, 193, 218, 229, 253, 148, 119, 130, 244, 187, 123, 201, 50, 10, 125, 106, 36, 166, 5, 140, 64, 213, 75, 239, 16, 167, 101, 89, 79, 104, 193, 154, 188, 36, 166, 73, 59, 157, 233, 207, 106, 209, 118, 147, 124, 64, 53, 41, 51, 208, 17, 93, 227, 229, 128, 3, 245, 106, 238, 136, 128, 117, 34, 20, 244, 90, 44, 249, 218, 213, 146, 68, 128, 227]), value: EventValue([187, 223, 38, 16, 52, 207, 97, 119, 252, 195, 134, 247, 124, 228, 23, 221, 190, 183, 158, 34, 148, 119, 160, 242, 129, 74, 225, 98, 32, 57, 152, 119, 134, 102, 183, 154, 193, 159, 70, 240, 109, 140, 226, 234, 207, 195, 102, 177, 16, 179, 216, 41, 153, 3, 185, 106, 119, 90, 8, 141, 197, 159, 238, 243, 16, 192]) }, Event { key: EventKey([158, 83, 32, 158, 161, 93, 180, 166, 151, 91, 17, 55, 47, 224]), value: EventValue([]) }, Event { key: EventKey([249, 86, 77, 111, 37, 107, 38, 83, 88, 254, 232, 173, 48, 241, 166, 27, 129, 120, 36, 241, 211, 100, 241, 9, 45, 149, 17, 106, 111, 4, 215, 202, 37, 113, 26, 90, 205, 207, 141, 189, 22, 203, 211, 110, 117, 112, 239, 155, 40, 221, 204, 223, 171, 168, 241, 95, 75, 242, 135, 62, 126, 24, 215, 51, 59, 70, 249, 7, 56, 1, 46, 115, 196, 148, 36, 175, 170, 228, 196, 222, 45, 225, 241, 149, 21, 147, 143, 39, 218, 118, 134]), value: EventValue([11, 104, 234, 87, 136, 56, 51, 63, 232, 24, 65, 252, 142, 50, 110, 187, 158]) }], receipt: 860775225 }, TransactionReceipt { tx_hash: [116, 41, 58, 32, 183, 222, 149, 6, 147, 79, 244, 87, 99, 32, 68, 81, 146, 215, 226, 33, 69, 42, 159, 58, 162, 186, 89, 156, 71, 42, 229, 133], body_to_save: Some([13, 68, 66, 203, 106, 108, 31, 169, 195, 107, 104, 1, 140, 147, 88, 141, 24, 193, 29, 0, 178, 139, 47, 211, 172, 5, 107, 155, 135, 140, 36, 79, 14, 137, 38, 179, 238, 109, 94, 157, 65, 114, 217, 27, 37, 124, 87, 90, 153]), events: [], receipt: 3501146295 }, TransactionReceipt { tx_hash: [226, 244, 177, 11, 160, 1, 196, 51, 19, 94, 112, 224, 69, 225, 13, 16, 61, 180, 106, 33, 184, 251, 3, 176, 8, 145, 55, 50, 53, 204, 135, 191], body_to_save: None, events: [Event { key: EventKey([177, 239, 215, 23, 203, 71, 187, 9, 37, 159, 207, 212, 214, 107, 228, 243, 223, 98, 145, 111, 19, 155, 119, 160, 33, 58, 222, 83, 197, 147, 141, 112, 227, 153, 140, 244, 149, 247, 218, 157, 139, 226, 180, 55, 224, 41, 170, 152, 190, 44, 172, 35, 160, 68, 20, 78, 234, 234, 132]), value: EventValue([131, 113, 35, 112, 246, 181, 55, 160, 47, 109, 132, 188, 194, 244, 28, 27, 188, 176, 252, 31, 228, 200, 17, 110, 37, 81, 187, 35, 27, 50, 225, 247, 79, 186, 122, 20, 57, 35, 61, 167, 177, 17, 217, 180, 89, 111, 72, 31, 138, 186, 195, 107, 96, 183, 238, 133, 30, 249, 161, 118, 121, 41, 220, 27, 233, 173]) }, Event { key: EventKey([183, 51, 51, 4, 17, 61, 110, 54, 161, 65, 27, 210, 92, 135, 246, 128, 149, 118, 178, 108, 125, 5, 197, 41, 117, 29, 56, 107, 35, 30, 158, 130, 224, 147, 37, 166, 127, 77, 19, 81, 5, 178, 219]), value: EventValue([247, 99, 119, 168, 4, 80, 27, 4, 53, 155, 161, 133, 100, 63, 96, 142, 131, 159, 195, 203, 73, 209, 47, 38, 184, 87, 98, 150, 187, 110, 101, 89, 237, 183, 180, 95, 170, 14, 18, 197, 134, 22, 164, 206, 97, 90, 0, 168, 41, 43, 182, 113, 4, 147, 142, 229, 190, 192, 143, 202, 68, 3, 27]) }, Event { key: EventKey([116, 92, 172, 199, 23, 106, 81, 140, 140, 187, 101, 200, 126, 130, 164, 167, 61, 253, 146, 112, 255, 180, 208, 5, 102, 133, 107, 74, 37, 136, 90, 4]), value: EventValue([196, 23, 233, 141, 245, 41, 191, 30, 217, 81, 55, 224, 220, 183, 28, 71, 188, 124, 254, 30, 154, 132, 21, 134, 133, 98, 206, 28, 89, 12, 164, 66, 133, 15, 174, 122, 34, 118, 34, 37, 224, 179, 83, 12, 157, 8]) }, Event { key: EventKey([216, 255, 116, 195, 213, 54, 62, 78, 50, 186, 30, 19, 244, 77, 252, 173, 114, 169, 144, 68, 163, 149, 165, 112, 252, 169, 131, 53, 13, 101, 206, 9, 120, 96]), value: EventValue([100, 51, 237, 58, 120, 179, 161, 254, 45, 130]) }, Event { key: EventKey([108, 224, 196, 253, 243, 37, 91, 46, 161, 37, 32, 144, 123, 72, 158, 43, 125, 149, 32, 212, 84, 167, 72, 187, 10, 205, 151, 60, 232, 58, 144, 56, 200, 110]), value: EventValue([168, 70, 96, 192, 172, 162, 135, 199, 28, 169, 31, 1, 121, 7, 189, 182, 204, 170, 190, 13, 96, 113, 229, 250, 211, 255, 6, 239, 104, 216, 29, 137, 202, 228, 183, 10, 101, 8, 119, 223, 88, 52, 217, 195, 35, 181, 200, 28, 97]) }, Event { key: EventKey([7, 228, 133]), value: EventValue([137, 87, 223, 47, 82]) }, Event { key: EventKey([233, 97, 223, 155, 35, 248, 110, 70, 32, 72, 255, 127, 85, 116, 142, 146, 76, 126, 46, 171, 165, 103, 3, 142, 187, 123, 7, 65, 89, 145, 121, 203, 227, 96, 215, 146, 213, 186, 19, 2, 234, 152, 236, 73, 79, 45, 75, 126, 67, 125, 71, 66, 151, 176, 224, 179, 34, 183, 219, 113, 208, 221, 255, 139, 170, 49, 14, 221, 112, 225, 4, 53, 58, 180, 224, 169, 249, 163, 120, 89, 65, 181, 167, 72, 120, 97, 75, 60, 48, 160, 245, 9, 129, 3, 203, 174]), value: EventValue([158, 110, 146, 96, 193, 245, 89, 95, 212, 218, 77, 48, 225, 199, 136, 141, 33, 149, 210, 153, 231, 70, 219, 84, 33, 44, 115, 68, 22, 159, 249, 160, 132, 117, 125, 189, 160, 228, 201, 74, 235, 161, 31, 122, 31, 212, 105, 136]) }, Event { key: EventKey([136, 207, 65, 207, 176, 218, 60, 191, 116, 223, 95, 218, 211, 91, 89, 113, 140, 161, 10, 113, 137, 89, 138, 61, 196, 106, 38, 26, 51, 18, 62, 181, 244, 19, 174, 189, 37, 252, 233, 216, 109, 196, 146, 205, 157, 231, 234, 4, 50, 142, 249, 213, 107, 242, 92, 125, 126, 0, 255, 141, 196, 194, 7, 100, 136, 208, 245, 110, 22, 21, 234, 116, 39, 119, 169, 229, 84, 202, 68, 231, 33, 114, 108, 145, 33]), value: EventValue([133, 182, 223, 169, 191, 207, 176, 157, 165, 204, 115, 71, 74, 63, 158, 34, 38, 173]) }], receipt: 161314980 }, TransactionReceipt { tx_hash: [1, 202, 32, 93, 160, 234, 158, 149, 35, 149, 94, 245, 54, 67, 58, 11, 57, 42, 37, 161, 215, 222, 22, 230, 20, 223, 238, 91, 167, 62, 14, 103], body_to_save: None, events: [Event { key: EventKey([47, 166, 237, 143, 82, 75, 27, 228, 40, 113, 8, 211, 91, 103, 46, 5, 182, 175, 223, 106, 134, 141, 253, 199, 153, 247, 236, 214, 243, 250, 9, 28, 36, 12, 201, 17, 248, 240, 54, 144, 247, 29, 110, 196, 134, 162, 49, 179, 172, 231, 165, 65, 5, 13, 86, 136, 44, 168, 49, 191, 23, 101, 139, 47, 163, 217, 115, 80, 16, 158, 147, 162, 69, 42, 18, 236, 150, 121, 39]), value: EventValue([168, 116, 54, 213, 113, 165, 193, 202, 246, 25, 109, 224, 77, 121, 149, 50, 250, 81, 202, 149, 137, 225, 39, 86, 61, 77, 63, 175, 147, 47, 236, 195, 112, 152, 247, 67, 84, 117, 75, 245, 110, 238, 166, 118, 110, 126, 199, 145, 4, 212, 39, 17, 109]) }, Event { key: EventKey([164, 126, 71, 225, 72, 103, 236, 18, 126, 194, 195, 30, 155, 56, 122, 247, 105, 145, 111, 249, 46, 236, 207, 73, 174, 253, 103, 65, 233, 123]), value: EventValue([87, 32]) }, Event { key: EventKey([226, 22, 169, 193, 138, 130, 177, 233, 170, 23, 63, 196, 131, 134, 224, 128, 20, 75, 67, 207, 116, 214, 127, 144, 29, 70, 71, 146, 92, 253, 135, 10, 227, 187, 26, 107, 42, 156, 253, 137, 247, 179, 141, 244, 201]), value: EventValue([33, 141, 197, 133, 154, 75, 232, 29, 229, 146, 16, 210, 90, 147, 38, 216, 151, 182, 148]) }, Event { key: EventKey([163, 79, 198, 43, 140, 96, 25, 134, 140, 234, 226, 224, 200, 17, 27, 180, 1, 193, 100, 149, 204, 173, 17, 29, 38, 192, 141, 61, 223, 22, 202, 201]), value: EventValue([132, 230, 136, 253, 214, 4, 33, 96, 110, 93, 115, 189, 170, 13, 33, 191, 203, 108, 8, 65, 141, 7, 90, 220, 51, 214, 242, 23, 128, 237, 53, 116, 240, 133, 209, 145, 58, 215, 193, 125, 139, 219, 246, 218, 88, 189, 141, 166, 14, 188, 128, 49, 48, 19, 213, 236, 134, 202]) }, Event { key: EventKey([143, 28, 221, 180, 28, 39, 223, 4, 8, 244, 84, 118, 255, 154, 204, 96, 114, 70, 29, 10, 101, 30, 102, 193, 225, 186, 171, 35, 197, 190, 129, 101, 105, 105, 71, 138, 63, 172, 207, 105, 100, 153, 73, 242, 50, 247, 20, 155, 223, 92, 123, 198, 159, 67, 115, 37, 22, 150, 61, 117, 236, 137, 182, 154, 8, 215, 202, 100, 250, 62, 153, 34, 38, 44, 21, 68, 155, 193, 231, 27, 94, 209, 20, 128, 214, 90, 80, 109, 225, 106, 13, 209, 107, 240, 90, 243]), value: EventValue([49, 180, 121, 19, 50, 244, 177, 225, 208, 171, 201, 81, 212, 131, 52, 167, 170, 229, 237, 152, 231, 203, 40, 119, 138, 60, 2, 199, 96, 214, 201, 190, 68, 239, 255, 56, 104, 118, 215, 175, 122, 26, 229, 78, 169, 134, 231, 236, 63, 28, 73, 182, 195, 94]) }, Event { key: EventKey([187, 69, 117, 74]), value: EventValue([198, 217, 180, 154, 194, 224, 77, 224, 20, 116, 37, 26, 67, 168, 42, 152, 72, 20, 102, 17]) }, Event { key: EventKey([59, 146, 241, 227, 174, 28, 174, 175, 223, 240, 62, 64, 27, 8, 96, 245, 180, 27, 168, 23, 151, 5, 105, 194, 89, 151, 195, 104, 79, 84, 118, 81, 99, 237, 247, 194, 73, 116]), value: EventValue([12, 221, 159, 109, 221, 47, 234, 115, 18, 230, 78, 120, 44, 200, 244, 77, 134, 233, 90, 224, 255, 162, 249, 98, 56, 107, 38, 9, 113, 42, 39, 245, 109, 79, 251, 3, 97, 142, 61, 14, 107, 253, 24, 126, 174, 72, 137, 218, 117, 208, 178]) }, Event { key: EventKey([63, 209, 6, 71, 84, 109, 102, 85, 113, 238, 159, 139, 205, 53, 153, 112, 29, 243, 74, 45, 102, 174, 238, 89, 200, 168, 50, 217, 13, 23, 215, 119, 40, 10]), value: EventValue([147, 206, 2]) }, Event { key: EventKey([129, 183, 106, 181, 109, 60, 143, 36, 71, 246, 123, 63, 30, 181, 174, 4, 50, 168, 210, 95, 78, 231, 201, 23, 217, 202, 238]), value: EventValue([31, 135, 125, 210, 218, 233, 18, 36, 221, 80, 87, 103, 145, 26, 23, 172, 235, 253, 178, 239, 24]) }], receipt: 343177867 }, TransactionReceipt { tx_hash: [41, 213, 60, 206, 196, 99, 251, 68, 56, 78, 55, 22, 209, 201, 142, 186, 253, 10, 158, 44, 136, 111, 46, 72, 76, 147, 107, 237, 108, 54, 66, 200], body_to_save: Some([188, 185, 0, 239, 213, 126, 250, 175, 128, 248, 194, 54, 128, 110, 61, 201, 74, 34, 192, 124, 35, 231, 108, 28, 145, 214, 130, 68, 132, 37, 115, 113, 50, 235, 109, 229, 4, 173, 183, 26, 167, 191, 220, 243, 12, 154, 177, 74, 203, 20, 70]), events: [Event { key: EventKey([29, 78, 172, 95, 16, 187, 203, 81, 111, 209, 135, 229, 132, 128, 150, 9, 167, 75, 59, 117, 62, 60, 232, 6, 253, 187, 203, 178, 204, 155, 236, 195, 111, 75, 180, 197, 205, 131, 41]), value: EventValue([255, 33, 144, 14, 222, 191, 216, 130, 41, 217, 25, 188, 111, 229, 93, 91, 112, 99, 6, 88, 181, 162, 85, 152, 103, 106, 25, 211, 180, 119, 205, 175, 119, 81, 82, 71, 58, 154, 6, 3, 205, 195, 151, 226, 182, 60, 78, 124, 30, 241, 205, 180, 93, 103, 143, 27, 241, 41, 163, 238, 220, 206, 241, 189, 238, 103, 23, 239, 111, 211, 74, 3, 45, 121, 193, 158, 100]) }, Event { key: EventKey([132, 117, 134, 147, 152, 199, 102, 39, 12, 161, 185, 216, 253, 178, 28, 66, 195, 162, 27, 237, 43, 244, 216, 235, 43, 67, 78, 62, 60, 31, 254, 209, 4, 55, 151, 196, 20, 137, 200, 108, 124, 80, 107, 201, 131, 110, 239, 72, 175, 240, 211, 229, 100, 34, 38, 232, 103, 224, 22, 180, 48, 234, 198, 234, 102, 27, 19, 188, 126, 152, 12, 62, 179, 227, 74, 3, 68, 187, 203, 62, 77, 85, 57, 60, 222, 219, 71, 35, 104, 247]), value: EventValue([196, 196, 182, 105, 160, 36, 215, 10, 148, 19, 96, 156, 96, 244, 21, 248, 153, 142, 167, 43, 38, 223, 221, 11, 112, 64, 5, 153, 19, 162, 30, 123, 215, 226, 68, 224, 177, 12, 68, 153, 221, 190, 31, 105, 41, 22, 144, 21, 165, 21, 21, 246, 104, 75, 243, 84, 101, 72, 3, 236, 199, 224, 173, 134, 241, 242, 89, 76, 216, 141, 89, 116, 125, 111, 185, 196, 61, 147]) }, Event { key: EventKey([49, 106, 35, 177, 162, 106, 172, 208, 78, 232, 165, 91, 188, 102, 42, 245, 117, 19, 162, 111, 40, 134, 231, 172, 199, 121, 216, 141, 10, 180, 215]), value: EventValue([46, 170, 230, 209, 197, 170, 94, 238, 94, 244, 175, 195, 62, 222, 194, 175, 117, 29, 219, 244, 134, 132, 208, 208, 31, 128, 151, 115, 151, 93, 169, 103, 25, 172, 128, 177, 110, 48, 39, 179, 187, 121, 108, 127, 164, 44, 93, 22, 131, 160, 239, 215, 186, 222, 91, 5, 45, 8, 245, 18, 208, 234, 87, 109, 234, 211, 213, 214, 245, 103, 169, 172]) }, Event { key: EventKey([193, 170, 174, 134, 129, 127, 24, 29, 210, 156, 184, 26, 220, 64, 42, 3, 63, 201, 223, 160, 157, 45, 16, 145, 231, 51, 73, 115, 25, 204, 114, 168, 164, 118, 213, 106]), value: EventValue([168, 70, 19, 109, 0, 22, 49, 226, 170, 14, 24, 139, 248, 121, 0, 27, 49, 2, 74, 165, 146, 85, 49, 169, 33, 218, 215, 63, 49, 92, 152, 108, 253, 73, 205, 67, 170, 194, 122, 167, 37, 119, 201, 132, 231, 136, 63]) }, Event { key: EventKey([209, 181, 207, 211, 1, 186, 194, 117, 136, 232, 67, 99, 101, 84, 54, 31, 192, 174, 226, 21, 143, 136, 121, 107, 199, 161, 117, 216, 202, 109, 224, 8, 14, 38, 211, 183, 185]), value: EventValue([49, 189, 122, 99, 213, 100, 4, 76, 218, 249, 94, 40, 74, 19, 91, 235, 108, 93, 248, 157, 205, 66, 208, 112, 116, 197, 218, 82, 171, 231, 10, 244, 46, 233, 7, 143, 108, 172, 57, 72, 84, 53, 163, 165, 195, 142, 152, 112, 170, 169, 177, 95, 13, 109, 19, 29, 16, 151, 174, 106, 178, 57, 148, 244, 108, 137, 126, 126, 7, 139, 215, 71, 99, 170, 98, 96, 144, 19]) }, Event { key: EventKey([254, 145, 80, 108, 196, 245, 218, 161, 186, 238, 249, 186, 25]), value: EventValue([77]) }, Event { key: EventKey([225, 133, 40, 187, 93, 102, 96, 192, 142, 54, 94, 98, 24, 192, 89]), value: EventValue([62, 144, 95, 55, 237, 158, 1, 191, 23, 125, 163, 196, 9, 77, 133, 176, 152, 55, 168, 124, 93, 161, 70, 18, 236, 61, 163, 121, 171, 129, 76, 21, 249, 137, 157, 222, 117, 128, 195, 178, 190, 88, 32, 72, 110, 93, 237, 148, 147, 192, 18, 70, 0, 46, 107, 42, 188, 221, 120, 98, 175, 223, 59, 62, 159, 140, 154, 118, 71, 216, 69, 123, 153, 214, 212, 225, 101, 113, 237, 115, 99, 113, 70, 89, 187, 23, 109, 130, 65, 253, 37, 37, 39, 244, 104, 21, 240]) }], receipt: 2002047353 }, TransactionReceipt { tx_hash: [92, 175, 221, 167, 230, 127, 68, 194, 229, 122, 185, 195, 24, 133, 67, 209, 201, 1, 5, 162, 116, 175, 46, 5, 34, 216, 41, 106, 201, 156, 215, 131], body_to_save: Some([87, 171, 254, 15, 243, 79, 92, 2, 243]), events: [Event { key: EventKey([35, 103, 113, 201, 13, 193, 8, 206, 25, 197, 20, 252, 31, 240, 205, 41, 211, 5, 255, 158, 66, 103, 215, 189, 134, 17, 119, 101, 166, 62, 37, 112, 220, 204, 55, 122, 125, 111, 23, 231, 38, 183, 105, 156, 3, 237, 188, 204, 252, 13, 66, 250, 159, 106, 239, 29, 241, 240]), value: EventValue([235, 22, 23, 69, 171, 110, 135, 176, 129, 232, 224, 58, 58, 202, 223, 122, 84, 36, 125, 44, 54, 249, 244, 203, 8, 57, 170, 179, 22, 216, 101, 109]) }, Event { key: EventKey([39, 87, 40, 203, 110, 254, 99, 250, 79, 21, 122, 133, 98, 246, 167, 105, 6, 253, 31, 82, 15, 14, 49, 199, 82, 214]), value: EventValue([50, 48, 12, 139, 13, 10]) }, Event { key: EventKey([10, 183, 237, 20, 9, 19, 22, 129, 146, 212, 53, 251, 119, 144, 14, 67, 171, 255, 58, 77, 167, 214, 160, 140, 3, 35, 78, 100, 102, 142, 98, 97, 10, 156, 4, 224, 67, 212, 194, 51, 198, 140, 16, 49, 146, 180, 119]), value: EventValue([230, 60, 111, 73, 175, 120, 243, 198, 177, 55, 140, 123, 193, 31, 81, 167, 32, 94, 226, 28, 14, 183, 195, 34, 69, 227, 252, 116, 61, 177, 40, 221, 37, 88, 51, 179, 187, 120, 51, 173, 57, 79, 226, 137, 224, 133, 221, 105, 76, 58, 237]) }, Event { key: EventKey([37, 146, 181, 168, 129, 12, 200, 146, 240, 26, 10, 226, 169, 101, 231, 168, 144, 187, 228, 17, 247, 235, 216, 228, 74, 247, 77, 60, 71, 27, 20, 23, 50, 240, 43, 36, 139, 247, 84, 203, 120, 47, 10, 104, 38, 35, 13, 169, 97, 16, 212, 75, 126, 214, 132, 165, 106, 212, 199, 37, 76, 42, 0, 158, 220, 160, 249, 94, 87, 246, 195, 30, 26]), value: EventValue([]) }], receipt: 2951057888 }, TransactionReceipt { tx_hash: [167, 139, 56, 131, 234, 137, 182, 57, 80, 251, 23, 67, 31, 56, 50, 136, 202, 88, 223, 233, 102, 178, 220, 175, 235, 23, 108, 194, 109, 82, 194, 0], body_to_save: None, events: [], receipt: 2283184448 }], inner: 3589035644 }, BatchReceipt { batch_hash: [117, 121, 141, 13, 208, 84, 193, 176, 150, 156, 64, 112, 182, 126, 208, 104, 125, 219, 93, 210, 173, 200, 8, 74, 19, 183, 119, 47, 229, 21, 180, 7], tx_receipts: [TransactionReceipt { tx_hash: [180, 110, 160, 202, 237, 188, 49, 228, 78, 104, 89, 52, 190, 144, 248, 219, 238, 201, 73, 124, 243, 185, 229, 105, 154, 86, 175, 4, 200, 254, 103, 156], body_to_save: Some([204, 254, 91, 206, 64, 253, 66, 110, 245, 21, 8, 51, 164, 21, 82, 84, 104, 10, 129, 105, 236, 132, 125, 97, 86, 194, 91, 23, 170, 254, 35, 53, 136, 212, 206, 43, 253, 69, 39, 246, 6, 103, 2, 20, 234, 164, 232, 247, 26, 81, 66, 192, 200, 15, 96, 200, 240, 150, 190]), events: [Event { key: EventKey([211, 137, 119, 40, 247, 41, 18, 232, 125, 34, 37, 91, 197, 116, 122, 133, 53, 32, 151, 84, 26, 134, 156, 201, 165, 36, 183, 130, 116, 150, 156, 191, 117, 30, 220, 210, 215, 10, 185, 162, 253, 115, 176, 38, 244, 159, 237, 133, 201, 113, 180, 19, 229, 70, 167, 125, 60, 212, 91, 139]), value: EventValue([250, 44, 130, 25, 221, 65, 76, 114, 247, 149, 1, 55, 6, 174, 142, 126, 81, 44, 3, 252, 74, 114, 44, 62, 161, 157, 14, 232, 172, 95, 149, 250, 121, 140, 172, 200, 177, 106, 159, 204, 206, 191, 151, 74, 63, 22, 161, 92, 25, 169, 101, 159, 221, 150, 219, 229, 207, 140, 219, 35, 123, 97, 54, 81, 255, 165, 198, 173, 129, 116, 14, 105, 11, 116, 158, 31, 52]) }, Event { key: EventKey([177, 135, 215, 220, 7, 231, 200, 216, 158, 41, 128, 34, 170, 249, 29, 236, 101, 211, 139, 50, 43, 246, 149, 13, 78, 28, 87, 242, 35, 179]), value: EventValue([54, 176, 106, 175, 174, 9, 45, 54, 80, 89, 107, 144, 223, 183, 49, 45, 223, 241, 54, 14, 223, 102, 6, 227, 238, 186, 20, 145, 7, 3, 223, 114, 182, 245, 44, 20, 155, 75, 178, 142, 252, 59, 227, 165, 85, 252, 139, 104, 61, 70, 99, 238, 126, 119, 55, 178, 128, 28, 70, 160, 213, 196, 122, 241, 1, 182, 122, 122, 191, 28, 227]) }, Event { key: EventKey([22, 62, 28, 71, 230, 188, 126, 123, 76, 61, 209, 168, 80, 75, 68, 85, 26, 217]), value: EventValue([117, 24, 24, 234, 175, 98, 219, 17, 250, 255, 79, 22, 149, 32, 103, 118, 5, 252, 13, 215, 248, 131, 33, 65, 187, 142, 247, 236, 217, 226, 81, 212, 28, 72, 252, 59, 11, 234, 141, 220, 104, 67, 214, 48, 174, 30, 52, 52, 237, 94, 48, 28, 224, 53, 48, 171, 152, 197, 122, 140, 99, 152, 205, 69, 231, 222, 105, 109, 172]) }], receipt: 3542291046 }, TransactionReceipt { tx_hash: [153, 185, 161, 42, 128, 47, 7, 228, 100, 219, 244, 125, 233, 138, 44, 33, 197, 151, 133, 128, 73, 196, 19, 7, 90, 122, 245, 90, 174, 242, 108, 127], body_to_save: Some([109, 60, 13, 237, 202, 100, 59, 139, 235, 20, 238, 193, 192, 45, 217, 206, 118, 152, 50, 254, 244, 57, 45, 88, 142, 184, 43, 212, 180, 150, 159, 44, 235, 170, 196, 132, 101, 73, 14, 241, 226, 0, 43, 9, 233, 193, 164, 88, 49, 35, 73, 54, 89, 215, 191, 45, 58, 66, 38]), events: [Event { key: EventKey([33, 86, 220, 123, 195, 224, 96, 139, 101, 81]), value: EventValue([30, 245, 89, 90, 198, 51, 145, 222, 148, 58, 110, 95, 85, 174, 5, 231, 140, 187, 223, 8, 71, 98, 108, 174, 33, 120, 61, 197, 76, 141, 142, 52, 184, 49, 8, 108, 65, 253]) }, Event { key: EventKey([220, 130, 228, 100, 101, 68, 234, 91, 55, 123, 203, 140, 167, 247, 247, 2, 176, 190, 248, 172, 140, 231, 161, 189, 139, 89, 43, 6, 132, 2, 9, 102, 115, 100, 43, 13, 84, 25, 225, 188, 39, 124, 222, 111, 233, 72, 216, 126, 219, 71, 3, 249, 213]), value: EventValue([148, 42, 41, 251, 182, 110, 107, 28, 208, 26, 186, 171, 67, 102, 126]) }, Event { key: EventKey([66, 135, 104, 62, 163, 17, 27, 241, 129, 211, 210, 22, 139, 161, 195, 138, 77, 79, 153, 35, 215, 174, 154, 29, 53, 238, 153, 8, 106, 36, 29, 130, 4, 156, 141, 106, 114, 87, 143, 97, 141, 39, 244, 217, 85, 103, 200, 74, 56, 229, 54, 155, 248, 253, 9, 176, 128, 130, 92, 43, 25, 83, 245, 166, 29, 33, 163, 219, 221, 239, 116, 168, 99, 9, 108, 128, 134, 118, 192, 8, 9, 58, 164, 122]), value: EventValue([102, 204, 101, 103, 76, 60, 251, 190, 210, 15, 60, 98, 119, 59, 89, 155, 59, 170, 255, 198, 174, 174, 156, 133, 199, 247, 142, 26, 41, 2, 35, 161, 18, 12, 135, 224, 12, 80, 126, 11, 33, 142, 68, 181, 30, 140, 68, 219, 86, 172, 136, 192, 56, 1, 250, 130, 225, 61, 186, 183, 255, 228, 35, 23, 110, 235, 36, 253, 113, 193, 97, 36, 151, 42, 58, 176, 83, 122, 174, 15, 251, 115, 233, 36, 62, 163, 0, 44, 139, 78, 194, 242]) }, Event { key: EventKey([254, 121, 161, 63, 147, 66, 52, 147, 162, 22, 46, 13, 51, 77, 10, 183, 121, 75, 22, 145, 90, 161, 23, 161, 206, 239, 43, 192, 181, 221, 107, 2, 13, 255, 30, 95, 40, 64, 219, 102, 74, 219, 139, 105, 96, 202, 83, 180, 229, 212, 239, 169, 219, 209, 184, 118, 3, 85, 244, 81, 175, 157, 110, 10, 212, 66, 200, 185, 95, 215, 52, 191, 208, 232, 14, 252, 234, 114, 35, 47, 132]), value: EventValue([36, 188, 4, 49, 146, 80, 254, 166, 208, 191, 44, 14, 138, 2, 188, 134, 61, 149, 50, 54, 26, 179, 113, 135, 240, 189, 81, 5, 149, 125, 209, 23, 238, 45, 152, 23, 16, 103, 161, 132, 82, 134, 190, 52, 132, 32, 110, 169, 250, 169, 246, 8, 53, 225, 96, 252, 183, 221, 136, 128, 168, 75, 40, 169, 160, 60, 93, 221, 247, 199, 101, 206, 122, 135, 142, 40, 238, 18, 92, 217, 108, 103, 128, 102]) }, Event { key: EventKey([244, 16, 77, 225, 226]), value: EventValue([208, 90, 235, 81, 241, 121, 192, 199, 42, 26, 234, 63, 18, 217, 143, 188, 69, 168, 183, 232, 54, 11, 171, 109, 215, 174, 219, 235, 153, 230, 95, 31, 162, 226, 133, 131, 146, 103, 158, 9, 147, 169, 24, 220, 92, 1, 250, 201, 204, 62, 47, 228, 30, 101, 17, 12, 228, 1, 105, 149, 90, 164, 252, 214, 163, 170, 175, 234, 95, 163, 200, 160, 75, 149, 164, 81, 37, 245]) }, Event { key: EventKey([187, 150, 178, 21, 163, 196, 45, 39, 3, 46, 12, 23, 113, 229, 62, 90, 177, 142, 131, 220, 177, 211, 195]), value: EventValue([38]) }, Event { key: EventKey([123, 64, 243, 171, 190, 209, 164, 126, 230, 223, 227, 205, 24, 208, 167, 73, 232, 245, 54, 163, 190, 129, 118, 187, 161, 253, 146, 172, 43, 87, 151, 144, 7, 63, 72, 99, 88, 209, 30, 135, 178, 216, 71, 173, 158, 69, 85, 65, 18, 111, 32, 206, 236, 215, 241, 13, 196, 32, 233, 72, 154, 159, 39, 116, 23, 168, 245, 250, 37, 241, 223, 52, 45, 104, 95, 174]), value: EventValue([112, 81, 248, 52, 122, 126, 31, 124, 106, 192, 175, 93, 184, 157, 42, 202, 87, 56, 237, 99, 28, 254, 168, 38, 12, 42, 190, 16, 3, 142, 99, 118, 13, 248, 173, 129, 154, 97, 210, 93, 175, 237, 6, 194, 149, 11, 39, 143, 109, 104, 2, 156, 180, 119, 95, 110, 80, 162, 178, 1, 240]) }], receipt: 2809907405 }, TransactionReceipt { tx_hash: [186, 127, 135, 132, 151, 162, 228, 46, 11, 84, 185, 77, 78, 74, 4, 225, 128, 148, 26, 54, 126, 193, 192, 122, 37, 97, 158, 213, 65, 173, 40, 228], body_to_save: None, events: [Event { key: EventKey([44, 211, 47, 114, 86, 133, 224, 102, 145, 200, 76, 73, 210, 218, 16, 182, 17, 141, 133, 173, 171, 132, 60, 116, 250, 237, 73, 103, 108, 61, 231, 71, 142, 241, 41, 253, 65, 78, 148, 152, 98, 196, 215, 103, 31, 29, 53, 63, 128, 197, 1, 234, 82, 14, 170, 53, 95, 202, 10, 37, 209, 156, 122, 154, 122, 120, 44, 228, 68]), value: EventValue([151, 194, 154, 32, 163, 108, 190, 200, 80, 153, 30, 55, 198, 242, 252, 124, 133, 231, 31, 212, 113, 44, 19, 130, 254, 160, 161, 169, 140, 205, 209, 29, 99, 211, 170, 228, 32, 226, 64, 127, 238, 162, 110, 121, 111, 105, 14]) }], receipt: 2252066293 }, TransactionReceipt { tx_hash: [207, 45, 0, 4, 90, 154, 114, 23, 247, 3, 52, 111, 133, 107, 13, 181, 6, 193, 37, 98, 114, 112, 4, 248, 238, 50, 242, 21, 32, 198, 60, 99], body_to_save: None, events: [Event { key: EventKey([48, 239, 151, 132, 24, 122, 201, 3, 90, 24, 202, 133, 153, 198, 222, 217, 221, 112, 85, 18, 53, 1, 183, 69, 183, 17, 100, 176, 13, 86, 138, 183, 44, 162, 252, 181, 130, 230, 228, 121, 104, 207, 211, 30, 64, 98, 23, 90, 3, 14, 222, 96, 186, 41, 178, 209, 20, 110, 16]), value: EventValue([177, 179, 131, 147, 80, 66, 227, 182, 109, 84, 151, 194, 46, 128, 191]) }, Event { key: EventKey([91, 74, 7, 138, 200, 225, 186, 35, 112, 195, 222, 200, 216, 107, 200, 98, 132, 15, 144, 114, 123, 126, 112, 91, 219, 34, 128, 43, 27, 109, 222, 13, 112, 1, 132, 145, 234, 100, 86, 241, 140, 176, 184, 93, 90, 159, 79, 11, 111, 167, 17, 97, 123, 118, 236, 175, 167, 50, 169, 87, 242, 254, 83, 210, 18, 178, 49, 145, 74, 167, 55, 129, 29, 200, 224, 147, 194, 249, 253, 132, 121, 246, 215, 189, 74, 228, 7]), value: EventValue([196, 53, 143, 217, 243, 157, 38, 27, 216, 142, 172, 115, 138, 46, 96, 1, 180, 156, 175, 10, 38, 209, 124, 245, 114, 138, 249, 109, 142, 111, 52, 57, 17, 31, 186, 68, 185, 227, 133, 195, 67, 130, 81, 151, 122, 68, 157, 157, 135, 254, 75, 236, 83, 7, 149, 51, 105, 236, 228, 47, 213, 112, 118, 151]) }, Event { key: EventKey([213, 152, 245, 207, 53, 174, 247, 6, 64, 61, 230, 233]), value: EventValue([216, 158, 148, 126, 68, 121, 233, 229, 199, 233, 36, 221, 107, 150, 245, 95, 221, 40, 98, 1, 54, 126, 40, 110, 3, 254, 64, 137, 180, 212, 218, 41, 123, 90, 160, 152, 234, 205, 38, 128, 78, 65, 146, 194, 149, 124, 187, 254, 149, 170, 218]) }, Event { key: EventKey([178, 252, 90, 8, 111, 180, 2, 131, 118]), value: EventValue([246, 150, 57, 203, 12, 22, 149, 22, 73, 171, 83, 26, 213, 189, 87, 221, 105, 55, 119, 205, 162, 239, 47, 11, 39, 110, 6, 87, 114, 146, 123, 87, 85, 217, 239, 142, 156, 247, 9, 129, 158, 196, 154, 172, 200, 112, 242, 88, 97, 77, 68, 152, 152, 128, 241, 125, 181, 208, 183, 122, 67, 68, 165, 30, 64, 175, 219, 37, 165, 79, 161, 54]) }], receipt: 2268202147 }, TransactionReceipt { tx_hash: [46, 168, 58, 68, 52, 134, 165, 231, 182, 52, 101, 223, 178, 233, 197, 40, 11, 87, 72, 147, 31, 99, 114, 68, 71, 204, 174, 213, 115, 180, 51, 12], body_to_save: Some([114, 154, 100, 250, 41, 62, 140, 220, 153, 50, 98, 154, 10, 82, 107, 140, 223, 61, 85, 74, 7, 81, 129, 230]), events: [Event { key: EventKey([86, 92, 226, 87, 132, 252, 122, 69, 114, 103, 83, 220, 138, 123, 142, 148, 48, 107, 193, 194, 121, 134, 198, 139, 46, 131, 46, 23, 130, 166, 201, 179, 103, 223, 119, 37, 29, 122, 95, 22, 78, 11, 82, 13, 219, 84, 212, 111, 74, 148, 188, 102, 32, 63, 1, 119, 207, 59, 34, 46, 176, 66, 254, 141]), value: EventValue([70, 29, 191, 88, 15, 3, 193]) }, Event { key: EventKey([210, 142, 248, 245, 91, 169, 201, 130, 217, 181, 165, 85, 166, 173, 107, 53, 229, 167, 228, 14, 233, 122, 110, 212, 20, 44, 117, 93, 234, 31, 130, 76, 121, 184, 167, 44, 69, 71, 204, 37, 145, 24, 174, 14, 194, 94, 239, 19, 244, 97, 96, 61, 224, 199, 110, 104, 106, 137, 130]), value: EventValue([175, 214, 30, 66, 108, 95, 240, 216, 139, 77, 101, 31, 60, 129, 182, 46, 75, 88, 148, 27, 52, 135, 71, 27, 227, 115, 127, 12, 55, 177, 71, 252, 253, 217, 156, 138, 63, 71, 197, 198, 171, 164, 50, 190, 205, 245, 134, 65, 47, 221, 95, 198, 0, 188, 155, 115, 186, 93, 23, 87, 254, 228, 200, 219, 55, 243, 108, 203, 206, 189, 48, 153, 249, 141, 118, 65, 69, 153, 189]) }, Event { key: EventKey([25, 229, 141, 49, 32, 67, 179, 32, 37, 85, 206, 174, 96, 11, 83, 130, 53, 144, 171, 75, 189, 191, 25, 180, 241, 21, 238, 186, 216, 216, 177, 188, 20, 243, 30, 26, 30, 50, 61, 74, 232, 199, 19, 244, 51, 119, 15, 204, 117, 111, 134, 1, 190, 20, 75, 56, 205, 137, 174, 13, 105, 25, 235, 184, 246, 17, 54, 21, 130, 4, 33, 190, 51, 79, 167, 160, 44, 165, 92, 11, 237, 101, 30, 123, 9, 249, 12, 170, 168, 208, 98, 73, 243, 210]), value: EventValue([139, 231, 172, 134, 46, 72, 204, 62, 228, 237, 146, 107, 174, 168, 4, 216, 110, 68, 199, 199, 31, 21, 76, 187, 165, 13, 65, 122, 19, 253, 170, 83, 217, 255, 101, 221, 7, 102, 72, 76, 134, 52, 27, 126, 30, 200, 183, 175, 230, 213, 167, 94, 70, 178, 175, 17, 99, 131, 2, 200, 234, 220, 65, 97, 248, 206, 74, 64, 50, 188, 46, 70]) }, Event { key: EventKey([64, 113, 89, 130, 249, 75, 143, 207, 146, 15, 22, 28, 138, 236, 246, 133, 25, 0, 207, 248, 248, 87, 122, 66, 149, 186, 164, 223, 207, 169, 214, 249, 185, 150, 90, 183, 165, 29, 249, 143, 150, 218, 126, 218, 13, 158, 52, 239, 62, 129, 249, 9, 82, 238, 200, 192, 57, 31, 233, 219, 214, 139, 227, 69]), value: EventValue([113, 235, 16, 93, 90]) }, Event { key: EventKey([167, 206, 179, 37, 92, 214, 151, 181, 225, 209, 187, 115, 160, 159, 165, 70, 76, 198, 228, 241, 34, 78, 132, 74, 5, 155, 13, 9, 116, 53, 200, 158, 101, 86, 208, 134, 39, 10, 159, 180, 48, 0, 18, 118, 14, 73, 63, 51, 214, 87, 240, 240, 156, 207, 187, 134, 122, 182, 214, 37]), value: EventValue([160, 44, 131, 5, 46, 55, 113, 81, 241, 122, 137, 57, 123, 194, 225, 88, 113, 58, 208, 191, 140, 39]) }, Event { key: EventKey([229, 151, 29, 89, 79, 49, 247, 240, 200, 167, 106, 36, 91, 34, 139, 2, 246, 209, 13, 85, 110, 110, 189, 36, 190, 50, 1, 117, 33, 121, 57, 30, 133, 219, 67, 199, 233, 65, 58, 22, 205, 200, 172, 194, 112, 90, 174, 38]), value: EventValue([242, 155, 108, 120]) }], receipt: 4288157039 }, TransactionReceipt { tx_hash: [251, 80, 140, 50, 175, 136, 142, 69, 228, 167, 136, 26, 31, 248, 249, 5, 131, 34, 64, 178, 226, 87, 162, 110, 151, 36, 55, 11, 88, 134, 224, 72], body_to_save: Some([118, 25, 113, 233, 30, 149, 120, 12, 110, 193, 99, 205, 44, 195, 159, 194, 26, 221, 84, 161, 162, 159, 117, 5, 110, 14, 174, 91, 186, 60, 26, 213, 99, 172, 64, 204, 51]), events: [Event { key: EventKey([133, 199, 113, 214, 28, 161, 78, 40, 110, 41, 224, 224, 98, 105, 159, 238, 251, 221]), value: EventValue([23, 89, 4, 155, 160, 228, 151, 251, 153, 83, 249, 193, 214, 217, 66, 67, 189, 60, 72, 68, 155, 242, 82, 53, 205, 151, 84, 71, 9, 92, 213, 81, 45, 50, 135, 158, 102, 246, 172, 222, 120, 183, 163, 1, 33, 127, 5, 166, 87, 120, 125, 163, 68, 60, 34, 101, 215, 167, 251, 214, 124, 73, 129, 233, 29, 131, 255, 110, 245]) }, Event { key: EventKey([26, 201, 170, 164, 64, 196, 8, 6, 173, 27, 160, 154, 35, 78, 185, 173, 252, 80, 248, 65, 105, 107, 196, 204, 194, 221, 57, 221, 198, 126, 148, 143, 60, 108, 149, 171, 20, 237, 98, 162, 219, 215, 132, 163, 41, 93, 247, 170, 96, 232, 132, 13, 47, 128, 165, 245, 253, 12, 188, 184, 140, 182, 69, 30, 185, 1, 243, 18, 207, 133, 88, 6, 50, 82, 216, 187, 183, 111, 231, 109, 46, 229, 113, 240, 247, 159, 34, 50, 180]), value: EventValue([191, 139, 254, 210, 10, 132, 250, 124, 15, 230, 128, 101, 151, 68, 226, 238, 101]) }], receipt: 4199520773 }, TransactionReceipt { tx_hash: [202, 97, 21, 18, 255, 233, 175, 48, 255, 159, 57, 102, 59, 96, 236, 59, 186, 255, 161, 66, 34, 231, 198, 110, 164, 146, 201, 43, 58, 16, 210, 171], body_to_save: None, events: [Event { key: EventKey([67, 184, 100, 172, 77, 113, 56, 14, 11, 239, 91, 170, 232, 205, 97, 145, 164, 190, 99, 43, 160, 67, 214, 76, 176, 216, 218, 215, 80, 4, 78, 60, 9, 115, 33, 157, 254, 252, 114, 79, 176, 181, 69, 104, 137, 108, 4, 116, 37, 4, 106, 43, 204, 53, 56, 254]), value: EventValue([143, 174, 28, 8, 154, 137, 70, 239, 245, 38, 34, 241, 45, 129, 138, 51, 230, 67, 49, 78, 98, 122, 43, 148, 248, 46, 114, 12, 114, 86, 218, 153, 151, 164, 92, 162, 159, 84, 41, 71, 161, 52]) }, Event { key: EventKey([203, 13, 43, 153, 123, 190, 247, 68, 1, 220, 140, 59, 132, 185, 213, 172, 217, 70, 223, 169, 58, 171, 203, 230, 179, 11, 197, 181, 78, 104, 7, 244, 38, 88, 2, 63, 95, 55, 151, 210, 103, 191, 151, 178, 36, 159, 93, 128, 66, 15, 72, 59, 81, 226, 243, 107, 201, 6, 116, 254, 77, 87, 75, 254, 198, 254, 46, 240, 183, 191, 19, 168, 185, 58, 25, 228, 122, 92, 216, 152, 189, 48, 251, 115, 161, 158, 5, 48, 82, 49, 72, 169, 74, 167, 203, 5, 197, 74]), value: EventValue([238, 120, 21, 234, 240, 9, 113, 178, 154, 227, 202, 101, 162, 231, 119, 130, 155, 246, 240, 91, 47, 10, 198, 47, 230, 238, 18, 223, 223, 23, 116, 203, 3, 196, 16, 187, 149, 186, 160, 34, 166, 120, 12, 16, 197, 224, 69, 180, 82, 236, 7, 20, 245, 201, 112, 193, 3, 199, 164, 46, 98, 181, 25, 164, 216, 162, 133, 193]) }, Event { key: EventKey([173, 54, 66, 45, 161, 73, 162, 37, 71, 94, 222, 122, 230, 54, 195, 143, 242, 81, 180, 157, 4, 114, 237, 32, 86, 191, 253, 124, 98, 144, 15, 253, 232, 202, 62, 43, 124, 45, 100, 197, 219, 105, 253, 204, 5, 38, 4, 218, 136, 168, 123, 175, 8, 83, 157, 136, 28]), value: EventValue([97, 124, 22, 255, 189, 220, 105, 231, 79, 88, 112, 64, 229, 107, 58, 21, 127, 245]) }, Event { key: EventKey([232, 97, 65, 165, 94, 55, 76, 77, 221, 192]), value: EventValue([190, 89, 236, 209, 206, 154, 57, 202, 92, 21, 89, 73, 179, 37, 220, 106, 172, 81, 16, 29, 27, 236, 141, 41]) }, Event { key: EventKey([106, 243, 130, 109, 114, 240, 27, 88, 70, 225, 89, 227, 187, 82, 126, 174, 31, 149, 235, 149, 6, 46, 172, 123, 158, 143, 243, 221, 82, 158, 6, 180, 180, 97, 99, 47, 18, 107, 215, 43, 151, 189, 73, 120, 246, 93, 220, 79, 26, 10, 213, 188, 29, 191, 246, 145, 235, 130, 54, 107, 9, 193, 107, 137, 151, 171, 187, 33, 173, 67, 223, 121, 20, 133, 255, 159, 226, 20, 124, 154, 48, 227, 27]), value: EventValue([163, 137, 97, 44, 166, 234, 115, 81, 220, 109, 15, 117, 86, 55, 165, 144, 126, 178, 120, 102, 97, 146, 218, 22, 242, 0, 214, 121, 27, 205, 255, 124, 77, 31, 42, 44, 2, 202, 101, 131, 56, 217, 110, 125, 13, 65, 156, 220, 187, 118, 194, 234, 237, 223]) }], receipt: 1027538092 }, TransactionReceipt { tx_hash: [33, 115, 54, 227, 102, 200, 108, 36, 39, 185, 210, 2, 169, 190, 181, 242, 66, 149, 100, 74, 85, 205, 170, 99, 150, 229, 197, 62, 240, 129, 10, 224], body_to_save: None, events: [Event { key: EventKey([118, 33, 18, 24, 65, 189, 9, 192, 190, 191, 26, 183, 138, 183, 230, 31, 81, 64, 189, 207, 151, 52, 254, 242, 57]), value: EventValue([213, 235, 169, 183, 196, 55, 179, 9, 234, 150, 24, 144, 12, 14, 92, 210, 254, 109, 102, 223, 117, 126, 147, 77, 177, 70, 96, 117, 69, 238, 128, 216, 184, 239, 187, 25, 196, 163, 101, 14, 165, 129, 139, 250, 142, 114, 180, 91, 185, 114, 41, 190, 35, 246, 231, 210, 204]) }, Event { key: EventKey([229, 73, 74, 55, 153, 249, 117, 118, 42, 134, 21, 167, 78, 109, 193, 104, 95, 25, 16, 252, 38, 27, 141, 180, 101, 215, 66, 173, 117, 254, 54, 60, 150, 198, 224, 54, 229, 190, 30, 175, 15, 0, 23, 232, 114, 76, 35, 248, 67, 118, 118, 169, 180, 200, 253, 62, 0, 226, 13, 226, 52, 10, 3, 29, 205, 137, 5, 196, 215, 98, 148, 206, 251, 152, 244, 117]), value: EventValue([14, 197, 246, 255, 152, 34, 193, 38, 42, 177, 131, 111, 173, 177, 71, 130, 69, 21, 45, 40, 32, 242, 152, 105, 115, 255, 212, 132, 200, 239, 196, 147, 146, 173, 22, 72, 226, 229, 107, 71, 229, 96, 102, 56, 41, 248, 55, 89, 66, 191, 25, 216, 189, 131, 242, 168, 194, 102, 47, 157, 123, 25, 129, 230, 178, 2, 10, 141, 128, 163, 236, 184, 231]) }, Event { key: EventKey([]), value: EventValue([4, 137, 54, 165, 234, 189, 54, 215, 140, 58, 77, 189, 58, 223, 209, 161, 41, 26, 18, 102, 159, 5, 117, 119, 135, 242, 235, 223]) }, Event { key: EventKey([156, 86, 122, 3, 85, 230, 66, 114, 218, 191, 19, 75, 155, 224, 233, 172, 71, 108, 181, 151, 54, 245, 93, 61, 28, 80, 161, 85, 255]), value: EventValue([187, 139, 93, 226, 150, 88, 235, 94, 143, 71, 29, 103, 180, 64, 39, 174, 160, 103, 201, 59, 92, 48, 196, 78, 6, 37, 249, 240, 210, 223, 128, 208, 38, 241, 111, 12, 134, 245, 207, 197, 65, 255, 34, 202, 240, 19, 153, 81, 129, 111, 68, 192, 223, 120, 215, 242, 126, 205, 167, 185, 231, 242, 214, 46, 149, 161, 159, 75, 217, 50, 136, 198, 36, 12, 194, 34, 226, 71, 112, 137, 234, 155, 242, 207, 248, 65, 183, 59, 129]) }, Event { key: EventKey([161, 61, 251, 92, 158, 239, 205, 35, 237, 18, 150, 150, 137, 251, 207, 49, 183, 175, 140, 185, 254, 94, 188, 102, 224, 69, 180, 122, 191, 159, 24, 112, 164, 166, 179, 81, 87, 64, 188, 89, 15, 136, 196, 86, 128, 142, 69, 163, 112, 86, 10, 60, 188, 252, 196, 146, 33, 14, 172, 65, 212, 115, 241]), value: EventValue([221, 109, 156, 32, 73, 86, 159, 83, 194, 68, 188, 0, 22, 187, 163, 64, 178, 128, 108, 179, 219, 0, 219, 148, 48, 129, 33, 127, 56, 1, 162, 48, 106, 96, 225, 37, 28, 181, 67, 245, 118, 73, 247, 40, 35, 129, 139, 233, 135, 213, 226, 30, 67, 222, 92, 117, 118, 16, 37, 179]) }, Event { key: EventKey([213, 247, 73, 165, 35, 191, 175, 194, 161, 225, 23, 136, 158, 125, 225, 212, 157, 69, 58, 47, 84, 32, 105, 201, 182, 224, 235, 249, 71, 131, 2, 81, 247, 170, 98, 188, 36, 91, 211, 41, 172, 143, 56, 109]), value: EventValue([200, 245, 216, 42, 39, 51, 173, 100, 138, 86, 33, 198, 26, 86, 15, 161, 14, 110, 215, 21, 251, 181, 85, 239, 132, 126, 234, 180, 132, 241, 126, 31, 133, 137, 71, 181, 111, 146, 118, 32, 143, 221, 211, 140, 10, 148, 38, 97, 246]) }, Event { key: EventKey([240, 147, 202, 152, 68, 85, 42, 90, 98, 164, 1, 198, 45, 100, 100, 246, 250, 52, 229, 160, 57, 81, 28, 143, 55, 65, 22, 70, 122, 5, 148, 21, 100, 37, 226, 157, 137, 123, 143, 24, 147, 102, 137, 33, 181, 246, 60, 74, 224, 85, 240, 33, 79, 147, 113, 240, 107, 0, 124, 112, 90, 85]), value: EventValue([93, 155, 69, 58, 244, 78, 149, 146, 216, 9, 14, 190, 173, 231, 75, 53, 132, 141, 177, 63, 171, 61, 129, 35, 179, 5, 201, 148, 23, 29, 175, 232, 119, 200, 209, 105, 111, 254, 44, 7, 237, 221, 196, 182, 249, 15, 31, 208, 93, 208, 155, 168, 130, 13, 97, 3, 152, 120, 114, 188, 165, 84, 140, 98, 180, 193, 164, 253, 243, 94, 137, 43, 205]) }, Event { key: EventKey([150, 36, 35, 154, 94, 10, 113, 153, 246, 222, 99, 32, 247, 107, 23, 153, 116, 94, 195, 121, 221, 211, 83, 177, 243, 249, 42, 19, 102, 200, 97]), value: EventValue([4, 245, 228, 200, 141, 5, 145, 60, 180, 210, 97, 102, 210, 31, 141, 23, 77, 157, 55, 31, 228, 207, 68, 202, 65, 129, 157, 169, 52, 64, 92, 36, 226, 49, 41, 104, 8, 226, 129, 104, 192, 126, 209, 88, 196, 41, 147, 27, 200, 119, 86, 21, 155, 204, 138, 179, 211, 95, 231, 66, 141, 203, 31, 17, 190, 134, 165, 94, 60, 96, 63, 186, 52, 78, 30, 214, 110, 152, 103, 242, 173, 252, 3, 57, 244, 80, 220, 176, 101, 202]) }], receipt: 1536429980 }], inner: 1543496796 }, BatchReceipt { batch_hash: [121, 218, 182, 54, 119, 141, 124, 218, 96, 240, 187, 21, 190, 98, 212, 93, 33, 93, 14, 106, 102, 199, 141, 31, 231, 50, 249, 92, 49, 121, 213, 157], tx_receipts: [TransactionReceipt { tx_hash: [106, 21, 149, 127, 134, 84, 60, 34, 238, 25, 117, 230, 238, 6, 188, 131, 85, 175, 25, 100, 64, 159, 179, 128, 45, 16, 235, 85, 1, 170, 123, 232], body_to_save: Some([141, 161, 230, 118, 42, 175, 131, 48, 71, 174, 170, 243, 166, 144, 68, 124, 28, 227, 70, 181, 204, 213, 124, 93, 32, 175, 49, 142, 139, 27, 9]), events: [Event { key: EventKey([22, 16, 129, 111, 232, 95, 23, 67, 37, 53, 144, 66, 82, 93]), value: EventValue([48, 222, 235, 40, 63, 83, 97, 249, 209, 95, 239, 147, 241, 80, 97, 88, 81, 133, 182, 175, 118, 166, 162, 12, 207, 166, 47, 29, 8, 236, 118, 122, 44, 45, 142, 228, 180, 130, 209]) }, Event { key: EventKey([120, 40, 132, 236, 47, 149, 219, 148, 9, 32, 108, 248, 167, 94, 233, 78, 135, 5, 58, 98, 195, 224, 12, 19, 245, 7, 91, 153, 118, 5, 230, 98, 112, 70, 102, 16]), value: EventValue([13, 35, 11, 176, 203, 156, 156, 66, 4, 14, 103, 152, 157, 109, 187, 50, 234, 156, 97, 231, 59, 13, 144, 89, 10, 60, 17, 55, 168, 33, 136, 176, 92, 148, 154, 16, 1, 215, 95, 234, 165, 166, 252, 26, 195, 168, 63, 171, 19, 124, 32, 196, 215, 247, 104, 84, 142, 60, 89, 91, 68, 237, 109, 119, 163, 100, 234, 10]) }, Event { key: EventKey([179, 28, 165, 224, 142, 222, 106, 56, 189, 162, 106, 213, 166, 13, 238, 149, 131, 47, 212, 222, 133, 98, 151, 204, 225, 118, 182, 167, 156, 224, 250, 29, 82, 39, 158, 168, 38, 231, 76, 67, 119, 251, 100, 33, 60, 122, 44, 80]), value: EventValue([255, 17, 186, 176, 173, 171, 209, 40, 61, 216, 41, 108, 184, 185, 206, 202, 229, 178, 224, 153, 89, 117, 197, 231, 145, 240, 224, 33, 179, 246, 114, 187, 6, 99, 244, 171, 113, 97, 246, 36, 78, 107, 124, 205, 31, 12, 138, 221, 131, 170, 185, 88, 205, 198, 198, 157, 135, 14, 187, 21, 146, 199, 10, 226, 113, 150, 242, 213, 231, 141, 64, 168, 179, 253, 12, 128, 34, 140, 114, 136, 166, 1, 119]) }], receipt: 213166100 }, TransactionReceipt { tx_hash: [245, 46, 244, 247, 39, 99, 79, 144, 191, 211, 125, 98, 114, 175, 240, 181, 10, 43, 160, 92, 22, 13, 131, 82, 88, 124, 80, 103, 216, 32, 87, 134], body_to_save: None, events: [Event { key: EventKey([150, 37, 130, 204, 184, 114, 90, 149, 245, 81, 159, 60, 62, 126, 162, 83, 160, 215, 228, 254, 228, 88, 7, 225, 250, 252, 170, 13]), value: EventValue([197, 238, 98, 83, 170, 91, 243, 89, 76, 246, 190, 79, 146, 192, 189, 92, 109, 210, 171, 127, 110, 40, 155, 207, 169, 207, 208, 87, 89, 173, 56, 151, 29, 171, 117, 188, 75, 115, 138, 57, 157, 228, 166, 77, 120, 199, 221, 229, 69, 236, 27, 92, 159, 218, 32, 18, 16, 72, 166, 248, 155, 153, 119]) }, Event { key: EventKey([247, 219, 220, 46, 209, 229, 236, 139, 204, 155, 54, 15, 193, 80, 210, 220, 188, 22, 133, 16, 220, 253, 140, 212, 91, 207, 16, 40, 42, 54, 189, 21, 1]), value: EventValue([122, 7, 243, 219, 189, 6, 30, 227, 232, 118, 192, 77, 171, 187, 242, 229, 79, 145, 5, 123, 187, 162, 86, 169, 31, 49, 86, 108, 141, 62, 22, 219, 144]) }, Event { key: EventKey([19, 231, 243, 190, 17, 19, 11, 170, 3, 22, 62, 233, 39, 23, 129, 6, 139, 189, 140, 249, 36, 241, 157, 136, 85, 109, 138, 125, 10, 37, 189, 86, 169, 7, 241, 91, 251, 73, 16, 140, 71, 90, 7, 227, 125, 154, 57]), value: EventValue([]) }, Event { key: EventKey([198, 79, 254, 227, 98, 168, 27, 252, 110, 153, 250, 180, 82, 100, 76, 60, 245, 140, 105, 48, 73, 133, 31, 189, 124, 18, 219, 52, 136, 160, 133, 199, 122, 158, 16, 48, 22, 163, 238, 178, 209, 162, 161, 207, 64, 136, 97, 166, 226, 91, 41, 241, 119, 246, 71, 132, 111, 165, 106, 122, 222, 92, 185, 21, 129, 225, 116, 174, 222, 175, 74, 72, 122, 130, 184, 103, 154, 38, 88, 152, 144, 133, 179, 182, 161, 186, 141]), value: EventValue([35, 169, 154, 202, 18, 24, 182, 180, 42, 233, 107, 108, 125, 64, 114, 13, 215, 28, 98, 60, 16, 216, 213, 75, 205, 184, 25, 235, 165, 89, 59, 41, 171, 102, 178, 107, 182, 236, 0, 97, 197, 195, 168, 13, 36, 62, 121, 4, 194, 16, 163, 85, 89, 36, 116, 51, 212, 122, 120, 20, 114, 1, 245, 82, 245, 69, 176, 18, 20, 35, 76, 116, 49, 113, 107, 76, 246, 43, 16, 178]) }], receipt: 1130898975 }], inner: 2146466258 }, BatchReceipt { batch_hash: [206, 238, 17, 75, 38, 208, 159, 220, 200, 138, 243, 12, 59, 71, 147, 213, 194, 124, 149, 104, 233, 248, 191, 95, 53, 118, 119, 38, 85, 78, 9, 9], tx_receipts: [TransactionReceipt { tx_hash: [162, 199, 2, 203, 166, 25, 181, 12, 236, 191, 81, 70, 160, 89, 129, 232, 88, 70, 104, 34, 183, 60, 145, 158, 37, 43, 223, 85, 19, 226, 42, 197], body_to_save: Some([240, 173, 33, 185]), events: [Event { key: EventKey([206, 66, 24, 204, 246, 88, 143, 223, 167, 155, 75, 78, 231, 81, 239, 234, 217, 109, 134, 26, 14, 160, 133, 124, 73, 192, 47, 57, 80]), value: EventValue([61, 203, 171, 16, 167, 163, 118, 85, 196, 205, 218, 12, 33, 45, 241, 129, 171, 35, 222, 161, 253, 196, 198, 125, 114, 177, 45, 217, 96, 242, 2, 128, 231, 170, 217, 173, 136, 146, 180, 101, 137, 7, 176, 106, 236, 49, 92, 209, 103, 74, 102, 163, 81, 130, 159, 17, 103, 73, 81, 153, 168, 86, 209, 31, 176, 94, 29, 237, 97]) }, Event { key: EventKey([93, 16, 27, 93, 131, 198, 151, 100, 14, 14, 252, 219, 249, 114, 143, 194, 141, 52, 48, 236, 82, 238, 255, 139, 228, 250, 135, 97, 164, 36, 49, 46, 61, 140, 66, 28, 217, 109, 210, 58, 240, 204, 241, 221, 132, 93, 122, 110, 135, 2, 24, 36, 83, 45, 41, 63, 156, 76, 232, 85, 188, 144, 171, 197, 153, 130, 181, 67, 32, 125, 129, 145, 1, 249, 219, 166, 222, 32, 244, 122, 151, 73]), value: EventValue([34, 41, 94, 153, 112, 26, 163, 251, 57, 225, 241, 254, 67, 78, 131, 146, 98, 201, 86, 253, 9]) }, Event { key: EventKey([121, 88, 247, 146, 172, 88, 253, 53, 23, 90, 255, 114, 174, 9, 143, 163, 39, 89]), value: EventValue([51, 255, 44, 94, 147, 8, 152, 51, 38, 114, 24, 180, 42, 163, 116, 242, 119, 163, 19, 175]) }], receipt: 252925679 }, TransactionReceipt { tx_hash: [222, 48, 197, 178, 230, 185, 113, 155, 42, 249, 24, 160, 224, 80, 71, 171, 141, 203, 145, 31, 175, 58, 134, 139, 156, 177, 200, 236, 190, 246, 3, 78], body_to_save: None, events: [Event { key: EventKey([75, 36, 246, 113, 33, 25, 142, 22, 91, 208, 175, 70, 96, 206, 122, 211, 165, 66, 16, 197, 181, 94, 11, 67, 221, 71, 57, 158, 134, 188, 99, 242, 67, 8, 145]), value: EventValue([93, 14, 34, 13, 76, 145, 125, 103, 245, 55, 171, 26, 21, 26, 127, 61, 95, 83, 253, 29, 4, 234, 114, 114, 173, 60]) }, Event { key: EventKey([32, 145, 82, 8, 156, 71, 248, 49, 106, 167, 13]), value: EventValue([147, 197, 118, 104, 190, 69, 201, 224, 99, 201, 129, 226, 185, 96, 64, 23, 131, 198, 240, 228, 151, 125, 121, 43, 74, 97, 2, 40, 190, 24, 19, 155, 68, 4, 108, 65, 61]) }, Event { key: EventKey([251, 100, 195, 96, 230, 129, 91, 190, 94, 247, 137, 245, 167, 120, 8, 208, 108, 238, 155, 31, 195, 11, 20, 178, 65, 195, 125, 252, 78, 123, 174, 231, 211, 198, 80, 204, 178, 63, 31, 41]), value: EventValue([205, 134, 33, 144, 172, 75, 246, 99, 139, 153, 58, 46, 147, 159, 25, 77, 128, 195, 108, 247, 19, 89, 154, 136, 218, 172, 195, 14, 53, 134, 50, 97, 29, 96, 171, 11, 87, 33, 249, 26, 181, 48, 154, 20, 183, 206, 50, 6, 142, 246, 220, 134, 201, 157, 95, 95, 17, 175, 115, 243, 178, 123, 57, 214, 3, 167, 80, 79, 217, 197, 153, 110, 78, 178, 203, 68, 233, 19, 201, 95, 21, 0, 204, 242, 126, 54, 206, 187, 168, 106, 91, 235, 203, 175, 127, 240, 53, 254, 120]) }, Event { key: EventKey([170, 173, 238, 67, 25, 13, 39, 7, 230, 160, 112, 85, 46, 205, 123, 164, 89, 115, 107, 244, 192, 123, 130, 158, 34, 19, 99, 216, 7, 3, 170, 54, 124, 17, 78, 223, 11, 143, 150, 38, 64, 147, 128, 138, 22, 216, 48]), value: EventValue([151, 240, 55, 213, 193]) }, Event { key: EventKey([229, 73, 202, 255, 223, 96, 249, 127, 216, 114, 99, 48, 69, 64, 239, 68, 65, 199, 174, 255, 18, 202, 103, 127, 240, 98, 133, 188, 232, 99, 103, 154, 116, 196, 87, 73, 226, 170, 47, 175, 79, 6, 241, 118, 120, 114, 27, 221, 255, 244, 154, 107, 162]), value: EventValue([183, 253, 187, 23, 47, 40, 148, 108, 140, 252, 211, 140, 218, 0, 244, 211, 240, 78, 27, 32, 36, 114, 167]) }, Event { key: EventKey([66, 90, 134, 143, 2, 102, 9, 167, 52, 184, 227, 77, 136, 177, 41, 191, 166, 81, 153, 204, 165, 91, 222, 199, 114, 170, 19, 8, 226, 22, 191, 152, 99, 194, 37, 137, 97, 133, 236, 219, 241, 174, 55, 151, 19, 165, 82, 236, 208, 204, 145, 27, 38, 248, 117, 18, 190, 244, 243]), value: EventValue([48, 193, 175, 44, 242, 218, 231, 137, 139, 188, 186, 15, 198, 81, 205, 49, 196, 64, 66, 15, 204, 75, 93, 212, 39, 236, 59, 156, 45, 182, 174, 194, 106, 5, 55, 65, 117, 234, 25, 66, 194, 180, 128, 192, 131, 160, 225, 117, 102, 195, 25, 46, 49, 249, 9, 11, 74, 168, 168, 24, 224]) }, Event { key: EventKey([237, 95, 27, 123, 194, 104, 6, 50, 147, 15, 6, 241, 6, 236, 68, 80, 122, 130, 187, 17, 85, 184, 232, 237, 227, 252, 221]), value: EventValue([79, 25, 104, 99, 198, 23, 234]) }, Event { key: EventKey([19, 195, 184, 204, 2, 253, 123, 182, 222, 129, 11, 6, 177, 18, 59, 50, 245, 183, 80, 22, 109, 195, 137, 195, 204, 236, 114, 140, 244, 253, 50, 162, 223, 138, 137, 247, 179, 37, 90, 97, 106, 137, 204, 44, 221, 104, 127, 3, 112, 14, 236]), value: EventValue([54, 218, 42, 164, 93, 203, 136, 140, 227, 32, 203]) }, Event { key: EventKey([95, 201, 9, 61, 177, 96, 97, 16, 138, 235, 5, 117, 194, 201, 155, 155, 156, 87, 191, 43, 140, 114, 105, 99, 79, 232, 140, 153, 137, 255, 132, 33, 141, 157, 109, 65, 49, 105, 210, 242, 230, 153, 60, 84, 141, 36, 204, 245, 51, 50, 178, 187, 203, 34, 189, 24]), value: EventValue([39, 253, 179, 56, 90, 101, 46, 205, 168, 151, 153, 104, 177, 149, 30, 204, 87, 87, 222, 192, 234, 222, 209, 141, 44, 196, 105, 29, 228, 186, 117, 82, 157, 109, 205, 82, 203, 205, 153, 84, 222, 201, 197, 130, 172, 53, 86, 240, 17, 73, 251, 159, 48, 132, 5, 9, 220, 146, 2, 3, 198, 94, 168, 246, 186, 208, 233]) }], receipt: 1986836623 }, TransactionReceipt { tx_hash: [73, 241, 156, 175, 64, 149, 59, 138, 157, 19, 203, 86, 231, 72, 27, 92, 241, 173, 152, 243, 73, 17, 187, 135, 150, 223, 148, 136, 163, 108, 237, 143], body_to_save: Some([107, 197, 156, 244, 11, 112, 206, 95, 158, 146, 171, 11, 25, 108, 35, 137, 114, 189, 223, 14, 76, 212, 42, 245, 194, 142, 16, 65, 19, 71, 28, 74, 4, 15, 118, 152, 119, 120, 165, 184, 25, 6, 166, 246, 60, 141, 233, 227, 107, 119, 241, 10, 248, 57, 162, 179, 93, 169, 32, 102, 46, 28, 182, 197, 111, 245, 151, 146, 140, 195, 232, 39, 17, 139, 162, 154, 60, 229, 142, 189, 188, 116, 212, 137, 58, 213, 135, 70, 205, 48, 238, 157, 156, 42]), events: [Event { key: EventKey([226, 100, 58, 252, 73, 242, 219, 129, 111]), value: EventValue([146, 249, 153, 51, 225, 41, 141, 38, 186, 51, 153, 164, 253, 75, 3, 69, 173, 84, 237, 237, 50, 236, 50, 59, 228, 115, 233, 64, 195, 215, 123, 2]) }, Event { key: EventKey([126, 123, 12, 35, 98, 254, 56, 25, 228, 78, 113, 108, 253, 122, 29, 145, 218, 59, 239, 21, 141, 16]), value: EventValue([252, 120, 154, 133, 73, 21, 81, 102, 68, 123, 124, 13, 125, 10, 50, 57, 75, 75, 57, 52, 96, 215]) }, Event { key: EventKey([16, 14, 209, 239, 150, 241, 0, 157, 75, 65, 8, 91, 50, 111, 72, 236]), value: EventValue([103, 12, 243, 45, 101, 3, 15, 135, 131]) }, Event { key: EventKey([194, 20, 166, 206, 52, 83, 158, 221, 102, 50, 160, 234, 32, 254, 111, 132, 108, 155, 118, 130, 151, 40, 20, 59, 8, 48]), value: EventValue([81, 166, 157, 144, 232, 134, 177, 160, 232, 54, 169, 167, 178, 104, 245, 190, 192, 171, 7, 67, 27, 63, 227, 223, 255, 168, 205, 160, 34, 28, 120, 67, 163, 52, 0, 47, 123, 14, 242, 224, 18]) }, Event { key: EventKey([204, 243, 130, 236, 147, 144, 100, 141, 235, 56, 150, 170, 31, 40, 26, 151, 11, 135, 105, 245, 234, 36, 76, 253, 63, 120, 110, 185, 199, 240, 134, 234, 66, 159, 38, 247, 181, 79, 106, 145, 184, 16, 162, 115, 97, 78]), value: EventValue([179, 207, 157, 238, 235, 96, 142, 207, 212, 168, 69, 229, 86, 23, 80, 255, 1, 194, 80, 114, 214, 200, 43, 233, 91, 0, 237, 198, 199, 170, 169, 169, 141, 53, 69, 67, 15, 112, 141, 251, 106, 124, 42, 3, 240, 94, 231, 193, 108, 88, 1, 102, 14, 122]) }], receipt: 14399407 }, TransactionReceipt { tx_hash: [119, 155, 212, 87, 59, 25, 207, 3, 239, 116, 189, 253, 1, 251, 60, 199, 223, 208, 212, 153, 99, 117, 75, 128, 72, 223, 104, 149, 137, 181, 250, 214], body_to_save: Some([9, 184, 175, 172, 29, 237, 147, 97, 116, 218, 95, 197, 180, 155, 193, 190, 19, 136, 235, 224, 110, 218, 222, 1, 251, 247, 137, 174, 102, 210, 130, 224, 204, 254, 28, 23, 72, 16, 29, 33, 40, 121, 73, 69, 110]), events: [Event { key: EventKey([170, 125, 199, 8, 129, 176, 18, 209, 33, 113, 204, 95, 168, 226]), value: EventValue([78, 69, 140, 9, 53, 136, 237, 192, 155, 184, 155, 236, 204, 194, 183, 68, 140, 6, 74, 128, 2, 77, 174, 88, 85]) }, Event { key: EventKey([199, 103, 223, 250, 16, 218, 56, 52, 28, 143, 174, 253, 169, 171, 242, 11, 210, 57, 130, 238, 201, 147, 142, 56, 229, 190, 255, 202, 103, 30, 31, 51, 52, 0, 219, 107, 74, 255, 26, 253, 66, 104, 17, 68, 132, 144, 241, 210, 193, 8]), value: EventValue([208, 99, 188, 208, 68, 154, 221, 104, 12, 96, 117, 156, 18, 48, 81]) }, Event { key: EventKey([187, 174, 88, 231, 12, 220, 187, 186, 173, 79, 137, 46, 141, 171, 163, 58, 172, 75, 101, 191, 31, 138, 4, 224, 158, 66, 3, 112, 33, 1, 5, 141, 5, 137, 5, 225, 40, 39, 90, 159, 213, 45, 229, 85, 102, 151, 164, 39, 27, 71, 74, 8, 182, 253, 171, 45, 148, 200, 212, 224, 228, 213, 246, 192, 161, 122, 127, 97, 142, 94, 82, 183]), value: EventValue([128, 203, 199, 213, 72, 28, 130, 167, 233, 5]) }, Event { key: EventKey([77, 156, 145, 54, 80, 219, 6, 82, 64, 83, 248, 76, 250, 123, 223, 238, 42, 25, 214, 229, 27, 30, 229]), value: EventValue([130, 170, 248, 233, 17, 102, 190, 20, 134, 87, 247, 4, 36, 163, 78, 44, 160, 147, 8, 244, 165, 21, 165, 147, 162, 166, 99, 108, 152, 45, 252, 19, 112, 183, 123, 80, 91, 197, 203, 96, 70, 243, 240, 170, 195, 156, 211, 246, 222]) }, Event { key: EventKey([164, 87, 20, 184, 113, 56, 105, 106, 40, 174, 87, 73, 255, 46, 101, 229, 129]), value: EventValue([115, 29, 136, 2, 215, 113, 41, 226, 11, 115, 87, 108, 114, 241, 196, 30, 228, 15, 165, 145, 31, 132, 199, 33, 165, 242, 37, 80, 31, 2, 193, 248, 147, 32, 183, 80, 37, 101, 194, 105, 50, 114, 25, 120, 4, 141, 26, 194, 132, 247, 146]) }, Event { key: EventKey([165, 221, 176, 254, 179, 121, 249, 207, 29, 27, 199, 148, 185, 25, 112, 151, 198, 179, 44, 26, 35, 208, 193, 164, 33, 66, 117, 60, 252]), value: EventValue([3, 24, 149, 247, 168, 117]) }, Event { key: EventKey([191, 209, 250, 248, 185, 152, 245, 82, 37, 99, 47, 88, 108, 193, 240, 209, 8, 61, 210, 148, 201, 169, 30, 109, 3, 23, 7, 47, 249, 185, 175, 24, 160, 162, 140, 39, 65, 46, 123, 247, 35, 129, 21, 195, 234, 46, 56, 118, 216, 31, 152, 84, 25, 72, 145, 82, 226, 125, 186, 66, 179, 125, 115, 92, 60, 91, 183, 181, 120, 170, 162, 118, 70, 19, 142, 198, 217, 92, 94]), value: EventValue([93, 155, 139, 56, 81, 15, 197, 74, 19, 246, 154, 61, 77, 136, 223, 52, 206, 231, 169, 74, 69, 172, 2, 41, 131, 99, 144, 196, 62, 42, 70, 190, 140, 201, 168, 75, 219, 43, 77, 124, 161, 5, 165, 81, 192, 26, 32, 73, 210, 157, 16, 117]) }, Event { key: EventKey([18, 50, 142, 86, 136, 147, 51, 186, 11, 86, 218, 43, 208, 5, 162, 212, 195, 37, 98, 102, 187, 205, 122, 179, 45, 229, 7]), value: EventValue([95, 68, 237, 34, 106, 89, 143, 99, 222, 199, 27, 172, 72, 175, 184, 80, 224, 205, 42, 53, 137, 221, 198, 173, 132, 198, 63, 37, 71, 23, 78, 104, 131, 235, 196, 157, 146, 200, 80, 58, 134, 98, 12, 232, 153, 235, 141, 137, 142, 177, 126, 77, 193, 238, 249, 21, 115, 181, 147, 52, 32, 146, 98, 181, 104, 199, 44]) }], receipt: 3258816800 }, TransactionReceipt { tx_hash: [41, 12, 227, 61, 84, 24, 140, 162, 27, 149, 132, 58, 249, 27, 96, 131, 1, 75, 149, 93, 94, 97, 76, 118, 57, 78, 235, 203, 253, 104, 37, 2], body_to_save: Some([92, 7, 32, 91, 22, 212, 228, 32, 43, 42, 50, 180, 37, 83, 127, 177, 98, 8, 211, 130, 8, 9, 18, 56, 126, 46, 77]), events: [Event { key: EventKey([169, 20, 112, 10, 246, 207, 33, 33, 52, 26, 165, 64, 124, 103, 66, 189, 28, 164, 60, 153, 216, 21, 41]), value: EventValue([117, 138, 78, 42, 45, 250, 235, 26, 242, 162, 178, 220, 56, 192, 27, 65, 20, 75, 197, 102, 130, 0, 38, 129, 66, 26, 155, 38, 87, 81, 225, 143, 130, 247, 198, 184, 57, 64, 218, 126, 227, 45, 116, 53, 232, 230, 232, 249, 0, 184, 99, 142, 166, 36, 110, 83, 90, 149, 202, 182]) }, Event { key: EventKey([224, 151, 218, 235, 53, 231, 107, 99, 33, 10, 182, 88, 93, 75, 129, 32, 167, 74, 185, 60, 145, 225, 166, 133, 224, 81, 188, 189, 184, 147, 202, 175, 202, 37, 183, 68, 246, 58, 87, 109, 252, 38, 128, 84, 109, 92, 150, 50, 201, 65, 193, 60, 215, 82, 62, 121, 111, 33, 218, 52, 236, 80, 70, 175, 5, 43, 45, 13, 42, 0, 223, 178, 119, 228, 128, 138, 243, 117, 239, 121, 223, 72, 182, 62, 113, 54, 172, 57]), value: EventValue([100, 203, 237, 4, 70, 206, 235, 244, 150, 200, 84, 49]) }, Event { key: EventKey([56, 169, 38, 151, 187]), value: EventValue([130, 176, 253, 84, 228, 155, 190, 3, 255, 191, 221, 136, 246, 48, 166, 171, 126, 23, 89, 51, 13, 86, 82, 210, 248, 115, 19, 148, 111, 37, 63, 11, 214, 193, 65, 153, 56, 205, 172, 35, 75, 1, 3, 163, 202, 128, 83, 238, 60, 196, 186, 244, 45, 243, 35, 128, 220, 28, 131, 152, 255, 253, 248, 248, 242, 7, 235, 153, 165, 34, 88, 245]) }, Event { key: EventKey([24, 124, 5, 147, 46, 183, 240, 174, 152, 20, 206, 34, 192, 174, 58, 180, 0, 201, 42, 198, 55, 171, 125, 210, 88, 157, 167, 227, 127, 236, 184, 229, 12, 39, 58, 47, 148, 187, 215, 133, 54, 18, 154, 225, 160, 76, 101, 253, 38, 222, 238, 87, 233, 148, 249, 39, 92, 134, 101, 189, 145, 150, 23, 106, 148, 97, 38, 142, 188, 35, 1, 137, 236, 45, 48, 14, 17, 195, 11, 224, 20, 5, 13, 107, 203, 40, 133, 82]), value: EventValue([99, 222, 131, 7, 117, 211, 200, 196, 227, 112, 226, 44, 172, 222, 183, 161, 59, 59, 188, 129, 67, 61, 168, 71, 125, 59, 25, 43, 144, 235, 226, 8, 13, 17, 94, 222, 242, 17, 191, 55, 52, 147, 211, 141, 11, 114, 73, 100, 160, 113, 73, 126, 94, 147, 93, 199, 207, 64, 79, 124, 116, 243, 52, 60, 239, 209, 99, 113, 35, 68, 223, 167, 170, 225]) }], receipt: 2795356938 }, TransactionReceipt { tx_hash: [121, 123, 215, 29, 48, 197, 141, 40, 173, 115, 70, 159, 95, 9, 0, 241, 28, 53, 76, 228, 34, 102, 109, 53, 152, 230, 71, 40, 150, 2, 16, 194], body_to_save: Some([151, 204, 55, 137, 82, 248, 178, 42, 186, 169, 217, 64, 221, 167, 239, 228, 3, 82, 237, 33, 57, 172, 145, 97, 11, 38, 63, 254, 232, 85, 152, 9, 191, 97, 122, 237, 134, 236, 232, 197, 220, 45, 0, 219, 55, 217, 14, 243, 237, 243, 207, 100, 98, 201, 106, 28, 98, 155, 230, 222, 211, 118, 196, 116, 158, 115, 243]), events: [Event { key: EventKey([148, 206, 101, 242, 20, 78, 216, 164, 232, 67, 47, 44, 208, 27, 230, 180, 35, 97, 203, 146, 56, 11, 171, 7, 172, 156, 125, 176, 250, 9, 85, 127, 149, 143, 202, 118, 114, 211, 75, 3, 95, 142, 116, 13, 5, 118, 175, 210, 228, 22, 92, 155, 51, 177, 65, 54, 226, 53, 92, 72, 248, 88, 85, 128, 111, 29, 205, 66, 143, 243, 132, 105, 124, 80, 72, 165, 90]), value: EventValue([18, 63, 173, 74, 159, 248, 38, 141, 24, 238, 61, 110, 52, 116, 144, 184, 29, 29, 250, 101, 137, 77, 110, 187, 101, 226, 211, 39, 122, 27, 66, 206, 107, 233, 158, 105, 7, 17, 94, 57, 247, 236, 253, 170, 96, 97, 81, 216, 85, 72, 82, 255, 194, 5, 161, 164, 132, 96, 150, 194, 83, 234, 0, 228, 147, 249, 129, 180, 48, 202, 178, 143, 93, 17, 176, 15, 55, 117, 241, 54, 130, 177, 26, 1, 111, 197]) }, Event { key: EventKey([145, 114, 227, 231, 85, 236, 149, 168, 144, 90, 128, 158, 44, 1, 253, 100, 76, 113, 113, 114, 12, 152, 63, 131, 225, 77, 249, 99, 152, 59, 16, 159, 111, 17, 4, 46, 133, 164, 135, 191, 100, 15, 133, 227, 47, 205, 117, 144, 139, 200, 58, 114, 65, 57, 212, 229, 109, 193, 239, 186, 243, 95, 193, 211, 57, 8, 235, 30, 158, 214, 119, 89, 231, 125, 205]), value: EventValue([188, 248, 22, 202, 154, 173, 149, 177, 239, 217, 122, 1, 205, 67, 57, 117, 168, 96, 116, 44, 97, 136, 159, 80, 81, 250, 248, 217, 222, 140, 72, 33, 166, 174, 5, 0, 221, 150, 177, 158, 194, 229, 53, 208, 57, 194, 163, 57, 48, 143, 221, 44, 211, 196, 101, 124, 61, 161, 123, 84, 194, 207, 100, 251, 14, 134, 16, 81, 196, 175, 148, 242, 140, 207, 76, 209, 95, 97, 145, 188, 233, 34, 215, 195, 131, 1, 39, 127]) }, Event { key: EventKey([47, 87, 231, 122, 147, 68, 119, 81, 133, 188, 120, 186, 1, 140, 112, 65, 139, 7, 20, 26, 224, 138]), value: EventValue([71, 202, 179, 182, 97, 234, 108, 193, 47, 28, 214, 240, 116, 56, 71, 224, 233, 73, 155, 133, 99, 149, 23, 233, 104, 243, 23, 142, 55, 66, 103, 241, 59, 240, 92, 249, 153, 44, 68, 180, 166, 183, 65, 158, 99]) }, Event { key: EventKey([113, 8, 122, 145, 234, 124, 248, 135, 106, 47, 156, 19, 199, 46, 131, 252, 103, 25, 113, 143, 191, 139, 227, 122, 167, 105, 89, 44, 34, 121, 181, 113, 146, 221, 3, 217, 83, 243, 67, 45, 56, 97, 42, 105, 91, 245, 245, 38, 186, 14, 224, 93, 223, 237, 164, 34, 2, 212, 57]), value: EventValue([13, 237, 149, 138, 43]) }, Event { key: EventKey([24, 157, 251, 101, 49, 210, 84, 34, 35, 220, 19, 102, 101, 119, 29, 216, 217, 144, 19, 75, 87, 44, 233, 72, 41, 146, 248, 136, 239, 144, 253, 100, 184, 158, 173, 127, 41, 252, 239, 30, 31, 169, 90, 91, 100, 83, 99, 135, 88, 140, 217, 110, 61, 33, 178, 132, 31, 72, 248, 5, 24, 198, 250, 129, 70, 108, 57, 103, 247, 90, 202, 243, 139, 170, 252, 141, 100, 222, 221, 244, 144, 107, 43, 210, 211, 235, 183, 43, 159, 212, 239]), value: EventValue([96, 101, 157, 50, 48, 78, 88, 104, 153, 9, 4, 48, 183, 83, 5, 53, 54, 82, 39, 24, 100, 107, 95, 124, 31, 77, 156, 84, 123, 186, 218, 130, 184, 207, 70, 28, 178, 90, 252, 136, 97, 178, 82, 27, 12, 79, 57, 242, 171, 50, 96, 186, 9, 234, 171, 250, 48, 61, 235, 77, 152, 229, 141, 89, 139, 9, 105, 22, 147, 135, 47, 224, 99, 188, 52, 54, 99]) }, Event { key: EventKey([34, 196, 206, 106, 237, 100, 29, 74, 10, 50, 173, 151, 241, 172, 36, 159]), value: EventValue([178, 44, 148, 46, 96, 252, 172, 111, 128, 119, 86, 120, 236, 28, 158, 168, 98, 123, 170, 108, 3, 202, 2, 193, 182, 169, 184, 120, 150, 245, 105, 230, 7, 185, 166, 235, 30, 226, 148, 193, 191, 174, 95, 101, 176, 153, 91, 213, 224, 217, 84, 158, 130, 227, 213, 77, 86, 209, 138, 59, 114, 208, 143, 118, 100, 251, 229, 143, 225, 153, 158, 11, 145, 196, 13, 143, 165, 99, 177, 136, 199, 12, 17, 14, 168, 133, 91, 37, 63, 188, 186, 226, 251, 145]) }, Event { key: EventKey([126, 77, 56, 213, 225, 142, 136, 200, 38, 110, 65, 244, 255, 182, 110, 213, 210, 36, 194, 114, 26, 101, 172, 49, 37, 253, 137, 223, 180, 241, 70, 160, 23, 189, 178, 178, 21, 201, 180, 254, 239, 211, 19, 6, 111, 112, 226, 180, 134, 196, 115, 148, 245, 93, 191, 166, 60, 196, 250, 180, 208, 113, 163, 169, 38, 132, 11, 29, 39, 238, 104, 155, 122, 94, 44, 238, 215, 84, 64, 96, 90, 129, 12, 5, 192, 206, 20, 209, 229, 221, 202, 2, 187, 8, 72, 49, 5, 225]), value: EventValue([26, 47, 83, 135, 93, 119, 18, 21, 196, 177, 120, 33, 97, 199, 231, 203, 131, 12, 41, 37, 210, 181, 233, 177, 172, 245, 141, 114, 137, 235, 29, 59, 108, 233, 42, 77, 117, 17, 67, 133, 130, 47, 72, 196, 102, 51, 176, 21, 151, 175, 85, 207, 55, 67, 97, 221, 138, 101, 255, 95, 145, 41, 50, 211, 59, 247, 158, 139, 189, 41, 247, 214, 168, 56, 186, 242, 222, 65, 186, 202, 217]) }, Event { key: EventKey([39, 149, 0, 46]), value: EventValue([9, 60, 122, 154, 220, 137, 14, 138, 124, 236, 236, 35, 93, 124, 78, 218, 124, 54, 244, 59, 109, 79, 1, 178, 3]) }], receipt: 3499914639 }, TransactionReceipt { tx_hash: [64, 65, 53, 37, 124, 84, 107, 14, 59, 11, 187, 250, 56, 103, 100, 254, 247, 151, 207, 154, 154, 119, 167, 242, 193, 226, 99, 171, 154, 36, 47, 235], body_to_save: None, events: [Event { key: EventKey([139, 226, 186, 23, 10, 63, 13, 240, 9, 246, 254, 15, 58, 242, 166, 202, 115, 176, 48, 166, 68, 201, 133, 65, 129, 20, 29, 65, 75, 67, 100, 206, 37, 37, 79, 122, 228, 3, 236, 126, 153, 100, 115, 202, 88, 0, 230, 95, 239, 35, 134, 145, 76, 171, 190, 105, 56, 140, 190, 4, 189, 30, 15, 1, 11, 153, 55, 244, 32, 185, 153, 142, 200, 249, 78, 45, 217]), value: EventValue([15, 80, 25, 242, 209, 105, 78, 73, 98, 30, 188, 39, 168, 76, 23, 136, 132, 50, 46, 214, 246, 47, 154, 207, 117, 152, 223, 31, 140, 78, 243, 84, 181, 241, 18, 133, 196, 108, 15, 25]) }, Event { key: EventKey([231, 92, 76, 226, 112, 172, 25, 47, 147, 103, 80, 184, 93, 246, 40, 104, 72, 204, 102, 54, 148, 0, 119, 243, 251, 239, 67, 189, 106, 92, 194, 30, 172, 251, 236, 65, 9, 7, 130, 222, 245, 249, 118, 50, 224, 214, 242, 165, 82, 114, 171, 33, 149, 49, 74, 71, 223, 16, 139]), value: EventValue([239, 139, 61, 168, 107, 35, 118, 212, 226, 22, 121, 5, 47, 51, 69, 180, 9, 20, 20, 93, 77, 108, 154, 235, 116, 81, 62, 213, 216, 206, 247, 186, 24, 161, 188, 88, 96, 231, 196, 244, 40, 125, 236, 33, 202, 144, 255, 182, 123, 190, 16, 114, 10, 192, 198, 153, 156, 130, 115, 236, 25, 116, 38, 211, 204, 39]) }, Event { key: EventKey([192, 60, 165, 65, 221, 30, 110, 226, 158, 202, 15, 247, 119, 205, 44, 150, 191, 172, 96, 56, 219, 57, 150, 204, 194, 36, 211, 171, 128, 162, 57, 159, 58, 78, 107, 74, 72, 22, 242, 159, 82, 239, 140, 248, 6, 1, 201, 99, 57, 54, 177, 162, 139, 119, 145, 34, 170, 189, 249, 68, 33, 46, 179, 26, 190, 1, 7]), value: EventValue([209, 87, 173, 211, 116, 127, 233, 157, 130, 62, 208, 242, 141, 198, 232, 165, 94, 131, 107, 252, 145, 84, 212, 220, 101, 22, 36, 80, 203, 152, 23, 164, 127, 41, 200, 115, 74, 66, 99, 86, 240, 216, 141, 114, 251, 170, 250, 184, 0, 146, 68, 8, 253, 53, 105, 113, 125, 85, 115, 157, 72, 184, 173, 84, 228]) }, Event { key: EventKey([17, 193, 81, 118, 9, 96, 182, 32, 25, 155, 142, 211, 22, 216, 221, 160, 43, 121, 18, 230, 9, 251, 107, 128, 4, 131, 147, 134, 117, 9, 165, 245, 26]), value: EventValue([30, 237, 121, 179, 195, 33, 52, 89, 173, 38, 68, 27, 228, 114, 114, 218, 201, 29, 173, 165, 61, 74, 173, 215, 186, 52, 32, 22, 127, 139, 21, 95, 177, 226, 86, 45, 138, 243, 121, 161, 62, 128, 195, 220, 46, 8, 16, 117, 27, 3, 105, 224, 67, 174, 88, 207, 24, 178, 218, 59, 60, 234, 191, 107, 242, 197, 96, 138, 153, 126, 0, 89, 225, 239, 249, 174, 31, 41, 81, 62, 79]) }, Event { key: EventKey([160, 92, 170, 127, 151, 48, 64, 198, 234, 2, 162, 128, 136, 20, 70, 59, 43, 204, 187, 52, 207, 113, 23, 172, 43, 242, 151, 230, 233, 212, 57, 43, 146, 64, 228, 248, 96, 76, 82, 252, 80, 85, 100, 230, 203, 187, 111, 186, 5, 38, 137, 39, 18, 97, 142, 220, 223, 160, 47, 170, 132, 155, 146, 172, 250, 69, 125, 107, 80, 129, 207, 129, 145, 10, 68, 71, 95, 20, 179, 182, 19, 94, 115, 55, 161, 232, 187, 26, 14, 42, 190]), value: EventValue([77, 65, 13, 144, 200, 141, 114, 198, 109, 1, 8, 248, 180, 134, 71, 24, 182, 175, 111, 216, 124, 152, 169, 202, 66, 222, 27, 193, 86, 213, 192, 190, 144, 90, 3, 147, 196, 51, 175, 151, 153, 218, 30, 96, 146, 76, 158, 234, 150, 43, 223, 127, 236, 106, 12, 233, 111, 190, 238, 63, 32, 157, 175, 43, 171, 208, 255, 219, 17, 24, 185, 119, 7, 99, 154, 185, 223, 51, 82, 197, 76, 3]) }], receipt: 1660519239 }], inner: 2283550815 }, BatchReceipt { batch_hash: [58, 221, 209, 92, 135, 59, 43, 93, 142, 206, 28, 68, 69, 59, 152, 180, 117, 251, 153, 11, 209, 175, 150, 5, 39, 102, 192, 185, 209, 21, 66, 116], tx_receipts: [], inner: 4130010890 }, BatchReceipt { batch_hash: [79, 171, 65, 172, 159, 17, 85, 247, 230, 166, 53, 194, 220, 224, 167, 136, 197, 204, 150, 238, 166, 242, 26, 88, 138, 169, 33, 64, 60, 244, 239, 158], tx_receipts: [TransactionReceipt { tx_hash: [65, 140, 232, 51, 22, 235, 173, 168, 58, 50, 153, 135, 191, 124, 129, 56, 238, 135, 90, 90, 234, 42, 214, 235, 253, 108, 50, 217, 108, 251, 60, 141], body_to_save: Some([154, 8, 69, 189, 26, 77, 42, 225, 167, 175, 178, 50, 44, 158, 245, 138, 203, 115, 239, 98, 77, 0, 84, 14, 248, 223, 237, 148, 188, 7, 104, 203, 168, 67, 237, 226, 130, 39, 219, 122, 246, 200, 127, 99, 116, 243, 246, 86, 121, 164, 40, 209, 131, 48, 110, 139, 20, 25, 7, 119, 9, 0, 30, 37, 117, 78, 39, 167, 133, 184, 103, 177, 17, 219, 37, 135, 163]), events: [Event { key: EventKey([181, 197, 149, 203, 244, 83, 2, 9, 82, 71, 211, 175, 11, 67, 156, 232, 63, 228, 122, 242, 137, 87, 34]), value: EventValue([10, 169, 140, 82, 217, 67, 192, 7, 213, 89, 149, 220, 41, 163, 225, 155, 245, 139, 199, 33, 192, 111, 93, 187, 63, 152, 126, 95, 239, 44, 16, 247, 143, 98, 26, 125, 119, 63, 213, 17]) }, Event { key: EventKey([82, 214, 97, 158, 111, 228, 242, 194, 123, 240, 127, 32, 181]), value: EventValue([62, 168, 136, 243, 172, 113, 145, 68, 194, 14, 237, 12, 101, 225, 232, 151, 124, 94, 78, 189, 165, 162, 33, 203, 76, 132, 24, 158, 177, 15, 33, 95, 14, 135, 40, 222, 134, 204, 155, 194, 62, 235, 218, 251, 175, 119, 71, 75, 230, 118, 214, 30]) }, Event { key: EventKey([252, 168, 238, 80, 86, 189, 46, 133, 231, 224, 8, 169, 75, 236, 166, 211, 121, 211, 120, 171, 90, 127, 23, 179, 233, 129, 9, 5, 59, 233, 241, 145, 120, 249, 65, 194, 126, 123, 219, 187, 246, 168, 149, 157, 88, 22, 123, 51, 222, 216, 46, 2, 140, 44, 246, 151, 31, 18, 150, 188, 139, 255, 17, 185, 86, 56, 56, 114, 31, 169, 31, 122, 23, 187, 221, 111, 108, 109, 134, 143, 87, 114, 17, 203, 109, 55, 129]), value: EventValue([120, 73, 50, 229, 125, 197, 201, 179, 252, 98, 97, 41, 255, 217, 121, 149, 245, 185, 168, 235, 199, 54, 134, 121, 211, 14, 47, 206, 31, 38, 34, 139, 172, 248, 32, 205, 172, 29, 190, 201, 4, 213, 161, 198, 57, 107, 104, 108, 252, 178, 105, 41, 175, 79, 119, 130, 77]) }, Event { key: EventKey([54, 181, 254, 69, 220, 148, 84, 164, 72, 167, 39, 134, 29, 57, 65, 170, 82, 77, 90, 67, 106, 52, 186, 72, 48, 40, 130, 108, 69, 4, 60, 5, 116, 168, 243, 221, 94, 169, 212, 238, 50, 143, 61, 164, 67, 17, 212, 86, 6, 237, 254, 108, 159, 16, 31, 192, 24, 172, 134, 57, 89, 109, 15, 207, 35, 192, 20, 210, 48, 93, 97, 100, 202, 233, 242, 35, 248, 71, 7, 90, 153, 173, 48, 62, 245, 176, 61, 111, 108, 100, 67, 172]), value: EventValue([28, 149, 190, 78, 134, 169, 255, 134, 191, 119, 254, 159, 251, 5, 36, 35, 214, 90, 11, 158, 220, 76, 37, 114, 31, 139, 196, 81, 17, 1, 228, 151, 141, 153, 34, 160, 53, 154, 187, 166, 214, 70, 54, 73, 201, 139, 122, 65, 152, 237, 190, 221, 208, 232, 212, 199, 207, 108, 49, 230, 223, 1, 177, 158, 196, 138, 27, 96, 235, 12, 75, 25, 26, 72, 39, 55, 101, 125, 128, 186, 49, 168, 235, 21, 225, 140, 52, 34, 246, 191, 99, 227, 231, 29, 1, 72]) }, Event { key: EventKey([145, 248, 124, 185, 212, 150]), value: EventValue([211, 201, 185, 18, 223, 92, 138, 116, 248, 237, 234, 83, 204, 22, 92, 163, 155, 240, 160, 203, 132, 179, 110, 111, 220, 201, 25, 146, 220, 176, 200, 105, 39, 155, 246, 100, 99, 157, 115, 103, 154, 181, 217, 92, 86, 67, 217, 231, 96, 32, 11, 227, 148, 74, 57, 123, 230, 138, 214, 30, 110, 123, 46, 120, 242, 44, 46, 78, 120, 65, 253, 86, 17, 95, 173, 139, 27, 32, 24, 15, 237, 31, 70, 234]) }, Event { key: EventKey([70, 140, 46, 143, 166, 102, 254, 106, 82, 93, 215, 201, 228, 177, 182, 253, 216, 137, 108, 209, 240]), value: EventValue([49, 198, 55, 141, 4, 153, 5, 36, 211, 154, 75, 170, 241, 105, 199, 170, 86, 23, 5, 29, 59, 31, 133, 4, 76, 254, 98, 11, 205, 90, 24, 134, 21, 80]) }], receipt: 4075275917 }, TransactionReceipt { tx_hash: [42, 204, 94, 175, 121, 98, 166, 238, 110, 90, 15, 231, 30, 175, 104, 65, 6, 68, 160, 135, 92, 109, 146, 68, 193, 23, 186, 132, 144, 63, 130, 195], body_to_save: Some([14, 150, 235, 92, 48, 206, 212, 238, 27, 97, 155, 245, 210, 184, 97, 100, 24, 242, 65, 216, 242, 33, 12, 105, 210, 250, 124, 222, 239, 85, 158, 180, 193, 195, 18, 178, 99, 63, 241, 33, 116, 82, 221, 70, 42, 60, 102, 17, 187, 165, 78, 212, 136, 252, 154, 199, 121, 87, 26, 176, 153, 210, 197, 61, 4, 50, 148, 194, 119, 0, 61, 172, 109, 180, 61, 50, 233, 156, 107, 244, 236, 39, 61, 93, 201, 15, 110, 182, 156, 4, 252, 254]), events: [Event { key: EventKey([205, 203, 1, 199, 142, 125, 141, 118, 173, 27, 66, 159, 42, 79, 25, 208, 174, 213, 147, 52, 100, 197, 94, 240, 215, 150, 8, 122, 105, 129, 42, 54, 36, 61, 137, 47, 224, 97, 72, 127, 7, 29, 77, 204, 224, 91, 211, 43, 62, 207, 113, 155, 14, 244, 231, 26, 65, 53, 255, 155, 152, 160, 171, 15, 127, 24, 173, 103, 95, 20, 220, 67, 27, 190, 222, 250, 69, 52, 251]), value: EventValue([59, 81, 205, 16, 233, 139, 197, 92, 212, 4, 32, 13, 151, 12, 226, 127, 254, 35, 233, 81, 79, 1, 7, 108, 38, 106, 92, 180, 173, 172, 152, 143, 183, 79, 64, 28, 43, 108, 145, 223, 136, 106, 161, 80, 233, 203, 63, 44, 227, 161, 11, 98, 160, 136, 239, 41, 243, 21, 70, 107, 197, 31, 143, 213, 211, 96]) }, Event { key: EventKey([212, 157, 143, 253, 15, 96, 196, 182, 38, 254, 134, 154, 127, 136, 186, 131, 125, 211, 74, 76, 2, 85, 246, 75, 8, 225, 245, 192, 104, 202, 69, 22, 175, 182, 212, 131, 93, 171, 93, 124, 88, 251, 128, 162, 121, 206, 65, 82, 110, 168, 220, 209, 240, 154, 81, 114, 186, 173, 161, 2, 169, 83, 127, 246, 78, 145, 92, 200, 2, 193, 52, 163, 50, 246, 83, 189, 1, 184, 32, 153, 200, 242, 83, 212, 50, 163, 82, 55, 203, 114]), value: EventValue([31, 92, 60, 163, 145, 252, 58, 6, 110, 70, 131, 102, 172, 45, 94, 158, 64, 65, 231, 13, 65, 158, 122, 148, 82, 204, 140, 97, 49, 61, 41, 143, 214, 145, 124, 170, 190, 17, 115, 250, 126, 71, 136, 8, 0, 214, 9, 22, 96, 110, 152, 65, 43, 171, 246, 72, 224, 93, 57, 179, 204, 69, 77, 82, 230, 10, 21, 34, 57, 173, 194, 33, 110, 177, 36, 46, 194, 245, 194, 97, 20, 84, 9, 59, 90, 93, 127, 197, 41, 102, 79, 136, 168, 175, 9, 232]) }, Event { key: EventKey([100]), value: EventValue([109, 22, 54, 20, 205, 26, 114, 41, 21, 196, 9, 186, 116, 98, 54, 247, 194, 56, 236, 36, 20]) }, Event { key: EventKey([5, 184, 58, 187, 205, 222, 104, 193, 72, 72, 146, 188, 201, 23, 117, 245, 42, 139, 109, 104, 28, 24, 200, 18, 133, 208, 139, 63, 141]), value: EventValue([210, 91, 71, 115, 153, 196, 164, 174, 38]) }, Event { key: EventKey([41, 49, 238, 31, 80, 16, 177, 189, 233, 158, 23, 232, 189, 222, 208, 121, 130, 156, 80, 176, 18, 31, 24]), value: EventValue([217, 151, 15, 142, 39, 13, 111, 143, 127, 67, 145, 216, 165, 97, 221, 80, 233, 21, 220, 235, 74, 123, 133, 183, 88, 99, 93, 73, 51, 23, 53, 147, 131, 147]) }, Event { key: EventKey([127, 18, 72, 109, 20, 218, 192, 11, 180, 39, 240, 51, 214, 52, 174, 235, 28, 81, 164, 206, 247, 42, 255, 42, 165, 0, 133, 31, 15, 227, 153, 27, 136, 248, 96, 121, 154, 164, 209, 33, 49, 26, 63, 130, 40, 250, 167, 106]), value: EventValue([13, 196, 26, 53, 227, 80, 199, 211, 30, 20, 76, 96, 45, 93, 27, 27, 246, 151, 154, 16, 215, 132, 63, 48, 194, 238, 59, 102, 238, 175, 150, 203, 132, 141, 88, 21, 121, 168, 178, 232, 27, 117, 179, 20, 95, 204, 126, 53]) }, Event { key: EventKey([25, 100, 217, 34, 186, 195, 200, 124, 25, 81, 141, 16, 132, 108, 35, 77, 99, 133, 192, 16, 33, 102, 184, 127, 59, 67, 215, 14, 167, 134, 85, 208, 123, 51, 179, 226, 103, 194, 206, 154, 57, 131, 232, 173, 69, 119, 251, 71, 219, 35, 54, 180, 237, 61, 91, 46, 195, 85, 114, 35, 132, 132, 77, 13, 108, 218, 45, 35, 20, 9, 111, 193, 82, 48, 18, 26, 243, 234, 120, 40, 192, 255, 46, 170, 170, 94, 145, 207, 124]), value: EventValue([127, 176, 25, 32, 118, 224, 243, 93, 46, 86, 126, 24, 30, 199, 26, 136, 87, 43, 47, 136, 78, 36, 222, 29, 45, 98, 105, 241, 244]) }], receipt: 2445354653 }], inner: 1760493079 }], num_txs: 28, num_events: 142 }, SlotCommit { slot_data: TestBlock { curr_hash: [88, 164, 146, 123, 67, 157, 252, 67, 50, 88, 187, 96, 162, 253, 8, 160, 139, 60, 96, 188, 6, 123, 132, 209, 38, 27, 227, 225, 133, 37, 164, 113], header: TestBlockHeader { prev_hash: TestHash([104, 66, 31, 173, 155, 19, 56, 0, 27, 52, 49, 154, 104, 7, 47, 98, 200, 38, 4, 137, 24, 246, 211, 167, 201, 90, 193, 80, 52, 190, 165, 198]) } }, batch_receipts: [BatchReceipt { batch_hash: [59, 55, 142, 64, 212, 231, 154, 218, 41, 233, 204, 200, 183, 168, 83, 10, 126, 150, 135, 252, 114, 9, 58, 253, 240, 103, 50, 121, 135, 32, 91, 51], tx_receipts: [TransactionReceipt { tx_hash: [34, 177, 103, 0, 35, 253, 40, 84, 169, 99, 240, 208, 146, 39, 12, 105, 188, 169, 135, 227, 82, 160, 39, 204, 5, 104, 162, 44, 83, 168, 236, 185], body_to_save: None, events: [Event { key: EventKey([1, 45, 175, 151, 181, 169, 91, 57, 67, 14, 229, 210, 205, 54, 156, 29, 31, 75, 35, 140, 178, 25, 202, 3, 114, 255, 255, 228, 7, 204, 170, 85, 249, 142, 122, 77, 132, 19, 70, 188, 206, 79, 142, 190, 90, 125, 2, 136, 178, 170, 84, 82, 163, 107, 225, 104, 101, 139, 50, 48, 237, 175, 140, 219, 171, 129, 48, 163, 89, 220, 189, 129, 192, 166, 142, 143, 65, 101, 185, 104, 51, 24, 51, 87, 69, 62, 110, 53, 195, 35, 164, 164, 245, 175, 167, 22, 66, 134]), value: EventValue([54, 179, 141, 192, 16, 227, 88, 204, 67, 218, 195, 199, 221, 230, 39, 36, 193, 47, 194, 243, 12, 40, 19, 44, 74, 16, 225, 38, 126, 70, 14, 106, 228, 79, 80, 26, 64, 145, 16, 223, 98, 10, 58, 55, 139, 4, 170, 134, 221, 198, 156, 47, 54, 216, 15, 118, 58, 62, 4, 251, 28, 5, 96, 2, 185, 25, 11, 105, 173, 86, 204, 13, 52, 231, 10, 145, 63, 96, 181, 198, 182, 154, 30, 150, 177, 93, 182, 181, 166, 90]) }, Event { key: EventKey([131, 163, 202]), value: EventValue([99, 102, 218, 181, 151, 241, 102, 83, 253, 198, 160, 238, 58, 169, 38, 146, 55, 38, 2, 67, 14, 49, 211, 107, 39, 13, 237, 238, 93, 73, 70, 70, 195, 236, 190, 89, 39, 141, 45, 73, 25, 140, 167, 170, 232, 124, 227, 227, 56, 8, 213, 188, 41, 163, 3, 106, 173, 206, 39, 188, 104, 60, 25, 191, 141, 200, 121, 147, 245, 170, 220, 116, 167, 131, 127, 92]) }, Event { key: EventKey([7, 100, 228, 226, 178, 177, 75, 112, 136, 47, 206, 154, 133, 221, 27, 24, 76, 64, 210, 107, 32, 21, 255, 35, 56, 150, 42, 12, 249, 147, 245, 240, 174, 255, 56, 90, 176, 61, 165, 180, 155, 40, 173, 255, 19, 248, 5, 14, 0, 18, 137, 155, 86, 83, 31, 27, 80, 169, 1, 47, 45, 216, 83, 127, 62, 28]), value: EventValue([109, 224, 188, 156, 235, 174, 183, 80, 56, 192, 181, 194, 98, 156, 167, 219, 81, 208, 187, 185, 111, 10, 25, 79, 233, 96, 11, 208, 178, 209, 14, 154, 20, 148, 132, 175, 37, 137, 6, 218, 64, 234, 212, 155, 0, 158, 162, 6, 223, 222, 121, 66, 60, 3, 64, 92, 200, 24, 147, 182, 162, 18, 173, 167, 36, 78, 91, 230, 37, 253, 189, 199, 128, 35, 43, 211, 42, 204, 255, 50, 133, 88, 99, 101, 137, 167, 254, 30, 122, 207, 203, 159, 72, 236, 70, 0]) }, Event { key: EventKey([64, 208, 194, 27, 168, 251, 43, 230, 251, 134, 194, 89, 48, 108, 146, 77, 5, 250, 53, 34, 131, 44, 170, 122, 14, 124, 166, 47, 32, 219, 4, 245, 91, 233, 237, 11]), value: EventValue([254, 104, 174, 56, 179, 48, 234, 108, 144, 242, 155, 193, 4, 23, 208, 109]) }, Event { key: EventKey([149, 50, 118]), value: EventValue([196, 12, 250, 89, 176, 205, 28, 99, 232, 77, 68, 172, 162, 26, 207, 253, 213, 28, 242, 114, 44, 14, 36, 179, 64, 190, 237, 214, 46, 252, 38, 200, 175, 155, 203, 112, 185, 147, 146, 41, 166, 9, 83, 62, 19, 88, 2, 154, 138, 222, 237, 67, 75, 224, 223, 113, 255, 185, 84, 41, 45, 31, 151, 245, 176, 252, 230, 55, 253, 213, 73, 173, 248, 192, 142, 146, 42, 62, 234, 33, 7, 115, 216]) }, Event { key: EventKey([188, 59, 143, 117, 235, 90, 128, 199, 103, 45, 13, 235, 237, 54, 228, 90, 13, 246, 159, 131, 181, 162, 182, 164, 183]), value: EventValue([198, 104, 213, 237, 84, 135, 67, 130, 228, 4, 239, 45, 255, 181, 0, 180, 230, 27, 146, 76, 197, 12, 60, 217, 162, 130, 227, 214, 240, 105, 221, 86, 220, 52, 69, 235, 199, 136]) }, Event { key: EventKey([205, 142, 64, 58, 5, 232, 150, 27, 207, 168, 117, 45, 164, 105, 84, 104, 246, 160, 144, 147, 49, 225, 74, 8, 226, 234, 167, 197, 29, 210, 7, 62, 213, 161, 211, 14, 20, 58, 113, 9, 98, 44, 31, 201, 9, 140, 141, 174, 101, 11, 209, 209, 234, 33, 251, 76, 235, 175, 212, 19, 47, 98, 216, 185, 219, 21, 77, 158, 31, 71, 173, 118, 118, 192, 50, 49, 118, 23, 13, 2, 82, 173]), value: EventValue([234, 212, 59, 239, 201, 162, 90, 154, 32, 71, 40, 217, 175, 5, 243, 91, 168, 65, 125, 105, 246, 213, 73, 23, 23, 251, 93, 216, 130, 212, 205, 140, 173, 92, 31, 210, 221]) }, Event { key: EventKey([101, 40, 55, 163, 47, 59, 250, 196, 15, 151, 37, 132, 82, 40, 233, 73, 69, 34, 182, 112, 178, 130, 175, 100, 168, 164, 227, 48, 176, 111, 207, 90, 160, 167, 48, 187, 189, 90, 27, 60, 86, 47, 3, 219, 170, 137, 250, 102, 169, 29, 219, 66, 32, 250]), value: EventValue([20, 246, 79, 185, 202, 226, 205, 79, 155, 214, 117, 213, 121, 109, 4, 165, 96, 97]) }], receipt: 2590959797 }, TransactionReceipt { tx_hash: [16, 181, 72, 95, 186, 90, 25, 231, 116, 141, 226, 154, 79, 70, 106, 24, 41, 77, 175, 25, 18, 81, 114, 164, 162, 133, 144, 125, 156, 255, 212, 50], body_to_save: None, events: [Event { key: EventKey([255, 232, 193, 225, 159, 164, 99, 155, 115, 59, 113, 192, 217, 235, 37, 21, 139, 4, 205, 62, 86, 55, 27, 232, 73, 210, 232, 249, 240, 96, 95, 7, 65, 224, 132, 138, 195, 28, 214, 104, 117, 22]), value: EventValue([102, 38, 138, 164, 119, 92, 108, 174, 52, 245, 211, 140, 168, 97, 235, 59, 56, 248, 91, 117, 12, 220, 174, 23, 243, 105, 160, 194, 66, 68, 149, 253, 129, 152, 115, 25, 134, 55, 19, 37, 101, 29, 101, 65, 93, 136, 185, 220, 66, 78, 190, 215, 201, 46, 207, 130, 128, 145, 134, 70]) }, Event { key: EventKey([111, 156]), value: EventValue([74, 6, 199, 180, 181, 68, 148, 97, 109, 149, 237, 110, 226, 28, 150, 30, 247, 94, 124, 92, 236, 86, 175, 129, 116, 11, 248, 205, 232, 125, 155, 68, 5, 195, 91, 131, 23, 141, 198, 204, 132, 167, 252, 111, 76, 48, 116, 84, 20, 67, 128, 74]) }, Event { key: EventKey([213, 228, 242, 49, 86, 233, 200, 111, 167, 239, 142, 194, 186, 115, 24, 79, 50, 159, 151, 91, 194, 237, 223, 132, 250, 208, 90, 81, 229, 109, 200, 179, 139, 17, 235, 79, 226, 4, 190, 152, 89, 223, 58, 55, 49, 0, 86, 148, 117, 29, 137, 206, 15, 129, 145, 77, 135, 100, 199, 167, 97, 192, 194]), value: EventValue([74, 131, 182]) }, Event { key: EventKey([217, 49, 44, 49, 202, 77, 11, 130, 214, 165, 163, 61, 157, 245, 143, 246, 20, 155, 27, 245, 182, 170, 80, 13, 238, 77]), value: EventValue([209, 132, 43, 246, 153, 137, 205, 117, 172, 79, 114, 230, 243, 119, 54, 145, 57, 138, 12, 166, 143, 62, 157, 57, 239, 17, 208, 14, 9, 102, 93, 20, 172, 20, 78, 1, 232, 8, 30, 230, 125, 90, 69, 4, 203, 116, 70, 67, 180, 53, 23, 121, 61, 103, 30, 86, 10, 91, 45, 204, 55, 72, 223, 8, 186, 168, 66, 155, 73, 191, 246, 197, 46, 81]) }, Event { key: EventKey([103, 11, 115, 52, 82, 4, 64, 124, 194, 189, 37, 147, 5, 185, 19, 65, 152, 246, 105, 87, 0, 69, 240, 226, 231, 226, 63, 240, 33, 243, 184, 208, 239, 148, 240, 19, 205, 112, 85, 180, 177, 211, 165, 41, 230, 254, 249, 3, 20, 169, 83, 72, 17, 159, 60, 58, 229, 175, 189, 63, 248, 162, 61, 15, 150, 150, 201, 210, 183, 198, 25, 77, 248, 45, 181, 190, 211, 109, 175, 153, 230, 189, 161, 23, 81, 102, 71, 74, 89, 252, 81]), value: EventValue([243, 7, 43, 213, 118, 80, 186, 142, 90, 129, 128, 165, 97, 148, 173, 205, 35, 231, 36, 50, 17, 70, 204, 110, 163, 205]) }, Event { key: EventKey([24, 95, 38, 177, 251, 99, 157, 29, 31, 143, 184, 165, 32, 227, 219, 227, 135, 78, 33, 210, 212, 161, 113, 94, 8, 92, 0, 235, 104, 51, 228, 164, 193, 48, 11, 243, 90, 223, 167, 21]), value: EventValue([209, 58, 182, 214, 147, 164, 174, 8, 94, 1, 94, 105, 11, 110, 105, 94, 28, 73, 252, 76, 179, 29, 158, 84, 142, 168, 67, 243, 253, 142, 136, 217, 65, 207, 177, 214, 110, 55, 203, 98, 37, 128, 179, 52, 253, 60, 222, 90, 234, 113, 240, 121, 121, 211, 23, 62, 165, 246, 190, 17, 200, 151, 131, 165, 223, 130, 92, 131, 251, 204, 37, 73, 51, 196, 180, 144, 200, 230, 175, 216, 105, 23, 15, 83, 197, 104, 104, 165, 213, 17, 195, 175, 106, 207, 176, 126]) }, Event { key: EventKey([33, 87, 183, 101, 25, 118, 96, 192, 217, 87, 119, 225, 114, 182, 186, 87, 229, 175]), value: EventValue([254]) }], receipt: 1938759902 }, TransactionReceipt { tx_hash: [0, 96, 236, 218, 53, 150, 224, 5, 118, 153, 11, 143, 53, 76, 31, 183, 252, 122, 211, 135, 3, 23, 8, 10, 34, 139, 154, 79, 83, 38, 155, 38], body_to_save: None, events: [Event { key: EventKey([92, 70, 178, 237, 134, 17, 187, 63, 19, 92, 27, 214, 52, 250, 26, 192, 150, 145, 25, 197, 238, 33, 142, 68, 0, 82, 142, 18, 94, 68, 117, 238, 116, 221, 144, 155, 104, 4, 74, 145, 175]), value: EventValue([152, 226, 206, 133, 15, 113, 241, 253, 119, 118, 167, 53, 154, 37, 25, 168, 142, 144, 220, 235, 105, 128, 84, 40, 125, 87, 137, 93, 205, 106, 95, 18, 201, 6, 227, 223, 63, 247, 35, 36, 2, 219, 149, 103, 152, 220, 133, 0, 253, 152, 168, 217, 221, 200, 0, 190, 126, 242, 112, 142, 96, 99, 149, 129, 110, 108, 90, 5, 84, 212, 5, 79, 131]) }, Event { key: EventKey([153, 155, 117, 79, 7, 112, 183, 109, 36, 244, 231, 253, 52, 96, 10, 131, 152, 108, 218, 33, 139, 85, 76, 192, 250, 150, 149, 90, 232, 100, 9, 5, 248, 28, 245, 167, 185, 99, 169, 159, 173, 48, 97, 182, 226, 252, 96, 46, 212, 2, 226, 4, 192, 251, 74, 4, 120, 139, 150, 107, 233, 96, 26, 100, 209, 50, 163, 197, 136, 167, 117, 225, 49, 72, 204, 180, 53, 133, 69, 223, 122, 51, 109, 30]), value: EventValue([190, 237, 127, 114, 155, 62, 0, 101, 237, 48, 226, 142, 101, 230, 168, 252, 136, 182, 3, 53, 152, 237, 69, 225, 244, 211, 5, 92, 43, 164, 206, 157, 90, 227, 3, 77, 106, 75, 179, 21, 220, 117, 81, 184, 210, 240, 148, 57, 195, 122, 212, 195, 156, 46, 0, 194, 45, 120, 40, 76, 240, 245, 255, 247, 161, 43, 237, 182, 252]) }, Event { key: EventKey([3, 117, 254, 250, 124, 233, 58, 11, 154, 147, 16, 243, 149, 58, 212, 53, 43, 169, 154, 167, 210, 181, 161, 38, 125, 232, 80, 174, 154, 83, 58, 57, 66, 193, 181, 220, 61, 29, 12, 235, 130, 157, 71, 41, 98, 119, 75, 72, 122]), value: EventValue([133, 12, 148, 206, 194, 16, 209, 85, 222, 72, 118, 36, 164, 32, 243, 82, 76, 125, 85, 12, 125, 51, 28, 35, 93, 148, 37, 64, 107, 186, 246, 121, 52, 53, 57, 137, 84, 78, 62, 161, 127, 151, 179, 84, 141, 147, 197, 148, 191, 157, 133, 7, 210, 116, 148, 120, 136, 254, 172, 100, 232, 100, 174, 10, 72, 19, 244, 231, 94, 150, 158, 16, 44, 139, 199, 109, 133, 106, 149, 39, 126, 71, 11, 242, 207, 248, 32]) }], receipt: 254965449 }, TransactionReceipt { tx_hash: [5, 79, 175, 204, 2, 212, 128, 83, 111, 67, 26, 15, 189, 43, 70, 187, 196, 101, 28, 71, 245, 221, 234, 171, 60, 148, 85, 203, 22, 176, 20, 112], body_to_save: None, events: [Event { key: EventKey([22, 106, 68, 158, 241, 146, 52, 129, 19, 225, 200, 184, 85, 210, 252, 112, 238, 115, 172, 239, 146, 89, 3, 7, 199, 106, 44, 79, 251, 173, 30, 12, 56, 249, 26, 49, 47, 189, 137]), value: EventValue([124, 108, 27, 205, 114, 127, 147, 149, 234, 231, 253, 243, 58, 211, 9, 11, 202, 74, 221, 100, 136, 148, 239, 78, 235, 175, 75, 44, 218, 131, 244, 233, 146, 222, 204, 247, 232, 118, 230, 137, 86, 146, 237, 126, 214, 190, 225, 67, 123, 184, 115, 182, 152, 253, 87, 226, 221, 70, 10, 92, 57]) }, Event { key: EventKey([52, 59, 40, 80, 140, 147, 206, 185, 234, 177, 4, 87, 68, 14, 187, 205, 242, 50, 236, 130, 7, 143, 28, 236, 219, 210, 238]), value: EventValue([79, 150, 66, 204, 238, 12, 92, 112, 76, 100, 130, 125, 74, 8, 218, 121, 102, 141, 109, 164, 149, 66, 250, 125, 106, 227, 181, 102, 21, 62, 121, 165, 143, 4, 126, 136, 181, 75, 48, 201, 93, 241, 42, 109, 48, 22, 177, 137, 179, 155, 159, 147, 208, 56, 212, 205, 210, 53, 159, 135, 234, 229, 43, 223, 7, 136, 89, 12, 34, 211, 142, 142, 189, 25, 9, 90, 213, 240, 16, 58, 102, 131, 8, 49, 221]) }], receipt: 1072755335 }, TransactionReceipt { tx_hash: [229, 173, 209, 240, 178, 58, 138, 82, 168, 49, 203, 173, 237, 29, 37, 222, 133, 128, 73, 195, 90, 183, 229, 65, 164, 216, 58, 246, 51, 152, 227, 217], body_to_save: Some([182, 202, 194, 106, 123, 232, 73, 53, 18, 230, 51, 39, 103, 54, 123, 51]), events: [Event { key: EventKey([244, 27, 242, 247, 89, 68, 17, 148, 136, 57, 206, 43, 217, 31, 146, 44, 23, 242, 194, 213, 162, 157, 209, 202, 209]), value: EventValue([80, 62, 66, 77, 47, 150, 88, 174, 116, 222]) }, Event { key: EventKey([153, 132, 19, 63, 232, 203, 173, 234, 147, 217, 229, 253, 25, 42, 37, 221, 31, 111, 61, 104, 118, 60, 126, 230, 77, 0, 203, 245, 49, 29, 168, 248, 222, 24, 76, 231, 236, 120, 188, 132, 170, 17, 177, 96, 35, 228, 11, 151, 15, 85, 199, 198, 180, 92, 26, 57, 33, 187, 135, 69, 67, 160, 8, 24, 37, 199, 255, 121, 93, 234, 218, 106, 149, 45, 211, 253, 210]), value: EventValue([145, 52, 94, 127, 109, 226, 159, 246, 11, 250, 233, 233, 196, 215, 66, 42, 64, 206, 36, 83, 165, 196, 194, 127, 21, 8, 21, 185, 11, 128, 205, 229, 130]) }, Event { key: EventKey([3, 59, 58, 190, 117, 180, 68, 197, 255, 97, 92, 30, 24, 189, 104, 132, 71, 168, 82, 128, 201, 71, 67, 24, 10, 245, 48, 253, 59, 106, 228, 89, 148, 41, 55, 86, 160, 142, 124, 153, 181, 13, 199, 92, 101, 2, 182, 29, 60, 249, 165, 86, 49, 235, 232, 199, 204, 52, 71, 223, 231, 160]), value: EventValue([182, 255, 157, 229, 92, 199, 86, 138, 149, 105, 239, 145, 121, 117, 244, 102, 37, 195, 218, 149, 74, 160, 254, 12, 116, 133, 31, 190, 131, 87, 118, 50, 219, 84, 81, 74, 207, 228, 149, 134, 134, 175, 59, 252, 155, 103, 118, 90, 216, 203, 152, 38, 2, 67, 164, 91, 188, 226, 201, 238, 176, 105, 184, 141, 120, 21, 39, 116, 27]) }, Event { key: EventKey([155, 252, 74, 81, 35, 95, 164, 64, 215, 218, 144, 108, 121, 58, 231, 176, 197, 104, 166, 109, 185, 54, 249, 9, 139, 112, 14, 144, 225, 101, 74, 106, 15, 123, 35, 31, 201, 148, 55, 168, 148, 248, 84, 183, 157, 121, 223, 89, 51, 46, 51, 115, 121, 200, 139, 68, 19, 27, 51, 98, 233, 83, 241, 217, 207, 152, 255, 129, 107, 180, 161, 209, 201, 215, 155, 28, 191, 6, 107, 144, 232, 141, 98, 121, 33, 246, 79, 197, 222, 80, 188, 225, 158, 168, 208, 116, 17, 6, 197]), value: EventValue([107, 190, 1, 167, 87, 36, 0, 14, 250, 124, 193]) }, Event { key: EventKey([253, 45, 112, 6, 97, 222]), value: EventValue([61, 213, 227, 51, 198, 151, 38, 32, 190, 44, 51, 97, 154, 103, 244, 196, 92, 149]) }], receipt: 3745321047 }], inner: 2013964352 }, BatchReceipt { batch_hash: [148, 231, 190, 19, 100, 15, 97, 2, 93, 112, 43, 141, 2, 186, 104, 57, 154, 50, 11, 204, 158, 174, 99, 253, 87, 97, 207, 1, 5, 15, 59, 183], tx_receipts: [TransactionReceipt { tx_hash: [251, 16, 191, 13, 173, 122, 79, 94, 104, 247, 139, 27, 29, 33, 191, 24, 188, 172, 141, 19, 202, 156, 141, 76, 168, 84, 173, 135, 80, 169, 20, 55], body_to_save: None, events: [Event { key: EventKey([35, 50, 92, 1, 207, 76, 179, 65, 67, 83, 38, 109, 86, 223, 66, 10, 36, 193, 168, 193, 47, 137, 138, 193, 23, 226, 187, 189, 166, 206, 199, 188, 131, 245, 56, 240, 84, 34, 3, 110, 157, 109, 0, 197, 135, 78, 187, 16, 133, 204, 122, 88, 192, 29, 217, 230, 189, 192, 101, 193, 90, 226, 93, 143, 252]), value: EventValue([193, 252, 108, 77, 131, 171, 244, 242, 77, 44, 117, 76, 14, 217, 4, 50, 71, 167, 67, 249, 205, 145, 63, 60, 200, 23, 252, 204, 18, 111, 184, 230, 207, 132, 118, 170, 191, 193, 210, 202, 5, 204, 121, 178, 11, 251, 114, 169, 242, 57, 229, 47, 36, 14, 128, 0, 208, 91, 194, 151, 87, 98, 122, 175, 201, 86, 43, 238, 1, 150, 109, 43, 236, 250, 124, 122, 41, 152, 126, 171, 30, 223]) }, Event { key: EventKey([114, 170, 115, 97, 69, 116, 156, 188, 34, 165, 170, 42, 125, 244, 2, 121, 51, 48, 57]), value: EventValue([92, 124, 236, 118, 188, 225, 123, 186, 27, 133, 88, 64, 51, 137, 64, 171, 226, 222, 131, 69, 148, 248, 220, 146]) }, Event { key: EventKey([141, 93, 186, 174, 195, 175, 120, 158, 23, 158, 169, 106, 151, 104, 96, 174, 255, 8, 230, 191, 188, 63, 207, 178, 99, 72, 101, 202, 218, 69, 77, 219, 217, 211, 12, 215, 2, 141, 75, 114, 250, 86, 171, 147, 136, 232, 209, 245, 118, 217, 51, 142, 100, 139, 89, 208, 89, 87, 146, 16, 108, 226, 208, 220, 58, 9, 254, 219, 94, 184, 185, 175, 1, 253, 215, 85, 197, 55, 253, 54, 132]), value: EventValue([97, 230, 180, 7, 67, 56, 61, 177, 28, 116, 51, 30, 68, 11, 85, 63, 0, 142, 162, 205, 9, 239, 7, 229, 137, 36, 128, 50, 227, 119, 19, 109, 239, 211, 140, 8, 69, 8, 189, 116, 101, 208, 193, 85, 158, 211, 55]) }, Event { key: EventKey([45, 164, 18, 113, 211, 114, 165, 144, 132, 88, 234, 158, 190, 5, 192, 74, 185, 40, 72, 113, 247, 82, 209, 198, 243, 186, 80, 19, 206, 202, 169, 138, 19, 160, 76, 96, 111, 65, 158, 74, 150, 17, 183, 8, 155, 254, 30, 50, 239, 73, 75, 123, 240, 207, 246, 158]), value: EventValue([101, 23, 21, 104, 140, 173, 199, 78, 229, 208, 235, 119, 252, 70, 93, 150, 136, 51, 207, 15, 19, 207, 150, 55, 178, 123, 201, 85, 107, 53, 74, 208, 127, 118, 58, 44, 19, 83, 193, 247, 234, 105, 236, 154, 177, 16, 236, 218, 202, 10, 44, 215, 18, 27, 193, 10, 237, 100, 225, 231, 234, 97, 42, 230, 16, 91, 168, 162, 222, 213, 144, 217, 195, 3, 103, 207]) }, Event { key: EventKey([248, 166, 88, 229, 71, 158, 110, 253, 52, 97, 109, 58, 5, 204, 248, 240, 226, 146, 218, 136, 175, 89, 194, 212, 89, 209, 176, 15, 160, 156, 1, 55, 180, 56, 215, 73, 54, 62, 164, 118, 228, 70, 159, 78, 76, 51, 77, 87, 5, 243, 209, 237, 36, 205, 97, 86, 237, 183, 7, 148, 4, 56, 111, 61, 92, 87, 11, 134, 152]), value: EventValue([146, 207, 168, 91, 124, 166, 143, 139, 182, 83, 248, 243, 148, 160, 74, 163, 234, 81, 126, 60, 206, 236, 64, 147, 144, 98, 3, 186, 95, 153, 128, 166, 140, 63, 93, 108, 160, 48, 197, 54, 53, 61, 27, 23, 246, 188, 78, 83, 240, 207, 236, 71, 190, 65, 203, 226, 178]) }, Event { key: EventKey([159, 184, 124, 99, 1, 90, 2, 56, 207, 73, 163, 70, 49, 48, 100, 148, 126, 150, 223, 126]), value: EventValue([98, 159, 57, 20, 26, 230, 177, 218, 98, 249, 35, 68, 76, 203, 79, 227, 55, 203, 59, 144, 224, 222, 13, 146, 219, 186, 212, 197, 145, 66, 62, 183, 27, 75, 56, 48, 166]) }, Event { key: EventKey([85, 12, 251, 15, 2, 134, 220, 34, 191, 98, 224, 154, 6, 150, 196, 212, 126, 48, 145, 223, 48, 74, 185, 252, 52, 231, 11, 120, 65, 236, 150, 25, 171, 168, 77, 214, 159, 67, 78, 206, 210]), value: EventValue([]) }, Event { key: EventKey([49, 157, 243, 27, 208, 200, 250, 151, 168, 47, 63, 42, 127, 68, 38, 28, 80, 186, 121, 108, 200, 220, 102, 236, 227, 20, 137, 202, 105, 73, 50, 159, 45, 55, 28, 113, 37, 207, 16, 113, 198, 65, 81, 74, 103, 166, 162, 42, 239, 9, 240, 58, 40, 246, 130, 18, 201, 55, 78]), value: EventValue([63, 252, 248, 102, 253, 234, 20, 13, 8, 210, 175, 55, 69, 107, 1, 108, 149, 76, 191, 253, 154, 130, 107, 7, 160, 170, 191, 79, 68, 9, 146, 48, 250, 116, 151, 194, 172, 223, 94, 52, 112, 149, 67, 231, 133, 68, 238, 128, 146, 208, 112, 115, 224, 98, 21, 52, 54, 69, 153, 33, 47, 86, 239, 66, 57, 87, 246, 38, 242, 168, 221, 183, 23, 49, 152, 22, 232, 218, 12, 200]) }, Event { key: EventKey([248, 147, 116, 94, 196, 163, 224, 181, 27, 128]), value: EventValue([86, 52, 148, 219, 27, 67, 65, 106, 158, 148, 240, 14, 40, 236, 141, 28, 141, 28, 22, 1, 36, 183, 2, 93, 246, 76, 103, 82, 244, 97, 56, 235, 165, 14, 147, 242, 42, 196, 175, 219, 209, 27, 226, 106, 119, 142, 158, 121, 11, 84, 146, 117, 49, 218, 102, 149, 6, 76, 77, 188, 237, 70, 49, 98, 118, 108, 113, 3, 86, 216, 57, 200, 31, 106, 4, 211, 82, 208]) }], receipt: 2789799103 }, TransactionReceipt { tx_hash: [169, 83, 188, 226, 190, 13, 7, 188, 10, 53, 219, 204, 21, 147, 156, 247, 96, 48, 208, 212, 68, 39, 229, 10, 5, 120, 212, 36, 128, 210, 116, 174], body_to_save: None, events: [Event { key: EventKey([51, 185, 145, 170, 114, 208, 63, 13, 89, 118, 63, 5, 99, 77, 236, 219, 120, 242, 135, 235, 118, 213, 181, 63, 55, 162, 56, 146, 231, 37, 161, 226, 17, 54, 221, 200, 25, 15, 85, 142, 4, 186, 143, 46, 233, 119, 181, 10, 129, 246, 90, 185, 1, 139, 158, 211, 161, 47, 137, 11, 125, 7]), value: EventValue([201, 85, 230, 126, 16, 37, 121, 87, 29, 224, 179, 17]) }, Event { key: EventKey([247, 39, 72, 155, 221, 97, 209, 135, 177, 233, 236, 126, 210, 7, 158, 98, 50, 218, 204, 88, 3, 250, 173, 223, 108, 173, 184, 210, 155, 192, 244, 18, 144, 98, 50]), value: EventValue([138, 133, 91, 106, 240, 231, 253, 134, 220, 11, 235, 22, 222, 238, 35, 196, 160, 125, 79, 243, 108, 102, 209, 181, 81, 130, 153, 56, 207, 68, 132, 101, 148, 120, 66, 36, 82, 66, 190, 189, 158, 170, 25, 214, 99, 43, 25, 126, 235, 154, 46, 193, 183, 31, 24, 170, 48, 166, 226, 25, 81, 142, 80, 99, 246, 134, 115, 228, 79, 65, 68, 132, 82, 50, 127, 57, 30, 193, 97, 195]) }, Event { key: EventKey([90, 199, 39, 213, 137, 38, 6, 244, 176, 157, 173, 122, 172, 68, 158, 119, 61, 136, 154, 53, 173, 176, 41, 254, 45, 65, 128, 199, 238, 101, 5, 31, 189, 127, 39, 0, 87, 201, 158, 9, 162, 54, 253, 163, 136, 40, 144, 181, 169, 165, 15, 78, 79, 130, 121, 93, 113, 62, 58, 94, 133, 108, 228, 47, 228, 229, 98, 210, 224, 173, 186, 61, 128, 186, 242, 105, 10, 178]), value: EventValue([45, 219, 174, 121, 76, 19, 250, 93, 17, 150, 71, 77, 160, 22, 227, 221, 42, 21, 180, 160, 47, 64, 3, 25, 244, 104, 118, 180, 51, 198, 122, 89, 169, 60, 128, 115, 211, 38, 146, 191, 244, 247, 101, 56, 146, 176, 233, 178, 227, 244, 208, 30, 163, 180, 230, 57, 224, 96, 100, 95, 125, 223, 181, 135, 186, 40, 154, 45, 21, 48, 254, 172, 183, 23, 143, 84, 42, 120, 71, 68, 123, 62, 248, 167, 162, 213, 19, 80, 184, 176, 6, 124, 158, 221, 120, 26, 194]) }, Event { key: EventKey([147, 225, 217, 93, 33, 22, 197, 230, 20, 138, 98, 181, 73, 161, 142, 197, 147, 24, 100, 241, 79, 148, 13, 222, 2, 175, 147, 25, 21, 47, 177, 190, 46, 35, 77, 51, 49, 204, 183, 59, 79, 26, 17, 175, 187, 85, 201, 13, 119, 167]), value: EventValue([232, 94, 75, 248, 181, 2, 127, 96, 162, 104, 36, 142, 16, 248, 49, 226, 140, 149, 38, 218, 5, 192, 185, 253, 87, 202, 139, 183, 78, 21, 71, 83, 151, 59, 243, 152, 15, 189, 224, 88, 153, 89, 78, 17, 65, 231, 43, 29, 19, 239, 194, 242, 131, 241, 162, 244, 227, 155, 212, 69, 118, 39, 139, 210, 84, 63, 65, 218, 245, 222, 60, 127, 23, 189, 52, 255, 182, 180, 65, 117]) }, Event { key: EventKey([]), value: EventValue([168, 154, 217, 174, 171, 130, 183, 82, 53, 20, 246, 235, 54, 243, 200, 161, 127, 180, 225, 25, 147, 214, 174, 117, 146, 203, 94, 40, 205, 253, 211, 206, 103, 175, 12, 68, 61, 14, 28, 198, 197, 106, 147, 52, 237, 162, 196]) }, Event { key: EventKey([30, 85, 240, 69, 1, 111, 178, 200, 248, 241, 230, 181, 190, 168, 216, 21, 125, 175, 139, 56, 191, 73, 226, 139, 10, 28, 220, 204, 209, 66, 10, 148, 105, 72, 113, 23, 174, 102, 187, 127, 188, 57, 239, 77, 112, 37, 214, 5, 46, 178, 7, 100, 58, 136, 79, 81, 142, 130, 133, 133, 18, 17, 232, 51, 136, 181, 59, 197, 26, 176, 181, 120, 235, 107, 239, 139, 227, 129, 100, 242, 158, 8, 233, 52, 177, 96, 122, 51, 80, 75]), value: EventValue([104, 223, 133, 67, 143, 233, 88, 66, 140, 187, 146, 31, 87, 149, 6, 21, 23, 212, 200, 55, 13, 68, 39, 188, 105, 157, 183, 226, 101, 63, 153, 152, 28, 86, 69]) }, Event { key: EventKey([133, 127, 96, 156, 109, 158, 168, 28, 2, 131, 199, 82, 122, 233, 90, 27, 207, 19, 20, 246]), value: EventValue([242, 32, 142, 68, 193, 238, 157, 199, 36, 235, 228, 40, 114, 175, 120, 189, 94, 130, 27, 38, 53, 23, 165, 203, 217, 110, 202, 40, 106, 143, 152, 5, 245, 197, 100, 15, 60, 45, 153, 37, 91, 213, 15, 164, 189, 88, 252, 213, 224, 86, 70]) }], receipt: 3183139240 }, TransactionReceipt { tx_hash: [44, 230, 86, 1, 122, 150, 223, 60, 172, 183, 132, 64, 55, 39, 77, 40, 180, 22, 92, 81, 7, 90, 83, 95, 133, 202, 150, 103, 34, 252, 90, 5], body_to_save: Some([97, 232, 87, 115, 46, 25, 19, 50, 11, 22, 230, 190, 186, 84, 54, 129, 227, 156, 31, 16, 121, 147, 181, 67, 155]), events: [Event { key: EventKey([37, 55, 139, 8, 42, 243, 112, 102, 22, 240, 117, 84, 20, 253, 89, 11, 139, 210, 40, 98, 143, 142, 223, 32, 63, 177, 35, 163, 137, 136, 144, 165, 22, 108, 10, 233, 25, 39, 173, 167, 149, 122, 208, 171, 70, 64, 209, 50, 45, 38, 67, 130, 161, 202, 215, 223, 82, 216, 251, 111, 189, 4, 14, 92, 122, 175, 148, 128, 200, 107, 96, 216, 140, 137, 153, 48, 77, 207, 137, 17, 109, 4, 163, 183, 182, 147, 205, 251, 167, 137, 96, 81, 201, 209, 177, 70, 172]), value: EventValue([117, 250, 117, 241, 100, 225, 52, 154, 116, 142, 23, 238, 91]) }, Event { key: EventKey([6, 76, 191, 161, 43, 48, 236, 59, 32, 1, 163, 131, 38, 240, 87, 112, 67, 251, 170, 162, 213, 96, 81, 187, 7, 239, 115, 94, 214, 228, 65]), value: EventValue([123, 120, 84, 212, 148, 0, 204, 161, 181, 160, 29, 189, 63, 179, 243, 1, 166, 243, 39, 247, 75, 243, 184, 153, 83, 251, 175]) }, Event { key: EventKey([139, 74, 17, 89, 46, 183, 80, 98, 183, 103]), value: EventValue([241, 171, 64, 135, 181, 132, 78, 250, 126, 192, 32, 71, 83, 42, 208, 81, 69, 76, 0, 50, 220, 178, 94, 56, 241, 148, 247, 15, 254, 31, 130, 219]) }, Event { key: EventKey([254, 142, 177, 222, 20, 115, 208, 16, 66, 180, 18, 129, 201, 232, 69, 219, 28, 186, 97, 236, 229, 242, 250, 207, 51, 229, 143, 34, 214, 106, 185, 96, 147, 242, 38, 122, 156, 7, 143, 92, 220, 59, 219, 126, 119, 27, 202, 209]), value: EventValue([191, 133, 106, 228, 156, 81, 88, 244, 138, 221, 184, 253, 207, 204, 222, 251, 37, 29, 180, 112, 247, 237, 253, 158, 134, 122, 55, 140, 190, 202, 157, 162, 198, 155, 227, 169, 130, 26, 106, 120, 70, 15, 115, 99, 249, 197, 103, 91, 124, 36, 190, 199, 94, 24, 254, 45, 5, 174, 98, 168, 154, 205, 180, 190, 132, 101, 11, 8, 235, 173, 124, 42, 80, 228, 120, 180, 232, 149, 11, 108, 67, 192, 145, 171, 212, 251]) }, Event { key: EventKey([8, 129, 230, 217, 126, 149, 36, 138, 0, 134, 134, 25, 116, 244, 215, 62, 221, 181, 200, 238, 32, 1, 56, 22, 102, 173, 76, 117, 39, 184, 179, 253]), value: EventValue([108, 55, 212, 65, 236, 84, 249, 3, 233, 66, 95, 113, 188, 141, 92, 139, 239, 152, 192, 38, 103, 218, 183, 240, 208, 92, 113, 31, 175, 189, 64, 201, 58, 86, 232, 103, 60, 154, 72, 242, 232, 85, 170, 167, 97, 44, 206, 189, 95, 100, 206, 109, 10, 156, 134, 248, 100, 166, 203, 22, 54, 203, 66]) }], receipt: 956028394 }, TransactionReceipt { tx_hash: [228, 70, 22, 84, 239, 223, 237, 23, 212, 163, 128, 117, 24, 12, 244, 57, 198, 45, 25, 213, 240, 173, 178, 139, 152, 234, 20, 208, 215, 115, 202, 37], body_to_save: None, events: [Event { key: EventKey([23, 224, 161, 146, 217, 226, 172, 244, 80, 126, 192, 120, 87, 227, 114, 70, 35, 4, 22, 205, 20, 187, 146, 90, 21, 117, 141, 75, 60, 5, 104, 36, 60, 35, 162, 225, 103]), value: EventValue([215, 184, 44, 249, 45, 70, 26, 171, 25, 174, 193, 146, 19, 71, 80, 186, 217, 35, 50, 27, 238, 27]) }, Event { key: EventKey([141, 48, 156, 80, 226, 209]), value: EventValue([70, 183, 115, 175, 88, 36, 68, 93, 91, 84, 73, 114, 198, 91, 41, 122, 158, 67, 248, 69, 253, 251, 137, 221, 177, 30, 158, 173, 61, 203, 127, 205, 90, 166, 123, 243, 164, 197, 237, 242]) }, Event { key: EventKey([156, 50, 82, 244, 217, 63, 190, 209, 88, 49, 38, 210, 20, 219, 55, 81, 223, 214, 51, 15, 167, 124, 28, 171, 92, 27, 143, 124, 29, 49, 79, 19, 46, 44, 60, 169, 93, 99, 147, 192, 68, 169, 8, 176, 78, 9, 27, 94, 167, 125, 224, 79, 43, 105, 96, 170, 239, 66, 231, 246, 233, 216, 240, 225, 29, 98, 134, 120, 58, 237, 175]), value: EventValue([6, 216, 220, 116]) }, Event { key: EventKey([215, 74, 151, 16, 19, 52, 120, 187, 236, 143, 130, 15, 49, 41, 12, 85, 18, 144, 53, 164, 193, 1, 253, 101, 101, 9, 96, 42]), value: EventValue([223, 138, 113, 123, 97, 183, 241, 147, 24, 196, 149, 230, 254, 201, 11, 128, 177, 204, 249, 51, 108, 58, 71, 224, 51, 21, 81, 237, 225, 94, 88, 135, 187, 252, 133, 44, 217, 230, 28, 167, 42, 152]) }, Event { key: EventKey([141, 113, 40, 2, 142, 9, 223, 167, 191, 194, 110, 158, 158, 242, 254, 50, 137, 77, 214, 30, 187, 28, 68, 4, 171, 74, 70, 163, 109, 123, 37, 220, 82, 196, 95, 13, 255, 134, 228, 101, 197, 245, 41, 241, 1, 66, 172, 187, 113, 82, 178, 0, 199, 139, 163, 193, 19, 197, 109, 138, 210, 50, 160, 120, 65, 192, 173, 240, 148, 224, 104, 138, 198, 199, 229, 45, 56, 230, 194, 70, 143]), value: EventValue([203, 220, 97, 142, 99, 199, 138, 191, 110, 242, 222, 91, 157, 87, 224, 109, 66, 149, 4, 90, 180, 68, 243, 14, 171, 0, 131, 220, 102, 55, 54, 233, 13, 110, 244, 89, 191, 192, 190, 102, 217, 62, 232, 57, 12, 83, 73, 228, 235, 215, 108, 1, 4, 211, 61, 215, 53, 187, 212, 223, 38, 9, 57, 3, 191, 24, 214, 205, 140, 43, 142, 80, 21, 74, 88, 131, 254, 93, 19, 204, 39, 130, 180, 40, 181, 64, 174, 175, 204, 135, 160, 38]) }, Event { key: EventKey([166, 74, 165, 191, 14, 3, 42, 54, 241, 145, 42, 248, 154, 103, 110, 25, 70, 229, 243, 241, 116, 142, 84, 83, 176, 5, 138, 225, 243, 29, 133, 1, 240, 88, 222, 79, 49, 55, 80, 248, 69, 144, 90, 34, 121, 170, 235, 206, 71, 63, 139, 203, 73, 229, 86, 226, 177, 68, 199, 211, 76, 210, 201, 109, 192, 82, 42, 110, 193, 60, 93, 244, 39, 84, 188, 239, 28, 169, 117, 1, 58]), value: EventValue([237, 168, 142, 236, 26, 18, 138, 106, 42, 166, 103]) }, Event { key: EventKey([110, 133, 90, 86, 36, 159, 199, 224, 178, 168, 159, 135, 128, 1, 18, 125, 204, 105, 84, 222, 64, 72, 182, 156, 74, 127, 105, 75, 40, 69, 89, 48, 112, 169, 194, 139, 186, 65, 12, 186, 117, 154, 117, 126, 208, 239, 77, 145, 67, 102, 87, 146, 82, 41, 18, 243, 192, 29, 191, 246, 111, 61, 136, 161, 48, 96, 159, 162, 173]), value: EventValue([43, 127, 7, 138, 83, 239, 100, 54, 78, 215, 159, 140, 109, 171, 5, 213, 61, 210, 68, 140, 149, 213, 196, 230, 177, 248, 88, 208, 7, 164, 230, 182, 41, 240, 171, 95, 141, 210, 79, 169, 154, 3, 208, 63, 48, 54, 41, 254, 176, 113, 45, 65, 110, 45, 202, 31, 193, 228, 145, 169, 72, 4, 237, 225, 150, 198, 188, 221, 106, 31, 189, 193, 47, 146, 34, 210, 172, 121, 183, 179, 117, 132]) }], receipt: 3726832297 }, TransactionReceipt { tx_hash: [245, 78, 41, 195, 245, 33, 56, 250, 84, 167, 144, 74, 203, 9, 175, 14, 67, 208, 149, 248, 171, 59, 201, 54, 178, 240, 37, 13, 144, 3, 157, 72], body_to_save: None, events: [Event { key: EventKey([148, 250, 175, 30, 169, 206, 245, 59, 81, 237, 172, 3, 92, 122, 40, 134, 1, 206, 93, 202, 188, 58, 22, 182, 160, 53, 252, 249, 80, 187, 22, 81, 217, 15, 54, 86, 114, 49, 138, 176, 169, 123, 13, 235, 240, 146, 102, 66, 113, 80, 207, 75, 203, 125, 93, 57, 129, 173, 137, 168, 100, 191, 47, 17, 190, 74, 129, 88, 127, 251, 31, 141, 191, 9, 206, 193, 203, 105, 83, 13, 132, 154, 78]), value: EventValue([224, 93, 205, 178, 180, 164, 243, 159, 167, 90, 70, 153, 103, 80, 46, 128, 157, 214, 180, 40, 16, 85, 155, 26, 144, 86, 209, 68, 137, 92, 78, 192, 109, 82, 176, 250, 76, 203, 184, 19, 227, 119, 113, 78, 179, 30, 48, 105, 74, 244, 193, 10, 232, 79, 146, 49, 202, 235, 179, 175, 9, 138, 98, 169, 24, 40, 45, 178, 75, 128, 239, 76]) }, Event { key: EventKey([217, 90, 210, 76, 125, 186, 135, 176, 157, 216, 75, 0, 54, 94, 41, 210, 243, 198, 6, 228, 54, 85, 187, 136, 37, 13, 240, 245, 151, 148, 113]), value: EventValue([191, 188, 226, 53, 235, 186, 138, 53]) }, Event { key: EventKey([208, 81, 226, 164, 199, 200, 208, 100, 247, 181, 6, 105, 142, 47, 146, 74, 23, 232, 62, 160, 132, 195, 227, 53, 72, 85, 121, 188, 83, 145, 61, 52, 58, 23, 127, 177, 141, 181, 85, 27, 69, 3, 58, 99, 53, 3, 210, 115, 243, 53, 102, 148]), value: EventValue([186, 233, 220, 205, 26, 26, 42, 194, 94, 220, 167, 1, 155, 242, 192, 7, 243, 86, 102, 64, 126, 100, 135, 5, 20, 28, 249, 228, 235, 191, 232, 71, 86, 194, 77, 136, 76, 14, 25, 110, 216, 140, 12, 88, 236, 205, 68, 173, 205, 87, 85]) }, Event { key: EventKey([26, 203, 97, 159, 103, 134, 204, 74, 88, 88, 145, 127, 108, 103, 150, 40, 226, 120, 153, 158, 159, 58, 218, 221, 78, 158, 170, 36, 181, 218, 147, 221, 253, 99, 22, 68, 27, 19, 42, 147, 107, 242, 81, 175, 222, 150, 42, 55, 166, 200, 168, 250, 222, 162, 89, 222, 3, 81, 81, 111, 174, 13, 247, 37, 207, 54, 53, 226, 54, 222, 99, 69, 54, 64, 134, 166, 90, 96, 189, 183]), value: EventValue([144, 230, 227, 64, 249, 217, 228, 24, 208, 253, 221, 66, 100, 53, 48, 60, 198, 33, 28, 157, 208, 147, 141, 22, 238, 93, 195, 11, 19, 156, 80, 47, 13, 4, 47, 48, 168, 80, 121, 43, 8, 99, 251, 114, 42, 187, 62, 110, 201, 97, 182, 100, 192, 64, 152, 172, 11, 85, 58, 24, 117, 107, 110, 238, 168, 175, 193, 90, 156, 186, 106, 91, 148, 6, 237, 202, 97, 116, 74, 90, 107, 123]) }, Event { key: EventKey([120, 78, 117, 42, 158, 192, 47, 125, 122, 42, 13, 61, 191, 233, 42, 13, 39, 235, 101, 92, 41, 94, 53, 238, 117, 171, 55, 188, 95, 213, 77, 199, 86, 216, 137, 197, 152, 47, 88, 206, 224, 5, 92, 85, 72, 200, 255, 16, 133, 156, 146, 98, 201, 192, 175, 254, 196, 215, 24, 49, 255, 250, 36, 56, 35, 129, 206]), value: EventValue([231, 82, 164, 52, 167, 150, 105, 153, 167, 26, 135, 92, 97, 145, 102, 187, 146, 114, 82, 97, 113, 61, 81, 82, 74, 103, 88, 50, 168, 217, 213, 221, 89, 245, 131, 244, 40, 38, 109, 111, 182, 196, 18, 153, 116, 210, 88, 117, 144, 14, 19, 21, 232, 181, 51, 199, 14, 34, 173, 192, 43, 3, 255, 80, 100, 24, 95]) }, Event { key: EventKey([193, 181, 165, 212, 7, 153, 181, 217, 64, 12, 43, 168, 154, 239, 82, 190, 213, 173, 51, 100, 147, 227, 17]), value: EventValue([31, 138, 2, 44, 175, 118, 114, 36, 107, 103, 42, 80, 245, 178, 202, 8, 117, 134, 241, 30, 178, 154, 72, 59, 213, 238, 108, 24, 194, 129, 132, 0, 34, 79, 75, 64, 86, 194, 186, 182, 51, 75, 85, 209, 143, 68, 195, 211, 118, 161, 222, 60, 78, 226, 130, 33, 250, 148, 125, 73, 30, 65, 17, 141, 50, 27, 230, 12, 144, 177, 191]) }, Event { key: EventKey([170, 109, 150, 235, 207, 80, 15, 132, 194, 18, 69, 79, 126, 29, 128, 21, 42, 14, 147, 122, 181, 161, 58, 151, 231, 12, 224, 208, 53, 124, 81, 132, 210, 158, 146, 11, 74, 210, 233, 115, 164, 53, 236, 176, 244, 112, 234, 203, 113, 2, 79, 115, 90, 78, 92, 44, 254, 72, 189, 246, 160, 189, 219, 174, 105, 190, 13, 224, 240, 225, 238, 34, 157, 221, 173]), value: EventValue([19, 156, 73, 250, 51, 97, 189, 131, 14, 247, 217, 10]) }, Event { key: EventKey([42, 112, 11, 124, 80, 204, 168, 70, 8, 134, 161, 6, 120, 35, 21, 59, 71, 51, 79, 15, 136, 120, 32, 15, 103, 127, 159, 53, 99, 111, 102, 177, 95, 225, 161, 143, 134, 64, 13, 158, 116, 79, 110, 192, 251, 206, 36, 156, 101, 143, 64, 30, 136, 142, 238, 92, 50, 10, 170, 42]), value: EventValue([13, 141, 180, 8, 93, 153, 186, 233, 84, 13, 1, 77, 74, 64, 219, 40, 209, 241, 98, 107, 193, 55, 32, 11, 116, 10, 28, 215, 206, 195, 83, 191, 16, 182, 161, 180, 64, 153, 47, 155, 25, 81, 223, 253, 26, 212, 141, 251, 201, 24, 156, 86, 207, 90, 171, 90, 48, 94, 224, 110, 46, 170, 139, 113, 41, 210, 89, 169, 196, 21, 244, 168, 77, 214, 194, 228, 174, 250, 131, 185, 127, 228, 142, 44, 75, 178, 32, 98, 8, 180, 170, 148, 138, 227]) }], receipt: 422113505 }], inner: 2058588032 }, BatchReceipt { batch_hash: [186, 126, 8, 251, 205, 104, 43, 149, 135, 149, 37, 83, 138, 163, 41, 84, 98, 164, 125, 229, 188, 240, 144, 202, 168, 78, 145, 227, 13, 24, 248, 117], tx_receipts: [TransactionReceipt { tx_hash: [18, 169, 12, 218, 241, 78, 67, 233, 187, 13, 125, 160, 71, 159, 20, 52, 201, 208, 202, 233, 215, 49, 22, 41, 237, 183, 179, 48, 35, 254, 155, 51], body_to_save: Some([134, 163, 170, 179, 130, 111, 101, 150, 202, 6, 216, 77, 254, 230, 67, 6]), events: [Event { key: EventKey([176, 98, 62, 42, 112, 86, 171, 161, 151, 33, 115, 203, 80, 104, 70, 187, 34, 6, 235, 250]), value: EventValue([110, 43, 168, 91, 210, 111, 85, 69, 19, 63, 91, 148, 193, 29, 51, 173, 176, 169, 166, 1, 216, 238, 142, 59, 10, 97, 64, 0, 247, 19, 255, 140, 17, 32, 111, 105, 184, 17, 223, 115, 187, 182, 164, 214, 11, 46, 32, 21, 32, 229, 203, 28]) }, Event { key: EventKey([212]), value: EventValue([62, 12, 140, 119, 147, 88, 129, 112, 36, 245, 58, 237, 153, 74, 38, 31, 43, 188, 129, 101, 144, 86, 1, 163, 7, 105, 98, 242, 5, 195, 94, 88, 148, 200, 220, 234, 102, 223, 114, 61, 229, 108, 249, 85, 2, 111, 40, 81, 252, 75, 106, 57, 93, 158, 1, 187, 139]) }, Event { key: EventKey([47, 254, 102, 108, 60, 149, 53, 200, 183, 209, 46, 166, 201, 41, 160, 114, 245, 133, 2, 179, 129, 79, 247, 242, 85, 98, 23, 188, 161, 77, 147, 163, 244, 118, 130, 165, 190, 17, 121, 114, 103, 233, 49, 129, 157, 186, 195, 162, 198, 14, 203, 86, 153, 106, 28, 85, 81, 254, 162, 221, 58, 27, 195, 223, 139, 82, 42, 11, 103, 12, 121, 144, 58, 191, 254, 24, 3, 101, 112, 153, 203, 167, 58, 65, 73, 1, 216, 89, 163, 160, 68, 171]), value: EventValue([40, 236, 228, 53, 214, 151, 192, 131, 204, 65, 158, 42, 57, 24, 116, 181, 202, 7, 82, 92, 188, 89, 194, 9, 128, 117, 91, 198, 93, 102, 211, 74, 219, 19, 32, 95, 171, 253, 86, 237, 158, 81, 252, 74, 80, 63, 180, 79, 237, 175, 139, 125, 100, 108, 255, 20, 213, 145, 75, 217, 129, 107, 141, 160, 4, 181, 50, 87, 197, 69, 104, 180, 250, 35, 135, 136, 125, 123, 238, 66, 162, 156, 124, 214, 161, 115, 240, 110, 51, 204, 87, 124, 238, 173]) }, Event { key: EventKey([115, 176, 22, 177, 131, 97, 145, 78, 66, 77, 218, 136, 91, 126, 37, 233, 146, 197, 239, 78, 148, 76, 16, 113, 170, 165, 239, 142, 164, 22, 209, 173, 181, 224, 0, 33, 91, 221, 2, 220, 34, 226, 224, 204, 122, 88, 80, 253, 180, 154, 232, 24, 110, 129, 171, 243, 119, 46, 102, 54, 156, 13, 168, 91, 125, 139, 95]), value: EventValue([254, 45, 147, 231, 165, 38, 132, 214, 108, 131]) }, Event { key: EventKey([73, 36, 27, 211, 250, 22, 118, 157, 226, 29, 38, 69, 247, 81, 9, 40, 26, 134, 110]), value: EventValue([110, 70, 219, 120, 172, 3, 130, 194, 218, 21, 44, 52, 52, 91, 3, 18, 205, 62, 215, 57, 75, 197, 13, 193, 79, 38, 169, 114, 207, 57, 205, 23, 59, 131, 50, 97, 88, 100, 160]) }, Event { key: EventKey([9, 57, 230, 115, 201, 126, 104, 212, 175, 233, 91, 123, 168, 110, 61, 155, 154, 130, 153, 71, 115, 152, 22, 28, 205, 121, 248, 60, 150, 191, 172, 154, 197, 160, 81, 222, 136, 113, 244, 112, 230, 5, 20, 52, 99, 75, 18, 100, 30, 46, 115, 132, 82, 200, 51, 156, 101, 161, 54, 45]), value: EventValue([252, 243, 177, 232, 89, 55, 111, 84, 118, 92, 86, 61, 234, 62, 14]) }, Event { key: EventKey([88, 135, 35, 57, 197, 141, 141, 194, 213, 91, 77, 78, 7, 100, 68, 189, 204, 22, 231, 224, 246, 144, 61, 102, 33, 213, 154, 196, 252, 207, 12, 88, 53, 188, 236, 246, 3, 131, 52, 144, 69, 135, 225, 25, 216, 98, 254, 24, 5, 159, 131, 195, 46, 71, 48, 176, 243, 150, 84, 55, 163, 237, 161]), value: EventValue([61, 34, 216, 234, 180, 115, 38, 89, 138, 240, 161, 116, 7, 30, 28, 172, 190, 60, 172, 104, 7, 22, 173, 198, 154, 144, 98, 60, 240, 97, 70, 172, 91, 117, 16, 155, 26, 145, 246, 38, 17, 249, 108, 203, 59, 237, 67, 240, 45, 53, 65, 92, 97, 149, 118, 215, 206, 178, 60, 134, 29, 73, 47, 81, 119, 152, 101, 112, 35, 4, 54, 55, 118, 215, 12, 174, 248, 48]) }, Event { key: EventKey([]), value: EventValue([121, 139, 60, 148, 52, 88, 23]) }, Event { key: EventKey([60, 134, 207, 80, 4, 186, 26, 75, 168, 179, 69, 24, 3, 151, 240, 236, 52, 160, 153, 175, 111, 90, 190, 51, 12, 175, 159, 3, 178, 144, 202, 213, 34, 153, 109, 154, 171, 223, 166, 176, 230, 231, 225, 186, 212, 255, 92, 96, 218, 73, 182, 112, 252, 226, 87, 54, 112, 172, 105, 238, 51, 127, 62, 177, 95, 9, 64, 135, 115, 48, 69, 155, 90, 29, 103, 113, 152, 114, 52, 228, 14, 67, 207, 89, 55, 199, 93, 207, 100, 124, 30, 114, 63]), value: EventValue([240, 130, 217, 38, 239, 8, 86, 78, 35, 206, 37, 194, 189, 32, 126, 36, 113, 77, 121, 255, 49, 153, 79, 113, 171, 46, 183, 54, 176, 234, 169, 253, 66, 57, 76, 34, 31, 116, 198, 233, 108, 212, 97, 213, 172, 138, 223, 223, 6, 203, 157, 133, 182, 227, 93, 91, 100, 117, 185, 225, 88, 167, 20, 148, 195, 147, 64, 130, 212, 203, 3, 218, 83, 46, 131, 171, 255, 43, 80, 5, 178, 38, 124]) }], receipt: 1276530200 }, TransactionReceipt { tx_hash: [233, 51, 25, 31, 231, 35, 89, 241, 67, 204, 245, 134, 39, 84, 225, 231, 175, 228, 42, 94, 242, 21, 77, 17, 186, 30, 108, 220, 52, 180, 61, 57], body_to_save: Some([224, 126, 168, 47, 99, 85, 119, 251, 210, 254, 111, 211, 205, 200, 32, 235, 179, 95, 251, 58, 59, 130, 146, 169, 4, 31, 119, 14, 134, 196, 101, 65, 9, 223, 192, 38, 13, 249, 106, 114, 1, 181, 158, 117, 96, 35, 131, 136, 192, 234, 181, 22, 187, 67, 243, 199, 205, 106, 40, 125, 170, 51, 184, 81, 52, 39, 56, 81, 253, 105, 196, 64]), events: [Event { key: EventKey([14, 158, 155, 182, 73, 101, 123, 17, 192, 67, 3, 116, 129, 227, 137, 20, 234, 209, 249, 172, 10, 176, 235, 137, 103, 170, 243, 61, 95, 113, 190, 214, 174, 219, 71, 62, 251, 36, 233, 239, 217, 77, 54, 27, 125, 188, 39, 19, 54, 90, 82, 8, 61, 244, 239, 133, 185, 28, 167, 153]), value: EventValue([75, 122, 72, 16, 240, 162, 147, 227, 195, 169, 162, 33, 109, 127, 225, 135, 201, 222, 236, 15, 248, 121, 218, 169, 94, 30, 197, 88, 9, 186, 240, 77, 165, 91, 249, 220, 103, 50, 252, 0, 2, 178, 45, 219, 65, 231, 147, 5, 115, 157, 56, 25, 62, 246, 189, 17, 104, 226, 24, 33, 43, 18, 195, 183, 20, 250, 2, 196, 176, 173, 33, 66, 31, 13, 179, 68, 11, 179, 137, 211, 199, 174, 216, 188, 81, 146, 213, 116, 66, 42, 198, 231]) }, Event { key: EventKey([101, 109, 17, 177, 201, 37, 126, 52, 31, 63, 41, 197, 255, 76, 66, 217, 132, 202, 103, 97, 7, 20, 233, 139, 122, 15, 118, 137, 205, 212]), value: EventValue([246, 36, 24, 5, 209, 237, 2, 137, 142, 216, 194, 32, 153, 183, 222, 3, 187, 84, 20, 226, 179, 77, 72, 91, 97, 188, 120, 189, 111, 55, 123, 69, 145, 185, 21, 104, 67, 18, 7, 211, 62, 46, 38, 190, 156, 116, 92, 164, 69, 110, 12, 194, 246, 7, 208, 83, 161, 241, 53, 239, 202, 139, 33, 116, 154, 249, 50, 152, 6, 15, 43, 157, 46, 228, 100, 146, 157, 10, 219, 70, 231, 120, 238, 58, 175, 37, 178, 194, 112, 193, 169, 191]) }, Event { key: EventKey([151, 134, 51, 65, 117, 24, 106, 95, 78, 48, 120, 29, 10, 69, 161, 76, 224, 52, 53, 32, 172, 129, 160, 75, 108, 92, 177, 13, 229, 111, 144, 197, 170, 2, 159, 66, 105, 171, 247, 167, 162, 132, 183, 193, 1, 66, 53, 32, 26, 59, 181, 229, 185, 78, 2, 21, 190, 203, 222, 59, 76, 205, 211, 184, 42, 233, 38, 4, 112, 148, 115, 228, 16]), value: EventValue([247, 192, 93, 44, 82, 118, 243, 150, 172, 75, 185, 95, 92, 225, 237, 171, 67, 76, 158, 255, 59, 215, 42, 43, 170, 54, 229, 157, 104, 242, 103, 137, 231, 240, 163, 192, 46, 19, 39, 104, 199, 91, 130, 39, 219, 105, 238, 56, 216, 23, 93, 176, 3, 228, 152, 20, 128, 175, 14, 238, 158, 235, 199, 218, 79, 244, 175, 211, 39, 202, 101, 137, 101, 173, 154, 143, 186, 40, 189, 182, 27, 216, 130, 157, 195, 137, 55, 105, 151, 220, 235, 105, 214, 57, 200, 209, 135, 20, 61]) }, Event { key: EventKey([155, 21, 117, 253, 62, 12, 125, 18, 191, 225, 96, 179, 62, 140, 163, 3, 156, 211, 67, 223, 143, 244, 229, 124, 1, 76, 63, 196, 193, 167, 5, 85, 188, 132, 27, 19, 162, 112, 230, 68, 174, 112, 6, 201, 235, 128, 49, 100, 109, 114, 192, 200, 230]), value: EventValue([252, 130, 220, 187, 13, 179, 81, 218, 123, 140, 42, 200, 52, 133, 146, 64, 51, 75, 120, 142, 79, 79, 27, 207, 14]) }], receipt: 1704870312 }, TransactionReceipt { tx_hash: [54, 234, 157, 182, 12, 40, 74, 65, 160, 92, 125, 27, 55, 147, 33, 0, 121, 87, 25, 199, 48, 81, 134, 177, 48, 242, 30, 48, 104, 50, 121, 229], body_to_save: Some([103, 186, 157, 106, 219, 162, 106, 239, 103, 25, 57, 56, 21, 204, 93, 53, 59, 59, 194, 177, 5, 84, 48, 146, 40, 105, 82, 172, 158, 74, 106, 215, 61]), events: [Event { key: EventKey([0, 20, 66, 101, 236, 150, 139, 134, 220, 63, 170, 84, 234, 117, 242, 246, 151, 68, 94, 0, 157, 169, 201, 216, 6, 108, 29, 171, 251, 89, 135, 55, 155, 66, 237, 192, 78, 146, 166, 84, 147, 92, 100, 205, 1, 164, 130, 98, 9, 252, 77, 58, 134, 208, 161, 246, 248, 213, 5, 141, 79, 68, 115, 215, 95, 87, 156, 172, 51, 224, 89, 128, 134, 235, 184, 204, 154, 140, 150, 18, 204, 6, 177, 111, 144, 87, 159, 195, 8, 136]), value: EventValue([27, 177, 92, 153, 225, 229, 12, 170, 38, 31, 39, 217, 236, 187, 169, 31, 232, 178, 53, 34, 62, 219, 214, 8, 193, 83, 27, 37, 116, 51, 103, 52, 166, 201, 230, 173, 240, 1, 183, 131, 154, 216, 182, 116, 236, 172, 65, 130, 176, 231, 14, 73, 103, 75, 29, 205, 132, 161, 147, 2, 82, 246, 178, 174, 113, 158, 200, 7, 182, 42, 162, 103, 183, 142, 168, 170, 111, 193, 28, 14, 165, 167, 249, 151, 88, 42, 121, 154, 23, 64, 158, 33, 52, 11, 253, 43]) }, Event { key: EventKey([166, 161, 50, 209, 46, 210, 138, 62, 241, 34, 108, 78, 73, 201, 93, 74, 193, 109, 39, 235, 198, 95, 76, 46, 134, 242, 57, 9, 7, 220, 50, 197, 17, 190, 111, 28, 96, 39, 61, 62, 93, 45, 152, 192, 26, 249, 223, 85, 53, 127, 36, 160, 158, 249, 150, 123, 136, 9, 56, 194, 204, 189, 106, 141, 250, 89, 59, 231, 101, 3, 186, 155, 55, 101, 199, 82, 21, 8, 114, 51, 132, 129, 36, 6]), value: EventValue([32, 39, 186, 93, 41, 231, 247, 129, 187, 13, 47, 89, 212, 132, 62, 181, 0, 201, 127, 116, 190, 15, 176, 43, 183, 184, 81, 130, 174, 180, 110, 58, 132, 178, 90, 179, 27, 31, 158, 36, 0, 172, 99, 186, 132, 130, 20, 107, 244, 154, 25, 111, 29, 104, 64, 248, 60, 123, 70, 205, 174]) }, Event { key: EventKey([51, 21, 243, 63, 145, 135, 160, 30, 117, 86, 80, 234, 7, 212, 37, 213, 126, 131, 103, 88, 211, 24, 225]), value: EventValue([39, 156, 222, 243, 157, 214, 48, 254, 215, 187, 23, 1, 108, 54, 171, 180, 249, 9, 74, 136, 12, 224, 173, 146, 119, 3, 58, 36, 50, 87, 98, 8, 50, 117, 54, 206, 137, 236, 174, 22, 95, 170, 184, 83, 152, 183, 192, 42, 116, 123, 109, 82, 158, 104, 27, 198, 240, 240, 2, 80, 28, 7, 18, 188, 54, 215, 198, 99, 128, 200, 58, 238, 155, 206, 205, 110]) }, Event { key: EventKey([171, 7, 65, 24, 152, 115, 195, 141, 178, 242, 178, 85, 62, 152, 54, 101, 82, 205, 55, 179, 193, 106, 60, 132, 27, 6, 139, 138, 196, 116, 19, 11, 249, 17, 120, 80, 141, 37, 106, 40, 156, 198, 188, 127, 3, 208, 187, 124, 84, 90, 247, 42, 5, 190, 103, 87, 167, 63, 165, 40, 124, 121, 215, 248, 45, 56, 135, 82, 209, 116, 126, 95, 134, 170, 167, 3, 237, 202, 75, 70, 67, 137, 174, 7, 183, 197, 210, 201, 22, 163, 190, 186, 144, 222]), value: EventValue([143, 221, 58, 96, 163, 220, 141, 71, 75, 228, 108, 7, 33, 19, 10, 18, 116, 94, 9, 177, 104, 18, 138, 15, 61, 87, 80, 227, 254, 248, 214, 229, 125, 187, 165, 87, 121, 77, 251]) }, Event { key: EventKey([10, 19, 189, 106, 140, 212, 108, 166, 15, 41, 175, 209, 234, 202, 95, 111, 2, 79, 99, 203, 30, 156, 161, 88, 80, 56, 148, 223, 110, 76, 144, 136, 124, 223, 45, 136, 214, 0, 197, 250, 236, 208, 237, 85, 215, 126, 171, 3, 6, 245, 123, 229, 122, 166, 237, 253, 60, 219, 239, 15, 144, 76, 116, 49, 18, 78, 249, 33, 18, 144, 254, 196, 22, 83, 36, 192, 0, 121, 40, 80, 248, 29, 13, 6]), value: EventValue([141, 83, 82, 87, 37, 12, 201, 9, 86, 7, 244, 224, 191, 208, 165, 255, 201, 80, 252, 35, 95, 9, 83, 88, 170, 19, 191, 221, 103, 42, 100, 43, 130, 46, 219, 151, 70, 226, 96, 177, 40, 188, 113, 121, 176, 158, 13, 101, 24, 40, 225, 128, 88, 71, 128, 83, 141, 133, 246, 61, 115, 42, 162, 233, 134]) }, Event { key: EventKey([65, 167, 215, 69, 141, 251, 11, 4, 163, 155, 189, 221, 113, 106, 61, 16, 148, 118]), value: EventValue([101, 139, 204, 62, 129, 249, 158, 203, 106, 202, 32, 96, 236, 22, 102, 200, 153, 147, 142, 255, 190, 187, 67, 22, 203, 180, 125, 18, 154, 45, 43, 246, 171, 236, 188, 11, 185, 248, 54, 127, 59, 85, 224, 79, 46, 87, 155, 214, 174, 94, 46, 170]) }, Event { key: EventKey([68, 98, 237, 255, 245, 205, 98, 29, 159, 218, 43, 102, 93, 18, 113, 119, 8, 142, 187, 79, 170, 189, 19, 59, 156, 70, 33, 45, 133, 66, 111, 84, 36, 85, 163, 33, 231, 85, 184, 87, 102, 229, 240, 7, 216, 16, 35, 79, 46, 101, 250, 229, 223, 3, 166, 252, 127, 250, 50, 233, 68, 29, 58, 199, 206, 242, 31, 185, 203, 174, 33, 173, 160, 119, 224, 121, 90, 17, 84]), value: EventValue([113, 55, 244, 143, 55, 168, 55, 101, 49, 8, 196, 252, 236, 22, 131, 157, 172, 182, 195, 131, 231, 8, 205, 154, 245, 44, 37, 32, 126, 106, 9, 129]) }, Event { key: EventKey([200, 8, 100, 218, 199, 76, 121, 140, 52, 33, 207, 28, 47, 15, 8, 156, 227, 210, 59, 190, 203, 130, 250, 240, 94, 61, 184, 198, 190, 16, 245, 200, 75, 122, 144, 187, 241, 78, 232, 30, 160, 47, 86, 132, 171, 154, 81, 18, 205, 131, 79, 228, 62]), value: EventValue([27, 94, 93, 6, 115, 135, 54, 43, 47, 114, 145, 11, 187, 63, 155, 155, 29, 213, 116, 95, 211, 248, 149, 184, 92, 101, 207, 212, 93, 11, 206, 132, 204, 162, 246, 108, 194, 205, 3, 33, 245, 48]) }, Event { key: EventKey([50, 1, 21, 203, 108, 40, 111, 207, 11, 241, 67, 17, 174, 190, 100, 56, 48, 137, 170, 28, 247, 114, 226, 108, 192, 12, 167, 5, 37, 153, 104, 254, 58, 232, 155, 59, 90, 10, 163, 138, 16, 164, 198, 34, 247, 238, 170, 19, 178, 89, 143, 29, 219, 217, 185, 31, 74, 120, 201, 201, 182, 89, 23, 31, 94, 152, 207, 40, 37, 138, 77, 23, 107, 172, 107, 197, 91, 71, 131, 9, 54, 68, 194, 61, 159, 170, 158, 51]), value: EventValue([42, 47, 186, 210, 85, 244, 194, 102, 174, 58, 237, 241, 168, 84, 221, 10, 13, 81, 95, 239, 143, 5, 82, 147, 206, 249, 162, 252, 42]) }], receipt: 3767859759 }, TransactionReceipt { tx_hash: [119, 223, 53, 117, 128, 107, 91, 150, 248, 90, 199, 41, 11, 3, 126, 8, 84, 230, 22, 70, 82, 20, 132, 218, 124, 128, 130, 196, 128, 161, 205, 150], body_to_save: None, events: [Event { key: EventKey([54, 110, 121, 32, 74, 235, 138, 163, 255, 231, 246, 29, 62, 8, 84, 28, 18, 247, 158, 195, 85, 117, 81, 7, 57, 223, 133, 75, 6, 182, 215, 122, 48, 42, 132, 32, 187, 23, 240, 104, 72, 187, 20, 70, 26, 202, 99, 241, 154, 172, 55, 170, 222, 227, 239, 129, 51, 78, 25, 201, 49, 46, 146, 6, 253, 184, 246, 55, 192, 108, 240, 175, 64, 174, 203, 147, 181, 236, 9, 214, 128, 13, 14, 53, 128, 211, 117, 214, 94, 197, 60, 115, 68, 30, 239, 102, 180, 2]), value: EventValue([216, 71, 138, 205, 190, 255, 64, 194, 172, 29, 135, 93, 184, 228, 11, 181, 29, 53, 215, 12, 238, 166, 225, 168, 179, 115, 88, 75, 221, 220, 127, 44, 30, 31, 136, 173, 130, 69, 134, 240, 20, 210, 234, 244, 47, 34, 161, 86, 123, 123, 88, 132, 72, 69, 183, 90, 255, 172, 161, 145, 166, 140, 120, 88, 49, 211, 71, 146, 244, 145, 172, 91, 87, 32, 35, 95, 188, 199, 30, 177, 65, 171, 85, 127, 205, 250, 35, 183]) }], receipt: 3938842508 }, TransactionReceipt { tx_hash: [153, 204, 17, 138, 173, 160, 79, 35, 175, 254, 199, 65, 120, 146, 253, 224, 59, 16, 145, 50, 184, 126, 106, 210, 172, 140, 104, 40, 248, 207, 240, 49], body_to_save: None, events: [Event { key: EventKey([24, 34, 130, 180, 59, 180, 185, 130, 232, 177, 63, 108, 230, 224, 43, 190, 104, 79, 203, 129, 172, 122, 88, 246, 135, 241, 242, 157, 102, 68, 145, 111, 71, 183, 234, 108, 16, 58, 145, 237]), value: EventValue([27, 105, 14, 113, 28, 42, 136, 174]) }, Event { key: EventKey([203, 227, 178, 40, 228, 220, 123, 213, 10, 199, 1, 226, 0, 189, 198, 202, 68, 72, 37, 60, 184, 123, 30, 145, 47, 40, 190, 25, 193, 54, 84, 15, 174, 46, 230, 166, 122, 249, 158, 25, 146, 136, 40, 95, 251, 170, 118, 223, 63, 147, 123, 253, 254, 233, 112, 59, 110, 45, 45, 209, 230, 143, 198, 188, 105, 16, 159, 205, 150, 53, 186, 13, 140, 67, 227, 112, 207, 233, 167, 150, 251, 173, 7, 96, 3, 153, 154, 116, 127, 103, 130, 147, 197]), value: EventValue([35, 82, 237, 145, 53, 114, 23, 158, 184, 214]) }, Event { key: EventKey([29, 242, 138, 187, 4, 170, 77, 74, 91, 127, 16, 49, 252, 79, 138, 13, 233, 80, 60, 51, 238, 79, 15, 133, 14, 246, 50, 163, 46, 197, 152, 170, 144, 248, 204, 119, 206, 202, 93, 180, 218, 183, 135, 224, 115, 246, 189, 179, 104, 249, 208, 112, 209, 36, 84, 22, 75, 94, 46, 33, 8, 123, 27, 119, 234, 244, 65, 66, 129, 73, 42, 230, 59, 4, 50, 3, 61, 157, 88]), value: EventValue([125, 204, 75, 114, 69, 185, 157, 251, 87, 182, 189, 144, 182, 222, 128, 44, 233, 9, 9, 123, 249, 142, 108, 134, 10, 229, 131, 163]) }, Event { key: EventKey([207, 72, 141, 147, 139, 171, 44, 228, 101, 203, 154, 139, 200, 55, 174, 30, 61, 194, 126, 208, 104, 225, 208, 18, 185, 107, 101, 96, 196, 64, 249, 109, 237, 212, 222, 130, 126, 250, 232, 55, 118, 253, 255, 53, 28, 87, 17, 79, 249, 182, 35, 128, 127, 55, 254, 124, 247, 167, 77, 96, 94, 98, 162, 132, 2, 3, 206, 104, 69, 98, 157, 252, 252, 182, 166, 76, 182, 26, 24, 192, 195, 97, 128, 44, 153, 169, 93, 161, 242, 50, 104, 222, 181, 80, 111, 71, 55, 6]), value: EventValue([185, 125, 176, 84, 2, 30, 1, 216, 169, 48, 158, 230, 158, 87, 90, 141, 186, 251, 57, 2, 219, 24, 3, 170, 161, 27, 235, 141, 90, 79, 159, 205, 127, 131, 79, 47, 57, 28, 189, 62, 129, 37, 198, 186, 251, 184, 130, 224, 177, 181, 217]) }, Event { key: EventKey([163, 10, 193, 49, 51, 51, 183, 23, 154, 211, 178, 211, 124, 63, 50, 185, 76, 91, 136, 20, 219, 7, 66, 182, 78, 46, 43, 250, 248, 223, 117, 5, 125]), value: EventValue([220, 7, 117, 48, 134, 192, 255, 249, 58, 243, 107, 209, 45, 193, 157, 198, 170, 130, 5, 132, 151, 188, 173, 232, 229, 173, 184, 201, 40, 107, 32, 52, 190, 185, 2, 33, 26, 207, 241, 194, 138, 101, 141, 253, 238, 202, 205, 207, 176, 70, 68]) }], receipt: 1808306052 }], inner: 1367587254 }, BatchReceipt { batch_hash: [251, 54, 84, 197, 201, 160, 47, 27, 104, 121, 110, 174, 244, 115, 170, 37, 111, 204, 96, 118, 51, 190, 58, 212, 96, 160, 113, 86, 18, 83, 139, 245], tx_receipts: [TransactionReceipt { tx_hash: [34, 218, 210, 146, 172, 40, 150, 243, 71, 230, 244, 44, 87, 121, 47, 98, 252, 11, 97, 244, 153, 24, 62, 4, 242, 74, 139, 154, 131, 232, 192, 202], body_to_save: Some([199, 181, 208, 192, 170, 193, 136, 243, 162, 241, 207, 188, 101, 254, 97, 189, 100, 49, 0, 62, 62, 222, 41, 216, 44, 115, 136, 29]), events: [Event { key: EventKey([52, 62, 245, 61, 39, 244, 68, 62, 230, 245, 55, 26, 1, 2, 153]), value: EventValue([6, 225, 33, 218, 58, 195, 185, 111, 80, 71, 107, 61, 254, 210, 216, 248, 245, 54, 71, 250, 196, 71, 153, 78, 249, 159, 85, 243, 206, 185, 49, 46, 187, 90, 184, 90, 116, 102, 24, 52, 20, 233, 164, 15, 193, 242, 141, 166, 237, 31, 58, 142, 71, 204, 141, 10, 96, 34, 16, 232, 64, 33, 94, 49, 255, 110, 180, 14, 44, 118, 175, 112, 28, 160, 99, 149, 82, 17, 182, 234, 52, 2, 108, 209, 5, 106, 171, 176, 25, 34, 153, 127, 229, 189, 164, 233, 196, 153, 96]) }, Event { key: EventKey([4, 28, 51, 242, 193, 107, 217, 217, 178, 10, 114, 70, 116, 255, 99, 45, 160, 66, 241, 108, 145, 203, 196, 186, 163, 75, 204, 189, 187, 115, 79, 61, 141, 210]), value: EventValue([203, 131, 254, 82, 215, 78, 194, 13, 93, 53, 135, 228, 145, 151, 4, 228, 161, 130, 88, 174, 189, 163, 32, 106, 22, 62, 227, 113, 22, 169, 249, 234, 77, 178, 101, 140, 204, 239, 4, 40, 149, 116, 39, 147, 106, 91, 211, 183, 31, 200, 249, 84, 197, 39, 71, 100, 111, 104, 223, 11, 51, 208, 108, 208, 127, 39, 248, 14, 25, 186, 210, 91, 221, 64, 252, 164, 238, 234, 181, 117, 133, 149, 149, 226, 248, 30, 10, 200, 104, 117, 26, 51, 109, 201, 232, 162, 194, 227]) }, Event { key: EventKey([3, 164, 181, 98, 18, 127, 175, 222, 21, 221, 131, 195, 113, 64, 85, 20, 210, 138, 209, 216, 39, 10, 237, 233, 226, 208, 183, 88, 122, 193, 188, 14, 107, 173, 105, 120, 253, 138, 233, 129, 198, 235, 185, 157, 125, 206, 162, 215]), value: EventValue([139, 47, 10, 94, 132, 20, 169, 30, 222, 145, 23, 96, 246, 249, 206, 185, 94, 11, 93, 39, 192, 121]) }, Event { key: EventKey([185, 255, 88, 39, 163, 230, 200, 241, 221, 211, 131, 3, 70, 238, 27, 21, 162, 169, 211, 116, 2, 174, 100, 171, 179, 109, 25, 79, 65, 76, 244, 32, 244, 105, 254, 44, 168, 181, 251, 198, 26, 226, 79, 13, 44, 129, 202, 64, 92, 163, 253, 173, 205, 209, 255, 93, 5, 78, 32, 163, 82, 227, 147, 235, 33, 53, 76, 130, 216, 17, 70, 196, 246, 180, 177, 213, 65, 155, 245, 130, 94, 108, 132, 65, 145, 146, 253, 162, 14, 52, 32, 227, 183, 132, 235, 21, 149, 190]), value: EventValue([99, 184, 163, 120, 140, 202, 174, 59, 77, 114, 66, 53, 31, 55, 211, 145, 131, 105, 95, 105, 204, 13, 146, 18, 227, 154, 123, 144, 145, 30, 81, 16, 48, 76, 94, 117, 80, 83, 208, 14, 24, 237, 24, 6, 83, 69, 202, 70, 217, 250, 222, 107, 196, 164, 204, 180, 176, 158, 136, 146, 21, 140, 61, 119, 255, 105, 239, 90, 28, 250, 3, 110, 147, 106, 172, 128, 236, 35, 13, 246, 68, 10, 255, 91, 42, 211, 135, 88]) }, Event { key: EventKey([197, 35, 84, 178, 137, 30, 133, 168, 160, 58, 233, 95, 160, 252, 120, 254, 93, 236, 237, 30, 251, 30, 10, 104, 144, 237, 14, 251, 1, 137, 140, 84, 242, 132, 40, 52, 229, 136, 39, 8, 68, 170, 3, 145, 194, 195, 179, 158, 252, 114]), value: EventValue([46, 247, 100, 128, 1, 178, 225, 254, 191, 111, 170, 47, 35, 74, 100, 235, 182, 43, 236, 216, 220, 84, 179, 41, 84, 240, 64, 84, 153, 70, 218, 254, 113, 195, 31, 229, 74, 87, 106, 22, 144, 201, 4, 63, 210, 217, 30, 204, 155, 25, 229, 99, 94, 133, 25, 180, 195, 190, 33, 234, 192, 200, 131, 240, 207, 249, 216, 4, 202, 51, 186, 28, 206, 150, 219, 16, 165, 133, 12, 136, 183, 236, 119, 152, 72, 170, 218, 22, 118, 77, 21, 227, 90, 212, 19, 116, 102]) }, Event { key: EventKey([47, 85, 154, 164, 162, 250, 216, 135, 112, 12, 201, 225, 85, 193, 209, 120, 212, 139, 18, 240, 25, 7, 182, 41, 38, 41, 60, 43, 116, 45, 39]), value: EventValue([106, 64, 145, 18, 163, 138, 117, 112, 156, 211, 254, 12, 244, 37, 152, 17, 77, 236, 29, 170, 66, 97, 14, 132, 77, 77, 116, 86, 15, 193, 112, 90, 95, 118, 137, 121, 151, 89, 60, 64, 100, 136, 47, 42, 1, 255, 4, 54, 211, 235, 114, 206, 56, 200, 95, 236, 243, 24, 34, 56, 33, 19, 146, 96, 33, 52]) }, Event { key: EventKey([164, 107, 29, 68, 30, 175, 234, 254, 176, 1, 199, 132, 232, 114, 147, 22, 144, 132, 12, 29, 43, 170, 135, 31, 238, 198, 74, 245, 101, 189, 181, 46, 219, 66]), value: EventValue([61, 27, 179, 155, 46, 26, 132, 110, 163, 115, 25, 232, 223, 57, 121, 16, 1, 61, 198, 56, 20, 90, 20, 249, 58, 160, 236, 103, 203, 236]) }, Event { key: EventKey([154, 214, 166, 238, 16, 82, 207, 229, 113, 122, 36, 170, 6, 113, 191, 234, 51, 28, 72, 2, 240, 11, 174, 154, 7, 2, 96, 182, 157, 245, 232, 5, 42, 178, 222, 47]), value: EventValue([185, 75, 253, 200, 185, 41, 20, 116, 164, 181, 9, 207, 212, 224, 179, 155, 144, 165, 114, 36, 38, 207, 90, 148, 158, 61]) }, Event { key: EventKey([83, 198, 132, 143, 103, 22, 199, 125, 151, 105, 255, 175, 101, 14, 154, 18, 40, 96, 89, 7, 181, 4, 21, 49, 50, 187, 44, 118, 40, 205, 246, 140, 85, 19, 153, 131, 37, 198, 124, 153, 104, 246, 48, 255, 14, 190, 212, 156, 214, 79, 245, 3, 22, 4]), value: EventValue([5, 29, 133, 116, 73, 116, 111, 146, 244, 246, 163, 197, 209, 117, 208, 238, 133, 15, 241, 36, 217, 79, 249, 244, 74, 140, 19, 217, 203, 56, 170, 30, 196, 21, 12, 195, 196, 137, 23, 195, 228, 226, 84, 10, 85, 31, 65, 141, 54, 76, 161, 118, 44, 212, 19, 170, 138, 137]) }], receipt: 2405468694 }, TransactionReceipt { tx_hash: [101, 194, 93, 101, 70, 190, 78, 240, 62, 207, 164, 201, 80, 216, 196, 92, 176, 199, 220, 194, 229, 175, 231, 163, 103, 197, 154, 167, 156, 54, 140, 49], body_to_save: None, events: [Event { key: EventKey([247, 124, 65, 112, 147, 25, 47, 197, 42, 90, 35, 102, 190, 73, 220, 230, 117, 212, 176, 97, 127, 216, 112, 187, 165, 1, 147, 137, 105, 65, 53, 232, 180, 17, 249, 8, 63, 52, 220, 223, 224, 9, 35, 41, 65, 218, 205, 88, 146, 6, 86, 29, 116, 24, 183, 160, 127, 192, 102, 175, 186, 121, 243, 179, 172, 178, 122, 143, 183, 226, 30, 184, 222, 145, 15, 4, 48, 7, 154, 134, 191, 169, 112, 179, 147, 131, 192, 70, 152, 11, 222]), value: EventValue([245, 224, 93, 117, 249, 149, 46, 172, 64, 218, 182, 229, 224, 35, 82, 60, 25, 43, 155, 211, 25, 160, 250, 109, 168, 76, 244, 39, 112, 75, 102, 103, 69, 30, 11, 240, 38, 195, 133, 126, 84, 109, 89, 206, 164, 44, 4, 104, 255, 113, 140, 171, 236, 106, 59, 59]) }, Event { key: EventKey([78, 184, 49, 78, 45, 180, 30, 9, 43, 4, 56, 44, 40, 166, 183, 29, 235, 183, 85, 3, 104, 206, 237, 221, 151, 17, 216, 85, 18, 91, 21, 236, 217, 200, 165]), value: EventValue([188, 228, 31, 170, 0, 132, 151, 170, 70, 202, 169, 224, 72, 193, 86, 253, 50, 65, 226, 190, 71, 142, 46, 72, 211, 137, 201, 127, 66, 160, 68, 201, 33, 252, 176, 160, 228, 29, 250, 251, 253, 245, 204, 100, 54, 133, 152, 35, 152, 84, 204, 18, 159, 45, 136, 238, 11, 40, 66, 151, 136, 57, 250, 86, 206, 136, 207, 176, 77, 11, 81, 175, 10, 8, 197, 43, 9, 111, 221, 50, 85, 25, 205, 116, 196, 85, 195, 177, 31, 178, 143, 196, 13, 7, 181, 247, 26, 45]) }, Event { key: EventKey([251, 251, 158, 150, 123, 162, 163, 217, 105, 92, 37, 4, 18, 219, 68, 207, 122, 96, 44, 185, 22]), value: EventValue([180, 123, 165, 119, 4, 96, 48, 114, 40, 20, 17, 196, 31, 208, 97, 29, 227, 46, 178, 198, 22, 109, 157, 254, 217, 177, 112, 168, 48, 225, 250, 66, 226, 254, 184, 199, 136, 18, 100, 222, 88, 201, 152, 60, 213, 115, 53, 110, 218, 20]) }, Event { key: EventKey([86, 36, 243, 189, 184, 187, 181, 27, 68, 119, 202, 196, 201, 137, 66, 89, 194, 231, 136, 104, 142]), value: EventValue([118, 145, 241, 95, 161, 2, 57, 94, 225, 243, 220, 131, 233, 32, 76, 184, 196, 191, 42, 8, 152, 207, 170, 182, 197, 168, 182, 4, 238, 166, 107, 14, 83, 251, 89, 51, 8, 173]) }, Event { key: EventKey([72, 106, 11, 255, 10, 223, 30, 158, 138, 186, 115, 19, 66, 9, 120, 247, 114, 106, 188, 84, 234, 50, 202, 116, 78, 210, 197, 237, 202, 129, 181, 93, 246, 109, 200, 183, 29, 70, 143, 251, 62, 43, 170, 214, 146, 172, 206, 14, 6, 218, 29, 253, 60, 56, 231, 13, 150, 203, 149, 183, 226, 101, 223, 242, 73, 28, 118, 84, 174, 56, 105, 159, 149, 77, 88, 135, 31, 137, 192, 5, 43, 119, 123, 161, 205, 181, 253, 254, 200, 28, 224, 49, 104]), value: EventValue([22, 48, 95]) }, Event { key: EventKey([77, 26, 228, 148, 121, 200, 14, 224, 199, 245, 88, 80, 120, 190, 136, 89, 111, 79, 97, 180, 33, 255, 75, 96, 205, 40, 101, 189, 65, 199, 139, 100, 184, 103, 93, 39, 223, 229]), value: EventValue([229, 105, 49, 80, 71, 103]) }], receipt: 3980904263 }, TransactionReceipt { tx_hash: [65, 11, 12, 114, 104, 109, 149, 219, 51, 48, 102, 227, 75, 62, 131, 166, 201, 22, 49, 197, 206, 153, 52, 208, 168, 62, 193, 135, 79, 118, 60, 50], body_to_save: Some([131, 188, 53, 1, 157, 51, 81, 47, 176, 68, 247, 185, 27, 136, 10]), events: [Event { key: EventKey([87, 97, 54, 89, 136, 1, 203, 53, 78, 15, 5, 160, 253, 199, 97]), value: EventValue([10, 149, 92, 87, 106, 252, 111, 146, 100, 94, 250, 124, 128, 206, 135, 3, 145, 133, 115, 199, 212, 67, 41, 20, 197, 58, 138, 96, 102, 44, 225, 21, 208, 206, 190, 152, 129, 202, 113, 228, 223, 91, 226, 162, 43, 201, 9, 233, 251, 24, 31, 9, 31, 251, 188, 23, 138, 45, 19, 173, 180, 54, 107, 250, 82, 52, 255, 232, 73, 37, 153, 179, 239, 35, 189, 73, 210, 222, 158, 59, 49, 41, 223]) }, Event { key: EventKey([66, 222, 58, 219, 119, 54, 151, 224, 93, 53, 55, 43, 136, 28, 160, 161, 16, 5, 180, 203, 187, 33, 29, 235, 231, 17, 139, 154, 11, 107, 72, 157, 128, 111, 135, 238, 21, 166, 146, 172, 207, 196, 127, 104, 160, 226, 136, 153, 208, 249, 236, 15, 156, 130, 29, 132, 252, 172, 58, 207, 110, 77]), value: EventValue([179, 34, 113, 182, 166, 2, 31, 31, 66, 253, 22, 152, 103, 191, 68, 5, 127, 140]) }], receipt: 3788961458 }, TransactionReceipt { tx_hash: [191, 201, 50, 87, 198, 242, 118, 55, 246, 205, 220, 209, 173, 107, 34, 140, 19, 145, 122, 80, 242, 72, 128, 229, 201, 111, 153, 109, 147, 118, 75, 8], body_to_save: Some([170, 237, 68, 131, 143, 144, 219, 169, 186, 120, 74, 204, 169, 5, 199, 217, 246, 232, 208, 196, 153, 143, 120, 37, 109, 17, 104, 7]), events: [Event { key: EventKey([193, 89, 89, 168, 179, 144, 94, 41, 110, 207, 225, 136, 44, 38, 161, 101, 107, 37, 198, 39, 43, 78, 137, 250, 215, 117, 137, 235, 0, 102, 90, 173, 105, 112, 187, 48, 24, 117, 191, 7, 13, 214, 182, 118, 108, 11, 109, 108, 166, 122, 215, 42, 67, 143, 26, 24, 221, 89, 121, 234, 250, 159, 45, 38, 236, 77, 172, 19, 53, 116, 253, 161, 44, 202, 40, 110, 47, 57, 126, 127, 155, 251, 217, 109, 97, 179, 149, 186, 43, 29, 222, 248, 52, 199, 32, 153]), value: EventValue([201, 162, 94, 170, 142, 216, 189, 175, 126, 7, 145, 235, 65, 219, 149, 208, 219]) }, Event { key: EventKey([106, 249, 35, 202, 170, 120, 132, 28, 78, 254, 119, 219, 113, 189, 54, 109, 46, 128, 155, 164, 240, 103, 113, 116, 38]), value: EventValue([251, 122, 61, 242, 216, 80, 100, 129, 67, 99, 153, 11, 188, 221, 209, 123, 116, 62, 59, 177, 59, 39, 173, 128, 158, 219, 209, 180, 173, 135, 115, 156, 200, 227, 196, 11, 17, 205, 79, 247, 97, 159, 16, 92, 33, 80, 72, 82, 255, 214, 88, 10, 192, 156, 102, 1, 204, 223, 174, 148, 112, 132, 135, 55, 76, 137, 153, 242, 143]) }, Event { key: EventKey([242, 120, 113, 102, 227, 69, 163, 128, 26, 219, 129, 13, 176, 248, 85, 42, 187, 187, 131, 37, 19, 239, 130, 126, 92, 185, 102, 165, 162, 99, 194, 152, 144, 88, 121, 82, 23, 197, 52, 104, 255, 65, 3, 12, 121, 160, 198, 160, 149, 155, 245, 161, 232, 44, 114, 31, 79, 169, 63, 172, 64, 74, 221, 70, 38, 157, 10]), value: EventValue([174, 35, 219, 56, 234, 195, 1, 106, 83, 243, 86, 31, 131, 117, 231, 87, 25, 243, 203, 61, 214, 106, 203, 242, 72, 6, 173, 64, 238, 158, 148, 136, 192, 81, 247, 221, 129, 11, 214, 122, 110, 219, 176, 188, 2, 141, 25, 135, 135, 207, 214, 145, 146, 32, 221, 79, 105, 24, 221, 197, 21, 110, 84, 250, 179, 114, 112, 165, 24, 22, 230, 177, 45, 82, 220, 79, 41, 205, 4, 80, 59]) }, Event { key: EventKey([221, 30, 162, 15, 201, 198, 95, 249, 46, 192, 196, 65, 229, 151, 25, 201, 183, 143, 151, 10, 47, 175, 48, 96, 116, 11, 251, 26, 229, 225, 19, 203, 247, 56, 56, 37, 160]), value: EventValue([20, 195, 155, 157, 93, 32, 137, 246, 206, 78, 46, 247, 133, 53, 158, 76, 177, 219, 63, 80, 37, 223, 235, 45, 182, 40, 33, 138, 33, 191, 242, 10, 139, 44, 124, 150, 206, 30, 236, 47, 185, 179, 223, 36]) }], receipt: 4142260712 }, TransactionReceipt { tx_hash: [42, 53, 251, 7, 187, 81, 65, 158, 70, 241, 58, 185, 33, 125, 7, 49, 90, 217, 46, 153, 95, 113, 143, 20, 73, 211, 183, 168, 104, 44, 243, 18], body_to_save: None, events: [Event { key: EventKey([247, 39, 11, 193, 177, 20, 246, 22, 148, 20, 29, 102, 247, 183, 137, 51, 35, 163, 240, 135, 15, 221, 251, 169, 27, 66, 220, 252, 131, 74, 13, 220, 236, 1, 169, 58, 143, 5, 103, 220, 233, 132, 174, 124, 106, 140, 164, 63, 240, 186, 15, 102, 170, 154, 75, 31, 13, 113, 126, 20, 52, 237, 21, 4, 211, 252]), value: EventValue([195, 237, 196, 237, 209, 46, 50, 5, 20, 4, 69, 17, 209, 21, 77, 235, 193, 168]) }, Event { key: EventKey([85]), value: EventValue([59, 58]) }, Event { key: EventKey([99, 45, 231, 193, 48, 237, 109, 24, 18, 234]), value: EventValue([63, 99, 210, 91, 168, 172, 245, 156, 44, 115, 151, 63, 96, 246, 76, 137, 108, 130, 72, 118, 200, 104, 159, 22, 28, 73, 89, 2, 213, 222, 64, 237, 56, 116, 82, 243, 232, 175, 131, 208, 243, 75, 215, 29, 2, 173, 1, 62, 133, 112, 14, 94, 160, 48, 0, 122, 99, 242, 172, 27, 28, 191, 231, 228, 14, 153]) }, Event { key: EventKey([1, 148, 234, 32, 62, 132, 238, 249, 89, 14, 99, 56, 22, 180, 131, 43, 195, 210, 99, 171, 212, 144, 20, 187, 90, 66, 20, 254, 242, 225, 34, 140, 213, 42, 115, 3, 200, 24, 251, 190, 147, 74, 189, 161, 130, 62, 139, 62, 36, 72, 147, 180, 222, 27, 253, 203, 120, 43, 154, 194, 22, 176, 50, 70, 71, 209, 91, 112, 128, 78, 224, 49, 215, 89, 220, 90, 86, 145, 207, 156, 208, 124, 217, 195, 10, 82]), value: EventValue([242, 56, 160, 252, 161, 216, 161, 123, 151, 111, 117, 50, 74]) }], receipt: 1192764954 }, TransactionReceipt { tx_hash: [172, 63, 197, 193, 74, 120, 148, 207, 187, 134, 227, 253, 195, 73, 100, 25, 73, 30, 83, 66, 255, 144, 125, 159, 79, 22, 185, 173, 166, 63, 31, 2], body_to_save: None, events: [Event { key: EventKey([27, 228, 166, 75, 115, 93, 244, 177, 158, 231, 42, 235, 52, 186, 131, 8, 202, 146, 232, 114, 140, 154, 7, 189, 144, 135, 246, 18, 113]), value: EventValue([240, 96, 102, 173, 92, 241, 15, 102, 222, 120, 233, 150, 175, 171, 189, 240, 96, 150, 212, 66, 127, 142, 147, 227, 78, 118, 142, 216, 231]) }, Event { key: EventKey([172, 70, 164, 227, 124, 36, 136, 111, 243, 95, 243, 163, 221, 12, 109, 22, 209, 158, 9, 169, 91, 198, 154, 147, 190, 62, 146, 170, 203, 145, 216, 135, 136, 71, 186, 100, 83, 52, 95, 60, 48, 89, 99, 95, 90, 35, 31, 158, 191, 119, 215, 73, 116, 59, 193, 178, 244, 130, 120, 168, 132, 109, 131, 255, 11, 235, 187, 38, 60, 183, 178, 159, 221, 157, 172, 168, 130, 27, 120, 63, 55, 233]), value: EventValue([119, 202, 187, 230, 97, 129, 114, 123, 71, 5, 59, 203, 137, 163, 254, 162, 250, 104, 9, 177, 169, 148, 183, 36, 187, 61, 10, 155, 189, 94, 88, 190, 153, 5, 151, 227, 244, 68, 220, 233, 15, 242, 214, 26, 84, 124, 22, 175, 96, 237, 18, 211, 27, 74, 135, 75]) }, Event { key: EventKey([172, 97, 24, 252, 228, 80, 134, 19, 187, 138, 70, 124, 251, 10, 56, 204, 106, 219, 229, 101, 77, 27, 18, 226, 35, 127, 71, 81, 31, 227, 152, 59, 234, 242, 48]), value: EventValue([62, 53, 110, 66, 175, 193, 129, 253, 116, 33, 127, 32, 23, 88, 176, 158, 147, 159, 104, 237, 93, 58, 9, 199, 48, 129, 89, 22, 71, 204, 240, 195, 145, 159, 45, 171, 200, 49, 12, 154, 217, 28, 225, 91, 103, 35, 190, 16, 203, 224, 232, 196, 187, 229, 227, 68, 16, 157, 84, 29, 128, 20, 79, 182, 240, 194, 218, 33, 84, 146, 154, 122, 55, 26, 106, 159, 237, 77, 48, 42, 168, 249, 30, 80, 7, 185, 111, 236, 213, 97]) }, Event { key: EventKey([67, 175, 150, 251, 178, 153, 244, 113, 113, 96, 121, 125, 145, 241, 163, 19, 82, 89, 220, 182, 128, 70, 96, 201, 199, 34, 64, 63, 243, 117, 66, 30, 137, 62, 54, 132, 6, 177, 128, 24, 153, 45, 11, 185, 30, 228, 39, 23, 168, 72, 74, 186, 102, 54, 173, 86]), value: EventValue([82, 207, 150, 203, 165, 31, 154, 169, 188, 144, 213, 222, 110, 226, 254, 52, 230, 82, 66, 134, 41, 252, 187, 113, 210, 42, 141, 83, 135, 37, 36, 7, 78, 205, 143, 210, 141, 226, 242, 136, 149, 236, 116, 230, 174, 178, 222, 169, 71, 36, 246, 147, 60, 163, 202, 98, 189, 24, 206, 172, 147, 75, 109, 51, 101, 14, 64, 155, 209, 223, 178, 16, 100, 203]) }, Event { key: EventKey([19, 96, 27, 200, 52, 114, 118, 183, 36, 30, 246, 214, 172, 255, 157, 169]), value: EventValue([151, 99, 96, 167, 183, 61]) }, Event { key: EventKey([107, 86, 10, 52, 226, 187, 171]), value: EventValue([64, 237, 125, 112, 8, 154, 193, 141, 0, 241, 229, 129, 56, 111, 142, 253, 33, 225, 67, 143, 166, 187, 147, 201]) }, Event { key: EventKey([65, 118, 134, 120, 247, 205, 62, 217, 249, 24, 209, 104, 7, 194, 208, 139, 10, 235, 95, 208, 111, 159, 7, 127, 102, 244, 251, 106, 144, 124, 143, 119, 65, 173, 6, 94, 160, 225, 27, 42, 75, 17, 6, 80, 138, 48, 247, 24, 173, 68, 72, 63, 222, 102, 18, 175, 43, 202, 169, 176, 75, 88, 77, 251, 28, 183, 97]), value: EventValue([250, 20, 142, 135, 229, 174, 6, 57, 159, 118, 204, 20, 47, 124, 254, 91, 118, 74, 242, 26, 178, 144, 235, 184]) }, Event { key: EventKey([168, 179, 101, 90, 81, 212, 49, 126, 68, 94, 104, 39, 83, 198, 153, 7, 145, 204, 159, 226, 82, 2, 187, 48, 87, 237, 34, 135, 52, 251, 70, 52, 7, 247, 254, 83, 252, 50, 128, 180, 97, 58, 125, 151, 208, 25, 185, 29, 174, 28, 15, 111, 92, 79, 217, 50, 40, 4, 205, 41, 72, 105, 121, 248, 9, 145]), value: EventValue([189, 242, 40, 246, 101, 2, 46, 115, 48, 10, 202, 223, 155, 119, 14, 10, 177, 8, 185, 46, 239, 115, 87, 69, 129, 102, 47, 196, 2, 108, 119, 216, 39, 46, 63, 101, 36, 13, 95, 142, 155, 71, 237, 190, 190, 107, 87, 126, 2, 244, 230, 7, 7, 181, 126, 23, 68, 33, 208]) }, Event { key: EventKey([94, 212, 103, 122, 11, 234, 240, 62, 201, 129, 236, 130, 152, 63, 206, 129, 150, 235, 67, 132, 115, 33, 25, 95, 47, 244]), value: EventValue([176, 165, 99, 232, 226, 66, 65, 15, 77, 11, 14, 222, 61, 14, 117, 242, 59, 207, 140, 45, 203, 38]) }], receipt: 4220431478 }], inner: 632532523 }, BatchReceipt { batch_hash: [119, 153, 75, 27, 144, 142, 184, 163, 92, 227, 69, 13, 173, 133, 57, 238, 178, 192, 2, 149, 79, 110, 104, 14, 250, 150, 5, 47, 190, 148, 132, 177], tx_receipts: [TransactionReceipt { tx_hash: [228, 179, 42, 170, 16, 166, 101, 242, 41, 124, 192, 162, 131, 77, 192, 244, 235, 19, 11, 123, 71, 247, 233, 183, 139, 17, 147, 197, 138, 61, 39, 46], body_to_save: None, events: [Event { key: EventKey([238, 111, 201, 210, 24, 29, 172, 146, 133, 162, 149, 129, 225, 130, 11, 227, 127, 137, 50, 39, 174, 46, 177, 123, 101, 215, 114, 223, 225, 251, 169, 114, 77, 239, 150, 222, 25, 250, 15, 219, 207, 80, 151, 215, 188, 198, 186, 247, 151, 177, 227, 164, 46, 68, 46, 37, 247, 133, 146, 10, 48, 47, 118, 30, 19, 99, 116, 157, 236, 217, 181, 205, 101, 123, 181, 135, 177, 236, 215, 74, 76, 163, 180, 183, 154, 66, 207, 198, 139, 62, 113, 137, 55, 172]), value: EventValue([236, 237, 81, 140, 108, 99, 134, 238, 92, 232, 34, 252, 233, 46, 53, 216, 53, 39, 204]) }, Event { key: EventKey([101, 140, 153, 217, 161, 156, 103, 147, 221, 177, 14, 16, 166, 175, 186, 77, 249, 168, 212, 142, 17, 234, 221, 239, 170, 37, 85, 55, 7, 227, 142, 6, 120, 245, 8, 158, 216, 250, 112, 249, 235, 64, 198, 196, 49, 140, 169, 29, 115, 163, 71, 167, 87, 122, 100, 96, 245, 33, 52, 139, 61, 131, 167, 243, 105, 74, 88, 221, 103, 74, 62, 200, 87, 121, 246, 170, 173, 35, 35, 161, 52, 77, 219, 194, 47, 72, 218, 192, 169, 150, 96, 182, 237, 37, 35, 191, 145]), value: EventValue([40, 134, 125, 34, 213, 140, 25, 207, 89, 201, 29, 83, 114, 110, 49, 251, 11, 125, 227, 81, 207, 160, 82, 107, 40, 211, 249, 89, 156, 237, 159, 59, 114, 181, 139, 214, 76, 117, 10, 228, 2, 124, 68, 218, 54, 249, 122, 169, 164, 57, 71, 66, 251, 116, 187]) }, Event { key: EventKey([194, 77, 233, 220, 52, 216]), value: EventValue([24, 34, 192, 132, 41, 42, 230, 171, 171, 146, 172, 45, 52, 25, 92, 164, 71, 223, 100, 134, 170, 154, 136, 246, 188, 95, 22, 208, 77, 86, 101, 1, 144, 160, 165, 117, 186, 223, 15, 116, 1, 111, 92, 153, 88, 4, 206]) }, Event { key: EventKey([242, 206, 179, 33]), value: EventValue([190, 160, 13, 118, 52, 37, 196, 31, 219, 20, 195, 106, 226, 116, 199, 108, 90, 21, 57, 199, 215, 31, 60, 0, 123, 187, 26, 90, 75, 27, 222, 64, 239, 186, 121, 248, 118, 100, 176, 4, 204, 209, 182, 85, 151]) }, Event { key: EventKey([149, 60, 23, 226, 118, 100, 114, 235, 252, 101, 9, 237, 111, 105, 147, 65, 99, 116, 51, 23, 219, 52, 193, 254, 155, 195, 250, 12, 184, 55, 43, 242, 48, 90, 173, 124, 206]), value: EventValue([14, 36, 90, 95, 17, 190, 0, 92, 245, 252, 49, 231, 28, 140, 7, 43, 174, 9]) }, Event { key: EventKey([102, 193, 247, 70, 37, 207, 249, 67, 31, 139, 162, 73, 112, 100, 76, 107, 250, 162, 92, 166, 103, 152, 73, 220, 6, 101, 250, 60, 4, 18, 5, 43, 122, 252, 248, 29, 39, 136, 129, 34, 41, 24, 8, 134, 36, 121, 83, 184, 167, 163, 143, 137, 128, 20, 234, 204, 253, 241, 6, 118, 225, 143, 105, 30, 225, 210, 178, 209, 248, 200, 17, 114, 77, 225, 172, 240, 201, 217, 181, 79, 61, 210, 107, 106, 187, 164, 121, 100, 239, 237, 90]), value: EventValue([139, 193, 188, 115, 54, 76, 86, 113, 79, 145, 181, 79, 127, 185, 14, 216, 206, 1, 24, 0, 119, 38, 14, 112, 219, 187, 23, 190, 157, 105, 221, 34, 224, 74, 105, 169, 20, 212, 157, 206, 187, 192, 28, 197, 109, 128, 214, 46, 83, 177, 197, 197, 120, 37, 17, 72, 210, 173, 193, 120, 255, 192, 243, 229, 77, 158, 204, 96, 82, 206, 193, 229, 5, 96, 219]) }, Event { key: EventKey([94, 218, 255, 254, 249, 175, 217, 247, 153, 21, 148, 132, 164, 134, 94, 159, 206, 69, 15, 190, 79, 102, 64, 247, 121, 64, 34, 91, 151, 23, 97, 250, 161, 196, 167, 188, 79, 79, 240, 250, 199, 238, 4, 3, 5, 104, 111, 180, 228, 18, 189, 219, 244, 92, 63, 162, 71, 129, 158, 132, 106, 166, 85, 105, 100, 182, 128, 194, 220, 120, 183]), value: EventValue([18, 5, 88, 181, 174, 88, 172, 155, 207, 60, 174, 209, 131, 155, 236, 230, 197, 222, 51, 30, 243, 71, 114, 191, 71, 15, 228, 224, 105, 68, 108, 108, 255, 217, 55, 178, 191, 164, 23, 183, 135, 108, 240, 159, 190, 112, 97, 1, 183, 86, 227, 120, 60, 31, 163, 251, 99, 225, 223, 148, 14, 109, 143, 168, 140, 254, 189, 4, 118, 180, 247, 196, 31, 50, 236, 150, 226, 199, 149, 177]) }, Event { key: EventKey([196, 167, 51, 15, 149, 53, 160, 175, 173, 35, 228, 91, 72, 116, 55, 195, 134, 234, 192, 3, 96, 160, 201, 209, 108, 225, 3, 210, 140, 203, 153, 55, 128, 232, 137, 209, 27, 135, 180, 95, 16, 156, 141, 77, 56, 134, 179, 240, 179, 148, 4, 221, 134, 115, 218, 32, 84, 205, 102, 122, 86, 205, 49, 132, 220, 188, 73, 107, 228, 78, 94, 94]), value: EventValue([145, 128, 37, 254, 124, 4, 87, 173, 29, 222, 35, 87, 36, 58, 39, 196, 49, 123, 226, 122, 205, 109, 45, 61, 211, 215, 86, 179, 7, 152, 160, 21, 86, 110]) }, Event { key: EventKey([110, 62, 222, 38, 59, 87, 17, 8, 179, 13, 234, 104, 62, 95, 154, 192, 88, 66, 195, 18, 158, 155, 196, 69]), value: EventValue([8, 239, 240, 222, 198, 91, 151, 238, 217]) }], receipt: 3233443713 }, TransactionReceipt { tx_hash: [85, 255, 104, 170, 137, 237, 164, 143, 12, 138, 114, 36, 146, 38, 241, 234, 108, 245, 54, 170, 22, 158, 112, 57, 46, 75, 218, 110, 51, 9, 226, 59], body_to_save: None, events: [], receipt: 589874058 }, TransactionReceipt { tx_hash: [119, 6, 102, 155, 211, 109, 113, 158, 135, 247, 73, 216, 196, 61, 70, 242, 103, 204, 22, 176, 137, 49, 209, 71, 217, 148, 45, 232, 211, 203, 87, 112], body_to_save: Some([193, 57, 51]), events: [Event { key: EventKey([43, 234, 62, 175, 85, 212, 153, 120, 178]), value: EventValue([117, 170, 28, 227, 146, 124, 143, 174, 4, 125, 93, 147, 185, 129, 118, 123, 37, 47, 86, 1]) }, Event { key: EventKey([105, 27, 119, 9, 135, 123, 50, 99, 72, 174, 103, 141, 56, 192, 82, 31, 83, 170, 105, 122, 239, 15, 174, 214, 9, 50, 192, 108, 244, 207, 138, 25, 247, 58, 195, 90, 5, 43, 136, 69, 129, 66, 216, 223, 62, 77, 207, 141, 85, 221, 212, 230, 87, 34, 159, 79, 1, 190, 155, 21, 125, 68, 140, 190, 203, 2, 43, 81, 136, 221, 250, 167, 58, 134, 0, 227, 90, 117, 242, 83, 95, 112, 212, 239, 220, 8, 78, 157, 249, 239, 28, 188, 68, 147, 44]), value: EventValue([106, 121, 241, 144, 219, 244, 227, 49, 134, 29, 135, 102, 250, 98, 214, 203, 144, 88, 61, 213, 38, 113, 73, 93, 74, 152, 251, 34, 115, 231, 27, 54, 34, 95, 99, 103, 175, 60, 83, 19, 251, 42, 111, 194, 188, 16, 178, 60, 1, 3, 11, 39, 252, 170, 115, 58, 52, 135, 0, 214, 184, 70, 75, 51, 251, 16, 11, 190, 96, 85, 82, 110, 45, 154, 26, 146, 14, 82, 207, 103, 134, 238, 78, 187]) }, Event { key: EventKey([134, 111, 157, 167, 122, 128, 230, 174, 152, 18, 243, 45, 179, 58, 118, 241, 37, 38, 82, 180, 192, 202, 128, 83, 87, 33, 231, 176, 22, 94, 59, 155, 149, 43, 170, 176, 142, 4, 29, 153, 94, 191, 65, 202, 52, 16, 230, 131, 73, 158, 6, 67, 50, 58, 48, 13, 121, 210, 40, 40, 160, 54, 235, 226, 205, 165, 36, 94, 245, 91, 131, 146, 189, 39, 254, 0]), value: EventValue([206, 192, 220, 148, 114, 133, 230, 237, 43, 130, 4, 217, 144, 80, 128, 161, 187, 2, 129, 249, 154, 125, 14]) }, Event { key: EventKey([144, 88, 32, 120, 117, 175, 1, 97, 220, 224, 237, 167]), value: EventValue([5, 189, 141, 108, 172, 191, 234, 141, 130, 122, 67, 203, 138, 134, 233, 218, 50, 98, 66, 104, 191, 227, 103, 36, 21, 211, 20, 250, 231, 49, 182, 94, 238, 114, 171, 111, 192, 91, 101, 14, 229, 24, 30, 19, 206, 152, 195, 56, 254, 23, 97, 227, 23, 159, 250, 52, 188, 75, 236, 184, 38, 35, 167, 251, 160, 15, 153, 208, 204, 144, 229, 68, 226, 149]) }, Event { key: EventKey([251, 156, 180, 216, 112, 32, 160, 163, 86, 43, 206, 148, 115, 110, 59, 31, 228, 61, 106, 123, 53, 196, 155, 17, 6, 101, 52, 112, 196, 188, 83, 106, 91, 138, 153, 162, 248, 211, 168, 85]), value: EventValue([60, 116, 88, 18, 84, 178, 157, 241, 131, 232, 213, 144, 39, 85, 216, 241, 173, 197, 59]) }, Event { key: EventKey([228, 220, 237, 75, 130, 237, 105, 48, 86, 71, 161, 91, 211, 166, 243, 135, 163, 193, 164]), value: EventValue([153, 86, 188, 187, 31, 31, 101, 141, 71, 89, 10, 149, 219, 52, 32, 132, 220, 125, 159, 18, 129, 197, 43, 0, 14, 130, 74, 177, 27, 133, 225, 173, 90, 144, 214, 36, 67, 126, 55, 205, 223, 79, 246, 146, 149, 179, 122, 182, 36, 134, 200, 42, 220, 3, 82, 104, 40, 129, 134, 134, 78, 221, 0, 215, 213, 135]) }, Event { key: EventKey([0, 96, 2, 130, 114, 181, 114, 3, 252, 20, 159, 74, 178, 38, 56, 170, 57, 132, 230, 233, 19, 99, 184, 76, 190, 151, 25, 212, 59, 219, 190, 252, 181, 143, 29, 229, 91, 151, 20, 185, 16, 88, 252, 200, 178, 176, 134, 3, 83, 183, 88, 201, 255, 226, 8, 201, 115, 13, 50, 21, 141, 236, 36, 26, 195, 138, 185, 226, 169, 39, 66, 58, 206, 170]), value: EventValue([223, 225, 249, 103, 119, 222, 106, 73, 83, 133, 75, 226, 223]) }, Event { key: EventKey([49, 65, 253, 72, 32, 232, 127, 185, 103, 11, 249, 73, 207, 59, 148, 182, 85, 53, 182, 89, 48, 207, 96, 132, 159, 104, 175, 122, 251, 78, 170, 64, 105, 182, 124, 36, 192, 123, 39, 210, 142, 91, 222, 146, 244, 189, 245, 189, 137, 183, 80, 161, 4, 7, 195, 180, 45, 201, 82, 213, 79, 172, 172, 120, 176, 147, 74, 209, 84, 250, 39, 70, 87, 235, 181, 229, 108, 238, 135, 187, 107, 236, 16, 219, 75, 41, 6, 207, 174, 169, 214, 164, 115, 137, 243, 167]), value: EventValue([251, 138, 149, 64, 152, 102, 45, 72, 182, 162, 69, 225, 14, 225, 116, 67, 154, 101, 89, 182, 50, 249, 69, 240, 99, 172, 183, 178, 253, 4, 141, 131, 67, 125, 211, 78, 182, 166, 220, 177, 78, 23, 108, 73, 176, 230, 211, 152, 115, 141, 104, 240, 60, 254, 25, 155, 246, 179, 254, 217, 199, 41, 164, 195, 96, 238, 169, 214, 4, 124, 215, 219, 95]) }, Event { key: EventKey([63, 111, 69, 9]), value: EventValue([209, 122, 0, 84, 54, 202, 72, 182, 30, 12, 207, 30, 26, 2, 105, 88, 230, 102, 189, 180, 102, 12, 17, 109, 27, 58, 171, 85, 21, 252, 202, 10, 216, 115, 30, 162, 20, 250, 34, 173, 223, 253, 84, 238]) }], receipt: 2540623150 }, TransactionReceipt { tx_hash: [70, 47, 213, 252, 124, 6, 64, 241, 128, 69, 50, 101, 206, 122, 89, 1, 200, 41, 12, 165, 199, 33, 21, 251, 64, 162, 113, 64, 94, 61, 144, 68], body_to_save: Some([182, 245, 81, 150, 181, 25, 242, 237, 142]), events: [Event { key: EventKey([79, 79, 31, 37, 253, 246, 241, 235, 198, 205, 253, 167, 140, 16, 158, 130, 252, 212, 119, 109, 142, 56, 208, 223, 112]), value: EventValue([98, 182, 188, 77, 181, 242, 109, 122, 218, 93, 13, 49, 126, 181, 50, 7, 70, 219, 136, 245, 184, 142, 179, 80, 65, 187, 167, 89, 115, 67, 190, 210, 28, 172, 35, 204, 217, 111, 202, 210, 168, 11, 14, 219, 207, 54, 153, 42, 208, 30, 48, 63, 214]) }, Event { key: EventKey([80, 193, 80, 95, 99, 159, 124, 146, 37, 242, 137, 23, 7, 113, 85, 91, 200, 23, 148, 132, 230, 101, 206, 172, 50, 164, 26, 220, 44, 239, 245, 143, 150, 174, 8, 177, 105, 138, 84, 59, 219, 182, 210, 172, 112, 127, 91, 126, 196, 7, 156, 221, 53, 22, 16, 68, 4, 86, 81, 203, 90, 151, 196, 178, 20, 237, 71]), value: EventValue([176, 41, 211, 208, 106, 97, 65, 251, 21, 1, 160, 234, 242, 44, 15, 122, 27, 156, 41, 140, 33, 86, 52, 190]) }], receipt: 906752329 }], inner: 2994740849 }, BatchReceipt { batch_hash: [225, 93, 44, 112, 97, 227, 194, 232, 1, 227, 11, 250, 181, 129, 68, 113, 53, 68, 47, 152, 180, 152, 30, 40, 85, 167, 174, 109, 23, 251, 42, 206], tx_receipts: [TransactionReceipt { tx_hash: [97, 111, 35, 195, 34, 94, 87, 71, 69, 195, 23, 83, 21, 45, 47, 20, 9, 121, 74, 229, 183, 92, 1, 204, 22, 102, 131, 105, 9, 249, 191, 154], body_to_save: Some([162, 196, 113, 127, 165, 0, 188, 44, 142, 6, 173, 173, 123, 110, 183, 155, 56, 174, 108, 193, 101, 72, 251, 209, 232, 162, 174, 150, 238, 207, 233, 157, 4, 48, 192, 21, 52, 103, 224, 230, 11, 121, 172]), events: [], receipt: 2590280924 }, TransactionReceipt { tx_hash: [223, 33, 5, 135, 167, 217, 238, 121, 249, 224, 200, 238, 156, 111, 211, 218, 22, 5, 70, 91, 249, 34, 155, 47, 33, 5, 9, 5, 106, 85, 14, 227], body_to_save: Some([123, 29, 83, 39, 255, 69, 228, 73, 178, 138, 162, 243, 116, 68, 12, 62, 232, 189, 34, 181, 221, 124, 255, 44, 69, 142, 16, 166, 133, 185, 138, 234, 45, 252, 254, 181, 148, 4, 128, 166, 223, 188, 224, 23, 63, 37, 122, 133, 209, 128, 203, 116, 46, 138, 7, 24, 251]), events: [Event { key: EventKey([125, 177, 74, 68, 129, 142, 213, 5, 17, 57, 11, 6, 182, 226, 9, 123, 148, 21, 247, 63, 28, 23, 84, 198, 98, 37, 254, 9, 17, 3, 199, 209, 188, 222, 233, 189, 229, 80, 138, 63, 184, 21, 1, 59, 122, 146, 7, 45, 127, 197, 166, 92, 68, 39]), value: EventValue([22, 5, 17, 142, 193, 31, 211, 49, 103, 127, 116, 8, 143, 86, 7, 150, 89, 76, 25, 182, 137, 246, 153, 103, 140, 210, 172, 44, 94, 140, 128, 60, 155, 203, 91, 213, 63, 120, 179, 64, 87, 160, 112, 170, 181, 249, 158, 149, 220, 12, 15, 109, 225, 47, 242, 17, 22, 80]) }, Event { key: EventKey([145, 233, 197, 50, 53, 54, 27, 55, 29, 5, 69, 203, 160, 32, 247, 249, 29, 248, 166, 92, 82, 195, 174, 200, 106, 221, 242, 57, 152, 250, 186, 172, 100, 241, 126, 237, 214, 254, 48, 62, 154, 4, 107, 194, 99, 121, 221, 164, 183, 240, 55, 65, 178, 13, 142, 244, 151, 13, 81, 139, 200, 197, 16, 10, 214, 234, 221, 44, 142, 105, 4, 39]), value: EventValue([145, 154, 209, 76, 124, 103, 75, 36, 163, 83, 55, 232, 189, 251, 145, 224, 232, 188, 124, 185, 194, 249, 50, 99, 1, 230, 97, 210, 35, 13, 218, 229, 212, 22, 247, 93, 193, 114, 98, 69, 176, 161, 70, 24, 55, 87, 92, 210, 161, 110, 5, 42, 179, 37, 79, 59, 152, 238]) }, Event { key: EventKey([12, 71, 149, 218, 82, 62, 168, 218, 40, 81, 121, 188, 224, 205, 152, 40, 76, 7, 146, 83, 32, 102, 144, 84]), value: EventValue([131, 202, 39, 221, 7, 30, 9, 12, 185, 254, 183, 74, 48, 148, 0, 156, 206, 57, 121, 149, 30, 36, 197, 188, 95, 178, 26, 102, 28, 98, 185, 190, 81, 17, 250, 224, 151, 196, 7, 155, 47, 119, 197, 99, 158, 211, 137, 203, 205, 157, 41, 63, 235, 0, 66, 1, 142, 148, 126, 159, 183, 120, 217, 223, 0, 53, 66, 106, 245, 169, 139, 136, 105, 2, 160, 52, 92, 216, 157, 169, 158, 227]) }, Event { key: EventKey([107, 224, 130, 50, 201, 75, 56, 160, 105, 51, 249, 55, 38, 201, 204, 204, 140, 192, 103, 251, 70, 37, 190, 29, 25, 188, 85, 83, 210]), value: EventValue([69, 94, 110, 195, 107, 215, 88, 153]) }, Event { key: EventKey([250, 77, 169, 42, 1, 193, 109, 38, 155, 68, 190, 42, 5, 121, 93, 100, 52, 56, 103, 93, 42, 130, 193, 17, 168, 55, 141]), value: EventValue([28, 160, 174, 220, 109, 80, 45, 18, 244, 159, 40, 189, 228, 34, 166, 98, 56, 251, 181, 108]) }, Event { key: EventKey([217, 87, 158, 214, 14, 81, 227, 229, 120]), value: EventValue([59]) }], receipt: 1784967549 }, TransactionReceipt { tx_hash: [103, 0, 211, 226, 14, 191, 226, 124, 251, 85, 236, 178, 106, 84, 73, 154, 71, 84, 176, 118, 186, 16, 31, 220, 55, 68, 54, 93, 41, 54, 121, 228], body_to_save: Some([102, 111, 74, 164, 114, 210, 158, 150, 54, 74, 238, 27, 198, 159, 122, 157, 114, 171, 42, 118, 45, 126, 19, 183, 76, 232, 248, 200, 129, 254, 170, 203, 84, 174, 110, 4, 221, 27, 110, 215, 226, 221, 97, 52, 161, 100, 164, 60, 189, 73, 3, 124, 115, 206]), events: [Event { key: EventKey([165, 87, 123, 166, 172, 234, 189, 162, 10, 166, 175, 230, 185, 86, 212, 52, 204, 13, 35, 154, 251, 197, 180, 124, 163, 46, 188, 204, 147, 26, 132, 3, 74, 108, 240, 54, 107, 219, 89, 183, 28, 25, 213, 122, 94, 10, 180, 7, 247, 8, 254, 168, 64, 221, 53, 123, 26, 59, 102, 119, 28, 18, 57, 230, 209, 65, 101, 43, 122]), value: EventValue([80, 71, 100, 199, 136, 199, 19, 71, 134, 111, 214, 234, 119, 103, 97, 46, 230, 93, 117, 228, 232, 34, 27, 36, 17, 88, 188, 107, 88, 31, 117, 151, 246, 203, 233, 136, 27, 224, 144, 155, 201, 76, 221, 108, 236, 36, 121, 114, 166, 127, 117, 219, 53, 170, 120, 15, 166, 26, 19, 6, 127, 86, 95, 99, 6, 174, 106, 11, 47, 2, 32, 6, 255, 222, 73, 156, 216, 245, 129, 204, 112, 161, 75, 224, 163, 236, 119, 60, 7, 206, 119]) }, Event { key: EventKey([161, 123, 247, 84, 16, 24, 194, 237, 2, 34, 69, 46, 45, 20, 247, 255, 14, 156, 183, 50, 179, 149, 147, 243, 187, 227, 69, 45, 43, 121, 238, 111, 226, 196, 114, 34, 239, 34, 214, 107, 61, 26, 18, 165, 212, 53]), value: EventValue([201, 6, 173, 8, 130, 62, 35, 253, 56, 12, 137, 5, 54, 57, 178, 212]) }, Event { key: EventKey([137, 138, 108, 11, 77, 44, 221, 158, 211, 25, 99, 19, 143, 90, 54, 150, 252, 71, 89, 166, 60, 50, 107, 131, 87, 248, 231, 64, 213, 237, 47, 239, 233, 241, 236, 81, 174, 189, 197, 25, 90, 237, 49, 152, 52, 115, 222, 157, 108, 19, 253, 84, 195, 148, 15, 39, 147, 137, 93, 131, 32, 43, 4, 120]), value: EventValue([199, 232]) }, Event { key: EventKey([234]), value: EventValue([186, 112, 78, 102, 220, 41, 159, 129, 45, 53, 193, 230, 135, 67, 173, 58, 8, 126, 222, 70, 46, 87, 51, 113, 229, 59, 1, 32, 59, 87, 159, 36, 84, 123, 213, 193, 77, 186, 174, 208, 182, 8, 76, 0, 74, 68, 114, 54, 167, 220, 217, 160, 244, 234, 196, 150, 35, 200, 139, 207, 139, 112, 11, 86, 94, 68, 31, 74]) }], receipt: 2930779629 }], inner: 1414965077 }], num_txs: 28, num_events: 153 }, SlotCommit { slot_data: TestBlock { curr_hash: [2, 230, 129, 196, 68, 5, 165, 7, 223, 118, 158, 29, 57, 61, 182, 207, 80, 68, 34, 98, 82, 204, 135, 70, 220, 45, 45, 154, 211, 37, 205, 248], header: TestBlockHeader { prev_hash: TestHash([88, 164, 146, 123, 67, 157, 252, 67, 50, 88, 187, 96, 162, 253, 8, 160, 139, 60, 96, 188, 6, 123, 132, 209, 38, 27, 227, 225, 133, 37, 164, 113]) } }, batch_receipts: [BatchReceipt { batch_hash: [61, 55, 129, 208, 19, 40, 220, 105, 146, 173, 228, 126, 221, 51, 190, 65, 101, 146, 163, 94, 213, 137, 248, 124, 176, 192, 69, 35, 30, 52, 236, 59], tx_receipts: [TransactionReceipt { tx_hash: [102, 89, 181, 153, 143, 151, 62, 67, 25, 228, 188, 9, 54, 151, 139, 170, 77, 195, 115, 57, 153, 214, 99, 29, 157, 80, 216, 115, 7, 62, 221, 212], body_to_save: Some([119, 203, 198, 94, 153, 179, 2, 134, 2, 74, 18, 237, 245, 242, 204, 27, 10, 227, 55, 241, 243, 132, 203, 151, 207, 250, 187, 102, 154]), events: [Event { key: EventKey([184, 242, 26, 100, 236, 183, 16, 160, 111, 52, 224, 119, 33, 243, 25, 179, 34, 80, 239, 167, 151, 213, 44, 20, 43]), value: EventValue([94, 7, 19, 18, 63, 213, 76, 240, 230, 94, 180, 35, 153, 73, 89, 103, 97, 80, 101, 149, 46, 43, 10, 191, 40, 63, 231, 247, 12, 98, 155, 166, 39, 247, 119, 154, 59, 253, 206, 210, 175, 71, 217, 61, 202, 35, 238, 119, 4]) }, Event { key: EventKey([124, 98, 43, 29, 206, 107, 53, 110, 27, 43, 112, 242, 30, 72, 240, 18, 160, 119, 26, 98, 1, 193, 246, 90, 181, 107, 230, 181, 6, 81, 146, 191, 1, 95, 236, 246, 182, 50, 247, 207, 70, 21, 186, 178, 25, 89, 89, 116, 31, 19, 136, 198, 172]), value: EventValue([90, 46, 14, 234, 56, 245, 98, 200, 5, 191, 55, 3, 121, 133, 3, 66, 195, 47, 214, 57, 177, 224, 168, 94, 140, 155, 54, 150, 249, 120, 200, 42, 45, 235, 35, 195, 172, 231, 45, 60, 51, 59, 92, 106, 146, 236, 77, 244, 42, 247, 0, 66, 244, 54, 4, 52, 194, 137, 155, 176, 210, 229, 58, 244, 171, 238, 199, 42, 175, 242, 84, 172, 234, 69, 16, 176, 84]) }, Event { key: EventKey([29, 74, 126, 145, 179, 8, 110, 193, 49, 232, 233, 30, 8, 45, 103, 15, 22, 240, 31, 152, 48, 65, 25, 59, 91, 204, 147, 38, 117, 226, 57, 234, 108, 197, 67, 216, 99, 161, 236, 54, 45, 26, 45, 182, 169, 13, 22, 207, 209, 176, 111, 17, 51, 43, 38, 191, 27, 124, 114, 177, 76, 73, 63, 165, 225, 185, 239, 64, 241, 159, 207, 57]), value: EventValue([146, 86, 82, 160, 0, 90, 59, 118, 1, 207, 24, 161, 161, 102, 63, 37, 238, 7, 101, 9, 187, 9, 15, 241, 181, 37, 249, 34, 222, 118, 137, 60, 153, 116, 14, 129, 97, 13, 152, 84, 31, 32, 243, 236, 151, 139, 159, 79, 151, 58, 162, 223, 163, 64, 121, 83, 128, 84, 39, 23, 73, 204, 222, 187, 83, 66, 67, 182, 123, 94, 18, 65, 80, 230, 132, 238, 86, 156, 106, 253, 127, 108, 137, 103, 193, 157, 144, 220, 68, 237, 180, 89, 76, 150, 20, 168, 9]) }, Event { key: EventKey([225, 110, 26]), value: EventValue([147, 246, 110, 232, 104, 199, 49, 7, 182, 208, 203, 105, 129, 88, 112, 187, 186, 59, 66, 230, 6, 113, 0, 3, 75, 224, 46, 71, 27, 78, 226, 96, 66, 167, 22, 31, 6, 9, 7, 2, 106, 225, 196, 83, 167, 5, 250, 242, 103, 152, 67, 251, 39, 187, 227, 6, 32, 61, 164, 177, 230, 191, 83, 51, 216, 122, 17, 164, 99, 39, 164, 10]) }, Event { key: EventKey([154, 45, 131, 241, 62, 14, 218, 220, 245, 146, 253, 113, 150, 78, 127, 124]), value: EventValue([67, 255, 244, 155, 109, 138, 173, 239, 128, 233, 40, 226, 240, 62, 117, 11, 181, 57, 177, 58, 104, 3, 231, 226, 72, 203, 110, 235, 159, 41, 7, 170, 236, 22]) }], receipt: 2469736697 }, TransactionReceipt { tx_hash: [234, 47, 22, 59, 243, 227, 51, 178, 180, 7, 248, 187, 248, 34, 194, 149, 61, 212, 109, 122, 68, 145, 63, 68, 138, 113, 148, 222, 11, 164, 99, 155], body_to_save: None, events: [Event { key: EventKey([228, 254, 156, 243, 138, 149, 68, 84, 57, 200, 193, 38, 215, 199, 249, 71, 88, 174, 37, 11, 5, 81, 201, 93, 133, 209, 9, 131, 40, 195, 226, 192, 9, 223, 81, 164, 183, 72, 210, 73, 175, 57, 179, 249, 134, 217, 12, 46, 188, 21, 140, 172, 145, 246, 26, 173, 37, 186, 12, 183, 204, 89, 171, 116, 183, 102, 132, 45, 215, 175, 52, 79, 159, 59, 90, 207, 35, 171, 227, 180, 42, 18, 174, 65, 4, 179, 196, 101, 64, 179, 108, 50, 59, 78, 187, 102, 209]), value: EventValue([119, 96, 245, 222, 90, 113, 105, 221, 84, 27, 90, 129, 146, 243, 166, 80, 123, 174, 144, 84, 76, 111, 116, 145, 155, 184, 36, 176, 211, 6, 143, 91, 184, 236, 0, 31, 34, 93, 198, 176, 4, 230, 163, 67, 212, 158, 105, 140, 56, 125, 151, 238, 50, 218, 55, 73, 198, 144, 197, 183, 110, 145, 228, 176]) }, Event { key: EventKey([251, 104, 1, 236, 80, 165, 45, 231, 243, 9, 97, 148, 125, 244, 84, 172, 195, 76, 226, 126, 230, 47, 230, 216, 72, 231, 154, 130, 20, 76, 134, 22, 218, 40, 95, 17, 51, 131, 127, 193, 242, 191, 251, 132, 2, 252, 106, 51, 227, 49, 31, 196, 14, 87, 153, 226, 40, 155, 42, 236, 81, 24, 77, 243, 151, 180, 142, 216, 59, 145, 15, 5, 136, 207, 2, 10, 35, 143, 46, 24, 222, 172]), value: EventValue([165, 148, 48, 188, 27, 26, 207, 226, 189, 174, 248, 141, 154, 160, 61, 56, 59, 169, 37, 218, 71, 127, 205, 209, 198, 204, 86, 74, 77, 170, 250, 171, 223, 115, 251, 61, 207, 132, 102, 221, 97, 228, 129, 64, 60]) }, Event { key: EventKey([117, 140, 49, 56, 11, 169, 208, 81, 67, 105, 95, 5, 134, 37, 205, 80, 121, 99, 79, 114, 37, 174, 186, 127, 124, 176, 95, 128, 193, 153, 8, 133, 216, 254, 94, 212, 143, 5, 93, 189, 227, 227, 83, 140, 141, 128, 4, 69, 57, 125, 5, 196, 60, 82, 10, 225, 184, 255, 1, 210, 49, 227, 5, 71, 254, 158, 247, 6, 233, 10, 180, 113, 90, 122, 244, 167, 169, 204, 202, 25, 118, 187, 121, 181, 123, 101, 17, 186, 12]), value: EventValue([180, 157, 201, 133, 42, 154, 164, 31, 188, 150, 189, 87, 218, 181, 64, 255, 172, 148, 112, 243, 223, 66, 6, 189, 27, 156, 244, 101, 28, 235, 185, 102, 42, 135, 116, 130, 30, 47, 189, 155, 110, 7, 76, 195, 48, 119, 149, 29, 202, 134, 174, 189, 138, 30, 145, 42, 81, 68, 33, 182, 194, 11, 233, 129, 225, 226, 14, 23, 95, 241, 78, 31, 195, 73, 28, 36, 142]) }, Event { key: EventKey([6, 127, 86, 183, 145, 86, 171, 3, 127, 52, 93, 165, 115, 12, 67, 39, 92, 189]), value: EventValue([197, 145, 155, 57, 246, 244, 133, 23, 184, 185, 132, 142, 42, 137, 12, 21, 210, 31, 204, 201, 80, 103, 94, 167, 53, 7, 185, 255, 168, 51, 151, 5, 5, 88, 242, 237, 150, 248, 154, 234, 160, 102, 107, 102, 139, 109, 33, 42, 78, 79, 168, 152, 175, 249, 243, 154, 145, 238, 39, 131, 102, 146, 87, 172, 88, 144, 222, 29, 26, 115, 79, 72, 41, 241, 203, 82, 47, 158, 75, 3, 2, 139, 28, 85, 80, 221, 152, 98, 63, 137, 36, 33, 212]) }], receipt: 2029612676 }, TransactionReceipt { tx_hash: [214, 144, 240, 250, 203, 114, 139, 198, 77, 172, 246, 253, 243, 73, 249, 174, 88, 168, 20, 113, 186, 213, 97, 190, 72, 126, 25, 54, 205, 17, 251, 232], body_to_save: None, events: [Event { key: EventKey([138, 37, 138, 119, 20, 208, 61, 145, 178, 61, 209, 53, 20, 240, 10, 71, 34, 75, 134, 10, 83, 17, 250, 89, 244, 182, 246, 177, 10, 26, 167, 220, 221, 101, 165, 49, 173, 72, 96, 21, 2, 183, 50, 152, 89, 1, 96, 159, 7, 142, 103, 104, 18, 8, 73, 66, 148, 199, 74, 56, 168, 115, 185, 30, 110, 136, 138, 90, 75, 13, 132, 55, 44, 113, 65, 166, 191, 165, 151, 156]), value: EventValue([43, 239, 73, 225, 154, 230, 12, 26, 85, 135, 162, 188, 251, 77, 171, 34, 246, 94, 211, 69, 170, 86, 101, 161, 15, 93, 171, 85, 209, 93, 45, 229, 222, 78, 89, 57, 76, 114, 174, 143, 66, 52, 202, 242, 64, 124, 188, 14, 147, 59, 94, 203, 30, 159, 100, 12, 37, 106, 41, 172, 24, 36, 115, 128, 235, 154, 105, 219, 243, 90, 17, 29, 25, 48, 39, 141]) }, Event { key: EventKey([95, 96, 7, 191, 233, 144, 42, 154, 191, 193, 222, 44, 74, 94, 111, 167, 92, 7, 235, 63, 62, 218, 170, 98, 191, 34, 240, 68, 99, 32, 184, 203, 232, 233, 35, 210, 143, 223, 240, 248, 116, 77, 36, 184, 228, 189, 208, 37, 100, 143, 173, 141, 59, 27, 94, 92, 63, 254, 132]), value: EventValue([98]) }, Event { key: EventKey([195, 147, 187, 126, 163, 146, 13, 161, 249, 170, 75, 48, 62, 215, 180, 136, 8, 30, 99, 142, 64, 183, 145, 5, 169, 55, 173, 197, 231, 28, 20, 136, 230, 143, 103, 236, 126, 143, 210, 148, 128, 159, 239, 13, 113, 53, 217, 77, 17, 204, 86, 112, 247, 133]), value: EventValue([22, 159, 24, 213, 236, 74, 57, 202, 107, 93, 78, 102, 108, 119, 190, 43, 172, 28, 142, 138, 118, 232, 24, 64, 154, 221, 120, 209, 7, 75, 29, 126, 208, 19, 16, 94, 217, 194, 253, 66, 86, 91, 179, 219, 122, 126, 141, 206, 45, 252, 97, 55, 139, 210, 72, 6, 195, 255, 75, 98, 234, 223, 215, 223, 216, 40, 194, 184, 25, 7, 213, 60, 202, 82, 205, 173, 93, 145]) }, Event { key: EventKey([222, 185, 246, 200, 19, 164, 101, 110, 206, 60, 66, 76, 172, 196, 3, 254, 231, 47, 30, 37, 62, 230, 233, 56, 114, 56, 205, 114, 193, 68, 89, 88, 58, 82, 200, 232, 55, 129, 209, 175, 112, 105, 32, 146, 243, 164, 77, 143, 157, 19, 166, 176, 231, 131, 236, 229, 184, 104, 28, 84, 254, 145, 115, 171, 48, 223, 117, 134, 109, 163, 143, 252, 50, 110, 218, 133, 194, 116, 16, 95, 3, 233, 3, 34, 250, 231, 212, 32, 206, 251, 15, 132, 229, 214, 209, 186, 197]), value: EventValue([154, 115, 173, 245, 254, 205, 8, 170, 207, 240, 187, 107, 116, 244, 110, 250, 175, 167, 84, 131, 202, 132, 208, 69, 224, 207, 195, 194, 166, 163, 91, 156, 35, 53, 9, 211, 6, 89, 30, 32, 7, 165, 188, 191, 126, 251, 161, 103, 19, 93, 239, 243, 60, 232, 0, 172, 35, 50, 75]) }, Event { key: EventKey([206, 233, 195, 229, 41, 136, 36, 183, 234, 79, 244, 38, 195, 155, 216, 91, 227, 15, 210, 91, 179, 98, 89, 65, 14, 19, 77, 99, 117, 82, 140, 206, 209, 28, 117, 50, 192, 87, 206, 99, 236, 105, 22, 171, 122, 6, 118, 33, 117, 55, 2]), value: EventValue([70, 115, 215, 50, 199, 48, 11, 106, 189, 116, 19, 164, 246, 194, 164, 195]) }, Event { key: EventKey([81, 18, 217, 74, 241, 170, 71, 178, 166, 53, 75, 12, 220, 43]), value: EventValue([161, 229, 2, 95, 136, 224, 230, 18, 234, 110, 110, 246, 22, 113, 193, 35, 176, 70, 134, 18, 157, 248, 189, 19, 98, 161, 7, 222, 174, 75, 241, 73, 240, 207, 102, 8, 24, 189, 156, 114, 101, 12, 28, 218, 219, 12, 109, 212, 238, 227, 97, 115, 29, 150, 75, 124, 234, 21, 197, 222, 251, 104, 138, 87, 50, 136, 240, 69, 156, 218, 47, 59, 55, 29, 103, 158, 83, 207, 232, 190, 98, 87, 214, 130, 226, 68, 44, 220, 223, 126, 214, 106]) }, Event { key: EventKey([244, 99]), value: EventValue([76, 155, 175, 228, 86, 219, 86, 33, 163, 24, 161, 79, 14, 1, 201, 45, 24, 69, 167, 193, 187, 23, 92, 99, 36, 250, 32, 2, 185, 171, 133, 120, 222, 254, 17, 184, 216, 239, 127, 10, 120, 169]) }, Event { key: EventKey([]), value: EventValue([126, 229, 121, 90, 218, 170, 129, 41, 171, 97, 196, 16, 12, 242, 118, 214, 91, 16, 220, 75, 115, 244, 74, 231, 150, 220, 2, 44, 242, 117, 226, 173, 242, 108, 129, 113, 116, 234, 16, 56, 227, 118, 13, 159, 227, 21, 151, 206, 107, 184, 201, 172, 42, 237, 34, 62, 199, 63, 150, 63, 115, 32, 177, 62, 198]) }], receipt: 3823362245 }, TransactionReceipt { tx_hash: [206, 84, 82, 41, 230, 148, 117, 97, 66, 193, 125, 208, 214, 185, 168, 16, 142, 201, 110, 255, 32, 127, 238, 206, 48, 240, 51, 79, 246, 139, 178, 152], body_to_save: None, events: [Event { key: EventKey([239, 25, 171, 30, 76, 128, 124, 66, 240, 81, 170, 127, 99, 190, 181, 239, 16, 126, 234, 77, 205, 14, 21, 4, 82, 130, 75, 208, 187, 151, 119, 45, 170, 170, 240, 180, 129, 131, 88, 0, 4, 222, 65, 18, 62, 195, 34, 81, 6, 93, 134, 158, 106, 53, 75, 181, 249, 246, 103, 22, 203, 28, 212, 123, 156, 247, 146, 177, 66, 77, 31, 105, 146, 153, 193, 7, 105, 30, 180, 215, 218, 167, 208, 36]), value: EventValue([129, 139, 248, 78, 35, 106, 250, 196, 103, 70]) }, Event { key: EventKey([60, 98, 202, 195, 98, 173, 165, 115, 162, 201, 5, 97, 6, 190, 236, 108, 168, 160, 115, 16, 22, 184, 190, 184, 88, 78, 135, 196, 102, 81, 87, 189, 47, 227, 134, 137, 244, 30, 196, 196, 24, 109, 116, 101, 78, 2, 125, 216, 149, 233, 99, 81, 80, 204, 11, 251, 237, 58, 108, 103, 180, 190, 170, 17, 97, 58, 17, 97, 119, 194, 66, 87, 127, 249, 24, 168, 220, 90, 130, 7, 35, 128, 108, 32, 228]), value: EventValue([93, 121, 150, 57, 249, 225, 192, 207, 77, 202, 228, 49, 244, 223, 165, 24, 129, 149, 93, 102, 216, 220, 168, 70, 160, 77, 228, 137, 104, 106, 83, 173, 174, 249, 183, 81, 27, 115, 96, 107, 46, 177, 58, 35, 158, 187, 91, 240, 146, 22, 233, 160, 88, 99, 245, 73, 9, 47, 200, 193, 138, 3, 242, 199, 247, 151, 213, 36, 53, 46, 147, 25, 172, 179, 200, 164, 85, 105, 130, 167, 193, 125, 194, 180, 169, 90, 183, 132, 96, 179, 204, 48, 186, 152]) }], receipt: 2557295727 }, TransactionReceipt { tx_hash: [59, 79, 121, 158, 104, 204, 185, 202, 94, 143, 110, 243, 232, 116, 245, 177, 24, 155, 199, 232, 6, 249, 187, 111, 88, 201, 158, 206, 149, 27, 210, 126], body_to_save: Some([97, 34, 224, 65, 236, 10, 239, 94, 220, 62, 185, 44, 72, 94, 142, 209, 179, 198, 106, 157, 48, 195, 170, 207, 174, 213, 172, 19, 16, 251, 141, 199, 25, 180, 173, 195, 6, 130, 74, 136, 102, 93, 161, 15, 212, 73, 150, 247, 138, 65, 69, 81, 104, 159, 111, 128, 124, 239, 16, 50, 76, 78, 12, 122, 71, 31, 99, 157, 118, 184, 116, 228, 26, 220, 221, 220, 36, 136, 100, 216, 41, 224, 172, 39, 78, 46, 2, 49]), events: [Event { key: EventKey([198, 214, 147, 170, 26, 191, 83, 167, 185, 213, 73, 228, 1, 243, 117, 255, 135, 103, 34, 110, 25, 195, 250, 18, 14, 144, 203, 151, 124]), value: EventValue([133, 239, 166, 147, 8, 175, 7, 164, 185, 238, 3, 48, 169, 10, 65, 50, 137, 2, 239, 230, 74, 122, 81, 3, 72, 99, 253, 202, 75, 61, 31, 129, 120, 115, 218, 112, 118, 86, 42]) }, Event { key: EventKey([50, 12, 76, 143, 65, 231, 186, 177, 92, 187, 140, 223, 17, 28, 69, 8, 188, 227, 227, 157, 119, 200, 234, 26, 189, 4, 125, 23, 253, 171, 101, 224, 104, 119, 150, 45, 79, 14, 149, 9, 158, 97, 61, 145, 191, 100, 253, 204, 2, 226, 214, 231, 189, 63, 187, 137, 101, 76, 100, 223, 9, 105, 0, 18, 203, 197, 120, 49, 27, 137, 9, 71, 42, 8, 218, 207, 108]), value: EventValue([44, 66, 55, 162, 110, 68, 219, 129, 175, 59, 190, 2, 12, 159, 213, 166, 151, 118, 172, 136, 59]) }, Event { key: EventKey([121, 237, 154, 117, 207, 25, 153, 91, 17, 39, 152, 40, 107, 124, 129, 119, 15, 112, 249, 214, 83, 19, 101, 22, 85, 62, 80, 57, 101, 178, 15, 77, 75, 4, 199, 168, 107, 152, 171, 49]), value: EventValue([125, 227, 67, 45, 31, 100, 138, 146, 170, 248, 83, 20, 173, 35, 241, 185, 73, 143, 184, 80, 38, 137, 107, 252, 106, 62, 123, 7, 6, 49, 139, 172, 109, 251, 77, 218, 252]) }, Event { key: EventKey([168, 217, 134, 11, 109, 127, 45, 85, 49, 249, 17, 68, 77, 58, 72, 31, 230, 244, 141]), value: EventValue([75, 198, 42, 222, 243, 149, 238, 155, 254, 203, 166, 78, 15, 137, 132, 6, 98, 195, 182, 10, 57, 57, 236, 202, 74, 150, 235, 25, 123, 96, 60, 83, 197, 10, 57, 226, 137, 196, 179, 29, 19, 151, 96, 203, 115, 139, 226, 76, 82, 201, 74, 67, 249, 80, 117, 202, 85, 100, 32, 115, 23, 153, 198, 157, 160, 217, 209, 108, 131, 80, 99, 119, 104, 65, 42, 249, 159, 136, 114, 58, 103, 208, 180, 89, 138, 19, 206, 190, 170, 123, 4, 52, 201, 229, 223, 152, 219, 218]) }, Event { key: EventKey([196, 127, 49, 27, 105, 46, 201, 124, 21, 36, 254, 133, 151, 152, 25, 227, 70, 66, 225, 227, 62, 127, 193, 214, 73, 82, 67, 166, 232, 157, 145, 98, 45, 13, 20, 225, 86, 84, 145, 168, 227, 24, 150, 232, 158, 231, 56, 68, 93, 66, 51, 187, 140, 202, 155, 244, 0, 129, 72, 25, 75, 83, 9, 178, 139, 209, 2, 47, 162, 31, 41, 129, 109, 147, 10, 111, 126, 133, 175, 153, 165, 22, 31, 10]), value: EventValue([233, 208, 205, 75, 219, 100]) }, Event { key: EventKey([136, 242, 97, 27, 222, 241, 103, 126, 220, 94, 112, 233, 221, 1, 123, 244, 125, 90, 3, 246, 249, 254, 43, 102, 209, 172, 48, 83, 205, 86, 241, 228, 0, 243, 213, 126, 18, 76, 240, 132, 182, 181, 106, 236, 94, 105, 127, 166, 65]), value: EventValue([186, 127, 43, 7, 52, 38, 136, 132, 153, 45, 135, 54, 51, 127, 98, 109, 174, 227, 219]) }, Event { key: EventKey([247, 231, 3, 96, 223, 103, 69, 114, 99, 39, 29, 145, 100, 159, 253, 210, 210, 160, 156, 193, 185, 40, 20, 181, 67, 223, 176, 4, 137, 226, 119, 75, 210, 43, 209, 82, 172, 125, 223, 193, 90, 18, 18, 66, 220, 201, 223, 7, 124, 189, 53, 63, 158, 12, 76, 31, 35, 137, 41, 109, 66, 113, 161, 179, 107, 144, 151, 5, 178, 138, 51, 145, 125, 83, 237, 252, 110, 80, 41, 150, 165, 152, 223, 185]), value: EventValue([143, 27, 35, 195, 40, 102, 122, 200, 234, 114, 208, 178, 111, 64, 234, 79, 67, 77, 69, 63, 63, 31, 101, 71, 42, 180, 19, 207, 167, 205, 92, 44, 6, 51, 103, 32, 40, 229, 18, 218, 140, 93, 145, 52, 236, 48, 108, 214, 136, 124, 20, 118, 65, 83, 237, 46, 179, 49, 188, 35, 46, 103, 198, 176, 205, 102, 240, 88, 233, 166, 153, 0, 236, 61, 194, 187, 209, 230, 4, 62, 0, 166, 49, 197, 170, 28, 77, 255, 33, 147, 85, 212, 2, 211, 39, 209, 245, 197]) }, Event { key: EventKey([149, 124, 87, 213, 29, 16, 223, 79, 206, 179, 13, 187, 74, 98, 246, 179, 255, 156, 19, 92, 72, 228, 129, 57, 165, 18, 111, 249, 147, 130, 11, 222, 19, 182, 32, 197, 133, 54, 7, 35, 123, 8, 136, 167, 99, 175, 178, 166, 81, 76, 0, 12, 23, 60, 240, 64, 146, 54, 111, 71, 245, 115, 5, 125, 192, 214, 115, 143, 160, 135, 146, 252, 208, 62, 206, 29, 163, 12, 176, 140, 102]), value: EventValue([125, 224, 46, 60, 238, 85, 123, 214, 93, 133, 215, 206, 29, 187, 106, 104, 254, 202, 43, 72, 84, 233, 54, 81, 182, 189, 230]) }], receipt: 3850779449 }, TransactionReceipt { tx_hash: [134, 202, 69, 126, 236, 98, 111, 85, 217, 93, 89, 72, 25, 76, 198, 170, 107, 240, 2, 24, 181, 67, 115, 118, 128, 123, 229, 221, 122, 39, 111, 69], body_to_save: Some([132, 107, 199, 50, 9, 255, 229, 248, 235, 239, 85, 0, 120, 39, 27, 182, 115, 181, 229, 1, 141, 146, 45, 204, 59, 177, 197, 40, 35, 95, 44, 143, 198, 46, 117, 79, 44, 149, 196, 24, 163, 166, 163, 83, 162, 139, 61, 227, 190, 98, 135, 100, 130, 171, 244, 247, 233, 138, 248]), events: [Event { key: EventKey([86, 104, 250, 210, 10, 69, 166, 67, 145, 222, 14, 12, 99, 119]), value: EventValue([226, 255, 127, 225, 66, 85, 94, 43, 137, 174, 14, 136, 184, 226, 151, 102, 144, 130, 98, 63]) }, Event { key: EventKey([107, 184, 34, 114, 55, 239, 198, 172, 59, 243, 55, 86, 255, 128]), value: EventValue([3, 197, 99, 190, 47, 23, 243, 224, 170, 238, 245, 222, 79, 97, 149, 161, 113, 189, 101, 233, 185, 43, 8, 131, 108, 251, 198, 111, 226, 30, 243, 210, 166, 56, 212, 37, 202, 15, 251, 34]) }, Event { key: EventKey([77, 45, 152, 88, 85, 206, 26, 156, 55, 9, 32, 87]), value: EventValue([153, 15, 225, 97, 252, 92, 180, 93, 234, 16, 44, 82, 149, 234, 94, 22, 252, 93, 130, 118, 244, 179, 67, 138, 19, 147, 7, 30, 117, 201, 126, 66, 112, 97, 153, 166, 48, 82, 112, 228, 151, 104, 13, 203, 176, 138, 72, 58, 228, 27, 236, 255, 219, 82, 168, 29, 224, 204, 32, 74, 247, 45, 245, 12, 171, 169, 109, 86, 93, 15, 166, 164, 95, 133, 244, 41, 75]) }], receipt: 3993617784 }, TransactionReceipt { tx_hash: [79, 185, 139, 86, 128, 73, 149, 197, 223, 255, 112, 201, 62, 8, 171, 251, 59, 84, 216, 225, 6, 219, 181, 97, 128, 173, 202, 1, 78, 207, 185, 122], body_to_save: None, events: [Event { key: EventKey([11, 222, 36, 223, 206, 201, 128, 154, 87, 240, 168, 74, 248, 103, 222, 210, 166, 138, 52, 88, 81, 255, 208, 198, 181, 111, 222, 138, 197, 135, 154]), value: EventValue([125, 84, 127, 4, 96, 75, 219, 52, 187, 78, 31, 17, 141, 221, 12, 77, 93, 207, 118, 48, 100, 135, 89, 181, 49, 246, 55, 243, 229, 61, 195, 191, 237, 34, 85, 18, 212, 144, 89, 194, 61, 139, 224, 176, 32]) }], receipt: 2014326931 }, TransactionReceipt { tx_hash: [25, 167, 76, 241, 160, 47, 3, 39, 109, 123, 119, 199, 235, 113, 43, 158, 44, 150, 146, 37, 6, 55, 116, 218, 247, 243, 161, 195, 170, 239, 13, 131], body_to_save: Some([199, 190, 127, 104, 158, 101, 127, 34, 58, 182, 102, 129, 137, 70, 170, 219, 217, 149, 212, 21, 113, 101, 89, 247, 172, 247, 111, 230, 52, 112, 173, 1, 248, 160, 193, 153, 1, 1, 129, 96, 227, 105]), events: [], receipt: 259317790 }], inner: 1375285642 }, BatchReceipt { batch_hash: [238, 190, 28, 135, 107, 229, 226, 198, 226, 40, 196, 0, 42, 86, 82, 148, 141, 3, 165, 134, 166, 92, 215, 111, 203, 151, 53, 130, 163, 103, 221, 16], tx_receipts: [TransactionReceipt { tx_hash: [93, 252, 217, 6, 150, 115, 251, 7, 67, 216, 213, 19, 16, 68, 98, 11, 246, 226, 241, 30, 37, 193, 159, 105, 247, 157, 103, 103, 110, 20, 234, 73], body_to_save: Some([53, 239, 28, 166, 88, 229, 236, 216, 222, 235, 48, 225, 219, 14, 247, 160, 173, 172, 129, 58, 52, 223, 160, 229, 49, 171, 187, 5, 168]), events: [Event { key: EventKey([92, 239, 14, 57, 37, 71, 56, 243, 88, 176, 91, 14, 0, 157, 159, 18, 162, 39, 197, 246, 237, 145, 207, 137, 253, 206, 237, 213, 179, 21, 216, 213, 184, 212, 232, 8, 232, 149, 93, 69, 200, 6, 46, 114, 67, 85, 172, 124, 42, 77, 148, 110, 202, 252, 29, 21, 127, 126, 73, 193, 144, 19, 174, 79, 82, 90, 165]), value: EventValue([142, 130, 228, 36, 115, 228, 63, 13, 60, 24, 52, 66, 33, 138, 79, 222, 202, 73, 132, 222, 83, 104, 220, 142, 90, 134, 46, 187, 63, 175, 129, 193, 91, 1, 225, 74, 111, 242, 99, 35, 22, 95, 232, 152, 151, 98, 85, 169, 170, 186, 3, 116, 248, 208, 204, 96, 205, 33, 170, 161, 243, 41, 249, 247, 17, 54, 203, 55, 198, 64, 250, 120, 236, 119, 6, 212, 77, 136, 9, 235, 36]) }, Event { key: EventKey([74, 186, 181, 86, 189, 98, 215, 2, 221, 132, 242, 60, 5, 43, 0, 90, 106, 79, 21, 158, 34, 129, 153, 171, 32, 164, 191, 111, 89, 109, 2, 36, 174, 184, 39, 190, 187, 163, 150, 188, 65, 103, 39, 147, 23, 41, 36, 136, 182, 253, 112]), value: EventValue([215, 234, 106, 18, 57, 11, 34, 195, 87, 1, 58, 10, 175, 219, 250, 245, 226, 243, 138, 119, 66, 101, 249, 117, 182, 37, 240, 105, 236, 79, 224, 41, 134, 175, 225, 36, 4, 26, 113, 119, 237, 41, 210, 15, 68, 206, 147, 146, 47, 132, 193, 159, 0, 44, 86, 197, 124, 93, 68, 93, 177, 79, 138, 208, 52, 217, 112, 219, 29, 249, 232, 147, 82, 189, 19, 197, 35, 15, 193, 50, 194, 11, 186, 249, 162, 97, 241]) }, Event { key: EventKey([229, 58, 39, 76, 39, 121, 53, 187, 69]), value: EventValue([247, 204, 155, 45, 115, 187, 46, 48, 229, 225, 157, 65, 130, 186, 190, 152, 145, 98, 122, 250, 49, 178, 158, 120, 231, 29, 62, 254, 26, 234, 137, 239, 95, 202, 127, 246, 12, 124, 42, 64, 112, 79, 11, 30, 133, 90, 140, 40, 141, 122, 51, 78, 22, 70, 96, 97, 102]) }], receipt: 1608692061 }, TransactionReceipt { tx_hash: [211, 78, 52, 142, 43, 77, 236, 63, 17, 239, 58, 110, 38, 54, 157, 217, 25, 213, 209, 94, 79, 165, 193, 76, 111, 64, 228, 27, 189, 184, 149, 21], body_to_save: None, events: [Event { key: EventKey([196, 250, 98, 138, 180, 183, 42, 163, 229, 7, 246, 196, 104, 235, 18, 12, 0, 103, 140, 142, 170, 148, 235, 67, 95, 196, 126, 167, 118, 80, 79, 220, 86, 70, 167, 189, 216, 217, 124, 77, 92, 1, 109, 54, 10, 160, 72, 112, 115, 179, 248, 47, 44, 165, 64, 201, 106, 30, 219, 104, 139, 241, 151, 121, 211, 197, 154, 88, 240, 134, 54, 173, 26, 178, 170, 180, 222, 109, 63, 144, 254, 120, 203, 5, 154, 174, 254, 75, 251, 110, 239]), value: EventValue([139, 150, 78, 224, 11, 17, 82, 155, 203, 246, 229, 173, 19, 129, 77, 253, 174, 76, 139, 130, 220, 168, 198, 253, 82, 75, 187, 153, 205, 184, 55, 11, 85, 40, 191, 155, 179, 72, 162, 112, 216, 210, 173, 178, 161, 1, 101, 254, 92, 183, 225, 247, 149, 182, 218, 181, 30, 147, 239, 84, 3, 118, 103, 157, 239, 149, 118, 246, 125, 48, 227, 170, 108, 163, 28, 21, 83, 73, 219, 242, 140, 95, 68, 194]) }], receipt: 4262559269 }, TransactionReceipt { tx_hash: [199, 176, 163, 170, 34, 1, 20, 220, 17, 27, 176, 28, 253, 79, 221, 52, 251, 238, 180, 199, 140, 184, 189, 177, 81, 27, 8, 177, 255, 2, 49, 45], body_to_save: Some([177, 171, 241, 5, 23, 93, 204, 15, 18, 97, 129, 109, 236, 40, 169, 104, 53, 93, 151, 191, 245, 142, 112, 16]), events: [Event { key: EventKey([98, 28, 124, 57, 128, 250, 204, 23, 190, 62, 90, 194, 153, 172, 160, 230, 237, 43, 187, 26, 177, 214, 174, 249, 103, 116, 126, 143, 183, 25, 62, 14, 165, 182, 121, 26, 255, 179, 42, 195, 160, 27, 149, 133, 45, 25, 175, 54, 179, 92, 202, 35, 43, 189, 96, 242, 224, 27, 50, 89, 181, 252, 203, 137, 128, 134, 141, 203, 249, 233, 132, 221, 147, 75, 73, 120, 106, 126, 186, 43, 110, 77, 205, 23, 23, 148, 232, 144, 211, 135, 60, 89, 64, 130]), value: EventValue([128, 160, 225, 43, 246, 211, 76, 102, 92, 75, 108, 234, 128, 60, 37, 210, 181, 64, 214, 103, 105]) }, Event { key: EventKey([82, 26, 60, 93, 154, 45, 60, 31, 31, 35, 88, 26, 180, 151, 241, 179, 88, 88, 149, 199, 135, 189, 178, 93, 244, 136, 43, 34, 0, 1, 239, 62, 140, 181, 120, 228, 36, 170, 154, 230, 88, 197, 71, 51, 249, 103, 45, 34, 167, 26, 129, 238, 25, 104, 29, 132, 17, 127, 234, 130, 113, 115, 22, 216, 191, 79]), value: EventValue([140, 176, 232, 243, 77, 32, 155, 52, 237, 42, 94, 189, 124, 61, 24, 243, 52, 33, 42, 254, 61, 131, 228, 151, 81, 93, 232, 169, 249, 241, 218, 17, 226, 46, 139, 96, 247, 112, 108, 18, 231, 145, 196, 88, 15, 78, 220, 159, 200, 246, 218, 196, 91, 244, 50, 154, 173, 58, 86, 207, 134, 52, 219, 146]) }, Event { key: EventKey([82, 23, 95, 159, 227, 177, 81, 97, 94, 54, 7, 248, 164, 155, 247, 67, 209, 211, 10, 178, 142, 56, 203, 28, 241, 82, 60, 55, 130, 4, 100, 244, 13, 170, 91, 199, 157]), value: EventValue([152, 133, 227, 43, 59, 238, 172, 133, 201, 252, 254, 37, 206]) }, Event { key: EventKey([155, 134, 229, 197, 137, 43, 29, 136, 24, 144, 114, 222, 17, 109, 10, 182, 215, 42, 129, 24, 132, 196, 73, 21, 168, 51, 38, 73, 7, 57, 108, 116, 116, 30, 3, 129, 36, 72, 161, 191, 22, 236, 217, 32, 126, 188, 77, 43, 91, 109, 125, 140, 184, 64, 148, 44, 176, 239, 105, 26, 40, 77, 101, 17, 41, 158, 37, 79, 57, 136, 249, 34, 148, 167, 18, 184, 109, 162, 160, 235, 108, 15, 97, 142, 179, 29, 93, 1, 81, 196, 6, 127, 15, 157]), value: EventValue([153, 114, 243, 204, 244, 211, 152, 173, 231, 70, 182, 98, 5, 132, 67, 145, 98, 189, 45, 81, 75, 12, 123, 183, 229, 240, 182, 35, 213, 165, 234, 89, 183, 8, 24, 2, 13, 110, 64, 225, 34, 96, 175, 14, 17, 224, 69, 245, 141, 76, 90, 191, 41, 42, 37, 240, 180, 124, 161, 146, 69, 50, 134, 112, 25, 213, 155, 111, 185, 10, 239, 123, 27, 136, 82, 187, 124, 214, 143, 69, 4, 186, 228, 74, 26, 142, 222, 86]) }], receipt: 1539721421 }, TransactionReceipt { tx_hash: [106, 41, 134, 129, 147, 134, 57, 0, 214, 152, 244, 1, 56, 126, 237, 108, 232, 89, 14, 83, 3, 63, 240, 187, 113, 33, 121, 15, 146, 114, 167, 34], body_to_save: None, events: [Event { key: EventKey([255, 28, 102, 53, 122, 3, 220, 206, 141, 250, 240, 0, 250, 235, 246, 212, 15, 97, 129, 254, 143, 2, 229, 248, 145, 57, 1, 173, 119, 117, 62, 218, 65, 143, 52, 203, 176, 42, 94, 58, 68, 219, 199, 48]), value: EventValue([150, 167, 107, 75, 238, 167, 67, 215, 255, 99, 59, 249, 1, 50, 85, 88, 148, 144, 124, 77, 251, 120, 233, 245, 216, 10]) }, Event { key: EventKey([228, 3, 238, 150, 25, 25, 229, 191, 111, 118, 21, 170, 180, 163, 102, 179, 82, 78, 102, 48, 14, 209, 234, 198, 65, 200, 177, 255, 196, 78, 126, 219, 159, 245]), value: EventValue([34, 130, 184, 124, 251, 102, 116, 157, 251]) }], receipt: 4262998002 }, TransactionReceipt { tx_hash: [135, 42, 106, 142, 212, 179, 254, 120, 139, 72, 164, 95, 19, 50, 155, 243, 49, 223, 109, 3, 232, 199, 164, 57, 241, 104, 192, 10, 96, 229, 206, 208], body_to_save: None, events: [Event { key: EventKey([42, 20, 85, 205, 107, 179, 108]), value: EventValue([104]) }, Event { key: EventKey([242, 120, 105, 100, 104, 44, 208, 190, 249, 123, 162]), value: EventValue([160, 149, 168, 63, 243, 187, 120, 117, 238, 78, 53, 9, 217, 205, 177, 99, 205, 229, 216, 115, 112, 203, 70, 238, 137, 228, 11, 205, 135, 204, 34, 228, 233, 135, 59, 184, 83, 216, 154, 152, 16, 180, 9, 116, 64, 151, 182, 24, 170, 53, 72, 16, 110, 236, 255, 244, 60, 141, 101, 76, 185, 130, 248, 238, 57, 23, 119, 223, 67, 203, 37, 99, 238, 241, 72, 115, 156, 113, 174, 86, 22, 119, 251, 22, 52, 67, 250, 179, 44, 46, 120, 109, 82, 74, 157, 60]) }, Event { key: EventKey([167, 114, 253, 104, 93, 171, 199, 238, 186, 71, 38, 40, 174, 46, 69, 253, 26, 149, 163, 166, 170, 239, 203, 133, 175, 135, 107, 109, 110, 173, 92, 221, 37, 87, 221, 112, 155, 10, 252, 65, 217, 73, 203, 251, 88, 239, 226, 17, 141, 224, 181, 228, 183, 195, 252, 95, 107, 216, 105, 252, 160, 40, 250, 135, 59, 49]), value: EventValue([84, 167, 239, 209, 161, 176, 195, 110, 132, 34, 50, 245, 193, 182, 130, 195, 204, 15, 103, 156, 124, 18, 182, 0, 242, 151, 223, 254, 182]) }], receipt: 4236012736 }, TransactionReceipt { tx_hash: [36, 88, 129, 214, 253, 201, 168, 149, 137, 25, 51, 215, 202, 67, 165, 52, 14, 87, 78, 121, 226, 1, 119, 92, 118, 70, 189, 69, 33, 184, 176, 142], body_to_save: Some([133, 224, 241, 127, 149, 213, 150, 179, 151, 26, 79, 146, 53, 29, 141, 199, 63, 44, 52, 167, 160, 27, 64, 144, 56, 20, 41, 14, 141, 121, 54, 130, 21, 151, 47, 159, 27, 103, 177, 46, 233, 15, 177, 97, 230, 252, 111, 109, 201, 3, 159, 224, 91, 111, 187, 102, 243, 59, 77, 37, 149, 214]), events: [], receipt: 16639918 }, TransactionReceipt { tx_hash: [244, 73, 175, 183, 107, 109, 50, 201, 25, 251, 218, 35, 23, 27, 131, 129, 174, 244, 245, 17, 91, 195, 178, 176, 225, 99, 242, 115, 116, 200, 46, 34], body_to_save: None, events: [Event { key: EventKey([125, 170, 120, 122, 22, 22, 161, 202, 31, 97, 189, 131, 241, 3, 30, 253, 173, 13, 83, 128, 80, 253, 106, 163, 113, 156, 158, 7, 210, 218, 68, 25, 203, 102, 138, 212, 65, 61, 191, 193, 71, 117, 107, 241, 9, 75, 207, 93]), value: EventValue([161, 30, 145, 232, 228, 61, 121, 22, 164, 43, 181, 190, 58, 4, 90, 32, 26, 65, 188, 181, 27, 239, 168, 220, 5, 161, 119, 109, 86, 168, 134, 57, 147, 192, 225, 204, 175, 156, 118, 148, 40, 25, 254, 232, 65, 219, 16, 187, 53, 32, 113, 234, 43, 183, 242, 51, 153, 77, 193, 84, 47, 9, 111, 14, 151, 16, 159, 147, 133, 224, 152, 47, 73, 31, 107, 188, 23, 221, 131, 236, 36, 3, 192, 163, 52, 145, 253, 147, 29, 166, 39, 105, 132, 133, 122, 189, 231]) }, Event { key: EventKey([193, 210, 116, 139, 238, 46, 112, 90, 251, 231, 167, 172, 208, 53, 140, 210, 141, 166, 16, 72, 67, 56, 64, 174]), value: EventValue([121, 145, 212, 40, 175, 21, 186, 70, 119, 241, 182, 10, 252, 219, 75, 166, 69, 56, 139, 18, 181, 54, 147, 64, 0, 155, 79, 41, 133, 240, 195, 1, 139, 183, 36, 188, 173, 244, 43, 153, 144, 143, 228, 161, 236, 111, 160, 252, 95, 13, 21, 3, 6, 205, 188, 251, 130, 162, 149, 188, 82, 167, 198, 145, 68, 208, 227, 194, 113, 81, 37, 77, 34, 107, 198, 7, 6, 43, 234, 116, 197, 49, 224]) }, Event { key: EventKey([23, 148, 161, 156, 117, 31, 143, 27, 27, 14, 62, 208, 92, 166, 16, 234, 42, 16, 141, 110, 112, 133]), value: EventValue([106, 189, 78, 102, 119, 15, 82, 219, 220, 100, 185, 175, 180, 107, 31, 114, 243, 154, 234, 130, 72]) }], receipt: 1305722110 }], inner: 1035849781 }, BatchReceipt { batch_hash: [240, 93, 14, 53, 86, 29, 72, 60, 133, 205, 211, 46, 199, 75, 217, 187, 1, 0, 180, 80, 237, 251, 248, 11, 218, 232, 13, 12, 173, 134, 33, 123], tx_receipts: [TransactionReceipt { tx_hash: [38, 213, 139, 242, 16, 36, 167, 5, 99, 153, 64, 175, 131, 132, 43, 243, 190, 21, 154, 37, 153, 92, 129, 65, 198, 134, 51, 241, 76, 125, 76, 114], body_to_save: Some([206, 176, 182, 217, 37, 3, 63, 3, 228, 86, 3, 125, 108, 151, 170, 161, 16, 69, 125, 227, 143, 239, 96, 36, 194, 168, 195, 168, 193, 88, 225, 4, 250, 1, 197, 192, 13, 56, 110, 113, 64, 131, 44, 191, 165, 45, 170, 189, 99, 214, 145, 2, 124, 133, 132, 248, 23, 96, 77, 231, 210, 122, 99, 69, 204, 249, 137, 246, 154, 80, 133, 237, 185, 110, 245, 118, 164, 176, 149, 244, 51, 106, 222, 7, 106, 20, 66, 83, 6, 39, 72]), events: [], receipt: 1930757266 }, TransactionReceipt { tx_hash: [211, 184, 10, 254, 190, 62, 73, 179, 198, 14, 87, 223, 58, 202, 249, 88, 233, 155, 34, 99, 216, 58, 131, 152, 25, 0, 52, 130, 246, 201, 110, 174], body_to_save: Some([213, 174, 207, 219, 253, 55, 20, 113, 24, 227, 227, 110, 150, 188, 174, 26, 9, 3, 195, 107, 128, 36, 216, 19, 249, 196, 173, 90, 114, 134, 212, 188, 244, 23, 20, 233, 86, 78, 129, 208, 219, 193, 110, 121, 86, 225, 223, 208, 1, 55, 72, 121, 73, 139, 163, 191, 238, 225, 77, 5, 170, 194, 27, 106, 79, 79, 216]), events: [Event { key: EventKey([39, 242, 36, 207, 164, 169, 154, 225, 158, 65, 79, 217, 45, 24, 21, 178, 174, 197, 10, 9, 177, 238, 227, 145, 151, 207, 37, 249, 30, 236, 160, 131, 11, 177, 160, 115, 181, 255, 211, 54, 152, 96, 36, 188, 111, 74, 86, 251, 152, 74, 127, 142, 226, 224, 183, 196, 140, 240, 212, 110, 136, 113, 94, 54, 166, 249]), value: EventValue([76, 99]) }, Event { key: EventKey([172, 180, 173, 21, 147, 53, 141, 146, 249, 212, 217, 110, 242, 138, 248, 124, 110, 173, 134, 56, 111, 82, 100, 196, 0, 188, 29, 163, 191, 58, 149, 194, 151, 96, 105, 248, 111, 169, 47, 179, 15, 126, 14, 220, 11, 46, 114, 127, 222, 205, 118, 48, 90, 159, 126, 246, 35, 202, 87, 155, 2, 234, 201, 17, 31, 181, 156, 71, 91, 51, 111, 126, 125, 146, 251, 26, 253, 72, 81]), value: EventValue([213, 139, 196, 65, 151, 189, 165, 107, 119, 136, 211, 184, 174, 47, 230, 137, 139, 123, 79, 167, 97, 253, 237, 15, 127, 175, 130, 75, 227, 165, 225, 103, 99, 177, 235, 67, 216, 199, 72, 29, 243, 126, 123, 26, 202, 252, 55, 116, 6, 78, 184, 1, 8, 66, 49, 18, 87, 248, 40, 105, 91, 144, 144, 143, 238, 30, 103, 27, 10, 198, 82, 92, 228, 200, 148, 147, 234, 98, 68, 255, 60, 255, 173, 69, 7, 217, 164, 235, 196]) }, Event { key: EventKey([67, 41, 152, 222, 193, 102, 253, 217, 126, 249, 215, 73, 203, 203, 216, 22, 167, 28, 160, 173, 85, 197, 90, 123, 119, 69, 83, 244, 84, 10, 209, 71, 231, 38, 75, 250, 137, 166]), value: EventValue([96, 121, 2, 18, 207, 252, 46, 116, 226, 67, 27, 166, 137, 141, 218, 158, 198, 116, 183, 249, 212, 21, 103, 45, 108, 178, 71, 187, 239, 45, 9, 63, 55, 252, 169, 140, 55, 22, 214, 34, 36, 241, 43, 69, 81, 60, 231, 55, 160, 105, 192, 242, 117, 73, 132, 131, 220, 124, 171, 244]) }, Event { key: EventKey([137, 20, 165, 198, 201, 3, 186, 23, 79, 222, 123, 212, 91, 44, 116, 153, 122, 202, 188, 31]), value: EventValue([90, 185, 18, 207, 33, 101, 239, 222, 223, 237, 101, 249, 125, 99, 161, 83, 131, 66, 194]) }, Event { key: EventKey([11, 5, 164, 113, 74, 14, 27, 4, 108, 21, 202, 79, 147, 186, 52, 50, 229, 78, 130, 216, 98, 156, 174, 181, 50, 198, 89, 47, 34, 230, 19, 87, 197, 67, 87, 6, 204, 7, 223, 232, 242, 244, 72, 107, 57]), value: EventValue([175, 23, 252, 19, 174, 119, 13, 183, 118, 253, 201, 1, 255, 31, 231, 216, 183, 248, 151, 148, 218, 228, 52, 33, 7, 59, 151, 188, 69, 241, 188, 35, 218, 137, 14, 121, 70, 108, 12, 175, 84, 203, 162, 218, 86, 90, 21, 51, 11, 83, 215, 44, 6, 241, 202, 227, 208, 213, 242, 65, 46, 79]) }, Event { key: EventKey([57, 10, 254, 57, 25, 170, 72, 4, 124, 203, 65, 153, 229, 161, 94, 42, 230, 102, 197, 12, 128, 119, 93, 127, 66, 35, 119, 242, 73, 171, 37, 77, 114, 48, 230, 108, 182, 113, 215, 212, 242, 93, 158, 7, 106, 22, 93, 255, 183, 94, 212, 96, 66, 113, 82, 75, 210, 62, 104, 239, 192, 97, 67, 138, 105, 65, 14, 22, 162, 20, 149, 192, 85, 82, 120, 226]), value: EventValue([201, 227, 90, 208, 227, 107, 116, 102, 81, 71, 135, 111, 225, 119, 128, 1, 15, 33, 185, 55, 99, 132, 242, 164, 197, 152, 219, 27, 213, 192]) }, Event { key: EventKey([220, 65, 177, 143, 199, 99, 63, 146, 107, 152, 130, 225, 115, 25, 97, 156, 255, 160, 184, 9, 100, 19, 147, 180, 128, 137, 84, 250, 135, 200, 130, 226, 174, 236, 144, 188, 224, 147, 200, 217, 190, 166, 18, 157, 66, 199, 63, 5, 136, 6, 19, 30, 198, 184, 114, 106, 149, 68]), value: EventValue([147, 175, 133, 241, 198, 9, 196, 134, 78, 56, 210, 147, 143, 146, 146, 152, 120, 72, 53, 103, 17, 174, 19, 85, 159, 201, 99, 81, 89, 66, 72, 165, 190, 79, 90, 193, 238, 233, 197, 5, 101, 116, 63, 161, 31, 143, 217, 14, 23, 64, 234, 88, 14, 240, 199, 36, 98, 155, 74, 74, 81, 218, 184, 246, 251, 171, 132]) }, Event { key: EventKey([163, 35, 169, 62, 241, 139, 245, 29, 4, 44, 223, 70, 219, 92, 61, 0, 239, 101, 118, 79, 51, 2, 193, 233, 248, 105, 148, 224, 62, 78, 239, 66, 153, 41, 84, 246, 220, 222, 182, 7, 22, 199, 170, 198, 69, 130, 127, 242, 239, 231, 197, 235, 246, 236, 23, 51, 101, 151, 45, 96, 215, 18, 53, 145, 108, 243, 70, 104, 130]), value: EventValue([177, 55, 73, 215, 109, 145, 16, 5, 56, 22, 104, 67, 206, 174, 162, 117, 105, 124, 210, 182, 5, 191, 252, 60, 82, 171, 225, 44, 143, 83, 123, 26, 78, 167, 138, 241, 252, 82, 66, 92, 154, 243, 135, 254, 115, 235, 248, 147, 136, 37, 28, 228, 68, 101, 3, 191, 83, 7, 231, 22]) }, Event { key: EventKey([223, 93, 55, 47, 197, 0, 86, 58, 106, 25, 242, 39, 158, 20, 227, 25, 107, 47, 117, 110, 83, 151, 250, 235, 255, 55, 246, 233, 114, 42, 252, 213, 64, 49, 105, 100, 162, 58, 217, 146, 81, 64, 165, 65, 197, 180, 78, 170, 49, 171, 158, 103, 228, 80, 231, 172, 133, 140, 142, 234, 32, 195, 243, 197, 129, 98, 69, 77, 243, 96, 133, 138, 2, 5, 76, 191, 0, 182, 173, 49, 18, 237, 174]), value: EventValue([134, 53, 211, 97, 129, 229, 103, 16, 7, 61, 50, 61, 25, 51, 75, 184, 69, 239, 137, 233, 42, 148, 88, 59, 96]) }], receipt: 2012824576 }, TransactionReceipt { tx_hash: [136, 135, 109, 83, 238, 165, 76, 79, 152, 1, 149, 70, 229, 123, 137, 200, 152, 209, 153, 207, 181, 107, 191, 142, 141, 237, 58, 218, 113, 120, 213, 165], body_to_save: None, events: [Event { key: EventKey([7, 2, 185, 234, 202, 154, 91, 238, 115]), value: EventValue([37, 15, 169, 118]) }, Event { key: EventKey([176, 212, 216, 131, 251, 71, 58, 33, 224, 71, 210, 163, 17, 163, 13, 164, 35, 241, 121, 171, 187, 105, 108, 48, 81, 75, 22, 64, 47, 224, 233, 37, 62, 205, 31, 114, 148, 231, 148, 32, 191, 185]), value: EventValue([87, 156, 229, 203, 197, 132, 189, 175, 235, 52, 151, 72, 38, 6, 16, 170, 99, 99, 221, 197, 236, 226, 170, 69, 181, 197, 40, 220, 18, 211, 70, 15, 231, 26, 217, 89, 149, 32, 205, 111, 207, 17, 180, 4, 86, 152, 243, 186, 120, 70, 178, 33, 86, 20, 189, 184, 6, 103, 105, 70, 233, 197, 82, 152]) }, Event { key: EventKey([192, 203, 99, 20, 128, 236, 70, 44, 146, 91, 202, 11, 10, 238, 0, 94, 221, 29, 136, 168, 120, 53, 232, 250, 17, 226, 81, 62, 229, 166, 72, 143, 136, 188, 14, 197, 32, 90, 253, 186, 183, 196, 229, 55]), value: EventValue([221, 39, 232, 180, 198, 177, 238, 67, 81, 96, 160, 240, 106, 217, 74, 16, 142, 84, 187, 53, 231, 245, 132, 228, 52, 231, 100, 165, 233, 207, 73, 25, 94, 160, 100, 222, 205, 67, 53, 105, 62, 152, 57, 202, 22, 165, 54, 72, 214, 44, 181, 83, 127, 213, 26, 186, 207, 45, 128, 47, 138, 50, 205, 58, 80, 139, 164, 168, 2, 5]) }, Event { key: EventKey([153, 13, 75, 214, 23, 127, 208, 177, 126, 194, 246, 27, 149, 99, 16, 94, 110, 82, 170, 116, 101, 185, 91, 143, 194, 17, 5, 45, 189, 23, 90, 74, 101, 88, 91, 191, 35, 229, 110, 221, 244, 179, 0, 3, 133, 79, 1, 186, 134, 202, 49, 87, 56, 227, 137, 16, 110, 98, 92, 72, 92, 110, 3, 177, 100, 24, 176, 120, 53, 178, 205, 117, 182]), value: EventValue([46, 207, 170, 42, 146, 104, 120, 183]) }, Event { key: EventKey([159, 169, 153, 152, 176, 15, 211, 174, 152, 123, 231, 15]), value: EventValue([143, 147, 164, 179, 229, 136, 253, 210, 0, 15, 135, 211, 235, 120, 65, 181, 236, 124, 25, 247, 35, 168, 214, 20, 197, 102, 145, 252, 65, 216, 88, 204, 95, 181, 53, 184, 131, 42, 114, 53, 52, 115, 165, 151, 165, 163, 221, 33, 86, 144, 75, 49, 158, 144, 149, 118, 156, 114, 235, 209, 30, 11, 49, 58, 56, 203, 167, 251, 199, 31, 212, 115, 52, 134, 56, 74, 146, 64, 225, 197, 34, 142, 6]) }], receipt: 3249332688 }], inner: 3320418011 }, BatchReceipt { batch_hash: [125, 181, 132, 205, 189, 50, 52, 239, 79, 220, 206, 90, 56, 30, 1, 138, 6, 252, 128, 102, 215, 5, 190, 117, 224, 25, 105, 189, 117, 48, 78, 168], tx_receipts: [TransactionReceipt { tx_hash: [85, 84, 35, 179, 250, 239, 129, 17, 80, 118, 235, 2, 171, 255, 114, 144, 105, 217, 70, 188, 97, 141, 40, 38, 7, 217, 76, 15, 99, 110, 107, 154], body_to_save: None, events: [Event { key: EventKey([17, 92, 0, 74, 4, 135, 250, 14, 12, 202, 59, 4, 111, 119, 38]), value: EventValue([59, 154, 178, 237, 81, 60, 29, 127, 49, 135, 88, 125, 195, 121, 176, 87, 217, 137, 75, 217, 94, 43, 69, 50, 185, 92, 44, 88, 137, 242, 16, 49, 126, 7, 158, 252, 14, 111, 104, 178]) }], receipt: 2497626181 }, TransactionReceipt { tx_hash: [214, 101, 218, 193, 59, 186, 32, 18, 117, 7, 52, 30, 91, 208, 114, 75, 117, 123, 143, 18, 26, 221, 193, 15, 8, 220, 54, 136, 41, 139, 180, 135], body_to_save: None, events: [], receipt: 536972920 }], inner: 2203228097 }, BatchReceipt { batch_hash: [190, 4, 244, 218, 23, 189, 100, 183, 208, 76, 165, 201, 54, 205, 236, 210, 139, 41, 208, 33, 80, 41, 120, 130, 51, 63, 24, 88, 5, 187, 136, 243], tx_receipts: [TransactionReceipt { tx_hash: [135, 232, 170, 16, 221, 238, 208, 152, 31, 55, 150, 109, 147, 152, 91, 139, 131, 210, 172, 97, 35, 233, 98, 177, 1, 245, 23, 254, 162, 45, 142, 57], body_to_save: Some([68, 42, 176, 111, 111, 178, 124, 252, 199, 155]), events: [Event { key: EventKey([11, 208]), value: EventValue([112, 197, 204, 30, 129, 98, 213, 133, 223]) }, Event { key: EventKey([164, 208, 62, 72, 102, 164, 115, 255, 38, 240, 148, 136, 88, 208, 194, 105, 254, 99]), value: EventValue([202, 199, 145, 123, 165, 232, 207, 243, 138, 3, 65, 189, 228, 15, 162, 147, 83, 123, 93, 12, 207, 87, 100, 84, 161, 176, 46, 165, 234, 131, 220, 108, 199, 113, 234, 94, 213, 219, 201, 5, 161, 29, 66, 235, 38]) }, Event { key: EventKey([19, 49, 247, 129, 134, 241, 155, 9, 77]), value: EventValue([73, 8, 250, 104, 235, 215, 148, 84, 92, 227, 175, 123, 172, 28, 86, 180, 105, 0, 38, 76, 105, 95, 40, 68, 146, 103, 226, 173, 239, 181, 75, 238, 196, 235, 140, 197, 127, 159, 139, 47, 51, 75, 209, 136, 9, 105, 211, 51, 0, 146, 43, 76, 66, 200, 96, 164, 12, 224, 36, 27, 78, 189, 136, 245, 239, 101, 69, 140, 216, 150, 155, 39, 249, 165, 228, 30, 166, 6, 148, 244, 231, 152, 177, 39, 255, 28, 0, 219, 228, 93, 218, 49, 244, 107, 66, 173, 162]) }, Event { key: EventKey([57, 183, 22, 170, 218, 141, 218, 108, 184, 13, 205, 85, 107, 45, 150, 67, 86, 165, 44, 163, 135, 239, 19, 103, 201, 87, 142, 77, 225, 237, 225, 75, 157, 54, 97, 142]), value: EventValue([75, 167, 49, 29, 160]) }], receipt: 3644118181 }, TransactionReceipt { tx_hash: [36, 21, 226, 20, 85, 254, 140, 14, 158, 225, 147, 215, 90, 62, 175, 161, 85, 41, 44, 19, 54, 222, 145, 72, 64, 78, 250, 37, 139, 135, 50, 63], body_to_save: Some([176, 254, 251, 8, 17, 192, 119, 3, 56, 185, 85, 143, 160, 99, 237, 51, 19, 254, 153, 100, 188, 38, 63, 205, 98, 41, 80, 57, 146, 146, 191, 60, 98, 36, 8, 8, 76, 233, 193, 11, 132, 33, 82, 11, 128, 164, 24, 92, 214, 204, 193, 215, 124, 161, 143, 250, 26, 248, 144, 114, 239, 145, 102, 62, 143, 76, 29, 184, 40, 38, 165, 81, 140, 36, 117, 20, 47, 175, 245, 136, 217, 98, 41, 124, 130, 4, 4, 194, 104]), events: [Event { key: EventKey([235, 174, 84, 221, 98, 68, 2, 11, 124, 188, 142, 7, 31, 23, 67, 198, 216, 242, 81, 142, 131, 0, 121, 147, 248, 224, 52, 133, 6, 32, 240, 250, 111, 209, 139, 14, 255, 218, 57, 205, 42, 95, 247, 101, 39, 231, 131, 49, 56, 163, 163, 42, 62, 150, 88, 116, 244, 149, 108, 189, 137, 245, 16, 70, 206, 92, 121, 171, 34]), value: EventValue([55, 98, 217, 218, 85]) }, Event { key: EventKey([30, 91, 187, 121, 27, 50, 1, 38, 169]), value: EventValue([32, 249, 7, 137, 253, 216, 115, 229, 112, 212, 20, 153, 94, 160, 39, 73, 31, 241, 20, 20, 245, 116, 255, 118, 172, 182, 239, 22, 235, 85, 141, 111, 180]) }], receipt: 3943528836 }, TransactionReceipt { tx_hash: [29, 74, 173, 161, 253, 177, 24, 80, 231, 104, 231, 178, 137, 19, 225, 156, 196, 75, 39, 9, 78, 153, 130, 71, 73, 58, 156, 187, 206, 36, 228, 203], body_to_save: Some([154, 57, 239, 150, 20, 249, 100, 134, 177]), events: [Event { key: EventKey([168, 96, 45, 235, 102, 219, 207, 65, 57, 62, 195, 117, 228, 168, 112, 169, 190, 144, 112, 29, 134, 208, 241, 212, 9, 248, 34, 53, 180, 81, 203, 197, 112, 82, 87, 197, 101, 50, 246, 200, 227, 72, 90, 28, 103, 235, 148, 54, 226, 13, 151, 184, 154, 238, 155, 155, 83, 18, 50, 50, 28, 97, 236, 183, 134, 208, 154, 236, 171, 23, 173, 6, 107, 247, 132, 28, 235, 188, 124, 7, 105, 212, 89, 28, 155, 26, 202, 102, 97]), value: EventValue([89, 156, 241, 14, 0, 197, 191, 236, 141, 59, 64, 142, 59, 221, 110, 189, 205, 123, 222, 174, 44, 117, 18, 52, 60, 177, 151, 216, 253, 254, 146, 34, 134, 56, 81, 184, 156, 136, 203, 65, 170, 186, 91, 161, 242, 110, 29, 251, 246, 146, 64, 13, 89, 139, 82, 170]) }, Event { key: EventKey([122, 79, 190, 9, 152, 156, 211, 170, 113, 228, 115, 233, 44, 164, 63, 195, 61, 199, 220, 120, 52, 195, 82, 173, 57, 23, 23, 8, 170, 63, 205, 89, 85, 137, 241, 215, 197, 180]), value: EventValue([71, 103, 57, 123, 35, 70, 51, 243, 245, 60, 64, 39, 18, 1, 59, 138, 205, 242, 36, 102, 0, 120, 96, 233, 116, 250, 221, 191, 137, 142, 83, 84, 213, 74, 54]) }], receipt: 3083738520 }, TransactionReceipt { tx_hash: [171, 219, 195, 84, 223, 73, 111, 211, 228, 157, 135, 250, 191, 202, 133, 174, 91, 6, 213, 112, 245, 246, 20, 13, 144, 168, 37, 138, 193, 182, 73, 151], body_to_save: Some([57, 64, 30, 96, 226, 254, 6, 238, 131, 150, 244, 150, 58, 51, 181, 216, 177, 36, 69, 82, 170, 75, 66, 58]), events: [Event { key: EventKey([]), value: EventValue([165, 128, 100, 169, 199, 13, 137, 5, 14, 190, 120, 116, 158, 34, 188, 100, 166, 116, 251, 111, 154]) }, Event { key: EventKey([234, 194, 185, 3, 77, 55, 182, 79, 70, 22, 252, 218, 100, 48, 91, 26, 77, 160, 9, 15, 72, 241, 232, 62, 251, 8, 178, 82, 250, 142, 2, 24, 244, 120, 91, 48, 205, 83, 187, 147, 131, 84, 180, 222, 255, 76, 79, 196, 122, 222, 66, 96, 251, 191, 152, 194, 81, 235, 191, 98, 23, 27, 7, 227, 60, 65, 93, 67, 21, 150, 48, 19, 202, 163, 59, 133, 205, 146, 140, 240]), value: EventValue([40, 169, 135, 186, 211, 54, 89, 104, 219, 195, 93, 156, 213, 183, 44, 65, 22, 119, 217, 190, 138, 111, 69, 53, 6, 140, 37, 42, 75, 202, 189, 22, 201, 39, 144, 47, 41, 187, 179, 124, 145, 121, 248, 13, 208]) }, Event { key: EventKey([95, 99, 165, 3, 142, 178, 36, 246, 166, 208, 58, 89, 117, 56, 128, 168, 43, 201, 92, 228, 209, 54, 237, 159, 195, 215, 145, 238, 96, 101, 120, 122, 176, 91, 78, 99, 178, 227, 61, 173, 140, 13, 56, 227, 11, 133, 74, 17, 35, 15, 14, 43, 246, 188, 89, 14, 230, 200, 158, 31, 174, 136, 124, 189, 215, 200, 249, 192, 145, 21, 162, 12, 49, 134, 132, 24, 127, 24, 17, 98, 123, 197, 111, 114, 199, 87, 140, 25, 225, 233, 53, 10, 216]), value: EventValue([246, 57, 5, 115, 34, 11, 188, 129, 207, 50, 21, 36, 71, 221, 168, 209, 14, 114, 69, 107, 194, 226, 98, 75, 43, 149, 46, 83, 116, 156, 191, 213, 4, 146, 224, 183, 177, 47, 126, 92, 253, 63, 61, 190, 4, 217, 15, 248, 207, 246, 115, 29, 57, 68, 122, 193, 243, 63, 31, 253, 123, 120, 134, 37, 76, 149]) }, Event { key: EventKey([97, 139, 224, 0, 252, 160, 185, 29, 7, 39, 162, 130, 73, 95, 132, 253, 45, 209, 71, 135, 128, 7, 37, 144, 189, 179, 129, 191, 166, 122, 146]), value: EventValue([235, 92, 166, 59, 22, 74, 167, 58]) }, Event { key: EventKey([7, 238, 212, 226, 68, 210, 208, 177, 211, 84, 126, 107, 172, 23, 170, 177, 114, 56, 7, 204, 118, 119, 97, 232, 177, 13, 123, 197, 192, 179, 206, 209, 183, 176, 145, 203, 88, 55, 194, 169, 15, 112, 136, 18, 28, 60, 124]), value: EventValue([96, 218, 27, 139, 98, 230, 78, 104, 109, 70, 160, 173, 71, 234, 234, 111, 191, 226, 251, 162, 201, 29, 212, 24]) }, Event { key: EventKey([90, 87, 130, 11]), value: EventValue([83, 33, 14, 206, 91, 90, 229, 210, 173, 60, 184, 121, 57, 22, 228, 210, 184, 20, 172, 64, 124, 236, 50, 169, 91, 160, 186, 80, 231, 66, 126, 127, 127, 157, 19, 107, 216, 218, 45, 78, 5, 46, 127, 117, 60, 168, 5, 225, 138, 139, 40, 135, 84, 66, 209, 107, 105, 72, 157, 142]) }, Event { key: EventKey([48, 2, 183, 53, 33, 167, 69, 118, 235, 43, 66, 233, 236, 61, 247, 88, 195, 74, 135, 199, 162, 112, 4, 56, 28, 185, 69, 87, 191, 90, 94, 228, 72, 255, 173, 148, 8, 10, 154, 62, 110, 53, 22, 99, 225, 122, 15, 177, 124, 9, 219, 7, 211, 39, 202, 215, 118, 106]), value: EventValue([245, 4, 163, 148, 3, 204, 147, 241, 107, 17, 103, 160, 91]) }], receipt: 3053568094 }, TransactionReceipt { tx_hash: [34, 254, 22, 206, 63, 53, 186, 38, 134, 231, 191, 222, 104, 31, 63, 49, 127, 5, 131, 147, 13, 225, 40, 205, 38, 189, 169, 134, 164, 80, 52, 177], body_to_save: None, events: [Event { key: EventKey([200, 15, 212, 6, 95, 112, 105, 45, 158, 247, 145, 154, 117, 29, 23, 0, 57, 156, 153, 217, 113, 132, 249, 149, 225, 99, 40, 65, 194, 121, 114, 139, 197, 173, 16, 33, 159, 190, 166, 23]), value: EventValue([5, 103, 208, 217, 198, 205, 178, 9, 177, 241, 84, 228, 100, 125, 18, 158, 126, 181, 15, 72, 238, 54, 185, 98, 97, 33, 186, 179, 185, 73, 110, 147, 162, 248, 86, 251, 140, 74, 22, 29, 70, 198, 184, 17, 41, 171, 254, 20, 111, 221, 113, 242, 156, 80, 73, 69, 231, 117, 82, 113, 198, 242, 36, 72, 74, 89, 104, 201, 44]) }, Event { key: EventKey([224, 186, 108, 74, 12, 180, 252, 228, 72, 136, 123, 12, 207, 149, 86, 75, 34, 3, 237, 204, 234, 8, 23, 98, 239, 134, 203, 25, 40, 22, 154, 20, 16, 111, 157, 192, 151, 86, 65, 83, 143, 173, 95, 16, 113, 165, 188, 214, 94, 178, 153, 22, 6, 74, 163, 155, 36, 194, 212, 194, 190, 227, 228, 72, 101]), value: EventValue([44, 19, 59, 141, 71, 57, 76]) }, Event { key: EventKey([183, 56, 42, 183, 213, 107, 89, 75, 120, 184, 134, 182, 8, 6, 0, 236, 216, 30, 252, 175, 151, 73, 70, 101, 143, 85, 159, 52, 109, 115, 214, 61, 239, 158, 231, 45, 209, 211, 9]), value: EventValue([25, 93, 189, 187, 166, 93, 67, 251, 206, 139, 58, 174, 112, 41, 174, 92, 82, 92, 143, 105, 22, 97, 61, 118, 67, 208, 59, 223, 28, 189, 233, 104, 136, 243, 62, 230, 242, 73, 247, 36, 2, 29, 132, 56, 101, 174, 126, 59, 246, 215, 68, 225, 241, 148, 216, 152, 122, 173, 171, 27, 199, 125, 9, 164, 248, 152, 225, 5, 222, 43, 126, 5, 210, 254, 186, 88, 140, 64, 114, 5, 73, 110, 165, 121, 163, 119, 82, 74, 153, 182, 218, 171, 91, 216, 206, 11, 124]) }, Event { key: EventKey([170, 186, 146, 188, 27, 185, 214, 175, 190, 132, 201, 166, 58, 169, 129]), value: EventValue([177, 32, 230, 245, 173, 210, 245, 217, 242, 176, 97, 81, 237, 146, 215, 251, 193, 208, 130, 154, 154, 190, 227, 136, 84, 146, 247, 72, 160, 144, 51, 61, 132, 98, 232, 250, 122, 131, 115, 200, 75, 151, 127, 134, 123, 87, 4, 147, 87]) }, Event { key: EventKey([69, 20, 22, 92, 192, 250, 212, 231, 59, 152, 30, 159, 142, 178, 107, 209, 112, 144, 138, 90, 16, 175, 158, 103, 75, 71, 127, 163, 118, 57, 44, 23, 124, 21, 176, 211, 15, 118, 184, 80, 32, 216, 109, 105, 175, 9, 145, 21, 16]), value: EventValue([122, 254, 199, 181, 172, 108, 4, 65, 65, 216, 110, 131, 231, 35, 151, 24, 57, 234, 141, 82, 124, 255, 115, 172, 44, 10, 179, 61, 57, 121, 100, 66, 37, 57, 133, 107, 112, 105, 132, 238, 160, 140, 124, 230, 90, 102, 10, 63, 234, 47, 111, 22, 65, 6, 59, 77, 50, 128, 160, 38, 97, 200, 222, 3, 76, 232, 154, 70, 208, 188, 127, 22, 83]) }, Event { key: EventKey([218, 81, 218, 88, 177, 220, 101, 173, 163, 123, 77, 16, 29, 229]), value: EventValue([210, 49, 25, 148, 210, 119, 164, 224, 129, 150, 230, 129, 29, 49, 202, 3, 15, 191, 213, 22, 46, 199, 56, 87, 41, 0, 98, 222, 242, 128, 50, 57, 201, 229, 0]) }, Event { key: EventKey([61, 87, 141, 78, 235, 94, 62, 122, 9, 208, 113, 237, 171, 78, 76, 15, 88, 85, 220, 95, 84, 157, 224, 7, 186, 122, 198, 70, 99, 222, 213, 84, 171, 20]), value: EventValue([94, 160, 59, 26, 112, 249, 167, 104, 30, 63, 70, 115, 226, 13, 79, 29, 213, 203, 152, 136, 97, 91, 137, 157, 44, 142, 90, 81, 76, 193, 100, 249, 83, 193, 120, 15, 168, 77, 222, 176, 219, 18, 173, 97, 196, 172, 3, 251, 51, 79]) }], receipt: 3689921034 }], inner: 1497057371 }], num_txs: 25, num_events: 84 }], {29: (150, 159), 36: (197, 205), 122: (617, 617), 59: (303, 304), 88: (450, 454), 64: (330, 336), 42: (230, 233), 86: (448, 450), 91: (470, 473), 137: (684, 688), 141: (705, 713), 154: (784, 789), 189: (940, 943), 31: (167, 170), 89: (454, 463), 49: (263, 268), 73: (373, 380), 167: (857, 866), 6: (23, 31), 78: (411, 417), 24: (126, 131), 125: (634, 641), 140: (700, 705), 191: (943, 952), 87: (450, 450), 62: (315, 322), 1: (1, 6), 145: (730, 736), 170: (875, 884), 55: (290, 296), 149: (758, 761), 23: (117, 126), 199: (973, 980), 197: (964, 966), 22: (111, 117), 106: (546, 548), 159: (817, 826), 194: (958, 958), 134: (668, 673), 158: (813, 817), 150: (761, 763), 99: (520, 521), 57: (297, 302), 142: (713, 717), 183: (927, 930), 44: (233, 240), 136: (681, 684), 179: (915, 923), 35: (190, 197), 103: (531, 536), 27: (141, 144), 112: (568, 572), 45: (240, 245), 166: (853, 857), 177: (905, 913), 10: (50, 54), 11: (54, 61), 176: (901, 905), 79: (417, 426), 2: (6, 10), 90: (463, 470), 63: (322, 330), 135: (673, 681), 50: (268, 270), 105: (542, 546), 74: (380, 388), 163: (841, 847), 83: (434, 434), 113: (572, 576), 129: (648, 655), 193: (957, 958), 53: (277, 281), 130: (655, 656), 184: (930, 931), 17: (80, 88), 123: (617, 625), 67: (350, 351), 97: (507, 512), 20: (96, 105), 98: (512, 520), 101: (524, 531), 37: (205, 210), 124: (625, 634), 38: (210, 213), 171: (884, 886), 54: (281, 290), 120: (610, 610), 172: (886, 886), 160: (826, 827), 175: (896, 901), 109: (558, 562), 9: (49, 50), 75: (388, 396), 148: (751, 758), 76: (396, 405), 156: (796, 804), 5: (22, 23), 28: (144, 150), 34: (181, 190), 133: (666, 668), 95: (493, 498), 117: (594, 597), 169: (875, 875), 104: (536, 542), 85: (443, 448), 92: (473, 481), 32: (170, 177), 7: (31, 40), 40: (220, 223), 93: (481, 490), 182: (927, 927), 82: (434, 434), 12: (61, 68), 107: (548, 555), 188: (940, 940), 138: (688, 691), 58: (302, 303), 94: (490, 493), 185: (931, 935), 68: (351, 355), 153: (777, 784), 186: (935, 937), 119: (601, 610), 65: (336, 343), 118: (597, 601), 121: (610, 617), 126: (641, 645), 25: (131, 137), 128: (645, 648), 33: (177, 181), 108: (555, 558), 81: (433, 434), 132: (660, 666), 56: (296, 297), 139: (691, 700), 195: (958, 962), 19: (94, 96), 51: (270, 277), 15: (76, 76), 173: (886, 892), 178: (913, 915), 180: (923, 926), 116: (586, 594), 165: (849, 853), 115: (580, 586), 147: (743, 751), 52: (277, 277), 8: (40, 49), 80: (426, 433), 69: (355, 363), 174: (892, 896), 77: (405, 411), 114: (576, 580), 46: (245, 253), 13: (68, 71), 14: (71, 76), 143: (717, 725), 152: (768, 777), 3: (10, 19), 41: (223, 230), 47: (253, 261), 60: (304, 310), 181: (926, 927), 4: (19, 22), 110: (562, 562), 84: (434, 443), 157: (804, 813), 43: (233, 233), 161: (827, 832), 162: (832, 841), 192: (952, 957), 72: (370, 373), 102: (531, 531), 66: (343, 350), 144: (725, 730), 18: (88, 94), 146: (736, 743), 155: (789, 796), 190: (943, 943), 131: (656, 660), 196: (962, 964), 21: (105, 111), 127: (645, 645), 30: (159, 167), 48: (261, 263), 198: (966, 973), 16: (76, 80), 96: (498, 507), 26: (137, 141), 71: (363, 370), 111: (562, 568), 61: (310, 315), 151: (763, 768), 70: (363, 363), 164: (847, 849), 100: (521, 524), 39: (213, 220), 187: (937, 940), 168: (866, 875)}, 47), random_event_num = 979 -cc 2a1d5d23264b16fed13eb54f7b88ec2c91868dfa97cfea7108310ee7018d3494 # shrinks to (slots, tx_id_to_event_range, _total_num_batches) = ([SlotCommit { slot_data: TestBlock { curr_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], header: TestBlockHeader { prev_hash: TestHash([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) } }, batch_receipts: [BatchReceipt { batch_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], tx_receipts: [TransactionReceipt { tx_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], body_to_save: None, events: [], receipt: 0 }, TransactionReceipt { tx_hash: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], body_to_save: Some([11]), events: [Event { key: EventKey([]), value: EventValue([196, 246, 44, 126, 249, 218, 50, 193, 57, 192, 217, 165, 8, 195, 182, 208, 226, 80]) }], receipt: 3622142973 }, TransactionReceipt { tx_hash: [19, 161, 23, 121, 200, 3, 22, 99, 100, 120, 143, 187, 101, 32, 152, 109, 84, 203, 39, 48, 227, 153, 86, 57, 218, 111, 112, 249, 254, 122, 68, 155], body_to_save: None, events: [Event { key: EventKey([57, 183, 233, 54, 129, 83, 44, 193, 82, 138, 176, 225, 209, 252, 73, 130]), value: EventValue([101, 19, 163, 15, 110, 30, 58, 145, 22, 220, 104, 1, 113, 92, 216, 168, 105, 32, 35, 51, 124, 93, 141, 117, 155, 191, 206, 76, 5, 180, 148, 199, 63, 132, 176, 215, 159, 202, 28, 158, 39, 38, 22, 117, 116, 58, 11, 37, 216, 10, 10, 174, 220, 219, 1]) }, Event { key: EventKey([240, 86, 152, 47, 203, 159, 103, 171, 145, 88, 177, 214, 106, 12, 107, 51, 200, 69, 85, 27, 130, 224, 123, 165, 142, 192, 98, 130, 104, 165, 45, 219, 5, 14, 160, 201, 190, 140, 49, 212, 138, 188, 196, 20, 206, 161, 115, 237]), value: EventValue([163, 197, 101, 135, 76, 126, 80, 234, 155, 249, 148, 246, 191, 233, 187, 74, 137, 225, 194, 222, 45, 181, 83, 202, 254, 239, 81, 201, 102, 37, 239, 127, 64, 67, 164, 39, 73, 110, 243, 85, 39, 176, 156, 23, 24, 23, 36, 121, 205, 39, 206, 98, 164, 206, 152, 223, 55, 26, 233, 140, 116, 243, 5, 10, 249, 188, 110, 235, 172, 66, 237, 196, 113, 74, 130, 252, 233, 243, 72, 177, 206, 113, 80, 246, 123, 29, 79, 248, 195, 125, 4, 218]) }, Event { key: EventKey([179, 135, 171, 209, 73, 70, 78, 7, 214, 172, 143, 186, 126, 92, 83, 243, 80, 193, 215, 89, 54, 250, 243, 26, 65, 139, 78, 93, 195, 144, 247, 1, 42, 125]), value: EventValue([37, 97, 141, 173, 10, 10, 193, 255, 179, 155, 239, 65, 242, 166, 136, 7, 168, 83, 204, 113, 138, 104, 5, 98, 194, 13, 65, 36, 141, 228, 97, 250, 196, 180, 193, 159, 109, 158, 87, 102, 158, 105, 125, 61, 245, 147, 21, 39, 208, 127, 90, 41, 174, 204, 77, 189, 116, 107, 209, 34, 25, 124, 177, 145, 232, 233, 169, 66, 170, 227, 124, 86, 194, 135, 8, 157, 166, 65, 229, 235, 143, 144, 28, 218, 48, 53, 25, 2, 127, 145, 45]) }, Event { key: EventKey([207, 81, 57, 74, 169, 230, 155, 248, 8, 14, 236, 58, 1, 66, 17, 14, 199, 222, 99, 42, 116, 131, 99, 104, 194, 179, 190, 137, 3, 51, 31, 125, 7, 254, 53, 26, 252, 170, 129, 109, 86, 227, 77, 221, 185, 81, 136, 128, 14, 206, 63, 69, 45, 1, 123, 191, 121, 233, 190, 55]), value: EventValue([173, 178, 75, 4, 106, 8, 49, 91, 234, 88, 148, 246, 69, 253, 98, 61, 254, 131, 10, 121]) }], receipt: 260788782 }, TransactionReceipt { tx_hash: [134, 149, 100, 30, 226, 3, 108, 150, 21, 21, 49, 84, 205, 136, 158, 94, 6, 101, 204, 162, 8, 54, 246, 103, 131, 197, 33, 68, 194, 172, 244, 140], body_to_save: None, events: [Event { key: EventKey([163, 201, 60, 164, 166, 95, 169, 98, 143, 205, 43, 54, 199, 82, 191, 73, 1, 143, 224, 45, 189, 174, 248, 41, 94, 110, 3, 240, 72, 31, 135, 154, 67, 212, 136, 82, 133, 230, 162, 255, 124, 83, 121, 50, 224, 85, 118, 186, 173, 223, 136, 219, 203, 62, 64, 145, 204, 192, 235, 248, 105, 44, 43, 93, 148, 187, 235, 66, 212, 10, 48, 18, 79, 147, 238, 101, 194, 30, 130, 173, 86, 199, 159, 72, 121, 37]), value: EventValue([252, 40, 92, 202, 172, 29, 31, 156, 228, 190, 197, 133, 32, 110, 54, 103, 223, 135, 242, 163, 110, 114, 15, 109]) }], receipt: 245135144 }, TransactionReceipt { tx_hash: [64, 107, 146, 208, 211, 124, 134, 202, 171, 23, 194, 151, 3, 253, 75, 118, 99, 110, 31, 208, 249, 130, 211, 116, 130, 68, 51, 35, 64, 212, 213, 197], body_to_save: None, events: [Event { key: EventKey([69, 104, 169, 53, 135, 7, 146, 44, 179, 22, 93, 25, 28, 6, 203, 103, 103, 205, 215, 0, 21, 3, 132, 94, 107, 157, 198, 206, 163, 180, 199, 36, 88, 67, 89, 111, 244, 174, 23, 32, 86, 54, 234, 133, 189, 66, 55, 44, 204, 0, 66, 88, 74, 200, 14, 98, 169, 9, 11, 15, 96, 59, 227, 151, 237, 71, 172, 16, 76, 159]), value: EventValue([137, 208, 28, 60, 128, 151, 141, 17, 97, 180, 226, 173, 69, 9, 5, 210, 63, 66, 192, 27, 120]) }], receipt: 2097464366 }], inner: 2535478118 }], num_txs: 5, num_events: 7 }, SlotCommit { slot_data: TestBlock { curr_hash: [70, 241, 199, 28, 166, 210, 112, 230, 116, 21, 126, 144, 81, 71, 253, 192, 248, 23, 83, 210, 34, 170, 178, 162, 74, 52, 201, 81, 195, 106, 220, 184], header: TestBlockHeader { prev_hash: TestHash([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) } }, batch_receipts: [BatchReceipt { batch_hash: [164, 140, 51, 207, 132, 87, 190, 78, 39, 107, 144, 161, 98, 130, 132, 135, 76, 19, 27, 30, 76, 186, 49, 169, 119, 172, 83, 104, 202, 198, 173, 138], tx_receipts: [TransactionReceipt { tx_hash: [211, 236, 130, 211, 89, 81, 152, 48, 155, 175, 61, 219, 163, 160, 160, 150, 228, 159, 134, 65, 241, 75, 116, 105, 156, 1, 214, 145, 154, 166, 255, 176], body_to_save: Some([173, 198, 253, 113, 42, 58, 41, 148, 10, 129, 243, 69, 211, 97, 135, 108, 142, 68, 160, 250, 186, 156, 234, 81, 42, 114, 239, 47, 132, 178, 121, 1, 64, 40, 50, 74, 109, 191, 137, 73, 76, 165, 233, 66, 159, 15, 239, 181, 162, 53, 98, 229]), events: [Event { key: EventKey([144, 66, 142, 57, 28, 191, 190, 161, 165, 12, 116, 199, 5, 174, 98, 193, 246, 39, 181, 252, 130, 150, 63, 239, 29, 12, 110, 179, 101, 56, 27, 48, 231, 137, 82, 86, 136, 145, 63, 62, 151, 16, 45, 188, 122, 223, 12, 113, 27, 57, 246, 39, 86, 240, 16, 76, 34, 157, 33, 235, 219, 102, 114, 22, 168, 229, 126, 155]), value: EventValue([190, 189, 199, 224, 185, 0, 163, 44, 227, 79]) }, Event { key: EventKey([2, 246, 245, 238, 211, 164, 232, 243, 151, 176, 245, 192, 216, 174, 183, 88, 40, 61, 156, 209, 61, 144, 140, 231, 199, 191, 126, 66, 164, 51, 31, 232, 30, 62, 113, 28, 20, 112, 46, 160, 11, 143, 94, 30, 112, 183, 183]), value: EventValue([5, 118, 72, 71, 34, 17, 35, 101, 40, 66, 131]) }, Event { key: EventKey([82, 42, 23, 79, 230, 56, 18, 119, 104, 43, 115, 6, 179, 78, 203, 55, 254, 214, 34, 121, 198, 227, 23, 229, 251, 154, 134, 12, 190, 165, 44, 166, 27, 89, 83, 124, 62, 41, 206, 251, 126, 136, 48, 45, 112, 84, 38, 179, 252, 207, 151, 167, 180, 199, 57, 116, 78, 94, 156, 56, 64, 244, 69, 250, 234, 204, 73, 3, 22, 89, 241, 29, 170, 81, 158, 247, 100, 200, 200, 159, 145, 191, 96, 151, 172, 104, 54, 226, 90, 12, 88, 236, 255]), value: EventValue([231, 203, 26, 78, 84, 105, 203, 123, 60, 35, 214, 115, 222, 255, 204, 118, 103, 204, 200, 126, 207, 218]) }], receipt: 4135252342 }, TransactionReceipt { tx_hash: [147, 241, 142, 167, 125, 12, 156, 88, 65, 212, 15, 196, 134, 21, 6, 125, 9, 2, 35, 152, 85, 198, 114, 88, 221, 205, 56, 55, 174, 98, 69, 5], body_to_save: Some([251, 180, 84]), events: [], receipt: 1016522422 }], inner: 3225820643 }, BatchReceipt { batch_hash: [40, 160, 122, 243, 161, 212, 26, 99, 174, 199, 63, 251, 106, 205, 250, 217, 120, 166, 22, 51, 35, 187, 224, 248, 145, 197, 132, 119, 174, 130, 192, 150], tx_receipts: [TransactionReceipt { tx_hash: [0, 187, 94, 107, 239, 103, 173, 129, 45, 88, 197, 60, 163, 21, 74, 23, 177, 123, 116, 173, 105, 94, 84, 81, 189, 112, 106, 110, 104, 33, 237, 97], body_to_save: None, events: [Event { key: EventKey([63, 106, 46, 187, 114, 37, 76, 26, 123, 241, 196, 156, 165, 119, 251, 114, 127, 26, 90, 113, 132, 184, 77, 70, 122, 45, 166, 57, 24, 112, 194, 152, 159, 196, 69, 139, 76, 119]), value: EventValue([117, 37, 134, 140, 16, 118, 215, 174, 192, 140, 247, 225, 251, 94, 215, 145, 70, 221, 79, 208, 165, 182, 183, 1, 166, 249, 14, 129, 247, 254, 142, 95, 28, 67, 113, 179, 171, 89]) }, Event { key: EventKey([77, 44, 90, 90, 238]), value: EventValue([248, 34, 25, 174, 147, 81]) }, Event { key: EventKey([98, 94, 173, 164, 210, 205, 47, 202, 59, 57, 248, 94, 246, 46, 183, 189, 240, 103, 21, 159, 163, 60, 233, 91, 8, 184, 217, 62, 115, 29, 71, 156, 159, 41, 57, 245, 36, 184, 162, 147, 123, 11, 171, 152, 176, 1, 26, 11, 240, 222, 137, 120, 25, 122, 235, 76, 43, 60, 204, 188, 98, 24, 113, 104, 201]), value: EventValue([102, 137, 116, 14, 132, 245, 49, 255, 142, 4, 187, 24, 140, 249, 70, 227, 199, 200, 164, 220, 209, 158, 213, 165, 168, 193, 63, 161, 74, 148, 9, 164, 44, 166, 230, 232, 128, 243, 255, 143, 74, 81, 68, 131, 118, 162, 190, 201, 185, 76, 95, 217]) }, Event { key: EventKey([48, 208, 20, 41, 68, 153, 117, 103, 61, 209, 1, 127, 206, 87, 190, 252]), value: EventValue([202, 252, 63, 196, 94, 140, 172, 22, 116, 18, 203, 36, 33, 98, 221, 138, 169, 108, 8, 22, 177, 173, 4, 159, 83, 158, 66, 139, 208, 137, 135, 190, 244, 10, 244, 86, 27, 53, 90, 8, 144, 247, 112, 156, 119, 252, 205, 187, 27, 127, 105, 25, 34, 198, 2, 245, 9, 38, 39, 73, 153, 186, 201, 88, 207, 188, 109, 167, 14, 16, 238, 253, 81, 1, 88, 243, 173, 159, 24, 15, 95, 153, 36, 155, 27, 162, 73, 38, 241, 91, 10, 209, 227, 34, 210, 2, 132]) }, Event { key: EventKey([194, 109, 70, 207, 247, 225, 240, 139, 18, 24, 107, 171, 114, 104, 243, 48, 199, 30, 83, 164, 146, 3, 72, 101, 168]), value: EventValue([148, 200, 148, 43, 125, 5, 103, 60, 40, 211, 156, 65, 231, 41, 23, 190, 129, 183, 253, 240, 127, 165, 63, 255]) }, Event { key: EventKey([161, 238, 20, 185, 90, 66, 108, 5, 21, 23, 32, 55, 216, 24, 101, 249, 198, 173, 126, 41, 49, 196, 2, 189, 142, 99, 10, 145, 32, 172, 174, 6, 181, 70, 163, 84, 183, 220, 21, 150, 106, 86, 58, 11, 23, 10, 104, 36, 31, 189, 135, 221, 244, 138, 224, 245, 214, 99, 161, 105, 77, 226, 113, 245, 217, 108, 128, 58, 142, 234, 33, 140, 155, 62, 247, 33, 23, 231, 204, 97]), value: EventValue([155, 179, 169, 80, 125, 94, 225, 216, 250, 196, 136, 41, 160, 235, 244, 222, 103, 225, 235, 249, 22, 35, 250, 163, 230, 181, 170, 87, 153, 17, 164, 167, 19, 213, 243, 37, 42, 127, 96, 53, 0, 14, 214, 237, 108, 81, 24, 246, 161, 188, 189, 49, 43, 75, 138, 20, 33, 115, 144, 217, 105, 90, 43, 9, 96, 51, 113, 198, 175, 64, 10, 108, 144, 207, 217, 87, 146, 117, 243, 179, 174, 30, 115, 154, 207, 164, 91, 234, 109, 157, 66]) }], receipt: 2201071979 }, TransactionReceipt { tx_hash: [186, 70, 31, 138, 145, 38, 174, 183, 51, 158, 172, 7, 203, 165, 111, 147, 197, 54, 124, 176, 11, 34, 11, 208, 151, 244, 14, 14, 24, 158, 169, 9], body_to_save: Some([92, 187, 97, 154, 180, 149, 187, 18, 161, 4, 72, 68, 191, 127, 110, 185, 38, 21, 149, 99, 76, 24, 58, 196, 3, 19, 30, 81, 78, 187, 225, 232, 199, 13, 213, 68, 240, 121, 206, 246, 206, 162, 146, 215, 64, 25, 39, 147, 199, 69, 230, 42]), events: [Event { key: EventKey([131, 139, 113, 56, 213, 105, 78, 150, 186, 71, 8, 136, 107, 38, 111, 202, 229, 53, 76, 24, 232, 238, 169, 145, 93, 49, 20, 250, 77, 153, 230, 232, 64, 213, 126, 26, 193, 214, 152, 177, 119, 87, 160, 85, 243, 30, 104, 3, 200, 173, 85, 202, 25, 151, 23, 204, 195, 18, 110, 56, 160, 141, 39, 181, 36, 232, 156, 103, 131, 6, 243, 250, 23, 223, 218, 252, 199, 117, 142, 186, 74, 63, 108, 168]), value: EventValue([100, 190, 129, 103, 52, 26, 180, 239, 201, 250, 18, 141, 23, 94, 187, 40, 122, 50, 89, 211, 220, 156, 24, 25, 60, 82, 16, 57, 242, 49, 219, 86, 116, 33, 158, 100, 151, 76, 243, 114, 52, 42, 46, 91, 205, 1, 169, 147, 22, 151, 213, 173, 69, 237, 129, 210, 72, 244, 185, 133, 36, 162, 232, 86, 205, 178, 46, 80, 218, 45, 177, 247, 235, 195, 122, 118, 187, 126, 209, 103, 130, 21, 154, 62, 151, 9, 87, 101, 126, 173, 117, 98, 84, 164, 3, 75]) }, Event { key: EventKey([203, 141, 26, 144, 139, 62, 107, 189, 133, 166, 130, 207, 70, 63, 63, 56, 38, 90, 146, 223, 183, 129, 177, 23, 1, 64, 108, 74, 216, 67, 68, 31, 227, 54, 115, 171, 219, 131, 151, 253, 186, 90, 101, 46, 159, 191, 181, 127, 235, 8, 160, 104, 45, 172, 84, 255, 98, 29, 107, 17, 162, 184, 160, 49, 92, 209, 209, 83, 24, 214, 203, 59, 142, 7, 171, 243, 53, 175, 176, 153, 228, 118, 111, 175, 146, 143, 84, 77, 122, 117, 48, 83, 169, 198, 137, 144, 43, 136]), value: EventValue([86]) }, Event { key: EventKey([133, 39, 93, 211, 133, 141, 103, 145, 142, 216, 67, 156, 7, 217, 164, 248, 166, 150, 122, 144, 123, 24, 181, 102, 158, 122, 103, 160, 104, 47, 159, 168, 88, 95, 228, 104, 214, 126, 60, 145, 234, 46, 162, 145, 221, 200, 193, 22, 49, 66, 193, 0, 240, 134, 86, 247, 183, 159, 31, 153, 10, 152, 124, 74, 152, 36, 134, 146, 246, 40, 103, 151, 207]), value: EventValue([242, 126, 140, 66, 248, 15, 68, 232, 129, 171, 145, 244, 88, 176, 210, 90, 179, 190, 213, 94, 246, 173, 167, 106, 108, 26, 228, 90, 83, 73, 120, 56, 215, 41, 234, 93, 163, 164, 245, 51, 236, 132, 37, 66, 67, 229, 167, 244, 216, 179, 117, 103, 180, 107, 46, 119, 192, 125, 176, 163, 130, 112, 209, 63, 220, 14, 21, 178, 123, 35, 109, 3, 169, 239, 171, 178]) }, Event { key: EventKey([199, 191, 65, 63, 12, 177, 25, 142, 127, 189, 179, 216, 162, 32, 98, 8, 150, 24, 96, 166, 167, 38, 106, 133, 212, 107, 171, 157, 219, 107, 182, 149, 34, 196, 216, 156, 52, 49, 113, 61, 127, 60, 238, 228, 158, 127, 107, 13, 113, 49, 31, 184, 17, 169, 173, 232, 38, 115, 138, 130, 71, 167, 243, 94, 104, 194]), value: EventValue([33, 228, 33, 1, 164, 185, 226]) }, Event { key: EventKey([180, 116, 80, 166, 243, 252, 51, 142, 106, 230, 66, 233, 113, 50, 131, 116, 12, 117, 165, 49, 216, 64, 207, 22, 129, 143, 229, 206, 214, 9, 70, 132, 45, 138, 240, 65]), value: EventValue([252, 37, 25, 209, 190]) }, Event { key: EventKey([129, 148]), value: EventValue([191, 183, 199, 233, 164, 59, 126, 28, 122, 110, 26, 208, 163, 155, 114, 155, 41, 185, 53, 90, 140, 149, 128, 109, 86, 210, 114, 95, 82, 109, 124, 189, 106, 71, 150, 147, 124, 133, 137, 187, 210, 46, 82, 154, 163, 129, 100, 144, 99, 223, 113, 62, 13, 4, 111, 73, 207, 133, 197, 83, 255, 0, 22, 244, 18, 101, 44, 253, 22, 90, 216, 226]) }, Event { key: EventKey([218, 40, 85, 186, 234, 154, 114, 11, 171, 88, 55, 220, 114, 172, 235, 184, 201, 186, 230, 69, 247, 119, 130, 183, 165, 218, 111, 221, 247, 113, 63, 118, 137, 138, 86, 234, 178, 196, 179, 246, 82, 0, 63, 38, 196, 127, 55, 110, 170, 78, 225, 239, 137, 74, 154, 137, 82, 137, 250, 45, 90, 230, 5, 56, 175, 168, 174, 175, 223, 240, 100, 17, 120, 178, 156, 253, 214, 78, 189, 168]), value: EventValue([16, 199, 21, 95, 98, 154, 85, 2, 1, 120, 34, 13, 18, 1, 153, 210, 235, 221, 83, 21, 41, 193, 86, 233, 255, 140, 52, 137, 42, 242, 49, 84, 173, 51, 232, 46]) }, Event { key: EventKey([128, 34, 137, 176, 171, 114, 193, 100, 51, 124, 68, 158, 149, 29, 13, 76, 48, 126, 132, 240, 3, 28, 200, 85, 51, 184, 255, 235, 51, 201, 94, 141, 142, 148, 23, 16, 184, 119, 170, 204, 89, 108, 123, 26, 200, 31, 96, 166, 110, 156, 193, 49, 15, 238, 164, 39, 137, 81]), value: EventValue([70, 30, 127, 67, 86, 196, 19, 42, 169, 245, 101, 244, 75, 43, 151, 203, 201, 112, 23, 172, 137, 46, 196]) }, Event { key: EventKey([19, 166, 59, 116, 91, 97, 102, 239, 144, 101]), value: EventValue([125, 59, 38, 80, 107, 59, 186, 27, 53, 13, 238, 49, 138, 240, 177, 157, 225, 234, 102, 40, 215, 57, 47, 72, 74, 223, 47, 119, 99, 147, 218, 254, 186, 35, 201, 102, 98, 18, 248, 164, 144]) }], receipt: 2001807638 }, TransactionReceipt { tx_hash: [212, 149, 182, 254, 126, 170, 145, 110, 10, 151, 252, 221, 2, 138, 68, 4, 77, 74, 28, 57, 71, 221, 94, 200, 213, 88, 163, 35, 37, 133, 157, 72], body_to_save: Some([189, 163, 193, 51, 165, 85, 27, 181, 137, 15, 74, 101, 34, 216, 124, 39, 231, 114, 45, 251, 245, 178, 184, 59, 255, 160, 217, 54, 79, 251, 152, 214, 188, 230, 43, 117, 219, 193, 166, 146, 37, 227, 52, 142, 45, 239, 146, 207, 175, 119, 93, 11, 128, 182, 230, 225, 180, 24, 203, 115, 239, 63, 125, 188]), events: [Event { key: EventKey([152, 154, 227, 85, 23, 234, 144, 151, 209, 128, 136, 241, 112, 171]), value: EventValue([30, 108, 225, 47]) }], receipt: 415502992 }, TransactionReceipt { tx_hash: [91, 214, 36, 194, 36, 124, 141, 180, 91, 162, 15, 167, 35, 153, 88, 46, 29, 83, 110, 46, 245, 151, 126, 35, 76, 143, 227, 254, 74, 171, 225, 58], body_to_save: Some([77, 173, 61, 166, 41, 103, 57, 45, 55, 209, 141, 176, 64, 67, 207, 149, 185, 228, 226, 175, 63, 38, 34, 177, 165, 10, 98, 157, 195, 147, 53, 199, 55, 202, 1, 146, 25, 79, 74, 24, 195, 69, 225, 174, 118, 25, 30, 127, 47, 68, 172, 96, 152, 182, 108, 242, 212, 191, 134, 100, 34]), events: [Event { key: EventKey([246, 36, 207, 216, 107, 23, 169, 147, 57, 251, 176, 137, 27, 167, 115, 85, 234, 194, 0, 5, 51, 53, 161, 210, 140, 178, 223, 80, 17, 132, 233, 71, 11, 54, 91]), value: EventValue([70, 102, 42, 64, 202, 137, 250, 210, 127, 88, 177, 192, 186, 156, 154, 14, 234, 128, 149, 202, 127, 185, 36, 247, 20, 40, 32, 107, 69, 147, 192, 228, 42, 239, 142, 157, 64, 16, 155, 186, 128, 61, 79, 246, 94, 68, 192, 212, 156, 126, 183, 147, 18, 247, 180, 149, 214, 164, 158, 112, 225, 159, 206, 33, 222, 16, 139, 40, 181, 44, 103]) }], receipt: 2838006238 }, TransactionReceipt { tx_hash: [126, 209, 236, 183, 146, 93, 229, 155, 106, 239, 54, 164, 194, 156, 55, 144, 2, 106, 130, 225, 22, 26, 254, 4, 251, 52, 87, 113, 213, 179, 143, 3], body_to_save: None, events: [Event { key: EventKey([32, 32, 67, 98, 52, 55, 59, 246, 77, 195, 24, 60, 58, 197, 52, 51, 198, 202, 237]), value: EventValue([175, 21, 164, 175, 200, 208, 86, 4, 99, 242, 222, 138, 118, 176, 73, 221, 21, 151, 19, 170, 160, 147, 114, 22, 29, 3, 122, 161, 16, 116, 230, 137, 177, 121, 178, 52, 192, 1, 218, 146, 208, 6, 239, 198, 234, 217, 203, 108, 125, 178, 221, 179, 91, 159, 138, 209, 72, 179, 111, 30, 5, 220, 161, 171, 13, 219, 87, 106, 134, 255, 15, 236, 247, 31, 185, 18, 91, 62, 254, 207, 10]) }, Event { key: EventKey([197, 248, 1, 1, 189, 196, 239, 48, 105, 165, 58, 250, 62, 32, 240, 224, 215, 28, 247, 186, 202, 239, 112, 90, 80, 207, 16, 188, 215, 137, 3, 54, 189, 197, 193, 1]), value: EventValue([66, 53, 120, 81, 96, 64, 169, 128, 60, 159, 200, 243, 134, 248, 30, 243, 87, 108, 91]) }, Event { key: EventKey([174, 26, 205, 51, 29, 22, 168, 25, 219, 207, 226, 129, 185, 217, 203, 126, 2, 135, 64, 147, 126, 204, 59, 120, 21, 32, 97, 76, 28, 216, 181, 43, 27, 169, 90, 50, 58, 20, 60, 59, 47, 24, 50, 9, 195, 64, 147, 245, 229, 108, 171, 175, 241, 31, 65, 135, 122, 84, 252, 167, 56, 143, 196, 133, 11, 18]), value: EventValue([234, 142, 40, 118, 207, 56, 39, 243, 3, 228, 51, 108, 166, 51, 135, 66, 164, 56, 176, 176, 39, 20, 186, 249, 88, 216, 201, 87, 176, 223, 139, 183, 169, 182, 119, 128, 178, 65, 240, 222, 12, 42, 104, 175, 188, 178, 108, 187, 41, 5, 143, 219, 164, 45, 6, 187, 206, 46, 212, 139, 173, 238, 148, 127, 187, 213, 77]) }, Event { key: EventKey([139, 53, 20, 26, 50, 141, 97, 138, 37, 183, 137, 142, 80, 0, 163, 83, 45, 90, 248, 141, 93, 96]), value: EventValue([159, 123, 249, 117, 43, 175, 142, 142, 135, 204, 34, 20, 83, 158, 26, 27, 234, 235, 54, 57, 37, 42, 43, 73, 144, 10, 51, 135, 118, 30, 74, 201, 145, 157, 211, 12, 78, 142, 130, 79, 10, 19, 2, 98, 254, 16, 16, 32, 116, 253, 50, 241, 236, 123, 124, 223]) }], receipt: 3040529298 }, TransactionReceipt { tx_hash: [103, 252, 221, 10, 171, 248, 118, 201, 179, 133, 172, 11, 150, 171, 136, 159, 67, 40, 192, 168, 90, 161, 72, 206, 109, 63, 193, 142, 59, 215, 15, 182], body_to_save: None, events: [Event { key: EventKey([200, 154, 150, 70, 174, 224, 27, 153, 3, 127, 79, 153, 158, 240, 77, 64, 155, 108, 33, 81, 66, 71, 47, 195, 245, 88, 211, 84, 88, 132, 93]), value: EventValue([49, 176, 47, 146, 235, 70, 101, 16, 20, 153, 173, 169, 86, 101, 3, 5, 74, 6, 182, 227, 96, 52, 145, 171, 61, 223, 143, 49, 204, 218, 73, 6, 94, 135, 217, 128, 221, 120, 112, 13, 181, 188, 91, 83, 168, 226, 44, 223, 43, 23, 105, 205, 145, 66, 34, 40, 116, 188, 229, 63, 239, 203, 144, 79, 15, 93, 209, 204]) }, Event { key: EventKey([68, 210, 46, 191, 11, 5, 209, 120, 213, 228, 237, 68, 172, 136, 198, 242, 82, 129, 84, 224, 210, 30, 206, 126, 155, 66, 187, 215, 146, 68, 138, 35, 105, 9, 121, 10, 222, 249, 185, 221, 168, 141, 167, 217, 227, 126, 140, 156, 202, 55, 23, 74, 97, 135, 134, 173, 226, 26, 234, 193, 77, 45, 236]), value: EventValue([192, 199, 231, 111, 6, 213, 179, 13, 167, 28, 202, 80, 248, 86, 86, 208, 244, 175, 12, 100, 151, 111, 204, 161, 129, 171, 241, 129, 218, 206, 54, 52, 189, 146, 221, 221, 155, 167, 127]) }, Event { key: EventKey([238, 6, 44, 216, 234, 111, 154, 125, 156, 154, 16, 96, 213, 21, 228, 6, 152, 187, 157, 181, 161, 125, 212, 107, 160, 13, 235, 42, 41, 10, 71, 132, 244, 169, 53, 207, 135, 64, 192, 43, 64, 240, 113, 190, 175, 228, 92, 156, 219, 133, 3, 124, 83, 171, 110, 107, 242, 19, 0, 191, 165, 73, 145, 36, 206, 70, 228, 121, 173, 189, 192, 98, 179, 171, 21, 176, 75]), value: EventValue([189, 148, 183, 190, 91]) }], receipt: 3975346080 }, TransactionReceipt { tx_hash: [53, 239, 211, 12, 5, 60, 86, 0, 115, 188, 115, 185, 95, 70, 149, 13, 48, 43, 51, 7, 63, 214, 158, 89, 240, 20, 151, 79, 10, 217, 21, 131], body_to_save: Some([111, 198, 229, 132, 179, 252, 25, 79, 111, 175, 206, 94, 148, 104, 226, 23, 251, 231, 13, 71, 189, 140, 139, 91, 94, 41, 130, 49, 255]), events: [Event { key: EventKey([15, 18, 134, 81, 146, 127, 43, 197, 240, 218, 109, 13, 39, 157, 147, 49, 83, 134, 179, 248, 85, 3, 24, 57, 92, 206, 139, 6, 111, 136, 102, 2, 246, 155, 187, 148, 222, 110, 145, 84, 104, 220, 70, 178, 206, 67, 1, 89, 210, 225, 126, 210, 32, 85, 193, 254, 166, 100, 155, 223, 69, 212, 192, 170, 11, 2, 115, 108, 135, 189, 51, 241, 47, 4, 15, 28, 90, 126, 114, 236, 96, 194, 162, 38, 34, 126, 8, 9, 47, 245, 133, 81, 52]), value: EventValue([47, 78, 114, 117, 254, 34, 69, 1, 151, 208, 160, 39, 220, 102, 149, 8, 183, 19, 115, 220, 79, 138, 151]) }, Event { key: EventKey([163, 246, 194, 124, 184, 26, 116, 153, 179, 157, 122, 206, 183, 95, 235, 255, 146, 201, 234, 39, 219, 199, 77, 160, 154, 216, 23, 112, 159, 139, 169, 250, 88, 155, 87, 230, 123, 123, 91, 85, 62, 117, 111, 170, 132, 175, 39, 149, 232, 65, 98, 91, 208]), value: EventValue([12, 122, 220, 44]) }, Event { key: EventKey([25, 154, 22, 75, 201, 190, 163, 107, 246, 65, 207, 159, 235, 107, 4, 139, 38, 58, 130, 87, 26, 38, 134, 116, 59, 188, 218, 147, 71, 144, 106, 48, 57, 152, 250, 178, 69, 114, 254, 25, 115, 151, 186, 37, 128, 1, 116, 152, 51, 113, 145, 187, 87, 236, 65, 6, 114, 121, 251, 3, 77, 158, 202, 53, 71, 200, 198, 71, 94, 204, 19, 144, 111, 182, 108, 157, 100, 18, 240, 148, 79, 121, 177, 46, 146, 228, 103, 22, 202]), value: EventValue([248, 57, 214, 34, 51, 215, 130, 93, 198, 140, 84, 60, 49, 163, 75, 165, 28, 218, 248, 129, 236, 227, 32, 7, 39, 138, 162, 224, 124, 13, 192, 218, 34, 189, 193, 19, 93, 124, 250, 158, 220, 1, 36, 89, 204, 109, 164, 124, 69, 231, 14, 29, 79, 199, 233, 90, 189, 127, 103]) }], receipt: 723563814 }], inner: 2259409094 }, BatchReceipt { batch_hash: [83, 221, 102, 34, 136, 82, 186, 47, 44, 245, 24, 217, 103, 207, 21, 211, 182, 239, 117, 169, 249, 116, 11, 250, 251, 214, 68, 236, 22, 72, 150, 107], tx_receipts: [], inner: 559098458 }, BatchReceipt { batch_hash: [251, 120, 51, 251, 119, 153, 155, 221, 83, 194, 108, 254, 179, 151, 236, 98, 3, 213, 128, 239, 161, 48, 32, 125, 222, 155, 158, 83, 216, 193, 138, 16], tx_receipts: [TransactionReceipt { tx_hash: [176, 86, 95, 224, 171, 217, 232, 88, 114, 212, 138, 230, 92, 24, 124, 178, 126, 171, 34, 190, 178, 198, 227, 4, 195, 192, 90, 34, 186, 153, 59, 196], body_to_save: None, events: [Event { key: EventKey([226, 114, 72, 234, 131, 106, 122, 27, 21, 113, 246, 34]), value: EventValue([215, 119, 59]) }, Event { key: EventKey([247, 220, 194, 214, 248, 150, 26, 118, 16, 71, 69, 87]), value: EventValue([107, 116, 145, 140, 3, 140, 151, 204, 184, 48, 223, 232, 82, 93, 106, 35, 6, 141, 8, 199, 150, 14, 8, 96, 161, 73, 167, 159, 216, 160, 197, 100, 193, 76, 80, 93, 242, 13, 236, 0, 187, 194, 13, 9, 18, 241, 82, 7, 104, 35, 95, 33, 207, 116, 199, 102, 240, 87, 127, 7, 108, 85, 185, 150, 160, 78, 197, 245, 110, 4, 112, 237, 132, 137, 159, 157, 57, 177, 0, 201, 174, 192, 154, 3, 194, 70, 34]) }, Event { key: EventKey([139, 150, 171, 148, 69, 92, 161, 134, 131, 197, 104, 240, 140, 208, 80, 94, 62, 10, 185, 9, 217, 109, 136, 37, 35, 110, 69, 138, 245, 224, 240, 39, 172, 214, 156, 136, 104, 51, 87, 5, 251, 107, 51, 85, 213, 14, 40, 201, 188, 117, 78, 88, 87, 1, 243]), value: EventValue([97, 189, 230, 106, 52, 245, 60, 221, 49, 147, 214, 50, 200, 64, 52, 31, 92, 21, 41, 159, 136, 229, 180, 202, 225, 1, 133, 233, 20, 24, 47, 200, 90, 43, 134, 112, 33, 86, 134, 137, 85, 159, 150, 201, 132, 248, 90, 160, 185, 71, 191, 207, 145, 89, 173, 188, 183, 86, 85, 122, 64, 66, 126, 13, 131, 250, 230, 188, 126, 206, 235, 25, 131, 159, 109, 102, 70, 211, 52, 246, 105, 33, 62, 227]) }, Event { key: EventKey([213, 203, 175, 44, 182, 57, 171, 128, 34, 81, 17, 173, 157, 149, 33, 80, 136]), value: EventValue([]) }], receipt: 2689991846 }, TransactionReceipt { tx_hash: [21, 70, 98, 178, 99, 37, 179, 229, 12, 202, 224, 204, 215, 33, 193, 66, 85, 128, 206, 203, 91, 10, 221, 7, 156, 102, 205, 56, 47, 161, 25, 26], body_to_save: None, events: [], receipt: 4071933023 }, TransactionReceipt { tx_hash: [242, 205, 208, 47, 37, 104, 188, 146, 255, 17, 35, 34, 234, 242, 136, 126, 9, 154, 78, 243, 229, 194, 13, 217, 213, 184, 211, 50, 92, 146, 210, 35], body_to_save: None, events: [Event { key: EventKey([195, 17, 70, 109, 81, 56, 211, 173, 244, 124, 115, 226, 248, 198, 233, 173, 194, 52, 229, 51, 234, 201, 9, 12, 255, 116, 210, 32, 213, 145, 58, 58, 175, 106, 136, 24, 239, 61, 103, 228, 51, 58, 106, 193, 127, 249, 177, 80, 132, 23, 77, 35, 246, 43, 36, 127, 115, 195, 5, 7, 33, 24, 27, 159, 41, 135, 164, 47, 236, 167, 118, 35, 243, 222, 167, 171, 82, 42, 1, 161, 9, 7, 215, 54, 121, 95, 10, 159, 205, 65, 214, 59, 222, 87, 144, 158, 195, 62]), value: EventValue([136, 248, 195, 201, 78, 106, 104, 240, 48, 101, 42, 125, 31, 232, 228, 141, 41, 255, 119, 221, 225, 238, 181, 125, 87, 180, 1, 17, 203, 177, 245, 127, 11, 204, 149, 200, 7, 27, 79, 200, 197, 250, 86, 165, 13, 204, 60, 204, 32, 69, 219, 250, 23, 180, 161, 34, 184, 154, 182, 210, 5, 216, 248, 104]) }, Event { key: EventKey([224, 29, 208, 230, 115, 252, 193, 164, 86, 162, 50, 85, 47, 247, 27, 81, 237, 119, 37, 74, 243, 198, 60, 206, 171, 230, 36, 225, 95, 109, 221, 159, 185, 202, 106, 92, 162, 113, 90, 245, 40, 174, 36, 85, 97, 204, 157, 254, 161, 236, 180, 69, 98, 67, 105, 154, 163, 189, 160, 121, 144, 65, 143, 177, 242, 247, 178, 114, 243, 137, 67, 8, 171]), value: EventValue([8, 36, 205, 193, 228, 58, 59, 99, 193, 0, 177, 184, 216, 190, 121, 117, 58, 60, 172, 187, 227, 201, 128, 158, 200, 147, 132, 146, 72, 207, 252, 81, 37, 218, 193, 193, 15, 127, 212, 67, 35, 12, 240, 242, 77, 174, 49, 49, 93, 96, 247, 132, 101, 112, 105, 232, 82]) }, Event { key: EventKey([118, 187]), value: EventValue([178]) }, Event { key: EventKey([27, 27, 229, 154, 13, 253, 183, 90, 45, 172, 53, 15, 158, 127, 165, 102, 11, 64, 109, 86, 103, 120, 179, 174, 26, 164, 232, 136, 110, 75, 44, 66, 137, 159, 83, 82, 247, 240, 59, 157, 96, 180, 247, 30, 191, 238, 49, 8, 63, 232, 238, 105, 127, 54, 64, 28, 144, 231, 75, 166, 184, 213, 40, 108, 25, 111, 218, 39, 192, 139, 143, 99, 100, 50, 137, 83, 76, 169, 6, 178, 153, 52, 156, 96, 198, 240, 80, 17, 235, 244, 193, 183, 194]), value: EventValue([228, 111, 39, 16, 176, 197, 142, 194, 123, 177, 171, 171, 52, 118, 30, 82, 80, 33, 208, 55, 192, 79, 26, 114, 99, 88, 200, 219, 2, 65, 230, 234, 116, 63, 251, 157, 97, 234, 47, 32, 134, 37, 24, 46, 69, 206, 90, 15, 232, 68, 122, 48, 226, 11, 100, 30, 124, 187, 119]) }, Event { key: EventKey([89, 163, 197, 23, 3, 213, 99, 192, 202, 168, 204, 13, 209, 221, 106, 200, 25, 20, 180, 249, 81, 104, 115, 14, 111, 62, 245, 56, 116, 11, 206, 0, 30, 126, 102, 152, 195, 122, 201, 17, 235, 252, 183, 135, 244, 216, 47, 35, 19, 152, 194, 134, 96, 174, 100, 200, 253, 27, 240, 44, 191, 37, 118, 0, 68, 184, 39, 82, 215, 156, 240, 30, 116, 69, 129, 168, 79, 101, 120, 97, 204, 253, 70, 14, 58, 38, 46, 11, 14, 154, 191, 110, 54]), value: EventValue([164, 55, 63, 153, 150, 43, 39, 66, 251, 252, 52, 50, 32, 157, 54, 8, 116, 140, 21, 22, 55, 87, 198, 42, 14, 78, 36, 21, 20, 58, 147, 82, 10, 36, 152, 119, 206, 182, 228, 229, 223, 237, 227, 253, 48, 197, 212, 125, 156, 196, 53, 103, 128, 217, 190, 122, 111, 187, 177, 174, 197, 122, 36]) }], receipt: 3962462554 }, TransactionReceipt { tx_hash: [48, 219, 237, 122, 222, 111, 165, 151, 129, 184, 28, 67, 71, 244, 229, 35, 177, 245, 80, 217, 242, 30, 244, 103, 11, 75, 81, 206, 58, 98, 52, 76], body_to_save: None, events: [Event { key: EventKey([43, 46, 156, 239, 47, 36, 63, 47, 55, 8, 125, 120, 162, 17, 111, 71, 176, 166, 21, 207, 174, 61, 206, 179, 60, 212, 241, 181, 10, 41, 189, 82, 120, 244, 159, 55, 64, 229, 112, 255, 229, 113, 7, 104, 60, 44, 22, 171, 148, 83, 35, 14, 43, 33, 119, 143, 86, 209, 242, 96, 120, 213, 157, 229, 254, 82, 193, 228, 118, 26, 239, 126, 117, 135, 147, 101, 9, 26, 191, 212, 206]), value: EventValue([86, 17, 209, 217, 53, 192, 20, 76, 112, 182, 141, 216, 118, 83, 235, 151, 147, 117, 57, 220, 99, 245, 113, 89, 229, 196, 199, 235, 119, 77, 21, 181, 201, 247, 180, 121, 103, 36, 76, 2, 142, 183, 75, 196, 158, 238, 60, 47, 212, 82, 145, 69, 42, 29, 180, 165, 21, 194, 69, 92, 133, 212, 228, 87, 175, 190, 73, 12, 51, 227, 127, 137, 174, 39, 183, 136, 60, 173, 31, 28, 0, 86, 211, 103, 13, 122, 122]) }, Event { key: EventKey([37, 113, 88, 209, 18, 182, 102, 202, 142, 254, 165, 35, 254, 78, 239, 176, 140, 40, 110, 192, 197, 54, 128, 163, 28, 254, 81, 24, 132, 145, 82, 16, 152, 235, 120, 40, 219, 11, 109, 72, 255, 162, 192, 168, 19, 0, 219, 235, 229, 13, 147, 175, 103, 199, 232, 141, 100, 5, 44, 84, 116, 138, 69, 230, 245, 14, 193, 195, 17, 191, 250, 162, 92, 10]), value: EventValue([227, 12, 178, 193, 109, 118, 182, 60, 196, 123, 103, 98, 10, 32, 251, 45, 54, 135, 144, 65, 183, 34, 40, 203, 2, 128, 85, 111, 249, 17, 74, 243, 137, 47, 147, 53, 194, 56, 69, 138, 88, 72, 242, 54, 66, 9, 237, 177, 8, 187, 137, 132, 224, 224, 251, 3, 40, 36, 65, 16, 123, 238, 195, 77, 225, 74, 9, 3, 115, 148, 58, 46, 75, 23, 14, 149, 90, 89, 63, 83, 32, 227, 188, 144, 183, 198]) }, Event { key: EventKey([203, 148, 78, 170, 214, 241, 107, 146, 240, 144, 186, 74, 38, 144, 22, 204, 92, 23, 158, 210, 9, 184, 104, 61, 13, 14, 120, 250, 29, 177, 163, 162, 34, 106, 39, 174, 186, 27, 251, 151, 203, 201, 216, 102, 205, 100, 247, 89, 94, 118, 129, 143, 246, 244, 122]), value: EventValue([224, 26, 133, 194, 83, 123, 84, 84, 123, 16]) }, Event { key: EventKey([132, 40, 146, 5, 160, 91, 84, 203, 228, 169, 99, 191, 47, 91, 185, 95, 136]), value: EventValue([210, 4, 163, 171, 51, 119, 30, 132, 81, 252, 158, 77, 123, 204, 170, 240, 133, 44, 2]) }, Event { key: EventKey([15, 148, 229, 138, 204, 12, 96, 159, 107, 195, 21, 45, 123, 10, 123, 106, 242, 228, 211, 201, 153, 17, 72, 108, 71, 130, 225, 128, 60, 37, 179, 44, 64, 73, 95, 186, 41, 75, 171, 227, 109, 152, 22, 51, 181, 187, 125, 135, 140, 74, 208, 27, 24, 223, 170, 85, 127, 191, 63, 119, 26, 51, 89, 160, 192, 242, 97]), value: EventValue([172, 31, 217, 190, 221, 69, 15]) }, Event { key: EventKey([234, 8, 65, 61, 64, 53, 168, 149, 79, 7, 136, 131, 254, 100, 23, 35, 151, 194, 170, 38, 80, 232, 234, 38, 216, 239, 125, 44, 113, 99, 162, 191, 68, 241, 24, 81, 109, 238, 149, 14, 69, 31, 245, 12, 179, 4, 126, 168, 134, 245, 213, 93, 243, 162, 70, 5, 36, 173, 152, 235, 23, 82, 0, 231, 207, 1, 152, 194, 143, 46, 110, 149, 185, 137, 68, 23, 127, 212, 163, 236, 63, 1, 244, 187, 163, 148, 45, 69, 70, 159, 66, 50, 15, 162, 8, 1]), value: EventValue([109, 170, 146, 204, 158, 250, 52, 32, 161, 232, 57, 25, 54, 117, 107, 96, 37, 61, 28, 120, 141, 147, 209, 34, 196, 7, 77, 76, 232, 139, 129, 86, 110, 174, 57, 35, 202, 135, 119, 213, 67, 200, 195, 173, 6, 165, 221, 110, 240, 72, 147, 149, 165, 167, 154, 1, 4, 163, 206, 237, 161, 51, 63, 42, 138, 253, 135, 142, 71, 159, 70, 129, 177, 7, 230, 45, 172, 163, 134, 212]) }, Event { key: EventKey([154]), value: EventValue([6, 101, 163, 163, 236, 232, 83, 207, 9, 13, 149, 34, 208, 40, 234, 30, 169, 109, 213, 185, 254, 203, 112, 137, 99, 45, 74, 204, 50, 32, 196, 151, 108, 36, 116, 203, 101, 77, 184, 158, 46, 20, 211, 182]) }], receipt: 497574748 }, TransactionReceipt { tx_hash: [46, 45, 45, 247, 117, 209, 71, 194, 87, 232, 223, 167, 34, 252, 200, 98, 173, 236, 209, 97, 34, 149, 102, 70, 124, 158, 154, 144, 9, 199, 19, 155], body_to_save: Some([3, 24, 133, 136, 107, 162, 86, 234, 41, 128, 142, 150, 207, 236, 151, 57, 27, 27, 202, 231, 245, 170, 98, 6, 101, 127, 159, 224, 2, 173, 27, 28, 210, 75, 179, 181, 58, 90, 37, 163, 189, 184, 32, 35, 30, 161]), events: [Event { key: EventKey([203, 148, 199, 241, 174, 126, 184, 238, 163, 111, 63, 126, 198, 30, 115, 17, 253, 7, 238, 213, 240, 9, 147, 177, 52, 88, 195, 183, 140, 24, 79, 213, 164, 235, 79]), value: EventValue([130, 31, 51, 58, 19, 78, 173, 116, 15, 152, 13, 53, 213, 52, 187, 134, 184, 187, 41, 124, 207, 60, 44, 145, 181, 32, 194, 147, 194, 201, 13, 242, 90, 218, 190, 94, 235, 227, 102, 115, 99, 198, 91, 2, 22, 249, 0, 254, 43, 173, 75, 11, 141, 181, 116, 118, 0, 243, 239]) }, Event { key: EventKey([47, 124, 163, 182, 121, 161, 72, 255, 90, 13, 104, 148, 63, 113, 17, 192, 122, 56, 178, 252, 224, 192, 209, 59, 194, 111, 103, 245, 36, 108, 104, 110, 176, 31, 173, 18, 33, 4, 128, 175, 65, 172, 80, 21, 73, 229, 65, 52, 77]), value: EventValue([210, 60, 162, 6, 4, 121, 162, 199, 42, 108, 255, 63, 4, 213, 119, 50, 143, 133, 46, 181, 87, 13, 186, 0, 133, 3, 96, 57, 241, 155, 134, 174, 209, 106]) }, Event { key: EventKey([27, 1, 52, 210, 54, 51, 178, 82, 12, 131, 147, 173, 229, 95, 201, 18, 129, 224, 44, 194, 123, 189, 229, 221, 74, 9, 98, 163, 170, 156, 3, 186, 95, 48, 232, 190, 212, 186, 128, 102, 58, 236, 179, 93, 44, 57, 155, 239, 99, 41, 146, 254, 116, 219, 8, 1, 104, 189, 144, 46]), value: EventValue([61, 139, 116, 106, 167, 54, 152, 127, 3, 160, 147, 72, 57, 152, 38, 55, 65, 214, 161, 140, 248, 209, 188, 112, 209, 14, 73, 90, 42]) }, Event { key: EventKey([152, 42, 160, 213, 47, 5, 13, 128, 70, 107, 31, 196, 184, 112, 164, 165, 120, 27, 226, 6, 155, 224, 203, 99, 86, 0, 202, 2, 53, 126, 122, 230, 49, 208, 243, 157, 193, 178, 171, 166, 215, 86, 28, 235, 88, 233, 162, 123, 36, 65, 231, 132, 168, 101, 61, 204, 115, 230, 126, 43, 194, 192, 46, 213, 139, 191, 25, 89, 167, 34, 124, 18, 165, 19, 247, 111]), value: EventValue([41, 186, 49, 199, 105, 236, 10, 123, 88, 32, 219, 40, 206, 112, 83, 12, 88, 246, 18, 24, 44, 34, 9, 230, 237, 177, 34, 97, 182, 169, 136, 161, 117, 248, 92, 129, 24, 95, 227, 46, 39, 239, 172]) }], receipt: 2521333959 }, TransactionReceipt { tx_hash: [113, 118, 149, 220, 254, 220, 101, 158, 57, 248, 244, 198, 25, 79, 20, 27, 254, 65, 207, 72, 69, 167, 203, 200, 178, 65, 54, 138, 97, 87, 235, 151], body_to_save: None, events: [Event { key: EventKey([236, 199, 181, 114, 76, 75, 233, 233, 143, 237, 129, 109, 241, 29, 201, 188, 187, 180, 29, 3, 131, 141, 229, 145, 156, 48, 240, 151, 165, 148, 167, 183, 82, 226, 119, 12, 182, 38, 177, 157, 111, 123, 59, 209, 150, 197, 220, 172, 201, 132, 112, 70, 137, 117, 6, 64, 21, 45, 51, 90, 155, 41, 38, 119, 248, 225, 9, 111, 139, 107, 17, 55, 144, 97, 71, 179, 85, 252, 89, 217, 77, 190, 73, 102, 57, 131, 31, 59, 199, 26, 104, 222]), value: EventValue([48, 78, 242, 108, 144, 150, 111, 101, 145, 13, 150, 119, 45, 57, 10, 39, 63, 30, 95, 47, 122, 116, 254, 146, 49, 198, 115, 168, 198, 148, 66, 199, 153, 32, 13, 155, 218, 138, 140, 118, 175, 192, 5, 140, 12, 102, 154, 120, 5, 146, 226, 130, 73, 230, 206, 161, 126, 24, 3, 145, 181, 63]) }, Event { key: EventKey([82, 117, 92, 70, 233, 177, 201, 69, 203, 239, 195, 220, 119, 136, 145, 107, 183, 159, 230, 28, 182, 92, 71, 95, 247, 228, 243, 200, 136, 86, 71, 108, 198, 203, 235, 74, 113, 26, 190, 188, 67, 68, 37, 169, 7, 236, 225, 66, 116, 130, 4, 170, 193, 165, 204, 61, 56, 54, 29, 121, 127, 79, 232, 175, 90, 153, 70, 159, 146, 91, 127, 53, 121, 9, 198, 56, 160, 34, 178, 237, 137, 81, 68, 107, 34, 245, 232, 127]), value: EventValue([54, 146, 82, 221, 212, 94, 47, 189, 110, 185, 152, 250, 65, 19, 187, 56, 102, 31, 33, 133, 63, 226]) }, Event { key: EventKey([132, 23, 193, 172, 118, 118, 95, 42, 32, 47, 55, 225, 126, 152, 94, 156, 194, 79, 66, 134, 4, 40, 250, 168, 76, 249, 1, 87, 121, 13, 215, 141, 135, 189, 139, 61, 194, 251, 124, 180, 114, 134, 151, 222, 209, 245, 66, 206, 138, 237, 37, 116, 132, 107, 109, 165, 116, 110, 166]), value: EventValue([221, 75, 174, 190, 142, 199, 229, 77, 56, 147, 0, 40, 198, 229, 72, 110, 155, 17, 132, 68, 106, 58, 6, 153, 13, 49, 148, 89, 84, 81, 225, 165, 77, 93, 150, 214, 34, 82, 233, 50, 80, 68, 170, 73, 183, 151, 31, 113, 123, 69, 132, 73, 117, 78, 85, 185, 118, 26, 90, 131, 33, 151, 164, 60, 152, 184, 75, 34]) }, Event { key: EventKey([103, 12]), value: EventValue([240, 216, 111, 217, 51, 92, 155, 147, 45, 8, 224, 49, 109, 168, 83, 45, 31, 202, 61, 208, 62, 230]) }, Event { key: EventKey([193, 99, 98, 62, 218, 79, 69, 227, 39, 87, 210, 209, 74, 11, 68, 44, 170, 155, 57, 51, 191, 177, 93, 120, 215, 175, 182, 76, 224, 76, 95, 125, 134, 83, 165, 155, 136, 197, 65, 242, 93, 126, 100, 22, 85, 62, 31, 238, 65, 115, 140, 34, 127, 207, 0, 7, 237, 241, 68, 68, 227, 155, 69, 60, 169, 179, 182, 32]), value: EventValue([87, 36, 172, 147, 119, 233, 60, 250, 238, 183, 54, 191, 239]) }, Event { key: EventKey([43, 79, 211, 46, 105, 137, 202, 10, 48, 25, 57, 43, 43, 222, 238, 62, 114, 51, 106, 190, 50, 237, 160, 130, 25, 195, 32, 26, 179, 200, 101, 36]), value: EventValue([131, 100, 99, 136, 217, 192, 5, 173, 241, 151, 75, 140, 205, 12, 190, 149, 186, 161, 84, 129, 54, 153, 40, 224, 100, 243, 194, 206, 249, 111, 236, 226, 221, 79, 87, 101, 52, 234, 77, 124, 187, 2, 74, 142, 249, 59, 252, 43, 240, 89, 115, 241, 149, 163, 196, 49, 124, 237, 194, 34, 133, 60, 95, 108, 28, 235, 243, 10, 215, 100, 245, 36, 186, 157, 120, 201, 165, 112, 150, 237, 76, 53, 142, 199, 153, 18, 150, 144]) }, Event { key: EventKey([188, 172, 170, 134, 231, 245, 115, 137, 254, 102, 208, 249, 137, 163, 32, 142, 130, 114, 86, 6, 118, 52, 187, 134, 16, 219, 86, 88, 188, 82, 223, 83, 20, 138, 214, 165, 5, 170, 111, 164, 238, 212, 185, 16, 55, 142, 147, 142, 40, 197, 204, 164, 130, 209, 78, 240, 42, 170, 43, 177, 190, 182, 58, 125, 243, 32, 75, 144, 251, 81, 95, 202, 95]), value: EventValue([183, 215, 85, 117, 92, 234, 23, 8, 41, 21, 105, 131, 118, 151, 34, 212, 194, 157, 18, 51, 82, 133, 134, 213, 167, 37, 82, 150, 231, 199, 182, 207, 152, 68, 220, 132, 16, 25, 184, 211, 47, 239, 34, 117, 95, 151, 68, 190, 112, 31, 66, 66, 70, 200]) }], receipt: 569806462 }], inner: 3391703739 }, BatchReceipt { batch_hash: [230, 224, 252, 212, 106, 42, 16, 71, 233, 75, 66, 76, 204, 112, 199, 232, 164, 153, 154, 143, 181, 95, 32, 156, 12, 39, 87, 16, 9, 50, 86, 103], tx_receipts: [TransactionReceipt { tx_hash: [13, 46, 243, 145, 18, 125, 75, 100, 42, 70, 169, 118, 180, 57, 53, 241, 211, 143, 251, 143, 62, 179, 63, 220, 30, 138, 31, 100, 61, 134, 107, 134], body_to_save: Some([158, 89, 136, 183, 35, 10, 219, 60, 160, 14, 102, 0, 213, 24, 106, 112, 102, 231, 183, 12, 235, 21, 124, 39, 218, 179, 91, 88, 206, 52, 207, 129, 26, 79, 31, 2, 29, 27, 223, 74, 198, 156, 108, 189, 31, 202, 160, 97, 10, 120, 254, 207, 47, 158, 5, 8, 217, 159, 142, 179, 252, 140, 232]), events: [Event { key: EventKey([0, 98, 150, 188, 220, 49, 221, 38, 217, 131, 174, 203]), value: EventValue([225, 169, 205, 52, 105, 33, 255, 71, 207, 201, 72, 23, 128, 108, 55, 27, 166, 61, 90, 4, 75, 28, 122, 233, 24, 93, 200, 166, 132, 54, 128, 53, 47, 120, 126, 16, 40, 84, 205, 3, 227, 69, 51, 95, 226, 96, 74, 224, 2, 69, 80, 108, 111, 41, 190, 122]) }, Event { key: EventKey([130, 242, 116, 42, 107, 244, 254, 155, 130, 146, 207, 211, 52, 81, 166, 154, 1, 13]), value: EventValue([190, 202, 239, 207, 105, 149, 203, 16, 245, 55, 18, 173, 192, 204, 131, 19, 163, 176, 241, 241, 71, 161, 228, 234, 181, 141, 83, 115, 81, 85, 194, 216, 116, 89, 163, 207, 196, 2, 167, 186, 131, 205, 213, 109, 217, 243, 69, 18, 157]) }, Event { key: EventKey([204, 23, 20, 93, 234, 237, 178, 130, 88, 151, 100, 45, 178, 213, 52, 173, 197, 151, 53, 30, 112, 246, 192, 34, 225, 152, 218, 220, 176, 135, 247, 211, 177, 163, 87, 52, 183, 172, 168, 76, 161, 140, 89, 98, 239, 201, 128, 186, 97, 34, 20, 133, 120, 15, 120, 40, 93, 150, 53, 212, 194, 126, 160, 137, 185, 112, 61, 142, 177, 184, 119, 19, 106, 84]), value: EventValue([9, 33, 15, 60, 220, 76, 86, 234, 16, 249, 164, 229, 212, 94, 133, 181, 52, 40, 48, 166, 253, 138, 146, 47, 197, 246, 158, 227, 24, 173, 254, 164, 85, 224, 62, 56, 202, 143, 190, 38, 32, 187, 96, 137, 22, 74, 233, 69, 45, 5, 156, 198, 163, 233, 176, 177, 134, 59, 246, 237, 228, 123, 84, 52, 167, 158, 81, 221, 44, 176, 158, 172, 71, 213, 214, 84, 212, 214, 210, 161, 81, 189, 7, 104, 239, 169, 60, 76]) }, Event { key: EventKey([85, 209, 189, 77, 119, 8, 29, 48, 105, 130, 19, 205, 143, 32, 223, 96, 189, 110, 133, 160, 159, 68, 0, 70, 255, 36, 217, 5, 46, 18, 136]), value: EventValue([227, 154, 232, 99, 23, 130, 86, 75, 185, 47, 245, 103, 169, 119, 80, 140, 17, 85, 55, 89, 140, 181, 219, 82, 172, 0, 88, 151, 88, 127, 123, 204, 248, 93, 219, 112, 6, 21, 4, 3, 168, 148, 5, 85, 126, 201, 6, 185, 77, 122, 158, 120, 94, 179, 240, 230, 89, 18, 212, 234, 113, 252, 249, 160, 247, 192, 140, 103, 189, 30, 77, 52, 47, 204, 86, 65, 216, 209, 200, 69, 167, 9, 236, 176, 233, 37, 224, 228, 229, 208, 107, 205, 144, 145]) }, Event { key: EventKey([181, 90, 64, 247, 208, 165, 121, 52, 251, 11, 215, 90, 190, 231, 199, 145, 185, 16, 59, 57, 137, 105, 73, 179, 182, 58, 173, 38, 69, 5, 7, 217, 178, 118, 54, 173, 147, 25, 16, 252, 101, 227, 132, 26, 170, 221, 204, 41, 171, 153, 38, 203, 192]), value: EventValue([211, 143, 50, 204, 5, 44, 60, 91, 107, 108, 247, 234, 7, 100, 126]) }], receipt: 3749807815 }, TransactionReceipt { tx_hash: [21, 146, 71, 36, 17, 12, 7, 11, 100, 121, 168, 114, 98, 127, 90, 191, 10, 244, 144, 213, 214, 244, 33, 205, 158, 12, 156, 37, 35, 95, 118, 251], body_to_save: Some([132, 89, 15, 182, 153, 253, 171]), events: [], receipt: 3131340432 }, TransactionReceipt { tx_hash: [35, 39, 40, 123, 251, 230, 160, 255, 149, 10, 23, 88, 181, 237, 187, 220, 195, 204, 221, 156, 174, 120, 9, 146, 44, 100, 147, 6, 109, 173, 39, 69], body_to_save: None, events: [Event { key: EventKey([33, 227, 231, 242, 134, 101, 34, 87, 38, 9, 155, 208, 34, 251, 182, 57, 12, 70, 115, 79, 24, 144, 109, 33, 163, 128, 100, 248, 79, 35, 231, 31, 204, 77, 212, 24, 205]), value: EventValue([141, 10, 166, 34, 136, 249, 20, 253, 136, 101, 193, 183, 226, 234, 38, 59, 27, 39, 52, 32, 251, 100, 15, 232, 181, 89, 247, 19, 176, 157, 144, 7, 9, 155, 253, 178, 100, 218, 1, 138, 25, 79, 242, 7, 30, 91, 117, 5, 159, 237, 77, 151, 218, 180, 238, 166, 134, 212, 27, 165, 26, 103, 129, 146, 118, 207, 188, 179, 103, 225, 218, 238, 12, 240, 70, 249, 44, 206, 106, 100, 237, 228, 139, 212, 38, 204, 12, 155, 145, 161, 123, 174, 191, 110, 244, 235, 229, 111, 206]) }, Event { key: EventKey([52, 11, 45, 40, 29, 75, 60, 191, 139, 213, 112, 233, 167, 37, 211, 5, 87, 105, 203, 250, 244, 163, 19, 107, 118, 188, 126, 248, 244, 111, 105, 9, 252, 233, 183, 149, 56, 56, 233, 230, 192, 102, 160, 5, 99, 121, 86, 110, 168, 217, 59, 118, 31, 51, 255, 216, 112, 7, 204, 172, 47, 238, 9, 160, 205, 8, 130, 230, 193, 18, 50, 117, 6, 196, 111, 155, 211, 214, 196, 109, 205, 21, 69]), value: EventValue([3, 198, 144, 20, 164, 201, 38, 68, 146, 86, 133, 71, 163, 39, 19, 202, 173, 188, 77, 250, 136]) }, Event { key: EventKey([122, 53, 177, 102, 180, 138, 43, 205, 128, 181, 61, 71, 215, 14, 85, 80, 9, 103, 242, 230, 201, 29, 42, 55, 18, 86, 151, 106]), value: EventValue([46, 59, 231, 0, 122, 119, 34, 12, 205, 165, 85, 228, 36, 2, 207, 205, 231, 92, 103, 23, 118, 156, 111, 101, 23, 122, 2, 71, 183, 168, 75, 118, 198, 142, 158, 157, 217, 254, 64, 78, 84, 20, 17, 159, 21, 138, 132, 65, 107, 126, 20]) }, Event { key: EventKey([88, 141, 193, 2, 163, 179, 176, 214, 56, 234, 7, 113, 250, 42, 205, 90, 46, 72, 15, 118, 70, 135, 78, 76, 130, 202, 211, 178, 20, 219, 46, 37, 185, 131, 68, 143, 2, 7, 138, 238, 62, 103, 109, 51, 136, 138, 100, 156, 138, 202, 230, 117, 54, 109, 123, 29, 109, 198, 176, 98, 161, 245, 133, 35, 90, 73, 26, 140, 42, 67, 74, 77, 45, 187, 68, 86, 24, 189, 122, 25, 246, 192, 119, 171, 236, 61, 29, 195, 66, 233, 130, 47, 185, 198, 27]), value: EventValue([27, 220, 20, 187, 47, 169, 59, 119, 78, 48, 226, 55, 71, 58, 110, 109, 187, 31, 103, 19, 23, 221, 70, 214, 106, 155, 47, 18, 108, 12, 163, 39, 56, 189, 130]) }, Event { key: EventKey([226, 3, 52, 84, 170, 40, 37, 90, 203, 180, 145, 117, 162, 139, 226, 58, 0, 30, 223, 174, 231]), value: EventValue([143, 44, 180, 62, 123, 249, 122, 209, 197, 126, 69, 8, 251, 48, 25, 52, 129, 1, 104, 110, 169, 193, 97, 100, 224, 54]) }, Event { key: EventKey([173, 87]), value: EventValue([141, 100, 64, 11, 195, 66, 236, 15, 72, 149, 129, 55, 17, 212, 49, 206, 8, 109, 53, 10, 142, 24, 191, 163, 79, 121, 84, 194, 86, 12, 13, 110, 221, 30, 165, 113, 177, 244, 3, 54, 75, 7, 138, 93, 133, 198, 190, 106, 7, 125, 71, 161, 8, 81, 68, 94, 77, 196, 169, 34, 119, 116, 21, 175, 226, 68, 144, 25, 2, 146, 41, 39, 38, 14, 145, 62, 200, 136, 226, 252, 240, 38, 13, 223, 162, 191, 126, 185, 205, 160, 250, 127, 200, 114, 56, 100, 223]) }], receipt: 275741974 }, TransactionReceipt { tx_hash: [110, 47, 141, 169, 146, 142, 220, 164, 225, 206, 198, 248, 105, 86, 151, 29, 26, 59, 88, 180, 41, 103, 30, 251, 229, 179, 112, 163, 30, 82, 13, 133], body_to_save: Some([243, 187, 179, 142, 3, 48, 221, 61, 162, 8, 162, 97, 74, 28, 250, 136, 54, 217, 163, 199, 190, 56, 6, 55, 188, 230, 19, 177, 52, 6, 175, 137, 53, 174, 16, 31, 125, 151, 115, 93, 124, 56, 88, 248, 4, 127, 63, 220, 51, 90, 83, 148, 94, 204, 70, 177, 180, 95, 211, 199, 49, 39, 25, 114, 53, 182, 19, 87, 254, 154, 158, 57, 11, 235, 113, 155]), events: [Event { key: EventKey([116, 223, 253, 187, 245, 196, 127, 24, 110, 72, 150, 133, 106, 126, 139, 65, 101, 155, 236, 157, 175, 95, 172, 148, 129, 237, 112, 209, 186, 4, 0, 158, 235, 200, 165, 164, 228, 84, 117, 114, 35, 114]), value: EventValue([252, 232, 239, 119, 117, 220, 179, 185, 63, 234, 1, 43, 152, 229, 5, 188, 217, 247, 116, 70, 172, 193, 237, 224, 25, 62, 141, 249, 250]) }, Event { key: EventKey([94, 186, 106, 104, 78, 61, 204, 102, 127, 142, 157, 52, 93, 79, 58, 102, 144, 254, 184, 5, 8, 47, 238, 60, 101, 96, 170, 14, 93, 134, 128, 39, 41, 192, 125, 30, 64, 19, 51, 180, 195, 53, 62, 10, 215, 66, 248, 43, 203, 255, 146, 74, 217, 133, 56, 60]), value: EventValue([44, 119, 20, 247, 248, 179, 151, 126, 112, 191, 123, 200, 223, 253, 162, 102, 246, 112, 23, 176, 155, 161, 105, 104, 151, 81, 142, 36, 90, 117, 168, 109, 191, 206, 32, 158, 213, 111, 29, 11, 188]) }, Event { key: EventKey([214, 45, 72, 160, 69, 226, 150, 82, 230, 16, 65, 32, 61, 59, 123, 69, 180, 172, 188, 24, 201, 56, 1, 137, 36, 111, 10, 255, 77, 50, 120, 28, 205, 248, 46, 170, 253, 157, 1, 129, 238, 211, 132, 231, 133, 74, 79, 187, 255, 44, 0, 176, 142, 159, 111, 189, 109, 227, 108, 150, 189, 101, 3, 37, 55, 121, 75, 66, 109, 92, 13, 162, 64, 55, 40, 109, 44, 5, 203]), value: EventValue([70, 188, 48, 176, 188, 29, 244, 127, 250, 32, 133, 68, 27, 141, 142, 205, 175, 71, 14, 74, 126, 150, 100, 26, 28, 74, 104, 75, 159, 219, 160, 116, 153, 239, 206, 16, 218, 130, 234, 241, 49, 124, 57, 171, 140, 231, 231, 94, 188, 26, 165, 114, 37, 28, 184, 77, 149, 189, 117, 232, 202, 187, 220, 68, 97, 134, 233, 115, 167, 17, 24, 191, 42, 103, 132, 254, 212, 229, 92]) }, Event { key: EventKey([206, 63, 248, 94, 33, 177, 48, 216, 58, 75, 4, 100, 15, 97, 114, 21, 33, 223, 112, 250, 32, 81, 206, 52, 168, 234, 168, 124, 154, 124, 206, 149, 39, 119, 133, 196, 109, 110, 235, 198, 43, 2, 12, 20, 128, 249, 204, 18, 161, 36, 5, 71, 47, 158, 25, 85, 78, 239, 172, 249, 40, 101, 210, 118, 84, 50, 88, 36, 227, 146, 239, 154, 2, 144, 48, 35, 186, 86, 132, 191, 217, 68, 191, 4, 96, 10, 159, 88, 194, 73, 163, 65, 182, 191, 175, 103, 172, 251, 41]), value: EventValue([67, 93, 222, 171, 185, 42, 182, 28, 101, 173, 233, 175, 165, 84, 104, 79, 11, 233, 132, 235, 59, 15, 225, 242, 255, 242, 206, 46, 105, 76, 44, 230, 147, 3, 171, 25, 134, 189, 220, 204, 12, 147, 95, 246, 16, 204, 107, 31, 143, 73, 105, 101, 192, 181, 116, 67, 161, 150, 63, 170, 49, 255, 140, 125, 28, 2, 136, 32, 218, 85, 213, 88, 79, 16, 187, 138, 161, 180, 99, 130, 34, 244, 27, 76, 54, 98, 111, 163, 203, 146, 201, 35, 108, 223, 161, 173, 126, 50, 126]) }, Event { key: EventKey([254, 47, 139, 141, 155, 240, 156, 51, 17, 197, 40, 142, 221, 254, 135, 128, 159, 201, 226, 4, 26, 5, 29, 48, 145, 188, 85, 226, 184, 78, 103, 12, 104, 145, 224, 180, 191]), value: EventValue([123, 119, 91, 201, 24, 6, 94, 25, 156]) }, Event { key: EventKey([85, 253, 119, 69, 85, 23, 160, 230, 118, 125, 196, 74, 192, 42, 8, 21, 180, 37, 6, 169, 130, 22, 174, 204, 72, 86, 172, 237, 80, 171, 195, 244, 75, 110, 73, 192, 125, 204, 12, 87, 9, 172, 79, 88, 134, 240, 173, 203, 22, 238, 233, 143, 239, 218, 145, 76, 9, 39, 45, 9, 138, 180, 166, 84, 187, 6, 141, 154, 36, 62, 189, 7, 104, 150]), value: EventValue([117, 8, 58, 86, 87, 129, 246, 236, 217, 89, 218, 52, 213, 117, 223, 52, 101, 152, 64, 160, 140, 111, 105, 134, 227, 90, 31, 62, 162, 223, 82, 117, 60, 95, 132, 63, 168, 102, 142, 236, 237, 214, 141, 135, 232, 180, 160]) }, Event { key: EventKey([122, 183, 231, 160, 234, 10, 159, 25, 97, 240, 185, 239, 21, 100, 91, 149, 52, 35, 57, 156, 149, 229, 103, 236, 129]), value: EventValue([]) }], receipt: 3551640055 }, TransactionReceipt { tx_hash: [145, 1, 173, 187, 66, 133, 239, 99, 209, 188, 1, 32, 127, 80, 157, 7, 94, 147, 196, 105, 240, 237, 173, 16, 117, 233, 162, 141, 226, 130, 86, 162], body_to_save: None, events: [Event { key: EventKey([160, 160, 225, 119, 61, 226, 138, 187, 208, 109, 71, 88, 237, 1, 138, 9, 87, 248, 46, 156, 23, 159, 186, 223, 98, 180]), value: EventValue([181, 71, 96, 184, 170, 120, 71, 158, 244, 219, 122, 7, 97, 52, 45, 145, 109, 7, 74, 215, 32, 110, 165, 136, 89, 41, 184, 63, 29, 152]) }, Event { key: EventKey([238, 146, 238, 189, 46, 63]), value: EventValue([156, 27, 251, 182, 217, 22, 35, 48, 184, 242, 5, 149, 121, 32, 223, 20, 80, 124, 158, 223, 73, 126, 146, 134, 118, 64, 4, 106, 83, 6, 25, 198, 183, 205, 214, 174, 2, 34, 214, 238, 159, 213, 181, 193, 220, 84, 187, 10, 89, 2, 172, 99, 45, 230, 208, 56, 79, 81, 56, 88, 205, 241, 194, 118, 84, 48, 150, 206, 99, 142, 59, 137, 87, 191, 212, 91, 106, 196, 182, 167, 109, 192, 83, 48, 9, 138, 35, 193, 6, 121, 108]) }, Event { key: EventKey([34, 149, 229, 93, 87, 241, 70, 118, 147, 102, 215, 0, 151, 247, 46, 86, 221, 8, 22, 131, 36, 127, 254, 14, 81, 184, 237, 118, 181, 238, 91, 207, 224, 49, 1, 133, 211, 188, 45, 135, 106, 248, 148, 140, 134, 44, 44, 79, 232, 135, 47, 112, 13, 191, 192, 117, 209, 12, 197, 65, 38, 13, 217, 205, 46, 197, 104, 29, 49, 181]), value: EventValue([225, 142, 203, 205, 93, 14, 41, 70, 207, 183, 73, 234, 121, 61, 110, 1, 210, 246, 71, 39, 246, 229, 49, 113, 3, 159, 194, 27, 38, 209, 2]) }, Event { key: EventKey([62, 9, 93, 62, 166, 178, 193, 156, 157, 34, 116, 211, 92, 97, 33, 157, 174, 114, 10, 58, 192, 63, 12, 0, 195, 218, 67, 215, 226, 76, 164, 76, 185, 88, 248, 68, 220, 127, 155, 42, 206, 221, 210, 37, 254, 153, 8, 241, 245, 56, 148, 10, 32, 130, 44, 194, 18, 156, 32, 175, 59, 171, 171, 114, 88, 134, 151, 195]), value: EventValue([86, 55, 208, 241, 236, 43, 90, 57, 119, 97, 22, 77, 114, 87, 21, 226, 57, 78, 147, 103, 217, 101, 31, 223, 192, 206, 194, 152, 72, 155, 184, 251, 86, 70, 112, 253, 23, 20, 160, 241, 118, 82, 246, 43, 158, 67, 243, 184, 149, 58, 106, 177, 101, 74, 196, 195, 91, 240, 99, 125, 221, 250, 231, 121, 114, 201, 45, 51, 181, 58, 145, 186, 234, 175, 41, 84, 177, 199, 203, 104, 105, 163, 29, 236, 3, 2, 104, 118, 65, 133, 235, 138, 62, 45, 201, 225]) }, Event { key: EventKey([109, 246, 33, 109, 243, 126, 99, 123, 252, 229, 250, 168, 93, 244, 199, 121, 102, 209, 69, 1, 216, 215, 100]), value: EventValue([49, 19, 234, 26, 162, 161, 113, 159, 164, 177, 135, 254, 218, 125, 244, 110, 212, 164, 246, 246, 108, 126, 64, 176, 4, 163, 201]) }, Event { key: EventKey([216, 87, 142, 41, 145, 242, 83, 234, 202, 172, 53, 58, 60, 116, 25, 199, 139, 61, 208, 9, 101, 168, 101, 209, 120, 173, 204]), value: EventValue([31, 163, 60, 131, 246, 90, 169, 100, 105, 81, 254, 66, 82, 142, 232, 27, 101, 14, 101, 80, 40, 21, 75, 90, 205, 205, 124, 182, 249, 68, 219, 34, 26, 1, 53, 116, 111, 177, 128, 150, 167, 158, 152, 236, 231, 196, 134, 255, 168, 29, 206, 59, 84, 151, 111, 164, 100]) }, Event { key: EventKey([236, 227, 250, 124, 172, 156, 104, 191, 229, 32, 187, 239, 222, 97, 175, 101, 56, 213, 66, 72, 135, 42, 175, 214, 250, 78, 98, 96, 152, 126, 223, 190, 2, 221, 100, 168, 89, 84, 65, 245, 38, 214, 16, 120, 45, 82, 43, 181, 255, 243, 147, 135, 124, 214, 222, 223, 121, 216, 36, 77, 53, 113, 220, 232, 150, 210, 104, 193, 110, 6, 121, 174, 29, 154, 108, 87, 11, 12, 71, 227, 153, 52, 128, 54, 111, 86, 134, 92, 176, 73, 112, 10, 164, 208, 251, 247]), value: EventValue([119, 211, 160, 178, 74, 102, 162, 113, 187, 27, 221, 68, 47, 127, 199, 224, 160, 52, 92, 89, 137, 52, 100, 160, 0, 156, 142, 199, 218, 209, 151, 98, 195, 251, 113, 225, 8, 134, 209, 33, 167, 253, 103, 37, 249, 238, 36, 172, 11, 1, 18, 75, 86, 100, 136, 79, 109, 27, 247, 215, 92, 35, 170, 19, 69, 18, 169, 19, 35, 150]) }, Event { key: EventKey([93, 236, 169, 234, 34, 74, 42, 16, 40, 154, 200, 178, 30, 151, 129, 164, 6, 12, 209, 171, 40, 62, 105, 67, 152, 21, 240, 235, 24, 212, 6, 131, 175, 22, 124, 218, 60, 171, 146, 113, 252, 49, 86, 159, 217, 118, 172, 39, 118, 233, 235, 22, 26, 188, 224, 169, 2, 25, 138, 167, 198, 115, 90, 244]), value: EventValue([21, 127, 46, 65, 63, 250, 229, 66, 250, 144, 187, 62, 55, 219, 241, 3, 36, 85, 177, 50, 88, 255, 64, 180, 152, 127, 166, 78, 33, 212, 0, 95, 171, 9, 39, 181, 198, 61, 253, 52, 226, 200, 81, 75, 25, 80, 183, 115, 74, 29, 36, 116, 219, 41, 123, 193, 183, 185, 155, 95, 115, 201, 186, 33, 138, 122, 94, 88, 13, 150, 226, 234, 101, 166, 126, 159, 81, 230, 15, 114, 189, 87, 217, 195, 30, 94, 20, 48, 82, 247, 102, 11, 207, 110, 121, 86]) }, Event { key: EventKey([91, 74, 133, 32, 111, 189, 161, 59, 28, 200, 239, 173, 46, 248, 231, 10, 250, 125, 243, 232, 206, 12, 206, 91, 124, 250, 226, 37, 104, 86, 44, 95, 86, 38, 231, 21, 43, 22, 98, 85, 227, 8, 8, 18]), value: EventValue([215, 95, 194, 71, 162, 104, 95, 164, 171, 86, 38]) }], receipt: 1127147373 }], inner: 2571938596 }, BatchReceipt { batch_hash: [127, 214, 46, 205, 64, 79, 44, 168, 49, 116, 2, 19, 15, 190, 210, 135, 1, 123, 138, 70, 236, 56, 81, 86, 247, 167, 123, 236, 214, 12, 63, 158], tx_receipts: [TransactionReceipt { tx_hash: [194, 110, 172, 128, 137, 241, 36, 204, 57, 253, 140, 160, 233, 243, 1, 35, 119, 11, 65, 195, 193, 193, 191, 178, 66, 37, 134, 120, 175, 37, 248, 137], body_to_save: Some([227, 248, 55, 232, 94, 138, 81, 52, 67, 45, 131, 108, 25, 36, 232, 186, 166, 8, 233, 14, 223, 181, 129, 159, 35, 2, 132, 135, 102, 178, 114, 111, 204, 60, 56, 74, 25, 147, 41, 180, 86, 45]), events: [Event { key: EventKey([30, 54, 36, 56, 85, 54, 144, 47, 250, 22, 90, 137, 153, 250, 148, 141, 208, 211]), value: EventValue([194, 87, 179, 44, 196, 45, 31, 122, 15, 45, 162, 63, 106, 183, 218, 203, 23, 209, 252, 42, 29, 203, 140, 166, 80, 139, 158, 199, 117, 146, 156, 98, 24, 214]) }, Event { key: EventKey([54, 170, 99, 62, 100, 199]), value: EventValue([67, 86, 152, 80, 91, 22, 68, 48, 59, 142, 15, 209, 188, 104, 25, 72, 44, 146, 214]) }, Event { key: EventKey([13, 125, 43, 50, 154, 38, 255, 91, 15, 62, 28, 121, 46, 209, 104, 166, 146, 103, 75, 4, 156, 217, 19, 161, 64, 86, 137, 102, 70, 183, 26, 218, 107, 167, 239, 26, 59, 10, 130, 70, 235, 1, 90, 210, 128, 39, 179, 174, 123, 101, 9, 134, 201, 47, 125, 79, 170, 161, 172, 35, 141, 44, 75, 13, 12, 97, 76, 32, 234, 57, 61]), value: EventValue([9, 209, 48, 120, 193, 217, 175]) }, Event { key: EventKey([198, 55, 136, 154, 74, 82, 31, 152, 46, 65, 106, 100, 223, 51, 116, 167, 43, 201, 72, 69, 212, 188, 250, 209, 162, 64, 100, 111, 186, 230, 239, 80, 146, 203, 110, 24, 23, 156, 240, 116, 106, 15, 1, 54, 117, 104, 226, 157, 122, 97, 119]), value: EventValue([121, 24, 65, 4, 13, 214, 14, 69, 123, 66, 133, 95, 247, 17, 61, 117, 37, 82, 10, 237, 124, 27, 60, 108, 240, 179, 150, 64, 252, 20, 150, 38, 156, 69, 29, 125, 85, 182, 136, 55, 162, 194, 32, 72, 120, 99, 249, 239, 87, 244, 219, 90, 88, 59]) }, Event { key: EventKey([18, 177, 201, 245, 161, 59, 41, 128, 119, 130, 235, 35, 114, 18, 66, 57, 114, 39, 116, 24, 145, 219, 80, 125, 179, 252, 108, 65, 30, 175, 216, 169, 197, 31, 87, 59, 179, 36, 13, 30, 243, 80, 12, 25, 178, 27, 36, 35, 19, 138, 86, 1, 254, 54, 88, 188, 46, 22, 162, 239, 7, 104, 166, 251, 247, 21, 20, 228, 178, 60, 84, 159, 104, 27, 209, 148, 64, 105, 55, 146, 181, 98, 94, 105, 97, 36, 231, 21, 51, 170, 199]), value: EventValue([233, 137, 211, 49, 25, 32, 121, 73, 46, 133, 184, 11, 81, 251, 129, 81, 47, 9, 245, 223, 212, 142, 205, 90, 39, 254, 89, 227, 46, 54, 55, 136, 149, 35, 178, 25, 213, 92, 152, 41, 125, 111, 179, 190, 48, 148, 225, 117]) }, Event { key: EventKey([203, 213, 210, 16, 208, 64, 206, 90, 187, 36, 17, 30]), value: EventValue([254, 159, 104, 194, 166, 54, 215, 63, 198, 47, 64, 200, 125, 118, 140, 162, 215, 153, 252, 195, 236, 103, 30, 51, 193, 188, 162, 74, 49]) }, Event { key: EventKey([30, 148, 220, 27, 143, 104, 65, 194, 80, 215, 165, 170, 122, 10, 206, 137, 8, 186, 144, 108, 231, 110, 238, 182, 94, 118, 237, 169, 33, 165, 97, 167, 84, 98, 121, 11, 245, 169, 17, 91, 31, 44, 185, 68, 36, 90, 32, 122, 56, 254, 229, 225, 52, 77, 157, 112, 61, 86, 146, 161, 245, 34, 128, 1, 46]), value: EventValue([131, 103, 240, 240, 126, 146, 219, 186, 109, 72, 223, 41, 235, 51, 187, 135, 239, 50, 25, 169, 116, 199, 240, 81, 122, 185, 223, 4, 52, 252, 27, 171, 134, 192, 238, 56, 176, 76, 116]) }, Event { key: EventKey([151, 149, 225, 44, 185, 182, 174, 88, 142, 13, 213, 161, 144, 211, 158, 43, 81, 212, 250, 173, 74, 89, 213, 242, 234, 123, 78, 128, 128, 101, 112, 204, 75, 148, 198, 13, 171, 129, 15, 230, 232, 66, 249, 178, 242, 205, 44, 168, 195, 192, 141, 106, 183, 165, 239, 101, 96, 66, 64, 125, 151, 248, 120, 121, 196, 49, 73, 210]), value: EventValue([178, 249, 73, 136, 76, 193, 139, 32, 4, 13, 63, 141, 8, 221, 247, 124, 120, 137, 23, 112, 40, 78, 2, 199, 153, 250, 18, 31, 132, 33, 180, 181, 146, 52, 29, 50, 43, 108, 135, 170, 238, 158, 89, 74, 156, 188, 73, 100, 209, 125, 162, 229, 83, 13, 234, 96, 120, 229, 214, 134, 65, 239, 3, 162, 205, 27, 94, 92, 192, 81, 181, 255, 117, 36, 39, 151]) }, Event { key: EventKey([157, 141, 237, 157, 172, 150, 239, 151, 66, 235, 249, 126, 12, 139, 207, 244, 83, 231, 65, 55, 172, 211, 8, 197, 174, 145, 104, 241, 56, 89, 238, 243, 97, 99, 146, 203, 164, 125, 239, 156, 188]), value: EventValue([210, 28, 11, 14, 204, 156, 96, 107, 185, 180, 219, 223, 133, 133, 186, 22, 99, 163, 98, 188, 124, 254, 72, 179, 83, 60, 182, 126, 79, 125, 30, 169, 48, 157, 146, 5, 9, 77, 60, 190, 1, 223, 84, 16, 79, 32, 55, 111, 234, 128, 125, 156, 147, 237, 134, 247, 206, 96, 181, 224, 183, 100, 175, 159, 72, 18, 16, 136, 109, 174, 164, 213, 153, 29, 162, 170, 156, 142, 137, 157, 9, 119, 46, 231, 101, 155, 83, 62, 9, 134, 196, 146]) }], receipt: 4284095519 }, TransactionReceipt { tx_hash: [84, 157, 184, 190, 72, 255, 68, 97, 66, 245, 145, 62, 18, 121, 230, 120, 163, 165, 238, 25, 95, 230, 208, 152, 251, 25, 102, 143, 25, 216, 215, 157], body_to_save: None, events: [Event { key: EventKey([3, 241, 16, 143, 206, 24, 222, 211, 142, 55, 205, 43, 13, 22, 22, 231, 241, 138, 112, 233, 61, 147, 7, 70, 242, 250, 245, 138, 69, 112, 163, 217, 38, 47, 11, 233, 73, 8, 26, 45, 222]), value: EventValue([70, 172, 74, 60, 144, 209, 232, 219, 161, 7, 95, 84, 255, 147, 210, 99, 82, 214, 101, 177, 3, 80, 203, 150, 228, 135, 176, 35, 37, 38, 176, 31, 80, 131, 124, 149, 82, 188, 55, 118, 57, 133, 243, 40, 255, 31, 91, 25, 189, 242, 7, 136, 241, 172, 97, 97, 179, 80, 52, 62, 50]) }, Event { key: EventKey([59, 123, 250, 126, 125, 100, 155, 199, 152, 205, 91, 206, 13, 241, 86, 195, 137, 164, 71, 141, 87, 130, 203, 177, 47, 82, 230, 217, 35, 238, 202, 185, 246]), value: EventValue([55, 100, 70, 81, 18, 114, 197, 80, 104, 254, 249, 67, 36, 94, 238, 30, 138, 53, 116, 92, 159, 252, 54, 217, 241, 169, 114, 133, 159, 59, 188, 38, 119, 217, 121, 65, 23, 121, 206, 117, 251, 253, 78, 68, 6, 212, 98, 167, 216, 49, 82]) }, Event { key: EventKey([65, 211, 178, 29, 86, 22, 95, 54, 24, 13, 66, 23, 190, 3, 111, 37, 128, 19, 159]), value: EventValue([97, 46, 144, 117, 49, 111, 151, 97, 102, 60, 130, 105, 237, 130, 123, 97, 233, 241, 60, 49, 111, 169, 153, 209, 12, 255, 236, 127, 180, 81, 57, 77, 15, 66, 40, 61, 150, 149, 139, 73, 223, 179, 230, 65, 15, 197, 0, 58, 4, 241, 58, 211, 205, 25, 195, 10, 217, 118, 233, 61, 192, 194, 96, 3, 31, 141, 122]) }, Event { key: EventKey([149, 105, 162, 171, 19, 221, 204, 191, 33, 36, 31, 37, 151, 61]), value: EventValue([25, 113, 34, 1, 197, 133, 180, 119, 28, 179, 108, 247, 14, 254, 97, 164, 95, 174, 104, 62, 49, 134, 130, 172, 82, 38, 19]) }, Event { key: EventKey([157, 130, 209, 55, 136, 188, 230, 58, 188, 64, 239, 202, 157, 149, 38, 225, 140, 29, 76, 65, 64, 18, 195, 13, 85, 37, 202, 108, 15, 107, 64, 121, 24, 20, 154, 156, 99, 237, 213, 221, 131, 57, 3, 18, 145, 51, 228, 186, 96, 250, 107, 188, 118, 187, 60, 208, 221, 62, 40, 132, 16, 201, 225, 48, 129, 96, 101, 12, 12, 255, 131, 87, 140, 245, 83, 61, 57]), value: EventValue([198, 158, 80, 63, 188, 78, 18, 15, 31, 169, 185, 221, 41, 107, 33, 64, 103, 151, 130, 195, 10, 169, 212, 249, 194, 248]) }, Event { key: EventKey([117, 46, 249, 164]), value: EventValue([251, 39, 47, 66, 103, 95, 201, 251, 202, 38, 105, 73, 73, 223, 34, 100, 67, 100, 227, 253, 117, 111, 92, 9, 68, 249, 150, 214, 73, 120, 3, 224, 183, 129, 206, 108, 131, 94, 251, 42, 137, 232, 68, 25, 170, 165, 143, 36, 108, 19, 235, 125, 12, 186, 189, 194, 236, 188, 221, 82, 24, 146, 13, 41, 155]) }, Event { key: EventKey([224, 168, 24, 37, 57, 255, 132, 98, 52]), value: EventValue([174, 254, 112, 237, 156, 209, 103, 152, 242, 204, 195, 246, 169, 171, 188, 225, 48, 190, 223, 232, 156, 98, 41, 249, 211, 1, 226, 224, 43, 160, 37, 241, 55, 172, 50, 122, 175, 28]) }, Event { key: EventKey([104, 59, 193, 211, 76, 99, 105, 33, 125, 29, 176, 179, 190, 36, 168, 90, 181, 87, 72, 37, 220, 228, 165, 221, 29, 96, 104, 180, 126, 196, 199, 94, 4, 35, 212, 141, 88, 16, 103, 144, 125, 134, 14, 4, 143, 13, 190, 136, 154]), value: EventValue([216, 116, 172, 54, 98, 115, 7]) }, Event { key: EventKey([192, 193, 108, 60, 250, 158, 198, 153, 155, 252, 229, 93, 52, 48, 44, 161, 168, 6, 38, 6, 237, 172, 212, 23, 97, 178, 13, 16, 135, 205, 54, 105, 205, 130, 59, 151, 141, 61, 24, 248, 237, 184, 160, 80, 94, 118, 142, 25, 135, 171, 47, 225, 216, 55, 0, 101, 63, 73, 226, 50, 33, 220, 92, 75, 234, 132, 73, 81, 23, 88, 165, 200, 179]), value: EventValue([253, 174, 63, 98, 18, 131, 254, 59, 200, 207, 2, 79, 58, 50, 47, 133, 106, 8, 190, 192, 36, 23, 17, 191, 15, 182, 233, 165, 114, 74, 51, 68, 103, 142, 180, 184, 160, 134, 209, 129, 21, 87, 143, 184, 74, 185, 172, 46]) }], receipt: 3192955122 }], inner: 272419451 }], num_txs: 22, num_events: 102 }, SlotCommit { slot_data: TestBlock { curr_hash: [143, 80, 149, 213, 191, 77, 129, 212, 54, 99, 132, 81, 119, 210, 83, 23, 216, 56, 53, 186, 5, 85, 111, 237, 161, 179, 50, 2, 216, 231, 209, 182], header: TestBlockHeader { prev_hash: TestHash([70, 241, 199, 28, 166, 210, 112, 230, 116, 21, 126, 144, 81, 71, 253, 192, 248, 23, 83, 210, 34, 170, 178, 162, 74, 52, 201, 81, 195, 106, 220, 184]) } }, batch_receipts: [BatchReceipt { batch_hash: [111, 96, 206, 37, 70, 125, 133, 172, 216, 253, 209, 63, 90, 255, 244, 13, 50, 237, 198, 33, 144, 34, 168, 34, 149, 247, 251, 38, 190, 211, 119, 246], tx_receipts: [TransactionReceipt { tx_hash: [147, 179, 211, 190, 246, 100, 92, 160, 113, 164, 64, 200, 149, 181, 41, 246, 171, 246, 250, 240, 211, 62, 255, 80, 207, 254, 185, 46, 145, 14, 248, 80], body_to_save: Some([221, 58, 103, 237, 225, 55, 143, 148, 45, 199, 28, 182, 93, 119, 112]), events: [Event { key: EventKey([212, 183, 191, 181, 116, 206, 207, 35, 102, 38, 1, 8, 248, 158, 193, 60, 157, 62, 32, 199, 140, 248, 29, 241, 30, 118, 168, 140, 103, 99, 74, 86, 188, 94, 16]), value: EventValue([48, 48, 70, 79, 64, 138]) }, Event { key: EventKey([56, 74, 96, 171, 99, 48, 171, 121, 202, 172, 14, 22, 70, 106, 234, 52, 118, 147, 138, 151, 53, 216, 152, 4, 234, 241, 78, 232, 64, 159, 116, 199, 56, 3, 87, 154, 1, 151, 234, 164, 205, 164, 30, 17]), value: EventValue([73, 12, 219, 196, 25, 16, 155, 252, 163, 86, 196, 203, 152, 230, 175, 131, 158, 114, 141, 121, 121, 166, 249, 215, 245, 212, 145, 250, 118, 167, 102, 226, 253, 54, 127, 108, 189, 143, 75, 145, 201, 163, 253, 24, 81, 62, 160, 99, 18, 74, 196, 229, 116, 194, 20, 200, 206, 97, 207, 63, 206, 229, 234, 75, 212, 94, 159, 114, 186, 110, 93, 189, 59, 197, 67, 129, 94, 101, 216, 174, 73, 88, 113, 18, 224, 175, 87, 15, 48, 114]) }, Event { key: EventKey([125, 108, 61, 159, 213, 148, 142, 29, 203, 223, 240, 195, 187]), value: EventValue([134, 241, 164, 148, 199, 228, 233, 116, 119, 167, 74, 160, 24, 13, 151, 37, 58, 204, 187, 220, 198, 163, 106, 149, 176, 162, 51, 209, 247, 118, 54, 178, 198, 86, 80, 241, 106, 7, 226, 15, 158, 226, 35, 101, 42, 112, 18, 121, 95, 224, 0, 234, 187, 36, 124, 146, 184, 8, 33, 237, 196, 130, 12, 140, 224, 136, 64, 19, 23, 175, 36, 132, 53, 109, 123, 164, 156, 222, 181, 201, 145, 207, 43, 130, 149, 141, 169, 55, 68, 76, 254, 135, 196, 159, 236]) }, Event { key: EventKey([158, 138]), value: EventValue([177, 59, 6, 183, 165, 74, 0, 75, 32, 169, 7, 150, 59, 224, 74, 100, 192, 203, 97, 192, 78, 98, 92, 9, 233, 69, 59, 196, 241, 208, 82, 168, 29, 150, 94, 63, 220, 120, 163, 198, 143, 9, 229]) }, Event { key: EventKey([201, 80, 9, 202]), value: EventValue([31, 228, 15, 246, 63, 171, 230, 234, 133, 27, 84, 219, 223, 224, 153, 57, 220, 79, 102, 74, 132, 223, 188, 59, 79, 137, 249, 114, 52, 193, 87, 118, 51, 74, 15, 36, 95, 166, 19, 126, 98, 84, 45, 61, 231, 70, 183, 78, 188, 176, 6]) }, Event { key: EventKey([96, 117, 10, 97, 197, 21, 15, 89, 236, 57, 196, 106, 222, 178, 132, 92, 88, 172]), value: EventValue([3, 120, 252, 54, 203, 56, 28, 214, 46, 174, 26, 32, 55, 229, 250, 158, 8, 12, 244, 219, 202, 220, 176, 233, 147, 222, 212, 204, 121, 183, 120, 209, 224, 86, 68, 169, 104, 156, 249, 85, 252, 94, 138, 69, 204, 81, 137, 172, 11, 112, 163, 68, 145, 87, 152, 81, 201, 93, 224, 153, 220, 160, 132, 144, 73, 229, 50, 15, 210, 71, 23, 118, 119, 254, 165, 243, 16, 85]) }, Event { key: EventKey([217, 62, 123, 243, 176, 15, 198, 131, 194, 252, 8, 75, 252, 0, 99]), value: EventValue([108, 131, 95, 132, 246, 84, 252, 74, 4, 148, 95, 130, 239, 230, 84, 166, 111, 60, 244, 250, 129, 162, 31, 192, 228, 87, 123, 18, 250, 41, 125, 168, 74, 57, 218, 101, 130, 36, 130, 57]) }, Event { key: EventKey([160, 161, 90, 74, 155, 12, 211, 160, 23, 241, 222, 30, 196, 113, 68, 141, 234, 40, 61, 213, 214, 55, 187, 188, 229, 115, 83, 12, 40, 212, 232, 129, 89, 65, 134, 226, 113, 44, 95, 219, 104, 56, 198, 22, 224, 100, 91, 179, 172, 1, 40, 33, 78, 170, 198]), value: EventValue([36, 82, 158, 223, 113, 251, 45, 252, 163, 75, 195, 200, 22, 65, 124, 21, 190, 250, 15, 128, 8, 80, 66, 141, 7, 109, 23, 223, 1, 247, 174, 157, 193, 146, 152, 198, 190, 126, 55, 242, 158, 195, 100, 139, 3, 135, 179, 47, 120, 12, 23, 121]) }, Event { key: EventKey([184, 26, 15, 15, 193]), value: EventValue([199, 232, 104, 241, 78, 248, 242, 176, 16, 148, 223, 2, 245, 91, 74, 218, 156, 253, 110, 60, 159, 135, 175, 151, 69, 74, 182, 28, 190, 11, 175, 56, 112, 80, 80, 65, 213, 33, 239, 229, 117, 248, 3, 20, 236, 151, 174, 249, 33, 119, 195, 194, 115, 126, 139, 74, 151, 223, 52, 30, 201, 68, 138, 229, 226, 85, 42, 30, 169, 248, 198, 200, 18, 99, 173, 153, 129, 82, 240, 151, 160, 185, 56, 141, 52, 144, 212, 138, 167, 110, 230, 180, 42, 154, 164]) }], receipt: 803520535 }], inner: 934795765 }, BatchReceipt { batch_hash: [55, 93, 236, 148, 125, 86, 234, 209, 73, 198, 62, 3, 24, 153, 239, 202, 127, 170, 6, 91, 107, 224, 185, 210, 75, 29, 53, 131, 212, 77, 73, 159], tx_receipts: [], inner: 1682125426 }, BatchReceipt { batch_hash: [161, 110, 206, 17, 113, 151, 147, 104, 5, 140, 161, 221, 63, 39, 123, 196, 112, 180, 119, 142, 31, 165, 111, 176, 144, 75, 46, 207, 196, 170, 5, 223], tx_receipts: [TransactionReceipt { tx_hash: [176, 201, 122, 224, 2, 215, 71, 96, 217, 158, 202, 184, 143, 89, 211, 222, 177, 160, 94, 246, 17, 247, 83, 211, 245, 198, 165, 129, 222, 2, 60, 242], body_to_save: Some([77, 227, 69, 88, 1, 94, 23, 172, 74, 119, 48, 240, 34, 47, 7, 248, 96, 31, 169, 94, 190, 110, 3, 31, 94, 142, 70, 173, 133, 255, 31, 244, 11, 247, 226, 251, 33, 64, 19, 180, 238, 111, 219, 142, 149, 98]), events: [Event { key: EventKey([169, 100, 146, 118, 36, 231, 89, 49, 74, 113, 177, 159, 138, 5, 249, 125, 100, 162, 57, 53, 144, 197, 194, 183, 198, 151, 136, 211, 31, 140, 3, 134, 69, 194, 19, 202, 40, 65, 39, 44, 212, 198, 157, 140, 153, 172, 236, 15, 218, 107, 180, 58, 199, 93, 30, 170, 13, 9, 59, 219, 129, 110, 236, 2, 89, 214, 202, 117, 137, 206, 181, 18, 250, 214, 217, 183, 113, 80, 84, 94, 0, 172, 0, 90, 6, 252, 201, 62, 123, 86, 58, 206, 81, 246, 96, 39, 64, 59, 103]), value: EventValue([61, 183, 186, 8, 154, 4, 208, 60, 37, 32, 243, 34, 33, 174, 99, 27, 115, 104, 134, 133, 238, 131, 91, 184, 8, 239, 24, 2, 23, 93, 134, 249, 205, 158, 252, 235, 184, 171, 105, 178, 207]) }], receipt: 3593496690 }, TransactionReceipt { tx_hash: [22, 219, 148, 212, 227, 109, 102, 174, 179, 205, 246, 110, 67, 41, 42, 234, 117, 6, 34, 240, 176, 29, 4, 22, 10, 164, 134, 165, 156, 37, 217, 67], body_to_save: Some([31, 78, 119, 33, 57, 65, 122, 16, 20, 253, 81, 198, 71, 159, 230, 171, 152, 23, 169, 91, 145, 5, 180, 210, 192, 77, 200, 45, 125, 241, 211, 29, 73, 235, 148, 201, 107, 152, 92, 129, 205]), events: [], receipt: 775802008 }, TransactionReceipt { tx_hash: [223, 225, 156, 117, 205, 47, 27, 58, 162, 50, 148, 2, 27, 241, 134, 239, 217, 41, 113, 2, 245, 216, 170, 135, 113, 67, 123, 232, 230, 232, 170, 234], body_to_save: None, events: [Event { key: EventKey([42, 139, 72, 208, 229, 67, 113, 242, 35, 31, 171, 70, 71, 67, 228, 62, 187, 247, 190, 104, 210, 107, 183, 245, 18, 26, 84]), value: EventValue([163, 223, 168, 218, 238, 5, 186, 23, 200, 46, 228, 129, 161, 102, 127, 212, 183, 38, 136, 252, 139, 51, 61, 60, 66, 157, 244, 31, 113, 88, 10, 136, 90, 168, 145, 240, 1, 124, 147]) }, Event { key: EventKey([244, 196, 161, 99, 254, 33, 113, 237, 79, 180, 133, 10, 233, 63, 88, 71, 223, 136, 2, 189, 33, 176, 105, 237, 9, 88, 53, 27, 111, 134, 177, 189, 209, 185, 109, 5, 210, 94, 2, 47, 95, 136, 169, 180, 120, 71, 102, 89, 10, 68, 92, 60, 155, 225, 248, 127, 52, 75, 151, 128, 28, 204, 76, 211, 26, 39]), value: EventValue([213, 41, 8, 181, 69, 98, 108, 252, 165, 249, 232, 79, 82, 74, 67, 23, 73, 223, 93, 180, 153, 188, 145, 251, 65, 220, 72, 183, 173, 135, 7]) }, Event { key: EventKey([226, 30, 141, 43]), value: EventValue([241, 87, 251, 193, 241, 25, 78, 84, 150, 202, 28, 191, 227, 253, 201, 51, 183, 4, 229, 24, 185, 191, 76, 157, 168, 17, 109, 144, 46, 15, 58, 81, 28, 94, 209, 29, 236, 120, 251, 46, 170, 231, 180, 2, 23, 53, 255, 191, 58, 219, 58, 159, 252, 235, 247, 151, 14, 16, 219, 187, 159, 178]) }], receipt: 1958508033 }], inner: 1530703531 }, BatchReceipt { batch_hash: [143, 157, 115, 139, 147, 16, 233, 247, 149, 40, 229, 83, 3, 155, 11, 248, 28, 167, 2, 208, 241, 10, 43, 140, 119, 236, 111, 163, 76, 4, 36, 27], tx_receipts: [TransactionReceipt { tx_hash: [96, 69, 48, 44, 68, 185, 173, 165, 249, 219, 46, 205, 38, 250, 145, 195, 54, 129, 36, 4, 240, 176, 20, 214, 236, 191, 236, 198, 251, 213, 198, 120], body_to_save: None, events: [Event { key: EventKey([220, 206, 233, 17, 124, 64, 223, 2, 240, 128, 17, 200, 190, 61, 206, 75, 112, 179, 59, 226, 79, 209, 247, 1, 216, 26, 249, 23, 101, 213, 99, 34, 117, 163, 0, 253, 48, 24, 90, 83, 50, 226, 219, 131, 151, 99, 196, 238, 84, 19, 4, 119, 63, 79, 42, 243, 217, 11, 141, 43, 237, 65, 193, 34, 174, 89, 102, 95, 195, 13, 0, 139, 98, 120, 109, 185, 115, 155, 243]), value: EventValue([163, 176, 210, 230, 36, 235, 243, 178, 201, 10, 43, 131, 108, 74, 2, 247, 89, 103, 148, 90, 137, 62, 78, 157, 32, 98, 233, 38, 56, 15, 122, 5, 30, 90, 105, 108, 68, 78, 36, 187, 130, 231, 251, 66, 132, 236, 118, 175, 18, 88, 84, 99, 147, 36, 60, 85, 133, 45, 236, 192, 180, 54, 89, 54, 215, 210, 197, 58, 113, 221, 176, 156, 192, 137, 203, 169, 129, 251, 203, 61]) }, Event { key: EventKey([55, 52, 250, 237, 132, 15, 106, 156, 85, 4, 172, 22, 82, 110, 241, 49, 97, 149, 33, 113, 54, 142, 94, 199, 219, 62, 135, 41, 196, 116, 41, 76, 236, 94, 181, 73, 208, 133, 204, 204, 92, 157, 69, 95, 75, 53, 87, 59, 18, 164, 57, 155, 163, 204, 48, 129, 146, 187, 183, 148, 42, 196, 233, 186, 79, 226, 123, 53, 36, 113, 80, 225, 101, 248, 25, 110, 196, 74, 180, 4, 109, 1, 254, 99, 45, 138, 87, 225, 22, 139, 229, 70]), value: EventValue([153, 62, 129, 66, 199, 157, 121, 20, 180, 114, 7, 209, 246, 47, 12, 85, 180, 255, 91, 79, 238, 116, 37, 251, 4, 233, 118, 110, 206, 117, 132, 120, 61, 30, 50, 236, 182, 123, 51, 192, 173, 112, 194, 129, 144, 48, 71, 87, 38, 236, 232, 103, 216, 61, 197, 211, 251, 12, 4, 0, 183, 241, 73, 47, 51, 37, 172, 166, 15, 22, 172, 150, 19, 173, 244, 49, 174, 169, 209, 201, 55]) }, Event { key: EventKey([169, 15, 213, 248, 128, 217, 86, 255, 175, 148, 248, 142, 147, 207, 154, 45, 69, 0, 102, 225, 163, 176, 228, 44, 68, 157, 21, 126, 135, 66, 224, 155, 106, 36, 168, 182, 84, 234, 170, 13, 180, 215, 85, 245, 34, 18, 92, 217, 196, 171, 41, 216, 123, 78, 117, 27, 254, 25, 250, 84, 125, 57, 208, 109, 85, 210, 18, 26, 228, 17, 24, 72, 255, 167, 14, 202, 204, 134, 40, 116, 153, 56]), value: EventValue([231, 24, 30, 97, 217, 190, 243, 80, 189, 63, 50, 248, 149, 122]) }, Event { key: EventKey([12, 222, 140, 20, 164, 105, 224, 74, 103, 102, 161, 142, 102, 120, 139, 252, 244, 145, 22, 183, 144, 8, 2, 155, 22, 133, 184, 163, 89, 195, 102, 97, 206, 126, 172, 85, 125, 146, 194, 207, 47, 49, 155, 127, 186, 76, 230, 74, 63, 134, 217, 110, 115, 127, 186, 28, 174, 97, 207, 133, 111, 64, 126, 102, 84, 150, 236, 154, 35, 34, 125, 171, 129, 72, 211, 12, 192, 211, 190, 35, 152, 234, 235, 106, 1, 62, 205, 62, 115, 213]), value: EventValue([192, 221, 227, 59, 185, 50, 204, 53, 131, 239, 238, 151, 37, 19, 17, 189, 99, 235, 157, 136, 80, 73, 253, 252, 19, 245, 130, 115, 170, 58, 141, 229, 35, 131, 166, 254, 72, 220, 53, 149, 183, 90, 148, 56, 198, 76, 58, 211, 101, 218, 151, 118, 39, 16, 175, 26, 102, 31, 206, 44]) }, Event { key: EventKey([17, 212, 216, 23, 66, 115, 48, 184, 114, 221, 117, 98, 152, 149, 92, 200, 39, 246, 115, 157, 250, 49, 91, 125, 246, 138, 163, 222, 229, 225, 215, 114, 131, 225, 138, 40, 184, 32, 97, 23, 44, 3, 36, 231, 70, 26, 159, 65, 214, 118, 221, 156, 111, 239, 30, 151, 99, 206, 65, 160, 255, 83, 175, 206, 206, 198, 153, 7, 222, 149]), value: EventValue([68, 1, 247, 227, 207]) }, Event { key: EventKey([60, 216, 34, 69, 109, 238, 124, 244, 123, 106, 48, 136, 105, 156, 23, 184, 60, 58, 198, 10, 224, 211, 240, 99, 11, 75, 207, 109, 232, 238, 101, 126, 70, 149, 169, 214, 153, 166, 214, 236, 11, 142, 204, 236, 117, 135, 187, 86, 231, 38, 20, 8, 13, 113, 250, 31, 157, 248, 227, 65, 77, 215, 133, 117, 213, 164, 117, 244, 180, 237, 200, 20, 235, 228, 41, 251, 136, 148, 13, 30, 192, 125, 64, 41, 14, 138, 255, 33, 30, 143, 217, 239, 86, 153, 205, 65, 48]), value: EventValue([63, 214, 176, 137, 227, 199, 63, 214, 40, 211, 229, 51, 33, 187, 95, 41, 91, 250, 43, 77, 32, 117, 218, 5, 9, 177, 119, 162, 240, 98, 21, 211, 101, 126, 97, 68, 219, 39, 40, 244, 201, 71, 136, 221, 141, 242, 253, 137, 52, 85, 21, 234, 41, 49, 78, 243, 251, 75, 130, 89, 181]) }], receipt: 51750283 }, TransactionReceipt { tx_hash: [73, 189, 176, 130, 209, 218, 0, 125, 23, 10, 98, 112, 104, 183, 86, 129, 107, 231, 181, 71, 235, 164, 245, 57, 111, 56, 169, 3, 225, 163, 160, 15], body_to_save: None, events: [], receipt: 2943818234 }, TransactionReceipt { tx_hash: [204, 253, 100, 27, 165, 40, 35, 35, 30, 34, 92, 198, 219, 178, 227, 75, 247, 247, 209, 150, 26, 40, 143, 195, 115, 246, 234, 23, 74, 51, 7, 205], body_to_save: Some([111, 20, 140, 251, 149, 68, 30, 80, 108, 151, 173, 47, 90, 133, 24, 165, 134, 255, 67, 107, 88, 251, 61, 99, 155, 194, 160, 112, 26, 217, 55, 19, 224, 57, 194, 224, 237, 52, 89, 56, 166, 176, 8, 54, 45, 162, 163, 52, 203, 128, 11, 121, 86, 176, 78, 79, 92, 131, 186, 171, 118, 80, 14, 157, 41, 100, 200, 47, 85, 180, 63, 121, 58, 23, 28, 165, 75, 56, 58, 156, 4, 235, 215, 40, 109, 4, 121, 122, 48, 219, 75, 163, 158, 247, 5]), events: [Event { key: EventKey([94, 222, 109, 211, 79, 122, 226, 15, 231, 233, 76, 72, 45, 183, 108, 38, 31, 125, 166]), value: EventValue([8, 69, 222, 128, 26, 84, 190, 116, 185, 142, 232, 188, 77, 27, 114, 37, 148, 73, 137, 66, 148, 122, 55, 217, 52, 1, 198, 153, 125, 41, 49, 119, 32, 249]) }, Event { key: EventKey([120, 176, 158, 253, 196, 119, 165, 191, 204, 243, 195, 55, 165, 147, 136, 72, 7, 156, 92, 123, 30, 39, 182, 84, 150, 230, 46, 114, 64, 212, 36, 215, 68, 147, 75, 232, 171, 70, 181, 31, 80]), value: EventValue([107, 254, 254, 194, 144, 10, 246, 108, 198, 67, 170, 153, 184, 155, 150, 113, 221, 132, 123, 18, 152, 243, 166, 160, 198, 47, 22, 43, 160, 59]) }, Event { key: EventKey([71, 106, 144, 237, 202, 153, 5, 229, 235, 108, 115, 242, 157, 113, 71, 220, 248, 213, 222, 160, 32, 87, 24, 52, 241, 197, 130, 161, 189, 242, 61, 70, 36, 145, 193, 87, 239, 166, 233, 226, 15, 19, 38, 136, 194, 170, 33, 219, 242, 102, 65, 202, 161, 163, 98, 94, 200, 175, 144, 138]), value: EventValue([158, 229, 62, 54, 173, 56, 82, 84, 145]) }], receipt: 1198058908 }, TransactionReceipt { tx_hash: [58, 80, 79, 82, 120, 181, 5, 211, 250, 110, 101, 53, 201, 46, 81, 143, 51, 78, 54, 117, 234, 175, 244, 101, 116, 88, 150, 22, 68, 32, 15, 245], body_to_save: Some([13, 216, 140, 251, 19, 241, 212, 209, 14, 175, 181, 17, 115, 209, 96, 50, 135, 235, 24, 222, 49, 132, 61, 206, 7, 171, 166, 202, 11, 54, 221, 242, 222, 155, 44, 152, 222, 249, 250, 3, 79, 122, 200, 97, 26, 175, 59, 49, 228, 202, 158, 108, 145, 69, 255, 147, 127, 116, 221, 110, 197, 57, 190, 101, 168, 239, 133, 205, 97, 60, 134, 213]), events: [], receipt: 2995641998 }, TransactionReceipt { tx_hash: [246, 147, 110, 40, 61, 64, 52, 42, 133, 85, 68, 59, 184, 222, 132, 20, 136, 19, 239, 25, 187, 130, 250, 167, 174, 175, 58, 220, 126, 132, 52, 82], body_to_save: Some([16, 15, 21, 153, 135, 8, 94, 252, 218, 36, 211, 191, 87, 3, 181, 11, 103, 49, 151, 179, 196, 183, 236, 12, 176, 142, 253, 99, 172, 239, 200, 202, 157, 162, 132, 171, 80, 151, 237, 136, 135]), events: [Event { key: EventKey([151, 72, 204, 5, 39, 77, 61, 14, 86, 58, 212, 45, 59, 202, 175, 87, 200, 148, 207, 237, 96, 222, 14, 124, 142, 65, 187, 140, 78, 66, 22, 59, 157, 30, 33, 88, 64, 77, 155, 145, 15, 55, 69, 198, 251, 159, 47, 110, 67, 183, 189, 152, 175, 165, 93, 185, 236, 66, 215, 6, 120, 125, 187, 51, 162, 76, 253, 9, 63, 101, 233]), value: EventValue([254, 169, 19, 90, 75, 151, 54, 155, 193, 86, 60]) }, Event { key: EventKey([156, 140, 218, 186, 177, 156, 30, 169, 77, 78, 230, 203, 53, 75, 206, 49, 248, 118, 11, 10, 3, 43, 4, 57, 75, 10, 26, 245, 63, 78, 11, 77, 132, 169, 115, 163, 237, 6, 120, 84, 222, 84, 152, 164, 81, 112, 234, 7, 25, 109]), value: EventValue([191, 27, 167, 100, 127, 95, 66, 236, 52, 180, 58, 88, 52, 91, 25, 44, 78, 184, 224, 144, 122, 1, 46, 109, 8, 36, 106, 206, 160, 2, 252, 149, 244, 255, 206, 168]) }, Event { key: EventKey([125, 40, 5, 120, 39, 23, 243, 105, 12, 134, 239, 250, 5, 199, 144, 120, 188, 157, 248, 155, 164, 109, 181, 255, 7, 65, 220, 230, 100, 93, 245]), value: EventValue([72, 214, 242, 95, 228, 254, 235, 124, 71, 99, 121, 40, 103, 103, 253, 96, 177, 128, 222, 166, 25, 183, 181, 236, 230, 249, 16, 46, 250, 38, 154, 177, 145, 205, 87, 36, 218, 102, 173, 199, 119, 48, 252, 133, 40, 116]) }, Event { key: EventKey([228, 65, 89, 88, 169, 144, 106, 125, 150, 206, 182, 62, 132, 60, 12, 164, 202, 240, 97, 220, 132, 173, 244, 122, 250, 82, 90, 210, 218, 0, 159, 20, 20, 22, 94, 138, 20, 220, 158, 63, 45, 12, 125, 180, 97, 232, 87, 243, 70, 253, 73, 97, 131, 92, 39, 151, 80, 135, 105, 78, 204, 143, 197, 80, 170]), value: EventValue([142, 212, 5, 129, 192, 137, 98, 7, 111, 133, 230, 53, 181, 173, 126, 244, 20, 234, 227, 24, 60, 87, 70, 134, 232, 92, 117, 245, 208, 41, 45, 112]) }, Event { key: EventKey([171, 50, 163, 51, 117, 238, 66, 238, 23, 105, 113, 181, 136, 93, 250, 238, 195, 122, 52, 74, 46, 234, 195, 73, 147, 205, 220, 141, 139, 178, 223, 26, 141, 158, 229, 152, 206, 66, 38, 45, 52, 91, 74, 66, 127, 62, 93, 70, 216, 19, 45, 236, 213, 42, 232, 39, 23, 31, 97, 132, 245, 51, 13, 130, 25, 162, 92, 134, 152, 22, 217, 100, 228, 29, 198, 154, 100, 151, 8, 39, 193, 246, 15, 105, 141]), value: EventValue([77, 162, 175, 158, 199, 158, 105, 235, 163, 118, 244, 241, 235, 241, 115, 99, 3, 39, 63, 22, 232, 62, 177, 136, 204, 120, 146, 171, 114, 27, 28, 111, 161, 217, 82, 30, 119, 164, 208, 70, 63, 49, 55, 35, 5, 6, 27, 109, 166, 122, 95, 170, 63, 230, 45, 240, 83, 147, 15, 123, 175, 150, 45]) }, Event { key: EventKey([61, 28, 63, 53, 5, 253, 89, 7, 146, 197, 178, 39, 58, 40, 69, 171, 49, 85, 86, 203, 194, 213, 223, 202, 239, 28, 253, 236, 23, 159, 68, 172, 184, 32, 32, 228, 173, 74, 62, 104, 59]), value: EventValue([115, 243, 54, 85, 197, 173, 77, 103, 4, 120, 200]) }, Event { key: EventKey([248, 232, 147, 239, 50, 147, 43, 69, 231, 138, 14, 254, 121, 112, 205, 44, 82, 58, 194, 236]), value: EventValue([86, 160, 37, 81, 100, 5, 49, 122, 51, 6, 170, 220, 120, 212, 74, 146, 122, 14, 185, 96, 147, 123, 143, 254, 252, 138, 139, 67, 148, 212, 94, 157, 140, 233, 110, 122, 26, 55, 57, 69, 96, 186, 58, 240, 153, 214, 217, 149, 3, 240, 241, 209, 7, 36, 207, 68, 205]) }, Event { key: EventKey([218, 222, 142, 80, 80, 143, 34, 90, 118, 187, 213, 181, 40, 139, 49, 187, 11, 99, 131, 37, 77, 222, 117, 137, 176, 37, 154, 124, 82, 54, 56, 194, 92, 168, 18, 65, 174, 182, 136, 189]), value: EventValue([176, 63, 66, 214, 84, 186, 156, 154, 244, 121, 128, 192, 74, 103, 112, 62, 193, 185, 47, 84, 66, 146, 31, 22, 17, 214, 152, 73, 233, 78]) }], receipt: 2600992943 }, TransactionReceipt { tx_hash: [131, 184, 111, 148, 41, 194, 105, 218, 200, 90, 158, 116, 59, 72, 38, 204, 121, 122, 58, 193, 250, 252, 19, 222, 158, 94, 111, 64, 244, 76, 141, 20], body_to_save: Some([219, 117, 192, 180, 97, 121, 125, 243, 37, 166, 186, 39, 22, 193, 167, 216, 193, 167, 27, 87, 180, 135, 246, 35, 72, 229, 254, 57, 247, 209, 29, 200, 195, 103, 90, 35, 222, 128, 225, 169, 33, 57, 57, 99, 83, 34, 49, 221, 223, 121, 9, 223, 63, 45, 38, 61, 110, 247, 84, 190, 57, 109, 123, 106, 167, 31, 21, 24, 10, 23, 101, 252, 120, 69, 130, 232, 103, 158, 217, 28, 201, 219, 144, 94, 79, 149, 171, 40, 146, 10, 43, 112, 117, 247]), events: [Event { key: EventKey([206, 4, 153, 188, 222, 4, 217, 60, 200, 94, 216, 33, 38, 143, 177, 13, 209, 41, 16, 206, 221, 108, 140, 246, 112, 83, 68, 100, 174, 54, 157, 128, 39, 154, 147, 20, 139, 197, 200, 133, 224, 78, 187, 147, 234]), value: EventValue([247, 133, 89, 46, 68]) }, Event { key: EventKey([227, 155, 216, 92, 225, 179, 188, 111, 91, 191, 138, 128, 65, 73, 210, 126, 184, 30, 175, 96, 212, 234, 157, 216, 142, 16, 0, 216, 255, 232, 135, 93, 227, 131, 64, 213, 8, 155, 10, 67, 122, 39, 232, 210, 94, 212, 12, 172, 168, 126, 162, 63, 185, 50, 51, 82, 99, 71, 130, 86, 117, 153, 108, 215, 32, 244, 155, 194, 139, 153, 174, 223, 95, 83, 254, 165, 15, 63, 212, 220, 205, 28, 95]), value: EventValue([219, 212, 223, 70, 79, 158, 125, 219, 162, 54, 145, 37, 223, 94, 29, 170, 124, 60, 126, 204, 2, 168, 104, 228, 88, 7, 245, 227, 192, 178]) }, Event { key: EventKey([234, 5, 147, 228, 101, 202, 249, 171, 122, 224, 25, 155, 63, 27, 132, 161, 95, 101, 4, 191, 158, 254, 23, 143, 63, 188, 175, 8, 14, 1, 187, 119, 3, 248, 44, 150, 108, 80, 46, 246, 254, 234, 245, 147, 185, 12, 40, 8, 228, 63, 67, 65, 108, 138, 244, 48, 91, 132, 51, 167, 235, 232, 81, 187, 40, 77, 47, 155, 249, 28, 171, 165, 202, 118, 207, 201, 149, 113, 116, 177, 6]), value: EventValue([128, 171, 161, 231, 49, 216, 47, 254, 53, 201, 7, 47, 190, 111, 224, 214, 11, 78, 24, 42, 159, 230, 65, 25, 32, 56, 117, 154, 69, 32, 123, 209, 16, 180, 247, 26, 254]) }, Event { key: EventKey([191, 232, 188, 137, 211, 134, 176, 133, 245, 138, 146, 74, 67, 156, 83, 38]), value: EventValue([224, 44, 160, 43, 35, 56]) }, Event { key: EventKey([91, 72, 199, 84, 112, 141, 128, 247, 208, 216, 234, 33, 129, 55, 26, 12, 188, 216, 222, 82, 103, 106, 98, 132, 106, 216, 242, 244, 40, 180, 49, 178, 4, 10, 74, 129, 220, 104, 136, 169, 79, 88, 153, 235, 15, 22, 38, 63, 148, 69, 248, 29, 208, 108, 185, 172, 232, 210, 212, 75, 168, 180, 29, 30, 35, 1, 122, 63, 79, 199, 210, 7, 3, 112, 224, 143, 7, 28, 28, 248, 222, 65, 198, 27, 138, 246, 167, 28, 199, 102, 218, 170, 244]), value: EventValue([170, 89, 225, 134, 211, 244, 185, 2, 191, 63, 87, 230, 173, 65, 30, 214, 115, 21, 196]) }, Event { key: EventKey([193, 5, 32, 4, 226, 254, 160, 239, 144, 75, 157, 246, 155, 220, 72, 180, 49, 25, 11, 213, 17, 61, 146, 81, 41, 97, 199, 214, 60, 3, 93, 28, 205, 170, 127, 113, 24, 192, 6, 27, 160, 42, 70, 237, 252, 121, 44, 108, 107, 56, 138, 242, 239, 117, 64, 140, 20, 143, 192, 27, 120, 170, 86, 243, 225, 60, 203, 231, 131, 74, 215, 105, 93]), value: EventValue([228, 10, 58, 53, 112, 251, 71, 12, 41, 10, 33, 144, 1, 13, 62, 250, 33, 140, 70, 8, 43, 170, 185, 58, 53, 177, 177, 221, 25, 228, 59, 14, 228, 228, 81, 60, 122, 131, 208, 38, 138, 226, 33, 158, 57, 70, 176, 64, 102, 186, 232, 196, 68, 211, 194, 180, 205, 86, 219, 208, 3, 26, 32]) }, Event { key: EventKey([202, 139, 165, 23, 160, 253, 178, 108, 151, 229, 208, 204, 231, 73, 5]), value: EventValue([237, 105, 101, 65, 123, 78, 56, 225, 123, 162, 140, 59, 101, 111, 174, 209, 172, 210, 43, 140, 161, 229, 211, 168, 187, 186, 24, 234, 139, 19, 78, 150, 124, 214, 92, 183, 215, 60, 213, 163, 17, 80, 242, 184, 244, 225, 95, 7, 234]) }], receipt: 172540330 }, TransactionReceipt { tx_hash: [199, 49, 102, 229, 78, 162, 165, 138, 149, 235, 61, 136, 214, 64, 148, 141, 39, 212, 12, 57, 237, 63, 87, 30, 181, 191, 55, 13, 99, 234, 174, 210], body_to_save: Some([56, 193, 103, 47, 65, 202, 178, 66, 60, 155, 15, 107, 79, 120, 123, 87, 224, 100, 80, 207, 1, 229, 84, 21, 209, 202, 36, 173, 15, 214, 91, 71, 124, 101, 34, 91, 54, 181, 192, 150, 154, 221, 71, 8, 223, 244, 14, 225, 245, 69, 159, 63, 191, 34, 1, 146, 131, 235, 230, 248, 70, 179, 97, 136, 24, 207, 207, 24, 113, 214, 243, 235, 157, 130, 50, 166]), events: [Event { key: EventKey([127, 149, 151, 102, 105, 63, 224, 205, 105, 24, 208, 35, 113, 114, 160, 229, 138, 114, 209, 62, 179, 122, 168, 43, 26]), value: EventValue([202, 249, 132, 175, 214, 183, 136, 78, 67, 91, 130, 237, 121, 84, 143, 156, 185, 65, 186, 15, 29, 191, 35, 182, 136, 84, 112, 169, 212, 1, 205, 50, 105, 221, 39, 204, 41, 254]) }, Event { key: EventKey([9, 128, 210, 180, 213, 64, 214, 88, 33, 205, 130, 253, 88, 1, 5, 25, 167, 103, 60, 113, 158, 55, 20, 164, 10, 57, 248, 112, 173, 195, 127, 34, 213, 221, 169, 232, 7, 224, 32, 76, 182, 41, 240, 45, 9, 72, 115, 207, 214, 113, 32, 7, 31, 146, 10, 174, 143]), value: EventValue([189, 139, 168, 159, 149, 61, 20, 20, 255, 122, 154, 11, 89, 242, 62, 130, 6, 233, 19, 191, 3, 224, 208, 207, 134, 29, 72, 62, 229, 30, 22, 108, 92, 109, 221, 13, 123, 189, 45, 190, 193, 25, 134, 166, 9, 33, 238, 57, 17, 247, 173, 93, 187, 131, 255, 62, 92, 186, 178, 18, 59, 198, 168, 141, 63, 53, 71, 253, 133, 116, 2, 220, 166, 99, 114, 116, 49, 193, 47, 5, 111, 140, 1, 13, 74, 236]) }, Event { key: EventKey([224, 119, 53, 93, 207, 35, 22, 52, 82, 241, 66, 106, 173, 143, 105, 17, 189, 145, 172, 225, 144, 157, 253, 214, 118, 117, 27, 245, 103, 244, 85, 233, 152, 127, 23, 255, 12, 125, 0, 252, 161, 166, 82, 189, 114, 68, 180, 87, 255, 83, 122, 109, 221, 124, 141, 102, 101, 117, 204, 252, 243, 48, 238, 88, 162, 145, 199, 156, 172, 216, 24, 3, 22, 34, 203, 1, 110, 88, 220, 97, 236, 199, 201, 63]), value: EventValue([160, 78]) }, Event { key: EventKey([83, 77, 92, 61, 2, 18, 86, 129, 8, 33, 125, 114, 255, 95, 199, 220, 252, 217, 242, 190, 118, 204, 252, 245, 52, 61, 154, 60, 2, 160, 249, 57, 182, 179, 55, 64, 8, 214, 175, 104, 88, 61, 131, 82, 251, 218, 153, 216, 117, 223, 154, 41, 4, 186, 113, 218, 255, 209, 119, 140, 1, 10, 85, 126, 18, 115, 28, 185, 194, 186]), value: EventValue([152, 161, 165, 242, 26, 19, 187, 161, 55, 244, 66, 240, 226, 246, 106, 73, 186, 129, 87, 57, 181, 95, 205, 140, 90, 187, 255, 253, 130, 147, 208, 83, 166, 245, 5, 55, 122, 167, 184, 97, 26, 206, 163, 140, 225, 152, 23, 189, 81, 227, 12, 125, 119, 3, 247, 182, 159, 179, 68, 92, 145, 208, 213, 187, 204, 166, 158, 236, 68, 165, 112, 113, 84, 73, 6, 23, 160, 115]) }, Event { key: EventKey([22, 182, 249, 100, 132, 205, 54, 39, 209, 117, 19, 164, 58, 134, 17, 210, 204, 64, 145, 65, 152, 159, 0, 73, 97, 33, 249, 88, 114, 127, 81, 199, 254, 105, 194, 38, 136, 233, 230, 132, 90, 77, 204, 27, 226, 240, 163, 25, 159, 35, 111, 48, 181, 248, 19]), value: EventValue([255, 39, 228, 140, 213, 181, 71, 119, 167, 54, 72, 217, 150, 237, 85, 51, 129, 227, 248, 211, 50, 110, 60, 95, 9, 112, 250, 140, 210, 177, 163, 229, 14, 132, 233, 250, 167, 169, 56, 211, 221, 34, 252, 57, 182, 100, 69, 200, 144, 255, 30, 13, 194, 221, 6, 56, 176, 13, 144, 228, 89, 49, 167, 69, 81, 55, 118, 75, 187]) }, Event { key: EventKey([52, 147, 140, 222, 48, 211, 101, 241, 8, 135, 228, 241, 206, 55, 23, 85, 65, 151, 103, 110, 172, 244, 48, 45, 84, 213, 149, 200, 42, 201, 119, 63, 246, 53, 246, 1, 191, 125, 131, 253, 8, 48, 68, 210, 105, 54, 88, 28]), value: EventValue([112, 72, 133, 253, 172, 209, 216, 109, 174, 42, 197, 4, 195, 122, 162, 83, 112, 253, 193, 95, 68, 72, 225, 42, 250, 46, 155, 22, 39, 66, 65, 160, 131, 230, 28, 240, 201, 167, 90, 88, 246, 201, 229, 223, 186, 5, 101, 246, 249, 118, 218, 199, 182, 161, 151, 225, 235, 192, 77, 45, 147, 19, 198, 177, 216]) }, Event { key: EventKey([26, 122, 160, 117, 247, 22, 4, 5, 7, 164, 38, 221, 133, 150, 182, 237, 84, 229, 31, 225, 232, 222, 104, 72, 42, 50, 70, 126, 11, 216, 139, 16, 202, 87, 19, 210, 75, 250, 195, 216, 217, 57, 188, 22, 102, 136, 87, 29, 232, 178, 114, 138, 57, 196, 129, 242, 153, 12]), value: EventValue([47, 78, 45, 192, 60, 234, 123, 165, 212, 202, 165, 95, 122, 207, 152, 234, 21, 90, 178, 232, 162, 124, 41, 196, 86, 33, 18, 105, 83, 243, 94, 137, 255, 241, 237, 71, 236, 35, 66, 63, 26, 58, 179, 77, 169, 71, 94, 211, 162, 155, 249, 23, 134, 34, 218, 145, 183, 37, 228, 19, 176, 174, 157, 130, 166, 247, 188, 32, 174, 137, 135]) }, Event { key: EventKey([50, 148, 158, 183, 43, 4, 144, 100, 238, 105, 20, 170, 110, 97, 136, 115, 163, 197, 0, 123, 0, 232, 117, 182, 103, 15, 64, 159, 88, 92, 78, 163, 159, 244, 178, 198, 146, 192, 30, 19, 235, 20, 202, 41, 158, 138, 250, 223, 102, 115, 103, 16, 54, 77, 4, 225, 169, 156, 72, 179, 66, 24, 216, 188, 87, 97, 160, 119, 94, 236, 87]), value: EventValue([48, 102, 155, 107, 26, 199, 222, 162, 97, 93, 28, 157, 169, 239, 180, 7, 206, 47, 242, 167, 42, 117, 23, 88, 31, 56, 181, 226, 21, 4, 123, 93, 63, 143, 102, 186, 180, 54, 41, 245, 88, 4, 5, 245, 160, 99, 100, 189, 219, 53, 47, 110, 189, 191, 117, 56, 156, 60, 236, 72]) }], receipt: 2768305032 }], inner: 2644019945 }, BatchReceipt { batch_hash: [61, 249, 240, 20, 17, 111, 24, 235, 241, 200, 68, 108, 243, 89, 33, 143, 51, 115, 83, 146, 207, 66, 141, 119, 29, 239, 195, 167, 57, 160, 156, 159], tx_receipts: [TransactionReceipt { tx_hash: [139, 141, 232, 157, 95, 122, 200, 126, 247, 41, 240, 98, 169, 254, 81, 94, 92, 152, 122, 216, 114, 192, 226, 59, 91, 18, 166, 254, 102, 96, 138, 39], body_to_save: Some([126, 181, 9, 162, 33, 181, 14, 28, 15, 77, 25, 209, 166, 25, 235, 170, 11, 16, 112, 125, 15, 223, 209, 116, 208, 37, 110, 90, 136, 16, 111, 93, 83, 97, 41, 147, 18, 20, 44, 207, 251, 184, 158, 69, 114, 234, 206, 212, 90, 229, 12, 177, 168, 154, 127, 52, 164, 154, 101, 67, 23, 41, 42, 149, 87, 179, 189, 234, 148, 162, 67, 204, 11, 171, 85, 179, 127, 215, 155, 41, 64, 115, 231, 112, 198, 251, 253, 177, 240, 192, 116, 40]), events: [], receipt: 566006908 }, TransactionReceipt { tx_hash: [230, 226, 106, 48, 116, 194, 82, 107, 131, 143, 100, 183, 172, 183, 38, 58, 181, 217, 184, 97, 13, 38, 193, 72, 170, 28, 69, 175, 134, 153, 184, 160], body_to_save: Some([231, 189, 85, 124, 198, 62, 42, 85, 208, 178, 173, 0, 124, 206, 68, 252, 230, 177, 221, 40, 245, 250, 126, 91, 55, 188, 77, 124, 155, 70, 249, 172, 175, 193, 130]), events: [Event { key: EventKey([62, 38, 24, 71, 54, 40, 10, 182, 244, 86, 127, 23, 42, 254, 105, 9, 73, 162, 103, 45, 104, 166, 35, 205, 164, 213, 42, 105, 232, 240, 118, 5, 191, 152, 87, 58, 188, 92, 250, 218, 37, 12, 199, 226, 7, 183, 216, 227, 13, 15, 154, 226, 163, 150, 164, 8, 227, 95, 50, 33, 239]), value: EventValue([251, 207, 24, 155, 127, 177, 248, 90, 189, 236, 223, 30, 16, 245, 245, 69, 232, 57, 20, 188, 79, 68, 218, 209, 158, 174, 152, 71, 97, 15, 15, 37, 146, 133, 215, 199, 229, 4, 21, 251, 196, 174, 76, 32, 38, 187, 158, 8, 210, 200, 150, 255]) }, Event { key: EventKey([51, 75, 9, 36, 14, 240, 5, 199, 177, 202, 255, 200, 223, 63, 181, 253, 29, 203, 4, 144, 250, 111, 140, 16, 226, 72, 171, 200, 91, 180, 144, 180, 69, 137, 161, 79, 223, 238, 82, 140, 253, 70, 136, 131, 45]), value: EventValue([176, 128, 134, 45, 133, 77, 58, 130, 216, 3, 113, 65, 205, 168, 179, 23, 252, 8, 205, 188, 81, 18, 144, 58, 111, 242, 212, 169, 140, 172, 60, 54, 149, 196, 82, 97, 36, 96, 37, 234, 38, 218, 77, 86, 131, 231, 252, 244, 153, 22, 15, 235, 152, 9, 35, 47, 140, 117, 107, 171, 78, 227]) }, Event { key: EventKey([170, 195, 219, 202, 46, 127, 176, 236, 20, 100, 82, 84, 33, 194, 86, 171, 42, 109, 8, 151, 180, 76, 173, 210, 39, 255, 148, 155, 85, 46, 61, 29, 185, 179, 92, 11, 188, 51, 216, 18, 240, 228, 176, 165, 68, 80, 229, 168, 114]), value: EventValue([221, 94, 98, 156, 228, 18, 146, 198, 233, 51, 194, 61, 78, 13, 195, 152, 168, 140, 83, 82, 180, 128, 162, 160, 139, 3, 55, 84, 149, 140, 79, 43, 52, 223, 210, 134, 255, 212, 50]) }], receipt: 2748930522 }, TransactionReceipt { tx_hash: [125, 73, 13, 201, 11, 187, 44, 139, 166, 144, 4, 166, 196, 48, 211, 201, 249, 81, 157, 84, 11, 238, 81, 244, 253, 13, 20, 210, 129, 205, 74, 232], body_to_save: Some([215, 50, 99, 187, 90, 248, 76, 4, 48, 218, 73, 37, 5, 58, 163, 132, 82, 83, 60, 197, 188, 175, 100, 72, 182, 193, 211, 108, 184, 214, 108, 243, 97, 44, 126, 98, 61, 251, 136, 46, 116]), events: [Event { key: EventKey([209, 241, 152, 172, 100, 27, 218, 149, 240, 15, 255, 15, 0, 250, 158, 10, 35, 227, 207, 86, 55, 214, 213, 216, 202, 47, 21, 87, 251, 145, 222, 183, 79, 173, 228, 172, 205, 123, 97, 20, 214, 172, 68, 42, 224, 198, 231, 98, 43, 185, 169, 199, 108, 235, 185, 169, 191, 142, 179, 175, 172, 50, 156, 59, 160, 25, 179, 144, 41, 194, 203, 59, 44, 41, 178, 102, 68, 233, 86, 197, 210, 221, 48, 244, 36, 152, 189, 191, 153, 98, 193, 151]), value: EventValue([195, 113, 246, 77, 208, 5, 216, 85, 4, 38, 2, 182, 247, 207, 6, 23, 128, 61, 63, 63, 242, 191, 82, 16, 232, 10, 136, 221, 59, 249]) }, Event { key: EventKey([108, 151]), value: EventValue([2, 155, 231, 149, 84, 76, 225, 21, 237, 154, 247, 160, 109, 32, 213, 215, 124, 21, 80, 246, 135, 234, 130, 159, 136, 112, 10, 213, 9, 175, 128, 60, 166, 151, 105, 9, 90, 12, 202, 40, 55, 135, 208, 215, 70, 146, 117, 185, 79, 9, 30, 219, 165, 59, 47, 224, 241, 253, 56, 10, 183, 53, 199, 159, 168, 131, 148, 1, 6, 174, 158, 230, 229, 40, 136, 145, 232]) }, Event { key: EventKey([230, 178, 67, 12, 49, 214, 2, 60, 161, 26, 148, 232, 61, 108, 247, 16, 67, 41, 250, 146, 125, 199, 254, 89, 13, 111, 23, 142, 251, 37, 160, 114, 213, 4, 213, 234, 159, 65, 207, 93, 6, 248, 67, 181, 228, 40, 201, 215, 190, 223, 130, 46]), value: EventValue([22, 172, 160, 102, 251, 108, 67, 60, 179, 212, 221, 142, 248, 4, 95, 105, 104, 252, 201, 61, 81, 225, 157, 252, 96, 227, 229, 227, 11, 165, 59, 54, 46, 214, 57, 108, 173, 5, 150, 234, 166, 81, 224, 6, 42, 147, 16, 91, 175, 21, 207, 147, 118, 200, 5, 18, 129, 209, 19, 255, 244, 234, 124, 140, 87, 67, 31, 164, 179, 189, 194, 127, 206, 71, 215, 42, 191, 96, 58, 135, 154, 169, 211, 185, 22, 198, 78, 52, 211, 213]) }, Event { key: EventKey([184, 8, 23, 224, 134, 31, 22, 52, 249, 130, 181, 84, 21, 186, 65, 114, 118, 191, 7, 163, 100, 251, 42, 84, 112, 9, 28, 236, 35, 219, 81, 164, 107, 8, 110, 1, 25, 38, 238, 237, 73, 25, 68, 185, 103, 245, 237, 115, 3, 103, 242, 169, 208, 166, 95, 171, 177, 50, 200, 44, 17, 176, 150, 177, 215, 250, 119, 177, 131, 150, 65, 176, 30, 134, 78, 92, 76, 45, 225, 147]), value: EventValue([205, 139, 175, 39, 184, 209, 161, 150, 248, 253, 216, 68, 4, 239, 146, 197, 49, 9, 231, 214, 68, 208, 53, 26, 53, 208, 44]) }, Event { key: EventKey([91, 218, 111, 246, 15, 119, 145, 182, 239, 186, 25, 88, 197, 184, 85, 100, 161, 91, 16, 89, 254, 74, 44, 48, 13, 9, 6]), value: EventValue([207, 85, 178, 25, 195, 179, 249, 231, 218, 250, 209, 163, 74, 18, 82, 80, 211, 153, 245, 252, 32, 143, 149, 167, 158, 55]) }], receipt: 510400088 }, TransactionReceipt { tx_hash: [137, 85, 8, 186, 25, 255, 33, 41, 141, 93, 248, 95, 152, 185, 135, 98, 29, 211, 65, 182, 134, 167, 74, 198, 250, 190, 106, 117, 227, 134, 128, 201], body_to_save: None, events: [Event { key: EventKey([]), value: EventValue([77, 150, 231, 143, 222, 87, 19, 242, 13, 5, 59, 33, 120, 211, 118, 86, 139, 17, 29, 234, 160, 200, 104, 233, 42, 3, 184, 153, 50, 22, 138, 36, 123, 17, 136, 144, 82, 85, 54, 99, 196, 239, 47, 174, 29, 36, 43, 110, 230, 140, 93, 179, 10, 39, 119, 190, 34, 95, 28, 24, 250, 176]) }, Event { key: EventKey([102, 113, 201, 135, 81, 111, 181, 16, 100, 40, 222, 80, 15]), value: EventValue([36, 220, 158, 191, 41, 136, 214, 54, 71, 9, 84, 55, 60, 4, 42, 3, 143, 113, 22, 249, 51, 172, 149, 207, 187, 236, 118, 59, 37, 82, 86, 229, 33, 61, 14, 218, 250, 203, 196, 176, 28, 0, 6, 107]) }, Event { key: EventKey([79, 229, 121, 117, 207, 227, 202, 246, 111, 28, 114, 118, 202, 14, 1, 41, 51, 75, 24, 152, 119, 194, 161, 67, 92, 188, 8, 87, 146, 19, 133, 224, 28, 162, 85, 103, 34, 210, 6, 34, 190, 41, 131, 182, 175, 220, 14, 37, 117, 238, 1, 84, 180, 220, 82, 56, 246, 74, 19, 160, 222, 132, 149]), value: EventValue([31, 167, 234, 13, 191, 70, 249]) }, Event { key: EventKey([98, 82, 160, 178, 2, 10, 62, 125, 30, 152, 7, 171, 47, 143, 231, 240, 203, 251, 214, 195, 201, 225, 189, 57, 28, 151, 207, 84, 28, 90, 133, 154, 122, 174, 84, 168, 14, 95, 176, 74, 133, 229, 143, 78, 254, 56, 107, 169, 106, 188, 4, 114, 211, 50, 230, 112, 36, 144, 176, 62, 173, 145, 96, 138, 244, 9, 234, 2, 250, 221, 168, 8, 105, 7, 227, 207, 15, 125, 66, 96, 99, 45, 12, 16, 34, 99, 111, 184, 226, 14, 185, 31, 86, 215, 109, 44]), value: EventValue([98, 247, 100, 23, 76, 213, 220, 50, 190, 235, 41, 237, 133, 9, 10, 46, 121, 149, 11, 208, 114, 240, 187, 48, 67, 226, 192, 194, 121, 36, 199, 182, 177, 84, 243, 216, 124, 30, 239, 136, 123, 251, 106, 232, 170, 21, 73, 111, 248, 89, 191, 40, 112, 50, 219, 11, 161, 171, 227, 89, 239, 23, 74, 23, 98, 141, 92, 183, 236, 179, 249, 189, 150, 1, 111, 76, 252, 190, 94, 28, 28, 59, 142, 57, 149, 133, 246, 106, 29, 217, 141, 77, 148, 156, 187, 172, 227]) }, Event { key: EventKey([139, 182, 223, 146, 220, 194, 206, 167, 38, 77, 82, 40, 248, 26, 26, 228, 67, 143, 42, 205, 191, 24, 99, 160, 203, 28, 143, 161, 0, 83, 211, 1, 10, 248, 238, 170, 58, 121, 239, 50, 106, 166, 233, 109, 253, 138, 164, 3, 205, 183, 99, 255, 128, 151, 208, 221, 154, 75, 58, 255, 31, 165, 241, 124, 179, 155, 166, 185, 105, 49, 37, 185, 233, 5, 128, 39, 109, 117, 44, 147, 64, 116, 118, 138, 32, 194, 38, 100, 128, 248]), value: EventValue([146, 20, 146, 94, 99, 173, 132, 121, 114, 33, 140, 116, 244, 204, 156, 206, 96, 138, 178, 11, 59, 240, 229, 12, 225, 189, 181, 228, 96, 75, 227, 238, 60, 249, 14, 179, 22, 125, 192, 74, 78, 74, 163, 80, 182]) }, Event { key: EventKey([122]), value: EventValue([208, 247, 156, 24, 243, 229, 223, 213, 70, 35, 93, 138, 222, 33, 72, 194, 71, 231, 40, 245, 108, 55, 241, 25, 167, 6, 224, 199, 33, 6, 172, 80, 138, 4, 40, 241, 117, 227]) }, Event { key: EventKey([166, 61, 121, 197, 133, 238, 130, 130, 105, 221, 65, 44, 190, 91, 24, 67, 188, 191, 171, 231, 216, 243, 13, 206, 127, 23, 180, 7, 145, 112, 205, 213, 173, 155, 2, 57, 224, 67, 157, 32, 184, 5, 179, 87, 145, 182, 10, 205, 138, 167, 25, 1, 221, 166, 237, 211, 186, 247, 240, 83, 135, 250, 100, 250, 96, 206, 136, 166, 216, 132, 217, 189, 120, 90, 55, 213, 161, 224, 135, 218, 69, 54, 199, 102, 230, 182, 118]), value: EventValue([181, 79, 177, 157, 34, 88, 70, 122, 144, 101, 199, 139, 228, 48, 254, 39, 212, 158, 69, 169, 33, 233, 71, 55, 131, 84, 6, 38, 40, 118, 103, 212, 231, 202, 43, 92, 60, 19, 228, 128, 13, 103, 23, 134, 230, 15, 171, 191, 6, 194, 201, 222, 108, 64, 12, 236, 151, 88, 222, 244, 94, 235, 42, 130, 241, 61, 123, 81, 142, 160, 39, 227, 254, 254, 7, 221, 39, 225, 183, 129, 119, 110, 181, 43, 43, 42, 93, 212, 129, 3, 175, 196, 54]) }, Event { key: EventKey([101, 18, 136, 22, 141, 107, 178, 226, 39, 122, 144]), value: EventValue([206, 146, 155, 100, 8, 50, 110, 55, 141, 208, 48, 72, 111, 47, 137, 72, 210, 3, 190, 34, 75, 219, 31, 17, 36, 206, 11, 202, 225, 18]) }, Event { key: EventKey([26, 113, 226, 216, 26, 234, 136, 67, 70, 202, 13, 73, 10, 14, 59, 18, 222, 183, 132, 54, 101, 86, 145, 248, 245, 170, 203, 94, 99, 225, 198, 52, 9, 120, 53, 20, 50, 29, 10, 74, 37, 253, 38, 163, 63, 213, 204, 22, 234, 79, 50, 108, 2, 248, 226, 2, 27, 101, 78, 108, 134, 12, 215, 61, 129]), value: EventValue([190, 122, 44, 243, 79, 232, 111, 4, 247, 37, 121, 209, 180, 192, 6, 228, 77, 210]) }], receipt: 2387862102 }, TransactionReceipt { tx_hash: [90, 95, 92, 68, 10, 28, 15, 138, 4, 171, 134, 93, 194, 214, 94, 194, 139, 185, 55, 96, 199, 17, 6, 71, 233, 139, 56, 109, 87, 182, 95, 8], body_to_save: None, events: [Event { key: EventKey([252, 9, 133, 232, 130, 36, 172, 52, 103, 21, 229, 121, 200, 16, 195, 10, 142, 93, 204, 222, 146, 182, 186, 56, 206, 135, 214, 3, 197, 181, 138, 229, 47, 254, 207, 111, 97, 95, 233, 156, 170, 246, 197, 230, 210, 175, 45, 237, 132, 221, 38, 114, 77, 8, 72, 216, 92, 209, 51, 235, 95, 6, 85, 60, 128, 74, 167, 209, 21, 157, 105, 142, 143, 2, 88, 41, 121, 171, 52, 104, 80, 193, 5]), value: EventValue([138, 152, 23, 196, 75, 159, 45, 5, 135, 57, 222, 188, 168, 169, 88, 60, 220, 39, 9, 147, 192, 212, 128, 214, 204, 22, 136, 160, 1, 212, 19, 30, 231, 7, 236, 146, 220, 79, 1, 191, 33, 20, 178, 113, 115, 205, 64, 220, 54, 201, 80, 0, 95, 68, 157, 33, 229, 249, 145, 154, 216, 253, 6, 113, 78, 151, 40, 43, 20, 180, 29, 106, 128, 246, 114, 75, 135, 252, 219, 18, 94, 219]) }, Event { key: EventKey([180, 2, 7, 86, 54, 33, 187, 46, 211, 193, 218, 171, 92, 116, 47, 244, 145, 123, 244, 142, 98, 179, 38, 29, 140, 29, 213, 245, 13, 4, 100, 78, 40, 251, 174, 218, 47, 51, 174, 226, 161, 0, 48, 42, 33, 85, 171, 186, 171, 155, 25, 144, 105, 82, 48, 214, 203, 192, 194, 130, 163, 111, 175, 198]), value: EventValue([222, 7, 239, 199, 90, 134, 40, 36, 153, 208, 248, 158, 165, 19, 132, 176, 38, 104, 233, 124, 17, 75, 226, 42, 177, 176, 174, 91, 207, 231, 124, 64, 1, 134, 102, 46, 247, 100, 235, 56, 86, 250, 71, 162, 95, 141, 64, 22, 12, 172, 135, 252, 80, 252, 41, 208, 131, 88, 104, 115, 143, 139, 2, 99, 45, 104, 214, 137, 134, 2, 102, 61, 96, 111, 237, 121, 224, 180]) }, Event { key: EventKey([220, 39, 71, 114, 61, 252, 61, 227, 251, 181, 196, 137, 219, 193, 144, 236, 63]), value: EventValue([222, 35, 194, 233, 151, 222, 1, 118, 144, 8, 23, 184, 44, 186, 32, 89, 20, 232, 113, 106, 167, 187, 236, 234, 102, 231, 238, 251, 59, 25]) }, Event { key: EventKey([67, 146, 254, 144, 34, 223, 154, 239, 15, 34, 123, 212, 227, 57, 122, 75, 106, 105, 220, 203, 161, 245, 52, 61, 61, 47, 83, 144, 243, 134, 244, 180, 96, 206, 45, 65, 87, 50, 93, 20, 141, 90, 26, 39, 48, 192, 44, 58, 184, 104, 126, 79, 182, 62, 75, 89, 184, 233, 173, 155, 72, 88, 82, 144, 7, 168, 40, 98, 119, 61, 63, 15, 193, 196, 245, 20, 81, 142, 114]), value: EventValue([34, 184, 155, 176, 43, 175, 155, 203, 195, 122, 131, 147, 62, 106, 65, 229, 75, 173, 186, 156, 50, 18, 182, 162, 88, 85, 205, 201, 177, 192, 252, 122, 2, 103, 116, 64, 119, 77, 162, 77, 36, 153, 40, 193, 44]) }, Event { key: EventKey([119, 81, 55, 105, 12, 84, 56, 146, 199, 210, 240, 236, 92, 158, 156, 49, 179, 174, 253, 38, 8, 19, 3, 218, 215]), value: EventValue([76, 1, 189, 114, 202, 214, 223, 91, 124, 23, 238, 77, 222, 90, 85, 109, 189, 137, 25, 219, 9, 82, 214, 175, 243, 145, 253, 93, 61, 226, 124, 44, 204, 109, 208, 208, 9, 33, 86, 206, 127, 138, 145, 33, 10, 243, 190, 46, 5, 64, 85, 185, 214, 183, 158, 156, 144, 159, 113, 98, 144, 60, 156, 100, 91, 70, 12, 103, 97, 132, 87, 43, 88, 158, 214, 167, 219, 200, 236, 1, 157, 243, 182, 0, 64, 4, 121, 0, 141, 128, 248, 190, 197, 51, 38, 127, 86, 214, 186]) }, Event { key: EventKey([185, 184, 205, 50, 220, 4, 60, 130, 135, 209, 173, 105, 8, 95, 212, 110, 27, 131, 40, 223, 107, 42, 39, 173, 24, 247, 155, 165, 175, 153, 248, 16, 124, 13, 114, 250]), value: EventValue([50, 147, 25, 222, 41, 200, 140, 195, 26, 179, 206, 196, 227, 243, 114, 123, 15, 58, 220]) }, Event { key: EventKey([127, 35, 12, 55, 183, 152, 191]), value: EventValue([180, 69, 121, 54, 84, 168, 124, 55, 246, 178, 120, 223, 147, 119, 227, 42, 221, 59, 245, 169, 110, 84, 255, 223, 78, 101, 196, 209, 209, 209, 239, 29, 224, 39, 104, 51, 14, 68, 237, 27, 198, 209, 212, 98, 52, 61, 49, 79, 202, 89, 158, 227, 150, 197, 229, 184, 158, 17, 149, 198, 162, 250, 67, 1, 149, 73, 201, 2, 134, 26, 49, 3, 72, 183, 65, 162, 75, 110, 216, 75, 195, 146, 125, 65, 21, 65, 234, 82, 43, 185, 90, 0, 55, 58, 182, 51, 185, 130, 104]) }], receipt: 1140914293 }], inner: 3347388504 }, BatchReceipt { batch_hash: [221, 197, 230, 173, 54, 50, 157, 217, 67, 40, 64, 74, 95, 188, 188, 175, 250, 161, 191, 131, 61, 154, 128, 92, 44, 170, 58, 41, 37, 163, 135, 40], tx_receipts: [TransactionReceipt { tx_hash: [178, 142, 241, 193, 49, 125, 59, 233, 110, 140, 156, 70, 36, 109, 120, 174, 12, 13, 16, 116, 229, 108, 12, 65, 146, 29, 178, 253, 36, 24, 190, 125], body_to_save: None, events: [], receipt: 406344663 }, TransactionReceipt { tx_hash: [149, 191, 14, 37, 215, 210, 35, 6, 152, 191, 187, 46, 152, 34, 8, 146, 208, 34, 214, 136, 54, 35, 41, 92, 97, 9, 101, 244, 90, 100, 72, 229], body_to_save: None, events: [Event { key: EventKey([1, 57, 16, 248, 138, 119, 37, 77, 179, 217, 128, 179, 58, 78, 152, 108, 181, 204, 104, 70, 170, 188, 100, 37, 131, 170, 244, 184, 206, 15, 69, 192, 72, 41, 138, 232, 135, 38, 40, 59, 197, 210, 19, 103, 244, 42, 250, 25, 100, 181, 132, 209, 209, 77, 255, 229, 163, 94, 193, 14, 211, 231, 30]), value: EventValue([184, 105, 0, 1, 74, 88, 55, 199, 98, 7, 21, 76, 78, 49, 220, 231, 124, 230, 254, 18, 176, 125, 123, 21, 113, 111, 142, 194, 237, 66, 54, 254, 96, 97, 153, 63, 80, 242, 47, 252, 75, 153, 176, 104, 8, 126, 32, 173, 53, 224, 156, 120]) }, Event { key: EventKey([]), value: EventValue([47, 173, 217, 122, 241, 10, 151, 52, 92, 79, 222, 35, 216, 134, 99, 165, 146, 37, 85, 161, 8, 146, 239, 90, 217, 36, 15, 139, 170, 61, 185, 161, 54, 174, 70, 173, 95, 193, 203, 93, 11, 67, 158, 36]) }, Event { key: EventKey([229, 90, 5, 69, 102, 134, 88, 147, 49, 122, 248, 69, 45, 73, 100, 19, 136, 98, 169, 61, 200, 73, 77, 249, 202, 148, 122, 52, 129, 60, 87, 65, 210, 52, 20, 200, 209, 24, 147, 244, 17, 78]), value: EventValue([124, 59, 55, 77, 156, 157, 23, 88, 163, 35, 16, 138, 236, 39, 235, 61, 60, 243, 78, 178, 177, 242, 14, 183, 45, 49, 161]) }, Event { key: EventKey([159, 86, 98, 173, 203, 237, 136, 221, 127, 33, 231, 41, 28, 21, 18, 150, 170, 119, 173, 145, 14, 137, 77, 148, 214, 12, 153, 230, 18, 203, 238, 175, 114, 162, 63, 7, 114, 64, 141, 43, 81, 0, 16, 177, 174, 68, 255, 55, 160, 188, 99, 240, 96, 240, 190, 229, 118, 202, 245, 25]), value: EventValue([11, 102, 223, 245, 227, 53, 48, 12, 176, 205, 62, 140, 138, 110, 235, 67, 59, 135, 124, 242, 182, 98, 132, 33, 143, 150, 236, 232, 29, 234, 52, 100, 240, 92, 240, 75, 186, 198, 229, 204, 223, 47, 58, 93, 193, 209, 127, 77, 96, 184, 217, 224, 80, 221, 6, 39, 104, 232, 126, 26, 127, 121, 207, 84, 40, 88, 127, 108, 169, 70, 26, 33, 26, 193, 141, 234, 100, 56, 13, 206, 1, 154, 48, 105, 209, 90, 123, 166, 232, 164, 95, 181, 236, 253, 39, 22, 96]) }, Event { key: EventKey([178, 102, 53, 173, 160, 80, 114, 120, 56, 17, 192, 202, 234, 248, 24, 133, 78, 9, 248, 160, 250, 131, 102, 157, 131, 138, 3, 237, 57, 95, 151, 76, 76, 223, 195, 45, 127, 163, 57, 247, 152]), value: EventValue([61, 60, 46, 41, 162, 128, 17, 246, 68, 15, 174, 78, 220, 7, 149, 46, 170, 161, 15, 123, 129, 233, 157, 76, 196]) }, Event { key: EventKey([84, 177, 219, 9, 245, 58, 244, 53, 202, 134, 212, 214, 144, 57, 20, 97, 85, 186, 183, 128, 98, 157, 116, 140, 147, 103, 23, 48, 75, 243, 38, 67, 35, 56, 104, 31, 133, 217, 16, 112, 4, 242, 203, 67, 216, 23, 104, 107, 235, 243, 128, 242, 96, 64, 82, 161, 182, 108, 176, 85, 95, 91, 72, 196, 78, 121, 21, 13, 26, 244, 231, 225, 104, 37, 97, 136, 203, 109, 71, 32, 83, 205, 87, 235, 174, 83, 60, 26, 182, 221, 49, 41, 5, 188, 148, 132, 241, 127, 113]), value: EventValue([198, 6, 46, 235, 224, 115, 223, 226, 175, 58, 130, 144, 53, 88, 136, 119, 235, 161, 150, 227, 204, 37, 215, 60, 189, 111, 102, 171, 214, 49, 104, 28, 79, 218, 245, 253, 166, 14, 233, 168, 19, 46, 33, 160, 209, 164, 109, 65, 92, 234, 224, 118, 138, 123, 247, 4, 252, 34, 223, 17, 188, 213, 254, 177]) }], receipt: 2582408504 }, TransactionReceipt { tx_hash: [154, 232, 139, 199, 50, 196, 109, 244, 33, 88, 23, 187, 138, 93, 138, 91, 86, 230, 36, 165, 3, 115, 48, 187, 176, 220, 81, 117, 137, 140, 4, 176], body_to_save: None, events: [Event { key: EventKey([194, 133, 232, 132, 119, 52, 111, 69, 203, 154, 32, 247, 216, 15, 52, 9, 254, 223, 223, 117, 74, 98, 201, 203]), value: EventValue([115, 223, 18, 174, 140, 176, 38, 111, 133, 152, 234, 61, 72, 37, 80, 107, 107, 101, 161, 149, 70, 237, 96, 88, 95, 173, 179, 170, 132, 179, 103, 0, 95, 171, 84, 9, 207, 109, 159, 242, 74, 179, 225, 179, 237, 153, 28, 145, 136, 144, 172, 86, 180, 253, 62, 28, 32, 224, 191, 11, 162, 171, 65, 18, 223, 118, 172, 198, 40, 38, 70, 209, 227, 199]) }, Event { key: EventKey([124, 95, 151, 0, 99, 65, 63, 208, 115, 74, 42, 231, 57, 252, 125, 52, 64, 211, 74, 246, 143, 133, 40, 135, 33, 54, 67, 166, 185]), value: EventValue([169, 233, 206, 198, 19, 231, 7, 35, 110, 145, 26, 162, 94, 56, 59, 139, 83, 181, 173, 65, 4, 210, 135, 109, 173, 219, 148, 175, 34, 150, 232, 172, 147, 245, 44, 47, 52, 109, 125, 253, 10, 128, 5, 4, 133, 154, 59, 45, 133, 249, 79, 37, 20, 46, 42, 83, 147]) }], receipt: 830711083 }, TransactionReceipt { tx_hash: [58, 239, 230, 227, 248, 131, 129, 66, 198, 9, 254, 10, 77, 73, 146, 131, 89, 207, 74, 67, 118, 89, 237, 133, 132, 154, 71, 127, 54, 197, 242, 15], body_to_save: Some([39, 85, 199, 20, 43, 32, 25, 53, 7, 150, 93, 163, 246, 30, 208, 167, 247, 154, 14, 107, 27, 145, 80, 57, 164, 157, 94, 199, 246, 234, 99, 241, 163, 14, 139, 25, 185, 156, 123, 141, 61, 226, 109, 187, 147, 219, 100, 146, 41, 70, 208, 226, 30, 115, 13, 15, 163, 245, 180, 166, 3, 155, 93, 81, 177, 94, 30, 178, 65, 190, 133, 68, 252, 212, 6, 3, 120, 133, 87, 92, 136, 150, 242]), events: [Event { key: EventKey([177, 19, 130, 245, 24, 138, 139, 14, 194, 20, 36, 177, 177, 75, 242, 73, 103, 33, 92, 105, 66, 26, 173, 24, 226, 231, 184, 144, 85, 106, 104, 192, 5, 147, 124, 134, 252, 18, 115, 104, 201, 54, 130, 170, 172, 247, 15, 172, 206, 129, 176, 94, 171, 23, 188, 65, 112, 40, 213, 221, 226, 217, 182, 82, 196, 148, 34, 8, 255, 158, 80, 78, 45, 50, 71]), value: EventValue([153, 67, 184, 155, 236, 227, 206, 95, 69, 193, 206, 199, 142, 194, 160, 38, 240, 193, 157, 111, 160, 229, 239, 209, 162, 4, 49, 3, 233, 244, 149, 158, 45, 59, 247, 22, 78, 168, 162, 51, 167, 248, 90, 104, 220, 94, 224, 230, 55, 236, 130, 148, 186, 4, 233, 201, 201, 134, 182]) }], receipt: 2207931766 }, TransactionReceipt { tx_hash: [145, 180, 43, 245, 207, 38, 157, 145, 68, 49, 130, 200, 141, 156, 142, 135, 46, 184, 66, 243, 109, 213, 15, 72, 242, 96, 64, 109, 3, 17, 73, 97], body_to_save: Some([74, 57, 108, 120, 36, 255, 194, 205, 22, 15, 134, 240, 84, 234]), events: [Event { key: EventKey([190, 78, 175, 7, 106, 19, 69, 71, 93, 42, 181, 80, 241, 251, 241, 16, 10, 239, 35, 30, 161, 216, 183, 217, 235, 197, 182, 198, 176, 253, 73, 210, 132]), value: EventValue([171, 191, 164, 38, 61, 165, 203, 106, 10, 43, 170, 50, 73, 39, 197, 83]) }, Event { key: EventKey([94, 70, 6, 21, 211, 48, 150, 239, 173, 129, 190, 214, 156, 16, 1, 165, 114, 71, 93, 50, 143, 41, 202, 13, 39, 245, 126, 1, 173, 219, 94, 180, 194, 143, 107, 26, 51, 39, 88, 30, 103, 109, 141]), value: EventValue([213, 142, 108, 76, 12, 170, 123, 21, 214, 189, 23, 16, 105, 123, 123, 72, 24, 27, 142, 111, 135, 129, 179, 219, 59, 218, 202, 26, 202, 114, 193, 112, 183, 121, 145, 135, 180, 64, 193, 10, 241, 135, 139, 216, 60, 79, 112, 202, 250, 162, 190, 175, 248]) }, Event { key: EventKey([73, 197, 198, 97, 74, 89, 172, 69, 118, 21, 212, 17, 231, 52, 150, 229, 155, 192, 40, 185, 202, 141, 251, 176, 50, 188, 188, 251, 156, 108, 55, 152, 106, 231, 62, 228, 140, 67, 239, 194, 219, 37, 117, 63, 48, 150, 8, 97, 21, 21, 9, 134, 46, 15, 148, 255, 212, 210, 72, 8, 139, 50, 186, 221, 56, 17, 37, 204, 211, 226, 226, 41, 226, 57, 52, 156, 84, 245, 209, 245, 102, 83, 133, 130, 126, 75, 166, 249, 16, 177, 108, 246, 48, 205, 203, 68, 141]), value: EventValue([169, 82, 126, 46, 252, 177, 175, 57, 9, 77, 7, 67]) }, Event { key: EventKey([225, 77, 99, 242, 228, 33, 30, 98, 47, 147, 177, 145, 108, 147, 30, 127, 55, 184, 64, 241, 3, 43, 216, 101, 31, 0, 185, 103, 209, 155, 67, 31, 200, 229, 244, 113, 198, 75, 140, 150, 225, 154, 48, 217]), value: EventValue([186, 33, 79, 2, 43, 20, 231, 103, 132, 200, 170, 221, 116, 120, 140, 154, 33, 205, 198, 56, 91, 59, 113, 228, 77, 98, 4, 51, 59, 231, 154, 199, 158, 216, 143, 116, 107, 32, 36, 182, 66, 160, 164, 210, 154, 38, 227, 121, 175, 108, 159, 6, 98, 244, 54, 8, 132, 215, 157, 148, 199, 246, 81, 48, 56, 124, 230, 121, 47, 208, 217, 65, 82, 133, 121, 52, 122, 138, 125, 205, 166, 29]) }], receipt: 388447772 }, TransactionReceipt { tx_hash: [128, 253, 198, 122, 142, 202, 238, 255, 149, 172, 63, 180, 182, 72, 150, 231, 123, 172, 229, 113, 187, 39, 123, 236, 194, 20, 21, 167, 151, 100, 38, 195], body_to_save: None, events: [Event { key: EventKey([175, 37, 249, 75, 76, 165, 77, 137, 240, 35, 86, 26, 51, 211, 54, 52, 141, 18, 233, 37, 56, 230, 92, 187, 122, 48, 254, 179, 99, 220, 187, 111, 126, 196, 165, 48, 61, 148, 178, 78, 245, 21, 27, 127, 27, 146, 43, 26, 34, 5, 64, 169, 67, 80, 92, 112, 195, 249, 40, 136, 226, 31, 83, 0, 217, 89, 249, 70, 240, 137, 128, 96, 21, 121, 80, 255, 254, 122, 131, 230, 75, 137, 34, 56, 124, 93, 85, 184, 126]), value: EventValue([99, 187, 143, 251, 76, 240, 83, 221, 177, 234, 0, 104, 189, 48, 158, 205, 225, 223, 62, 221, 231, 211, 194]) }, Event { key: EventKey([35, 97, 226, 228, 121]), value: EventValue([127, 162, 100, 146, 200, 82, 41]) }, Event { key: EventKey([23, 5, 89, 82, 62, 150, 231, 174, 89, 25, 240, 92, 190, 252, 245, 132, 165, 97, 18, 39, 70, 55, 228, 80, 34, 217, 147, 252, 89, 219, 70, 225, 108, 145, 195, 191, 107, 128, 149, 150, 62, 226, 18, 12, 220, 152, 65, 192, 3, 199, 48, 139, 132, 244, 143, 231, 146, 177, 37, 135, 171, 151, 97, 116, 43, 192, 169, 77, 209, 37, 254, 188]), value: EventValue([139, 89, 204, 14, 164, 81, 150, 136, 157, 53, 67, 185, 123, 123, 131, 177, 119, 1, 125, 67, 124, 234, 115, 133, 209, 193, 250, 248, 10, 59, 127, 105, 142, 112, 149, 89, 144, 194, 99, 233, 8, 228, 122, 97, 166, 3, 22, 25, 49, 4, 41, 0, 37, 87, 210, 29, 49, 191, 44, 144, 44, 209, 27, 125, 46, 168]) }], receipt: 126733437 }], inner: 2469968917 }, BatchReceipt { batch_hash: [180, 165, 178, 182, 27, 251, 180, 133, 100, 206, 154, 214, 111, 88, 201, 18, 210, 149, 36, 170, 196, 51, 154, 235, 5, 24, 18, 6, 196, 34, 139, 183], tx_receipts: [], inner: 1375875414 }, BatchReceipt { batch_hash: [92, 50, 40, 108, 245, 30, 196, 218, 250, 224, 161, 100, 228, 70, 200, 228, 19, 107, 102, 253, 249, 246, 69, 129, 115, 144, 0, 210, 76, 180, 10, 109], tx_receipts: [TransactionReceipt { tx_hash: [148, 49, 113, 147, 128, 56, 69, 201, 233, 88, 164, 4, 67, 175, 193, 171, 112, 216, 143, 234, 186, 156, 198, 68, 43, 112, 87, 191, 123, 211, 84, 178], body_to_save: Some([0, 229, 226, 232, 117, 20, 55, 105, 102, 35, 253, 238, 82, 228, 179, 108, 62, 106, 72, 169, 80, 133, 187, 21, 247, 6, 56, 148, 135, 56, 65, 106, 83, 160, 142, 239, 52, 49, 113, 245, 124, 254, 225, 195, 41, 135, 156, 102, 207, 1, 127, 18, 169, 16, 56, 216, 30, 25, 150, 63, 124, 216, 142, 204, 179, 23, 115, 92, 144, 72, 187, 105, 164, 242, 240, 149, 21, 149]), events: [Event { key: EventKey([70, 255, 244, 141, 54, 39, 140, 33, 234, 141, 189, 76, 113, 245, 199, 83, 125, 146, 184, 187, 242, 94, 99, 250, 82]), value: EventValue([207, 241, 157, 12, 3, 203, 200, 71, 122, 73, 229, 60, 207, 170, 243, 68, 182, 247, 22, 244, 212, 222, 105, 55, 102, 190, 172, 71, 106, 203, 4, 235, 134, 74, 182, 147, 170, 147, 229, 75, 248, 237, 5, 112, 2, 229, 222, 169, 110, 91, 190, 121, 153, 54, 229, 99, 210, 182, 158, 10, 157, 116, 171, 254, 132, 44, 181, 79, 172, 21, 54]) }], receipt: 939912390 }, TransactionReceipt { tx_hash: [90, 146, 112, 14, 172, 182, 101, 237, 229, 72, 223, 66, 193, 63, 241, 99, 4, 158, 214, 35, 242, 149, 225, 35, 166, 9, 99, 155, 170, 136, 243, 231], body_to_save: Some([107, 229, 174, 169, 130, 241, 171, 41, 238, 150, 148, 191, 161, 52, 225, 69, 178, 24, 9, 222, 178, 54, 62, 243, 198, 222, 34, 14, 0, 249, 249, 16, 32, 28, 165, 149, 115]), events: [Event { key: EventKey([224, 23, 226, 194, 74, 135, 128, 183, 139, 250, 33]), value: EventValue([100, 59, 186, 153, 3, 148, 84, 32, 27, 172, 100, 118, 138, 144, 230, 186, 7]) }, Event { key: EventKey([60, 103, 18, 154, 223, 143, 181, 36, 21, 108, 57, 58, 242, 130, 133, 200, 229, 158, 33, 200, 142, 16, 200, 98, 81, 216, 176, 16, 91, 56, 203, 81, 56, 239, 186, 185, 46, 82, 207, 126, 170, 59, 52, 116, 16, 198, 17, 113, 114, 250, 1, 81, 32, 252, 130, 8]), value: EventValue([228, 47, 86, 56, 43, 102, 247, 72, 87, 38, 138, 147, 152, 191, 88, 247, 248, 17, 160, 232, 167, 243, 192, 11, 22, 32, 43, 154, 163, 2, 117, 228, 24, 192, 193, 5, 39, 5, 33, 147, 4, 18, 203, 240, 192, 186, 4, 174, 235, 224, 107, 190, 187, 233, 64, 76, 65, 245, 170, 170, 215, 41, 83, 178, 210, 198, 113, 85, 39, 162, 123, 242, 72, 184, 192, 116, 49, 122, 1, 179, 109, 191, 97, 75, 211, 44, 148, 24, 6]) }, Event { key: EventKey([33, 169, 211, 51, 85, 213, 219, 231, 125, 142, 153, 97, 242, 198]), value: EventValue([112, 93, 58, 126, 115, 48, 111, 82, 224, 205, 117, 137, 199, 236, 181, 133, 254, 205, 208, 12, 74, 8, 224, 231, 120, 52, 192, 3, 145, 240, 94, 35, 68, 181, 76, 85, 104, 175, 67, 21, 119, 68, 195, 40, 228, 191, 127, 171, 244, 5, 205]) }, Event { key: EventKey([71, 129, 111, 3, 222, 73, 198, 136, 178, 173, 187, 189, 63, 225, 129, 193, 147, 17, 69, 105, 156, 221, 105, 3, 17, 88, 228, 133, 34, 135, 35, 185, 229, 12, 201, 51, 231, 244, 219, 82, 68, 76, 156, 100, 248, 47, 61, 2, 123, 148, 96, 95, 183, 151, 20, 190, 13, 251, 50, 191, 88, 114, 250, 147, 159, 233, 19, 96, 125, 74, 2, 222, 171, 40, 248, 186, 244, 196, 94, 176, 142, 148, 55, 142, 132, 55, 51, 58, 215, 147, 63, 215, 151, 129, 27, 152]), value: EventValue([110, 183, 188, 221, 100, 177, 17, 142, 41, 36, 50, 90, 71, 11, 184, 31, 69, 107, 156, 215, 252, 208, 117, 67, 254, 137, 125, 136, 117, 61, 92, 122, 129]) }], receipt: 1967543870 }, TransactionReceipt { tx_hash: [233, 247, 253, 46, 160, 217, 162, 244, 111, 53, 152, 15, 210, 195, 21, 243, 70, 124, 111, 20, 166, 45, 37, 15, 63, 238, 47, 235, 10, 61, 128, 140], body_to_save: Some([200, 59, 94, 130, 60, 107, 194, 87, 17, 19, 185, 72, 189, 202, 228, 172, 15, 238, 172, 165, 185, 130, 146, 15, 119, 11, 84, 91, 133, 143, 56, 46, 250, 173, 44, 13, 19, 134, 115, 28, 146, 63, 79, 115, 125, 224, 239, 245, 33, 48, 186, 203, 197, 115]), events: [Event { key: EventKey([86, 118, 244, 248, 70, 36, 25, 229, 32, 38, 94, 0, 232, 100, 155, 149, 40, 140, 68, 71, 121, 207, 172, 243, 161, 81, 151, 142, 241, 185, 99, 179, 111, 199, 42, 102, 239, 41, 77, 233, 177, 143, 218, 111, 35, 99, 37, 100, 80, 200, 6, 182, 64, 155, 245, 208, 254, 57, 161, 188, 155, 188, 18, 239, 212, 84, 60, 214, 75, 11, 137, 160, 230, 129, 232, 133, 147, 249, 92, 242, 168, 56, 60, 175]), value: EventValue([80, 11, 50, 9, 158, 220, 34, 25, 243, 139, 126, 240, 233, 192, 10, 205, 138, 140, 4, 197, 144, 223, 144, 195, 77, 46, 176, 202, 111, 55, 110, 53, 49, 100, 112, 195, 137, 147, 253, 4, 175, 188, 203, 86, 131, 148, 131, 241, 50, 62, 92, 123, 251, 209, 197, 110, 150, 125, 237, 36, 206, 5, 43]) }, Event { key: EventKey([253, 45, 254, 171, 81, 131, 75, 67, 156, 24, 38, 17, 24, 223, 96, 152, 6, 205, 162, 22, 81, 215, 49, 70, 56, 187, 227]), value: EventValue([96, 78, 177, 40, 206, 220, 190, 203, 24, 130, 107, 213, 123, 195, 113, 139, 142, 12, 3, 53, 204, 58, 173, 249, 54, 212, 234, 238, 140, 206, 239, 44, 10, 77, 34, 151, 143, 229, 154, 86, 124, 46, 19, 65, 11, 106, 11, 146, 25, 109, 128, 65, 83, 223, 91, 246, 155, 238]) }, Event { key: EventKey([124, 38, 24, 179, 69, 44, 241, 9, 79, 101, 75, 7, 87, 19, 157, 110, 240, 118, 122, 247, 28, 147, 192, 95, 42, 250, 213, 128, 143, 0, 79, 159, 197, 134, 44, 13, 29, 251, 29, 40, 43, 150, 245, 105, 64, 42, 166, 242, 183, 28, 20, 69, 172, 152, 105, 43, 246, 48, 146, 252, 28, 223, 0, 16, 15, 138, 187, 200]), value: EventValue([25, 238, 29, 196, 221, 198, 61, 240, 152, 96, 63, 78, 228, 69, 211, 165, 49, 225, 2, 39, 34, 29, 175, 173, 18, 51, 252, 225, 25, 236, 213, 83, 99, 89, 41, 21, 215, 151, 146, 38, 206, 202, 56, 184, 76, 17, 245, 36, 203, 12, 208, 28, 152, 99, 168, 19, 31, 224, 28, 80, 71, 122, 251, 82]) }, Event { key: EventKey([60, 229, 241, 197, 75, 189, 102, 138, 98, 148, 234, 81, 137, 229, 172, 106, 74, 13, 51, 214, 209, 4, 66, 37, 164, 178, 88, 205, 86, 162, 131, 159, 22, 244, 98, 68, 237, 211, 12, 128, 231, 120, 138, 194, 133, 124, 193, 87, 4, 252, 245, 34, 183, 146, 103, 79, 206, 162, 78, 169, 168, 112, 16, 6, 249, 237, 189, 90, 103, 173, 13, 84, 143, 211, 186, 153, 188, 170, 180, 208, 125, 233, 55]), value: EventValue([200, 172, 170, 226, 111, 80, 230, 207, 124, 76, 25, 86, 96, 5, 136, 169, 155, 133, 36, 251, 153, 193, 181, 209, 75, 140, 96, 102, 19, 68, 73, 127, 154, 118, 124, 45, 170, 39, 93, 180, 5, 9, 199, 31, 156, 4, 189, 40, 84, 27, 194, 228, 147, 62, 58, 123, 255, 95, 212, 72, 164, 179]) }, Event { key: EventKey([159, 6, 104, 123, 72, 215, 105, 239, 169, 125, 10, 131, 108, 129, 119, 167, 33, 207, 217, 83, 211, 196, 66, 47, 73, 81, 225, 41, 159, 181, 181, 173, 231, 36, 186, 227, 78, 12, 226, 108, 149, 189, 1, 135, 230, 99, 6, 171, 104, 2, 77, 50, 133, 248, 65, 58, 122, 5, 144, 175, 189, 62, 72, 130, 186, 68, 32, 56, 120, 140, 189, 93, 182, 139, 150]), value: EventValue([172, 68, 62, 157, 231, 7, 112, 62, 178, 174, 155, 4, 49, 225, 215, 6, 188, 134, 98, 76, 138, 100, 123, 157, 209, 169, 122, 17, 22, 217, 8, 35, 231, 177, 76, 97, 246, 59, 96, 93, 195, 72, 196, 157, 81, 113, 240, 150, 133, 100, 18, 59, 251, 103, 81, 144, 4, 86, 22, 62, 250, 192, 143, 72, 217, 145, 35, 249, 122, 110, 137, 0, 175, 191, 165, 188, 164, 110]) }], receipt: 3561692265 }, TransactionReceipt { tx_hash: [99, 42, 30, 67, 166, 140, 90, 191, 243, 159, 101, 22, 199, 222, 168, 160, 171, 194, 86, 189, 60, 77, 200, 13, 90, 199, 140, 174, 240, 150, 206, 28], body_to_save: Some([17, 222, 224, 102, 103, 99, 103, 79, 26, 64, 151, 204, 138, 13, 66, 66, 100, 248, 86, 224, 214, 109, 82, 111, 30, 146, 54, 2, 110, 214, 106, 154, 73, 164, 168, 222, 54, 18, 89, 76, 128, 138, 61, 207, 87, 130, 26, 164, 143, 189, 28, 51, 66, 159, 190, 124, 15, 29, 209, 87, 140, 62, 40, 37, 111, 73, 232, 25, 87, 82, 50, 124]), events: [Event { key: EventKey([228, 109, 123, 148, 185, 89, 159, 114, 64, 62, 17, 172, 118, 12, 97, 29, 235, 199, 84, 83, 235, 130, 26, 178, 218, 141, 121, 98, 176, 229, 19, 18, 218, 145, 148, 209, 119, 169, 168, 170, 180, 30, 27, 174, 92, 59, 185, 174, 185, 154, 62, 216, 187, 55, 58, 165, 104, 233, 235, 129, 0, 61, 134, 255, 31, 112, 79, 202, 58, 167, 172, 16, 50, 226, 253, 55, 150, 55]), value: EventValue([126, 212, 233, 175, 44, 86, 152, 25, 193, 72, 21, 14, 38, 215, 251, 49, 135, 180, 13, 189, 79, 55, 148, 114, 126, 168, 10, 148, 130, 194, 133, 196, 247, 54, 9, 207, 19, 53, 247, 139, 18]) }, Event { key: EventKey([45, 17, 39, 37, 11, 211, 132, 132, 97, 240, 189, 216, 103, 29, 103, 67, 42, 132, 244, 8, 114, 206, 11, 207, 185, 14, 187, 170, 201, 247, 210, 24, 183, 124, 130, 88, 104, 48, 24, 224, 146, 219, 63, 105, 14, 77, 156, 104, 110, 133, 45]), value: EventValue([2, 87, 94, 97, 24, 106, 0, 208, 47, 66, 62, 219, 169, 52, 221, 203, 197, 9, 62, 143, 11, 185, 69, 141, 62, 61, 83, 89, 157, 154, 162, 12, 57, 237, 127, 180, 214, 117, 104, 20, 68, 184, 14, 196, 24, 115, 54, 100, 32, 35, 225, 67, 241, 74, 179, 39, 33, 147, 133, 124, 108, 159, 51, 57, 199, 199, 150, 167, 68, 16, 111, 203, 46, 147, 227, 118, 6, 68, 209, 165, 74, 232]) }, Event { key: EventKey([217, 114, 139, 44, 214, 172, 172, 187, 93, 14, 254, 127, 119, 101, 87, 245, 221, 232, 235, 9, 86, 3, 247, 165, 27, 154, 160, 80, 179, 77, 104, 148, 26, 153, 6, 100, 107, 184, 179, 231, 3, 192, 93, 3, 88, 65, 143, 101, 5, 213, 29, 10, 123, 134, 151, 172, 252, 179, 123, 48, 167]), value: EventValue([]) }, Event { key: EventKey([44, 229, 79, 235, 35, 168, 181, 221, 67, 166, 151, 72, 88, 161, 155, 148, 95, 6, 27, 128, 178, 147, 139, 136, 97, 105, 238, 99, 1, 127, 112, 53, 72, 47, 124, 205, 33, 38, 56, 147, 162, 194, 117, 200, 210, 115, 203, 233]), value: EventValue([237, 26, 123, 243, 12, 225, 58, 127, 121, 179, 17, 149, 44, 21, 212, 90, 173, 119, 238, 241, 137, 162, 232, 89, 22, 198, 157, 62, 218, 30, 184, 137, 49, 94, 27, 60, 37, 191, 28, 210, 143, 85]) }, Event { key: EventKey([148, 248, 214, 113, 144, 203, 6, 81, 7, 154, 137, 97, 232, 254, 128, 248, 129, 185, 202, 138, 216, 222, 186, 151, 184, 225, 2, 122, 7, 34, 176, 6, 174, 57, 11, 57]), value: EventValue([199, 188, 145, 50, 162, 172, 79, 116, 218, 158, 55, 168, 219, 241, 0, 241, 63, 180, 35, 178, 95, 22, 184, 199, 179, 125, 100, 251, 134, 111, 204, 125, 81, 58, 216, 254, 33, 121, 112, 69, 102, 115, 16, 60, 99, 167, 36, 69, 136, 36, 3, 193, 181, 101, 84, 15, 18, 138, 27, 198, 110, 240, 70, 174, 178, 74, 234, 157, 33, 98, 166, 90, 21, 238, 144, 11, 50, 233, 179, 188, 158, 150, 172, 9, 101, 247, 198, 71, 24]) }, Event { key: EventKey([174, 203, 72, 229, 132, 120, 37, 228, 106, 25, 199, 74, 211, 163, 97, 194]), value: EventValue([127, 181, 30, 143, 168, 61, 191, 17, 136, 32, 122, 42, 24, 67, 250, 25, 240, 152, 117, 71, 11, 194, 9, 201, 52, 32, 92, 217, 213, 13, 225, 83, 47]) }, Event { key: EventKey([82, 98, 141, 86, 46, 36, 181, 228, 225, 61, 14, 6, 172, 86, 212, 70, 62]), value: EventValue([2, 212, 186, 112, 198, 237, 168, 82, 113, 117, 69, 144, 126, 208, 131, 79, 63, 89, 192, 224, 99, 40, 11, 85, 109, 147, 112, 236, 226, 128, 198, 126, 97, 72, 5, 16, 145, 61, 228, 191, 116, 199]) }], receipt: 2502781813 }, TransactionReceipt { tx_hash: [31, 247, 6, 191, 115, 90, 117, 48, 167, 148, 0, 163, 102, 102, 155, 60, 184, 252, 125, 157, 93, 58, 243, 176, 46, 143, 52, 184, 42, 89, 135, 19], body_to_save: Some([246, 240, 153, 94, 153, 226, 244, 37, 154, 182, 189, 4, 17, 11, 30, 4, 102, 141, 50, 25, 194, 162, 128, 146, 240, 54, 241, 45, 140, 79, 213, 49, 201, 174, 144, 104, 143, 73, 46, 211, 131, 183, 210, 22, 204, 92, 65, 108, 103, 5, 251, 235, 50, 14, 208, 184, 75, 205, 94, 110, 232, 254, 90, 177, 4]), events: [], receipt: 2543135993 }, TransactionReceipt { tx_hash: [6, 101, 248, 16, 44, 255, 110, 54, 168, 63, 172, 95, 180, 112, 106, 82, 219, 248, 117, 222, 84, 64, 45, 35, 101, 6, 46, 7, 230, 33, 139, 81], body_to_save: Some([170, 211, 86, 134, 126, 83, 129, 205, 215, 80, 130, 200, 127, 62, 238, 9, 115, 144, 80, 127, 230, 173, 199, 158, 178]), events: [Event { key: EventKey([87, 36, 79, 208, 176, 21, 61, 214, 239, 46, 234, 109, 212, 13, 66, 139, 231, 174, 242, 53, 42, 176, 100, 78, 44, 25, 24, 93, 102, 110, 225, 46, 187, 69, 6, 191, 103, 121, 161, 148, 71, 25, 101, 59, 78, 1, 166, 178, 164, 124, 111, 177, 117, 50, 250, 220, 151, 10, 124, 103, 190, 180, 243, 113]), value: EventValue([112, 181, 129, 120, 179, 120, 109, 184, 206, 141, 84, 183, 228, 55, 50, 217, 98, 3, 201, 172, 99, 173, 107, 43, 75, 35, 62, 91, 125, 74, 58, 79, 21, 226, 49, 127, 3, 86, 105, 149, 173, 95, 135, 193, 196, 179, 73, 154, 178, 86, 129, 52, 37, 247, 107, 175, 25, 54, 83, 30, 34, 82, 229, 135, 237, 251, 103, 249, 127, 111, 107, 43, 200, 251, 109, 133, 138, 134, 102, 178, 148, 220, 157, 80, 203, 19, 0, 117, 18, 225, 16]) }, Event { key: EventKey([215, 238, 159, 191, 107, 254, 112, 98]), value: EventValue([152, 87, 95, 221, 148, 71, 251, 139, 91, 144, 34, 240, 46, 208, 255, 8, 11, 16, 64, 236, 90, 58, 11, 239, 110, 211, 39, 128, 21, 217, 54, 250, 15, 163, 195, 144, 56, 17, 219, 43, 97, 46, 115, 106, 52, 189, 135, 58, 58, 189, 117, 146, 76, 68, 125, 159]) }, Event { key: EventKey([38, 57, 203, 168, 28, 203, 255, 113, 131, 83, 8, 227, 34, 196, 168, 7, 177, 103, 190, 140, 85, 34, 42, 85, 174, 199, 32, 249, 202, 28, 242, 154, 118, 215, 3, 177, 85, 219, 86, 216, 197, 190, 62, 64, 102, 111, 180, 210, 50, 87, 202, 44, 218, 70, 187, 187, 81, 225, 182, 142, 47, 61, 66, 4, 102, 31, 84, 120, 58, 226, 22, 17, 18, 79, 255, 55, 154, 211, 124, 125, 173, 31, 162, 139, 5, 235, 232, 21, 211, 115, 132, 199]), value: EventValue([48, 144, 167, 245, 124, 186, 100, 178, 67, 198, 233, 237, 37, 228, 14, 226, 82, 213, 97, 192, 228, 144, 70, 208, 93, 176, 214, 61, 254, 134, 85, 207, 245, 135, 249, 193, 108, 240, 33, 203, 78, 37, 60, 188, 152, 203, 240, 180, 218, 135, 237, 125, 52, 4, 213, 48, 208, 38, 67, 77, 55, 198, 112, 60, 233, 75, 253, 75, 158, 223, 195, 74, 56, 143, 130, 155, 111, 21, 90, 247, 228, 204, 223, 53, 88, 247]) }, Event { key: EventKey([101, 36, 92, 65, 105, 81, 37, 3, 27, 127, 10]), value: EventValue([81, 54, 135, 225, 87, 192, 167, 86, 227, 100, 226, 207, 217, 128, 80, 116, 60, 0, 182, 155, 83, 176, 111, 229, 243, 165, 109, 105, 106, 176, 97, 26, 56, 26, 116, 235, 118, 87, 123, 201, 240, 142, 113, 107, 148, 154, 113, 207, 102, 109, 12, 118, 237, 39, 178, 171, 153, 195, 99, 228, 76, 1, 157, 196, 15, 70, 116, 155, 201, 216, 178, 87, 151, 144, 58, 203, 104, 32, 28, 133, 157, 195, 45, 128, 27, 1, 178, 221]) }, Event { key: EventKey([124, 79, 18, 68, 176, 84, 236, 134, 203, 164, 122, 175, 149, 103, 161, 251, 82, 179, 95, 168, 2, 136, 177, 65, 193, 23, 69, 116, 204, 91, 214, 22, 47, 102, 154, 55, 110, 218, 64, 7, 228, 153, 62, 58, 89, 149, 33, 135, 113]), value: EventValue([75, 197, 169, 222, 156, 30, 151]) }, Event { key: EventKey([173, 200, 38, 167, 54, 81, 210, 243, 190, 36, 185, 92, 97, 164, 64, 117, 242, 24, 160, 183, 52, 81, 144, 255, 150, 121, 61, 124, 25, 150, 196, 191, 169, 70, 120, 64, 20, 57, 71, 61, 235, 45, 52, 37, 83, 182, 100, 240, 197, 3, 38, 107, 210, 220, 148, 4, 230, 190, 188, 209, 113, 170, 95, 45, 164, 10, 140, 55, 96, 92, 229, 212, 75, 67, 80, 0, 249, 127, 222, 152, 213, 121, 49, 200, 2, 42, 83]), value: EventValue([197, 105, 214, 145, 177, 52, 144, 154, 41, 192, 169, 245, 228, 247, 177, 224, 79, 127, 69, 42, 169, 17, 236, 57, 97, 168, 169, 24, 39, 87, 192, 29, 126, 37, 212, 86, 160, 222]) }, Event { key: EventKey([94, 25, 209, 139, 17, 119, 45, 214, 17, 82, 157, 197, 186, 241, 0, 254, 16, 127, 174, 48, 221, 158, 47, 11, 59, 248, 233, 181, 61, 175, 98, 49, 36, 8, 193, 201, 232, 225, 109, 3, 91, 115, 97, 4, 214, 88, 64, 135, 43, 77, 245, 44, 191, 66, 160, 238, 95, 246, 106, 113, 109, 87, 208, 177, 209, 53, 52, 78, 233, 70, 227, 96, 67, 56, 214, 41, 114]), value: EventValue([148, 133, 40, 89, 185, 170, 123, 76, 118, 213, 1, 105]) }, Event { key: EventKey([72, 143, 4, 129, 224, 176, 219, 104, 124, 40, 118, 7, 249, 101, 204, 41, 59, 208, 52, 53, 99, 189, 53, 179, 29, 119, 33, 159, 141, 157, 179, 24, 48, 186, 101, 224, 253, 104, 208, 245, 252, 166, 222, 144, 230, 63, 163, 12, 137, 82, 26, 20, 135, 164, 179, 35, 225, 17, 200, 197, 122, 29, 52, 218, 173, 153, 252, 47, 9, 176, 48, 8, 123, 123, 65, 12, 212, 181, 43, 52, 99, 185, 201, 17, 19, 179, 91, 22, 97, 147]), value: EventValue([116, 48, 169, 22, 27, 186, 27, 234, 62, 7, 221, 85, 191, 5, 160, 168, 15, 129, 119, 158, 213, 176, 157, 65, 159, 20, 145, 3, 100, 169, 25, 190, 147, 187, 243, 96, 216, 166, 138, 145, 242, 25, 206, 53, 112, 71, 28, 186, 92, 122, 201]) }], receipt: 4030077195 }, TransactionReceipt { tx_hash: [31, 164, 178, 211, 178, 189, 209, 208, 33, 178, 175, 100, 222, 44, 163, 57, 178, 252, 9, 68, 53, 50, 199, 186, 231, 186, 151, 113, 106, 26, 106, 34], body_to_save: Some([53, 222, 208, 29, 87, 103, 39, 197, 36, 3, 120, 50, 81, 162, 62, 2, 205, 226, 15, 107, 227, 17, 155, 39, 203, 155, 86, 119, 41, 180, 189, 147, 247, 244]), events: [Event { key: EventKey([224, 178, 160, 218, 141, 129, 247, 227, 208, 23, 171, 251, 30, 219, 56, 9, 166, 97, 222, 248, 133, 175, 239, 134, 69, 131, 158, 90, 217, 168, 253, 57, 110, 62, 43, 108, 92, 122, 196, 202, 116, 38, 118, 194, 48, 202, 21, 240, 137, 247, 155, 190, 11, 112, 43, 180, 140, 11, 139, 150, 152, 239, 0, 109, 4, 73, 60, 50, 60, 145, 254, 24, 202, 113, 16, 204, 113, 35]), value: EventValue([223, 217, 228, 253, 241, 121, 44, 64, 70, 42, 44, 225, 246, 235, 161, 144, 47, 201, 247, 26, 207, 78, 239, 165, 232, 51, 210, 166, 190, 66, 239, 108, 139, 208, 1, 99, 100, 165, 21, 105, 224, 112, 221, 171, 225, 88, 98, 221, 231, 54]) }, Event { key: EventKey([10, 165, 56, 85, 53, 244, 58, 74, 205, 157, 39, 223, 162, 251, 34, 107, 143, 151, 126, 95, 46, 76, 39, 145, 154, 118, 186, 197, 74, 20, 64, 95, 16, 180, 154, 163, 174, 156, 37, 67, 71, 220, 18, 123, 99, 102, 219, 5, 128, 46, 209, 93, 63, 227, 106, 255, 255, 57, 160, 60, 81]), value: EventValue([215, 57, 237, 219, 159, 246, 171, 143, 204, 253, 171, 120, 10, 227, 242, 48, 117, 31, 196]) }, Event { key: EventKey([133, 104, 164, 54, 175, 7, 229, 184, 212, 232, 87, 219, 135, 180, 122, 86, 177, 112, 47, 145, 33, 200, 148, 62, 246, 161, 144, 182, 45, 76, 90, 197, 188, 74, 67, 60, 194, 184, 167, 54, 70, 252, 241, 108, 26, 214, 20, 68, 68]), value: EventValue([158, 11, 26, 244, 239, 48, 246, 5, 188, 198, 168, 214]) }, Event { key: EventKey([182, 55, 98, 6, 78, 7, 250, 220, 185, 186]), value: EventValue([192, 58, 235, 21, 250, 21, 183, 13, 145, 190, 231, 250, 38, 230, 231, 178, 208, 153, 190, 239]) }, Event { key: EventKey([63, 55, 182, 105, 203, 116, 96, 26]), value: EventValue([61, 176, 216, 137, 210, 128, 167, 174, 190, 210, 115, 236, 24, 255, 20, 55, 60, 245, 183, 221, 166, 72, 71, 43, 154, 231, 148, 166, 245, 13, 3, 109]) }, Event { key: EventKey([53, 181, 158, 171, 193, 120, 131, 47, 147, 158, 221, 69, 178, 47, 100, 32, 25, 81, 187, 3, 143, 201, 235, 4, 78, 227, 117, 223, 212, 77, 7, 126, 51, 16, 108, 187, 191, 249, 24, 79, 18, 64, 176, 148, 234, 190, 34, 186, 181, 142, 42, 84, 16, 2, 153, 224, 1, 171, 135, 233, 167, 172, 153, 222, 87, 51, 156, 44, 43, 227, 57, 125, 67, 251, 21, 249, 210, 59, 190, 40, 122, 68]), value: EventValue([112, 224, 235, 137, 4, 50, 89, 38, 32, 124, 86, 253, 242, 86, 59, 231, 96, 107, 126, 151, 166, 235, 218, 47, 223, 174, 117, 172, 201, 52, 164, 88, 83, 154, 77, 202, 118, 224, 234, 9, 158, 106, 134, 155, 28, 175, 210, 57, 56, 156, 132, 237, 61, 21, 42, 131, 184, 214, 102, 118, 9, 237, 243, 224, 171, 109, 94, 18, 53, 143, 96, 164, 88, 252, 103, 192, 199]) }, Event { key: EventKey([160, 149, 28, 172, 248, 223, 246, 118, 117, 163, 67, 105, 245, 61, 235, 205, 87, 86, 107, 105, 25, 185, 24, 20, 158, 206, 29, 216, 71, 136, 167, 98, 250, 61, 29, 115, 18, 172, 72, 41, 42, 25, 9, 255, 163, 86, 112, 66, 249, 106, 145, 77, 122, 137, 28, 55, 88, 211, 205, 218, 211, 170, 198, 129, 235, 243, 11, 131, 16, 161, 210, 228, 14, 156, 174, 19, 239, 113, 160, 51, 230, 221, 221, 32, 209, 110, 224, 157, 198, 125]), value: EventValue([253, 101, 17, 225, 252, 188, 68, 172, 178, 30, 214, 125, 37, 254, 150, 206, 160, 57, 229, 140, 128, 64, 241, 11, 76, 240, 227, 67, 13, 125, 80, 181, 248, 29, 180, 126, 93, 59, 165, 61, 195, 105, 160, 23, 73, 200, 219, 228, 11, 219, 217, 72, 19, 116, 108, 181, 76, 143, 254, 174, 241, 172, 138, 223, 101, 187, 48, 215, 31, 13, 76, 109, 179, 75, 97, 166, 7, 185, 184, 4, 35, 176, 60]) }, Event { key: EventKey([156, 198, 247, 182, 203, 154, 238, 72, 201, 16, 127, 57, 142, 7, 188, 127, 111, 147, 251, 164, 197, 190, 224, 165, 136, 17, 94, 14, 157, 115, 77, 32, 129, 23, 195, 95, 47, 97, 87, 252, 212, 92, 72, 62, 134, 43, 25, 234, 60, 234, 218, 149, 221, 41, 17, 0, 255, 66, 214, 229]), value: EventValue([251, 52, 102, 188, 192, 94, 211, 91, 7, 145, 161, 230, 11, 103, 139, 186, 8, 106, 2, 76, 144, 170, 205, 89, 2, 162, 21, 168, 109, 156, 101, 23, 78, 216, 130, 182, 104]) }, Event { key: EventKey([135, 194, 236, 61, 145, 168, 175, 140, 213, 77, 246, 85, 217, 175, 71, 165, 217, 72, 120, 133, 17, 148, 65]), value: EventValue([102, 132, 130, 95, 78, 194, 180, 52, 128, 55, 88, 250, 63, 246, 179, 7, 133, 85, 91, 245, 76, 11, 35, 232, 147, 221, 155, 86, 214, 167, 221, 207, 50, 16, 47, 230, 248]) }], receipt: 3508384371 }, TransactionReceipt { tx_hash: [200, 253, 56, 51, 103, 110, 212, 224, 87, 176, 60, 179, 227, 80, 10, 199, 68, 177, 203, 10, 108, 14, 163, 209, 31, 192, 71, 173, 138, 242, 130, 12], body_to_save: Some([29, 107, 250, 117, 249, 202, 216, 218, 95, 146, 254, 3, 53, 192, 117, 251, 184, 148, 65, 216, 200, 44, 128, 7, 192, 16, 19, 134, 50, 54, 151, 73, 161, 157, 197, 111, 129, 8, 199, 58, 209, 215, 2, 240, 64, 68, 147, 245, 31, 144, 213, 132, 95, 186, 201, 102, 236, 163, 9, 232, 202, 21, 244, 47]), events: [Event { key: EventKey([12, 205, 115, 148, 125, 197, 152, 168, 196, 195, 112, 115, 5, 85, 63, 171, 162, 30, 174, 151, 162, 78, 223, 217, 129, 254, 230, 71]), value: EventValue([73, 60, 41, 57, 231, 227, 140, 141, 181, 158, 148, 56, 25, 38, 57, 123, 2, 254, 1, 249, 150, 91, 13, 166, 73, 192, 198, 44, 9, 171, 3, 250, 240, 168, 119, 248, 109, 35, 210, 28, 63, 119, 194, 237, 113, 230, 78, 247, 194, 117, 185, 46, 159, 95, 181, 193, 50, 93, 159, 71, 34, 157, 251, 191, 213, 252, 31, 192, 106, 94, 199, 120, 11, 156, 171, 72, 177, 163, 107, 73, 4, 244, 128, 170, 99, 32]) }, Event { key: EventKey([50, 166, 142, 112, 2, 199, 112, 95, 86, 157, 132, 80, 155, 143, 176, 246, 251, 96, 36, 125, 177, 41]), value: EventValue([146, 204, 155, 188, 93, 65, 201, 140, 119, 132, 97, 122, 157, 106, 180, 250, 89, 30, 73, 52, 196, 214, 141, 130, 142, 173, 161, 109, 222, 13, 156, 131, 55, 144, 22, 34, 109, 136, 89, 179]) }, Event { key: EventKey([135, 185, 109, 84, 188, 180, 99, 102, 206, 60, 238, 149, 239, 149, 177, 171, 103, 206, 209, 88, 17]), value: EventValue([99, 68, 138, 52, 73]) }, Event { key: EventKey([98, 219, 59, 172, 147, 32, 165, 236, 165, 18, 110, 80, 58, 169, 56, 203, 232, 186, 193, 99, 191, 193, 109, 226, 44, 146, 231, 36, 99, 137, 122, 194, 242, 55, 29, 70, 39, 21, 210, 135, 192, 112, 88, 235, 241]), value: EventValue([241, 192, 13, 184, 250, 219, 241, 184, 166, 70, 172, 251, 105, 64, 253, 59, 113, 133, 169, 13, 224, 158, 13, 243, 207, 190, 9]) }, Event { key: EventKey([133, 182, 249, 140, 34, 102, 166, 106, 126, 25, 7, 253, 44, 134, 126, 99, 50, 11, 138, 38, 255, 232, 195, 172, 196, 210, 42, 220, 196, 238, 250, 215, 87, 198, 91, 163, 214, 52, 150, 171, 214, 8, 106, 68, 152, 91, 191, 209, 147, 17, 206, 58]), value: EventValue([116, 6, 77, 166, 26, 57, 196, 106, 49, 190, 184, 58, 49, 158, 145, 114, 10, 55, 155, 97, 153, 165, 250, 119, 249, 230, 220, 135, 120, 146, 199, 73, 184, 115, 50, 17, 118, 7, 44, 58, 137, 31, 193, 10, 31, 85, 30, 102, 4, 217, 33, 154]) }, Event { key: EventKey([238, 110, 171, 60, 168, 96, 192, 122, 169, 91, 109, 138, 148, 231, 251, 41, 77, 243, 47, 60, 161, 99, 50, 202, 253, 159, 138, 73, 125, 227, 221, 128, 125, 176, 135, 131, 147, 192, 31, 198, 122, 107, 42, 1, 28, 176, 78, 0, 80, 197, 43, 172, 217, 32, 121, 246, 104, 25, 173, 65, 176, 208, 126, 85, 202, 188, 123, 179, 140, 230, 113, 55, 108, 184, 220, 114, 219, 170, 235, 249, 56, 27, 220, 251, 25, 95, 60, 224, 31, 176, 253, 58]), value: EventValue([66, 34, 197, 21, 206, 227, 25, 248, 236, 100, 202, 80, 71, 58, 98, 141, 5, 251, 104, 120, 110, 3, 24, 212, 12, 25, 200, 81, 152, 102, 141, 70, 187, 34, 51, 147, 199, 215, 138, 172, 35, 235, 106, 194, 249, 101, 165, 216, 54, 153, 182, 132, 201, 157, 151, 44, 159, 60]) }], receipt: 3345129065 }, TransactionReceipt { tx_hash: [139, 226, 231, 135, 247, 209, 148, 216, 79, 43, 160, 58, 178, 68, 239, 232, 97, 101, 143, 26, 8, 249, 46, 37, 244, 173, 129, 63, 255, 236, 27, 120], body_to_save: None, events: [Event { key: EventKey([190, 239, 224, 18, 173, 213, 157, 153, 182, 88, 84, 46, 167, 210, 31, 232, 208, 126, 213, 203, 79, 18, 84, 46, 181, 133, 160, 253, 69, 89, 193, 184, 194, 49, 252, 176, 35, 181, 167, 186, 213, 253, 204, 128, 50, 198, 8, 250, 68, 215, 70, 94, 43, 235, 243, 142, 36, 32, 52, 42, 186, 142, 111, 118, 146, 67, 57, 240, 222, 118, 109, 47, 31, 36, 253, 2, 228, 111, 72, 71, 148, 3, 45, 9]), value: EventValue([242, 107, 184, 94, 128, 136, 5, 170, 32, 67, 111, 183, 126, 182, 138, 95, 202, 6]) }, Event { key: EventKey([143, 86, 147, 184, 113, 79, 225, 233, 22, 157, 255, 245, 115, 15, 124, 97, 139, 180, 175, 92, 67, 193]), value: EventValue([78, 166, 130, 253, 206, 129, 211, 255, 197, 46, 213, 147, 254, 234, 181, 167, 224, 51, 227, 114, 94, 232, 53, 132, 106, 221, 244, 165, 59, 156, 183, 107, 38, 76, 89, 171, 137, 105, 34, 219, 58, 28, 193, 193, 227, 71, 163, 251, 188, 145, 99, 165, 67, 227, 226, 185, 239, 134, 86, 79, 125, 233, 146, 117, 186, 205, 139, 199, 59, 122, 110, 89, 176, 118, 66, 37, 76, 171, 3, 213, 243, 61, 50, 250, 244, 253, 243, 178, 182]) }, Event { key: EventKey([26, 97, 143, 252, 78, 29, 61, 194, 158, 44, 52, 88, 93, 18, 160, 118, 97, 227, 112, 171, 171, 2, 161, 91, 141, 140, 81, 67, 64, 202, 155, 221, 167, 231, 18, 99, 79, 134, 205, 89, 20, 120, 82, 228, 66]), value: EventValue([69, 184, 137, 131, 102, 151, 94, 35, 60, 120, 218, 116, 161, 87, 24, 172, 76, 41, 39, 99, 3, 177, 242, 232, 19, 107, 223, 87, 253, 86, 166, 161, 37, 45, 91, 251, 5, 170, 69, 71, 29, 242, 12, 20, 230, 2, 193, 86, 224, 25, 146, 140, 253, 252, 205, 105, 133, 105, 211, 107, 33, 165, 4, 156, 6, 27, 171, 243, 250, 120, 79, 182, 33, 16, 252, 233, 215, 62, 53, 127, 189, 224, 196, 138, 238, 241, 155, 22, 121, 164]) }, Event { key: EventKey([72, 248, 209, 0, 59, 40, 60, 205, 131, 50, 192, 222, 173, 109, 214, 222, 142, 226, 224, 231]), value: EventValue([115, 196, 93, 34, 42, 254, 198, 196, 194, 109, 3, 197, 3, 126, 196, 132, 169, 229, 106, 222, 220, 121, 153]) }, Event { key: EventKey([31, 117, 188, 103, 45, 209, 180, 233, 108, 67, 253, 223, 32, 12, 69, 213, 50, 191, 49, 240, 167, 149, 180, 236, 93, 13, 246, 131, 225, 16, 26, 156, 205, 228, 6, 131, 51, 227, 218, 12, 21, 255, 145, 1, 101, 137, 57, 45, 228, 246, 238, 90, 59, 218, 121, 23, 209, 41, 170, 82, 86, 28, 92, 104, 195, 66, 167, 74, 15, 123, 250, 30, 161, 84, 109]), value: EventValue([30, 125, 25, 125, 144, 86, 116, 225, 190, 148, 22, 77, 241, 49, 211, 31, 82, 164, 91, 228, 241, 12, 37, 26, 77, 2, 113, 47, 138, 95, 80, 196, 195, 239, 184, 34, 182, 23, 127, 50, 128, 241]) }, Event { key: EventKey([235, 148, 179, 71, 250, 91, 65, 193, 75, 228, 222, 94, 220, 72, 98, 196, 238, 196, 84, 11, 7, 220, 126, 199, 205, 22, 159, 231, 127, 106, 95, 137, 253, 165, 35, 234, 22, 158, 241, 200, 206, 141, 199, 20, 167, 194, 170, 230, 149, 198, 125, 53, 171, 181, 25, 34, 106, 112, 51, 58, 147, 105, 130, 24, 63, 197, 114, 206, 212, 35, 130, 165, 50, 47, 216, 64, 158, 24, 204, 124, 140, 233, 60, 7, 66, 76, 11, 102, 202, 185, 129, 114, 83, 17, 96, 130, 197, 89, 2]), value: EventValue([211, 123, 227, 191, 26, 115, 11, 36, 110, 253, 38, 96, 243, 169, 19, 36, 84, 238, 28, 23, 238, 145, 210, 255, 63, 147, 210, 191, 95, 14, 120, 242, 111, 169, 77, 0, 129, 251, 174, 23, 53, 219, 195, 217, 233, 242, 161, 2, 100]) }, Event { key: EventKey([187, 20, 251, 199, 97, 88, 244, 255, 159, 57, 189, 225, 117, 198, 138, 43, 129, 138, 228, 163, 21, 5, 144, 18, 122, 193, 77, 90, 83, 156, 139, 202, 15, 160, 88, 167, 4, 13, 140, 13, 33, 217, 76, 25, 247, 78, 255, 187, 82, 64, 66, 123, 140, 12, 91, 225, 251, 114, 56, 183, 105, 95, 168, 230, 159, 201, 123, 97, 236, 162, 9, 100, 197, 172, 188, 10, 9, 56, 167, 112, 149, 78, 166, 43, 43, 108, 138]), value: EventValue([128, 223, 228, 252, 149, 181, 172, 58, 77, 188, 224, 230, 130, 166]) }, Event { key: EventKey([112, 26, 131, 20, 249, 31, 227, 197, 146, 144, 14, 200, 90, 195, 36, 17, 97, 35, 59, 94, 170, 63, 104, 186, 45, 103, 246, 16, 220, 30, 27, 70, 159, 97, 73, 254, 27, 37, 192, 3, 170, 89, 36, 160, 60, 113, 226, 156, 242, 34, 44, 71, 232, 92, 50, 106, 127, 230, 91, 110, 202, 191, 49, 84, 97, 168, 207, 41, 241, 193, 150, 196, 188, 101, 255, 217, 36, 45, 166, 228, 24, 150, 28, 229, 237, 219, 24, 206, 132, 174, 189, 184, 222]), value: EventValue([32, 224, 209, 254, 71, 24, 245, 137, 177, 120, 239, 244, 82, 58, 239, 222, 76, 236, 203]) }, Event { key: EventKey([248, 165, 150, 12, 17, 49, 125, 53, 3, 15, 46, 172, 136, 60, 203, 241, 44, 129, 43, 141, 61, 84, 116, 208, 200, 245, 8, 98, 177, 66, 155, 185, 158, 197, 181, 255, 241, 115, 52, 136, 255, 33, 79, 124, 133, 64, 176, 56, 198, 242, 208, 177, 236, 131, 93, 33, 236, 97]), value: EventValue([204, 60, 44, 80, 147, 215, 207, 165, 79, 209, 42, 172, 203, 162, 173, 206, 81, 184, 42, 30, 83, 196, 204, 104, 47, 175, 97, 144, 234, 105, 17, 92, 216, 91, 39, 232, 219, 55, 84, 114, 50, 245, 67, 19, 73, 108, 129, 98, 162, 3, 25, 72, 81, 110, 89, 142, 234]) }], receipt: 1941551257 }], inner: 700247807 }, BatchReceipt { batch_hash: [247, 16, 35, 23, 175, 100, 132, 231, 252, 125, 8, 6, 205, 181, 244, 49, 211, 162, 15, 239, 221, 104, 221, 214, 217, 53, 15, 252, 247, 248, 226, 7], tx_receipts: [TransactionReceipt { tx_hash: [225, 49, 132, 36, 202, 199, 35, 83, 66, 230, 25, 44, 209, 48, 99, 221, 222, 182, 106, 201, 3, 13, 94, 210, 70, 169, 251, 178, 19, 35, 253, 41], body_to_save: None, events: [Event { key: EventKey([2, 35, 137, 244, 184, 140, 240, 166, 236, 120, 22, 63, 179, 18, 104, 227, 59, 154, 176, 127, 155, 230, 18, 28, 152, 94, 71, 83, 112, 247, 113, 233, 109, 28, 136, 110, 251, 20, 7, 191, 233, 103, 54, 184, 179, 79, 127, 205, 67, 215, 230, 218, 108, 57, 147, 115, 86, 49, 41, 31, 116, 98, 217, 34, 2, 31, 33, 82, 24, 110, 155, 231, 65, 71, 40, 98, 246, 253, 243, 148, 239, 5, 249, 102, 7, 201, 28, 248, 13, 60, 67, 73, 250, 168, 249, 192, 86, 151]), value: EventValue([48, 10, 255, 99, 97, 36, 11, 191, 162, 47, 23, 143, 161, 180, 122, 97, 187, 52]) }], receipt: 254742126 }, TransactionReceipt { tx_hash: [127, 213, 233, 82, 65, 157, 99, 89, 166, 201, 16, 222, 202, 17, 138, 179, 143, 170, 239, 177, 129, 65, 92, 142, 200, 167, 39, 255, 172, 159, 193, 72], body_to_save: None, events: [Event { key: EventKey([108, 73, 204, 34, 27, 164, 23, 56, 204, 6, 160, 43, 236, 191, 185, 92, 101, 228, 113, 69, 80, 193, 248, 16, 16, 214, 108, 249, 105, 170, 27, 131, 214, 38, 230, 30, 88, 250, 65, 84, 231, 233, 50, 194, 227, 148, 124, 149, 195, 164, 11, 161, 67, 18, 42, 188, 34, 205, 226, 184, 3, 182, 27, 11, 204, 85, 41, 230, 124, 221, 64, 173, 100, 95, 233, 42, 166, 127, 17, 107]), value: EventValue([152, 95, 64, 86, 49, 27, 141, 146, 31, 197]) }, Event { key: EventKey([48, 188, 207, 15, 153, 82, 64, 84, 94, 183, 189, 78, 170, 14, 125, 15, 93, 7, 30, 124, 171, 67, 58, 3, 44, 221, 63, 175, 11, 98, 234, 23, 98, 66, 4, 233, 39, 152, 71, 98, 99, 225, 36, 159, 193, 78, 82, 128, 193, 217, 190, 102, 232, 206, 45, 45, 237, 107, 192, 135, 95, 185, 31, 232, 125, 39, 45, 248, 192, 249, 62, 167, 188, 5, 183, 251, 49, 37, 94, 137, 186, 197, 78, 210, 95, 105, 184, 210, 110, 163, 137, 149, 144]), value: EventValue([241, 199, 124, 60, 45, 94, 180, 16, 146, 238, 115, 51, 166, 34, 108, 128, 122, 175, 28, 199, 189, 103, 130, 212, 7, 134, 31, 111, 86, 132, 236, 101, 39, 157]) }, Event { key: EventKey([68, 27, 181, 147, 207, 214, 187, 48, 54, 222, 157, 127, 105, 66, 140, 18, 199, 64, 40, 81, 80, 239, 136, 107, 250, 149, 110, 198, 146, 209, 120, 149, 91, 104, 10, 64, 151, 224, 174, 101, 249, 160, 192, 117, 25, 10, 7, 103, 22, 138, 155, 0, 162, 205, 15, 179]), value: EventValue([204, 198, 143, 243, 97, 9, 46, 193, 40, 39, 153, 243, 221, 23, 173, 201, 153, 61, 74, 26, 145, 196, 148, 142, 234, 66, 205, 190, 137, 221, 104, 56, 104, 186, 82, 208, 136, 148, 157, 107, 47, 42, 48, 253, 202, 71, 56, 131, 19, 218, 144, 161, 29, 117, 225, 171, 145, 15, 235, 31, 100, 172, 180, 238, 111, 92, 97]) }, Event { key: EventKey([177, 234, 238, 154, 115, 15, 26, 185, 41, 142, 58, 54, 111, 99, 204, 40, 247, 236, 116, 204, 146, 126, 164, 78, 247, 9, 12, 223, 112, 89, 5, 179, 131, 185, 59]), value: EventValue([113, 10]) }, Event { key: EventKey([98, 127, 29, 17, 92, 21, 41, 166, 45, 81, 43, 189, 67, 206, 190, 245, 23, 71, 35, 223, 44, 27, 150, 146, 177, 64, 74, 56, 84, 148, 26]), value: EventValue([220, 32, 152, 230, 4, 124, 219, 50, 66, 69, 216, 15]) }, Event { key: EventKey([189, 231, 219, 180, 223, 212, 113, 39, 158, 197, 8, 146, 36, 82, 232, 130, 185, 196, 221, 27, 142, 108, 51, 73, 22, 3, 100]), value: EventValue([105, 148, 17, 100, 91, 88, 124, 233, 63, 105, 154, 27, 81, 82, 26, 54, 243, 224, 211, 251, 161, 111, 104, 91, 95, 235, 191, 192, 21, 41, 21, 76, 212, 85, 234, 237, 175, 197, 174, 51, 183, 3, 242, 178, 125, 120, 174, 109, 118, 185, 103, 96, 213, 169, 95, 72, 39, 117, 158, 115, 40, 244]) }], receipt: 1350509684 }, TransactionReceipt { tx_hash: [21, 147, 115, 171, 20, 47, 164, 37, 81, 18, 93, 159, 146, 148, 30, 51, 85, 48, 93, 57, 90, 210, 162, 48, 128, 80, 51, 138, 183, 211, 44, 146], body_to_save: None, events: [Event { key: EventKey([166, 246, 133, 161, 29, 157, 242]), value: EventValue([134, 124, 248, 94, 194, 0, 9, 219, 20, 231, 201, 221, 164, 69, 27, 107, 176, 85, 74, 6, 58, 87, 23, 192, 180, 29, 209, 17, 135, 213, 121, 66, 234, 223, 46, 58, 209, 80, 47, 218, 161, 192, 241, 89, 185]) }, Event { key: EventKey([41, 43, 107, 106, 111, 240, 76, 12, 188, 173, 195, 63, 120, 15, 30, 202, 102, 119, 20, 244, 182, 75, 13, 77, 235, 11, 177, 170, 8, 194, 210, 126, 99, 160, 45, 184, 74, 88, 71, 82, 197, 212, 191, 213, 237, 35, 157, 112, 86, 7, 207, 200, 84, 77, 189, 33, 93]), value: EventValue([244, 230, 159, 176, 227, 28, 13, 43, 25, 221, 16, 201, 93, 201, 64, 106, 206, 154, 218, 20, 109, 105, 98, 45, 137, 110, 180, 208, 149, 53, 200, 209, 8, 184, 118, 18, 80, 194, 243, 48, 22, 126, 1, 66, 169, 27, 240, 179, 68, 59, 0, 181, 165, 40, 238, 115, 160, 247, 16, 250, 190, 225, 236, 152, 122, 8, 29, 185, 30, 9, 226, 135, 156, 180, 37, 145, 83, 7, 222, 146, 115, 215, 191, 243, 216, 82, 249, 174, 34, 112, 238]) }, Event { key: EventKey([252, 5, 142, 124, 186, 248, 69, 27, 179, 71, 67, 85, 93, 178, 129, 29, 234, 135, 225, 225, 49, 188, 251, 54, 218, 194, 29, 44, 44, 74, 133, 209, 249, 19, 8, 52, 153, 185, 144, 18, 6, 65, 30, 114, 69, 218, 27, 32, 132, 139, 126, 207, 37, 242, 235, 82, 135, 117, 124, 57, 26, 95, 125, 38, 72, 135, 88, 175, 247, 158, 226, 46, 190]), value: EventValue([191, 138, 13, 156, 81, 24, 69, 172, 192, 117, 209, 195, 208, 227, 49, 113, 3, 68, 233, 151, 23, 118, 247, 46, 105, 121, 109, 242, 248, 113, 198, 243, 237, 149, 169, 224, 28, 170, 119, 17, 20, 64, 89, 117, 206, 143, 167, 129, 183, 227, 252, 107, 72, 138, 68, 104]) }, Event { key: EventKey([231, 170, 155, 172, 41, 53, 68, 219, 90, 101, 157, 4, 41, 26, 60, 190, 38, 167, 98, 30, 194, 92, 43, 78, 170, 93, 0, 145, 33, 61, 83, 88, 211, 142, 22, 112, 226, 115, 171, 78, 110, 201, 21, 236, 215, 139]), value: EventValue([70, 147, 22, 122, 27, 205, 65, 162, 105, 250, 28, 31, 196, 128, 81, 131, 193, 23, 219, 100, 149, 52, 189, 241, 216, 65, 207, 40, 13, 107, 67, 38, 210, 89, 239, 196, 202, 239, 156, 88, 25, 32, 82, 94]) }, Event { key: EventKey([130, 78, 236, 69, 91, 140, 178, 104, 33, 215, 148, 4, 252, 249, 231, 183, 65, 159, 135, 154, 213, 119, 97, 83, 89, 97, 49, 237, 175, 255, 135]), value: EventValue([126, 106, 178, 197, 39, 28, 130, 50, 48, 79, 13, 24, 130, 53, 90, 41, 54, 127, 32, 111, 209, 165, 12, 149, 87]) }], receipt: 1577152260 }, TransactionReceipt { tx_hash: [162, 246, 134, 67, 219, 187, 125, 212, 63, 70, 75, 85, 2, 151, 206, 25, 44, 162, 175, 230, 3, 108, 95, 134, 154, 203, 250, 227, 195, 142, 201, 110], body_to_save: None, events: [Event { key: EventKey([102, 157, 217, 129, 1, 43, 57, 114, 34, 179]), value: EventValue([255, 146, 76, 229, 17, 182, 119, 146, 196, 28, 97, 32, 121, 206, 80, 212, 63, 176, 10, 66, 251, 84, 189, 106, 72, 10, 139, 204, 5, 240]) }, Event { key: EventKey([96, 185, 197, 76, 11, 236, 127, 36, 233, 28, 180, 98, 183, 96, 199, 137, 151, 25, 181, 236, 186, 108, 135, 222, 254, 12, 170, 230, 7, 192, 26, 209, 69, 241, 181, 5, 194, 51, 142, 17, 186, 245, 72, 230, 52, 246, 167, 115, 212, 236, 184, 191, 185, 255, 103, 150, 205, 108, 212, 205, 51, 7, 146, 14, 70, 141, 150, 86, 11, 93, 164, 167, 35, 88, 247, 149, 66, 91, 180, 171, 42, 245, 222, 115, 74, 63]), value: EventValue([2, 33, 123, 187, 210, 125, 86, 44, 184, 214, 85, 195, 97, 86, 182, 70, 19, 106, 126, 149, 139, 64]) }, Event { key: EventKey([229, 2, 99, 16, 194, 226, 18, 25, 14, 18, 103, 185, 20, 50, 195, 19, 248, 131, 197, 108, 33, 221, 158, 112, 230, 231, 26, 204, 17, 108, 194, 66, 50, 18, 168, 227, 218]), value: EventValue([133, 22, 56, 154, 151, 96, 81, 59, 81, 205, 132, 126, 66, 56, 140, 212, 82, 237, 237, 111, 230, 101, 131, 34, 106, 27, 124, 188]) }], receipt: 51752141 }, TransactionReceipt { tx_hash: [243, 251, 166, 1, 83, 244, 233, 14, 211, 91, 228, 198, 28, 236, 96, 198, 17, 34, 21, 199, 37, 190, 37, 145, 34, 54, 219, 126, 105, 134, 178, 59], body_to_save: None, events: [Event { key: EventKey([11, 59, 193, 71, 219, 195, 97, 84, 121, 54, 26, 253, 69, 154, 107, 15, 16, 139, 3, 46, 31, 135, 246, 90, 99, 195, 205, 209, 110, 142, 122, 198, 40, 28, 12, 239, 31, 119, 65, 42, 186, 211, 79, 242, 7, 165, 0, 9, 102, 40, 90, 196, 198, 248, 90, 31, 167, 139, 232, 99, 220, 96, 154, 133, 106, 201, 51, 168, 233, 140, 22, 203, 70, 100, 119]), value: EventValue([52, 172, 44, 101, 144, 43, 19, 171, 3, 221, 248, 86, 147, 35, 180, 79, 18, 43, 84, 9, 62, 121, 36, 185, 192, 177, 34, 3]) }, Event { key: EventKey([196, 49, 109]), value: EventValue([42, 213, 163, 72, 187, 28, 101, 213, 45, 209, 193, 25, 40, 110, 243, 81, 112, 254, 211, 53, 44, 243, 202, 142, 209, 172, 187, 70, 209, 89, 232, 127, 251, 170, 143, 29, 169, 68, 138, 135, 188, 70]) }, Event { key: EventKey([105, 99, 252, 114, 162, 180, 1, 163, 7, 156, 187, 122, 70, 141, 51, 229, 225, 153, 153, 175, 65, 114, 121, 106, 45, 240, 97, 186, 114, 93, 78, 36, 214, 254, 222, 144, 50, 112, 61, 143, 208, 220, 245, 164, 158, 37]), value: EventValue([163, 36, 81, 210, 249, 159, 144, 65, 189, 29, 233, 50, 117, 78, 33, 77, 61, 184, 57, 66, 113, 114, 183, 228, 191, 4, 206, 144, 86, 251, 220, 165, 128, 226, 78, 55, 136, 160, 202, 7, 123, 72, 250, 123, 186, 151, 19, 133, 50, 18, 58, 31, 30, 125, 236, 196, 200, 163, 234, 53, 130, 113, 169, 70, 110, 185, 77, 26, 129, 231, 221, 97, 241, 137, 207, 4, 178, 128, 232, 193, 47, 110, 176, 136, 19, 119, 126, 203, 224, 131, 249, 2, 20, 99, 139, 154, 152, 160, 68]) }, Event { key: EventKey([161, 218, 70, 201, 203, 57, 229, 72, 229, 118, 151, 46, 15, 168, 98, 87, 78, 69, 203, 29, 62, 86, 117, 182, 13, 74, 245, 79, 236, 51, 219, 237, 152, 109, 61, 232, 60, 151, 199, 243, 220, 226, 170, 216, 41, 5, 170, 77, 151, 210, 25, 201, 130, 130, 190, 104, 157, 39, 225, 210, 67, 37, 225, 75, 149, 60, 197]), value: EventValue([43, 163, 240, 14, 238, 8, 140, 230, 75, 161, 114, 104, 53, 144, 50, 238, 85, 55]) }, Event { key: EventKey([119, 136, 16, 64, 28, 12, 126, 33, 121, 126, 38, 59, 130, 108, 103, 1, 57, 175, 208, 39, 154, 169, 19, 103, 213, 211, 221, 195, 176, 102, 210, 101, 95, 57, 255, 208, 174, 84, 3, 72, 140, 232, 119, 123, 80, 188, 41, 55, 152, 56, 153, 66, 195, 125, 2, 215, 172, 248, 41, 218, 199, 121, 146, 146, 179, 169, 235, 177]), value: EventValue([231, 106, 107, 132, 213, 94, 67, 141, 197, 237, 171, 64, 92, 200, 42, 246, 244, 220, 191, 60, 75, 108, 170]) }, Event { key: EventKey([104, 49, 236, 60, 174, 13, 42, 56, 205, 165, 202, 196, 228, 250, 75, 242, 215, 5, 45, 104, 6, 27, 31, 239, 99, 232, 13, 249, 57, 255, 60, 205, 159, 232, 216, 61, 20, 148, 217, 39, 100, 69, 75, 184, 56, 169, 49, 66, 75, 127, 136, 68, 86, 56, 240, 209, 113, 159, 130, 104, 116, 220, 186, 75, 74, 119, 83, 86, 61, 166, 136, 160, 115, 58, 217, 188, 175, 141, 29, 143, 60, 47, 131, 75, 79, 222, 183, 67, 225, 201]), value: EventValue([93, 59, 234, 194, 119, 7, 193, 210, 236, 219, 30, 191, 60, 110, 143, 10, 89, 204, 74, 75, 0, 26, 194, 246, 199, 95, 215, 217, 106, 53, 54, 122, 203, 80, 36, 74, 205, 90, 83, 74, 136, 35, 131, 128, 106, 140, 229, 108, 86, 226, 14, 235, 230, 174, 120, 96, 128, 89, 139, 220, 213, 31, 18, 87, 153, 232, 242, 42, 197, 63, 146, 219, 53, 81, 69, 30, 22, 204, 196, 222, 234, 246, 29, 160, 155, 120, 203]) }, Event { key: EventKey([222, 212, 4, 44, 104, 11, 239, 176, 33, 236, 150, 122, 200, 138, 18, 138, 157, 111, 191, 221, 107, 88, 32, 107, 186, 25, 201, 65, 128, 217, 180, 46, 24, 104, 127, 151, 171, 237, 84, 21, 244, 69, 242, 62, 175, 213, 24, 116, 216, 57, 115, 198, 179]), value: EventValue([75, 212, 5, 184, 253, 221, 60, 20, 111, 156, 26, 32, 51, 191, 12, 69, 117, 114, 195, 82, 100, 249, 252, 191, 60, 8, 179, 154, 38, 200, 244, 225, 198, 136, 205, 206, 156, 32, 77, 248, 127, 153, 180, 165, 154, 212, 172, 209, 142, 214, 235, 162, 154, 247, 187, 175, 71, 98, 202, 60, 162, 155, 171, 99, 46, 111, 152, 168, 87, 106, 226, 110, 89, 171, 167, 120, 73, 164, 228, 155, 91, 218, 203, 104, 125, 16, 214, 142, 44, 227, 225, 54, 71, 165]) }, Event { key: EventKey([78, 233, 70, 90, 11, 102, 8]), value: EventValue([71, 54, 108, 8, 30, 168, 118, 103, 192, 227, 189, 221, 66, 225, 68, 84, 73, 183, 162, 154, 171, 201, 201, 14, 21, 99, 104, 46, 218, 120, 216, 224, 247, 59, 241, 77, 92, 155, 240, 183, 13, 24, 20, 201, 189, 159, 142, 4, 244, 24, 17, 244, 79, 66, 147, 159, 246, 114, 6, 237, 194, 141, 9]) }, Event { key: EventKey([28, 111, 8, 81, 93, 164, 152, 3, 155, 99, 16, 74, 129, 53, 87, 111, 128, 129, 203, 234, 180, 234, 136, 110, 8, 85, 224, 46, 29, 172, 202, 156, 68, 210, 158, 170, 113, 177, 183, 64, 146, 50, 229, 245, 115, 169, 11, 125]), value: EventValue([34, 57, 217, 142, 125, 143, 241, 10, 132, 43, 197, 199, 196, 196, 212, 25, 191, 77, 122, 92, 156, 1, 252, 9, 137]) }], receipt: 3007629985 }, TransactionReceipt { tx_hash: [224, 146, 9, 155, 75, 85, 244, 165, 68, 194, 43, 91, 66, 157, 81, 140, 2, 30, 54, 158, 132, 187, 179, 73, 160, 114, 228, 22, 115, 203, 51, 6], body_to_save: None, events: [Event { key: EventKey([136, 24, 73, 147, 150, 222, 27, 165, 3, 152, 122, 253, 122, 33, 18, 245, 186, 115, 231, 66, 121, 12, 92, 0, 190, 88, 26, 127, 34, 112, 191, 181, 15, 146, 75, 229, 174, 234, 218, 34, 139, 108, 123, 140, 159, 225, 232, 185, 127, 220, 152, 244, 60, 101, 102, 117, 206, 40, 229, 0, 252, 253, 5, 139, 144, 45, 14, 200, 239, 156, 241, 128, 12, 25, 83, 166, 88, 99, 117, 3, 194, 165, 1, 79, 196, 129]), value: EventValue([208, 164, 94, 170, 232, 101, 38, 238, 165, 134, 64, 193, 87, 98, 52, 29, 1, 159, 170, 61, 205, 254, 252, 231, 31, 175, 1, 186, 114, 206, 251, 143, 255, 149, 126, 206, 137, 39, 249, 245, 186, 42, 236, 242, 86, 175, 225, 7, 184, 229, 97, 134, 17, 121, 120, 200, 251, 187, 100, 144, 161, 171, 175, 26]) }, Event { key: EventKey([46, 157, 121, 134, 249, 196, 212, 17, 118, 214, 228, 201, 128, 199, 149]), value: EventValue([255, 212, 130, 220, 65, 148, 48, 188, 136, 157, 69, 130, 96, 8, 150, 24, 235, 138, 192, 3, 131, 22, 30, 136, 32, 70, 243, 237, 206, 53, 20, 167, 10, 151, 109, 252, 127, 98, 101, 58, 211, 20, 132, 163, 45, 30, 117, 131, 245, 49, 209, 134, 78, 230, 114, 117, 207, 173, 113, 192, 131, 191, 154, 42, 227, 191, 47, 191]) }, Event { key: EventKey([125, 251, 246, 149, 28, 129, 224, 22, 219, 234, 211, 238, 202, 164, 74, 115, 180, 66, 207, 234, 60, 81, 212, 57, 232, 157, 45, 113, 213, 103, 213, 9, 80, 31, 136, 84, 208, 12, 221, 157, 170, 7, 144]), value: EventValue([18, 92, 133, 172, 86, 0, 58, 236, 144, 146, 71, 241, 11, 119]) }, Event { key: EventKey([60, 155, 98, 110, 114, 171, 169, 28, 203, 31, 249, 237, 95, 10, 61, 160, 141, 181, 192, 75, 92, 21, 70, 227, 0, 151, 155, 105, 115, 150, 137, 12, 61, 10]), value: EventValue([225, 250, 71, 153, 143, 50, 179, 253, 63, 139, 20, 131, 83, 50, 42, 223, 148, 202, 56, 29, 68, 94, 72, 148, 196, 144, 161, 208, 228, 97, 24, 233, 22, 85, 19, 54, 191, 45, 145, 222, 58, 130, 119, 227, 148, 131, 77, 232, 95, 196, 20, 119, 214, 146, 50, 66, 46, 14, 18, 234, 16, 244, 4, 116, 167, 167, 94, 98, 212, 22, 202, 109, 42, 205, 0, 11, 187, 89, 124, 189, 107, 2, 167, 46, 227, 124, 2, 159, 228, 69, 188]) }, Event { key: EventKey([77, 85, 215, 137, 193, 142, 208, 207, 104, 55, 142, 242, 46, 28, 180, 9, 123, 34, 153, 194, 61, 173, 2, 148]), value: EventValue([136, 102, 135, 106, 65]) }, Event { key: EventKey([0, 144, 115, 33, 121, 191, 210, 139, 4, 0, 218, 191, 50, 249, 40, 45, 143, 185, 223, 179, 166, 6, 211, 85, 87, 211, 97, 67, 179, 60, 193, 166, 151, 27, 46, 83, 253, 242, 91, 232, 145, 131, 158, 212, 221, 59, 51, 247, 25, 197, 210, 200, 230, 89, 66, 80, 48, 217, 129, 7, 241, 124, 135, 170, 23, 63, 197, 23, 208, 79, 23, 136, 85, 176, 169, 181, 203]), value: EventValue([179, 108, 83, 203, 3, 19, 133, 136, 88, 229, 154, 184, 8, 90, 6, 39, 22, 176, 144, 172, 207, 204, 203, 219, 250, 192, 52, 240, 51, 229, 22, 190, 65]) }, Event { key: EventKey([155, 158, 159, 236, 104, 71, 44, 242, 76, 250, 83, 170, 188, 225, 0, 60, 195, 225, 244, 126, 55, 2, 148, 153, 176, 239, 90, 138, 135, 84, 233, 99, 199, 69, 3, 177, 35, 109, 55, 211, 22, 16, 189, 135, 218, 78, 72, 140, 146, 129, 156, 91, 81, 57, 21, 231, 205, 239, 136, 136, 78, 78, 158, 112, 147, 210, 11, 148, 7, 201, 155, 216, 107, 99, 47]), value: EventValue([107, 103, 15, 146, 130, 39, 173, 109, 10, 62, 65, 135, 155, 201, 145, 151, 143, 219, 76, 16]) }, Event { key: EventKey([49, 23, 240, 93, 248, 26, 239, 157, 73, 207, 127, 43, 46, 70, 41, 29, 164, 64, 124, 126, 86, 114, 90, 138, 87, 1, 185, 238, 121, 12, 204, 90, 97, 61, 141, 78, 58, 16, 135, 76, 57, 29, 104, 87, 132, 176, 74, 241, 62, 130, 80, 175, 197, 132, 76, 137, 45, 99, 153, 194, 209, 144, 235, 60, 115, 102, 220, 20, 39, 42, 74, 249, 24, 76, 21, 5, 25, 86, 86, 156, 35, 216, 162, 190, 9, 152]), value: EventValue([16, 253, 109, 31, 193, 107, 221, 11, 63, 214, 86, 44, 109, 141, 121, 7, 173, 89, 2, 189, 180, 139, 177, 188, 57, 245, 134, 120, 93, 160, 232, 7, 0, 201, 25, 236, 194, 89, 145, 121, 131, 30, 60, 24, 146, 232, 87, 71, 159, 153, 165, 240, 122, 62, 226, 118, 58]) }, Event { key: EventKey([9, 7, 83, 178, 134, 38, 94, 134]), value: EventValue([23, 114, 179, 128, 85, 250, 80, 146, 93, 82, 37, 111, 111, 196, 162, 147, 247, 199, 188, 158, 199, 240, 213, 234, 62, 161, 128, 44, 14, 206, 125, 194, 174, 51, 59, 162, 246, 44, 236, 135, 233, 149, 117, 14, 228]) }], receipt: 665471155 }, TransactionReceipt { tx_hash: [85, 253, 80, 59, 145, 38, 30, 34, 244, 16, 223, 252, 210, 47, 221, 96, 132, 111, 180, 78, 119, 156, 192, 96, 108, 161, 153, 108, 91, 105, 229, 109], body_to_save: Some([16, 180, 176, 41, 175, 33, 203, 34, 229, 251, 211, 46, 106, 244, 13, 92, 236, 227, 123, 102, 145, 175, 245, 71, 169, 39, 92, 40, 121, 136, 237, 90, 54, 39, 157, 140, 167, 93, 76, 130, 175, 126, 169, 150, 248, 109, 56]), events: [Event { key: EventKey([97, 144, 17, 149]), value: EventValue([179, 82, 133, 7, 50, 159, 187, 67, 180, 180, 195, 98, 87, 207, 74, 119, 91, 213, 81, 63, 158, 193, 91, 99, 180, 233, 145, 232, 158, 146, 112, 255, 118, 133, 23, 150, 197, 87, 58, 2, 101, 248, 25, 116, 78, 238, 213, 5, 21, 207, 106, 245, 101, 197, 142, 186, 33, 190, 240, 33, 174, 87, 5, 71, 140, 11, 170, 83, 54, 111, 15, 219]) }, Event { key: EventKey([102, 9, 177, 39, 126, 135, 254, 128, 180, 110, 232, 106, 196, 60, 33, 174, 133, 141, 246, 112, 161, 52, 213, 232, 85, 253, 76, 94, 146, 76, 156, 43, 230, 111, 45, 45, 91, 88, 53, 208, 218, 24, 9, 74, 32, 26, 9, 140, 63, 150, 42, 166, 159, 108, 97, 11, 30, 133, 28, 129, 137, 207, 71, 90, 14, 70, 95, 221, 89, 15, 35, 117, 84, 156, 131, 197, 93, 204, 238, 73, 146, 105, 47, 184, 216, 144, 209, 148, 58, 157]), value: EventValue([233, 144, 154, 145, 86, 0, 110, 204, 21, 62, 18, 145, 239, 7, 147, 191, 254, 60, 0, 241, 65, 230, 154, 5, 66, 19, 228, 61, 245, 77, 208, 173, 192, 133, 143, 159, 147, 130, 116, 197, 217, 246, 227, 210, 250, 147, 100, 17, 164, 97, 192, 249, 108, 226, 47, 154, 148, 85, 143, 38, 49, 87, 79, 158, 185, 180]) }, Event { key: EventKey([88, 241, 81, 187, 240, 119, 158, 208, 215, 9, 129, 181, 157, 113, 159, 107, 15, 182, 85, 143, 110, 36, 15, 229, 53, 175, 232, 236, 134, 68, 133, 52, 39, 233, 149, 14, 195, 122, 18, 61, 119, 38, 21, 18, 47, 206, 190, 67, 30, 172, 32]), value: EventValue([160, 165, 108, 198, 140, 92, 131, 161, 44, 20, 248, 211, 224, 152, 73, 198, 193, 255, 211, 239, 110, 123, 190, 82, 35, 59, 57, 52, 5, 178, 69, 44, 45, 169, 78, 174, 173, 20, 209, 13, 168, 179, 166, 142, 139, 132, 244, 192, 171, 163, 28, 50, 20, 123, 196, 70, 98, 87, 163, 212, 30, 34, 120, 224, 137, 244, 93, 137, 21, 48]) }, Event { key: EventKey([236, 60, 233, 235, 189, 163, 229, 38, 159, 201, 45, 80, 2, 218, 178, 66, 3, 142, 89, 185, 75, 0, 136, 198, 127, 132, 221, 61, 28, 202, 185, 72, 154, 222, 17, 133, 193, 18, 179, 33, 207, 235, 8, 172, 4, 133, 245, 224, 248, 249, 98, 210, 171, 5, 15, 7, 134, 253, 4, 105, 38, 181, 79, 133, 209, 85, 82, 231, 195, 81, 208, 252, 196, 119, 118, 23, 37, 190, 157, 164, 155, 161, 143, 24, 21, 193, 131, 46, 43, 95, 75, 165, 210, 118, 195, 33, 175, 227]), value: EventValue([166, 9, 162]) }, Event { key: EventKey([51, 208, 211, 121, 97, 0, 193, 201, 140, 189, 108, 132, 74, 80, 95, 82, 198, 34, 249, 105, 16, 183, 117, 205, 11, 72, 176, 92, 223, 2, 78, 16, 103, 171, 209, 73, 224, 15, 127, 11, 87, 123, 200, 229, 140, 125, 214, 251, 59, 57, 58, 234, 233, 143, 209, 165, 117, 157, 241, 24, 243, 45, 68, 49, 38, 173, 22, 223, 197, 41, 75, 199, 52, 85, 100, 5, 21, 13, 66, 231, 177, 117, 60, 75, 96, 120, 159, 44, 14, 205, 130, 238, 109, 199, 34, 100]), value: EventValue([199, 154, 241, 184, 245, 14, 162, 135, 252, 201, 232, 26, 63, 14, 132, 22, 81, 255, 212, 101, 230, 163, 2, 132, 51, 65, 20, 117, 38, 150, 102, 107, 218, 156, 10, 164, 177, 2, 187, 216, 2, 80, 69, 101, 175, 65, 27, 161, 112, 144, 168, 98]) }, Event { key: EventKey([233, 173, 234, 71, 161, 76, 98, 160, 15, 157, 242, 23, 147, 136, 99, 2, 50, 48, 15, 76, 152, 133, 20]), value: EventValue([107, 116, 14, 237, 88, 76, 164, 246, 70, 9, 120, 254, 60, 103]) }, Event { key: EventKey([121, 165, 149, 49, 49, 228, 130, 208, 45, 151, 214, 175, 71, 231, 124, 23, 140, 129, 130, 201, 211, 161, 50, 42, 236, 212, 44, 84, 42, 0, 124, 207, 64, 30, 107, 2, 9, 129, 51, 187, 133, 176, 75, 246, 205, 69, 72, 141, 156, 46, 203, 129]), value: EventValue([113, 211, 103, 137, 17, 150, 202, 93, 154, 117, 74, 58, 175, 116, 254, 128, 105, 16, 173, 113, 19, 107, 3, 96, 138, 119, 196, 197, 75, 216, 185, 0, 255, 53, 152, 163, 251, 157, 9, 210, 205, 215, 181, 1, 148, 69, 144, 34, 157, 18, 187, 52, 25, 126, 72, 125, 233, 245, 50, 36, 41, 120, 57, 204, 97, 216, 216, 20, 111, 108, 40, 97, 63, 203, 153, 90, 73, 133, 187, 250, 210, 197, 181]) }, Event { key: EventKey([176, 60, 178, 71, 86, 161, 22, 165, 138, 254, 149, 168, 159, 154, 37, 137, 246, 89, 213, 155, 224, 184, 71, 124, 101, 250, 190, 248, 238, 109, 89]), value: EventValue([42, 49, 26, 141, 65, 177, 104, 56, 49, 44, 220, 157, 76, 236, 145, 65, 208, 17, 154, 165, 245, 119, 11, 13, 191, 96, 4, 169, 32, 252, 179, 57, 43, 204, 98, 192, 33, 217, 2, 130, 10]) }, Event { key: EventKey([38, 253, 75, 132, 74, 152, 212, 252, 106, 177, 164, 82, 152, 94, 242, 169, 34, 229, 44, 33, 234, 22, 100, 217, 66, 242, 18, 221, 84, 156, 167, 72, 64, 37, 224, 21, 217, 127, 93, 84, 100, 107, 191, 112, 11, 209, 206, 227]), value: EventValue([146, 157, 121, 71, 170, 56, 30, 243, 69, 212, 186, 235, 18, 5, 219, 126, 9, 121, 31, 109, 151, 98, 49, 14, 10, 60, 151, 73, 31, 79, 201, 60, 220, 172, 14, 204, 103, 92, 114, 235]) }], receipt: 2298391299 }, TransactionReceipt { tx_hash: [215, 25, 87, 110, 96, 203, 219, 76, 167, 250, 167, 125, 32, 16, 107, 211, 65, 231, 126, 247, 111, 43, 163, 187, 166, 251, 215, 173, 241, 35, 123, 208], body_to_save: None, events: [Event { key: EventKey([48, 174, 134, 37, 108, 209]), value: EventValue([33, 159, 241, 115, 52, 243, 90, 44, 118, 204, 60, 2, 76, 246, 224, 185, 182, 236, 42, 163, 95, 118, 92, 185, 184, 44, 178, 213, 94, 62, 216, 226, 231, 227, 0, 89, 40, 80, 47, 10, 166, 74, 184, 111, 224, 8, 78, 13, 222, 101, 30, 111, 89, 70, 251, 6, 56, 24, 72, 192, 194, 14, 165, 48, 235, 139, 64, 109, 244, 202, 142, 4, 52, 156, 40, 7, 61, 182, 212]) }], receipt: 2071353073 }, TransactionReceipt { tx_hash: [97, 116, 152, 122, 233, 22, 87, 160, 159, 86, 193, 99, 5, 236, 42, 222, 184, 228, 55, 75, 208, 62, 222, 53, 19, 208, 22, 130, 157, 133, 216, 33], body_to_save: Some([222, 163, 124, 159, 150, 150, 0, 135, 19, 142, 216, 126, 105, 165, 191, 84, 243, 9, 100, 15, 60, 126, 244, 192, 124, 35, 13, 164, 62, 14, 100, 176, 72, 252, 121, 217, 27, 29, 166, 162, 92, 253, 88, 254, 5, 207, 119, 194, 62, 142, 121, 148, 179, 82, 249, 48, 135, 50, 201, 174, 163, 198, 80, 17, 159, 205, 225, 71, 15, 169, 217, 140, 29, 249, 19, 85]), events: [Event { key: EventKey([130, 204, 48, 234, 138, 112, 156, 6, 86, 140, 28, 66, 166, 229, 25, 19, 76, 14, 10, 37, 238, 220, 195, 49, 221, 116, 211, 135, 109, 189, 14, 101, 69, 202, 117, 150, 224, 104, 212, 71, 254, 101, 255, 217, 180, 20, 226, 130, 168, 247, 55, 92, 173, 9, 188, 171, 69, 135, 199, 93, 92, 140, 200, 54, 133, 245, 144, 61, 3, 251, 241, 64, 154, 49, 248, 156, 244, 65, 195, 127, 5, 59, 0, 201, 95, 214, 3, 129, 216, 100, 48]), value: EventValue([142, 200, 200, 74, 29, 2]) }, Event { key: EventKey([20, 55, 217, 92, 129, 49, 211]), value: EventValue([27, 140, 88, 228, 86, 62, 216, 31, 169, 119, 28, 98, 213, 7, 238, 55, 4, 196, 116, 252, 86, 59, 48, 166, 125, 159, 138, 203, 145, 142, 121, 210, 5, 241, 155, 234, 234, 35, 102, 35, 156, 40, 122, 129, 133, 90, 29, 177, 251, 128, 53, 134, 120, 202, 198, 73, 197, 94, 166, 176, 141, 104, 114]) }, Event { key: EventKey([207, 231, 121, 72, 127, 116, 212, 191, 222, 144, 55, 104, 87, 56, 149, 214, 157, 46, 180, 39, 104, 207, 60, 82, 86, 24, 14, 109, 206, 52, 112, 117, 223, 246, 15, 48, 198, 91, 243, 159, 97, 247, 76, 242, 140, 203, 226, 39, 143, 95, 234]), value: EventValue([212, 142, 88, 166, 114, 150, 32, 7, 96, 185, 32, 73, 38, 240, 146, 4, 179, 193, 85, 141, 66, 183, 223, 66, 17, 70, 91, 18, 158, 239, 73, 97, 41, 58, 130, 112, 181, 12, 183]) }, Event { key: EventKey([79, 177, 119, 189, 198, 107, 250, 7, 229, 222, 134, 164, 73, 230, 211, 168, 28, 199, 208, 183]), value: EventValue([160, 209, 203, 228, 155, 164, 101, 131]) }, Event { key: EventKey([109, 127, 83, 132, 73, 36, 243, 114, 172, 103, 155, 179, 170, 74, 99, 102, 195, 173, 96, 163, 80, 117, 168, 210, 50, 184, 73, 235, 0, 92, 228, 186, 89, 56, 50, 0, 103, 147, 107, 202, 245, 180, 81, 141, 131, 178, 233, 153, 50, 188, 202, 200, 41, 149, 1, 42, 183, 79, 227, 247, 127, 39, 180, 251, 97, 84, 57, 29, 76, 50]), value: EventValue([126, 58, 49, 107, 65, 78, 158, 6, 227, 191, 52, 59, 65, 182, 109, 210, 54, 102, 206, 168, 82, 27, 207, 83, 69, 206, 207, 131, 241, 217, 31, 0, 187, 5, 83, 163, 81, 75, 49, 156, 188, 14, 88, 97, 39, 178, 28, 0, 246, 106, 97, 3, 230, 221, 215, 115, 241, 46, 208, 208, 49, 201, 191, 246, 30, 109, 108, 245, 87, 95, 177, 202, 218, 83, 66, 72, 69, 174, 217, 214]) }, Event { key: EventKey([231, 171, 184, 251, 233, 241, 9, 212, 47, 206, 217, 72, 246, 167, 254, 201, 59, 74, 169, 167, 228, 245, 195, 235, 164, 77, 182, 230, 93, 173, 23, 34, 141, 178, 228, 197, 115, 70, 230, 237, 252, 8, 253, 166, 9, 116, 244, 43, 48, 156, 139, 240, 22, 182, 120, 195, 123, 167, 231, 75, 14, 4, 238, 113, 132, 95, 242, 27, 134, 181, 120, 24, 57, 115, 96, 60, 141, 217, 30, 39, 55, 83, 106, 78, 78, 156, 7, 99, 224, 182]), value: EventValue([113, 53, 166, 59, 163, 236, 19, 82, 115, 173, 244, 81, 238, 246, 239, 75, 4, 105, 127, 95, 113, 204, 170, 79, 234, 121, 28, 46, 109, 111, 2, 224, 188, 38, 38, 102, 227, 38, 146, 233, 209, 69, 241, 249, 73, 179, 32, 9, 131, 167, 210, 112, 162, 80, 46, 51, 107, 192, 241, 181, 176, 215, 251, 193, 81, 138, 101, 229]) }, Event { key: EventKey([145, 192, 220, 23, 103, 116, 166, 183, 30, 163, 149, 153, 221, 88, 152, 81, 90, 255, 55, 21, 56, 170, 223, 88, 94, 40, 20, 149, 211, 237, 68, 161, 110, 138, 195, 198, 54, 101, 79, 182, 97, 56, 146, 127, 104, 73, 64, 33, 82, 64, 162, 209, 57, 249, 217, 141, 250, 150, 162, 140, 180, 31, 45, 102, 187, 19, 197, 236, 63, 40, 15, 66, 16, 255, 63, 43, 74, 191, 70, 253, 161, 197, 151, 73, 138, 57, 244, 190, 153, 169, 226, 158, 115]), value: EventValue([179, 239, 204, 23, 117, 124, 30, 195, 101, 253, 180, 104, 231, 196, 68, 181, 203, 186, 63, 34, 117, 58, 213, 88, 146, 67, 0, 213, 98, 7, 215, 103, 25, 135, 13, 162, 134, 103, 70, 246, 136, 159, 136, 78, 136, 197, 104, 123, 186, 113, 20, 216, 14, 54, 101, 206, 225, 208, 42, 183, 129, 158, 94, 47, 52, 15, 252, 92, 216, 92, 137, 201, 63, 130, 45, 211, 42, 65, 37]) }, Event { key: EventKey([235, 196, 239, 197, 144, 179, 253, 36, 90, 139, 109, 104, 56, 176, 117, 31, 7, 173, 50, 100, 127, 7, 82, 61, 37, 33, 152, 141, 208, 6, 38, 19, 253, 125, 192, 192, 3, 144, 93, 127, 11, 19, 210, 228, 53, 108, 158, 111, 138, 51, 19, 12, 172, 162, 105, 79, 216, 31, 147, 251]), value: EventValue([92, 195, 249, 110, 88, 74, 48, 71, 224, 120, 226, 31, 221, 37, 169, 211, 77, 180, 254, 14, 54, 51, 214, 162, 254, 229, 169, 94, 172, 30, 252, 46, 166, 26, 236, 211, 151, 117, 217, 11, 232]) }, Event { key: EventKey([7, 67, 193, 78, 67, 167, 137, 246, 127, 225, 166, 174]), value: EventValue([73, 250, 223, 180, 96, 120, 110, 135, 232, 238, 170, 22, 26, 226, 220, 157, 133, 69, 84, 73, 135, 180, 65, 56, 123, 63, 201, 66, 228, 106, 86, 136, 10, 98, 86, 97, 35, 184, 177, 87, 171, 1, 17, 233, 161, 230, 33, 153, 140, 93, 188, 110, 37, 244, 5, 145, 232, 89, 157, 27, 119, 32, 123, 55, 189, 157, 89, 225, 138, 96, 166, 0, 44, 188, 48, 149, 183, 10, 47, 113, 237, 232, 191, 108, 224, 228, 139, 238, 203, 43, 91]) }], receipt: 1711641132 }], inner: 3932336011 }], num_txs: 40, num_events: 186 }, SlotCommit { slot_data: TestBlock { curr_hash: [24, 223, 153, 144, 250, 114, 190, 23, 167, 124, 71, 222, 218, 237, 29, 207, 214, 153, 46, 150, 168, 171, 214, 4, 46, 18, 91, 148, 200, 24, 107, 189], header: TestBlockHeader { prev_hash: TestHash([143, 80, 149, 213, 191, 77, 129, 212, 54, 99, 132, 81, 119, 210, 83, 23, 216, 56, 53, 186, 5, 85, 111, 237, 161, 179, 50, 2, 216, 231, 209, 182]) } }, batch_receipts: [BatchReceipt { batch_hash: [169, 171, 117, 167, 55, 5, 65, 193, 55, 132, 178, 192, 217, 27, 188, 130, 254, 183, 171, 47, 111, 196, 141, 18, 240, 43, 103, 4, 20, 104, 53, 120], tx_receipts: [TransactionReceipt { tx_hash: [195, 245, 59, 57, 124, 58, 0, 227, 54, 204, 19, 71, 187, 136, 151, 215, 221, 111, 101, 208, 94, 197, 124, 144, 146, 11, 113, 190, 56, 179, 23, 51], body_to_save: Some([104, 245, 199, 12, 16, 231, 145, 90, 54, 75, 219, 239, 233, 124, 246, 204, 56, 25, 102, 241, 238, 134, 108, 7, 239, 239, 199, 52, 67, 110, 163, 93, 227, 173, 167, 255, 141, 154, 210, 11, 5, 142, 90, 218, 225, 41, 119, 170, 148, 20, 69, 207, 164, 200, 179, 165, 154, 47, 156, 105, 172, 164, 16, 51, 233, 193, 229, 80]), events: [], receipt: 730388163 }, TransactionReceipt { tx_hash: [36, 181, 219, 108, 205, 196, 98, 48, 194, 135, 35, 117, 143, 130, 6, 199, 250, 115, 45, 52, 1, 20, 211, 74, 176, 69, 147, 119, 207, 118, 66, 147], body_to_save: Some([46, 115, 198, 163, 147, 61, 105, 113, 93, 131, 15, 55, 39, 112, 107, 61, 188, 99, 214, 75, 102, 32, 216, 163, 72, 63, 141, 97, 226, 236, 176, 199, 246, 218]), events: [Event { key: EventKey([167, 77, 225, 46, 222, 169, 96, 221, 91, 217, 81, 4, 137, 64, 61, 9, 195, 211, 216, 165, 72, 60, 179, 18, 40, 174, 220, 59, 141, 22, 102, 188, 35, 228, 142, 89, 246, 11, 117, 162, 201, 136, 212, 111, 107, 247, 152, 84, 27, 106, 243, 212, 137, 1]), value: EventValue([4, 43, 248, 131, 141, 95, 149, 184]) }, Event { key: EventKey([160, 23, 8, 186, 60, 8]), value: EventValue([172, 181, 0, 67, 143, 77, 82, 66, 48, 97, 126, 27, 197, 155, 9, 111, 229, 243, 56, 214, 80, 10, 230, 195, 254, 31, 48, 117, 64, 210, 253, 128, 142, 187, 198, 62, 174, 77, 199, 4, 89, 200, 141, 176, 36, 187, 135, 83, 161, 246, 5, 197, 211, 85, 200, 76, 170, 130, 196, 92, 72, 64, 254, 30, 47, 244, 239, 139, 188, 21, 129, 54, 169, 179, 187, 131, 244, 152]) }, Event { key: EventKey([77, 139, 98, 192, 242, 15, 148, 28, 240, 172, 133, 93, 224, 239, 67, 160, 56, 113, 170, 53, 146, 201]), value: EventValue([101, 123, 168]) }, Event { key: EventKey([154, 182, 109, 174, 53, 246, 39, 74, 209, 190, 207, 153, 93, 186, 166, 73]), value: EventValue([149, 25, 164, 150, 183, 90, 191, 149, 72, 221, 53, 217, 13, 91, 164, 18, 156, 22, 179, 235, 254, 73, 44, 128, 126, 236, 181, 75, 154, 111, 216, 160, 224, 252, 123, 158, 24, 178, 106, 33, 228, 14, 10]) }, Event { key: EventKey([55, 106, 252, 253, 133, 217, 242, 137, 70, 61, 91, 153, 15, 105, 171, 218, 169, 85, 175, 198, 217, 13, 186, 18, 98, 121, 101, 121, 36, 248, 128]), value: EventValue([154, 90, 162, 142, 82, 77, 57, 18, 210, 181, 95, 120, 176, 6]) }, Event { key: EventKey([40, 97, 31, 48, 44, 159, 175, 214, 240, 195, 220, 87, 191, 16, 132, 225, 70, 35, 58, 179, 31, 89, 140, 56, 254, 188, 163, 192, 197, 203, 252, 121, 57, 56, 82, 171, 61, 236, 47, 18, 154, 138, 53, 248, 255, 65, 154, 126, 182, 175, 175, 206, 206, 50, 69, 85, 24, 15, 81, 34, 28, 15, 11]), value: EventValue([13, 87, 21, 39, 84, 173, 142, 220, 236, 41, 49, 145, 47, 216, 144, 159, 42, 20, 165, 66, 118, 57, 29, 176, 138, 164, 97, 37, 62, 74, 87, 237, 180, 208, 229, 79, 133]) }, Event { key: EventKey([161, 21, 238, 62, 181, 136, 18, 137, 80, 229, 239, 117, 59, 182, 240, 29, 224, 86, 218, 66, 249, 242, 193, 88, 161, 229, 9, 223, 19, 150, 96, 185, 170, 70, 137, 142, 80, 133, 181, 116, 57, 167, 109, 101, 186, 249, 117, 65, 14, 221, 114, 170, 52, 35, 190, 63, 126, 178, 161, 151, 221, 177, 102, 73, 3, 128, 161, 242, 72, 28, 48, 211, 216, 46, 37, 145, 34, 56]), value: EventValue([57, 64, 147, 172, 26, 175, 73, 86, 98, 108, 34, 47, 3, 242, 235, 76, 46, 123, 13, 225, 91, 240, 100, 224, 19, 63, 48, 186, 173, 198, 33, 197, 202, 225, 32, 17, 11, 112, 163, 253, 157, 31, 235, 162, 13, 44, 180, 47, 206, 143, 39, 235, 10, 237, 83, 91, 107, 21, 209, 11, 151, 5, 143, 46, 130, 159, 174, 38, 40, 112, 71, 51, 85, 231, 99, 175, 148, 47, 149, 113, 180, 67, 130, 196, 99, 241, 216, 13]) }, Event { key: EventKey([30, 212, 43, 141, 198, 213, 148, 189, 147, 113, 242, 31, 43, 228, 163, 199, 241, 249, 154, 244, 144, 46, 72, 183, 120, 233, 223, 145, 109, 187, 252, 119, 6, 190, 12, 7, 198, 126, 69, 231, 28, 177, 212, 155, 141, 76, 96, 133, 117, 106, 194, 116, 41, 231, 207, 241, 138, 249, 65, 43, 98, 9, 76, 83, 103, 109, 231, 39, 70, 16, 18, 196, 98, 247, 70, 214, 23, 92, 12]), value: EventValue([82, 148, 91, 58, 243, 128, 192, 7, 102, 223, 204, 95, 172, 88, 197, 79, 45, 205, 81, 94, 60, 173, 134, 141, 183, 131, 125, 149, 242, 52, 70, 168, 74, 66, 217, 199, 54, 55, 178, 243, 118, 182, 146, 48, 37, 52]) }, Event { key: EventKey([192, 172, 131, 80, 56, 101, 249, 197, 157, 117, 172, 90, 252, 56, 160, 102, 120, 199, 134, 74, 11, 180, 48, 147, 136, 244, 70, 92, 217, 152, 226, 89, 120, 78, 131, 118, 243, 171, 236, 63, 82, 55, 176, 35, 47, 8, 241, 114, 249, 106, 103, 154, 3, 102, 195, 82, 18, 186, 166, 40, 100, 147, 138, 16, 244, 151, 50, 64, 56, 49, 155, 1, 183, 141, 78, 129, 105, 234, 7, 239, 77, 230, 26, 158, 162]), value: EventValue([175, 179, 136, 146, 71, 109, 213, 191, 156, 121, 67, 105, 19, 98, 51, 163, 182, 226, 185, 221, 231, 172, 37, 220, 45, 213, 53, 68, 131, 168, 39, 139, 140, 141]) }], receipt: 1873720666 }, TransactionReceipt { tx_hash: [41, 109, 126, 37, 123, 144, 115, 216, 113, 242, 228, 151, 229, 190, 27, 213, 54, 33, 5, 83, 216, 5, 78, 212, 31, 179, 79, 228, 21, 172, 220, 40], body_to_save: Some([39, 167, 191, 218, 185, 105, 217, 154, 156, 187, 154, 46, 36, 229, 132, 83, 4, 8, 112, 225, 110, 182, 197, 173, 171, 35, 106, 244, 7, 78, 46, 214, 255, 19, 241, 162, 176, 2, 12, 78, 31, 79, 106, 75, 94, 175, 57, 70, 86, 128, 117, 121, 91, 6, 155, 54, 117, 1, 144, 65, 210, 40, 109, 193, 136, 90, 159, 211, 57, 179, 89, 109, 226, 196]), events: [Event { key: EventKey([203, 253, 200, 116, 56, 139, 126, 8, 50, 110, 209, 251, 58, 163, 14, 222, 227, 94, 119, 211, 253, 220, 70, 138, 205, 209, 136, 177, 25, 141, 113, 114, 35, 183, 151, 70, 187, 24, 9, 149, 21, 128, 62, 242, 102, 227, 173, 247, 2, 241, 42, 47, 209, 238, 165, 174, 199, 62, 31, 85, 33, 225, 254, 104, 251, 59, 50, 206, 177, 189, 170, 48, 215, 105, 196, 100, 205, 238, 25, 85, 240, 102, 56, 231, 124, 63]), value: EventValue([62, 153, 214, 251, 164, 35, 205, 241, 167, 162, 115, 2, 221, 168, 207, 216, 179, 77, 90, 4, 7, 100, 167, 47, 67, 72, 18, 6, 45, 231, 156, 227, 194, 70, 100, 196, 3, 75, 47, 175, 89, 110, 5, 117, 3, 79, 179, 163, 188, 144, 152, 126, 195, 198, 151, 247, 241, 44, 160, 68, 128, 76, 252, 85, 67, 238, 55, 106, 163, 200, 49, 111, 171, 167, 179, 206, 214, 159, 149, 180, 28]) }, Event { key: EventKey([145, 220, 116, 206, 198, 82, 34, 194, 138, 76, 11, 94, 5, 217, 216, 204, 67, 247, 51, 147, 137, 148, 87, 2, 10, 48, 225, 158, 118, 131, 65, 78, 246, 138, 164, 43, 51, 228, 22, 225, 205, 151, 122, 155, 167, 254, 11, 161, 214, 146, 106, 209]), value: EventValue([187, 171, 145, 42, 239, 49, 180, 15, 5, 10]) }, Event { key: EventKey([81, 14, 157, 61, 161, 221, 173, 2, 30, 236, 115, 190, 245, 52, 67, 32, 175, 61, 55, 8, 77, 247, 225, 76, 163, 124, 252, 64, 252, 90, 76, 241, 208, 187, 156, 62, 54, 91, 99, 187, 82, 54, 165, 93, 64, 157, 9, 37, 76, 226, 221, 253, 201, 97, 207, 170, 53, 141, 85, 151, 151, 167, 62, 238, 67, 84, 254, 148, 38, 173, 39, 167, 92, 225, 196, 120, 148, 28, 99, 79, 109, 26, 135, 141]), value: EventValue([50, 192, 26, 109, 78, 212, 47, 143, 44, 192, 173, 147, 99, 135, 253, 71, 194, 12, 147, 0, 197, 0, 165, 196, 120, 228, 193, 30, 129, 59, 25]) }, Event { key: EventKey([135, 10, 193, 137, 62, 164, 36, 30]), value: EventValue([248, 226, 211, 132, 253, 185, 176, 95, 90, 191, 206, 10, 32, 180, 208, 174, 216, 42, 26, 142, 247, 181, 188, 224, 52, 68, 248, 212, 141, 184, 111, 16, 189, 119, 108, 90, 239, 231, 79, 42, 42, 107, 212, 203, 243, 135, 148, 111, 212, 198, 38, 93, 11, 150, 194, 32, 69, 30, 243, 117, 140, 123, 57, 99, 244, 188, 191, 51, 6, 172, 136, 180, 144, 66, 177, 22, 76, 223, 104, 116, 172, 85, 49, 45, 113, 50, 112, 149, 185, 252]) }, Event { key: EventKey([218, 148, 164, 136, 2, 137, 30, 19, 217, 211, 185, 216, 45, 1, 82, 155, 28, 173, 158, 101, 162, 182, 178, 98, 234, 162, 156, 244, 34, 7, 172, 99, 154, 225, 136, 150, 28, 227, 61, 63, 30, 28, 111, 147, 92, 11, 93, 26, 54, 154, 52, 237, 140, 179, 79]), value: EventValue([198, 181, 216, 40, 230, 76, 196, 75, 187, 236, 229, 215, 71, 101, 221, 213, 20, 164, 158, 112, 157, 245, 114, 95, 200, 65, 246, 41, 22, 23, 76, 197, 3, 209, 59, 46, 39, 144, 155, 120, 219, 81, 93, 93, 33, 121, 211, 78, 241, 48, 209, 231, 243, 76]) }, Event { key: EventKey([46, 109, 128, 173, 80, 174, 207, 111, 45, 204, 70, 119, 36, 220, 103, 230, 219, 167, 87, 188, 167, 59, 55, 39, 106, 23, 46, 174, 170, 189, 12, 175, 160, 44, 114, 12, 103, 58, 5, 159, 114, 204, 161, 9, 94, 125, 194, 155, 171, 22, 132, 40, 51, 23, 227, 37, 37, 175, 238, 117, 225, 191, 151, 251, 252, 4, 164, 96, 180, 198, 252, 80, 47, 153, 194, 181, 42, 164, 74, 188, 162, 30, 155, 104, 24, 12, 92, 159, 230, 87]), value: EventValue([105, 21]) }, Event { key: EventKey([108, 7, 206, 107, 69, 169, 250, 168, 97, 166, 123, 99, 94, 91, 228, 227, 254, 89, 93]), value: EventValue([40]) }, Event { key: EventKey([166, 7, 151, 8, 199, 96, 86, 254, 30, 165, 94, 229, 171, 207, 147, 236, 24, 192, 87, 221, 126, 203, 30, 43, 29, 215, 29, 116, 166, 76, 49, 219, 249, 46, 189, 195, 230, 140, 65, 189, 86, 176, 50, 74, 240, 7, 119, 191, 221, 104, 239, 75, 184, 190, 8, 153, 24, 215, 61, 144, 46, 235, 247, 76, 172, 9, 98, 144, 12, 172, 44, 244, 185, 156, 41, 2, 164, 62, 98, 82, 178, 235, 241, 61, 146, 64, 118, 74, 122, 35, 118, 96, 13, 35, 245, 116, 145, 165]), value: EventValue([110, 52, 52, 215, 222, 23, 115, 246, 15, 177, 104, 9, 142, 105, 28, 75, 187, 68, 139, 49, 183, 220, 245, 236, 6, 167, 242, 40, 205, 38, 6, 39, 168, 144, 118, 203, 57, 11, 199, 33, 240, 111, 201, 153, 144, 130, 68, 50, 106, 100, 128, 61, 42, 181, 189, 146, 151, 254]) }, Event { key: EventKey([248, 96, 22, 193, 91, 130, 34, 90, 115, 152, 79, 84, 56, 75, 246, 154, 120, 67, 235, 211, 241, 243, 47, 13, 141, 158, 56, 73, 153, 11, 115, 94, 95, 116, 89, 58, 25, 137, 144, 141, 38, 139, 38, 90, 152, 27, 158, 88, 147, 175, 212, 125, 49, 140, 0, 136, 187, 3, 227, 37, 61, 94, 81, 7, 208, 84, 170, 13, 86, 93, 118, 138, 84, 141, 39, 148, 187, 55, 208, 91, 163, 32, 160, 120, 46]), value: EventValue([150, 116, 18, 162, 160, 148, 55, 119, 232, 93, 21, 212, 123, 97, 59, 111, 83, 80, 13, 207, 146, 57, 25, 130, 30, 74, 94, 6, 105, 62, 146, 3, 18, 178, 175, 52, 245, 19, 226, 172, 52, 18, 95, 22, 91, 35, 90, 60, 105, 85, 90, 100, 206, 107, 89, 141, 197, 11, 253]) }], receipt: 2935180295 }, TransactionReceipt { tx_hash: [8, 95, 230, 132, 45, 171, 89, 191, 193, 106, 197, 202, 18, 74, 100, 215, 201, 30, 84, 56, 249, 189, 10, 48, 133, 7, 168, 227, 130, 210, 136, 235], body_to_save: None, events: [Event { key: EventKey([144, 14, 129, 24, 167, 169, 2, 38, 19, 4, 170, 30, 31, 37, 252, 109, 113, 26, 44, 147, 60, 90, 33, 115, 72, 94, 53, 47, 188, 104, 170, 2]), value: EventValue([97, 78, 168, 129, 233, 145, 54, 216, 62, 114, 202, 207, 69, 189, 124, 91, 230, 127, 231, 249, 194, 210, 138, 127, 92, 86, 208, 63, 113, 58, 83, 200, 79, 204, 249, 227, 51, 105, 41, 183, 91, 6, 89, 217, 101, 22, 51, 0, 225, 55, 71, 153, 117, 184, 73, 212, 141, 143, 36, 47, 30, 220, 207, 51, 66, 205, 7, 20, 190, 113, 158, 105]) }, Event { key: EventKey([199, 181, 17, 230, 28, 65, 64, 251, 232, 127, 178, 113, 109, 1, 10, 223, 90, 42, 148, 216, 234, 110, 68, 76, 35, 46, 145, 170, 196, 34, 136, 52, 228, 136, 93, 40]), value: EventValue([43, 177, 143, 159, 243, 20, 76, 23, 19, 17, 153, 59, 231, 7, 243, 252, 219, 174, 240, 79, 6, 51, 144, 40, 80, 42, 135, 188, 64, 17, 54, 91, 106, 86, 253, 105, 58, 143]) }], receipt: 1242205713 }, TransactionReceipt { tx_hash: [234, 248, 234, 193, 252, 190, 7, 101, 200, 24, 116, 147, 189, 243, 21, 13, 214, 95, 54, 208, 9, 231, 146, 21, 212, 98, 142, 32, 209, 155, 173, 42], body_to_save: Some([149, 227, 10, 242, 133, 211, 24, 70, 129]), events: [Event { key: EventKey([137, 201, 38, 10, 81, 61, 5, 102, 36, 10, 177, 154, 162, 114, 161, 244, 105, 11, 73, 210, 93, 231, 58, 1, 45, 60, 51, 52, 12, 170, 112, 179, 32, 111, 17, 67, 59, 130]), value: EventValue([44, 139, 177, 57]) }, Event { key: EventKey([54, 231, 84, 170, 144, 63, 14, 191, 23, 98, 245, 47, 80, 39, 133, 110, 76, 68, 18, 1, 108, 83, 246, 110, 178, 161, 194, 5, 125, 114, 253, 36, 1, 52, 241, 26, 146, 238, 62, 102, 231, 100, 175, 47, 191, 159, 232, 109, 204, 25, 137, 59, 227, 248, 22, 8, 248, 64, 91, 79, 69, 7, 43, 3, 6, 87, 243, 90, 118, 81, 186, 232, 77, 118, 145, 245, 28, 202, 65, 79, 76, 235, 105, 197, 83, 103, 98, 85, 252, 39, 0, 77, 107, 40, 118, 89, 43, 39, 35]), value: EventValue([125, 188, 96, 181, 172, 216, 90, 234, 232, 186, 150, 239, 234, 53, 39, 31, 140, 11, 3, 236, 171, 114, 121, 74, 213, 71, 243, 197, 177, 136, 168, 38, 17, 60, 172, 228, 193, 107, 17, 141, 91, 123, 127, 14, 243, 71, 174, 110, 201, 192, 135, 21, 39, 79]) }], receipt: 1488644047 }, TransactionReceipt { tx_hash: [203, 36, 36, 91, 215, 232, 222, 147, 162, 115, 201, 193, 82, 56, 208, 157, 44, 232, 57, 83, 154, 238, 123, 84, 153, 128, 188, 188, 54, 211, 182, 95], body_to_save: None, events: [], receipt: 1690353563 }], inner: 1384948705 }, BatchReceipt { batch_hash: [215, 88, 104, 8, 12, 36, 91, 16, 15, 163, 199, 62, 209, 229, 3, 35, 108, 225, 74, 199, 90, 217, 44, 165, 27, 11, 177, 187, 71, 53, 228, 89], tx_receipts: [TransactionReceipt { tx_hash: [166, 9, 204, 182, 111, 123, 107, 205, 83, 251, 36, 39, 145, 255, 67, 7, 109, 80, 17, 24, 9, 44, 28, 216, 4, 2, 163, 184, 123, 96, 237, 26], body_to_save: Some([99, 30, 231, 30, 182, 37, 182, 11, 154, 95, 178, 104, 52, 148, 66, 162, 4, 157, 148, 61, 198, 64, 80, 78, 30, 39, 206, 25, 111, 135, 9, 141, 96, 9, 219, 152, 111, 84, 203, 122, 119, 194, 6, 123, 135, 172, 17]), events: [], receipt: 2681047963 }], inner: 773918261 }, BatchReceipt { batch_hash: [17, 228, 96, 134, 73, 205, 169, 170, 229, 59, 78, 106, 127, 246, 206, 141, 207, 23, 49, 135, 212, 235, 178, 98, 88, 171, 154, 167, 9, 212, 22, 127], tx_receipts: [TransactionReceipt { tx_hash: [124, 188, 216, 113, 114, 90, 158, 33, 183, 162, 19, 77, 185, 76, 162, 48, 211, 37, 117, 151, 4, 121, 49, 218, 1, 164, 207, 144, 23, 192, 139, 188], body_to_save: Some([177, 213, 215, 175, 23, 2, 198, 54, 238, 113, 70, 244, 46, 116, 201, 228, 221, 73, 157, 68, 194, 102, 146, 14, 64, 103, 134, 37, 188, 120, 17, 18, 204, 211, 27, 196, 103, 7, 2, 219, 157, 198, 63, 172, 14, 121, 184, 64, 117, 205, 114, 63, 77, 181, 211, 105, 147, 177, 25, 2, 36, 143, 217, 200, 31, 198, 165, 99, 6, 56, 123, 35, 12, 203, 199, 207, 166, 149, 75, 166, 45, 28, 139, 82, 211, 62, 125, 77, 76, 194, 14, 177, 58]), events: [Event { key: EventKey([207, 190, 28, 159, 228, 163, 125, 227, 233, 48, 26, 159, 111, 163, 121, 19, 248, 80, 137, 237]), value: EventValue([15, 120, 69, 255, 253, 75, 153, 247, 93, 87, 57, 216, 103, 66, 69, 210, 142, 202, 76, 9, 69, 110, 153, 223, 53]) }], receipt: 994831683 }, TransactionReceipt { tx_hash: [64, 53, 117, 230, 164, 205, 80, 196, 42, 48, 246, 173, 127, 205, 140, 139, 185, 88, 203, 150, 41, 144, 20, 59, 100, 61, 137, 17, 248, 148, 232, 170], body_to_save: Some([194, 110, 94, 23, 223, 80, 32, 138, 17, 228, 218, 176, 240, 2, 89, 206, 105, 76, 11, 1, 42, 60, 84, 119, 225, 56, 254, 57, 251, 104, 121, 163, 197, 205, 158, 169, 46, 181, 41, 239, 151, 175, 101, 96, 130, 1, 64, 212, 78, 223, 4, 240, 216, 215, 114, 223, 54, 128, 231, 19, 251, 58, 184, 228, 123, 7]), events: [], receipt: 2426343324 }, TransactionReceipt { tx_hash: [86, 46, 62, 123, 243, 184, 150, 187, 74, 72, 189, 106, 248, 204, 196, 71, 85, 191, 58, 213, 133, 162, 155, 162, 106, 219, 124, 185, 109, 100, 50, 44], body_to_save: Some([219, 237, 182, 39, 96, 35, 245, 28, 159, 218, 18, 8, 202, 215, 217, 82, 9, 103, 240, 11, 160, 130, 246, 20, 220, 32, 236, 104, 23, 77, 116, 14, 252, 162, 123, 64, 165, 243, 165, 115, 153, 89, 68, 4, 58, 195, 45, 221, 231, 36, 247, 102, 195, 30, 36, 248, 247, 74, 251, 239, 65, 181, 246, 52, 1, 157, 103, 143, 234, 52, 172, 249, 211, 193, 32, 141, 216, 179, 248]), events: [Event { key: EventKey([38, 165, 126, 129, 43, 150, 75, 38, 251, 39, 1, 77, 91, 165, 199, 189, 42, 161, 227, 86, 112, 231, 112, 214, 124, 252, 35, 251, 8, 37, 48, 228, 80, 84, 210, 224, 172, 229, 254, 14, 51, 239, 119, 223, 183, 255, 145, 14, 197, 225, 94, 188, 204, 18, 250, 253, 65, 225, 106, 104, 41, 129, 219, 212, 207, 129, 231, 217, 127, 247, 40, 8, 95, 186, 32, 222, 59, 229, 121, 220, 110, 151, 154, 202, 182, 51, 178, 145, 69]), value: EventValue([143, 96, 146, 244, 85, 173, 84, 130, 216, 143, 211, 116, 7, 30, 204, 154, 180, 245, 37, 229, 105, 131, 167, 163, 194, 236, 132, 135, 182, 49, 240, 1, 195, 35, 224, 23, 222, 122, 68, 177, 64, 6, 88, 175, 13, 128, 56, 225, 4, 67, 23, 99, 254, 253, 9, 25, 40, 204, 164, 142, 53, 38, 6, 224, 136, 210, 52, 27, 122, 121, 81, 250, 182, 18, 80, 238, 206, 85, 39, 195, 228, 175, 7, 146, 215, 154, 27, 150, 98, 250, 213]) }], receipt: 458161556 }, TransactionReceipt { tx_hash: [227, 217, 125, 196, 213, 129, 231, 15, 207, 182, 246, 9, 162, 96, 205, 123, 197, 244, 161, 226, 56, 59, 222, 148, 63, 47, 175, 137, 171, 87, 48, 216], body_to_save: None, events: [Event { key: EventKey([46, 84, 37, 224, 197, 15, 221, 197, 146, 178, 222, 204, 234, 124, 15, 246, 130, 49, 214, 40, 146, 120, 236, 243, 199, 245, 52, 23, 200, 5, 157, 29, 102, 37, 138, 209, 191, 15, 53, 105, 91, 196, 20, 20, 66, 231, 183, 231, 36, 58, 137, 13, 33, 139, 178, 216, 69, 216, 58]), value: EventValue([232, 239, 238, 50, 34, 14, 189, 222, 200, 174, 199, 172, 150, 142, 155, 172, 79, 134, 183, 29, 137, 186, 107, 65, 75, 213, 16, 53, 223, 122, 132, 168, 186, 128, 134, 115, 227, 245, 94, 85, 216, 90, 36, 232, 206, 136, 238, 65, 179, 162, 19, 226, 235, 118, 85]) }, Event { key: EventKey([86, 172, 170, 143, 251, 54, 216, 119, 25, 54, 81, 41, 241, 234, 66, 178, 80, 5, 216, 85, 62, 107, 1, 131, 193, 212, 222, 195, 131, 210, 170, 194, 182]), value: EventValue([146, 101, 32, 175, 249, 96, 90, 0, 205, 104, 197, 91, 164, 48, 194, 101, 83]) }, Event { key: EventKey([235, 122, 3, 207, 163, 95, 163, 38, 41, 2, 181, 234, 165, 171, 149, 32, 105, 2, 28, 151, 136, 134, 142, 161, 80, 90, 11, 3, 104, 239, 172, 157, 160, 162, 7, 25, 222, 130, 49, 86, 66, 173, 57, 201, 6, 254, 181, 97, 20, 217, 134, 53, 207, 119, 12, 71, 104, 190, 9, 171, 90, 224, 81, 55]), value: EventValue([110, 113, 75, 246, 187, 211, 19, 199, 107, 174, 50, 40, 21, 116, 119, 47, 181, 72, 247, 30, 163, 21, 75, 134, 97, 117, 148, 41, 115, 75, 48, 22, 199, 83, 221, 232, 87, 46, 5, 197, 133, 52, 164, 91, 84, 30, 170, 115, 231, 86, 25, 47, 128, 239, 58, 17, 164, 187, 76, 252, 27, 214, 225, 52, 250, 98, 39, 141, 17, 205, 141, 121, 26, 31, 90, 224, 202, 78, 227, 1, 245, 41, 162, 201, 36, 75, 190, 210]) }, Event { key: EventKey([67, 124, 244, 83, 118, 39, 127, 120, 68, 9, 40, 21, 159, 198, 152, 184, 139, 14, 76, 208, 135, 118, 45, 101, 197, 134, 89, 200, 15, 236, 188, 116, 123, 152, 164, 49, 103, 161, 244, 37, 180, 72, 187, 180, 240, 216, 172, 88, 211]), value: EventValue([141, 177, 175, 249, 27, 36, 236, 130, 126, 187, 100, 153, 224, 114, 138, 161, 237, 101, 92, 88, 149, 59, 233, 157, 1, 1, 161, 90, 209, 87, 97, 76, 7, 250, 171, 71, 29, 183, 24, 57, 169, 48, 53, 53, 117, 180, 252, 241, 107, 131, 26, 229, 254, 244, 214, 242, 206, 251, 238, 120, 241]) }, Event { key: EventKey([203, 24, 30, 89, 22, 84, 37, 136, 104, 144, 215, 114, 176, 120, 68, 109, 110, 208, 137, 142, 159, 185, 143, 90, 243, 218, 170, 77, 204, 142, 211, 201, 149, 138, 205, 221, 103, 5, 180, 164, 54, 108, 112, 41, 244, 175, 45, 114, 240, 102, 196, 164, 210, 4, 137, 134, 32]), value: EventValue([69, 104, 143, 153, 189, 3, 191, 28, 165, 96, 107, 14, 201, 181, 50, 167, 118, 19, 200, 180, 65, 178, 206, 249, 219, 139, 132, 204, 94, 50, 37, 123, 163, 144, 134, 115, 53, 171, 54, 237, 244, 25, 29, 121, 69, 199, 204, 156, 194, 164, 67, 220, 91, 137, 68, 2, 32, 196, 38, 93, 155, 124, 90, 3, 196, 99]) }], receipt: 3632858353 }, TransactionReceipt { tx_hash: [167, 142, 137, 209, 177, 239, 20, 120, 97, 216, 128, 16, 38, 253, 175, 71, 133, 139, 183, 61, 29, 107, 60, 37, 17, 104, 163, 243, 184, 130, 186, 178], body_to_save: Some([187, 17, 57, 73, 94, 62, 26, 52, 73, 20, 29, 74, 124, 150, 81, 29, 20, 22, 21, 169, 206, 72, 166, 242, 74, 117, 31, 76, 45, 84, 155, 34, 201, 99, 168, 54, 102, 157, 54, 75, 82, 63, 97, 91, 18, 32, 221, 157, 131, 140, 53, 96, 103, 146, 255, 226]), events: [Event { key: EventKey([167, 226, 228, 215, 76, 17, 57, 193, 191, 2, 164, 229, 76, 6, 236, 138, 158, 179, 53, 20, 135, 53, 223, 8]), value: EventValue([237, 242, 71, 154, 51, 100, 95, 198, 63, 117, 10, 3, 255, 214, 221, 20, 75, 155, 111, 203, 208, 46, 126, 53, 21, 12, 173, 7, 149, 192, 22, 106, 27, 107, 210, 227, 195, 227, 242, 19, 30, 120, 160, 203, 29, 19, 56, 152, 252, 63, 214, 195, 224, 235, 79, 242, 9, 136, 174, 61, 23, 81, 62, 171, 187, 176, 141, 108, 0, 26, 87, 12, 151, 69, 212, 47, 43, 95, 162, 181, 187, 63, 48, 50, 111, 144, 17, 78, 124, 226, 249, 174, 9, 171, 144]) }, Event { key: EventKey([200, 235, 101, 151, 221, 45, 167, 220, 128, 61, 179, 229, 40, 54, 130, 64, 138, 11, 159, 15, 69, 124, 102, 23, 232, 154, 145, 104, 24, 143, 146, 181, 253, 1, 132, 248, 5, 46, 66, 112, 189, 74, 113, 147, 107, 31, 9, 212, 222, 199, 241, 147]), value: EventValue([61, 126, 34, 43, 249, 121, 172, 62, 100, 89, 120, 219, 177, 168, 10, 46, 235, 95, 102, 93, 75, 95, 213, 161, 246, 6, 27, 56, 102, 90, 189, 11, 127, 151, 112, 229, 67, 46, 201, 64, 233, 79, 236, 146, 227, 226, 147, 9, 191, 151, 158, 57, 54, 58, 158, 101, 7, 190, 208, 22, 77, 99, 35, 51, 171, 137, 59, 108, 234, 217, 151, 95, 118, 188, 73, 61, 36, 167, 174, 132, 47, 48, 11, 34, 210, 116, 221, 199, 231, 66]) }, Event { key: EventKey([121, 228, 115, 182, 117, 231, 152, 17, 73, 145, 50, 234, 64, 39, 219, 87, 193, 45, 19, 3, 108, 74, 110, 132, 207, 126, 72, 193, 1, 162, 135, 75, 135, 163, 144, 111, 50, 9, 147, 41, 83, 145, 212, 226, 117, 100, 31, 73, 176, 5, 201, 209, 151, 91, 100, 153, 15]), value: EventValue([17, 145, 229, 68, 229, 184, 131, 192, 108, 149, 87, 24, 178, 138, 21, 129, 53, 139, 191, 214, 98, 153, 189, 199, 8, 132, 160, 209, 248, 95, 142, 100, 116, 116, 24, 178, 196, 165, 47, 168, 182, 149, 225, 114, 205, 231, 30, 5, 82, 159, 103]) }, Event { key: EventKey([43, 70, 242, 69, 11, 7, 53, 20, 116, 192, 253, 33, 219, 173, 247, 39, 155, 155, 69, 55, 30, 73, 210, 25, 18, 105, 31, 17, 104, 137, 114, 2, 251]), value: EventValue([39, 133, 190, 66, 170, 159, 0, 177, 143, 4, 113, 40, 222, 58, 86, 248, 226, 57, 228, 241, 114, 62, 42, 73, 47, 122, 59, 130, 236, 246, 1, 30, 176, 98, 217, 111, 149, 230, 151, 139, 77, 154, 71, 66, 4, 211, 64, 102, 244, 242, 101]) }, Event { key: EventKey([124, 45, 195, 173, 25, 146, 140, 41, 22, 15, 27, 71, 147, 111, 47, 81, 203, 251, 105, 99, 174, 133, 201, 99, 90, 147, 222, 234, 99, 36, 18, 177, 175, 121, 241, 197, 119, 230, 27, 180, 152, 58, 118, 179, 80, 27, 90, 83, 66, 220, 125, 252, 32, 216, 136, 156, 87, 122, 3, 188, 207, 123, 152, 195, 51, 72, 131, 183, 193, 25, 232, 107, 129, 48, 203, 225, 133, 130]), value: EventValue([9, 101, 183, 69, 168, 13, 151, 156, 184, 202, 79, 153, 129, 11, 193, 3, 64, 24, 78, 230, 206, 204, 159]) }, Event { key: EventKey([131, 164, 40, 82, 157, 12, 194, 67, 138, 25, 136, 220, 217, 206, 250, 18, 134, 76, 207, 180, 24]), value: EventValue([187, 51, 95, 34, 162, 16, 129, 16, 234, 139, 21, 148, 108, 180, 236, 170, 0, 243, 195, 133, 210, 212, 176, 169, 92, 31, 87, 139]) }, Event { key: EventKey([118, 215, 79, 122, 35, 10, 114, 92, 96, 76, 145, 214, 122, 89, 253, 110, 30, 190, 126, 230, 116, 11, 86, 193, 144, 83, 85, 247, 111, 61, 61, 40, 46, 74, 145, 190, 16, 53, 35, 39, 36, 237, 232, 119, 109, 144, 47, 168, 3, 203, 142, 221, 113, 28, 43, 121, 142, 41, 98, 58, 0, 41, 177, 128, 170, 55, 236, 2, 192, 90, 110, 85, 25]), value: EventValue([96, 153, 96, 50, 241, 178, 110, 158, 178, 126, 84, 218]) }, Event { key: EventKey([25, 79, 4, 199, 228, 99, 13, 27, 79, 83, 194, 118, 14, 94, 155, 53, 153, 173, 110, 24, 176, 231, 184, 79, 44, 223, 191, 121, 82, 237, 110, 252, 159, 118, 227, 79, 35, 65, 255, 65, 143, 27, 246, 181, 67]), value: EventValue([210, 175, 211, 66, 128, 98, 92, 158, 181, 32, 56, 108, 107, 111, 166, 220, 144, 90, 239, 142, 222, 246, 4, 45, 244, 11, 9, 28, 245, 116, 174, 194, 23, 32, 128, 93, 80, 2, 17, 3, 165, 22, 69, 193, 226, 129, 234, 254, 46, 231, 125, 253, 43, 249, 11, 219, 43, 45, 202, 99, 187, 61, 137, 140, 126, 58, 224, 77, 166, 251, 7, 112, 103, 167, 175, 237, 195, 94, 204, 196, 166, 22, 72, 8, 248, 166, 72, 156, 16, 99, 238, 91, 59, 32, 99]) }], receipt: 830368859 }, TransactionReceipt { tx_hash: [11, 161, 67, 36, 132, 107, 30, 34, 222, 104, 248, 71, 249, 135, 150, 65, 209, 195, 218, 70, 15, 2, 54, 35, 58, 14, 58, 114, 157, 41, 38, 140], body_to_save: Some([125, 209, 38, 132, 7, 40, 22, 86, 57, 27, 126, 70, 103, 32, 87, 47, 126, 144, 52, 134, 48, 157, 102, 125, 85, 255, 46, 153, 102, 94, 17, 252, 148, 167, 22, 183, 31, 240, 167, 207, 52, 22, 244, 138, 239, 236, 159, 91, 129, 167, 152, 224, 138, 95, 242, 124, 235, 60, 188, 73, 239, 196, 252, 145, 31, 26, 233, 242, 217, 119]), events: [Event { key: EventKey([42, 68, 101, 243, 44, 137, 139, 99, 91, 124, 12, 92, 142, 24, 240, 13, 102]), value: EventValue([162, 82, 24, 57, 189, 104, 79, 176, 209, 24, 88, 251, 245, 179]) }, Event { key: EventKey([244, 157, 245, 210, 218, 229, 182, 155, 64, 114, 160, 188, 130, 218, 160, 123, 181, 197, 25, 74, 34, 253, 2, 98, 176, 61, 134, 23, 84, 205, 33, 29, 109, 15, 2, 101, 40, 107, 87, 231, 192, 149, 129, 193, 224, 226, 224, 17, 89, 55, 207, 41, 199, 221, 228, 0, 205, 251, 180, 76, 74, 242, 240, 243, 203, 161, 229, 47, 9, 26, 175, 172, 86, 219, 242, 76, 100, 12, 72, 102]), value: EventValue([13, 92, 152, 132, 248, 34, 235, 164, 69, 19, 190, 41, 120, 150, 38, 215, 157, 76, 38, 216, 75, 93, 190]) }, Event { key: EventKey([80, 17, 14, 205, 103, 74, 114, 44, 111, 241, 12, 139, 96, 91, 108, 35, 23, 245, 31, 0, 140, 152, 134, 137, 219, 80, 163, 29, 139, 198, 244, 60, 115, 34, 238, 118, 189, 181, 189, 166, 124, 83, 201, 114, 181, 92, 245, 7, 63, 184, 12, 232, 82, 71, 3, 4, 69, 192, 107, 44, 152, 116, 77, 149, 32, 125, 166, 198, 248, 193, 92, 97, 15, 139, 253, 2, 5, 121, 241, 113, 111, 181, 181, 230, 221, 199, 230, 164, 202, 124, 188, 53, 129]), value: EventValue([138, 62, 155, 193, 151, 132, 214, 178, 79, 127, 123, 186, 14, 115, 102, 24, 246, 81, 194, 22, 96, 72, 7, 206, 150, 150, 125, 81, 253, 2, 2, 90]) }], receipt: 1829967079 }, TransactionReceipt { tx_hash: [219, 234, 40, 62, 119, 26, 106, 122, 69, 228, 145, 111, 6, 113, 234, 55, 214, 255, 183, 239, 122, 12, 102, 19, 52, 33, 20, 170, 64, 31, 121, 2], body_to_save: Some([15, 142, 226, 205, 10, 155, 93, 85, 85, 71, 162, 232, 198, 145, 237, 232, 105, 60, 74, 102, 217, 48, 126, 225, 152, 253, 29, 173, 220, 153, 243, 122, 228, 9, 57, 70, 56, 10, 20, 166, 138, 178, 204, 128, 41, 227, 16, 134, 9, 198, 122, 14, 219, 28, 147, 177, 24, 191, 192, 23, 251, 102, 92, 167, 164]), events: [Event { key: EventKey([63, 83, 141, 51, 153, 76, 210, 128, 71, 66, 95, 230, 171, 145, 168]), value: EventValue([0, 138, 229, 181, 90, 225, 53, 114, 1, 166, 107, 128, 96, 244, 215, 100, 182, 105, 80, 109, 166, 99, 151, 54, 25, 55, 82, 50, 195, 35, 17, 214, 52, 43, 7, 53, 35, 195, 164, 190, 225, 245, 208, 17, 160]) }, Event { key: EventKey([220, 134, 167, 192, 170, 22, 3, 243, 143, 123, 128, 136, 143, 151, 37, 188, 118, 212, 22, 221, 107, 192, 129, 126, 41, 140, 171, 122, 254, 20, 212, 227, 53, 255, 161, 90, 238, 24, 134, 48, 15, 123, 204, 83, 24, 177, 135, 203, 150, 169, 74, 1, 2, 113, 63, 223, 197, 134, 36, 230, 14, 22, 74, 78, 198, 21, 175, 15, 237]), value: EventValue([73, 106, 223, 4, 154, 34, 147, 32, 79, 235, 21]) }, Event { key: EventKey([224, 48, 117, 146, 46, 234, 100, 228, 22, 143, 132, 231, 185, 154, 78]), value: EventValue([93, 11, 18, 62, 197, 144, 234, 80, 35, 192, 40, 63, 179, 53, 137, 228, 86, 222, 117, 8, 146, 222, 236, 82, 64, 91, 135, 208, 55, 60, 198, 143, 45, 200, 59, 84, 166, 238, 22, 253, 229, 184, 100, 131, 16, 25, 210, 228, 28, 172, 115, 153, 130, 105, 18, 246, 56, 153, 95, 211, 10, 74, 85]) }, Event { key: EventKey([241, 140, 113, 206, 51, 73, 112, 115, 91, 186, 0, 66, 230, 67, 209, 32, 226, 53, 175, 238, 187, 86, 42, 140, 11, 242, 132, 175, 115, 216, 140, 45, 72, 3, 185, 55, 107, 156, 52, 72, 172, 195, 157, 36, 171, 111, 27, 250, 62, 53, 210, 48, 35, 104, 186, 22, 185, 160, 221, 168, 110, 178, 40, 146, 188, 225, 241, 53, 43, 229, 139, 155, 113, 159, 109, 69, 75, 132, 93, 204, 228, 8, 35, 64, 28, 101]), value: EventValue([213, 137, 219, 106, 85, 64, 104, 233, 56, 202, 32, 88, 48, 19, 231, 4, 101, 212, 94, 129, 224, 1, 18, 117, 36, 20, 92, 63, 179, 16, 23, 10, 155, 157, 120, 167, 99, 233, 25, 48, 213, 3, 46, 48, 111, 2, 113]) }, Event { key: EventKey([189, 101, 253, 243, 225, 215, 16, 195, 239, 34, 154, 193, 155, 174, 23, 226, 57, 99, 45, 190, 82, 94, 204, 136, 251, 254, 6, 23, 202, 32, 192, 53, 93, 251, 224, 146, 39, 90, 238, 153, 14, 103, 250, 183, 81, 140, 140, 59, 170, 228, 177, 164, 253, 241, 28, 126, 236, 33, 56, 105, 215, 71, 190, 79, 34, 243, 81, 132, 217, 164, 151, 151, 51, 45, 124, 251, 151, 192]), value: EventValue([167, 114, 156, 69, 15]) }, Event { key: EventKey([130, 175]), value: EventValue([148, 32, 147, 160, 154, 20, 236, 51, 88, 238, 3, 23, 9, 181, 115, 32, 123, 12, 146, 250, 74, 118, 237, 94, 188, 215, 100, 89, 251, 16, 82, 137, 110, 253, 88, 196, 174, 54, 47, 251, 235, 188, 62, 34, 63, 146, 217, 34, 158, 87, 84, 62, 242, 113, 93, 210, 13, 138, 124, 169, 240, 9, 17, 14, 141, 29, 249, 237, 169, 208, 32, 220, 219, 52, 251, 54, 132, 204, 88, 213]) }], receipt: 2804292830 }, TransactionReceipt { tx_hash: [16, 215, 6, 96, 122, 241, 155, 66, 137, 92, 73, 47, 112, 254, 118, 138, 142, 62, 120, 10, 195, 200, 221, 146, 251, 208, 56, 169, 101, 49, 57, 5], body_to_save: Some([112, 38, 243, 11, 186, 33, 65, 19, 255, 248, 128, 210, 46, 104, 144, 225, 229, 174, 47, 240, 135, 106, 56, 102, 71, 96, 215, 156, 67, 212, 129, 93, 156, 143, 245, 79, 71, 182, 29, 164, 26, 3, 128, 245, 206, 226, 164, 151, 83, 40, 150, 176, 179, 172, 49, 147, 5, 237, 60, 23, 161, 234, 202, 6]), events: [Event { key: EventKey([185, 232, 203, 190, 169, 88, 2, 22, 0, 86, 213, 202, 24, 10, 180, 139, 165, 5, 72, 231, 6, 5, 241, 186, 235, 209, 113, 140, 9, 9, 242, 199, 245, 222, 138, 53, 95, 94, 224, 103, 108, 89, 75, 199, 243, 217, 228]), value: EventValue([247, 49, 27, 250, 221, 131, 148, 119, 147, 4, 159, 31, 63, 166, 89, 73, 87, 34, 240, 79, 185, 177, 5, 125, 120, 157, 3, 91, 38, 168, 129, 238, 128, 53, 2, 0, 62, 128, 153, 141, 104, 22, 96, 67, 88, 6, 143, 149, 14, 86, 78, 67, 255]) }, Event { key: EventKey([101, 212, 154, 75, 14, 31]), value: EventValue([229, 181, 31, 160, 238, 91, 8, 161, 248, 67, 29, 35, 27, 203, 44]) }], receipt: 1887880981 }], inner: 1207699331 }, BatchReceipt { batch_hash: [235, 9, 120, 200, 172, 232, 84, 76, 167, 3, 61, 23, 198, 116, 48, 21, 241, 99, 208, 74, 87, 245, 246, 56, 56, 231, 94, 30, 34, 135, 135, 244], tx_receipts: [TransactionReceipt { tx_hash: [35, 135, 253, 7, 13, 149, 64, 46, 61, 207, 62, 247, 10, 88, 11, 179, 98, 137, 89, 228, 16, 12, 12, 184, 174, 54, 204, 152, 144, 194, 188, 227], body_to_save: Some([]), events: [Event { key: EventKey([136, 86, 30, 55, 173, 100, 33]), value: EventValue([204, 90, 93, 71, 156, 2, 187, 77, 1, 115, 26, 74, 200, 1, 67, 95, 67, 143, 170, 165, 234, 76, 183, 205, 83, 175, 212, 143, 204]) }, Event { key: EventKey([160, 226, 94, 11, 123, 143, 50, 66, 172, 233, 104, 153]), value: EventValue([31, 134, 149, 56, 140, 57, 187, 106, 101, 254, 21, 193, 193, 205, 219, 84, 215]) }, Event { key: EventKey([197, 19, 101, 255, 211, 52, 234, 121, 155, 57, 221, 195, 74, 140, 207, 120, 62, 149, 145, 59, 208, 161, 77, 133, 135, 32, 253, 113, 95, 64, 203, 139, 177, 52, 59, 4, 114, 205, 64, 255, 216, 110, 61, 37, 80, 42, 19, 63, 35, 124, 121, 182, 125, 148, 237, 235, 191, 114, 187, 204, 99, 238, 17, 9, 206, 198, 252, 139, 171, 63, 113, 208, 151, 59, 91, 150, 76, 12, 113, 129]), value: EventValue([6, 131, 110, 79, 54, 138, 211, 65, 58, 231, 58, 8, 46, 122, 140, 150, 58, 1, 167, 225, 209, 210, 173, 80, 86, 145, 148, 12, 15, 6, 161, 127, 11, 190, 239, 35, 232, 184, 169, 164, 231, 114, 10, 98, 105, 0, 241, 54, 133, 249, 57, 211, 233, 71, 224, 123, 109, 87, 68, 3, 34, 130, 254, 2, 73, 195, 5, 221, 197, 167, 175, 129, 7, 159, 158]) }, Event { key: EventKey([225, 197, 203, 188, 192, 188, 20, 38, 4, 198, 165, 150, 85, 115, 69, 66, 196, 114, 249, 22, 28, 113, 200, 73, 161, 35, 112, 9, 115, 220]), value: EventValue([197, 158, 166, 162, 196, 233, 41, 168, 62, 153, 186, 65, 152, 119, 54]) }, Event { key: EventKey([166, 195, 229, 89, 245, 139, 246, 129, 102, 201, 216, 58, 42, 47, 146, 247, 37, 88, 253, 7, 167, 27, 19, 246, 58, 175, 194, 134, 160, 76, 97, 129, 239, 181, 253, 193, 72, 36, 183, 126, 194, 30, 16, 98, 235, 119, 117, 164, 61, 238, 79, 207, 62, 70, 71, 61, 67, 176, 137, 102, 173, 251, 81, 227]), value: EventValue([236, 89, 96, 248, 187, 0, 111, 44, 135, 17, 135, 124, 31, 45, 225, 127, 116, 86, 127, 177, 143, 231, 204, 156, 250, 8, 97, 8, 51, 195, 165, 158, 236, 35, 25, 155, 197, 236, 49, 82, 58, 162]) }, Event { key: EventKey([30, 195, 78, 191, 235, 31, 94, 60, 173, 48, 249, 188, 49, 81, 198, 58, 112, 73, 65, 159, 73, 205, 228, 240, 215, 243, 157, 183, 17, 118, 13, 92, 165, 191, 174, 44, 220, 200, 228, 100, 35, 230, 192, 65, 133, 254, 91, 140, 172, 200, 253, 92, 211, 177, 161, 88, 50, 215, 32, 137, 121, 73, 41, 188, 56, 242, 160, 109, 126, 71, 7, 31]), value: EventValue([78, 168, 64, 103, 198, 9, 7, 70, 147, 196, 217, 213, 77, 192, 174, 46, 158]) }], receipt: 2648959168 }, TransactionReceipt { tx_hash: [84, 60, 205, 80, 92, 203, 51, 100, 15, 235, 194, 138, 237, 246, 146, 110, 17, 115, 238, 213, 154, 126, 135, 249, 241, 199, 131, 255, 115, 89, 210, 252], body_to_save: None, events: [Event { key: EventKey([188, 107, 232, 216]), value: EventValue([241, 20, 10, 111, 193, 152, 136, 43, 198, 99, 227, 165, 135, 95, 99, 203, 35, 112, 131, 169, 3, 48, 92, 75, 5, 130, 23, 239, 90, 248, 173, 19, 215, 209, 247, 154, 89, 157, 58, 11, 119, 192, 172, 181, 70, 59, 37, 74, 0, 167, 119, 18]) }, Event { key: EventKey([134, 59, 245, 31, 111, 7, 104, 235, 129, 68, 12, 63, 163, 169, 32, 68, 202, 93, 150, 54, 148, 122, 95, 16, 152, 103, 105, 4, 171, 214, 131, 59, 145, 178, 144, 160, 94, 55, 141, 73, 236, 165, 31, 35, 156, 9]), value: EventValue([15, 102, 200, 149, 45, 38, 243, 255, 4, 94, 1, 235, 248, 183, 253, 7, 159, 208, 50, 56, 71, 230, 112, 31, 101, 100]) }, Event { key: EventKey([214, 206, 117, 136, 154, 225, 38, 146, 108, 198, 23, 208, 196, 255, 47, 195, 23, 131, 197, 78, 63, 159, 89, 131, 198, 103, 192, 62, 38, 190, 196, 149, 37, 229, 73, 97, 149, 171, 251, 63, 49, 67, 50, 146, 3]), value: EventValue([239, 201, 173, 168, 113, 9, 213, 4, 108, 151, 185, 30, 109, 59, 120, 251, 81, 223, 167, 184, 207, 31, 167, 78, 101, 56, 36, 214, 208, 244, 221, 205, 52, 142, 170, 166, 140, 153, 203, 227, 40, 140, 106, 235, 193, 26, 34, 117, 112, 227, 108, 167, 3, 165, 123, 96, 92, 241, 226, 123, 164, 183, 130, 43, 204, 48, 155, 101, 243, 93, 250, 101, 205, 210, 76, 119, 243, 243, 252, 67, 161, 2, 214, 70, 12, 73, 82, 182, 118]) }, Event { key: EventKey([144, 101, 65, 143, 200, 184, 189, 163, 154, 173, 88, 38, 10, 113, 141, 1, 190, 14, 154, 26, 215, 138, 141, 138, 167, 52, 52, 194, 25, 213, 224, 203, 140]), value: EventValue([220, 200, 87, 151, 166, 74, 192, 133, 126, 8, 235, 59, 124, 127, 207, 47, 79, 124, 232, 59, 81, 92, 58, 48, 46, 219, 120, 34, 92, 2, 51, 21, 178, 53, 19, 238, 114, 106, 255, 71, 98, 22, 192, 106, 27, 207, 161, 254]) }], receipt: 503402130 }], inner: 2209363115 }, BatchReceipt { batch_hash: [250, 223, 115, 182, 89, 134, 213, 103, 253, 219, 109, 125, 0, 205, 198, 2, 195, 109, 125, 1, 68, 131, 36, 235, 82, 239, 79, 68, 206, 154, 200, 72], tx_receipts: [TransactionReceipt { tx_hash: [39, 45, 90, 79, 234, 123, 38, 65, 9, 138, 122, 89, 190, 225, 153, 83, 82, 189, 197, 253, 170, 232, 88, 163, 3, 126, 41, 17, 125, 40, 148, 45], body_to_save: None, events: [Event { key: EventKey([72, 37, 57, 44, 63, 188, 64, 228, 2, 44, 183, 72, 47, 169, 197, 167, 100, 62, 212, 242, 1, 127, 108, 78, 22, 242, 110, 201, 94, 72, 57, 35, 39, 193, 131, 18, 180, 5, 222, 31, 239, 26, 144]), value: EventValue([66, 222, 137]) }, Event { key: EventKey([152, 52, 138, 232, 75, 234, 124, 188, 125, 40, 183, 51, 20, 44, 197, 113, 54, 68, 103, 92, 143, 14, 181, 142, 206, 154, 179, 138, 101, 107, 127]), value: EventValue([170, 9, 226, 40, 29, 169, 195, 140, 221]) }, Event { key: EventKey([33, 12, 204, 58, 48, 170, 57, 86, 117, 147, 122, 220, 98, 241, 75, 238, 143, 22, 80, 10, 102, 53, 76, 243, 118, 119, 105, 202, 42, 68, 149, 229, 177, 8, 235, 176, 113, 33, 160, 196, 80]), value: EventValue([114, 45, 106, 161, 199, 40, 240, 55, 216, 172, 245, 108, 156, 92, 130, 203, 56, 139, 141, 136, 199, 214, 178, 71, 49, 225, 91, 177, 111, 182, 64, 35, 229, 38, 230, 183, 235, 182, 45]) }, Event { key: EventKey([71, 247, 111, 107, 73, 79, 205, 133, 167, 168, 6, 209, 233, 143, 157, 26, 142, 100, 107, 76, 61, 77, 80, 250, 194, 200, 25, 238, 236, 248, 95, 230, 129, 115, 113, 178, 24, 112, 237, 66, 106, 116, 179, 249, 116, 66, 47, 57, 195, 46, 146, 1, 13, 221, 196, 187, 64, 129, 125, 155, 63, 172, 75, 84, 94, 86, 169, 220, 143, 42, 199, 43, 182, 143, 43, 95, 241, 191, 125, 226, 254]), value: EventValue([3, 143, 11, 220, 7, 98, 224, 91, 195, 215, 111, 245, 28, 98, 248, 40, 191, 81, 56, 249, 217, 120, 92, 253, 63, 35, 241, 91, 27, 174, 145]) }, Event { key: EventKey([19, 6, 147, 113, 105, 142, 137, 222, 86, 117, 207, 211, 193, 87, 38, 68, 28, 130, 72, 26, 126, 236, 79, 143, 250, 136, 124, 165, 34, 168, 191, 98, 177, 28, 81, 96, 105, 34, 171, 163, 165, 8, 92, 36, 199, 85, 30, 45, 152, 63, 130, 192, 173, 161, 176, 140, 230, 129, 207, 155, 186, 198, 172, 141, 136, 102, 169, 200]), value: EventValue([119, 18, 23, 252, 174, 55, 110, 73, 209, 157, 75, 227, 150, 109, 132, 137, 115, 84, 16, 59, 89, 30, 195, 225, 241, 132, 49, 47, 102, 99, 34, 242, 232, 227, 140, 86, 250, 190, 94, 235, 101, 254, 138, 106, 51, 162, 169, 163, 116, 17, 166, 228, 219, 10, 216, 98, 153, 101, 85, 179, 107, 114, 224, 18, 80, 89, 106, 78, 161, 146, 161, 86]) }, Event { key: EventKey([191, 62, 121, 85, 145, 72, 202, 141, 46, 56, 166, 185, 163, 242, 54, 88, 141, 229, 164, 58, 25, 65, 37, 126, 210, 0, 157, 226, 192, 8, 15, 92, 96, 247, 252, 159, 8, 249, 208, 140, 75, 123, 73, 143, 226, 4, 28, 80, 95, 173, 215, 71, 254, 38, 43, 239, 93, 23, 200, 142, 157, 57, 147, 7, 223, 8, 158, 223, 129, 49, 45, 134, 187, 177]), value: EventValue([65, 255, 134, 220, 137, 232, 229, 106, 92, 132, 234, 133, 202, 234, 29, 109, 71, 252, 90, 244, 154, 227, 242, 237, 72, 144, 203, 135, 121, 121, 201, 240, 110, 255, 37, 133]) }], receipt: 2813788954 }, TransactionReceipt { tx_hash: [141, 233, 24, 41, 143, 46, 37, 185, 241, 5, 11, 133, 23, 195, 120, 73, 92, 47, 207, 195, 137, 147, 0, 100, 3, 72, 102, 174, 195, 237, 141, 76], body_to_save: None, events: [Event { key: EventKey([214, 160, 203, 238, 66, 93, 81, 24, 52, 157, 182, 235, 81, 79, 169, 93, 38, 232, 175, 124, 5, 190, 206, 97, 49, 46, 33, 50, 233, 109, 69, 167, 153, 11, 112, 24, 116, 204, 70, 126, 29, 160, 187, 227, 118, 160, 133, 98, 15, 204, 93, 217, 135, 191, 194, 42, 0, 41, 54, 203, 116, 77, 163, 224, 123, 2, 209, 200, 7, 202, 103, 244, 16, 220, 231, 49, 26, 38, 176, 51, 117, 98, 129, 160, 209, 31, 10, 153, 212, 191, 131, 131]), value: EventValue([170, 190, 224, 8, 101, 140, 231, 218, 98, 186, 59, 35, 195, 84, 77, 241, 251, 197, 31, 183, 78, 236, 67, 151, 209, 7, 129, 216, 95, 92, 13, 112, 85, 139, 188, 174, 0, 63, 202, 143, 46, 199, 130, 132, 29, 179, 63, 126, 207, 160, 232, 45, 18, 28]) }, Event { key: EventKey([229, 211, 40, 146, 33, 196, 150, 111, 173, 123, 227, 188, 189, 207, 99, 196, 201, 110, 132, 38, 11, 177, 0, 81, 78, 6, 211, 240, 65, 215, 199, 156, 37, 22, 75, 237, 103, 67, 119, 196, 217, 122, 116, 48, 215, 218, 4, 12, 141, 47, 181, 9, 241, 163, 221, 93, 180, 98, 89, 63, 176, 59, 117, 253, 241, 209, 194, 129, 147, 9, 200, 69, 105, 87, 0, 180, 156, 232, 185, 104, 21, 178]), value: EventValue([52, 54, 237, 43, 152, 176, 116, 9, 106, 134, 50, 250, 71, 125, 137, 85, 76, 14, 233, 126, 88, 99, 130, 162, 112, 2, 179, 65, 35, 62, 107, 87, 48, 184, 237, 56, 196, 44, 246, 83, 55, 27, 121, 171, 10, 248, 66, 20, 130, 197, 227, 247, 226, 221, 194, 109, 148, 97, 76, 97, 148, 173, 191, 184, 154, 160, 132, 10, 132, 88, 178, 136, 207, 44, 209, 56, 219, 225, 121]) }, Event { key: EventKey([182, 116, 149, 155, 236, 194, 138, 94, 192, 105, 199, 185, 79, 204, 195, 87, 185, 151, 48, 193, 179, 3, 159, 93, 48, 95, 98, 246, 0, 228, 26, 92, 123, 204, 109, 164, 201, 22, 45, 85, 193, 47, 153, 48, 210, 68, 175, 51, 246, 195, 80, 12, 93, 72, 82, 79, 81, 196, 217, 64, 24, 34, 193, 167, 19, 136, 32, 243, 206, 157, 154, 141, 175, 95, 70, 143, 50, 100, 224, 98, 206, 143, 231, 189, 122, 31, 141, 194, 131, 94, 145, 181, 138, 52, 45, 85, 136]), value: EventValue([76, 96, 74, 155, 104, 50, 12, 227, 117, 245, 116, 147, 185, 71, 205, 199, 146, 9, 68, 108, 9, 40, 36, 142, 51, 133, 174, 205, 231, 19, 72, 10, 33, 33, 15, 79, 91, 156, 10, 202, 96, 121, 113, 32, 247, 54, 12, 111, 199, 159, 122, 153, 208, 104, 240, 9, 108, 11, 127, 110, 249, 22, 215, 37, 181, 131, 243, 13, 192, 253, 15, 105, 154, 247, 147, 205, 38, 171, 140, 33, 150, 173, 140, 190, 219, 144, 216, 159, 138]) }, Event { key: EventKey([216, 145, 232, 85, 230, 103, 119, 125, 141, 138, 186, 112, 171, 213, 141, 244, 121, 94, 4, 237, 80, 77, 179, 47, 62, 112, 96, 214, 68, 131, 245, 161, 154, 157, 252, 18, 154, 65]), value: EventValue([103, 68, 55, 197, 49, 181, 71, 39, 77, 138, 155, 113, 105, 93, 93, 241, 64, 229, 190, 130, 153, 150, 205, 105, 155, 43, 72, 215, 66, 250, 193, 72, 158, 119, 43, 152, 112, 84, 46]) }, Event { key: EventKey([192, 21, 57, 218, 88, 59, 6, 26, 216, 171, 103, 125, 241, 133, 11, 35, 210, 228, 102, 152, 176, 104, 15, 1, 64, 16, 23, 65, 170, 220, 199, 111, 221, 60, 226, 164, 152, 235, 27, 6, 85, 226, 114, 79, 161, 243, 193, 126, 79, 84, 71, 194, 160, 223, 201, 0, 11, 191, 61, 13, 203, 40, 98, 245, 29, 228, 87, 93, 102, 207, 27]), value: EventValue([83, 77, 83, 136, 209, 57, 161, 178, 134, 139, 189, 106, 166, 17, 85, 54, 196, 121, 14, 20, 138, 126, 113, 100, 118, 187, 128, 102, 172, 202, 37, 29, 149, 177, 121, 102, 142, 51, 165, 7, 74, 58, 255, 13, 35, 67, 141, 70, 184, 255, 46, 159, 167, 170, 153, 144, 224, 220, 69, 113, 239, 246, 182, 236, 62, 8, 248, 135, 115, 166, 140, 48, 82, 167, 70, 196, 49, 254, 86, 62, 243, 6, 109]) }, Event { key: EventKey([38, 213, 20, 224, 106, 198, 189, 11, 252, 207, 235, 89, 138, 133, 160, 48, 28, 166, 50, 106, 213, 116, 202, 113, 58, 244, 217, 12, 190, 217, 172, 21, 160, 164, 247, 0, 214, 217, 233, 189, 124, 238, 63, 165, 150, 71, 192, 106, 136, 126, 9, 118, 163, 38, 76, 252, 124, 74, 4, 111, 251, 211, 130, 245, 220, 4, 240, 139, 206, 229, 94, 49, 143, 109, 220, 46, 112, 174, 7, 61, 134, 168, 146, 63, 192, 251, 208, 147, 192, 252, 115, 111]), value: EventValue([120, 249, 160, 44, 27, 101, 14, 41, 20, 37, 211, 106, 67, 128, 228, 20, 167, 79, 195, 64, 243, 139, 181, 178, 66, 110, 17, 221, 111, 237, 57, 5, 62, 216, 91, 208, 2, 132, 106, 242, 97, 114, 57, 11, 165, 103, 49, 15, 146, 125, 91, 239, 76, 41, 217, 121, 43, 217, 122, 237, 159, 153, 83, 218, 206, 35, 117, 97, 96, 144, 210, 43, 214, 54, 140, 86, 66, 191, 191, 204, 168, 253, 168, 241, 50, 161, 186]) }, Event { key: EventKey([234, 61, 4, 149, 90, 187, 203, 80, 89, 62, 120, 116, 79, 119, 85, 235, 76, 188, 42, 71, 187, 85, 120, 130, 11, 1, 59, 149, 211, 242, 46, 220, 180, 224, 73, 161, 129, 90, 173, 16, 62, 124, 62, 208, 61, 175, 31, 79, 244, 53, 137, 221, 191, 4, 122, 145, 124, 61, 77, 30, 233, 32, 200, 5, 106, 96, 213, 54, 77, 173, 120, 167, 39, 21, 44, 31, 173, 192, 197, 243, 79, 218, 93, 80, 239, 90, 140]), value: EventValue([174, 151, 44, 71, 99, 24, 158, 132, 42, 31, 154, 243, 5, 108, 10, 129, 16, 247, 83, 200, 45, 45, 128, 44, 198, 175, 149, 169, 143, 183, 111, 123, 254, 234, 132, 37, 22, 90, 203, 20, 171, 212, 56, 227, 130, 22, 67, 201]) }], receipt: 3216481274 }, TransactionReceipt { tx_hash: [110, 35, 255, 123, 160, 42, 35, 153, 66, 106, 76, 249, 161, 85, 94, 23, 15, 78, 176, 226, 53, 235, 26, 169, 64, 127, 91, 94, 69, 65, 18, 235], body_to_save: None, events: [Event { key: EventKey([88, 225, 110, 91, 184, 71, 67, 88, 161, 223, 155, 109, 245, 14, 165, 123, 53, 26, 186, 253, 63, 72, 56, 109, 123, 217, 101, 220, 125, 214, 41, 53, 233, 137, 22, 42, 215, 187, 245, 59, 90, 72, 80, 92, 95, 50, 215, 6, 227, 254, 227, 199, 15, 54, 107, 94, 122, 159, 76, 147, 128]), value: EventValue([87, 163, 98, 10, 158, 48, 5, 195, 85, 212, 131, 252, 115, 62, 4, 100, 156, 129, 94, 16, 6, 255, 217, 174, 135, 250, 101, 73, 46, 218, 240, 172, 242, 21, 239, 12, 123, 7, 179, 249, 119, 85, 62, 91, 200, 4, 7]) }], receipt: 3232696542 }, TransactionReceipt { tx_hash: [62, 57, 172, 28, 104, 202, 90, 128, 64, 88, 235, 143, 250, 49, 189, 225, 176, 80, 36, 124, 229, 251, 49, 64, 146, 19, 63, 0, 203, 234, 237, 29], body_to_save: Some([151, 170, 253, 137, 53, 170, 186, 169, 11, 201, 16, 14, 149, 211, 199, 52, 109, 153, 148, 233, 195, 211, 133, 13, 199, 153, 21, 101, 128, 76, 122, 132, 146, 149, 129, 66, 152, 62, 207, 196, 177, 201, 183, 2, 245, 203, 161, 40, 170, 157, 198, 161, 152, 85, 53, 218, 103, 79, 105, 104, 96, 25, 238, 131, 179, 70, 246, 178, 102, 217, 124, 108, 63, 8, 38, 153, 131, 178, 114, 16, 14, 18, 224, 29, 159, 105, 188]), events: [Event { key: EventKey([112, 171, 90, 121, 13, 12, 157, 131, 237, 27, 224, 166, 193, 226, 125, 88, 164, 207, 139, 98, 39, 9, 172, 175, 163, 254, 160, 222, 50, 64, 40, 67, 119, 162, 125, 188, 6, 232, 154, 47, 179]), value: EventValue([240, 45, 187]) }, Event { key: EventKey([103, 254, 94, 95, 190, 207, 221, 184, 182, 22, 127, 20, 198, 69, 240, 133, 26, 94, 85, 79, 27, 189, 72, 74, 117, 100, 162, 5, 253, 134, 211, 36, 237, 237, 110, 64, 18, 246, 214, 253, 123, 228, 52, 6, 245, 245, 117, 94, 229, 42, 99, 200, 10, 69, 30, 194, 167, 229, 118, 122, 33, 196, 27, 68, 226, 195, 160, 153, 35, 53, 163, 247, 70, 115, 104, 143, 74, 213, 114, 21, 84, 201, 22, 94]), value: EventValue([97, 48, 136, 88, 132, 239, 42, 152, 14, 204, 173, 0, 247, 191, 140, 79, 78, 188, 156, 207, 163, 100, 111, 78, 123, 56, 142, 191, 39, 194, 99, 44, 156, 236, 95, 249, 183, 39, 119, 117, 28, 37, 185, 43, 104]) }, Event { key: EventKey([21, 253, 166, 35, 41, 18, 219, 24, 77]), value: EventValue([92, 229, 132, 108, 157, 121, 231, 74, 218, 147, 130, 31, 243, 136, 41, 80, 201, 253, 228, 225, 182, 159, 110, 55, 130, 187, 100, 55, 106, 207, 59, 216, 69, 130, 99, 186, 79, 145, 33, 240, 212, 133, 17, 80, 79, 210, 28]) }, Event { key: EventKey([141, 210, 181, 253, 139, 231, 24, 110, 8, 238, 210, 238, 189, 135, 218, 208, 114, 48, 39, 122, 247, 109, 167, 147, 192, 55, 249, 56, 241, 205, 202, 120, 187, 255, 237, 148, 66, 147, 83, 252, 71, 166, 177, 150, 169, 191, 164, 177, 253, 242, 196, 98, 182, 180, 149, 65, 158, 247, 228, 54, 241, 45, 201, 34, 19, 173, 190, 164, 26, 161, 232, 33, 82]), value: EventValue([57, 52, 167, 121, 226, 162, 10, 102, 0, 90, 137, 36, 199, 234, 17, 53, 67, 238, 177, 140, 97, 170, 101, 251, 36, 138, 45, 191, 36, 99, 161, 137, 74, 228, 16, 194, 86, 82, 87, 43, 1, 53, 167, 32, 173, 72, 129, 232, 154, 183, 169, 162, 96, 8, 86, 40, 249, 53, 217, 66, 84, 219, 14]) }, Event { key: EventKey([98, 86, 188, 255, 192, 144, 253, 143, 244, 84, 46, 82, 153, 147, 189, 39, 128, 53, 176, 206, 148, 170, 89, 203, 219, 17, 197, 3, 74, 177, 63, 156, 66, 65, 11, 78, 6, 31, 200, 193, 196, 77, 128, 8, 35, 251, 125, 239, 100, 145, 188, 166, 63, 53, 102, 82]), value: EventValue([72, 247, 106, 176, 215, 0, 12, 152, 62, 153, 8, 92, 85, 88, 206, 153, 74]) }, Event { key: EventKey([203, 213, 201, 43, 57, 25, 170, 1, 26, 54, 38, 24, 78, 4, 231, 145, 81, 158, 29]), value: EventValue([5, 243, 225, 108, 166, 76, 70, 168, 143, 23, 35, 116, 245, 37, 170, 238, 202, 144, 226, 105, 177]) }, Event { key: EventKey([212, 98, 124, 91, 197]), value: EventValue([170, 194, 89, 189, 245, 145, 100, 102, 129, 73, 175, 244, 34, 231, 206, 149, 17, 119, 227, 167, 229, 57, 34, 31, 90, 233, 121, 131, 245, 70, 199, 190, 148, 211, 13, 28, 187, 240, 147, 199, 245, 129, 204, 91, 105, 20, 173, 90, 38, 94, 255, 86, 169, 58, 79, 183, 227, 166, 102, 181, 99, 147, 154, 115, 253, 163, 60, 251, 38, 252, 53, 176, 3]) }, Event { key: EventKey([97, 51, 244, 127, 254, 77, 174, 88, 55, 176, 17]), value: EventValue([254, 61, 157, 3, 252, 15, 90, 219, 120, 86, 78, 147, 211, 177, 184, 79, 178, 192, 115, 77, 224, 3, 58, 92, 143, 228, 115, 211, 201, 46, 126, 183, 29, 189, 21, 8, 122, 196, 47, 197, 207, 114, 90, 77, 250, 179, 55, 111, 224, 165, 210, 215]) }], receipt: 4101153587 }, TransactionReceipt { tx_hash: [56, 139, 134, 109, 157, 45, 136, 52, 13, 254, 118, 75, 220, 238, 13, 64, 136, 179, 115, 63, 179, 249, 113, 147, 104, 190, 237, 6, 152, 94, 95, 187], body_to_save: None, events: [Event { key: EventKey([199, 252, 76, 152, 43, 152, 234, 148, 242, 23, 82, 126, 22, 168, 5, 64, 11, 196, 168, 12, 161, 223, 162, 215, 123, 210, 166, 134, 124, 104, 215, 74, 9, 73, 153, 200, 114, 222, 160, 26, 253, 218, 7, 37, 93, 153, 134, 58, 170, 39, 155, 16, 76, 41, 90, 230, 189, 31, 188, 166, 47, 235, 90, 38, 138, 102, 20, 133, 216, 227, 141, 87, 152, 107, 14, 82, 189, 243, 242, 88, 234, 14, 10, 83, 14, 219, 100, 152, 208]), value: EventValue([77, 191, 236, 82, 192, 203, 84, 136, 182, 17, 169, 246, 178, 213, 49, 212, 38, 29, 163, 245, 131, 140, 217, 171, 120, 115, 94, 46, 241, 100, 154, 45, 132, 200, 192, 75, 27, 136, 137, 206, 96, 171, 117]) }, Event { key: EventKey([242, 14, 209, 210, 210, 48, 218, 174, 216, 158, 51, 94, 55, 110, 48, 4, 184, 67, 182, 78, 13, 27, 54, 108, 82, 236, 67, 220, 239, 75, 231, 168, 78, 205, 159, 87, 5, 224, 0, 180, 132, 226, 107, 50, 194, 154, 152, 9, 155, 151, 109, 43, 48, 51, 199, 122, 80, 248, 225, 185, 24, 51]), value: EventValue([173, 33, 237, 5, 102, 12, 189, 230, 248, 174, 230, 206, 54, 166, 186, 238, 159, 241, 162, 58, 131, 76, 249, 249, 250, 103, 99, 102, 74, 167, 40, 220, 110, 203, 137, 36, 187, 68, 110, 181, 110, 35, 93, 166, 239, 213, 216, 16, 82, 64, 10, 63, 84, 22, 39, 146, 8, 27, 215, 38, 213, 194, 134, 113, 95, 244, 32, 114, 175, 210, 34, 227, 68, 190, 42, 253, 20, 227, 10, 48, 226, 164, 62, 215, 70, 18, 90, 164, 166, 11, 204, 115, 92, 169, 20, 49]) }, Event { key: EventKey([122, 169, 230, 106, 134, 214, 142, 1, 237, 209, 225, 152, 73, 105, 87, 53, 186, 235, 183, 86, 108, 164, 128, 14, 54, 195, 122, 229, 86, 187, 135, 255, 178, 162, 204, 3, 225, 232, 82, 196, 138, 183, 201, 239]), value: EventValue([72, 197, 9, 250, 89, 11, 231, 136, 123, 209, 41, 84, 186, 191, 182, 146, 68, 157, 132, 251, 191, 220, 54, 238, 159, 12, 178, 85, 239, 243, 53, 93, 109, 220, 165, 87, 14, 27, 198, 192, 212, 239, 174, 198, 122, 170, 77, 180, 209, 101, 189, 156, 17, 124, 253, 145, 248, 164, 236, 29, 61, 159, 109, 172, 218, 43, 210]) }, Event { key: EventKey([12, 20, 252, 220, 220, 185, 68, 192, 164, 126, 166, 171, 239, 55, 12, 25, 104, 67, 208, 38, 159, 178, 8, 22, 0, 110, 178, 223, 214, 49, 38, 178, 185, 173, 223, 118, 28, 156, 240, 171, 114, 22, 203, 49, 152, 252, 4]), value: EventValue([25, 94, 21, 84, 165, 27, 232, 148, 128, 219, 18, 53, 53, 155, 213, 74, 121, 90, 251, 228, 156, 184, 162, 115, 107, 140, 93, 82, 21, 232, 242, 129, 140, 239]) }, Event { key: EventKey([99, 124, 129, 233, 80, 28, 92, 111, 58, 178, 163, 126, 47, 113, 155, 27, 192, 71, 91, 95, 184, 180, 255, 194, 51, 119, 80, 7, 233, 1, 34, 248, 105, 44, 139, 21, 26, 156, 13, 193, 120, 157, 247, 146, 42, 237, 161, 31, 99, 93, 48, 13, 190, 35, 239, 122, 163, 94, 52, 235, 148, 122, 217]), value: EventValue([22, 226, 116, 138, 7, 178, 142, 104, 74, 20, 213, 86, 105, 72, 120, 205, 158, 243, 208, 249, 120, 224, 255, 55, 9, 212, 189, 237, 155, 207, 138, 177, 52, 196, 161, 186, 237, 135, 195, 107, 203, 236, 73, 145, 62, 55, 51, 232, 250, 223, 71, 52, 211, 208, 132, 110, 203, 161, 236, 131, 214, 183, 129, 14, 209, 40, 72, 148, 89]) }, Event { key: EventKey([171, 56, 172, 253, 195, 84, 122, 140, 75, 84, 72, 215, 255, 36, 232, 99, 46, 203, 5, 18, 136, 178, 88, 22, 125, 84, 237, 199, 210, 12, 249, 248, 118, 180, 50, 120, 170, 215, 31, 230, 102, 217, 81, 123, 229, 226, 158, 169, 174, 73, 194, 61, 146, 55, 159, 57, 223, 5, 33, 215, 33, 212, 79, 64, 217, 12, 167, 116, 241, 110, 211, 226, 17]), value: EventValue([83, 243, 87, 124, 78, 80, 45, 182, 55, 223, 21, 68, 169, 146, 238, 117, 18, 215, 145, 170, 238, 46, 90, 81, 190, 157, 140, 231, 30, 12, 233, 99, 179, 126, 168, 239, 25, 188, 75, 35, 38, 75, 131, 161, 232, 75, 184, 114, 167, 124, 45]) }, Event { key: EventKey([138, 1, 22, 51, 121, 169, 97, 246, 66, 10, 41, 39, 173, 142, 139, 208, 94, 63, 51, 28, 94, 52, 111, 11, 205, 6, 46]), value: EventValue([3, 3, 104, 116, 26, 11, 248, 33, 27, 190, 42, 12, 89, 142, 185, 24, 182, 238, 85, 113, 61, 26, 157, 193, 40, 136, 215, 48, 43, 16, 184, 190, 36, 135, 52, 214, 102, 3, 218, 61, 187, 177, 232, 151, 111, 67, 194, 77, 65, 35, 86, 93, 2, 107, 143, 168, 39, 26]) }], receipt: 3804118679 }, TransactionReceipt { tx_hash: [159, 85, 16, 25, 250, 116, 64, 190, 117, 59, 167, 245, 247, 103, 191, 65, 107, 194, 121, 89, 250, 13, 251, 148, 158, 212, 77, 122, 80, 42, 149, 57], body_to_save: Some([75, 136, 167, 165, 229, 22, 204, 208, 49, 125, 91, 166, 147, 118, 181, 76, 92, 100, 38, 219, 86, 84, 47, 237, 102, 138, 5, 180, 175, 27, 13, 20, 97, 63, 255, 87, 67, 184, 142, 25, 42, 105, 129, 221, 175, 197, 177, 204, 86, 23, 214, 59, 103, 45, 96, 212, 146, 125, 91, 113, 127, 169]), events: [Event { key: EventKey([104, 150, 89, 204, 84, 51, 60, 211, 241, 100, 130, 53, 161, 186, 112, 81, 141, 153, 81, 26, 128, 46, 197, 236, 31]), value: EventValue([91, 74, 10, 8, 221, 95, 79, 227, 98, 3, 182, 114, 127, 242, 104, 67, 173, 55, 145, 153, 168, 53, 236, 101, 96, 173, 221, 71, 24, 215, 52, 112, 238, 97, 14, 85, 240, 78, 81, 248, 243, 255, 57, 44, 188, 154, 195, 46, 244, 87, 11, 213, 150, 149, 219, 220, 11, 72, 63, 91, 204, 119, 159, 46, 188, 47, 104, 79, 12, 99, 210, 84, 58, 196, 67, 149, 0, 26, 93, 185, 93, 235, 8, 64, 122, 77, 73, 221]) }, Event { key: EventKey([71, 71, 163, 228, 206, 20, 186, 223, 80, 100, 217, 227, 72, 54, 31, 179, 8, 92, 206, 30, 197, 241, 243, 220, 213, 180, 97, 47, 177, 171, 60, 93, 181, 212, 214, 30, 77, 232, 23, 36, 92, 131, 220, 39, 170, 213, 37, 177, 208, 49, 127, 29, 36, 209, 30, 50, 198, 180, 123, 4, 22, 235, 189, 16, 235, 207, 183, 86, 126, 175, 52, 62, 14, 143, 252, 95, 134, 242, 185, 243, 161, 127, 210, 82, 103, 185, 123, 200, 161, 134, 108]), value: EventValue([120, 59, 80, 49, 88, 60, 226, 208, 60, 143, 201, 56, 109, 102, 103, 188, 27, 154, 35, 153, 24, 234, 48, 55, 88, 159, 3, 192, 231, 79, 138, 43, 219, 107, 156, 50, 13, 184, 154, 119, 251, 208, 144, 205, 28, 29, 241, 112, 252, 142, 116, 248]) }, Event { key: EventKey([133, 189, 240, 114, 129, 166, 250, 61, 236, 0, 165, 136, 160, 154, 200, 115, 49, 119, 141, 232, 10, 140, 64, 164, 134, 203, 68, 28, 67, 25, 0, 22, 87, 10, 88, 94, 183, 117, 176, 5, 205, 238, 127, 85, 142, 222, 191, 248, 206, 73, 2, 29, 91, 33, 221, 176, 136, 86, 169, 160, 61, 109, 50, 93, 150, 17]), value: EventValue([144, 97, 202, 38, 8, 118, 118, 91, 15, 0, 54, 185, 184, 63, 152, 34, 231, 21, 196, 39, 255, 77, 238, 207, 158, 1, 31, 10, 238, 90, 133, 78, 206, 182, 138, 76, 203, 156, 211, 50, 98, 133, 144, 91, 20, 46, 250, 224, 134, 38]) }, Event { key: EventKey([191, 67, 104, 98, 5, 168, 161, 206, 117, 56, 74, 13, 199, 5, 12, 41, 135, 126, 99, 6, 220, 40, 14, 204, 32, 124, 249, 145, 99, 55, 123, 223, 85, 168, 24, 106, 166, 175, 161, 226, 38, 200, 22, 211, 217, 178, 61, 212, 8, 128, 233, 140, 87, 118, 206, 84, 67, 235, 220, 72, 196, 23, 62, 105, 165, 252, 99, 28, 35, 79, 188]), value: EventValue([146, 122, 13]) }, Event { key: EventKey([85, 28, 245, 237, 165, 157]), value: EventValue([203, 194, 143, 3, 69, 231, 15, 165, 58, 61, 122, 158, 1, 226, 67, 134, 162, 106, 223, 66, 3, 23, 132, 88, 87, 119, 3, 99, 173, 122, 210, 90, 43, 243, 145, 18, 185, 205, 249, 27, 23, 34, 93, 142, 41, 98, 109, 231, 139, 73, 138, 102, 82, 180, 177, 204, 114, 112, 20, 25, 100, 165, 31, 185, 168, 254, 252, 181, 194, 224, 36, 106]) }], receipt: 2108457950 }, TransactionReceipt { tx_hash: [151, 96, 146, 61, 159, 156, 136, 117, 45, 74, 8, 216, 231, 228, 56, 61, 156, 146, 250, 242, 214, 59, 167, 155, 114, 88, 60, 53, 179, 98, 140, 154], body_to_save: Some([158, 17, 61, 218, 143, 73, 251, 95, 228, 94, 234, 244, 59, 39, 52, 51, 181, 86, 184, 106, 20, 101, 236, 32, 195, 147, 18, 156, 249, 163, 249, 132, 125, 169, 177]), events: [Event { key: EventKey([198, 236, 230, 6, 172, 68, 15, 6, 93, 220, 27, 188, 48, 233, 213, 62, 9, 225, 187, 157, 252, 186, 53, 33, 15, 253, 171, 5, 115, 171, 38, 117, 178, 198, 220, 118, 182, 161, 124, 88, 111, 129, 94, 10, 22, 127, 26, 95, 41, 198, 121, 168, 158, 88, 183, 211, 5, 123, 254, 81, 113, 205, 193, 173, 76, 230, 248, 109, 241, 78, 96, 73, 59, 191, 56, 3, 168, 45, 211, 102, 239, 168, 44, 108, 240]), value: EventValue([143, 146, 54, 46, 112, 160, 136, 66, 61, 4, 240, 210, 80, 167, 29, 239, 200, 57, 15, 211, 142]) }, Event { key: EventKey([228, 158, 202, 230, 91, 111, 213, 21, 142, 19, 229, 63, 195, 6]), value: EventValue([91, 239, 175, 158, 105, 68, 86, 152, 135, 82, 243, 245, 40, 67, 88, 157]) }], receipt: 120620642 }], inner: 3058567271 }, BatchReceipt { batch_hash: [158, 10, 208, 189, 20, 105, 37, 42, 198, 138, 46, 122, 179, 106, 111, 2, 36, 185, 95, 98, 68, 206, 253, 131, 113, 26, 164, 60, 124, 56, 106, 66], tx_receipts: [TransactionReceipt { tx_hash: [56, 71, 73, 31, 128, 188, 219, 84, 219, 193, 9, 151, 237, 203, 91, 139, 143, 65, 0, 173, 63, 157, 38, 13, 96, 21, 66, 64, 37, 206, 38, 123], body_to_save: None, events: [], receipt: 4242002804 }], inner: 4020750912 }, BatchReceipt { batch_hash: [152, 121, 249, 40, 152, 116, 53, 38, 9, 47, 76, 96, 222, 127, 88, 125, 120, 6, 147, 140, 68, 211, 217, 18, 15, 62, 206, 124, 168, 107, 79, 210], tx_receipts: [TransactionReceipt { tx_hash: [101, 182, 128, 49, 22, 135, 247, 154, 148, 115, 69, 195, 227, 182, 109, 130, 236, 226, 166, 39, 241, 251, 79, 210, 64, 138, 221, 160, 152, 190, 99, 16], body_to_save: None, events: [Event { key: EventKey([197, 197, 141, 48, 250, 77, 252, 87, 61, 176, 171, 122, 65, 148, 36, 223, 234, 168, 225, 188, 104, 96, 253, 150, 7, 183, 234, 184, 12, 58, 132, 78, 188, 114, 131, 95, 13, 254, 137, 246, 106, 163, 130, 211, 148, 160, 96, 214, 143, 217, 153, 202, 148, 67, 64, 114, 112, 26, 144, 23, 153, 90, 248, 23, 247, 216, 24, 232, 79, 5, 231, 106, 216, 28, 78, 234, 42, 17, 229, 23, 37, 118, 240, 187, 36, 240, 141, 84, 2, 200, 24, 85, 182, 152]), value: EventValue([143, 201, 123, 18, 115, 118, 3, 8, 159, 162, 10, 83, 85, 208, 228, 12, 148, 245, 234, 43, 95, 106, 57, 73, 128, 141, 216, 239, 0, 68, 248, 191, 196, 170, 14, 119, 224, 92, 123, 86, 10, 175, 180, 192, 64, 122, 80, 190, 113, 102, 164, 53, 145, 184, 95, 42, 33, 202]) }, Event { key: EventKey([223, 71, 238, 109, 2, 212, 187, 176, 135, 172, 239, 7, 131, 190, 38, 238, 7, 241, 245, 43, 160, 34, 190, 79, 21, 62, 51, 26, 60, 56, 0, 45, 202, 242, 196, 226, 47, 221, 20, 41, 166, 247, 8, 20, 142, 102, 230, 140, 186, 61, 22, 169, 171, 207, 255, 198, 84, 117, 254, 248, 251, 40, 160, 253, 49, 229, 27, 174, 116, 186, 190, 35, 187, 124, 83, 171, 156, 166, 57, 67, 53, 27, 57, 0]), value: EventValue([143, 203, 246, 37, 136, 98, 200, 86, 54, 189, 19, 157, 146, 213, 104, 192, 219, 194, 23, 249, 169, 141, 177, 84, 39, 245, 140, 37, 133, 11, 186, 162, 161, 225, 148, 11, 202, 167, 101, 193, 62, 47, 12, 117, 0, 12, 37, 93, 205, 181, 40, 107, 86, 225, 229, 239, 16, 138, 189, 33, 207, 41, 20, 55, 139, 183, 147, 143, 11, 30, 245, 198, 32, 171, 252, 23, 180, 84, 185, 123, 47, 92, 62, 111, 156, 221, 84, 52, 146, 71, 33, 197, 192, 84, 37, 116]) }], receipt: 3553715018 }, TransactionReceipt { tx_hash: [58, 163, 254, 104, 123, 85, 144, 51, 174, 176, 213, 146, 93, 57, 166, 10, 240, 19, 227, 154, 48, 153, 185, 20, 56, 122, 46, 11, 201, 140, 254, 72], body_to_save: None, events: [Event { key: EventKey([55, 143, 217, 9, 201, 74, 90, 74, 38, 174, 60, 129, 78, 12, 177, 63, 140, 234, 79, 127, 191, 120, 6, 14, 192, 35, 57, 220, 181, 36, 169, 182, 187, 48, 25, 56, 128, 41, 120, 134, 93, 200, 214, 107, 175, 25, 91, 182, 178, 199, 243, 53, 117, 180, 252, 146, 71, 252, 57, 212, 90, 130, 134, 56, 80, 163, 192, 15, 237, 101, 239]), value: EventValue([45, 52, 158, 228, 4, 134, 216, 237, 87, 77, 181, 251, 169, 122, 135, 70, 5, 74, 148, 151, 184, 236, 25, 141, 61, 27, 18, 169, 241, 116, 160, 214]) }], receipt: 17156639 }, TransactionReceipt { tx_hash: [56, 141, 69, 166, 215, 46, 144, 61, 116, 44, 31, 34, 168, 70, 91, 106, 24, 42, 159, 203, 160, 13, 133, 153, 21, 31, 65, 77, 109, 181, 254, 42], body_to_save: Some([146, 150, 48, 203, 118, 153, 245, 105, 75, 91, 60, 39, 15, 215, 40, 120, 92, 192, 134, 20, 224, 2, 83, 149, 209, 158, 253, 73, 238, 237, 89, 236, 8, 87, 142, 212, 211, 116, 58, 92, 143, 129, 200, 141, 243, 27, 116, 57, 101, 79, 101, 247, 31, 182, 47, 45, 88, 150, 162, 161, 27, 8, 98, 76, 81, 127, 160, 87, 233, 131]), events: [Event { key: EventKey([25, 11, 131, 182, 99, 190, 209, 134, 55, 206, 177, 167, 3, 11, 177, 37, 33, 230, 65, 57, 2, 63, 185, 86, 19, 81, 119, 198, 126, 139, 254, 35, 106, 244, 211, 44, 254, 54, 186, 95, 183, 245, 25, 241, 254, 4, 109, 16, 105, 171, 251, 10, 216, 253, 0, 57, 169, 132, 7, 115, 194, 212, 166]), value: EventValue([64, 129, 224, 236, 146, 242, 89, 188, 101, 214, 208, 233, 48, 146, 234, 32, 39, 38, 47, 40, 152, 56, 170, 224, 125, 8, 198, 52, 247, 27, 213, 249, 255, 99, 17, 255, 155, 125, 69, 43, 207, 82, 87, 29, 43, 205, 149, 162, 32, 15, 49, 90, 215, 209, 152, 54, 98, 111, 43, 50, 69, 68, 209]) }], receipt: 2148441819 }, TransactionReceipt { tx_hash: [52, 109, 50, 156, 43, 34, 224, 76, 182, 189, 41, 119, 25, 67, 82, 125, 96, 202, 159, 112, 150, 3, 185, 224, 89, 206, 148, 29, 201, 255, 0, 117], body_to_save: None, events: [Event { key: EventKey([151, 102, 254, 209, 54, 24, 60, 184, 120, 109, 31, 147, 166, 38, 104, 76, 62, 250, 66, 72, 22, 197, 218, 111, 24, 237, 177]), value: EventValue([194, 92, 24, 110, 43, 139, 244, 77, 172, 186, 37, 226, 35, 85, 80, 139, 54, 165, 24, 250, 90, 160, 16, 41, 192, 221, 84, 74, 60, 44, 54, 55, 148, 125, 99, 188, 188, 18, 199, 214, 39, 203, 35, 120, 46, 216, 128, 5, 233, 33, 94, 129, 187, 73, 94, 249, 20, 119]) }, Event { key: EventKey([97, 4, 68, 160, 106, 53, 136, 193, 110, 29, 247, 50, 184, 250, 219, 185, 115, 226, 212, 0, 161, 213, 207, 87, 88, 240, 180, 100, 107, 59, 184, 235, 203, 238, 232, 144, 201, 194, 120, 215, 229, 185, 245, 21, 35, 166, 75, 128, 215, 83, 219, 138, 232, 207, 47, 220, 147, 59]), value: EventValue([41, 39, 206, 182, 19, 206, 132, 237, 150, 150, 96, 237, 7, 35, 121, 72, 74, 58, 35, 229, 247, 41, 227, 220, 231, 83, 35, 224, 32, 171, 50, 100, 132, 207, 74, 184, 49, 145, 74, 248, 231, 22, 124, 246, 191, 237, 40, 101, 116, 253, 51, 248, 180, 110, 177, 106, 3, 20, 216, 122, 15, 24, 236, 96, 54, 22, 239, 76, 121, 5, 36, 25, 236, 217, 173, 240, 11, 113, 12, 67, 231, 123, 140, 43, 98, 247, 21, 250, 129, 187, 173, 93, 3, 242]) }, Event { key: EventKey([216, 250, 157, 218, 112, 56, 172, 251, 63, 14, 113, 174, 242, 160, 162, 193, 136, 32, 71, 169, 160, 12, 223, 25]), value: EventValue([131, 230, 44, 216]) }, Event { key: EventKey([36, 89, 128, 141, 222, 101, 74, 191, 63, 214, 138, 202, 20, 101, 200, 144, 153, 39, 14, 239, 207, 120, 124, 253, 115, 112, 170, 113, 76, 28, 251, 35, 207, 126, 184, 91, 157, 162, 59, 185, 53, 136, 111, 197, 19]), value: EventValue([78, 16, 3, 137, 164, 163, 27, 170, 194, 49, 9, 246, 199, 191, 78]) }, Event { key: EventKey([29, 4, 70, 74, 183, 82, 147, 79, 10, 181, 171, 59, 122, 36, 13, 180, 136, 12, 203, 26, 174, 104, 58, 58, 225, 38, 181, 100, 120, 156, 67, 177, 104, 253, 220, 45, 204, 34, 57, 101, 195, 21, 18, 134, 138, 151, 186, 32, 17, 115, 94, 39, 75, 105, 41, 149, 190, 125, 42, 63, 252, 127, 52, 117, 67, 150, 125, 158, 142, 184, 191, 95, 27, 240, 118, 108, 114, 68, 248, 93, 211, 170, 172]), value: EventValue([207, 203, 109, 45, 79, 75, 176, 218, 115, 168, 203, 74, 221, 78, 43, 224, 16, 150, 75, 149, 17, 11, 94, 204, 200, 19, 24, 153, 112, 43, 248, 69, 41, 134, 221, 155, 175, 25, 236, 121, 73, 88, 138, 166, 172, 181, 6, 216, 169, 19, 67, 115, 132, 139, 120, 60, 155, 217, 38, 189, 48, 207, 240, 168, 254, 36, 84]) }, Event { key: EventKey([17, 12, 150, 63, 37, 50, 67, 101, 89, 142, 90, 84, 195, 34, 45, 197, 108, 69, 232, 33, 200, 219, 244, 14, 36, 19, 18, 202, 189, 81, 24, 226, 241, 61, 11, 252, 208, 58, 163, 232, 4, 41, 203, 52, 198, 157, 83, 171, 167, 120, 127, 38, 157, 249, 189, 72, 114, 68, 138, 79, 130, 59, 127, 108, 178, 126, 100, 2, 97, 250, 69, 105, 175, 60, 26, 73, 108, 188, 81, 43, 89, 149, 220, 84, 68, 233, 218, 251, 239, 250, 88, 68, 247, 210, 125, 164, 56]), value: EventValue([113, 186, 113, 226, 136, 240, 103, 180, 23, 145, 213, 182, 96, 207, 202, 5, 67, 155, 107, 253, 107, 254, 204, 18, 17, 58, 50, 67, 69, 190, 249, 133, 18, 27, 86, 90, 184, 17, 83, 170, 38, 165, 22, 243, 108, 248, 94, 193, 118, 58, 244, 111, 131, 2, 171, 252, 113, 193, 59, 41, 182, 247, 190, 218, 147, 145, 24, 128, 25, 194]) }], receipt: 1526487844 }, TransactionReceipt { tx_hash: [79, 142, 143, 53, 7, 192, 218, 202, 61, 216, 148, 164, 124, 55, 140, 206, 196, 43, 215, 181, 194, 78, 86, 122, 28, 137, 97, 215, 149, 248, 38, 155], body_to_save: Some([183, 47, 175, 209, 213, 132, 69, 254, 166, 24, 59, 152, 27, 7, 74, 173, 37, 119, 204, 181, 31, 2, 46, 56, 101, 55, 184, 87, 227, 147, 18, 232, 240, 111, 24, 176, 92, 246]), events: [Event { key: EventKey([36, 218, 227, 129, 79, 239, 48, 54, 162, 54, 135, 179, 35, 25, 23, 153, 138, 100, 236, 201, 239, 30, 97, 134, 156, 53, 37, 122, 236, 226, 229, 86, 97, 227, 41, 7, 112, 227, 43, 19, 185, 132, 27, 188, 251, 119, 77, 210, 154, 119, 60, 252, 91, 90, 145, 152, 66, 187, 238, 68, 114, 222, 203, 160, 104, 123, 84, 8, 165, 47, 41, 130, 180, 1, 18, 81, 20, 145]), value: EventValue([103, 252, 67, 61, 246, 193]) }, Event { key: EventKey([39, 149, 57, 132, 89, 193, 221, 18, 36, 212, 115, 42, 205, 76, 122, 75, 157, 105, 227, 43, 204, 131, 14, 140, 251, 96, 214, 64, 35, 17, 90, 127, 123, 74, 43, 135, 150, 181, 169, 252, 78, 214, 239, 103, 143, 176, 72, 241, 217, 249, 6, 151, 24]), value: EventValue([166, 143, 237, 49, 125, 244, 69, 97, 200, 172, 20, 166, 204, 173, 146, 181, 35, 245, 241, 78, 75, 61, 166, 43, 34, 89, 157, 105, 106, 8, 2, 165, 229, 202, 235, 229, 221, 230, 162, 249, 59, 164, 205, 31, 250, 93, 131, 170, 150, 54, 60, 179, 228, 127, 40, 147, 37, 169, 161, 122, 67, 45, 20, 103, 124, 15, 151, 183, 159, 194, 251, 146, 32, 132, 252, 11, 154, 90, 248, 130, 146, 232, 99, 132, 97, 164, 211, 179, 15, 200, 52, 152, 238, 76, 47, 82]) }, Event { key: EventKey([184, 108, 167, 43, 84, 18, 51, 189, 66, 179, 162, 203, 67, 25, 55, 198, 70, 215, 15, 89, 204, 166, 241, 54, 173, 229, 120, 145, 152, 110, 169, 167, 84, 23, 32, 1, 152, 125, 56, 64, 133, 169, 108, 247, 39, 139, 97, 57, 192, 139]), value: EventValue([48, 22, 121, 154, 118, 50, 211, 132, 40, 47, 1, 25, 204, 46, 134, 152, 102, 43, 244, 249, 58, 88, 76, 253, 147, 170, 162, 56, 16, 198, 20, 215, 212]) }, Event { key: EventKey([7, 107, 229, 199, 125, 139, 9, 91, 188, 7, 27, 136, 243, 65, 95, 5, 186, 22, 244, 249, 211, 146, 171, 0, 249, 16, 41, 49, 131, 7, 37, 112, 141, 92, 81, 152, 253, 119, 58, 90, 47, 197, 76, 158, 222, 77, 70, 137, 52, 191, 194, 220, 15, 156, 142, 117, 8, 79, 57, 170, 140, 136, 139, 165]), value: EventValue([23, 70, 142, 113, 232, 183, 151, 206, 210, 247, 248, 5, 108, 66, 9, 237, 37, 104, 156, 75, 10, 151, 49, 119, 107, 162, 165, 21, 232, 102, 89, 214, 228, 50, 24, 208, 74, 231, 125, 11, 72, 175, 136, 22, 220, 138, 141, 182, 240, 243, 233, 16, 177, 39, 124, 166, 197, 55, 154, 175, 241, 181]) }, Event { key: EventKey([25, 83]), value: EventValue([165, 107, 175, 76, 86, 218, 160, 80, 126, 25, 184, 112, 196, 84, 90, 117, 37, 21, 141, 190, 229, 56, 200, 160, 25, 251, 168, 147, 59, 186, 89, 156, 176, 192, 184, 2, 75, 37, 123, 104, 217, 111, 43, 46, 20, 9, 102, 139, 102, 210, 116, 101, 159, 148, 45, 152, 228, 28, 216, 173, 72, 253, 21, 177, 234, 224, 188, 193, 59, 158, 203, 179, 99, 174, 191, 220]) }], receipt: 2335701091 }, TransactionReceipt { tx_hash: [98, 109, 106, 235, 2, 110, 95, 120, 219, 211, 152, 146, 83, 226, 245, 187, 80, 7, 158, 148, 33, 15, 25, 161, 14, 0, 61, 148, 41, 122, 43, 174], body_to_save: Some([177, 219, 166, 253, 78, 68, 33, 106, 254, 180, 47, 39, 11, 83, 112, 30, 86, 218, 187, 112, 32, 155, 153]), events: [Event { key: EventKey([65, 121, 160]), value: EventValue([34, 174, 170, 10, 123, 78, 140, 16, 79, 196, 92, 35, 7, 191, 9, 152, 186, 105, 226, 161, 110, 50, 10, 165, 22, 19, 108, 242, 246, 36, 107, 234, 101, 91, 4, 152, 148, 212, 230, 179]) }, Event { key: EventKey([157, 123, 16, 126, 134, 118, 59, 145, 217, 116, 173, 201, 252, 175, 143, 227, 219, 99, 230, 243, 242, 251, 100, 124, 12, 80, 233]), value: EventValue([201, 130, 248, 222, 141, 151, 154, 182, 200, 231, 207, 115, 135, 138, 9, 200, 178, 214, 249, 229, 102, 202, 146, 55, 119, 141, 182, 33, 76, 240, 111, 219, 158, 253, 207, 117, 117, 225, 94, 106, 55, 13, 180, 41, 9, 163, 254, 105, 32, 115, 17, 224, 29, 153, 15, 118, 121, 119, 97, 160, 184, 68, 192, 118, 192, 93, 18, 137, 175, 144, 185, 153, 5, 94, 87, 156, 170, 40, 59, 84, 89, 112, 211, 143, 107, 159, 164, 51, 27, 98, 52, 58, 169, 229, 148, 113, 72, 182]) }, Event { key: EventKey([85, 182, 179, 216, 190, 111, 192, 115, 78, 240, 199, 140, 147, 223, 142, 121, 62, 78, 188, 67, 67, 167, 93, 128, 218, 227, 45, 149, 191, 7, 80, 251, 20, 84, 30, 73, 116, 156, 156, 188, 241, 55, 232, 11, 168, 1, 81, 62, 141, 74, 48, 43, 141, 164, 144, 92, 47, 154, 192, 172, 46, 218, 210, 4, 168, 185, 6]), value: EventValue([106, 8, 247, 111, 53, 208, 196, 46, 93, 87, 41, 5, 164, 104, 195, 60, 47, 134, 130, 135, 61, 174, 107, 76, 141, 84, 251, 115, 12, 14, 70, 157, 143, 88, 243, 8, 156, 103, 34, 6, 10, 35, 205, 27, 22, 7, 180, 171, 240, 156, 207, 193, 102, 134, 31, 55, 131, 107, 253, 141, 233, 137, 20, 12, 43, 243]) }, Event { key: EventKey([195, 33, 28, 232, 90, 224, 30, 245, 145, 246, 105, 198, 250, 100, 12, 15, 22, 252, 29, 181, 48, 26, 171, 54, 58, 225, 198, 193, 18, 135, 106, 239, 110, 139, 255, 94, 99, 152, 145, 66, 247, 46, 10, 229, 13, 109, 38, 115, 137, 249, 180, 131, 64, 181, 130, 187, 142, 143, 226, 11, 151, 68, 152, 142, 199, 47, 149, 146, 56, 24, 183, 219, 172, 3, 141, 37, 121, 166, 20, 213, 108, 174, 214, 35]), value: EventValue([78, 20, 204, 58, 159, 57, 106, 9, 180, 82, 33, 209, 94, 230, 234, 149, 221, 196, 86, 184, 162, 236, 76, 134, 234, 223, 183, 165, 110, 183, 243, 77, 97, 220, 238, 70, 128, 215, 107, 247, 16, 224, 45, 225, 23, 42, 180, 205, 67, 136, 164, 2, 169, 180, 109, 89, 249, 41, 228, 121, 81, 155, 49, 57, 180, 255, 159, 152, 127, 196, 249, 14, 1, 90, 63, 9, 167, 67, 65, 71, 42, 246, 244, 192, 146, 76, 140, 192, 135, 254, 128, 13]) }, Event { key: EventKey([126, 50, 51, 251, 76, 34, 21, 133, 52, 196, 239, 195, 86, 142, 68, 27, 230, 143, 180, 139, 60, 134, 254, 225, 183, 237, 206, 66, 2, 71, 103, 208, 218, 111, 100, 24, 100, 223, 39, 254, 182, 94, 81, 223, 230, 239, 20, 89, 135, 81, 110, 19, 246, 66, 114, 120, 64, 46, 91, 183, 146, 19, 104, 239, 221, 54, 7, 244, 246, 18, 239, 255, 169, 231, 148, 12, 51, 100, 112, 213, 229, 204, 212, 91, 29, 232, 136, 139, 90, 248, 134, 238]), value: EventValue([52, 35, 67, 229, 133, 245]) }, Event { key: EventKey([43, 165, 179, 107, 161, 168, 183, 220, 90, 166, 126, 99, 196, 203, 35, 61, 122, 156, 145, 212, 165, 24, 213, 97, 151, 85, 8, 38, 36, 234, 205, 208, 242, 61, 226, 168, 50, 197, 125, 222, 93, 221, 166, 199, 229, 152, 131, 39, 74, 245, 73, 205, 101, 22, 76, 178, 35, 129, 160, 131, 63, 124]), value: EventValue([189, 215, 98, 104, 44, 231, 163, 102, 126, 136, 90, 120, 245, 187, 127, 49, 84, 78, 35, 164, 192, 69, 55, 78, 116, 147, 214, 141, 199, 90, 247]) }, Event { key: EventKey([154, 30, 87, 158, 114, 13, 132, 196, 29, 174, 19, 91, 197, 211, 108, 35, 215, 249, 254, 150, 90, 232, 65, 22, 206, 30, 187, 154, 113, 125, 58, 6, 158, 215, 113, 223, 27, 189, 236, 25, 212, 177, 238, 133, 195, 83, 26, 162, 0, 163, 32, 201, 109, 100, 26, 242, 189, 77, 41, 162, 138, 220, 140, 183, 69, 114, 200, 183, 191, 39, 100, 7, 95]), value: EventValue([164, 44, 197, 215, 32, 130, 71, 52, 120, 33, 148, 206, 107, 12, 41, 161, 210, 86, 16, 130, 217, 229, 38, 86, 146, 120, 82, 241, 249, 249, 91, 143, 151, 73, 248, 249, 215, 130, 122, 219, 226, 61, 145, 55, 207, 125, 149, 40, 123, 199, 6, 110, 153, 249, 164, 172, 146, 228, 154, 182, 60, 160, 123, 235, 56, 164, 144, 237, 141, 153, 224, 197, 51, 55, 127, 34, 135, 138, 196, 100, 162, 14, 87, 202]) }, Event { key: EventKey([95, 214, 217, 36, 90, 39, 17, 149, 235, 205, 88, 172, 154, 125, 40, 171, 127, 152, 240, 117, 243, 120, 12, 24]), value: EventValue([112, 99, 117, 121, 216, 5, 239, 144, 23, 77, 4, 142, 73, 243, 32, 139, 227, 97, 75, 153, 99, 139, 135, 135, 137, 197, 4, 139, 142, 74, 205, 64, 57, 104, 38, 177, 161, 185, 208, 21, 145, 72, 133, 29, 31, 29, 128, 117, 85, 129, 217, 42, 53, 202, 124, 238, 12, 94, 203, 79, 34, 9, 220, 255, 225, 253, 109, 79, 246, 217, 71, 240, 74, 18, 11, 42, 229, 160, 87, 15, 77, 242, 202, 17, 247, 49, 209, 236, 85, 182, 180, 54]) }, Event { key: EventKey([29, 169, 222, 109, 245, 70, 1, 132, 166, 220, 116, 176, 176, 43, 117, 247, 245, 232, 196, 21, 100, 70, 19, 171, 83, 199, 3, 234, 20, 238, 9, 125, 177, 118, 114, 101, 107]), value: EventValue([68, 238, 165, 30, 89, 8, 87, 163, 77, 202, 235, 56, 172, 169, 95, 205, 186, 66, 226, 154, 222, 67, 84, 199, 147, 133, 191, 3, 33, 188, 121, 23, 44, 131, 36, 163, 18, 80, 13, 222, 36, 164, 150, 226, 177, 221, 140, 149, 184, 236, 17, 116, 77, 83, 160, 51, 111, 254, 202, 20, 217, 236, 90, 183, 197, 202, 23, 15, 242, 55, 106, 242, 190, 98, 28, 38, 26, 10, 11, 239, 241, 159, 139, 253, 12, 81, 14, 131, 105, 101, 146, 166, 21]) }], receipt: 2916708530 }, TransactionReceipt { tx_hash: [74, 159, 236, 236, 160, 202, 71, 154, 53, 189, 103, 193, 211, 14, 24, 168, 116, 5, 81, 82, 151, 90, 56, 203, 228, 43, 76, 7, 85, 204, 184, 248], body_to_save: Some([96, 77, 73, 242, 156, 121, 92, 158, 246, 23, 238, 137, 84, 244, 164, 241, 66, 202, 94, 62, 119, 113, 198, 171, 60, 230, 118, 150, 32, 139, 147, 160, 92, 174, 10, 15, 39, 215, 141, 171, 194, 39, 89, 241, 76, 74, 128, 234, 174, 69, 228, 240, 97, 84, 183, 236, 46, 209, 84, 168, 44, 186, 49, 75, 127, 252, 13, 109, 54, 74, 43, 214, 70, 72, 36, 79, 122, 35, 112, 201, 229, 153, 212, 44, 215, 79, 119, 133, 157, 196, 114, 210, 231, 141, 126, 240, 201]), events: [Event { key: EventKey([108, 102, 27, 107, 12, 195, 44, 20, 250, 212, 239, 224, 230, 21, 44, 154, 14, 212, 180, 202, 175, 251, 56, 91, 29]), value: EventValue([0, 79, 100, 90, 20, 57, 57, 27, 150, 123, 4, 148, 9, 222, 30, 182, 5, 18, 246, 3, 217, 133, 132, 89, 248, 68, 186, 236, 129, 63, 3, 13, 111, 67, 247, 113, 94, 18, 175, 194, 157, 167, 181, 157, 101, 155, 95, 87, 180, 142, 226, 39, 56, 107, 165, 14]) }, Event { key: EventKey([66, 59, 146, 131, 219, 245, 113, 46, 41, 225, 42, 174, 22, 164, 137, 105, 218, 185, 224, 134, 212, 202, 249, 101, 149, 159, 128, 158, 84, 147, 96, 175, 192, 120, 22, 29, 7, 251, 167, 130, 32, 141, 144, 21, 44, 107, 125, 183, 97, 96, 162, 126, 149, 119, 240, 48, 10, 216, 143, 175, 193, 91, 136, 40, 83, 136, 127, 153, 156, 252, 68, 130, 212, 140, 1]), value: EventValue([152, 232, 131, 249, 226, 196, 120, 142, 181, 32, 63, 207, 115, 127, 99, 9, 64, 116, 42, 82, 187, 137, 194, 147, 100, 184, 80, 118, 227, 84, 125, 149, 20, 244, 211, 118, 220, 216, 251, 204, 128, 59, 108, 19, 81, 250, 58, 197, 87, 1, 63, 38, 15, 70, 47, 57, 214, 81, 204, 230, 110, 38, 98, 237, 235, 196, 15, 82, 75, 229, 143, 98, 42, 127, 198, 16, 48, 122, 167, 108, 165, 249, 184, 5, 102, 170, 226, 167, 84, 73, 215, 124]) }, Event { key: EventKey([23, 122, 235, 48, 55, 160, 191, 113, 217, 161, 86, 181, 211, 7, 9, 56, 191, 254, 120, 157, 105, 30, 38, 55, 183, 31, 139, 7, 9]), value: EventValue([111, 197, 58, 40, 65, 4, 60, 57, 70, 182, 130, 10, 251, 172, 135, 77, 99, 6, 40, 158, 137, 217, 185, 141, 149, 59, 62, 124, 238, 141, 45, 234, 149, 8, 209, 189, 120, 6, 38, 235, 130, 146, 244, 99, 118, 128, 198, 52, 35, 45, 196, 25, 64, 43, 234, 23]) }, Event { key: EventKey([221, 103, 52, 42, 45, 74, 253, 87, 241, 124, 138, 95, 116, 227, 163, 222, 204, 174, 89, 109, 221, 127, 102, 130, 28, 253, 89, 12, 226, 240, 223, 126, 136, 29, 131, 35, 108, 1, 214, 182, 36, 41, 182, 105, 72, 183, 237, 203, 217, 191, 20, 114, 180, 205, 66, 1, 103, 70, 44, 172, 16, 175, 129, 186, 178, 24, 206, 66, 183, 42, 150, 15, 144, 112, 195, 120, 51, 4, 230, 69, 191, 101, 120, 134, 19, 121, 224, 65]), value: EventValue([127, 12, 243, 240, 145, 194, 94, 54, 25, 79, 28, 91, 241, 74, 69, 139, 156, 48, 137, 219, 83, 17, 111, 176, 84, 111, 79]) }, Event { key: EventKey([237, 114, 92, 115, 190, 181, 169, 30, 102, 247, 58, 45]), value: EventValue([99, 89, 164, 153, 141, 78, 189, 252, 225, 27, 71, 92, 85, 135, 63, 190, 132, 162, 51, 199, 72, 87, 14, 111, 80, 219, 227, 43, 26]) }, Event { key: EventKey([219, 44, 31, 95, 64, 30, 249, 72, 170, 17, 30, 44, 240, 32, 34, 40, 109, 82, 56, 88, 75, 200, 246, 195]), value: EventValue([36, 186, 175, 36, 176, 51, 167, 102, 206, 180, 194, 118, 223, 187, 206, 60, 100, 127, 125, 10, 56, 66, 244, 142, 158, 60, 88, 48, 136, 140, 175, 105, 6, 133, 19, 210, 26, 139, 233, 190, 150, 44, 41, 31, 128, 52, 14, 136, 223, 7, 181, 230, 145, 74, 77, 255, 202, 122, 128, 46, 240, 93, 180, 172, 177, 187, 127, 225, 162, 70, 109, 167, 73, 172, 68, 253, 173]) }], receipt: 1430788891 }], inner: 819093817 }, BatchReceipt { batch_hash: [90, 111, 97, 22, 70, 6, 99, 204, 34, 229, 157, 100, 44, 129, 10, 249, 138, 203, 34, 169, 142, 97, 170, 219, 130, 118, 137, 61, 14, 145, 182, 40], tx_receipts: [TransactionReceipt { tx_hash: [240, 47, 221, 189, 126, 146, 107, 93, 198, 93, 202, 211, 204, 14, 255, 108, 63, 107, 6, 219, 44, 122, 117, 215, 31, 171, 189, 168, 199, 113, 8, 229], body_to_save: None, events: [Event { key: EventKey([7, 164, 154, 153, 123, 246, 60, 229, 28, 30, 116, 37, 14, 196, 236, 10, 191, 141]), value: EventValue([106, 37, 251, 212, 4, 109, 219, 169, 84, 55, 82, 67, 245, 166, 144, 218, 50, 175, 238, 108, 141, 165, 102, 211, 198, 84, 4, 206, 10, 136, 225, 166, 88, 106, 33, 205, 131, 69, 204, 83, 76, 17, 86, 250, 179, 209, 94, 188, 147, 226, 184, 54, 14, 137, 131, 246, 211, 144, 154, 8, 50, 162, 254, 188, 128, 253, 57, 111, 100, 227, 179, 181, 41, 168, 110, 22, 150, 107, 192, 87, 43, 172, 108, 168, 213, 46, 80, 39]) }, Event { key: EventKey([197, 59, 142, 79, 96, 149, 53, 30, 177, 38, 177, 14, 5, 41, 42, 60, 176, 47, 53, 164, 156, 168, 205, 235, 108, 170, 78, 144, 54, 100, 12, 15, 63, 244, 122, 185, 123, 30, 45, 167, 228, 106, 240, 112, 143, 250, 125, 127, 99, 164, 218, 251, 7, 8, 196, 28, 70, 189, 25, 107, 226, 223, 190, 233, 25, 164, 47, 90, 185, 248, 209, 250, 107, 241, 86, 254, 82, 16, 82, 114, 108, 48, 224, 213, 161, 203, 191, 30, 114, 141, 101, 95, 92, 9, 193]), value: EventValue([187, 65, 202, 136, 159, 213, 198, 171, 14, 240, 213, 68, 250, 54, 174, 82, 240, 76, 40, 151, 201, 119, 124, 43, 163, 145, 147, 105, 98, 140, 167, 197, 50, 145, 8, 196, 253, 72, 107, 220, 186, 250, 251, 121, 149, 25, 187, 211, 76, 160, 254, 44, 169, 209, 106, 181, 235, 211, 150, 229, 72, 16, 77, 108, 27, 76, 209, 62, 202, 12, 168, 128, 174, 47, 42, 11, 175, 80, 145, 145, 232, 10, 50, 237, 212, 74, 78, 74, 19]) }, Event { key: EventKey([186, 5, 164, 5, 113, 219, 52, 55, 255, 81, 187, 220, 224, 232, 255, 16, 224, 227, 219, 58, 160, 160, 224, 74, 68, 42, 103, 181, 85, 178, 30, 86, 206, 27, 182, 14, 243, 163, 13, 179, 172, 208, 140, 135, 226, 225, 15, 210, 172, 30, 231, 120, 149, 222, 98, 85, 150, 110, 227, 147, 167, 43, 45, 36, 96, 254, 13, 227, 201, 8, 46, 253, 127, 238, 155]), value: EventValue([120, 131, 44]) }, Event { key: EventKey([65, 73, 249, 48, 77, 185, 95, 234, 185, 255, 174, 41, 78, 128, 1, 134, 59, 252, 215, 213, 228, 56, 105, 162, 178, 239, 76, 35, 72, 232, 119, 71, 234, 36, 148, 149, 49, 209, 201, 167, 210, 134, 164, 101, 250, 27, 118, 178, 92, 209, 30, 121, 111, 201, 44, 90]), value: EventValue([195, 225, 251, 39, 85, 114, 72, 125, 160, 241, 15, 234, 55, 128, 61, 208, 234, 43, 44, 3, 127, 43, 83, 181, 248, 190, 114, 205, 205, 131, 172, 253, 200, 115]) }, Event { key: EventKey([80, 42, 104, 0, 253, 10, 184, 59, 113, 30, 93, 135, 129, 56, 66, 129, 208, 4, 59, 89, 28, 38, 145, 97, 72, 133, 81, 196, 85, 211, 131, 177, 127, 18, 78, 206, 53, 249, 125, 129, 133, 112, 64, 253, 205, 224, 136, 168, 80, 207, 198, 92, 84, 253, 200, 172, 231, 241, 243, 94, 92, 132]), value: EventValue([237, 102, 143, 16, 76, 159, 131, 251, 204, 195, 17, 198, 56, 188, 14, 159, 220, 156, 204, 116, 133, 119, 48, 254, 244, 140, 78, 75, 91, 190, 7, 124, 205, 37, 184, 21, 241, 23]) }, Event { key: EventKey([167, 224, 163, 75, 115, 176, 160, 144, 151, 192, 255, 158, 129, 134, 223, 129, 233, 100, 14, 58, 106, 164, 232, 195, 38, 56, 183, 53, 55, 120, 14, 85, 62, 210, 141, 159, 244, 161, 10, 112, 18, 233, 250, 167, 189, 190, 107, 40, 213, 194, 255, 87, 38, 204, 20]), value: EventValue([175, 50, 133, 110, 135, 61, 48, 131, 25, 36, 155, 25, 134, 82, 105, 121, 39, 189, 137, 87, 199, 123, 224, 30, 157, 8, 88, 116, 162, 100]) }], receipt: 2649453246 }, TransactionReceipt { tx_hash: [31, 209, 62, 196, 209, 195, 160, 227, 69, 208, 224, 236, 114, 131, 121, 208, 221, 78, 99, 108, 157, 229, 24, 134, 228, 71, 60, 219, 7, 90, 132, 121], body_to_save: Some([130, 65, 128, 164, 102, 33, 152, 214, 106, 49, 45, 52, 168, 121, 229, 121, 168, 86, 142, 42, 149, 244, 61, 20, 96, 80, 33, 51, 135, 123, 33, 89, 156, 80, 124, 12, 177, 0, 78, 168]), events: [Event { key: EventKey([121, 55, 197, 31, 104, 9, 8, 242, 250, 72, 2, 134, 14, 163, 217, 66, 75, 174, 239, 16, 249, 85, 16, 10, 95]), value: EventValue([143, 59, 253, 40, 109, 153, 1, 203, 94, 172, 151, 30, 118, 105, 128, 225, 31, 162, 7, 222, 52, 143, 186, 253, 48, 208, 45, 114, 78, 136, 154, 120, 120, 248, 36, 99, 156, 42, 174, 208, 31, 250, 109, 22, 1, 168, 114, 58, 103, 169, 203, 150, 2, 197]) }, Event { key: EventKey([12, 68]), value: EventValue([67, 95, 96, 167, 148, 215, 37, 221, 127, 180, 19]) }, Event { key: EventKey([182, 243, 70, 174, 22, 162, 199, 39, 170, 99, 149, 85, 249, 132, 20, 38, 129, 78, 194, 76, 31, 214, 149, 202, 166, 78, 31, 105, 227, 3, 1, 66, 103, 145, 189, 218, 106, 41, 185, 67, 168, 178, 106, 135, 36]), value: EventValue([139, 110, 39, 243, 217, 120, 177, 87, 98, 138, 86, 229, 92, 136, 91, 121, 200, 84, 39, 132, 196, 238, 173, 54, 172, 17, 139, 250, 204, 231, 66, 32, 135, 229, 88, 53, 242]) }, Event { key: EventKey([116, 255, 241, 69, 139, 177, 237, 30, 129, 124, 127, 75, 134, 121, 188, 171, 109, 15, 113, 241, 16, 121, 109, 115, 249, 70, 219, 89, 113, 102, 112, 191, 108, 196, 231, 36, 157, 162]), value: EventValue([70, 227, 225, 24, 76, 207, 165, 116, 96, 109, 121, 210, 71, 39, 192, 212, 91, 151, 233, 224, 142, 22, 84, 66, 190, 43, 81, 109, 143, 59, 67, 32, 27, 188, 0, 163, 120, 194, 214, 88, 22, 31, 66, 70, 209, 248, 2, 120, 209, 132, 46, 86, 216, 193, 208, 255, 20, 50, 239, 115, 240, 164, 168, 234, 207, 193, 41, 61, 241, 238, 239, 162]) }, Event { key: EventKey([50, 169, 149, 55, 26, 143, 64, 65, 233, 188, 115, 69, 81, 146, 202, 213, 108, 105, 34, 19, 88, 190, 239, 56, 118, 136, 246, 167, 176, 103, 232, 132, 116, 133, 222, 157]), value: EventValue([91, 55, 80, 203, 68, 182, 200, 89, 202, 35, 148, 129, 221, 185, 49, 201, 103, 130, 201, 14, 139, 151, 114, 1, 94, 217, 84, 135, 207, 245, 156, 125, 30, 25, 189, 133, 31, 156, 80, 243, 88, 254, 11, 62, 243]) }, Event { key: EventKey([124, 159, 191, 3, 174, 115, 218, 30, 218, 232, 177, 228, 102, 123, 154, 215, 129, 194, 76, 121, 15, 124, 186, 223, 219, 13, 105, 197, 20, 1, 146, 91, 196, 41, 235, 101, 25, 57, 191, 246, 138, 201, 154, 89, 54, 81, 78, 144, 163, 69, 55, 89, 11, 141, 235, 197, 126, 129, 166, 199, 4, 185, 188, 31, 95, 1, 35, 76, 248]), value: EventValue([86, 69, 167, 253, 139, 150, 73, 107, 143, 164, 158, 117, 101, 17, 202, 172, 216, 179, 47, 233, 194, 247, 87, 198, 34, 226, 121, 235, 113, 7, 184, 57, 101, 254, 172, 16, 238, 252, 175, 11, 240, 105, 87, 163]) }, Event { key: EventKey([249, 37, 128, 189, 113, 209, 79, 207, 10, 215, 195, 238, 44, 224, 166, 72, 154, 221, 35, 139, 143, 126, 145, 102, 205, 212, 133, 96, 28, 26, 11, 211, 251]), value: EventValue([250, 232, 163, 151, 95, 35, 248, 90, 77, 132, 167, 54, 136, 87, 22, 135, 101, 174, 179, 134, 27, 102, 123, 13, 251, 114, 252, 194, 9, 144, 183, 63, 75, 28, 61, 86, 52, 1, 194, 31, 72, 114, 135, 71, 50, 23, 219, 90, 56, 56, 149, 170, 7, 102, 228, 116, 28, 8, 178, 7, 170, 122, 254, 139, 105, 82, 90, 127, 112, 161, 61, 123, 204, 141, 137, 231, 35, 160, 130, 41, 206, 168, 134, 49]) }, Event { key: EventKey([169, 45, 102, 245, 138, 140, 170, 96, 127, 9, 211, 27, 219, 126, 39, 62, 199, 168, 112, 244, 191, 48, 80, 38, 242, 59, 109, 0, 178, 186, 98, 242, 70, 34, 234, 146, 228, 152, 3, 22, 0, 201, 31, 116, 51, 209, 194, 48, 137, 202, 161, 67, 219, 74, 129, 156, 49, 62, 123, 155, 21, 17, 193, 129, 229, 83, 45, 100, 180, 21, 123, 155, 224, 150, 160, 247, 47, 147, 139, 239, 99]), value: EventValue([202, 251, 95, 81, 176, 90, 104, 100, 94, 8, 39, 110, 46, 96, 110, 179, 236, 26, 181, 78]) }], receipt: 2782207157 }, TransactionReceipt { tx_hash: [39, 236, 188, 117, 59, 92, 17, 43, 110, 157, 169, 60, 16, 155, 118, 206, 47, 93, 221, 106, 218, 205, 101, 232, 31, 123, 199, 141, 83, 4, 116, 240], body_to_save: Some([240, 115, 221, 43, 25, 172, 22, 217]), events: [Event { key: EventKey([6, 153, 124, 172, 239, 32, 154, 86, 16, 123]), value: EventValue([90, 123, 174, 76, 241, 111, 127, 200, 93, 194, 151, 21, 197, 150, 25, 92, 86, 152, 218, 220, 147, 55, 86, 73, 188, 72, 2, 245, 38, 120]) }], receipt: 3501420502 }, TransactionReceipt { tx_hash: [1, 116, 118, 22, 0, 198, 151, 75, 171, 38, 158, 110, 245, 242, 230, 105, 146, 111, 88, 121, 103, 82, 162, 156, 18, 69, 227, 213, 202, 78, 49, 90], body_to_save: None, events: [Event { key: EventKey([225, 53, 45, 140, 47, 203, 160, 50, 60, 218, 47, 35, 2, 183, 198, 36, 20, 37, 91, 180, 115, 218, 86, 5, 87, 179, 79, 71, 17, 49, 22, 49]), value: EventValue([137, 240, 50, 168, 217, 3, 6, 106, 87, 218, 16, 239, 77, 16, 214, 27, 15, 132, 53, 253, 12, 61, 45, 91, 98, 32, 9, 178, 46, 7, 210, 231, 93, 231, 30, 225, 165, 243, 120, 137, 151, 67, 170, 81, 188, 72, 4, 154, 24, 217, 30, 3, 240, 25, 215, 235, 22, 206, 38, 239, 139, 117, 155, 96, 50, 116, 148, 170, 53]) }], receipt: 546373987 }, TransactionReceipt { tx_hash: [194, 188, 237, 173, 87, 140, 124, 1, 250, 6, 228, 222, 166, 59, 114, 26, 41, 225, 68, 158, 121, 25, 196, 181, 42, 154, 214, 228, 35, 168, 34, 209], body_to_save: None, events: [Event { key: EventKey([23, 96, 172, 128, 15, 213, 52, 103, 80, 13, 14, 45, 42, 220, 33, 85, 61, 76, 163, 181, 24, 39, 194, 204, 109, 31, 137, 233, 179, 126, 155, 80, 171, 113, 248, 199, 87, 140, 161, 127, 80, 61, 80, 102, 236, 99, 182, 149, 184, 57, 227, 185, 109, 253, 81, 207, 147, 139, 131, 66, 151, 212, 93, 128, 221, 112, 187, 43, 73, 8, 46, 2, 228, 234, 129, 5, 118, 7, 216, 87, 95, 149, 54, 144, 221, 148, 136, 205, 111, 102, 168, 79, 36]), value: EventValue([221, 235, 73, 178, 228, 161, 120, 202, 61, 205, 221, 158, 170, 34, 215, 68, 184, 115, 30, 233, 144, 239, 136, 233, 75, 239, 187, 128, 213, 24, 67, 182, 203, 116, 125, 182, 17, 174, 176, 213, 95, 18, 246, 93, 100, 92, 19, 87, 226, 232, 112, 58, 20, 81]) }, Event { key: EventKey([221, 33, 248, 202, 148, 92, 145, 195, 72, 122, 225, 76, 254, 236, 102, 191, 48, 18, 182, 22, 134, 98, 5, 218, 9, 47, 90, 24, 159, 3, 204, 165, 191, 137, 69, 138, 90, 92, 45, 116, 227, 86, 245, 67, 36, 119, 193, 55, 216, 72, 60, 29, 124, 38, 165, 34, 231, 198, 75, 198, 9, 0, 110, 239]), value: EventValue([66, 253, 48, 247, 104, 204, 131, 245, 124, 28, 99, 100, 56, 70, 87, 255, 65, 13, 181, 76, 192, 26, 119, 159, 44, 181, 213, 36, 31, 102, 118, 181, 103, 33, 91, 15, 187, 22, 88, 55, 252, 91, 18, 206, 42, 8, 46, 30, 254, 146, 125, 8, 190, 245]) }, Event { key: EventKey([37, 141, 89, 65, 152, 180, 95, 92, 66, 206, 83]), value: EventValue([70, 172, 221, 54, 186, 58, 135, 251, 31, 242, 127, 14, 155, 85, 96, 243, 228, 84, 202, 28, 82, 67, 163, 255, 144, 126, 19, 48, 224, 118, 87, 53, 72, 64, 197, 249, 12, 198, 24, 228, 9, 123, 4, 203, 139, 255, 152, 50, 156, 16, 226, 138, 176, 198, 178, 48, 2, 60, 129, 159, 98, 252, 193, 233, 218, 72, 120, 230, 113, 228, 242, 68]) }, Event { key: EventKey([152, 195, 162, 19, 154, 192, 54, 32, 209, 59, 147, 83, 118, 218, 235, 49, 192, 227, 179, 61, 130, 138, 29, 78, 176, 91, 78, 175, 51, 128, 134, 85, 37, 61, 211, 220, 32, 150, 183, 214, 23, 14, 158, 28, 229, 106, 133, 119, 182, 194, 223, 93, 93, 32, 102, 41, 56, 218, 102, 114, 221, 109, 248, 131, 22, 176, 148, 160, 12, 179, 60, 211, 156, 97, 13, 244, 27, 172, 81, 224, 255, 146, 209, 193, 14, 19, 237, 149, 18, 195, 83, 96, 106, 37, 154, 140]), value: EventValue([248, 31, 211, 155, 224, 20, 100, 7, 70, 205, 100, 62, 214, 3, 74, 249, 206]) }, Event { key: EventKey([242, 96, 68, 254, 151, 236, 186, 211, 129, 104, 203, 112, 86, 132, 214, 188, 102, 57, 131, 10, 151, 226, 48, 231, 248, 71, 166, 233, 124, 76, 59, 232, 223, 106, 148, 194, 92, 101, 87, 1, 206, 12, 158, 224, 248, 65, 213, 162, 157, 34]), value: EventValue([129, 107, 116, 37, 167, 234, 145, 11, 87, 222, 146, 59, 191, 162, 20, 158, 5, 49, 94, 251, 68, 83, 31, 12, 1, 8, 200, 8, 127]) }, Event { key: EventKey([234, 221, 241, 219, 227, 200, 208, 31, 222, 39, 127, 228, 114, 181, 185, 143, 68, 30, 166, 177, 221, 135, 31, 97, 208, 150, 127, 88, 96, 71, 8, 191, 120, 5, 233, 217, 77, 72, 138, 167, 235, 240, 187, 36, 30, 50, 116, 85, 149, 3, 48, 113, 36, 96, 133, 42, 18, 81, 95, 40, 9, 8, 29, 46, 73, 33, 92, 39]), value: EventValue([111, 17, 73, 14, 158, 23, 116, 116, 200, 60, 215, 35, 116, 4, 199, 126, 104, 217, 83, 66, 212, 178, 209, 101, 3, 231, 96, 238, 22, 9, 254, 65, 70, 100, 174, 166, 50, 116, 229, 174, 128, 22, 45, 178, 215, 123, 123, 11, 212, 147, 68, 138, 37, 40, 185, 238, 243, 56, 24, 41, 210, 69, 89, 155, 186, 123, 99, 173, 126, 56, 106, 75, 107, 168, 123, 214, 175, 131, 211, 40, 225, 197, 12, 91, 146, 83, 84, 255, 146, 211, 133, 160, 55, 66, 80]) }, Event { key: EventKey([152, 183, 230, 88, 162, 97, 22, 67, 236, 41, 115, 100, 94, 182, 68, 100, 144, 29, 101, 72, 146, 98, 117, 112, 203, 202, 18, 145]), value: EventValue([175, 51, 241, 100, 249, 105, 8, 14, 221, 87, 77, 242, 188, 172, 185, 148, 6, 9, 195, 188, 98, 205, 38, 18, 184, 214, 1, 178, 217, 26, 54, 36, 70, 149, 224, 20, 196, 143, 2, 18, 175, 80, 81, 231, 120, 208, 148, 14, 74, 45, 12, 149, 78, 42, 136, 32, 128, 200, 243, 100, 129, 184, 24, 12, 31, 244, 110, 196, 196, 241, 248, 12, 158, 215, 144, 46, 7, 206, 181, 177, 146, 67, 19, 62, 132, 87, 84, 72, 245, 224, 255, 52, 140, 203, 249]) }, Event { key: EventKey([169, 231, 172, 230, 40, 113, 57, 71, 244, 237, 18, 137, 29, 165, 84, 54, 146, 8, 252, 185, 8, 185, 194, 0, 8, 38, 103, 134, 54, 96, 121, 119, 218, 39, 198, 251, 212, 105, 181, 108, 22, 87, 192, 216, 135, 191, 224]), value: EventValue([198, 158, 169, 212, 103, 174, 255, 177, 125, 203, 206, 101, 95, 171, 21, 234, 167, 192, 153, 16, 118, 48, 109, 195, 34, 1, 11, 219, 71, 69, 71, 206, 53, 145, 131, 138, 5, 231, 170, 227, 185, 133, 252, 37, 197, 192, 179, 168, 202, 205, 49, 192, 76, 101, 47, 99, 154, 228, 221, 225, 23, 159, 113, 78, 9, 0, 202, 2, 240]) }, Event { key: EventKey([186, 213, 81, 254, 136, 224, 246, 199, 221, 101, 253, 47, 66, 255, 108, 218, 6, 128, 218, 64, 172, 120, 173, 83, 48, 167, 195, 215, 198, 7, 197, 44, 130, 79]), value: EventValue([37, 207, 231, 47, 176, 145, 48, 28, 134, 105, 101, 246, 249, 57, 192, 180, 165, 181, 139, 176, 157, 172, 197, 209, 251, 156, 173, 136, 90, 108, 47, 42, 153, 87, 65, 90, 2, 219, 37]) }], receipt: 802834493 }], inner: 567103609 }, BatchReceipt { batch_hash: [250, 163, 8, 248, 203, 50, 87, 159, 117, 75, 144, 56, 87, 74, 33, 166, 85, 99, 170, 88, 47, 52, 148, 100, 213, 82, 214, 188, 141, 66, 133, 48], tx_receipts: [TransactionReceipt { tx_hash: [120, 144, 240, 240, 42, 168, 72, 164, 224, 251, 117, 250, 74, 75, 190, 191, 206, 123, 21, 13, 167, 117, 180, 101, 152, 35, 127, 175, 112, 120, 238, 178], body_to_save: Some([0, 117, 151, 205, 132, 119, 213, 56, 255, 130, 25, 185, 226, 103, 230, 210, 159, 120, 152, 215, 29, 54, 242, 23, 101, 85, 111, 203, 96, 80, 234, 200, 226, 152, 254, 194, 231, 59, 134, 164, 12, 78, 121, 123, 159]), events: [Event { key: EventKey([128, 137, 177, 57, 130, 189, 103, 17, 137, 199, 114, 184, 192, 37, 235, 196, 12, 164, 196, 21, 195, 155, 242, 66, 164, 25, 206, 177, 155, 216, 192, 187, 150, 74, 34, 176, 46, 8, 74, 248, 95, 196, 39, 251, 122, 197, 29, 115, 186, 206, 93, 67, 144, 118, 19, 58, 48, 19, 164, 141, 132, 13, 194, 228, 71, 135, 52, 64, 115, 41, 224, 15, 78, 124, 9, 120, 166, 225, 80, 124, 72, 208, 130, 157, 232, 200, 216, 251, 22, 19, 13, 118, 175, 154, 201]), value: EventValue([66, 235, 199, 25, 144, 253, 135, 72, 73, 154, 74, 204, 169, 137, 162, 13, 79, 45, 79, 167, 11, 96]) }, Event { key: EventKey([131, 191, 250, 173, 69, 84, 21, 136, 108, 35, 12, 89, 62, 193, 207, 183, 163, 112, 122, 163, 119, 40, 215, 208, 26]), value: EventValue([49, 33, 177, 34, 237, 125, 48, 196, 95, 6, 249, 55, 205, 159, 98, 210, 117, 209, 189, 211]) }, Event { key: EventKey([217, 7]), value: EventValue([145, 85, 29, 77, 97, 153, 34, 235, 204, 105, 189, 9, 70, 192, 38, 225, 66, 108, 250, 172, 111, 79, 74, 115, 99, 28, 231, 117, 127, 172, 191, 155, 94, 5, 92, 188, 177, 209, 206, 156, 33, 197, 213, 103, 249, 221, 129, 55, 98, 26, 219, 37, 64, 252, 15, 127, 166, 214, 165, 219, 155, 59, 25, 193, 96, 102, 75, 130, 123, 179, 56, 195, 69, 50, 243, 125]) }, Event { key: EventKey([231, 222, 148, 172, 179, 233, 23, 152, 221, 101, 244, 41, 204, 21, 53, 202, 163, 48, 72, 61, 59, 34, 209, 255]), value: EventValue([252, 176, 149, 186, 228, 17, 86, 151, 106, 113, 38, 92, 230, 94, 46, 48, 93, 123, 196, 255, 69, 36, 133, 59, 47, 41, 169, 143, 194, 116, 235, 63, 180, 2, 195, 46]) }, Event { key: EventKey([97, 222, 59, 251, 51, 235, 95, 155, 73, 54, 75, 95, 116, 63, 213, 160, 35, 121, 160, 78, 95, 165, 54, 235, 150, 91, 181, 50, 106, 19, 108, 56, 34, 168, 103, 127, 122, 3, 168, 141, 38, 82, 187, 150, 87]), value: EventValue([187, 229, 159, 56, 138, 195, 81, 85, 233, 178, 17, 216, 130, 190, 65, 46, 197, 218, 130, 227, 122, 8, 147, 44, 58, 155, 166, 36, 156, 97, 205, 212, 103, 14, 11, 191, 99, 249, 205, 72, 211, 119, 26, 51, 100, 124, 55, 5, 196, 212, 38, 164, 223, 241, 56, 95, 86, 197, 191, 44, 80, 47, 64, 253, 91, 60, 76, 185, 82, 104, 115, 65, 98, 94, 221, 33, 160, 120, 4, 48, 215, 211]) }], receipt: 4202406267 }, TransactionReceipt { tx_hash: [37, 148, 40, 234, 53, 53, 177, 148, 88, 72, 213, 119, 16, 176, 16, 57, 186, 120, 253, 22, 157, 89, 205, 46, 26, 7, 31, 110, 122, 23, 133, 198], body_to_save: None, events: [Event { key: EventKey([254, 40, 94, 4, 236, 156, 94, 102, 197, 69, 174, 190, 153, 214, 67, 111, 17, 154]), value: EventValue([124, 234, 55, 162, 182, 54, 78, 183, 155, 251, 62, 92, 159, 235, 2, 29, 93, 103, 14, 239, 206, 9, 60, 80, 229, 243, 149, 152, 11, 125, 184, 50, 138, 125, 14, 134, 239, 17, 238, 110, 237, 220, 172, 28, 194, 138, 102, 21, 69, 110, 204, 233, 64, 144, 177, 189, 176, 133, 197, 235, 79, 139, 88, 108, 3, 79, 210, 96, 42, 77, 164, 52, 44, 183, 201, 107, 110, 204, 34, 151, 135, 116, 174, 126, 172, 116, 52, 110, 81, 247, 106, 93, 193, 11, 248, 15, 177, 151, 236]) }, Event { key: EventKey([28, 63, 59, 164, 74, 25, 148, 185, 144, 92, 162, 30, 147, 223, 140, 42, 96, 42, 116, 138, 78, 91, 151, 178, 192, 41, 185, 193, 193, 208, 48, 30, 204, 247, 135, 249, 55, 10, 106, 63, 35, 215, 88, 75, 255, 230, 237, 255, 174, 60, 1, 140, 29, 237, 171, 71, 56, 117, 58, 39, 215, 72, 64, 224, 37, 244, 62, 112, 225, 200, 155, 178, 186, 89, 55, 108, 93, 214, 109, 169, 94, 129, 224, 241, 195, 193, 150, 229, 25, 232, 234, 186, 4, 223, 45]), value: EventValue([32, 212, 82, 30, 65, 67, 85, 65, 134, 53, 87, 128, 192, 75, 245, 43, 40, 52, 192, 67, 80, 152, 96, 74, 73, 58, 188, 45]) }, Event { key: EventKey([154, 178, 244, 202, 149, 76, 131, 29, 104, 179, 74, 119, 196, 69, 127, 60, 4, 234, 206, 235, 121, 24, 178, 251, 54, 224, 1, 184, 21, 126, 200, 33, 110, 41, 7, 98, 116, 183, 166, 70, 126, 150, 70, 6, 149, 116, 244, 241, 135, 132, 228, 95, 96, 241, 190, 239]), value: EventValue([64, 183, 151, 232, 149, 246, 245, 99, 217, 215, 201, 186, 89, 62, 49, 254, 155, 203, 66, 172, 45, 69, 81, 250, 189, 142, 55, 185, 61, 14, 43, 233, 0, 61, 77, 71, 65, 66, 11, 134, 15, 204, 29, 37, 139, 71, 247, 29, 41, 179, 225, 114, 229, 158, 106, 102, 76, 216, 213, 3, 49, 145, 69, 171, 236, 208, 182, 138, 187, 223, 43, 75, 176, 160, 14, 59, 81, 184, 37, 33]) }], receipt: 441667968 }], inner: 3053232208 }], num_txs: 39, num_events: 157 }, SlotCommit { slot_data: TestBlock { curr_hash: [209, 32, 45, 22, 181, 107, 240, 116, 75, 253, 210, 62, 39, 104, 168, 24, 10, 32, 22, 25, 136, 131, 50, 71, 20, 137, 121, 137, 26, 95, 227, 88], header: TestBlockHeader { prev_hash: TestHash([24, 223, 153, 144, 250, 114, 190, 23, 167, 124, 71, 222, 218, 237, 29, 207, 214, 153, 46, 150, 168, 171, 214, 4, 46, 18, 91, 148, 200, 24, 107, 189]) } }, batch_receipts: [BatchReceipt { batch_hash: [112, 8, 37, 213, 50, 177, 182, 205, 11, 90, 221, 162, 216, 49, 92, 80, 151, 127, 79, 120, 18, 88, 138, 30, 82, 25, 181, 149, 32, 236, 157, 206], tx_receipts: [TransactionReceipt { tx_hash: [102, 170, 58, 228, 9, 245, 27, 143, 50, 206, 123, 152, 45, 139, 182, 50, 80, 59, 133, 47, 31, 9, 151, 24, 196, 185, 79, 143, 135, 237, 246, 240], body_to_save: None, events: [Event { key: EventKey([230, 139, 244, 182, 157, 172, 44, 27, 187, 175, 125, 251, 97, 168, 37, 47, 212, 52, 52, 75, 132, 60, 50, 114, 27, 23, 69, 49, 200, 5, 51, 97, 147, 8, 207, 159, 197, 206, 63, 242, 233, 70, 75, 195, 26, 184, 203, 214, 24, 9, 236, 154, 31, 223, 104, 20, 131, 177, 56, 135, 154, 154, 54, 98, 11, 135, 98, 169, 171, 67, 153, 98, 98, 183, 59, 209, 192, 15, 43, 26, 238, 83, 1, 122, 56, 156, 220, 228, 41, 251, 6, 159, 238, 49, 255, 35, 244, 48, 247]), value: EventValue([113, 134, 54, 58, 240, 200, 41, 25, 186, 235, 221, 107, 113, 194, 183, 74, 196, 2, 65, 81, 59, 19, 177, 109, 209, 149, 46, 85, 44, 18, 82, 81, 177, 245, 62, 78, 5, 28, 23, 1, 123, 187, 209, 39, 86, 72, 200, 66, 125, 244, 188, 75, 203, 58, 242]) }, Event { key: EventKey([97, 177, 225, 134, 136, 163, 4, 89, 52, 59, 222, 108, 70, 112, 157, 124]), value: EventValue([159, 254, 5, 42, 182, 184, 205, 60, 0]) }, Event { key: EventKey([12, 253, 219, 69, 191, 23, 24, 244, 67, 16, 73, 196, 28, 104, 19, 15, 230, 143, 204, 121, 128, 215, 221, 84, 43, 177, 15, 203, 175, 62, 188, 212, 25, 123, 217, 212, 123, 249, 217, 200, 182, 193, 133]), value: EventValue([72, 29, 185, 72, 69, 137, 135, 247, 73, 101, 86, 88, 118, 174]) }, Event { key: EventKey([217, 230, 225, 223, 92, 191, 215, 172, 176, 233, 209, 201, 99, 243, 102, 108, 227, 24, 52, 111, 140, 79, 208, 54, 244, 184, 150, 97, 179, 40, 35, 138, 92, 182, 192, 252, 3, 246, 197, 151, 216, 138, 144, 233, 88, 22, 19, 163, 66, 136, 157, 233, 46, 36, 94, 175, 144, 212, 251, 129, 128, 36, 99, 149, 22, 32, 212, 202, 220, 18, 37, 216, 11, 111, 245, 213, 187, 151, 215]), value: EventValue([181, 204, 201, 84, 117, 26, 52, 254, 142, 121, 141, 90, 139, 167, 164, 3, 211, 134, 29, 186, 240, 85, 24, 246, 68, 47, 237, 86, 86, 168, 13, 225, 155, 55, 83, 135, 11, 212, 229, 252, 106, 172, 114, 86, 254, 210, 141, 109, 107, 255, 231, 16, 248, 91, 191, 26, 185, 205, 44, 159, 152, 109, 71, 129, 178, 162, 105, 182, 196, 156, 199, 143, 212, 12, 231, 38, 110, 153, 121, 66, 253, 190, 8, 172, 149, 58, 106, 126, 218, 146, 64, 102, 188, 150]) }, Event { key: EventKey([117, 45, 202, 137, 228, 53, 10, 152, 4, 0, 211, 235, 154, 223, 81, 167, 208, 164, 112, 40, 254, 19, 109, 255, 232]), value: EventValue([111, 100, 47, 228, 40, 82, 35, 82, 241, 138, 198, 238, 4, 61, 173, 42, 190, 120, 141, 201, 30, 156, 166]) }, Event { key: EventKey([118]), value: EventValue([182, 90, 210, 176, 208, 112, 129, 194, 117, 64, 240, 180, 141, 155, 81, 155, 151, 17, 73, 151, 200, 150, 145, 255, 203, 72, 213, 124, 129, 177, 164, 220, 115, 167, 131, 99, 93, 217, 236, 119, 212, 99, 211, 87, 45, 79, 65, 66, 251, 252, 181, 48, 188, 169, 36, 2, 157, 133, 20, 253, 143, 109, 140, 15, 2, 3]) }, Event { key: EventKey([15, 223, 251, 71, 41, 98, 111, 56, 34, 40, 3, 107, 83, 91, 253, 118, 11, 2, 157, 111, 63, 220, 138, 151, 29, 0, 123, 73, 29, 190, 255, 112, 79, 246, 230, 73, 18, 75, 214, 30, 65, 1, 47, 85, 95, 34, 28, 247, 141, 89, 145, 1, 13, 21, 59, 209, 109, 102, 201, 210, 139, 83, 25, 178, 79, 103, 187, 68]), value: EventValue([112, 180, 95, 97, 234, 227, 91, 184, 145, 87, 173, 123, 254, 143, 163, 208, 109, 97, 118, 172, 222, 122, 182, 57, 31, 223, 177, 192, 216, 26, 184, 222, 194, 64, 160, 180, 115, 229, 177, 100, 200, 50, 34]) }], receipt: 2379371517 }, TransactionReceipt { tx_hash: [174, 26, 135, 181, 168, 218, 123, 140, 193, 35, 65, 137, 247, 62, 214, 89, 219, 34, 6, 216, 220, 186, 232, 85, 96, 62, 28, 252, 8, 151, 135, 39], body_to_save: Some([59, 248, 137, 21]), events: [Event { key: EventKey([35, 203, 183, 140, 193, 206, 113, 210, 152, 152, 35, 89, 210, 20, 153]), value: EventValue([5, 22, 159, 121, 171, 76, 233, 172, 133, 127, 239, 33, 10, 169, 242, 145, 192, 214, 42, 119, 156, 81, 102, 204, 60, 41, 57, 252, 122, 20, 154, 153, 34, 134, 251, 218, 229, 118]) }, Event { key: EventKey([19, 63, 33, 141, 2, 15, 11, 248, 250, 84, 131, 69, 44, 135, 159, 229, 176, 57, 254, 196, 254, 132, 119, 143, 85, 218, 64, 153, 156, 68, 87, 255, 234, 112, 240, 154, 19, 126, 152, 108, 128, 227, 233, 250, 190, 139, 44, 103, 99, 242, 108, 229, 186, 7, 171, 141, 229, 97, 245, 112]), value: EventValue([1, 243, 205, 222, 204, 108, 206, 197, 203, 101, 34, 219, 154, 29, 167, 94, 89, 199, 64, 128, 137, 105, 55, 130]) }, Event { key: EventKey([132, 113, 165, 67, 50, 80, 8, 86, 61, 206, 25, 152, 216, 203, 118, 36, 54, 206, 175, 2, 184, 194, 201, 212, 164, 144, 244, 57, 197, 112, 33, 198, 204, 157, 46, 214, 215, 37, 87, 52, 0, 35, 234, 221, 60, 153, 122, 62, 18, 11, 157, 39, 235, 131, 109, 206, 133, 16, 224, 227, 114, 147, 239, 119, 70, 152, 195, 12, 49, 110, 138, 90, 178, 35, 201, 152, 211, 205, 59, 42, 102, 130, 236, 27, 51, 88, 24, 91, 10, 70, 48, 66, 59, 116, 194, 182, 246]), value: EventValue([208, 149, 54, 79, 60, 246, 213, 86, 13, 107, 90, 180, 62, 244, 34, 70, 167, 188, 80, 179, 144, 133, 213, 246, 94, 240, 150, 70, 193, 29, 69, 98, 47, 141, 57, 125, 154, 162, 252, 170, 192, 169, 254, 21, 119, 18, 139, 25, 35, 66, 115, 44, 149, 83, 24, 127, 63, 83, 19, 11, 166, 35, 203, 219, 216, 45, 245, 20, 86, 155, 233, 84, 164, 236, 173, 73, 75, 140, 23, 221, 160, 72, 248, 113, 78, 70, 196]) }, Event { key: EventKey([195, 251, 45, 146, 230, 56, 228, 219, 48, 43, 251, 237, 165, 46, 234, 99, 163, 82, 15, 48, 149, 123, 30, 43, 53, 13, 60, 9, 146, 153, 57, 169, 121, 5, 156, 79, 92, 156, 105, 64, 60, 155, 18, 242, 55, 188, 33, 131, 196, 232, 104, 125, 219, 140, 46, 132, 87, 6, 94, 124, 43, 26, 170, 218, 224, 109, 227, 230, 252, 24, 206, 141, 112, 128, 53, 125, 102, 242, 23, 62, 82, 189, 129, 49, 116, 64, 94, 254, 16, 106, 69, 160, 70, 254]), value: EventValue([105, 188, 63, 54, 58, 194, 81, 173, 82, 40, 65, 14, 158, 227, 121, 44, 120, 193, 77, 77, 93, 200, 167, 80, 92, 146, 213, 231, 60, 74, 42, 203, 2, 3, 146, 6, 171, 156, 240, 71, 156, 248, 39, 128, 124, 255, 5, 221, 107, 11, 214, 200, 64, 178, 163]) }], receipt: 4272726444 }, TransactionReceipt { tx_hash: [132, 120, 135, 148, 47, 53, 178, 16, 67, 195, 45, 63, 98, 180, 106, 169, 20, 44, 254, 234, 46, 14, 58, 99, 151, 74, 246, 120, 55, 65, 217, 57], body_to_save: Some([20, 149, 65, 108, 25, 160, 38, 44, 18, 98, 13, 63, 210, 246, 169, 251, 188, 102, 24, 98, 136, 14, 218, 215, 155, 38, 110, 26, 64, 68, 17, 34, 188, 138, 170, 67, 6, 160, 235, 186, 163, 217, 102, 190, 205, 143, 92, 134, 159, 173, 237, 23, 154, 209, 204, 144, 4, 44, 116, 183, 191, 238, 5, 3, 60, 226, 251, 79, 148, 70, 109, 228, 15, 85, 222, 65, 1, 216, 77, 209, 106, 15, 203, 253, 194, 171, 212, 134, 225, 190, 122, 252, 228, 119, 80]), events: [Event { key: EventKey([79, 14, 115, 79, 254, 54, 242, 82, 38, 17, 148, 217, 85, 125, 14, 78, 228, 160, 197, 162, 143, 175, 19, 203]), value: EventValue([234, 171, 176, 218, 9, 153, 172, 72, 58, 17, 42, 126, 10, 127, 119, 192, 5, 45, 44, 248, 55, 80, 67, 4, 59, 27, 93, 105, 87, 120, 135, 184, 119, 17, 169, 51, 242]) }, Event { key: EventKey([137, 160, 243, 71, 50, 101, 199, 129, 36, 195, 190, 134, 88, 204, 61, 230, 46, 108, 26, 118, 209, 73, 70, 108, 211, 45, 164, 147, 130, 43, 175, 240, 125, 241, 34, 20, 107, 138, 163, 112, 8, 166, 22, 229, 154, 250, 248, 81, 250, 221, 217, 91, 19, 109, 158, 66, 51, 28, 98, 172, 16, 141, 209, 192, 230]), value: EventValue([134, 136, 14, 237, 224, 228, 244, 125, 213, 126, 156, 46, 42, 207, 164, 37, 202, 3, 51, 46, 156, 0, 64, 242, 131, 145, 125, 209, 250, 121, 114, 231, 25, 125, 90, 9, 95, 155, 107, 23, 243, 209, 145, 144, 147, 214, 55, 30, 139, 50, 151, 126, 41, 207, 108, 72, 241, 178, 37, 135, 82, 161, 250, 226, 13, 6, 0, 183, 110, 254, 57, 192, 106, 37, 123, 40, 6, 93, 61, 37, 100, 79]) }, Event { key: EventKey([33, 252, 144, 115, 208, 138, 138, 117, 191, 166, 53, 7, 185, 76, 243, 228, 175, 180, 121, 28, 165, 87]), value: EventValue([182, 230, 200, 90, 213, 164, 84, 8, 118, 38, 10, 255, 240, 71, 60, 95, 224, 94, 27, 49, 93, 58, 121, 108, 225, 253, 245, 52, 196, 96, 174, 158, 75, 238, 59, 214, 76, 82, 136, 202, 186, 0, 156, 236, 34, 126, 91, 234, 140, 201, 96, 245]) }, Event { key: EventKey([106]), value: EventValue([190, 221, 109, 218, 91, 254, 125, 139, 123, 35, 135, 106, 163, 136, 80, 16, 32, 79, 191, 152, 212, 123, 8, 186, 76, 60, 76, 214, 96, 125, 100, 103, 147, 93, 71, 231, 10, 203, 192, 152, 102, 29, 100, 115, 138, 231]) }, Event { key: EventKey([17, 34, 255, 6, 85, 21, 179, 31, 104, 247, 163, 234, 118, 65, 92, 173, 182, 61, 253, 158, 53, 183, 132, 91, 208, 232, 240, 165, 123, 142, 19, 106, 148, 66, 127, 160, 45, 176, 227, 108, 92, 186, 111, 196, 66, 22, 185, 226, 159, 143, 64, 208, 181, 1, 33, 126, 205, 201, 223, 192, 188, 6, 60, 250, 242, 104, 133, 163, 135, 109, 150, 217, 7, 220, 95, 64, 11, 223, 253, 252, 187, 26, 152, 30, 100, 142, 108]), value: EventValue([57, 119, 201, 209, 182, 59, 126, 185, 140, 193, 149, 22, 14, 184, 85, 181, 205, 247, 21, 10, 82, 198, 87, 147, 4, 128, 55, 100, 28, 62, 45, 97, 246, 163, 89, 180, 52, 22, 190, 22, 2, 46, 81, 140, 111, 87, 10, 24, 157, 30]) }, Event { key: EventKey([174, 248, 161, 29, 195, 124, 202, 225, 43, 219, 29, 177, 127, 84, 14, 211, 3, 51, 57, 154, 135, 39, 240, 167, 193, 23, 111, 59, 106, 224, 14, 116, 0, 34, 105, 147, 179, 206, 197, 86, 40, 38, 195, 234, 87, 201, 71, 210, 126, 75, 219, 197, 11, 63, 230, 220, 196, 220, 213, 229, 184, 33, 124, 237, 215, 49, 100, 160, 5, 72, 101, 23, 137, 162, 112, 253, 20, 174, 176, 157, 254, 195, 107, 121, 118, 245, 100, 82, 180, 31, 94, 1]), value: EventValue([170, 0, 248, 1, 124, 14, 177, 58, 172, 173, 203, 23, 199, 14, 74, 57, 201, 52, 68, 241, 196, 117, 23, 91, 159, 140, 131, 204, 2, 71, 144, 254, 51, 62, 69, 238, 163, 179, 128, 214, 135, 126, 222, 96, 221]) }, Event { key: EventKey([0, 66, 78, 213, 53, 167, 122, 192, 154, 157, 234, 156, 135, 3, 218, 153, 187, 255, 14, 53, 225, 221, 248, 165, 134, 241, 216, 169, 157, 154, 136, 202, 109, 246, 82, 152, 158, 251, 40]), value: EventValue([185, 149, 230, 128, 235, 210, 210, 222, 19, 145, 129, 236, 253, 154, 77, 226, 128, 147, 70, 11, 15, 108, 122, 80, 146, 182, 74, 188, 19, 66, 75, 105, 252, 252, 5, 52, 42, 48, 17, 137, 40, 37, 184, 125, 45]) }], receipt: 2643355935 }, TransactionReceipt { tx_hash: [47, 180, 142, 133, 245, 196, 36, 47, 91, 39, 147, 182, 40, 194, 255, 81, 42, 13, 194, 10, 89, 220, 48, 31, 114, 254, 170, 96, 0, 53, 66, 224], body_to_save: Some([220, 250, 226, 130, 68, 208, 90, 9, 89, 123, 120, 90, 136, 198, 13, 214, 110, 24, 30, 252, 184, 65, 142, 101, 39, 219, 43, 232, 187, 251]), events: [Event { key: EventKey([82, 152, 141, 78, 88, 242, 176, 108, 197, 127, 246, 32, 117, 55, 15, 46, 254, 75, 232, 169, 222, 47, 51, 40, 49, 244, 174, 151, 163, 97, 7, 138, 61, 53, 193, 2, 139, 56, 255, 21, 184, 124, 205, 35, 184, 166, 53, 16, 59, 71, 168, 218]), value: EventValue([122, 49, 151, 147, 234, 102, 113, 69, 242, 78, 16, 231, 96, 5, 89, 233, 16, 242, 153, 179, 52, 180, 138, 57, 183, 160, 124, 22, 32, 27, 197, 179, 79, 31, 109, 98, 247, 204, 99, 115, 117, 26, 55, 246, 173, 251, 73, 252, 75, 7, 42, 226, 23, 33, 45, 10, 84, 188, 64, 246, 218, 97, 18, 145, 84, 198, 77, 82, 40, 214, 75]) }, Event { key: EventKey([169, 6, 174, 36, 205, 171, 69, 73, 22, 183, 133, 19, 41, 157, 176, 216, 133, 98, 169, 229, 201, 253, 136, 89, 164, 250, 44, 168, 216, 86, 132, 188, 47, 61, 156, 207, 142, 116, 122, 193, 65, 171, 80, 72, 243, 245, 73, 181, 41, 4, 14, 59, 192, 32, 151, 219, 136, 189, 38, 203, 88, 249, 226, 3, 112, 24, 207, 146, 135, 126, 31, 108, 24, 47, 92]), value: EventValue([46, 205, 202, 214, 149, 131, 251, 131, 6, 131, 74, 29, 68, 161, 73, 1, 189, 6, 28, 244, 161, 45, 169, 156, 50, 250, 74, 7, 254, 57, 76, 189, 63, 37, 80, 217, 101, 155, 3, 243, 102, 63, 162, 17, 21, 2, 50, 42, 61, 124, 67, 174, 165, 191, 67, 126, 73, 78, 99, 93, 92, 6, 255, 121, 241, 187, 72, 123, 108, 252]) }, Event { key: EventKey([54, 44, 140, 220, 136, 242, 140, 116, 213, 15, 145, 135, 156, 33, 118, 181, 87, 130, 180, 205, 35, 71, 93, 42, 46, 67, 166, 24, 112, 172, 206, 212, 239, 171, 102, 128, 175, 63, 27, 85, 3, 173, 113, 92, 62, 195, 87, 178, 173, 106, 138, 245, 167, 43, 135, 106, 82, 253, 54, 186, 217, 177, 145, 211, 221, 254, 97, 207, 157, 115, 57, 197, 6, 72, 64]), value: EventValue([171, 235, 158, 98, 41, 90, 92, 203, 241, 5, 2, 120, 26, 187, 100, 3, 231, 39, 48, 30, 42, 93, 226, 182, 103, 201, 142, 201, 179, 205, 65, 143, 92, 7, 61, 76, 161, 128, 153, 56]) }, Event { key: EventKey([41, 163, 59, 197, 99, 62, 72, 107, 140, 234, 127, 165, 124, 35, 255, 5, 255, 93, 144, 69, 63, 199, 153, 124, 114, 163, 139, 45, 112, 245, 65, 75, 43, 174]), value: EventValue([224, 69, 81, 249, 21, 99, 34, 177, 92, 199, 116, 60, 63, 169, 129, 42, 176, 184, 179, 167, 191, 45, 177, 84, 109, 113, 202, 151, 104, 226, 220, 235, 29, 245, 200, 143, 84, 209, 31, 84, 196, 75, 167, 26, 153, 168, 87, 87, 209, 6, 133, 175, 183, 81, 118, 74, 140, 94, 156, 67, 234, 197, 209, 94, 166, 146, 40, 225, 2, 60]) }, Event { key: EventKey([178, 105, 60, 240, 148, 194, 76, 54, 142, 51, 212, 49, 229, 217, 51, 10, 186, 104, 146, 188, 99, 198, 197, 223, 203, 199, 189, 173, 234, 82, 85, 20, 151, 25, 136, 74, 71, 238, 116, 76, 102, 18, 229, 193, 149, 133, 137, 188, 78, 56, 250, 235, 249, 193, 154, 228, 241, 243, 23, 144, 199, 94, 27, 254, 183, 129, 7, 7, 87, 28, 155, 137, 94, 223, 248, 31, 18, 84, 82, 253, 145, 136, 202, 155, 97, 168, 117, 214, 68, 59, 122, 217, 125, 128, 28, 251]), value: EventValue([195, 163, 175, 164, 137, 117, 158, 54, 182, 221, 36, 38, 70, 109, 39, 181, 91, 103, 188, 94, 84, 113, 187, 62, 16, 12, 72, 1, 142, 240, 119, 245, 34, 62, 139, 67, 102, 232, 232, 243, 125, 154, 112, 174, 40, 161, 38, 231, 146, 96, 225, 187, 214, 191, 136, 37, 194, 62, 96, 231, 210, 68, 188, 146, 128, 25, 42, 22, 228, 177, 79, 71, 183, 142, 160, 54, 185, 161, 214, 187, 218, 6, 210]) }, Event { key: EventKey([59, 165, 158, 6, 97, 50, 253, 57, 4, 19, 53, 131, 37, 183, 42, 209, 161, 148, 96, 51, 33, 153, 94, 25, 134, 108, 82, 242, 215, 144, 25, 80, 175, 210, 122, 96, 185, 171, 144, 150, 100, 188]), value: EventValue([16, 29, 60, 14, 236, 184, 201, 33, 34, 166, 240, 24, 153, 58, 172, 15, 219, 76, 211, 198, 214, 158, 58, 57, 198, 64, 168, 123, 188, 208, 20, 152, 155, 114, 92, 183, 151]) }, Event { key: EventKey([136, 135, 125, 219, 251, 167, 94, 163, 165, 22, 99, 242, 174, 255, 46, 22, 133, 109, 139, 217, 192, 96, 201, 147, 126, 211, 202, 243, 7, 81, 54, 4, 208, 226, 157, 226, 144, 84]), value: EventValue([149, 77, 157, 13, 9, 179, 163, 93, 149, 253, 76, 48, 103, 103, 35, 74, 84, 46, 9, 18, 38, 146, 209, 80, 160, 141, 140, 49, 170, 182, 165, 67, 86, 5, 78, 126, 223]) }, Event { key: EventKey([251, 37, 96, 5, 73, 173, 86, 186, 142, 230, 231]), value: EventValue([181, 186, 102, 220, 152, 48, 171, 97, 251, 32, 112, 186, 130, 124, 108, 33, 15, 152, 69, 34, 71, 240, 94, 51, 35, 233, 37, 75, 43, 41, 198, 246, 163, 11, 172, 3, 198, 31, 29, 170, 104, 129, 98, 45, 137, 5, 189, 195, 197, 23, 49, 120]) }, Event { key: EventKey([197, 23, 255, 164, 106, 35, 74, 33, 99, 139, 41, 15, 250, 226, 192, 146, 54, 52, 108, 14, 123, 174, 167, 196, 124, 150, 112, 123, 98, 155, 25, 125, 247, 244, 204, 67, 34, 44, 170, 101, 56, 230, 67, 13, 117, 233, 114, 253, 178, 84, 238, 9, 226, 212, 41]), value: EventValue([88, 86, 43, 153, 119, 202, 8, 2, 204, 3, 49, 217, 217, 23, 239, 54, 215, 236, 217, 222, 60, 102, 33, 52, 154, 58, 11, 120, 192, 184, 31, 85, 46, 159, 15, 94, 203, 75, 177, 27, 115, 147, 211, 22, 112, 246, 9, 186, 234, 102, 89, 34, 102, 46, 114, 177, 148, 222, 248, 230, 193, 168, 199, 218, 108, 158, 184, 82, 221, 106, 31, 160, 219, 10, 235, 64, 158, 14, 255, 44, 253, 240, 38, 106, 93, 209, 12, 35, 153, 147, 85, 29, 18, 55, 186, 147, 82]) }], receipt: 1533796658 }, TransactionReceipt { tx_hash: [159, 237, 121, 154, 215, 236, 143, 103, 163, 200, 239, 130, 173, 184, 204, 234, 168, 81, 197, 30, 0, 74, 62, 24, 114, 125, 210, 242, 14, 203, 74, 132], body_to_save: None, events: [Event { key: EventKey([189, 142, 8, 255, 80, 192, 134, 52, 210, 216, 201, 166, 206, 178, 230, 7, 246, 136, 116, 150, 122, 217, 24, 159, 230, 61, 216, 137, 67, 250, 235, 58, 211, 75, 120, 178, 41, 160, 242, 82, 135, 51, 210]), value: EventValue([47, 193, 135, 40, 231, 173, 2, 13, 45, 125, 233, 163, 106, 218, 137, 206, 251, 148, 73, 239, 224, 75, 133, 156, 185, 168, 29, 57, 180, 218, 221, 1, 29, 142, 42, 64, 113, 220, 210, 117, 171, 173, 190, 90, 245, 117, 238, 45, 33, 75, 89, 189, 146, 153, 94, 177, 5, 56, 16, 179, 181, 35, 23, 113, 199, 209, 83, 247, 186, 8, 208, 147, 132, 166, 182, 239, 112, 203, 204, 28, 160]) }, Event { key: EventKey([240, 5, 157, 170, 86, 109, 115, 15, 151, 239, 180, 121, 51, 80, 204, 154, 61, 171, 110, 49, 160, 0, 229, 255, 201, 103, 135, 96, 43, 215, 108, 187, 114, 82, 130, 189, 118, 133, 144, 191, 152, 4, 109, 224, 10, 246, 35, 116, 148, 4, 25, 144, 189, 178, 63, 176, 229, 105, 135, 123, 197, 68, 120, 189, 111, 192, 41, 195, 242, 147, 237, 3, 185, 136, 237, 50, 223, 53, 113, 232, 91]), value: EventValue([117, 182, 12, 216, 39, 59, 186, 252, 74, 171, 6, 34, 58, 111, 160, 204, 245, 19, 44, 109]) }, Event { key: EventKey([15, 82, 23, 18, 176, 235, 138, 64, 223, 129, 165, 193, 180, 22, 174, 227, 224, 46, 69, 53, 142, 155, 212, 220, 52, 130, 67, 202, 93, 151, 99, 56, 163, 139, 182, 68, 22, 207, 48, 196, 39, 207, 69, 198, 43, 136, 243, 35, 202, 159, 40, 224, 113, 124, 26, 44, 17, 233, 45, 117, 197, 113, 0, 14, 131, 229, 16, 116, 95, 11, 207, 136, 188, 189, 239, 79, 114, 91, 115, 31, 68, 83, 106]), value: EventValue([127, 171, 16, 157, 213, 198, 195, 219, 133, 235, 72, 27, 95, 6, 89, 35, 81, 218, 170, 13, 115, 172, 216, 234, 150, 110, 0, 57, 212, 26, 30, 26, 254, 32, 66, 9, 158, 95, 244, 39, 179, 192, 56, 19, 27, 20, 205, 244, 110, 40, 114, 192, 114, 234, 153, 75, 64, 59, 105, 13, 228, 28, 24, 116, 118, 244, 243, 170, 22, 233, 97, 130, 2, 217, 3, 133, 164, 163, 75, 113, 188, 106, 62, 43, 134, 115, 45, 219, 184, 67, 81, 224, 195]) }], receipt: 2791190337 }, TransactionReceipt { tx_hash: [24, 64, 98, 196, 62, 219, 66, 247, 140, 123, 245, 144, 243, 99, 208, 103, 14, 11, 171, 191, 10, 11, 154, 94, 67, 251, 71, 234, 129, 18, 73, 166], body_to_save: None, events: [], receipt: 974621015 }, TransactionReceipt { tx_hash: [252, 235, 54, 112, 146, 174, 90, 98, 210, 168, 93, 93, 231, 160, 23, 27, 109, 251, 183, 143, 111, 126, 210, 26, 128, 241, 12, 24, 136, 99, 167, 58], body_to_save: Some([94, 195, 8, 24, 73, 38, 110, 155, 59, 248, 173, 226, 37, 144, 25, 200, 180, 90, 38, 82, 145, 189, 106]), events: [Event { key: EventKey([100, 83, 192, 235, 147, 238, 36, 47, 162, 37, 143, 34, 53, 50, 7, 72, 182, 8, 123, 240, 221, 107, 176, 60, 232, 166, 220, 127]), value: EventValue([94, 231, 17, 176, 217, 115, 158, 33, 117, 229, 92, 247, 151, 210, 107, 123, 12, 38, 137, 129, 68, 156, 112, 197, 117, 169, 95, 201, 168, 245, 218]) }, Event { key: EventKey([28, 6, 59, 143, 222, 26, 251, 98, 96, 109, 66, 177, 207, 75, 47, 210, 43, 237, 205, 139, 145, 38, 33, 178, 201, 32, 22, 13, 206, 171, 209, 68, 65, 238, 11, 208, 223, 109, 59, 130, 68, 106]), value: EventValue([12, 162, 6, 117, 72, 153, 156, 160, 22, 186, 80, 38, 49, 117, 203, 149, 186, 104, 85, 145, 16, 204, 201, 74, 0, 157, 129, 110, 38, 234, 102, 212, 126, 152, 54, 31, 146, 210, 29, 92, 221, 81, 167, 113, 101, 225, 196, 242, 135, 24]) }, Event { key: EventKey([45, 226, 185, 180, 248, 237, 101, 233, 241, 244, 158, 49, 96, 120, 7, 118, 160, 187, 222, 25, 72, 212, 174, 68, 104, 165, 227, 75, 192, 243, 133, 65, 51, 171, 230, 113, 40, 103, 155, 36, 7, 107, 156, 17, 243, 178, 99, 52, 103, 42, 89, 3, 67, 180, 76, 246, 213, 168, 207, 242, 145, 93, 242, 119, 48, 227, 254, 82, 55, 109, 68, 81, 134, 222, 109, 85, 175, 230, 73, 130, 213, 199, 90, 133, 88, 38, 48, 17, 247, 159, 182, 28, 56, 241, 44]), value: EventValue([143, 116, 59, 213, 172, 163, 250, 227, 159, 185, 250, 31, 245, 78, 15, 179, 114, 93, 255, 119, 164, 47, 186, 90, 56, 66, 10, 253, 165, 84]) }, Event { key: EventKey([113, 176, 69, 216, 106, 185, 119, 224, 241, 159, 186, 212, 196, 175, 27, 201, 21, 241, 33, 85, 238, 222, 173, 184, 12, 189, 145, 150]), value: EventValue([44, 216, 238, 78, 160, 68, 186, 33, 136, 131, 115, 210, 188, 246, 10, 104, 221, 103, 153, 26, 239, 213, 106, 52, 176, 29, 84, 241, 67, 69, 137, 149, 246, 103, 9, 226, 114, 135, 51, 215, 204, 193, 131, 223, 82, 197, 175, 234, 37, 232, 242, 90, 148, 119, 106, 84, 41, 74, 214, 77, 92, 223, 11, 235, 253, 122, 80, 115, 124, 19, 42, 32, 55, 24, 147, 172, 124, 137, 245, 136, 173, 175, 14, 204, 184, 79, 129, 20, 8, 102, 246, 29, 34, 159]) }, Event { key: EventKey([114, 169, 20, 10, 133, 39, 13, 70, 189, 117, 82, 202, 79, 253]), value: EventValue([77, 135, 176, 176, 190, 254, 48, 128, 174, 224, 81, 35, 74, 9, 98, 244, 200, 195, 160, 87, 84, 139, 57]) }, Event { key: EventKey([142, 111, 246, 163, 81, 231, 80, 38, 114, 139, 5, 67, 70, 158, 194, 100, 113, 186, 138, 176, 153, 237, 54]), value: EventValue([34, 115, 234, 71, 246, 88, 144, 110, 13, 197, 189, 248, 160, 41, 1, 248, 21, 106, 170, 166, 231, 48, 91, 220, 67, 198, 78, 142, 85, 40, 152, 124, 209, 20, 91, 3, 100, 156, 143, 250, 61, 253, 156, 254, 38, 244, 235, 146, 192, 86, 123, 50, 234, 203, 224, 16, 207, 44, 141, 221, 19]) }, Event { key: EventKey([218, 250, 229, 59, 15, 24, 162, 128, 38, 236]), value: EventValue([214, 254, 46, 93, 171, 162, 52, 248, 187, 129, 122, 62, 9, 251, 103, 71, 136, 191, 139, 241, 110, 26, 92, 134, 23, 107, 83, 255, 117, 72, 78, 98, 169, 241, 176, 46, 87, 70, 194, 47, 167, 128, 66, 125, 165, 238, 231, 1, 177, 12, 213, 70, 60, 15]) }, Event { key: EventKey([108, 241, 111, 135]), value: EventValue([147, 157, 236, 35, 146, 9, 166, 240, 154, 189, 115, 213, 227, 116, 98, 18, 134, 171, 235, 191, 25, 249, 98, 177, 54, 76, 124, 128, 138, 189, 105, 129, 154, 212, 127, 61, 125, 8, 30, 36, 232]) }], receipt: 155191285 }], inner: 4147714980 }], num_txs: 7, num_events: 38 }, SlotCommit { slot_data: TestBlock { curr_hash: [137, 142, 125, 145, 246, 20, 255, 86, 70, 205, 210, 73, 5, 88, 63, 122, 94, 26, 18, 36, 10, 32, 3, 46, 250, 232, 21, 102, 43, 195, 127, 178], header: TestBlockHeader { prev_hash: TestHash([209, 32, 45, 22, 181, 107, 240, 116, 75, 253, 210, 62, 39, 104, 168, 24, 10, 32, 22, 25, 136, 131, 50, 71, 20, 137, 121, 137, 26, 95, 227, 88]) } }, batch_receipts: [BatchReceipt { batch_hash: [154, 19, 2, 238, 69, 103, 5, 102, 60, 214, 83, 222, 139, 183, 223, 202, 204, 214, 134, 22, 157, 210, 236, 167, 202, 129, 180, 41, 11, 31, 55, 76], tx_receipts: [TransactionReceipt { tx_hash: [166, 140, 191, 153, 118, 25, 153, 199, 118, 229, 40, 151, 217, 146, 54, 128, 204, 213, 35, 21, 65, 142, 250, 203, 147, 9, 117, 126, 70, 126, 107, 119], body_to_save: Some([38, 173, 116, 27, 17, 126, 242, 221, 154, 169, 234, 162, 128, 203, 196, 17, 55, 170, 97, 119, 225, 5, 60, 163, 15, 128, 177, 152, 121, 114, 210, 188, 28, 228, 233, 180, 43, 210, 50, 195, 70, 39, 143, 134]), events: [Event { key: EventKey([227, 67, 45, 119, 33, 155, 21, 108, 240, 57, 19, 193, 131, 130, 159, 22, 42, 156, 2, 221, 144, 158, 181, 85, 118, 253, 60, 104, 151, 79, 157, 158, 210, 165, 209, 38, 2, 191, 58, 52, 77, 102, 99, 142, 129, 88, 235, 49, 197, 180, 105, 46, 62, 129, 132, 102, 240, 94, 160, 210, 69, 171, 158, 173, 136, 17, 114, 156, 117, 26, 57, 175, 6, 154, 209, 159, 211, 91, 202, 193, 104, 188, 168, 155, 3, 168, 151, 124, 165, 185, 6, 33, 163, 126, 55, 229, 147, 179]), value: EventValue([219, 229, 159, 137, 237, 193, 117, 115, 111, 165, 122, 1, 232, 13, 153, 77, 221, 115, 225, 117, 241, 148, 203, 104, 212]) }, Event { key: EventKey([239, 35, 23, 202, 197, 68, 90, 130, 194, 169, 63, 145, 160, 247, 4, 22, 227, 52]), value: EventValue([65, 76, 250, 80, 57, 10, 40, 52, 190, 81, 123, 239, 175, 204, 119, 182, 226, 225, 220, 43, 43, 232, 92, 175, 54, 200, 148, 164, 219, 190, 172, 148, 194, 12, 54, 29, 0, 91, 81, 195, 31, 91, 219, 91, 212, 115, 196, 137, 79, 24, 2, 76, 85, 152, 31, 187, 199, 181, 221, 13, 24, 88, 43, 211, 14, 38, 241, 12, 132, 175, 223, 207]) }, Event { key: EventKey([225, 40, 119, 46, 147, 247, 223, 10, 140, 97, 181, 94, 23, 127, 20, 29, 222, 183, 124, 168, 145, 3, 14, 138, 216, 140, 106, 177, 151, 168, 175, 146, 177, 95, 237]), value: EventValue([121, 3, 68, 248, 183, 12, 218, 28, 9, 130, 55, 7, 16, 215, 145, 153, 216, 139, 168, 143, 162, 209, 167, 110, 182, 165, 43, 28, 16, 210, 85]) }, Event { key: EventKey([68, 88, 39, 36, 33, 208, 52, 212, 13, 47, 61, 45, 234, 114, 157]), value: EventValue([224, 249, 204, 113, 93, 65, 94, 100, 147, 227, 111, 240, 208, 113, 184, 214, 17, 212, 49, 11, 8, 130, 236, 232, 115, 149, 121, 138, 139, 68, 150, 70, 233, 237, 205, 156, 4, 216, 169, 26, 77, 130, 195, 100, 110, 14, 122, 66, 49, 249, 16, 157, 175, 240, 212, 139, 153, 205, 35, 139, 34, 208, 102, 236, 249, 209, 78, 113, 149, 8, 188, 147, 37, 100, 158, 45, 87, 137, 55, 166, 216, 238, 126, 1, 85, 218, 62, 250, 177, 207]) }, Event { key: EventKey([135, 241, 30, 230, 186, 207, 176, 31, 25]), value: EventValue([98, 118, 227, 81, 186, 94, 170]) }, Event { key: EventKey([109, 28, 47, 87]), value: EventValue([]) }, Event { key: EventKey([171, 43, 130, 241, 179, 55, 146, 10, 219, 209, 109, 28, 20, 213, 33, 22, 55, 207, 69, 183, 137, 160, 149, 77, 188, 247, 43, 47, 128, 232, 74, 100, 124, 169, 209, 15, 108, 131, 213, 142, 41, 66, 200, 135, 124, 33, 152, 229, 98, 168, 166, 207, 80, 152, 91, 197, 240, 7, 98, 77, 165, 50, 98, 17, 69, 99, 90, 210, 216, 88, 115, 50]), value: EventValue([7, 192, 19, 62, 224, 240, 253, 160, 5, 63, 131, 129, 107, 94, 37, 196, 14, 185, 175, 23, 28, 205]) }, Event { key: EventKey([33, 76, 136, 160, 200, 99, 159, 197, 251, 61, 71, 113, 146, 15, 8, 248, 80, 201, 111, 19, 26, 11, 95, 198, 78, 57, 98, 100, 59, 142, 181, 111, 254, 202, 51, 167, 181, 201, 215, 116, 17, 173, 92, 189, 53, 11, 165, 171, 227, 215, 110, 115, 69, 155, 7]), value: EventValue([20, 143, 223, 122, 240, 225, 97, 136, 203, 123, 157, 222, 242, 155, 32, 26, 100, 84, 3, 223, 73, 240, 237, 252, 245, 3, 155, 96, 155, 155, 181, 170, 67, 81, 41, 210, 168, 118, 227, 192, 248, 186, 143, 147, 246, 62, 148, 72, 42, 211, 67, 215, 133]) }, Event { key: EventKey([185, 186, 83, 137, 90, 75]), value: EventValue([244, 89, 191, 72, 144, 98, 103, 76, 88, 61, 87, 18, 153, 88, 154, 152, 47, 193, 191, 232, 24, 95, 124, 59, 216, 14, 136, 5, 79, 7, 6, 129, 107, 59, 17, 148, 75, 14, 9, 94, 20, 140, 65, 245, 40, 198, 81, 226, 193, 54, 97, 82, 7, 208, 216, 214, 80, 172, 103, 67, 11, 201, 172, 44, 182, 212, 201, 65, 150, 6, 190, 159, 26, 127, 170, 153, 102, 41, 20, 216, 25, 213, 186, 181, 133, 142, 114, 130, 20, 162, 15, 52, 49, 150, 107, 20, 245, 133, 4]) }], receipt: 1291622908 }, TransactionReceipt { tx_hash: [76, 188, 20, 91, 54, 101, 13, 29, 51, 246, 146, 55, 106, 170, 136, 251, 11, 108, 20, 80, 206, 119, 140, 110, 111, 148, 154, 89, 165, 213, 103, 227], body_to_save: Some([93, 163, 249, 94, 121, 207, 151, 106, 144, 30, 40, 215, 124, 77, 193, 91, 211, 200, 189, 1, 245, 206, 111, 15, 152, 127, 156]), events: [], receipt: 776024554 }, TransactionReceipt { tx_hash: [142, 72, 167, 224, 247, 101, 135, 35, 154, 42, 241, 124, 119, 198, 25, 156, 104, 88, 186, 85, 199, 2, 175, 149, 66, 4, 164, 117, 170, 206, 21, 80], body_to_save: None, events: [Event { key: EventKey([222, 196, 212, 82, 197, 133, 85, 33, 213, 84, 242, 94, 171, 234, 77, 216, 49, 219, 254, 246, 226, 206, 91, 253, 142, 222, 23, 135, 170, 128, 196, 131, 40, 69, 68, 51, 109, 240, 249, 161, 135, 58, 220, 144, 26, 153, 145, 71, 79, 14, 232, 115, 205, 255, 181, 71, 28, 228, 218, 173, 121, 239, 193, 67, 204, 158, 28, 188, 228, 125, 7, 3, 54]), value: EventValue([55, 32, 71, 25, 145, 156, 2, 212, 128, 67, 121, 92, 26, 148, 254, 146, 30, 81, 21, 42, 139, 55, 154, 139, 111, 177, 188, 246, 48, 154, 248, 156, 35, 144, 201, 151, 186, 138, 35, 138, 246, 213, 59, 70, 246, 210, 238, 143, 226, 227, 169, 28, 2, 27, 222, 152, 222, 114, 94, 170, 117, 234, 113, 15, 92, 123, 37, 77, 29, 82, 241, 241, 13, 32, 104, 153, 185, 206, 254, 22, 135]) }, Event { key: EventKey([35, 95, 151, 4, 208, 161, 238, 162, 178, 234, 71, 49, 234, 103, 102, 217, 207, 239, 103, 25, 83, 1, 165, 68, 75, 48, 218]), value: EventValue([84, 75, 201, 3, 14, 215, 18, 11, 227, 255, 66, 119, 113, 212, 47, 38, 15, 200, 175, 226, 93, 134, 235, 77, 171, 161, 198, 22, 126, 129, 48, 5, 192, 43, 114, 219, 46, 13, 172, 102, 133, 252, 181, 244, 50, 148, 20, 48, 69, 59, 31, 168, 207, 31, 59, 227, 100, 177, 33, 182, 179, 78, 26, 25, 232, 47, 105, 0, 59, 206, 225, 40, 247, 15, 190, 154, 59]) }, Event { key: EventKey([120, 15, 123, 197, 215, 19, 228, 78, 201, 156, 244, 251, 233, 215, 218, 44, 185, 216, 192, 167, 181, 178, 95, 45, 225, 112, 250, 191, 252, 101, 168, 193, 206, 137, 134, 90, 82, 76, 6, 120]), value: EventValue([180, 0, 212, 25, 236, 151, 192, 202, 93, 237, 241, 230, 214, 192, 35, 95, 109, 205, 115, 196, 87, 29, 0, 100, 205, 206, 212, 77, 249, 172, 186, 243, 157, 199, 178, 89, 59, 187, 230, 101, 111, 5, 22, 60, 160, 228, 239, 157, 177, 147, 188, 178, 117, 166, 65]) }, Event { key: EventKey([221, 47, 86, 188, 190, 209, 7, 12, 184, 7, 249, 141, 247, 236, 136, 51, 198, 32, 190, 248, 196, 222, 182, 131, 240, 136, 66, 76, 124, 56, 203, 82, 124, 111, 73, 25, 8, 144, 86, 172, 142, 48, 229, 167, 156, 54, 25, 160, 215, 82, 109, 60, 215]), value: EventValue([39, 104, 7, 40, 85, 37, 111, 1, 166, 2, 251, 224, 114, 153, 176, 201, 7, 224, 195, 132, 42, 10, 242, 198, 234, 135, 100, 221, 120, 182, 86, 147, 142, 114, 251, 145, 90, 60, 201, 119, 88, 159, 8, 3, 42, 134, 164, 184, 188, 11, 237, 211, 148, 136, 203, 186, 158, 84, 207, 23, 128, 116, 63, 0, 45, 58, 173, 130, 109, 43, 234, 15, 133, 100, 141, 170, 77, 8, 51, 203, 214, 136, 88, 78, 100, 153, 142, 27, 154, 85, 12, 81, 227]) }, Event { key: EventKey([48, 155, 177, 190, 171, 208, 243, 133, 133, 135, 162, 14, 245, 21, 119, 132, 167, 225, 8, 218, 198, 211, 125, 243, 127, 55, 0, 48, 103, 75, 43, 228, 68, 47, 16, 177, 40, 124, 84]), value: EventValue([119, 252, 124, 209, 62, 244, 235, 231, 222, 147, 72, 66, 194, 181, 73, 253, 118, 152, 108, 197, 182, 47, 121, 102, 139, 223, 157, 245, 161, 26, 251, 27, 210, 50, 112, 102, 56, 243, 239, 64, 62, 193, 147, 32, 182, 112, 147, 38, 50, 170, 57, 11, 5, 247, 2, 9, 251, 194, 59, 87, 227, 15, 116, 123, 90, 161, 148, 216, 49, 41, 144, 10, 94, 2, 109, 223, 139, 38, 129, 187, 143, 217]) }, Event { key: EventKey([140, 88, 5, 234, 113, 232, 0, 6, 19, 103, 65, 125, 91, 85, 132, 180, 111, 11, 130, 96, 12, 248, 195, 181, 2, 245, 123, 235, 124, 177, 112, 27, 91, 163, 87, 82, 187, 85, 71, 65, 184, 1, 98, 230, 125, 189, 72, 215, 211, 241, 222, 136, 154, 67, 144, 3, 90, 54, 230, 117, 39, 11, 184, 209, 236, 145, 10, 137, 87, 78, 3, 83, 108, 242, 46, 207, 104, 96, 21, 246, 154, 37, 128, 152, 10, 167, 37, 246, 138]), value: EventValue([189, 211, 175, 60, 89, 120, 245, 83, 72, 98, 28, 21, 218, 37, 120, 155, 186, 182, 123, 148, 222, 249, 7, 42, 209, 80, 57, 223, 237, 236, 164, 159, 225, 13, 192, 50, 190, 105, 185, 234, 71, 64]) }, Event { key: EventKey([18, 163, 104, 85, 102, 79, 247, 142, 178, 156, 26, 119, 102, 140, 35, 18, 223]), value: EventValue([25, 27, 18, 153, 153, 243, 184, 221, 225, 90, 237, 233, 247, 172, 181]) }], receipt: 2232582709 }, TransactionReceipt { tx_hash: [20, 234, 124, 170, 121, 31, 73, 228, 136, 138, 227, 246, 206, 165, 13, 119, 218, 25, 163, 42, 108, 41, 181, 247, 110, 3, 94, 221, 129, 250, 2, 152], body_to_save: Some([196, 196, 23, 134, 182, 60, 210, 147, 16, 56, 72, 176, 138, 121, 88, 111, 111, 1, 138, 7, 39, 255, 16, 35, 190, 145, 58, 102, 231, 234, 52, 119, 128, 255, 34, 226, 157, 10, 53, 66, 116, 42, 211, 28, 82, 46, 47, 60, 116, 31, 65, 137, 153, 192, 90, 94, 61, 28, 200, 233, 171, 64, 166, 189, 153, 130, 42, 143, 81, 177, 134, 168, 54, 33, 197, 69, 154, 39, 86, 245, 124, 206]), events: [Event { key: EventKey([31, 238, 1, 153, 72, 32, 99, 46, 34, 172, 87, 164, 212, 80, 152, 115, 91, 50, 68, 84, 170, 175, 214, 122, 182, 209, 142, 77, 161, 217, 118, 104, 7, 16, 84, 4, 1, 17, 4, 124, 3, 206, 105, 53, 86, 213, 87, 223, 137, 245, 168, 34, 248, 212, 119, 31, 245, 107, 27, 32, 41, 27, 143, 162, 186, 103, 175, 114, 168, 10, 58, 56, 110, 25, 147, 83, 19, 15, 234, 74]), value: EventValue([110, 177, 60, 236, 248, 44, 69, 166, 83, 94, 61, 226, 169, 116, 78, 88, 41, 152, 107, 162, 3, 99, 155, 85, 157, 229, 149, 175, 210, 159, 215, 208, 125, 185, 216, 63, 165, 125, 177, 92, 105, 127, 111, 213, 192, 12, 103, 9, 141, 154, 152, 182, 181, 67, 231, 20, 114, 249, 143, 29, 210, 126, 183, 182, 35, 155, 111, 90, 69, 109, 94, 32, 52, 188, 117, 59, 27, 165, 128, 57, 80, 227, 197, 166, 203, 113, 68, 131, 58, 153, 115, 239, 165, 231, 90, 165, 210, 24, 178]) }, Event { key: EventKey([194, 251, 140, 209, 167, 2, 116, 127, 235, 56, 43, 143, 146, 77, 74, 247, 187, 25, 88, 0, 210, 126, 205, 130, 121, 219, 2, 203, 195, 199, 18, 95, 87, 237, 111, 233, 255, 77, 44, 189, 162, 83, 220, 254, 247, 49, 149, 104, 94, 81, 234, 203, 74, 104, 106, 17, 173, 4, 244, 65, 13, 223, 12, 70, 226, 151, 18, 150, 8, 82, 25, 181]), value: EventValue([120, 113, 62, 26, 172, 231, 134, 39, 127, 163, 109, 144, 41, 132, 13, 105, 107, 134, 156, 238, 53, 151, 10, 24, 246, 151, 206, 151, 224, 241, 125, 105, 216, 50, 231, 161, 233, 194, 36, 42, 208, 182, 10, 95, 234, 75, 28, 249, 117, 57, 37, 78, 169, 196, 179, 98, 133, 202, 164, 10, 180, 31, 214, 153, 133, 81, 113, 210, 218]) }, Event { key: EventKey([195, 52, 210, 104, 148, 99, 112, 191, 90, 165, 101, 149, 145, 119, 107]), value: EventValue([25, 166, 154, 82, 106, 86, 186, 219, 8, 15, 169, 180, 107, 152, 182, 38, 255, 216, 129, 42, 107, 8, 175, 101, 178, 44, 6, 41, 228, 194, 135, 240, 77, 154, 130, 56, 33, 17, 203, 142, 243, 235, 196, 109, 135, 74, 63, 114, 164, 155, 123, 35, 38, 253, 222, 204, 232, 114, 142, 90, 152, 79, 157, 214, 44, 163, 199, 170, 153, 22, 156, 101, 85]) }, Event { key: EventKey([26, 82, 58, 48, 85, 218, 163, 176, 207, 229, 107, 248, 203, 225, 4, 12, 132, 235, 77, 74, 170, 140, 198, 30, 40, 0, 120, 217, 207, 121, 208, 126, 28, 239, 174, 9, 74, 200, 124, 95, 0, 3, 194, 135, 56, 186, 218, 214, 240, 179, 27, 87, 247, 148, 208, 199, 215, 185, 208, 66, 199, 251, 139, 229, 57, 160, 54, 135, 242, 124, 93, 35, 182, 1, 62, 255, 134, 179, 222, 207, 235, 102, 248, 145, 214, 95, 243, 16]), value: EventValue([78, 47, 40, 16, 82, 55, 140, 17, 21, 41, 29, 105, 76, 119, 213, 172, 46, 79, 231, 124, 84, 239, 92, 234, 244, 43, 219, 175, 68, 254, 136, 76, 85, 12, 85, 110, 10, 158, 254, 164, 151, 190, 46, 155, 225, 233, 132, 222, 49, 218, 70, 246, 173, 219, 237, 195, 38, 47, 194, 56, 209, 204, 186, 90, 217, 45, 21, 246, 22, 133, 57, 222, 200, 242, 42, 29, 175, 131, 95, 142, 101]) }, Event { key: EventKey([137, 71, 24, 227, 133, 87, 184, 154, 177, 159]), value: EventValue([53, 58, 15, 208, 37, 153, 142, 116, 216, 154, 107, 224, 247, 9, 227, 184, 115, 80, 48, 175, 76, 22, 11, 85, 128, 67, 109, 177, 229, 60, 94, 101, 127, 1, 227, 255, 168, 173, 95, 20, 3, 52, 213, 83, 229, 82, 97, 94, 52, 19, 157, 95, 53, 150, 34, 4, 203, 8, 97, 214, 179, 222, 133, 136, 118, 222, 152, 197, 197, 58]) }], receipt: 955469977 }, TransactionReceipt { tx_hash: [148, 192, 90, 183, 5, 172, 216, 129, 183, 22, 129, 254, 235, 88, 139, 156, 224, 31, 30, 14, 113, 20, 217, 92, 195, 77, 152, 84, 145, 158, 207, 37], body_to_save: Some([36, 157, 130]), events: [Event { key: EventKey([253, 214, 49, 204, 195, 211, 37, 58, 248, 89, 62, 57, 69, 239, 90, 249, 4, 86, 221, 173, 63, 217, 222, 133, 105, 156, 4, 158, 236, 50, 76, 39, 131, 92, 109, 161, 252, 203, 239, 124, 240, 219, 167, 245, 127, 152, 2]), value: EventValue([60, 49, 146, 175, 73, 29, 222, 226, 115, 244, 253, 60, 92, 217, 205, 180, 251, 94, 97, 104, 217, 211, 252, 133, 77, 246, 77, 107, 248, 53]) }, Event { key: EventKey([168, 57, 178, 139, 247, 3, 235, 208, 194, 49, 30, 248, 213, 56, 145]), value: EventValue([250, 31, 223, 140, 41, 91, 44, 64, 1, 251, 49, 215, 37, 102, 209, 242, 134, 33, 103, 44, 232, 179, 85, 8, 81, 79, 220, 3, 30, 166, 174, 182, 153, 11, 254, 48, 48, 210, 106, 153, 58, 245]) }, Event { key: EventKey([192, 74, 99, 8, 190, 167, 44, 205, 128, 164]), value: EventValue([16, 37, 81, 50, 160]) }, Event { key: EventKey([116, 93, 209, 177, 170, 24, 13, 2, 169, 96, 157, 6, 111, 135, 149, 82, 4, 192]), value: EventValue([230, 68, 161, 142, 78, 167, 62, 86, 129, 248, 244, 119, 137, 77, 115, 201, 145, 179, 151, 55, 40, 84, 175, 168, 237, 45, 170, 94, 239, 176, 4, 227, 104, 94, 194, 239, 92, 103, 184, 246, 118, 154, 97, 64, 137, 213, 9, 95]) }], receipt: 905701037 }, TransactionReceipt { tx_hash: [11, 40, 58, 179, 44, 100, 131, 103, 70, 246, 172, 12, 0, 173, 246, 213, 254, 95, 4, 46, 106, 99, 156, 156, 244, 177, 108, 95, 217, 119, 130, 16], body_to_save: None, events: [Event { key: EventKey([48, 96, 70, 163, 138, 220, 13, 50, 170, 112, 16, 80, 63, 218, 207, 26, 165, 9, 28, 187, 30, 55, 103, 231, 94, 153, 65, 179, 184, 120, 154, 178, 37, 111, 14, 186, 221, 31, 37, 62, 103, 141, 177, 96, 82, 128, 210, 25, 1, 1, 242, 252, 157, 186, 236, 51, 205, 199, 150, 8, 38, 26, 95, 227, 222, 158, 141, 46, 14]), value: EventValue([189, 189, 208, 49, 205, 75, 38, 44, 168, 18, 191, 202, 60, 221, 221, 100, 224, 129, 151, 155, 38, 148, 82, 19, 154, 97, 129, 47, 76, 57, 213, 167, 249, 159, 246, 81, 138, 225, 73]) }, Event { key: EventKey([85, 215, 32, 17, 226, 22, 43, 90, 210, 211, 76, 217, 108, 225, 128, 210, 230, 193, 100, 238, 217, 227, 165, 180, 245, 20, 1, 93, 247, 213, 170, 107, 149, 80, 93, 28, 244, 231, 245, 13, 227]), value: EventValue([118, 41, 99, 203, 111, 80, 19, 113, 0, 64, 173, 16, 157, 209, 146, 165, 53, 132, 45, 72, 180, 126, 188, 103, 211, 254, 199, 57, 76, 39, 237, 178, 155, 27, 172, 112, 225, 81, 167, 190, 27, 135, 243, 145, 200, 154, 159, 181, 199, 0, 157, 148, 149, 82, 159, 192, 42, 0, 143, 212, 56, 8, 115, 26, 149, 92, 248, 110, 4, 197, 207, 172, 165, 70, 36, 90, 69, 232, 9, 231, 126, 213, 60, 22, 82, 80, 40, 128, 131]) }, Event { key: EventKey([143, 204, 92, 197, 156, 155, 25, 20, 155, 223, 8, 196, 126, 245, 226, 136, 173, 79, 69, 87, 177, 16, 74, 171, 251, 73, 44, 97, 192, 212, 105, 191, 33, 195, 39, 187, 254, 154, 113, 63, 66, 158, 161, 66, 30, 221, 18, 195, 217, 54, 24, 155, 87, 7, 90, 86, 107]), value: EventValue([219, 205, 115, 26, 167, 251, 91, 86, 248, 48, 139, 207, 238, 104, 196, 193, 223, 29, 48, 78, 213, 31, 118, 38, 31, 185, 94, 53, 148, 188, 4, 174, 138, 210, 131, 192, 221, 209, 212, 238]) }, Event { key: EventKey([29, 114, 132, 103, 250, 157, 134, 185, 120, 60, 103, 36, 122, 104, 5, 136, 118, 150, 203, 244, 19, 144, 149, 184, 143, 190, 241, 48, 196, 214, 195, 222, 110]), value: EventValue([129]) }], receipt: 1524243976 }], inner: 3390151499 }, BatchReceipt { batch_hash: [185, 90, 220, 69, 240, 139, 202, 198, 79, 202, 233, 243, 198, 17, 200, 76, 148, 70, 71, 30, 12, 54, 61, 62, 48, 211, 163, 166, 81, 211, 229, 3], tx_receipts: [TransactionReceipt { tx_hash: [35, 74, 175, 116, 68, 9, 213, 117, 152, 130, 67, 179, 24, 134, 186, 160, 135, 78, 90, 132, 22, 18, 216, 233, 140, 113, 118, 202, 118, 173, 209, 188], body_to_save: None, events: [Event { key: EventKey([147, 99, 172, 39, 7, 109, 241, 52, 28, 164, 195, 45, 175, 176, 123, 63]), value: EventValue([235, 30, 29, 66, 31, 209, 192]) }, Event { key: EventKey([63, 80, 42, 210, 187, 160, 251, 11, 87, 41, 124, 224, 125, 78, 30, 114, 3, 249, 60, 23, 222, 79, 203, 216, 224, 32, 239, 199, 45, 146, 209, 72, 27, 197, 69, 174, 123, 197, 229, 93, 60, 161, 205, 172, 249, 118, 13, 45, 48, 95, 181, 251, 250, 51, 15, 119, 33, 244, 128, 199, 157, 33, 174, 132, 141, 194, 243, 90, 95, 145, 16, 205, 67, 41, 65, 26, 131, 29, 145, 10]), value: EventValue([29, 110, 231, 80, 54, 252, 32, 212, 224, 150, 128, 154, 181, 207, 32, 87, 228, 208, 179, 120, 123, 134, 204, 76, 255, 236]) }, Event { key: EventKey([24, 214, 36, 206, 16, 75, 115, 254, 17, 130, 118, 188, 254, 2, 211, 21, 100, 200, 199, 54, 30, 1, 176, 247, 158, 225, 95, 175, 204, 248, 65, 66, 46, 77, 90, 2, 6, 38, 208]), value: EventValue([180, 138, 158, 120, 120, 197, 198, 90, 161, 220, 160, 131, 80, 115, 53, 217, 226, 254, 7, 110, 242, 202, 2, 226, 10, 188, 5, 112, 197, 108, 79, 95, 44, 68, 4, 243, 2, 252, 232, 123, 245, 217]) }], receipt: 2458867584 }, TransactionReceipt { tx_hash: [96, 24, 199, 13, 226, 9, 252, 90, 55, 36, 146, 11, 239, 224, 53, 75, 172, 43, 7, 126, 29, 86, 187, 230, 141, 91, 22, 93, 172, 102, 179, 112], body_to_save: None, events: [], receipt: 3526639550 }, TransactionReceipt { tx_hash: [78, 223, 253, 128, 110, 97, 145, 255, 143, 224, 215, 27, 202, 3, 16, 101, 88, 129, 240, 95, 179, 119, 202, 48, 130, 45, 124, 25, 50, 145, 90, 191], body_to_save: None, events: [Event { key: EventKey([75, 170, 160, 240, 160, 203, 132, 33, 181, 171, 128, 189, 132, 151, 244, 86, 135, 132, 151, 189, 54, 178, 18, 248, 9, 199, 3, 98, 34, 169, 2, 120, 225, 182, 143, 180, 115]), value: EventValue([101, 148, 200, 249, 151, 15, 136, 170, 60, 109, 104, 130, 28, 239, 141, 158, 79, 219, 206, 20, 55, 150, 127, 1, 16, 148, 119, 51, 23, 190, 231, 100, 223, 77, 141, 26, 57, 147, 173, 162]) }, Event { key: EventKey([80, 213, 110, 8, 0, 64, 133, 136, 217, 4, 105, 123, 41, 165, 12, 7, 229, 0, 72, 237, 125, 199, 32, 39, 106, 132, 23, 14, 194, 161, 218, 230, 48, 244, 251, 4, 214, 200, 110, 158, 182, 251, 87, 53, 74, 200, 69, 157, 252, 198, 217, 213, 107, 134, 70, 128, 227, 52, 226, 159]), value: EventValue([175, 53, 76, 194, 20, 121, 216, 185, 217, 56, 101, 164, 112, 247, 97, 70, 31, 73, 186, 90, 17, 28, 165, 13, 178, 124, 21, 117, 160, 75, 17, 174, 59, 65, 113, 22, 86, 149, 174, 38, 160, 52, 146, 18, 9, 146, 111, 112, 89, 36, 142, 187, 199, 22, 151, 0, 226, 133, 1, 124, 211, 87]) }, Event { key: EventKey([151, 15, 56, 5, 200, 102, 206, 47, 218, 28, 146, 205, 96, 173, 109, 6, 234, 136, 182, 44, 142, 73, 152, 194, 76, 101, 7, 225, 68, 66, 133, 217, 171, 160, 200, 238, 128, 39, 179, 98, 154, 62, 39, 125, 201, 43, 83, 43, 238, 139, 64, 86, 65, 156, 253, 176, 105, 109, 222, 241, 172, 198, 132, 151, 29, 45, 253, 188, 191, 76, 172]), value: EventValue([41, 136, 142, 238, 20, 167, 93, 232, 123, 198, 16, 79, 231, 153, 110, 121]) }, Event { key: EventKey([44, 234, 253, 53, 138, 93, 194, 249, 167, 2, 206, 214, 129, 220, 186, 216, 203, 115, 168, 242, 210, 69, 16, 70, 121, 181, 227, 123, 161, 82, 200, 166, 50, 26, 14, 131, 202, 25, 70, 43, 230, 28, 135, 234, 219, 231, 214, 172, 212, 39, 106, 236, 86, 141, 119, 194, 158, 14, 130, 232, 11, 134, 174, 86, 252, 6, 220, 207, 9, 192, 1, 41, 126, 4, 12, 233, 104, 53, 148, 5, 94, 233, 93, 47, 10, 186, 200, 173, 247, 78, 92]), value: EventValue([5, 115, 175, 125, 100, 99, 121, 131, 232, 106, 133, 254, 150, 198, 115, 90, 49, 118, 71, 29, 172, 209, 5, 84, 86, 143, 47, 251, 237, 106, 130, 239, 226, 173, 84, 225, 9, 243, 239, 102]) }, Event { key: EventKey([254, 223, 210, 2, 175, 159, 172, 112, 120, 200, 216, 254, 222, 237, 99, 171, 0, 65, 34, 97, 243, 226, 20, 115, 58, 160, 35, 208, 135, 163, 49, 41, 33, 144, 169, 47, 45, 89, 72, 80, 136, 82, 16, 31, 235, 20, 99, 53, 170, 232, 15, 89, 55, 136, 139, 181, 89, 200, 72, 12, 108, 174, 154, 242, 172, 93, 99, 95, 160, 97, 204, 125, 32, 158, 153, 171, 163, 237, 38, 130, 84, 101, 225, 78, 31, 250, 237, 31, 134, 168]), value: EventValue([220, 254, 240, 145, 96, 173, 36, 177, 83, 177, 111, 218, 12, 114, 145, 250, 82, 127, 69, 156, 180, 255, 87, 190, 125, 226, 61, 39, 2, 96, 179, 124, 69, 199, 114, 2, 68, 165, 196, 101, 226, 163, 145, 97, 88, 195, 143, 122, 32, 44, 156, 28, 187, 113, 30, 121, 126, 4, 253, 147, 160, 244, 50, 59, 35, 204, 143, 135]) }, Event { key: EventKey([175, 195, 247, 71, 211, 201, 83, 112, 216, 253, 30, 161, 10, 189, 253, 65, 87, 147, 70, 150, 212, 120, 11, 116, 190, 130, 150, 75, 102, 200, 104, 188, 32, 86, 162, 76, 247, 179]), value: EventValue([57, 42, 131, 62, 221, 211, 28, 1, 214, 51, 16, 157, 132, 187, 248, 203, 88, 146, 128, 191, 65, 88, 50, 182, 31, 136, 115, 103, 228, 95, 45, 110, 21, 191, 169, 232, 13, 214, 79, 33, 230, 32, 41, 156, 14, 150, 122, 12, 185, 40]) }, Event { key: EventKey([121, 151, 234, 190, 233, 247, 114, 135, 67, 65, 62, 105, 60, 90, 24, 19, 17, 98, 161, 155, 73, 26, 56, 8, 13, 174, 217, 2, 148, 99, 240, 0, 145, 117, 141, 198, 166, 219, 255, 106, 228, 221, 229, 209, 148, 49, 107, 212, 133, 125, 20, 143, 118, 3, 121, 29, 121, 227, 133, 36, 99]), value: EventValue([23, 202, 94, 180, 101, 16, 179, 190, 98, 171, 130, 48, 168, 175, 48, 74, 16, 141, 169, 174, 95, 8, 139, 229, 123, 144, 56, 119, 53, 169, 62, 78, 25, 78, 234, 129, 123, 90, 153, 240, 154]) }, Event { key: EventKey([]), value: EventValue([49, 203, 108, 250, 240, 219, 106, 45, 165, 181, 57, 35, 58, 191, 228, 140, 202, 95, 91, 78, 60, 163, 125, 191, 229]) }, Event { key: EventKey([184, 135, 49, 156, 176, 87, 49, 207, 243, 54, 194, 95, 99, 163, 97, 166, 210, 248, 15, 33, 227, 39, 3, 180, 37, 206, 161, 88, 72, 12, 202, 199, 235, 190, 198, 87, 206, 71, 25, 132, 161, 164, 60, 205, 100, 64, 246, 82, 23, 204, 138, 84, 165, 79, 231, 14, 176, 139, 24, 245, 186, 76, 37, 74, 19, 144]), value: EventValue([64, 58, 7, 41, 47, 12, 99, 210, 119, 185, 141, 204, 0, 130, 50, 115, 92, 69, 115, 231, 243, 100, 72, 33, 35, 160, 44, 44, 109, 209, 255, 0, 76, 26, 198, 5, 66, 157, 135, 126, 236, 181, 164]) }], receipt: 155245875 }, TransactionReceipt { tx_hash: [120, 179, 9, 177, 78, 16, 204, 13, 24, 14, 64, 163, 191, 27, 21, 172, 121, 22, 70, 59, 124, 179, 73, 87, 190, 82, 121, 49, 67, 191, 200, 51], body_to_save: None, events: [Event { key: EventKey([122, 223, 89, 35, 142, 61, 68, 152, 226, 46, 191, 7, 170, 11, 204, 134, 37, 33, 22, 226, 114, 67, 18, 69, 251, 191, 0, 120, 29, 126, 128, 132, 133, 16, 64, 228, 229, 40, 160, 225, 30, 51, 223, 60, 108, 186, 171, 178, 63, 244, 125, 200, 70, 229, 28, 200, 43, 113, 62, 200, 42, 110, 48, 209, 32, 225, 234, 32, 223, 6, 197, 33, 9, 65, 35, 72, 187, 212, 66, 216, 196, 69, 243, 146, 85, 241, 60, 156, 85, 166, 238, 78, 209, 171, 101, 253, 237]), value: EventValue([218, 128, 165, 111, 204, 210, 206, 53, 53, 244, 41, 56, 120, 0, 95, 97, 219, 176, 45, 0, 252, 87, 250, 125, 165, 48, 152, 201, 248, 67, 243, 155, 83, 171, 163, 137, 225, 202, 40, 73, 85, 186, 188, 84]) }, Event { key: EventKey([172, 165, 110, 124, 110, 24, 99, 23, 97, 91, 66, 110, 47, 211, 226, 110, 113, 105, 153, 16, 26, 111, 4, 238, 48, 87, 82, 1, 176, 171, 84, 234, 147, 6, 254, 128, 196, 214, 30, 205, 28, 175, 29, 80, 220, 0, 243]), value: EventValue([245, 227, 46, 150, 156, 215, 242, 46, 34, 178, 13, 97, 230, 219, 21, 2, 119, 92, 182, 114, 194, 207, 112, 116, 98, 19, 27, 250, 45, 95, 141, 251, 61, 59, 166, 210, 149, 16, 214, 195, 14, 91, 65, 103, 103, 81, 152, 67, 142, 173, 251, 105, 238, 96, 158, 150, 118]) }, Event { key: EventKey([42, 68, 181, 220, 17, 91, 45, 247, 3, 129, 170, 52]), value: EventValue([191, 85, 80, 87, 120, 117, 99, 233, 42, 199, 230, 67, 148, 226, 220, 46, 48, 136, 131, 237, 45, 123, 51, 175, 156, 49, 34, 62, 151, 72, 36, 202, 113, 24, 218, 235, 170]) }], receipt: 2819461403 }, TransactionReceipt { tx_hash: [138, 163, 111, 117, 165, 44, 37, 224, 124, 42, 166, 150, 174, 23, 71, 58, 44, 220, 81, 119, 188, 226, 67, 228, 230, 202, 9, 191, 152, 126, 179, 90], body_to_save: Some([70, 71, 204, 40, 209, 153, 192, 181, 35, 101, 148, 85, 13, 247, 116, 229, 9, 118, 141, 69, 234, 150, 247, 165, 223, 226, 41, 30, 139, 219, 246, 22, 136, 171, 0, 62, 196, 4, 191, 171, 118, 41, 173, 116, 1, 255, 140, 7, 194, 85, 151, 36, 129, 0, 207, 78, 67, 113, 192, 213, 32, 196, 126, 187, 108, 242, 188, 113, 89, 122, 166, 253, 192, 74, 100, 128, 182, 115, 38, 179, 175, 117, 232, 42, 18, 99, 238, 187]), events: [Event { key: EventKey([233, 147, 179, 226, 249, 126, 66, 32, 169, 52, 202, 12, 135, 150, 242, 105, 157, 56]), value: EventValue([118, 203, 151, 234, 237, 219, 247, 222, 248, 77, 153, 45, 232, 69, 194, 4, 12, 7, 220, 22, 86, 33, 178, 155, 50, 170, 99, 105, 175, 219, 239, 77, 227, 132, 83, 147, 150, 136, 32, 89, 37, 186, 36, 253, 236, 82, 36, 56, 88, 117, 56, 141, 205, 174, 168, 236, 154, 110, 39, 112, 26, 183, 233, 67, 77, 222, 144, 220, 68, 177, 169, 110, 168, 237, 15, 183, 45, 71, 49, 228, 219, 149, 135, 242, 193, 170, 159, 221, 149, 70, 15, 93, 209, 32, 34, 238]) }, Event { key: EventKey([246, 55, 162, 138, 41, 107, 199, 92, 103, 130, 38, 149, 82, 243, 15, 29, 139, 223, 192, 184, 80, 4, 185, 198, 8, 167, 35, 16, 146, 130, 114, 203, 88, 138, 196, 146, 244, 56, 183, 191, 16, 241, 65, 74, 106, 38, 77, 19, 243, 163, 226, 36, 93, 137, 55, 73, 108, 203, 55, 2, 157, 144, 236, 64, 227, 114, 2, 57, 126, 112, 224, 249, 76, 45, 149, 151, 229, 216, 171, 151, 109, 0, 36, 56, 74]), value: EventValue([132, 21, 62, 144, 61, 239, 131, 131, 57, 117, 226, 86, 61, 180, 64, 229, 58, 162, 71, 13, 164, 141, 20, 152, 13, 103, 38, 69, 205, 177, 182, 160, 44, 109, 12, 177, 53, 196, 58, 251, 11, 245, 215, 46, 225, 236, 133, 201, 215, 139, 104, 188, 82, 252, 218, 64, 158, 18, 90]) }, Event { key: EventKey([26, 29, 14, 165, 5, 192]), value: EventValue([96, 9, 93, 25, 123, 43, 95, 113, 153, 10, 123, 20, 126, 172, 74, 238, 228, 243, 34, 69, 155, 249, 36, 251, 69, 111, 217, 194, 47, 238, 114, 180, 219, 41, 53, 234, 92, 9, 85, 104, 97, 251]) }, Event { key: EventKey([92, 218, 144, 135, 39, 88, 56, 101, 80, 192, 173, 50, 95, 26, 73, 217, 153, 248, 130, 138, 42, 165, 36, 116, 166, 159, 52, 141, 144, 130, 96, 112, 157, 11, 159, 143, 82, 198, 236, 164, 159, 5, 117, 186, 56, 112, 243, 105, 240, 86, 63, 46, 196, 43, 233, 191, 177, 207, 22, 144, 245]), value: EventValue([147, 47, 15, 202, 47, 225, 125, 113, 185, 220, 67, 15, 185, 57, 203, 135, 196, 66, 216, 247, 165, 51, 87, 55, 68, 89, 50, 113, 151, 247, 118, 0, 95, 158, 111, 152, 120, 77, 225, 20, 31, 248, 63, 202, 225, 45, 191, 63, 125, 203, 231, 141, 56, 37, 181, 65, 201, 206, 196, 244, 3, 241, 175]) }, Event { key: EventKey([17, 250, 250, 46, 66, 132, 196, 201, 7, 129, 124, 242, 0, 192, 248, 238, 58, 10, 160, 217, 209, 137, 52, 229, 101, 68, 55, 135, 52, 120, 135, 19, 172, 94, 13, 213, 107, 18, 19, 220, 80, 72, 65, 137, 178, 225, 220, 199]), value: EventValue([202, 169, 69, 160, 155, 103, 51, 156, 243, 140, 211, 23, 41, 92, 170, 68, 146, 81, 81, 72, 34, 151, 125, 76, 51, 168, 193, 118, 152, 203, 13, 39, 138, 213, 235, 150, 248, 48, 164, 71, 19, 123, 106, 84]) }, Event { key: EventKey([226, 147, 51, 42, 162, 80, 236, 237, 206, 186, 240, 201, 117, 201, 37, 130, 244, 122, 71, 22, 171, 214, 72, 235, 20, 29, 253, 226, 19, 38, 65, 126, 188, 90, 109, 189, 85, 84, 36, 153, 176, 127, 144, 17, 157, 106, 6, 206, 215, 83, 238, 48, 10, 204, 232, 121, 3, 247, 247, 93, 115, 36, 76, 42, 25, 10, 6, 69, 67, 29, 17, 199, 179, 244, 167, 143, 231, 3, 64, 190, 44, 64, 233, 83, 4, 148, 9, 109, 5]), value: EventValue([213, 86, 75, 29, 144, 46, 233, 151, 203, 11, 236, 156, 219, 225, 79, 176, 191, 240, 6, 131, 66, 188, 6, 58, 24, 199, 65, 232, 114, 178, 56, 17, 243, 31, 194, 141, 156, 107, 94, 124, 78, 71, 224, 7, 119, 95, 69, 151, 122, 240, 177, 25, 95, 220, 132, 160, 250, 14, 154, 9, 31, 17, 28, 118, 46, 52, 109, 14, 44, 138, 13, 250, 19, 169, 210, 228, 107, 166, 163, 94, 137, 33, 178, 134, 137, 34, 177, 238, 84, 247, 170, 231, 208, 230, 108, 59, 40, 122, 63]) }], receipt: 4178917824 }, TransactionReceipt { tx_hash: [18, 171, 142, 104, 244, 247, 67, 113, 204, 137, 133, 230, 91, 162, 146, 83, 32, 40, 221, 126, 220, 79, 193, 144, 189, 203, 191, 97, 93, 243, 34, 11], body_to_save: Some([181, 72, 59, 0, 87, 249, 220, 97, 106, 254, 37, 83, 165, 227, 36, 182, 44, 151, 77, 94, 180, 23, 235, 96, 120, 56, 109, 59, 106, 180, 100, 203, 106, 154, 84, 160, 5, 205, 0, 128, 119, 230, 143, 77, 125, 177, 243, 23, 137, 32, 71, 159, 153, 3, 7, 85, 125]), events: [Event { key: EventKey([246, 10, 238]), value: EventValue([166, 17, 120, 248, 228, 150, 65, 134, 67, 11, 182, 160, 20, 5]) }, Event { key: EventKey([146, 103, 140, 91, 179, 54, 13, 213, 197, 224, 166, 192, 78, 251, 98, 157, 249, 214, 241, 196, 155, 177, 93, 79, 34, 12, 217, 191, 128, 119, 164, 208, 177, 68, 8, 137, 207, 13, 136, 111, 127, 232, 93, 252, 55, 179, 168, 186, 133, 96, 252, 212, 94, 117]), value: EventValue([70, 255, 225, 207, 253, 235, 31, 53, 99, 106, 11, 167, 52, 220, 198, 27, 8, 222, 62, 4, 125, 251, 36, 110, 183, 99, 4, 112, 194, 239]) }], receipt: 779695357 }, TransactionReceipt { tx_hash: [78, 109, 46, 245, 253, 5, 34, 253, 70, 219, 67, 0, 192, 77, 81, 112, 18, 17, 134, 233, 34, 162, 228, 214, 24, 238, 182, 26, 159, 28, 232, 133], body_to_save: None, events: [Event { key: EventKey([112, 48, 156, 33, 38, 7, 176, 80, 112, 26, 109, 30, 36, 121, 10, 77, 65, 115, 236, 159, 201, 54, 64, 80, 173, 8, 88, 208, 48, 112, 108, 112, 85, 82, 147, 223, 254, 53, 44, 209, 137, 46, 91, 58, 81, 27, 70, 236, 60, 21, 85, 139, 188, 192, 168, 58, 244, 33, 140, 24, 239, 252, 109, 134, 109, 107, 129, 141, 24, 77, 235, 219, 202, 218, 82, 150, 139, 16, 31, 255, 236, 233, 146, 86, 114, 194, 7, 120, 64, 10, 191, 255, 135]), value: EventValue([136, 245, 107, 47, 243, 132, 105, 151, 38, 231, 230, 105]) }, Event { key: EventKey([130, 139, 221, 139, 116, 138, 192, 63, 91, 23, 164, 151, 239, 238, 37, 190, 198, 37, 58, 214, 6, 101, 212, 95, 250, 186, 146, 2, 41, 187, 247, 134, 196, 146, 181, 184, 98, 115, 108, 146, 102, 33, 56, 248, 21, 112, 183, 93, 132, 225, 237, 102, 218, 23, 250, 126, 70, 8, 177, 87, 0, 139, 2, 177, 237, 8, 72, 189, 141, 13, 246, 72, 24, 171, 186, 211, 76, 246, 81, 30, 105, 127, 181, 7, 90, 11, 93, 67, 15, 246]), value: EventValue([58, 215, 18, 12, 18, 19, 34, 76, 203, 29, 196, 176, 49, 34, 126, 172, 192, 184, 197, 44, 219, 82, 186, 155, 83, 78, 177, 254, 33, 190, 31, 54, 242, 142, 226]) }], receipt: 1877296948 }, TransactionReceipt { tx_hash: [40, 238, 40, 68, 118, 129, 91, 190, 173, 252, 76, 251, 181, 62, 3, 236, 217, 223, 128, 102, 61, 51, 78, 107, 182, 170, 86, 6, 160, 2, 82, 252], body_to_save: None, events: [Event { key: EventKey([49, 97, 146, 209, 162, 16, 153, 147, 175, 53, 255, 30]), value: EventValue([246, 145, 219, 27, 172, 139, 128, 197, 198, 56, 0, 218, 163, 57, 78, 34, 55, 217, 142, 118, 70, 189, 100, 17, 162, 132, 40, 189, 127, 22, 248, 110, 195, 120, 126, 65, 185, 110, 47, 61, 193, 42, 150, 32, 101]) }, Event { key: EventKey([44, 150, 168, 144, 54, 9, 93, 165, 28, 156, 237, 193, 252, 106, 61, 148, 157, 191, 133, 70, 242, 130, 103, 233, 81, 62, 10, 162, 235, 200, 221, 90, 248, 192, 205, 189, 125, 163, 216]), value: EventValue([36, 169, 221, 146, 252, 224, 26, 187, 194, 68, 89, 187, 103, 249, 214, 230, 156, 242, 203, 241, 184, 205, 41, 146, 50, 71, 55, 201, 77, 135, 197, 205, 58, 205, 35, 239, 150, 180, 250, 156, 92, 6, 206, 149, 216, 98, 143, 0, 108, 178, 201, 87, 194]) }, Event { key: EventKey([229, 147, 100, 232, 98, 160, 64, 86, 28, 96, 170, 244, 69, 112, 212, 201, 209, 115, 13, 244, 75, 12, 120, 47, 213, 223, 124, 83, 179, 74, 173, 104, 209, 47, 21, 159, 44, 178]), value: EventValue([119, 248, 165, 119, 234, 6, 141, 11, 98, 208, 176, 210, 68, 211, 104, 100, 73, 173, 37, 19, 142, 0, 181, 240, 88, 176, 225, 186, 13, 59, 255, 151, 146, 237, 208, 234, 253, 29, 16, 175, 206, 69, 61, 94, 244, 174, 0, 183, 194, 63, 217, 92, 60, 242]) }], receipt: 3899488552 }], inner: 1844170015 }, BatchReceipt { batch_hash: [165, 79, 235, 149, 145, 195, 149, 118, 49, 12, 32, 153, 197, 250, 129, 45, 58, 156, 236, 39, 137, 75, 187, 213, 31, 94, 226, 28, 196, 237, 161, 90], tx_receipts: [TransactionReceipt { tx_hash: [0, 217, 62, 202, 250, 102, 117, 226, 48, 174, 41, 24, 233, 247, 109, 78, 222, 121, 212, 19, 1, 64, 31, 149, 86, 170, 165, 72, 221, 180, 171, 172], body_to_save: None, events: [Event { key: EventKey([220, 243, 121, 5, 38, 127, 64, 232, 196, 96, 67, 20, 247, 38, 85, 212, 199, 110, 115, 166, 80, 207, 111, 92, 204, 108, 103, 142, 178, 141, 92, 70, 109, 1, 242, 6, 63, 126, 127, 88, 232, 131, 176, 253, 118, 186, 6, 31, 118, 182, 181, 212, 249, 162, 189, 201, 178, 172, 72, 74, 21, 104, 23, 44, 149, 191, 128, 161, 120, 147, 168, 47, 19, 227, 210, 16]), value: EventValue([14, 1, 62, 145, 200, 112, 2, 220, 195, 56, 121, 207, 80, 128, 208, 19, 31, 73, 195, 180, 19, 191, 128, 229, 219, 195, 182, 171, 165, 52, 102, 250, 84, 160, 37, 208, 1, 74, 60, 98, 73, 79, 167, 3, 203, 107, 27, 71, 90, 148, 200, 247, 145, 151, 48, 86, 72, 242, 108, 141, 74, 176, 157, 21, 170]) }], receipt: 3661855635 }, TransactionReceipt { tx_hash: [96, 40, 154, 82, 132, 81, 179, 143, 132, 241, 207, 47, 234, 64, 136, 115, 145, 208, 76, 53, 105, 42, 202, 8, 65, 64, 195, 76, 12, 94, 239, 138], body_to_save: Some([214, 230, 143, 114, 166, 174, 144, 241, 237, 159, 108, 62, 67, 248, 249, 48, 71, 87, 230, 55, 104, 84, 9, 132, 184, 69, 248, 143, 50, 21, 237, 124, 249, 156, 2]), events: [Event { key: EventKey([54, 196, 255, 122, 65, 241, 132, 207, 27, 94, 174, 185, 92, 48, 95, 231, 58, 38, 248, 168, 86, 164, 35, 223, 162, 100, 76, 164, 10, 194, 123, 139, 59, 94, 40, 5, 29, 106, 162, 254, 26, 141, 79, 139, 227, 85, 97, 9, 144, 50, 101, 193, 163]), value: EventValue([85, 4, 72, 46, 75, 32, 48, 206, 45, 120, 161, 246, 213, 115, 157, 218, 37, 203, 158, 221, 217, 247, 64, 18, 66, 73, 26, 165, 187, 204, 72, 22, 40, 38, 173, 123, 250, 73, 139, 176, 115, 173, 136, 158, 2, 210, 143, 193, 38, 187, 1, 254, 111, 4, 226, 12, 51, 31, 248, 141, 254, 51, 221, 126, 31, 209, 84, 247, 39, 131, 11, 85, 102, 40, 133, 174, 16, 211, 205, 154, 10, 224, 245, 91, 39, 74, 116, 247, 61, 175, 182, 60, 148]) }, Event { key: EventKey([222, 111, 211, 150, 60, 47, 83, 54, 64, 234, 206, 90, 224, 194, 71, 212, 138, 85, 89, 72, 230, 166, 46, 52, 27, 102, 235, 189, 63, 39, 24, 14, 205, 67, 152, 14, 109, 139, 196, 209, 160, 78, 125, 84, 199, 157]), value: EventValue([71, 1, 118, 240, 63, 55, 119, 213, 192, 138, 56, 166, 159, 152, 59, 181, 121, 165, 221, 122, 81, 219, 82, 95, 52, 203, 188, 218, 73, 153, 192, 24, 92, 242, 126, 197, 238, 109, 39, 62, 117, 138, 145, 95, 114]) }, Event { key: EventKey([248, 103, 84, 96, 210, 29, 170, 138, 126, 159, 28, 98, 152, 52, 97, 28, 197, 83, 21, 69, 154, 47, 28, 128, 143, 160, 158, 44, 0, 45, 185, 243, 32, 12, 54, 207, 24, 207, 225, 217, 116, 155, 82, 111, 175, 198, 104, 185, 126, 43, 219, 75, 116, 64, 244, 90, 99, 73, 254, 76, 27, 134, 162, 89, 206, 69, 51, 232, 135, 123, 241, 135, 98, 6, 62, 249, 235, 49, 239, 142, 44, 178, 115, 251, 143, 96, 89, 204, 20, 62, 123, 240, 19, 206, 72, 138, 56]), value: EventValue([61, 236, 70, 207, 33, 200, 96, 221, 119, 64, 13, 75, 127, 87, 139, 53, 84, 22, 210, 83, 138, 46, 101, 235, 161, 90, 181, 201, 155, 173, 163, 39, 154, 248, 9, 162, 231, 111]) }, Event { key: EventKey([199, 28, 201, 212, 118, 146, 187, 160, 33, 11, 72, 118, 185, 130, 119, 240, 188, 55, 185, 223, 39, 1, 189, 53, 47, 14, 226, 208, 48, 96, 91, 41, 130, 81, 254, 171, 207, 48, 6, 20, 21, 52, 74, 223, 100, 34, 35, 89, 114, 45, 204, 33, 44, 111, 121, 188, 137, 225, 189, 43, 91, 49, 88, 74, 134, 80, 121, 166, 247, 236, 122, 35, 61, 184, 53, 235, 192]), value: EventValue([184, 220, 43, 147, 140, 160, 79, 180, 174, 114, 243, 184, 142, 204, 140, 117, 92, 15, 210, 14, 175, 190, 36, 183, 69, 185, 158, 3, 31, 229, 85, 172, 248, 31, 204, 28, 138, 119, 39, 154, 161, 96, 110, 132, 15, 52, 157, 248, 85, 166, 232, 52, 221, 67, 190, 138, 118, 200, 254, 55, 33, 47, 81, 9, 79, 1, 254, 107, 206, 120, 205]) }, Event { key: EventKey([102, 67, 44, 21, 67, 24, 251, 227, 51, 215, 173, 60, 222, 12, 225, 159, 254, 121, 85, 221, 191, 124, 49, 62, 58, 67, 23, 164, 120, 212, 221, 17, 40, 23, 187, 111, 229, 18, 27, 255, 31, 156, 187, 174, 105, 252, 209, 60, 98, 41, 92, 125, 225, 221, 24, 132]), value: EventValue([27, 212, 116, 193, 6, 212, 62, 241, 234, 147, 106, 92, 7, 50, 8, 66, 40, 147, 185, 112, 62, 184, 241, 253, 252, 112, 8, 46, 129, 230, 4, 51, 196, 88, 110, 124, 163, 165, 135, 64, 166, 96, 214, 101, 198, 206, 3, 229, 241, 186, 4, 32, 18, 131, 154, 216, 125, 237, 157, 103, 132, 172, 95, 223, 140, 34, 56, 142, 161, 227, 35, 54, 204, 191, 166, 139]) }, Event { key: EventKey([0, 69, 192, 23, 235, 190, 52, 88, 127, 42, 58, 164, 83, 103, 165, 11, 65, 194, 63, 224, 141, 190, 150, 190, 203, 140, 31, 193, 65, 238, 62, 184, 161, 0, 243, 165, 79, 161, 192, 208, 70, 101, 174, 250, 10, 243, 2, 185, 12, 164, 228, 52, 253, 254, 118, 96, 81, 124, 3, 234, 157, 45, 181, 202, 148, 158, 142, 69, 155, 12, 127, 175, 40, 172, 211, 180, 53, 143]), value: EventValue([172, 143, 58, 133, 44, 177, 185, 221, 179, 3, 82, 193, 104, 190, 22]) }, Event { key: EventKey([63, 198, 213, 47, 147, 90, 38, 138, 249, 159, 211, 231, 41, 169, 2, 192, 89, 112, 194, 29, 107, 94, 141, 224, 139, 63, 145, 74, 221, 214, 78, 153, 38, 56, 105, 166, 175, 217, 122, 154, 129, 144, 239, 61, 211, 71, 214, 83, 243, 59, 121, 55, 14, 19, 110, 219, 64, 31, 166, 35, 33, 140, 172, 9, 160, 138, 114, 199, 255, 65, 19, 171, 254, 248, 192, 249, 69, 19]), value: EventValue([]) }], receipt: 126603246 }, TransactionReceipt { tx_hash: [243, 54, 218, 6, 118, 243, 206, 177, 114, 106, 58, 98, 162, 7, 60, 36, 199, 137, 30, 43, 15, 164, 232, 243, 127, 51, 228, 72, 252, 136, 148, 168], body_to_save: None, events: [Event { key: EventKey([198, 254, 217, 12, 2, 29, 180, 236, 46, 236, 201, 40, 92, 108, 216, 193, 153, 169, 64, 72, 181, 67, 27, 19, 24, 185, 175, 153, 8, 254, 184, 183, 51, 237, 164, 212, 222, 214, 69, 99, 105, 196, 116, 152, 146, 8, 163, 29, 122, 155, 243, 68, 233, 155, 162, 137, 56, 120, 180, 41, 6, 220, 66, 133, 217, 207, 43, 136, 159, 10, 60, 242, 199, 89, 126, 25, 39, 41, 150, 144, 120, 140, 251, 5, 7, 6, 195, 100, 88, 207, 122, 191, 170]), value: EventValue([210, 80, 248, 95, 15, 163, 131, 71]) }, Event { key: EventKey([62, 27, 27, 172, 102, 145, 106, 13, 109, 140, 222, 211, 137, 219, 83, 50, 103, 118, 46, 81, 127, 26, 17, 17, 125, 147, 60, 249, 35, 144, 238, 132, 217, 64, 185, 65, 220, 147, 179, 218, 191, 239, 253, 79, 161]), value: EventValue([36, 95, 36, 144, 160, 84, 90, 59, 68, 217, 89, 92, 167, 180, 128, 117, 213, 178, 163, 76, 17, 43, 247, 171, 251, 183, 173, 65, 236, 216, 202, 10, 252, 250, 125, 179, 196, 131, 39, 192, 2, 118, 73, 184, 202, 90, 205, 95, 175, 117, 90]) }, Event { key: EventKey([60, 237, 41, 144, 241, 91, 200, 148, 26, 216, 95, 116]), value: EventValue([205, 183, 138, 168, 252, 59, 234, 177, 144, 223]) }, Event { key: EventKey([23, 158, 218, 134, 11, 223, 198, 31, 47, 159, 61, 43, 147, 105, 178, 156, 21, 21, 15, 201, 166, 138, 100, 28, 28, 241, 146, 25, 255, 11, 67, 148, 115, 33, 155, 17, 35, 71, 167, 95, 66, 169, 70, 41, 238, 18, 42, 176, 94, 201, 11, 244, 30, 43, 106, 33, 27, 242, 218, 144, 112, 101, 68, 36, 17, 32, 125, 125, 185, 223, 57, 8, 183, 35, 12, 185, 64, 75, 121, 163, 10, 138, 178, 170, 130, 55, 213, 219, 37, 246, 2, 70, 162, 138, 61, 121]), value: EventValue([146, 193, 196, 54, 6, 165, 138, 173, 168, 201, 200, 45, 252, 59, 176, 176, 41, 17, 218, 66, 145, 205, 178, 238, 67, 109, 97, 228, 81, 25, 250, 236, 123, 30, 150, 62, 156, 58, 139, 190, 49, 100, 183, 102, 175, 176, 111, 134, 218, 74, 33, 46, 58, 23, 176, 28, 171, 84, 135]) }, Event { key: EventKey([83, 125, 44, 106, 25, 16, 81, 244, 245, 66, 159, 191, 112, 96, 168, 250, 143, 241, 112, 69, 196, 30]), value: EventValue([64, 182, 35, 172, 92, 238, 166, 93, 164, 130, 239, 115, 237, 185]) }, Event { key: EventKey([89, 153, 3, 19, 120, 250, 246, 201, 68, 157, 189, 62, 31, 191, 40, 73, 58, 98]), value: EventValue([48, 160, 34, 72, 218, 209, 220, 13, 143, 217, 239, 165, 145, 242, 46, 60, 190, 62, 243, 139, 99, 124, 208, 240, 175, 140, 182, 158, 41, 197, 138, 244, 170, 107, 38, 150, 164, 90, 32, 101, 133, 11, 115, 153, 114, 174, 206, 156, 129, 84, 116, 71, 181, 254, 12, 234, 184, 248, 87, 113, 177, 202, 12, 56, 215, 72, 33, 131, 82, 103, 109, 163, 252, 23, 221, 26, 79, 115, 210, 57, 233]) }, Event { key: EventKey([240, 185, 128, 165, 117, 95, 197, 33, 76, 151, 64, 103, 172, 117, 242, 65, 31, 21, 169, 94, 6, 4, 136, 132, 29, 19, 206, 190, 246, 188, 19, 236]), value: EventValue([204, 43, 204, 254, 114]) }, Event { key: EventKey([39, 191, 255, 240, 28, 128, 57, 220, 173, 18]), value: EventValue([55, 29, 204, 251, 11, 163, 27, 159, 94, 146, 188, 70, 39, 203, 253, 19, 82, 48, 84, 254, 197, 60, 88, 113, 232, 56, 147]) }], receipt: 2332795878 }, TransactionReceipt { tx_hash: [37, 106, 88, 16, 99, 254, 191, 110, 60, 115, 113, 28, 97, 115, 67, 35, 209, 49, 60, 148, 130, 172, 47, 213, 80, 167, 29, 249, 165, 80, 215, 41], body_to_save: Some([234, 59, 6, 150, 209, 143, 88, 174, 249, 63, 149, 63, 157, 186, 244, 141, 75, 175, 101, 159, 225, 159, 168, 119, 31, 52, 125, 135, 58, 94, 156, 216, 103, 150, 125, 27, 242, 164, 46, 145, 238, 151, 215, 58, 142, 195, 131]), events: [Event { key: EventKey([119, 230, 121, 39, 16, 178, 231, 184, 15, 29, 64, 164, 50, 38, 106, 95, 239, 103, 147, 97, 23, 162, 154, 66, 107, 222, 193, 140, 254, 246, 30, 224, 22, 241, 240, 205, 109, 49, 201, 158, 251, 84, 136, 54, 203, 235, 209, 66, 86, 91, 124, 75, 113, 105, 166, 91, 217, 233, 67, 17, 100, 185, 79, 193, 154, 160, 144, 130, 29, 43, 59, 213, 107, 163, 97, 240, 107, 240, 116]), value: EventValue([99, 44, 138, 235, 51, 214, 223, 153, 78, 226, 241, 227, 34, 222, 126, 157, 248, 193, 81, 212, 189, 249, 24, 118, 159, 209, 101, 228, 110, 224, 131, 44, 34, 40, 209, 115, 186, 8, 20, 29, 62, 5, 212, 80, 139, 107, 11, 26, 158, 148, 164, 15, 123, 79, 35, 141, 216, 46, 20, 98, 241, 157, 67, 145, 183, 7, 179, 240, 234, 219, 230, 146, 247]) }, Event { key: EventKey([56, 88, 74, 74, 52, 108, 72, 182, 159, 116, 44, 131, 17, 28, 246, 233, 139, 118, 17, 146, 152, 114, 71, 160, 24, 101, 236, 97, 168, 35, 172, 106, 36, 178, 213, 66, 178, 177, 44, 18, 10, 140, 65, 158, 134, 230, 104, 53, 175, 11, 155, 161, 36, 90, 60, 81, 133, 60, 128, 59, 247, 87, 213, 197, 3, 45, 98, 249, 147, 82, 47, 154, 0, 194, 176, 239, 107, 12, 84, 93, 136, 211, 251, 172, 26, 22, 172, 137, 166, 203, 75, 196, 97]), value: EventValue([249, 81, 131, 212, 125, 203, 215, 152, 50, 234, 30, 166, 121, 35, 241, 171, 10, 231, 156, 55, 56, 22, 22, 177, 108, 171, 104, 248, 40, 70, 164, 80, 69, 56, 200, 26, 214, 26, 233, 39, 14, 51, 243, 159, 125, 229, 145, 100, 115, 202, 144, 215, 200, 214, 1, 105, 90, 141, 203, 143, 220, 234, 5, 85, 231, 174, 133, 155, 154, 144, 183, 41, 22, 72, 245, 211, 88, 143, 246, 0, 216, 233, 1, 47, 192, 174, 129, 238, 181, 46, 50, 242, 77]) }, Event { key: EventKey([121, 15, 222, 59, 38, 102, 199, 75, 255, 73, 156, 70, 210, 183, 121, 90, 220, 91, 53, 104, 65, 5, 122, 155, 96]), value: EventValue([232, 120, 62, 100, 151, 156, 150, 124, 231, 97, 141, 125, 108, 9, 172, 228, 216, 198, 228, 23, 83, 108, 98, 101, 24, 176, 52, 220, 148, 80, 254, 97, 98, 44, 58, 101, 251, 59, 148, 124, 92, 4, 200, 142, 52, 194, 241, 174, 250, 205, 51, 179, 149, 93, 202, 114, 213]) }, Event { key: EventKey([196, 33, 88, 146, 2, 110, 244, 89, 68, 96, 106, 254, 116, 252, 102, 66, 3, 234, 126, 41, 195, 11, 226, 60, 134, 33, 14, 127, 117, 101, 51, 130, 45, 171, 73, 240, 185, 27, 149, 14, 149, 53, 253, 219, 189, 35, 210, 188, 219, 24, 67, 254, 143, 10, 232, 209, 118, 196, 229, 135, 133, 213, 249, 227, 133, 70, 80, 222, 124, 174, 14, 236, 69]), value: EventValue([205, 35, 27, 28, 142, 249, 53, 157, 221, 250, 170, 103, 219, 209, 209, 39, 3, 248, 6, 67, 167, 177, 163, 156, 22, 50, 208, 107, 120, 249, 199, 245, 190, 154, 141, 22, 189, 223, 13, 180, 29, 100, 3, 20, 221, 195, 214, 191, 138, 63, 60, 130, 134, 10, 215, 200, 73, 103, 180, 39, 29, 116]) }, Event { key: EventKey([92, 19, 168, 30, 138, 104, 113, 129, 27, 171, 215, 19, 189, 30]), value: EventValue([98, 90, 139, 220, 210, 212, 170, 128, 62, 19, 210, 178, 151, 122, 68, 86, 213, 141, 196, 219, 70, 208, 176, 71, 74, 139, 119, 221, 153, 96, 19, 162, 228, 214, 110, 161, 37, 150, 235, 24, 22, 89, 166, 23, 86, 77, 32, 164, 255, 230, 251, 224, 100, 52, 58, 187, 250, 174, 147, 45, 20]) }, Event { key: EventKey([89, 89, 86, 242, 203, 86, 71, 38, 75, 108, 242, 133]), value: EventValue([60, 86, 0, 189, 21, 254, 109, 63, 250, 83, 117, 124, 145, 201, 234, 129, 236, 48, 253, 176, 189, 83, 87, 65, 113, 250, 225, 62, 240, 149, 34, 188, 179, 18]) }, Event { key: EventKey([245, 231, 234, 248, 194, 126, 89, 128, 30, 211, 210, 181, 131, 131, 99]), value: EventValue([220, 90, 121, 39, 172, 130, 245, 61, 95, 11, 40, 198, 83, 30, 59, 122, 58, 92, 20, 47, 115, 111, 57, 58, 159, 164, 95, 135, 140, 48, 170, 154, 122, 42, 23, 173, 68, 223, 53, 32, 21, 0, 57, 235, 86, 0, 249, 207, 72, 98, 219, 13, 221, 65, 205, 121, 178, 172, 251, 179, 84, 12, 251, 114, 214, 125, 24, 149, 91, 228, 41, 33, 201, 19, 0, 193, 79, 219, 48, 5, 69, 210]) }], receipt: 3736626081 }, TransactionReceipt { tx_hash: [73, 164, 96, 195, 183, 161, 196, 12, 72, 40, 184, 216, 92, 237, 83, 26, 223, 39, 41, 163, 48, 74, 20, 53, 111, 133, 213, 102, 67, 255, 178, 193], body_to_save: Some([64, 248, 118, 30, 134, 236, 249, 95, 236, 151, 235, 156, 203, 30, 57]), events: [Event { key: EventKey([199, 127, 31, 42, 128, 62, 128, 230, 204, 174, 115, 234, 161, 19, 34, 92, 84, 135, 237, 171, 147, 110, 26, 2, 121, 137, 40, 186, 140, 84]), value: EventValue([57, 11, 121, 83, 202, 146, 208, 140, 31, 66, 94, 156, 101, 185, 70, 220, 149, 41, 181]) }, Event { key: EventKey([122, 84, 179, 99, 97, 135, 199, 56, 164, 79, 248, 4, 156, 106, 237, 179, 94, 92, 66]), value: EventValue([167, 141, 167, 47, 178, 62, 58, 106, 95, 201, 179, 3, 5, 100, 69, 114, 108, 126, 30, 133, 0, 44, 233, 243, 174, 102, 22, 231, 2, 72, 135, 128, 13, 172, 118, 132, 19, 163, 158, 179, 54, 28, 153, 211, 23, 116, 207, 183, 158, 19, 21, 38, 234, 244, 222, 105, 121, 74, 38, 37, 223, 164, 194, 62, 185, 43, 31, 113, 232, 148, 23, 25, 130, 225, 130, 239, 26, 68, 74, 185, 185, 209, 84, 33, 84, 194, 144, 175, 157, 130, 20, 250, 9, 234]) }, Event { key: EventKey([46, 214, 220, 156, 232, 150, 62, 120, 253, 169, 248, 198, 84, 109, 150, 216, 98, 186, 101, 154, 173, 231, 77, 177, 60, 110]), value: EventValue([211, 185, 233, 113, 99, 17, 204, 108, 215, 157, 199, 7, 20, 136, 226, 154, 57, 221, 31, 210, 26, 111, 224, 233, 255, 195, 254, 23, 137, 136, 185, 53, 72, 36, 82, 82, 86, 93, 24, 198, 139, 23, 79, 39, 119, 246]) }, Event { key: EventKey([110, 121, 225, 38, 169, 125, 165, 36, 76, 32, 228, 155, 127, 20, 88, 68, 32, 58, 175, 133, 200, 17, 94, 213, 65, 50, 141, 242, 93, 133, 226, 168, 129, 187, 7, 68, 178, 179, 143, 79, 187, 16, 45, 177, 250, 120, 6, 201, 232, 154, 173, 6, 20, 89, 109, 225, 160, 88, 167, 62, 11, 31, 209, 170, 101, 230, 111, 135, 49, 223, 226, 166, 155, 128, 186, 99, 127, 75, 19, 48, 203, 195, 247, 14, 39, 4, 137]), value: EventValue([228, 144, 14, 180, 5, 71, 52, 214, 157, 250, 247, 77, 176, 135, 181, 174, 217, 168, 230, 179, 33, 85, 215, 208, 89, 241, 0, 61, 107, 145, 42, 166, 201, 90, 197, 64, 204, 21, 181, 245, 232, 190, 141, 0, 9, 38, 67, 193, 19, 186, 43, 95, 223, 207, 113, 4, 153, 167, 105, 152, 33, 170, 110, 107]) }, Event { key: EventKey([223, 197, 176, 244, 225, 80, 143, 133, 229, 72, 247, 208, 120, 130, 6, 236, 75, 27, 232, 37, 29, 117, 2, 141, 113, 94, 202, 33, 129, 234, 108, 63, 204, 102, 95, 218, 68, 44, 191, 230, 130, 105]), value: EventValue([2, 35, 9, 200, 17, 56, 117, 37, 47, 146, 223, 232, 172, 219, 155, 60, 157, 127, 235, 237, 51, 229, 157, 124, 28, 249, 110, 209, 247, 12, 68, 186, 50, 96, 12, 195, 19, 65, 249, 180, 223, 58, 212, 7, 71, 198, 237, 67, 170, 172, 31, 199, 49, 244, 36, 151, 108, 51, 109, 241, 220, 125, 25, 77, 72, 36, 149, 58, 78, 87, 60, 107, 254, 255, 229, 132, 42, 253, 87, 89, 39, 206, 128, 60, 120, 52, 229, 205, 19, 47, 183, 19, 185, 194, 49, 191]) }, Event { key: EventKey([212, 94, 232, 61, 215, 172, 159, 152, 159, 42, 209, 189, 69, 27, 96, 1, 35, 110, 131, 89, 88, 90, 219, 232, 231, 90, 73, 62, 66, 107, 224, 193, 7, 179, 86, 228, 58, 24, 195, 225, 94, 36, 95, 202, 235, 57, 126, 228, 129, 50, 176, 179, 0, 62, 235, 22, 81, 24, 154, 76, 191, 246, 131, 248, 121, 13]), value: EventValue([153, 9, 129, 135, 73, 29, 35, 117, 65, 105, 26, 149, 187, 9, 253, 127, 98, 200, 132, 35, 201, 97, 115, 107, 203, 140, 64, 221, 166, 165, 247, 155, 1, 170, 191, 57, 102, 205, 250, 223, 178, 221, 90, 177, 39, 60, 76, 110, 122, 58, 172, 170, 151, 127, 200, 184, 157, 238, 151]) }, Event { key: EventKey([134, 88, 82, 225, 110, 17, 177, 198, 178, 77, 135, 233, 56, 217, 131, 188, 248, 181, 133, 71, 197, 20, 136, 207, 197, 18, 13, 22, 131, 235, 34, 220, 191, 37, 195, 251, 213, 95, 97, 230, 165, 60, 67, 102, 68]), value: EventValue([254, 93, 44, 39, 229, 209, 130, 53, 244, 34, 102, 76, 183, 170, 200, 222, 120, 244, 157, 85, 60, 156, 185, 0, 179, 199, 238, 175, 118, 63, 205, 74]) }, Event { key: EventKey([37, 61, 168, 139, 217, 167, 12, 230, 105, 47, 204, 179, 95, 176, 47, 203, 19, 142, 189, 166, 201, 228, 179, 1, 4, 133, 3, 64, 67, 5, 109, 118, 41, 206, 6, 2, 165, 122, 197, 180, 180, 12, 70, 49, 244, 82, 205, 228, 130, 145, 147, 105]), value: EventValue([7, 166, 245, 222, 243, 69, 17, 53, 56, 179, 231, 14, 232, 164, 167, 4, 208, 58, 14, 180, 27, 202, 32, 83, 185, 1, 36, 217, 156, 18, 119, 2, 232, 166, 20, 20, 59, 103, 156, 3, 192, 160, 227, 165, 136, 122, 141, 146, 74, 33, 126, 145]) }, Event { key: EventKey([42, 50, 254, 138, 184, 41, 30, 7, 38, 188, 178, 241, 82, 34, 24, 150, 30, 146, 63, 182, 52, 56, 247, 24, 24, 246, 89, 96, 137, 205, 255, 144, 243, 134, 70, 62, 42, 253, 196, 176, 30, 68, 197, 31, 191, 227, 136, 230, 110, 182, 196, 28, 61, 60, 235, 254, 35, 114, 177, 195, 208, 110, 83, 8, 229, 59, 203, 95, 55, 59, 191, 225, 177, 201, 200, 166, 238, 87, 45, 93]), value: EventValue([122, 86, 77, 92, 213, 23, 0, 84, 115, 252, 140, 108, 219, 67, 229, 64, 246, 110, 143, 231, 37, 130, 169, 194, 3, 251, 172, 96, 21, 221, 162, 85, 7, 230, 102, 145, 49, 196, 49, 143, 251, 216, 56, 137, 45, 1, 145, 141, 160, 203, 91, 241, 215, 21, 41, 3, 61, 223, 117, 154, 174]) }], receipt: 256290286 }, TransactionReceipt { tx_hash: [68, 100, 243, 168, 70, 223, 80, 52, 255, 183, 8, 153, 207, 79, 222, 246, 0, 108, 146, 43, 249, 143, 208, 35, 21, 32, 248, 171, 233, 183, 201, 112], body_to_save: Some([37, 48, 171, 225, 219, 169, 169, 20, 0, 54, 52, 244, 214, 180, 54, 227, 62, 240, 245, 129, 50]), events: [Event { key: EventKey([246, 172, 82, 31, 130, 176, 95, 164, 230, 228, 246, 189, 99, 129, 248, 41, 69, 124, 77, 212, 95, 62, 92, 213, 219, 193, 249, 175, 38, 206, 108, 145, 215, 213, 115, 224, 7, 35, 4, 94, 89, 32, 77, 158, 224, 47, 70, 197, 90, 128, 154, 201, 15, 207, 230, 146, 218, 142, 165, 63, 211, 110, 12, 57, 125, 85, 218, 70, 119, 209, 175, 219, 131, 95, 197, 44, 57, 214, 77, 162, 59, 127, 216, 131, 89, 191, 80, 88, 233, 234, 111]), value: EventValue([87, 242, 84, 44, 12, 15, 226, 109, 107, 126, 90, 241, 217, 72, 234, 180, 0, 150, 92, 37, 228, 221, 142, 232, 233, 236, 233, 249, 132, 157, 62, 138, 122, 91, 235, 178, 170, 105, 73, 128, 151, 129, 152, 51, 173, 153, 106, 96, 63, 241, 112, 3, 80, 185]) }, Event { key: EventKey([48, 28, 73, 119, 75, 178, 125, 10, 26, 110, 56, 191, 179, 191, 11, 49, 165, 123, 144, 97, 172, 123, 184, 247, 141, 125, 119, 14, 243, 195, 16, 107, 64, 78, 15, 130, 212, 131, 116, 75, 207, 86, 177, 131, 195, 63, 126, 68, 183, 250, 81, 100, 124, 179, 76, 76, 37, 37, 184, 45, 131, 30, 117, 242, 165, 233, 185, 252, 70, 85, 253, 203, 4, 85, 27, 135, 147]), value: EventValue([66, 68, 237, 149, 14, 223, 197, 231, 92, 113, 237, 106, 112, 216, 184, 226, 74, 200]) }, Event { key: EventKey([33, 68, 204, 250, 38, 61, 182, 20, 182, 148, 168, 135]), value: EventValue([8, 167, 67, 81, 239, 163, 74, 141, 104, 36, 185, 118, 54, 192, 197, 102, 240, 125, 174, 102, 242, 35, 202, 198, 137, 182, 55, 66, 47, 171, 34, 179, 216, 145, 219, 250, 214, 167, 19, 26, 238, 70, 248, 168, 21, 213, 226, 225, 22, 222, 78, 245, 83, 37, 194, 119, 32, 5, 128, 51, 178, 222, 218, 33, 228, 29]) }, Event { key: EventKey([19, 240, 210, 229, 225, 50, 102, 130, 101, 159, 142, 56, 129, 88, 150, 104, 42, 209, 47, 161, 117, 120, 7, 32, 131, 21, 251, 134, 115, 122, 168, 223, 235, 72, 248, 146, 23, 10, 95, 123, 13, 114, 116, 32, 211, 201, 229, 59, 59, 65, 158, 115, 111, 195, 96, 125, 222, 58]), value: EventValue([25, 88, 35, 95, 158, 111, 175, 126, 154, 203, 60, 74, 176, 14, 148, 11, 182, 233, 3, 204, 124, 120, 61, 7, 211, 40, 168, 17, 73, 208, 209, 189, 229, 27, 245, 76, 83, 233, 14, 92, 28, 38, 49, 62, 9, 209, 141, 38, 69, 113, 43, 52, 238, 103, 207, 63, 137, 246, 154, 75, 240, 62, 121, 66, 68, 107, 76, 219]) }, Event { key: EventKey([179, 220, 71, 154, 214, 252, 169, 239, 162, 150, 27, 19, 60, 75, 129, 17, 141, 241, 20, 209, 97, 24, 170, 248, 49, 223, 171, 137, 203, 245, 139, 126, 195, 238, 77, 251, 183, 255, 56, 110, 248, 31, 213, 86, 15, 97, 127, 229, 236, 38, 252, 55, 115, 7, 131, 144, 189]), value: EventValue([109, 238, 202, 99, 141, 113, 78, 151, 211, 90, 86, 200, 236, 116, 98, 56, 138, 171, 9, 245, 46, 86, 123, 113, 234, 42, 196, 196, 75, 113, 212, 31, 154, 169, 188, 33, 134, 120, 131, 8, 45, 238, 189, 214, 109, 88, 190, 64, 163, 17, 146, 136, 115, 112, 51, 74, 16, 32, 215, 100, 161, 52, 95, 2, 68, 241, 140, 138]) }, Event { key: EventKey([14, 15, 145, 125, 149, 226, 126, 232, 198, 106, 179, 216, 248, 161, 162, 218, 94, 252, 255, 82, 130, 137, 49, 55, 161, 138, 58, 14, 150, 30, 102, 9, 171, 40, 127, 77, 233]), value: EventValue([120, 85, 120, 16, 226, 46, 109, 223, 198, 43, 98, 246, 226, 176, 116, 213, 51, 172, 213, 90, 238, 197, 132, 144, 176, 27, 108, 86, 97, 196, 240, 0, 58, 102, 197, 209, 1, 236, 48, 200, 201, 92, 189, 189, 110, 131, 120, 65, 146, 65, 174, 201, 180, 111, 186, 201, 203, 119, 35, 217, 91, 25, 111, 102, 99, 182, 63, 247, 104, 138, 68, 197, 4, 228, 52, 90, 52, 81, 154, 208, 119, 28, 112, 243, 241, 32, 65, 58, 151, 232, 146, 98, 51, 218, 120]) }], receipt: 48529473 }, TransactionReceipt { tx_hash: [158, 170, 168, 59, 5, 96, 252, 67, 168, 118, 50, 196, 118, 242, 103, 9, 27, 118, 29, 75, 167, 71, 147, 73, 174, 81, 181, 223, 160, 48, 47, 117], body_to_save: None, events: [Event { key: EventKey([136, 186, 154, 222, 223, 118, 100, 71, 142, 98, 41, 27, 79, 129]), value: EventValue([127, 126, 190, 192, 215, 99, 45, 165, 3, 147, 210, 14, 73, 141, 167, 7, 225, 217, 164, 99, 238, 146, 35, 20, 176, 232, 132, 225, 129, 106, 54, 147, 90, 46, 86, 47, 171, 179, 162, 147, 227, 31, 138, 111, 144, 19, 215, 14, 193, 20, 117, 204, 248, 193, 217, 8, 245, 104, 240, 144, 221, 25, 198, 17, 238, 119, 170, 117]) }, Event { key: EventKey([97, 159, 109, 7, 184, 124, 103, 121, 60, 100, 222, 49, 32, 182, 27, 44, 86, 71, 147, 26, 115, 211, 219, 185, 91, 127, 247, 103, 57, 162, 5, 184, 7, 233, 169, 5, 36, 130, 33, 157, 171, 149, 220, 68, 156, 209, 51, 125, 144, 132, 222, 201, 40, 138, 138, 19, 186, 51, 63, 246]), value: EventValue([143, 49, 172, 14, 234, 9, 231, 104, 58, 52, 28, 135, 213, 100, 231, 42, 25, 25, 170, 187, 176]) }], receipt: 3536780429 }], inner: 3891968523 }, BatchReceipt { batch_hash: [198, 185, 78, 45, 187, 171, 154, 173, 207, 101, 126, 242, 1, 31, 17, 109, 92, 29, 176, 75, 65, 226, 38, 44, 206, 133, 20, 175, 24, 82, 25, 245], tx_receipts: [TransactionReceipt { tx_hash: [207, 106, 2, 85, 152, 129, 172, 81, 97, 98, 66, 239, 185, 92, 127, 1, 70, 251, 157, 196, 109, 131, 43, 34, 18, 198, 169, 236, 209, 66, 24, 157], body_to_save: Some([172, 245, 19, 37, 38, 204, 177, 36, 15, 180, 198, 147, 174, 59, 252, 108, 201, 112, 86, 180, 112, 137, 202, 17, 64, 41, 95, 102, 231, 110, 87, 89, 248, 112, 58, 60, 90, 103, 128, 73, 67, 241, 56, 221, 74]), events: [Event { key: EventKey([88, 107, 233, 151, 201, 85]), value: EventValue([55, 77, 134, 11, 236, 222, 33, 129, 59, 102, 186, 114, 80, 219, 48, 49, 56, 156, 153, 179, 116, 69, 105, 215, 71, 197, 31, 141, 94]) }, Event { key: EventKey([222, 228, 32, 176, 73, 133, 26, 224, 178, 232, 13, 220, 33, 59, 67, 39, 218, 95, 75, 163, 241, 54, 113, 200, 100, 186, 163, 145, 216, 224, 27, 99, 145, 95, 226, 56, 22, 111, 14, 191]), value: EventValue([107, 177, 215, 104, 133, 11, 93, 161, 141, 54, 150, 121, 136, 120, 126, 164, 146, 5, 236, 154, 2, 112, 47, 3, 223, 40, 32, 251, 107, 243, 188, 198, 123, 212, 54, 105, 177, 200, 255, 232, 194, 154, 164, 66, 3, 81, 67, 7, 182, 94, 5, 241, 164, 197, 165, 3, 160, 202, 193, 13, 245, 159, 129, 155, 90, 134, 174, 107, 0, 225, 186]) }, Event { key: EventKey([155, 104, 102, 125, 176, 240, 230, 168, 161, 156, 71, 122, 190, 75, 172, 72, 156, 171, 250, 179, 100, 239, 199, 115, 236, 195, 225, 12, 36, 182, 80, 150, 248, 62, 14, 18, 53, 170, 134, 228, 109, 28, 115, 198, 143, 239, 225, 53, 173, 150, 249, 154, 240, 2, 54, 83, 246, 246, 77, 167, 185]), value: EventValue([32, 145, 237, 136, 42, 72, 84, 39, 184, 169, 4, 0, 199, 70, 125, 18, 162, 134, 150, 85, 214, 65, 197, 77, 134, 225, 122, 210, 248, 107, 142, 111, 23, 168, 84, 37, 99, 201, 219, 35, 174, 149, 114, 226, 149, 253, 86, 155, 49, 54, 161, 191, 201, 253, 81, 239, 109, 93, 80, 106, 156, 203, 195]) }, Event { key: EventKey([186, 251, 207, 130, 184, 63, 57, 171, 174, 205, 101, 76, 135, 11, 171, 115, 164, 164, 13, 93, 222, 82, 93, 125, 133, 114, 251, 69]), value: EventValue([246, 143, 162, 233, 240, 233, 4, 29, 113, 54, 223, 146, 95, 6, 130, 47, 82, 62, 81, 220, 21, 200, 104, 216, 228, 212, 98, 2, 118, 250, 28, 45, 253, 26, 223, 41, 217, 172, 30, 231, 255, 24, 41, 226, 194, 21, 74, 71, 150, 4, 108, 239, 148, 78, 185, 79, 2, 135, 71, 195, 101, 171, 183, 69, 146, 252, 182, 130, 109, 184, 247, 119, 132, 173, 186, 169, 215, 134, 255, 35, 96, 109, 254, 155, 210, 190, 112]) }, Event { key: EventKey([159, 178, 79, 10, 48, 92, 16, 98, 247]), value: EventValue([111, 180, 20, 73, 14, 220, 213, 142, 41, 219, 10, 16, 80, 54, 211, 80, 252, 167, 15, 13, 142, 122, 36, 94, 12, 41]) }, Event { key: EventKey([31, 161, 99, 250, 214, 165, 228, 166, 110, 255, 88, 160, 41, 87, 2, 93, 122, 42, 73, 2, 135, 5, 201, 13, 137, 114, 85, 124, 165, 224, 50, 86, 110, 173, 162, 21, 29, 247, 137, 10, 53, 189, 153, 250, 144, 122, 6, 199, 49, 31, 219, 247, 168, 121, 6, 167, 37, 223, 199, 107, 249, 254, 166, 111, 138, 58, 131, 176, 82, 173, 101, 30, 135, 55, 16, 115, 103, 249, 216, 1, 42, 185, 174, 41, 87, 140, 22, 161, 101, 167, 112, 171, 226, 28]), value: EventValue([191, 65, 183, 213, 170, 174, 138, 197, 150, 193, 57, 19]) }, Event { key: EventKey([6, 95, 29, 58, 18, 100, 157, 195, 167, 184, 77, 74, 89, 67, 64, 253, 236, 189, 90, 93, 49, 120, 143, 224]), value: EventValue([218, 20, 202, 11, 11, 195, 225, 176, 74, 41, 7, 8, 215, 205, 118, 203, 26, 212, 156, 189, 116, 228, 86, 160, 199, 241, 199, 81, 44, 60, 23, 64, 83, 230, 96, 160, 121, 251, 239, 120, 202, 92, 147, 190, 119, 111, 210, 248, 30, 189, 112, 182, 55, 58, 58, 241, 162, 242, 77, 6, 99, 210, 41, 84, 150, 168, 82, 199, 73, 44, 235, 83, 218, 47, 252, 17, 212, 61, 161, 38, 157, 155, 92, 158, 181, 192]) }, Event { key: EventKey([51, 143, 228, 228, 211, 23, 91, 117, 151, 86, 246, 146, 152, 98, 122, 127, 185, 93, 69, 121, 120, 57, 143, 62, 81, 249, 221, 129, 174, 199, 14, 2, 239, 70, 111, 147, 78, 170, 205, 16, 11, 16, 65, 124, 92, 253, 19, 247, 79, 176, 150, 139, 84, 37, 55, 233, 228, 41, 177, 213, 97, 71]), value: EventValue([192, 110, 137, 124, 173, 0, 186, 45, 57, 64, 17, 166, 114, 84, 43, 179, 221, 45, 44, 51, 220, 152, 211, 241, 178, 95, 168, 136, 92, 119, 173, 168, 113, 109, 145, 248, 167, 193, 201, 84, 121, 254, 60, 188, 189, 122, 157, 233, 112, 121, 170, 232, 116, 56, 196, 227, 205, 44, 16, 33, 144, 184, 154, 66, 230, 163, 23, 21, 28, 58, 220, 223, 95, 254]) }], receipt: 3051018555 }, TransactionReceipt { tx_hash: [63, 81, 178, 236, 219, 123, 142, 216, 46, 199, 237, 19, 62, 30, 206, 132, 192, 157, 152, 245, 106, 75, 30, 17, 12, 242, 158, 15, 219, 129, 168, 42], body_to_save: None, events: [Event { key: EventKey([92, 224, 99, 110, 76, 190, 139, 162, 91, 126, 6, 159, 136, 31, 215, 204, 22]), value: EventValue([60, 246, 202, 206, 139, 37, 232, 188, 213, 30, 80, 160, 128, 73, 221, 90, 151, 116, 112, 174, 108, 4, 122, 124, 10, 246, 188, 121]) }, Event { key: EventKey([122, 63, 32, 186, 72, 96, 226, 30, 221, 203, 246, 25, 172, 207, 231, 79, 26, 112, 140, 143, 225, 23, 162, 11, 230, 22, 169, 24, 142, 90, 247, 146, 16, 15, 223, 216, 152, 164, 133, 85, 224, 14, 123, 26, 156, 3, 245, 22, 101, 2, 72, 29, 143, 5, 229, 210, 66, 35, 204, 243, 18, 230, 28, 249, 182, 163, 212, 95, 255, 159, 126, 46, 80, 80, 1, 71, 39, 156, 225, 30, 246, 97, 27, 50, 103, 85, 55]), value: EventValue([195, 218, 230, 52, 229, 63, 122, 39, 45, 97, 43, 78, 12, 41, 132, 243, 39, 241, 121, 13, 55, 180, 251, 13, 248, 1, 140, 90, 152, 111, 131, 231, 222, 164, 190, 10, 11]) }, Event { key: EventKey([63, 143, 230, 82, 16, 200, 141, 163, 69, 49, 156, 181, 247, 187, 96, 37, 56, 215, 223, 105, 197, 146, 228, 87, 12, 120, 109, 162, 210, 119, 84, 14, 197, 43, 93, 228, 143, 88, 70, 126, 48, 175, 214, 167, 114, 145, 28, 245, 125, 193, 239, 67, 224, 93, 130, 231, 210, 160, 70, 108, 63, 250, 52, 59, 226, 5, 222, 111, 79, 64, 9]), value: EventValue([76, 170, 39, 120, 58, 153, 44, 63, 229, 140, 26, 110, 103, 191, 6, 253, 204, 203, 49, 140, 219, 62, 152, 164, 98, 175, 19]) }, Event { key: EventKey([132, 16, 123, 156, 238, 224, 65, 9, 253, 184, 68, 35, 152, 58, 63, 104, 167, 190, 172, 233, 189, 74, 116, 180, 109, 124, 84, 125, 247, 124, 211, 213, 210, 182, 83, 78, 28, 186, 87, 97, 76, 136, 193, 85, 98, 237, 6, 57, 158, 25, 213, 108, 199, 49, 249, 155, 17, 107, 84, 79, 235, 88, 216, 245, 51, 64, 150, 29, 13, 136, 144, 168, 4, 192, 18, 211, 230, 186, 47, 147, 134, 140, 95, 63, 95, 146, 131, 135, 77, 91, 191, 135, 203, 166, 242, 119, 170, 25]), value: EventValue([145, 160, 243, 84, 99, 36, 118, 53, 91, 115, 0, 161, 107, 2, 93, 126]) }, Event { key: EventKey([61, 40, 66, 176, 220, 208, 62, 208, 100, 89, 152, 167, 229, 166, 5, 111, 225, 83, 233, 247, 37, 131, 75, 65, 113, 218, 190, 148, 46, 38, 21, 229, 167, 93, 83, 118, 234, 163, 41, 60, 115, 110, 194, 94, 180, 176, 158, 188, 176, 47, 60, 104, 58, 144, 153, 160, 153, 62, 67, 18, 137, 138, 74, 207, 172, 100, 44, 171, 219]), value: EventValue([93, 140, 153, 50, 85, 39, 155, 70, 81, 141, 212, 42, 147, 245, 166, 41, 118, 182, 25, 197, 245, 19, 5, 148, 88, 149, 96, 215, 249, 161, 49, 56, 95, 67, 74, 76, 46, 62, 137, 142, 47, 210, 72, 83, 180, 160, 210, 89, 57, 54, 124, 208, 122, 148, 158, 68, 78, 138, 168, 218, 71]) }], receipt: 2247774522 }, TransactionReceipt { tx_hash: [147, 50, 113, 32, 119, 74, 194, 46, 73, 0, 174, 5, 126, 229, 14, 201, 244, 251, 134, 118, 103, 124, 13, 206, 140, 92, 129, 163, 107, 96, 219, 178], body_to_save: Some([79, 59, 191, 249, 192, 44, 11, 6, 181, 194, 249, 45, 168, 119, 220, 19, 247, 32, 112, 224, 21, 197, 213, 58, 94, 143, 129, 73, 146, 133, 74, 85, 10, 139, 202, 151, 213, 34, 216, 249, 189, 23, 62, 122, 200, 24, 90, 19, 37, 161, 59]), events: [], receipt: 1370457798 }], inner: 1040487561 }, BatchReceipt { batch_hash: [19, 40, 85, 90, 87, 22, 18, 252, 105, 86, 109, 168, 162, 74, 199, 148, 212, 170, 110, 174, 53, 126, 21, 30, 91, 254, 215, 145, 207, 252, 228, 245], tx_receipts: [TransactionReceipt { tx_hash: [169, 120, 170, 84, 79, 172, 44, 139, 14, 35, 19, 248, 242, 84, 7, 105, 240, 235, 143, 39, 237, 150, 102, 52, 70, 129, 152, 169, 160, 54, 172, 211], body_to_save: Some([20, 29, 48, 10, 190, 45, 30, 177, 246, 143, 31, 94, 54, 239, 253, 80, 167, 100, 32, 14, 59]), events: [], receipt: 1353148007 }, TransactionReceipt { tx_hash: [118, 183, 32, 105, 145, 158, 171, 250, 73, 159, 17, 22, 22, 246, 179, 95, 22, 150, 125, 175, 39, 171, 89, 56, 6, 177, 59, 227, 26, 2, 127, 26], body_to_save: None, events: [Event { key: EventKey([19, 1, 9, 24, 6, 73, 110, 6, 179, 71, 105, 123, 87, 6, 207, 66, 72, 30, 212, 77, 225, 122, 198, 210, 236, 42, 151, 121, 254, 62, 86, 187, 178, 224, 132, 94, 154, 206, 127, 233, 208, 22, 130, 11, 9, 152, 30, 21, 246, 80, 88, 98, 158, 242, 171, 81, 243, 41, 91, 69, 153, 81, 6, 124, 5, 170, 188, 121, 41, 185, 115, 100, 21, 168, 158, 89, 12, 226, 39, 71]), value: EventValue([192, 12, 234, 168, 167, 146, 177, 82, 222, 119, 60, 239, 89, 239, 90, 109, 120, 239, 246, 66, 214, 127, 70, 100, 181, 203, 250, 215, 191, 33, 66, 99, 181, 194, 226, 146, 144, 173, 233, 205, 216, 74, 221, 68, 231, 84, 118, 202, 174, 200, 33, 31, 236, 227, 96, 170, 236, 180, 38, 57, 136, 20, 230, 242, 41, 142, 246, 75, 135, 76, 7, 57, 142, 122, 107, 127, 78, 243, 156, 156, 163, 31, 217, 13, 46, 198, 201]) }, Event { key: EventKey([139, 11, 92, 21, 192, 47, 247, 158, 90, 93, 201, 119, 99, 102, 107, 201, 197, 202, 126, 159, 37, 80, 230, 132, 54, 169, 149, 165, 93, 34, 155, 147, 251, 89, 81, 89, 18, 101, 59, 118, 132, 11, 61, 216, 169, 171, 172, 194, 239, 217, 199, 156, 133, 45, 221, 125, 161, 251, 133, 32, 25, 208, 254, 148, 55, 4, 141, 164, 200, 59, 116, 79, 224, 253, 74, 41, 28, 184, 99, 118, 42, 115, 231, 176, 243, 112, 236, 107, 237, 115, 48, 83, 195, 180, 231, 228, 209, 207, 47]), value: EventValue([2, 149, 176, 112, 179, 43, 32, 163, 143, 146, 71, 254, 212, 59, 18, 101, 126, 17, 185, 250, 40, 121, 53, 107, 110, 23, 193, 28, 228, 31, 65, 132, 129, 134, 60, 115, 122, 1, 123, 158, 65, 180, 141, 118, 135, 14, 221, 210]) }, Event { key: EventKey([198, 39, 159, 247, 39, 221, 39, 209, 179, 149, 198, 212, 95, 97, 203, 8, 65, 51, 15, 67, 43, 37, 204, 123, 153, 38, 22, 159, 26, 44, 8, 70, 29, 144, 73]), value: EventValue([193, 22, 5, 24, 2, 51, 243, 157]) }, Event { key: EventKey([142, 3, 220, 102, 111]), value: EventValue([201, 20, 59, 160, 146, 191, 39, 116, 18, 164, 50, 209, 4, 136, 51, 2, 150, 184, 217]) }, Event { key: EventKey([118, 107, 69]), value: EventValue([178, 180, 228, 235, 175, 227, 167, 81, 145, 145, 112, 123, 81, 103, 127, 240, 5, 210, 129, 93, 16, 222, 68, 118, 120, 1, 192, 253, 103, 202, 213, 206, 223, 141, 57, 61, 80, 176, 0, 181, 109, 59, 232, 34, 6, 118, 165, 126, 66, 234, 193, 177, 143, 206, 238, 225, 189, 93, 98, 3, 205, 140, 12, 2, 164, 217, 233, 2, 153, 130, 169, 82, 106, 0, 47, 121, 51, 116, 129, 137, 169, 37, 157, 12, 82, 56, 159, 32, 171, 91, 65, 195, 21, 156, 159, 246, 30, 201]) }], receipt: 2500034780 }, TransactionReceipt { tx_hash: [178, 36, 48, 112, 45, 51, 219, 164, 47, 93, 35, 179, 98, 168, 196, 60, 243, 15, 187, 63, 226, 181, 182, 75, 58, 88, 207, 101, 23, 181, 15, 190], body_to_save: None, events: [Event { key: EventKey([84, 53, 194, 139, 28, 167, 249, 42, 68, 169, 121, 55, 193, 98, 129, 116, 50, 176, 32, 31, 189, 77, 90, 181, 64, 93, 65, 48, 78, 188, 103, 194, 215, 113, 112, 253, 11, 16, 157, 86, 56, 207, 210, 59, 64, 94, 181, 135, 68, 11, 209, 110, 26, 49, 95, 23, 87, 147, 117, 126, 219, 47, 135, 243, 55, 25, 210, 73, 60, 205, 61, 49, 227, 127, 74, 19, 36, 70, 141, 220, 26, 95, 3, 155, 196, 99, 21, 57, 130]), value: EventValue([234, 240, 212, 6, 81, 136, 176, 6, 214, 45, 196, 226, 110, 237]) }, Event { key: EventKey([138, 138, 174, 182, 231, 158, 0, 130]), value: EventValue([91, 233, 182, 88, 160, 64, 176, 193, 38, 40, 64, 36, 99, 199, 25, 105, 18]) }, Event { key: EventKey([22]), value: EventValue([244, 105, 142, 31, 221, 125, 65, 220, 62, 217, 230, 203, 147, 36, 187, 213, 163, 244, 153, 49, 157, 212, 201, 50, 63, 21, 176, 50, 223, 139, 247, 181, 173, 220, 120]) }, Event { key: EventKey([182, 147, 202, 198, 222, 129, 1, 246, 171, 194, 63, 252, 205, 211, 38, 53, 207, 22, 119, 168, 17, 23, 240, 111, 240, 153, 230, 174, 52, 223, 232, 73, 225, 172, 237, 93, 139, 21, 91, 81, 176, 110, 101, 146, 28, 144, 94, 131, 30, 52, 55, 175, 120, 86, 177, 140, 46, 179, 132, 57, 201, 231, 249, 42, 27, 119, 177, 8, 53, 39, 188, 74, 132]), value: EventValue([57, 145, 119, 178, 197, 2, 140, 15, 98, 82, 10, 214, 166, 222, 138, 150, 180, 189, 184, 66, 186, 215, 148, 29, 171, 106, 184, 89, 160, 130, 41, 28, 34, 114, 118, 141, 188, 126, 94, 30, 69, 223, 202, 225, 186, 148, 111, 224, 38, 239, 207, 123, 236, 93, 124, 234, 245, 60, 229, 152, 146, 243, 141, 171, 3, 23]) }], receipt: 575282917 }, TransactionReceipt { tx_hash: [94, 144, 29, 78, 86, 95, 182, 66, 251, 22, 148, 254, 147, 184, 163, 93, 189, 231, 14, 218, 90, 208, 105, 54, 10, 96, 174, 183, 22, 112, 113, 79], body_to_save: None, events: [Event { key: EventKey([97, 69, 163, 202, 83, 253, 217, 181, 41, 225, 220, 113, 92, 84, 173, 56, 214, 255, 171, 37, 64, 41, 160, 248, 192, 60, 53, 146, 18, 150, 12, 18, 156, 104, 73, 194, 1, 39, 141, 118, 63, 15, 9, 21, 185, 92, 253, 103, 39, 50, 21, 97, 109, 160, 175, 210, 60, 254, 142, 146, 221, 13, 226, 17, 68, 114, 136, 138, 36, 99, 86, 223, 37, 140, 251, 160, 139, 190, 173, 227, 0, 3, 105, 219, 128, 210]), value: EventValue([165, 58, 207, 140, 6, 129, 239, 112, 221, 58, 127, 57, 124, 237, 192, 108, 176, 161]) }, Event { key: EventKey([174, 254, 11, 54, 166, 144, 235, 181, 80, 0, 44, 201, 40, 20, 40, 196, 192, 78, 141, 82, 23, 16, 117, 87, 151, 205, 174, 129, 121, 147, 111, 234, 52, 8, 156, 101, 42, 53]), value: EventValue([38, 249, 27, 195, 214, 86, 20, 27, 235, 7, 82, 67, 226, 188, 72, 167, 172, 157, 133, 227, 210, 35, 18, 123, 122, 159, 146, 151, 43, 74, 104, 33, 198, 96, 0, 94, 246, 239, 251, 201, 203, 226, 230, 54, 16, 4, 36, 194, 173, 29, 197, 72, 12, 40, 15, 100, 15, 197, 206, 135, 135, 128, 4, 63, 151, 227, 33, 68, 238, 93, 250, 236, 92, 66, 88, 240, 244, 4, 0, 26, 25, 151, 116, 198]) }, Event { key: EventKey([24, 93, 116, 155, 182, 228, 184, 51, 44, 209, 88, 186, 50, 117, 254, 64, 22, 24, 62, 64, 4, 54, 105, 231, 34, 117, 176, 128, 228, 177, 213, 192, 49, 8, 217, 58, 212, 222, 133, 105, 172, 74, 91, 138, 240, 208, 192]), value: EventValue([160, 89, 81, 94, 235, 254, 20, 70, 159, 226, 38, 227, 43, 56, 225, 4, 169, 92, 51, 227, 221, 228, 182, 228, 191, 46, 72, 172, 221, 125, 124, 154, 225]) }, Event { key: EventKey([11, 153, 173, 170, 106, 89, 128, 116, 176, 29, 177, 64, 178, 235, 135, 175, 30, 94, 115, 54, 60, 243, 30, 187, 90, 28, 16, 157, 122, 218, 3, 187, 48, 22, 77, 122, 46, 102, 54, 106, 88, 254, 186, 33, 15, 23, 7, 99, 79, 68, 155, 27, 145, 85, 131, 0, 202, 197, 14, 13, 113, 231, 59, 142, 142, 113, 31, 167, 70, 29, 94, 244, 97, 62, 85, 121, 69, 60, 183, 229, 237, 170, 204, 38]), value: EventValue([68, 112, 250, 127, 120, 182, 233, 19, 111, 50, 72, 189, 135, 143, 192, 63, 88, 132, 174, 31, 111, 199, 252, 188, 237, 204, 251, 106, 78, 25, 84, 150, 18, 129, 83, 61, 155, 206, 61, 94, 160, 150, 59, 123, 82, 229, 2, 28, 28, 82, 107, 41, 221, 199, 102, 196, 98, 230, 124]) }, Event { key: EventKey([207, 254, 145, 224, 227, 29, 20, 120, 212, 235, 90, 179, 237, 238, 15, 135, 112, 242, 253, 89, 252, 178, 102, 147, 29, 194, 252, 37, 107, 209, 47, 118, 202, 81, 175, 249, 127, 67, 34, 75, 235, 67, 247, 244, 37]), value: EventValue([246, 96, 7, 85, 240, 45, 129, 91, 115, 132, 190, 80, 124, 74, 106, 235, 233, 192, 248, 151, 3, 38, 170, 179, 37, 60, 171, 204, 72, 153, 204, 211, 183, 30, 19, 220, 108, 31, 43, 123, 173, 219, 87, 204, 158, 247, 119, 21, 98, 168, 125, 30, 213, 13, 213, 31, 187, 81, 82, 215, 168, 177, 5, 174, 121, 201, 207, 240, 87, 18, 40, 163, 189, 136, 212, 23, 125, 241, 94, 174, 165, 228, 17, 250, 28, 129, 250, 76, 194, 24, 25, 110, 150, 218, 1, 166, 87]) }], receipt: 2013086051 }, TransactionReceipt { tx_hash: [250, 40, 181, 97, 21, 11, 254, 66, 108, 175, 238, 13, 251, 6, 195, 243, 67, 199, 168, 0, 30, 86, 206, 18, 132, 43, 56, 248, 115, 116, 212, 200], body_to_save: None, events: [Event { key: EventKey([216, 138, 14, 71, 39, 219, 163, 89, 153, 138, 119, 156, 197, 27, 12, 250, 254, 92, 180, 12, 87, 151, 244, 128, 61, 124, 150, 187, 112, 223, 40, 168, 88, 90, 115, 247, 68, 40, 62, 98, 44, 111, 127, 135]), value: EventValue([53, 168, 15, 231, 121, 99, 155, 76, 122, 83, 177, 83, 195, 40, 8, 109, 225, 126, 178, 22, 212, 12, 102, 112, 166]) }, Event { key: EventKey([216, 17, 160, 120, 87, 249, 161, 62, 243, 58, 142, 75, 199, 238, 66, 246, 97, 247, 203, 104, 2, 212, 26, 223, 172, 31, 158, 40, 205, 169, 97, 123, 83, 3, 223, 135, 113, 143, 254, 155, 205, 165, 86, 58, 100, 118, 71, 237, 167, 243, 202, 174, 60, 227, 191, 220, 243, 53, 146, 27, 133, 167, 67, 99, 29]), value: EventValue([70, 206, 2, 194, 143, 56, 46, 119, 86, 94, 34, 24, 191, 215, 161, 88, 196, 43, 209, 119, 120, 169, 45, 10, 76, 182, 173, 225, 126, 175, 247, 197, 133, 112, 187, 215, 72, 252, 56, 162, 250, 244, 61, 99, 68, 49, 194, 26, 9, 224, 196, 54, 68, 67, 42, 207, 6, 214, 157, 208, 170, 222, 110, 226, 250, 201, 0, 66, 201, 135, 88, 2, 29, 45, 16, 128, 122, 75, 0, 2, 112, 134]) }, Event { key: EventKey([143, 123, 185, 252, 87, 5, 119, 182, 169, 26, 26, 111, 31, 164]), value: EventValue([204, 223, 184, 139, 48, 159, 103, 126, 21, 216, 235, 83, 147, 246, 100, 97, 104, 113, 78, 247, 81, 238, 145, 130, 244, 21, 85, 234, 76, 46, 244, 75, 54, 45, 59, 87, 216]) }, Event { key: EventKey([207, 92, 70, 248, 179, 53, 81, 139, 69, 8, 102, 110, 15, 202, 228, 247, 61, 81, 240, 125, 106, 237, 99, 116, 130, 252, 41, 35]), value: EventValue([125, 22, 131, 124]) }], receipt: 2888284668 }, TransactionReceipt { tx_hash: [78, 45, 104, 108, 44, 92, 172, 60, 70, 33, 6, 201, 83, 99, 183, 95, 214, 98, 153, 167, 205, 68, 107, 64, 145, 180, 39, 208, 70, 26, 222, 0], body_to_save: None, events: [Event { key: EventKey([142, 119, 56, 73, 45, 158, 52, 134, 216, 232, 132, 30, 83, 74, 158, 57, 146, 66, 33, 129, 88, 145, 33, 2, 38, 112, 251, 148, 234, 206, 153, 138, 77, 29, 237, 111, 177, 13, 7, 191, 161, 127, 85, 126, 33, 93, 229, 172, 181, 39, 194, 41, 51, 251, 22, 66, 13, 12, 148, 95, 189, 93, 56, 136, 146, 207, 32, 93, 35, 38, 113, 79, 254, 158, 19, 194, 140]), value: EventValue([248, 186, 49, 174, 219, 111, 132, 27, 143, 213, 228, 82, 208, 183, 72, 23, 55, 244, 87, 35, 206, 28, 34, 180, 39, 55, 245, 185, 252, 84, 245, 19, 95, 106, 198, 98, 236, 225, 156, 152, 233, 26, 26, 131, 14, 73, 231, 23, 209, 74, 148, 114, 163, 190, 30, 32, 245, 179, 102, 203, 83, 94, 196, 36, 172, 148, 15, 173, 9, 75, 41, 49, 221, 93, 198, 208, 80, 108, 24, 230, 4, 49, 209, 206]) }, Event { key: EventKey([161, 48, 48, 141, 175, 33, 124, 90, 33, 237, 131, 199, 121, 142, 175, 186, 127, 76, 134, 173, 87, 221, 232, 151, 197, 230, 251, 232, 141, 161, 4, 123, 203, 121, 163, 84, 85, 201, 239, 77, 175, 182, 13, 229, 96, 225, 138, 153, 74, 13, 3, 43, 210, 43, 98, 195, 57, 126, 47, 205, 95, 25, 245, 129, 117, 28, 219, 130, 182, 135, 5, 102, 18, 175, 18, 13, 152]), value: EventValue([224, 128, 180, 107, 234, 35, 47, 28, 27, 246, 39, 29, 82, 89, 140, 75, 161, 59, 208, 168, 171, 98, 90, 235, 205, 192, 102, 3, 101, 35, 37, 157, 52, 103, 14, 193, 13, 62, 214, 247, 93, 122, 152, 44, 153, 91, 158, 227, 171, 190, 208, 56, 64, 232, 223, 187, 236, 83, 79, 199, 10, 90, 236, 210, 184, 114, 251, 37, 90, 60, 118, 12, 34, 135, 80, 35, 106, 81, 186, 42, 212, 167, 142, 213, 57, 25, 163, 29, 63]) }, Event { key: EventKey([180, 2, 123, 176, 221, 55, 82, 248, 165, 37, 180, 179, 156, 84, 122, 85, 204, 36, 31, 243, 134, 200, 195, 88, 27, 76, 175, 116, 117, 176, 223, 14, 78, 28, 246, 25, 229, 145, 64, 95, 52, 236, 116, 129, 208, 38]), value: EventValue([57, 30, 8, 191, 54, 148, 119, 118, 254, 173, 37, 146, 119, 206, 194, 24, 44, 229, 14, 163, 27, 243, 17, 116, 77, 199, 78, 18, 95, 239, 255, 224, 48, 251, 122, 17, 215, 191, 238, 91, 13, 14, 3, 22, 6, 251, 124, 188, 163, 108, 251, 170, 193, 251, 32, 163, 239, 207, 227, 206, 253, 179, 71, 56, 26, 142, 96, 151, 7, 8, 13, 28, 0, 96, 30, 64, 187, 159, 44, 70, 225, 194, 250, 85, 167, 171, 253, 206, 10, 126, 61, 127, 242, 73, 123, 29, 94, 223, 39]) }, Event { key: EventKey([60, 194, 136, 51, 189, 50, 126, 160, 243, 137, 50, 228, 212, 6, 65, 218, 30, 86, 90, 254, 137, 30, 62, 157, 0, 91, 32, 127]), value: EventValue([13, 100, 216, 139, 132, 230, 130, 167, 190, 236, 166, 68, 59, 135, 35, 89, 39, 34, 140, 36, 229, 163, 245, 180, 93, 113, 222, 87, 98, 178, 43, 192, 109, 87, 238, 3, 45, 134, 35, 243, 147, 92, 49, 93, 120, 51, 49, 189, 60, 17, 72, 5, 58, 30, 208, 219, 26, 28, 62, 164, 167]) }, Event { key: EventKey([199, 12, 0, 141, 27, 1, 43, 158, 124, 19, 40, 189, 217, 160, 239, 187, 75, 30, 30, 229, 94, 165, 168, 191, 80, 142, 187, 38, 218, 163, 56, 236, 64, 231, 126, 189, 66, 103, 68, 19, 145, 20, 219, 98, 254, 77, 10, 198, 19, 210, 204, 250, 12, 55, 52, 171, 19, 133, 61, 178, 128, 62, 173, 5, 160, 192, 214, 47, 16, 82, 89, 250, 216, 2, 165, 81, 222, 165, 153, 178, 232, 209, 177, 2, 209, 198, 125, 109, 170, 221, 144, 175, 40]), value: EventValue([83, 67, 174, 158, 85, 204, 48, 62, 72, 39, 94, 123, 35, 8, 184, 12, 231, 170, 169, 17, 248, 158, 215, 187, 224, 46, 154, 193, 167, 148, 179, 235, 166, 235, 118, 122, 95, 207, 86, 13, 145, 33, 220, 201, 199, 32, 92, 164, 11, 9, 227, 145, 231, 189, 108, 104, 171, 166, 240, 118, 203, 39, 154, 66, 144, 174, 1, 94, 177, 181, 176, 212, 200, 61, 173, 89, 103, 161, 184, 228, 63, 249, 150, 65, 210, 105, 114, 99, 211, 168, 130, 44]) }, Event { key: EventKey([95, 15, 203, 139, 200, 28, 169, 2, 13, 86, 93, 10, 7, 180, 166, 125, 212, 163, 97, 104, 177, 20, 133, 26, 229, 196, 156, 101, 196, 30, 238, 246, 200, 52, 148, 62, 228, 245, 170, 56, 155, 247, 154, 232, 17, 70, 154, 25, 50, 48, 23, 217, 72, 21]), value: EventValue([126, 23, 113, 136, 184, 191, 24, 103, 73, 176, 215, 5, 193, 116, 92, 86, 201, 158, 5, 127, 53, 17, 53, 78, 126]) }, Event { key: EventKey([37, 221, 120, 210, 93, 173, 22, 118, 235, 32, 174, 118, 71, 2, 156, 210, 109, 219, 253, 213, 112, 206, 136, 0, 0, 71, 98, 11, 128, 88, 170, 85, 220, 90, 29, 5, 248, 6, 91, 181, 94, 28, 242, 45, 223, 71, 240, 134, 125, 190, 218, 102]), value: EventValue([163, 250, 188, 107, 131, 32, 182, 5, 28, 60, 52, 253, 248, 178, 239, 128, 205, 87, 238, 224, 17, 21, 94, 32, 173, 1, 251, 57, 37, 9, 20, 9, 92, 163, 216, 189, 152, 240, 20, 178, 208, 117, 248, 1, 172, 9, 154, 107, 228, 98, 118, 2, 188, 67, 192, 156, 240, 200, 18, 23, 141, 119, 27, 106, 246, 211, 17, 188, 89, 203, 206, 209, 184, 33, 17, 242, 12, 199, 213]) }, Event { key: EventKey([156, 229, 160, 105, 82, 155, 74, 188, 216, 51, 136, 59, 91, 223, 236, 110, 123, 39, 82, 123, 245, 25, 255, 150, 170, 252, 125, 139, 26, 194, 215, 186, 92, 61, 85, 172, 251, 106, 175, 120, 98, 147, 146, 128, 28, 64, 199, 143, 249, 97, 239, 254, 11, 18, 61, 110, 78, 24, 30, 139, 139, 157, 126, 130, 219, 205, 71, 107, 156, 191, 52, 40, 150, 247, 10, 235, 158, 69, 60, 4, 80, 9, 217, 113, 126, 15, 183, 74, 184, 239, 223, 217, 133, 222, 244, 227, 197]), value: EventValue([9, 168, 19, 248, 74, 97, 22, 103, 54, 4, 135, 100, 94, 58, 69, 211, 116, 224, 37, 51, 204, 45, 100, 96, 131, 2, 244, 125, 143, 225, 133, 122, 162, 178, 174, 210, 120]) }, Event { key: EventKey([126, 86, 242, 44, 228, 74, 68, 103, 41, 98, 174, 245, 122, 243, 133]), value: EventValue([95, 213, 182, 201, 135, 6, 66, 89, 184, 109, 6, 220, 23, 64, 103, 220, 161]) }], receipt: 3574031294 }, TransactionReceipt { tx_hash: [203, 39, 71, 8, 46, 207, 119, 45, 80, 123, 158, 124, 155, 182, 207, 111, 61, 64, 131, 18, 223, 38, 32, 174, 28, 217, 76, 69, 14, 165, 115, 88], body_to_save: Some([23, 176, 73, 33, 37, 45, 190, 237, 152, 170, 92, 15, 190, 212, 229]), events: [Event { key: EventKey([56, 114, 147, 97, 92, 101, 225, 64, 188, 114, 206, 59]), value: EventValue([81, 124, 232, 22, 18, 36, 57, 232, 119, 31, 143, 242, 60, 22, 136, 115, 250, 137, 211, 85, 16, 81, 175, 49, 31, 242, 232, 99, 5, 130, 14, 210, 9, 111, 232, 44, 157, 143, 76, 193, 205, 230, 225, 209, 39, 205, 158, 237, 73, 133, 229, 176, 102, 224, 10, 117, 52, 85, 196, 132, 96, 15, 128, 15, 59, 118, 8, 189, 230, 201, 201, 183, 80, 2, 55]) }, Event { key: EventKey([131, 193, 1, 137, 56, 181, 157, 55, 192, 110, 211, 181, 112, 28, 6, 67, 181, 164, 70, 133, 65, 121, 38, 148, 163, 81, 254, 68, 19, 131, 226, 185, 46, 185, 198, 245, 193, 184, 24, 74, 210]), value: EventValue([52, 8, 243, 4, 133, 250, 52, 88, 211, 80, 219, 253, 81, 86, 134, 245, 210, 48, 119, 136, 144, 197, 215, 191, 94, 228, 58, 68, 18, 254, 229, 166, 81, 50, 65, 179, 89, 235, 152, 215, 242, 171, 40, 205, 33, 135, 91, 249, 55, 198, 144, 122, 111, 203, 180, 46, 87, 241, 0, 244, 81, 36, 87, 204, 232, 244, 238, 238, 34, 221, 226, 184, 32, 41, 187, 43, 87, 149, 109, 76, 225, 147, 178, 43, 195, 205, 11, 219, 162]) }, Event { key: EventKey([45, 75, 106, 11, 125, 4, 116, 236, 10, 70, 213, 254, 142, 94, 53, 122, 52, 141, 118, 93, 59, 10, 144, 241, 26, 31, 52, 134, 255, 34, 44, 145]), value: EventValue([3, 137, 128, 41, 144, 115, 53, 102, 185, 200, 4, 170, 119, 26, 229, 81, 148, 221, 26, 241, 79, 220, 52, 96, 115, 58, 110, 210, 163, 129, 225, 169, 140, 49]) }, Event { key: EventKey([104, 233, 107, 198, 225, 230, 131, 57, 203, 211, 12, 166, 126, 137, 171, 139, 40, 133, 238, 190, 42, 32, 223, 18, 86, 19, 194, 253, 82, 128, 218, 203, 6, 231, 101, 89, 26, 135, 240, 218, 158, 33, 85, 144, 55, 115, 236, 130, 46, 100, 184, 66, 60, 252, 250, 75, 175, 154, 62, 81, 110, 143, 45, 172, 103, 71, 54, 215, 244]), value: EventValue([228, 173, 76, 47, 241, 8, 106, 220, 3, 2, 28, 125, 147, 88, 171, 195, 201, 173, 249, 33, 88, 165, 126, 236, 110, 180, 20, 192, 120, 133, 94, 161, 46, 99, 148, 127, 36, 157, 170, 85, 89, 2, 160, 64, 181, 249, 113]) }], receipt: 3079251735 }, TransactionReceipt { tx_hash: [25, 73, 251, 31, 81, 180, 85, 85, 205, 20, 28, 161, 84, 180, 80, 152, 219, 171, 172, 229, 218, 94, 151, 39, 101, 93, 136, 74, 6, 27, 210, 96], body_to_save: Some([246, 155, 40, 124, 179, 60, 23, 83, 236, 75, 37, 28, 62, 196, 167, 229, 242, 239, 37, 45, 170, 91, 222, 135, 147, 143, 221, 177, 141, 194, 54, 155, 167, 156, 14, 90, 3, 185, 97, 116, 54, 128, 29, 128, 73, 252, 126, 37, 170, 101, 83, 44, 92, 118, 128, 6, 189, 45, 184, 237, 4, 248, 243, 153, 64, 170, 12, 184, 182, 13, 33, 55, 232]), events: [Event { key: EventKey([84, 92, 71, 26, 19, 17, 33, 215, 187, 34, 38, 145, 63, 90, 136, 54, 159, 39, 150, 60, 175, 208, 61, 101, 187, 27, 161, 152, 45, 132, 36, 104, 147, 102, 117, 201, 15, 48, 107, 171, 107, 102, 206, 65, 180, 154, 78, 22, 1, 191, 74, 251, 173, 135, 246, 41, 106, 247, 252]), value: EventValue([204, 117, 16, 46, 196, 61, 187, 103, 229, 109, 227, 152, 244, 121, 195, 79, 155, 174, 214, 250, 224, 167, 3, 24, 19, 230, 37]) }, Event { key: EventKey([185, 238, 159, 194, 18, 195, 4, 239, 24, 214, 113, 2, 34, 221, 167, 151, 162, 49, 177, 52, 237, 64, 247, 246, 141, 96, 41, 189, 109]), value: EventValue([163, 40, 97, 131, 73, 154, 153, 56, 76, 226, 92, 221, 136, 166, 179, 180, 113, 26, 4, 235, 142, 219, 134, 173, 66, 20, 209, 128, 132, 237, 194, 214, 214, 205, 248, 26, 114, 168, 73, 125, 164, 13, 165, 184, 106, 177, 184, 220, 208, 210, 23, 177, 71, 88, 182, 232, 169, 98, 173, 4, 90, 56, 78, 29, 90, 169, 2, 241, 12, 177, 49, 18, 236]) }, Event { key: EventKey([150, 109, 108, 151, 234, 140, 152, 88, 118, 73, 198, 69, 65, 130, 220, 42, 96, 67, 107]), value: EventValue([57, 153, 190, 87, 61, 42, 31, 146, 68, 174, 169, 179, 184, 139, 42, 171, 44, 172, 82, 49, 199, 252, 213, 212, 220, 98, 107, 155, 69, 93, 6, 154, 137, 116, 141, 251, 1, 52, 159, 181, 138, 152, 217, 165, 21, 165, 78, 102, 61, 20, 107, 230, 223, 77, 200, 101, 201, 93, 249, 7, 112, 119, 249, 141, 89, 86, 139, 193, 220, 106, 205, 50, 95, 207, 26, 132, 55, 27, 193, 166, 64, 110, 123, 13, 163, 113, 151, 13, 111, 235, 124, 199]) }, Event { key: EventKey([170, 0, 192, 176, 142, 38, 242, 97, 33, 96, 224, 64, 85, 146, 145, 107, 113, 158, 181, 148, 37, 179, 53, 179, 48, 83, 46, 198, 47, 225, 44, 16, 129, 16, 14, 16, 230, 111, 244, 217]), value: EventValue([107, 28, 7, 203, 39, 103, 194, 141, 159, 32, 51, 64, 50, 140, 129, 245, 207, 20, 152, 144, 62, 184, 133, 118, 20, 131, 48, 13, 250, 253, 62, 224, 129, 241, 101, 1, 8, 119, 97, 137, 64]) }, Event { key: EventKey([217, 217, 209, 231, 209, 228, 34, 161, 174, 228, 2, 95, 23, 89, 29, 67, 64, 64, 26, 131, 83, 48, 34, 236, 189, 164, 153, 209, 145, 133, 168, 175, 1, 33, 112, 224, 134, 85, 58, 7, 237, 36, 7, 220, 92, 24, 231, 157, 14, 190, 110, 25]), value: EventValue([240, 209, 239, 78, 64, 105, 210, 35, 207, 159, 38, 209, 158, 109, 195, 252, 93, 47, 120, 79, 12, 3, 23, 115, 75, 134, 119, 61, 122, 168, 242, 120, 33, 224, 185, 148, 219, 47, 130, 18, 103, 56, 12, 152, 56, 161, 104, 173, 52, 233, 70, 9, 167, 82, 56, 36, 237, 145, 165, 86, 96, 72, 212, 65, 211, 113, 234, 88, 49, 2, 29, 121, 243, 246, 235, 252, 225, 112, 22, 168, 213, 234, 143]) }, Event { key: EventKey([66, 22, 230, 44, 193, 225, 89, 135, 50, 253, 102, 205, 127, 247, 239, 141, 133, 65, 217, 120, 26, 160, 197, 38, 135, 216, 173, 60, 82, 149, 197, 99, 117, 194, 214, 83, 78, 72, 55, 207, 25, 50, 52, 2, 188, 193, 237, 100, 135, 203, 72, 185, 120, 159, 90, 90, 49, 147, 141, 185, 173, 40, 241, 35, 74, 233, 79, 64, 4, 22, 192, 93, 51, 172, 21, 235, 247, 91, 239, 238, 11, 224, 216, 221, 80, 33, 28, 180, 79, 121, 197]), value: EventValue([114, 141, 196, 39, 157, 231, 172, 233, 117, 128, 252, 200, 215, 41, 252, 166, 44, 74, 29, 184, 67, 14, 136, 32, 149, 210]) }, Event { key: EventKey([110, 139, 94, 236, 66, 173, 246, 93, 149, 105, 14, 66, 140, 121, 117, 99, 125, 229, 240, 16, 160, 167, 96, 170, 213, 194, 148, 94, 26, 254, 226, 224, 247, 156]), value: EventValue([179, 144, 178, 242, 187, 227, 220, 29, 78, 197, 113, 42, 42, 52, 237, 251, 197, 165, 203, 190, 227, 250, 160, 135, 124, 135, 137, 121, 144, 219, 224, 79, 220, 225, 134, 179, 69, 8, 94, 166, 110, 155, 45, 138, 126, 200, 96, 158, 25, 61, 118, 231, 253, 50, 145, 16, 32, 140, 107, 47, 147, 104, 63, 214, 52, 217, 93, 90, 128, 233, 188, 207, 196, 201, 41, 7, 80, 174, 255, 5, 155, 220, 227, 23, 246, 37, 73, 175, 233, 61, 83, 210, 159, 12, 197]) }, Event { key: EventKey([107, 27, 250, 24, 182, 215, 109, 148, 231, 228, 223, 45, 76, 101, 18, 46, 47, 95, 118, 203, 197, 133, 227, 170, 54, 42, 179, 75, 5, 234, 224, 101]), value: EventValue([69, 4, 154, 232, 82]) }, Event { key: EventKey([212, 151, 253, 65, 233, 212, 28, 185, 211, 80, 41, 202, 135, 200, 199, 236, 123, 166, 146, 253, 2, 146, 114, 53, 97, 184, 152, 144, 60, 157, 66, 33, 4, 225, 226, 74, 244, 68, 185, 217, 148, 207, 80, 190, 198, 86, 94, 133, 100, 52, 143, 162, 130, 133, 71, 225, 156, 146, 55, 178, 20, 88, 86, 83, 83, 249, 105, 59, 221, 134, 68, 41, 6, 142, 2, 92, 215]), value: EventValue([2, 154, 129, 87, 235, 93, 175, 139, 176, 234, 215, 194, 57]) }], receipt: 1409420945 }], inner: 923280707 }, BatchReceipt { batch_hash: [191, 218, 136, 101, 199, 2, 43, 173, 67, 210, 14, 255, 139, 41, 98, 142, 108, 233, 73, 124, 58, 59, 149, 88, 215, 52, 47, 192, 223, 125, 101, 47], tx_receipts: [TransactionReceipt { tx_hash: [182, 235, 213, 65, 153, 146, 206, 195, 150, 193, 109, 25, 175, 134, 151, 51, 234, 83, 91, 211, 152, 172, 248, 224, 25, 231, 187, 243, 29, 149, 63, 125], body_to_save: Some([44, 62, 192, 31, 210, 217, 156, 121, 64, 187, 208, 207, 211, 177, 100, 138, 119, 139, 31, 199, 184, 176, 156, 110, 126, 39, 188, 124, 48, 149, 116, 160, 23, 206]), events: [Event { key: EventKey([36, 240, 160, 121, 107]), value: EventValue([225, 146, 137, 74, 159, 106, 133, 9, 141, 132, 79, 9, 193, 180, 144, 3, 20, 201, 92, 243, 137, 71, 181, 8, 223, 46, 177, 241, 202, 145, 222, 121, 92, 58, 24, 123, 21, 223, 112, 121, 19, 129, 61, 125, 114, 60, 228, 208, 50, 36, 246, 91, 143, 228, 225, 59, 241, 217, 136]) }, Event { key: EventKey([77, 1, 7, 49, 235, 20, 158, 115, 51, 27, 2, 145, 253, 123, 52, 62, 79, 96, 240, 196, 77, 105, 237, 194, 142, 117, 188, 69, 62, 179, 191, 201, 228, 91, 123, 16, 197, 56, 61, 216]), value: EventValue([147, 215, 156, 145, 71, 130, 68, 199, 227, 96, 255, 253, 198, 170, 17, 60, 202, 124, 118, 134, 206, 27, 248, 151, 198, 38, 209, 93, 69, 119, 13, 94, 245, 238, 66, 57, 228, 81, 66, 69, 145, 85, 141, 132, 209, 87, 150, 233, 71, 5, 1, 190, 147, 11, 62, 89, 231]) }, Event { key: EventKey([63, 243, 228, 102, 236, 2, 93, 39, 195, 235, 156, 33, 104, 82, 176, 85, 68, 144, 132, 102, 10, 105, 205, 209, 175, 137, 190, 21, 136, 208, 147, 103, 130, 22, 158, 244, 126, 211, 133, 48, 57, 25, 124, 38, 245, 173, 16, 212, 13, 208, 3, 72, 124, 41, 114, 138, 162, 86, 105, 15, 222, 89, 190, 239, 26, 106, 248, 33, 66, 70]), value: EventValue([166, 34, 186, 85, 132, 191, 216, 145, 64, 138, 223, 198, 144, 64, 213, 194, 120, 61, 131, 80, 203, 201, 120, 145, 104, 74, 99, 16, 164, 135, 242, 130, 173, 0, 206, 30, 47, 129, 153, 79, 133, 245, 1, 22, 68, 209, 39, 183, 202, 100, 243, 206, 102, 103, 66, 212, 212, 41, 14, 167, 113, 14, 81, 121, 251, 129, 103, 243, 226, 252, 173, 121, 109, 238, 223, 152, 251, 133, 45, 101, 94, 52, 129, 78, 252, 35, 212, 115, 35, 198, 241, 240, 133, 46]) }, Event { key: EventKey([58, 26, 127, 12, 202, 27, 216, 128, 176, 171, 33, 39, 96, 140, 136, 211, 98, 80, 24, 93, 191, 36, 123, 53, 136, 117, 21, 177, 220, 68, 196, 112, 128, 143, 113, 190, 168, 77, 207, 4, 19, 222, 118, 215, 155, 150, 88, 163, 254, 80, 59, 106, 14, 238, 129, 175, 41, 16, 5, 239, 50]), value: EventValue([9, 229, 23, 123, 128, 172, 26, 27, 144, 100, 127, 131, 44, 199, 239, 30, 179, 23, 38, 42, 81, 96, 23, 116, 24, 80, 90, 157, 241, 72, 84, 136, 29, 64, 131, 25, 86, 156, 145, 99, 100, 5, 218, 125, 3]) }, Event { key: EventKey([113, 174]), value: EventValue([47, 213, 167, 202, 18, 114, 149, 124, 147, 55, 166, 49, 71, 47, 104, 227, 167, 45, 228, 209, 145, 211, 75, 114, 245, 161, 126, 44, 176, 37, 61, 139, 247, 209, 122, 152, 251, 227, 230, 14, 177, 87, 62, 250, 230, 236, 190, 224, 218, 94, 79, 72, 146, 152, 227, 14, 144, 72, 129]) }, Event { key: EventKey([196, 100, 128, 66, 80, 115, 77, 82, 234, 225, 119, 187, 10, 17]), value: EventValue([103, 31, 23, 184, 213, 40, 253, 163, 89, 220, 103, 122, 82, 143]) }, Event { key: EventKey([12, 159, 82, 35, 32, 223, 137, 138, 247, 32, 141, 126, 13, 153, 114]), value: EventValue([188, 32]) }, Event { key: EventKey([239, 242, 36, 153, 123, 172, 16, 107, 78, 48, 3, 166, 83, 109, 178, 22, 98, 205, 111, 181, 146, 57, 141, 95, 130, 70, 125, 7, 1, 255, 150, 173, 61, 107, 194, 154, 4, 29, 226, 160, 43, 165, 28]), value: EventValue([56, 57, 42, 114, 202, 129, 129, 89, 198, 162, 190, 128, 212, 112, 182, 179, 175, 15, 251, 105, 67, 214, 84, 23, 104, 18, 237, 204, 95, 228, 89, 241, 10, 64, 7, 226]) }], receipt: 1149324081 }, TransactionReceipt { tx_hash: [151, 51, 220, 199, 150, 64, 178, 102, 79, 93, 213, 149, 215, 131, 98, 77, 203, 21, 209, 173, 1, 51, 1, 19, 177, 58, 196, 119, 105, 177, 229, 7], body_to_save: None, events: [Event { key: EventKey([158, 188, 11, 238, 78, 72, 45, 95, 186, 214, 182, 34, 51, 183, 240, 193, 83, 133, 255, 115, 114, 13, 226, 25, 130, 117, 121, 239, 180, 203, 123, 81, 53, 96, 157, 46, 199, 71, 223, 130, 242, 3, 121, 39, 194, 235, 94, 251, 53, 164, 120, 183, 139, 140, 50, 12, 183, 197, 218, 214, 246, 51, 151, 132, 232, 184, 40, 80, 198, 213]), value: EventValue([12, 124, 80, 223, 1, 68, 194, 35, 50, 210, 59, 244, 48, 219, 26, 21, 41, 249, 243, 104, 63, 139, 34, 198, 176, 148, 22, 16, 81, 8, 252, 88, 98, 3, 238, 19, 222, 234, 235, 61, 80, 65, 101]) }, Event { key: EventKey([239, 206, 86, 197, 146, 230, 133, 7, 156]), value: EventValue([252, 137, 84, 97, 66, 222, 221, 62, 197, 72]) }, Event { key: EventKey([122, 87, 152, 218, 9, 155, 105, 99, 174, 234, 202, 8, 68, 24, 40, 155, 91, 152, 1, 133, 111, 114, 101, 5, 72, 197, 96, 233, 81, 113, 32, 142, 63, 89, 89, 202, 229, 86, 37, 94, 40, 194, 174, 90, 242, 79, 131, 238, 230, 101, 46, 115, 149, 184, 111, 33, 53, 149, 86, 180, 69, 137, 186, 93, 230, 164, 181, 220, 94, 10, 31, 200, 234, 1, 245, 253, 11, 247, 201, 122, 174, 235, 236, 151, 234, 4, 104, 94]), value: EventValue([167, 111, 195, 196, 99, 210, 10, 94, 243, 206, 172, 5, 113, 134, 87, 224, 248, 128, 44, 73, 221, 42, 229, 51, 166, 193, 245, 112, 134, 135, 31, 166, 204, 234, 194, 33, 6, 131, 213, 32, 231, 32, 173, 147, 164, 156, 188, 208, 218, 44, 65, 153, 249, 44, 137, 50, 156, 201, 34, 79, 171, 191, 81, 209, 182, 55]) }, Event { key: EventKey([112, 96, 85, 58, 133, 71, 217, 247, 192, 99, 131, 244, 124, 198, 168, 14, 249, 57, 27, 18, 82, 248, 96, 176, 219, 169, 46, 83, 129]), value: EventValue([106, 89, 79, 166, 181, 100, 90, 135, 225, 48, 147, 182, 220, 57, 131, 162, 219, 214, 155, 133, 44, 109, 133, 111, 152, 163, 175, 105, 121, 236, 40, 32, 17, 217, 217, 208, 76, 196, 29, 57, 109, 199, 23, 249, 169, 42, 57, 168, 217, 5, 140, 234, 200, 53, 96, 248, 6, 228, 55, 118, 230, 84, 72, 107, 187, 30, 105, 212, 121, 77, 42, 220, 49, 173, 2, 55, 179, 25, 104, 194, 203, 221, 73]) }, Event { key: EventKey([108, 7, 38, 211, 63, 151, 161, 122, 246, 100, 34, 156, 193, 103, 166, 197, 159, 157, 65, 140, 47]), value: EventValue([45, 180, 237, 153, 21, 173, 25, 81, 222, 236, 118, 191, 182, 242, 57, 36, 190, 180, 255, 77, 2, 163, 30, 132, 204, 55, 55, 187, 99, 159, 28, 140, 240, 236, 142, 177, 137, 104, 155, 172, 70, 80, 213, 12, 5, 227, 168, 150, 199, 235, 31, 172, 218, 208, 156, 92, 4, 138, 205, 187, 71, 249, 170, 8, 236, 82, 161, 143, 43, 84, 93, 92, 153, 58, 177, 41, 191, 243, 47, 233, 147, 181, 106, 160, 197, 179, 120, 52, 0, 3, 113, 209, 178, 186, 18]) }, Event { key: EventKey([236, 197, 144, 108, 105, 77, 228, 19, 244, 154, 102, 60, 158, 116, 26, 201, 133, 7, 188, 196, 192, 179, 165, 74, 254, 219, 230, 211, 230, 219, 54, 209, 197, 127, 27, 196, 32, 8, 147, 211, 181, 245, 51, 6, 198, 180, 69, 66, 103, 187, 117, 19, 70, 166, 44, 29, 38, 240, 207, 253, 90, 196, 169, 97, 60, 231, 155, 38, 161, 62, 205, 136, 99, 142, 156, 26, 61, 122, 9, 229, 232, 219, 156, 207, 37, 73, 155, 101, 59, 241]), value: EventValue([251, 81, 39, 125, 182, 216, 119, 76, 165, 142, 175, 135, 140, 6, 223, 78, 252, 150, 233, 189, 92, 179, 152, 201, 154, 235, 192, 7, 144, 215, 45, 231, 34, 63, 65, 8, 247, 49, 50, 175, 71, 119, 219, 2, 60, 208, 21, 196, 119]) }, Event { key: EventKey([158, 225, 11, 223, 193, 82, 200, 58, 137, 16, 63, 16]), value: EventValue([152, 162, 23, 27, 88, 3, 176, 36, 38, 59, 143, 198, 153]) }], receipt: 317009151 }, TransactionReceipt { tx_hash: [8, 43, 53, 191, 166, 246, 60, 153, 25, 149, 167, 234, 1, 194, 152, 67, 41, 88, 176, 86, 118, 201, 65, 195, 46, 41, 235, 67, 249, 205, 230, 251], body_to_save: None, events: [Event { key: EventKey([19, 160, 49, 191, 65, 29, 91, 144, 178, 245, 116, 206, 147, 98, 240, 94, 204, 121, 174, 29, 27, 140, 57, 56, 16, 136, 15, 63, 102, 199, 187, 208, 150, 236, 140, 225, 21, 59, 235, 30, 31, 119, 214, 186, 141, 222, 78, 251, 104, 250, 87, 19, 200]), value: EventValue([163, 239, 241, 205, 6, 41, 81, 30, 244, 193, 34, 17, 30, 16, 52, 58, 60, 171, 17, 226, 181, 90, 203, 138, 157, 214, 33, 185, 150, 56, 56, 36, 217, 84, 129, 235, 146, 3]) }, Event { key: EventKey([65, 86, 204, 78, 101, 127, 147, 120, 75, 105, 213, 168, 81, 66, 10, 208, 68, 97, 103, 48, 126, 231, 100, 243, 127, 48, 169, 37, 228, 145, 63, 21, 127, 118, 227, 112, 223, 153, 158, 40, 129, 168, 43, 41, 178, 206, 59, 211, 22, 255, 123, 205]), value: EventValue([117, 114, 83, 107, 155, 153, 214, 20, 87, 168, 86, 108, 22, 210, 107, 175, 120, 198, 180, 233, 50, 242, 5, 219, 120, 216, 199, 2, 54, 127, 130, 133, 130, 196, 140, 49, 54, 25, 25, 19, 75, 147, 133, 195, 178, 223, 187, 63, 24, 116, 176, 164, 99, 125, 217, 90, 148, 117, 254, 119, 244, 243, 175, 15, 124, 62, 203, 77, 0, 119, 238, 10, 44, 87, 176, 72, 16, 23, 159, 134, 44, 115, 201, 114, 193, 175, 103, 229, 67, 156, 114, 194, 16, 64]) }, Event { key: EventKey([34, 96, 185, 243, 41, 17, 39, 229, 2, 235, 187, 119, 195, 50, 240, 245, 26, 211, 64, 76, 127, 194, 11, 52, 44, 65, 138, 234, 70, 69, 106, 204, 9, 141, 163, 72, 116, 107, 26, 249, 42, 133, 50, 69, 99]), value: EventValue([219, 133, 128, 72, 31, 223, 18, 246, 119, 43, 47, 26, 131, 104, 195, 2, 228, 78, 34, 250, 172, 89, 135, 198, 28, 1, 164, 225, 233, 19, 83, 159, 167, 34, 146, 35, 192, 16, 242, 150, 148, 3, 154, 166, 171, 214, 11, 74, 210, 158, 129, 164, 158, 21, 32, 40, 112, 128, 81, 71, 212, 13, 218, 48, 166, 73, 252, 144, 192, 7, 227, 158]) }, Event { key: EventKey([180, 34, 207, 186, 253, 66, 149, 236, 51]), value: EventValue([179, 173, 179, 114, 62, 74, 8, 10, 139, 81, 249, 234, 190, 205, 240, 151, 145, 126, 31, 110, 46, 222, 155, 174, 145, 150, 228, 14, 224, 154, 183, 116, 10, 95, 113, 251, 235, 166, 249, 60, 245, 221, 200, 72, 192]) }, Event { key: EventKey([61, 222, 153, 222, 207, 35, 180, 228, 72, 176, 19, 151]), value: EventValue([93, 97, 35, 170, 117, 167, 23, 53, 101, 84, 14, 127, 129, 203, 156, 83, 6, 186, 190, 199, 2, 88, 2, 31, 239, 215, 59, 138, 146, 251, 49, 55, 97, 235, 143, 10, 105, 40, 146, 171, 33, 139, 101, 186, 9, 38, 31, 199]) }, Event { key: EventKey([26, 125, 70, 124, 217, 21, 27, 232, 122, 66, 244, 8, 107, 213, 50, 21, 29, 190, 60, 66, 197, 1, 154, 229, 19, 228, 205, 250, 22, 151, 165, 146, 113, 54, 216, 116, 209, 22, 242, 117, 20, 43, 189, 100, 81, 30, 193, 116, 11, 157, 137, 233, 237, 225, 240, 31, 235, 196, 112, 122, 210, 60, 69, 171, 28, 227, 82, 115, 145, 104, 187, 242, 29, 136, 166, 85, 38, 124, 125, 181, 132, 107, 158, 178, 244, 52, 9]), value: EventValue([93, 45, 14, 251, 131, 180, 94, 232, 101, 214, 114, 1, 66, 166, 137, 76, 100, 44, 102]) }, Event { key: EventKey([25, 45, 247, 225, 30, 142, 2, 27, 66, 70, 194, 86, 227, 55, 179, 109, 222, 127, 233, 13, 3, 192, 157, 223, 88, 69, 58, 237, 212, 30, 246, 134, 19, 93, 28, 250, 160, 162, 238, 2, 13, 139, 88, 48, 157, 34, 232, 73, 162, 135, 200, 88, 247, 75, 8, 86, 189, 52, 122, 240, 109, 36, 198, 88, 253, 247, 31, 93, 165, 105, 32, 154, 174, 57, 71, 154, 52, 67, 111, 119, 143, 154, 27, 116, 150, 101, 182, 160, 242, 228, 85, 229, 184, 33, 206]), value: EventValue([191, 47, 161, 233, 62, 248, 100, 13, 116, 196, 189, 243, 199, 229, 9, 165, 126, 231, 37, 243, 162, 141, 93, 129, 73, 2, 150, 158, 192, 181, 115, 245, 219, 37, 205, 45, 253, 155, 170, 191, 10, 154, 237, 214, 35, 68, 142, 159, 17, 216, 127, 196, 91, 78]) }, Event { key: EventKey([128, 78, 118, 133, 42, 254, 88, 74, 56, 13, 238, 106, 98, 203, 64, 169, 46, 60, 115, 130, 227, 239, 94, 233, 45, 39, 40, 12, 137, 118, 153, 220, 21, 31, 128, 58, 177, 179, 197, 237, 31]), value: EventValue([188, 168, 79, 186, 61, 206, 226, 241, 189, 70, 106, 58, 212, 146, 157, 207, 229, 241, 136, 238, 185, 226, 112, 199, 197, 180, 17, 56, 171, 136, 202, 127, 85, 234, 192, 104, 79, 102, 143, 84, 158, 100, 14, 181, 54, 10, 83, 87, 17, 164, 50, 235, 135, 123, 25, 12, 34, 203, 232, 241, 179, 120, 87, 147]) }, Event { key: EventKey([204, 13, 242, 243, 175, 216, 152, 252, 5, 15, 145, 86, 49, 204, 247, 179, 110, 14, 37, 70, 24, 184, 115, 103, 183, 90, 12, 158, 211, 10, 1, 136, 96, 146, 43, 91, 11, 155, 150, 66, 226]), value: EventValue([73, 1, 204, 106, 204, 3, 168, 159, 152, 71, 95, 49, 201, 135, 190, 120, 194, 69, 130, 83, 15, 207, 206, 107, 31, 120, 227, 36, 98, 80, 72, 26, 76, 146, 238, 18, 249, 156, 151, 37, 204, 115, 229, 42, 217, 97, 164, 17, 209, 97, 195, 44, 188, 254, 114, 249, 41, 48, 128, 155, 150, 237, 187, 211, 147, 96, 99, 159, 33]) }], receipt: 1452160305 }, TransactionReceipt { tx_hash: [17, 174, 209, 78, 68, 25, 103, 240, 77, 147, 85, 29, 27, 191, 207, 74, 82, 243, 209, 105, 136, 103, 36, 44, 171, 192, 154, 123, 9, 178, 85, 83], body_to_save: None, events: [], receipt: 1331025417 }, TransactionReceipt { tx_hash: [155, 197, 216, 122, 224, 177, 156, 16, 10, 200, 224, 240, 214, 46, 51, 54, 110, 100, 186, 205, 185, 169, 125, 78, 235, 21, 240, 10, 155, 142, 250, 250], body_to_save: Some([234, 78, 113, 220, 36, 68, 127, 197, 51, 244, 135, 250, 66, 26, 218, 167, 133, 54, 192, 254, 205, 92, 90, 164, 5, 120, 179, 63, 75, 176, 109, 15, 79, 84, 146, 81, 98, 165, 11, 232, 145, 161, 82, 189, 211, 255, 38, 128, 161, 245, 20, 158, 194, 140, 250, 168, 3, 207, 148, 222, 7, 213, 42, 221, 90, 6, 58, 11, 71, 137, 166, 235, 117, 172, 13, 213, 183, 126]), events: [Event { key: EventKey([148, 169, 85, 148, 116, 11, 187, 80, 233, 8, 94, 103, 134, 251, 116, 46, 173, 94, 135, 177, 73, 149, 241, 159, 176, 114, 236, 198, 248, 236, 72, 176, 242, 51, 250, 210]), value: EventValue([169, 116, 110, 152, 40, 76, 211, 118, 74, 35, 237, 58, 198, 105, 32, 129, 130, 100, 212, 15, 130, 189, 72, 160, 157, 48, 186, 24, 14, 165, 70, 35, 94, 45, 242, 41, 221, 106, 162, 226]) }, Event { key: EventKey([]), value: EventValue([209, 54, 137, 5, 115, 82, 188, 136, 11, 37, 50, 216, 138]) }, Event { key: EventKey([132, 44, 204, 41, 125, 155, 1, 147, 38, 55, 98, 190, 205, 158, 213, 189, 63, 232, 120, 80, 66, 248, 61, 52, 104, 34, 39, 255, 105, 38, 49, 32, 123, 18, 221, 198, 228, 36, 164, 60, 162, 82, 27, 197, 196, 255, 171, 39, 226, 216, 0, 129, 152, 130, 45, 220, 180, 178, 255, 104, 63, 216, 6, 232, 67, 225]), value: EventValue([142, 219, 56, 199, 201, 130, 93, 72]) }, Event { key: EventKey([194, 193, 97, 59, 54, 184, 85, 250, 244, 61, 184, 1, 87, 25, 21, 11, 117, 146, 193, 117, 169, 122, 205, 149, 227, 127, 163, 127, 159, 23, 86, 142, 99, 251, 81, 65, 61, 255, 21, 144, 131, 177, 61, 252, 178, 231, 209, 237, 233, 160, 223, 240, 218, 22, 177, 169, 222, 23, 133, 136, 95, 81, 169, 122, 243, 224, 167, 173, 113, 245, 251, 9, 218, 154]), value: EventValue([165, 254, 255, 1, 244]) }, Event { key: EventKey([244, 186, 225, 93, 120, 237, 127, 129, 244, 37, 186, 154, 243, 221, 80, 171, 45, 96, 90, 216, 57, 65, 179, 223, 181, 23, 28, 244, 52, 105, 33, 156, 199, 232, 163, 246, 119]), value: EventValue([39]) }, Event { key: EventKey([166, 163, 197, 132, 164, 125, 157, 91, 79, 219, 237, 186, 97, 115, 200, 221, 238, 101, 43, 162, 187, 10, 11, 179, 153, 158, 139, 41, 27, 75, 58, 230, 241, 90]), value: EventValue([19, 239, 181, 71, 43, 173, 15, 133, 194, 178, 123, 4, 216, 168, 87, 38, 150]) }], receipt: 2266919294 }, TransactionReceipt { tx_hash: [154, 131, 83, 3, 66, 31, 101, 216, 172, 89, 158, 8, 18, 91, 149, 107, 90, 53, 93, 98, 215, 255, 18, 249, 226, 111, 251, 106, 235, 32, 68, 236], body_to_save: None, events: [Event { key: EventKey([95, 13, 73, 215, 36, 213, 177, 5, 132, 29, 127, 46, 218, 1, 164, 32, 242, 193, 175, 89, 199, 96, 32, 141, 74, 52, 138, 187, 47, 169, 42, 134, 80]), value: EventValue([93, 141, 179, 69, 72, 40, 68, 72, 11, 96, 179, 53, 24, 244, 131, 203, 112, 240, 30, 19, 252, 246, 76, 222, 145, 205, 118, 103, 98, 199, 22, 87, 130, 95, 234, 113, 31, 30, 35, 243, 182, 31, 99, 125, 44, 148, 65, 74, 31, 248, 90, 207, 66, 20, 250, 225, 120, 120, 189, 237, 252, 217, 101, 41, 159, 96, 59, 254]) }, Event { key: EventKey([167, 237, 181, 241, 105, 210, 109, 109, 88, 41, 0, 53, 210, 89, 153, 132, 113, 135, 188, 52, 80, 247, 113, 92, 136, 59, 246, 219, 58, 166, 181, 123, 20, 62, 194, 143, 190, 55, 213, 64, 180, 222, 160, 17, 148, 167, 140, 5, 92, 94, 212, 157, 242, 138, 72, 95, 25, 249]), value: EventValue([42, 45, 104, 15, 126, 91, 179, 56, 31, 53, 151, 132, 184, 187, 145, 163, 106, 211, 73, 49, 191, 65, 129, 99, 182, 219, 212, 46, 46, 51, 63, 234, 196, 48, 205, 125, 177, 176, 61, 18, 111, 167, 91, 195, 249, 53, 210, 118]) }, Event { key: EventKey([31, 42, 206, 239, 201, 201, 101, 108, 54, 143, 98, 246, 151, 236, 143, 232, 102, 243, 135, 110, 66, 141, 202, 173, 58, 184, 158, 75, 72, 37, 137, 164, 194, 76, 25, 142, 227, 107, 140, 45, 5, 133, 215, 167, 132, 154, 36]), value: EventValue([44, 190, 197, 174, 254, 137, 243, 18, 187, 162, 69, 154, 176, 2, 196, 91, 230, 125, 61, 233, 250, 182, 42, 6, 211, 57, 132, 44, 230, 182, 42, 204, 230, 250, 8, 174, 178, 111, 228, 207, 198, 2, 33, 176, 150, 41, 207, 142, 108, 122, 96, 153, 148, 72, 199, 163, 156, 109, 14, 229, 167, 135, 104, 34, 200, 104, 21]) }, Event { key: EventKey([145, 216, 113, 33, 184, 31, 113, 53, 248, 223, 155, 0, 254, 247, 138, 27, 39, 22, 102, 209, 177, 183, 7, 238, 128, 132, 94, 205, 4, 67, 181, 108, 15, 186, 207, 106, 159, 178, 130, 8, 145, 221, 132, 188, 115, 185, 212, 129, 242, 183, 51, 0, 196, 179, 38]), value: EventValue([200, 227, 53, 245, 59, 253, 16, 1, 130, 111, 60, 135, 75, 72, 119, 224, 174, 173, 164, 4, 244, 193, 17, 132, 16, 1, 221, 61, 227, 128, 90, 39, 158, 151, 200, 143, 160, 111, 207, 152, 97, 187, 104, 214, 17, 61, 96, 150, 231, 187, 212, 97, 137, 87, 190, 129, 229, 181, 113, 244, 174, 0, 195]) }, Event { key: EventKey([154, 147, 16, 214, 54, 226, 106, 50, 78, 99, 85, 0, 163, 243, 97, 161, 116, 174, 13, 211, 214, 24, 207, 178, 76]), value: EventValue([7, 153, 237, 127, 136, 70, 196, 67, 10, 110, 66, 78, 238, 191, 229, 77, 74, 115, 44, 60, 65, 84, 186, 220, 162, 91, 200, 151, 97, 149, 73, 214, 177, 45, 86, 131, 200, 106, 56, 252, 105, 83, 190, 7, 73, 235, 105, 76, 41, 242, 64, 168, 219, 22, 173, 251, 205, 9, 151, 57, 113, 88, 212, 238, 79, 103, 231, 141, 104, 17, 42, 23, 35, 46, 18, 214, 54, 46, 160, 110, 148, 83]) }, Event { key: EventKey([137]), value: EventValue([117, 217, 212, 18, 15, 126, 98, 141, 218]) }, Event { key: EventKey([177, 112, 115, 139, 241, 168, 74, 3, 59, 118, 235, 33, 64, 95, 32, 74, 240, 248, 52, 63, 0, 154, 60, 90, 181, 223, 0, 205, 32, 72, 112, 208]), value: EventValue([183, 87, 228, 145, 156, 65, 148, 87, 16, 144, 115, 102, 169, 156, 248, 244, 35, 135, 254, 48, 154, 22, 151, 101, 216, 105, 48, 153, 237, 245, 241, 227, 76, 183, 206, 211, 16, 46, 254, 196, 90, 46, 30, 232, 199, 166, 233, 190, 17, 192, 70, 32, 5, 149, 226, 173, 107, 224, 176, 46, 225, 47, 67, 231, 10, 28, 232, 248, 51, 255, 109, 173, 206]) }, Event { key: EventKey([34, 46, 211, 43, 238, 90, 95, 44, 139, 199, 96, 181, 160, 218, 81, 155, 48, 28, 130, 14, 75, 185, 168, 252, 51, 27, 42, 190, 165, 162, 241, 227, 150, 145, 187, 214, 167, 16, 240, 9, 16, 111, 131, 23, 92, 204, 46, 57, 190, 51, 20, 1, 139, 177, 184, 127, 143, 173, 143, 166, 145, 205, 213, 214, 221, 67, 137, 229, 113]), value: EventValue([253, 52, 118, 105, 251, 74, 35, 30, 203, 119, 63, 204, 143, 46, 252, 160, 152, 91, 159, 26, 254, 89, 127]) }, Event { key: EventKey([152, 169, 132, 190, 61, 246, 26, 128, 28, 82, 240, 54, 26, 91, 132, 179, 119, 174, 31, 29, 91, 17, 13, 225, 208, 206, 112, 18, 92, 201, 172, 213, 203, 239, 200, 158, 125, 137, 227, 218, 189, 79, 108, 153, 97, 243, 147, 75, 137, 156, 148, 37, 81, 53, 34, 130, 115, 122, 250, 46, 25, 20, 224, 100, 139, 185, 246, 205, 158, 80, 53]), value: EventValue([248, 94, 194, 89, 37, 186, 219, 121, 247, 101, 185, 240, 237, 224, 150, 83, 206, 61, 58, 62, 100, 2, 231, 61, 252, 45, 250, 167, 186, 253, 208, 12, 100, 194, 198, 45, 75, 211, 13, 198, 127, 210, 236, 46, 147, 110, 76, 133, 203, 149, 184, 157, 118, 90, 218, 169, 29, 186, 7, 251, 0, 82, 254, 39, 50, 95, 231, 201, 4, 112, 0, 116, 177, 218, 188, 231, 3, 129, 93, 146, 244, 62, 21, 205, 46, 87]) }], receipt: 2126291060 }, TransactionReceipt { tx_hash: [77, 166, 184, 80, 247, 72, 43, 161, 156, 46, 154, 251, 30, 90, 103, 61, 75, 5, 231, 209, 124, 82, 194, 98, 216, 179, 42, 165, 25, 173, 228, 254], body_to_save: Some([51, 179, 127, 250, 38, 233, 237, 80, 77, 78, 26, 22, 163, 253, 254, 246, 31, 120, 190]), events: [Event { key: EventKey([16, 82, 171, 160, 180, 233, 167, 23, 249, 93, 93, 132, 249, 21, 201, 141, 105, 156, 190, 157, 246, 172, 16, 242, 89, 176, 216, 78, 158, 98, 169, 239, 118, 9, 191, 199, 153, 237]), value: EventValue([42, 156, 188, 217, 250, 53, 3, 205, 229, 234, 6, 198, 35, 84, 161, 202, 65, 210, 112, 219, 250, 131, 47, 54, 253, 194, 201, 127, 64, 136, 169, 196, 254, 113, 22, 208, 93, 40, 6, 83, 164, 40, 110, 159, 40, 95, 201, 171, 65, 20, 245, 242, 20, 11, 170, 16, 85, 149, 255, 53, 80, 135, 238, 197, 106, 100, 168]) }, Event { key: EventKey([21, 254, 171, 4, 43, 39, 66, 188, 230, 52]), value: EventValue([31, 36, 147, 210, 252, 217, 30, 100, 106, 122, 113, 90, 92, 0, 254, 71, 118, 198, 84, 0, 217, 33, 21, 149, 58, 175, 240, 128, 142]) }], receipt: 2119353276 }], inner: 481473760 }, BatchReceipt { batch_hash: [120, 162, 32, 80, 44, 136, 250, 132, 215, 48, 199, 97, 246, 231, 159, 26, 21, 68, 188, 31, 40, 63, 83, 34, 21, 117, 159, 19, 11, 34, 102, 116], tx_receipts: [TransactionReceipt { tx_hash: [167, 163, 50, 8, 254, 107, 180, 230, 87, 156, 198, 71, 40, 209, 192, 101, 53, 59, 170, 167, 176, 157, 122, 119, 248, 192, 66, 96, 176, 180, 42, 104], body_to_save: None, events: [Event { key: EventKey([161, 81, 183, 104, 119, 220, 112, 209, 56, 77, 105, 56, 55, 238, 41, 180, 82, 40, 115, 147, 111, 133, 222, 178, 64, 41, 222, 209, 158, 95, 228, 223, 155, 19, 49, 132, 243, 127, 92, 107, 20, 194, 0, 68, 178, 147, 134, 232, 42, 35, 247, 116, 146, 64, 9, 245, 138, 92]), value: EventValue([59, 162, 166, 64, 143, 255, 2, 121, 220, 140, 110, 166, 19, 221, 173, 210, 156, 176, 42, 79, 221, 113, 55, 102, 236, 138, 128, 125, 155, 232, 47, 153, 68, 34, 54, 193, 224, 125, 116, 50, 230, 146, 155, 78, 244, 142, 172, 34, 146, 84, 45, 75, 65, 15, 74, 167, 185, 151, 63, 179, 9, 247, 152, 11, 9, 173, 9, 52, 185, 155, 189, 189, 189, 240, 32]) }, Event { key: EventKey([207]), value: EventValue([112, 75, 95, 185, 173, 141, 77, 167, 15, 1, 201, 168, 76, 126, 75, 186, 32, 157, 32, 202, 230, 100, 79, 3, 58, 69, 32, 117, 245, 236, 134, 149, 58, 145, 71, 97, 51, 173, 102, 87, 252, 51, 15, 123, 205, 41, 60, 88, 105, 32, 87, 74, 19, 170, 27, 19, 196, 199, 93, 56, 105, 241, 143, 62, 243, 227, 189, 144, 169, 177, 219, 160]) }, Event { key: EventKey([185, 135, 63, 61, 3, 158, 200, 228, 1, 150, 76, 12, 14, 79, 13, 120, 142, 83, 130, 95, 62, 116, 215, 134, 206, 50, 1, 125, 128, 38, 168, 22, 101, 87, 181, 131, 79, 196, 99, 134, 22, 220, 225, 208, 34, 14, 189, 129, 70, 229, 226, 117, 30, 177, 93, 88, 128, 195, 141, 6, 121, 45, 227, 77, 73, 92, 253, 237, 202, 173, 232, 18, 51, 212, 52, 143, 16, 30, 135, 38, 4, 210, 226, 253, 198, 41, 90, 7, 26, 73, 85, 22, 238, 232, 251]), value: EventValue([108, 119, 62, 0, 194, 164, 203, 191, 75, 66, 191, 204, 236, 185, 68, 186, 159, 194, 38, 185, 206, 20, 28, 57, 255, 20, 78, 151, 27, 219, 95, 254]) }, Event { key: EventKey([210, 2, 235, 136, 163, 31, 98, 68, 189, 207, 11, 191, 189, 252, 128, 182, 161, 187, 108, 72, 150, 119, 244, 193, 133, 174, 69, 87, 16, 69, 54, 159, 70, 126, 145, 41, 64, 43, 132, 171, 248, 221, 48, 81, 8, 150, 28, 210, 107, 5, 241, 122, 161, 128, 127, 135, 94, 131, 33, 111, 233, 214, 77, 214, 102, 152, 151, 60, 127, 228, 26, 101, 161]), value: EventValue([239, 133, 193, 199, 78, 21, 173, 94, 94, 94, 166, 143, 117, 161, 99, 29, 41, 6, 86, 114, 203, 235, 132, 214, 147, 100, 7, 130, 145, 92, 169, 62, 248, 29, 122, 89, 149, 141, 152, 180, 19, 41, 188, 169, 189, 18, 105, 223, 169, 80, 180, 68, 147, 98, 119, 22, 109, 78, 212, 169, 177, 98, 8, 134, 245, 177, 175, 244, 197, 113, 67, 87, 90, 22, 44, 203]) }], receipt: 3833338367 }, TransactionReceipt { tx_hash: [203, 25, 192, 193, 243, 182, 146, 127, 54, 70, 247, 63, 25, 170, 3, 92, 143, 63, 111, 202, 120, 185, 35, 206, 73, 8, 187, 73, 177, 73, 212, 102], body_to_save: None, events: [Event { key: EventKey([67, 52, 86, 162, 31, 57, 67, 78, 238, 0, 225, 246, 245, 130, 218, 179, 82, 230, 183, 114, 205, 217, 60, 48, 70, 183, 207, 255, 101, 9, 55, 193, 34, 86, 159, 251, 110, 183, 204, 54, 12, 129, 119, 67, 209, 3, 103, 119, 51, 21, 68, 51, 63, 111, 208, 72, 7, 154, 109, 51, 146, 168, 50, 20, 204, 123, 198, 70, 192, 68, 139, 197, 245, 5, 133, 140, 56, 117, 127, 126, 110, 136, 62, 164, 135, 46, 186, 44, 181, 193, 198, 151, 185, 34, 103]), value: EventValue([113, 67, 2, 159, 181, 119, 96, 43, 107, 224]) }], receipt: 1226915823 }, TransactionReceipt { tx_hash: [242, 23, 13, 161, 109, 126, 215, 236, 39, 11, 209, 88, 209, 220, 217, 95, 33, 245, 52, 214, 5, 227, 45, 176, 160, 128, 86, 204, 44, 76, 151, 177], body_to_save: Some([116, 62, 71, 184, 178, 8, 209, 217, 85, 189, 205, 50, 228, 226, 37, 111, 220, 112, 231, 164, 27]), events: [Event { key: EventKey([38, 85, 91, 80, 124, 140, 41, 83, 254, 132, 0, 191, 95, 73, 215, 78, 172, 108, 199, 230, 236, 190, 88, 133, 250, 165, 131, 94, 180, 103, 241, 41, 122, 61, 117, 230, 23, 40, 244, 236, 50, 44, 33, 125, 97, 220, 151, 106, 60, 147, 79, 6]), value: EventValue([132, 18, 119, 157, 196, 65, 28, 33, 52, 186, 28, 67, 36, 186, 234, 196, 53, 198, 208, 206, 122, 54, 93, 97, 195, 100, 6, 181, 58, 77, 95, 130, 49, 62, 242, 9, 212, 48, 168, 236, 121, 53, 134, 175, 111, 73, 194, 248, 46, 75, 149, 76, 92, 165, 177, 219, 159, 77, 6, 254, 224, 103, 201, 12, 189, 104, 139, 207, 165, 11, 91, 177, 94, 119, 242]) }, Event { key: EventKey([153, 50, 18, 135, 234, 30, 211, 67, 231, 135, 79, 78, 11]), value: EventValue([213, 247, 99, 76, 155, 180, 213, 140, 172, 44, 117, 26, 26, 133, 186, 117, 171, 184, 52, 250, 64, 174, 214, 90, 101, 12, 130, 212, 175, 66, 222, 211, 159, 197, 90, 122, 146, 184, 184, 5, 186, 173, 242, 50, 158, 35, 141, 177, 245, 52, 151, 76, 8, 18, 166, 137, 78, 105, 199, 74, 116, 98, 142, 158, 164, 88, 110, 95, 54, 149, 132, 215, 164, 92, 154, 47, 123]) }, Event { key: EventKey([220]), value: EventValue([144, 88, 54, 205, 170, 37, 241, 125, 201, 52, 118, 176, 91, 113, 70, 45, 162, 133, 131, 103, 246, 123, 79, 1, 83, 58, 0, 118, 114, 40, 175, 210, 122, 71, 126, 14, 86, 34, 9, 201, 123, 121, 207, 237, 245, 180, 200, 25, 53, 93, 71, 132, 20, 231]) }, Event { key: EventKey([218, 216, 41, 32, 3, 164, 119, 152, 2, 70, 189, 161, 204, 72, 153, 91, 112, 142, 182, 147, 120, 2, 238, 251, 235, 66, 14, 153, 63, 176, 236, 120, 184, 157, 107, 39, 53, 40, 225, 52, 239, 175, 91, 151, 106, 94, 188, 215, 105, 75, 222, 162, 105, 99, 115, 146, 82, 158, 184, 32, 171, 213, 113, 18, 127, 91, 118, 191]), value: EventValue([122, 77, 38, 19, 166, 147, 158, 242, 160, 187, 9, 174, 9, 20, 205, 246, 82, 235, 90, 81, 174, 37, 202, 244, 240, 57, 233, 137, 184, 234, 251, 201, 79, 183, 70, 28, 207, 93, 205, 175, 26, 74, 243, 190, 208, 225, 43, 5, 78, 185, 115, 117, 248]) }, Event { key: EventKey([35, 195, 69, 129, 216, 128, 196, 156, 229, 203, 97, 14, 129, 86, 179, 177, 235, 116, 36, 232, 156, 254, 221, 148, 137, 177, 70, 108, 150, 48, 123, 148, 172, 8]), value: EventValue([162, 220, 55, 79, 96, 165, 179, 60, 135, 144, 76, 144, 250, 66, 30, 75, 220, 223, 220, 177, 101, 3, 56, 112, 11, 240, 201, 243, 121, 18, 167, 176, 140, 145, 135, 89, 184, 176, 2, 78, 178, 53, 23, 18, 184, 209, 168, 174, 68, 236, 241, 243, 103, 66, 138, 131, 93, 113, 34, 16, 114, 19, 150, 69, 253, 241, 197, 73, 101, 43, 243, 9, 103, 150, 188, 239, 97, 133, 205, 205, 167, 151, 13, 72, 35, 156, 96, 38, 249, 233]) }, Event { key: EventKey([230, 125, 233, 28, 166, 41, 95, 91, 120, 5, 230, 246, 153, 240, 161, 172, 75, 96, 106, 189, 207, 223, 82, 139, 100, 40, 63, 5, 84, 228, 66, 2, 91, 55, 203, 236, 77, 125, 177, 241, 202, 2, 234, 180, 50, 25, 179, 64, 114, 99, 192, 99, 21, 105, 191, 205, 23, 194, 224, 240, 102, 201, 221, 130, 22, 92, 244, 1, 10, 0, 16, 200, 145, 36, 88, 91, 99, 186, 74, 203, 114, 141, 219, 231, 120]), value: EventValue([70, 15, 44, 86, 26, 111]) }, Event { key: EventKey([232, 112, 6, 232, 155, 49, 54]), value: EventValue([173, 238, 91, 116, 78, 70, 213, 5, 252, 152, 235, 30, 73, 32, 224, 180, 195, 188, 130, 4, 177, 237, 17, 174, 241, 47, 75, 9, 31, 33, 112, 176, 20, 158, 181, 86, 238, 131, 33, 145, 245, 43, 212, 146, 230, 160, 52, 3, 64, 226, 220, 112, 105, 119, 93, 141, 139, 17, 148, 243, 7, 212, 165, 248, 170]) }, Event { key: EventKey([142, 248, 231, 24, 27, 84, 100, 26, 136, 89, 180, 66, 27, 240, 53, 108, 68, 179, 94, 88, 182, 69, 82, 60, 157, 222, 118, 233, 161, 11, 45, 117, 9, 155, 60, 170, 6, 152, 8, 144, 78, 34, 190, 71, 2, 179, 90, 77, 182, 71, 173, 226, 1, 115, 237, 41, 48, 110, 171, 25, 22, 71, 83, 88, 128, 25, 153, 249, 69, 71, 142, 38, 144, 234, 109, 50, 35, 13, 25, 226, 169, 50, 177, 176, 141, 8, 168, 160, 152]), value: EventValue([211, 184, 100, 33, 74, 137, 62, 237, 184, 126, 228, 160, 93, 143, 134, 239, 183, 91, 98, 90, 24, 172, 44, 210, 188, 139, 78, 136, 223, 133, 225, 17, 178, 248, 132, 180, 93, 209, 237, 67, 176, 145, 76, 85, 128, 250, 18, 27, 54, 7, 114, 31, 3, 0, 145, 46, 146, 117, 108, 191, 99, 45, 188, 227, 64, 194, 214, 46, 240, 78, 40, 192]) }, Event { key: EventKey([165, 191]), value: EventValue([200, 151, 93, 33, 168, 141, 52, 173, 181, 166, 51, 151, 114, 81, 231, 205, 43, 32, 198, 206, 192, 205, 218, 116, 106, 121, 227, 226, 169, 126, 213, 129, 49, 223, 66, 85, 234, 78, 4, 252, 137, 79, 79, 142, 9, 16, 105, 111, 230, 3, 204, 104, 230, 234, 217, 114, 237, 101, 64, 223, 0, 112, 105, 234, 163, 166, 161, 150, 29, 31, 29, 145, 182, 80, 35, 5, 198, 251, 50, 24]) }], receipt: 1514999257 }, TransactionReceipt { tx_hash: [3, 29, 80, 52, 46, 167, 75, 23, 206, 202, 139, 193, 228, 153, 79, 127, 74, 215, 169, 192, 218, 118, 239, 161, 216, 209, 130, 22, 146, 151, 25, 140], body_to_save: Some([61, 153, 93, 4, 172, 3, 120, 166, 246, 98, 231, 137, 183, 175, 241, 136, 82, 9, 207, 29, 221, 112, 168, 81, 181, 12, 217, 101, 60, 127, 227, 229, 19, 79, 72, 78, 42, 14, 213, 126, 188, 178, 233, 253, 55, 214, 233, 53, 117, 12, 66, 81, 164, 168, 2, 80, 140, 151, 224, 210, 120, 148, 255, 182, 107, 53, 113, 124, 167, 17, 4, 234, 243, 185, 99, 169, 223, 172, 188, 170, 61, 166, 22, 133, 199, 46, 91, 92, 175, 18, 37]), events: [], receipt: 255782608 }], inner: 2668062826 }, BatchReceipt { batch_hash: [45, 155, 252, 6, 81, 65, 140, 215, 46, 52, 30, 108, 252, 95, 30, 212, 144, 195, 240, 43, 170, 252, 60, 89, 5, 230, 13, 245, 235, 216, 154, 67], tx_receipts: [TransactionReceipt { tx_hash: [160, 150, 241, 240, 251, 143, 86, 220, 84, 35, 245, 233, 51, 192, 169, 96, 203, 39, 59, 70, 117, 206, 226, 157, 236, 4, 123, 183, 29, 60, 206, 67], body_to_save: Some([127, 27, 116, 125, 137, 74, 44, 225, 62, 230, 234, 147, 113, 206, 163, 142, 52, 57, 208, 221, 177, 190, 7, 125, 49, 206, 216, 16, 138, 188, 18, 74, 121, 45, 136, 182, 110, 49, 136, 38, 255, 37, 21, 226, 188, 194, 241, 39, 201, 17, 113, 237, 130, 51, 63, 190, 116, 26, 46]), events: [Event { key: EventKey([32, 157, 91, 78, 171, 148, 30, 61, 221, 14, 46, 12, 121, 176, 175, 219, 242, 182, 167, 129, 12, 183, 180, 117, 187, 110, 164, 119, 128, 13, 90, 166, 200, 107, 243, 195, 212, 113, 28, 146, 142, 50, 98, 116, 148, 208, 46, 129, 136, 188, 77, 60, 223, 120, 87, 187, 40, 111, 24, 66, 116, 111, 162, 58, 196, 143, 9, 79, 131, 249, 95, 232, 149, 107, 253, 58, 5, 147, 124, 21, 228]), value: EventValue([158, 168, 125, 236, 40, 144, 183, 79]) }, Event { key: EventKey([59, 199, 6, 39, 133, 211, 149, 203, 87, 146, 16, 4, 206, 16, 36, 152, 129, 246, 4, 109, 20, 219, 180, 238, 39]), value: EventValue([161, 30, 251, 160, 23, 197, 179, 242, 99, 61, 140, 239, 152, 8, 3, 98, 45, 220, 199, 150, 180, 32, 204, 162, 216, 88, 210, 150, 86, 141, 102, 57, 241, 246, 17, 243, 241, 244, 243, 70, 97, 109, 250, 139, 126, 215, 35, 92, 235, 152, 21, 11, 69, 41, 191, 152, 234, 124, 106, 113, 237, 146, 17, 153, 214, 134, 226]) }, Event { key: EventKey([232, 253, 56, 235, 152, 165, 208, 81, 177, 118, 29, 80, 251, 185, 77, 140, 27, 230]), value: EventValue([88, 192, 239, 56, 254, 112, 172, 54, 216, 230, 176, 111, 206, 4, 197, 192, 205, 24, 202, 127, 142, 255, 25, 119, 141, 116, 232, 1, 229, 100, 132, 223, 76, 204, 217, 17, 215, 180, 40, 227, 43, 86, 115, 169, 141, 169, 149, 130, 231, 185, 189, 208, 209, 45, 103, 103, 170, 30, 18, 240, 255, 146, 98, 193, 60, 221, 38, 251, 217, 147, 196, 25, 220, 221, 111, 101, 6, 47, 170, 75, 96, 177, 94, 137, 128, 225, 114, 250, 222]) }, Event { key: EventKey([139, 148, 143, 43, 81, 95, 61, 227, 30, 213, 9, 207, 185, 186, 116, 19, 188, 42, 90, 15, 73, 126, 173, 2, 83, 234, 32, 128, 127, 132, 225, 153, 90, 4, 144, 244, 117, 185, 18, 173, 223, 63, 117, 99, 150, 187, 76, 162]), value: EventValue([195, 123, 207, 255, 99, 203, 57, 103, 83, 207, 216, 96, 73, 6, 201, 31, 148, 83, 61]) }, Event { key: EventKey([216, 15, 174, 217, 207, 167, 99, 45, 54, 190, 157, 143, 183, 73, 25, 222, 26, 38, 61, 80, 160, 241, 129, 179, 235, 244, 44, 85, 88, 185, 142, 7, 254, 89, 208, 106, 191, 46, 50, 42, 58, 248, 206, 157, 181, 131, 186, 126, 75, 63, 179, 246, 54, 224, 65, 87, 15, 139, 150, 138, 194, 115, 10, 109, 43, 15, 243, 56, 23, 93, 9, 224, 140, 18, 191, 135, 19, 142]), value: EventValue([147, 63, 177, 75, 169, 71]) }], receipt: 3885686403 }, TransactionReceipt { tx_hash: [19, 168, 240, 233, 46, 216, 62, 92, 186, 48, 228, 75, 143, 195, 186, 103, 123, 179, 105, 114, 90, 203, 140, 126, 3, 58, 155, 50, 232, 159, 168, 65], body_to_save: None, events: [Event { key: EventKey([251, 41, 168, 235, 154, 174, 117, 87, 194, 10, 109, 192, 253, 114, 25, 184, 224, 171, 45, 157, 100, 22, 155, 14, 175, 27, 114, 182, 217, 203, 72, 68, 51, 39, 48, 245, 140, 120, 136, 85, 192, 193, 208]), value: EventValue([54, 35, 255, 200, 84, 38, 16, 62, 11, 90, 113, 0, 43, 57, 27, 157, 167, 158, 166, 255, 232, 222, 212]) }, Event { key: EventKey([11, 132, 197, 72, 69, 84, 112, 8, 80, 25, 96, 210, 223, 252, 230, 135, 207, 29, 234, 161, 104, 251, 222, 10, 10, 249, 57, 150, 44, 202, 180, 24, 221, 107, 248, 30, 11, 129, 190, 207, 177, 78, 12, 2, 130, 56, 124, 142, 134, 119, 141, 102, 212, 60, 211, 203, 47, 50, 81, 13, 220, 240, 59, 93, 213, 157, 145, 93]), value: EventValue([211, 184, 69, 214, 96]) }, Event { key: EventKey([72, 67, 73, 164, 77, 176, 45, 168, 114, 47, 204, 53, 130, 249, 208, 49, 244, 55, 99, 87, 24, 125, 253, 90, 74, 209, 125, 84, 1, 8, 163, 199, 88, 174, 23, 171, 15, 214, 254, 208, 155, 96, 100, 32, 215, 179, 32, 92, 13, 80, 71, 84, 189, 44, 55, 67, 47]), value: EventValue([215, 222, 98, 23, 236, 218, 236, 29, 72]) }, Event { key: EventKey([219, 220, 115, 215, 43, 247, 170, 193, 170, 122, 161, 136, 135, 249, 126, 77, 173, 29, 143, 125, 71, 115, 225, 209, 242, 97, 152, 83, 213, 175, 188, 99, 43, 127, 176, 123, 15, 27, 94, 224, 109, 220, 117, 84, 10, 110, 240, 183, 1, 126, 176, 161, 233, 138, 41, 117, 10, 156, 73, 226, 39, 102, 12, 160, 216, 71, 180, 4, 241, 119, 62, 118, 125, 214, 108, 64, 125, 93, 91, 1, 92, 209, 212, 41, 128, 234, 247, 85, 242, 104, 176, 44, 11, 98, 251, 60, 66, 51]), value: EventValue([95, 196, 143, 136, 169, 208, 221, 111, 192, 170, 38, 49, 115, 36, 66, 135, 105, 250, 248, 219, 159, 50, 195, 125, 131, 161, 184, 214, 159, 26, 85, 87, 119, 148, 37, 87, 170, 127, 50, 134, 21, 190, 198, 23, 151, 119, 109, 231]) }, Event { key: EventKey([120, 207, 36, 153, 250, 193, 141, 24, 96, 132, 95, 85, 189, 39, 183, 203, 186, 70, 189, 253, 178, 101, 195, 34, 204, 186, 53, 126, 108, 184, 118, 96, 79, 87, 153, 111, 191]), value: EventValue([185, 105, 120, 124, 45, 152, 41, 32, 58, 185, 175, 56, 161, 12, 42, 2, 8, 176, 68, 226, 65, 59, 52, 149, 132, 122, 108, 195, 16, 46, 193, 127, 194, 213, 73, 29, 27, 25, 171, 239, 222, 122, 105, 202, 76, 94, 222, 52, 202, 120]) }], receipt: 1948200967 }, TransactionReceipt { tx_hash: [1, 16, 43, 229, 142, 235, 197, 116, 34, 203, 121, 2, 66, 22, 219, 212, 204, 84, 59, 4, 24, 205, 165, 49, 39, 182, 21, 140, 37, 161, 223, 113], body_to_save: Some([34, 217, 193, 144, 187, 210, 114, 82, 246, 188, 121]), events: [Event { key: EventKey([222, 77, 80, 108, 102, 226, 172, 136, 47, 120, 25, 190, 181, 233, 76, 37, 84, 65, 169, 113, 84, 198, 162, 19, 186, 124, 234, 148, 255, 108, 90, 88, 55, 50, 100, 48, 99, 82, 99, 41, 149, 159, 213, 136, 245, 120, 246, 139, 163, 30, 159, 99, 159]), value: EventValue([50, 92, 171, 169, 46, 202, 216, 118, 46, 84, 162, 77, 182, 20, 43, 177, 61, 108, 158, 166, 28, 217, 108, 250, 30, 198, 40, 251, 203, 123, 61, 117, 82, 114, 208, 196, 160, 161, 23, 216, 225, 38, 114, 128, 255, 137, 103, 24, 223, 138, 34, 70, 182, 64, 147, 116, 90, 73, 154, 43, 116, 154, 5, 172, 223, 9, 197, 78, 62, 50, 235, 133, 145]) }], receipt: 1535864388 }, TransactionReceipt { tx_hash: [186, 6, 3, 252, 192, 106, 133, 193, 156, 108, 71, 196, 45, 77, 121, 129, 254, 1, 240, 78, 128, 179, 24, 4, 95, 2, 95, 35, 89, 79, 38, 243], body_to_save: Some([6, 222, 255, 251, 109, 9, 173, 69, 14, 191, 251, 160, 105, 235, 253, 237, 237, 242, 169, 211, 186, 78, 129, 70, 63, 63, 238, 132, 227, 71, 244, 242, 45, 42, 66, 18, 189, 219, 24, 235, 169, 195, 33, 102, 155, 241, 16, 25, 226, 37, 125, 47, 3, 242, 209, 235, 246, 249, 114, 110, 29, 69, 242, 240, 193, 105, 129, 234, 122, 54, 169, 93, 84, 183, 117, 79, 42, 204, 236, 202, 55, 171, 110, 49, 84, 188, 195, 95, 10, 2, 176, 22, 53, 158, 7, 238, 56, 188]), events: [Event { key: EventKey([155, 106, 20, 208, 53, 227, 243, 61, 119, 223, 186, 189, 224, 29, 86, 202, 224, 67, 130, 13, 247, 181, 252, 18, 208, 118, 175, 193, 86, 107, 196, 115, 137, 86, 131, 109, 209, 138, 114, 182, 144, 249, 237, 193, 128, 36, 143, 121, 50, 85, 221, 198, 171, 195, 150, 136, 78, 10, 76, 11, 128, 254, 247, 244, 28, 123, 113, 122, 11, 57]), value: EventValue([151, 172, 67, 215, 1, 106, 64, 86, 197, 169, 249, 171, 163, 82, 244, 43, 139, 255, 10, 21, 131, 180, 197, 160, 162, 135, 50]) }], receipt: 2298286987 }, TransactionReceipt { tx_hash: [18, 59, 150, 0, 101, 157, 149, 247, 193, 13, 128, 195, 27, 192, 52, 32, 61, 89, 91, 23, 191, 245, 119, 28, 149, 186, 49, 44, 222, 209, 247, 16], body_to_save: Some([128, 147, 216, 39, 31, 238, 227, 158, 93, 158, 28, 105, 171, 121, 100, 152, 223, 78, 243, 2, 199, 132, 202, 18, 148, 48, 216, 140, 216, 219, 227, 119, 94, 210, 166, 95, 166]), events: [], receipt: 1161279057 }, TransactionReceipt { tx_hash: [178, 5, 192, 101, 193, 99, 62, 254, 7, 61, 207, 73, 164, 143, 240, 204, 91, 146, 166, 128, 124, 44, 11, 224, 191, 213, 10, 135, 87, 164, 249, 132], body_to_save: None, events: [Event { key: EventKey([208, 18, 220, 115, 197, 192, 166, 207, 50, 158, 29, 154, 178, 82, 158, 95, 210, 221, 28, 197, 111, 4, 237, 246, 178, 221, 144, 124, 29, 13, 184, 77, 36, 231, 102, 238, 148, 71, 145, 132, 124, 118, 158, 242, 210, 47, 205, 136]), value: EventValue([144, 87, 145, 4, 100, 255, 252, 253, 207, 115, 208, 197, 254, 8, 139, 185, 70, 11, 208, 99, 45, 242, 179, 175, 156, 23, 139, 79, 98, 196, 41, 23, 201, 38, 218, 198, 56, 14, 168, 140, 130, 49, 109, 250, 5, 90, 160, 36, 178, 46, 220, 222, 212, 95, 79, 137, 183, 115, 91, 14, 227, 7, 111, 210]) }, Event { key: EventKey([23, 141, 221, 68, 35, 125, 213, 124, 254, 145, 4, 244]), value: EventValue([180, 200, 231, 154, 102, 82, 3, 168, 105, 67, 209, 150, 175, 203, 191, 196, 179, 39, 143, 62, 235, 161, 43, 111, 114, 82, 169, 70, 136, 168, 175, 208, 235, 29, 62, 91, 209]) }, Event { key: EventKey([116, 70, 18, 157, 154, 117, 55, 147, 202, 33, 78, 141, 141, 0, 1, 221, 18, 195, 196, 108, 188, 80, 144, 36, 101, 197, 122, 122, 82, 64, 242, 51, 109, 245, 222, 56, 173, 11, 72, 180, 123, 222, 186, 102, 150, 95, 151, 204, 4, 244, 72, 9, 192, 187]), value: EventValue([122, 236, 97, 225, 196, 160, 138, 126, 253, 233, 148, 150, 197, 48, 138, 169, 35, 125, 96, 150, 214, 82, 202, 10, 33, 114, 153, 83, 80, 218, 227, 7, 187, 188, 242, 103, 24, 101, 224, 4, 220, 118, 89, 78, 159, 9, 116, 36, 12, 247, 166, 243, 70, 88, 137, 171, 23, 38, 121, 94, 128, 43, 136, 255, 180, 84, 220, 242, 50, 35, 186, 177, 136, 86, 125, 219, 181, 250, 233, 97, 248, 203, 87, 242, 72, 50, 56, 139, 86, 165, 151, 22, 198]) }, Event { key: EventKey([59, 106, 188, 26, 204, 127, 176, 93, 87, 62, 89, 84, 193, 216, 143, 88, 177, 123, 9, 250, 36, 87, 27, 166, 87, 107, 210, 11, 208, 117, 230, 86, 32, 38, 164, 118, 222, 222, 91, 52, 1, 163, 249, 1, 68, 194, 77, 130, 12, 213, 238, 248, 170, 78, 2, 223, 158, 235, 180, 61, 83, 195, 131, 55, 42, 88, 228, 66, 38, 43, 104, 25, 132, 151, 35, 94, 153, 152, 99, 106, 39, 168, 84, 15, 41, 232, 14, 136, 185, 4, 16, 47, 236, 202, 28, 93, 91, 181]), value: EventValue([237, 176, 194, 191, 182, 91, 27, 57, 218, 2, 124, 204, 75, 102, 153, 219, 91, 44, 59, 213, 215, 209, 190, 63, 37, 6, 199, 158, 87, 197, 167, 118, 66, 73, 10, 150, 82, 144, 110, 131, 211, 224, 151, 92, 27, 191, 248, 241, 165, 228, 217, 238, 147, 174, 10, 100, 76]) }, Event { key: EventKey([159, 8, 149, 117, 165, 173, 2, 65, 80, 192, 226, 222, 201, 63, 58, 251, 219, 105, 0, 22, 187, 248, 51, 53, 17, 174, 155, 193, 77]), value: EventValue([176, 37, 244, 69, 28, 89, 217, 212, 221, 42, 19, 158, 75, 154, 180, 246, 89, 223, 144, 158, 1, 214, 243, 229, 185, 52, 209]) }, Event { key: EventKey([246, 76, 180, 6, 60, 198, 185, 25, 228, 67, 207, 236, 155, 40, 138, 230, 216, 146, 32, 242, 127, 41, 100, 112, 160, 163, 206]), value: EventValue([220, 112, 187, 208, 105, 172, 157, 131, 92, 92, 215, 203, 107, 206, 187, 102, 20, 93, 140, 153, 117, 170, 227, 87, 152, 131, 46, 122, 9, 43, 13, 17, 197, 7, 230, 242, 232, 73, 147, 180, 247, 23, 110, 6, 9, 111]) }], receipt: 883167319 }, TransactionReceipt { tx_hash: [232, 222, 59, 154, 102, 47, 8, 97, 242, 192, 17, 60, 206, 249, 246, 238, 143, 199, 43, 215, 196, 130, 157, 136, 232, 188, 230, 235, 98, 139, 92, 75], body_to_save: Some([225, 124, 188, 103, 182, 147, 38, 59, 132, 45, 29, 17, 223, 182, 56, 70, 88, 213, 81, 137, 144, 1, 235, 113, 176]), events: [Event { key: EventKey([228, 42, 213, 129, 49, 173, 159, 67, 165, 127, 137, 60, 12, 211, 10, 123, 7, 0, 22]), value: EventValue([44, 152, 250, 228, 163, 192, 248, 110, 71, 113, 4, 183, 100, 37, 6, 238, 44, 61, 62, 103, 137, 233, 124, 72, 157, 30, 175, 217, 59, 178, 101, 221, 45, 110, 78, 172, 167, 65, 87]) }, Event { key: EventKey([48, 23, 218, 233, 221, 129, 129, 227, 114, 38, 242, 142, 12, 104, 217, 84, 25, 114, 216, 131, 183, 203, 217, 210, 116, 179, 13, 14, 59, 184, 128, 164, 58, 227, 153, 138, 81]), value: EventValue([209, 29, 49, 140, 133, 105, 39, 160, 143, 129, 64, 15, 30, 216, 141, 105, 44, 138, 100, 124, 221, 207, 173, 20, 171, 56, 84, 225, 27, 202, 8, 74, 56, 204, 160, 86, 48, 116, 36, 107, 153, 59, 10, 190, 55, 188, 77, 33, 240, 2, 146, 87, 58, 162, 143, 206, 146, 12, 171, 15, 37, 253, 132, 248, 204, 255, 53, 83, 71, 98, 45, 189, 121]) }, Event { key: EventKey([112, 108, 39, 89, 121, 85, 159, 201, 8, 82, 144, 240, 132, 106, 101, 248, 187, 120, 103, 254, 99, 59, 65, 63, 7, 129, 11, 188, 21, 167, 250, 69, 204, 234, 52, 46, 74, 245, 207, 95, 25, 199, 207, 172, 20, 78, 218, 85, 149, 107, 251, 141, 212, 120, 210, 97, 199, 218, 68]), value: EventValue([18, 233, 187, 162, 111, 37, 68, 0, 131, 66, 55, 223, 85, 141, 102, 39, 139, 106, 51, 231, 13, 77, 58, 195, 167, 172, 80, 53, 45, 75]) }, Event { key: EventKey([100, 29, 222, 74, 171, 134, 83, 24, 51, 70, 150, 134, 173, 235, 95, 50, 249, 43, 172, 241, 122, 105, 108, 68, 109, 115, 105, 219, 208, 13, 104, 48, 191, 131, 156, 206, 45, 133, 132, 91, 235, 199, 111, 27, 205, 13, 218, 105, 231, 9, 17, 135, 8, 138, 79, 109, 142, 107, 55, 150, 48, 113, 63, 7, 52, 204, 112, 87]), value: EventValue([1, 149, 210, 64, 181, 28, 109, 244, 112, 150, 192, 90, 194, 26, 186, 168, 91, 128, 86, 12, 153, 200, 241, 220, 225, 57, 192, 186, 173, 125, 244, 192, 188, 62, 99]) }, Event { key: EventKey([135, 173, 67, 85, 236, 109, 72, 22, 212, 130, 177, 234, 137, 238, 63, 192, 46, 66, 55, 156, 59, 40, 217, 168, 41, 141, 213, 104, 118, 225, 165, 80, 150, 78, 4, 74, 94, 2, 139, 207, 50, 240, 218, 82, 86, 115, 0, 235, 87, 240, 240, 128, 0, 153, 140, 162, 20, 162, 53, 176, 73, 187, 10, 131, 119, 194, 121, 128, 175, 196]), value: EventValue([191, 57, 152, 80, 254, 32, 64, 104, 46, 110, 75, 71, 17, 62, 236, 41, 233, 176, 176, 65, 174, 185, 30, 87, 47, 45, 207, 39, 92, 203, 163, 95, 167, 128, 34, 194, 43, 42, 9, 203, 37, 186]) }], receipt: 155466108 }], inner: 3068411090 }, BatchReceipt { batch_hash: [178, 72, 220, 82, 107, 113, 43, 98, 51, 221, 20, 105, 223, 14, 40, 15, 246, 245, 86, 174, 34, 243, 27, 29, 207, 8, 186, 161, 83, 62, 169, 201], tx_receipts: [TransactionReceipt { tx_hash: [145, 25, 17, 235, 39, 246, 150, 113, 174, 47, 84, 181, 184, 178, 83, 57, 141, 58, 31, 131, 141, 51, 138, 132, 139, 128, 79, 160, 193, 109, 192, 101], body_to_save: None, events: [Event { key: EventKey([7, 251, 168, 243, 217, 235, 225, 50, 135, 235, 209, 194, 33, 82, 3, 172, 84, 85, 171, 136, 204, 181, 1, 100, 254, 69, 10, 95, 137, 175, 95, 208, 114, 171, 165, 112, 139, 248, 121, 94, 59, 198, 109, 84, 121, 54, 12, 108, 187, 23, 91, 61, 201, 29, 211, 92, 234, 83, 80, 246, 135, 203, 203, 248, 132, 61, 123]), value: EventValue([79, 144, 126, 123, 42, 143, 156, 61, 246, 12, 198, 8, 172, 129, 197, 149, 66]) }, Event { key: EventKey([152, 224, 129, 248, 246, 94, 3, 62, 101, 57, 15, 7, 230, 58, 51, 7, 128, 18, 44, 167, 234, 239, 2, 212, 23, 12, 134, 85, 163, 41, 218, 89, 0, 16, 106, 151, 239, 233, 89, 81, 89, 106, 76, 7, 31, 244, 255, 139, 154, 161, 88, 177, 253, 162, 13, 154, 88, 134, 147, 5, 72, 27, 131, 135, 23, 147, 192, 105, 195, 31, 210, 107, 101, 249, 6, 8, 20, 125, 52, 154, 198, 113, 98, 107, 163, 166, 237, 219, 214, 160, 158, 80, 253, 143, 57, 131]), value: EventValue([121, 23, 214, 52, 29, 252, 210, 20, 58, 255]) }, Event { key: EventKey([80, 222, 36, 181, 120, 68, 211, 99, 107, 143, 216, 110, 112, 110, 89, 190, 3, 6, 173, 90, 76, 207, 48, 218, 200, 85, 37, 132, 37, 21, 80, 10, 247, 254, 8, 206, 4, 134, 61, 14, 212, 66, 185, 212, 173, 222, 197, 70, 130, 147, 19, 167, 19, 169, 25, 5, 110, 15, 119, 8, 170, 114, 178, 226, 128, 112, 51, 104, 11, 79, 119, 250, 201, 138, 54, 173, 134, 176, 92, 96, 95, 34, 86, 78, 199, 99, 54, 39, 169, 54, 251, 22, 35]), value: EventValue([173, 65, 31, 106, 58, 172, 197, 210, 38, 220, 219, 132, 102, 234, 39, 79, 42, 16, 126, 24, 225, 56, 230, 176, 138, 63, 245, 41, 51, 251, 82, 19, 197, 4, 81, 94, 215, 150, 138, 126, 17, 183, 137, 107, 79, 60, 159, 51, 108, 158, 137, 239, 75, 63, 167, 12, 191, 186, 24, 131, 176, 239, 126, 208, 8, 64, 40, 234, 73, 47, 233, 46, 221, 3, 45, 238, 168, 154, 210, 81, 92]) }, Event { key: EventKey([23, 56, 180, 122, 188, 178, 138, 0, 73, 163, 115]), value: EventValue([228, 209, 136, 40, 60, 189, 138, 104, 0, 161, 13, 214, 113, 151, 67, 147, 199, 136, 214, 61, 31, 59, 241, 156, 167, 239, 215, 135, 42, 168, 163, 221, 171, 7, 124, 13, 95, 99, 154, 61, 141]) }], receipt: 525456499 }, TransactionReceipt { tx_hash: [105, 35, 65, 136, 211, 68, 97, 215, 11, 189, 25, 79, 94, 1, 177, 5, 134, 220, 203, 190, 171, 215, 245, 54, 187, 195, 38, 67, 73, 219, 147, 11], body_to_save: None, events: [Event { key: EventKey([54, 244, 106, 169, 182, 138, 188, 159, 158, 93, 178, 63, 53, 203, 251, 19, 184, 178, 223, 50, 121, 253, 198, 144, 144, 100, 154, 34, 231, 117, 172, 224, 152]), value: EventValue([134, 29, 24, 81, 227, 39, 82, 4, 241, 172, 147, 228, 67, 52, 3, 183, 54, 237, 172, 13, 199, 209, 26, 8, 207, 188, 212, 63, 232, 68, 26, 16, 75, 250, 43, 15, 140, 93, 211, 47, 181, 146, 148, 25, 23, 197, 138]) }, Event { key: EventKey([194, 248, 73, 244, 100, 225, 32, 34, 241, 182, 54, 105, 68, 25, 178, 250, 129, 54, 206, 243, 7, 173, 77, 86, 138, 113, 19, 204, 37, 129, 84, 61, 174, 167, 178, 144, 148, 72, 148, 203, 246, 51, 138, 255, 93, 207, 223, 252, 160, 205, 216]), value: EventValue([214, 235, 20, 21]) }, Event { key: EventKey([45, 1, 32, 255, 228, 163, 5, 217, 117, 84, 65, 204, 134, 132, 6, 113, 36, 30, 36, 68, 198, 125, 92, 186, 207, 69, 47, 106, 108, 113, 178, 223, 116, 148, 5, 15, 28, 253, 149, 192, 86, 2, 84, 81, 103, 218, 201, 81, 35, 67, 90, 216, 112, 130, 117, 84, 64, 175, 160, 71, 25, 83, 254, 160, 42, 179, 85, 18, 115, 14, 74, 141, 247, 191, 88, 18, 213, 86, 87, 49, 37, 213, 117]), value: EventValue([219, 243, 63, 61, 73, 217, 24, 153, 226, 159, 46, 202, 246, 171, 249, 236, 38, 123, 152, 81, 157, 39, 80, 27, 88, 5, 245, 3, 4, 195, 39, 206, 127, 97, 171, 184, 172, 15, 17, 0, 11, 214, 219, 177, 250, 74, 44, 86, 139, 222, 117, 159, 155, 207, 155, 24, 43, 20, 129, 164, 213, 1, 69, 186, 61, 169, 49, 33, 134, 160, 14]) }, Event { key: EventKey([]), value: EventValue([192, 88, 108, 17, 182, 157, 189, 175, 132, 201, 132, 53, 1, 234, 208, 50, 97, 184, 233, 59, 127, 64, 31, 172, 227, 248, 165, 236, 234, 151, 233, 232, 65, 0, 164, 100, 109, 198, 164, 228, 94, 172, 250, 206, 205, 157, 167, 206, 49, 136, 212, 191, 182, 2, 70, 79, 226, 190, 225, 30, 29, 109, 61, 160, 215, 120, 226, 168, 137, 218, 12, 55, 221, 50, 102, 218, 90, 222, 199, 3, 147, 172, 195, 74, 72, 246, 252, 4, 215, 41, 45, 60, 94]) }, Event { key: EventKey([120, 91, 104, 26, 1, 60, 89, 243, 163, 39, 105, 115, 137, 111, 0, 255, 118, 203, 225, 81, 239, 36, 63, 76, 238, 37, 210, 146, 185, 222, 246, 241, 26, 129, 55, 230, 34, 121, 72, 189, 166, 132, 135, 193, 146, 173, 210, 248, 87, 168, 79, 162, 236, 211, 38, 135, 199, 240, 151, 200, 212, 165, 201, 80, 146, 83, 195, 70, 152, 225, 1, 86, 96, 55]), value: EventValue([72, 89, 91, 152, 181, 38, 234, 131, 97, 26, 21, 87, 135, 103, 45, 247, 13, 99, 221, 177, 22, 2, 15, 246, 92, 181, 78, 89, 195, 210, 186, 227, 232, 211, 215, 37, 126, 36, 208]) }, Event { key: EventKey([52, 156, 37, 46, 10, 67, 2, 127, 97, 29, 241, 98, 221, 158, 89, 47, 234, 40, 0, 9, 237, 15, 24, 245, 179, 33, 255, 58, 252, 153, 35, 166, 176, 107, 150, 107, 138, 197, 215, 14, 84, 196, 137, 103, 204, 189, 190, 43, 59, 82, 197, 185, 168, 205, 226, 134, 5, 78, 15, 164, 7]), value: EventValue([217, 42, 181, 143, 111, 211, 131, 107, 17, 174, 83, 99, 210, 205, 149, 247, 90, 15, 226, 78, 121, 66, 34, 235, 119, 216, 59, 53, 120, 108, 247, 19, 222, 254, 164, 229, 66, 185, 95, 212, 8, 203, 137, 252, 255, 104, 131]) }, Event { key: EventKey([2, 210, 192, 60, 201, 255, 222, 92, 7, 210, 166, 73, 148, 132, 70, 34, 222, 137, 88, 42, 83, 101, 41, 21, 128, 185, 19, 54, 172, 68, 127, 119, 124, 64, 12, 62, 10, 243, 163, 202, 249, 187, 218, 121, 180, 143, 166, 96, 83, 208, 15, 218, 96, 209, 172, 162, 194, 133, 248, 37]), value: EventValue([124, 255, 211, 93, 154, 82, 104, 151, 219, 155, 89, 241, 109, 208, 22, 120, 110, 9, 133, 36, 23, 71, 26, 103, 134, 238, 116, 69, 14, 151, 66, 232, 252, 65, 26, 169, 17, 183, 142, 183, 253, 40, 11, 225, 178, 99, 64, 12, 214, 83, 99, 243, 10, 232, 105, 4, 186, 221, 68, 215]) }, Event { key: EventKey([199, 60, 214, 16, 98, 249, 198, 184, 129, 239, 59, 55, 47, 50, 102, 53, 228, 184, 12, 83, 7, 225, 175, 2, 101, 70, 72, 71, 52, 82, 24, 176, 38, 124, 62, 191, 176, 80, 75, 222, 188, 70, 198, 117, 146, 140, 99, 33, 1, 218, 121, 136, 119, 215, 88, 27, 171, 166, 8, 75, 147, 51, 1, 177, 162, 205, 119, 40, 72, 204, 26, 115, 19, 57, 219, 113, 72, 39, 150, 59, 128, 250, 38, 89, 231, 112, 54, 18, 111, 223, 150, 49, 93]), value: EventValue([234, 41, 128, 45, 79, 11, 155, 149, 68, 128, 219, 85, 58, 255, 30, 188, 83, 87, 18, 233, 66, 198, 244, 132, 32, 253, 223, 95, 165, 221, 241, 139, 62, 118, 95, 28, 96, 196, 145, 137, 47, 121, 182, 199, 235, 91, 45, 187, 85, 35, 160, 253, 255, 68, 32, 93, 158, 254, 101, 172, 221, 117, 184, 147, 91, 139, 240, 119, 117, 46, 64, 242, 66, 168, 120, 190, 254, 207, 238, 139, 237, 183, 32, 215, 27, 85, 174]) }], receipt: 1090915442 }], inner: 1523921030 }], num_txs: 52, num_events: 240 }], {48: (188, 192), 70: (305, 314), 52: (200, 205), 71: (314, 316), 151: (671, 680), 119: (516, 520), 50: (195, 196), 133: (580, 586), 162: (708, 714), 30: (120, 120), 35: (132, 132), 82: (342, 344), 46: (185, 187), 90: (383, 388), 78: (320, 325), 32: (123, 129), 62: (256, 259), 75: (318, 319), 96: (394, 400), 8: (11, 17), 24: (76, 83), 59: (244, 245), 64: (268, 277), 84: (350, 354), 147: (649, 656), 127: (545, 548), 15: (38, 42), 76: (319, 319), 135: (588, 596), 18: (47, 54), 97: (400, 405), 110: (471, 480), 149: (665, 665), 28: (110, 119), 33: (129, 129), 63: (259, 268), 95: (393, 394), 87: (367, 368), 57: (229, 235), 134: (586, 588), 130: (556, 564), 7: (11, 11), 83: (344, 350), 132: (571, 580), 120: (520, 523), 40: (155, 158), 116: (500, 507), 67: (287, 296), 122: (523, 532), 94: (392, 393), 125: (541, 543), 145: (632, 641), 49: (192, 195), 114: (491, 500), 16: (42, 42), 156: (696, 696), 4: (6, 7), 36: (132, 140), 77: (319, 320), 92: (390, 390), 104: (436, 445), 11: (27, 28), 93: (390, 392), 98: (405, 414), 121: (523, 523), 124: (535, 541), 143: (619, 628), 163: (714, 719), 137: (601, 601), 38: (147, 155), 69: (296, 305), 42: (163, 172), 55: (212, 220), 22: (70, 70), 6: (8, 11), 112: (483, 483), 142: (615, 619), 152: (680, 682), 99: (414, 420), 66: (286, 287), 88: (368, 376), 129: (549, 556), 113: (483, 491), 5: (7, 8), 17: (42, 47), 45: (179, 185), 53: (205, 212), 108: (460, 464), 51: (196, 200), 25: (83, 92), 21: (65, 70), 158: (701, 706), 73: (318, 318), 89: (376, 383), 2: (1, 2), 9: (17, 26), 72: (316, 318), 39: (155, 155), 13: (32, 35), 37: (140, 147), 74: (318, 318), 31: (120, 123), 126: (543, 545), 3: (2, 6), 103: (435, 436), 109: (464, 471), 146: (641, 649), 111: (480, 483), 115: (500, 500), 20: (58, 65), 27: (101, 110), 56: (220, 229), 85: (354, 360), 118: (512, 516), 131: (564, 571), 148: (656, 665), 153: (682, 686), 47: (187, 188), 23: (70, 76), 44: (179, 179), 54: (212, 212), 58: (235, 244), 60: (245, 251), 12: (28, 32), 144: (628, 632), 155: (687, 696), 1: (1, 1), 19: (54, 58), 128: (548, 549), 159: (706, 707), 101: (426, 434), 117: (507, 512), 100: (420, 426), 123: (532, 535), 139: (601, 606), 61: (251, 256), 157: (696, 701), 10: (26, 27), 107: (453, 460), 91: (388, 390), 154: (686, 687), 165: (723, 731), 106: (450, 453), 136: (596, 601), 164: (719, 723), 141: (610, 615), 150: (665, 671), 81: (336, 342), 34: (129, 132), 41: (158, 163), 102: (434, 435), 80: (333, 336), 140: (606, 610), 14: (35, 38), 26: (92, 101), 86: (360, 367), 138: (601, 601), 29: (119, 120), 65: (277, 286), 68: (296, 296), 79: (325, 333), 161: (708, 708), 160: (707, 708), 105: (445, 450), 43: (172, 179)}, 36), random_tx_num = 138 diff --git a/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.lock b/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.lock deleted file mode 100644 index 3869be529..000000000 --- a/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.lock +++ /dev/null @@ -1,9332 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aead" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" -dependencies = [ - "generic-array", -] - -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures", - "ctr 0.8.0", - "opaque-debug", -] - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher 0.4.4", - "cpufeatures", -] - -[[package]] -name = "aes-gcm" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f" -dependencies = [ - "aead", - "aes 0.7.5", - "cipher 0.3.0", - "ctr 0.7.0", - "ghash", - "subtle", -] - -[[package]] -name = "ahash" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" -dependencies = [ - "cfg-if", - "getrandom 0.2.12", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" - -[[package]] -name = "alloy-chains" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146dc3f33a9e282751a62ddd6687292c504605cc285a49500541e5d1e5b7617b" -dependencies = [ - "alloy-rlp", - "arbitrary", - "num_enum 0.7.2", - "proptest", - "serde", - "strum 0.26.1", -] - -[[package]] -name = "alloy-dyn-abi" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b1a44ed6b4126e4818d20c9e48176ae9d6d4fcbe6c909f8cd0bf050eb56fd8" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-type-parser", - "alloy-sol-types", - "const-hex", - "derive_more", - "itoa", - "serde", - "serde_json", - "winnow 0.5.40", -] - -[[package]] -name = "alloy-eips" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=9ac2c90#9ac2c90d58a9994d4b61c879e33c6af2739a2b4f" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "thiserror", -] - -[[package]] -name = "alloy-genesis" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=9ac2c90#9ac2c90d58a9994d4b61c879e33c6af2739a2b4f" -dependencies = [ - "alloy-primitives", - "alloy-rpc-types", - "serde", -] - -[[package]] -name = "alloy-json-abi" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30c6a6c5140fc762edfe55349f9ddefa821f4b7f2339cef582de911a3f1fb6d3" -dependencies = [ - "alloy-primitives", - "alloy-sol-type-parser", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-primitives" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600d34d8de81e23b6d909c094e23b3d357e01ca36b78a8c5424c501eedbe86f0" -dependencies = [ - "alloy-rlp", - "arbitrary", - "bytes", - "cfg-if", - "const-hex", - "derive_arbitrary", - "derive_more", - "ethereum_ssz", - "getrandom 0.2.12", - "hex-literal", - "itoa", - "k256", - "keccak-asm", - "proptest", - "proptest-derive", - "rand 0.8.5", - "ruint", - "serde", - "tiny-keccak", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d58d9f5da7b40e9bfff0b7e7816700be4019db97d4b6359fe7f94a9e22e42ac" -dependencies = [ - "alloy-rlp-derive", - "arrayvec", - "bytes", -] - -[[package]] -name = "alloy-rlp-derive" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a047897373be4bbb0224c1afdabca92648dc57a9c9ef6e7b0be3aff7a859c83" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "alloy-rpc-engine-types" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=9ac2c90#9ac2c90d58a9994d4b61c879e33c6af2739a2b4f" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types", - "jsonrpsee-types", - "serde", - "thiserror", -] - -[[package]] -name = "alloy-rpc-trace-types" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=9ac2c90#9ac2c90d58a9994d4b61c879e33c6af2739a2b4f" -dependencies = [ - "alloy-primitives", - "alloy-rpc-types", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-rpc-types" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=9ac2c90#9ac2c90d58a9994d4b61c879e33c6af2739a2b4f" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "arbitrary", - "itertools 0.12.1", - "jsonrpsee-types", - "proptest", - "proptest-derive", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e92100dee7fd1e44abbe0ef6607f18758cf0ad4e483f4c65ff5c8d85428a6d" -dependencies = [ - "const-hex", - "dunce", - "heck", - "indexmap 2.2.3", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.51", - "syn-solidity", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-type-parser" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d146adca22a853b5aaaa98a6c78bd9d8f1d627ca7b01d170edccf45430e9b2cb" -dependencies = [ - "winnow 0.5.40", -] - -[[package]] -name = "alloy-sol-types" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e7c6a8c492b1d6a4f92a8fc6a13cf39473978dd7d459d7221969ce5a73d97cd" -dependencies = [ - "alloy-primitives", - "alloy-sol-macro", - "const-hex", - "serde", -] - -[[package]] -name = "alloy-trie" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9e1498416f7e7f09af8061970e14936846b6271e153aa5ba539a22a7eb414d" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "arbitrary", - "derive_arbitrary", - "derive_more", - "hashbrown 0.14.3", - "nybbles", - "proptest", - "proptest-derive", - "serde", - "smallvec", - "tracing", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" - -[[package]] -name = "anstyle-parse" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" -dependencies = [ - "anstyle", - "windows-sys 0.52.0", -] - -[[package]] -name = "anyhow" -version = "1.0.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" - -[[package]] -name = "aquamarine" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" -dependencies = [ - "include_dir", - "itertools 0.10.5", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" -dependencies = [ - "derive_arbitrary", -] - -[[package]] -name = "ark-bn254" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" -dependencies = [ - "ark-ec", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-crypto-primitives" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" -dependencies = [ - "ark-ec", - "ark-ff 0.4.2", - "ark-relations", - "ark-serialize 0.4.2", - "ark-snark", - "ark-std 0.4.0", - "blake2", - "derivative", - "digest 0.10.7", - "sha2 0.10.8", -] - -[[package]] -name = "ark-ec" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" -dependencies = [ - "ark-ff 0.4.2", - "ark-poly", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "hashbrown 0.13.2", - "itertools 0.10.5", - "num-traits", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.4.0", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-groth16" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" -dependencies = [ - "ark-crypto-primitives", - "ark-ec", - "ark-ff 0.4.2", - "ark-poly", - "ark-relations", - "ark-serialize 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-poly" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" -dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "hashbrown 0.13.2", -] - -[[package]] -name = "ark-relations" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" -dependencies = [ - "ark-ff 0.4.2", - "ark-std 0.4.0", - "tracing", - "tracing-subscriber 0.2.25", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-serialize-derive", - "ark-std 0.4.0", - "digest 0.10.7", - "num-bigint", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-snark" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" -dependencies = [ - "ark-ff 0.4.2", - "ark-relations", - "ark-serialize 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" -dependencies = [ - "term", -] - -[[package]] -name = "async-trait" -version = "0.1.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.0", -] - -[[package]] -name = "attohttpc" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" -dependencies = [ - "http", - "log", - "url", -] - -[[package]] -name = "aurora-engine-modexp" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfacad86e9e138fca0670949eb8ed4ffdf73a55bded8887efe0863cd1a3a6f70" -dependencies = [ - "hex", - "num", -] - -[[package]] -name = "auto_impl" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "backtrace" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bcs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" -dependencies = [ - "serde", - "thiserror", -] - -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - -[[package]] -name = "beef" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" -dependencies = [ - "serde", -] - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.65.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" -dependencies = [ - "bitflags 1.3.2", - "cexpr", - "clang-sys", - "lazy_static", - "lazycell", - "peeking_take_while", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.51", -] - -[[package]] -name = "bindgen" -version = "0.69.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" -dependencies = [ - "bitflags 2.4.2", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.51", -] - -[[package]] -name = "binout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60b1af88a588fca5fe424ae7d735bc52814f80ff57614f57043cc4e2024f2ea" - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" -dependencies = [ - "arbitrary", - "serde", -] - -[[package]] -name = "bitm" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b9ea263f0faf826a1c9de0e8bf8f32f5986c05f5e3abcf6bcde74616009586" -dependencies = [ - "dyn_size_of", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "serde", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake3" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blst" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c94087b935a822949d3291a9989ad2b2051ea141eda0fd4e478a75f6aa3e604b" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "boa_ast" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73498e9b2f0aa7db74977afa4d594657611e90587abf0dd564c0b55b4a130163" -dependencies = [ - "bitflags 2.4.2", - "boa_interner", - "boa_macros", - "indexmap 2.2.3", - "num-bigint", - "rustc-hash", -] - -[[package]] -name = "boa_engine" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16377479d5d6d33896e7acdd1cc698d04a8f72004025bbbddf47558cd29146a6" -dependencies = [ - "bitflags 2.4.2", - "boa_ast", - "boa_gc", - "boa_icu_provider", - "boa_interner", - "boa_macros", - "boa_parser", - "boa_profiler", - "chrono", - "dashmap", - "fast-float", - "icu_normalizer", - "indexmap 2.2.3", - "itertools 0.11.0", - "num-bigint", - "num-integer", - "num-traits", - "num_enum 0.6.1", - "once_cell", - "pollster", - "rand 0.8.5", - "regress", - "rustc-hash", - "ryu-js", - "serde", - "serde_json", - "sptr", - "static_assertions", - "tap", - "thin-vec", - "thiserror", -] - -[[package]] -name = "boa_gc" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c97b44beaef9d4452342d117d94607fdfa8d474280f1ba0fd97853834e3a49b2" -dependencies = [ - "boa_macros", - "boa_profiler", - "thin-vec", -] - -[[package]] -name = "boa_icu_provider" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30e52e34e451dd0bfc2c654a9a43ed34b0073dbd4ae3394b40313edda8627aa" -dependencies = [ - "icu_collections", - "icu_normalizer", - "icu_properties", - "icu_provider", - "icu_provider_adapters", - "icu_provider_blob", - "once_cell", -] - -[[package]] -name = "boa_interner" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e5afa991908cfbe79bd3109b824e473a1dc5f74f31fab91bb44c9e245daa77" -dependencies = [ - "boa_gc", - "boa_macros", - "hashbrown 0.14.3", - "indexmap 2.2.3", - "once_cell", - "phf", - "rustc-hash", - "static_assertions", -] - -[[package]] -name = "boa_macros" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005fa0c5bd20805466dda55eb34cd709bb31a2592bb26927b47714eeed6914d8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", - "synstructure 0.13.1", -] - -[[package]] -name = "boa_parser" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e09afb035377a9044443b598187a7d34cd13164617182a4d7c348522ee3f052" -dependencies = [ - "bitflags 2.4.2", - "boa_ast", - "boa_icu_provider", - "boa_interner", - "boa_macros", - "boa_profiler", - "fast-float", - "icu_locid", - "icu_properties", - "icu_provider", - "icu_provider_macros", - "num-bigint", - "num-traits", - "once_cell", - "regress", - "rustc-hash", - "tinystr", -] - -[[package]] -name = "boa_profiler" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190f92dfe48224adc92881c620f08ccf37ff62b91a094bb357fe53bd5e84647" - -[[package]] -name = "borsh" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" -dependencies = [ - "borsh-derive", - "bytes", - "hashbrown 0.13.2", -] - -[[package]] -name = "borsh-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" -dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", - "proc-macro-crate 0.1.5", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "borsh-derive-internal" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "borsh-schema-derive-internal" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "bs58" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" -dependencies = [ - "sha2 0.10.8", - "tinyvec", -] - -[[package]] -name = "bumpalo" -version = "3.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" - -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - -[[package]] -name = "bytemuck" -version = "1.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" -dependencies = [ - "serde", -] - -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "c-kzg" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a4bc5367b6284358d2a6a6a1dc2d92ec4b86034561c3b9d3341909752fd848" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "serde", -] - -[[package]] -name = "camino" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.22", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cc" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "jobserver", - "libc", -] - -[[package]] -name = "celestia-proto" -version = "0.1.0" -source = "git+https://github.com/eigerco/celestia-node-rs.git?rev=66b7c6c#66b7c6cd58213c0cbf79207ba549cef82764ddca" -dependencies = [ - "anyhow", - "prost", - "prost-build", - "prost-types", - "serde", - "tendermint-proto", -] - -[[package]] -name = "celestia-types" -version = "0.1.0" -source = "git+https://github.com/eigerco/celestia-node-rs.git?rev=66b7c6c#66b7c6cd58213c0cbf79207ba549cef82764ddca" -dependencies = [ - "base64 0.21.7", - "bech32", - "bytes", - "celestia-proto", - "cid", - "const_format", - "enum_dispatch", - "getrandom 0.2.12", - "nmt-rs", - "ruint", - "serde", - "sha2 0.10.8", - "tendermint", - "tendermint-proto", - "thiserror", - "wasm-bindgen-test", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-targets 0.52.3", -] - -[[package]] -name = "cid" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" -dependencies = [ - "core2", - "multibase", - "multihash", - "serde", - "unsigned-varint", -] - -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "citrea-stf" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "hex", - "reth-primitives", - "secp256k1 0.27.0", - "serde", - "soft-confirmation-rule-enforcer", - "sov-accounts", - "sov-bank", - "sov-blob-storage", - "sov-chain-state", - "sov-evm", - "sov-mock-da", - "sov-modules-api", - "sov-modules-stf-blueprint", - "sov-nft-module", - "sov-rollup-interface", - "sov-sequencer-registry", - "sov-soft-confirmations-kernel", - "sov-state", - "sov-stf-runner", - "sov-value-setter", - "tracing", -] - -[[package]] -name = "clang-sys" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "4.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim 0.11.0", -] - -[[package]] -name = "clap_derive" -version = "4.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "clap_lex" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" - -[[package]] -name = "cobs" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" - -[[package]] -name = "coins-bip32" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" -dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac", - "k256", - "serde", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "coins-bip39" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" -dependencies = [ - "bitvec", - "coins-bip32", - "hmac", - "once_cell", - "pbkdf2 0.12.2", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", -] - -[[package]] -name = "coins-core" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" -dependencies = [ - "base64 0.21.7", - "bech32", - "bs58", - "digest 0.10.7", - "generic-array", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2 0.10.8", - "sha3", - "thiserror", -] - -[[package]] -name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - -[[package]] -name = "concat-kdf" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d72c1252426a83be2092dd5884a5f6e3b8e7180f6891b6263d2c21b92ec8816" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - -[[package]] -name = "const-hex" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbd12d49ab0eaf8193ba9175e45f56bbc2e4b27d57b8cfe62aa47942a46b9a9" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "const-rollup-config" -version = "0.3.0" - -[[package]] -name = "const_format" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "critical-section" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" - -[[package]] -name = "crossbeam-channel" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.5.2" -source = "git+https://github.com/risc0/RustCrypto-crypto-bigint?tag=v0.5.2-risc0#8b30304277cfe553b51a78a0e693f48bbb059eb3" -dependencies = [ - "generic-array", - "getrandom 0.2.12", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "ctr" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" -dependencies = [ - "cipher 0.3.0", -] - -[[package]] -name = "ctr" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" -dependencies = [ - "cipher 0.3.0", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher 0.4.4", -] - -[[package]] -name = "cuckoofilter" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" -dependencies = [ - "byteorder", - "fnv", - "rand 0.7.3", - "serde", - "serde_bytes", - "serde_derive", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.0" -source = "git+https://github.com/risc0/curve25519-dalek?tag=curve25519-4.1.0-risczero.1#42c4faf7dc3f640a7e3f7e4cbf43e7d5d6d46b67" -dependencies = [ - "cfg-if", - "cpufeatures", - "crypto-bigint", - "curve25519-dalek-derive", - "digest 0.10.7", - "fiat-crypto", - "hex", - "platforms", - "rustc_version 0.4.0", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.0" -source = "git+https://github.com/risc0/curve25519-dalek?tag=curve25519-4.1.0-risczero.1#42c4faf7dc3f640a7e3f7e4cbf43e7d5d6d46b67" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "curve25519-dalek-ng" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", - "subtle-ng", - "zeroize", -] - -[[package]] -name = "darling" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" -dependencies = [ - "darling_core 0.10.2", - "darling_macro 0.10.2", -] - -[[package]] -name = "darling" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" -dependencies = [ - "darling_core 0.20.8", - "darling_macro 0.20.8", -] - -[[package]] -name = "darling_core" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.9.3", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 2.0.51", -] - -[[package]] -name = "darling_macro" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" -dependencies = [ - "darling_core 0.10.2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" -dependencies = [ - "darling_core 0.20.8", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.3", - "lock_api", - "once_cell", - "parking_lot_core 0.9.9", -] - -[[package]] -name = "data-encoding" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" - -[[package]] -name = "data-encoding-macro" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", -] - -[[package]] -name = "data-encoding-macro-internal" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" -dependencies = [ - "data-encoding", - "syn 1.0.109", -] - -[[package]] -name = "delay_map" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4355c25cbf99edcb6b4a0e906f6bdc6956eda149e84455bea49696429b2f8e8" -dependencies = [ - "futures", - "tokio-util", -] - -[[package]] -name = "der" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "derive_builder" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0" -dependencies = [ - "darling 0.10.2", - "derive_builder_core", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_core" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" -dependencies = [ - "darling 0.10.2", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case 0.4.0", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn 1.0.109", -] - -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "discv5" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac33cb3f99889a57e56a8c6ccb77aaf0cfc7787602b7af09783f736d77314e1" -dependencies = [ - "aes 0.7.5", - "aes-gcm", - "arrayvec", - "delay_map", - "enr 0.10.0", - "fnv", - "futures", - "hashlink", - "hex", - "hkdf", - "lazy_static", - "lru", - "more-asserts", - "parking_lot 0.11.2", - "rand 0.8.5", - "rlp", - "smallvec", - "socket2 0.4.10", - "tokio", - "tracing", - "uint", - "zeroize", -] - -[[package]] -name = "displaydoc" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "dns-lookup" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53ecafc952c4528d9b51a458d1a8904b81783feff9fde08ab6ed2545ff396872" -dependencies = [ - "cfg-if", - "libc", - "socket2 0.4.10", - "winapi", -] - -[[package]] -name = "downcast-rs" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" - -[[package]] -name = "dunce" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" - -[[package]] -name = "dyn-clone" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" - -[[package]] -name = "dyn_size_of" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d4f78a40b1ec35bf8cafdaaf607ba2f773c366b0b3bda48937cacd7a8d5134" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8", - "serde", - "signature", -] - -[[package]] -name = "ed25519-consensus" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" -dependencies = [ - "curve25519-dalek-ng", - "hex", - "rand_core 0.6.4", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "ed25519-dalek" -version = "2.0.0" -source = "git+https://github.com/risc0/curve25519-dalek?tag=curve25519-4.1.0-risczero.1#42c4faf7dc3f640a7e3f7e4cbf43e7d5d6d46b67" -dependencies = [ - "curve25519-dalek", - "ed25519", - "rand_core 0.6.4", - "serde", - "sha2 0.10.8", - "subtle", - "zeroize", -] - -[[package]] -name = "educe" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" -dependencies = [ - "enum-ordinalize", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "either" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" - -[[package]] -name = "elf" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "subtle", - "zeroize", -] - -[[package]] -name = "embedded-io" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" - -[[package]] -name = "ena" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" -dependencies = [ - "log", -] - -[[package]] -name = "encoding_rs" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - -[[package]] -name = "enr" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" -dependencies = [ - "base64 0.21.7", - "bytes", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - -[[package]] -name = "enr" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" -dependencies = [ - "base64 0.21.7", - "bytes", - "ed25519-dalek", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "secp256k1 0.27.0", - "serde", - "sha3", - "zeroize", -] - -[[package]] -name = "enum-as-inner" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "enum-as-inner" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "enum-ordinalize" -version = "3.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" -dependencies = [ - "num-bigint", - "num-traits", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "enum_dispatch" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e" -dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "enumn" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "eth-keystore" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes 0.8.4", - "ctr 0.9.2", - "digest 0.10.7", - "hex", - "hmac", - "pbkdf2 0.11.0", - "rand 0.8.5", - "scrypt", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "thiserror", - "uuid", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethereum_ssz" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e61ffea29f26e8249d35128a82ec8d3bd4fbc80179ea5f5e5e3daafef6a80fcb" -dependencies = [ - "ethereum-types", - "itertools 0.10.5", - "smallvec", -] - -[[package]] -name = "ethers" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c7cd562832e2ff584fa844cd2f6e5d4f35bbe11b28c7c9b8df957b2e1d0c701" -dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "ethers-solc", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35dc9a249c066d17e8947ff52a4116406163cf92c7f0763cb8c001760b26403f" -dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-contract" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43304317c7f776876e47f2f637859f6d0701c1ec7930a150f169d5fbe7d76f5a" -dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f96502317bf34f6d71a3e3d270defaa9485d754d789e15a8e04a84161c95eb" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "ethers-etherscan", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "reqwest", - "serde", - "serde_json", - "syn 2.0.51", - "toml 0.8.10", - "walkdir", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "452ff6b0a64507ce8d67ffd48b1da3b42f03680dcf5382244e9c93822cbbf5de" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.51", -] - -[[package]] -name = "ethers-core" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab3cef6cc1c9fd7f787043c81ad3052eff2b96a3878ef1526aa446311bdbfc9" -dependencies = [ - "arrayvec", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array", - "k256", - "num_enum 0.7.2", - "once_cell", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum 0.25.0", - "syn 2.0.51", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-etherscan" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d45b981f5fa769e1d0343ebc2a44cfa88c9bc312eb681b676318b40cef6fb1" -dependencies = [ - "chrono", - "ethers-core", - "reqwest", - "semver 1.0.22", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145211f34342487ef83a597c1e69f0d3e01512217a7c72cc8a25931854c7dca0" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb6b15393996e3b8a78ef1332d6483c11d839042c17be58decc92fa8b1c3508a" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes", - "const-hex", - "enr 0.9.1", - "ethers-core", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-tungstenite", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-signers" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b125a103b56aef008af5d5fb48191984aa326b50bfd2557d231dc499833de3" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-solc" -version = "2.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d21df08582e0a43005018a858cc9b465c5fff9cf4056651be64f844e57d1f55f" -dependencies = [ - "cfg-if", - "const-hex", - "dirs", - "dunce", - "ethers-core", - "glob", - "home", - "md-5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.22", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", -] - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fast-float" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c" - -[[package]] -name = "fastrand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "arbitrary", - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "flex-error" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" -dependencies = [ - "eyre", - "paste", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-test" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce388237b32ac42eca0df1ba55ed3bbda4eaf005d7d4b5dbc0b20ab962928ac9" -dependencies = [ - "futures-core", - "futures-executor", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "futures-util", - "pin-project", - "pin-utils", -] - -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "ghash" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" -dependencies = [ - "opaque-debug", - "polyval", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "h2" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 2.2.3", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" -dependencies = [ - "ahash", - "allocator-api2", - "serde", -] - -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - -[[package]] -name = "hashlink" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown 0.14.3", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "hostname" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" -dependencies = [ - "libc", - "match_cfg", - "winapi", -] - -[[package]] -name = "http" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "humantime-serde" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" -dependencies = [ - "humantime", - "serde", -] - -[[package]] -name = "hyper" -version = "0.14.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.6", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http", - "hyper", - "log", - "rustls", - "rustls-native-certs", - "tokio", - "tokio-rustls", -] - -[[package]] -name = "hyper-system-resolver" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eea26c5d0b6ab9d72219f65000af310f042a740926f7b2fa3553e774036e2e7" -dependencies = [ - "derive_builder", - "dns-lookup", - "hyper", - "tokio", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ics23" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc3b8be84e7285c73b88effdc3294b552277d6b0ec728ee016c861b7b9a2c19c" -dependencies = [ - "anyhow", - "blake2", - "blake3", - "bytes", - "hex", - "informalsystems-pbjson", - "prost", - "ripemd", - "serde", - "sha2 0.10.8", - "sha3", -] - -[[package]] -name = "icu_collections" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8302d8dfd6044d3ddb3f807a5ef3d7bbca9a574959c6d6e4dc39aa7012d0d5" -dependencies = [ - "displaydoc", - "serde", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3003f85dccfc0e238ff567693248c59153a46f4e6125ba4020b973cef4d1d335" -dependencies = [ - "displaydoc", - "litemap", - "serde", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "652869735c9fb9f5a64ba180ee16f2c848390469c116deef517ecc53f4343598" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_properties", - "icu_provider", - "serde", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_properties" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0e1aa26851f16c9e04412a5911c86b7f8768dac8f8d4c5f1c568a7e5d7a434" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_provider", - "serde", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_provider" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc312a7b6148f7dfe098047ae2494d12d4034f48ade58d4f353000db376e305" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "postcard", - "serde", - "stable_deref_trait", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_adapters" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ae1e2bd0c41728b77e7c46e9afdec5e2127d1eedacc684724667d50c126bd3" -dependencies = [ - "icu_locid", - "icu_provider", - "serde", - "tinystr", - "yoke", - "zerovec", -] - -[[package]] -name = "icu_provider_blob" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd364c9a01f791a4bc04a74cf2a1d01d9f6926a40fd5ae1c28004e1e70d8338b" -dependencies = [ - "icu_provider", - "postcard", - "serde", - "writeable", - "yoke", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b728b9421e93eff1d9f8681101b78fa745e0748c95c655c83f337044a7e10" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "igd-next" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4" -dependencies = [ - "async-trait", - "attohttpc", - "bytes", - "futures", - "http", - "hyper", - "log", - "rand 0.8.5", - "tokio", - "url", - "xmltree", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "include_dir" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" -dependencies = [ - "include_dir_macros", -] - -[[package]] -name = "include_dir_macros" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" -dependencies = [ - "equivalent", - "hashbrown 0.14.3", - "serde", -] - -[[package]] -name = "informalsystems-pbjson" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa4a0980c8379295100d70854354e78df2ee1c6ca0f96ffe89afeb3140e3a3d" -dependencies = [ - "base64 0.21.7", - "serde", -] - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "block-padding", - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "ipconfig" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" -dependencies = [ - "socket2 0.5.6", - "widestring", - "windows-sys 0.48.0", - "winreg", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "is-terminal" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" - -[[package]] -name = "jmt" -version = "0.9.0" -source = "git+https://github.com/penumbra-zone/jmt.git?rev=1d007e11cb68aa5ca13e9a5af4a12e6439d5f7b6#1d007e11cb68aa5ca13e9a5af4a12e6439d5f7b6" -dependencies = [ - "anyhow", - "borsh", - "digest 0.10.7", - "hashbrown 0.13.2", - "hex", - "ics23", - "itertools 0.10.5", - "mirai-annotations", - "num-derive 0.3.3", - "num-traits", - "serde", - "sha2 0.10.8", - "thiserror", - "tracing", -] - -[[package]] -name = "jobserver" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jsonrpsee" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "affdc52f7596ccb2d7645231fc6163bb314630c989b64998f3699a28b4d5d4dc" -dependencies = [ - "jsonrpsee-core", - "jsonrpsee-http-client", - "jsonrpsee-proc-macros", - "jsonrpsee-server", - "jsonrpsee-types", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2327ba8df2fdbd5e897e2b5ed25ce7f299d345b9736b6828814c3dbd1fd47b" -dependencies = [ - "anyhow", - "async-trait", - "beef", - "futures-util", - "hyper", - "jsonrpsee-types", - "parking_lot 0.12.1", - "rand 0.8.5", - "rustc-hash", - "serde", - "serde_json", - "soketto", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-http-client" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f80c17f62c7653ce767e3d7288b793dfec920f97067ceb189ebdd3570f2bc20" -dependencies = [ - "async-trait", - "hyper", - "hyper-rustls", - "jsonrpsee-core", - "jsonrpsee-types", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", - "url", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29110019693a4fa2dbda04876499d098fa16d70eba06b1e6e2b3f1b251419515" -dependencies = [ - "heck", - "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "jsonrpsee-server" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82c39a00449c9ef3f50b84fc00fc4acba20ef8f559f07902244abf4c15c5ab9c" -dependencies = [ - "futures-util", - "http", - "hyper", - "jsonrpsee-core", - "jsonrpsee-types", - "route-recognizer", - "serde", - "serde_json", - "soketto", - "thiserror", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be0be325642e850ed0bdff426674d2e66b2b7117c9be23a7caef68a2902b7d9" -dependencies = [ - "anyhow", - "beef", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - -[[package]] -name = "k256" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "sha2 0.10.8", - "signature", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "keccak-asm" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb8515fff80ed850aea4a1595f2e519c003e2a00a82fe168ebf5269196caf444" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "lalrpop" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" -dependencies = [ - "ascii-canvas", - "bit-set", - "diff", - "ena", - "is-terminal", - "itertools 0.10.5", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax 0.7.5", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin 0.5.2", -] - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "libc" -version = "0.2.153" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" - -[[package]] -name = "libffi" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" -dependencies = [ - "libc", - "libffi-sys", -] - -[[package]] -name = "libffi-sys" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" -dependencies = [ - "cc", -] - -[[package]] -name = "libloading" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "libredox" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" -dependencies = [ - "bitflags 2.4.2", - "libc", - "redox_syscall 0.4.1", -] - -[[package]] -name = "librocksdb-sys" -version = "0.11.0+8.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" -dependencies = [ - "bindgen 0.65.1", - "bzip2-sys", - "cc", - "glob", - "libc", - "libz-sys", - "lz4-sys", - "zstd-sys", -] - -[[package]] -name = "libz-sys" -version = "1.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linked_hash_set" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - -[[package]] -name = "litemap" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d642685b028806386b2b6e75685faadd3eb65a85fff7df711ce18446a422da" - -[[package]] -name = "lock_api" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "lru" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" -dependencies = [ - "hashbrown 0.14.3", -] - -[[package]] -name = "lru-cache" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "lz4-sys" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "lz4_flex" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "912b45c753ff5f7f5208307e8ace7d2a2e30d024e26d3509f3dce546c044ce15" - -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - -[[package]] -name = "memchr" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" - -[[package]] -name = "memmap2" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6" -dependencies = [ - "libc", -] - -[[package]] -name = "metrics" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" -dependencies = [ - "ahash", - "metrics-macros", - "portable-atomic", -] - -[[package]] -name = "metrics-macros" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "mirai-annotations" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" - -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "more-asserts" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e" - -[[package]] -name = "multibase" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" -dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multihash" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" -dependencies = [ - "core2", - "multihash-derive", - "unsigned-varint", -] - -[[package]] -name = "multihash-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" -dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure 0.12.6", -] - -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - -[[package]] -name = "new_debug_unreachable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" - -[[package]] -name = "nibble_vec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" -dependencies = [ - "smallvec", -] - -[[package]] -name = "nmt-rs" -version = "0.1.0" -source = "git+https://github.com/Sovereign-Labs/nmt-rs.git?rev=d821332#d821332baa03aea625d23060dc239af57b9121f5" -dependencies = [ - "borsh", - "bytes", - "serde", - "sha2 0.10.8", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", - "serde", -] - -[[package]] -name = "num-complex" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" -dependencies = [ - "num_enum_derive 0.6.1", -] - -[[package]] -name = "num_enum" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" -dependencies = [ - "num_enum_derive 0.7.2", -] - -[[package]] -name = "num_enum_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" -dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "nybbles" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95f06be0417d97f81fe4e5c86d7d01b392655a9cac9c19a848aa033e18937b23" -dependencies = [ - "alloy-rlp", - "arbitrary", - "const-hex", - "proptest", - "serde", - "smallvec", -] - -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "page_size" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "parity-scale-codec" -version = "3.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" -dependencies = [ - "proc-macro-crate 2.0.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.9", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.4.1", - "smallvec", - "windows-targets 0.48.5", -] - -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac", - "password-hash", - "sha2 0.10.8", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "petgraph" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" -dependencies = [ - "fixedbitset", - "indexmap 2.2.3", -] - -[[package]] -name = "ph" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b7b74d575d7c11fb653fae69688be5206cafc1ead33c01ce61ac7f36eae45b" -dependencies = [ - "binout", - "bitm", - "dyn_size_of", - "rayon", - "wyhash", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.0", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared 0.11.2", - "rand 0.8.5", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "platforms" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" - -[[package]] -name = "pollster" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" - -[[package]] -name = "polyval" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" - -[[package]] -name = "postcard" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" -dependencies = [ - "cobs", - "embedded-io", - "serde", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "prettyplease" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" -dependencies = [ - "proc-macro2", - "syn 2.0.51", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" -dependencies = [ - "thiserror", - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", -] - -[[package]] -name = "proc-macro-crate" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" -dependencies = [ - "toml_edit 0.21.1", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prometheus" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.12.1", - "thiserror", -] - -[[package]] -name = "proptest" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.4.2", - "lazy_static", - "num-traits", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_xorshift", - "regex-syntax 0.8.2", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "proptest-derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf16337405ca084e9c78985114633b6827711d22b9e6ef6c6c0d665eb3f0b6e" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "prost" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" -dependencies = [ - "bytes", - "heck", - "itertools 0.11.0", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.51", - "tempfile", - "which", -] - -[[package]] -name = "prost-derive" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" -dependencies = [ - "anyhow", - "itertools 0.11.0", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "prost-types" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" -dependencies = [ - "prost", -] - -[[package]] -name = "public-ip" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4c40db5262d93298c363a299f8bc1b3a956a78eecddba3bc0e58b76e2f419a" -dependencies = [ - "dns-lookup", - "futures-core", - "futures-util", - "http", - "hyper", - "hyper-system-resolver", - "pin-project-lite", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "trust-dns-client", - "trust-dns-proto 0.20.4", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "radix_trie" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" -dependencies = [ - "endian-type", - "nibble_vec", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.12", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rayon" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_users" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" -dependencies = [ - "getrandom 0.2.12", - "libredox", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - -[[package]] -name = "regress" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a9ecfa0cb04d0b04dddb99b8ccf4f66bc8dfd23df694b398570bd8ae3a50fb" -dependencies = [ - "hashbrown 0.13.2", - "memchr", -] - -[[package]] -name = "reqwest" -version = "0.11.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-rustls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg", -] - -[[package]] -name = "resolv-conf" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" -dependencies = [ - "hostname", - "quick-error", -] - -[[package]] -name = "reth-beacon-consensus" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "futures", - "metrics", - "reth-beacon-consensus-core", - "reth-db", - "reth-interfaces", - "reth-metrics", - "reth-node-api", - "reth-payload-builder", - "reth-payload-validator", - "reth-primitives", - "reth-provider", - "reth-prune", - "reth-rpc-types", - "reth-stages", - "reth-static-file", - "reth-tasks", - "reth-tokio-util", - "schnellru", - "thiserror", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-beacon-consensus-core" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "reth-consensus-common", - "reth-interfaces", - "reth-primitives", -] - -[[package]] -name = "reth-codecs" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-primitives", - "bytes", - "reth-codecs-derive", -] - -[[package]] -name = "reth-codecs-derive" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "reth-config" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "humantime-serde", - "reth-discv4", - "reth-net-nat", - "reth-network", - "reth-primitives", - "secp256k1 0.27.0", - "serde", -] - -[[package]] -name = "reth-consensus-common" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "reth-interfaces", - "reth-primitives", - "reth-provider", -] - -[[package]] -name = "reth-db" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "arbitrary", - "bytes", - "derive_more", - "eyre", - "metrics", - "modular-bitfield", - "once_cell", - "page_size", - "parity-scale-codec", - "paste", - "proptest", - "proptest-derive", - "reth-codecs", - "reth-interfaces", - "reth-libmdbx", - "reth-metrics", - "reth-nippy-jar", - "reth-primitives", - "reth-tracing", - "rustc-hash", - "serde", - "strum 0.26.1", - "tempfile", - "thiserror", -] - -[[package]] -name = "reth-discv4" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-rlp", - "discv5", - "enr 0.10.0", - "generic-array", - "parking_lot 0.12.1", - "reth-net-common", - "reth-net-nat", - "reth-primitives", - "rlp", - "secp256k1 0.27.0", - "serde", - "thiserror", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-dns-discovery" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-rlp", - "data-encoding", - "enr 0.10.0", - "linked_hash_set", - "parking_lot 0.12.1", - "reth-net-common", - "reth-primitives", - "schnellru", - "secp256k1 0.27.0", - "serde", - "serde_with", - "thiserror", - "tokio", - "tokio-stream", - "tracing", - "trust-dns-resolver", -] - -[[package]] -name = "reth-ecies" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "aes 0.8.4", - "alloy-rlp", - "block-padding", - "byteorder", - "cipher 0.4.4", - "concat-kdf", - "ctr 0.9.2", - "digest 0.10.7", - "educe", - "futures", - "generic-array", - "hmac", - "pin-project", - "rand 0.8.5", - "reth-net-common", - "reth-primitives", - "secp256k1 0.27.0", - "sha2 0.10.8", - "sha3", - "thiserror", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", - "typenum", -] - -[[package]] -name = "reth-eth-wire" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-chains", - "alloy-rlp", - "bytes", - "derive_more", - "futures", - "metrics", - "pin-project", - "reth-codecs", - "reth-discv4", - "reth-ecies", - "reth-metrics", - "reth-primitives", - "serde", - "snap", - "thiserror", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", -] - -[[package]] -name = "reth-ethereum-forks" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-chains", - "alloy-primitives", - "alloy-rlp", - "arbitrary", - "crc", - "proptest", - "proptest-derive", - "serde", - "thiserror", -] - -[[package]] -name = "reth-etl" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "rayon", - "reth-db", - "tempfile", -] - -[[package]] -name = "reth-interfaces" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "auto_impl", - "futures", - "reth-eth-wire", - "reth-network-api", - "reth-primitives", - "reth-rpc-types", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "reth-libmdbx" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "bitflags 2.4.2", - "byteorder", - "dashmap", - "derive_more", - "indexmap 2.2.3", - "libc", - "libffi", - "parking_lot 0.12.1", - "reth-mdbx-sys", - "thiserror", - "tracing", -] - -[[package]] -name = "reth-mdbx-sys" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "bindgen 0.69.4", - "cc", - "libc", -] - -[[package]] -name = "reth-metrics" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "futures", - "metrics", - "reth-metrics-derive", - "tokio", - "tokio-util", -] - -[[package]] -name = "reth-metrics-derive" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "regex", - "syn 2.0.51", -] - -[[package]] -name = "reth-net-common" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "pin-project", - "reth-primitives", - "tokio", -] - -[[package]] -name = "reth-net-nat" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "igd-next", - "pin-project-lite", - "public-ip", - "serde_with", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "reth-network" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-rlp", - "aquamarine", - "auto_impl", - "derive_more", - "enr 0.10.0", - "fnv", - "futures", - "futures-test", - "humantime-serde", - "itertools 0.12.1", - "linked_hash_set", - "metrics", - "parking_lot 0.12.1", - "pin-project", - "rand 0.8.5", - "reth-discv4", - "reth-dns-discovery", - "reth-ecies", - "reth-eth-wire", - "reth-interfaces", - "reth-metrics", - "reth-net-common", - "reth-network-api", - "reth-primitives", - "reth-provider", - "reth-rpc-types", - "reth-tasks", - "reth-tokio-util", - "reth-transaction-pool", - "schnellru", - "secp256k1 0.27.0", - "serde", - "serde_json", - "smallvec", - "thiserror", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", -] - -[[package]] -name = "reth-network-api" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-chains", - "reth-discv4", - "reth-eth-wire", - "reth-primitives", - "reth-rpc-types", - "serde", - "thiserror", - "tokio", -] - -[[package]] -name = "reth-nippy-jar" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "anyhow", - "bincode", - "cuckoofilter", - "derive_more", - "lz4_flex", - "memmap2", - "ph", - "reth-primitives", - "serde", - "sucds", - "thiserror", - "tracing", - "zstd 0.12.4", -] - -[[package]] -name = "reth-node-api" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "reth-primitives", - "reth-rpc-types", - "revm", - "revm-primitives", - "serde", - "thiserror", -] - -[[package]] -name = "reth-payload-builder" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-rlp", - "futures-util", - "metrics", - "reth-interfaces", - "reth-metrics", - "reth-node-api", - "reth-primitives", - "reth-provider", - "reth-rpc-types", - "reth-rpc-types-compat", - "reth-transaction-pool", - "revm-primitives", - "sha2 0.10.8", - "thiserror", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-validator" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "reth-primitives", - "reth-rpc-types", - "reth-rpc-types-compat", -] - -[[package]] -name = "reth-primitives" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-chains", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "arbitrary", - "byteorder", - "bytes", - "c-kzg", - "cfg-if", - "derive_more", - "itertools 0.12.1", - "modular-bitfield", - "nybbles", - "once_cell", - "proptest", - "proptest-derive", - "rayon", - "reth-codecs", - "reth-ethereum-forks", - "reth-rpc-types", - "revm", - "revm-primitives", - "roaring", - "secp256k1 0.27.0", - "serde", - "serde_json", - "sha2 0.10.8", - "strum 0.26.1", - "tempfile", - "thiserror", - "zstd 0.12.4", -] - -[[package]] -name = "reth-provider" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-rlp", - "auto_impl", - "dashmap", - "itertools 0.12.1", - "metrics", - "parking_lot 0.12.1", - "pin-project", - "rayon", - "reth-codecs", - "reth-db", - "reth-interfaces", - "reth-metrics", - "reth-nippy-jar", - "reth-node-api", - "reth-primitives", - "reth-trie", - "revm", - "strum 0.26.1", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-prune" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "itertools 0.12.1", - "metrics", - "rayon", - "reth-config", - "reth-db", - "reth-interfaces", - "reth-metrics", - "reth-primitives", - "reth-provider", - "reth-tokio-util", - "thiserror", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-revm" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "reth-consensus-common", - "reth-interfaces", - "reth-node-api", - "reth-primitives", - "reth-provider", - "revm", - "revm-inspectors 0.1.0 (git+https://github.com/paradigmxyz/evm-inspectors?rev=1f935e7)", - "tracing", -] - -[[package]] -name = "reth-rpc" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-dyn-abi", - "alloy-primitives", - "alloy-rlp", - "alloy-sol-types", - "async-trait", - "bytes", - "derive_more", - "dyn-clone", - "futures", - "http", - "http-body", - "hyper", - "jsonrpsee", - "jsonwebtoken", - "metrics", - "parking_lot 0.12.1", - "pin-project", - "rand 0.8.5", - "reth-consensus-common", - "reth-interfaces", - "reth-metrics", - "reth-network", - "reth-network-api", - "reth-node-api", - "reth-primitives", - "reth-provider", - "reth-revm", - "reth-rpc-api", - "reth-rpc-engine-api", - "reth-rpc-types", - "reth-rpc-types-compat", - "reth-tasks", - "reth-transaction-pool", - "revm", - "revm-inspectors 0.1.0 (git+https://github.com/paradigmxyz/evm-inspectors?rev=1f935e7)", - "revm-primitives", - "schnellru", - "secp256k1 0.27.0", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-stream", - "tower", - "tracing", - "tracing-futures", -] - -[[package]] -name = "reth-rpc-api" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "jsonrpsee", - "reth-node-api", - "reth-primitives", - "reth-rpc-types", - "serde_json", -] - -[[package]] -name = "reth-rpc-engine-api" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "async-trait", - "jsonrpsee-core", - "jsonrpsee-types", - "metrics", - "reth-beacon-consensus", - "reth-interfaces", - "reth-metrics", - "reth-node-api", - "reth-payload-builder", - "reth-primitives", - "reth-provider", - "reth-rpc-api", - "reth-rpc-types", - "reth-rpc-types-compat", - "reth-tasks", - "serde", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "reth-rpc-types" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-engine-types", - "alloy-rpc-trace-types", - "alloy-rpc-types", - "arbitrary", - "jsonrpsee-types", - "proptest", - "proptest-derive", - "secp256k1 0.27.0", - "serde", - "serde_json", - "serde_with", - "thiserror", - "url", -] - -[[package]] -name = "reth-rpc-types-compat" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-rlp", - "alloy-rpc-types", - "reth-primitives", - "reth-rpc-types", -] - -[[package]] -name = "reth-stages" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "aquamarine", - "auto_impl", - "futures-util", - "itertools 0.12.1", - "metrics", - "num-traits", - "rayon", - "reth-codecs", - "reth-config", - "reth-db", - "reth-etl", - "reth-interfaces", - "reth-metrics", - "reth-primitives", - "reth-provider", - "reth-static-file", - "reth-tokio-util", - "reth-trie", - "tempfile", - "thiserror", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-static-file" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "rayon", - "reth-db", - "reth-interfaces", - "reth-nippy-jar", - "reth-primitives", - "reth-provider", - "reth-tokio-util", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-tasks" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "dyn-clone", - "futures-util", - "metrics", - "pin-project", - "rayon", - "reth-metrics", - "thiserror", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "reth-tokio-util" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "tokio", - "tokio-stream", -] - -[[package]] -name = "reth-tracing" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "clap", - "eyre", - "rolling-file", - "tracing", - "tracing-appender", - "tracing-journald", - "tracing-logfmt", - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "reth-transaction-pool" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-rlp", - "aquamarine", - "auto_impl", - "bitflags 2.4.2", - "fnv", - "futures-util", - "itertools 0.12.1", - "metrics", - "parking_lot 0.12.1", - "paste", - "rand 0.8.5", - "reth-eth-wire", - "reth-metrics", - "reth-primitives", - "reth-provider", - "reth-tasks", - "revm", - "schnellru", - "serde", - "smallvec", - "thiserror", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-trie" -version = "0.2.0-beta.2" -source = "git+https://github.com/paradigmxyz/reth?tag=v0.2.0-beta.2#28f3a2e2d9525bf2f6373e755e2d6dc0c2f97821" -dependencies = [ - "alloy-chains", - "alloy-rlp", - "auto_impl", - "derive_more", - "metrics", - "reth-db", - "reth-interfaces", - "reth-metrics", - "reth-primitives", - "revm", - "thiserror", - "tracing", -] - -[[package]] -name = "revm" -version = "7.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "217d21144d329f21d5245b8e6a46e0d6d0a527d9917d7a087f225b161e529169" -dependencies = [ - "auto_impl", - "cfg-if", - "dyn-clone", - "revm-interpreter", - "revm-precompile", - "serde", - "serde_json", -] - -[[package]] -name = "revm-inspectors" -version = "0.1.0" -source = "git+https://github.com/paradigmxyz/evm-inspectors?rev=1f935e7#1f935e71849466c297a64df0b162e6ffd48da25b" -dependencies = [ - "alloy-primitives", - "alloy-rpc-trace-types", - "alloy-rpc-types", - "alloy-sol-types", - "anstyle", - "boa_engine", - "boa_gc", - "colorchoice", - "revm", - "serde_json", - "thiserror", -] - -[[package]] -name = "revm-inspectors" -version = "0.1.0" -source = "git+https://github.com/paradigmxyz/evm-inspectors?rev=d7317c7#d7317c7fbf38d5e5df2393beee0414c987ea440a" -dependencies = [ - "alloy-primitives", - "alloy-rpc-trace-types", - "alloy-rpc-types", - "alloy-sol-types", - "anstyle", - "colorchoice", - "revm", - "serde_json", - "thiserror", -] - -[[package]] -name = "revm-interpreter" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "776848391ed76d5103ca1aa1632cd21b521e2870afb30b63723da862d69efd0f" -dependencies = [ - "revm-primitives", - "serde", -] - -[[package]] -name = "revm-precompile" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3fd1856a7cb09197a02669d779e1afb5a627b0888a24814ba2b6a1ad4c3ff8d" -dependencies = [ - "aurora-engine-modexp", - "c-kzg", - "k256", - "once_cell", - "revm-primitives", - "ripemd", - "secp256k1 0.28.2", - "sha2 0.10.8", - "substrate-bn", -] - -[[package]] -name = "revm-primitives" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4d7d3e793e907dc0797a9d3b43abfdf5226d133855214db9bd27d4cee33ebd" -dependencies = [ - "alloy-primitives", - "auto_impl", - "bitflags 2.4.2", - "bitvec", - "c-kzg", - "cfg-if", - "derive_more", - "dyn-clone", - "enumn", - "hashbrown 0.14.3", - "hex", - "once_cell", - "serde", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.12", - "libc", - "spin 0.9.8", - "untrusted 0.9.0", - "windows-sys 0.52.0", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "risc0-binfmt" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d263c6370d7714d2a634b6d88deb3871d0fad1f9486a9da6d48139c1ac85b26" -dependencies = [ - "anyhow", - "elf", - "risc0-zkp", - "risc0-zkvm-platform", - "serde", - "tracing", -] - -[[package]] -name = "risc0-circuit-recursion" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9835069929a0e7b6b4b34e6a83f08aaa9d34b30023b9ccaf96ddbe20404eba" -dependencies = [ - "anyhow", - "bytemuck", - "hex", - "risc0-core", - "risc0-zkp", - "tracing", -] - -[[package]] -name = "risc0-circuit-rv32im" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb1caa759ab74d08779e062fcf98f5bd34397dfde572516a52369f0ec46db650" -dependencies = [ - "anyhow", - "risc0-core", - "risc0-zkp", - "risc0-zkvm-platform", - "tracing", -] - -[[package]] -name = "risc0-core" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be79c89bcd18886b376073e3da22f8b7963247a42dce7b49cf3d09853f51641e" -dependencies = [ - "bytemuck", - "rand_core 0.6.4", -] - -[[package]] -name = "risc0-zkp" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e20a57e04840a5afadebb5d232546245f4fd8bd0e774bd69bf4bf25f8ab90c04" -dependencies = [ - "anyhow", - "blake2", - "bytemuck", - "digest 0.10.7", - "hex", - "paste", - "rand_core 0.6.4", - "risc0-core", - "risc0-zkvm-platform", - "serde", - "sha2 0.10.8", - "tracing", -] - -[[package]] -name = "risc0-zkvm" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922588cb4b884b3951316a65581ccdfd1174af93c54093190878366812073329" -dependencies = [ - "anyhow", - "ark-bn254", - "ark-groth16", - "ark-serialize 0.4.2", - "bytemuck", - "cfg-if", - "getrandom 0.2.12", - "hex", - "num-bigint", - "num-derive 0.4.2", - "num-traits", - "risc0-binfmt", - "risc0-circuit-recursion", - "risc0-circuit-rv32im", - "risc0-core", - "risc0-zkp", - "risc0-zkvm-platform", - "rrs-lib", - "semver 1.0.22", - "serde", - "sha2 0.10.8", - "tracing", -] - -[[package]] -name = "risc0-zkvm-platform" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5819c0c3bfd8f20b1226c9d4ca1f342eb3d8385e71211a9383a879643d1dde" -dependencies = [ - "bytemuck", - "getrandom 0.2.12", - "libm", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rlp-derive", - "rustc-hex", -] - -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "roaring" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf" -dependencies = [ - "bytemuck", - "byteorder", -] - -[[package]] -name = "rocksdb" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "rolling-file" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8395b4f860856b740f20a296ea2cd4d823e81a2658cf05ef61be22916026a906" -dependencies = [ - "chrono", -] - -[[package]] -name = "route-recognizer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" - -[[package]] -name = "rrs-lib" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4382d3af3a4ebdae7f64ba6edd9114fff92c89808004c4943b393377a25d001" -dependencies = [ - "downcast-rs", - "paste", -] - -[[package]] -name = "rs_merkle" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b241d2e59b74ef9e98d94c78c47623d04c8392abaf82014dfd372a16041128f" -dependencies = [ - "sha2 0.10.8", -] - -[[package]] -name = "ruint" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608a5726529f2f0ef81b8fde9873c4bb829d6b5b5ca6be4d97345ddf0749c825" -dependencies = [ - "alloy-rlp", - "arbitrary", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp", - "num-bigint", - "num-traits", - "parity-scale-codec", - "primitive-types", - "proptest", - "rand 0.8.5", - "rlp", - "ruint-macro", - "serde", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09" - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.22", -] - -[[package]] -name = "rustix" -version = "0.38.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" -dependencies = [ - "bitflags 2.4.2", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.21.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki", - "sct", -] - -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "rustversion" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" - -[[package]] -name = "ryu-js" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6518fc26bced4d53678a22d6e423e9d8716377def84545fe328236e3af070e7f" - -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher 0.4.4", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scale-info" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" -dependencies = [ - "cfg-if", - "derive_more", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" -dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "schemars" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" -dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", -] - -[[package]] -name = "schemars_derive" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 1.0.109", -] - -[[package]] -name = "schnellru" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" -dependencies = [ - "ahash", - "cfg-if", - "hashbrown 0.13.2", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac", - "pbkdf2 0.11.0", - "salsa20", - "sha2 0.10.8", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - -[[package]] -name = "secp256k1" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" -dependencies = [ - "rand 0.8.5", - "secp256k1-sys 0.8.1", - "serde", -] - -[[package]] -name = "secp256k1" -version = "0.28.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" -dependencies = [ - "secp256k1-sys 0.9.2", -] - -[[package]] -name = "secp256k1-sys" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" -dependencies = [ - "cc", -] - -[[package]] -name = "secp256k1-sys" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" -dependencies = [ - "cc", -] - -[[package]] -name = "security-framework" -version = "2.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "sequencer-client" -version = "0.3.0" -dependencies = [ - "anyhow", - "ethers", - "hex", - "jsonrpsee", - "reth-primitives", - "reth-rpc-types", - "serde", - "serde_json", - "sov-rollup-interface", - "tokio", - "tracing", -] - -[[package]] -name = "serde" -version = "1.0.197" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_bytes" -version = "0.11.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.197" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "serde_derive_internals" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "serde_json" -version = "1.0.114" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" -dependencies = [ - "indexmap 2.2.3", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "serde_spanned" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270" -dependencies = [ - "base64 0.21.7", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.2.3", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d" -dependencies = [ - "darling 0.20.8", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "sha3-asm" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac61da6b35ad76b195eb4771210f947734321a8d81d7738e1580d953bc7a15e" -dependencies = [ - "cc", - "cfg-if", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror", - "time", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" -dependencies = [ - "arbitrary", - "serde", -] - -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "soft-confirmation-rule-enforcer" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "jsonrpsee", - "lazy_static", - "serde", - "sov-modules-api", - "sov-prover-storage-manager", - "sov-rollup-interface", - "sov-state", - "tempfile", -] - -[[package]] -name = "soketto" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" -dependencies = [ - "base64 0.13.1", - "bytes", - "futures", - "http", - "httparse", - "log", - "rand 0.8.5", - "sha-1", -] - -[[package]] -name = "solang-parser" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" -dependencies = [ - "itertools 0.11.0", - "lalrpop", - "lalrpop-util", - "phf", - "thiserror", - "unicode-xid", -] - -[[package]] -name = "sov-accounts" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "serde", - "sov-modules-api", - "sov-state", - "thiserror", -] - -[[package]] -name = "sov-bank" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "clap", - "jsonrpsee", - "schemars", - "serde", - "serde_json", - "sov-modules-api", - "sov-state", - "thiserror", -] - -[[package]] -name = "sov-blob-storage" -version = "0.3.0" -dependencies = [ - "anyhow", - "bincode", - "borsh", - "clap", - "hex", - "jsonrpsee", - "schemars", - "serde", - "serde_json", - "sov-chain-state", - "sov-modules-api", - "sov-sequencer-registry", - "sov-state", - "tracing", -] - -[[package]] -name = "sov-celestia-adapter" -version = "0.3.0" -dependencies = [ - "anyhow", - "async-trait", - "base64 0.21.7", - "bech32", - "borsh", - "celestia-proto", - "celestia-types", - "hex", - "nmt-rs", - "prost", - "risc0-zkvm", - "risc0-zkvm-platform", - "serde", - "sha2 0.10.8", - "sov-rollup-interface", - "sov-zk-cycle-macros", - "tendermint", - "tendermint-proto", - "thiserror", - "tracing", -] - -[[package]] -name = "sov-chain-state" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "jsonrpsee", - "serde", - "serde_json", - "sov-modules-api", - "sov-state", -] - -[[package]] -name = "sov-db" -version = "0.3.0" -dependencies = [ - "anyhow", - "bincode", - "borsh", - "byteorder", - "jmt", - "rocksdb", - "serde", - "sov-rollup-interface", - "sov-schema-db", - "tokio", -] - -[[package]] -name = "sov-demo-prover-guest-celestia" -version = "0.3.0" -dependencies = [ - "anyhow", - "citrea-stf", - "const-rollup-config", - "risc0-zkvm", - "risc0-zkvm-platform", - "sov-celestia-adapter", - "sov-modules-api", - "sov-modules-stf-blueprint", - "sov-risc0-adapter", - "sov-state", -] - -[[package]] -name = "sov-evm" -version = "0.3.0" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types", - "alloy-sol-types", - "anyhow", - "borsh", - "bytes", - "clap", - "derive_more", - "ethereum-types", - "ethers", - "ethers-contract", - "ethers-core", - "ethers-middleware", - "ethers-signers", - "hex", - "itertools 0.11.0", - "jsonrpsee", - "lazy_static", - "reth-interfaces", - "reth-primitives", - "reth-revm", - "reth-rpc", - "reth-rpc-types", - "reth-rpc-types-compat", - "revm", - "revm-inspectors 0.1.0 (git+https://github.com/paradigmxyz/evm-inspectors?rev=d7317c7)", - "schemars", - "secp256k1 0.27.0", - "serde", - "serde_json", - "sov-modules-api", - "sov-state", - "thiserror", - "tracing", -] - -[[package]] -name = "sov-mock-da" -version = "0.3.0" -dependencies = [ - "anyhow", - "async-trait", - "borsh", - "bytes", - "hex", - "serde", - "sha2 0.10.8", - "sov-rollup-interface", - "tracing", -] - -[[package]] -name = "sov-modules-api" -version = "0.3.0" -dependencies = [ - "anyhow", - "bech32", - "borsh", - "clap", - "derive_more", - "ed25519-dalek", - "hex", - "jmt", - "jsonrpsee", - "rand 0.8.5", - "schemars", - "serde", - "serde_json", - "sha2 0.10.8", - "sov-modules-core", - "sov-modules-macros", - "sov-prover-storage-manager", - "sov-rollup-interface", - "sov-state", - "thiserror", -] - -[[package]] -name = "sov-modules-core" -version = "0.3.0" -dependencies = [ - "anyhow", - "bech32", - "borsh", - "derive_more", - "digest 0.10.7", - "hex", - "jmt", - "schemars", - "serde", - "sha2 0.10.8", - "sov-rollup-interface", - "thiserror", -] - -[[package]] -name = "sov-modules-macros" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "jsonrpsee", - "proc-macro2", - "quote", - "schemars", - "serde_json", - "sov-modules-core", - "syn 1.0.109", -] - -[[package]] -name = "sov-modules-stf-blueprint" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "hex", - "jmt", - "jsonrpsee", - "serde", - "sov-blob-storage", - "sov-chain-state", - "sov-modules-api", - "sov-rollup-interface", - "sov-state", - "thiserror", - "tracing", -] - -[[package]] -name = "sov-nft-module" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "serde", - "sov-modules-api", - "sov-modules-macros", - "sov-state", -] - -[[package]] -name = "sov-prover-storage-manager" -version = "0.3.0" -dependencies = [ - "anyhow", - "sov-db", - "sov-rollup-interface", - "sov-schema-db", - "sov-state", - "tracing", -] - -[[package]] -name = "sov-risc0-adapter" -version = "0.3.0" -dependencies = [ - "anyhow", - "bincode", - "bytemuck", - "risc0-zkvm", - "risc0-zkvm-platform", - "serde", - "sov-rollup-interface", - "sov-zk-cycle-utils", -] - -[[package]] -name = "sov-rollup-interface" -version = "0.3.0" -dependencies = [ - "anyhow", - "async-trait", - "borsh", - "bytes", - "digest 0.10.7", - "futures", - "hex", - "proptest", - "serde", - "sha2 0.10.8", - "thiserror", - "tokio", -] - -[[package]] -name = "sov-schema-db" -version = "0.3.0" -dependencies = [ - "anyhow", - "once_cell", - "prometheus", - "rocksdb", - "thiserror", - "tracing", -] - -[[package]] -name = "sov-sequencer-registry" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "clap", - "jsonrpsee", - "schemars", - "serde", - "serde_json", - "sov-bank", - "sov-modules-api", - "sov-state", -] - -[[package]] -name = "sov-soft-confirmations-kernel" -version = "0.3.0" -dependencies = [ - "anyhow", - "sov-blob-storage", - "sov-chain-state", - "sov-modules-api", - "sov-state", -] - -[[package]] -name = "sov-state" -version = "0.3.0" -dependencies = [ - "anyhow", - "bcs", - "borsh", - "hex", - "jmt", - "serde", - "serde_json", - "sha2 0.10.8", - "sov-db", - "sov-modules-core", - "sov-rollup-interface", - "thiserror", -] - -[[package]] -name = "sov-stf-runner" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "hex", - "num_cpus", - "rs_merkle", - "sequencer-client", - "serde", - "serde_json", - "sov-modules-api", - "sov-modules-stf-blueprint", - "sov-rollup-interface", -] - -[[package]] -name = "sov-value-setter" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "serde", - "sov-modules-api", - "sov-state", - "thiserror", -] - -[[package]] -name = "sov-zk-cycle-macros" -version = "0.3.0" -dependencies = [ - "anyhow", - "borsh", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "sov-zk-cycle-utils" -version = "0.3.0" -dependencies = [ - "bytes", - "risc0-zkvm", - "risc0-zkvm-platform", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sptr" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot 0.12.1", - "phf_shared 0.10.0", - "precomputed-hash", -] - -[[package]] -name = "strsim" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strsim" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" - -[[package]] -name = "strum" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" -dependencies = [ - "strum_macros 0.25.3", -] - -[[package]] -name = "strum" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" -dependencies = [ - "strum_macros 0.26.1", -] - -[[package]] -name = "strum_macros" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.51", -] - -[[package]] -name = "strum_macros" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.51", -] - -[[package]] -name = "substrate-bn" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" -dependencies = [ - "byteorder", - "crunchy", - "lazy_static", - "rand 0.8.5", - "rustc-hex", -] - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "subtle-encoding" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" -dependencies = [ - "zeroize", -] - -[[package]] -name = "subtle-ng" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" - -[[package]] -name = "sucds" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53d46182afe6ed822a94c54a532dc0d59691a8f49226bdc4596529ca864cdd6" -dependencies = [ - "anyhow", - "num-traits", -] - -[[package]] -name = "svm-rs" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" -dependencies = [ - "dirs", - "fs2", - "hex", - "once_cell", - "reqwest", - "semver 1.0.22", - "serde", - "serde_json", - "sha2 0.10.8", - "thiserror", - "url", - "zip", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn-solidity" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e656cbcef8a77543b5accbd76f60f9e0bc4be364b0aba4263a6f313f8a355511" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" -dependencies = [ - "cfg-if", - "fastrand", - "rustix", - "windows-sys 0.52.0", -] - -[[package]] -name = "tendermint" -version = "0.32.0" -source = "git+https://github.com/eigerco/celestia-tendermint-rs.git?rev=ef58b85#ef58b85e3e8b35b0f94b822d3996613539dcddd7" -dependencies = [ - "bytes", - "digest 0.10.7", - "ed25519", - "ed25519-consensus", - "flex-error", - "futures", - "instant", - "num-traits", - "once_cell", - "prost", - "prost-types", - "serde", - "serde_bytes", - "serde_json", - "serde_repr", - "sha2 0.10.8", - "signature", - "subtle", - "subtle-encoding", - "tendermint-proto", - "time", - "zeroize", -] - -[[package]] -name = "tendermint-proto" -version = "0.32.0" -source = "git+https://github.com/eigerco/celestia-tendermint-rs.git?rev=ef58b85#ef58b85e3e8b35b0f94b822d3996613539dcddd7" -dependencies = [ - "bytes", - "flex-error", - "num-derive 0.3.3", - "num-traits", - "prost", - "prost-types", - "serde", - "serde_bytes", - "subtle-encoding", - "time", -] - -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "thin-vec" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b" - -[[package]] -name = "thiserror" -version = "1.0.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.3.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinystr" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8faa444297615a4e020acb64146b0603c9c395c03a97c17fd9028816d3b4d63e" -dependencies = [ - "displaydoc", - "serde", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.5.6", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls", - "tokio", - "tokio-rustls", - "tungstenite", - "webpki-roots", -] - -[[package]] -name = "tokio-util" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "pin-project-lite", - "slab", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.6", -] - -[[package]] -name = "toml_datetime" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.20.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap 2.2.3", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.2.3", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" -dependencies = [ - "indexmap 2.2.3", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.2", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-appender" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" -dependencies = [ - "crossbeam-channel", - "thiserror", - "time", - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "futures", - "futures-task", - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-journald" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba316a74e8fc3c3896a850dba2375928a9fa171b085ecddfc7c054d39970f3fd" -dependencies = [ - "libc", - "tracing-core", - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-logfmt" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84bab42e40ace4e4ff19c92023ee1dbc1510db60976828fbbdc6994852c7d065" -dependencies = [ - "time", - "tracing", - "tracing-core", - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", - "tracing-serde", -] - -[[package]] -name = "trust-dns-client" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b4ef9b9bde0559b78a4abb00339143750085f05e5a453efb7b8bef1061f09dc" -dependencies = [ - "cfg-if", - "data-encoding", - "futures-channel", - "futures-util", - "lazy_static", - "log", - "radix_trie", - "rand 0.8.5", - "thiserror", - "time", - "tokio", - "trust-dns-proto 0.20.4", -] - -[[package]] -name = "trust-dns-proto" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca94d4e9feb6a181c690c4040d7a24ef34018d8313ac5044a61d21222ae24e31" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner 0.3.4", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.2.3", - "ipnet", - "lazy_static", - "log", - "rand 0.8.5", - "smallvec", - "thiserror", - "tinyvec", - "tokio", - "url", -] - -[[package]] -name = "trust-dns-proto" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner 0.6.0", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.4.0", - "ipnet", - "once_cell", - "rand 0.8.5", - "smallvec", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" -dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lru-cache", - "once_cell", - "parking_lot 0.12.1", - "rand 0.8.5", - "resolv-conf", - "smallvec", - "thiserror", - "tokio", - "tracing", - "trust-dns-proto 0.23.2", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand 0.8.5", - "rustls", - "sha1", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "arbitrary", - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "universal-hash" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "unsigned-varint" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" -dependencies = [ - "form_urlencoded", - "idna 0.5.0", - "percent-encoding", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom 0.2.12", - "serde", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "walkdir" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.51", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" - -[[package]] -name = "wasm-bindgen-test" -version = "0.3.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143ddeb4f833e2ed0d252e618986e18bfc7b0e52f2d28d77d05b2f045dd8eb61" -dependencies = [ - "console_error_panic_hook", - "js-sys", - "scoped-tls", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-bindgen-test-macro", -] - -[[package]] -name = "wasm-bindgen-test-macro" -version = "0.3.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5211b7550606857312bba1d978a8ec75692eae187becc5e680444fffc5e6f89" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "web-sys" -version = "0.3.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] - -[[package]] -name = "widestring" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.3", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.3", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" -dependencies = [ - "windows_aarch64_gnullvm 0.52.3", - "windows_aarch64_msvc 0.52.3", - "windows_i686_gnu 0.52.3", - "windows_i686_msvc 0.52.3", - "windows_x86_64_gnu 0.52.3", - "windows_x86_64_gnullvm 0.52.3", - "windows_x86_64_msvc 0.52.3", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad7bb64b8ef9c0aa27b6da38b452b0ee9fd82beaf276a87dd796fb55cbae14e" - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.0", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wyhash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf6e163c25e3fac820b4b453185ea2dea3b6a3e0a721d4d23d75bd33734c295" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "xml-rs" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" - -[[package]] -name = "xmltree" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" -dependencies = [ - "xml-rs", -] - -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - -[[package]] -name = "yoke" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e71b2e4f287f467794c671e2b8f8a5f3716b3c829079a1c44740148eff07e4" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", - "synstructure 0.13.1", -] - -[[package]] -name = "zerocopy" -version = "0.7.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "zerofrom" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655b0814c5c0b19ade497851070c640773304939a6c0fd5f5fb43da0696d05b7" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", - "synstructure 0.13.1", -] - -[[package]] -name = "zeroize" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "zerovec" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "591691014119b87047ead4dcf3e6adfbf73cb7c38ab6980d4f18a32138f35d46" -dependencies = [ - "serde", - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4a1638a1934450809c2266a70362bfc96cd90550c073f5b8a55014d1010157" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.51", -] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes 0.8.4", - "byteorder", - "bzip2", - "constant_time_eq 0.1.5", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac", - "pbkdf2 0.11.0", - "sha1", - "time", - "zstd 0.11.2+zstd.1.5.2", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", -] - -[[package]] -name = "zstd" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" -dependencies = [ - "zstd-safe 6.0.6", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-safe" -version = "6.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" -dependencies = [ - "cc", - "pkg-config", -] - -[[patch.unused]] -name = "sha2" -version = "0.10.6" -source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2/v0.10.6-risc0#e75cafd9f55da196061f6fadf8bc8a86778192b7" diff --git a/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.toml b/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.toml deleted file mode 100644 index b96b62964..000000000 --- a/examples/demo-rollup/provers/risc0/guest-celestia/Cargo.toml +++ /dev/null @@ -1,40 +0,0 @@ -[package] -name = "sov-demo-prover-guest-celestia" -version = "0.3.0" -edition = "2021" -resolver = "2" - -[workspace] - -[dependencies] -anyhow = "1.0.68" -risc0-zkvm = { version = "0.20", default-features = false, features = ["std"] } -risc0-zkvm-platform = "0.20" -citrea-stf = { path = "../../../citrea-stf" } -sov-risc0-adapter = { path = "../../../../../adapters/risc0" } -const-rollup-config = { path = "../../../../const-rollup-config" } -sov-celestia-adapter = { path = "../../../../../adapters/celestia" } -sov-modules-api = { path = "../../../../../module-system/sov-modules-api" } -sov-state = { path = "../../../../../module-system/sov-state" } -sov-modules-stf-blueprint = { path = "../../../../../module-system/sov-modules-stf-blueprint" } - -[patch.crates-io] -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2/v0.10.6-risc0" } -ed25519-dalek = { git = "https://github.com/risc0/curve25519-dalek", tag = "curve25519-4.1.0-risczero.1" } -crypto-bigint = { git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.2-risc0" } - -[profile.dev] -opt-level = 3 - -[profile.dev.build-override] -opt-level = 3 - -[profile.release] -debug = 1 -lto = true - -[profile.release.build-override] -opt-level = 3 - -[features] -bench = ["sov-celestia-adapter/bench"] diff --git a/examples/demo-rollup/provers/risc0/guest-celestia/src/bin/rollup.rs b/examples/demo-rollup/provers/risc0/guest-celestia/src/bin/rollup.rs deleted file mode 100644 index 6a55de0d3..000000000 --- a/examples/demo-rollup/provers/risc0/guest-celestia/src/bin/rollup.rs +++ /dev/null @@ -1,35 +0,0 @@ -// TODO: Rename this file to change the name of this method from METHOD_NAME - -#![no_main] - -use const_rollup_config::ROLLUP_BATCH_NAMESPACE_RAW; -use demo_stf::runtime::Runtime; -use demo_stf::StfVerifier; -use sov_celestia_adapter::types::Namespace; -use sov_celestia_adapter::verifier::CelestiaVerifier; -use sov_modules_api::default_context::ZkDefaultContext; -use sov_modules_stf_blueprint::{kernels::basic::BasicKernel, StfBlueprint}; -use sov_risc0_adapter::guest::Risc0Guest; -use sov_state::ZkStorage; - -// The rollup stores its data in the namespace b"sov-test" on Celestia -const ROLLUP_NAMESPACE: Namespace = Namespace::const_v0(ROLLUP_BATCH_NAMESPACE_RAW); - -risc0_zkvm::guest::entry!(main); - -pub fn main() { - let guest = Risc0Guest::new(); - let storage = ZkStorage::new(); - let stf: StfBlueprint, BasicKernel<_, _>> = - StfBlueprint::new(); - - let stf_verifier = StfVerifier::new( - stf, - CelestiaVerifier { - rollup_namespace: ROLLUP_NAMESPACE, - }, - ); - stf_verifier - .run_block(guest, storage) - .expect("Prover must be honest"); -} diff --git a/examples/demo-rollup/src/celestia_rollup.rs b/examples/demo-rollup/src/celestia_rollup.rs deleted file mode 100644 index dee5c57eb..000000000 --- a/examples/demo-rollup/src/celestia_rollup.rs +++ /dev/null @@ -1,135 +0,0 @@ -use async_trait::async_trait; -use citrea_stf::genesis_config::StorageConfig; -use citrea_stf::runtime::Runtime; -use sequencer_client::SequencerClient; -use sov_celestia_adapter::verifier::{CelestiaSpec, CelestiaVerifier, RollupParams}; -use sov_celestia_adapter::{CelestiaConfig, CelestiaService}; -use sov_modules_api::default_context::{DefaultContext, ZkDefaultContext}; -use sov_modules_api::{Address, Spec}; -use sov_modules_rollup_blueprint::{RollupBlueprint, WalletBlueprint}; -use sov_modules_stf_blueprint::kernels::basic::BasicKernel; -use sov_modules_stf_blueprint::StfBlueprint; -use sov_prover_storage_manager::ProverStorageManager; -use sov_risc0_adapter::host::Risc0Host; -use sov_rollup_interface::zk::ZkvmHost; -use sov_state::{DefaultStorageSpec, Storage, ZkStorage}; -use sov_stf_runner::{ParallelProverService, RollupConfig, RollupProverConfig}; - -use crate::{ROLLUP_BATCH_NAMESPACE, ROLLUP_PROOF_NAMESPACE}; - -/// Rollup with CelestiaDa -pub struct CelestiaDemoRollup {} - -#[async_trait] -impl RollupBlueprint for CelestiaDemoRollup { - type DaService = CelestiaService; - type DaSpec = CelestiaSpec; - type DaConfig = CelestiaConfig; - type Vm = Risc0Host<'static>; - - type ZkContext = ZkDefaultContext; - type NativeContext = DefaultContext; - - type StorageManager = ProverStorageManager; - type ZkRuntime = Runtime; - - type NativeRuntime = Runtime; - - type NativeKernel = BasicKernel; - type ZkKernel = BasicKernel; - - type ProverService = ParallelProverService< - <::Storage as Storage>::Root, - <::Storage as Storage>::Witness, - Self::DaService, - Self::Vm, - StfBlueprint< - Self::ZkContext, - Self::DaSpec, - ::Guest, - Self::ZkRuntime, - Self::ZkKernel, - >, - >; - - fn new() -> Self { - Self {} - } - - fn create_rpc_methods( - &self, - storage: &::Storage, - ledger_db: &sov_db::ledger_db::LedgerDB, - da_service: &Self::DaService, - sequencer_client: Option, - ) -> Result, anyhow::Error> { - // TODO set the sequencer address - let sequencer = Address::new([0; 32]); - - #[allow(unused_mut)] - let mut rpc_methods = sov_modules_rollup_blueprint::register_rpc::< - Self::NativeRuntime, - Self::NativeContext, - Self::DaService, - >(storage, ledger_db, da_service, sequencer)?; - - crate::eth::register_ethereum::( - da_service.clone(), - storage.clone(), - &mut rpc_methods, - sequencer_client, - )?; - - Ok(rpc_methods) - } - - async fn create_da_service( - &self, - rollup_config: &RollupConfig, - ) -> Self::DaService { - CelestiaService::new( - rollup_config.da.clone(), - RollupParams { - rollup_batch_namespace: ROLLUP_BATCH_NAMESPACE, - rollup_proof_namespace: ROLLUP_PROOF_NAMESPACE, - }, - ) - .await - } - - async fn create_prover_service( - &self, - prover_config: RollupProverConfig, - rollup_config: &RollupConfig, - _da_service: &Self::DaService, - ) -> Self::ProverService { - let vm = Risc0Host::new(risc0::ROLLUP_ELF); - let zk_stf = StfBlueprint::new(); - let zk_storage = ZkStorage::new(); - - let da_verifier = CelestiaVerifier { - rollup_namespace: ROLLUP_BATCH_NAMESPACE, - }; - - ParallelProverService::new_with_default_workers( - vm, - zk_stf, - da_verifier, - prover_config, - zk_storage, - rollup_config.prover_service, - ) - } - - fn create_storage_manager( - &self, - rollup_config: &sov_stf_runner::RollupConfig, - ) -> Result { - let storage_config = StorageConfig { - path: rollup_config.storage.path.clone(), - }; - ProverStorageManager::new(storage_config) - } -} - -impl WalletBlueprint for CelestiaDemoRollup {} diff --git a/examples/demo-rollup/src/sov-cli/README.md b/examples/demo-rollup/src/sov-cli/README.md deleted file mode 100644 index 89d1b0e79..000000000 --- a/examples/demo-rollup/src/sov-cli/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# sov-cli - -The `sov-cli` binary is used to sign transactions and submit them to a Sovereign rollup node. - -``` -$ cargo run --bin sov-cli -Main entry point for CLI - -Usage: sov-cli - -Commands: - transactions Generate, sign, and send transactions - keys View and manage keys associated with this wallet - rpc Query the current state of the rollup and submit transactions - help Print this message or the help of the given subcommand(s) - -Options: - -h, --help Print help - -V, --version Print version -``` - -Please refer to the help messages for specific subcommands for more information. diff --git a/examples/demo-rollup/src/sov-cli/main.rs b/examples/demo-rollup/src/sov-cli/main.rs deleted file mode 100644 index 7eebcfbc9..000000000 --- a/examples/demo-rollup/src/sov-cli/main.rs +++ /dev/null @@ -1,13 +0,0 @@ -use citrea_stf::runtime::RuntimeSubcommand; -use sov_demo_rollup::CelestiaDemoRollup; -use sov_modules_api::cli::{FileNameArg, JsonStringArg}; -use sov_modules_rollup_blueprint::WalletBlueprint; - -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> { - CelestiaDemoRollup::run_wallet::< - RuntimeSubcommand, - RuntimeSubcommand, - >() - .await -} diff --git a/examples/demo-rollup/stf/Cargo.toml b/examples/demo-rollup/stf/Cargo.toml deleted file mode 100644 index c6983d976..000000000 --- a/examples/demo-rollup/stf/Cargo.toml +++ /dev/null @@ -1,95 +0,0 @@ -[package] -name = "demo-stf" -version = { workspace = true } -edition = { workspace = true } -resolver = "2" -authors = { workspace = true } -license = { workspace = true } -homepage = "sovereign.xyz" -publish = false - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -anyhow = { workspace = true } -borsh = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true, optional = true } -clap = { workspace = true, optional = true } -toml = { workspace = true, optional = true } -jsonrpsee = { workspace = true, features = [ - "http-client", - "server", -], optional = true } -tokio = { workspace = true, optional = true } -hex = { workspace = true } -tracing = { workspace = true } -reth-primitives = { workspace = true } -secp256k1 = { workspace = true } - -sov-stf-runner = { path = "../../../full-node/sov-stf-runner" } -sov-rollup-interface = { path = "../../../rollup-interface" } -sov-cli = { path = "../../../module-system/sov-cli", optional = true } -sov-sequencer-registry = { path = "../../../module-system/module-implementations/sov-sequencer-registry" } -sov-blob-storage = { path = "../../../module-system/module-implementations/sov-blob-storage" } -sov-bank = { path = "../../../module-system/module-implementations/sov-bank" } -sov-nft-module = { path = "../../../module-system/module-implementations/sov-nft-module" } -sov-soft-confirmations-kernel = { path = "../../../module-system/sov-soft-confirmations-kernel" } - -sov-mock-da = { path = "../../../adapters/mock-da" } -sov-chain-state = { path = "../../../module-system/module-implementations/sov-chain-state" } -sov-modules-stf-blueprint = { path = "../../../module-system/sov-modules-stf-blueprint" } -sov-value-setter = { path = "../../../module-system/module-implementations/examples/sov-value-setter" } -sov-accounts = { path = "../../../module-system/module-implementations/sov-accounts" } -sov-state = { path = "../../../module-system/sov-state" } -sov-modules-api = { path = "../../../module-system/sov-modules-api" } -sov-evm = { path = "../../../module-system/module-implementations/sov-evm" } -soft-confirmation-rule-enforcer = { path = "../../../module-system/module-implementations/soft-confirmation-rule-enforcer" } - - -[dev-dependencies] -demo-stf = { path = ".", features = ["native"] } -tempfile = { workspace = true } -rand = { workspace = true } -sov-data-generators = { path = "../../../module-system/utils/sov-data-generators" } -sov-mock-zkvm = { path = "../../../adapters/mock-zkvm" } -sov-prover-storage-manager = { path = "../../../full-node/sov-prover-storage-manager", features = [ - "test-utils", -] } - - -[features] -default = [] -offchain = ["sov-nft-module/offchain"] -native = [ - "sov-stf-runner/native", - "sov-bank/native", - "sov-nft-module/native", - "sov-cli", - "sov-accounts/native", - "sov-sequencer-registry/native", - "sov-blob-storage/native", - "sov-chain-state/native", - "sov-value-setter/native", - "sov-modules-api/native", - "sov-rollup-interface/native", - "sov-mock-da/native", - "sov-modules-stf-blueprint/native", - "sov-soft-confirmations-kernel/native", - "clap", - "serde", - "serde_json", - "jsonrpsee", - "tokio", - "toml", -] -serde = [ - "sov-bank/serde", - "sov-sequencer-registry/serde", - "sov-blob-storage/serde", - "sov-value-setter/serde", - "sov-accounts/serde", - "sov-nft-module/serde", - "sov-evm/serde", - "soft-confirmation-rule-enforcer/serde", -] diff --git a/examples/demo-rollup/submitting_1.sh b/examples/demo-rollup/submitting_1.sh deleted file mode 100755 index 69d4db1b5..000000000 --- a/examples/demo-rollup/submitting_1.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -RPC_ENDPOINT="http://127.0.0.1:12345" -PRIVATE_KEY="../test-data/keys/token_deployer_private_key.json" -SOV_CLI="../../target/debug/sov-cli" - -echo "Preparing..." -$SOV_CLI submit-transaction "$PRIVATE_KEY" Bank ../test-data/requests/create_token.json 0 "$RPC_ENDPOINT" -$SOV_CLI submit-transaction "$PRIVATE_KEY" SequencerRegistry ../test-data/requests/register_sequencer.json 1 "$RPC_ENDPOINT" -$SOV_CLI publish-batch "$RPC_ENDPOINT" - - -sleep 1 -echo "Starting submitting transfers" -for nonce in {2..30}; do - echo "Submitting transaction with nonce $nonce" - $SOV_CLI submit-transaction "$PRIVATE_KEY" Bank ../test-data/requests/transfer.json "$nonce" "$RPC_ENDPOINT" - if [ $((nonce % 3)) -eq 0 ]; then - $SOV_CLI publish-batch "$RPC_ENDPOINT" - fi -done \ No newline at end of file diff --git a/examples/demo-rollup/submitting_2.sh b/examples/demo-rollup/submitting_2.sh deleted file mode 100755 index 6dc1adb56..000000000 --- a/examples/demo-rollup/submitting_2.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -RPC_ENDPOINT="http://127.0.0.1:12346" -PRIVATE_KEY="../test-data/keys/minter_private_key.json" -SOV_CLI="../../target/debug/sov-cli" - -echo "Starting !!!" - -for nonce in {0..30}; do - echo "Submitting transaction with nonce $nonce" - $SOV_CLI submit-transaction "$PRIVATE_KEY" Bank ../test-data/requests/transfer.json "$nonce" "$RPC_ENDPOINT" - if [ $((nonce % 3)) -eq 0 ]; then - $SOV_CLI publish-batch "$RPC_ENDPOINT" - fi -done \ No newline at end of file diff --git a/full-node/sov-ethereum/src/batch_builder.rs b/full-node/sov-ethereum/src/batch_builder.rs deleted file mode 100644 index 6f5697599..000000000 --- a/full-node/sov-ethereum/src/batch_builder.rs +++ /dev/null @@ -1,32 +0,0 @@ -use std::collections::VecDeque; - -pub struct EthBatchBuilder { - mempool: VecDeque>, - #[allow(dead_code)] - sov_tx_signer_private_key: C::PrivateKey, - #[allow(dead_code)] - nonce: u64, - #[allow(dead_code)] - min_blob_size: Option, -} - -impl EthBatchBuilder { - /// Creates a new `EthBatchBuilder`. - pub fn new( - sov_tx_signer_private_key: C::PrivateKey, - nonce: u64, - min_blob_size: Option, - ) -> Self { - EthBatchBuilder { - mempool: VecDeque::new(), - sov_tx_signer_private_key, - nonce, - min_blob_size, - } - } - - /// Adds `messages` to the mempool. - pub fn add_messages(&mut self, messages: Vec>) { - self.mempool.extend(messages); - } -} diff --git a/hive/Dockerfile b/hive/Dockerfile index 33d4a7d21..4f5eee57b 100644 --- a/hive/Dockerfile +++ b/hive/Dockerfile @@ -17,7 +17,7 @@ RUN SKIP_GUEST_BUILD=1 cargo chef cook --release --recipe-path recipe.json COPY . . # Build the project -RUN SKIP_GUEST_BUILD=1 cargo build --release --bin sov-demo-rollup +RUN SKIP_GUEST_BUILD=1 cargo build --release --bin citrea # We need cargo to run the binary because of some path finding dependencies FROM rust:1.76 AS runtime @@ -28,7 +28,7 @@ RUN apt-get update && \ apt-get install -y curl # Copy the binary from the builder stage -COPY --from=builder /app/target/release/sov-demo-rollup /app/examples/demo-rollup/sov-demo-rollup +COPY --from=builder /app/target/release/citrea /app/examples/demo-rollup/citrea # Copying the directory except the target directory COPY --from=builder /app /app @@ -37,4 +37,4 @@ RUN rm -rf /app/target && cargo EXPOSE 8545 WORKDIR /app/examples/demo-rollup -ENTRYPOINT ["sh", "-c", "../../hive/hive_publish_block.sh & ./sov-demo-rollup --genesis-paths ../../hive/genesis --rollup-config-path mock_dockerized_rollup_config.toml --sequencer-config-path mock_sequencer_config.toml"] +ENTRYPOINT ["sh", "-c", "../../hive/hive_publish_block.sh & ./citrea --genesis-paths ../../hive/genesis --rollup-config-path mock_dockerized_rollup_config.toml --sequencer-config-path mock_sequencer_config.toml"] diff --git a/module-system/module-implementations/sov-evm/README.md b/module-system/module-implementations/sov-evm/README.md deleted file mode 100644 index 8c29e3b27..000000000 --- a/module-system/module-implementations/sov-evm/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# `sov-evm` module - -The sov-evm module provides compatibility with the EVM. - -The module `CallMessage` contains `rlp` encoded Ethereum transaction, which is validated & executed immediately after being dispatched from the DA. Once all transactions from the DA slot have been processed, they are grouped into an `Ethereum` block. Users can access information such as receipts, blocks, transactions, and more through standard Ethereum endpoints. diff --git a/module-system/module-implementations/sov-evm/src/evm/system_contracts/lib/forge-std b/module-system/module-implementations/sov-evm/src/evm/system_contracts/lib/forge-std deleted file mode 160000 index ae570fec0..000000000 --- a/module-system/module-implementations/sov-evm/src/evm/system_contracts/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ae570fec082bfe1c1f45b0acca4a2b4f84d345ce diff --git a/packages_to_publish.yml b/packages_to_publish.yml deleted file mode 100644 index ff6922346..000000000 --- a/packages_to_publish.yml +++ /dev/null @@ -1,32 +0,0 @@ -- sov-rollup-interface -- sov-mock-da -- sov-mock-zkvm -- sov-schema-db -- sov-db -- sov-zk-cycle-macros -- sov-zk-cycle-utils -- sov-modules-core -- sov-state -- sov-prover-storage-manager -- sov-modules-macros # Requires --no-verify because it writes outside of OUT_DIR. -- sov-modules-api -- sov-sequencer -- sov-modules-stf-blueprint -- sov-stf-runner -- sov-modules-rollup-blueprint -- sov-ledger-rpc - -# Modules -- sov-accounts -- sov-bank -- sov-sequencer-registry -- sov-prover-incentives -- sov-chain-state -- sov-blob-storage -- sov-nft-module - -# Adapters -- sov-risc0-adapter -- sov-celestia-adapter -- sov-mock-da -- sov-mock-zkvm diff --git a/scripts/retesteth/README.md b/scripts/retesteth/README.md deleted file mode 100644 index 954938aee..000000000 --- a/scripts/retesteth/README.md +++ /dev/null @@ -1 +0,0 @@ -`config.json` is the WIP configuration file for using `retesteth` with `sov-evm`. It's based on the configuration options of `evmone` and must be extensively updated to work with `sov-evm`, it's broken as of now. Nonetheless, it's committed into version control to share progress across `sov-evm` maintainers. diff --git a/test-da-dbs/.gitignore b/test-da-dbs/.gitignore index 86d0cb272..98e6ef67f 100644 --- a/test-da-dbs/.gitignore +++ b/test-da-dbs/.gitignore @@ -1,4 +1 @@ -# Ignore everything in this directory -* -# Except this file -!.gitignore \ No newline at end of file +*.db From 8e6bd2bbd930b0c1f3a31b2edc3b481363145911 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 28 Mar 2024 19:52:19 +0800 Subject: [PATCH 3/7] Sequencer: Produce empty soft confirmations in skipped DA blocks (#309) * Refactor code to create fn ChainwaySequencer::produce_l2_block * Rename last_finalized_block -> da_block * Publish empty L2 blocks for missed L1 blocks * Fix sequencer tests * Check L1 height when producing L2 blocks * fix merge error --------- Co-authored-by: eyusufatik --- bin/citrea/tests/sequencer_commitments/mod.rs | 2 - crates/sequencer/src/sequencer.rs | 376 ++++++++++-------- 2 files changed, 202 insertions(+), 176 deletions(-) diff --git a/bin/citrea/tests/sequencer_commitments/mod.rs b/bin/citrea/tests/sequencer_commitments/mod.rs index c9310c383..5e9193814 100644 --- a/bin/citrea/tests/sequencer_commitments/mod.rs +++ b/bin/citrea/tests/sequencer_commitments/mod.rs @@ -73,8 +73,6 @@ async fn sequencer_sends_commitments_to_da_layer() { height += 1; } - da_service.publish_test_block().await.unwrap(); - test_client.send_publish_batch_request().await; da_service.publish_test_block().await.unwrap(); test_client.send_publish_batch_request().await; diff --git a/crates/sequencer/src/sequencer.rs b/crates/sequencer/src/sequencer.rs index aeda67044..5e5a543a5 100644 --- a/crates/sequencer/src/sequencer.rs +++ b/crates/sequencer/src/sequencer.rs @@ -1,3 +1,4 @@ +use std::cmp::Ordering; use std::marker::PhantomData; use std::net::SocketAddr; use std::sync::Arc; @@ -172,6 +173,169 @@ where Ok(()) } + async fn produce_l2_block( + &mut self, + da_block: ::FilteredBlock, + l1_fee_rate: u64, + rlp_txs: Vec, + ) -> Result<(), anyhow::Error> { + debug!( + "Sequencer: publishing block with {} transactions", + rlp_txs.len() + ); + let da_height = da_block.header().height(); + let (l2_height, l1_height) = match self + .ledger_db + .get_head_soft_batch() + .expect("Sequencer: Failed to get head soft batch") + { + Some((l2_height, sb)) => (l2_height.0 + 1, sb.da_slot_height), + None => (0, da_height), + }; + anyhow::ensure!( + l1_height == da_height || l1_height + 1 == da_height, + "Sequencer: L1 height mismatch, expected {da_height} (or {da_height}-1), got {l1_height}", + ); + let batch_info = HookSoftConfirmationInfo { + da_slot_height: da_block.header().height(), + da_slot_hash: da_block.header().hash().into(), + pre_state_root: self.state_root.clone().as_ref().to_vec(), + pub_key: self.sov_tx_signer_priv_key.pub_key().try_to_vec().unwrap(), + l1_fee_rate, + }; + let mut signed_batch: SignedSoftConfirmationBatch = batch_info.clone().into(); + // initially create sc info and call begin soft confirmation hook with it + let call_txs = CallMessage { txs: rlp_txs }; + let raw_message = + as EncodeCall>>::encode_call(call_txs); + let signed_blob = self.make_blob(raw_message); + let txs = vec![signed_blob.clone()]; + + let prestate = self + .storage_manager + .create_storage_on_l2_height(l2_height) + .unwrap(); + + info!( + "Applying soft batch on DA block: {}", + hex::encode(da_block.header().hash().into()) + ); + + let pub_key = signed_batch.pub_key().clone(); + + match self.stf.begin_soft_batch( + &pub_key, + &self.state_root, + prestate.clone(), + Default::default(), + da_block.header(), + &mut signed_batch, + ) { + (Ok(()), batch_workspace) => { + let (batch_workspace, tx_receipts) = + self.stf.apply_soft_batch_txs(txs.clone(), batch_workspace); + + // create the unsigned batch with the txs then sign th sc + let unsigned_batch = UnsignedSoftConfirmationBatch::new( + da_block.header().height(), + da_block.header().hash().into(), + self.state_root.clone().as_ref().to_vec(), + txs, + l1_fee_rate, + ); + + let mut signed_soft_batch = self.sign_soft_confirmation_batch(unsigned_batch); + + let (batch_receipt, checkpoint) = self.stf.end_soft_batch( + self.sequencer_pub_key.as_ref(), + &mut signed_soft_batch, + tx_receipts, + batch_workspace, + ); + + // Finalize soft confirmation + let slot_result = self.stf.finalize_soft_batch( + batch_receipt, + checkpoint, + prestate, + &mut signed_soft_batch, + ); + + if slot_result.state_root.as_ref() == self.state_root.as_ref() { + debug!("Limiting number is reached for the current L1 block. State root is the same as before, skipping"); + // TODO: Check if below is legit + self.storage_manager + .save_change_set_l2(l2_height, slot_result.change_set)?; + + tracing::debug!("Finalizing l2 height: {:?}", l2_height); + self.storage_manager.finalize_l2(l2_height)?; + return Ok(()); + } + + info!( + "State root after applying slot: {:?}", + slot_result.state_root + ); + + let mut data_to_commit = SlotCommit::new(da_block.clone()); + for receipt in slot_result.batch_receipts { + data_to_commit.add_batch(receipt); + } + + // TODO: This will be a single receipt once we have apply_soft_batch. + let batch_receipt = data_to_commit.batch_receipts()[0].clone(); + + let next_state_root = slot_result.state_root; + + let soft_batch_receipt = SoftBatchReceipt::<_, _, Da::Spec> { + pre_state_root: self.state_root.as_ref().to_vec(), + post_state_root: next_state_root.as_ref().to_vec(), + phantom_data: PhantomData::, + batch_hash: batch_receipt.batch_hash, + da_slot_hash: da_block.header().hash(), + da_slot_height: da_block.header().height(), + tx_receipts: batch_receipt.tx_receipts, + soft_confirmation_signature: signed_soft_batch.signature().to_vec(), + pub_key: signed_soft_batch.pub_key().to_vec(), + l1_fee_rate: signed_soft_batch.l1_fee_rate(), + }; + + // TODO: this will only work for mock da + // when https://github.com/Sovereign-Labs/sovereign-sdk/issues/1218 + // is merged, rpc will access up to date storage then we won't need to finalize rigth away. + // however we need much better DA + finalization logic here + self.storage_manager + .save_change_set_l2(l2_height, slot_result.change_set)?; + + tracing::debug!("Finalizing l2 height: {:?}", l2_height); + self.storage_manager.finalize_l2(l2_height)?; + + self.state_root = next_state_root; + + self.ledger_db.commit_soft_batch(soft_batch_receipt, true)?; + + self.mempool + .remove_transactions(self.db_provider.last_block_tx_hashes()); + + // connect L1 and L2 height + self.ledger_db + .extend_l2_range_of_l1_slot( + SlotNumber(da_block.header().height()), + BatchNumber(l2_height), + ) + .expect("Sequencer: Failed to set L1 L2 connection"); + } + (Err(err), batch_workspace) => { + warn!( + "Failed to apply soft confirmation hook: {:?} \n reverting batch workspace", + err + ); + batch_workspace.revert(); + } + } + Ok(()) + } + pub async fn run(&mut self) -> Result<(), anyhow::Error> { // TODO: hotfix for mock da self.da_service.get_block_at(1).await.unwrap(); @@ -194,28 +358,6 @@ where BestTransactionsAttributes::base_fee(base_fee), ); - // TODO: implement block builder instead of just including every transaction in order - let rlp_txs: Vec = best_txs_with_base_fee - .into_iter() - .map(|tx| { - tx.to_recovered_transaction() - .into_signed() - .envelope_encoded() - .to_vec() - }) - .map(|rlp| RlpEvmTransaction { rlp }) - .collect(); - - debug!( - "Sequencer: publishing block with {} transactions", - rlp_txs.len() - ); - - let call_txs = CallMessage { txs: rlp_txs }; - let raw_message = - as EncodeCall>>::encode_call(call_txs); - let signed_blob = self.make_blob(raw_message); - let mut prev_l1_height = self .ledger_db .get_head_soft_batch()? @@ -247,24 +389,33 @@ where last_finalized_height ); - let last_finalized_block = self - .da_service - .get_block_at(last_finalized_height) - .await - .unwrap(); - let l1_fee_rate = self.da_service.get_fee_rate().await.unwrap(); - if last_finalized_height != prev_l1_height { - let previous_l1_block = - self.da_service.get_block_at(prev_l1_height).await.unwrap(); - - // Compare if there is no skip - if last_finalized_block.header().prev_hash() - != previous_l1_block.header().hash() - { - // TODO: This shouldn't happen. If it does, then we should produce at least 1 block for the blocks in between + let new_da_block = match last_finalized_height.cmp(&prev_l1_height) { + Ordering::Less => { + panic!("DA L1 height is less than Ledger finalized height"); } + Ordering::Equal => None, + Ordering::Greater => { + // Compare if there is no skip + if last_finalized_height - prev_l1_height > 1 { + // This shouldn't happen. If it does, then we should produce at least 1 block for the blocks in between + for skipped_height in (prev_l1_height + 1)..last_finalized_height { + debug!( + "Sequencer: publishing empty L2 for skipped L1 block: {:?}", + skipped_height + ); + let da_block = + self.da_service.get_block_at(skipped_height).await.unwrap(); + self.produce_l2_block(da_block, l1_fee_rate, vec![]).await?; + } + } + let prev_l1_height = last_finalized_height - 1; + Some(prev_l1_height) + } + }; + + if let Some(prev_l1_height) = new_da_block { debug!("Sequencer: new L1 block, checking if commitment should be submitted"); let commitment_info = commitment_controller::get_commitment_info( @@ -317,149 +468,26 @@ where // TODO: this is where we would include forced transactions from the new L1 block } - let batch_info = HookSoftConfirmationInfo { - da_slot_height: last_finalized_block.header().height(), - da_slot_hash: last_finalized_block.header().hash().into(), - pre_state_root: self.state_root.clone().as_ref().to_vec(), - pub_key: self.sov_tx_signer_priv_key.pub_key().try_to_vec().unwrap(), - l1_fee_rate, - }; - let mut signed_batch: SignedSoftConfirmationBatch = batch_info.clone().into(); - // initially create sc info and call begin soft confirmation hook with it - let txs = vec![signed_blob.clone()]; + // TODO: implement block builder instead of just including every transaction in order + let rlp_txs: Vec = best_txs_with_base_fee + .into_iter() + .map(|tx| { + tx.to_recovered_transaction() + .into_signed() + .envelope_encoded() + .to_vec() + }) + .map(|rlp| RlpEvmTransaction { rlp }) + .collect(); - let l2_height = match self - .ledger_db - .get_head_soft_batch() - .expect("Sequencer: Failed to get head soft batch") - { - Some((l2_height, _)) => l2_height.0 + 1, - None => 1, - }; let last_finalized_block = self .da_service - .get_block_at(last_finalized_block.header().height()) + .get_block_at(last_finalized_height) .await .unwrap(); - let prestate = self - .storage_manager - .create_storage_on_l2_height(l2_height) - .unwrap(); - - info!( - "Applying soft batch on DA block: {}", - hex::encode(last_finalized_block.header().hash().into()) - ); - let pub_key = signed_batch.pub_key().clone(); - - match self.stf.begin_soft_batch( - &pub_key, - &self.state_root, - prestate.clone(), - Default::default(), - last_finalized_block.header(), - &mut signed_batch, - ) { - (Ok(()), batch_workspace) => { - let (batch_workspace, tx_receipts) = - self.stf.apply_soft_batch_txs(txs.clone(), batch_workspace); - - // create the unsigned batch with the txs then sign th sc - let unsigned_batch = UnsignedSoftConfirmationBatch::new( - last_finalized_block.header().height(), - last_finalized_block.header().hash().into(), - self.state_root.clone().as_ref().to_vec(), - txs, - l1_fee_rate, - ); - - let mut signed_soft_batch = - self.sign_soft_confirmation_batch(unsigned_batch); - - let (batch_receipt, checkpoint) = self.stf.end_soft_batch( - self.sequencer_pub_key.as_ref(), - &mut signed_soft_batch, - tx_receipts, - batch_workspace, - ); - - // Finalize soft confirmation - let slot_result = self.stf.finalize_soft_batch( - batch_receipt, - checkpoint, - prestate, - &mut signed_soft_batch, - ); - - if slot_result.state_root.as_ref() == self.state_root.as_ref() { - debug!("Limiting number is reached for the current L1 block. State root is the same as before, skipping"); - // TODO: Check if below is legit - self.storage_manager - .save_change_set_l2(l2_height, slot_result.change_set)?; - - self.storage_manager.finalize_l2(l2_height)?; - return Ok(()); - } - - info!( - "State root after applying slot: {:?}", - slot_result.state_root - ); - - let mut data_to_commit = SlotCommit::new(last_finalized_block.clone()); - for receipt in slot_result.batch_receipts { - data_to_commit.add_batch(receipt); - } - - // TODO: This will be a single receipt once we have apply_soft_batch. - let batch_receipt = data_to_commit.batch_receipts()[0].clone(); - - let next_state_root = slot_result.state_root; - - let soft_batch_receipt = SoftBatchReceipt::<_, _, Da::Spec> { - pre_state_root: self.state_root.as_ref().to_vec(), - post_state_root: next_state_root.as_ref().to_vec(), - phantom_data: PhantomData::, - batch_hash: batch_receipt.batch_hash, - da_slot_hash: last_finalized_block.header().hash(), - da_slot_height: last_finalized_block.header().height(), - tx_receipts: batch_receipt.tx_receipts, - soft_confirmation_signature: signed_soft_batch.signature().to_vec(), - pub_key: signed_soft_batch.pub_key().to_vec(), - l1_fee_rate: signed_soft_batch.l1_fee_rate(), - }; - - // TODO: this will only work for mock da - // when https://github.com/Sovereign-Labs/sovereign-sdk/issues/1218 - // is merged, rpc will access up to date storage then we won't need to finalize rigth away. - // however we need much better DA + finalization logic here - self.storage_manager - .save_change_set_l2(l2_height, slot_result.change_set)?; - - tracing::debug!("Finalizing l2 height: {:?}", l2_height); - self.storage_manager.finalize_l2(l2_height)?; - - self.state_root = next_state_root; - - self.ledger_db.commit_soft_batch(soft_batch_receipt, true)?; - - self.mempool - .remove_transactions(self.db_provider.last_block_tx_hashes()); - - // connect L1 and L2 height - self.ledger_db - .extend_l2_range_of_l1_slot( - SlotNumber(last_finalized_block.header().height()), - BatchNumber(l2_height), - ) - .expect("Sequencer: Failed to set L1 L2 connection"); - } - (Err(err), batch_workspace) => { - warn!("Failed to apply soft confirmation hook: {:?} \n reverting batch workspace", err); - batch_workspace.revert(); - } - } + self.produce_l2_block(last_finalized_block, l1_fee_rate, rlp_txs) + .await?; } } } From d8469816c2d6e469bb3a6d465473baed37a8d041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Talip=20Akal=C4=B1n?= <56600661+otaliptus@users.noreply.github.com> Date: Thu, 28 Mar 2024 15:02:24 +0300 Subject: [PATCH 4/7] Fix banner (#314) * Change banner to 16:9 Signed-off-by: otaliptus * Fix wrong file --------- Signed-off-by: otaliptus --- assets/banner.png | Bin 391960 -> 247876 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/banner.png b/assets/banner.png index d2943194e89370e5638d316aeec944e26b846f07..a23d207f0708dbb0114bedc2712d25db0a3e5b4f 100644 GIT binary patch literal 247876 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

    mgMPtbAh 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

    qC6&Vju*1F#$a>+kdHf?F_SYv(CD? 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

    OBi7ff)Z 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

    XPXoQyC@^qnoN! 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 GA^!(>uRdu2 literal 391960 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

  • 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 my?Cx;q4mq8zDoF@VfsIn4rxBm2=Lbc0000 Date: Thu, 28 Mar 2024 15:26:15 +0300 Subject: [PATCH 5/7] Remove old docker file & update hive dockerfile (#315) --- Dockerfile | 40 ---------------------------------------- hive/Dockerfile | 15 ++++++++------- 2 files changed, 8 insertions(+), 47 deletions(-) delete mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index f5b329c55..000000000 --- a/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -FROM lukemathwalker/cargo-chef:latest-rust-1.76.0 AS chef -WORKDIR /app - -# Builds a cargo-chef plan -FROM chef AS planner -COPY . . -RUN SKIP_GUEST_BUILD=1 cargo chef prepare --recipe-path recipe.json - -FROM chef AS builder -COPY --from=planner /app/recipe.json recipe.json - -# Install system dependencies -RUN apt-get update && apt-get -y upgrade && apt-get install -y libclang-dev pkg-config && apt-get install protobuf-compiler -y - -# Build dependencies - this is the caching Docker layer! -RUN SKIP_GUEST_BUILD=1 cargo chef cook --release --recipe-path recipe.json - -COPY . . -# Build the project -RUN SKIP_GUEST_BUILD=1 cargo build --release --bin citrea - -# We need cargo to run the binary because of some path finding dependencies -FROM rust:1.76 AS runtime -WORKDIR /app - -# Install curl -RUN apt-get update && \ - apt-get install -y curl - -# Copy the binary from the builder stage -COPY --from=builder /app/target/release/citrea /app/examples/demo-rollup/citrea - -# Copying the directory except the target directory -COPY --from=builder /app /app -RUN rm -rf /app/target && cargo - -EXPOSE 8545 - -WORKDIR /app/examples/demo-rollup -ENTRYPOINT ["sh", "-c", "./publish_block.sh & ./citrea --genesis-type docker --rollup-config-path configs/mock-dockerized/rollup_config.toml --sequencer-config-path configs/mock-dockerized/sequencer_config.toml"] diff --git a/hive/Dockerfile b/hive/Dockerfile index 4f5eee57b..b5bb848ee 100644 --- a/hive/Dockerfile +++ b/hive/Dockerfile @@ -1,4 +1,4 @@ -FROM lukemathwalker/cargo-chef:latest-rust-1.76.0 AS chef +FROM lukemathwalker/cargo-chef:latest-rust-1.77.0 AS chef WORKDIR /app # Builds a cargo-chef plan @@ -20,21 +20,22 @@ COPY . . RUN SKIP_GUEST_BUILD=1 cargo build --release --bin citrea # We need cargo to run the binary because of some path finding dependencies -FROM rust:1.76 AS runtime +FROM rust:1.77 AS runtime WORKDIR /app # Install curl RUN apt-get update && \ apt-get install -y curl -# Copy the binary from the builder stage -COPY --from=builder /app/target/release/citrea /app/examples/demo-rollup/citrea - # Copying the directory except the target directory COPY --from=builder /app /app + +# Copy the binary from the builder stage +COPY --from=builder /app/target/release/citrea /app/bin/citrea + RUN rm -rf /app/target && cargo EXPOSE 8545 -WORKDIR /app/examples/demo-rollup -ENTRYPOINT ["sh", "-c", "../../hive/hive_publish_block.sh & ./citrea --genesis-paths ../../hive/genesis --rollup-config-path mock_dockerized_rollup_config.toml --sequencer-config-path mock_sequencer_config.toml"] +WORKDIR /app/bin/citrea +ENTRYPOINT ["sh", "-c", "chmod +x ../../hive/hive_publish_block.sh ; ../../hive/hive_publish_block.sh & ./publish_da_block.sh & ./citrea --genesis-paths ../../hive/genesis --rollup-config-path configs/mock-dockerized/rollup_config.toml --sequencer-config-path configs/mock-dockerized/sequencer_config.toml"] From 2e6d0710495c11ba5a0bbd0a8a758572321b8d43 Mon Sep 17 00:00:00 2001 From: Esad Yusuf Atik Date: Thu, 28 Mar 2024 16:02:36 +0300 Subject: [PATCH 6/7] update rust version (#317) --- bin/citrea/tests/evm/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/citrea/tests/evm/mod.rs b/bin/citrea/tests/evm/mod.rs index f8602d222..031a5a4f7 100644 --- a/bin/citrea/tests/evm/mod.rs +++ b/bin/citrea/tests/evm/mod.rs @@ -50,7 +50,7 @@ async fn web3_rpc_tests() -> Result<(), anyhow::Error> { assert_eq!( test_client.web3_client_version().await, - format!("citrea/{}/{}/rust-1.77.0", tag, arch) + format!("citrea/{}/{}/rust-1.77.1", tag, arch) ); assert_eq!( test_client From f97c97463f72677a98c404de4002551a94ca0186 Mon Sep 17 00:00:00 2001 From: Esad Yusuf Atik Date: Thu, 28 Mar 2024 16:08:44 +0300 Subject: [PATCH 7/7] Esad/more links in readme (#318) * update rust version * add links in warning --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0af7ee32..daf39b3a2 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ > \ > Please note that Citrea has not been deployed to Bitcoin or any other network yet. \ > \ -> Follow our website & social media accounts for announcements regarding testnet & mainnet phases of Citrea. \ +> Follow our [website](https://citrea.xyz) & [social media accounts](https://twitter.com/citrea_xyz) for announcements regarding testnet & mainnet phases of Citrea. \ > \ > Citrea uses **BTC** as its native token. **There's no Citrea token**. Please beware of scams!