From 355aa38f559fc9c1bb463500dcb6c0d2bb96fa88 Mon Sep 17 00:00:00 2001
From: Ricardo Geraldes <144315960+rgeraldes24@users.noreply.github.com>
Date: Thu, 8 May 2025 13:11:49 +0400
Subject: [PATCH 1/8] Update the currency/units names (#6)
* Update the currency/units names
* Review naming
* docs/docs/guides/web3_plugin_guide/plugin_authors.md: review file
* Update ERC refs
* Update ERC refs
* Update naming across the repo
* packages/web3-zond-zns: fix multiple files
* Revert scripts changes
* Revert scripts changes
* Fix tests
* Fix wording
* Revert change
* Fix jest issue
* Review files
* Fix contract flow
* Update naming
* Fix test issues
* config/tsconfig.types.json: format
* Review files
* Run linters
* config/tsconfig.types.json: revert change
* tools/web3-plugin-example/test/unit/contract_method_wrappers.test.ts: revert change
* tools/web3-plugin-example/test/unit/contract_method_wrappers.test.ts: revert change
* tools/web3-plugin-example/src/contract_method_wrappers.ts: revert change
* Review files
* Review files
* scripts/system_tests_utils.ts: revert changes
* packages/web3/test/integration/web3.zond.transaction.test.ts: revert changes
* packages/web3/test/integration/web3.zond.transaction.test.ts: revert changes
* packages/web3/test/integration/web3.accounts.test.ts: review file
* packages/web3/test/integration/sync.test.ts: review file
* Review file
* Review file
* packages/web3/test/e2e/get_transaction_from_block.test.ts: review file
* packages/web3/test/e2e/fixtures/mainnet_block_hydrated.ts: review files
* Review files
* packages/web3/src/types.ts: review file
* packages/web3/src/types.ts: review file
* Review files
* Review files
* Review files
* Review files
* packages/abi/README.md: revert changes
* Run format and linter
* Review files
* packages/web3/src/version.ts: review version
* Review files
---
README.md | 4 +-
codecov.yml | 4 +-
config/tsconfig.types.json | 2 +-
docs/docs/glossary/json_interface.md | 7 +-
docs/docs/guides/basics/zond.md | 14 +-
...ng_and_interacting_with_smart_contracts.md | 5 +-
.../infer_contract_types_guide/index.md | 16 +-
.../web3_plugin_guide/plugin_authors.md | 10 +-
.../guides/web3_providers_guide/examples.md | 16 +-
.../docs/guides/web3_providers_guide/index.md | 2 +-
docs/docusaurus.config.js | 2 +-
fixtures/build/Basic.json | 2 +-
fixtures/build/Basic.ts | 216 +-
fixtures/build/DeployRevert.json | 2 +-
fixtures/build/DeployRevert.ts | 2 +-
fixtures/build/ERC20Token.json | 290 ---
fixtures/build/ERC20Token.ts | 141 --
fixtures/build/ERC721Token.json | 368 ---
fixtures/build/ERC721Token.ts | 174 --
fixtures/build/ErrorsContract.json | 2 +-
fixtures/build/ErrorsContract.ts | 2 +-
fixtures/build/Greeter.json | 2 +-
fixtures/build/Greeter.ts | 2 +-
fixtures/build/MsgSender.json | 2 +-
fixtures/build/MsgSender.ts | 2 +-
fixtures/build/MyContract.json | 2 +-
fixtures/build/MyContract.ts | 2 +-
fixtures/build/NegativeNumbers.json | 2 +-
fixtures/build/NegativeNumbers.ts | 145 +-
fixtures/build/ZRC20Token.json | 328 +++
fixtures/build/ZRC20Token.ts | 122 +
fixtures/build/ZRC721Token.json | 503 ++++
fixtures/build/ZRC721Token.ts | 236 ++
fixtures/contracts/Basic.hyp | 3 +-
fixtures/contracts/DeployRevert.hyp | 5 +-
fixtures/contracts/ERC20Token.hyp | 11 -
fixtures/contracts/ErrorsContract.hyp | 3 +-
fixtures/contracts/Greeter.hyp | 3 +-
fixtures/contracts/MsgSender.hyp | 3 +-
fixtures/contracts/MyContract.hyp | 3 +-
fixtures/contracts/NegativeNumbers.hyp | 3 +-
fixtures/contracts/ZRC20Token.hyp | 10 +
.../{ERC721Token.hyp => ZRC721Token.hyp} | 11 +-
package.json | 5 +-
packages/abi/README.md | 51 +-
packages/abi/package.json | 58 +-
packages/abi/src/_version.ts | 18 +-
packages/abi/src/abi-coder.ts | 231 +-
packages/abi/src/coders/abstract-coder.ts | 407 ++--
packages/abi/src/coders/address.ts | 67 +-
packages/abi/src/coders/anonymous.ts | 47 +-
packages/abi/src/coders/array.ts | 492 ++--
packages/abi/src/coders/boolean.ts | 45 +-
packages/abi/src/coders/bytes.ts | 71 +-
packages/abi/src/coders/fixed-bytes.ts | 68 +-
packages/abi/src/coders/null.ts | 50 +-
packages/abi/src/coders/number.ts | 96 +-
packages/abi/src/coders/string.ts | 48 +-
packages/abi/src/coders/tuple.ts | 138 +-
packages/abi/src/fragments.ts | 2024 +++++++++--------
packages/abi/src/index.ts | 89 +-
packages/abi/src/interface.ts | 1465 ++++++------
packages/abi/test/config/jest.config.js | 16 +
packages/abi/test/integration/jest.config.js | 17 +-
packages/abi/test/unit/abi.test.ts | 18 +-
packages/abi/test/unit/jest.config.js | 16 +
packages/abi/tsconfig.cjs.json | 7 +-
packages/abi/tsconfig.esm.json | 5 +-
packages/abi/tsconfig.types.json | 7 +-
packages/web3-core/src/utils.ts | 2 +-
packages/web3-core/src/web3_context.ts | 2 +-
packages/web3-core/test/config/jest.config.js | 2 +-
.../test/unit/web3_batch_request.test.ts | 6 +-
.../test/unit/web3_subscription.test.ts | 2 +-
packages/web3-errors/CHANGELOG.md | 2 +-
packages/web3-errors/src/error_codes.ts | 8 +-
.../web3-errors/src/errors/account_errors.ts | 2 +-
.../src/errors/transaction_errors.ts | 15 +-
.../errors/{ens_errors.ts => zns_errors.ts} | 22 +-
packages/web3-errors/src/index.ts | 2 +-
packages/web3-errors/test/unit/errors.test.ts | 4 +-
packages/web3-net/CHANGELOG.md | 2 +-
packages/web3-net/src/index.ts | 2 +-
packages/web3-providers-http/CHANGELOG.md | 2 +-
packages/web3-providers-ipc/CHANGELOG.md | 2 +-
packages/web3-providers-ws/CHANGELOG.md | 2 +-
packages/web3-rpc-methods/CHANGELOG.md | 2 +-
packages/web3-types/CHANGELOG.md | 2 +-
.../web3-types/src/apis/zond_execution_api.ts | 10 +-
packages/web3-types/src/web3_base_provider.ts | 1 -
packages/web3-types/src/zond_types.ts | 21 +-
packages/web3-utils/CHANGELOG.md | 2 +-
packages/web3-utils/src/converters.ts | 73 +-
packages/web3-utils/src/formatter.ts | 8 +-
packages/web3-utils/src/promise_helpers.ts | 31 +-
packages/web3-utils/src/validation.ts | 5 +-
.../web3-utils/test/config/jest.config.js | 2 +-
.../web3-utils/test/fixtures/converters.ts | 146 +-
packages/web3-utils/test/fixtures/hash.ts | 10 +-
.../web3-utils/test/unit/converters.test.ts | 32 +-
.../test/unit/socket_provider.test.ts | 7 +-
packages/web3-validator/CHANGELOG.md | 2 +-
packages/web3-validator/README.md | 8 +-
packages/web3-validator/src/utils.ts | 1 -
.../web3-validator/src/validation/address.ts | 5 +-
.../web3-validator/src/validation/bloom.ts | 8 +-
.../web3-validator/src/validation/numbers.ts | 6 +-
.../web3-validator/test/config/jest.config.js | 2 +-
.../test/fixtures/validation.ts | 11 +-
packages/web3-zond-abi/CHANGELOG.md | 2 +-
.../test/unit/get_encoded_eip712_data.test.ts | 2 +-
packages/web3-zond-accounts/CHANGELOG.md | 2 +-
packages/web3-zond-accounts/index.d.ts | 16 +
packages/web3-zond-accounts/src/account.ts | 27 +-
.../src/common/chains/mainnet.ts | 47 +-
.../web3-zond-accounts/src/common/common.ts | 30 +-
.../src/common/hardforks/shanghai.ts | 835 ++++---
.../web3-zond-accounts/src/common/types.ts | 2 +-
.../web3-zond-accounts/src/common/utils.ts | 14 +-
packages/web3-zond-accounts/src/tx/address.ts | 10 +-
.../src/tx/baseTransaction.ts | 30 +-
.../web3-zond-accounts/src/tx/constants.ts | 2 +-
.../src/tx/eip1559Transaction.ts | 4 +-
.../src/tx/transactionFactory.ts | 6 +-
packages/web3-zond-accounts/src/tx/types.ts | 2 +-
packages/web3-zond-accounts/src/types.ts | 7 +-
packages/web3-zond-accounts/src/wallet.ts | 4 +-
.../test/fixtures/account.ts | 36 +-
.../test/integration/account.test.ts | 26 +-
.../test/integration/wallet.test.ts | 4 +-
.../test/unit/account.test.ts | 26 +-
.../test/unit/common/chains.test.ts | 4 +-
.../test/unit/common/customChains.test.ts | 2 +-
.../test/unit/common/eips.test.ts | 3 -
.../test/unit/common/hardforks.test.ts | 6 +-
.../test/unit/common/mergePOS.test.ts | 4 +-
.../test/unit/common/params.test.ts | 4 +-
.../test/unit/common/utils.test.ts | 16 +-
.../test/unit/tx/base.test.ts | 14 +-
.../test/unit/tx/eip1559.test.ts | 6 +-
.../test/unit/tx/inputValue.test.ts | 11 +-
.../test/unit/tx/transactionFactory.test.ts | 12 +-
.../test/unit/tx/typedTxsAndEIP2930.test.ts | 30 +-
.../web3-zond-accounts/test/unit/tx/types.ts | 3 +-
.../test/unit/wallet.test.ts | 4 +-
packages/web3-zond-contract/CHANGELOG.md | 2 +-
packages/web3-zond-contract/src/contract.ts | 8 +-
packages/web3-zond-contract/src/encoding.ts | 2 +-
packages/web3-zond-contract/src/utils.ts | 2 +-
.../contracts/SampleStorageContract.hyp | 3 +-
.../fixtures/contracts/SimpleOverloaded.hyp | 3 +-
.../test/fixtures/{erc20.ts => zrc20.ts} | 4 +-
.../test/fixtures/{erc721.ts => zrc721.ts} | 4 +-
.../integration/contract_accesslist.test.ts | 16 +-
.../test/integration/contract_clone.test.ts | 2 +-
.../contract_defaults_extra.test.ts | 4 +-
.../test/integration/contract_deploy.test.ts | 16 +-
.../integration/contract_empty_string.test.ts | 2 +-
.../test/integration/contract_events.test.ts | 2 +-
.../contract_filter_events.test.ts | 16 +-
.../test/integration/contract_methods.test.ts | 16 +-
.../contract_methods_errors.test.ts | 2 +-
.../contract_negative_numbers.test.ts | 2 +-
.../contract_simple_overloaded.test.ts | 12 +-
...t_erc20.test.ts => contract_zrc20.test.ts} | 22 +-
...erc721.test.ts => contract_zrc721.test.ts} | 16 +-
.../test/integration/jest.config.js | 2 +-
.../local_account/contract_deploy.test.ts | 23 +-
.../contract_overloaded_methods.test.ts | 14 +-
...t_erc20.test.ts => contract_zrc20.test.ts} | 22 +-
...erc721.test.ts => contract_zrc721.test.ts} | 65 +-
.../test/integration/setup.js | 2 +-
.../test/unit/contract.test.ts | 48 +-
.../test/unit/contract_typing.test.ts | 28 +-
packages/web3-zond-iban/CHANGELOG.md | 2 +-
packages/web3-zond-iban/src/iban.ts | 18 +-
.../.eslintignore | 0
.../.eslintrc.js | 0
.../.gitignore | 0
.../.npmignore | 0
.../.prettierignore | 0
.../.prettierrc.json | 0
.../CHANGELOG.md | 2 +-
.../README.md | 18 +-
.../assets/logo/web3js.ai | 0
.../assets/logo/web3js.jpg | Bin
.../assets/logo/web3js.svg | 0
.../package.json | 8 +-
.../src/abi/zns}/PublicResolver.ts | 0
.../src/abi/zns/ZNSRegistry.ts} | 4 +-
.../src/config.ts | 6 +-
.../src/index.ts | 4 +-
.../src/registry.ts | 10 +-
.../src/resolver.ts | 30 +-
.../src/utils.ts | 0
.../src/ens.ts => web3-zond-zns/src/zns.ts} | 92 +-
.../test/.eslintrc.js | 0
.../test/config/jest.config.js | 0
.../test/config/setup.js | 0
.../test/fixtures/accounts.json | 0
.../test/fixtures/system_tests_utils.ts | 0
.../test/fixtures/utils.ts | 12 +-
.../test/fixtures/zns/ZNSRegistry.json} | 4 +-
.../test/fixtures/zns}/abi/NameWrapper.ts | 0
.../test/fixtures/zns}/abi/PublicResolver.ts | 4 +-
.../test/fixtures/zns/abi/ZNSRegistry.ts} | 4 +-
.../zns}/bytecode/NameWrapperBytecode.ts | 0
.../zns}/bytecode/PublicResolverBytecode.ts | 0
.../zns/bytecode/ZNSRegistryBytecode.ts} | 2 +-
.../test/fixtures/zns}/reverse_registrar.json | 2 +-
.../test/integration/jest.config.js | 0
.../test/integration/resolver.test.ts | 68 +-
.../test/integration/setup.js | 0
.../test/integration/zns.events.test.ts} | 46 +-
.../test/integration/zns.test.ts} | 54 +-
.../test/tsconfig.json | 0
.../test/unit/constructor.test.ts | 26 +-
.../test/unit/index.test.ts | 4 +-
.../test/unit/jest.config.js | 2 +-
.../test/unit/registry.test.ts | 38 +-
.../test/unit/resolver.test.ts | 26 +-
.../test/unit/utils.test.ts | 2 +-
.../test/unit/zns.test.ts} | 98 +-
.../tsconfig.cjs.json | 0
.../tsconfig.esm.json | 0
.../tsconfig.types.json | 0
.../tsdoc.json | 0
packages/web3-zond/CHANGELOG.md | 2 +-
packages/web3-zond/index.d.ts | 16 +
packages/web3-zond/src/rpc_method_wrappers.ts | 6 +-
packages/web3-zond/src/schemas.ts | 4 +-
.../src/utils/detect_transaction_type.ts | 16 +-
.../web3-zond/src/utils/get_revert_reason.ts | 6 +-
.../src/utils/get_transaction_gas_pricing.ts | 9 +-
.../utils/prepare_transaction_for_signing.ts | 7 +-
.../src/utils/reject_if_block_timeout.ts | 35 +-
.../src/utils/transaction_builder.ts | 9 +-
packages/web3-zond/src/validation.ts | 21 +-
packages/web3-zond/src/web3_zond.ts | 16 +-
packages/web3-zond/test/e2e/e2e_utils.ts | 3 +-
.../test/fixtures/detect_transaction_type.ts | 3 +-
.../test/fixtures/format_transaction.ts | 46 +-
.../prepare_transaction_for_signing.ts | 18 +-
.../validate_transaction_for_signing.ts | 7 +-
.../web3-zond/test/fixtures/validation.ts | 11 +-
.../web3_zond_methods_with_parameters.ts | 6 +-
.../integration/block/rpc.getBlock.test.ts | 2 +-
.../rpc.getBlockTransactionCount.test.ts | 4 +-
.../block/rpc.getTransactionCount.test.ts | 2 +-
.../block/rpc.getTransactionFromBlock.test.ts | 2 +-
.../test/integration/defaults.test.ts | 37 +-
.../defaults.transactionBlockTimeout.test.ts | 12 +-
.../integration/get_revert_reason.test.ts | 5 +-
.../web3-zond/test/integration/nonce.test.ts | 4 +-
.../web3-zond/test/integration/rpc.test.ts | 14 +-
packages/web3-zond/test/integration/setup.js | 2 +-
.../web3_zond/send_transaction.test.ts | 35 +-
.../web3-zond/test/integration/zond.test.ts | 2 +-
.../unit/default_transaction_builder.test.ts | 28 +-
.../prepare_transaction_for_signing.test.ts | 19 +-
.../unit/rpc_method_wrappers/fixtures/call.ts | 6 +-
.../fixtures/estimate_gas.ts | 6 +-
.../rpc_method_wrappers/fixtures/get_block.ts | 6 +-
.../fixtures/get_pending_transactions.ts | 6 +-
.../fixtures/get_transaction.ts | 6 +-
.../fixtures/get_transaction_from_block.ts | 6 +-
.../fixtures/sign_transaction.ts | 8 +-
.../get_block_number.test.ts | 7 +-
.../rpc_method_wrappers/get_chain_id.test.ts | 7 +-
.../rpc_method_wrappers/get_gas_price.test.ts | 7 +-
.../unit/rpc_method_wrappers/get_logs.test.ts | 7 +-
.../get_pending_transactions.test.ts | 7 +-
.../get_transaction.test.ts | 7 +-
.../get_transaction_count.test.ts | 4 +-
.../get_transaction_receipt.test.ts | 7 +-
.../unit/rpc_method_wrappers/sign.test.ts | 7 +-
.../sign_typed_data.test.ts | 7 +-
.../utils/getTransactionFromOrToAttr.test.ts | 3 +-
.../watch_transaction_by_polling.test.ts | 3 +-
...atch_transaction_for_confirmations.test.ts | 6 +-
.../unit/web3_zond_calculate_fee_data.test.ts | 18 +-
.../web3_zond_methods_no_parameters.test.ts | 4 +-
packages/web3/CHANGELOG.md | 2 +-
packages/web3/README.md | 38 +-
packages/web3/package.json | 2 +-
packages/web3/src/accounts.ts | 17 +-
packages/web3/src/index.ts | 4 +-
packages/web3/src/types.ts | 8 +-
packages/web3/src/version.ts | 2 +-
packages/web3/src/web3.ts | 8 +-
packages/web3/src/zond.exports.ts | 2 +-
.../web3/test/cjs_black_box/.eslintrc.cjs | 2 +-
.../{erc20.test.ts => zrc20.test.ts} | 72 +-
packages/web3/test/e2e/e2e_utils.ts | 3 +-
.../e2e/fixtures/mainnet_block_hydrated.ts | 2 +-
.../e2e/get_transaction_from_block.test.ts | 2 +-
.../test/web3-zond-contract/erc20.test.ts | 70 -
.../test/web3-zond-contract/zrc20.test.ts | 67 +
.../truffle-hdwallet.test\331\200tbd.ts" | 5 +-
packages/web3/test/integration/sync.test.ts | 2 +-
.../test/integration/web3.accounts.test.ts | 22 +-
.../integration/web3.zond.transaction.test.ts | 2 +-
.../shared_fixtures/contracts/ZRC20Token.ts | 24 +-
.../{ERC721Token.ts => ZRC721Token.ts} | 0
packages/web3/test/unit/index.test.ts | 4 +-
scripts/compile_contracts.js | 2 +-
.../accounts/all-accounts.keystore.json | 0
scripts/pos.sh | 2 +-
scripts/system_tests_utils.ts | 30 +-
templates/jest.config.js.tmpl | 4 +-
tools/web3-packagetemplate/CHANGELOG.md | 2 +-
tools/web3-plugin-example/CHANGELOG.md | 2 +-
.../web3-plugin-example/src/ZRC20Token.ts | 24 +-
.../src/contract_method_wrappers.ts | 12 +-
.../unit/contract_method_wrappers.test.ts | 8 +-
yarn.lock | 68 +-
316 files changed, 6237 insertions(+), 5744 deletions(-)
delete mode 100644 fixtures/build/ERC20Token.json
delete mode 100644 fixtures/build/ERC20Token.ts
delete mode 100644 fixtures/build/ERC721Token.json
delete mode 100644 fixtures/build/ERC721Token.ts
create mode 100644 fixtures/build/ZRC20Token.json
create mode 100644 fixtures/build/ZRC20Token.ts
create mode 100644 fixtures/build/ZRC721Token.json
create mode 100644 fixtures/build/ZRC721Token.ts
delete mode 100644 fixtures/contracts/ERC20Token.hyp
create mode 100644 fixtures/contracts/ZRC20Token.hyp
rename fixtures/contracts/{ERC721Token.hyp => ZRC721Token.hyp} (55%)
rename packages/web3-errors/src/errors/{ens_errors.ts => zns_errors.ts} (64%)
rename packages/web3-zond-contract/test/fixtures/{erc20.ts => zrc20.ts} (98%)
rename packages/web3-zond-contract/test/fixtures/{erc721.ts => zrc721.ts} (98%)
rename packages/web3-zond-contract/test/integration/{contract_erc20.test.ts => contract_zrc20.test.ts} (92%)
rename packages/web3-zond-contract/test/integration/{contract_erc721.test.ts => contract_zrc721.test.ts} (95%)
rename packages/web3-zond-contract/test/integration/local_account/{contract_erc20.test.ts => contract_zrc20.test.ts} (87%)
rename packages/web3-zond-contract/test/integration/local_account/{contract_erc721.test.ts => contract_zrc721.test.ts} (78%)
rename packages/{web3-zond-ens => web3-zond-zns}/.eslintignore (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/.eslintrc.js (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/.gitignore (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/.npmignore (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/.prettierignore (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/.prettierrc.json (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/CHANGELOG.md (99%)
rename packages/{web3-zond-ens => web3-zond-zns}/README.md (77%)
rename packages/{web3-zond-ens => web3-zond-zns}/assets/logo/web3js.ai (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/assets/logo/web3js.jpg (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/assets/logo/web3js.svg (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/package.json (82%)
rename packages/{web3-zond-ens/src/abi/ens => web3-zond-zns/src/abi/zns}/PublicResolver.ts (100%)
rename packages/{web3-zond-ens/src/abi/ens/ENSRegistry.ts => web3-zond-zns/src/abi/zns/ZNSRegistry.ts} (98%)
rename packages/{web3-zond-ens => web3-zond-zns}/src/config.ts (88%)
rename packages/{web3-zond-ens => web3-zond-zns}/src/index.ts (85%)
rename packages/{web3-zond-ens => web3-zond-zns}/src/registry.ts (90%)
rename packages/{web3-zond-ens => web3-zond-zns}/src/resolver.ts (81%)
rename packages/{web3-zond-ens => web3-zond-zns}/src/utils.ts (100%)
rename packages/{web3-zond-ens/src/ens.ts => web3-zond-zns/src/zns.ts} (68%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/.eslintrc.js (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/config/jest.config.js (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/config/setup.js (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/fixtures/accounts.json (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/fixtures/system_tests_utils.ts (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/fixtures/utils.ts (73%)
rename packages/{web3-zond-ens/test/fixtures/ens/ENSRegistry.json => web3-zond-zns/test/fixtures/zns/ZNSRegistry.json} (99%)
rename packages/{web3-zond-ens/test/fixtures/ens => web3-zond-zns/test/fixtures/zns}/abi/NameWrapper.ts (100%)
rename packages/{web3-zond-ens/test/fixtures/ens => web3-zond-zns/test/fixtures/zns}/abi/PublicResolver.ts (99%)
rename packages/{web3-zond-ens/test/fixtures/ens/abi/ENSRegistry.ts => web3-zond-zns/test/fixtures/zns/abi/ZNSRegistry.ts} (99%)
rename packages/{web3-zond-ens/test/fixtures/ens => web3-zond-zns/test/fixtures/zns}/bytecode/NameWrapperBytecode.ts (100%)
rename packages/{web3-zond-ens/test/fixtures/ens => web3-zond-zns/test/fixtures/zns}/bytecode/PublicResolverBytecode.ts (100%)
rename packages/{web3-zond-ens/test/fixtures/ens/bytecode/ENSRegistryBytecode.ts => web3-zond-zns/test/fixtures/zns/bytecode/ZNSRegistryBytecode.ts} (99%)
rename packages/{web3-zond-ens/test/fixtures/ens => web3-zond-zns/test/fixtures/zns}/reverse_registrar.json (88%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/integration/jest.config.js (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/integration/resolver.test.ts (78%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/integration/setup.js (100%)
rename packages/{web3-zond-ens/test/integration/ens.events.test.ts => web3-zond-zns/test/integration/zns.events.test.ts} (78%)
rename packages/{web3-zond-ens/test/integration/ens.test.ts => web3-zond-zns/test/integration/zns.test.ts} (76%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/tsconfig.json (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/unit/constructor.test.ts (75%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/unit/index.test.ts (92%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/unit/jest.config.js (86%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/unit/registry.test.ts (85%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/unit/resolver.test.ts (92%)
rename packages/{web3-zond-ens => web3-zond-zns}/test/unit/utils.test.ts (97%)
rename packages/{web3-zond-ens/test/unit/ens.test.ts => web3-zond-zns/test/unit/zns.test.ts} (70%)
rename packages/{web3-zond-ens => web3-zond-zns}/tsconfig.cjs.json (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/tsconfig.esm.json (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/tsconfig.types.json (100%)
rename packages/{web3-zond-ens => web3-zond-zns}/tsdoc.json (100%)
rename packages/web3/test/cjs_black_box/test/web3-zond-contract/{erc20.test.ts => zrc20.test.ts} (50%)
delete mode 100644 packages/web3/test/esm_black_box/test/web3-zond-contract/erc20.test.ts
create mode 100644 packages/web3/test/esm_black_box/test/web3-zond-contract/zrc20.test.ts
rename tools/web3-plugin-example/src/ERC20Token.ts => packages/web3/test/shared_fixtures/contracts/ZRC20Token.ts (95%)
rename packages/web3/test/shared_fixtures/contracts/{ERC721Token.ts => ZRC721Token.ts} (100%)
rename scripts/consensus/{prysm-wallet-v2 => qrysm-wallet-v2}/direct/accounts/all-accounts.keystore.json (100%)
rename packages/web3/test/shared_fixtures/contracts/ERC20Token.ts => tools/web3-plugin-example/src/ZRC20Token.ts (95%)
diff --git a/README.md b/README.md
index f3711ae5..b316b2bb 100644
--- a/README.md
+++ b/README.md
@@ -57,9 +57,9 @@ yarn add web3
| [web3-zond-abi](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-abi) | [](https://www.npmjs.com/package/web3-eth-abi) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-abi) | Functions for encoding and decoding ZVM in/output |
| [web3-zond-accounts](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-accounts) | [](https://www.npmjs.com/package/web3-eth-accounts) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-accounts) | Functions for managing Zond accounts and signing |
| [web3-zond-contract](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-contract) | [](https://www.npmjs.com/package/web3-eth-contract) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-contract) | The contract package contained in [web3-zond](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth) |
-| [web3-zond-ens](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-ens) | [](https://www.npmjs.com/package/web3-eth-ens) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-ens) | Functions for interacting with the Ethereum Name Service |
+| [web3-zond-zns](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-ens) | [](https://www.npmjs.com/package/web3-eth-ens) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-ens) | Functions for interacting with the Zond Name Service |
| [web3-zond-iban](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-iban) | [](https://www.npmjs.com/package/web3-eth-iban) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-iban) | Functionality for converting Zond addressed to IBAN addressed and vice versa |
-| [web3-net](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-net) | [](https://www.npmjs.com/package/web3-net) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-net) | Functions to interact with an Zond node's network properties |
+| [web3-net](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-net) | [](https://www.npmjs.com/package/web3-net) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-net) | Functions to interact with a Zond node's network properties |
| [web3-providers-http](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-http) | [](https://www.npmjs.com/package/web3-providers-http) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-http) | Web3.js provider for the HTTP protocol |
| [web3-providers-ipc](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ipc) | [](https://www.npmjs.com/package/web3-providers-ipc) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-ipc) | Web3.js provider for IPC |
| [web3-providers-ws](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ws) | [](https://www.npmjs.com/package/web3-providers-ws) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-ws) | Web3.js provider for the Websocket protocol |
diff --git a/codecov.yml b/codecov.yml
index 11dfde6b..0a8f0dfd 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -39,9 +39,9 @@ component_management:
- component_id: "@theqrl/web3-zond-contract"
paths:
- /packages/web3-zond-contract/src/
- - component_id: "@theqrl/web3-zond-ens"
+ - component_id: "@theqrl/web3-zond-zns"
paths:
- - /packages/web3-zond-ens/src/
+ - /packages/web3-zond-zns/src/
- component_id: "@theqrl/web3-zond-iban"
paths:
- /packages/web3-zond-iban/src/
diff --git a/config/tsconfig.types.json b/config/tsconfig.types.json
index c930d665..5177aa59 100644
--- a/config/tsconfig.types.json
+++ b/config/tsconfig.types.json
@@ -7,4 +7,4 @@
"emitDeclarationOnly": true
},
"include": ["src/**/*", "index.d.ts"]
-}
\ No newline at end of file
+}
diff --git a/docs/docs/glossary/json_interface.md b/docs/docs/glossary/json_interface.md
index 1d112a12..b08ab1e1 100644
--- a/docs/docs/glossary/json_interface.md
+++ b/docs/docs/glossary/json_interface.md
@@ -2,7 +2,7 @@
title: JSON Interface
---
-The JSON interface is a `JSON` object describing the [Application Binary Interface (ABI)](https://docs.soliditylang.org/en/develop/abi-spec.html) for an Zond smart contract.
+The JSON interface is a `JSON` object describing the [Application Binary Interface (ABI)](https://docs.soliditylang.org/en/develop/abi-spec.html) for a Zond smart contract.
Using this JSON interface, web3.js is able to create a JavaScript object representing the smart contract , its methods and events using the `web3.zond.Contract` object.
@@ -13,7 +13,7 @@ Using this JSON interface, web3.js is able to create a JavaScript object represe
- `type`: `"function"`, `"constructor"` (can be omitted, defaulting to `"function"`; `"fallback"` also possible but not relevant in web3.js);
- `name`: the name of the function (only present for function types);
- `constant`: `true` if function is specified to not modify the blockchain state;
-- `payable`: `true` if function accepts ether, defaults to false;
+- `payable`: `true` if function accepts zond, defaults to false;
- `stateMutability`: a `string` with one of the following values: `"pure"` (specified to not read blockchain state), `"view"` (same as constant above), `"non-payable"` and `"payable"` (same as payable above);
- `inputs`: an `Array of objects`, each of which contains:
-- `name`: the name of the parameter;
@@ -37,8 +37,7 @@ Using this JSON interface, web3.js is able to create a JavaScript object represe
#### Example
```hyperion title='Hyperion Contract'
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.4;
+pragma hyperion >=0.1.0;
contract Test {
uint256 a;
diff --git a/docs/docs/guides/basics/zond.md b/docs/docs/guides/basics/zond.md
index 1879898b..ccea547c 100644
--- a/docs/docs/guides/basics/zond.md
+++ b/docs/docs/guides/basics/zond.md
@@ -113,17 +113,17 @@ async function interact() {
console.log(accounts);
let balance1, balance2;
- //The initial balances of the accounts should be 100 Eth (10^18 wei)
+ //The initial balances of the accounts should be 100 Zond (10^18 planck)
balance1 = await web3.zond.getBalance(accounts[0]);
balance2 = await web3.zond.getBalance(accounts[1]);
console.log(balance1, balance2);
- //create a transaction sending 1 Ether from account 0 to account 1
+ //create a transaction sending 1 Zond from account 0 to account 1
const transaction = {
from: accounts[0],
to: accounts[1],
- value: web3.utils.toWei('1', 'ether'), // value should be passed in wei. For easier use and to avoid mistakes we utilize the auxiliary `toWei` function.
+ value: web3.utils.toPlanck('1', 'zond'), // value should be passed in planck. For easier use and to avoid mistakes we utilize the auxiliary `toPlanck` function.
};
//send the actual transaction
@@ -194,9 +194,9 @@ transactionHash {
```
:::note
-📝 In order to calculate the actual ether spent, we have to calculate the value sent plus the fees. Initial_balance = (Remaining_balance + value + gasUsed\*gasPrice). In our case:
+📝 In order to calculate the actual zond spent, we have to calculate the value sent plus the fees. Initial_balance = (Remaining_balance + value + gasUsed\*gasPrice). In our case:
-98999580000000000000 + 1000000000000000000 + (20000000000\*21000) = 100 Ether
+98999580000000000000 + 1000000000000000000 + (20000000000\*21000) = 100 Zond
:::
In the next example, we are going to use `estimateGas` function to see the expected gas for contract deployment. (For more on contracts, please see the corresponding tutotial). Create a file named `estimate.ts` and fill it with the following code:
@@ -289,7 +289,7 @@ const web3 = new Web3('http://localhost:7545');
//make sure to copy the private key from ganache
const privateKey = '0x0fed6f64e01bc9fac9587b6e7245fd9d056c3c004ad546a17d3d029977f0930a';
-const value = web3.utils.toWei('1', 'ether');
+const value = web3.utils.toPlanck('1', 'zond');
async function sendSigned() {
const accounts = await web3.zond.getAccounts();
@@ -301,7 +301,7 @@ async function sendSigned() {
to: toAddress,
value: value,
gas: 21000,
- maxFeePerGas: web3.utils.toWei('10', 'gwei'),
+ maxFeePerGas: web3.utils.toPlanck('10', 'gplanck'),
maxPriorityFeePerGas: 30000000,
nonce: await web3.zond.getTransactionCount(fromAddress),
};
diff --git a/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md b/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md
index 0ebdcd30..0012758e 100644
--- a/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md
+++ b/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md
@@ -54,8 +54,7 @@ Create a new file called `MyContract.hyp` in your project directory and add the
```hyperion
// SPDX-License-Identifier: MIT
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.0;
+pragma hyperion >=0.0;
contract MyContract {
uint256 public myNumber;
@@ -79,7 +78,7 @@ TODO(now.youtrack.cloud/issue/web3js-12)
:::tip
📝 Alternatively, you can use something like `npm i hypc && npx hypcjs MyContract.hyp --bin --abi`. And then rename the files to `MyContractBytecode.bin` and `MyContractAbi.json`, in order to keep them the same as they will be used later in this tutorial.
-More on hypc-js is at https://github.com/ethereum/solc-js
+More on hypc-js is at https://github.com/theQRL/hypc-js
:::
In this step, we will use the Hyperion Compiler (hypc) to compile the Hyperion code and generate the compiled code.
diff --git a/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md b/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md
index d01993ec..cbbf4804 100644
--- a/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md
+++ b/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md
@@ -12,12 +12,12 @@ Web3.js uses ABI type to dynamically load available methods and events but Types
```typescript
import { Contract, Web3 } from 'web3';
-import ERC20 from './node_modules/@openzeppelin/contracts/build/contracts/ERC20.json';
+import ZRC20 from './node_modules/@theqrl/zond-contracts/build/contracts/ZRC20.json';
(async function () {
const web3 = new Web3('rpc url');
- const contract = new Contract(ERC20.abi, 'Z7af963cF6D228E564e2A0aA0DdBF06210B38615D', web3);
+ const contract = new Contract(ZRC20.abi, 'Z7af963cF6D228E564e2A0aA0DdBF06210B38615D', web3);
const holder = 'Za8F6eB216e26C1F7d924A801E46eaE0CE8ed1A0A';
@@ -32,7 +32,7 @@ To work around it you need to copy abi into a Typescript file like this:
import {Contract, Web3} from "web3";
-const ERC20 = [
+const ZRC20 = [
...
// "as const" is important part, without it typescript would create generic type and remove available methods from type
] as const;
@@ -40,7 +40,7 @@ const ERC20 = [
(async function() {
const web3 = new Web3("rpc url")
- const contract = new Contract(ERC20, "Z7af963cF6D228E564e2A0aA0DdBF06210B38615D", web3)
+ const contract = new Contract(ZRC20, "Z7af963cF6D228E564e2A0aA0DdBF06210B38615D", web3)
const holder = "Za8F6eB216e26C1F7d924A801E46eaE0CE8ed1A0A"
@@ -90,8 +90,8 @@ To use this script, just create an `artifacts.json` file at the root of your pro
```json title="artifacts.json"
[
- "@openzeppelin/contracts/build/contracts/ERC20.json",
- "@openzeppelin/contracts/build/contracts/ERC1155.json",
+ "@theqrl/zond-contracts/build/contracts/ZRC20.json",
+ "@theqrl/zond-contracts/build/contracts/ZRC1155.json",
"./build/contracts/MyContract.json"
]
```
@@ -101,13 +101,13 @@ use those generated files in your code:
```typescript
import { Contract, ContractAbi, Web3 } from 'web3';
-import ERC20 from './artifacts/ERC20';
+import ZRC20 from './artifacts/ZRC20';
(async function () {
const web3 = new Web3('https://goerli.infura.io/v3/fd1f29ab70844ef48e644489a411d4b3');
const contract = new Contract(
- ERC20.abi as ContractAbi,
+ ZRC20.abi as ContractAbi,
'Z7af963cF6D228E564e2A0aA0DdBF06210B38615D',
web3,
);
diff --git a/docs/docs/guides/web3_plugin_guide/plugin_authors.md b/docs/docs/guides/web3_plugin_guide/plugin_authors.md
index 794effc9..7da80bbb 100644
--- a/docs/docs/guides/web3_plugin_guide/plugin_authors.md
+++ b/docs/docs/guides/web3_plugin_guide/plugin_authors.md
@@ -89,7 +89,7 @@ await web3Context.customRpcMethods.someMethod();
### Using the Inherited `Web3Context`
-Below is an example of `CustomRpcMethodsPlugin` making use of `this.requestManager` which will have access to an Zond provider if one was configured by the user. In the event that no `provider` was set by the user, the below code will throw a [ProviderError](/api/web3-errors/class/ProviderError) if `customRpcMethod` was to be called:
+Below is an example of `CustomRpcMethodsPlugin` making use of `this.requestManager` which will have access to a Zond provider if one was configured by the user. In the event that no `provider` was set by the user, the below code will throw a [ProviderError](/api/web3-errors/class/ProviderError) if `customRpcMethod` was to be called:
```typescript
import { Web3PluginBase } from 'web3';
@@ -106,7 +106,7 @@ export class CustomRpcMethodsPlugin extends Web3PluginBase {
}
```
-Below depicts a plugin user's code that does not configure an Zond provider, resulting in a thrown [ProviderError](/api/web3-errors/class/ProviderError) when calling `customRpcMethod`:
+Below depicts a plugin user's code that does not configure a Zond provider, resulting in a thrown [ProviderError](/api/web3-errors/class/ProviderError) when calling `customRpcMethod`:
```typescript
// registering_a_plugin.ts
@@ -162,12 +162,12 @@ A workaround for this issue is available, below is an example of it:
```typescript
import { Contract, ContractAbi, Web3Context, Web3PluginBase, types, utils } from 'web3';
-import { ERC20TokenAbi } from './ERC20Token';
+import { ZRC20TokenAbi } from './ZRC20Token';
export class ContractMethodWrappersPlugin extends Web3PluginBase {
public pluginNamespace = 'contractMethodWrappersPlugin';
- private readonly _contract: Contract;
+ private readonly _contract: Contract;
public constructor(abi: ContractAbi, address: types.Address) {
super();
@@ -193,7 +193,7 @@ export class ContractMethodWrappersPlugin extends Web3PluginBase {
returnFormat?: ReturnFormat,
) {
return utils.format(
- { eth: 'unit' },
+ { format: 'unit' },
await this._contract.methods.balanceOf(address).call(),
returnFormat ?? types.DEFAULT_RETURN_FORMAT,
);
diff --git a/docs/docs/guides/web3_providers_guide/examples.md b/docs/docs/guides/web3_providers_guide/examples.md
index 6c054b8c..ab71c561 100644
--- a/docs/docs/guides/web3_providers_guide/examples.md
+++ b/docs/docs/guides/web3_providers_guide/examples.md
@@ -81,7 +81,7 @@ To connect to the Zond network using the HTTP provider, follow these steps:
const transactionReceipt = await web3.zond.sendTransaction({
from: accounts[0],
to: accounts[1],
- value: web3.utils.toWei('0.001', 'ether'),
+ value: web3.utils.toPlanck('0.001', 'zond'),
});
console.log('Transaction Receipt:', transactionReceipt);
@@ -185,7 +185,7 @@ async function main() {
const transactionReceipt = await web3.zond.sendTransaction({
from: accounts[0],
to: accounts[1],
- value: web3.utils.toWei('0.001', 'ether'),
+ value: web3.utils.toPlanck('0.001', 'zond'),
});
console.log('Transaction Receipt:', transactionReceipt);
} catch (error) {
@@ -242,7 +242,7 @@ Unsubscribed from new block headers.
### IPC Provider (for Node.js)
-The IPC Provider allows you to connect to an Zond node using Inter-Process Communication (IPC) in a Node.js environment. This provider is useful when you have a local Zond node running on your machine and want to interact with it using Node.js.
+The IPC Provider allows you to connect to a Zond node using Inter-Process Communication (IPC) in a Node.js environment. This provider is useful when you have a local Zond node running on your machine and want to interact with it using Node.js.
In the following steps you will run `gzond` in development mode and you will run a piece of code that reads the Zond accounts and sends a transaction:
@@ -312,7 +312,7 @@ INFO [12-10|15:10:37.127] Mapped network port proto=udp extport=0 intport=30
const transactionReceipt = await web3.zond.sendTransaction({
from: accounts[0],
to: accounts[0], // sending a self-transaction
- value: web3.utils.toWei('0.001', 'ether'),
+ value: web3.utils.toPlanck('0.001', 'zond'),
});
console.log('Transaction Receipt:', transactionReceipt);
} catch (error) {
@@ -384,7 +384,7 @@ Here is a step-by-step example and a code snippet to connect your web applicatio
const web3 = new Web3(provider);
// Get the current block number from the network
- web3.eth
+ web3.zond
.getBlockNumber()
.then(function (blockNumber) {
console.log('Current block number:', blockNumber);
@@ -418,7 +418,7 @@ The sample above connected you to the Zond network using truffle HD Wallet-enabl
### Browser Injected Zond Provider
-It is easy to connect to the Zond network using an Zond browser extension such as MetaMask, or an Zond-enabled browser like the browser inside TrustWallet. Because they inject their provider object into the browser's JavaScript context, enabling direct interaction with the Zond network from your web application. Moreover, the wallet management is conveniently handled by these extensions or browsers, making it the standard approach for DApp developers to facilitate user interactions with the Zond network.
+It is easy to connect to the Zond network using a Zond browser extension such as MetaMask, or a Zond-enabled browser like the browser inside TrustWallet. Because they inject their provider object into the browser's JavaScript context, enabling direct interaction with the Zond network from your web application. Moreover, the wallet management is conveniently handled by these extensions or browsers, making it the standard approach for DApp developers to facilitate user interactions with the Zond network.
Technically, you use `window.zond` when it is injected by the Zond browser extension or the Zond-enabled browser. However, before using this provider, you need to check if it is available and then call `enable()` to request access to the user's MetaMask account.
@@ -491,7 +491,7 @@ Follow these steps to connect to the Zond network with MetaMask and web3.js, inc
const transactionReceipt = await web3.zond.sendTransaction({
from: accounts[0],
to: accounts[0], // sending a self-transaction
- value: web3.utils.toWei('0.001', 'ether'),
+ value: web3.utils.toPlanck('0.001', 'zond'),
});
document.getElementById('log').textContent =
@@ -501,7 +501,7 @@ Follow these steps to connect to the Zond network with MetaMask and web3.js, inc
).textContent += `\n Transaction hash: ${transactionReceipt.transactionHash}`;
document.getElementById(
'log',
- ).textContent += `\n Gas Used: ${transactionReceipt.gasUsed} gwei`;
+ ).textContent += `\n Gas Used: ${transactionReceipt.gasUsed} gplanck`;
} catch (error) {
console.log('error', error);
document.getElementById('log').textContent =
diff --git a/docs/docs/guides/web3_providers_guide/index.md b/docs/docs/guides/web3_providers_guide/index.md
index ef440169..3c119ff5 100644
--- a/docs/docs/guides/web3_providers_guide/index.md
+++ b/docs/docs/guides/web3_providers_guide/index.md
@@ -7,7 +7,7 @@ sidebar_label: 'Providers'
## Introduction
-web3.js providers are objects responsible for enabling connectivity with the Zond network in various ways. Connecting your web application to an Zond node is necessary for sending transactions, querying data, and interacting with smart contracts on the network. In this guide, we will explore the different types of providers available in web3.js, how to set them up, and how to use them in your code.
+web3.js providers are objects responsible for enabling connectivity with the Zond network in various ways. Connecting your web application to a Zond node is necessary for sending transactions, querying data, and interacting with smart contracts on the network. In this guide, we will explore the different types of providers available in web3.js, how to set them up, and how to use them in your code.
Connecting to a chain happens through a provider. You can pass the provider to the constructor as in the following example:
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index 8e6bb7ef..adc31787 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -31,7 +31,7 @@ const packages = [
'@theqrl/web3-net',
'@theqrl/web3-zond-abi',
'@theqrl/web3-zond-accounts',
- '@theqrl/web3-zond-ens',
+ '@theqrl/web3-zond-zns',
'@theqrl/web3-zond-iban',
'@theqrl/web3-providers-http',
'@theqrl/web3-providers-ws',
diff --git a/fixtures/build/Basic.json b/fixtures/build/Basic.json
index d3fbe708..3dc51364 100644
--- a/fixtures/build/Basic.json
+++ b/fixtures/build/Basic.json
@@ -295,7 +295,7 @@
],
"zvm": {
"bytecode": {
- "object": "60806040523480156200001157600080fd5b5060405162001068380380620010688339818101604052810190620000379190620002e7565b816000819055508060019080519060200190620000569291906200005f565b505050620003b1565b8280546200006d906200037c565b90600052602060002090601f016020900481019282620000915760008555620000dd565b82601f10620000ac57805160ff1916838001178555620000dd565b82800160010185558215620000dd579182015b82811115620000dc578251825591602001919060010190620000bf565b5b509050620000ec9190620000f0565b5090565b5b808211156200010b576000816000905550600101620000f1565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620001388162000123565b81146200014457600080fd5b50565b60008151905062000158816200012d565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001b38262000168565b810181811067ffffffffffffffff82111715620001d557620001d462000179565b5b80604052505050565b6000620001ea6200010f565b9050620001f88282620001a8565b919050565b600067ffffffffffffffff8211156200021b576200021a62000179565b5b620002268262000168565b9050602081019050919050565b60005b838110156200025357808201518184015260208101905062000236565b8381111562000263576000848401525b50505050565b6000620002806200027a84620001fd565b620001de565b9050828152602081018484840111156200029f576200029e62000163565b5b620002ac84828562000233565b509392505050565b600082601f830112620002cc57620002cb6200015e565b5b8151620002de84826020860162000269565b91505092915050565b6000806040838503121562000301576200030062000119565b5b6000620003118582860162000147565b925050602083015167ffffffffffffffff8111156200033557620003346200011e565b5b6200034385828601620002b4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200039557607f821691505b602082108103620003ab57620003aa6200034d565b5b50919050565b610ca780620003c16000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063844d6a3211610071578063844d6a3214610157578063939d7c4e14610161578063ae012ede1461017d578063b7a8238a14610187578063d7af8ac1146101a3578063e8256ea0146101bf576100b4565b806319eb4a90146100b95780632bfc4c69146100d95780633bccbbc9146100f75780635a018657146101015780637cfbdcf01461011d578063828909bd14610139575b600080fd5b6100c16101dd565b6040516100d093929190610680565b60405180910390f35b6100e161028e565b6040516100ee91906106be565b60405180910390f35b6100ff610320565b005b61011b60048036038101906101169190610881565b61035b565b005b61013760048036038101906101329190610950565b61039b565b005b6101416103e9565b60405161014e91906109c4565b60405180910390f35b61015f6103f2565b005b61017b60048036038101906101769190610881565b610435565b005b610185610475565b005b6101a1600480360381019061019c91906109df565b610482565b005b6101bd60048036038101906101b89190610a28565b6104bc565b005b6101c76104f9565b6040516101d49190610a97565b60405180910390f35b60006060600080546001600260009054906101000a900460ff1681805461020390610ae1565b80601f016020809104026020016040519081016040528092919081815260200182805461022f90610ae1565b801561027c5780601f106102515761010080835404028352916020019161027c565b820191906000526020600020905b81548152906001019060200180831161025f57829003601f168201915b50505050509150925092509250909192565b60606001805461029d90610ae1565b80601f01602080910402602001604051908101604052809291908181526020018280546102c990610ae1565b80156103165780601f106102eb57610100808354040283529160200191610316565b820191906000526020600020905b8154815290600101906020018083116102f957829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610b5e565b60405180910390fd5b7fa8297798732ff8a80a23cf22707934835a9d5b03536598708f7414646a1b95b383838360405161038e93929190610b7e565b60405180910390a1505050565b8015158285856040516103af929190610bec565b60405180910390207f5b5730af07e266d8b4845f404beb3b193085c686b0edd8e8e20cd4b3fc2b6cd560405160405180910390a450505050565b60008054905090565b6000610433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042a90610c51565b60405180910390fd5b565b801515827f553c4a49a36d26504ba0880f2f9bfe9ac7db4b81a893bde296546cd96ae0b33c8560405161046891906106be565b60405180910390a3505050565b600061048057600080fd5b565b7f617cf8a4400dd7963ed519ebe655a16e8da1282bb8fea36a21f634af912f54ab816040516104b191906106be565b60405180910390a150565b8260008190555081600190805190602001906104d9929190610510565b5080600260006101000a81548160ff021916908315150217905550505050565b6000600260009054906101000a900460ff16905090565b82805461051c90610ae1565b90600052602060002090601f01602090048101928261053e5760008555610585565b82601f1061055757805160ff1916838001178555610585565b82800160010185558215610585579182015b82811115610584578251825591602001919060010190610569565b5b5090506105929190610596565b5090565b5b808211156105af576000816000905550600101610597565b5090565b6000819050919050565b6105c6816105b3565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106065780820151818401526020810190506105eb565b83811115610615576000848401525b50505050565b6000601f19601f8301169050919050565b6000610637826105cc565b61064181856105d7565b93506106518185602086016105e8565b61065a8161061b565b840191505092915050565b60008115159050919050565b61067a81610665565b82525050565b600060608201905061069560008301866105bd565b81810360208301526106a7818561062c565b90506106b66040830184610671565b949350505050565b600060208201905081810360008301526106d8818461062c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6107368261061b565b810181811067ffffffffffffffff82111715610755576107546106fe565b5b80604052505050565b60006107686106e0565b9050610774828261072d565b919050565b600067ffffffffffffffff821115610794576107936106fe565b5b61079d8261061b565b9050602081019050919050565b82818337600083830152505050565b60006107cc6107c784610779565b61075e565b9050828152602081018484840111156107e8576107e76106f9565b5b6107f38482856107aa565b509392505050565b600082601f8301126108105761080f6106f4565b5b81356108208482602086016107b9565b91505092915050565b610832816105b3565b811461083d57600080fd5b50565b60008135905061084f81610829565b92915050565b61085e81610665565b811461086957600080fd5b50565b60008135905061087b81610855565b92915050565b60008060006060848603121561089a576108996106ea565b5b600084013567ffffffffffffffff8111156108b8576108b76106ef565b5b6108c4868287016107fb565b93505060206108d586828701610840565b92505060406108e68682870161086c565b9150509250925092565b600080fd5b600080fd5b60008083601f8401126109105761090f6106f4565b5b8235905067ffffffffffffffff81111561092d5761092c6108f0565b5b602083019150836001820283011115610949576109486108f5565b5b9250929050565b6000806000806060858703121561096a576109696106ea565b5b600085013567ffffffffffffffff811115610988576109876106ef565b5b610994878288016108fa565b945094505060206109a787828801610840565b92505060406109b88782880161086c565b91505092959194509250565b60006020820190506109d960008301846105bd565b92915050565b6000602082840312156109f5576109f46106ea565b5b600082013567ffffffffffffffff811115610a1357610a126106ef565b5b610a1f848285016107fb565b91505092915050565b600080600060608486031215610a4157610a406106ea565b5b6000610a4f86828701610840565b935050602084013567ffffffffffffffff811115610a7057610a6f6106ef565b5b610a7c868287016107fb565b9250506040610a8d8682870161086c565b9150509250925092565b6000602082019050610aac6000830184610671565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610af957607f821691505b602082108103610b0c57610b0b610ab2565b5b50919050565b7f5245564552544544205749544820524556455254000000000000000000000000600082015250565b6000610b486014836105d7565b9150610b5382610b12565b602082019050919050565b60006020820190508181036000830152610b7781610b3b565b9050919050565b60006060820190508181036000830152610b98818661062c565b9050610ba760208301856105bd565b610bb46040830184610671565b949350505050565b600081905092915050565b6000610bd38385610bbc565b9350610be08385846107aa565b82840190509392505050565b6000610bf9828486610bc7565b91508190509392505050565b7f5245564552544544205749544820524551554952450000000000000000000000600082015250565b6000610c3b6015836105d7565b9150610c4682610c05565b602082019050919050565b60006020820190508181036000830152610c6a81610c2e565b905091905056fea2646970667358221220ca8ff7a2edb3cb30dd9de0ed5a0665fd7ee39e4680760776b264f55d8f5ef51c64736f6c634300080d0033"
+ "object": "608060405234801562000010575f80fd5b50604051620013a7380380620013a7833981810160405281019062000036919062000213565b815f8190555080600190816200004d9190620004a5565b50505062000589565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6200007b8162000067565b811462000086575f80fd5b50565b5f81519050620000998162000070565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000ef82620000a7565b810181811067ffffffffffffffff82111715620001115762000110620000b7565b5b80604052505050565b5f6200012562000056565b9050620001338282620000e4565b919050565b5f67ffffffffffffffff821115620001555762000154620000b7565b5b6200016082620000a7565b9050602081019050919050565b5f5b838110156200018c5780820151818401526020810190506200016f565b5f8484015250505050565b5f620001ad620001a78462000138565b6200011a565b905082815260208101848484011115620001cc57620001cb620000a3565b5b620001d98482856200016d565b509392505050565b5f82601f830112620001f857620001f76200009f565b5b81516200020a84826020860162000197565b91505092915050565b5f80604083850312156200022c576200022b6200005f565b5b5f6200023b8582860162000089565b925050602083015167ffffffffffffffff8111156200025f576200025e62000063565b5b6200026d85828601620001e1565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002c657607f821691505b602082108103620002dc57620002db62000281565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000303565b6200034c868362000303565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200038d62000387620003818462000067565b62000364565b62000067565b9050919050565b5f819050919050565b620003a8836200036d565b620003c0620003b78262000394565b8484546200030f565b825550505050565b5f90565b620003d6620003c8565b620003e38184846200039d565b505050565b5b818110156200040a57620003fe5f82620003cc565b600181019050620003e9565b5050565b601f82111562000459576200042381620002e2565b6200042e84620002f4565b810160208510156200043e578190505b620004566200044d85620002f4565b830182620003e8565b50505b505050565b5f82821c905092915050565b5f6200047b5f19846008026200045e565b1980831691505092915050565b5f6200049583836200046a565b9150826002028217905092915050565b620004b08262000277565b67ffffffffffffffff811115620004cc57620004cb620000b7565b5b620004d88254620002ae565b620004e58282856200040e565b5f60209050601f8311600181146200051b575f841562000506578287015190505b62000512858262000488565b86555062000581565b601f1984166200052b86620002e2565b5f5b8281101562000554578489015182556001820191506020850194506020810190506200052d565b8683101562000574578489015162000570601f8916826200046a565b8355505b6001600288020188555050505b505050505050565b610e1080620005975f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c8063844d6a321161006f578063844d6a3214610154578063939d7c4e1461015e578063ae012ede1461017a578063b7a8238a14610184578063d7af8ac1146101a0578063e8256ea0146101bc576100b2565b806319eb4a90146100b65780632bfc4c69146100d65780633bccbbc9146100f45780635a018657146100fe5780637cfbdcf01461011a578063828909bd14610136575b5f80fd5b6100be6101da565b6040516100cd939291906105b3565b60405180910390f35b6100de610286565b6040516100eb91906105ef565b60405180910390f35b6100fc610316565b005b610118600480360381019061011391906107a0565b610351565b005b610134600480360381019061012f9190610869565b610391565b005b61013e6103df565b60405161014b91906108da565b60405180910390f35b61015c6103e7565b005b610178600480360381019061017391906107a0565b610429565b005b610182610469565b005b61019e600480360381019061019991906108f3565b610474565b005b6101ba60048036038101906101b5919061093a565b6104ae565b005b6101c46104e2565b6040516101d191906109a6565b60405180910390f35b5f60605f8054600160025f9054906101000a900460ff168180546101fd906109ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610229906109ec565b80156102745780601f1061024b57610100808354040283529160200191610274565b820191905f5260205f20905b81548152906001019060200180831161025757829003601f168201915b50505050509150925092509250909192565b606060018054610295906109ec565b80601f01602080910402602001604051908101604052809291908181526020018280546102c1906109ec565b801561030c5780601f106102e35761010080835404028352916020019161030c565b820191905f5260205f20905b8154815290600101906020018083116102ef57829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890610a66565b60405180910390fd5b7fa8297798732ff8a80a23cf22707934835a9d5b03536598708f7414646a1b95b383838360405161038493929190610a84565b60405180910390a1505050565b8015158285856040516103a5929190610aee565b60405180910390207f5b5730af07e266d8b4845f404beb3b193085c686b0edd8e8e20cd4b3fc2b6cd560405160405180910390a450505050565b5f8054905090565b5f610427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041e90610b50565b60405180910390fd5b565b801515827f553c4a49a36d26504ba0880f2f9bfe9ac7db4b81a893bde296546cd96ae0b33c8560405161045c91906105ef565b60405180910390a3505050565b5f610472575f80fd5b565b7f617cf8a4400dd7963ed519ebe655a16e8da1282bb8fea36a21f634af912f54ab816040516104a391906105ef565b60405180910390a150565b825f8190555081600190816104c39190610d0b565b508060025f6101000a81548160ff021916908315150217905550505050565b5f60025f9054906101000a900460ff16905090565b5f819050919050565b610509816104f7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561054657808201518184015260208101905061052b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61056b8261050f565b6105758185610519565b9350610585818560208601610529565b61058e81610551565b840191505092915050565b5f8115159050919050565b6105ad81610599565b82525050565b5f6060820190506105c65f830186610500565b81810360208301526105d88185610561565b90506105e760408301846105a4565b949350505050565b5f6020820190508181035f8301526106078184610561565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61065e82610551565b810181811067ffffffffffffffff8211171561067d5761067c610628565b5b80604052505050565b5f61068f61060f565b905061069b8282610655565b919050565b5f67ffffffffffffffff8211156106ba576106b9610628565b5b6106c382610551565b9050602081019050919050565b828183375f83830152505050565b5f6106f06106eb846106a0565b610686565b90508281526020810184848401111561070c5761070b610624565b5b6107178482856106d0565b509392505050565b5f82601f83011261073357610732610620565b5b81356107438482602086016106de565b91505092915050565b610755816104f7565b811461075f575f80fd5b50565b5f813590506107708161074c565b92915050565b61077f81610599565b8114610789575f80fd5b50565b5f8135905061079a81610776565b92915050565b5f805f606084860312156107b7576107b6610618565b5b5f84013567ffffffffffffffff8111156107d4576107d361061c565b5b6107e08682870161071f565b93505060206107f186828701610762565b92505060406108028682870161078c565b9150509250925092565b5f80fd5b5f80fd5b5f8083601f84011261082957610828610620565b5b8235905067ffffffffffffffff8111156108465761084561080c565b5b60208301915083600182028301111561086257610861610810565b5b9250929050565b5f805f806060858703121561088157610880610618565b5b5f85013567ffffffffffffffff81111561089e5761089d61061c565b5b6108aa87828801610814565b945094505060206108bd87828801610762565b92505060406108ce8782880161078c565b91505092959194509250565b5f6020820190506108ed5f830184610500565b92915050565b5f6020828403121561090857610907610618565b5b5f82013567ffffffffffffffff8111156109255761092461061c565b5b6109318482850161071f565b91505092915050565b5f805f6060848603121561095157610950610618565b5b5f61095e86828701610762565b935050602084013567ffffffffffffffff81111561097f5761097e61061c565b5b61098b8682870161071f565b925050604061099c8682870161078c565b9150509250925092565b5f6020820190506109b95f8301846105a4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a0357607f821691505b602082108103610a1657610a156109bf565b5b50919050565b7f52455645525445442057495448205245564552540000000000000000000000005f82015250565b5f610a50601483610519565b9150610a5b82610a1c565b602082019050919050565b5f6020820190508181035f830152610a7d81610a44565b9050919050565b5f6060820190508181035f830152610a9c8186610561565b9050610aab6020830185610500565b610ab860408301846105a4565b949350505050565b5f81905092915050565b5f610ad58385610ac0565b9350610ae28385846106d0565b82840190509392505050565b5f610afa828486610aca565b91508190509392505050565b7f52455645525445442057495448205245515549524500000000000000000000005f82015250565b5f610b3a601583610519565b9150610b4582610b06565b602082019050919050565b5f6020820190508181035f830152610b6781610b2e565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610bca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b8f565b610bd48683610b8f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610c0f610c0a610c05846104f7565b610bec565b6104f7565b9050919050565b5f819050919050565b610c2883610bf5565b610c3c610c3482610c16565b848454610b9b565b825550505050565b5f90565b610c50610c44565b610c5b818484610c1f565b505050565b5b81811015610c7e57610c735f82610c48565b600181019050610c61565b5050565b601f821115610cc357610c9481610b6e565b610c9d84610b80565b81016020851015610cac578190505b610cc0610cb885610b80565b830182610c60565b50505b505050565b5f82821c905092915050565b5f610ce35f1984600802610cc8565b1980831691505092915050565b5f610cfb8383610cd4565b9150826002028217905092915050565b610d148261050f565b67ffffffffffffffff811115610d2d57610d2c610628565b5b610d3782546109ec565b610d42828285610c82565b5f60209050601f831160018114610d73575f8415610d61578287015190505b610d6b8582610cf0565b865550610dd2565b601f198416610d8186610b6e565b5f5b82811015610da857848901518255600182019150602085019450602081019050610d83565b86831015610dc55784890151610dc1601f891682610cd4565b8355505b6001600288020188555050505b50505050505056fea26469706673582212207da11f3a359a735e703035a15dd6b74e550d7cec3bbd53a756cae01784e630346468797063430000020033"
}
}
}
diff --git a/fixtures/build/Basic.ts b/fixtures/build/Basic.ts
index f0e46a36..96628931 100644
--- a/fixtures/build/Basic.ts
+++ b/fixtures/build/Basic.ts
@@ -17,16 +17,8 @@ along with web3.js. If not, see .
export const BasicAbi = [
{
inputs: [
- {
- internalType: 'uint256',
- name: '_val',
- type: 'uint256',
- },
- {
- internalType: 'string',
- name: '_stringValue',
- type: 'string',
- },
+ { internalType: 'uint256', name: '_val', type: 'uint256' },
+ { internalType: 'string', name: '_stringValue', type: 'string' },
],
stateMutability: 'nonpayable',
type: 'constructor',
@@ -34,24 +26,9 @@ export const BasicAbi = [
{
anonymous: false,
inputs: [
- {
- indexed: false,
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'val',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'bool',
- name: 'flag',
- type: 'bool',
- },
+ { indexed: false, internalType: 'string', name: 'str', type: 'string' },
+ { indexed: false, internalType: 'uint256', name: 'val', type: 'uint256' },
+ { indexed: false, internalType: 'bool', name: 'flag', type: 'bool' },
],
name: 'MultiValueEvent',
type: 'event',
@@ -59,24 +36,9 @@ export const BasicAbi = [
{
anonymous: false,
inputs: [
- {
- indexed: false,
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'val',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'bool',
- name: 'flag',
- type: 'bool',
- },
+ { indexed: false, internalType: 'string', name: 'str', type: 'string' },
+ { indexed: true, internalType: 'uint256', name: 'val', type: 'uint256' },
+ { indexed: true, internalType: 'bool', name: 'flag', type: 'bool' },
],
name: 'MultiValueIndexedEvent',
type: 'event',
@@ -84,58 +46,24 @@ export const BasicAbi = [
{
anonymous: false,
inputs: [
- {
- indexed: true,
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
- {
- indexed: true,
- internalType: 'uint256',
- name: 'val',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'bool',
- name: 'flag',
- type: 'bool',
- },
+ { indexed: true, internalType: 'string', name: 'str', type: 'string' },
+ { indexed: true, internalType: 'uint256', name: 'val', type: 'uint256' },
+ { indexed: true, internalType: 'bool', name: 'flag', type: 'bool' },
],
name: 'MultiValueIndexedEventWithStringIndexed',
type: 'event',
},
{
anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
- ],
+ inputs: [{ indexed: false, internalType: 'string', name: 'str', type: 'string' }],
name: 'StringEvent',
type: 'event',
},
{
inputs: [
- {
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
- {
- internalType: 'uint256',
- name: 'val',
- type: 'uint256',
- },
- {
- internalType: 'bool',
- name: 'flag',
- type: 'bool',
- },
+ { internalType: 'string', name: 'str', type: 'string' },
+ { internalType: 'uint256', name: 'val', type: 'uint256' },
+ { internalType: 'bool', name: 'flag', type: 'bool' },
],
name: 'firesMultiValueEvent',
outputs: [],
@@ -144,21 +72,9 @@ export const BasicAbi = [
},
{
inputs: [
- {
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
- {
- internalType: 'uint256',
- name: 'val',
- type: 'uint256',
- },
- {
- internalType: 'bool',
- name: 'flag',
- type: 'bool',
- },
+ { internalType: 'string', name: 'str', type: 'string' },
+ { internalType: 'uint256', name: 'val', type: 'uint256' },
+ { internalType: 'bool', name: 'flag', type: 'bool' },
],
name: 'firesMultiValueIndexedEvent',
outputs: [],
@@ -167,21 +83,9 @@ export const BasicAbi = [
},
{
inputs: [
- {
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
- {
- internalType: 'uint256',
- name: 'val',
- type: 'uint256',
- },
- {
- internalType: 'bool',
- name: 'flag',
- type: 'bool',
- },
+ { internalType: 'string', name: 'str', type: 'string' },
+ { internalType: 'uint256', name: 'val', type: 'uint256' },
+ { internalType: 'bool', name: 'flag', type: 'bool' },
],
name: 'firesMultiValueIndexedEventWithStringIndexed',
outputs: [],
@@ -189,13 +93,7 @@ export const BasicAbi = [
type: 'function',
},
{
- inputs: [
- {
- internalType: 'string',
- name: '_str',
- type: 'string',
- },
- ],
+ inputs: [{ internalType: 'string', name: '_str', type: 'string' }],
name: 'firesStringEvent',
outputs: [],
stateMutability: 'nonpayable',
@@ -204,39 +102,21 @@ export const BasicAbi = [
{
inputs: [],
name: 'getBoolValue',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'getIntValue',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'getStringValue',
- outputs: [
- {
- internalType: 'string',
- name: '',
- type: 'string',
- },
- ],
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
stateMutability: 'view',
type: 'function',
},
@@ -244,21 +124,9 @@ export const BasicAbi = [
inputs: [],
name: 'getValues',
outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- {
- internalType: 'string',
- name: '',
- type: 'string',
- },
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
+ { internalType: 'uint256', name: '', type: 'uint256' },
+ { internalType: 'string', name: '', type: 'string' },
+ { internalType: 'bool', name: '', type: 'bool' },
],
stateMutability: 'view',
type: 'function',
@@ -277,30 +145,12 @@ export const BasicAbi = [
stateMutability: 'pure',
type: 'function',
},
- {
- inputs: [],
- name: 'reverts',
- outputs: [],
- stateMutability: 'pure',
- type: 'function',
- },
+ { inputs: [], name: 'reverts', outputs: [], stateMutability: 'pure', type: 'function' },
{
inputs: [
- {
- internalType: 'uint256',
- name: '_value',
- type: 'uint256',
- },
- {
- internalType: 'string',
- name: '_stringValue',
- type: 'string',
- },
- {
- internalType: 'bool',
- name: '_boolValue',
- type: 'bool',
- },
+ { internalType: 'uint256', name: '_value', type: 'uint256' },
+ { internalType: 'string', name: '_stringValue', type: 'string' },
+ { internalType: 'bool', name: '_boolValue', type: 'bool' },
],
name: 'setValues',
outputs: [],
@@ -309,4 +159,4 @@ export const BasicAbi = [
},
] as const;
export const BasicBytecode =
- '0x60806040523480156200001157600080fd5b5060405162001068380380620010688339818101604052810190620000379190620002e7565b816000819055508060019080519060200190620000569291906200005f565b505050620003b1565b8280546200006d906200037c565b90600052602060002090601f016020900481019282620000915760008555620000dd565b82601f10620000ac57805160ff1916838001178555620000dd565b82800160010185558215620000dd579182015b82811115620000dc578251825591602001919060010190620000bf565b5b509050620000ec9190620000f0565b5090565b5b808211156200010b576000816000905550600101620000f1565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620001388162000123565b81146200014457600080fd5b50565b60008151905062000158816200012d565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001b38262000168565b810181811067ffffffffffffffff82111715620001d557620001d462000179565b5b80604052505050565b6000620001ea6200010f565b9050620001f88282620001a8565b919050565b600067ffffffffffffffff8211156200021b576200021a62000179565b5b620002268262000168565b9050602081019050919050565b60005b838110156200025357808201518184015260208101905062000236565b8381111562000263576000848401525b50505050565b6000620002806200027a84620001fd565b620001de565b9050828152602081018484840111156200029f576200029e62000163565b5b620002ac84828562000233565b509392505050565b600082601f830112620002cc57620002cb6200015e565b5b8151620002de84826020860162000269565b91505092915050565b6000806040838503121562000301576200030062000119565b5b6000620003118582860162000147565b925050602083015167ffffffffffffffff8111156200033557620003346200011e565b5b6200034385828601620002b4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200039557607f821691505b602082108103620003ab57620003aa6200034d565b5b50919050565b610ca780620003c16000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063844d6a3211610071578063844d6a3214610157578063939d7c4e14610161578063ae012ede1461017d578063b7a8238a14610187578063d7af8ac1146101a3578063e8256ea0146101bf576100b4565b806319eb4a90146100b95780632bfc4c69146100d95780633bccbbc9146100f75780635a018657146101015780637cfbdcf01461011d578063828909bd14610139575b600080fd5b6100c16101dd565b6040516100d093929190610680565b60405180910390f35b6100e161028e565b6040516100ee91906106be565b60405180910390f35b6100ff610320565b005b61011b60048036038101906101169190610881565b61035b565b005b61013760048036038101906101329190610950565b61039b565b005b6101416103e9565b60405161014e91906109c4565b60405180910390f35b61015f6103f2565b005b61017b60048036038101906101769190610881565b610435565b005b610185610475565b005b6101a1600480360381019061019c91906109df565b610482565b005b6101bd60048036038101906101b89190610a28565b6104bc565b005b6101c76104f9565b6040516101d49190610a97565b60405180910390f35b60006060600080546001600260009054906101000a900460ff1681805461020390610ae1565b80601f016020809104026020016040519081016040528092919081815260200182805461022f90610ae1565b801561027c5780601f106102515761010080835404028352916020019161027c565b820191906000526020600020905b81548152906001019060200180831161025f57829003601f168201915b50505050509150925092509250909192565b60606001805461029d90610ae1565b80601f01602080910402602001604051908101604052809291908181526020018280546102c990610ae1565b80156103165780601f106102eb57610100808354040283529160200191610316565b820191906000526020600020905b8154815290600101906020018083116102f957829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610b5e565b60405180910390fd5b7fa8297798732ff8a80a23cf22707934835a9d5b03536598708f7414646a1b95b383838360405161038e93929190610b7e565b60405180910390a1505050565b8015158285856040516103af929190610bec565b60405180910390207f5b5730af07e266d8b4845f404beb3b193085c686b0edd8e8e20cd4b3fc2b6cd560405160405180910390a450505050565b60008054905090565b6000610433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042a90610c51565b60405180910390fd5b565b801515827f553c4a49a36d26504ba0880f2f9bfe9ac7db4b81a893bde296546cd96ae0b33c8560405161046891906106be565b60405180910390a3505050565b600061048057600080fd5b565b7f617cf8a4400dd7963ed519ebe655a16e8da1282bb8fea36a21f634af912f54ab816040516104b191906106be565b60405180910390a150565b8260008190555081600190805190602001906104d9929190610510565b5080600260006101000a81548160ff021916908315150217905550505050565b6000600260009054906101000a900460ff16905090565b82805461051c90610ae1565b90600052602060002090601f01602090048101928261053e5760008555610585565b82601f1061055757805160ff1916838001178555610585565b82800160010185558215610585579182015b82811115610584578251825591602001919060010190610569565b5b5090506105929190610596565b5090565b5b808211156105af576000816000905550600101610597565b5090565b6000819050919050565b6105c6816105b3565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106065780820151818401526020810190506105eb565b83811115610615576000848401525b50505050565b6000601f19601f8301169050919050565b6000610637826105cc565b61064181856105d7565b93506106518185602086016105e8565b61065a8161061b565b840191505092915050565b60008115159050919050565b61067a81610665565b82525050565b600060608201905061069560008301866105bd565b81810360208301526106a7818561062c565b90506106b66040830184610671565b949350505050565b600060208201905081810360008301526106d8818461062c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6107368261061b565b810181811067ffffffffffffffff82111715610755576107546106fe565b5b80604052505050565b60006107686106e0565b9050610774828261072d565b919050565b600067ffffffffffffffff821115610794576107936106fe565b5b61079d8261061b565b9050602081019050919050565b82818337600083830152505050565b60006107cc6107c784610779565b61075e565b9050828152602081018484840111156107e8576107e76106f9565b5b6107f38482856107aa565b509392505050565b600082601f8301126108105761080f6106f4565b5b81356108208482602086016107b9565b91505092915050565b610832816105b3565b811461083d57600080fd5b50565b60008135905061084f81610829565b92915050565b61085e81610665565b811461086957600080fd5b50565b60008135905061087b81610855565b92915050565b60008060006060848603121561089a576108996106ea565b5b600084013567ffffffffffffffff8111156108b8576108b76106ef565b5b6108c4868287016107fb565b93505060206108d586828701610840565b92505060406108e68682870161086c565b9150509250925092565b600080fd5b600080fd5b60008083601f8401126109105761090f6106f4565b5b8235905067ffffffffffffffff81111561092d5761092c6108f0565b5b602083019150836001820283011115610949576109486108f5565b5b9250929050565b6000806000806060858703121561096a576109696106ea565b5b600085013567ffffffffffffffff811115610988576109876106ef565b5b610994878288016108fa565b945094505060206109a787828801610840565b92505060406109b88782880161086c565b91505092959194509250565b60006020820190506109d960008301846105bd565b92915050565b6000602082840312156109f5576109f46106ea565b5b600082013567ffffffffffffffff811115610a1357610a126106ef565b5b610a1f848285016107fb565b91505092915050565b600080600060608486031215610a4157610a406106ea565b5b6000610a4f86828701610840565b935050602084013567ffffffffffffffff811115610a7057610a6f6106ef565b5b610a7c868287016107fb565b9250506040610a8d8682870161086c565b9150509250925092565b6000602082019050610aac6000830184610671565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610af957607f821691505b602082108103610b0c57610b0b610ab2565b5b50919050565b7f5245564552544544205749544820524556455254000000000000000000000000600082015250565b6000610b486014836105d7565b9150610b5382610b12565b602082019050919050565b60006020820190508181036000830152610b7781610b3b565b9050919050565b60006060820190508181036000830152610b98818661062c565b9050610ba760208301856105bd565b610bb46040830184610671565b949350505050565b600081905092915050565b6000610bd38385610bbc565b9350610be08385846107aa565b82840190509392505050565b6000610bf9828486610bc7565b91508190509392505050565b7f5245564552544544205749544820524551554952450000000000000000000000600082015250565b6000610c3b6015836105d7565b9150610c4682610c05565b602082019050919050565b60006020820190508181036000830152610c6a81610c2e565b905091905056fea2646970667358221220ca8ff7a2edb3cb30dd9de0ed5a0665fd7ee39e4680760776b264f55d8f5ef51c64736f6c634300080d0033';
+ '0x608060405234801562000010575f80fd5b50604051620013a7380380620013a7833981810160405281019062000036919062000213565b815f8190555080600190816200004d9190620004a5565b50505062000589565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6200007b8162000067565b811462000086575f80fd5b50565b5f81519050620000998162000070565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000ef82620000a7565b810181811067ffffffffffffffff82111715620001115762000110620000b7565b5b80604052505050565b5f6200012562000056565b9050620001338282620000e4565b919050565b5f67ffffffffffffffff821115620001555762000154620000b7565b5b6200016082620000a7565b9050602081019050919050565b5f5b838110156200018c5780820151818401526020810190506200016f565b5f8484015250505050565b5f620001ad620001a78462000138565b6200011a565b905082815260208101848484011115620001cc57620001cb620000a3565b5b620001d98482856200016d565b509392505050565b5f82601f830112620001f857620001f76200009f565b5b81516200020a84826020860162000197565b91505092915050565b5f80604083850312156200022c576200022b6200005f565b5b5f6200023b8582860162000089565b925050602083015167ffffffffffffffff8111156200025f576200025e62000063565b5b6200026d85828601620001e1565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002c657607f821691505b602082108103620002dc57620002db62000281565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000303565b6200034c868362000303565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200038d62000387620003818462000067565b62000364565b62000067565b9050919050565b5f819050919050565b620003a8836200036d565b620003c0620003b78262000394565b8484546200030f565b825550505050565b5f90565b620003d6620003c8565b620003e38184846200039d565b505050565b5b818110156200040a57620003fe5f82620003cc565b600181019050620003e9565b5050565b601f82111562000459576200042381620002e2565b6200042e84620002f4565b810160208510156200043e578190505b620004566200044d85620002f4565b830182620003e8565b50505b505050565b5f82821c905092915050565b5f6200047b5f19846008026200045e565b1980831691505092915050565b5f6200049583836200046a565b9150826002028217905092915050565b620004b08262000277565b67ffffffffffffffff811115620004cc57620004cb620000b7565b5b620004d88254620002ae565b620004e58282856200040e565b5f60209050601f8311600181146200051b575f841562000506578287015190505b62000512858262000488565b86555062000581565b601f1984166200052b86620002e2565b5f5b8281101562000554578489015182556001820191506020850194506020810190506200052d565b8683101562000574578489015162000570601f8916826200046a565b8355505b6001600288020188555050505b505050505050565b610e1080620005975f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c8063844d6a321161006f578063844d6a3214610154578063939d7c4e1461015e578063ae012ede1461017a578063b7a8238a14610184578063d7af8ac1146101a0578063e8256ea0146101bc576100b2565b806319eb4a90146100b65780632bfc4c69146100d65780633bccbbc9146100f45780635a018657146100fe5780637cfbdcf01461011a578063828909bd14610136575b5f80fd5b6100be6101da565b6040516100cd939291906105b3565b60405180910390f35b6100de610286565b6040516100eb91906105ef565b60405180910390f35b6100fc610316565b005b610118600480360381019061011391906107a0565b610351565b005b610134600480360381019061012f9190610869565b610391565b005b61013e6103df565b60405161014b91906108da565b60405180910390f35b61015c6103e7565b005b610178600480360381019061017391906107a0565b610429565b005b610182610469565b005b61019e600480360381019061019991906108f3565b610474565b005b6101ba60048036038101906101b5919061093a565b6104ae565b005b6101c46104e2565b6040516101d191906109a6565b60405180910390f35b5f60605f8054600160025f9054906101000a900460ff168180546101fd906109ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610229906109ec565b80156102745780601f1061024b57610100808354040283529160200191610274565b820191905f5260205f20905b81548152906001019060200180831161025757829003601f168201915b50505050509150925092509250909192565b606060018054610295906109ec565b80601f01602080910402602001604051908101604052809291908181526020018280546102c1906109ec565b801561030c5780601f106102e35761010080835404028352916020019161030c565b820191905f5260205f20905b8154815290600101906020018083116102ef57829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890610a66565b60405180910390fd5b7fa8297798732ff8a80a23cf22707934835a9d5b03536598708f7414646a1b95b383838360405161038493929190610a84565b60405180910390a1505050565b8015158285856040516103a5929190610aee565b60405180910390207f5b5730af07e266d8b4845f404beb3b193085c686b0edd8e8e20cd4b3fc2b6cd560405160405180910390a450505050565b5f8054905090565b5f610427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041e90610b50565b60405180910390fd5b565b801515827f553c4a49a36d26504ba0880f2f9bfe9ac7db4b81a893bde296546cd96ae0b33c8560405161045c91906105ef565b60405180910390a3505050565b5f610472575f80fd5b565b7f617cf8a4400dd7963ed519ebe655a16e8da1282bb8fea36a21f634af912f54ab816040516104a391906105ef565b60405180910390a150565b825f8190555081600190816104c39190610d0b565b508060025f6101000a81548160ff021916908315150217905550505050565b5f60025f9054906101000a900460ff16905090565b5f819050919050565b610509816104f7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561054657808201518184015260208101905061052b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61056b8261050f565b6105758185610519565b9350610585818560208601610529565b61058e81610551565b840191505092915050565b5f8115159050919050565b6105ad81610599565b82525050565b5f6060820190506105c65f830186610500565b81810360208301526105d88185610561565b90506105e760408301846105a4565b949350505050565b5f6020820190508181035f8301526106078184610561565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61065e82610551565b810181811067ffffffffffffffff8211171561067d5761067c610628565b5b80604052505050565b5f61068f61060f565b905061069b8282610655565b919050565b5f67ffffffffffffffff8211156106ba576106b9610628565b5b6106c382610551565b9050602081019050919050565b828183375f83830152505050565b5f6106f06106eb846106a0565b610686565b90508281526020810184848401111561070c5761070b610624565b5b6107178482856106d0565b509392505050565b5f82601f83011261073357610732610620565b5b81356107438482602086016106de565b91505092915050565b610755816104f7565b811461075f575f80fd5b50565b5f813590506107708161074c565b92915050565b61077f81610599565b8114610789575f80fd5b50565b5f8135905061079a81610776565b92915050565b5f805f606084860312156107b7576107b6610618565b5b5f84013567ffffffffffffffff8111156107d4576107d361061c565b5b6107e08682870161071f565b93505060206107f186828701610762565b92505060406108028682870161078c565b9150509250925092565b5f80fd5b5f80fd5b5f8083601f84011261082957610828610620565b5b8235905067ffffffffffffffff8111156108465761084561080c565b5b60208301915083600182028301111561086257610861610810565b5b9250929050565b5f805f806060858703121561088157610880610618565b5b5f85013567ffffffffffffffff81111561089e5761089d61061c565b5b6108aa87828801610814565b945094505060206108bd87828801610762565b92505060406108ce8782880161078c565b91505092959194509250565b5f6020820190506108ed5f830184610500565b92915050565b5f6020828403121561090857610907610618565b5b5f82013567ffffffffffffffff8111156109255761092461061c565b5b6109318482850161071f565b91505092915050565b5f805f6060848603121561095157610950610618565b5b5f61095e86828701610762565b935050602084013567ffffffffffffffff81111561097f5761097e61061c565b5b61098b8682870161071f565b925050604061099c8682870161078c565b9150509250925092565b5f6020820190506109b95f8301846105a4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a0357607f821691505b602082108103610a1657610a156109bf565b5b50919050565b7f52455645525445442057495448205245564552540000000000000000000000005f82015250565b5f610a50601483610519565b9150610a5b82610a1c565b602082019050919050565b5f6020820190508181035f830152610a7d81610a44565b9050919050565b5f6060820190508181035f830152610a9c8186610561565b9050610aab6020830185610500565b610ab860408301846105a4565b949350505050565b5f81905092915050565b5f610ad58385610ac0565b9350610ae28385846106d0565b82840190509392505050565b5f610afa828486610aca565b91508190509392505050565b7f52455645525445442057495448205245515549524500000000000000000000005f82015250565b5f610b3a601583610519565b9150610b4582610b06565b602082019050919050565b5f6020820190508181035f830152610b6781610b2e565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610bca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b8f565b610bd48683610b8f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610c0f610c0a610c05846104f7565b610bec565b6104f7565b9050919050565b5f819050919050565b610c2883610bf5565b610c3c610c3482610c16565b848454610b9b565b825550505050565b5f90565b610c50610c44565b610c5b818484610c1f565b505050565b5b81811015610c7e57610c735f82610c48565b600181019050610c61565b5050565b601f821115610cc357610c9481610b6e565b610c9d84610b80565b81016020851015610cac578190505b610cc0610cb885610b80565b830182610c60565b50505b505050565b5f82821c905092915050565b5f610ce35f1984600802610cc8565b1980831691505092915050565b5f610cfb8383610cd4565b9150826002028217905092915050565b610d148261050f565b67ffffffffffffffff811115610d2d57610d2c610628565b5b610d3782546109ec565b610d42828285610c82565b5f60209050601f831160018114610d73575f8415610d61578287015190505b610d6b8582610cf0565b865550610dd2565b601f198416610d8186610b6e565b5f5b82811015610da857848901518255600182019150602085019450602081019050610d83565b86831015610dc55784890151610dc1601f891682610cd4565b8355505b6001600288020188555050505b50505050505056fea26469706673582212207da11f3a359a735e703035a15dd6b74e550d7cec3bbd53a756cae01784e630346468797063430000020033';
diff --git a/fixtures/build/DeployRevert.json b/fixtures/build/DeployRevert.json
index 4a78166d..6dd29633 100644
--- a/fixtures/build/DeployRevert.json
+++ b/fixtures/build/DeployRevert.json
@@ -8,7 +8,7 @@
],
"zvm": {
"bytecode": {
- "object": "6080604052348015600f57600080fd5b506000601a57600080fd5b603f8060276000396000f3fe6080604052600080fdfea264697066735822122097fd7c0cdcb3a8015df4cce061a4d7f8c2919787475e0b07d1b0ec13223097ac64736f6c63430008100033"
+ "object": "6080604052348015600e575f80fd5b505f6017575f80fd5b603e8060225f395ff3fe60806040525f80fdfea2646970667358221220fa38571b8dfcaa315c964f584d24c12693f06ac4f4fba5012d72845a2b29eaa06468797063430000020033"
}
}
}
diff --git a/fixtures/build/DeployRevert.ts b/fixtures/build/DeployRevert.ts
index 9f18d1a3..a4c71bcf 100644
--- a/fixtures/build/DeployRevert.ts
+++ b/fixtures/build/DeployRevert.ts
@@ -18,4 +18,4 @@ export const DeployRevertAbi = [
{ inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
] as const;
export const DeployRevertBytecode =
- '0x6080604052348015600f57600080fd5b506000601a57600080fd5b603f8060276000396000f3fe6080604052600080fdfea264697066735822122097fd7c0cdcb3a8015df4cce061a4d7f8c2919787475e0b07d1b0ec13223097ac64736f6c63430008100033';
+ '0x6080604052348015600e575f80fd5b505f6017575f80fd5b603e8060225f395ff3fe60806040525f80fdfea2646970667358221220fa38571b8dfcaa315c964f584d24c12693f06ac4f4fba5012d72845a2b29eaa06468797063430000020033';
diff --git a/fixtures/build/ERC20Token.json b/fixtures/build/ERC20Token.json
deleted file mode 100644
index 66db45dc..00000000
--- a/fixtures/build/ERC20Token.json
+++ /dev/null
@@ -1,290 +0,0 @@
-{
- "abi": [
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "initialSupply",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "decimals",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "subtractedValue",
- "type": "uint256"
- }
- ],
- "name": "decreaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "addedValue",
- "type": "uint256"
- }
- ],
- "name": "increaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "zvm": {
- "bytecode": {
- "object": "60806040523480156200001157600080fd5b5060405162001990380380620019908339818101604052810190620000379190620002a4565b6040518060400160405280600481526020017f476f6c64000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474c4400000000000000000000000000000000000000000000000000000000008152508160039081620000b4919062000546565b508060049081620000c6919062000546565b505050620000db3382620000e260201b60201c565b5062000748565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014b906200068e565b60405180910390fd5b62000168600083836200025a60201b60201c565b80600260008282546200017c9190620006df565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001d39190620006df565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200023a91906200072b565b60405180910390a362000256600083836200025f60201b60201c565b5050565b505050565b505050565b600080fd5b6000819050919050565b6200027e8162000269565b81146200028a57600080fd5b50565b6000815190506200029e8162000273565b92915050565b600060208284031215620002bd57620002bc62000264565b5b6000620002cd848285016200028d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200035857607f821691505b6020821081036200036e576200036d62000310565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003d87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000399565b620003e4868362000399565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000427620004216200041b8462000269565b620003fc565b62000269565b9050919050565b6000819050919050565b620004438362000406565b6200045b62000452826200042e565b848454620003a6565b825550505050565b600090565b6200047262000463565b6200047f81848462000438565b505050565b5b81811015620004a7576200049b60008262000468565b60018101905062000485565b5050565b601f821115620004f657620004c08162000374565b620004cb8462000389565b81016020851015620004db578190505b620004f3620004ea8562000389565b83018262000484565b50505b505050565b600082821c905092915050565b60006200051b60001984600802620004fb565b1980831691505092915050565b600062000536838362000508565b9150826002028217905092915050565b6200055182620002d6565b67ffffffffffffffff8111156200056d576200056c620002e1565b5b6200057982546200033f565b62000586828285620004ab565b600060209050601f831160018114620005be5760008415620005a9578287015190505b620005b5858262000528565b86555062000625565b601f198416620005ce8662000374565b60005b82811015620005f857848901518255600182019150602085019450602081019050620005d1565b8683101562000618578489015162000614601f89168262000508565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000676601f836200062d565b915062000683826200063e565b602082019050919050565b60006020820190508181036000830152620006a98162000667565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006ec8262000269565b9150620006f98362000269565b9250828201905080821115620007145762000713620006b0565b5b92915050565b620007258162000269565b82525050565b60006020820190506200074260008301846200071a565b92915050565b61123880620007586000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b15565b60405180910390f35b6100e660048036038101906100e19190610bd0565b610308565b6040516100f39190610c2b565b60405180910390f35b61010461032b565b6040516101119190610c55565b60405180910390f35b610134600480360381019061012f9190610c70565b610335565b6040516101419190610c2b565b60405180910390f35b610152610364565b60405161015f9190610cdf565b60405180910390f35b610182600480360381019061017d9190610bd0565b61036d565b60405161018f9190610c2b565b60405180910390f35b6101b260048036038101906101ad9190610cfa565b6103a4565b6040516101bf9190610c55565b60405180910390f35b6101d06103ec565b6040516101dd9190610b15565b60405180910390f35b61020060048036038101906101fb9190610bd0565b61047e565b60405161020d9190610c2b565b60405180910390f35b610230600480360381019061022b9190610bd0565b6104f5565b60405161023d9190610c2b565b60405180910390f35b610260600480360381019061025b9190610d27565b610518565b60405161026d9190610c55565b60405180910390f35b60606003805461028590610d96565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d96565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610df6565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d96565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d96565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e9c565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fc0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c55565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df9061102c565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611150565b60405180910390fd5b6108e5838383610a7b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111e2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109fe9190610df6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a629190610c55565b60405180910390a3610a75848484610a80565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610abf578082015181840152602081019050610aa4565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ae782610a85565b610af18185610a90565b9350610b01818560208601610aa1565b610b0a81610acb565b840191505092915050565b60006020820190508181036000830152610b2f8184610adc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b6782610b3c565b9050919050565b610b7781610b5c565b8114610b8257600080fd5b50565b600081359050610b9481610b6e565b92915050565b6000819050919050565b610bad81610b9a565b8114610bb857600080fd5b50565b600081359050610bca81610ba4565b92915050565b60008060408385031215610be757610be6610b37565b5b6000610bf585828601610b85565b9250506020610c0685828601610bbb565b9150509250929050565b60008115159050919050565b610c2581610c10565b82525050565b6000602082019050610c406000830184610c1c565b92915050565b610c4f81610b9a565b82525050565b6000602082019050610c6a6000830184610c46565b92915050565b600080600060608486031215610c8957610c88610b37565b5b6000610c9786828701610b85565b9350506020610ca886828701610b85565b9250506040610cb986828701610bbb565b9150509250925092565b600060ff82169050919050565b610cd981610cc3565b82525050565b6000602082019050610cf46000830184610cd0565b92915050565b600060208284031215610d1057610d0f610b37565b5b6000610d1e84828501610b85565b91505092915050565b60008060408385031215610d3e57610d3d610b37565b5b6000610d4c85828601610b85565b9250506020610d5d85828601610b85565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610dae57607f821691505b602082108103610dc157610dc0610d67565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e0182610b9a565b9150610e0c83610b9a565b9250828201905080821115610e2457610e23610dc7565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e86602583610a90565b9150610e9182610e2a565b604082019050919050565b60006020820190508181036000830152610eb581610e79565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f18602483610a90565b9150610f2382610ebc565b604082019050919050565b60006020820190508181036000830152610f4781610f0b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610faa602283610a90565b9150610fb582610f4e565b604082019050919050565b60006020820190508181036000830152610fd981610f9d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611016601d83610a90565b915061102182610fe0565b602082019050919050565b6000602082019050818103600083015261104581611009565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006110a8602583610a90565b91506110b38261104c565b604082019050919050565b600060208201905081810360008301526110d78161109b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061113a602383610a90565b9150611145826110de565b604082019050919050565b600060208201905081810360008301526111698161112d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111cc602683610a90565b91506111d782611170565b604082019050919050565b600060208201905081810360008301526111fb816111bf565b905091905056fea26469706673582212200f5d4d388d874300a0683419c878ee355f87f7a6d61c24dc48ad65d7996e729964736f6c63430008100033"
- }
- }
-}
diff --git a/fixtures/build/ERC20Token.ts b/fixtures/build/ERC20Token.ts
deleted file mode 100644
index 4516af45..00000000
--- a/fixtures/build/ERC20Token.ts
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
-This file is part of web3.js.
-
-web3.js is free software: you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-web3.js 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 Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with web3.js. If not, see .
-*/
-export const ERC20TokenAbi = [
- {
- inputs: [{ internalType: 'uint256', name: 'initialSupply', type: 'uint256' }],
- stateMutability: 'nonpayable',
- type: 'constructor',
- },
- {
- anonymous: false,
- inputs: [
- { indexed: true, internalType: 'address', name: 'owner', type: 'address' },
- { indexed: true, internalType: 'address', name: 'spender', type: 'address' },
- { indexed: false, internalType: 'uint256', name: 'value', type: 'uint256' },
- ],
- name: 'Approval',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- { indexed: true, internalType: 'address', name: 'from', type: 'address' },
- { indexed: true, internalType: 'address', name: 'to', type: 'address' },
- { indexed: false, internalType: 'uint256', name: 'value', type: 'uint256' },
- ],
- name: 'Transfer',
- type: 'event',
- },
- {
- inputs: [
- { internalType: 'address', name: 'owner', type: 'address' },
- { internalType: 'address', name: 'spender', type: 'address' },
- ],
- name: 'allowance',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'spender', type: 'address' },
- { internalType: 'uint256', name: 'amount', type: 'uint256' },
- ],
- name: 'approve',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'account', type: 'address' }],
- name: 'balanceOf',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'decimals',
- outputs: [{ internalType: 'uint8', name: '', type: 'uint8' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'spender', type: 'address' },
- { internalType: 'uint256', name: 'subtractedValue', type: 'uint256' },
- ],
- name: 'decreaseAllowance',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'spender', type: 'address' },
- { internalType: 'uint256', name: 'addedValue', type: 'uint256' },
- ],
- name: 'increaseAllowance',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'name',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'symbol',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'totalSupply',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'amount', type: 'uint256' },
- ],
- name: 'transfer',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'from', type: 'address' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'amount', type: 'uint256' },
- ],
- name: 'transferFrom',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
-] as const;
-export const ERC20TokenBytecode =
- '0x60806040523480156200001157600080fd5b5060405162001990380380620019908339818101604052810190620000379190620002a4565b6040518060400160405280600481526020017f476f6c64000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474c4400000000000000000000000000000000000000000000000000000000008152508160039081620000b4919062000546565b508060049081620000c6919062000546565b505050620000db3382620000e260201b60201c565b5062000748565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014b906200068e565b60405180910390fd5b62000168600083836200025a60201b60201c565b80600260008282546200017c9190620006df565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001d39190620006df565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200023a91906200072b565b60405180910390a362000256600083836200025f60201b60201c565b5050565b505050565b505050565b600080fd5b6000819050919050565b6200027e8162000269565b81146200028a57600080fd5b50565b6000815190506200029e8162000273565b92915050565b600060208284031215620002bd57620002bc62000264565b5b6000620002cd848285016200028d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200035857607f821691505b6020821081036200036e576200036d62000310565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003d87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000399565b620003e4868362000399565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000427620004216200041b8462000269565b620003fc565b62000269565b9050919050565b6000819050919050565b620004438362000406565b6200045b62000452826200042e565b848454620003a6565b825550505050565b600090565b6200047262000463565b6200047f81848462000438565b505050565b5b81811015620004a7576200049b60008262000468565b60018101905062000485565b5050565b601f821115620004f657620004c08162000374565b620004cb8462000389565b81016020851015620004db578190505b620004f3620004ea8562000389565b83018262000484565b50505b505050565b600082821c905092915050565b60006200051b60001984600802620004fb565b1980831691505092915050565b600062000536838362000508565b9150826002028217905092915050565b6200055182620002d6565b67ffffffffffffffff8111156200056d576200056c620002e1565b5b6200057982546200033f565b62000586828285620004ab565b600060209050601f831160018114620005be5760008415620005a9578287015190505b620005b5858262000528565b86555062000625565b601f198416620005ce8662000374565b60005b82811015620005f857848901518255600182019150602085019450602081019050620005d1565b8683101562000618578489015162000614601f89168262000508565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000676601f836200062d565b915062000683826200063e565b602082019050919050565b60006020820190508181036000830152620006a98162000667565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006ec8262000269565b9150620006f98362000269565b9250828201905080821115620007145762000713620006b0565b5b92915050565b620007258162000269565b82525050565b60006020820190506200074260008301846200071a565b92915050565b61123880620007586000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b15565b60405180910390f35b6100e660048036038101906100e19190610bd0565b610308565b6040516100f39190610c2b565b60405180910390f35b61010461032b565b6040516101119190610c55565b60405180910390f35b610134600480360381019061012f9190610c70565b610335565b6040516101419190610c2b565b60405180910390f35b610152610364565b60405161015f9190610cdf565b60405180910390f35b610182600480360381019061017d9190610bd0565b61036d565b60405161018f9190610c2b565b60405180910390f35b6101b260048036038101906101ad9190610cfa565b6103a4565b6040516101bf9190610c55565b60405180910390f35b6101d06103ec565b6040516101dd9190610b15565b60405180910390f35b61020060048036038101906101fb9190610bd0565b61047e565b60405161020d9190610c2b565b60405180910390f35b610230600480360381019061022b9190610bd0565b6104f5565b60405161023d9190610c2b565b60405180910390f35b610260600480360381019061025b9190610d27565b610518565b60405161026d9190610c55565b60405180910390f35b60606003805461028590610d96565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d96565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610df6565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d96565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d96565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610e9c565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610fc0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c55565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df9061102c565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110be565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d190611150565b60405180910390fd5b6108e5838383610a7b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906111e2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109fe9190610df6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a629190610c55565b60405180910390a3610a75848484610a80565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610abf578082015181840152602081019050610aa4565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ae782610a85565b610af18185610a90565b9350610b01818560208601610aa1565b610b0a81610acb565b840191505092915050565b60006020820190508181036000830152610b2f8184610adc565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b6782610b3c565b9050919050565b610b7781610b5c565b8114610b8257600080fd5b50565b600081359050610b9481610b6e565b92915050565b6000819050919050565b610bad81610b9a565b8114610bb857600080fd5b50565b600081359050610bca81610ba4565b92915050565b60008060408385031215610be757610be6610b37565b5b6000610bf585828601610b85565b9250506020610c0685828601610bbb565b9150509250929050565b60008115159050919050565b610c2581610c10565b82525050565b6000602082019050610c406000830184610c1c565b92915050565b610c4f81610b9a565b82525050565b6000602082019050610c6a6000830184610c46565b92915050565b600080600060608486031215610c8957610c88610b37565b5b6000610c9786828701610b85565b9350506020610ca886828701610b85565b9250506040610cb986828701610bbb565b9150509250925092565b600060ff82169050919050565b610cd981610cc3565b82525050565b6000602082019050610cf46000830184610cd0565b92915050565b600060208284031215610d1057610d0f610b37565b5b6000610d1e84828501610b85565b91505092915050565b60008060408385031215610d3e57610d3d610b37565b5b6000610d4c85828601610b85565b9250506020610d5d85828601610b85565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610dae57607f821691505b602082108103610dc157610dc0610d67565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e0182610b9a565b9150610e0c83610b9a565b9250828201905080821115610e2457610e23610dc7565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610e86602583610a90565b9150610e9182610e2a565b604082019050919050565b60006020820190508181036000830152610eb581610e79565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f18602483610a90565b9150610f2382610ebc565b604082019050919050565b60006020820190508181036000830152610f4781610f0b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610faa602283610a90565b9150610fb582610f4e565b604082019050919050565b60006020820190508181036000830152610fd981610f9d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611016601d83610a90565b915061102182610fe0565b602082019050919050565b6000602082019050818103600083015261104581611009565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006110a8602583610a90565b91506110b38261104c565b604082019050919050565b600060208201905081810360008301526110d78161109b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061113a602383610a90565b9150611145826110de565b604082019050919050565b600060208201905081810360008301526111698161112d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111cc602683610a90565b91506111d782611170565b604082019050919050565b600060208201905081810360008301526111fb816111bf565b905091905056fea26469706673582212200f5d4d388d874300a0683419c878ee355f87f7a6d61c24dc48ad65d7996e729964736f6c63430008100033';
diff --git a/fixtures/build/ERC721Token.json b/fixtures/build/ERC721Token.json
deleted file mode 100644
index 89d065b5..00000000
--- a/fixtures/build/ERC721Token.json
+++ /dev/null
@@ -1,368 +0,0 @@
-{
- "abi": [
- {
- "inputs": [],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "approved",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "bool",
- "name": "approved",
- "type": "bool"
- }
- ],
- "name": "ApprovalForAll",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "player",
- "type": "address"
- },
- {
- "internalType": "string",
- "name": "tokenURI",
- "type": "string"
- }
- ],
- "name": "awardItem",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "getApproved",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- }
- ],
- "name": "isApprovedForAll",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "ownerOf",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "safeTransferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- },
- {
- "internalType": "bytes",
- "name": "data",
- "type": "bytes"
- }
- ],
- "name": "safeTransferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "operator",
- "type": "address"
- },
- {
- "internalType": "bool",
- "name": "approved",
- "type": "bool"
- }
- ],
- "name": "setApprovalForAll",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes4",
- "name": "interfaceId",
- "type": "bytes4"
- }
- ],
- "name": "supportsInterface",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "tokenURI",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "tokenId",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "zvm": {
- "bytecode": {
- "object": "60806040523480156200001157600080fd5b506040518060400160405280600881526020017f47616d654974656d0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f49544d000000000000000000000000000000000000000000000000000000000081525081600090816200008f919062000324565b508060019081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b612a36806200041b6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063b88d4fde11610066578063b88d4fde1461025b578063c87b56dd14610277578063cf378343146102a7578063e985e9c5146102d7576100ea565b806370a08231146101f157806395d89b4114610221578063a22cb4651461023f576100ea565b8063095ea7b3116100c8578063095ea7b31461016d57806323b872dd1461018957806342842e0e146101a55780636352211e146101c1576100ea565b806301ffc9a7146100ef57806306fdde031461011f578063081812fc1461013d575b600080fd5b610109600480360381019061010491906117b5565b610307565b60405161011691906117fd565b60405180910390f35b6101276103e9565b60405161013491906118a8565b60405180910390f35b61015760048036038101906101529190611900565b61047b565b604051610164919061196e565b60405180910390f35b610187600480360381019061018291906119b5565b6104c1565b005b6101a3600480360381019061019e91906119f5565b6105d8565b005b6101bf60048036038101906101ba91906119f5565b610638565b005b6101db60048036038101906101d69190611900565b610658565b6040516101e8919061196e565b60405180910390f35b61020b60048036038101906102069190611a48565b610709565b6040516102189190611a84565b60405180910390f35b6102296107c0565b60405161023691906118a8565b60405180910390f35b61025960048036038101906102549190611acb565b610852565b005b61027560048036038101906102709190611c40565b610868565b005b610291600480360381019061028c9190611900565b6108ca565b60405161029e91906118a8565b60405180910390f35b6102c160048036038101906102bc9190611d64565b6109dc565b6040516102ce9190611a84565b60405180910390f35b6102f160048036038101906102ec9190611dc0565b610a13565b6040516102fe91906117fd565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103d257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103e257506103e182610aa7565b5b9050919050565b6060600080546103f890611e2f565b80601f016020809104026020016040519081016040528092919081815260200182805461042490611e2f565b80156104715780601f1061044657610100808354040283529160200191610471565b820191906000526020600020905b81548152906001019060200180831161045457829003601f168201915b5050505050905090565b600061048682610b11565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104cc82610658565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053390611ed2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661055b610b5c565b73ffffffffffffffffffffffffffffffffffffffff16148061058a575061058981610584610b5c565b610a13565b5b6105c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c090611f64565b60405180910390fd5b6105d38383610b64565b505050565b6105e96105e3610b5c565b82610c1d565b610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f90611ff6565b60405180910390fd5b610633838383610cb2565b505050565b61065383838360405180602001604052806000815250610868565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f790612062565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610770906120f4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546107cf90611e2f565b80601f01602080910402602001604051908101604052809291908181526020018280546107fb90611e2f565b80156108485780601f1061081d57610100808354040283529160200191610848565b820191906000526020600020905b81548152906001019060200180831161082b57829003601f168201915b5050505050905090565b61086461085d610b5c565b8383610f18565b5050565b610879610873610b5c565b83610c1d565b6108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af90611ff6565b60405180910390fd5b6108c484848484611084565b50505050565b60606108d582610b11565b60006006600084815260200190815260200160002080546108f590611e2f565b80601f016020809104026020016040519081016040528092919081815260200182805461092190611e2f565b801561096e5780601f106109435761010080835404028352916020019161096e565b820191906000526020600020905b81548152906001019060200180831161095157829003601f168201915b50505050509050600061097f6110e0565b905060008151036109945781925050506109d7565b6000825111156109c95780826040516020016109b1929190612150565b604051602081830303815290604052925050506109d7565b6109d2846110f7565b925050505b919050565b6000806109e9600761115f565b90506109f5848261116d565b6109ff8184611346565b610a0960076113b3565b8091505092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610b1a816113c9565b610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090612062565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610bd783610658565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610c2983610658565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610c6b5750610c6a8185610a13565b5b80610ca957508373ffffffffffffffffffffffffffffffffffffffff16610c918461047b565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610cd282610658565b73ffffffffffffffffffffffffffffffffffffffff1614610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f906121e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612278565b60405180910390fd5b610da2838383611435565b610dad600082610b64565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dfd91906122c7565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e5491906122fb565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f1383838361143a565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7d9061237b565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161107791906117fd565b60405180910390a3505050565b61108f848484610cb2565b61109b8484848461143f565b6110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d19061240d565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061110282610b11565b600061110c6110e0565b9050600081511161112c5760405180602001604052806000815250611157565b80611136846115c6565b604051602001611147929190612150565b6040516020818303038152906040525b915050919050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d390612479565b60405180910390fd5b6111e5816113c9565b15611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c906124e5565b60405180910390fd5b61123160008383611435565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461128191906122fb565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46113426000838361143a565b5050565b61134f826113c9565b61138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138590612577565b60405180910390fd5b806006600084815260200190815260200160002090816113ae9190612743565b505050565b6001816000016000828254019250508190555050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b60006114608473ffffffffffffffffffffffffffffffffffffffff16611726565b156115b9578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611489610b5c565b8786866040518563ffffffff1660e01b81526004016114ab949392919061286a565b6020604051808303816000875af19250505080156114e757506040513d601f19601f820116820180604052508101906114e491906128cb565b60015b611569573d8060008114611517576040519150601f19603f3d011682016040523d82523d6000602084013e61151c565b606091505b506000815103611561576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115589061240d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506115be565b600190505b949350505050565b60606000820361160d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611721565b600082905060005b6000821461163f578080611628906128f8565b915050600a82611638919061296f565b9150611615565b60008167ffffffffffffffff81111561165b5761165a611b15565b5b6040519080825280601f01601f19166020018201604052801561168d5781602001600182028036833780820191505090505b5090505b6000851461171a576001826116a691906122c7565b9150600a856116b591906129a0565b60306116c191906122fb565b60f81b8183815181106116d7576116d66129d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611713919061296f565b9450611691565b8093505050505b919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117928161175d565b811461179d57600080fd5b50565b6000813590506117af81611789565b92915050565b6000602082840312156117cb576117ca611753565b5b60006117d9848285016117a0565b91505092915050565b60008115159050919050565b6117f7816117e2565b82525050565b600060208201905061181260008301846117ee565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611852578082015181840152602081019050611837565b60008484015250505050565b6000601f19601f8301169050919050565b600061187a82611818565b6118848185611823565b9350611894818560208601611834565b61189d8161185e565b840191505092915050565b600060208201905081810360008301526118c2818461186f565b905092915050565b6000819050919050565b6118dd816118ca565b81146118e857600080fd5b50565b6000813590506118fa816118d4565b92915050565b60006020828403121561191657611915611753565b5b6000611924848285016118eb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119588261192d565b9050919050565b6119688161194d565b82525050565b6000602082019050611983600083018461195f565b92915050565b6119928161194d565b811461199d57600080fd5b50565b6000813590506119af81611989565b92915050565b600080604083850312156119cc576119cb611753565b5b60006119da858286016119a0565b92505060206119eb858286016118eb565b9150509250929050565b600080600060608486031215611a0e57611a0d611753565b5b6000611a1c868287016119a0565b9350506020611a2d868287016119a0565b9250506040611a3e868287016118eb565b9150509250925092565b600060208284031215611a5e57611a5d611753565b5b6000611a6c848285016119a0565b91505092915050565b611a7e816118ca565b82525050565b6000602082019050611a996000830184611a75565b92915050565b611aa8816117e2565b8114611ab357600080fd5b50565b600081359050611ac581611a9f565b92915050565b60008060408385031215611ae257611ae1611753565b5b6000611af0858286016119a0565b9250506020611b0185828601611ab6565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611b4d8261185e565b810181811067ffffffffffffffff82111715611b6c57611b6b611b15565b5b80604052505050565b6000611b7f611749565b9050611b8b8282611b44565b919050565b600067ffffffffffffffff821115611bab57611baa611b15565b5b611bb48261185e565b9050602081019050919050565b82818337600083830152505050565b6000611be3611bde84611b90565b611b75565b905082815260208101848484011115611bff57611bfe611b10565b5b611c0a848285611bc1565b509392505050565b600082601f830112611c2757611c26611b0b565b5b8135611c37848260208601611bd0565b91505092915050565b60008060008060808587031215611c5a57611c59611753565b5b6000611c68878288016119a0565b9450506020611c79878288016119a0565b9350506040611c8a878288016118eb565b925050606085013567ffffffffffffffff811115611cab57611caa611758565b5b611cb787828801611c12565b91505092959194509250565b600067ffffffffffffffff821115611cde57611cdd611b15565b5b611ce78261185e565b9050602081019050919050565b6000611d07611d0284611cc3565b611b75565b905082815260208101848484011115611d2357611d22611b10565b5b611d2e848285611bc1565b509392505050565b600082601f830112611d4b57611d4a611b0b565b5b8135611d5b848260208601611cf4565b91505092915050565b60008060408385031215611d7b57611d7a611753565b5b6000611d89858286016119a0565b925050602083013567ffffffffffffffff811115611daa57611da9611758565b5b611db685828601611d36565b9150509250929050565b60008060408385031215611dd757611dd6611753565b5b6000611de5858286016119a0565b9250506020611df6858286016119a0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e4757607f821691505b602082108103611e5a57611e59611e00565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ebc602183611823565b9150611ec782611e60565b604082019050919050565b60006020820190508181036000830152611eeb81611eaf565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b6000611f4e603e83611823565b9150611f5982611ef2565b604082019050919050565b60006020820190508181036000830152611f7d81611f41565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b6000611fe0602e83611823565b9150611feb82611f84565b604082019050919050565b6000602082019050818103600083015261200f81611fd3565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061204c601883611823565b915061205782612016565b602082019050919050565b6000602082019050818103600083015261207b8161203f565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006120de602983611823565b91506120e982612082565b604082019050919050565b6000602082019050818103600083015261210d816120d1565b9050919050565b600081905092915050565b600061212a82611818565b6121348185612114565b9350612144818560208601611834565b80840191505092915050565b600061215c828561211f565b9150612168828461211f565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006121d0602583611823565b91506121db82612174565b604082019050919050565b600060208201905081810360008301526121ff816121c3565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612262602483611823565b915061226d82612206565b604082019050919050565b6000602082019050818103600083015261229181612255565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006122d2826118ca565b91506122dd836118ca565b92508282039050818111156122f5576122f4612298565b5b92915050565b6000612306826118ca565b9150612311836118ca565b925082820190508082111561232957612328612298565b5b92915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000612365601983611823565b91506123708261232f565b602082019050919050565b6000602082019050818103600083015261239481612358565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006123f7603283611823565b91506124028261239b565b604082019050919050565b60006020820190508181036000830152612426816123ea565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000612463602083611823565b915061246e8261242d565b602082019050919050565b6000602082019050818103600083015261249281612456565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006124cf601c83611823565b91506124da82612499565b602082019050919050565b600060208201905081810360008301526124fe816124c2565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000612561602e83611823565b915061256c82612505565b604082019050919050565b6000602082019050818103600083015261259081612554565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026125f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826125bc565b61260386836125bc565b95508019841693508086168417925050509392505050565b6000819050919050565b600061264061263b612636846118ca565b61261b565b6118ca565b9050919050565b6000819050919050565b61265a83612625565b61266e61266682612647565b8484546125c9565b825550505050565b600090565b612683612676565b61268e818484612651565b505050565b5b818110156126b2576126a760008261267b565b600181019050612694565b5050565b601f8211156126f7576126c881612597565b6126d1846125ac565b810160208510156126e0578190505b6126f46126ec856125ac565b830182612693565b50505b505050565b600082821c905092915050565b600061271a600019846008026126fc565b1980831691505092915050565b60006127338383612709565b9150826002028217905092915050565b61274c82611818565b67ffffffffffffffff81111561276557612764611b15565b5b61276f8254611e2f565b61277a8282856126b6565b600060209050601f8311600181146127ad576000841561279b578287015190505b6127a58582612727565b86555061280d565b601f1984166127bb86612597565b60005b828110156127e3578489015182556001820191506020850194506020810190506127be565b8683101561280057848901516127fc601f891682612709565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b600082825260208201905092915050565b600061283c82612815565b6128468185612820565b9350612856818560208601611834565b61285f8161185e565b840191505092915050565b600060808201905061287f600083018761195f565b61288c602083018661195f565b6128996040830185611a75565b81810360608301526128ab8184612831565b905095945050505050565b6000815190506128c581611789565b92915050565b6000602082840312156128e1576128e0611753565b5b60006128ef848285016128b6565b91505092915050565b6000612903826118ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361293557612934612298565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061297a826118ca565b9150612985836118ca565b92508261299557612994612940565b5b828204905092915050565b60006129ab826118ca565b91506129b6836118ca565b9250826129c6576129c5612940565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220646cbcc4f2750bbafd66aba1e32cf1d9d60ee7b67010014294621c87b820bc3364736f6c63430008100033"
- }
- }
-}
diff --git a/fixtures/build/ERC721Token.ts b/fixtures/build/ERC721Token.ts
deleted file mode 100644
index b95c73b0..00000000
--- a/fixtures/build/ERC721Token.ts
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-This file is part of web3.js.
-
-web3.js is free software: you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-web3.js 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 Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with web3.js. If not, see .
-*/
-export const ERC721TokenAbi = [
- { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
- {
- anonymous: false,
- inputs: [
- { indexed: true, internalType: 'address', name: 'owner', type: 'address' },
- { indexed: true, internalType: 'address', name: 'approved', type: 'address' },
- { indexed: true, internalType: 'uint256', name: 'tokenId', type: 'uint256' },
- ],
- name: 'Approval',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- { indexed: true, internalType: 'address', name: 'owner', type: 'address' },
- { indexed: true, internalType: 'address', name: 'operator', type: 'address' },
- { indexed: false, internalType: 'bool', name: 'approved', type: 'bool' },
- ],
- name: 'ApprovalForAll',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- { indexed: true, internalType: 'address', name: 'from', type: 'address' },
- { indexed: true, internalType: 'address', name: 'to', type: 'address' },
- { indexed: true, internalType: 'uint256', name: 'tokenId', type: 'uint256' },
- ],
- name: 'Transfer',
- type: 'event',
- },
- {
- inputs: [
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
- ],
- name: 'approve',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'player', type: 'address' },
- { internalType: 'string', name: 'tokenURI', type: 'string' },
- ],
- name: 'awardItem',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'address', name: 'owner', type: 'address' }],
- name: 'balanceOf',
- outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
- name: 'getApproved',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'owner', type: 'address' },
- { internalType: 'address', name: 'operator', type: 'address' },
- ],
- name: 'isApprovedForAll',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'name',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
- name: 'ownerOf',
- outputs: [{ internalType: 'address', name: '', type: 'address' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'from', type: 'address' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
- ],
- name: 'safeTransferFrom',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'from', type: 'address' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
- { internalType: 'bytes', name: 'data', type: 'bytes' },
- ],
- name: 'safeTransferFrom',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'operator', type: 'address' },
- { internalType: 'bool', name: 'approved', type: 'bool' },
- ],
- name: 'setApprovalForAll',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'bytes4', name: 'interfaceId', type: 'bytes4' }],
- name: 'supportsInterface',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'symbol',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
- name: 'tokenURI',
- outputs: [{ internalType: 'string', name: '', type: 'string' }],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'from', type: 'address' },
- { internalType: 'address', name: 'to', type: 'address' },
- { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
- ],
- name: 'transferFrom',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
-] as const;
-export const ERC721TokenBytecode =
- '0x60806040523480156200001157600080fd5b506040518060400160405280600881526020017f47616d654974656d0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f49544d000000000000000000000000000000000000000000000000000000000081525081600090816200008f919062000324565b508060019081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b612a36806200041b6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063b88d4fde11610066578063b88d4fde1461025b578063c87b56dd14610277578063cf378343146102a7578063e985e9c5146102d7576100ea565b806370a08231146101f157806395d89b4114610221578063a22cb4651461023f576100ea565b8063095ea7b3116100c8578063095ea7b31461016d57806323b872dd1461018957806342842e0e146101a55780636352211e146101c1576100ea565b806301ffc9a7146100ef57806306fdde031461011f578063081812fc1461013d575b600080fd5b610109600480360381019061010491906117b5565b610307565b60405161011691906117fd565b60405180910390f35b6101276103e9565b60405161013491906118a8565b60405180910390f35b61015760048036038101906101529190611900565b61047b565b604051610164919061196e565b60405180910390f35b610187600480360381019061018291906119b5565b6104c1565b005b6101a3600480360381019061019e91906119f5565b6105d8565b005b6101bf60048036038101906101ba91906119f5565b610638565b005b6101db60048036038101906101d69190611900565b610658565b6040516101e8919061196e565b60405180910390f35b61020b60048036038101906102069190611a48565b610709565b6040516102189190611a84565b60405180910390f35b6102296107c0565b60405161023691906118a8565b60405180910390f35b61025960048036038101906102549190611acb565b610852565b005b61027560048036038101906102709190611c40565b610868565b005b610291600480360381019061028c9190611900565b6108ca565b60405161029e91906118a8565b60405180910390f35b6102c160048036038101906102bc9190611d64565b6109dc565b6040516102ce9190611a84565b60405180910390f35b6102f160048036038101906102ec9190611dc0565b610a13565b6040516102fe91906117fd565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103d257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103e257506103e182610aa7565b5b9050919050565b6060600080546103f890611e2f565b80601f016020809104026020016040519081016040528092919081815260200182805461042490611e2f565b80156104715780601f1061044657610100808354040283529160200191610471565b820191906000526020600020905b81548152906001019060200180831161045457829003601f168201915b5050505050905090565b600061048682610b11565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104cc82610658565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361053c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053390611ed2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661055b610b5c565b73ffffffffffffffffffffffffffffffffffffffff16148061058a575061058981610584610b5c565b610a13565b5b6105c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c090611f64565b60405180910390fd5b6105d38383610b64565b505050565b6105e96105e3610b5c565b82610c1d565b610628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061f90611ff6565b60405180910390fd5b610633838383610cb2565b505050565b61065383838360405180602001604052806000815250610868565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f790612062565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610770906120f4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600180546107cf90611e2f565b80601f01602080910402602001604051908101604052809291908181526020018280546107fb90611e2f565b80156108485780601f1061081d57610100808354040283529160200191610848565b820191906000526020600020905b81548152906001019060200180831161082b57829003601f168201915b5050505050905090565b61086461085d610b5c565b8383610f18565b5050565b610879610873610b5c565b83610c1d565b6108b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108af90611ff6565b60405180910390fd5b6108c484848484611084565b50505050565b60606108d582610b11565b60006006600084815260200190815260200160002080546108f590611e2f565b80601f016020809104026020016040519081016040528092919081815260200182805461092190611e2f565b801561096e5780601f106109435761010080835404028352916020019161096e565b820191906000526020600020905b81548152906001019060200180831161095157829003601f168201915b50505050509050600061097f6110e0565b905060008151036109945781925050506109d7565b6000825111156109c95780826040516020016109b1929190612150565b604051602081830303815290604052925050506109d7565b6109d2846110f7565b925050505b919050565b6000806109e9600761115f565b90506109f5848261116d565b6109ff8184611346565b610a0960076113b3565b8091505092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610b1a816113c9565b610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090612062565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610bd783610658565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610c2983610658565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610c6b5750610c6a8185610a13565b5b80610ca957508373ffffffffffffffffffffffffffffffffffffffff16610c918461047b565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610cd282610658565b73ffffffffffffffffffffffffffffffffffffffff1614610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f906121e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8e90612278565b60405180910390fd5b610da2838383611435565b610dad600082610b64565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dfd91906122c7565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e5491906122fb565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f1383838361143a565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7d9061237b565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161107791906117fd565b60405180910390a3505050565b61108f848484610cb2565b61109b8484848461143f565b6110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d19061240d565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061110282610b11565b600061110c6110e0565b9050600081511161112c5760405180602001604052806000815250611157565b80611136846115c6565b604051602001611147929190612150565b6040516020818303038152906040525b915050919050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d390612479565b60405180910390fd5b6111e5816113c9565b15611225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121c906124e5565b60405180910390fd5b61123160008383611435565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461128191906122fb565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46113426000838361143a565b5050565b61134f826113c9565b61138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138590612577565b60405180910390fd5b806006600084815260200190815260200160002090816113ae9190612743565b505050565b6001816000016000828254019250508190555050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b60006114608473ffffffffffffffffffffffffffffffffffffffff16611726565b156115b9578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611489610b5c565b8786866040518563ffffffff1660e01b81526004016114ab949392919061286a565b6020604051808303816000875af19250505080156114e757506040513d601f19601f820116820180604052508101906114e491906128cb565b60015b611569573d8060008114611517576040519150601f19603f3d011682016040523d82523d6000602084013e61151c565b606091505b506000815103611561576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115589061240d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506115be565b600190505b949350505050565b60606000820361160d576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611721565b600082905060005b6000821461163f578080611628906128f8565b915050600a82611638919061296f565b9150611615565b60008167ffffffffffffffff81111561165b5761165a611b15565b5b6040519080825280601f01601f19166020018201604052801561168d5781602001600182028036833780820191505090505b5090505b6000851461171a576001826116a691906122c7565b9150600a856116b591906129a0565b60306116c191906122fb565b60f81b8183815181106116d7576116d66129d1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611713919061296f565b9450611691565b8093505050505b919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117928161175d565b811461179d57600080fd5b50565b6000813590506117af81611789565b92915050565b6000602082840312156117cb576117ca611753565b5b60006117d9848285016117a0565b91505092915050565b60008115159050919050565b6117f7816117e2565b82525050565b600060208201905061181260008301846117ee565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611852578082015181840152602081019050611837565b60008484015250505050565b6000601f19601f8301169050919050565b600061187a82611818565b6118848185611823565b9350611894818560208601611834565b61189d8161185e565b840191505092915050565b600060208201905081810360008301526118c2818461186f565b905092915050565b6000819050919050565b6118dd816118ca565b81146118e857600080fd5b50565b6000813590506118fa816118d4565b92915050565b60006020828403121561191657611915611753565b5b6000611924848285016118eb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119588261192d565b9050919050565b6119688161194d565b82525050565b6000602082019050611983600083018461195f565b92915050565b6119928161194d565b811461199d57600080fd5b50565b6000813590506119af81611989565b92915050565b600080604083850312156119cc576119cb611753565b5b60006119da858286016119a0565b92505060206119eb858286016118eb565b9150509250929050565b600080600060608486031215611a0e57611a0d611753565b5b6000611a1c868287016119a0565b9350506020611a2d868287016119a0565b9250506040611a3e868287016118eb565b9150509250925092565b600060208284031215611a5e57611a5d611753565b5b6000611a6c848285016119a0565b91505092915050565b611a7e816118ca565b82525050565b6000602082019050611a996000830184611a75565b92915050565b611aa8816117e2565b8114611ab357600080fd5b50565b600081359050611ac581611a9f565b92915050565b60008060408385031215611ae257611ae1611753565b5b6000611af0858286016119a0565b9250506020611b0185828601611ab6565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611b4d8261185e565b810181811067ffffffffffffffff82111715611b6c57611b6b611b15565b5b80604052505050565b6000611b7f611749565b9050611b8b8282611b44565b919050565b600067ffffffffffffffff821115611bab57611baa611b15565b5b611bb48261185e565b9050602081019050919050565b82818337600083830152505050565b6000611be3611bde84611b90565b611b75565b905082815260208101848484011115611bff57611bfe611b10565b5b611c0a848285611bc1565b509392505050565b600082601f830112611c2757611c26611b0b565b5b8135611c37848260208601611bd0565b91505092915050565b60008060008060808587031215611c5a57611c59611753565b5b6000611c68878288016119a0565b9450506020611c79878288016119a0565b9350506040611c8a878288016118eb565b925050606085013567ffffffffffffffff811115611cab57611caa611758565b5b611cb787828801611c12565b91505092959194509250565b600067ffffffffffffffff821115611cde57611cdd611b15565b5b611ce78261185e565b9050602081019050919050565b6000611d07611d0284611cc3565b611b75565b905082815260208101848484011115611d2357611d22611b10565b5b611d2e848285611bc1565b509392505050565b600082601f830112611d4b57611d4a611b0b565b5b8135611d5b848260208601611cf4565b91505092915050565b60008060408385031215611d7b57611d7a611753565b5b6000611d89858286016119a0565b925050602083013567ffffffffffffffff811115611daa57611da9611758565b5b611db685828601611d36565b9150509250929050565b60008060408385031215611dd757611dd6611753565b5b6000611de5858286016119a0565b9250506020611df6858286016119a0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e4757607f821691505b602082108103611e5a57611e59611e00565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ebc602183611823565b9150611ec782611e60565b604082019050919050565b60006020820190508181036000830152611eeb81611eaf565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b6000611f4e603e83611823565b9150611f5982611ef2565b604082019050919050565b60006020820190508181036000830152611f7d81611f41565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b6000611fe0602e83611823565b9150611feb82611f84565b604082019050919050565b6000602082019050818103600083015261200f81611fd3565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061204c601883611823565b915061205782612016565b602082019050919050565b6000602082019050818103600083015261207b8161203f565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006120de602983611823565b91506120e982612082565b604082019050919050565b6000602082019050818103600083015261210d816120d1565b9050919050565b600081905092915050565b600061212a82611818565b6121348185612114565b9350612144818560208601611834565b80840191505092915050565b600061215c828561211f565b9150612168828461211f565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006121d0602583611823565b91506121db82612174565b604082019050919050565b600060208201905081810360008301526121ff816121c3565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612262602483611823565b915061226d82612206565b604082019050919050565b6000602082019050818103600083015261229181612255565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006122d2826118ca565b91506122dd836118ca565b92508282039050818111156122f5576122f4612298565b5b92915050565b6000612306826118ca565b9150612311836118ca565b925082820190508082111561232957612328612298565b5b92915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000612365601983611823565b91506123708261232f565b602082019050919050565b6000602082019050818103600083015261239481612358565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006123f7603283611823565b91506124028261239b565b604082019050919050565b60006020820190508181036000830152612426816123ea565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000612463602083611823565b915061246e8261242d565b602082019050919050565b6000602082019050818103600083015261249281612456565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006124cf601c83611823565b91506124da82612499565b602082019050919050565b600060208201905081810360008301526124fe816124c2565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000612561602e83611823565b915061256c82612505565b604082019050919050565b6000602082019050818103600083015261259081612554565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026125f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826125bc565b61260386836125bc565b95508019841693508086168417925050509392505050565b6000819050919050565b600061264061263b612636846118ca565b61261b565b6118ca565b9050919050565b6000819050919050565b61265a83612625565b61266e61266682612647565b8484546125c9565b825550505050565b600090565b612683612676565b61268e818484612651565b505050565b5b818110156126b2576126a760008261267b565b600181019050612694565b5050565b601f8211156126f7576126c881612597565b6126d1846125ac565b810160208510156126e0578190505b6126f46126ec856125ac565b830182612693565b50505b505050565b600082821c905092915050565b600061271a600019846008026126fc565b1980831691505092915050565b60006127338383612709565b9150826002028217905092915050565b61274c82611818565b67ffffffffffffffff81111561276557612764611b15565b5b61276f8254611e2f565b61277a8282856126b6565b600060209050601f8311600181146127ad576000841561279b578287015190505b6127a58582612727565b86555061280d565b601f1984166127bb86612597565b60005b828110156127e3578489015182556001820191506020850194506020810190506127be565b8683101561280057848901516127fc601f891682612709565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b600082825260208201905092915050565b600061283c82612815565b6128468185612820565b9350612856818560208601611834565b61285f8161185e565b840191505092915050565b600060808201905061287f600083018761195f565b61288c602083018661195f565b6128996040830185611a75565b81810360608301526128ab8184612831565b905095945050505050565b6000815190506128c581611789565b92915050565b6000602082840312156128e1576128e0611753565b5b60006128ef848285016128b6565b91505092915050565b6000612903826118ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361293557612934612298565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061297a826118ca565b9150612985836118ca565b92508261299557612994612940565b5b828204905092915050565b60006129ab826118ca565b91506129b6836118ca565b9250826129c6576129c5612940565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220646cbcc4f2750bbafd66aba1e32cf1d9d60ee7b67010014294621c87b820bc3364736f6c63430008100033';
diff --git a/fixtures/build/ErrorsContract.json b/fixtures/build/ErrorsContract.json
index d6717711..d8328e33 100644
--- a/fixtures/build/ErrorsContract.json
+++ b/fixtures/build/ErrorsContract.json
@@ -38,7 +38,7 @@
],
"zvm": {
"bytecode": {
- "object": "608060405260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005157600080fd5b5061029e806100616000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063593b0df41461003b5780638ec6371414610045575b600080fd5b61004361004f565b005b61004d6100fd565b005b600260011015610094576040517f8d6ea8be00000000000000000000000000000000000000000000000000000000815260040161008b90610248565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156100fa573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610182576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156101e8573d6000803e3d6000fd5b50565b600082825260208201905092915050565b7f7265766572746564207573696e6720637573746f6d204572726f720000000000600082015250565b6000610232601b836101eb565b915061023d826101fc565b602082019050919050565b6000602082019050818103600083015261026181610225565b905091905056fea264697066735822122044b9ec500058314fc2322d787ecf6c99c1470d0ace05668c811cfe70fdd05c2764736f6c63430008100033"
+ "object": "60806040525f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561004e575f80fd5b5061028d8061005c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063593b0df4146100385780638ec6371414610042575b5f80fd5b61004061004c565b005b61004a6100f6565b005b600260011015610091576040517f8d6ea8be00000000000000000000000000000000000000000000000000000000815260040161008890610239565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156100f3573d5f803e3d5ffd5b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461017a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156101dc573d5f803e3d5ffd5b50565b5f82825260208201905092915050565b7f7265766572746564207573696e6720637573746f6d204572726f7200000000005f82015250565b5f610223601b836101df565b915061022e826101ef565b602082019050919050565b5f6020820190508181035f83015261025081610217565b905091905056fea264697066735822122057a99e26f20ecc70c84ffffdd7cd6e23f0c465dcee92f32c9db27c46ef39b3d96468797063430000020033"
}
}
}
diff --git a/fixtures/build/ErrorsContract.ts b/fixtures/build/ErrorsContract.ts
index 06dfd115..b737c4c4 100644
--- a/fixtures/build/ErrorsContract.ts
+++ b/fixtures/build/ErrorsContract.ts
@@ -38,4 +38,4 @@ export const ErrorsContractAbi = [
},
] as const;
export const ErrorsContractBytecode =
- '0x608060405260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005157600080fd5b5061029e806100616000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063593b0df41461003b5780638ec6371414610045575b600080fd5b61004361004f565b005b61004d6100fd565b005b600260011015610094576040517f8d6ea8be00000000000000000000000000000000000000000000000000000000815260040161008b90610248565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156100fa573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610182576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156101e8573d6000803e3d6000fd5b50565b600082825260208201905092915050565b7f7265766572746564207573696e6720637573746f6d204572726f720000000000600082015250565b6000610232601b836101eb565b915061023d826101fc565b602082019050919050565b6000602082019050818103600083015261026181610225565b905091905056fea264697066735822122044b9ec500058314fc2322d787ecf6c99c1470d0ace05668c811cfe70fdd05c2764736f6c63430008100033';
+ '0x60806040525f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561004e575f80fd5b5061028d8061005c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063593b0df4146100385780638ec6371414610042575b5f80fd5b61004061004c565b005b61004a6100f6565b005b600260011015610091576040517f8d6ea8be00000000000000000000000000000000000000000000000000000000815260040161008890610239565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156100f3573d5f803e3d5ffd5b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461017a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156101dc573d5f803e3d5ffd5b50565b5f82825260208201905092915050565b7f7265766572746564207573696e6720637573746f6d204572726f7200000000005f82015250565b5f610223601b836101df565b915061022e826101ef565b602082019050919050565b5f6020820190508181035f83015261025081610217565b905091905056fea264697066735822122057a99e26f20ecc70c84ffffdd7cd6e23f0c465dcee92f32c9db27c46ef39b3d96468797063430000020033';
diff --git a/fixtures/build/Greeter.json b/fixtures/build/Greeter.json
index 80279e60..c8bd67a7 100644
--- a/fixtures/build/Greeter.json
+++ b/fixtures/build/Greeter.json
@@ -90,7 +90,7 @@
],
"zvm": {
"bytecode": {
- "object": "60806040523480156200001157600080fd5b5060405162000ed038038062000ed08339818101604052810190620000379190620001ea565b806001908162000048919062000486565b5060008081905550506200056d565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000c08262000075565b810181811067ffffffffffffffff82111715620000e257620000e162000086565b5b80604052505050565b6000620000f762000057565b9050620001058282620000b5565b919050565b600067ffffffffffffffff82111562000128576200012762000086565b5b620001338262000075565b9050602081019050919050565b60005b838110156200016057808201518184015260208101905062000143565b60008484015250505050565b6000620001836200017d846200010a565b620000eb565b905082815260208101848484011115620001a257620001a162000070565b5b620001af84828562000140565b509392505050565b600082601f830112620001cf57620001ce6200006b565b5b8151620001e18482602086016200016c565b91505092915050565b60006020828403121562000203576200020262000061565b5b600082015167ffffffffffffffff81111562000224576200022362000066565b5b6200023284828501620001b7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028e57607f821691505b602082108103620002a457620002a362000246565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200030e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002cf565b6200031a8683620002cf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000367620003616200035b8462000332565b6200033c565b62000332565b9050919050565b6000819050919050565b620003838362000346565b6200039b62000392826200036e565b848454620002dc565b825550505050565b600090565b620003b2620003a3565b620003bf81848462000378565b505050565b5b81811015620003e757620003db600082620003a8565b600181019050620003c5565b5050565b601f82111562000436576200040081620002aa565b6200040b84620002bf565b810160208510156200041b578190505b620004336200042a85620002bf565b830182620003c4565b50505b505050565b600082821c905092915050565b60006200045b600019846008026200043b565b1980831691505092915050565b600062000476838362000448565b9150826002028217905092915050565b62000491826200023b565b67ffffffffffffffff811115620004ad57620004ac62000086565b5b620004b9825462000275565b620004c6828285620003eb565b600060209050601f831160018114620004fe5760008415620004e9578287015190505b620004f5858262000468565b86555062000565565b601f1984166200050e86620002aa565b60005b82811015620005385784890151825560018201915060208501945060208101905062000511565b8683101562000558578489015162000554601f89168262000448565b8355505b6001600288020188555050505b505050505050565b610953806200057d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610077578063d09de08a14610095575b600080fd5b610060600480360381019061005b91906103c0565b61009f565b60405161006e9291906104a3565b60405180910390f35b61007f6101bd565b60405161008c91906104d3565b60405180910390f35b61009d61024f565b005b600060607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d59291906105ee565b60405180910390a182600190816100ec91906107c6565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e600160405161011d9190610898565b60405180910390a160018080805461013490610524565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610524565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b5050505050905091509150915091565b6060600180546101cc90610524565b80601f01602080910402602001604051908101604052809291908181526020018280546101f890610524565b80156102455780601f1061021a57610100808354040283529160200191610245565b820191906000526020600020905b81548152906001019060200180831161022857829003601f168201915b5050505050905090565b600160005461025e91906108e9565b600081905550565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102cd82610284565b810181811067ffffffffffffffff821117156102ec576102eb610295565b5b80604052505050565b60006102ff610266565b905061030b82826102c4565b919050565b600067ffffffffffffffff82111561032b5761032a610295565b5b61033482610284565b9050602081019050919050565b82818337600083830152505050565b600061036361035e84610310565b6102f5565b90508281526020810184848401111561037f5761037e61027f565b5b61038a848285610341565b509392505050565b600082601f8301126103a7576103a661027a565b5b81356103b7848260208601610350565b91505092915050565b6000602082840312156103d6576103d5610270565b5b600082013567ffffffffffffffff8111156103f4576103f3610275565b5b61040084828501610392565b91505092915050565b60008115159050919050565b61041e81610409565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561045e578082015181840152602081019050610443565b60008484015250505050565b600061047582610424565b61047f818561042f565b935061048f818560208601610440565b61049881610284565b840191505092915050565b60006040820190506104b86000830185610415565b81810360208301526104ca818461046a565b90509392505050565b600060208201905081810360008301526104ed818461046a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061053c57607f821691505b60208210810361054f5761054e6104f5565b5b50919050565b60008190508160005260206000209050919050565b6000815461057781610524565b610581818661042f565b9450600182166000811461059c57600181146105b2576105e5565b60ff1983168652811515602002860193506105e5565b6105bb85610555565b60005b838110156105dd578154818901526001820191506020810190506105be565b808801955050505b50505092915050565b60006040820190508181036000830152610608818561056a565b9050818103602083015261061c818461046a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026106727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610635565b61067c8683610635565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006106c36106be6106b984610694565b61069e565b610694565b9050919050565b6000819050919050565b6106dd836106a8565b6106f16106e9826106ca565b848454610642565b825550505050565b600090565b6107066106f9565b6107118184846106d4565b505050565b5b818110156107355761072a6000826106fe565b600181019050610717565b5050565b601f82111561077a5761074b81610555565b61075484610625565b81016020851015610763578190505b61077761076f85610625565b830182610716565b50505b505050565b600082821c905092915050565b600061079d6000198460080261077f565b1980831691505092915050565b60006107b6838361078c565b9150826002028217905092915050565b6107cf82610424565b67ffffffffffffffff8111156107e8576107e7610295565b5b6107f28254610524565b6107fd828285610739565b600060209050601f831160018114610830576000841561081e578287015190505b61082885826107aa565b865550610890565b601f19841661083e86610555565b60005b8281101561086657848901518255600182019150602085019450602081019050610841565b86831015610883578489015161087f601f89168261078c565b8355505b6001600288020188555050505b505050505050565b600060208201905081810360008301526108b2818461056a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108f482610694565b91506108ff83610694565b9250828201905080821115610917576109166108ba565b5b9291505056fea26469706673582212207e5ba44159ffb37af8e8a9e7c5b6fb5ce81ea195b62ae3ac36288f2cf72c18a764736f6c63430008100033"
+ "object": "608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da56468797063430000020033"
}
}
}
diff --git a/fixtures/build/Greeter.ts b/fixtures/build/Greeter.ts
index 3ce6ab1b..3a9a9ffa 100644
--- a/fixtures/build/Greeter.ts
+++ b/fixtures/build/Greeter.ts
@@ -55,4 +55,4 @@ export const GreeterAbi = [
},
] as const;
export const GreeterBytecode =
- '0x60806040523480156200001157600080fd5b5060405162000ed038038062000ed08339818101604052810190620000379190620001ea565b806001908162000048919062000486565b5060008081905550506200056d565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000c08262000075565b810181811067ffffffffffffffff82111715620000e257620000e162000086565b5b80604052505050565b6000620000f762000057565b9050620001058282620000b5565b919050565b600067ffffffffffffffff82111562000128576200012762000086565b5b620001338262000075565b9050602081019050919050565b60005b838110156200016057808201518184015260208101905062000143565b60008484015250505050565b6000620001836200017d846200010a565b620000eb565b905082815260208101848484011115620001a257620001a162000070565b5b620001af84828562000140565b509392505050565b600082601f830112620001cf57620001ce6200006b565b5b8151620001e18482602086016200016c565b91505092915050565b60006020828403121562000203576200020262000061565b5b600082015167ffffffffffffffff81111562000224576200022362000066565b5b6200023284828501620001b7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028e57607f821691505b602082108103620002a457620002a362000246565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200030e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002cf565b6200031a8683620002cf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000367620003616200035b8462000332565b6200033c565b62000332565b9050919050565b6000819050919050565b620003838362000346565b6200039b62000392826200036e565b848454620002dc565b825550505050565b600090565b620003b2620003a3565b620003bf81848462000378565b505050565b5b81811015620003e757620003db600082620003a8565b600181019050620003c5565b5050565b601f82111562000436576200040081620002aa565b6200040b84620002bf565b810160208510156200041b578190505b620004336200042a85620002bf565b830182620003c4565b50505b505050565b600082821c905092915050565b60006200045b600019846008026200043b565b1980831691505092915050565b600062000476838362000448565b9150826002028217905092915050565b62000491826200023b565b67ffffffffffffffff811115620004ad57620004ac62000086565b5b620004b9825462000275565b620004c6828285620003eb565b600060209050601f831160018114620004fe5760008415620004e9578287015190505b620004f5858262000468565b86555062000565565b601f1984166200050e86620002aa565b60005b82811015620005385784890151825560018201915060208501945060208101905062000511565b8683101562000558578489015162000554601f89168262000448565b8355505b6001600288020188555050505b505050505050565b610953806200057d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610077578063d09de08a14610095575b600080fd5b610060600480360381019061005b91906103c0565b61009f565b60405161006e9291906104a3565b60405180910390f35b61007f6101bd565b60405161008c91906104d3565b60405180910390f35b61009d61024f565b005b600060607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d59291906105ee565b60405180910390a182600190816100ec91906107c6565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e600160405161011d9190610898565b60405180910390a160018080805461013490610524565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610524565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b5050505050905091509150915091565b6060600180546101cc90610524565b80601f01602080910402602001604051908101604052809291908181526020018280546101f890610524565b80156102455780601f1061021a57610100808354040283529160200191610245565b820191906000526020600020905b81548152906001019060200180831161022857829003601f168201915b5050505050905090565b600160005461025e91906108e9565b600081905550565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102cd82610284565b810181811067ffffffffffffffff821117156102ec576102eb610295565b5b80604052505050565b60006102ff610266565b905061030b82826102c4565b919050565b600067ffffffffffffffff82111561032b5761032a610295565b5b61033482610284565b9050602081019050919050565b82818337600083830152505050565b600061036361035e84610310565b6102f5565b90508281526020810184848401111561037f5761037e61027f565b5b61038a848285610341565b509392505050565b600082601f8301126103a7576103a661027a565b5b81356103b7848260208601610350565b91505092915050565b6000602082840312156103d6576103d5610270565b5b600082013567ffffffffffffffff8111156103f4576103f3610275565b5b61040084828501610392565b91505092915050565b60008115159050919050565b61041e81610409565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561045e578082015181840152602081019050610443565b60008484015250505050565b600061047582610424565b61047f818561042f565b935061048f818560208601610440565b61049881610284565b840191505092915050565b60006040820190506104b86000830185610415565b81810360208301526104ca818461046a565b90509392505050565b600060208201905081810360008301526104ed818461046a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061053c57607f821691505b60208210810361054f5761054e6104f5565b5b50919050565b60008190508160005260206000209050919050565b6000815461057781610524565b610581818661042f565b9450600182166000811461059c57600181146105b2576105e5565b60ff1983168652811515602002860193506105e5565b6105bb85610555565b60005b838110156105dd578154818901526001820191506020810190506105be565b808801955050505b50505092915050565b60006040820190508181036000830152610608818561056a565b9050818103602083015261061c818461046a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026106727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610635565b61067c8683610635565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006106c36106be6106b984610694565b61069e565b610694565b9050919050565b6000819050919050565b6106dd836106a8565b6106f16106e9826106ca565b848454610642565b825550505050565b600090565b6107066106f9565b6107118184846106d4565b505050565b5b818110156107355761072a6000826106fe565b600181019050610717565b5050565b601f82111561077a5761074b81610555565b61075484610625565b81016020851015610763578190505b61077761076f85610625565b830182610716565b50505b505050565b600082821c905092915050565b600061079d6000198460080261077f565b1980831691505092915050565b60006107b6838361078c565b9150826002028217905092915050565b6107cf82610424565b67ffffffffffffffff8111156107e8576107e7610295565b5b6107f28254610524565b6107fd828285610739565b600060209050601f831160018114610830576000841561081e578287015190505b61082885826107aa565b865550610890565b601f19841661083e86610555565b60005b8281101561086657848901518255600182019150602085019450602081019050610841565b86831015610883578489015161087f601f89168261078c565b8355505b6001600288020188555050505b505050505050565b600060208201905081810360008301526108b2818461056a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108f482610694565b91506108ff83610694565b9250828201905080821115610917576109166108ba565b5b9291505056fea26469706673582212207e5ba44159ffb37af8e8a9e7c5b6fb5ce81ea195b62ae3ac36288f2cf72c18a764736f6c63430008100033';
+ '0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da56468797063430000020033';
diff --git a/fixtures/build/MsgSender.json b/fixtures/build/MsgSender.json
index 1bd11b5b..867990f5 100644
--- a/fixtures/build/MsgSender.json
+++ b/fixtures/build/MsgSender.json
@@ -64,7 +64,7 @@
],
"zvm": {
"bytecode": {
- "object": "60806040523480156200001157600080fd5b5060405162000d7538038062000d758339818101604052810190620000379190620001e3565b80600090816200004891906200047f565b505062000566565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000b9826200006e565b810181811067ffffffffffffffff82111715620000db57620000da6200007f565b5b80604052505050565b6000620000f062000050565b9050620000fe8282620000ae565b919050565b600067ffffffffffffffff8211156200012157620001206200007f565b5b6200012c826200006e565b9050602081019050919050565b60005b83811015620001595780820151818401526020810190506200013c565b60008484015250505050565b60006200017c620001768462000103565b620000e4565b9050828152602081018484840111156200019b576200019a62000069565b5b620001a884828562000139565b509392505050565b600082601f830112620001c857620001c762000064565b5b8151620001da84826020860162000165565b91505092915050565b600060208284031215620001fc57620001fb6200005a565b5b600082015167ffffffffffffffff8111156200021d576200021c6200005f565b5b6200022b84828501620001b0565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028757607f821691505b6020821081036200029d576200029c6200023f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002c8565b620003138683620002c8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003606200035a62000354846200032b565b62000335565b6200032b565b9050919050565b6000819050919050565b6200037c836200033f565b620003946200038b8262000367565b848454620002d5565b825550505050565b600090565b620003ab6200039c565b620003b881848462000371565b505050565b5b81811015620003e057620003d4600082620003a1565b600181019050620003be565b5050565b601f8211156200042f57620003f981620002a3565b6200040484620002b8565b8101602085101562000414578190505b6200042c6200042385620002b8565b830182620003bd565b50505b505050565b600082821c905092915050565b6000620004546000198460080262000434565b1980831691505092915050565b60006200046f838362000441565b9150826002028217905092915050565b6200048a8262000234565b67ffffffffffffffff811115620004a657620004a56200007f565b5b620004b282546200026e565b620004bf828285620003e4565b600060209050601f831160018114620004f75760008415620004e2578287015190505b620004ee858262000461565b8655506200055e565b601f1984166200050786620002a3565b60005b8281101562000531578489015182556001820191506020850194506020810190506200050a565b868310156200055157848901516200054d601f89168262000441565b8355505b6001600288020188555050505b505050505050565b6107ff80620005766000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063315e2f1b14610046578063d5ce338914610077578063fb8f0f5914610095575b600080fd5b610060600480360381019061005b9190610350565b6100b3565b60405161006e929190610433565b60405180910390f35b61007f610160565b60405161008c91906104a4565b60405180910390f35b61009d610168565b6040516100aa91906104bf565b60405180910390f35b6000606082600090816100c691906106f7565b50600160008080546100d790610510565b80601f016020809104026020016040519081016040528092919081815260200182805461010390610510565b80156101505780601f1061012557610100808354040283529160200191610150565b820191906000526020600020905b81548152906001019060200180831161013357829003601f168201915b5050505050905091509150915091565b600033905090565b6000805461017590610510565b80601f01602080910402602001604051908101604052809291908181526020018280546101a190610510565b80156101ee5780601f106101c3576101008083540402835291602001916101ee565b820191906000526020600020905b8154815290600101906020018083116101d157829003601f168201915b505050505081565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61025d82610214565b810181811067ffffffffffffffff8211171561027c5761027b610225565b5b80604052505050565b600061028f6101f6565b905061029b8282610254565b919050565b600067ffffffffffffffff8211156102bb576102ba610225565b5b6102c482610214565b9050602081019050919050565b82818337600083830152505050565b60006102f36102ee846102a0565b610285565b90508281526020810184848401111561030f5761030e61020f565b5b61031a8482856102d1565b509392505050565b600082601f8301126103375761033661020a565b5b81356103478482602086016102e0565b91505092915050565b60006020828403121561036657610365610200565b5b600082013567ffffffffffffffff81111561038457610383610205565b5b61039084828501610322565b91505092915050565b60008115159050919050565b6103ae81610399565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103ee5780820151818401526020810190506103d3565b60008484015250505050565b6000610405826103b4565b61040f81856103bf565b935061041f8185602086016103d0565b61042881610214565b840191505092915050565b600060408201905061044860008301856103a5565b818103602083015261045a81846103fa565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061048e82610463565b9050919050565b61049e81610483565b82525050565b60006020820190506104b96000830184610495565b92915050565b600060208201905081810360008301526104d981846103fa565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061052857607f821691505b60208210810361053b5761053a6104e1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026105a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610566565b6105ad8683610566565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006105f46105ef6105ea846105c5565b6105cf565b6105c5565b9050919050565b6000819050919050565b61060e836105d9565b61062261061a826105fb565b848454610573565b825550505050565b600090565b61063761062a565b610642818484610605565b505050565b5b818110156106665761065b60008261062f565b600181019050610648565b5050565b601f8211156106ab5761067c81610541565b61068584610556565b81016020851015610694578190505b6106a86106a085610556565b830182610647565b50505b505050565b600082821c905092915050565b60006106ce600019846008026106b0565b1980831691505092915050565b60006106e783836106bd565b9150826002028217905092915050565b610700826103b4565b67ffffffffffffffff81111561071957610718610225565b5b6107238254610510565b61072e82828561066a565b600060209050601f831160018114610761576000841561074f578287015190505b61075985826106db565b8655506107c1565b601f19841661076f86610541565b60005b8281101561079757848901518255600182019150602085019450602081019050610772565b868310156107b457848901516107b0601f8916826106bd565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220f5b52b9777b17d7a9f963ebe1aebfd28e8dbda53903b34c06791e2ba5acd46d964736f6c63430008100033"
+ "object": "608060405234801562000010575f80fd5b5060405162000d0b38038062000d0b8339818101604052810190620000369190620001d3565b805f908162000046919062000459565b50506200053d565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000af8262000067565b810181811067ffffffffffffffff82111715620000d157620000d062000077565b5b80604052505050565b5f620000e56200004e565b9050620000f38282620000a4565b919050565b5f67ffffffffffffffff82111562000115576200011462000077565b5b620001208262000067565b9050602081019050919050565b5f5b838110156200014c5780820151818401526020810190506200012f565b5f8484015250505050565b5f6200016d6200016784620000f8565b620000da565b9050828152602081018484840111156200018c576200018b62000063565b5b620001998482856200012d565b509392505050565b5f82601f830112620001b857620001b76200005f565b5b8151620001ca84826020860162000157565b91505092915050565b5f60208284031215620001eb57620001ea62000057565b5b5f82015167ffffffffffffffff8111156200020b576200020a6200005b565b5b6200021984828501620001a1565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027157607f821691505b6020821081036200028757620002866200022c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002ae565b620002f78683620002ae565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003416200033b62000335846200030f565b62000318565b6200030f565b9050919050565b5f819050919050565b6200035c8362000321565b620003746200036b8262000348565b848454620002ba565b825550505050565b5f90565b6200038a6200037c565b6200039781848462000351565b505050565b5b81811015620003be57620003b25f8262000380565b6001810190506200039d565b5050565b601f8211156200040d57620003d7816200028d565b620003e2846200029f565b81016020851015620003f2578190505b6200040a62000401856200029f565b8301826200039c565b50505b505050565b5f82821c905092915050565b5f6200042f5f198460080262000412565b1980831691505092915050565b5f6200044983836200041e565b9150826002028217905092915050565b620004648262000222565b67ffffffffffffffff81111562000480576200047f62000077565b5b6200048c825462000259565b62000499828285620003c2565b5f60209050601f831160018114620004cf575f8415620004ba578287015190505b620004c685826200043c565b86555062000535565b601f198416620004df866200028d565b5f5b828110156200050857848901518255600182019150602085019450602081019050620004e1565b8683101562000528578489015162000524601f8916826200041e565b8355505b6001600288020188555050505b505050505050565b6107c0806200054b5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063315e2f1b14610043578063d5ce338914610074578063fb8f0f5914610092575b5f80fd5b61005d60048036038101906100589190610337565b6100b0565b60405161006b929190610412565b60405180910390f35b61007c610158565b604051610089919061047f565b60405180910390f35b61009a61015f565b6040516100a79190610498565b60405180910390f35b5f6060825f90816100c191906106bb565b5060015f8080546100d1906104e5565b80601f01602080910402602001604051908101604052809291908181526020018280546100fd906104e5565b80156101485780601f1061011f57610100808354040283529160200191610148565b820191905f5260205f20905b81548152906001019060200180831161012b57829003601f168201915b5050505050905091509150915091565b5f33905090565b5f805461016b906104e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610197906104e5565b80156101e25780601f106101b9576101008083540402835291602001916101e2565b820191905f5260205f20905b8154815290600101906020018083116101c557829003601f168201915b505050505081565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61024982610203565b810181811067ffffffffffffffff8211171561026857610267610213565b5b80604052505050565b5f61027a6101ea565b90506102868282610240565b919050565b5f67ffffffffffffffff8211156102a5576102a4610213565b5b6102ae82610203565b9050602081019050919050565b828183375f83830152505050565b5f6102db6102d68461028b565b610271565b9050828152602081018484840111156102f7576102f66101ff565b5b6103028482856102bb565b509392505050565b5f82601f83011261031e5761031d6101fb565b5b813561032e8482602086016102c9565b91505092915050565b5f6020828403121561034c5761034b6101f3565b5b5f82013567ffffffffffffffff811115610369576103686101f7565b5b6103758482850161030a565b91505092915050565b5f8115159050919050565b6103928161037e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156103cf5780820151818401526020810190506103b4565b5f8484015250505050565b5f6103e482610398565b6103ee81856103a2565b93506103fe8185602086016103b2565b61040781610203565b840191505092915050565b5f6040820190506104255f830185610389565b818103602083015261043781846103da565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61046982610440565b9050919050565b6104798161045f565b82525050565b5f6020820190506104925f830184610470565b92915050565b5f6020820190508181035f8301526104b081846103da565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104fc57607f821691505b60208210810361050f5761050e6104b8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610536565b61057b8683610536565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105bf6105ba6105b584610593565b61059c565b610593565b9050919050565b5f819050919050565b6105d8836105a5565b6105ec6105e4826105c6565b848454610542565b825550505050565b5f90565b6106006105f4565b61060b8184846105cf565b505050565b5b8181101561062e576106235f826105f8565b600181019050610611565b5050565b601f8211156106735761064481610515565b61064d84610527565b8101602085101561065c578190505b61067061066885610527565b830182610610565b50505b505050565b5f82821c905092915050565b5f6106935f1984600802610678565b1980831691505092915050565b5f6106ab8383610684565b9150826002028217905092915050565b6106c482610398565b67ffffffffffffffff8111156106dd576106dc610213565b5b6106e782546104e5565b6106f2828285610632565b5f60209050601f831160018114610723575f8415610711578287015190505b61071b85826106a0565b865550610782565b601f19841661073186610515565b5f5b8281101561075857848901518255600182019150602085019450602081019050610733565b868310156107755784890151610771601f891682610684565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220f2d700c2e7e9858d966931346c180d7b48be89275c7a16c03a3f05e6337032ea6468797063430000020033"
}
}
}
diff --git a/fixtures/build/MsgSender.ts b/fixtures/build/MsgSender.ts
index a3020cdf..eb686585 100644
--- a/fixtures/build/MsgSender.ts
+++ b/fixtures/build/MsgSender.ts
@@ -46,4 +46,4 @@ export const MsgSenderAbi = [
},
] as const;
export const MsgSenderBytecode =
- '0x60806040523480156200001157600080fd5b5060405162000d7538038062000d758339818101604052810190620000379190620001e3565b80600090816200004891906200047f565b505062000566565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000b9826200006e565b810181811067ffffffffffffffff82111715620000db57620000da6200007f565b5b80604052505050565b6000620000f062000050565b9050620000fe8282620000ae565b919050565b600067ffffffffffffffff8211156200012157620001206200007f565b5b6200012c826200006e565b9050602081019050919050565b60005b83811015620001595780820151818401526020810190506200013c565b60008484015250505050565b60006200017c620001768462000103565b620000e4565b9050828152602081018484840111156200019b576200019a62000069565b5b620001a884828562000139565b509392505050565b600082601f830112620001c857620001c762000064565b5b8151620001da84826020860162000165565b91505092915050565b600060208284031215620001fc57620001fb6200005a565b5b600082015167ffffffffffffffff8111156200021d576200021c6200005f565b5b6200022b84828501620001b0565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028757607f821691505b6020821081036200029d576200029c6200023f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002c8565b620003138683620002c8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003606200035a62000354846200032b565b62000335565b6200032b565b9050919050565b6000819050919050565b6200037c836200033f565b620003946200038b8262000367565b848454620002d5565b825550505050565b600090565b620003ab6200039c565b620003b881848462000371565b505050565b5b81811015620003e057620003d4600082620003a1565b600181019050620003be565b5050565b601f8211156200042f57620003f981620002a3565b6200040484620002b8565b8101602085101562000414578190505b6200042c6200042385620002b8565b830182620003bd565b50505b505050565b600082821c905092915050565b6000620004546000198460080262000434565b1980831691505092915050565b60006200046f838362000441565b9150826002028217905092915050565b6200048a8262000234565b67ffffffffffffffff811115620004a657620004a56200007f565b5b620004b282546200026e565b620004bf828285620003e4565b600060209050601f831160018114620004f75760008415620004e2578287015190505b620004ee858262000461565b8655506200055e565b601f1984166200050786620002a3565b60005b8281101562000531578489015182556001820191506020850194506020810190506200050a565b868310156200055157848901516200054d601f89168262000441565b8355505b6001600288020188555050505b505050505050565b6107ff80620005766000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063315e2f1b14610046578063d5ce338914610077578063fb8f0f5914610095575b600080fd5b610060600480360381019061005b9190610350565b6100b3565b60405161006e929190610433565b60405180910390f35b61007f610160565b60405161008c91906104a4565b60405180910390f35b61009d610168565b6040516100aa91906104bf565b60405180910390f35b6000606082600090816100c691906106f7565b50600160008080546100d790610510565b80601f016020809104026020016040519081016040528092919081815260200182805461010390610510565b80156101505780601f1061012557610100808354040283529160200191610150565b820191906000526020600020905b81548152906001019060200180831161013357829003601f168201915b5050505050905091509150915091565b600033905090565b6000805461017590610510565b80601f01602080910402602001604051908101604052809291908181526020018280546101a190610510565b80156101ee5780601f106101c3576101008083540402835291602001916101ee565b820191906000526020600020905b8154815290600101906020018083116101d157829003601f168201915b505050505081565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61025d82610214565b810181811067ffffffffffffffff8211171561027c5761027b610225565b5b80604052505050565b600061028f6101f6565b905061029b8282610254565b919050565b600067ffffffffffffffff8211156102bb576102ba610225565b5b6102c482610214565b9050602081019050919050565b82818337600083830152505050565b60006102f36102ee846102a0565b610285565b90508281526020810184848401111561030f5761030e61020f565b5b61031a8482856102d1565b509392505050565b600082601f8301126103375761033661020a565b5b81356103478482602086016102e0565b91505092915050565b60006020828403121561036657610365610200565b5b600082013567ffffffffffffffff81111561038457610383610205565b5b61039084828501610322565b91505092915050565b60008115159050919050565b6103ae81610399565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103ee5780820151818401526020810190506103d3565b60008484015250505050565b6000610405826103b4565b61040f81856103bf565b935061041f8185602086016103d0565b61042881610214565b840191505092915050565b600060408201905061044860008301856103a5565b818103602083015261045a81846103fa565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061048e82610463565b9050919050565b61049e81610483565b82525050565b60006020820190506104b96000830184610495565b92915050565b600060208201905081810360008301526104d981846103fa565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061052857607f821691505b60208210810361053b5761053a6104e1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026105a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610566565b6105ad8683610566565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006105f46105ef6105ea846105c5565b6105cf565b6105c5565b9050919050565b6000819050919050565b61060e836105d9565b61062261061a826105fb565b848454610573565b825550505050565b600090565b61063761062a565b610642818484610605565b505050565b5b818110156106665761065b60008261062f565b600181019050610648565b5050565b601f8211156106ab5761067c81610541565b61068584610556565b81016020851015610694578190505b6106a86106a085610556565b830182610647565b50505b505050565b600082821c905092915050565b60006106ce600019846008026106b0565b1980831691505092915050565b60006106e783836106bd565b9150826002028217905092915050565b610700826103b4565b67ffffffffffffffff81111561071957610718610225565b5b6107238254610510565b61072e82828561066a565b600060209050601f831160018114610761576000841561074f578287015190505b61075985826106db565b8655506107c1565b601f19841661076f86610541565b60005b8281101561079757848901518255600182019150602085019450602081019050610772565b868310156107b457848901516107b0601f8916826106bd565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220f5b52b9777b17d7a9f963ebe1aebfd28e8dbda53903b34c06791e2ba5acd46d964736f6c63430008100033';
+ '0x608060405234801562000010575f80fd5b5060405162000d0b38038062000d0b8339818101604052810190620000369190620001d3565b805f908162000046919062000459565b50506200053d565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000af8262000067565b810181811067ffffffffffffffff82111715620000d157620000d062000077565b5b80604052505050565b5f620000e56200004e565b9050620000f38282620000a4565b919050565b5f67ffffffffffffffff82111562000115576200011462000077565b5b620001208262000067565b9050602081019050919050565b5f5b838110156200014c5780820151818401526020810190506200012f565b5f8484015250505050565b5f6200016d6200016784620000f8565b620000da565b9050828152602081018484840111156200018c576200018b62000063565b5b620001998482856200012d565b509392505050565b5f82601f830112620001b857620001b76200005f565b5b8151620001ca84826020860162000157565b91505092915050565b5f60208284031215620001eb57620001ea62000057565b5b5f82015167ffffffffffffffff8111156200020b576200020a6200005b565b5b6200021984828501620001a1565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027157607f821691505b6020821081036200028757620002866200022c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002ae565b620002f78683620002ae565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003416200033b62000335846200030f565b62000318565b6200030f565b9050919050565b5f819050919050565b6200035c8362000321565b620003746200036b8262000348565b848454620002ba565b825550505050565b5f90565b6200038a6200037c565b6200039781848462000351565b505050565b5b81811015620003be57620003b25f8262000380565b6001810190506200039d565b5050565b601f8211156200040d57620003d7816200028d565b620003e2846200029f565b81016020851015620003f2578190505b6200040a62000401856200029f565b8301826200039c565b50505b505050565b5f82821c905092915050565b5f6200042f5f198460080262000412565b1980831691505092915050565b5f6200044983836200041e565b9150826002028217905092915050565b620004648262000222565b67ffffffffffffffff81111562000480576200047f62000077565b5b6200048c825462000259565b62000499828285620003c2565b5f60209050601f831160018114620004cf575f8415620004ba578287015190505b620004c685826200043c565b86555062000535565b601f198416620004df866200028d565b5f5b828110156200050857848901518255600182019150602085019450602081019050620004e1565b8683101562000528578489015162000524601f8916826200041e565b8355505b6001600288020188555050505b505050505050565b6107c0806200054b5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063315e2f1b14610043578063d5ce338914610074578063fb8f0f5914610092575b5f80fd5b61005d60048036038101906100589190610337565b6100b0565b60405161006b929190610412565b60405180910390f35b61007c610158565b604051610089919061047f565b60405180910390f35b61009a61015f565b6040516100a79190610498565b60405180910390f35b5f6060825f90816100c191906106bb565b5060015f8080546100d1906104e5565b80601f01602080910402602001604051908101604052809291908181526020018280546100fd906104e5565b80156101485780601f1061011f57610100808354040283529160200191610148565b820191905f5260205f20905b81548152906001019060200180831161012b57829003601f168201915b5050505050905091509150915091565b5f33905090565b5f805461016b906104e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610197906104e5565b80156101e25780601f106101b9576101008083540402835291602001916101e2565b820191905f5260205f20905b8154815290600101906020018083116101c557829003601f168201915b505050505081565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61024982610203565b810181811067ffffffffffffffff8211171561026857610267610213565b5b80604052505050565b5f61027a6101ea565b90506102868282610240565b919050565b5f67ffffffffffffffff8211156102a5576102a4610213565b5b6102ae82610203565b9050602081019050919050565b828183375f83830152505050565b5f6102db6102d68461028b565b610271565b9050828152602081018484840111156102f7576102f66101ff565b5b6103028482856102bb565b509392505050565b5f82601f83011261031e5761031d6101fb565b5b813561032e8482602086016102c9565b91505092915050565b5f6020828403121561034c5761034b6101f3565b5b5f82013567ffffffffffffffff811115610369576103686101f7565b5b6103758482850161030a565b91505092915050565b5f8115159050919050565b6103928161037e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156103cf5780820151818401526020810190506103b4565b5f8484015250505050565b5f6103e482610398565b6103ee81856103a2565b93506103fe8185602086016103b2565b61040781610203565b840191505092915050565b5f6040820190506104255f830185610389565b818103602083015261043781846103da565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61046982610440565b9050919050565b6104798161045f565b82525050565b5f6020820190506104925f830184610470565b92915050565b5f6020820190508181035f8301526104b081846103da565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104fc57607f821691505b60208210810361050f5761050e6104b8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610536565b61057b8683610536565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105bf6105ba6105b584610593565b61059c565b610593565b9050919050565b5f819050919050565b6105d8836105a5565b6105ec6105e4826105c6565b848454610542565b825550505050565b5f90565b6106006105f4565b61060b8184846105cf565b505050565b5b8181101561062e576106235f826105f8565b600181019050610611565b5050565b601f8211156106735761064481610515565b61064d84610527565b8101602085101561065c578190505b61067061066885610527565b830182610610565b50505b505050565b5f82821c905092915050565b5f6106935f1984600802610678565b1980831691505092915050565b5f6106ab8383610684565b9150826002028217905092915050565b6106c482610398565b67ffffffffffffffff8111156106dd576106dc610213565b5b6106e782546104e5565b6106f2828285610632565b5f60209050601f831160018114610723575f8415610711578287015190505b61071b85826106a0565b865550610782565b601f19841661073186610515565b5f5b8281101561075857848901518255600182019150602085019450602081019050610733565b868310156107755784890151610771601f891682610684565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220f2d700c2e7e9858d966931346c180d7b48be89275c7a16c03a3f05e6337032ea6468797063430000020033';
diff --git a/fixtures/build/MyContract.json b/fixtures/build/MyContract.json
index e0b51010..6c96cbe5 100644
--- a/fixtures/build/MyContract.json
+++ b/fixtures/build/MyContract.json
@@ -16,7 +16,7 @@
],
"zvm": {
"bytecode": {
- "object": "608060405234801561001057600080fd5b50610228806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f540c8ba14610030575b600080fd5b61003861004e565b6040516100459190610170565b60405180910390f35b60606000805461005d906101c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610089906101c1565b80156100d65780601f106100ab576101008083540402835291602001916100d6565b820191906000526020600020905b8154815290600101906020018083116100b957829003601f168201915b5050505050905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561011a5780820151818401526020810190506100ff565b60008484015250505050565b6000601f19601f8301169050919050565b6000610142826100e0565b61014c81856100eb565b935061015c8185602086016100fc565b61016581610126565b840191505092915050565b6000602082019050818103600083015261018a8184610137565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806101d957607f821691505b6020821081036101ec576101eb610192565b5b5091905056fea264697066735822122061f485ab43edfa5bd740bc1f3dd0d643813a4bd2457119e6578414d7389fbd8964736f6c63430008100033"
+ "object": "608060405234801561000f575f80fd5b506102178061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f540c8ba1461002d575b5f80fd5b61003561004b565b6040516100429190610164565b60405180910390f35b60605f8054610059906101b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610085906101b1565b80156100d05780601f106100a7576101008083540402835291602001916100d0565b820191905f5260205f20905b8154815290600101906020018083116100b357829003601f168201915b5050505050905090565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156101115780820151818401526020810190506100f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610136826100da565b61014081856100e4565b93506101508185602086016100f4565b6101598161011c565b840191505092915050565b5f6020820190508181035f83015261017c818461012c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806101c857607f821691505b6020821081036101db576101da610184565b5b5091905056fea26469706673582212201bf34f340672cd895a93afa7de11dbc06050c1f7b3afad8bf202f023397ae5ca6468797063430000020033"
}
}
}
diff --git a/fixtures/build/MyContract.ts b/fixtures/build/MyContract.ts
index 468e35ea..d3e60770 100644
--- a/fixtures/build/MyContract.ts
+++ b/fixtures/build/MyContract.ts
@@ -24,4 +24,4 @@ export const MyContractAbi = [
},
] as const;
export const MyContractBytecode =
- '0x608060405234801561001057600080fd5b50610228806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f540c8ba14610030575b600080fd5b61003861004e565b6040516100459190610170565b60405180910390f35b60606000805461005d906101c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610089906101c1565b80156100d65780601f106100ab576101008083540402835291602001916100d6565b820191906000526020600020905b8154815290600101906020018083116100b957829003601f168201915b5050505050905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561011a5780820151818401526020810190506100ff565b60008484015250505050565b6000601f19601f8301169050919050565b6000610142826100e0565b61014c81856100eb565b935061015c8185602086016100fc565b61016581610126565b840191505092915050565b6000602082019050818103600083015261018a8184610137565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806101d957607f821691505b6020821081036101ec576101eb610192565b5b5091905056fea264697066735822122061f485ab43edfa5bd740bc1f3dd0d643813a4bd2457119e6578414d7389fbd8964736f6c63430008100033';
+ '0x608060405234801561000f575f80fd5b506102178061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f540c8ba1461002d575b5f80fd5b61003561004b565b6040516100429190610164565b60405180910390f35b60605f8054610059906101b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610085906101b1565b80156100d05780601f106100a7576101008083540402835291602001916100d0565b820191905f5260205f20905b8154815290600101906020018083116100b357829003601f168201915b5050505050905090565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156101115780820151818401526020810190506100f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610136826100da565b61014081856100e4565b93506101508185602086016100f4565b6101598161011c565b840191505092915050565b5f6020820190508181035f83015261017c818461012c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806101c857607f821691505b6020821081036101db576101da610184565b5b5091905056fea26469706673582212201bf34f340672cd895a93afa7de11dbc06050c1f7b3afad8bf202f023397ae5ca6468797063430000020033';
diff --git a/fixtures/build/NegativeNumbers.json b/fixtures/build/NegativeNumbers.json
index b6254913..8ea932dd 100644
--- a/fixtures/build/NegativeNumbers.json
+++ b/fixtures/build/NegativeNumbers.json
@@ -195,7 +195,7 @@
],
"zvm": {
"bytecode": {
- "object": "608060405234801561001057600080fd5b506040516105b93803806105b98339818101604052810190610032919061007a565b80600081905550506100a7565b600080fd5b6000819050919050565b61005781610044565b811461006257600080fd5b50565b6000815190506100748161004e565b92915050565b6000602082840312156100905761008f61003f565b5b600061009e84828501610065565b91505092915050565b610503806100b66000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806309872ebc1461005157806310e9b2b41461006f5780634a299b871461008b5780636119780b146100a7575b600080fd5b6100596100c3565b6040516100669190610232565b60405180910390f35b61008960048036038101906100849190610283565b6100c9565b005b6100a560048036038101906100a09190610315565b610130565b005b6100c160048036038101906100bc9190610389565b6101ae565b005b60005481565b7f5b53dc4e9e8fa2416d4e172bdad04be5a6d622643bc9ef45987b2caadd0d0c95816040516100f89190610232565b60405180910390a1807f33e7dccd3899498f4408d6468e5dfad650f32574dba2ec4f13399a82e62166d560405160405180910390a250565b7f2e1fb99ee1b27b6491b2d46a54ac8daca82f2da6810e4b8eed4d634f78fa6948848484846040516101659493929190610440565b60405180910390a182847f0e29b573959c1b6ffd5e16886385ec1732e187cc5ac10e8faceb5e02a1c7b50b84846040516101a0929190610480565b60405180910390a350505050565b7ffaa997e4b16dcde196bbb99868e16fa934a0b4c1f019e494d9fbffb5abc46fc282826040516101df9291906104a4565b60405180910390a180827f0204c97becd72594486cf753e30e8acfc9951ee663e404bc858e3d10b80da99b60405160405180910390a35050565b6000819050919050565b61022c81610219565b82525050565b60006020820190506102476000830184610223565b92915050565b600080fd5b600080fd5b61026081610219565b811461026b57600080fd5b50565b60008135905061027d81610257565b92915050565b6000602082840312156102995761029861024d565b5b60006102a78482850161026e565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126102d5576102d46102b0565b5b8235905067ffffffffffffffff8111156102f2576102f16102b5565b5b60208301915083600182028301111561030e5761030d6102ba565b5b9250929050565b6000806000806060858703121561032f5761032e61024d565b5b600061033d8782880161026e565b945050602061034e8782880161026e565b935050604085013567ffffffffffffffff81111561036f5761036e610252565b5b61037b878288016102bf565b925092505092959194509250565b600080604083850312156103a05761039f61024d565b5b60006103ae8582860161026e565b92505060206103bf8582860161026e565b9150509250929050565b6000819050919050565b6103dc816103c9565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061041f83856103e2565b935061042c8385846103f3565b61043583610402565b840190509392505050565b600060608201905061045560008301876103d3565b6104626020830186610223565b8181036040830152610475818486610413565b905095945050505050565b6000602082019050818103600083015261049b818486610413565b90509392505050565b60006040820190506104b96000830185610223565b6104c66020830184610223565b939250505056fea26469706673582212203eb052901c785465d43fe463b8123363abc0767d1df3b47a9c4cdc319870d8c264736f6c634300080d0033"
+ "object": "608060405234801561000f575f80fd5b5060405161058e38038061058e83398181016040528101906100319190610074565b805f819055505061009f565b5f80fd5b5f819050919050565b61005381610041565b811461005d575f80fd5b50565b5f8151905061006e8161004a565b92915050565b5f602082840312156100895761008861003d565b5b5f61009684828501610060565b91505092915050565b6104e2806100ac5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806309872ebc1461004e57806310e9b2b41461006c5780634a299b87146100885780636119780b146100a4575b5f80fd5b6100566100c0565b604051610063919061022d565b60405180910390f35b61008660048036038101906100819190610278565b6100c5565b005b6100a2600480360381019061009d9190610304565b61012c565b005b6100be60048036038101906100b99190610375565b6101aa565b005b5f5481565b7f5b53dc4e9e8fa2416d4e172bdad04be5a6d622643bc9ef45987b2caadd0d0c95816040516100f4919061022d565b60405180910390a1807f33e7dccd3899498f4408d6468e5dfad650f32574dba2ec4f13399a82e62166d560405160405180910390a250565b7f2e1fb99ee1b27b6491b2d46a54ac8daca82f2da6810e4b8eed4d634f78fa6948848484846040516101619493929190610425565b60405180910390a182847f0e29b573959c1b6ffd5e16886385ec1732e187cc5ac10e8faceb5e02a1c7b50b848460405161019c929190610463565b60405180910390a350505050565b7ffaa997e4b16dcde196bbb99868e16fa934a0b4c1f019e494d9fbffb5abc46fc282826040516101db929190610485565b60405180910390a180827f0204c97becd72594486cf753e30e8acfc9951ee663e404bc858e3d10b80da99b60405160405180910390a35050565b5f819050919050565b61022781610215565b82525050565b5f6020820190506102405f83018461021e565b92915050565b5f80fd5b5f80fd5b61025781610215565b8114610261575f80fd5b50565b5f813590506102728161024e565b92915050565b5f6020828403121561028d5761028c610246565b5b5f61029a84828501610264565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126102c4576102c36102a3565b5b8235905067ffffffffffffffff8111156102e1576102e06102a7565b5b6020830191508360018202830111156102fd576102fc6102ab565b5b9250929050565b5f805f806060858703121561031c5761031b610246565b5b5f61032987828801610264565b945050602061033a87828801610264565b935050604085013567ffffffffffffffff81111561035b5761035a61024a565b5b610367878288016102af565b925092505092959194509250565b5f806040838503121561038b5761038a610246565b5b5f61039885828601610264565b92505060206103a985828601610264565b9150509250929050565b5f819050919050565b6103c5816103b3565b82525050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61040483856103cb565b93506104118385846103db565b61041a836103e9565b840190509392505050565b5f6060820190506104385f8301876103bc565b610445602083018661021e565b81810360408301526104588184866103f9565b905095945050505050565b5f6020820190508181035f83015261047c8184866103f9565b90509392505050565b5f6040820190506104985f83018561021e565b6104a5602083018461021e565b939250505056fea26469706673582212208c35f0412a200d24bee1b19dc4aad276af243631f502b9df1e8f860ceee574536468797063430000020033"
}
}
}
diff --git a/fixtures/build/NegativeNumbers.ts b/fixtures/build/NegativeNumbers.ts
index fd630ed4..c928708c 100644
--- a/fixtures/build/NegativeNumbers.ts
+++ b/fixtures/build/NegativeNumbers.ts
@@ -16,63 +16,28 @@ along with web3.js. If not, see .
*/
export const NegativeNumbersAbi = [
{
- inputs: [
- {
- internalType: 'int256',
- name: 'number',
- type: 'int256',
- },
- ],
+ inputs: [{ internalType: 'int256', name: 'number', type: 'int256' }],
stateMutability: 'nonpayable',
type: 'constructor',
},
{
anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'int256',
- name: 'one',
- type: 'int256',
- },
- ],
+ inputs: [{ indexed: false, internalType: 'int256', name: 'one', type: 'int256' }],
name: 'OneNegativeNumber',
type: 'event',
},
{
anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'int256',
- name: 'one',
- type: 'int256',
- },
- ],
+ inputs: [{ indexed: true, internalType: 'int256', name: 'one', type: 'int256' }],
name: 'OneNegativeNumberIndexed',
type: 'event',
},
{
anonymous: false,
inputs: [
- {
- indexed: false,
- internalType: 'uint256',
- name: 'positive',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'int256',
- name: 'negative',
- type: 'int256',
- },
- {
- indexed: false,
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
+ { indexed: false, internalType: 'uint256', name: 'positive', type: 'uint256' },
+ { indexed: false, internalType: 'int256', name: 'negative', type: 'int256' },
+ { indexed: false, internalType: 'string', name: 'str', type: 'string' },
],
name: 'OtherNegativeNumbers',
type: 'event',
@@ -80,24 +45,9 @@ export const NegativeNumbersAbi = [
{
anonymous: false,
inputs: [
- {
- indexed: true,
- internalType: 'uint256',
- name: 'positive',
- type: 'uint256',
- },
- {
- indexed: true,
- internalType: 'int256',
- name: 'negative',
- type: 'int256',
- },
- {
- indexed: false,
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
+ { indexed: true, internalType: 'uint256', name: 'positive', type: 'uint256' },
+ { indexed: true, internalType: 'int256', name: 'negative', type: 'int256' },
+ { indexed: false, internalType: 'string', name: 'str', type: 'string' },
],
name: 'OtherNegativeNumbersIndexed',
type: 'event',
@@ -105,18 +55,8 @@ export const NegativeNumbersAbi = [
{
anonymous: false,
inputs: [
- {
- indexed: false,
- internalType: 'int256',
- name: 'one',
- type: 'int256',
- },
- {
- indexed: false,
- internalType: 'int256',
- name: 'two',
- type: 'int256',
- },
+ { indexed: false, internalType: 'int256', name: 'one', type: 'int256' },
+ { indexed: false, internalType: 'int256', name: 'two', type: 'int256' },
],
name: 'TwoNegativeNumbers',
type: 'event',
@@ -124,30 +64,14 @@ export const NegativeNumbersAbi = [
{
anonymous: false,
inputs: [
- {
- indexed: true,
- internalType: 'int256',
- name: 'one',
- type: 'int256',
- },
- {
- indexed: true,
- internalType: 'int256',
- name: 'two',
- type: 'int256',
- },
+ { indexed: true, internalType: 'int256', name: 'one', type: 'int256' },
+ { indexed: true, internalType: 'int256', name: 'two', type: 'int256' },
],
name: 'TwoNegativeNumbersIndexed',
type: 'event',
},
{
- inputs: [
- {
- internalType: 'int256',
- name: 'number',
- type: 'int256',
- },
- ],
+ inputs: [{ internalType: 'int256', name: 'number', type: 'int256' }],
name: 'oneNegativeNumber',
outputs: [],
stateMutability: 'nonpayable',
@@ -155,21 +79,9 @@ export const NegativeNumbersAbi = [
},
{
inputs: [
- {
- internalType: 'int256',
- name: 'number',
- type: 'int256',
- },
- {
- internalType: 'int256',
- name: 'number2',
- type: 'int256',
- },
- {
- internalType: 'string',
- name: 'str',
- type: 'string',
- },
+ { internalType: 'int256', name: 'number', type: 'int256' },
+ { internalType: 'int256', name: 'number2', type: 'int256' },
+ { internalType: 'string', name: 'str', type: 'string' },
],
name: 'otherNegativeNumbers',
outputs: [],
@@ -179,28 +91,14 @@ export const NegativeNumbersAbi = [
{
inputs: [],
name: 'storedNegativeNumber',
- outputs: [
- {
- internalType: 'int256',
- name: '',
- type: 'int256',
- },
- ],
+ outputs: [{ internalType: 'int256', name: '', type: 'int256' }],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
- {
- internalType: 'int256',
- name: 'number',
- type: 'int256',
- },
- {
- internalType: 'int256',
- name: 'number2',
- type: 'int256',
- },
+ { internalType: 'int256', name: 'number', type: 'int256' },
+ { internalType: 'int256', name: 'number2', type: 'int256' },
],
name: 'twoNegativeNumbers',
outputs: [],
@@ -208,6 +106,5 @@ export const NegativeNumbersAbi = [
type: 'function',
},
] as const;
-
export const NegativeNumbersBytecode =
- '0x608060405234801561001057600080fd5b506040516105b93803806105b98339818101604052810190610032919061007a565b80600081905550506100a7565b600080fd5b6000819050919050565b61005781610044565b811461006257600080fd5b50565b6000815190506100748161004e565b92915050565b6000602082840312156100905761008f61003f565b5b600061009e84828501610065565b91505092915050565b610503806100b66000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806309872ebc1461005157806310e9b2b41461006f5780634a299b871461008b5780636119780b146100a7575b600080fd5b6100596100c3565b6040516100669190610232565b60405180910390f35b61008960048036038101906100849190610283565b6100c9565b005b6100a560048036038101906100a09190610315565b610130565b005b6100c160048036038101906100bc9190610389565b6101ae565b005b60005481565b7f5b53dc4e9e8fa2416d4e172bdad04be5a6d622643bc9ef45987b2caadd0d0c95816040516100f89190610232565b60405180910390a1807f33e7dccd3899498f4408d6468e5dfad650f32574dba2ec4f13399a82e62166d560405160405180910390a250565b7f2e1fb99ee1b27b6491b2d46a54ac8daca82f2da6810e4b8eed4d634f78fa6948848484846040516101659493929190610440565b60405180910390a182847f0e29b573959c1b6ffd5e16886385ec1732e187cc5ac10e8faceb5e02a1c7b50b84846040516101a0929190610480565b60405180910390a350505050565b7ffaa997e4b16dcde196bbb99868e16fa934a0b4c1f019e494d9fbffb5abc46fc282826040516101df9291906104a4565b60405180910390a180827f0204c97becd72594486cf753e30e8acfc9951ee663e404bc858e3d10b80da99b60405160405180910390a35050565b6000819050919050565b61022c81610219565b82525050565b60006020820190506102476000830184610223565b92915050565b600080fd5b600080fd5b61026081610219565b811461026b57600080fd5b50565b60008135905061027d81610257565b92915050565b6000602082840312156102995761029861024d565b5b60006102a78482850161026e565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126102d5576102d46102b0565b5b8235905067ffffffffffffffff8111156102f2576102f16102b5565b5b60208301915083600182028301111561030e5761030d6102ba565b5b9250929050565b6000806000806060858703121561032f5761032e61024d565b5b600061033d8782880161026e565b945050602061034e8782880161026e565b935050604085013567ffffffffffffffff81111561036f5761036e610252565b5b61037b878288016102bf565b925092505092959194509250565b600080604083850312156103a05761039f61024d565b5b60006103ae8582860161026e565b92505060206103bf8582860161026e565b9150509250929050565b6000819050919050565b6103dc816103c9565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b600061041f83856103e2565b935061042c8385846103f3565b61043583610402565b840190509392505050565b600060608201905061045560008301876103d3565b6104626020830186610223565b8181036040830152610475818486610413565b905095945050505050565b6000602082019050818103600083015261049b818486610413565b90509392505050565b60006040820190506104b96000830185610223565b6104c66020830184610223565b939250505056fea26469706673582212203eb052901c785465d43fe463b8123363abc0767d1df3b47a9c4cdc319870d8c264736f6c634300080d0033';
+ '0x608060405234801561000f575f80fd5b5060405161058e38038061058e83398181016040528101906100319190610074565b805f819055505061009f565b5f80fd5b5f819050919050565b61005381610041565b811461005d575f80fd5b50565b5f8151905061006e8161004a565b92915050565b5f602082840312156100895761008861003d565b5b5f61009684828501610060565b91505092915050565b6104e2806100ac5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806309872ebc1461004e57806310e9b2b41461006c5780634a299b87146100885780636119780b146100a4575b5f80fd5b6100566100c0565b604051610063919061022d565b60405180910390f35b61008660048036038101906100819190610278565b6100c5565b005b6100a2600480360381019061009d9190610304565b61012c565b005b6100be60048036038101906100b99190610375565b6101aa565b005b5f5481565b7f5b53dc4e9e8fa2416d4e172bdad04be5a6d622643bc9ef45987b2caadd0d0c95816040516100f4919061022d565b60405180910390a1807f33e7dccd3899498f4408d6468e5dfad650f32574dba2ec4f13399a82e62166d560405160405180910390a250565b7f2e1fb99ee1b27b6491b2d46a54ac8daca82f2da6810e4b8eed4d634f78fa6948848484846040516101619493929190610425565b60405180910390a182847f0e29b573959c1b6ffd5e16886385ec1732e187cc5ac10e8faceb5e02a1c7b50b848460405161019c929190610463565b60405180910390a350505050565b7ffaa997e4b16dcde196bbb99868e16fa934a0b4c1f019e494d9fbffb5abc46fc282826040516101db929190610485565b60405180910390a180827f0204c97becd72594486cf753e30e8acfc9951ee663e404bc858e3d10b80da99b60405160405180910390a35050565b5f819050919050565b61022781610215565b82525050565b5f6020820190506102405f83018461021e565b92915050565b5f80fd5b5f80fd5b61025781610215565b8114610261575f80fd5b50565b5f813590506102728161024e565b92915050565b5f6020828403121561028d5761028c610246565b5b5f61029a84828501610264565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126102c4576102c36102a3565b5b8235905067ffffffffffffffff8111156102e1576102e06102a7565b5b6020830191508360018202830111156102fd576102fc6102ab565b5b9250929050565b5f805f806060858703121561031c5761031b610246565b5b5f61032987828801610264565b945050602061033a87828801610264565b935050604085013567ffffffffffffffff81111561035b5761035a61024a565b5b610367878288016102af565b925092505092959194509250565b5f806040838503121561038b5761038a610246565b5b5f61039885828601610264565b92505060206103a985828601610264565b9150509250929050565b5f819050919050565b6103c5816103b3565b82525050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61040483856103cb565b93506104118385846103db565b61041a836103e9565b840190509392505050565b5f6060820190506104385f8301876103bc565b610445602083018661021e565b81810360408301526104588184866103f9565b905095945050505050565b5f6020820190508181035f83015261047c8184866103f9565b90509392505050565b5f6040820190506104985f83018561021e565b6104a5602083018461021e565b939250505056fea26469706673582212208c35f0412a200d24bee1b19dc4aad276af243631f502b9df1e8f860ceee574536468797063430000020033';
diff --git a/fixtures/build/ZRC20Token.json b/fixtures/build/ZRC20Token.json
new file mode 100644
index 00000000..daf43c71
--- /dev/null
+++ b/fixtures/build/ZRC20Token.json
@@ -0,0 +1,328 @@
+{
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "initialSupply",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ZRC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ZRC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "zvm": {
+ "bytecode": {
+ "object": "608060405234801562000010575f80fd5b5060405162001670380380620016708339818101604052810190620000369190620003cb565b6040518060400160405280600481526020017f476f6c64000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474c4400000000000000000000000000000000000000000000000000000000008152508160039081620000b3919062000656565b508060049081620000c5919062000656565b505050620000da3382620000e160201b60201c565b5062000866565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154575f6040517faf8383ac0000000000000000000000000000000000000000000000000000000081526004016200014b91906200077d565b60405180910390fd5b620001675f83836200016b60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001bf578060025f828254620001b29190620007c5565b9250508190555062000290565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200024b578381836040517f670e01c8000000000000000000000000000000000000000000000000000000008152600401620002429392919062000810565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002d9578060025f828254039250508190555062000323565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200038291906200084b565b60405180910390a3505050565b5f80fd5b5f819050919050565b620003a78162000393565b8114620003b2575f80fd5b50565b5f81519050620003c5816200039c565b92915050565b5f60208284031215620003e357620003e26200038f565b5b5f620003f284828501620003b5565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200047757607f821691505b6020821081036200048d576200048c62000432565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004b4565b620004fd8683620004b4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200053e62000538620005328462000393565b62000515565b62000393565b9050919050565b5f819050919050565b62000559836200051e565b62000571620005688262000545565b848454620004c0565b825550505050565b5f90565b6200058762000579565b620005948184846200054e565b505050565b5b81811015620005bb57620005af5f826200057d565b6001810190506200059a565b5050565b601f8211156200060a57620005d48162000493565b620005df84620004a5565b81016020851015620005ef578190505b62000607620005fe85620004a5565b83018262000599565b50505b505050565b5f82821c905092915050565b5f6200062c5f19846008026200060f565b1980831691505092915050565b5f6200064683836200061b565b9150826002028217905092915050565b6200066182620003fb565b67ffffffffffffffff8111156200067d576200067c62000405565b5b6200068982546200045f565b62000696828285620005bf565b5f60209050601f831160018114620006cc575f8415620006b7578287015190505b620006c3858262000639565b86555062000732565b601f198416620006dc8662000493565b5f5b828110156200070557848901518255600182019150602085019450602081019050620006de565b8683101562000725578489015162000721601f8916826200061b565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000765826200073a565b9050919050565b620007778162000759565b82525050565b5f602082019050620007925f8301846200076c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007d18262000393565b9150620007de8362000393565b9250828201905080821115620007f957620007f862000798565b5b92915050565b6200080a8162000393565b82525050565b5f606082019050620008255f8301866200076c565b620008346020830185620007ff565b620008436040830184620007ff565b949350505050565b5f602082019050620008605f830184620007ff565b92915050565b610dfc80620008745f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa9190610a75565b60405180910390f35b6100cd60048036038101906100c89190610b26565b61028d565b6040516100da9190610b7e565b60405180910390f35b6100eb6102af565b6040516100f89190610ba6565b60405180910390f35b61011b60048036038101906101169190610bbf565b6102b8565b6040516101289190610b7e565b60405180910390f35b6101396102e6565b6040516101469190610c2a565b60405180910390f35b61016960048036038101906101649190610c43565b6102ee565b6040516101769190610ba6565b60405180910390f35b610187610333565b6040516101949190610a75565b60405180910390f35b6101b760048036038101906101b29190610b26565b6103c3565b6040516101c49190610b7e565b60405180910390f35b6101e760048036038101906101e29190610c6e565b6103e5565b6040516101f49190610ba6565b60405180910390f35b60606003805461020c90610cd9565b80601f016020809104026020016040519081016040528092919081815260200182805461023890610cd9565b80156102835780601f1061025a57610100808354040283529160200191610283565b820191905f5260205f20905b81548152906001019060200180831161026657829003601f168201915b5050505050905090565b5f80610297610467565b90506102a481858561046e565b600191505092915050565b5f600254905090565b5f806102c2610467565b90506102cf858285610480565b6102da858585610513565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461034290610cd9565b80601f016020809104026020016040519081016040528092919081815260200182805461036e90610cd9565b80156103b95780601f10610390576101008083540402835291602001916103b9565b820191905f5260205f20905b81548152906001019060200180831161039c57829003601f168201915b5050505050905090565b5f806103cd610467565b90506103da818585610513565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61047b8383836001610603565b505050565b5f61048b84846103e5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561050d57818110156104fe578281836040517f80fde4800000000000000000000000000000000000000000000000000000000081526004016104f593929190610d18565b60405180910390fd5b61050c84848484035f610603565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610583575f6040517fc90f6e4800000000000000000000000000000000000000000000000000000000815260040161057a9190610d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105f3575f6040517faf8383ac0000000000000000000000000000000000000000000000000000000081526004016105ea9190610d4d565b60405180910390fd5b6105fe8383836107d2565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610673575f6040517f23b1dd6f00000000000000000000000000000000000000000000000000000000815260040161066a9190610d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106e3575f6040517f18c103dd0000000000000000000000000000000000000000000000000000000081526004016106da9190610d4d565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156107cc578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107c39190610ba6565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610822578060025f8282546108169190610d93565b925050819055506108f0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156108ab578381836040517f670e01c80000000000000000000000000000000000000000000000000000000081526004016108a293929190610d18565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610937578060025f8282540392505081905550610981565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109de9190610ba6565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a22578082015181840152602081019050610a07565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610a47826109eb565b610a5181856109f5565b9350610a61818560208601610a05565b610a6a81610a2d565b840191505092915050565b5f6020820190508181035f830152610a8d8184610a3d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ac282610a99565b9050919050565b610ad281610ab8565b8114610adc575f80fd5b50565b5f81359050610aed81610ac9565b92915050565b5f819050919050565b610b0581610af3565b8114610b0f575f80fd5b50565b5f81359050610b2081610afc565b92915050565b5f8060408385031215610b3c57610b3b610a95565b5b5f610b4985828601610adf565b9250506020610b5a85828601610b12565b9150509250929050565b5f8115159050919050565b610b7881610b64565b82525050565b5f602082019050610b915f830184610b6f565b92915050565b610ba081610af3565b82525050565b5f602082019050610bb95f830184610b97565b92915050565b5f805f60608486031215610bd657610bd5610a95565b5b5f610be386828701610adf565b9350506020610bf486828701610adf565b9250506040610c0586828701610b12565b9150509250925092565b5f60ff82169050919050565b610c2481610c0f565b82525050565b5f602082019050610c3d5f830184610c1b565b92915050565b5f60208284031215610c5857610c57610a95565b5b5f610c6584828501610adf565b91505092915050565b5f8060408385031215610c8457610c83610a95565b5b5f610c9185828601610adf565b9250506020610ca285828601610adf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610cf057607f821691505b602082108103610d0357610d02610cac565b5b50919050565b610d1281610ab8565b82525050565b5f606082019050610d2b5f830186610d09565b610d386020830185610b97565b610d456040830184610b97565b949350505050565b5f602082019050610d605f830184610d09565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d9d82610af3565b9150610da883610af3565b9250828201905080821115610dc057610dbf610d66565b5b9291505056fea26469706673582212208ffe1b35a8689c90242005ff81b18c501dbfb4d6196d3abc409b2f790d2ff9c36468797063430000020033"
+ }
+ }
+}
diff --git a/fixtures/build/ZRC20Token.ts b/fixtures/build/ZRC20Token.ts
new file mode 100644
index 00000000..144b9bbd
--- /dev/null
+++ b/fixtures/build/ZRC20Token.ts
@@ -0,0 +1,122 @@
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+export const ZRC20TokenAbi = [
+ {
+ inputs: [{ internalType: 'uint256', name: 'initialSupply', type: 'uint256' }],
+ signature: '',
+ stateMutability: 'nonpayable',
+ type: 'constructor',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ { indexed: true, internalType: 'address', name: 'owner', type: 'address' },
+ { indexed: true, internalType: 'address', name: 'spender', type: 'address' },
+ { indexed: false, internalType: 'uint256', name: 'value', type: 'uint256' },
+ ],
+ name: 'Approval',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ { indexed: true, internalType: 'address', name: 'from', type: 'address' },
+ { indexed: true, internalType: 'address', name: 'to', type: 'address' },
+ { indexed: false, internalType: 'uint256', name: 'value', type: 'uint256' },
+ ],
+ name: 'Transfer',
+ type: 'event',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'owner', type: 'address' },
+ { internalType: 'address', name: 'spender', type: 'address' },
+ ],
+ name: 'allowance',
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'spender', type: 'address' },
+ { internalType: 'uint256', name: 'value', type: 'uint256' },
+ ],
+ name: 'approve',
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [{ internalType: 'address', name: 'account', type: 'address' }],
+ name: 'balanceOf',
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'decimals',
+ outputs: [{ internalType: 'uint8', name: '', type: 'uint8' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'name',
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'symbol',
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'totalSupply',
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'to', type: 'address' },
+ { internalType: 'uint256', name: 'value', type: 'uint256' },
+ ],
+ name: 'transfer',
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'from', type: 'address' },
+ { internalType: 'address', name: 'to', type: 'address' },
+ { internalType: 'uint256', name: 'value', type: 'uint256' },
+ ],
+ name: 'transferFrom',
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+] as const;
+export const ZRC20TokenBytecode =
+ '0x608060405234801562000010575f80fd5b5060405162001670380380620016708339818101604052810190620000369190620003cb565b6040518060400160405280600481526020017f476f6c64000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474c4400000000000000000000000000000000000000000000000000000000008152508160039081620000b3919062000656565b508060049081620000c5919062000656565b505050620000da3382620000e160201b60201c565b5062000866565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154575f6040517faf8383ac0000000000000000000000000000000000000000000000000000000081526004016200014b91906200077d565b60405180910390fd5b620001675f83836200016b60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001bf578060025f828254620001b29190620007c5565b9250508190555062000290565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200024b578381836040517f670e01c8000000000000000000000000000000000000000000000000000000008152600401620002429392919062000810565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002d9578060025f828254039250508190555062000323565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200038291906200084b565b60405180910390a3505050565b5f80fd5b5f819050919050565b620003a78162000393565b8114620003b2575f80fd5b50565b5f81519050620003c5816200039c565b92915050565b5f60208284031215620003e357620003e26200038f565b5b5f620003f284828501620003b5565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200047757607f821691505b6020821081036200048d576200048c62000432565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004b4565b620004fd8683620004b4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200053e62000538620005328462000393565b62000515565b62000393565b9050919050565b5f819050919050565b62000559836200051e565b62000571620005688262000545565b848454620004c0565b825550505050565b5f90565b6200058762000579565b620005948184846200054e565b505050565b5b81811015620005bb57620005af5f826200057d565b6001810190506200059a565b5050565b601f8211156200060a57620005d48162000493565b620005df84620004a5565b81016020851015620005ef578190505b62000607620005fe85620004a5565b83018262000599565b50505b505050565b5f82821c905092915050565b5f6200062c5f19846008026200060f565b1980831691505092915050565b5f6200064683836200061b565b9150826002028217905092915050565b6200066182620003fb565b67ffffffffffffffff8111156200067d576200067c62000405565b5b6200068982546200045f565b62000696828285620005bf565b5f60209050601f831160018114620006cc575f8415620006b7578287015190505b620006c3858262000639565b86555062000732565b601f198416620006dc8662000493565b5f5b828110156200070557848901518255600182019150602085019450602081019050620006de565b8683101562000725578489015162000721601f8916826200061b565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000765826200073a565b9050919050565b620007778162000759565b82525050565b5f602082019050620007925f8301846200076c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007d18262000393565b9150620007de8362000393565b9250828201905080821115620007f957620007f862000798565b5b92915050565b6200080a8162000393565b82525050565b5f606082019050620008255f8301866200076c565b620008346020830185620007ff565b620008436040830184620007ff565b949350505050565b5f602082019050620008605f830184620007ff565b92915050565b610dfc80620008745f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa9190610a75565b60405180910390f35b6100cd60048036038101906100c89190610b26565b61028d565b6040516100da9190610b7e565b60405180910390f35b6100eb6102af565b6040516100f89190610ba6565b60405180910390f35b61011b60048036038101906101169190610bbf565b6102b8565b6040516101289190610b7e565b60405180910390f35b6101396102e6565b6040516101469190610c2a565b60405180910390f35b61016960048036038101906101649190610c43565b6102ee565b6040516101769190610ba6565b60405180910390f35b610187610333565b6040516101949190610a75565b60405180910390f35b6101b760048036038101906101b29190610b26565b6103c3565b6040516101c49190610b7e565b60405180910390f35b6101e760048036038101906101e29190610c6e565b6103e5565b6040516101f49190610ba6565b60405180910390f35b60606003805461020c90610cd9565b80601f016020809104026020016040519081016040528092919081815260200182805461023890610cd9565b80156102835780601f1061025a57610100808354040283529160200191610283565b820191905f5260205f20905b81548152906001019060200180831161026657829003601f168201915b5050505050905090565b5f80610297610467565b90506102a481858561046e565b600191505092915050565b5f600254905090565b5f806102c2610467565b90506102cf858285610480565b6102da858585610513565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461034290610cd9565b80601f016020809104026020016040519081016040528092919081815260200182805461036e90610cd9565b80156103b95780601f10610390576101008083540402835291602001916103b9565b820191905f5260205f20905b81548152906001019060200180831161039c57829003601f168201915b5050505050905090565b5f806103cd610467565b90506103da818585610513565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61047b8383836001610603565b505050565b5f61048b84846103e5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561050d57818110156104fe578281836040517f80fde4800000000000000000000000000000000000000000000000000000000081526004016104f593929190610d18565b60405180910390fd5b61050c84848484035f610603565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610583575f6040517fc90f6e4800000000000000000000000000000000000000000000000000000000815260040161057a9190610d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105f3575f6040517faf8383ac0000000000000000000000000000000000000000000000000000000081526004016105ea9190610d4d565b60405180910390fd5b6105fe8383836107d2565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610673575f6040517f23b1dd6f00000000000000000000000000000000000000000000000000000000815260040161066a9190610d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106e3575f6040517f18c103dd0000000000000000000000000000000000000000000000000000000081526004016106da9190610d4d565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156107cc578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107c39190610ba6565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610822578060025f8282546108169190610d93565b925050819055506108f0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156108ab578381836040517f670e01c80000000000000000000000000000000000000000000000000000000081526004016108a293929190610d18565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610937578060025f8282540392505081905550610981565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109de9190610ba6565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a22578082015181840152602081019050610a07565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610a47826109eb565b610a5181856109f5565b9350610a61818560208601610a05565b610a6a81610a2d565b840191505092915050565b5f6020820190508181035f830152610a8d8184610a3d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ac282610a99565b9050919050565b610ad281610ab8565b8114610adc575f80fd5b50565b5f81359050610aed81610ac9565b92915050565b5f819050919050565b610b0581610af3565b8114610b0f575f80fd5b50565b5f81359050610b2081610afc565b92915050565b5f8060408385031215610b3c57610b3b610a95565b5b5f610b4985828601610adf565b9250506020610b5a85828601610b12565b9150509250929050565b5f8115159050919050565b610b7881610b64565b82525050565b5f602082019050610b915f830184610b6f565b92915050565b610ba081610af3565b82525050565b5f602082019050610bb95f830184610b97565b92915050565b5f805f60608486031215610bd657610bd5610a95565b5b5f610be386828701610adf565b9350506020610bf486828701610adf565b9250506040610c0586828701610b12565b9150509250925092565b5f60ff82169050919050565b610c2481610c0f565b82525050565b5f602082019050610c3d5f830184610c1b565b92915050565b5f60208284031215610c5857610c57610a95565b5b5f610c6584828501610adf565b91505092915050565b5f8060408385031215610c8457610c83610a95565b5b5f610c9185828601610adf565b9250506020610ca285828601610adf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610cf057607f821691505b602082108103610d0357610d02610cac565b5b50919050565b610d1281610ab8565b82525050565b5f606082019050610d2b5f830186610d09565b610d386020830185610b97565b610d456040830184610b97565b949350505050565b5f602082019050610d605f830184610d09565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d9d82610af3565b9150610da883610af3565b9250828201905080821115610dc057610dbf610d66565b5b9291505056fea26469706673582212208ffe1b35a8689c90242005ff81b18c501dbfb4d6196d3abc409b2f790d2ff9c36468797063430000020033';
diff --git a/fixtures/build/ZRC721Token.json b/fixtures/build/ZRC721Token.json
new file mode 100644
index 00000000..a2fe210d
--- /dev/null
+++ b/fixtures/build/ZRC721Token.json
@@ -0,0 +1,503 @@
+{
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC721IncorrectOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ZRC721InsufficientApproval",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC721InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC721InvalidOperator",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC721InvalidOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC721InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ZRC721InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ZRC721NonexistentToken",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_fromTokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_toTokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "BatchMetadataUpdate",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "_tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "MetadataUpdate",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "player",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "tokenURI",
+ "type": "string"
+ }
+ ],
+ "name": "awardItem",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "zvm": {
+ "bytecode": {
+ "object": "608060405234801562000010575f80fd5b506040518060400160405280600881526020017f47616d654974656d0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f49544d0000000000000000000000000000000000000000000000000000000000815250815f90816200008d91906200030c565b5080600190816200009f91906200030c565b505050620003f0565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200012457607f821691505b6020821081036200013a5762000139620000df565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200019e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000161565b620001aa868362000161565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001f4620001ee620001e884620001c2565b620001cb565b620001c2565b9050919050565b5f819050919050565b6200020f83620001d4565b620002276200021e82620001fb565b8484546200016d565b825550505050565b5f90565b6200023d6200022f565b6200024a81848462000204565b505050565b5b818110156200027157620002655f8262000233565b60018101905062000250565b5050565b601f821115620002c0576200028a8162000140565b620002958462000152565b81016020851015620002a5578190505b620002bd620002b48562000152565b8301826200024f565b50505b505050565b5f82821c905092915050565b5f620002e25f1984600802620002c5565b1980831691505092915050565b5f620002fc8383620002d1565b9150826002028217905092915050565b6200031782620000a8565b67ffffffffffffffff811115620003335762000332620000b2565b5b6200033f82546200010c565b6200034c82828562000275565b5f60209050601f83116001811462000382575f84156200036d578287015190505b620003798582620002ef565b865550620003e8565b601f198416620003928662000140565b5f5b82811015620003bb5784890151825560018201915060208501945060208101905062000394565b86831015620003db5784890151620003d7601f891682620002d1565b8355505b6001600288020188555050505b505050505050565b61229d80620003fe5f395ff3fe608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063cf378343146102a4578063e985e9c5146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f80fd5b610106600480360381019061010191906117ca565b610304565b604051610113919061180f565b60405180910390f35b610124610364565b60405161013191906118b2565b60405180910390f35b610154600480360381019061014f9190611905565b6103f3565b604051610161919061196f565b60405180910390f35b610184600480360381019061017f91906119b2565b61040e565b005b6101a0600480360381019061019b91906119f0565b610424565b005b6101bc60048036038101906101b791906119f0565b610523565b005b6101d860048036038101906101d39190611905565b610542565b6040516101e5919061196f565b60405180910390f35b61020860048036038101906102039190611a40565b610553565b6040516102159190611a7a565b60405180910390f35b610226610609565b60405161023391906118b2565b60405180910390f35b61025660048036038101906102519190611abd565b610699565b005b610272600480360381019061026d9190611c27565b6106af565b005b61028e60048036038101906102899190611905565b6106d4565b60405161029b91906118b2565b60405180910390f35b6102be60048036038101906102b99190611d45565b6107df565b6040516102cb9190611a7a565b60405180910390f35b6102ee60048036038101906102e99190611d9f565b610815565b6040516102fb919061180f565b60405180910390f35b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061035d575061035c826108a3565b5b9050919050565b60605f805461037290611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461039e90611e0a565b80156103e95780601f106103c0576101008083540402835291602001916103e9565b820191905f5260205f20905b8154815290600101906020018083116103cc57829003601f168201915b5050505050905090565b5f6103fd82610984565b5061040782610a0a565b9050919050565b610420828261041b610a43565b610a4a565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610494575f6040517f0c0f2aa600000000000000000000000000000000000000000000000000000000815260040161048b919061196f565b60405180910390fd5b5f6104a783836104a2610a43565b610a5c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461051d578382826040517fed97935a00000000000000000000000000000000000000000000000000000000815260040161051493929190611e3a565b60405180910390fd5b50505050565b61053d83838360405180602001604052805f8152506106af565b505050565b5f61054c82610984565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105c4575f6040517fd5da55ca0000000000000000000000000000000000000000000000000000000081526004016105bb919061196f565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461061890611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461064490611e0a565b801561068f5780601f106106665761010080835404028352916020019161068f565b820191905f5260205f20905b81548152906001019060200180831161067257829003601f168201915b5050505050905090565b6106ab6106a4610a43565b8383610c67565b5050565b6106ba848484610424565b6106ce6106c5610a43565b85858585610dd0565b50505050565b60606106df82610984565b505f60065f8481526020019081526020015f2080546106fd90611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461072990611e0a565b80156107745780601f1061074b57610100808354040283529160200191610774565b820191905f5260205f20905b81548152906001019060200180831161075757829003601f168201915b505050505090505f610784610f7c565b90505f8151036107985781925050506107da565b5f825111156107cc5780826040516020016107b4929190611ea9565b604051602081830303815290604052925050506107da565b6107d584610f92565b925050505b919050565b5f806107eb6007610ff8565b90506107f78482611004565b61080181846110f7565b61080b6007611151565b8091505092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061096d57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061097d575061097c82611165565b5b9050919050565b5f8061098f836111ce565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a0157826040517f0f8ff0280000000000000000000000000000000000000000000000000000000081526004016109f89190611a7a565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610a578383836001611207565b505050565b5f80610a67846111ce565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610aa857610aa78184866113c6565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b3357610ae75f855f80611207565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610bb257600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cd757816040517f774067b3000000000000000000000000000000000000000000000000000000008152600401610cce919061196f565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610dc3919061180f565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f75578273ffffffffffffffffffffffffffffffffffffffff16636fd56ae9868685856040518563ffffffff1660e01b8152600401610e2e9493929190611f1e565b6020604051808303815f875af1925050508015610e6957506040513d601f19601f82011682018060405250810190610e669190611f7c565b60015b610eea573d805f8114610e97576040519150601f19603f3d011682016040523d82523d5f602084013e610e9c565b606091505b505f815103610ee257836040517f0c0f2aa6000000000000000000000000000000000000000000000000000000008152600401610ed9919061196f565b60405180910390fd5b805181602001fd5b636fd56ae960e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f7357836040517f0c0f2aa6000000000000000000000000000000000000000000000000000000008152600401610f6a919061196f565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b6060610f9d82610984565b505f610fa7610f7c565b90505f815111610fc55760405180602001604052805f815250610ff0565b80610fcf84611489565b604051602001610fe0929190611ea9565b6040516020818303038152906040525b915050919050565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611074575f6040517f0c0f2aa600000000000000000000000000000000000000000000000000000000815260040161106b919061196f565b60405180910390fd5b5f61108083835f610a5c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110f2575f6040517f959b8cd50000000000000000000000000000000000000000000000000000000081526004016110e9919061196f565b60405180910390fd5b505050565b8060065f8481526020019081526020015f2090816111159190612144565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111459190611a7a565b60405180910390a15050565b6001815f015f828254019250508190555050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061123f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611371575f61124e84610984565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112b857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112cb57506112c98184610815565b155b1561130d57826040517f828c51c6000000000000000000000000000000000000000000000000000000008152600401611304919061196f565b60405180910390fd5b811561136f57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6113d1838383611553565b611484575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144557806040517f0f8ff02800000000000000000000000000000000000000000000000000000000815260040161143c9190611a7a565b60405180910390fd5b81816040517f2715868700000000000000000000000000000000000000000000000000000000815260040161147b929190612213565b60405180910390fd5b505050565b60605f600161149784611613565b0190505f8167ffffffffffffffff8111156114b5576114b4611b03565b5b6040519080825280601f01601f1916602001820160405280156114e75781602001600182028036833780820191505090505b5090505f82602001820190505b600115611548578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161153d5761153c61223a565b5b0494505f85036114f4575b819350505050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561160a57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115cb57506115ca8484610815565b5b8061160957508273ffffffffffffffffffffffffffffffffffffffff166115f183610a0a565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061166f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816116655761166461223a565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106116ac576d04ee2d6d415b85acef810000000083816116a2576116a161223a565b5b0492506020810190505b662386f26fc1000083106116db57662386f26fc1000083816116d1576116d061223a565b5b0492506010810190505b6305f5e1008310611704576305f5e10083816116fa576116f961223a565b5b0492506008810190505b612710831061172957612710838161171f5761171e61223a565b5b0492506004810190505b6064831061174c57606483816117425761174161223a565b5b0492506002810190505b600a831061175b576001810190505b80915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117a981611775565b81146117b3575f80fd5b50565b5f813590506117c4816117a0565b92915050565b5f602082840312156117df576117de61176d565b5b5f6117ec848285016117b6565b91505092915050565b5f8115159050919050565b611809816117f5565b82525050565b5f6020820190506118225f830184611800565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561185f578082015181840152602081019050611844565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61188482611828565b61188e8185611832565b935061189e818560208601611842565b6118a78161186a565b840191505092915050565b5f6020820190508181035f8301526118ca818461187a565b905092915050565b5f819050919050565b6118e4816118d2565b81146118ee575f80fd5b50565b5f813590506118ff816118db565b92915050565b5f6020828403121561191a5761191961176d565b5b5f611927848285016118f1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61195982611930565b9050919050565b6119698161194f565b82525050565b5f6020820190506119825f830184611960565b92915050565b6119918161194f565b811461199b575f80fd5b50565b5f813590506119ac81611988565b92915050565b5f80604083850312156119c8576119c761176d565b5b5f6119d58582860161199e565b92505060206119e6858286016118f1565b9150509250929050565b5f805f60608486031215611a0757611a0661176d565b5b5f611a148682870161199e565b9350506020611a258682870161199e565b9250506040611a36868287016118f1565b9150509250925092565b5f60208284031215611a5557611a5461176d565b5b5f611a628482850161199e565b91505092915050565b611a74816118d2565b82525050565b5f602082019050611a8d5f830184611a6b565b92915050565b611a9c816117f5565b8114611aa6575f80fd5b50565b5f81359050611ab781611a93565b92915050565b5f8060408385031215611ad357611ad261176d565b5b5f611ae08582860161199e565b9250506020611af185828601611aa9565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b398261186a565b810181811067ffffffffffffffff82111715611b5857611b57611b03565b5b80604052505050565b5f611b6a611764565b9050611b768282611b30565b919050565b5f67ffffffffffffffff821115611b9557611b94611b03565b5b611b9e8261186a565b9050602081019050919050565b828183375f83830152505050565b5f611bcb611bc684611b7b565b611b61565b905082815260208101848484011115611be757611be6611aff565b5b611bf2848285611bab565b509392505050565b5f82601f830112611c0e57611c0d611afb565b5b8135611c1e848260208601611bb9565b91505092915050565b5f805f8060808587031215611c3f57611c3e61176d565b5b5f611c4c8782880161199e565b9450506020611c5d8782880161199e565b9350506040611c6e878288016118f1565b925050606085013567ffffffffffffffff811115611c8f57611c8e611771565b5b611c9b87828801611bfa565b91505092959194509250565b5f67ffffffffffffffff821115611cc157611cc0611b03565b5b611cca8261186a565b9050602081019050919050565b5f611ce9611ce484611ca7565b611b61565b905082815260208101848484011115611d0557611d04611aff565b5b611d10848285611bab565b509392505050565b5f82601f830112611d2c57611d2b611afb565b5b8135611d3c848260208601611cd7565b91505092915050565b5f8060408385031215611d5b57611d5a61176d565b5b5f611d688582860161199e565b925050602083013567ffffffffffffffff811115611d8957611d88611771565b5b611d9585828601611d18565b9150509250929050565b5f8060408385031215611db557611db461176d565b5b5f611dc28582860161199e565b9250506020611dd38582860161199e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611e2157607f821691505b602082108103611e3457611e33611ddd565b5b50919050565b5f606082019050611e4d5f830186611960565b611e5a6020830185611a6b565b611e676040830184611960565b949350505050565b5f81905092915050565b5f611e8382611828565b611e8d8185611e6f565b9350611e9d818560208601611842565b80840191505092915050565b5f611eb48285611e79565b9150611ec08284611e79565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ef082611ecc565b611efa8185611ed6565b9350611f0a818560208601611842565b611f138161186a565b840191505092915050565b5f608082019050611f315f830187611960565b611f3e6020830186611960565b611f4b6040830185611a6b565b8181036060830152611f5d8184611ee6565b905095945050505050565b5f81519050611f76816117a0565b92915050565b5f60208284031215611f9157611f9061176d565b5b5f611f9e84828501611f68565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026120037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611fc8565b61200d8683611fc8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61204861204361203e846118d2565b612025565b6118d2565b9050919050565b5f819050919050565b6120618361202e565b61207561206d8261204f565b848454611fd4565b825550505050565b5f90565b61208961207d565b612094818484612058565b505050565b5b818110156120b7576120ac5f82612081565b60018101905061209a565b5050565b601f8211156120fc576120cd81611fa7565b6120d684611fb9565b810160208510156120e5578190505b6120f96120f185611fb9565b830182612099565b50505b505050565b5f82821c905092915050565b5f61211c5f1984600802612101565b1980831691505092915050565b5f612134838361210d565b9150826002028217905092915050565b61214d82611828565b67ffffffffffffffff81111561216657612165611b03565b5b6121708254611e0a565b61217b8282856120bb565b5f60209050601f8311600181146121ac575f841561219a578287015190505b6121a48582612129565b86555061220b565b601f1984166121ba86611fa7565b5f5b828110156121e1578489015182556001820191506020850194506020810190506121bc565b868310156121fe57848901516121fa601f89168261210d565b8355505b6001600288020188555050505b505050505050565b5f6040820190506122265f830185611960565b6122336020830184611a6b565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffdfea264697066735822122031bb73dd9da8ee8fc83a5e39b070affb3518cab44253c4df7982d596b265d1db6468797063430000020033"
+ }
+ }
+}
diff --git a/fixtures/build/ZRC721Token.ts b/fixtures/build/ZRC721Token.ts
new file mode 100644
index 00000000..47ecf48c
--- /dev/null
+++ b/fixtures/build/ZRC721Token.ts
@@ -0,0 +1,236 @@
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+export const ZRC721TokenAbi = [
+ { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
+ {
+ inputs: [
+ { internalType: 'address', name: 'sender', type: 'address' },
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
+ { internalType: 'address', name: 'owner', type: 'address' },
+ ],
+ name: 'ZRC721IncorrectOwner',
+ type: 'error',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'operator', type: 'address' },
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
+ ],
+ name: 'ZRC721InsufficientApproval',
+ type: 'error',
+ },
+ {
+ inputs: [{ internalType: 'address', name: 'approver', type: 'address' }],
+ name: 'ZRC721InvalidApprover',
+ type: 'error',
+ },
+ {
+ inputs: [{ internalType: 'address', name: 'operator', type: 'address' }],
+ name: 'ZRC721InvalidOperator',
+ type: 'error',
+ },
+ {
+ inputs: [{ internalType: 'address', name: 'owner', type: 'address' }],
+ name: 'ZRC721InvalidOwner',
+ type: 'error',
+ },
+ {
+ inputs: [{ internalType: 'address', name: 'receiver', type: 'address' }],
+ name: 'ZRC721InvalidReceiver',
+ type: 'error',
+ },
+ {
+ inputs: [{ internalType: 'address', name: 'sender', type: 'address' }],
+ name: 'ZRC721InvalidSender',
+ type: 'error',
+ },
+ {
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
+ name: 'ZRC721NonexistentToken',
+ type: 'error',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ { indexed: true, internalType: 'address', name: 'owner', type: 'address' },
+ { indexed: true, internalType: 'address', name: 'approved', type: 'address' },
+ { indexed: true, internalType: 'uint256', name: 'tokenId', type: 'uint256' },
+ ],
+ name: 'Approval',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ { indexed: true, internalType: 'address', name: 'owner', type: 'address' },
+ { indexed: true, internalType: 'address', name: 'operator', type: 'address' },
+ { indexed: false, internalType: 'bool', name: 'approved', type: 'bool' },
+ ],
+ name: 'ApprovalForAll',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ { indexed: false, internalType: 'uint256', name: '_fromTokenId', type: 'uint256' },
+ { indexed: false, internalType: 'uint256', name: '_toTokenId', type: 'uint256' },
+ ],
+ name: 'BatchMetadataUpdate',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [{ indexed: false, internalType: 'uint256', name: '_tokenId', type: 'uint256' }],
+ name: 'MetadataUpdate',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ { indexed: true, internalType: 'address', name: 'from', type: 'address' },
+ { indexed: true, internalType: 'address', name: 'to', type: 'address' },
+ { indexed: true, internalType: 'uint256', name: 'tokenId', type: 'uint256' },
+ ],
+ name: 'Transfer',
+ type: 'event',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'to', type: 'address' },
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
+ ],
+ name: 'approve',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'player', type: 'address' },
+ { internalType: 'string', name: 'tokenURI', type: 'string' },
+ ],
+ name: 'awardItem',
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [{ internalType: 'address', name: 'owner', type: 'address' }],
+ name: 'balanceOf',
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
+ name: 'getApproved',
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'owner', type: 'address' },
+ { internalType: 'address', name: 'operator', type: 'address' },
+ ],
+ name: 'isApprovedForAll',
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'name',
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
+ name: 'ownerOf',
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'from', type: 'address' },
+ { internalType: 'address', name: 'to', type: 'address' },
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
+ ],
+ name: 'safeTransferFrom',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'from', type: 'address' },
+ { internalType: 'address', name: 'to', type: 'address' },
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
+ { internalType: 'bytes', name: 'data', type: 'bytes' },
+ ],
+ name: 'safeTransferFrom',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'operator', type: 'address' },
+ { internalType: 'bool', name: 'approved', type: 'bool' },
+ ],
+ name: 'setApprovalForAll',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [{ internalType: 'bytes4', name: 'interfaceId', type: 'bytes4' }],
+ name: 'supportsInterface',
+ outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'symbol',
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
+ name: 'tokenURI',
+ outputs: [{ internalType: 'string', name: '', type: 'string' }],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ { internalType: 'address', name: 'from', type: 'address' },
+ { internalType: 'address', name: 'to', type: 'address' },
+ { internalType: 'uint256', name: 'tokenId', type: 'uint256' },
+ ],
+ name: 'transferFrom',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+] as const;
+export const ZRC721TokenBytecode =
+ '0x608060405234801562000010575f80fd5b506040518060400160405280600881526020017f47616d654974656d0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f49544d0000000000000000000000000000000000000000000000000000000000815250815f90816200008d91906200030c565b5080600190816200009f91906200030c565b505050620003f0565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200012457607f821691505b6020821081036200013a5762000139620000df565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200019e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000161565b620001aa868362000161565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001f4620001ee620001e884620001c2565b620001cb565b620001c2565b9050919050565b5f819050919050565b6200020f83620001d4565b620002276200021e82620001fb565b8484546200016d565b825550505050565b5f90565b6200023d6200022f565b6200024a81848462000204565b505050565b5b818110156200027157620002655f8262000233565b60018101905062000250565b5050565b601f821115620002c0576200028a8162000140565b620002958462000152565b81016020851015620002a5578190505b620002bd620002b48562000152565b8301826200024f565b50505b505050565b5f82821c905092915050565b5f620002e25f1984600802620002c5565b1980831691505092915050565b5f620002fc8383620002d1565b9150826002028217905092915050565b6200031782620000a8565b67ffffffffffffffff811115620003335762000332620000b2565b5b6200033f82546200010c565b6200034c82828562000275565b5f60209050601f83116001811462000382575f84156200036d578287015190505b620003798582620002ef565b865550620003e8565b601f198416620003928662000140565b5f5b82811015620003bb5784890151825560018201915060208501945060208101905062000394565b86831015620003db5784890151620003d7601f891682620002d1565b8355505b6001600288020188555050505b505050505050565b61229d80620003fe5f395ff3fe608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063cf378343146102a4578063e985e9c5146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f80fd5b610106600480360381019061010191906117ca565b610304565b604051610113919061180f565b60405180910390f35b610124610364565b60405161013191906118b2565b60405180910390f35b610154600480360381019061014f9190611905565b6103f3565b604051610161919061196f565b60405180910390f35b610184600480360381019061017f91906119b2565b61040e565b005b6101a0600480360381019061019b91906119f0565b610424565b005b6101bc60048036038101906101b791906119f0565b610523565b005b6101d860048036038101906101d39190611905565b610542565b6040516101e5919061196f565b60405180910390f35b61020860048036038101906102039190611a40565b610553565b6040516102159190611a7a565b60405180910390f35b610226610609565b60405161023391906118b2565b60405180910390f35b61025660048036038101906102519190611abd565b610699565b005b610272600480360381019061026d9190611c27565b6106af565b005b61028e60048036038101906102899190611905565b6106d4565b60405161029b91906118b2565b60405180910390f35b6102be60048036038101906102b99190611d45565b6107df565b6040516102cb9190611a7a565b60405180910390f35b6102ee60048036038101906102e99190611d9f565b610815565b6040516102fb919061180f565b60405180910390f35b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061035d575061035c826108a3565b5b9050919050565b60605f805461037290611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461039e90611e0a565b80156103e95780601f106103c0576101008083540402835291602001916103e9565b820191905f5260205f20905b8154815290600101906020018083116103cc57829003601f168201915b5050505050905090565b5f6103fd82610984565b5061040782610a0a565b9050919050565b610420828261041b610a43565b610a4a565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610494575f6040517f0c0f2aa600000000000000000000000000000000000000000000000000000000815260040161048b919061196f565b60405180910390fd5b5f6104a783836104a2610a43565b610a5c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461051d578382826040517fed97935a00000000000000000000000000000000000000000000000000000000815260040161051493929190611e3a565b60405180910390fd5b50505050565b61053d83838360405180602001604052805f8152506106af565b505050565b5f61054c82610984565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105c4575f6040517fd5da55ca0000000000000000000000000000000000000000000000000000000081526004016105bb919061196f565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461061890611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461064490611e0a565b801561068f5780601f106106665761010080835404028352916020019161068f565b820191905f5260205f20905b81548152906001019060200180831161067257829003601f168201915b5050505050905090565b6106ab6106a4610a43565b8383610c67565b5050565b6106ba848484610424565b6106ce6106c5610a43565b85858585610dd0565b50505050565b60606106df82610984565b505f60065f8481526020019081526020015f2080546106fd90611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461072990611e0a565b80156107745780601f1061074b57610100808354040283529160200191610774565b820191905f5260205f20905b81548152906001019060200180831161075757829003601f168201915b505050505090505f610784610f7c565b90505f8151036107985781925050506107da565b5f825111156107cc5780826040516020016107b4929190611ea9565b604051602081830303815290604052925050506107da565b6107d584610f92565b925050505b919050565b5f806107eb6007610ff8565b90506107f78482611004565b61080181846110f7565b61080b6007611151565b8091505092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061096d57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061097d575061097c82611165565b5b9050919050565b5f8061098f836111ce565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a0157826040517f0f8ff0280000000000000000000000000000000000000000000000000000000081526004016109f89190611a7a565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610a578383836001611207565b505050565b5f80610a67846111ce565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610aa857610aa78184866113c6565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b3357610ae75f855f80611207565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610bb257600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cd757816040517f774067b3000000000000000000000000000000000000000000000000000000008152600401610cce919061196f565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610dc3919061180f565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f75578273ffffffffffffffffffffffffffffffffffffffff16636fd56ae9868685856040518563ffffffff1660e01b8152600401610e2e9493929190611f1e565b6020604051808303815f875af1925050508015610e6957506040513d601f19601f82011682018060405250810190610e669190611f7c565b60015b610eea573d805f8114610e97576040519150601f19603f3d011682016040523d82523d5f602084013e610e9c565b606091505b505f815103610ee257836040517f0c0f2aa6000000000000000000000000000000000000000000000000000000008152600401610ed9919061196f565b60405180910390fd5b805181602001fd5b636fd56ae960e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f7357836040517f0c0f2aa6000000000000000000000000000000000000000000000000000000008152600401610f6a919061196f565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b6060610f9d82610984565b505f610fa7610f7c565b90505f815111610fc55760405180602001604052805f815250610ff0565b80610fcf84611489565b604051602001610fe0929190611ea9565b6040516020818303038152906040525b915050919050565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611074575f6040517f0c0f2aa600000000000000000000000000000000000000000000000000000000815260040161106b919061196f565b60405180910390fd5b5f61108083835f610a5c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110f2575f6040517f959b8cd50000000000000000000000000000000000000000000000000000000081526004016110e9919061196f565b60405180910390fd5b505050565b8060065f8481526020019081526020015f2090816111159190612144565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111459190611a7a565b60405180910390a15050565b6001815f015f828254019250508190555050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061123f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611371575f61124e84610984565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112b857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112cb57506112c98184610815565b155b1561130d57826040517f828c51c6000000000000000000000000000000000000000000000000000000008152600401611304919061196f565b60405180910390fd5b811561136f57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6113d1838383611553565b611484575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144557806040517f0f8ff02800000000000000000000000000000000000000000000000000000000815260040161143c9190611a7a565b60405180910390fd5b81816040517f2715868700000000000000000000000000000000000000000000000000000000815260040161147b929190612213565b60405180910390fd5b505050565b60605f600161149784611613565b0190505f8167ffffffffffffffff8111156114b5576114b4611b03565b5b6040519080825280601f01601f1916602001820160405280156114e75781602001600182028036833780820191505090505b5090505f82602001820190505b600115611548578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161153d5761153c61223a565b5b0494505f85036114f4575b819350505050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561160a57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115cb57506115ca8484610815565b5b8061160957508273ffffffffffffffffffffffffffffffffffffffff166115f183610a0a565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061166f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816116655761166461223a565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106116ac576d04ee2d6d415b85acef810000000083816116a2576116a161223a565b5b0492506020810190505b662386f26fc1000083106116db57662386f26fc1000083816116d1576116d061223a565b5b0492506010810190505b6305f5e1008310611704576305f5e10083816116fa576116f961223a565b5b0492506008810190505b612710831061172957612710838161171f5761171e61223a565b5b0492506004810190505b6064831061174c57606483816117425761174161223a565b5b0492506002810190505b600a831061175b576001810190505b80915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117a981611775565b81146117b3575f80fd5b50565b5f813590506117c4816117a0565b92915050565b5f602082840312156117df576117de61176d565b5b5f6117ec848285016117b6565b91505092915050565b5f8115159050919050565b611809816117f5565b82525050565b5f6020820190506118225f830184611800565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561185f578082015181840152602081019050611844565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61188482611828565b61188e8185611832565b935061189e818560208601611842565b6118a78161186a565b840191505092915050565b5f6020820190508181035f8301526118ca818461187a565b905092915050565b5f819050919050565b6118e4816118d2565b81146118ee575f80fd5b50565b5f813590506118ff816118db565b92915050565b5f6020828403121561191a5761191961176d565b5b5f611927848285016118f1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61195982611930565b9050919050565b6119698161194f565b82525050565b5f6020820190506119825f830184611960565b92915050565b6119918161194f565b811461199b575f80fd5b50565b5f813590506119ac81611988565b92915050565b5f80604083850312156119c8576119c761176d565b5b5f6119d58582860161199e565b92505060206119e6858286016118f1565b9150509250929050565b5f805f60608486031215611a0757611a0661176d565b5b5f611a148682870161199e565b9350506020611a258682870161199e565b9250506040611a36868287016118f1565b9150509250925092565b5f60208284031215611a5557611a5461176d565b5b5f611a628482850161199e565b91505092915050565b611a74816118d2565b82525050565b5f602082019050611a8d5f830184611a6b565b92915050565b611a9c816117f5565b8114611aa6575f80fd5b50565b5f81359050611ab781611a93565b92915050565b5f8060408385031215611ad357611ad261176d565b5b5f611ae08582860161199e565b9250506020611af185828601611aa9565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b398261186a565b810181811067ffffffffffffffff82111715611b5857611b57611b03565b5b80604052505050565b5f611b6a611764565b9050611b768282611b30565b919050565b5f67ffffffffffffffff821115611b9557611b94611b03565b5b611b9e8261186a565b9050602081019050919050565b828183375f83830152505050565b5f611bcb611bc684611b7b565b611b61565b905082815260208101848484011115611be757611be6611aff565b5b611bf2848285611bab565b509392505050565b5f82601f830112611c0e57611c0d611afb565b5b8135611c1e848260208601611bb9565b91505092915050565b5f805f8060808587031215611c3f57611c3e61176d565b5b5f611c4c8782880161199e565b9450506020611c5d8782880161199e565b9350506040611c6e878288016118f1565b925050606085013567ffffffffffffffff811115611c8f57611c8e611771565b5b611c9b87828801611bfa565b91505092959194509250565b5f67ffffffffffffffff821115611cc157611cc0611b03565b5b611cca8261186a565b9050602081019050919050565b5f611ce9611ce484611ca7565b611b61565b905082815260208101848484011115611d0557611d04611aff565b5b611d10848285611bab565b509392505050565b5f82601f830112611d2c57611d2b611afb565b5b8135611d3c848260208601611cd7565b91505092915050565b5f8060408385031215611d5b57611d5a61176d565b5b5f611d688582860161199e565b925050602083013567ffffffffffffffff811115611d8957611d88611771565b5b611d9585828601611d18565b9150509250929050565b5f8060408385031215611db557611db461176d565b5b5f611dc28582860161199e565b9250506020611dd38582860161199e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611e2157607f821691505b602082108103611e3457611e33611ddd565b5b50919050565b5f606082019050611e4d5f830186611960565b611e5a6020830185611a6b565b611e676040830184611960565b949350505050565b5f81905092915050565b5f611e8382611828565b611e8d8185611e6f565b9350611e9d818560208601611842565b80840191505092915050565b5f611eb48285611e79565b9150611ec08284611e79565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ef082611ecc565b611efa8185611ed6565b9350611f0a818560208601611842565b611f138161186a565b840191505092915050565b5f608082019050611f315f830187611960565b611f3e6020830186611960565b611f4b6040830185611a6b565b8181036060830152611f5d8184611ee6565b905095945050505050565b5f81519050611f76816117a0565b92915050565b5f60208284031215611f9157611f9061176d565b5b5f611f9e84828501611f68565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026120037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611fc8565b61200d8683611fc8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61204861204361203e846118d2565b612025565b6118d2565b9050919050565b5f819050919050565b6120618361202e565b61207561206d8261204f565b848454611fd4565b825550505050565b5f90565b61208961207d565b612094818484612058565b505050565b5b818110156120b7576120ac5f82612081565b60018101905061209a565b5050565b601f8211156120fc576120cd81611fa7565b6120d684611fb9565b810160208510156120e5578190505b6120f96120f185611fb9565b830182612099565b50505b505050565b5f82821c905092915050565b5f61211c5f1984600802612101565b1980831691505092915050565b5f612134838361210d565b9150826002028217905092915050565b61214d82611828565b67ffffffffffffffff81111561216657612165611b03565b5b6121708254611e0a565b61217b8282856120bb565b5f60209050601f8311600181146121ac575f841561219a578287015190505b6121a48582612129565b86555061220b565b601f1984166121ba86611fa7565b5f5b828110156121e1578489015182556001820191506020850194506020810190506121bc565b868310156121fe57848901516121fa601f89168261210d565b8355505b6001600288020188555050505b505050505050565b5f6040820190506122265f830185611960565b6122336020830184611a6b565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffdfea264697066735822122031bb73dd9da8ee8fc83a5e39b070affb3518cab44253c4df7982d596b265d1db6468797063430000020033';
diff --git a/fixtures/contracts/Basic.hyp b/fixtures/contracts/Basic.hyp
index 560c647f..e2c53279 100644
--- a/fixtures/contracts/Basic.hyp
+++ b/fixtures/contracts/Basic.hyp
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: GNU
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.13;
+pragma hyperion >=0.0;
contract Basic {
uint256 intValue;
diff --git a/fixtures/contracts/DeployRevert.hyp b/fixtures/contracts/DeployRevert.hyp
index 86bda477..b296fc7e 100644
--- a/fixtures/contracts/DeployRevert.hyp
+++ b/fixtures/contracts/DeployRevert.hyp
@@ -1,9 +1,8 @@
// SPDX-License-Identifier: GNU
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.13;
+pragma hyperion >=0.0;
contract DeployRevert {
- constructor() public {
+ constructor() {
require(false);
}
}
diff --git a/fixtures/contracts/ERC20Token.hyp b/fixtures/contracts/ERC20Token.hyp
deleted file mode 100644
index 5a03ed38..00000000
--- a/fixtures/contracts/ERC20Token.hyp
+++ /dev/null
@@ -1,11 +0,0 @@
-// SPDX-License-Identifier: GNU
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.13;
-
-import '@openzeppelin/contracts/token/ERC20/ERC20.sol';
-
-contract ERC20Token is ERC20 {
- constructor(uint256 initialSupply) ERC20('Gold', 'GLD') {
- _mint(msg.sender, initialSupply);
- }
-}
diff --git a/fixtures/contracts/ErrorsContract.hyp b/fixtures/contracts/ErrorsContract.hyp
index 6860693c..bb9fd437 100644
--- a/fixtures/contracts/ErrorsContract.hyp
+++ b/fixtures/contracts/ErrorsContract.hyp
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: GNU
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.13;
+pragma hyperion >=0.0;
error Unauthorized();
error CustomError(string);
diff --git a/fixtures/contracts/Greeter.hyp b/fixtures/contracts/Greeter.hyp
index 7cf7e304..d4ed6ea9 100644
--- a/fixtures/contracts/Greeter.hyp
+++ b/fixtures/contracts/Greeter.hyp
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: GNU
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.13;
+pragma hyperion >=0.0;
contract Greeter {
uint256 counter;
diff --git a/fixtures/contracts/MsgSender.hyp b/fixtures/contracts/MsgSender.hyp
index 54f67050..5f0a6ffa 100644
--- a/fixtures/contracts/MsgSender.hyp
+++ b/fixtures/contracts/MsgSender.hyp
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: GNU
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.13;
+pragma hyperion >=0.0;
contract MsgSender {
string public testString;
diff --git a/fixtures/contracts/MyContract.hyp b/fixtures/contracts/MyContract.hyp
index dc7fce84..a8256649 100644
--- a/fixtures/contracts/MyContract.hyp
+++ b/fixtures/contracts/MyContract.hyp
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: GNU
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.13;
+pragma hyperion >=0.0;
contract MyContract {
string private myAttribute;
diff --git a/fixtures/contracts/NegativeNumbers.hyp b/fixtures/contracts/NegativeNumbers.hyp
index cd4b357b..b83aa3c8 100644
--- a/fixtures/contracts/NegativeNumbers.hyp
+++ b/fixtures/contracts/NegativeNumbers.hyp
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: MIT
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion 0.8.13;
+pragma hyperion >=0.0;
contract NegativeNumbers {
int256 public storedNegativeNumber;
diff --git a/fixtures/contracts/ZRC20Token.hyp b/fixtures/contracts/ZRC20Token.hyp
new file mode 100644
index 00000000..b2bf722b
--- /dev/null
+++ b/fixtures/contracts/ZRC20Token.hyp
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: GNU
+pragma hyperion >=0.0;
+
+import '@theqrl/zond-contracts/token/ZRC20/ZRC20.hyp';
+
+contract ZRC20Token is ZRC20 {
+ constructor(uint256 initialSupply) ZRC20('Gold', 'GLD') {
+ _mint(msg.sender, initialSupply);
+ }
+}
diff --git a/fixtures/contracts/ERC721Token.hyp b/fixtures/contracts/ZRC721Token.hyp
similarity index 55%
rename from fixtures/contracts/ERC721Token.hyp
rename to fixtures/contracts/ZRC721Token.hyp
index 2a718c06..0d2fd641 100644
--- a/fixtures/contracts/ERC721Token.hyp
+++ b/fixtures/contracts/ZRC721Token.hyp
@@ -1,15 +1,14 @@
// SPDX-License-Identifier: GNU
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.13;
+pragma hyperion >=0.0;
-import '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol';
-import '@openzeppelin/contracts/utils/Counters.sol';
+import '@theqrl/zond-contracts/token/ZRC721/extensions/ZRC721URIStorage.hyp';
+import '@theqrl/zond-contracts/utils/Counters.hyp';
-contract ERC721Token is ERC721URIStorage {
+contract ZRC721Token is ZRC721URIStorage {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
- constructor() ERC721('GameItem', 'ITM') {}
+ constructor() ZRC721('GameItem', 'ITM') {}
function awardItem(address player, string memory tokenURI) public returns (uint256) {
uint256 newItemId = _tokenIds.current();
diff --git a/package.json b/package.json
index ab809dbf..4010cf66 100644
--- a/package.json
+++ b/package.json
@@ -80,7 +80,8 @@
"devDependencies": {
"@cypress/webpack-preprocessor": "^5.12.0",
"@droppedcode/typedoc-plugin-relative-includes": "^1.0.2",
- "@openzeppelin/contracts": "^4.7.1",
+ "@theqrl/hypc": "^0.0.2",
+ "@theqrl/zond-contracts": "file:../zond-contracts",
"@types/node": "^18.11.9",
"@types/webpack": "^5.28.0",
"assert": "^2.0.0",
@@ -99,9 +100,7 @@
"lerna": "^6.6.2",
"npm-auth-to-token": "^1.0.0",
"prettier": "^2.7.1",
- "prettier-plugin-solidity": "^1.0.0-beta.20",
"process": "^0.11.10",
- "solc": "^0.8.15",
"ts-jest": "^28.0.7",
"ts-loader": "^9.3.1",
"ts-node": "^10.9.1",
diff --git a/packages/abi/README.md b/packages/abi/README.md
index 7ce37d72..c23e1ce9 100644
--- a/packages/abi/README.md
+++ b/packages/abi/README.md
@@ -1,5 +1,4 @@
-Zond ABI Coder
-==================
+# Zond ABI Coder
This sub-module is part of the [ethers project](https://github.com/ethers-io/ethers.js).
@@ -8,45 +7,41 @@ used by most smart contracts to interoperate between other smart contracts and c
For more information, see the [documentation](https://docs.ethers.io/v5/api/utils/abi/).
-Importing
----------
+## Importing
Most users will prefer to use the [umbrella package](https://www.npmjs.com/package/ethers),
but for those with more specific needs, individual components can be imported.
```javascript
const {
+ ConstructorFragment,
+ EventFragment,
+ Fragment,
+ FunctionFragment,
+ ParamType,
+ FormatTypes,
- ConstructorFragment,
- EventFragment,
- Fragment,
- FunctionFragment,
- ParamType,
- FormatTypes,
+ AbiCoder,
+ defaultAbiCoder,
- AbiCoder,
- defaultAbiCoder,
+ Interface,
+ Indexed,
- Interface,
- Indexed,
+ /////////////////////////
+ // Types
- /////////////////////////
- // Types
+ CoerceFunc,
+ JsonFragment,
+ JsonFragmentType,
- CoerceFunc,
- JsonFragment,
- JsonFragmentType,
+ Result,
+ checkResultErrors,
- Result,
- checkResultErrors,
-
- LogDescription,
- TransactionDescription
-
-} = require("@theqrl/abi");
+ LogDescription,
+ TransactionDescription,
+} = require('@theqrl/abi');
```
-License
--------
+## License
MIT License
diff --git a/packages/abi/package.json b/packages/abi/package.json
index bbb2531b..6ab528e9 100644
--- a/packages/abi/package.json
+++ b/packages/abi/package.json
@@ -1,9 +1,9 @@
{
- "name": "@theqrl/abi",
- "version": "0.1.0",
- "description": "Utilities and Classes for parsing, formatting and managing Zond ABIs.",
- "license": "MIT",
- "main": "./lib/commonjs/index.js",
+ "name": "@theqrl/abi",
+ "version": "0.1.0",
+ "description": "Utilities and Classes for parsing, formatting and managing Zond ABIs.",
+ "license": "MIT",
+ "main": "./lib/commonjs/index.js",
"module": "./lib/esm/index.js",
"exports": {
".": {
@@ -12,19 +12,19 @@
"require": "./lib/commonjs/index.js"
}
},
- "files": [
+ "files": [
"lib/**/*",
"src/**/*"
],
- "publishConfig": {
- "access": "public"
- },
- "repository": {
- "directory": "packages/abi",
- "type": "git",
- "url": "git://github.com/ethers-io/ethers.js.git"
- },
- "scripts": {
+ "publishConfig": {
+ "access": "public"
+ },
+ "repository": {
+ "directory": "packages/abi",
+ "type": "git",
+ "url": "git://github.com/ethers-io/ethers.js.git"
+ },
+ "scripts": {
"clean": "rimraf dist && rimraf lib",
"prebuild": "yarn clean",
"build": "yarn build:cjs & yarn build:esm & yarn build:types",
@@ -43,20 +43,20 @@
"test:unit": "jest --config=./test/unit/jest.config.js",
"test:integration": "jest --config=./test/integration/jest.config.js --passWithNoTests"
},
- "sideEffects": false,
- "dependencies": {
- "@ethersproject/address": "^5.7.0",
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/constants": "^5.7.0",
- "@ethersproject/hash": "^5.7.0",
- "@ethersproject/keccak256": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/strings": "^5.7.0",
- "@theqrl/web3-utils": "^0.3.0"
- },
- "devDependencies": {
+ "sideEffects": false,
+ "dependencies": {
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/hash": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0",
+ "@theqrl/web3-utils": "^0.3.0"
+ },
+ "devDependencies": {
"@theqrl/eslint-config-base-web3": "^0.3.0",
"@types/jest": "^28.1.6",
"@typescript-eslint/eslint-plugin": "^5.30.7",
diff --git a/packages/abi/src/_version.ts b/packages/abi/src/_version.ts
index b5869f53..16b63e20 100644
--- a/packages/abi/src/_version.ts
+++ b/packages/abi/src/_version.ts
@@ -1 +1,17 @@
-export const version = "abi/5.7.0";
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+export const version = 'abi/5.7.0';
diff --git a/packages/abi/src/abi-coder.ts b/packages/abi/src/abi-coder.ts
index 9056ae91..28024f11 100644
--- a/packages/abi/src/abi-coder.ts
+++ b/packages/abi/src/abi-coder.ts
@@ -1,123 +1,142 @@
-"use strict";
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI
-import { arrayify, BytesLike } from "@ethersproject/bytes";
-import { defineReadOnly } from "@ethersproject/properties";
+import { arrayify, BytesLike } from '@ethersproject/bytes';
+import { defineReadOnly } from '@ethersproject/properties';
-import { Logger } from "@ethersproject/logger";
-import { version } from "./_version";
-const logger = new Logger(version);
+import { Logger } from '@ethersproject/logger';
+import { version } from './_version.js';
-import { Coder, Reader, Result, Writer } from "./coders/abstract-coder";
-import { AddressCoder } from "./coders/address";
-import { ArrayCoder } from "./coders/array";
-import { BooleanCoder } from "./coders/boolean";
-import { BytesCoder } from "./coders/bytes";
-import { FixedBytesCoder } from "./coders/fixed-bytes";
-import { NullCoder } from "./coders/null";
-import { NumberCoder } from "./coders/number";
-import { StringCoder } from "./coders/string";
-import { TupleCoder } from "./coders/tuple";
+import { Coder, Reader, Result, Writer } from './coders/abstract-coder.js';
+import { AddressCoder } from './coders/address.js';
+import { ArrayCoder } from './coders/array.js';
+import { BooleanCoder } from './coders/boolean.js';
+import { BytesCoder } from './coders/bytes.js';
+import { FixedBytesCoder } from './coders/fixed-bytes.js';
+import { NullCoder } from './coders/null.js';
+import { NumberCoder } from './coders/number.js';
+import { StringCoder } from './coders/string.js';
+import { TupleCoder } from './coders/tuple.js';
-import { ParamType } from "./fragments";
+import { ParamType } from './fragments.js';
+const logger = new Logger(version);
const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
-
export type CoerceFunc = (type: string, value: any) => any;
export class AbiCoder {
- readonly coerceFunc: CoerceFunc;
-
- constructor(coerceFunc?: CoerceFunc) {
- defineReadOnly(this, "coerceFunc", coerceFunc || null);
- }
-
- _getCoder(param: ParamType): Coder {
-
- switch (param.baseType) {
- case "address":
- return new AddressCoder(param.name);
- case "bool":
- return new BooleanCoder(param.name);
- case "string":
- return new StringCoder(param.name);
- case "bytes":
- return new BytesCoder(param.name);
- case "array":
- return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);
- case "tuple":
- return new TupleCoder((param.components || []).map((component) => {
- return this._getCoder(component);
- }), param.name);
- case "":
- return new NullCoder(param.name);
- }
-
- // u?int[0-9]*
- let match = param.type.match(paramTypeNumber);
- if (match) {
- let size = parseInt(match[2] || "256");
- if (size === 0 || size > 256 || (size % 8) !== 0) {
- logger.throwArgumentError("invalid " + match[1] + " bit length", "param", param);
- }
- return new NumberCoder(size / 8, (match[1] === "int"), param.name);
- }
-
- // bytes[0-9]+
- match = param.type.match(paramTypeBytes);
- if (match) {
- let size = parseInt(match[1]);
- if (size === 0 || size > 32) {
- logger.throwArgumentError("invalid bytes length", "param", param);
- }
- return new FixedBytesCoder(size, param.name);
- }
-
- return logger.throwArgumentError("invalid type", "type", param.type);
- }
-
- _getWordSize(): number { return 32; }
-
- _getReader(data: Uint8Array, allowLoose?: boolean): Reader {
- return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);
- }
-
- _getWriter(): Writer {
- return new Writer(this._getWordSize());
- }
-
- getDefaultValue(types: ReadonlyArray): Result {
- const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));
- const coder = new TupleCoder(coders, "_");
- return coder.defaultValue();
- }
-
- encode(types: ReadonlyArray, values: ReadonlyArray): string {
- if (types.length !== values.length) {
- logger.throwError("types/values length mismatch", Logger.errors.INVALID_ARGUMENT, {
- count: { types: types.length, values: values.length },
- value: { types: types, values: values }
- });
- }
-
- const coders = types.map((type) => this._getCoder(ParamType.from(type)));
- const coder = (new TupleCoder(coders, "_"));
-
- const writer = this._getWriter();
- coder.encode(writer, values);
- return writer.data;
- }
-
- decode(types: ReadonlyArray, data: BytesLike, loose?: boolean): Result {
- const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));
- const coder = new TupleCoder(coders, "_");
- return coder.decode(this._getReader(arrayify(data), loose));
- }
+ readonly coerceFunc: CoerceFunc;
+
+ constructor(coerceFunc?: CoerceFunc) {
+ defineReadOnly(this, 'coerceFunc', coerceFunc || null);
+ }
+
+ _getCoder(param: ParamType): Coder {
+ switch (param.baseType) {
+ case 'address':
+ return new AddressCoder(param.name);
+ case 'bool':
+ return new BooleanCoder(param.name);
+ case 'string':
+ return new StringCoder(param.name);
+ case 'bytes':
+ return new BytesCoder(param.name);
+ case 'array':
+ return new ArrayCoder(
+ this._getCoder(param.arrayChildren),
+ param.arrayLength,
+ param.name,
+ );
+ case 'tuple':
+ return new TupleCoder(
+ (param.components || []).map(component => this._getCoder(component)),
+ param.name,
+ );
+ case '':
+ return new NullCoder(param.name);
+ }
+
+ // u?int[0-9]*
+ let match = param.type.match(paramTypeNumber);
+ if (match) {
+ const size = parseInt(match[2] || '256');
+ if (size === 0 || size > 256 || size % 8 !== 0) {
+ logger.throwArgumentError(`invalid ${match[1]} bit length`, 'param', param);
+ }
+ return new NumberCoder(size / 8, match[1] === 'int', param.name);
+ }
+
+ // bytes[0-9]+
+ match = param.type.match(paramTypeBytes);
+ if (match) {
+ const size = parseInt(match[1]);
+ if (size === 0 || size > 32) {
+ logger.throwArgumentError('invalid bytes length', 'param', param);
+ }
+ return new FixedBytesCoder(size, param.name);
+ }
+
+ return logger.throwArgumentError('invalid type', 'type', param.type);
+ }
+
+ _getWordSize(): number {
+ return 32;
+ }
+
+ _getReader(data: Uint8Array, allowLoose?: boolean): Reader {
+ return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);
+ }
+
+ _getWriter(): Writer {
+ return new Writer(this._getWordSize());
+ }
+
+ getDefaultValue(types: ReadonlyArray): Result {
+ const coders: Array = types.map(type => this._getCoder(ParamType.from(type)));
+ const coder = new TupleCoder(coders, '_');
+ return coder.defaultValue();
+ }
+
+ encode(types: ReadonlyArray, values: ReadonlyArray): string {
+ if (types.length !== values.length) {
+ logger.throwError('types/values length mismatch', Logger.errors.INVALID_ARGUMENT, {
+ count: { types: types.length, values: values.length },
+ value: { types, values },
+ });
+ }
+
+ const coders = types.map(type => this._getCoder(ParamType.from(type)));
+ const coder = new TupleCoder(coders, '_');
+
+ const writer = this._getWriter();
+ coder.encode(writer, values);
+ return writer.data;
+ }
+
+ decode(types: ReadonlyArray, data: BytesLike, loose?: boolean): Result {
+ const coders: Array = types.map(type => this._getCoder(ParamType.from(type)));
+ const coder = new TupleCoder(coders, '_');
+ return coder.decode(this._getReader(arrayify(data), loose));
+ }
}
export const defaultAbiCoder: AbiCoder = new AbiCoder();
-
diff --git a/packages/abi/src/coders/abstract-coder.ts b/packages/abi/src/coders/abstract-coder.ts
index 6bde17b6..e4a7df13 100644
--- a/packages/abi/src/coders/abstract-coder.ts
+++ b/packages/abi/src/coders/abstract-coder.ts
@@ -1,207 +1,240 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { arrayify, BytesLike, concat, hexConcat, hexlify } from "@ethersproject/bytes";
-import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
-import { defineReadOnly } from "@ethersproject/properties";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
-import { Logger } from "@ethersproject/logger";
-import { version } from "../_version";
-const logger = new Logger(version);
+web3.js 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 Lesser General Public License for more details.
-export interface Result extends ReadonlyArray {
- readonly [key: string]: any;
-}
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
-export function checkResultErrors(result: Result): Array<{ path: Array, error: Error }> {
- // Find the first error (if any)
- const errors: Array<{ path: Array, error: Error }> = [ ];
+import { arrayify, BytesLike, concat, hexConcat, hexlify } from '@ethersproject/bytes';
+import { BigNumber, BigNumberish } from '@ethersproject/bignumber';
+import { defineReadOnly } from '@ethersproject/properties';
- const checkErrors = function(path: Array, object: any): void {
- if (!Array.isArray(object)) { return; }
- for (let key in object) {
- const childPath = path.slice();
- childPath.push(key);
+import { Logger } from '@ethersproject/logger';
+import { version } from '../_version.js';
- try {
- checkErrors(childPath, object[key]);
- } catch (error: any) {
- errors.push({ path: childPath, error: error });
- }
- }
- }
- checkErrors([ ], result);
+const logger = new Logger(version);
- return errors;
+export interface Result extends ReadonlyArray {
+ readonly [key: string]: any;
+}
+export function checkResultErrors(
+ result: Result,
+): Array<{ path: Array; error: Error }> {
+ // Find the first error (if any)
+ const errors: Array<{ path: Array; error: Error }> = [];
+
+ const checkErrors = function (path: Array, object: any): void {
+ if (!Array.isArray(object)) {
+ return;
+ }
+ for (const key in object) {
+ const childPath = path.slice();
+ childPath.push(key);
+
+ try {
+ checkErrors(childPath, object[key]);
+ } catch (error: any) {
+ errors.push({ path: childPath, error });
+ }
+ }
+ };
+ checkErrors([], result);
+
+ return errors;
}
export type CoerceFunc = (type: string, value: any) => any;
export abstract class Coder {
-
- // The coder name:
- // - address, uint256, tuple, array, etc.
- readonly name: string;
-
- // The fully expanded type, including composite types:
- // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.
- readonly type: string;
-
- // The localName bound in the signature, in this example it is "baz":
- // - tuple(address foo, uint bar) baz
- readonly localName: string;
-
- // Whether this type is dynamic:
- // - Dynamic: bytes, string, address[], tuple(boolean[]), etc.
- // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8)
- readonly dynamic: boolean;
-
- constructor(name: string, type: string, localName: string, dynamic: boolean) {
- // @TODO: defineReadOnly these
- this.name = name;
- this.type = type;
- this.localName = localName;
- this.dynamic = dynamic;
- }
-
- _throwError(message: string, value: any): void {
- logger.throwArgumentError(message, this.localName, value);
- }
-
- abstract encode(writer: Writer, value: any): number;
- abstract decode(reader: Reader): any;
-
- abstract defaultValue(): any;
+ // The coder name:
+ // - address, uint256, tuple, array, etc.
+ readonly name: string;
+
+ // The fully expanded type, including composite types:
+ // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.
+ readonly type: string;
+
+ // The localName bound in the signature, in this example it is "baz":
+ // - tuple(address foo, uint bar) baz
+ readonly localName: string;
+
+ // Whether this type is dynamic:
+ // - Dynamic: bytes, string, address[], tuple(boolean[]), etc.
+ // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8)
+ readonly dynamic: boolean;
+
+ constructor(name: string, type: string, localName: string, dynamic: boolean) {
+ // @TODO: defineReadOnly these
+ this.name = name;
+ this.type = type;
+ this.localName = localName;
+ this.dynamic = dynamic;
+ }
+
+ _throwError(message: string, value: any): void {
+ logger.throwArgumentError(message, this.localName, value);
+ }
+
+ abstract encode(writer: Writer, value: any): number;
+ abstract decode(reader: Reader): any;
+
+ abstract defaultValue(): any;
}
export class Writer {
- readonly wordSize: number;
-
- _data: Array;
- _dataLength: number;
- _padding: Uint8Array;
-
- constructor(wordSize?: number) {
- defineReadOnly(this, "wordSize", wordSize || 32);
- this._data = [ ];
- this._dataLength = 0;
- this._padding = new Uint8Array(wordSize);
- }
-
- get data(): string {
- return hexConcat(this._data);
- }
- get length(): number { return this._dataLength; }
-
- _writeData(data: Uint8Array): number {
- this._data.push(data);
- this._dataLength += data.length;
- return data.length;
- }
-
- appendWriter(writer: Writer): number {
- return this._writeData(concat(writer._data));
- }
-
- // Arrayish items; padded on the right to wordSize
- writeBytes(value: BytesLike): number {
- let bytes = arrayify(value);
- const paddingOffset = bytes.length % this.wordSize;
- if (paddingOffset) {
- bytes = concat([ bytes, this._padding.slice(paddingOffset) ])
- }
- return this._writeData(bytes);
- }
-
- _getValue(value: BigNumberish): Uint8Array {
- let bytes = arrayify(BigNumber.from(value));
- if (bytes.length > this.wordSize) {
- logger.throwError("value out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
- length: this.wordSize,
- offset: bytes.length
- });
- }
- if (bytes.length % this.wordSize) {
- bytes = concat([ this._padding.slice(bytes.length % this.wordSize), bytes ]);
- }
- return bytes;
- }
-
- // BigNumberish items; padded on the left to wordSize
- writeValue(value: BigNumberish): number {
- return this._writeData(this._getValue(value));
- }
-
- writeUpdatableValue(): (value: BigNumberish) => void {
- const offset = this._data.length;
- this._data.push(this._padding);
- this._dataLength += this.wordSize;
- return (value: BigNumberish) => {
- this._data[offset] = this._getValue(value);
- };
- }
+ readonly wordSize: number;
+
+ _data: Array;
+ _dataLength: number;
+ _padding: Uint8Array;
+
+ constructor(wordSize?: number) {
+ defineReadOnly(this, 'wordSize', wordSize || 32);
+ this._data = [];
+ this._dataLength = 0;
+ this._padding = new Uint8Array(wordSize);
+ }
+
+ get data(): string {
+ return hexConcat(this._data);
+ }
+ get length(): number {
+ return this._dataLength;
+ }
+
+ _writeData(data: Uint8Array): number {
+ this._data.push(data);
+ this._dataLength += data.length;
+ return data.length;
+ }
+
+ appendWriter(writer: Writer): number {
+ return this._writeData(concat(writer._data));
+ }
+
+ // Arrayish items; padded on the right to wordSize
+ writeBytes(value: BytesLike): number {
+ let bytes = arrayify(value);
+ const paddingOffset = bytes.length % this.wordSize;
+ if (paddingOffset) {
+ bytes = concat([bytes, this._padding.slice(paddingOffset)]);
+ }
+ return this._writeData(bytes);
+ }
+
+ _getValue(value: BigNumberish): Uint8Array {
+ let bytes = arrayify(BigNumber.from(value));
+ if (bytes.length > this.wordSize) {
+ logger.throwError('value out-of-bounds', Logger.errors.BUFFER_OVERRUN, {
+ length: this.wordSize,
+ offset: bytes.length,
+ });
+ }
+ if (bytes.length % this.wordSize) {
+ bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);
+ }
+ return bytes;
+ }
+
+ // BigNumberish items; padded on the left to wordSize
+ writeValue(value: BigNumberish): number {
+ return this._writeData(this._getValue(value));
+ }
+
+ writeUpdatableValue(): (value: BigNumberish) => void {
+ const offset = this._data.length;
+ this._data.push(this._padding);
+ this._dataLength += this.wordSize;
+ return (value: BigNumberish) => {
+ this._data[offset] = this._getValue(value);
+ };
+ }
}
export class Reader {
- readonly wordSize: number;
- readonly allowLoose: boolean;
-
- readonly _data: Uint8Array;
- readonly _coerceFunc: CoerceFunc;
-
- _offset: number;
-
- constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean) {
- defineReadOnly(this, "_data", arrayify(data));
- defineReadOnly(this, "wordSize", wordSize || 32);
- defineReadOnly(this, "_coerceFunc", coerceFunc);
- defineReadOnly(this, "allowLoose", allowLoose);
-
- this._offset = 0;
- }
-
- get data(): string { return hexlify(this._data); }
- get consumed(): number { return this._offset; }
-
- // The default Coerce function
- static coerce(name: string, value: any): any {
- let match = name.match("^u?int([0-9]+)$");
- if (match && parseInt(match[1]) <= 48) { value = value.toNumber(); }
- return value;
- }
-
- coerce(name: string, value: any): any {
- if (this._coerceFunc) { return this._coerceFunc(name, value); }
- return Reader.coerce(name, value);
- }
-
- _peekBytes(offset: number, length: number, loose?: boolean): Uint8Array {
- let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;
- if (this._offset + alignedLength > this._data.length) {
- if (this.allowLoose && loose && this._offset + length <= this._data.length) {
- alignedLength = length;
- } else {
- logger.throwError("data out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
- length: this._data.length,
- offset: this._offset + alignedLength
- });
- }
- }
- return this._data.slice(this._offset, this._offset + alignedLength)
- }
-
- subReader(offset: number): Reader {
- return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);
- }
-
- readBytes(length: number, loose?: boolean): Uint8Array {
- let bytes = this._peekBytes(0, length, !!loose);
- this._offset += bytes.length;
- // @TODO: Make sure the length..end bytes are all 0?
- return bytes.slice(0, length);
- }
-
- readValue(): BigNumber {
- return BigNumber.from(this.readBytes(this.wordSize));
- }
+ readonly wordSize: number;
+ readonly allowLoose: boolean;
+
+ readonly _data: Uint8Array;
+ readonly _coerceFunc: CoerceFunc;
+
+ _offset: number;
+
+ constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean) {
+ defineReadOnly(this, '_data', arrayify(data));
+ defineReadOnly(this, 'wordSize', wordSize || 32);
+ defineReadOnly(this, '_coerceFunc', coerceFunc);
+ defineReadOnly(this, 'allowLoose', allowLoose);
+
+ this._offset = 0;
+ }
+
+ get data(): string {
+ return hexlify(this._data);
+ }
+ get consumed(): number {
+ return this._offset;
+ }
+
+ // The default Coerce function
+ static coerce(name: string, value: any): any {
+ const match = name.match('^u?int([0-9]+)$');
+ if (match && parseInt(match[1]) <= 48) {
+ value = value.toNumber();
+ }
+ return value;
+ }
+
+ coerce(name: string, value: any): any {
+ if (this._coerceFunc) {
+ return this._coerceFunc(name, value);
+ }
+ return Reader.coerce(name, value);
+ }
+
+ _peekBytes(offset: number, length: number, loose?: boolean): Uint8Array {
+ let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;
+ if (this._offset + alignedLength > this._data.length) {
+ if (this.allowLoose && loose && this._offset + length <= this._data.length) {
+ alignedLength = length;
+ } else {
+ logger.throwError('data out-of-bounds', Logger.errors.BUFFER_OVERRUN, {
+ length: this._data.length,
+ offset: this._offset + alignedLength,
+ });
+ }
+ }
+ return this._data.slice(this._offset, this._offset + alignedLength);
+ }
+
+ subReader(offset: number): Reader {
+ return new Reader(
+ this._data.slice(this._offset + offset),
+ this.wordSize,
+ this._coerceFunc,
+ this.allowLoose,
+ );
+ }
+
+ readBytes(length: number, loose?: boolean): Uint8Array {
+ const bytes = this._peekBytes(0, length, !!loose);
+ this._offset += bytes.length;
+ // @TODO: Make sure the length..end bytes are all 0?
+ return bytes.slice(0, length);
+ }
+
+ readValue(): BigNumber {
+ return BigNumber.from(this.readBytes(this.wordSize));
+ }
}
diff --git a/packages/abi/src/coders/address.ts b/packages/abi/src/coders/address.ts
index 5208cee5..ab6afe4d 100644
--- a/packages/abi/src/coders/address.ts
+++ b/packages/abi/src/coders/address.ts
@@ -1,32 +1,45 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { getAddress } from "@ethersproject/address";
-import { hexZeroPad } from "@ethersproject/bytes";
-import { hexToAddress, addressToHex } from "@theqrl/web3-utils";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
-import { Coder, Reader, Writer } from "./abstract-coder";
+web3.js 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 Lesser General Public License for more details.
-export class AddressCoder extends Coder {
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
- constructor(localName: string) {
- super("address", "address", localName, false);
- }
-
- defaultValue(): string {
- return "Z0000000000000000000000000000000000000000";
- }
-
- encode(writer: Writer, value: string): number {
- try {
- value = getAddress(addressToHex(value))
- } catch (error: any) {
- this._throwError(error.message, value);
- }
- return writer.writeValue(value);
- }
-
- decode(reader: Reader): any {
- return hexToAddress(getAddress(hexZeroPad(reader.readValue().toHexString(), 20)));
- }
-}
+import { getAddress } from '@ethersproject/address';
+import { hexZeroPad } from '@ethersproject/bytes';
+import { hexToAddress, addressToHex } from '@theqrl/web3-utils';
+
+import { Coder, Reader, Writer } from './abstract-coder.js';
+export class AddressCoder extends Coder {
+ constructor(localName: string) {
+ super('address', 'address', localName, false);
+ }
+
+ defaultValue(): string {
+ return 'Z0000000000000000000000000000000000000000';
+ }
+
+ encode(writer: Writer, value: string): number {
+ try {
+ value = getAddress(addressToHex(value));
+ } catch (error: any) {
+ this._throwError(error.message, value);
+ }
+ return writer.writeValue(value);
+ }
+
+ decode(reader: Reader): any {
+ return hexToAddress(getAddress(hexZeroPad(reader.readValue().toHexString(), 20)));
+ }
+}
diff --git a/packages/abi/src/coders/anonymous.ts b/packages/abi/src/coders/anonymous.ts
index 9bf778e6..d5c26025 100644
--- a/packages/abi/src/coders/anonymous.ts
+++ b/packages/abi/src/coders/anonymous.ts
@@ -1,25 +1,40 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { Coder, Reader, Writer } from "./abstract-coder";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+
+import { Coder, Reader, Writer } from './abstract-coder.js';
// Clones the functionality of an existing Coder, but without a localName
export class AnonymousCoder extends Coder {
- private coder: Coder;
+ private readonly coder: Coder;
- constructor(coder: Coder) {
- super(coder.name, coder.type, undefined, coder.dynamic);
- this.coder = coder;
- }
+ constructor(coder: Coder) {
+ super(coder.name, coder.type, undefined, coder.dynamic);
+ this.coder = coder;
+ }
- defaultValue(): any {
- return this.coder.defaultValue();
- }
+ defaultValue(): any {
+ return this.coder.defaultValue();
+ }
- encode(writer: Writer, value: any): number {
- return this.coder.encode(writer, value);
- }
+ encode(writer: Writer, value: any): number {
+ return this.coder.encode(writer, value);
+ }
- decode(reader: Reader): any {
- return this.coder.decode(reader);
- }
+ decode(reader: Reader): any {
+ return this.coder.decode(reader);
+ }
}
diff --git a/packages/abi/src/coders/array.ts b/packages/abi/src/coders/array.ts
index 73bf46e6..6462797e 100644
--- a/packages/abi/src/coders/array.ts
+++ b/packages/abi/src/coders/array.ts
@@ -1,236 +1,284 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { Logger } from "@ethersproject/logger";
-import { version } from "../_version";
-const logger = new Logger(version);
-
-import { Coder, Reader, Result, Writer } from "./abstract-coder";
-import { AnonymousCoder } from "./anonymous";
-
-export function pack(writer: Writer, coders: ReadonlyArray, values: Array | { [ name: string ]: any }): number {
- let arrayValues: Array = null;
-
- if (Array.isArray(values)) {
- arrayValues = values;
-
- } else if (values && typeof(values) === "object") {
- let unique: { [ name: string ]: boolean } = { };
-
- arrayValues = coders.map((coder) => {
- const name = coder.localName;
- if (!name) {
- logger.throwError("cannot encode object for signature with missing names", Logger.errors.INVALID_ARGUMENT, {
- argument: "values",
- coder: coder,
- value: values
- });
- }
-
- if (unique[name]) {
- logger.throwError("cannot encode object for signature with duplicate names", Logger.errors.INVALID_ARGUMENT, {
- argument: "values",
- coder: coder,
- value: values
- });
- }
-
- unique[name] = true;
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
- return values[name];
- });
+web3.js 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 Lesser General Public License for more details.
- } else {
- logger.throwArgumentError("invalid tuple value", "tuple", values);
- }
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
- if (coders.length !== arrayValues.length) {
- logger.throwArgumentError("types/value length mismatch", "tuple", values);
- }
+import { Logger } from '@ethersproject/logger';
+import { version } from '../_version.js';
- let staticWriter = new Writer(writer.wordSize);
- let dynamicWriter = new Writer(writer.wordSize);
+import { Coder, Reader, Result, Writer } from './abstract-coder.js';
+import { AnonymousCoder } from './anonymous.js';
- let updateFuncs: Array<(baseOffset: number) => void> = [];
- coders.forEach((coder, index) => {
- let value = arrayValues[index];
-
- if (coder.dynamic) {
- // Get current dynamic offset (for the future pointer)
- let dynamicOffset = dynamicWriter.length;
-
- // Encode the dynamic value into the dynamicWriter
- coder.encode(dynamicWriter, value);
-
- // Prepare to populate the correct offset once we are done
- let updateFunc = staticWriter.writeUpdatableValue();
- updateFuncs.push((baseOffset: number) => {
- updateFunc(baseOffset + dynamicOffset);
- });
-
- } else {
- coder.encode(staticWriter, value);
- }
- });
-
- // Backfill all the dynamic offsets, now that we know the static length
- updateFuncs.forEach((func) => { func(staticWriter.length); });
+const logger = new Logger(version);
- let length = writer.appendWriter(staticWriter);
- length += writer.appendWriter(dynamicWriter);
- return length;
+export function pack(
+ writer: Writer,
+ coders: ReadonlyArray,
+ values: Array | { [name: string]: any },
+): number {
+ let arrayValues: Array = null;
+
+ if (Array.isArray(values)) {
+ arrayValues = values;
+ } else if (values && typeof values === 'object') {
+ const unique: { [name: string]: boolean } = {};
+
+ arrayValues = coders.map(coder => {
+ const name = coder.localName;
+ if (!name) {
+ logger.throwError(
+ 'cannot encode object for signature with missing names',
+ Logger.errors.INVALID_ARGUMENT,
+ {
+ argument: 'values',
+ coder,
+ value: values,
+ },
+ );
+ }
+
+ if (unique[name]) {
+ logger.throwError(
+ 'cannot encode object for signature with duplicate names',
+ Logger.errors.INVALID_ARGUMENT,
+ {
+ argument: 'values',
+ coder,
+ value: values,
+ },
+ );
+ }
+
+ unique[name] = true;
+
+ return values[name];
+ });
+ } else {
+ logger.throwArgumentError('invalid tuple value', 'tuple', values);
+ }
+
+ if (coders.length !== arrayValues.length) {
+ logger.throwArgumentError('types/value length mismatch', 'tuple', values);
+ }
+
+ const staticWriter = new Writer(writer.wordSize);
+ const dynamicWriter = new Writer(writer.wordSize);
+
+ const updateFuncs: Array<(baseOffset: number) => void> = [];
+ coders.forEach((coder, index) => {
+ const value = arrayValues[index];
+
+ if (coder.dynamic) {
+ // Get current dynamic offset (for the future pointer)
+ const dynamicOffset = dynamicWriter.length;
+
+ // Encode the dynamic value into the dynamicWriter
+ coder.encode(dynamicWriter, value);
+
+ // Prepare to populate the correct offset once we are done
+ const updateFunc = staticWriter.writeUpdatableValue();
+ updateFuncs.push((baseOffset: number) => {
+ updateFunc(baseOffset + dynamicOffset);
+ });
+ } else {
+ coder.encode(staticWriter, value);
+ }
+ });
+
+ // Backfill all the dynamic offsets, now that we know the static length
+ updateFuncs.forEach(func => {
+ func(staticWriter.length);
+ });
+
+ let length = writer.appendWriter(staticWriter);
+ length += writer.appendWriter(dynamicWriter);
+ return length;
}
export function unpack(reader: Reader, coders: Array): Result {
- let values: any = [];
-
- // A reader anchored to this base
- let baseReader = reader.subReader(0);
-
- coders.forEach((coder) => {
- let value: any = null;
-
- if (coder.dynamic) {
- let offset = reader.readValue();
- let offsetReader = baseReader.subReader(offset.toNumber());
- try {
- value = coder.decode(offsetReader);
- } catch (error: any) {
- // Cannot recover from this
- if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }
- value = error;
- value.baseType = coder.name;
- value.name = coder.localName;
- value.type = coder.type;
- }
-
- } else {
- try {
- value = coder.decode(reader);
- } catch (error: any) {
- // Cannot recover from this
- if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }
- value = error;
- value.baseType = coder.name;
- value.name = coder.localName;
- value.type = coder.type;
- }
- }
-
- if (value != undefined) {
- values.push(value);
- }
- });
-
- // We only output named properties for uniquely named coders
- const uniqueNames = coders.reduce((accum, coder) => {
- const name = coder.localName;
- if (name) {
- if (!accum[name]) { accum[name] = 0; }
- accum[name]++;
- }
- return accum;
- }, <{ [ name: string ]: number }>{ });
-
- // Add any named parameters (i.e. tuples)
- coders.forEach((coder: Coder, index: number) => {
- let name = coder.localName;
- if (!name || uniqueNames[name] !== 1) { return; }
-
- if (name === "length") { name = "_length"; }
-
- if (values[name] != null) { return; }
-
- const value = values[index];
-
- if (value instanceof Error) {
- Object.defineProperty(values, name, {
- enumerable: true,
- get: () => { throw value; }
- });
- } else {
- values[name] = value;
- }
- });
-
- for (let i = 0; i < values.length; i++) {
- const value = values[i];
- if (value instanceof Error) {
- Object.defineProperty(values, i, {
- enumerable: true,
- get: () => { throw value; }
- });
- }
- }
-
- return Object.freeze(values);
+ const values: any = [];
+
+ // A reader anchored to this base
+ const baseReader = reader.subReader(0);
+
+ coders.forEach(coder => {
+ let value: any = null;
+
+ if (coder.dynamic) {
+ const offset = reader.readValue();
+ const offsetReader = baseReader.subReader(offset.toNumber());
+ try {
+ value = coder.decode(offsetReader);
+ } catch (error: any) {
+ // Cannot recover from this
+ if (error.code === Logger.errors.BUFFER_OVERRUN) {
+ throw error;
+ }
+ value = error;
+ value.baseType = coder.name;
+ value.name = coder.localName;
+ value.type = coder.type;
+ }
+ } else {
+ try {
+ value = coder.decode(reader);
+ } catch (error: any) {
+ // Cannot recover from this
+ if (error.code === Logger.errors.BUFFER_OVERRUN) {
+ throw error;
+ }
+ value = error;
+ value.baseType = coder.name;
+ value.name = coder.localName;
+ value.type = coder.type;
+ }
+ }
+
+ if (value != undefined) {
+ values.push(value);
+ }
+ });
+
+ // We only output named properties for uniquely named coders
+ const uniqueNames = coders.reduce<{ [name: string]: number }>((accum, coder) => {
+ const name = coder.localName;
+ if (name) {
+ if (!accum[name]) {
+ accum[name] = 0;
+ }
+ accum[name]++;
+ }
+ return accum;
+ }, {});
+
+ // Add any named parameters (i.e. tuples)
+ coders.forEach((coder: Coder, index: number) => {
+ let name = coder.localName;
+ if (!name || uniqueNames[name] !== 1) {
+ return;
+ }
+
+ if (name === 'length') {
+ name = '_length';
+ }
+
+ if (values[name] != null) {
+ return;
+ }
+
+ const value = values[index];
+
+ if (value instanceof Error) {
+ Object.defineProperty(values, name, {
+ enumerable: true,
+ get: () => {
+ throw value;
+ },
+ });
+ } else {
+ values[name] = value;
+ }
+ });
+
+ for (let i = 0; i < values.length; i++) {
+ const value = values[i];
+ if (value instanceof Error) {
+ Object.defineProperty(values, i, {
+ enumerable: true,
+ get: () => {
+ throw value;
+ },
+ });
+ }
+ }
+
+ return Object.freeze(values);
}
-
export class ArrayCoder extends Coder {
- readonly coder: Coder;
- readonly length: number;
-
- constructor(coder: Coder, length: number, localName: string) {
- const type = (coder.type + "[" + (length >= 0 ? length: "") + "]");
- const dynamic = (length === -1 || coder.dynamic);
- super("array", type, localName, dynamic);
-
- this.coder = coder;
- this.length = length;
- }
-
- defaultValue(): Array {
- // Verifies the child coder is valid (even if the array is dynamic or 0-length)
- const defaultChild = this.coder.defaultValue();
-
- const result: Array = [];
- for (let i = 0; i < this.length; i++) {
- result.push(defaultChild);
- }
- return result;
- }
-
- encode(writer: Writer, value: Array): number {
- if (!Array.isArray(value)) {
- this._throwError("expected array value", value);
- }
-
- let count = this.length;
-
- if (count === -1) {
- count = value.length;
- writer.writeValue(value.length);
- }
-
- logger.checkArgumentCount(value.length, count, "coder array" + (this.localName? (" "+ this.localName): ""));
-
- let coders = [];
- for (let i = 0; i < value.length; i++) { coders.push(this.coder); }
-
- return pack(writer, coders, value);
- }
-
- decode(reader: Reader): any {
- let count = this.length;
- if (count === -1) {
- count = reader.readValue().toNumber();
-
- // Check that there is *roughly* enough data to ensure
- // stray random data is not being read as a length. Each
- // slot requires at least 32 bytes for their value (or 32
- // bytes as a link to the data). This could use a much
- // tighter bound, but we are erroring on the side of safety.
- if (count * 32 > reader._data.length) {
- logger.throwError("insufficient data length", Logger.errors.BUFFER_OVERRUN, {
- length: reader._data.length,
- count: count
- });
- }
- }
- let coders = [];
- for (let i = 0; i < count; i++) { coders.push(new AnonymousCoder(this.coder)); }
-
- return reader.coerce(this.name, unpack(reader, coders));
- }
+ readonly coder: Coder;
+ readonly length: number;
+
+ constructor(coder: Coder, length: number, localName: string) {
+ const type = `${coder.type}[${length >= 0 ? length : ''}]`;
+ const dynamic = length === -1 || coder.dynamic;
+ super('array', type, localName, dynamic);
+
+ this.coder = coder;
+ this.length = length;
+ }
+
+ defaultValue(): Array {
+ // Verifies the child coder is valid (even if the array is dynamic or 0-length)
+ const defaultChild = this.coder.defaultValue();
+
+ const result: Array = [];
+ for (let i = 0; i < this.length; i++) {
+ result.push(defaultChild);
+ }
+ return result;
+ }
+
+ encode(writer: Writer, value: Array): number {
+ if (!Array.isArray(value)) {
+ this._throwError('expected array value', value);
+ }
+
+ let count = this.length;
+
+ if (count === -1) {
+ count = value.length;
+ writer.writeValue(value.length);
+ }
+
+ logger.checkArgumentCount(
+ value.length,
+ count,
+ `coder array${this.localName ? ` ${this.localName}` : ''}`,
+ );
+
+ const coders = [];
+ for (let i = 0; i < value.length; i++) {
+ coders.push(this.coder);
+ }
+
+ return pack(writer, coders, value);
+ }
+
+ decode(reader: Reader): any {
+ let count = this.length;
+ if (count === -1) {
+ count = reader.readValue().toNumber();
+
+ // Check that there is *roughly* enough data to ensure
+ // stray random data is not being read as a length. Each
+ // slot requires at least 32 bytes for their value (or 32
+ // bytes as a link to the data). This could use a much
+ // tighter bound, but we are erroring on the side of safety.
+ if (count * 32 > reader._data.length) {
+ logger.throwError('insufficient data length', Logger.errors.BUFFER_OVERRUN, {
+ length: reader._data.length,
+ count,
+ });
+ }
+ }
+ const coders = [];
+ for (let i = 0; i < count; i++) {
+ coders.push(new AnonymousCoder(this.coder));
+ }
+
+ return reader.coerce(this.name, unpack(reader, coders));
+ }
}
-
diff --git a/packages/abi/src/coders/boolean.ts b/packages/abi/src/coders/boolean.ts
index ff3d1d80..bee909c5 100644
--- a/packages/abi/src/coders/boolean.ts
+++ b/packages/abi/src/coders/boolean.ts
@@ -1,23 +1,36 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { Coder, Reader, Writer } from "./abstract-coder";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
-export class BooleanCoder extends Coder {
+web3.js 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 Lesser General Public License for more details.
- constructor(localName: string) {
- super("bool", "bool", localName, false);
- }
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
- defaultValue(): boolean {
- return false;
- }
+import { Coder, Reader, Writer } from './abstract-coder.js';
- encode(writer: Writer, value: boolean): number {
- return writer.writeValue(value ? 1: 0);
- }
+export class BooleanCoder extends Coder {
+ constructor(localName: string) {
+ super('bool', 'bool', localName, false);
+ }
- decode(reader: Reader): any {
- return reader.coerce(this.type, !reader.readValue().isZero());
- }
-}
+ defaultValue(): boolean {
+ return false;
+ }
+ encode(writer: Writer, value: boolean): number {
+ return writer.writeValue(value ? 1 : 0);
+ }
+
+ decode(reader: Reader): any {
+ return reader.coerce(this.type, !reader.readValue().isZero());
+ }
+}
diff --git a/packages/abi/src/coders/bytes.ts b/packages/abi/src/coders/bytes.ts
index bc2b20a9..380609f3 100644
--- a/packages/abi/src/coders/bytes.ts
+++ b/packages/abi/src/coders/bytes.ts
@@ -1,38 +1,51 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { arrayify, hexlify } from "@ethersproject/bytes";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
-import { Coder, Reader, Writer } from "./abstract-coder";
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+
+import { arrayify, hexlify } from '@ethersproject/bytes';
+
+import { Coder, Reader, Writer } from './abstract-coder.js';
export class DynamicBytesCoder extends Coder {
- constructor(type: string, localName: string) {
- super(type, type, localName, true);
- }
-
- defaultValue(): string {
- return "0x";
- }
-
- encode(writer: Writer, value: any): number {
- value = arrayify(value);
- let length = writer.writeValue(value.length);
- length += writer.writeBytes(value);
- return length;
- }
-
- decode(reader: Reader): any {
- return reader.readBytes(reader.readValue().toNumber(), true);
- }
+ constructor(type: string, localName: string) {
+ super(type, type, localName, true);
+ }
+
+ defaultValue(): string {
+ return '0x';
+ }
+
+ encode(writer: Writer, value: any): number {
+ value = arrayify(value);
+ let length = writer.writeValue(value.length);
+ length += writer.writeBytes(value);
+ return length;
+ }
+
+ decode(reader: Reader): any {
+ return reader.readBytes(reader.readValue().toNumber(), true);
+ }
}
export class BytesCoder extends DynamicBytesCoder {
- constructor(localName: string) {
- super("bytes", localName);
- }
+ constructor(localName: string) {
+ super('bytes', localName);
+ }
- decode(reader: Reader): any {
- return reader.coerce(this.name, hexlify(super.decode(reader)));
- }
+ decode(reader: Reader): any {
+ return reader.coerce(this.name, hexlify(super.decode(reader)));
+ }
}
-
-
diff --git a/packages/abi/src/coders/fixed-bytes.ts b/packages/abi/src/coders/fixed-bytes.ts
index ebf4e23f..41803596 100644
--- a/packages/abi/src/coders/fixed-bytes.ts
+++ b/packages/abi/src/coders/fixed-bytes.ts
@@ -1,30 +1,50 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { arrayify, BytesLike, hexlify } from "@ethersproject/bytes";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
-import { Coder, Reader, Writer } from "./abstract-coder";
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+
+import { arrayify, BytesLike, hexlify } from '@ethersproject/bytes';
+
+import { Coder, Reader, Writer } from './abstract-coder.js';
// @TODO: Merge this with bytes
export class FixedBytesCoder extends Coder {
- readonly size: number;
-
- constructor(size: number, localName: string) {
- let name = "bytes" + String(size);
- super(name, name, localName, false);
- this.size = size;
- }
-
- defaultValue(): string {
- return ("0x0000000000000000000000000000000000000000000000000000000000000000").substring(0, 2 + this.size * 2);
- }
-
- encode(writer: Writer, value: BytesLike): number {
- let data = arrayify(value);
- if (data.length !== this.size) { this._throwError("incorrect data length", value); }
- return writer.writeBytes(data);
- }
-
- decode(reader: Reader): any {
- return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));
- }
+ readonly size: number;
+
+ constructor(size: number, localName: string) {
+ const name = `bytes${String(size)}`;
+ super(name, name, localName, false);
+ this.size = size;
+ }
+
+ defaultValue(): string {
+ return '0x0000000000000000000000000000000000000000000000000000000000000000'.substring(
+ 0,
+ 2 + this.size * 2,
+ );
+ }
+
+ encode(writer: Writer, value: BytesLike): number {
+ const data = arrayify(value);
+ if (data.length !== this.size) {
+ this._throwError('incorrect data length', value);
+ }
+ return writer.writeBytes(data);
+ }
+
+ decode(reader: Reader): any {
+ return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));
+ }
}
diff --git a/packages/abi/src/coders/null.ts b/packages/abi/src/coders/null.ts
index c7377bea..e85a216a 100644
--- a/packages/abi/src/coders/null.ts
+++ b/packages/abi/src/coders/null.ts
@@ -1,24 +1,40 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { Coder, Reader, Writer } from "./abstract-coder";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
-export class NullCoder extends Coder {
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
- constructor(localName: string) {
- super("null", "", localName, false);
- }
+import { Coder, Reader, Writer } from './abstract-coder.js';
+
+export class NullCoder extends Coder {
+ constructor(localName: string) {
+ super('null', '', localName, false);
+ }
- defaultValue(): null {
- return null;
- }
+ defaultValue(): null {
+ return null;
+ }
- encode(writer: Writer, value: any): number {
- if (value != null) { this._throwError("not null", value); }
- return writer.writeBytes([ ]);
- }
+ encode(writer: Writer, value: any): number {
+ if (value != null) {
+ this._throwError('not null', value);
+ }
+ return writer.writeBytes([]);
+ }
- decode(reader: Reader): any {
- reader.readBytes(0);
- return reader.coerce(this.name, null);
- }
+ decode(reader: Reader): any {
+ reader.readBytes(0);
+ return reader.coerce(this.name, null);
+ }
}
diff --git a/packages/abi/src/coders/number.ts b/packages/abi/src/coders/number.ts
index 031cbdc9..2fb7fd1e 100644
--- a/packages/abi/src/coders/number.ts
+++ b/packages/abi/src/coders/number.ts
@@ -1,57 +1,71 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
-import { MaxUint256, NegativeOne, One, Zero } from "@ethersproject/constants";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
-import { Coder, Reader, Writer } from "./abstract-coder";
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+
+import { BigNumber, BigNumberish } from '@ethersproject/bignumber';
+import { MaxUint256, NegativeOne, One, Zero } from '@ethersproject/constants';
+
+import { Coder, Reader, Writer } from './abstract-coder.js';
export class NumberCoder extends Coder {
- readonly size: number;
- readonly signed: boolean;
+ readonly size: number;
+ readonly signed: boolean;
- constructor(size: number, signed: boolean, localName: string) {
- const name = ((signed ? "int": "uint") + (size * 8));
- super(name, name, localName, false);
+ constructor(size: number, signed: boolean, localName: string) {
+ const name = (signed ? 'int' : 'uint') + size * 8;
+ super(name, name, localName, false);
- this.size = size;
- this.signed = signed;
- }
+ this.size = size;
+ this.signed = signed;
+ }
- defaultValue(): number {
- return 0;
- }
+ defaultValue(): number {
+ return 0;
+ }
- encode(writer: Writer, value: BigNumberish): number {
- let v = BigNumber.from(value);
+ encode(writer: Writer, value: BigNumberish): number {
+ let v = BigNumber.from(value);
- // Check bounds are safe for encoding
- let maxUintValue = MaxUint256.mask(writer.wordSize * 8);
- if (this.signed) {
- let bounds = maxUintValue.mask(this.size * 8 - 1);
- if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {
- this._throwError("value out-of-bounds", value);
- }
- } else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {
- this._throwError("value out-of-bounds", value);
- }
+ // Check bounds are safe for encoding
+ const maxUintValue = MaxUint256.mask(writer.wordSize * 8);
+ if (this.signed) {
+ const bounds = maxUintValue.mask(this.size * 8 - 1);
+ if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {
+ this._throwError('value out-of-bounds', value);
+ }
+ } else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {
+ this._throwError('value out-of-bounds', value);
+ }
- v = v.toTwos(this.size * 8).mask(this.size * 8);
+ v = v.toTwos(this.size * 8).mask(this.size * 8);
- if (this.signed) {
- v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);
- }
+ if (this.signed) {
+ v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);
+ }
- return writer.writeValue(v);
- }
+ return writer.writeValue(v);
+ }
- decode(reader: Reader): any {
- let value = reader.readValue().mask(this.size * 8);
+ decode(reader: Reader): any {
+ let value = reader.readValue().mask(this.size * 8);
- if (this.signed) {
- value = value.fromTwos(this.size * 8);
- }
+ if (this.signed) {
+ value = value.fromTwos(this.size * 8);
+ }
- return reader.coerce(this.name, value);
- }
+ return reader.coerce(this.name, value);
+ }
}
-
diff --git a/packages/abi/src/coders/string.ts b/packages/abi/src/coders/string.ts
index c2625f8a..515cf3bc 100644
--- a/packages/abi/src/coders/string.ts
+++ b/packages/abi/src/coders/string.ts
@@ -1,25 +1,39 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { toUtf8Bytes, toUtf8String } from "@ethersproject/strings";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
-import { Reader, Writer } from "./abstract-coder";
-import { DynamicBytesCoder } from "./bytes";
+web3.js 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 Lesser General Public License for more details.
-export class StringCoder extends DynamicBytesCoder {
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+
+import { toUtf8Bytes, toUtf8String } from '@ethersproject/strings';
- constructor(localName: string) {
- super("string", localName);
- }
+import { Reader, Writer } from './abstract-coder.js';
+import { DynamicBytesCoder } from './bytes.js';
+
+export class StringCoder extends DynamicBytesCoder {
+ constructor(localName: string) {
+ super('string', localName);
+ }
- defaultValue(): string {
- return "";
- }
+ defaultValue(): string {
+ return '';
+ }
- encode(writer: Writer, value: any): number {
- return super.encode(writer, toUtf8Bytes(value));
- }
+ encode(writer: Writer, value: any): number {
+ return super.encode(writer, toUtf8Bytes(value));
+ }
- decode(reader: Reader): any {
- return toUtf8String(super.decode(reader));
- }
+ decode(reader: Reader): any {
+ return toUtf8String(super.decode(reader));
+ }
}
diff --git a/packages/abi/src/coders/tuple.ts b/packages/abi/src/coders/tuple.ts
index 9b2cf5c1..1c455e62 100644
--- a/packages/abi/src/coders/tuple.ts
+++ b/packages/abi/src/coders/tuple.ts
@@ -1,61 +1,85 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { Coder, Reader, Writer } from "./abstract-coder";
-import { pack, unpack } from "./array";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+
+import { Coder, Reader, Writer } from './abstract-coder.js';
+import { pack, unpack } from './array.js';
export class TupleCoder extends Coder {
- readonly coders: Array;
-
- constructor(coders: Array, localName: string) {
- let dynamic = false;
- const types: Array = [];
- coders.forEach((coder) => {
- if (coder.dynamic) { dynamic = true; }
- types.push(coder.type);
- });
- const type = ("tuple(" + types.join(",") + ")");
-
- super("tuple", type, localName, dynamic);
- this.coders = coders;
- }
-
- defaultValue(): any {
- const values: any = [ ];
- this.coders.forEach((coder) => {
- values.push(coder.defaultValue());
- });
-
- // We only output named properties for uniquely named coders
- const uniqueNames = this.coders.reduce((accum, coder) => {
- const name = coder.localName;
- if (name) {
- if (!accum[name]) { accum[name] = 0; }
- accum[name]++;
- }
- return accum;
- }, <{ [ name: string ]: number }>{ });
-
- // Add named values
- this.coders.forEach((coder: Coder, index: number) => {
- let name = coder.localName;
- if (!name || uniqueNames[name] !== 1) { return; }
-
- if (name === "length") { name = "_length"; }
-
- if (values[name] != null) { return; }
-
- values[name] = values[index];
- });
-
- return Object.freeze(values);
- }
-
- encode(writer: Writer, value: Array | { [ name: string ]: any }): number {
- return pack(writer, this.coders, value);
- }
-
- decode(reader: Reader): any {
- return reader.coerce(this.name, unpack(reader, this.coders));
- }
-}
+ readonly coders: Array;
+
+ constructor(coders: Array, localName: string) {
+ let dynamic = false;
+ const types: Array = [];
+ coders.forEach(coder => {
+ if (coder.dynamic) {
+ dynamic = true;
+ }
+ types.push(coder.type);
+ });
+ const type = `tuple(${types.join(',')})`;
+
+ super('tuple', type, localName, dynamic);
+ this.coders = coders;
+ }
+
+ defaultValue(): any {
+ const values: any = [];
+ this.coders.forEach(coder => {
+ values.push(coder.defaultValue());
+ });
+
+ // We only output named properties for uniquely named coders
+ const uniqueNames = this.coders.reduce<{ [name: string]: number }>((accum, coder) => {
+ const name = coder.localName;
+ if (name) {
+ if (!accum[name]) {
+ accum[name] = 0;
+ }
+ accum[name]++;
+ }
+ return accum;
+ }, {});
+ // Add named values
+ this.coders.forEach((coder: Coder, index: number) => {
+ let name = coder.localName;
+ if (!name || uniqueNames[name] !== 1) {
+ return;
+ }
+
+ if (name === 'length') {
+ name = '_length';
+ }
+
+ if (values[name] != null) {
+ return;
+ }
+
+ values[name] = values[index];
+ });
+
+ return Object.freeze(values);
+ }
+
+ encode(writer: Writer, value: Array | { [name: string]: any }): number {
+ return pack(writer, this.coders, value);
+ }
+
+ decode(reader: Reader): any {
+ return reader.coerce(this.name, unpack(reader, this.coders));
+ }
+}
diff --git a/packages/abi/src/fragments.ts b/packages/abi/src/fragments.ts
index 65966200..280c8d55 100644
--- a/packages/abi/src/fragments.ts
+++ b/packages/abi/src/fragments.ts
@@ -1,1070 +1,1160 @@
-"use strict";
+/*
+This file is part of web3.js.
-import { BigNumber } from "@ethersproject/bignumber";
-import { defineReadOnly } from "@ethersproject/properties";
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+
+import { BigNumber } from '@ethersproject/bignumber';
+import { defineReadOnly } from '@ethersproject/properties';
+
+import { Logger } from '@ethersproject/logger';
+import { version } from './_version.js';
-import { Logger } from "@ethersproject/logger";
-import { version } from "./_version";
const logger = new Logger(version);
export interface JsonFragmentType {
- readonly name?: string;
- readonly indexed?: boolean;
- readonly type?: string;
- readonly internalType?: any; // @TODO: in v6 reduce type
- readonly components?: ReadonlyArray;
+ readonly name?: string;
+ readonly indexed?: boolean;
+ readonly type?: string;
+ readonly internalType?: any; // @TODO: in v6 reduce type
+ readonly components?: ReadonlyArray;
}
export interface JsonFragment {
- readonly name?: string;
- readonly type?: string;
+ readonly name?: string;
+ readonly type?: string;
- readonly anonymous?: boolean;
+ readonly anonymous?: boolean;
- readonly payable?: boolean;
- readonly constant?: boolean;
- readonly stateMutability?: string;
+ readonly payable?: boolean;
+ readonly constant?: boolean;
+ readonly stateMutability?: string;
- readonly inputs?: ReadonlyArray;
- readonly outputs?: ReadonlyArray;
+ readonly inputs?: ReadonlyArray;
+ readonly outputs?: ReadonlyArray;
- readonly gas?: string;
-};
+ readonly gas?: string;
+}
-const _constructorGuard = { };
+const _constructorGuard = {};
// AST Node parser state
type ParseState = {
- allowArray?: boolean,
- allowName?: boolean,
- allowParams?: boolean,
- allowType?: boolean,
- readArray?: boolean,
+ allowArray?: boolean;
+ allowName?: boolean;
+ allowParams?: boolean;
+ allowType?: boolean;
+ readArray?: boolean;
};
// AST Node
type ParseNode = {
- parent?: any,
- type?: string,
- name?: string,
- state?: ParseState,
- indexed?: boolean,
- components?: Array
+ parent?: any;
+ type?: string;
+ name?: string;
+ state?: ParseState;
+ indexed?: boolean;
+ components?: Array;
};
-let ModifiersBytes: { [ name: string ]: boolean } = { calldata: true, memory: true, storage: true };
-let ModifiersNest: { [ name: string ]: boolean } = { calldata: true, memory: true };
+const ModifiersBytes: { [name: string]: boolean } = { calldata: true, memory: true, storage: true };
+const ModifiersNest: { [name: string]: boolean } = { calldata: true, memory: true };
function checkModifier(type: string, name: string): boolean {
- if (type === "bytes" || type === "string") {
- if (ModifiersBytes[name]) { return true; }
- } else if (type === "address") {
- if (name === "payable") { return true; }
- } else if (type.indexOf("[") >= 0 || type === "tuple") {
- if (ModifiersNest[name]) { return true; }
- }
- if (ModifiersBytes[name] || name === "payable") {
- logger.throwArgumentError("invalid modifier", "name", name);
- }
- return false;
+ if (type === 'bytes' || type === 'string') {
+ if (ModifiersBytes[name]) {
+ return true;
+ }
+ } else if (type === 'address') {
+ if (name === 'payable') {
+ return true;
+ }
+ } else if (type.includes('[') || type === 'tuple') {
+ if (ModifiersNest[name]) {
+ return true;
+ }
+ }
+ if (ModifiersBytes[name] || name === 'payable') {
+ logger.throwArgumentError('invalid modifier', 'name', name);
+ }
+ return false;
}
// @TODO: Make sure that children of an indexed tuple are marked with a null indexed
function parseParamType(param: string, allowIndexed: boolean): ParseNode {
-
- let originalParam = param;
- function throwError(i: number) {
- logger.throwArgumentError(`unexpected character at position ${ i }`, "param", param);
- }
- param = param.replace(/\s/g, " ");
-
- function newNode(parent: ParseNode): ParseNode {
- let node: ParseNode = { type: "", name: "", parent: parent, state: { allowType: true } };
- if (allowIndexed) { node.indexed = false; }
- return node
- }
-
- let parent: ParseNode = { type: "", name: "", state: { allowType: true } };
- let node = parent;
-
- for (let i = 0; i < param.length; i++) {
- let c = param[i];
- switch (c) {
- case "(":
- if (node.state.allowType && node.type === "") {
- node.type = "tuple";
- } else if (!node.state.allowParams) {
- throwError(i);
- }
- node.state.allowType = false;
- node.type = verifyType(node.type);
- node.components = [ newNode(node) ];
- node = node.components[0];
- break;
-
- case ")":
- delete node.state;
-
- if (node.name === "indexed") {
- if (!allowIndexed) { throwError(i); }
- node.indexed = true;
- node.name = "";
- }
-
- if (checkModifier(node.type, node.name)) { node.name = ""; }
-
- node.type = verifyType(node.type);
-
- let child = node;
- node = node.parent;
- if (!node) { throwError(i); }
- delete child.parent;
- node.state.allowParams = false;
- node.state.allowName = true;
- node.state.allowArray = true;
- break;
-
- case ",":
- delete node.state;
-
- if (node.name === "indexed") {
- if (!allowIndexed) { throwError(i); }
- node.indexed = true;
- node.name = "";
- }
-
- if (checkModifier(node.type, node.name)) { node.name = ""; }
-
- node.type = verifyType(node.type);
-
- let sibling: ParseNode = newNode(node.parent);
- //{ type: "", name: "", parent: node.parent, state: { allowType: true } };
- node.parent.components.push(sibling);
- delete node.parent;
- node = sibling;
- break;
-
- // Hit a space...
- case " ":
-
- // If reading type, the type is done and may read a param or name
- if (node.state.allowType) {
- if (node.type !== "") {
- node.type = verifyType(node.type);
- delete node.state.allowType;
- node.state.allowName = true;
- node.state.allowParams = true;
- }
- }
-
- // If reading name, the name is done
- if (node.state.allowName) {
- if (node.name !== "") {
- if (node.name === "indexed") {
- if (!allowIndexed) { throwError(i); }
- if (node.indexed) { throwError(i); }
- node.indexed = true;
- node.name = "";
- } else if (checkModifier(node.type, node.name)) {
- node.name = "";
- } else {
- node.state.allowName = false;
- }
- }
- }
-
- break;
-
- case "[":
- if (!node.state.allowArray) { throwError(i); }
-
- node.type += c;
-
- node.state.allowArray = false;
- node.state.allowName = false;
- node.state.readArray = true;
- break;
-
- case "]":
- if (!node.state.readArray) { throwError(i); }
-
- node.type += c;
-
- node.state.readArray = false;
- node.state.allowArray = true;
- node.state.allowName = true;
- break;
-
- default:
- if (node.state.allowType) {
- node.type += c;
- node.state.allowParams = true;
- node.state.allowArray = true;
- } else if (node.state.allowName) {
- node.name += c;
- delete node.state.allowArray;
- } else if (node.state.readArray) {
- node.type += c;
- } else {
- throwError(i);
- }
- }
- }
-
- if (node.parent) { logger.throwArgumentError("unexpected eof", "param", param); }
-
- delete parent.state;
-
- if (node.name === "indexed") {
- if (!allowIndexed) { throwError(originalParam.length - 7); }
- if (node.indexed) { throwError(originalParam.length - 7); }
- node.indexed = true;
- node.name = "";
- } else if (checkModifier(node.type, node.name)) {
- node.name = "";
- }
-
- parent.type = verifyType(parent.type);
-
- return parent;
+ const originalParam = param;
+ function throwError(i: number) {
+ logger.throwArgumentError(`unexpected character at position ${i}`, 'param', param);
+ }
+ param = param.replace(/\s/g, ' ');
+
+ function newNode(parent: ParseNode): ParseNode {
+ const node: ParseNode = { type: '', name: '', parent, state: { allowType: true } };
+ if (allowIndexed) {
+ node.indexed = false;
+ }
+ return node;
+ }
+
+ const parent: ParseNode = { type: '', name: '', state: { allowType: true } };
+ let node = parent;
+
+ for (let i = 0; i < param.length; i++) {
+ const c = param[i];
+ switch (c) {
+ case '(':
+ if (node.state.allowType && node.type === '') {
+ node.type = 'tuple';
+ } else if (!node.state.allowParams) {
+ throwError(i);
+ }
+ node.state.allowType = false;
+ node.type = verifyType(node.type);
+ node.components = [newNode(node)];
+ node = node.components[0];
+ break;
+
+ case ')':
+ delete node.state;
+
+ if (node.name === 'indexed') {
+ if (!allowIndexed) {
+ throwError(i);
+ }
+ node.indexed = true;
+ node.name = '';
+ }
+
+ if (checkModifier(node.type, node.name)) {
+ node.name = '';
+ }
+
+ node.type = verifyType(node.type);
+
+ const child = node;
+ node = node.parent;
+ if (!node) {
+ throwError(i);
+ }
+ delete child.parent;
+ node.state.allowParams = false;
+ node.state.allowName = true;
+ node.state.allowArray = true;
+ break;
+
+ case ',':
+ delete node.state;
+
+ if (node.name === 'indexed') {
+ if (!allowIndexed) {
+ throwError(i);
+ }
+ node.indexed = true;
+ node.name = '';
+ }
+
+ if (checkModifier(node.type, node.name)) {
+ node.name = '';
+ }
+
+ node.type = verifyType(node.type);
+
+ const sibling: ParseNode = newNode(node.parent);
+ // { type: "", name: "", parent: node.parent, state: { allowType: true } };
+ node.parent.components.push(sibling);
+ delete node.parent;
+ node = sibling;
+ break;
+
+ // Hit a space...
+ case ' ':
+ // If reading type, the type is done and may read a param or name
+ if (node.state.allowType) {
+ if (node.type !== '') {
+ node.type = verifyType(node.type);
+ delete node.state.allowType;
+ node.state.allowName = true;
+ node.state.allowParams = true;
+ }
+ }
+
+ // If reading name, the name is done
+ if (node.state.allowName) {
+ if (node.name !== '') {
+ if (node.name === 'indexed') {
+ if (!allowIndexed) {
+ throwError(i);
+ }
+ if (node.indexed) {
+ throwError(i);
+ }
+ node.indexed = true;
+ node.name = '';
+ } else if (checkModifier(node.type, node.name)) {
+ node.name = '';
+ } else {
+ node.state.allowName = false;
+ }
+ }
+ }
+
+ break;
+
+ case '[':
+ if (!node.state.allowArray) {
+ throwError(i);
+ }
+
+ node.type += c;
+
+ node.state.allowArray = false;
+ node.state.allowName = false;
+ node.state.readArray = true;
+ break;
+
+ case ']':
+ if (!node.state.readArray) {
+ throwError(i);
+ }
+
+ node.type += c;
+
+ node.state.readArray = false;
+ node.state.allowArray = true;
+ node.state.allowName = true;
+ break;
+
+ default:
+ if (node.state.allowType) {
+ node.type += c;
+ node.state.allowParams = true;
+ node.state.allowArray = true;
+ } else if (node.state.allowName) {
+ node.name += c;
+ delete node.state.allowArray;
+ } else if (node.state.readArray) {
+ node.type += c;
+ } else {
+ throwError(i);
+ }
+ }
+ }
+
+ if (node.parent) {
+ logger.throwArgumentError('unexpected eof', 'param', param);
+ }
+
+ delete parent.state;
+
+ if (node.name === 'indexed') {
+ if (!allowIndexed) {
+ throwError(originalParam.length - 7);
+ }
+ if (node.indexed) {
+ throwError(originalParam.length - 7);
+ }
+ node.indexed = true;
+ node.name = '';
+ } else if (checkModifier(node.type, node.name)) {
+ node.name = '';
+ }
+
+ parent.type = verifyType(parent.type);
+
+ return parent;
}
function populate(object: any, params: any) {
- for (let key in params) { defineReadOnly(object, key, params[key]); }
+ for (const key in params) {
+ defineReadOnly(object, key, params[key]);
+ }
}
-export const FormatTypes: { [ name: string ]: string } = Object.freeze({
- // Bare formatting, as is needed for computing a sighash of an event or function
- sighash: "sighash",
+export const FormatTypes: { [name: string]: string } = Object.freeze({
+ // Bare formatting, as is needed for computing a sighash of an event or function
+ sighash: 'sighash',
- // Human-Readable with Minimal spacing and without names (compact human-readable)
- minimal: "minimal",
+ // Human-Readable with Minimal spacing and without names (compact human-readable)
+ minimal: 'minimal',
- // Human-Readable with nice spacing, including all names
- full: "full",
+ // Human-Readable with nice spacing, including all names
+ full: 'full',
- // JSON-format a la Hyperion
- json: "json"
+ // JSON-format a la Hyperion
+ json: 'json',
});
const paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/);
export class ParamType {
-
- // The local name of the parameter (of null if unbound)
- readonly name: string;
-
- // The fully qualified type (e.g. "address", "tuple(address)", "uint256[3][]"
- readonly type: string;
-
- // The base type (e.g. "address", "tuple", "array")
- readonly baseType: string;
-
- // Indexable Paramters ONLY (otherwise null)
- readonly indexed: boolean;
-
- // Tuples ONLY: (otherwise null)
- // - sub-components
- readonly components: Array;
-
- // Arrays ONLY: (otherwise null)
- // - length of the array (-1 for dynamic length)
- // - child type
- readonly arrayLength: number;
- readonly arrayChildren: ParamType;
-
- readonly _isParamType: boolean;
-
- constructor(constructorGuard: any, params: any) {
- if (constructorGuard !== _constructorGuard) { logger.throwError("use fromString", Logger.errors.UNSUPPORTED_OPERATION, {
- operation: "new ParamType()"
- }); }
- populate(this, params);
-
- let match = this.type.match(paramTypeArray);
- if (match) {
- populate(this, {
- arrayLength: parseInt(match[2] || "-1"),
- arrayChildren: ParamType.fromObject({
- type: match[1],
- components: this.components
- }),
- baseType: "array"
- });
- } else {
- populate(this, {
- arrayLength: null,
- arrayChildren: null,
- baseType: ((this.components != null) ? "tuple": this.type)
- });
- }
-
- this._isParamType = true;
-
- Object.freeze(this);
- }
-
- // Format the parameter fragment
- // - sighash: "(uint256,address)"
- // - minimal: "tuple(uint256,address) indexed"
- // - full: "tuple(uint256 foo, address bar) indexed baz"
- format(format?: string): string {
- if (!format) { format = FormatTypes.sighash; }
- if (!FormatTypes[format]) {
- logger.throwArgumentError("invalid format type", "format", format);
- }
-
- if (format === FormatTypes.json) {
- let result: any = {
- type: ((this.baseType === "tuple") ? "tuple": this.type),
- name: (this.name || undefined)
- };
- if (typeof(this.indexed) === "boolean") { result.indexed = this.indexed; }
- if (this.components) {
- result.components = this.components.map((comp) => JSON.parse(comp.format(format)));
- }
- return JSON.stringify(result);
- }
-
- let result = "";
-
- // Array
- if (this.baseType === "array") {
- result += this.arrayChildren.format(format);
- result += "[" + (this.arrayLength < 0 ? "": String(this.arrayLength)) + "]";
- } else {
- if (this.baseType === "tuple") {
- if (format !== FormatTypes.sighash) {
- result += this.type;
- }
- result += "(" + this.components.map(
- (comp) => comp.format(format)
- ).join((format === FormatTypes.full) ? ", ": ",") + ")";
- } else {
- result += this.type;
- }
- }
-
- if (format !== FormatTypes.sighash) {
- if (this.indexed === true) { result += " indexed"; }
- if (format === FormatTypes.full && this.name) {
- result += " " + this.name;
- }
- }
-
- return result;
- }
-
- static from(value: string | JsonFragmentType | ParamType, allowIndexed?: boolean): ParamType {
- if (typeof(value) === "string") {
- return ParamType.fromString(value, allowIndexed);
- }
- return ParamType.fromObject(value);
- }
-
- static fromObject(value: JsonFragmentType | ParamType): ParamType {
- if (ParamType.isParamType(value)) { return value; }
-
- return new ParamType(_constructorGuard, {
- name: (value.name || null),
- type: verifyType(value.type),
- indexed: ((value.indexed == null) ? null: !!value.indexed),
- components: (value.components ? value.components.map(ParamType.fromObject): null)
- });
- }
-
- static fromString(value: string, allowIndexed?: boolean): ParamType {
- function ParamTypify(node: ParseNode): ParamType {
- return ParamType.fromObject({
- name: node.name,
- type: node.type,
- indexed: node.indexed,
- components: node.components
- });
- }
-
- return ParamTypify(parseParamType(value, !!allowIndexed));
- }
-
- static isParamType(value: any): value is ParamType {
- return !!(value != null && value._isParamType);
- }
-};
+ // The local name of the parameter (of null if unbound)
+ readonly name: string;
+
+ // The fully qualified type (e.g. "address", "tuple(address)", "uint256[3][]"
+ readonly type: string;
+
+ // The base type (e.g. "address", "tuple", "array")
+ readonly baseType: string;
+
+ // Indexable Paramters ONLY (otherwise null)
+ readonly indexed: boolean;
+
+ // Tuples ONLY: (otherwise null)
+ // - sub-components
+ readonly components: Array;
+
+ // Arrays ONLY: (otherwise null)
+ // - length of the array (-1 for dynamic length)
+ // - child type
+ readonly arrayLength: number;
+ readonly arrayChildren: ParamType;
+
+ readonly _isParamType: boolean;
+
+ constructor(constructorGuard: any, params: any) {
+ if (constructorGuard !== _constructorGuard) {
+ logger.throwError('use fromString', Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: 'new ParamType()',
+ });
+ }
+ populate(this, params);
+
+ const match = this.type.match(paramTypeArray);
+ if (match) {
+ populate(this, {
+ arrayLength: parseInt(match[2] || '-1'),
+ arrayChildren: ParamType.fromObject({
+ type: match[1],
+ components: this.components,
+ }),
+ baseType: 'array',
+ });
+ } else {
+ populate(this, {
+ arrayLength: null,
+ arrayChildren: null,
+ baseType: this.components != null ? 'tuple' : this.type,
+ });
+ }
+
+ this._isParamType = true;
+
+ Object.freeze(this);
+ }
+
+ // Format the parameter fragment
+ // - sighash: "(uint256,address)"
+ // - minimal: "tuple(uint256,address) indexed"
+ // - full: "tuple(uint256 foo, address bar) indexed baz"
+ format(format?: string): string {
+ if (!format) {
+ format = FormatTypes.sighash;
+ }
+ if (!FormatTypes[format]) {
+ logger.throwArgumentError('invalid format type', 'format', format);
+ }
+
+ if (format === FormatTypes.json) {
+ const result: any = {
+ type: this.baseType === 'tuple' ? 'tuple' : this.type,
+ name: this.name || undefined,
+ };
+ if (typeof this.indexed === 'boolean') {
+ result.indexed = this.indexed;
+ }
+ if (this.components) {
+ result.components = this.components.map(comp => JSON.parse(comp.format(format)));
+ }
+ return JSON.stringify(result);
+ }
+
+ let result = '';
+
+ // Array
+ if (this.baseType === 'array') {
+ result += this.arrayChildren.format(format);
+ result += `[${this.arrayLength < 0 ? '' : String(this.arrayLength)}]`;
+ } else if (this.baseType === 'tuple') {
+ if (format !== FormatTypes.sighash) {
+ result += this.type;
+ }
+ result += `(${this.components
+ .map(comp => comp.format(format))
+ .join(format === FormatTypes.full ? ', ' : ',')})`;
+ } else {
+ result += this.type;
+ }
+
+ if (format !== FormatTypes.sighash) {
+ if (this.indexed) {
+ result += ' indexed';
+ }
+ if (format === FormatTypes.full && this.name) {
+ result += ` ${this.name}`;
+ }
+ }
+
+ return result;
+ }
+
+ static from(value: string | JsonFragmentType | ParamType, allowIndexed?: boolean): ParamType {
+ if (typeof value === 'string') {
+ return ParamType.fromString(value, allowIndexed);
+ }
+ return ParamType.fromObject(value);
+ }
+
+ static fromObject(value: JsonFragmentType | ParamType): ParamType {
+ if (ParamType.isParamType(value)) {
+ return value;
+ }
+
+ return new ParamType(_constructorGuard, {
+ name: value.name || null,
+ type: verifyType(value.type),
+ indexed: value.indexed == null ? null : !!value.indexed,
+ components: value.components ? value.components.map(ParamType.fromObject) : null,
+ });
+ }
+
+ static fromString(value: string, allowIndexed?: boolean): ParamType {
+ function ParamTypify(node: ParseNode): ParamType {
+ return ParamType.fromObject({
+ name: node.name,
+ type: node.type,
+ indexed: node.indexed,
+ components: node.components,
+ });
+ }
+
+ return ParamTypify(parseParamType(value, !!allowIndexed));
+ }
+
+ static isParamType(value: any): value is ParamType {
+ return !!(value != null && value._isParamType);
+ }
+}
function parseParams(value: string, allowIndex: boolean): Array {
- return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));
+ return splitNesting(value).map(param => ParamType.fromString(param, allowIndex));
}
-type TypeCheck = { -readonly [ K in keyof T ]: T[K] };
+type TypeCheck = { -readonly [K in keyof T]: T[K] };
interface _Fragment {
- readonly type: string;
- readonly name: string;
- readonly inputs: ReadonlyArray;
+ readonly type: string;
+ readonly name: string;
+ readonly inputs: ReadonlyArray;
}
export abstract class Fragment {
-
- readonly type: string;
- readonly name: string;
- readonly inputs: Array;
-
- readonly _isFragment: boolean;
-
- constructor(constructorGuard: any, params: any) {
- if (constructorGuard !== _constructorGuard) {
- logger.throwError("use a static from method", Logger.errors.UNSUPPORTED_OPERATION, {
- operation: "new Fragment()"
- });
- }
- populate(this, params);
-
- this._isFragment = true;
-
- Object.freeze(this);
- }
-
- abstract format(format?: string): string;
-
- static from(value: Fragment | JsonFragment | string): Fragment {
- if (Fragment.isFragment(value)) { return value; }
-
- if (typeof(value) === "string") {
- return Fragment.fromString(value);
- }
-
- return Fragment.fromObject(value);
- }
-
- static fromObject(value: Fragment | JsonFragment): Fragment {
- if (Fragment.isFragment(value)) { return value; }
-
- switch (value.type) {
- case "function":
- return FunctionFragment.fromObject(value);
- case "event":
- return EventFragment.fromObject(value);
- case "constructor":
- return ConstructorFragment.fromObject(value);
- case "error":
- return ErrorFragment.fromObject(value);
- case "fallback":
- case "receive":
- // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?
- return null;
- }
-
- return logger.throwArgumentError("invalid fragment object", "value", value);
- }
-
- static fromString(value: string): Fragment {
- // Make sure the "returns" is surrounded by a space and all whitespace is exactly one space
- value = value.replace(/\s/g, " ");
- value = value.replace(/\(/g, " (").replace(/\)/g, ") ").replace(/\s+/g, " ");
- value = value.trim();
-
- if (value.split(" ")[0] === "event") {
- return EventFragment.fromString(value.substring(5).trim());
- } else if (value.split(" ")[0] === "function") {
- return FunctionFragment.fromString(value.substring(8).trim());
- } else if (value.split("(")[0].trim() === "constructor") {
- return ConstructorFragment.fromString(value.trim());
- } else if (value.split(" ")[0] === "error") {
- return ErrorFragment.fromString(value.substring(5).trim());
- }
-
- return logger.throwArgumentError("unsupported fragment", "value", value);
- }
-
- static isFragment(value: any): value is Fragment {
- return !!(value && value._isFragment);
- }
+ readonly type: string;
+ readonly name: string;
+ readonly inputs: Array;
+
+ readonly _isFragment: boolean;
+
+ constructor(constructorGuard: any, params: any) {
+ if (constructorGuard !== _constructorGuard) {
+ logger.throwError('use a static from method', Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: 'new Fragment()',
+ });
+ }
+ populate(this, params);
+
+ this._isFragment = true;
+
+ Object.freeze(this);
+ }
+
+ abstract format(format?: string): string;
+
+ static from(value: Fragment | JsonFragment | string): Fragment {
+ if (Fragment.isFragment(value)) {
+ return value;
+ }
+
+ if (typeof value === 'string') {
+ return Fragment.fromString(value);
+ }
+
+ return Fragment.fromObject(value);
+ }
+
+ static fromObject(value: Fragment | JsonFragment): Fragment {
+ if (Fragment.isFragment(value)) {
+ return value;
+ }
+
+ switch (value.type) {
+ case 'function':
+ return FunctionFragment.fromObject(value);
+ case 'event':
+ return EventFragment.fromObject(value);
+ case 'constructor':
+ return ConstructorFragment.fromObject(value);
+ case 'error':
+ return ErrorFragment.fromObject(value);
+ case 'fallback':
+ case 'receive':
+ // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?
+ return null;
+ }
+
+ return logger.throwArgumentError('invalid fragment object', 'value', value);
+ }
+
+ static fromString(value: string): Fragment {
+ // Make sure the "returns" is surrounded by a space and all whitespace is exactly one space
+ value = value.replace(/\s/g, ' ');
+ value = value.replace(/\(/g, ' (').replace(/\)/g, ') ').replace(/\s+/g, ' ');
+ value = value.trim();
+
+ if (value.split(' ')[0] === 'event') {
+ return EventFragment.fromString(value.substring(5).trim());
+ }
+ if (value.split(' ')[0] === 'function') {
+ return FunctionFragment.fromString(value.substring(8).trim());
+ }
+ if (value.split('(')[0].trim() === 'constructor') {
+ return ConstructorFragment.fromString(value.trim());
+ }
+ if (value.split(' ')[0] === 'error') {
+ return ErrorFragment.fromString(value.substring(5).trim());
+ }
+
+ return logger.throwArgumentError('unsupported fragment', 'value', value);
+ }
+
+ static isFragment(value: any): value is Fragment {
+ return !!(value && value._isFragment);
+ }
}
interface _EventFragment extends _Fragment {
- readonly anonymous: boolean;
+ readonly anonymous: boolean;
}
export class EventFragment extends Fragment {
- readonly anonymous: boolean;
-
- format(format?: string): string {
- if (!format) { format = FormatTypes.sighash; }
- if (!FormatTypes[format]) {
- logger.throwArgumentError("invalid format type", "format", format);
- }
-
- if (format === FormatTypes.json) {
- return JSON.stringify({
- type: "event",
- anonymous: this.anonymous,
- name: this.name,
- inputs: this.inputs.map((input) => JSON.parse(input.format(format)))
- });
- }
-
- let result = "";
-
- if (format !== FormatTypes.sighash) {
- result += "event ";
- }
-
- result += this.name + "(" + this.inputs.map(
- (input) => input.format(format)
- ).join((format === FormatTypes.full) ? ", ": ",") + ") ";
-
- if (format !== FormatTypes.sighash) {
- if (this.anonymous) {
- result += "anonymous ";
- }
- }
-
- return result.trim();
- }
-
- static from(value: EventFragment | JsonFragment | string): EventFragment {
- if (typeof(value) === "string") {
- return EventFragment.fromString(value);
- }
- return EventFragment.fromObject(value);
- }
-
- static fromObject(value: JsonFragment | EventFragment): EventFragment {
- if (EventFragment.isEventFragment(value)) { return value; }
-
- if (value.type !== "event") {
- logger.throwArgumentError("invalid event object", "value", value);
- }
-
- const params: TypeCheck<_EventFragment> = {
- name: verifyIdentifier(value.name),
- anonymous: value.anonymous,
- inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),
- type: "event"
- };
-
- return new EventFragment(_constructorGuard, params);
- }
-
- static fromString(value: string): EventFragment {
-
- let match = value.match(regexParen);
- if (!match) {
- logger.throwArgumentError("invalid event string", "value", value);
- }
-
- let anonymous = false;
- match[3].split(" ").forEach((modifier) => {
- switch(modifier.trim()) {
- case "anonymous":
- anonymous = true;
- break;
- case "":
- break;
- default:
- logger.warn("unknown modifier: " + modifier);
- }
- });
-
- return EventFragment.fromObject({
- name: match[1].trim(),
- anonymous: anonymous,
- inputs: parseParams(match[2], true),
- type: "event"
- });
- }
-
- static isEventFragment(value: any): value is EventFragment {
- return (value && value._isFragment && value.type === "event");
- }
+ readonly anonymous: boolean;
+
+ format(format?: string): string {
+ if (!format) {
+ format = FormatTypes.sighash;
+ }
+ if (!FormatTypes[format]) {
+ logger.throwArgumentError('invalid format type', 'format', format);
+ }
+
+ if (format === FormatTypes.json) {
+ return JSON.stringify({
+ type: 'event',
+ anonymous: this.anonymous,
+ name: this.name,
+ inputs: this.inputs.map(input => JSON.parse(input.format(format))),
+ });
+ }
+
+ let result = '';
+
+ if (format !== FormatTypes.sighash) {
+ result += 'event ';
+ }
+
+ result += `${this.name}(${this.inputs
+ .map(input => input.format(format))
+ .join(format === FormatTypes.full ? ', ' : ',')}) `;
+
+ if (format !== FormatTypes.sighash) {
+ if (this.anonymous) {
+ result += 'anonymous ';
+ }
+ }
+
+ return result.trim();
+ }
+
+ static from(value: EventFragment | JsonFragment | string): EventFragment {
+ if (typeof value === 'string') {
+ return EventFragment.fromString(value);
+ }
+ return EventFragment.fromObject(value);
+ }
+
+ static fromObject(value: JsonFragment | EventFragment): EventFragment {
+ if (EventFragment.isEventFragment(value)) {
+ return value;
+ }
+
+ if (value.type !== 'event') {
+ logger.throwArgumentError('invalid event object', 'value', value);
+ }
+
+ const params: TypeCheck<_EventFragment> = {
+ name: verifyIdentifier(value.name),
+ anonymous: value.anonymous,
+ inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [],
+ type: 'event',
+ };
+
+ return new EventFragment(_constructorGuard, params);
+ }
+
+ static fromString(value: string): EventFragment {
+ const match = value.match(regexParen);
+ if (!match) {
+ logger.throwArgumentError('invalid event string', 'value', value);
+ }
+
+ let anonymous = false;
+ match[3].split(' ').forEach(modifier => {
+ switch (modifier.trim()) {
+ case 'anonymous':
+ anonymous = true;
+ break;
+ case '':
+ break;
+ default:
+ logger.warn(`unknown modifier: ${modifier}`);
+ }
+ });
+
+ return EventFragment.fromObject({
+ name: match[1].trim(),
+ anonymous,
+ inputs: parseParams(match[2], true),
+ type: 'event',
+ });
+ }
+
+ static isEventFragment(value: any): value is EventFragment {
+ return value && value._isFragment && value.type === 'event';
+ }
}
function parseGas(value: string, params: any): string {
- params.gas = null;
-
- let comps = value.split("@");
- if (comps.length !== 1) {
- if (comps.length > 2) {
- logger.throwArgumentError("invalid human-readable ABI signature", "value", value);
- }
- if (!comps[1].match(/^[0-9]+$/)) {
- logger.throwArgumentError("invalid human-readable ABI signature gas", "value", value);
- }
- params.gas = BigNumber.from(comps[1]);
- return comps[0];
- }
-
- return value;
+ params.gas = null;
+
+ const comps = value.split('@');
+ if (comps.length !== 1) {
+ if (comps.length > 2) {
+ logger.throwArgumentError('invalid human-readable ABI signature', 'value', value);
+ }
+ if (!comps[1].match(/^[0-9]+$/)) {
+ logger.throwArgumentError('invalid human-readable ABI signature gas', 'value', value);
+ }
+ params.gas = BigNumber.from(comps[1]);
+ return comps[0];
+ }
+
+ return value;
}
function parseModifiers(value: string, params: any): void {
- params.constant = false;
- params.payable = false;
- params.stateMutability = "nonpayable";
-
- value.split(" ").forEach((modifier) => {
- switch (modifier.trim()) {
- case "constant":
- params.constant = true;
- break;
- case "payable":
- params.payable = true;
- params.stateMutability = "payable";
- break;
- case "nonpayable":
- params.payable = false;
- params.stateMutability = "nonpayable";
- break;
- case "pure":
- params.constant = true;
- params.stateMutability = "pure";
- break;
- case "view":
- params.constant = true;
- params.stateMutability = "view";
- break;
- case "external":
- case "public":
- case "":
- break;
- default:
- console.log("unknown modifier: " + modifier);
- }
- });
+ params.constant = false;
+ params.payable = false;
+ params.stateMutability = 'nonpayable';
+
+ value.split(' ').forEach(modifier => {
+ switch (modifier.trim()) {
+ case 'constant':
+ params.constant = true;
+ break;
+ case 'payable':
+ params.payable = true;
+ params.stateMutability = 'payable';
+ break;
+ case 'nonpayable':
+ params.payable = false;
+ params.stateMutability = 'nonpayable';
+ break;
+ case 'pure':
+ params.constant = true;
+ params.stateMutability = 'pure';
+ break;
+ case 'view':
+ params.constant = true;
+ params.stateMutability = 'view';
+ break;
+ case 'external':
+ case 'public':
+ case '':
+ break;
+ default:
+ console.log(`unknown modifier: ${modifier}`);
+ }
+ });
}
type StateInputValue = {
- constant?: boolean;
- payable?: boolean;
- stateMutability?: string;
- type?: string;
+ constant?: boolean;
+ payable?: boolean;
+ stateMutability?: string;
+ type?: string;
};
type StateOutputValue = {
- constant: boolean;
- payable: boolean;
- stateMutability: string;
+ constant: boolean;
+ payable: boolean;
+ stateMutability: string;
};
function verifyState(value: StateInputValue): StateOutputValue {
- let result: any = {
- constant: false,
- payable: true,
- stateMutability: "payable"
- };
-
- if (value.stateMutability != null) {
- result.stateMutability = value.stateMutability;
-
- // Set (and check things are consistent) the constant property
- result.constant = (result.stateMutability === "view" || result.stateMutability === "pure");
- if (value.constant != null) {
- if ((!!value.constant) !== result.constant) {
- logger.throwArgumentError("cannot have constant function with mutability " + result.stateMutability, "value", value);
- }
- }
-
- // Set (and check things are consistent) the payable property
- result.payable = (result.stateMutability === "payable");
- if (value.payable != null) {
- if ((!!value.payable) !== result.payable) {
- logger.throwArgumentError("cannot have payable function with mutability " + result.stateMutability, "value", value);
- }
- }
-
- } else if (value.payable != null) {
- result.payable = !!value.payable;
-
- // If payable we can assume non-constant; otherwise we can't assume
- if (value.constant == null && !result.payable && value.type !== "constructor") {
- logger.throwArgumentError("unable to determine stateMutability", "value", value);
- }
-
- result.constant = !!value.constant;
-
- if (result.constant) {
- result.stateMutability = "view";
- } else {
- result.stateMutability = (result.payable ? "payable": "nonpayable");
- }
-
- if (result.payable && result.constant) {
- logger.throwArgumentError("cannot have constant payable function", "value", value);
- }
-
- } else if (value.constant != null) {
- result.constant = !!value.constant;
- result.payable = !result.constant;
- result.stateMutability = (result.constant ? "view": "payable");
-
- } else if (value.type !== "constructor") {
- logger.throwArgumentError("unable to determine stateMutability", "value", value);
- }
-
- return result;
+ const result: any = {
+ constant: false,
+ payable: true,
+ stateMutability: 'payable',
+ };
+
+ if (value.stateMutability != null) {
+ result.stateMutability = value.stateMutability;
+
+ // Set (and check things are consistent) the constant property
+ result.constant = result.stateMutability === 'view' || result.stateMutability === 'pure';
+ if (value.constant != null) {
+ if (!!value.constant !== result.constant) {
+ logger.throwArgumentError(
+ `cannot have constant function with mutability ${result.stateMutability}`,
+ 'value',
+ value,
+ );
+ }
+ }
+
+ // Set (and check things are consistent) the payable property
+ result.payable = result.stateMutability === 'payable';
+ if (value.payable != null) {
+ if (!!value.payable !== result.payable) {
+ logger.throwArgumentError(
+ `cannot have payable function with mutability ${result.stateMutability}`,
+ 'value',
+ value,
+ );
+ }
+ }
+ } else if (value.payable != null) {
+ result.payable = !!value.payable;
+
+ // If payable we can assume non-constant; otherwise we can't assume
+ if (value.constant == null && !result.payable && value.type !== 'constructor') {
+ logger.throwArgumentError('unable to determine stateMutability', 'value', value);
+ }
+
+ result.constant = !!value.constant;
+
+ if (result.constant) {
+ result.stateMutability = 'view';
+ } else {
+ result.stateMutability = result.payable ? 'payable' : 'nonpayable';
+ }
+
+ if (result.payable && result.constant) {
+ logger.throwArgumentError('cannot have constant payable function', 'value', value);
+ }
+ } else if (value.constant != null) {
+ result.constant = !!value.constant;
+ result.payable = !result.constant;
+ result.stateMutability = result.constant ? 'view' : 'payable';
+ } else if (value.type !== 'constructor') {
+ logger.throwArgumentError('unable to determine stateMutability', 'value', value);
+ }
+
+ return result;
}
interface _ConstructorFragment extends _Fragment {
- stateMutability: string;
- payable: boolean;
- gas?: BigNumber;
+ stateMutability: string;
+ payable: boolean;
+ gas?: BigNumber;
}
export class ConstructorFragment extends Fragment {
- stateMutability: string;
- payable: boolean;
- gas?: BigNumber;
-
- format(format?: string): string {
- if (!format) { format = FormatTypes.sighash; }
- if (!FormatTypes[format]) {
- logger.throwArgumentError("invalid format type", "format", format);
- }
-
- if (format === FormatTypes.json) {
- return JSON.stringify({
- type: "constructor",
- stateMutability: ((this.stateMutability !== "nonpayable") ? this.stateMutability: undefined),
- payable: this.payable,
- gas: (this.gas ? this.gas.toNumber(): undefined),
- inputs: this.inputs.map((input) => JSON.parse(input.format(format)))
- });
- }
-
- if (format === FormatTypes.sighash) {
- logger.throwError("cannot format a constructor for sighash", Logger.errors.UNSUPPORTED_OPERATION, {
- operation: "format(sighash)"
- });
- }
-
- let result = "constructor(" + this.inputs.map(
- (input) => input.format(format)
- ).join((format === FormatTypes.full) ? ", ": ",") + ") ";
-
- if (this.stateMutability && this.stateMutability !== "nonpayable") {
- result += this.stateMutability + " ";
- }
-
- return result.trim();
- }
-
- static from(value: ConstructorFragment | JsonFragment | string): ConstructorFragment {
- if (typeof(value) === "string") {
- return ConstructorFragment.fromString(value);
- }
- return ConstructorFragment.fromObject(value);
- }
-
- static fromObject(value: ConstructorFragment | JsonFragment): ConstructorFragment {
- if (ConstructorFragment.isConstructorFragment(value)) { return value; }
-
- if (value.type !== "constructor") {
- logger.throwArgumentError("invalid constructor object", "value", value);
- }
-
- let state = verifyState(value);
- if (state.constant) {
- logger.throwArgumentError("constructor cannot be constant", "value", value);
- }
-
- const params: TypeCheck<_ConstructorFragment> = {
- name: null,
- type: value.type,
- inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),
- payable: state.payable,
- stateMutability: state.stateMutability,
- gas: (value.gas ? BigNumber.from(value.gas): null)
- };
-
- return new ConstructorFragment(_constructorGuard, params);
- }
-
- static fromString(value: string): ConstructorFragment {
- let params: any = { type: "constructor" };
-
- value = parseGas(value, params);
-
- let parens = value.match(regexParen);
- if (!parens || parens[1].trim() !== "constructor") {
- logger.throwArgumentError("invalid constructor string", "value", value);
- }
-
- params.inputs = parseParams(parens[2].trim(), false);
-
- parseModifiers(parens[3].trim(), params);
-
- return ConstructorFragment.fromObject(params);
- }
-
- static isConstructorFragment(value: any): value is ConstructorFragment {
- return (value && value._isFragment && value.type === "constructor");
- }
+ stateMutability: string;
+ payable: boolean;
+ gas?: BigNumber;
+
+ format(format?: string): string {
+ if (!format) {
+ format = FormatTypes.sighash;
+ }
+ if (!FormatTypes[format]) {
+ logger.throwArgumentError('invalid format type', 'format', format);
+ }
+
+ if (format === FormatTypes.json) {
+ return JSON.stringify({
+ type: 'constructor',
+ stateMutability:
+ this.stateMutability !== 'nonpayable' ? this.stateMutability : undefined,
+ payable: this.payable,
+ gas: this.gas ? this.gas.toNumber() : undefined,
+ inputs: this.inputs.map(input => JSON.parse(input.format(format))),
+ });
+ }
+
+ if (format === FormatTypes.sighash) {
+ logger.throwError(
+ 'cannot format a constructor for sighash',
+ Logger.errors.UNSUPPORTED_OPERATION,
+ {
+ operation: 'format(sighash)',
+ },
+ );
+ }
+
+ let result = `constructor(${this.inputs
+ .map(input => input.format(format))
+ .join(format === FormatTypes.full ? ', ' : ',')}) `;
+
+ if (this.stateMutability && this.stateMutability !== 'nonpayable') {
+ result += `${this.stateMutability} `;
+ }
+
+ return result.trim();
+ }
+
+ static from(value: ConstructorFragment | JsonFragment | string): ConstructorFragment {
+ if (typeof value === 'string') {
+ return ConstructorFragment.fromString(value);
+ }
+ return ConstructorFragment.fromObject(value);
+ }
+
+ static fromObject(value: ConstructorFragment | JsonFragment): ConstructorFragment {
+ if (ConstructorFragment.isConstructorFragment(value)) {
+ return value;
+ }
+
+ if (value.type !== 'constructor') {
+ logger.throwArgumentError('invalid constructor object', 'value', value);
+ }
+
+ const state = verifyState(value);
+ if (state.constant) {
+ logger.throwArgumentError('constructor cannot be constant', 'value', value);
+ }
+
+ const params: TypeCheck<_ConstructorFragment> = {
+ name: null,
+ type: value.type,
+ inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [],
+ payable: state.payable,
+ stateMutability: state.stateMutability,
+ gas: value.gas ? BigNumber.from(value.gas) : null,
+ };
+
+ return new ConstructorFragment(_constructorGuard, params);
+ }
+
+ static fromString(value: string): ConstructorFragment {
+ const params: any = { type: 'constructor' };
+
+ value = parseGas(value, params);
+
+ const parens = value.match(regexParen);
+ if (!parens || parens[1].trim() !== 'constructor') {
+ logger.throwArgumentError('invalid constructor string', 'value', value);
+ }
+
+ params.inputs = parseParams(parens[2].trim(), false);
+
+ parseModifiers(parens[3].trim(), params);
+
+ return ConstructorFragment.fromObject(params);
+ }
+
+ static isConstructorFragment(value: any): value is ConstructorFragment {
+ return value && value._isFragment && value.type === 'constructor';
+ }
}
interface _FunctionFragment extends _ConstructorFragment {
- constant: boolean;
- outputs?: Array;
+ constant: boolean;
+ outputs?: Array;
}
export class FunctionFragment extends ConstructorFragment {
- constant: boolean;
- outputs?: Array;
-
- format(format?: string): string {
- if (!format) { format = FormatTypes.sighash; }
- if (!FormatTypes[format]) {
- logger.throwArgumentError("invalid format type", "format", format);
- }
-
- if (format === FormatTypes.json) {
- return JSON.stringify({
- type: "function",
- name: this.name,
- constant: this.constant,
- stateMutability: ((this.stateMutability !== "nonpayable") ? this.stateMutability: undefined),
- payable: this.payable,
- gas: (this.gas ? this.gas.toNumber(): undefined),
- inputs: this.inputs.map((input) => JSON.parse(input.format(format))),
- outputs: this.outputs.map((output) => JSON.parse(output.format(format))),
- });
- }
-
- let result = "";
-
- if (format !== FormatTypes.sighash) {
- result += "function ";
- }
-
- result += this.name + "(" + this.inputs.map(
- (input) => input.format(format)
- ).join((format === FormatTypes.full) ? ", ": ",") + ") ";
-
- if (format !== FormatTypes.sighash) {
- if (this.stateMutability) {
- if (this.stateMutability !== "nonpayable") {
- result += (this.stateMutability + " ");
- }
- } else if (this.constant) {
- result += "view ";
- }
-
- if (this.outputs && this.outputs.length) {
- result += "returns (" + this.outputs.map(
- (output) => output.format(format)
- ).join(", ") + ") ";
- }
-
- if (this.gas != null) {
- result += "@" + this.gas.toString() + " ";
- }
- }
-
- return result.trim();
- }
-
- static from(value: FunctionFragment | JsonFragment | string): FunctionFragment {
- if (typeof(value) === "string") {
- return FunctionFragment.fromString(value);
- }
- return FunctionFragment.fromObject(value);
- }
-
- static fromObject(value: FunctionFragment | JsonFragment): FunctionFragment {
- if (FunctionFragment.isFunctionFragment(value)) { return value; }
-
- if (value.type !== "function") {
- logger.throwArgumentError("invalid function object", "value", value);
- }
-
- let state = verifyState(value);
-
- const params: TypeCheck<_FunctionFragment> = {
- type: value.type,
- name: verifyIdentifier(value.name),
- constant: state.constant,
- inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),
- outputs: (value.outputs ? value.outputs.map(ParamType.fromObject): [ ]),
- payable: state.payable,
- stateMutability: state.stateMutability,
- gas: (value.gas ? BigNumber.from(value.gas): null)
- };
-
- return new FunctionFragment(_constructorGuard, params);
- }
-
- static fromString(value: string): FunctionFragment {
- let params: any = { type: "function" };
- value = parseGas(value, params);
-
- let comps = value.split(" returns ");
- if (comps.length > 2) {
- logger.throwArgumentError("invalid function string", "value", value);
- }
-
- let parens = comps[0].match(regexParen);
- if (!parens) {
- logger.throwArgumentError("invalid function signature", "value", value);
- }
-
- params.name = parens[1].trim();
- if (params.name) { verifyIdentifier(params.name); }
-
- params.inputs = parseParams(parens[2], false);
-
- parseModifiers(parens[3].trim(), params);
-
- // We have outputs
- if (comps.length > 1) {
- let returns = comps[1].match(regexParen);
- if (returns[1].trim() != "" || returns[3].trim() != "") {
- logger.throwArgumentError("unexpected tokens", "value", value);
- }
- params.outputs = parseParams(returns[2], false);
- } else {
- params.outputs = [ ];
- }
-
- return FunctionFragment.fromObject(params);
- }
-
- static isFunctionFragment(value: any): value is FunctionFragment {
- return (value && value._isFragment && value.type === "function");
- }
+ constant: boolean;
+ outputs?: Array;
+
+ format(format?: string): string {
+ if (!format) {
+ format = FormatTypes.sighash;
+ }
+ if (!FormatTypes[format]) {
+ logger.throwArgumentError('invalid format type', 'format', format);
+ }
+
+ if (format === FormatTypes.json) {
+ return JSON.stringify({
+ type: 'function',
+ name: this.name,
+ constant: this.constant,
+ stateMutability:
+ this.stateMutability !== 'nonpayable' ? this.stateMutability : undefined,
+ payable: this.payable,
+ gas: this.gas ? this.gas.toNumber() : undefined,
+ inputs: this.inputs.map(input => JSON.parse(input.format(format))),
+ outputs: this.outputs.map(output => JSON.parse(output.format(format))),
+ });
+ }
+
+ let result = '';
+
+ if (format !== FormatTypes.sighash) {
+ result += 'function ';
+ }
+
+ result += `${this.name}(${this.inputs
+ .map(input => input.format(format))
+ .join(format === FormatTypes.full ? ', ' : ',')}) `;
+
+ if (format !== FormatTypes.sighash) {
+ if (this.stateMutability) {
+ if (this.stateMutability !== 'nonpayable') {
+ result += `${this.stateMutability} `;
+ }
+ } else if (this.constant) {
+ result += 'view ';
+ }
+
+ if (this.outputs && this.outputs.length) {
+ result += `returns (${this.outputs
+ .map(output => output.format(format))
+ .join(', ')}) `;
+ }
+
+ if (this.gas != null) {
+ result += `@${this.gas.toString()} `;
+ }
+ }
+
+ return result.trim();
+ }
+
+ static from(value: FunctionFragment | JsonFragment | string): FunctionFragment {
+ if (typeof value === 'string') {
+ return FunctionFragment.fromString(value);
+ }
+ return FunctionFragment.fromObject(value);
+ }
+
+ static fromObject(value: FunctionFragment | JsonFragment): FunctionFragment {
+ if (FunctionFragment.isFunctionFragment(value)) {
+ return value;
+ }
+
+ if (value.type !== 'function') {
+ logger.throwArgumentError('invalid function object', 'value', value);
+ }
+
+ const state = verifyState(value);
+
+ const params: TypeCheck<_FunctionFragment> = {
+ type: value.type,
+ name: verifyIdentifier(value.name),
+ constant: state.constant,
+ inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [],
+ outputs: value.outputs ? value.outputs.map(ParamType.fromObject) : [],
+ payable: state.payable,
+ stateMutability: state.stateMutability,
+ gas: value.gas ? BigNumber.from(value.gas) : null,
+ };
+
+ return new FunctionFragment(_constructorGuard, params);
+ }
+
+ static fromString(value: string): FunctionFragment {
+ const params: any = { type: 'function' };
+ value = parseGas(value, params);
+
+ const comps = value.split(' returns ');
+ if (comps.length > 2) {
+ logger.throwArgumentError('invalid function string', 'value', value);
+ }
+
+ const parens = comps[0].match(regexParen);
+ if (!parens) {
+ logger.throwArgumentError('invalid function signature', 'value', value);
+ }
+
+ params.name = parens[1].trim();
+ if (params.name) {
+ verifyIdentifier(params.name);
+ }
+
+ params.inputs = parseParams(parens[2], false);
+
+ parseModifiers(parens[3].trim(), params);
+
+ // We have outputs
+ if (comps.length > 1) {
+ const returns = comps[1].match(regexParen);
+ if (returns[1].trim() != '' || returns[3].trim() != '') {
+ logger.throwArgumentError('unexpected tokens', 'value', value);
+ }
+ params.outputs = parseParams(returns[2], false);
+ } else {
+ params.outputs = [];
+ }
+
+ return FunctionFragment.fromObject(params);
+ }
+
+ static isFunctionFragment(value: any): value is FunctionFragment {
+ return value && value._isFragment && value.type === 'function';
+ }
}
-//export class StructFragment extends Fragment {
-//}
+// export class StructFragment extends Fragment {
+// }
function checkForbidden(fragment: ErrorFragment): ErrorFragment {
- const sig = fragment.format();
- if (sig === "Error(string)" || sig === "Panic(uint256)") {
- logger.throwArgumentError(`cannot specify user defined ${ sig } error`, "fragment", fragment);
- }
- return fragment;
+ const sig = fragment.format();
+ if (sig === 'Error(string)' || sig === 'Panic(uint256)') {
+ logger.throwArgumentError(`cannot specify user defined ${sig} error`, 'fragment', fragment);
+ }
+ return fragment;
}
export class ErrorFragment extends Fragment {
-
- format(format?: string): string {
- if (!format) { format = FormatTypes.sighash; }
- if (!FormatTypes[format]) {
- logger.throwArgumentError("invalid format type", "format", format);
- }
-
- if (format === FormatTypes.json) {
- return JSON.stringify({
- type: "error",
- name: this.name,
- inputs: this.inputs.map((input) => JSON.parse(input.format(format))),
- });
- }
-
- let result = "";
-
- if (format !== FormatTypes.sighash) {
- result += "error ";
- }
-
- result += this.name + "(" + this.inputs.map(
- (input) => input.format(format)
- ).join((format === FormatTypes.full) ? ", ": ",") + ") ";
-
- return result.trim();
- }
-
- static from(value: ErrorFragment | JsonFragment | string): ErrorFragment {
- if (typeof(value) === "string") {
- return ErrorFragment.fromString(value);
- }
- return ErrorFragment.fromObject(value);
- }
-
- static fromObject(value: ErrorFragment | JsonFragment): ErrorFragment {
- if (ErrorFragment.isErrorFragment(value)) { return value; }
-
- if (value.type !== "error") {
- logger.throwArgumentError("invalid error object", "value", value);
- }
-
- const params: TypeCheck<_Fragment> = {
- type: value.type,
- name: verifyIdentifier(value.name),
- inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): [])
- };
-
- return checkForbidden(new ErrorFragment(_constructorGuard, params));
- }
-
- static fromString(value: string): ErrorFragment {
- let params: any = { type: "error" };
-
- let parens = value.match(regexParen);
- if (!parens) {
- logger.throwArgumentError("invalid error signature", "value", value);
- }
-
- params.name = parens[1].trim();
- if (params.name) { verifyIdentifier(params.name); }
-
- params.inputs = parseParams(parens[2], false);
-
- return checkForbidden(ErrorFragment.fromObject(params));
- }
-
- static isErrorFragment(value: any): value is ErrorFragment {
- return (value && value._isFragment && value.type === "error");
- }
+ format(format?: string): string {
+ if (!format) {
+ format = FormatTypes.sighash;
+ }
+ if (!FormatTypes[format]) {
+ logger.throwArgumentError('invalid format type', 'format', format);
+ }
+
+ if (format === FormatTypes.json) {
+ return JSON.stringify({
+ type: 'error',
+ name: this.name,
+ inputs: this.inputs.map(input => JSON.parse(input.format(format))),
+ });
+ }
+
+ let result = '';
+
+ if (format !== FormatTypes.sighash) {
+ result += 'error ';
+ }
+
+ result += `${this.name}(${this.inputs
+ .map(input => input.format(format))
+ .join(format === FormatTypes.full ? ', ' : ',')}) `;
+
+ return result.trim();
+ }
+
+ static from(value: ErrorFragment | JsonFragment | string): ErrorFragment {
+ if (typeof value === 'string') {
+ return ErrorFragment.fromString(value);
+ }
+ return ErrorFragment.fromObject(value);
+ }
+
+ static fromObject(value: ErrorFragment | JsonFragment): ErrorFragment {
+ if (ErrorFragment.isErrorFragment(value)) {
+ return value;
+ }
+
+ if (value.type !== 'error') {
+ logger.throwArgumentError('invalid error object', 'value', value);
+ }
+
+ const params: TypeCheck<_Fragment> = {
+ type: value.type,
+ name: verifyIdentifier(value.name),
+ inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [],
+ };
+
+ return checkForbidden(new ErrorFragment(_constructorGuard, params));
+ }
+
+ static fromString(value: string): ErrorFragment {
+ const params: any = { type: 'error' };
+
+ const parens = value.match(regexParen);
+ if (!parens) {
+ logger.throwArgumentError('invalid error signature', 'value', value);
+ }
+
+ params.name = parens[1].trim();
+ if (params.name) {
+ verifyIdentifier(params.name);
+ }
+
+ params.inputs = parseParams(parens[2], false);
+
+ return checkForbidden(ErrorFragment.fromObject(params));
+ }
+
+ static isErrorFragment(value: any): value is ErrorFragment {
+ return value && value._isFragment && value.type === 'error';
+ }
}
function verifyType(type: string): string {
+ // These need to be transformed to their full description
+ if (type.match(/^uint($|[^1-9])/)) {
+ type = `uint256${type.substring(4)}`;
+ } else if (type.match(/^int($|[^1-9])/)) {
+ type = `int256${type.substring(3)}`;
+ }
- // These need to be transformed to their full description
- if (type.match(/^uint($|[^1-9])/)) {
- type = "uint256" + type.substring(4);
- } else if (type.match(/^int($|[^1-9])/)) {
- type = "int256" + type.substring(3);
- }
-
- // @TODO: more verification
+ // @TODO: more verification
- return type;
+ return type;
}
// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234
-const regexIdentifier = new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");
+const regexIdentifier = new RegExp('^[a-zA-Z$_][a-zA-Z0-9$_]*$');
function verifyIdentifier(value: string): string {
- if (!value || !value.match(regexIdentifier)) {
- logger.throwArgumentError(`invalid identifier "${ value }"`, "value", value);
- }
- return value;
+ if (!value || !value.match(regexIdentifier)) {
+ logger.throwArgumentError(`invalid identifier "${value}"`, 'value', value);
+ }
+ return value;
}
-const regexParen = new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");
+const regexParen = new RegExp('^([^)(]*)\\((.*)\\)([^)(]*)$');
function splitNesting(value: string): Array {
- value = value.trim();
-
- let result = [];
- let accum = "";
- let depth = 0;
- for (let offset = 0; offset < value.length; offset++) {
- let c = value[offset];
- if (c === "," && depth === 0) {
- result.push(accum);
- accum = "";
- } else {
- accum += c;
- if (c === "(") {
- depth++;
- } else if (c === ")") {
- depth--;
- if (depth === -1) {
- logger.throwArgumentError("unbalanced parenthesis", "value", value);
- }
- }
- }
- }
- if (accum) { result.push(accum); }
-
- return result;
+ value = value.trim();
+
+ const result = [];
+ let accum = '';
+ let depth = 0;
+ for (let offset = 0; offset < value.length; offset++) {
+ const c = value[offset];
+ if (c === ',' && depth === 0) {
+ result.push(accum);
+ accum = '';
+ } else {
+ accum += c;
+ if (c === '(') {
+ depth++;
+ } else if (c === ')') {
+ depth--;
+ if (depth === -1) {
+ logger.throwArgumentError('unbalanced parenthesis', 'value', value);
+ }
+ }
+ }
+ }
+ if (accum) {
+ result.push(accum);
+ }
+
+ return result;
}
-
diff --git a/packages/abi/src/index.ts b/packages/abi/src/index.ts
index 68584090..afcbe970 100644
--- a/packages/abi/src/index.ts
+++ b/packages/abi/src/index.ts
@@ -1,34 +1,61 @@
-"use strict";
-
-import { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, JsonFragmentType, ParamType } from "./fragments";
-import { AbiCoder, CoerceFunc, defaultAbiCoder } from "./abi-coder";
-import { checkResultErrors, Indexed, Interface, LogDescription, Result, TransactionDescription } from "./interface";
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+
+import {
+ ConstructorFragment,
+ ErrorFragment,
+ EventFragment,
+ FormatTypes,
+ Fragment,
+ FunctionFragment,
+ JsonFragment,
+ JsonFragmentType,
+ ParamType,
+} from './fragments.js';
+import { AbiCoder, CoerceFunc, defaultAbiCoder } from './abi-coder.js';
+import {
+ checkResultErrors,
+ Indexed,
+ Interface,
+ LogDescription,
+ Result,
+ TransactionDescription,
+} from './interface.js';
export {
- ConstructorFragment,
- ErrorFragment,
- EventFragment,
- Fragment,
- FunctionFragment,
- ParamType,
- FormatTypes,
-
- AbiCoder,
- defaultAbiCoder,
-
- Interface,
- Indexed,
-
- /////////////////////////
- // Types
-
- CoerceFunc,
- JsonFragment,
- JsonFragmentType,
-
- Result,
- checkResultErrors,
-
- LogDescription,
- TransactionDescription
+ ConstructorFragment,
+ ErrorFragment,
+ EventFragment,
+ Fragment,
+ FunctionFragment,
+ ParamType,
+ FormatTypes,
+ AbiCoder,
+ defaultAbiCoder,
+ Interface,
+ Indexed,
+
+ /// //////////////////////
+ // Types
+ CoerceFunc,
+ JsonFragment,
+ JsonFragmentType,
+ Result,
+ checkResultErrors,
+ LogDescription,
+ TransactionDescription,
};
diff --git a/packages/abi/src/interface.ts b/packages/abi/src/interface.ts
index fdf77eff..892f7851 100644
--- a/packages/abi/src/interface.ts
+++ b/packages/abi/src/interface.ts
@@ -1,65 +1,101 @@
-"use strict";
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
-import { getAddress } from "@ethersproject/address";
-import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
-import { arrayify, BytesLike, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from "@ethersproject/bytes";
-import { id } from "@ethersproject/hash";
-import { keccak256 } from "@ethersproject/keccak256"
-import { defineReadOnly, Description, getStatic } from "@ethersproject/properties";
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
-import { AbiCoder, defaultAbiCoder } from "./abi-coder";
-import { checkResultErrors, Result } from "./coders/abstract-coder";
-import { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, ParamType } from "./fragments";
+import { getAddress } from '@ethersproject/address';
+import { BigNumber, BigNumberish } from '@ethersproject/bignumber';
+import {
+ arrayify,
+ BytesLike,
+ concat,
+ hexDataSlice,
+ hexlify,
+ hexZeroPad,
+ isHexString,
+} from '@ethersproject/bytes';
+import { id } from '@ethersproject/hash';
+import { keccak256 } from '@ethersproject/keccak256';
+import { defineReadOnly, Description, getStatic } from '@ethersproject/properties';
+
+import { Logger } from '@ethersproject/logger';
+import { AbiCoder, defaultAbiCoder } from './abi-coder.js';
+import { checkResultErrors, Result } from './coders/abstract-coder.js';
+import {
+ ConstructorFragment,
+ ErrorFragment,
+ EventFragment,
+ FormatTypes,
+ Fragment,
+ FunctionFragment,
+ JsonFragment,
+ ParamType,
+} from './fragments.js';
+
+import { version } from './_version.js';
-import { Logger } from "@ethersproject/logger";
-import { version } from "./_version";
const logger = new Logger(version);
export { checkResultErrors, Result };
export class LogDescription extends Description {
- readonly eventFragment: EventFragment;
- readonly name: string;
- readonly signature: string;
- readonly topic: string;
- readonly args: Result
+ readonly eventFragment: EventFragment;
+ readonly name: string;
+ readonly signature: string;
+ readonly topic: string;
+ readonly args: Result;
}
export class TransactionDescription extends Description {
- readonly functionFragment: FunctionFragment;
- readonly name: string;
- readonly args: Result;
- readonly signature: string;
- readonly sighash: string;
- readonly value: BigNumber;
+ readonly functionFragment: FunctionFragment;
+ readonly name: string;
+ readonly args: Result;
+ readonly signature: string;
+ readonly sighash: string;
+ readonly value: BigNumber;
}
export class ErrorDescription extends Description {
- readonly errorFragment: ErrorFragment;
- readonly name: string;
- readonly args: Result;
- readonly signature: string;
- readonly sighash: string;
+ readonly errorFragment: ErrorFragment;
+ readonly name: string;
+ readonly args: Result;
+ readonly signature: string;
+ readonly sighash: string;
}
export class Indexed extends Description {
- readonly hash: string;
- readonly _isIndexed: boolean;
+ readonly hash: string;
+ readonly _isIndexed: boolean;
- static isIndexed(value: any): value is Indexed {
- return !!(value && value._isIndexed);
- }
+ static isIndexed(value: any): value is Indexed {
+ return !!(value && value._isIndexed);
+ }
}
-const BuiltinErrors: Record, name: string, reason?: boolean }> = {
- "0x08c379a0": { signature: "Error(string)", name: "Error", inputs: [ "string" ], reason: true },
- "0x4e487b71": { signature: "Panic(uint256)", name: "Panic", inputs: [ "uint256" ] }
-}
+const BuiltinErrors: Record<
+ string,
+ { signature: string; inputs: Array; name: string; reason?: boolean }
+> = {
+ '0x08c379a0': { signature: 'Error(string)', name: 'Error', inputs: ['string'], reason: true },
+ '0x4e487b71': { signature: 'Panic(uint256)', name: 'Panic', inputs: ['uint256'] },
+};
function wrapAccessError(property: string, error: Error): Error {
- const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);
- (wrap).error = error;
- return wrap;
+ const wrap = new Error(`deferred error during ABI decoding triggered accessing ${property}`);
+ (wrap).error = error;
+ return wrap;
}
/*
@@ -76,627 +112,727 @@ function checkNames(fragment: Fragment, type: "input" | "output", params: Array<
}
*/
export class Interface {
- readonly fragments: ReadonlyArray;
-
- readonly errors: { [ name: string ]: ErrorFragment };
- readonly events: { [ name: string ]: EventFragment };
- readonly functions: { [ name: string ]: FunctionFragment };
- readonly structs: { [ name: string ]: any };
-
- readonly deploy: ConstructorFragment;
-
- readonly _abiCoder: AbiCoder;
-
- readonly _isInterface: boolean;
-
- constructor(fragments: string | ReadonlyArray) {
- let abi: ReadonlyArray = [ ];
- if (typeof(fragments) === "string") {
- abi = JSON.parse(fragments);
- } else {
- abi = fragments;
- }
-
- defineReadOnly(this, "fragments", abi.map((fragment) => {
- return Fragment.from(fragment);
- }).filter((fragment) => (fragment != null)));
-
- defineReadOnly(this, "_abiCoder", getStatic<() => AbiCoder>(new.target, "getAbiCoder")());
-
- defineReadOnly(this, "functions", { });
- defineReadOnly(this, "errors", { });
- defineReadOnly(this, "events", { });
- defineReadOnly(this, "structs", { });
-
- // Add all fragments by their signature
- this.fragments.forEach((fragment) => {
- let bucket: { [ name: string ]: Fragment } = null;
- switch (fragment.type) {
- case "constructor":
- if (this.deploy) {
- logger.warn("duplicate definition - constructor");
- return;
- }
- //checkNames(fragment, "input", fragment.inputs);
- defineReadOnly(this, "deploy", fragment);
- return;
- case "function":
- //checkNames(fragment, "input", fragment.inputs);
- //checkNames(fragment, "output", (fragment).outputs);
- bucket = this.functions;
- break;
- case "event":
- //checkNames(fragment, "input", fragment.inputs);
- bucket = this.events;
- break;
- case "error":
- bucket = this.errors;
- break;
- default:
- return;
- }
-
- let signature = fragment.format();
- if (bucket[signature]) {
- logger.warn("duplicate definition - " + signature);
- return;
- }
-
- bucket[signature] = fragment;
- });
-
- // If we do not have a constructor add a default
- if (!this.deploy) {
- defineReadOnly(this, "deploy", ConstructorFragment.from({
- payable: false,
- type: "constructor"
- }));
- }
-
- defineReadOnly(this, "_isInterface", true);
- }
-
- format(format?: string): string | Array {
- if (!format) { format = FormatTypes.full; }
- if (format === FormatTypes.sighash) {
- logger.throwArgumentError("interface does not support formatting sighash", "format", format);
- }
-
- const abi = this.fragments.map((fragment) => fragment.format(format));
-
- // We need to re-bundle the JSON fragments a bit
- if (format === FormatTypes.json) {
- return JSON.stringify(abi.map((j) => JSON.parse(j)));
- }
-
- return abi;
- }
-
- // Sub-classes can override these to handle other blockchains
- static getAbiCoder(): AbiCoder {
- return defaultAbiCoder;
- }
-
- static getAddress(address: string): string {
- return getAddress(address);
- }
-
- static getSighash(fragment: ErrorFragment | FunctionFragment): string {
- return hexDataSlice(id(fragment.format()), 0, 4);
- }
-
- static getEventTopic(eventFragment: EventFragment): string {
- return id(eventFragment.format());
- }
-
- // Find a function definition by any means necessary (unless it is ambiguous)
- getFunction(nameOrSignatureOrSighash: string): FunctionFragment {
- if (isHexString(nameOrSignatureOrSighash)) {
- for (const name in this.functions) {
- if (nameOrSignatureOrSighash === this.getSighash(name)) {
- return this.functions[name];
- }
- }
- logger.throwArgumentError("no matching function", "sighash", nameOrSignatureOrSighash);
- }
-
- // It is a bare name, look up the function (will return null if ambiguous)
- if (nameOrSignatureOrSighash.indexOf("(") === -1) {
- const name = nameOrSignatureOrSighash.trim();
- const matching = Object.keys(this.functions).filter((f) => (f.split("("/* fix:) */)[0] === name));
- if (matching.length === 0) {
- logger.throwArgumentError("no matching function", "name", name);
- } else if (matching.length > 1) {
- logger.throwArgumentError("multiple matching functions", "name", name);
- }
-
- return this.functions[matching[0]];
- }
-
- // Normalize the signature and lookup the function
- const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
- if (!result) {
- logger.throwArgumentError("no matching function", "signature", nameOrSignatureOrSighash);
- }
- return result;
- }
-
- // Find an event definition by any means necessary (unless it is ambiguous)
- getEvent(nameOrSignatureOrTopic: string): EventFragment {
- if (isHexString(nameOrSignatureOrTopic)) {
- const topichash = nameOrSignatureOrTopic.toLowerCase();
- for (const name in this.events) {
- if (topichash === this.getEventTopic(name)) {
- return this.events[name];
- }
- }
- logger.throwArgumentError("no matching event", "topichash", topichash);
- }
-
- // It is a bare name, look up the function (will return null if ambiguous)
- if (nameOrSignatureOrTopic.indexOf("(") === -1) {
- const name = nameOrSignatureOrTopic.trim();
- const matching = Object.keys(this.events).filter((f) => (f.split("("/* fix:) */)[0] === name));
- if (matching.length === 0) {
- logger.throwArgumentError("no matching event", "name", name);
- } else if (matching.length > 1) {
- logger.throwArgumentError("multiple matching events", "name", name);
- }
-
- return this.events[matching[0]];
- }
-
- // Normalize the signature and lookup the function
- const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];
- if (!result) {
- logger.throwArgumentError("no matching event", "signature", nameOrSignatureOrTopic);
- }
- return result;
- }
-
- // Find a function definition by any means necessary (unless it is ambiguous)
- getError(nameOrSignatureOrSighash: string): ErrorFragment {
- if (isHexString(nameOrSignatureOrSighash)) {
- const getSighash = getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, "getSighash");
- for (const name in this.errors) {
- const error = this.errors[name];
- if (nameOrSignatureOrSighash === getSighash(error)) {
- return this.errors[name];
- }
- }
- logger.throwArgumentError("no matching error", "sighash", nameOrSignatureOrSighash);
- }
-
- // It is a bare name, look up the function (will return null if ambiguous)
- if (nameOrSignatureOrSighash.indexOf("(") === -1) {
- const name = nameOrSignatureOrSighash.trim();
- const matching = Object.keys(this.errors).filter((f) => (f.split("("/* fix:) */)[0] === name));
- if (matching.length === 0) {
- logger.throwArgumentError("no matching error", "name", name);
- } else if (matching.length > 1) {
- logger.throwArgumentError("multiple matching errors", "name", name);
- }
-
- return this.errors[matching[0]];
- }
-
- // Normalize the signature and lookup the function
- const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
- if (!result) {
- logger.throwArgumentError("no matching error", "signature", nameOrSignatureOrSighash);
- }
- return result;
- }
-
- // Get the sighash (the bytes4 selector) used by Hyperion to identify a function
- getSighash(fragment: ErrorFragment | FunctionFragment | string): string {
- if (typeof(fragment) === "string") {
- try {
- fragment = this.getFunction(fragment);
- } catch (error) {
- try {
- fragment = this.getError(fragment);
- } catch (_) {
- throw error;
- }
- }
- }
-
- return getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, "getSighash")(fragment);
- }
-
- // Get the topic (the bytes32 hash) used by Hyperion to identify an event
- getEventTopic(eventFragment: EventFragment | string): string {
- if (typeof(eventFragment) === "string") {
- eventFragment = this.getEvent(eventFragment);
- }
-
- return getStatic<(e: EventFragment) => string>(this.constructor, "getEventTopic")(eventFragment);
- }
-
-
- _decodeParams(params: ReadonlyArray, data: BytesLike): Result {
- return this._abiCoder.decode(params, data)
- }
-
- _encodeParams(params: ReadonlyArray, values: ReadonlyArray): string {
- return this._abiCoder.encode(params, values)
- }
-
- encodeDeploy(values?: ReadonlyArray): string {
- return this._encodeParams(this.deploy.inputs, values || [ ]);
- }
-
- decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {
- if (typeof(fragment) === "string") {
- fragment = this.getError(fragment);
- }
-
- const bytes = arrayify(data);
-
- if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {
- logger.throwArgumentError(`data signature does not match error ${ fragment.name }.`, "data", hexlify(bytes));
- }
-
- return this._decodeParams(fragment.inputs, bytes.slice(4));
- }
-
- encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray): string {
- if (typeof(fragment) === "string") {
- fragment = this.getError(fragment);
- }
-
- return hexlify(concat([
- this.getSighash(fragment),
- this._encodeParams(fragment.inputs, values || [ ])
- ]));
- }
-
- // Decode the data for a function call (e.g. tx.data)
- decodeFunctionData(functionFragment: FunctionFragment | string, data: BytesLike): Result {
- if (typeof(functionFragment) === "string") {
- functionFragment = this.getFunction(functionFragment);
- }
-
- const bytes = arrayify(data);
-
- if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {
- logger.throwArgumentError(`data signature does not match function ${ functionFragment.name }.`, "data", hexlify(bytes));
- }
-
- return this._decodeParams(functionFragment.inputs, bytes.slice(4));
- }
-
- // Encode the data for a function call (e.g. tx.data)
- encodeFunctionData(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {
- if (typeof(functionFragment) === "string") {
- functionFragment = this.getFunction(functionFragment);
- }
-
- return hexlify(concat([
- this.getSighash(functionFragment),
- this._encodeParams(functionFragment.inputs, values || [ ])
- ]));
- }
-
- // Decode the result from a function call (e.g. from eth_call)
- decodeFunctionResult(functionFragment: FunctionFragment | string, data: BytesLike): Result {
- if (typeof(functionFragment) === "string") {
- functionFragment = this.getFunction(functionFragment);
- }
-
- let bytes = arrayify(data);
-
- let reason: string = null;
- let message = "";
- let errorArgs: Result = null;
- let errorName: string = null;
- let errorSignature: string = null;
- switch (bytes.length % this._abiCoder._getWordSize()) {
- case 0:
- try {
- return this._abiCoder.decode(functionFragment.outputs, bytes);
- } catch (error) { }
- break;
-
- case 4: {
- const selector = hexlify(bytes.slice(0, 4));
- const builtin = BuiltinErrors[selector];
- if (builtin) {
- errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));
- errorName = builtin.name;
- errorSignature = builtin.signature;
- if (builtin.reason) { reason = errorArgs[0]; }
- if (errorName === "Error") {
- message = `; VM Exception while processing transaction: reverted with reason string ${ JSON.stringify(errorArgs[0]) }`;
- } else if (errorName === "Panic") {
- message = `; VM Exception while processing transaction: reverted with panic code ${ errorArgs[0] }`;
- }
- } else {
- try {
- const error = this.getError(selector);
- errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));
- errorName = error.name;
- errorSignature = error.format();
- } catch (error) { }
- }
- break;
- }
- }
-
- return logger.throwError("call revert exception" + message, Logger.errors.CALL_EXCEPTION, {
- method: functionFragment.format(),
- data: hexlify(data), errorArgs, errorName, errorSignature, reason
- });
- }
-
- // Encode the result for a function call (e.g. for eth_call)
- encodeFunctionResult(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {
- if (typeof(functionFragment) === "string") {
- functionFragment = this.getFunction(functionFragment);
- }
-
- return hexlify(this._abiCoder.encode(functionFragment.outputs, values || [ ]));
- }
-
- // Create the filter for the event with search criteria (e.g. for eth_filterLog)
- encodeFilterTopics(eventFragment: EventFragment | string, values: ReadonlyArray): Array> {
- if (typeof(eventFragment) === "string") {
- eventFragment = this.getEvent(eventFragment);
- }
-
- if (values.length > eventFragment.inputs.length) {
- logger.throwError("too many arguments for " + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {
- argument: "values",
- value: values
- })
- }
-
- let topics: Array> = [];
- if (!eventFragment.anonymous) { topics.push(this.getEventTopic(eventFragment)); }
-
- const encodeTopic = (param: ParamType, value: any): string => {
- if (param.type === "string") {
- return id(value);
- } else if (param.type === "bytes") {
- return keccak256(hexlify(value));
- }
-
- if (param.type === "bool" && typeof(value) === "boolean") {
- value = (value ? "0x01": "0x00");
- }
-
- if (param.type.match(/^u?int/)) {
- value = BigNumber.from(value).toHexString();
- }
-
- // Check addresses are valid
- if (param.type === "address") { this._abiCoder.encode( [ "address" ], [ value ]); }
- return hexZeroPad(hexlify(value), 32);
- };
-
- values.forEach((value, index) => {
-
- let param = (eventFragment).inputs[index];
-
- if (!param.indexed) {
- if (value != null) {
- logger.throwArgumentError("cannot filter non-indexed parameters; must be null", ("contract." + param.name), value);
- }
- return;
- }
-
- if (value == null) {
- topics.push(null);
- } else if (param.baseType === "array" || param.baseType === "tuple") {
- logger.throwArgumentError("filtering with tuples or arrays not supported", ("contract." + param.name), value);
- } else if (Array.isArray(value)) {
- topics.push(value.map((value) => encodeTopic(param, value)));
- } else {
- topics.push(encodeTopic(param, value));
- }
- });
-
- // Trim off trailing nulls
- while (topics.length && topics[topics.length - 1] === null) {
- topics.pop();
- }
-
- return topics;
- }
-
- encodeEventLog(eventFragment: EventFragment | string, values: ReadonlyArray): { data: string, topics: Array } {
- if (typeof(eventFragment) === "string") {
- eventFragment = this.getEvent(eventFragment);
- }
-
- const topics: Array = [ ];
-
- const dataTypes: Array = [ ];
- const dataValues: Array = [ ];
-
- if (!eventFragment.anonymous) {
- topics.push(this.getEventTopic(eventFragment));
- }
-
- if (values.length !== eventFragment.inputs.length) {
- logger.throwArgumentError("event arguments/values mismatch", "values", values);
- }
-
- eventFragment.inputs.forEach((param, index) => {
- const value = values[index];
- if (param.indexed) {
- if (param.type === "string") {
- topics.push(id(value))
- } else if (param.type === "bytes") {
- topics.push(keccak256(value))
- } else if (param.baseType === "tuple" || param.baseType === "array") {
- // @TODO
- throw new Error("not implemented");
- } else {
- topics.push(this._abiCoder.encode([ param.type] , [ value ]));
- }
- } else {
- dataTypes.push(param);
- dataValues.push(value);
- }
- });
-
- return {
- data: this._abiCoder.encode(dataTypes , dataValues),
- topics: topics
- };
- }
-
- // Decode a filter for the event and the search criteria
- decodeEventLog(eventFragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray): Result {
- if (typeof(eventFragment) === "string") {
- eventFragment = this.getEvent(eventFragment);
- }
-
- if (topics != null && !eventFragment.anonymous) {
- let topicHash = this.getEventTopic(eventFragment);
- if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {
- logger.throwError("fragment/topic mismatch", Logger.errors.INVALID_ARGUMENT, { argument: "topics[0]", expected: topicHash, value: topics[0] });
- }
- topics = topics.slice(1);
- }
-
- let indexed: Array = [];
- let nonIndexed: Array = [];
- let dynamic: Array = [];
-
- eventFragment.inputs.forEach((param, index) => {
- if (param.indexed) {
- if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") {
- indexed.push(ParamType.fromObject({ type: "bytes32", name: param.name }));
- dynamic.push(true);
- } else {
- indexed.push(param);
- dynamic.push(false);
- }
- } else {
- nonIndexed.push(param);
- dynamic.push(false);
- }
- });
-
- let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)): null;
- let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);
-
- let result: (Array & { [ key: string ]: any }) = [ ];
- let nonIndexedIndex = 0, indexedIndex = 0;
- eventFragment.inputs.forEach((param, index) => {
- if (param.indexed) {
- if (resultIndexed == null) {
- result[index] = new Indexed({ _isIndexed: true, hash: null });
-
- } else if (dynamic[index]) {
- result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });
-
- } else {
- try {
- result[index] = resultIndexed[indexedIndex++];
- } catch (error) {
- result[index] = error;
- }
- }
- } else {
- try {
- result[index] = resultNonIndexed[nonIndexedIndex++];
- } catch (error) {
- result[index] = error;
- }
- }
-
- // Add the keyword argument if named and safe
- if (param.name && result[param.name] == null) {
- const value = result[index];
-
- // Make error named values throw on access
- if (value instanceof Error) {
- Object.defineProperty(result, param.name, {
- enumerable: true,
- get: () => { throw wrapAccessError(`property ${ JSON.stringify(param.name) }`, value); }
- });
- } else {
- result[param.name] = value;
- }
- }
- });
-
- // Make all error indexed values throw on access
- for (let i = 0; i < result.length; i++) {
- const value = result[i];
- if (value instanceof Error) {
- Object.defineProperty(result, i, {
- enumerable: true,
- get: () => { throw wrapAccessError(`index ${ i }`, value); }
- });
- }
- }
-
- return Object.freeze(result);
- }
-
- // Given a transaction, find the matching function fragment (if any) and
- // determine all its properties and call parameters
- parseTransaction(tx: { data: string, value?: BigNumberish }): TransactionDescription {
- let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase())
-
- if (!fragment) { return null; }
-
- return new TransactionDescription({
- args: this._abiCoder.decode(fragment.inputs, "0x" + tx.data.substring(10)),
- functionFragment: fragment,
- name: fragment.name,
- signature: fragment.format(),
- sighash: this.getSighash(fragment),
- value: BigNumber.from(tx.value || "0"),
- });
- }
-
- // @TODO
- //parseCallResult(data: BytesLike): ??
-
- // Given an event log, find the matching event fragment (if any) and
- // determine all its properties and values
- parseLog(log: { topics: Array, data: string}): LogDescription {
- let fragment = this.getEvent(log.topics[0]);
-
- if (!fragment || fragment.anonymous) { return null; }
-
- // @TODO: If anonymous, and the only method, and the input count matches, should we parse?
- // Probably not, because just because it is the only event in the ABI does
- // not mean we have the full ABI; maybe just a fragment?
-
-
- return new LogDescription({
- eventFragment: fragment,
- name: fragment.name,
- signature: fragment.format(),
- topic: this.getEventTopic(fragment),
- args: this.decodeEventLog(fragment, log.data, log.topics)
- });
- }
-
- parseError(data: BytesLike): ErrorDescription {
- const hexData = hexlify(data);
- let fragment = this.getError(hexData.substring(0, 10).toLowerCase())
-
- if (!fragment) { return null; }
-
- return new ErrorDescription({
- args: this._abiCoder.decode(fragment.inputs, "0x" + hexData.substring(10)),
- errorFragment: fragment,
- name: fragment.name,
- signature: fragment.format(),
- sighash: this.getSighash(fragment),
- });
- }
-
-
- /*
+ readonly fragments: ReadonlyArray;
+
+ readonly errors: { [name: string]: ErrorFragment };
+ readonly events: { [name: string]: EventFragment };
+ readonly functions: { [name: string]: FunctionFragment };
+ readonly structs: { [name: string]: any };
+
+ readonly deploy: ConstructorFragment;
+
+ readonly _abiCoder: AbiCoder;
+
+ readonly _isInterface: boolean;
+
+ constructor(fragments: string | ReadonlyArray) {
+ let abi: ReadonlyArray = [];
+ if (typeof fragments === 'string') {
+ abi = JSON.parse(fragments);
+ } else {
+ abi = fragments;
+ }
+
+ defineReadOnly(
+ this,
+ 'fragments',
+ abi.map(fragment => Fragment.from(fragment)).filter(fragment => fragment != null),
+ );
+
+ defineReadOnly(this, '_abiCoder', getStatic<() => AbiCoder>(new.target, 'getAbiCoder')());
+
+ defineReadOnly(this, 'functions', {});
+ defineReadOnly(this, 'errors', {});
+ defineReadOnly(this, 'events', {});
+ defineReadOnly(this, 'structs', {});
+
+ // Add all fragments by their signature
+ this.fragments.forEach(fragment => {
+ let bucket: { [name: string]: Fragment } = null;
+ switch (fragment.type) {
+ case 'constructor':
+ if (this.deploy) {
+ logger.warn('duplicate definition - constructor');
+ return;
+ }
+ // checkNames(fragment, "input", fragment.inputs);
+ defineReadOnly(this, 'deploy', fragment);
+ return;
+ case 'function':
+ // checkNames(fragment, "input", fragment.inputs);
+ // checkNames(fragment, "output", (fragment).outputs);
+ bucket = this.functions;
+ break;
+ case 'event':
+ // checkNames(fragment, "input", fragment.inputs);
+ bucket = this.events;
+ break;
+ case 'error':
+ bucket = this.errors;
+ break;
+ default:
+ return;
+ }
+
+ const signature = fragment.format();
+ if (bucket[signature]) {
+ logger.warn(`duplicate definition - ${signature}`);
+ return;
+ }
+
+ bucket[signature] = fragment;
+ });
+
+ // If we do not have a constructor add a default
+ if (!this.deploy) {
+ defineReadOnly(
+ this,
+ 'deploy',
+ ConstructorFragment.from({
+ payable: false,
+ type: 'constructor',
+ }),
+ );
+ }
+
+ defineReadOnly(this, '_isInterface', true);
+ }
+
+ format(format?: string): string | Array {
+ if (!format) {
+ format = FormatTypes.full;
+ }
+ if (format === FormatTypes.sighash) {
+ logger.throwArgumentError(
+ 'interface does not support formatting sighash',
+ 'format',
+ format,
+ );
+ }
+
+ const abi = this.fragments.map(fragment => fragment.format(format));
+
+ // We need to re-bundle the JSON fragments a bit
+ if (format === FormatTypes.json) {
+ return JSON.stringify(abi.map(j => JSON.parse(j)));
+ }
+
+ return abi;
+ }
+
+ // Sub-classes can override these to handle other blockchains
+ static getAbiCoder(): AbiCoder {
+ return defaultAbiCoder;
+ }
+
+ static getAddress(address: string): string {
+ return getAddress(address);
+ }
+
+ static getSighash(fragment: ErrorFragment | FunctionFragment): string {
+ return hexDataSlice(id(fragment.format()), 0, 4);
+ }
+
+ static getEventTopic(eventFragment: EventFragment): string {
+ return id(eventFragment.format());
+ }
+
+ // Find a function definition by any means necessary (unless it is ambiguous)
+ getFunction(nameOrSignatureOrSighash: string): FunctionFragment {
+ if (isHexString(nameOrSignatureOrSighash)) {
+ for (const name in this.functions) {
+ if (nameOrSignatureOrSighash === this.getSighash(name)) {
+ return this.functions[name];
+ }
+ }
+ logger.throwArgumentError('no matching function', 'sighash', nameOrSignatureOrSighash);
+ }
+
+ // It is a bare name, look up the function (will return null if ambiguous)
+ if (!nameOrSignatureOrSighash.includes('(')) {
+ const name = nameOrSignatureOrSighash.trim();
+ const matching = Object.keys(this.functions).filter(
+ f => f.split('(' /* fix:) */)[0] === name,
+ );
+ if (matching.length === 0) {
+ logger.throwArgumentError('no matching function', 'name', name);
+ } else if (matching.length > 1) {
+ logger.throwArgumentError('multiple matching functions', 'name', name);
+ }
+
+ return this.functions[matching[0]];
+ }
+
+ // Normalize the signature and lookup the function
+ const result =
+ this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
+ if (!result) {
+ logger.throwArgumentError(
+ 'no matching function',
+ 'signature',
+ nameOrSignatureOrSighash,
+ );
+ }
+ return result;
+ }
+
+ // Find an event definition by any means necessary (unless it is ambiguous)
+ getEvent(nameOrSignatureOrTopic: string): EventFragment {
+ if (isHexString(nameOrSignatureOrTopic)) {
+ const topichash = nameOrSignatureOrTopic.toLowerCase();
+ for (const name in this.events) {
+ if (topichash === this.getEventTopic(name)) {
+ return this.events[name];
+ }
+ }
+ logger.throwArgumentError('no matching event', 'topichash', topichash);
+ }
+
+ // It is a bare name, look up the function (will return null if ambiguous)
+ if (!nameOrSignatureOrTopic.includes('(')) {
+ const name = nameOrSignatureOrTopic.trim();
+ const matching = Object.keys(this.events).filter(
+ f => f.split('(' /* fix:) */)[0] === name,
+ );
+ if (matching.length === 0) {
+ logger.throwArgumentError('no matching event', 'name', name);
+ } else if (matching.length > 1) {
+ logger.throwArgumentError('multiple matching events', 'name', name);
+ }
+
+ return this.events[matching[0]];
+ }
+
+ // Normalize the signature and lookup the function
+ const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];
+ if (!result) {
+ logger.throwArgumentError('no matching event', 'signature', nameOrSignatureOrTopic);
+ }
+ return result;
+ }
+
+ // Find a function definition by any means necessary (unless it is ambiguous)
+ getError(nameOrSignatureOrSighash: string): ErrorFragment {
+ if (isHexString(nameOrSignatureOrSighash)) {
+ const getSighash = getStatic<(f: ErrorFragment | FunctionFragment) => string>(
+ this.constructor,
+ 'getSighash',
+ );
+ for (const name in this.errors) {
+ const error = this.errors[name];
+ if (nameOrSignatureOrSighash === getSighash(error)) {
+ return this.errors[name];
+ }
+ }
+ logger.throwArgumentError('no matching error', 'sighash', nameOrSignatureOrSighash);
+ }
+
+ // It is a bare name, look up the function (will return null if ambiguous)
+ if (!nameOrSignatureOrSighash.includes('(')) {
+ const name = nameOrSignatureOrSighash.trim();
+ const matching = Object.keys(this.errors).filter(
+ f => f.split('(' /* fix:) */)[0] === name,
+ );
+ if (matching.length === 0) {
+ logger.throwArgumentError('no matching error', 'name', name);
+ } else if (matching.length > 1) {
+ logger.throwArgumentError('multiple matching errors', 'name', name);
+ }
+
+ return this.errors[matching[0]];
+ }
+
+ // Normalize the signature and lookup the function
+ const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
+ if (!result) {
+ logger.throwArgumentError('no matching error', 'signature', nameOrSignatureOrSighash);
+ }
+ return result;
+ }
+
+ // Get the sighash (the bytes4 selector) used by Hyperion to identify a function
+ getSighash(fragment: ErrorFragment | FunctionFragment | string): string {
+ if (typeof fragment === 'string') {
+ try {
+ fragment = this.getFunction(fragment);
+ } catch (error) {
+ try {
+ fragment = this.getError(fragment);
+ } catch (_) {
+ throw error;
+ }
+ }
+ }
+
+ return getStatic<(f: ErrorFragment | FunctionFragment) => string>(
+ this.constructor,
+ 'getSighash',
+ )(fragment);
+ }
+
+ // Get the topic (the bytes32 hash) used by Hyperion to identify an event
+ getEventTopic(eventFragment: EventFragment | string): string {
+ if (typeof eventFragment === 'string') {
+ eventFragment = this.getEvent(eventFragment);
+ }
+
+ return getStatic<(e: EventFragment) => string>(
+ this.constructor,
+ 'getEventTopic',
+ )(eventFragment);
+ }
+
+ _decodeParams(params: ReadonlyArray, data: BytesLike): Result {
+ return this._abiCoder.decode(params, data);
+ }
+
+ _encodeParams(params: ReadonlyArray, values: ReadonlyArray): string {
+ return this._abiCoder.encode(params, values);
+ }
+
+ encodeDeploy(values?: ReadonlyArray): string {
+ return this._encodeParams(this.deploy.inputs, values || []);
+ }
+
+ decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {
+ if (typeof fragment === 'string') {
+ fragment = this.getError(fragment);
+ }
+
+ const bytes = arrayify(data);
+
+ if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {
+ logger.throwArgumentError(
+ `data signature does not match error ${fragment.name}.`,
+ 'data',
+ hexlify(bytes),
+ );
+ }
+
+ return this._decodeParams(fragment.inputs, bytes.slice(4));
+ }
+
+ encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray): string {
+ if (typeof fragment === 'string') {
+ fragment = this.getError(fragment);
+ }
+
+ return hexlify(
+ concat([this.getSighash(fragment), this._encodeParams(fragment.inputs, values || [])]),
+ );
+ }
+
+ // Decode the data for a function call (e.g. tx.data)
+ decodeFunctionData(functionFragment: FunctionFragment | string, data: BytesLike): Result {
+ if (typeof functionFragment === 'string') {
+ functionFragment = this.getFunction(functionFragment);
+ }
+
+ const bytes = arrayify(data);
+
+ if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {
+ logger.throwArgumentError(
+ `data signature does not match function ${functionFragment.name}.`,
+ 'data',
+ hexlify(bytes),
+ );
+ }
+
+ return this._decodeParams(functionFragment.inputs, bytes.slice(4));
+ }
+
+ // Encode the data for a function call (e.g. tx.data)
+ encodeFunctionData(
+ functionFragment: FunctionFragment | string,
+ values?: ReadonlyArray,
+ ): string {
+ if (typeof functionFragment === 'string') {
+ functionFragment = this.getFunction(functionFragment);
+ }
+
+ return hexlify(
+ concat([
+ this.getSighash(functionFragment),
+ this._encodeParams(functionFragment.inputs, values || []),
+ ]),
+ );
+ }
+
+ // Decode the result from a function call (e.g. from zond_call)
+ decodeFunctionResult(functionFragment: FunctionFragment | string, data: BytesLike): Result {
+ if (typeof functionFragment === 'string') {
+ functionFragment = this.getFunction(functionFragment);
+ }
+
+ const bytes = arrayify(data);
+
+ let reason: string = null;
+ let message = '';
+ let errorArgs: Result = null;
+ let errorName: string = null;
+ let errorSignature: string = null;
+ switch (bytes.length % this._abiCoder._getWordSize()) {
+ case 0:
+ try {
+ return this._abiCoder.decode(functionFragment.outputs, bytes);
+ } catch (error) {}
+ break;
+
+ case 4: {
+ const selector = hexlify(bytes.slice(0, 4));
+ const builtin = BuiltinErrors[selector];
+ if (builtin) {
+ errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));
+ errorName = builtin.name;
+ errorSignature = builtin.signature;
+ if (builtin.reason) {
+ reason = errorArgs[0];
+ }
+ if (errorName === 'Error') {
+ message = `; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(
+ errorArgs[0],
+ )}`;
+ } else if (errorName === 'Panic') {
+ message = `; VM Exception while processing transaction: reverted with panic code ${errorArgs[0]}`;
+ }
+ } else {
+ try {
+ const error = this.getError(selector);
+ errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));
+ errorName = error.name;
+ errorSignature = error.format();
+ } catch (error) {}
+ }
+ break;
+ }
+ }
+
+ return logger.throwError(`call revert exception${message}`, Logger.errors.CALL_EXCEPTION, {
+ method: functionFragment.format(),
+ data: hexlify(data),
+ errorArgs,
+ errorName,
+ errorSignature,
+ reason,
+ });
+ }
+
+ // Encode the result for a function call (e.g. for zond_call)
+ encodeFunctionResult(
+ functionFragment: FunctionFragment | string,
+ values?: ReadonlyArray,
+ ): string {
+ if (typeof functionFragment === 'string') {
+ functionFragment = this.getFunction(functionFragment);
+ }
+
+ return hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));
+ }
+
+ // Create the filter for the event with search criteria (e.g. for zond_filterLog)
+ encodeFilterTopics(
+ eventFragment: EventFragment | string,
+ values: ReadonlyArray,
+ ): Array> {
+ if (typeof eventFragment === 'string') {
+ eventFragment = this.getEvent(eventFragment);
+ }
+
+ if (values.length > eventFragment.inputs.length) {
+ logger.throwError(
+ `too many arguments for ${eventFragment.format()}`,
+ Logger.errors.UNEXPECTED_ARGUMENT,
+ {
+ argument: 'values',
+ value: values,
+ },
+ );
+ }
+
+ const topics: Array> = [];
+ if (!eventFragment.anonymous) {
+ topics.push(this.getEventTopic(eventFragment));
+ }
+
+ const encodeTopic = (param: ParamType, value: any): string => {
+ if (param.type === 'string') {
+ return id(value);
+ }
+ if (param.type === 'bytes') {
+ return keccak256(hexlify(value));
+ }
+
+ if (param.type === 'bool' && typeof value === 'boolean') {
+ value = value ? '0x01' : '0x00';
+ }
+
+ if (param.type.match(/^u?int/)) {
+ value = BigNumber.from(value).toHexString();
+ }
+
+ // Check addresses are valid
+ if (param.type === 'address') {
+ this._abiCoder.encode(['address'], [value]);
+ }
+ return hexZeroPad(hexlify(value), 32);
+ };
+
+ values.forEach((value, index) => {
+ const param = (eventFragment).inputs[index];
+
+ if (!param.indexed) {
+ if (value != null) {
+ logger.throwArgumentError(
+ 'cannot filter non-indexed parameters; must be null',
+ `contract.${param.name}`,
+ value,
+ );
+ }
+ return;
+ }
+
+ if (value == null) {
+ topics.push(null);
+ } else if (param.baseType === 'array' || param.baseType === 'tuple') {
+ logger.throwArgumentError(
+ 'filtering with tuples or arrays not supported',
+ `contract.${param.name}`,
+ value,
+ );
+ } else if (Array.isArray(value)) {
+ topics.push(value.map(value => encodeTopic(param, value)));
+ } else {
+ topics.push(encodeTopic(param, value));
+ }
+ });
+
+ // Trim off trailing nulls
+ while (topics.length && topics[topics.length - 1] === null) {
+ topics.pop();
+ }
+
+ return topics;
+ }
+
+ encodeEventLog(
+ eventFragment: EventFragment | string,
+ values: ReadonlyArray,
+ ): { data: string; topics: Array } {
+ if (typeof eventFragment === 'string') {
+ eventFragment = this.getEvent(eventFragment);
+ }
+
+ const topics: Array = [];
+
+ const dataTypes: Array = [];
+ const dataValues: Array = [];
+
+ if (!eventFragment.anonymous) {
+ topics.push(this.getEventTopic(eventFragment));
+ }
+
+ if (values.length !== eventFragment.inputs.length) {
+ logger.throwArgumentError('event arguments/values mismatch', 'values', values);
+ }
+
+ eventFragment.inputs.forEach((param, index) => {
+ const value = values[index];
+ if (param.indexed) {
+ if (param.type === 'string') {
+ topics.push(id(value));
+ } else if (param.type === 'bytes') {
+ topics.push(keccak256(value));
+ } else if (param.baseType === 'tuple' || param.baseType === 'array') {
+ // @TODO
+ throw new Error('not implemented');
+ } else {
+ topics.push(this._abiCoder.encode([param.type], [value]));
+ }
+ } else {
+ dataTypes.push(param);
+ dataValues.push(value);
+ }
+ });
+
+ return {
+ data: this._abiCoder.encode(dataTypes, dataValues),
+ topics,
+ };
+ }
+
+ // Decode a filter for the event and the search criteria
+ decodeEventLog(
+ eventFragment: EventFragment | string,
+ data: BytesLike,
+ topics?: ReadonlyArray,
+ ): Result {
+ if (typeof eventFragment === 'string') {
+ eventFragment = this.getEvent(eventFragment);
+ }
+
+ if (topics != null && !eventFragment.anonymous) {
+ const topicHash = this.getEventTopic(eventFragment);
+ if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {
+ logger.throwError('fragment/topic mismatch', Logger.errors.INVALID_ARGUMENT, {
+ argument: 'topics[0]',
+ expected: topicHash,
+ value: topics[0],
+ });
+ }
+ topics = topics.slice(1);
+ }
+
+ const indexed: Array = [];
+ const nonIndexed: Array = [];
+ const dynamic: Array = [];
+
+ eventFragment.inputs.forEach((param, index) => {
+ if (param.indexed) {
+ if (
+ param.type === 'string' ||
+ param.type === 'bytes' ||
+ param.baseType === 'tuple' ||
+ param.baseType === 'array'
+ ) {
+ indexed.push(ParamType.fromObject({ type: 'bytes32', name: param.name }));
+ dynamic.push(true);
+ } else {
+ indexed.push(param);
+ dynamic.push(false);
+ }
+ } else {
+ nonIndexed.push(param);
+ dynamic.push(false);
+ }
+ });
+
+ const resultIndexed =
+ topics != null ? this._abiCoder.decode(indexed, concat(topics)) : null;
+ const resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);
+
+ const result: Array & { [key: string]: any } = [];
+ let nonIndexedIndex = 0;
+ let indexedIndex = 0;
+ eventFragment.inputs.forEach((param, index) => {
+ if (param.indexed) {
+ if (resultIndexed == null) {
+ result[index] = new Indexed({ _isIndexed: true, hash: null });
+ } else if (dynamic[index]) {
+ result[index] = new Indexed({
+ _isIndexed: true,
+ hash: resultIndexed[indexedIndex++],
+ });
+ } else {
+ try {
+ result[index] = resultIndexed[indexedIndex++];
+ } catch (error) {
+ result[index] = error;
+ }
+ }
+ } else {
+ try {
+ result[index] = resultNonIndexed[nonIndexedIndex++];
+ } catch (error) {
+ result[index] = error;
+ }
+ }
+
+ // Add the keyword argument if named and safe
+ if (param.name && result[param.name] == null) {
+ const value = result[index];
+
+ // Make error named values throw on access
+ if (value instanceof Error) {
+ Object.defineProperty(result, param.name, {
+ enumerable: true,
+ get: () => {
+ throw wrapAccessError(`property ${JSON.stringify(param.name)}`, value);
+ },
+ });
+ } else {
+ result[param.name] = value;
+ }
+ }
+ });
+
+ // Make all error indexed values throw on access
+ for (let i = 0; i < result.length; i++) {
+ const value = result[i];
+ if (value instanceof Error) {
+ Object.defineProperty(result, i, {
+ enumerable: true,
+ get: () => {
+ throw wrapAccessError(`index ${i}`, value);
+ },
+ });
+ }
+ }
+
+ return Object.freeze(result);
+ }
+
+ // Given a transaction, find the matching function fragment (if any) and
+ // determine all its properties and call parameters
+ parseTransaction(tx: { data: string; value?: BigNumberish }): TransactionDescription {
+ const fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());
+
+ if (!fragment) {
+ return null;
+ }
+
+ return new TransactionDescription({
+ args: this._abiCoder.decode(fragment.inputs, `0x${tx.data.substring(10)}`),
+ functionFragment: fragment,
+ name: fragment.name,
+ signature: fragment.format(),
+ sighash: this.getSighash(fragment),
+ value: BigNumber.from(tx.value || '0'),
+ });
+ }
+
+ // @TODO
+ // parseCallResult(data: BytesLike): ??
+
+ // Given an event log, find the matching event fragment (if any) and
+ // determine all its properties and values
+ parseLog(log: { topics: Array; data: string }): LogDescription {
+ const fragment = this.getEvent(log.topics[0]);
+
+ if (!fragment || fragment.anonymous) {
+ return null;
+ }
+
+ // @TODO: If anonymous, and the only method, and the input count matches, should we parse?
+ // Probably not, because just because it is the only event in the ABI does
+ // not mean we have the full ABI; maybe just a fragment?
+
+ return new LogDescription({
+ eventFragment: fragment,
+ name: fragment.name,
+ signature: fragment.format(),
+ topic: this.getEventTopic(fragment),
+ args: this.decodeEventLog(fragment, log.data, log.topics),
+ });
+ }
+
+ parseError(data: BytesLike): ErrorDescription {
+ const hexData = hexlify(data);
+ const fragment = this.getError(hexData.substring(0, 10).toLowerCase());
+
+ if (!fragment) {
+ return null;
+ }
+
+ return new ErrorDescription({
+ args: this._abiCoder.decode(fragment.inputs, `0x${hexData.substring(10)}`),
+ errorFragment: fragment,
+ name: fragment.name,
+ signature: fragment.format(),
+ sighash: this.getSighash(fragment),
+ });
+ }
+
+ /*
static from(value: Array | string | Interface) {
if (Interface.isInterface(value)) {
return value;
@@ -708,8 +844,7 @@ export class Interface {
}
*/
- static isInterface(value: any): value is Interface {
- return !!(value && value._isInterface);
- }
+ static isInterface(value: any): value is Interface {
+ return !!(value && value._isInterface);
+ }
}
-
diff --git a/packages/abi/test/config/jest.config.js b/packages/abi/test/config/jest.config.js
index eaa5e904..cdd5982b 100644
--- a/packages/abi/test/config/jest.config.js
+++ b/packages/abi/test/config/jest.config.js
@@ -1,3 +1,19 @@
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
module.exports = {
globals: {
'ts-jest': {
diff --git a/packages/abi/test/integration/jest.config.js b/packages/abi/test/integration/jest.config.js
index 1d958902..67155e65 100644
--- a/packages/abi/test/integration/jest.config.js
+++ b/packages/abi/test/integration/jest.config.js
@@ -1,4 +1,19 @@
-'use strict';
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
const base = require('../config/jest.config');
diff --git a/packages/abi/test/unit/abi.test.ts b/packages/abi/test/unit/abi.test.ts
index 120879f4..5b2179f8 100644
--- a/packages/abi/test/unit/abi.test.ts
+++ b/packages/abi/test/unit/abi.test.ts
@@ -1,3 +1,19 @@
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
describe('abi', () => {
it('test', () => {});
-});
\ No newline at end of file
+});
diff --git a/packages/abi/test/unit/jest.config.js b/packages/abi/test/unit/jest.config.js
index 03802530..c16086ff 100644
--- a/packages/abi/test/unit/jest.config.js
+++ b/packages/abi/test/unit/jest.config.js
@@ -1,3 +1,19 @@
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
const base = require('../config/jest.config');
module.exports = {
diff --git a/packages/abi/tsconfig.cjs.json b/packages/abi/tsconfig.cjs.json
index 5e70d22d..9bba4059 100644
--- a/packages/abi/tsconfig.cjs.json
+++ b/packages/abi/tsconfig.cjs.json
@@ -9,17 +9,14 @@
"strictNullChecks": false,
"resolveJsonModule": false,
"target": "es2022",
- "lib": [
- "es2020",
- "es5"
- ],
+ "lib": ["es2020", "es5"],
"noUnusedParameters": false,
// "moduleResolution": "node16",
"importHelpers": true,
"noEmitOnError": true,
"allowSyntheticDefaultImports": false,
"preserveSymlinks": true,
- "preserveWatchOutput": true,
+ "preserveWatchOutput": true,
"noImplicitThis": true,
"noImplicitAny": true,
"pretty": false
diff --git a/packages/abi/tsconfig.esm.json b/packages/abi/tsconfig.esm.json
index 3edd46c1..27fec8f9 100644
--- a/packages/abi/tsconfig.esm.json
+++ b/packages/abi/tsconfig.esm.json
@@ -4,10 +4,7 @@
"outDir": "./lib/esm",
"strictNullChecks": false,
"target": "es2022",
- "lib": [
- "es2020",
- "es5"
- ],
+ "lib": ["es2020", "es5"],
"noUnusedParameters": false,
// "moduleResolution": "node16",
"importHelpers": true,
diff --git a/packages/abi/tsconfig.types.json b/packages/abi/tsconfig.types.json
index 4ed71bfc..7fc1bd53 100644
--- a/packages/abi/tsconfig.types.json
+++ b/packages/abi/tsconfig.types.json
@@ -7,14 +7,11 @@
"emitDeclarationOnly": true,
"strictNullChecks": false,
"target": "es2022",
- "lib": [
- "es2020",
- "es5"
- ],
+ "lib": ["es2020", "es5"],
"noUnusedParameters": false,
// "moduleResolution": "node16",
"importHelpers": true,
"noEmitOnError": true
},
"include": ["src/**/*", "index.d.ts"]
-}
\ No newline at end of file
+}
diff --git a/packages/web3-core/src/utils.ts b/packages/web3-core/src/utils.ts
index 1d4922fa..d676d407 100644
--- a/packages/web3-core/src/utils.ts
+++ b/packages/web3-core/src/utils.ts
@@ -53,7 +53,7 @@ export const isLegacySendAsyncProvider = (
export const isSupportedProvider = (
provider: SupportedProviders,
-): provider is SupportedProviders =>
+): provider is SupportedProviders =>
provider &&
(isWeb3Provider(provider) ||
isEIP1193Provider(provider) ||
diff --git a/packages/web3-core/src/web3_context.ts b/packages/web3-core/src/web3_context.ts
index ceb25b7d..99b83f00 100644
--- a/packages/web3-core/src/web3_context.ts
+++ b/packages/web3-core/src/web3_context.ts
@@ -341,7 +341,7 @@ export class Web3Context<
/**
* Will return the givenProvider if available.
*
- * When using web3.js in an Zond compatible browser, it will set with the current native provider by that browser. Will return the given provider by the (browser) environment, otherwise `undefined`.
+ * When using web3.js in a Zond compatible browser, it will set with the current native provider by that browser. Will return the given provider by the (browser) environment, otherwise `undefined`.
*/
// eslint-disable-next-line class-methods-use-this
public get givenProvider() {
diff --git a/packages/web3-core/test/config/jest.config.js b/packages/web3-core/test/config/jest.config.js
index 4a60f95b..c8c21e06 100644
--- a/packages/web3-core/test/config/jest.config.js
+++ b/packages/web3-core/test/config/jest.config.js
@@ -12,7 +12,7 @@ module.exports = {
},
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
- },
+ },
verbose: false,
collectCoverage: false,
coverageReporters: ['json'],
diff --git a/packages/web3-core/test/unit/web3_batch_request.test.ts b/packages/web3-core/test/unit/web3_batch_request.test.ts
index 72cd5a55..bb6da7f4 100644
--- a/packages/web3-core/test/unit/web3_batch_request.test.ts
+++ b/packages/web3-core/test/unit/web3_batch_request.test.ts
@@ -15,7 +15,11 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { JsonRpcBatchRequest, JsonRpcBatchResponse, JsonRpcOptionalRequest } from '@theqrl/web3-types';
+import {
+ JsonRpcBatchRequest,
+ JsonRpcBatchResponse,
+ JsonRpcOptionalRequest,
+} from '@theqrl/web3-types';
import { jsonRpc, Web3DeferredPromise } from '@theqrl/web3-utils';
import { OperationAbortError, OperationTimeoutError } from '@theqrl/web3-errors';
import { Web3BatchRequest } from '../../src/web3_batch_request';
diff --git a/packages/web3-core/test/unit/web3_subscription.test.ts b/packages/web3-core/test/unit/web3_subscription.test.ts
index 75fee0a9..d1b6e94f 100644
--- a/packages/web3-core/test/unit/web3_subscription.test.ts
+++ b/packages/web3-core/test/unit/web3_subscription.test.ts
@@ -106,4 +106,4 @@ describe('Web3Subscription', () => {
expect(sub.id).toBeUndefined();
});
});
-});
\ No newline at end of file
+});
diff --git a/packages/web3-errors/CHANGELOG.md b/packages/web3-errors/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-errors/CHANGELOG.md
+++ b/packages/web3-errors/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-errors/src/error_codes.ts b/packages/web3-errors/src/error_codes.ts
index 38d73320..0c51a7f5 100644
--- a/packages/web3-errors/src/error_codes.ts
+++ b/packages/web3-errors/src/error_codes.ts
@@ -133,10 +133,10 @@ export const JSONRPC_ERR_UNSUPPORTED_METHOD = 4200;
export const JSONRPC_ERR_DISCONNECTED = 4900;
export const JSONRPC_ERR_CHAIN_DISCONNECTED = 4901;
-// ENS error codes
-export const ERR_ENS_CHECK_INTERFACE_SUPPORT = 901;
-export const ERR_ENS_UNSUPPORTED_NETWORK = 902;
-export const ERR_ENS_NETWORK_NOT_SYNCED = 903;
+// ZNS error codes
+export const ERR_ZNS_CHECK_INTERFACE_SUPPORT = 901;
+export const ERR_ZNS_UNSUPPORTED_NETWORK = 902;
+export const ERR_ZNS_NETWORK_NOT_SYNCED = 903;
// Utils error codes
export const ERR_INVALID_STRING = 1001;
diff --git a/packages/web3-errors/src/errors/account_errors.ts b/packages/web3-errors/src/errors/account_errors.ts
index 3562130b..f97f988b 100644
--- a/packages/web3-errors/src/errors/account_errors.ts
+++ b/packages/web3-errors/src/errors/account_errors.ts
@@ -123,4 +123,4 @@ export class InvalidPublicKeyError extends BaseWeb3Error {
public constructor() {
super(`Invalid Public Key, Not a valid string or uint8Array`);
}
-}
\ No newline at end of file
+}
diff --git a/packages/web3-errors/src/errors/transaction_errors.ts b/packages/web3-errors/src/errors/transaction_errors.ts
index 63c0e00e..ef504b67 100644
--- a/packages/web3-errors/src/errors/transaction_errors.ts
+++ b/packages/web3-errors/src/errors/transaction_errors.ts
@@ -329,9 +329,8 @@ export class MissingGasError extends InvalidValueError {
}) {
super(
`gas: ${value.gas ?? 'undefined'}, maxPriorityFeePerGas: ${
- value.maxPriorityFeePerGas ?? 'undefined'}, maxFeePerGas: ${
- value.maxFeePerGas ?? 'undefined'
- }`,
+ value.maxPriorityFeePerGas ?? 'undefined'
+ }, maxFeePerGas: ${value.maxFeePerGas ?? 'undefined'}`,
'"gas" is missing',
);
this.innerError = new MissingGasInnerError();
@@ -342,10 +341,7 @@ export class InvalidGas extends InvalidValueError {
public code = ERR_TX_INVALID_LEGACY_GAS;
public constructor(value: { gas: Numbers | undefined }) {
- super(
- `gas: ${value.gas ?? 'undefined'}`,
- 'Gas is lower than 0',
- );
+ super(`gas: ${value.gas ?? 'undefined'}`, 'Gas is lower than 0');
}
}
@@ -504,10 +500,7 @@ export class LocalWalletNotAvailableError extends InvalidValueError {
export class InvalidPropertiesForTransactionTypeError extends BaseWeb3Error {
public code = ERR_TX_INVALID_PROPERTIES_FOR_TYPE;
- public constructor(
- validationError: Web3ValidationErrorObject[],
- txType: '0x2',
- ) {
+ public constructor(validationError: Web3ValidationErrorObject[], txType: '0x2') {
const invalidPropertyNames: string[] = [];
validationError.forEach(error => invalidPropertyNames.push(error.keyword));
super(
diff --git a/packages/web3-errors/src/errors/ens_errors.ts b/packages/web3-errors/src/errors/zns_errors.ts
similarity index 64%
rename from packages/web3-errors/src/errors/ens_errors.ts
rename to packages/web3-errors/src/errors/zns_errors.ts
index 20a5796c..377bd440 100644
--- a/packages/web3-errors/src/errors/ens_errors.ts
+++ b/packages/web3-errors/src/errors/zns_errors.ts
@@ -18,28 +18,28 @@ along with web3.js. If not, see .
/* eslint-disable max-classes-per-file */
import {
- ERR_ENS_CHECK_INTERFACE_SUPPORT,
- ERR_ENS_NETWORK_NOT_SYNCED,
- ERR_ENS_UNSUPPORTED_NETWORK,
+ ERR_ZNS_CHECK_INTERFACE_SUPPORT,
+ ERR_ZNS_NETWORK_NOT_SYNCED,
+ ERR_ZNS_UNSUPPORTED_NETWORK,
} from '../error_codes.js';
import { BaseWeb3Error } from '../web3_error_base.js';
-export class ENSCheckInterfaceSupportError extends BaseWeb3Error {
- public code = ERR_ENS_CHECK_INTERFACE_SUPPORT;
+export class ZNSCheckInterfaceSupportError extends BaseWeb3Error {
+ public code = ERR_ZNS_CHECK_INTERFACE_SUPPORT;
public constructor(errorDetails: string) {
- super(`ENS resolver check interface support error. "${errorDetails}"`);
+ super(`ZNS resolver check interface support error. "${errorDetails}"`);
}
}
-export class ENSUnsupportedNetworkError extends BaseWeb3Error {
- public code = ERR_ENS_UNSUPPORTED_NETWORK;
+export class ZNSUnsupportedNetworkError extends BaseWeb3Error {
+ public code = ERR_ZNS_UNSUPPORTED_NETWORK;
public constructor(networkType: string) {
- super(`ENS is not supported on network ${networkType}`);
+ super(`ZNS is not supported on network ${networkType}`);
}
}
-export class ENSNetworkNotSyncedError extends BaseWeb3Error {
- public code = ERR_ENS_NETWORK_NOT_SYNCED;
+export class ZNSNetworkNotSyncedError extends BaseWeb3Error {
+ public code = ERR_ZNS_NETWORK_NOT_SYNCED;
public constructor() {
super(`Network not synced`);
}
diff --git a/packages/web3-errors/src/index.ts b/packages/web3-errors/src/index.ts
index 5916321f..c77fc3fb 100644
--- a/packages/web3-errors/src/index.ts
+++ b/packages/web3-errors/src/index.ts
@@ -20,7 +20,7 @@ export * from './web3_error_base.js';
export * from './errors/account_errors.js';
export * from './errors/connection_errors.js';
export * from './errors/contract_errors.js';
-export * from './errors/ens_errors.js';
+export * from './errors/zns_errors.js';
export * from './errors/generic_errors.js';
export * from './errors/provider_errors.js';
export * from './errors/signature_errors.js';
diff --git a/packages/web3-errors/test/unit/errors.test.ts b/packages/web3-errors/test/unit/errors.test.ts
index 5d2bb348..0d2c84ba 100644
--- a/packages/web3-errors/test/unit/errors.test.ts
+++ b/packages/web3-errors/test/unit/errors.test.ts
@@ -19,7 +19,7 @@ import { JsonRpcError } from '@theqrl/web3-types';
import * as accountErrors from '../../src/errors/account_errors';
import * as connectionErrors from '../../src/errors/connection_errors';
import * as contractErrors from '../../src/errors/contract_errors';
-import * as ensErrors from '../../src/errors/ens_errors';
+import * as znsErrors from '../../src/errors/zns_errors';
import * as genericErrors from '../../src/errors/generic_errors';
import * as providerErrors from '../../src/errors/provider_errors';
import * as signatureErrors from '../../src/errors/signature_errors';
@@ -44,7 +44,7 @@ describe('errors', () => {
...accountErrors,
...connectionErrors,
...contractErrors,
- ...ensErrors,
+ ...znsErrors,
...genericErrors,
...providerErrors,
...signatureErrors,
diff --git a/packages/web3-net/CHANGELOG.md b/packages/web3-net/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-net/CHANGELOG.md
+++ b/packages/web3-net/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-net/src/index.ts b/packages/web3-net/src/index.ts
index d045540f..e80405d9 100644
--- a/packages/web3-net/src/index.ts
+++ b/packages/web3-net/src/index.ts
@@ -16,7 +16,7 @@ along with web3.js. If not, see .
*/
/**
- * The web3-net package allows you to interact with an Zond node’s network properties.
+ * The web3-net package allows you to interact with a Zond node’s network properties.
*
* ```ts
* import Net from '@theqrl/web3-net';
diff --git a/packages/web3-providers-http/CHANGELOG.md b/packages/web3-providers-http/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-providers-http/CHANGELOG.md
+++ b/packages/web3-providers-http/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-providers-ipc/CHANGELOG.md b/packages/web3-providers-ipc/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-providers-ipc/CHANGELOG.md
+++ b/packages/web3-providers-ipc/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-providers-ws/CHANGELOG.md b/packages/web3-providers-ws/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-providers-ws/CHANGELOG.md
+++ b/packages/web3-providers-ws/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-rpc-methods/CHANGELOG.md b/packages/web3-rpc-methods/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-rpc-methods/CHANGELOG.md
+++ b/packages/web3-rpc-methods/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-types/CHANGELOG.md b/packages/web3-types/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-types/CHANGELOG.md
+++ b/packages/web3-types/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-types/src/apis/zond_execution_api.ts b/packages/web3-types/src/apis/zond_execution_api.ts
index e9465460..c91891a0 100644
--- a/packages/web3-types/src/apis/zond_execution_api.ts
+++ b/packages/web3-types/src/apis/zond_execution_api.ts
@@ -74,12 +74,10 @@ export interface Transaction1559SignedAPI extends Transaction1559UnsignedAPI {
}
// https://github.com/ethereum/execution-apis/blob/main/src/schemas/transaction.yaml#L144
-export type TransactionUnsignedAPI =
- | Transaction1559UnsignedAPI;
+export type TransactionUnsignedAPI = Transaction1559UnsignedAPI;
// https://github.com/ethereum/execution-apis/blob/main/src/schemas/transaction.yaml#L211
-export type TransactionSignedAPI =
- | Transaction1559SignedAPI;
+export type TransactionSignedAPI = Transaction1559SignedAPI;
// https://github.com/ethereum/execution-apis/blob/main/src/schemas/transaction.yaml#L216
export type TransactionInfoAPI = TransactionSignedAPI & {
@@ -156,7 +154,9 @@ export type ZondExecutionAPI = {
zond_getBlockTransactionCountByNumber: (blockNumber: BlockNumberOrTag) => Uint;
// https://github.com/ethereum/execution-apis/blob/main/src/eth/transaction.yaml
- zond_getTransactionByHash: (transactionHash: HexString32Bytes) => TransactionInfoAPI | undefined;
+ zond_getTransactionByHash: (
+ transactionHash: HexString32Bytes,
+ ) => TransactionInfoAPI | undefined;
zond_getTransactionByBlockHashAndIndex: (
blockHash: HexString32Bytes,
transactionIndex: Uint,
diff --git a/packages/web3-types/src/web3_base_provider.ts b/packages/web3-types/src/web3_base_provider.ts
index 4bbd8655..5e92106a 100644
--- a/packages/web3-types/src/web3_base_provider.ts
+++ b/packages/web3-types/src/web3_base_provider.ts
@@ -98,7 +98,6 @@ export interface LegacyRequestProvider {
): void;
}
-
export interface SimpleProvider {
request, ResponseType = Web3APIReturnType>(
args: Web3APIPayload,
diff --git a/packages/web3-types/src/zond_types.ts b/packages/web3-types/src/zond_types.ts
index ab1eae16..faad69a6 100644
--- a/packages/web3-types/src/zond_types.ts
+++ b/packages/web3-types/src/zond_types.ts
@@ -88,7 +88,7 @@ export type TransactionOutput = {
readonly transactionIndex?: Numbers;
maxPriorityFeePerGas: Numbers;
maxFeePerGas: Numbers;
-}
+};
export interface LogsInput {
readonly blockHash?: HexString;
@@ -360,8 +360,7 @@ export interface PopulatedUnsignedEip1559Transaction {
maxPriorityFeePerGas: Numbers;
}
-export type PopulatedUnsignedTransaction =
- PopulatedUnsignedEip1559Transaction;
+export type PopulatedUnsignedTransaction = PopulatedUnsignedEip1559Transaction;
export interface BlockBase<
ByteType,
@@ -438,26 +437,26 @@ export interface Eip712TypedData {
/**
* To contain the gas Fee Data to be used with transactions.
- *
+ *
* Typically you will only need `maxFeePerGas` and `maxPriorityFeePerGas` for a transaction following EIP-1559.
* However, if you want to get informed about the fees of last block, you can use `baseFeePerGas` too.
- *
- *
+ *
+ *
* @see https://eips.ethereum.org/EIPS/eip-1559
- *
+ *
*/
export interface FeeData {
/**
* The baseFeePerGas returned from the last available block.
- *
- * However, the user will only pay (the future baseFeePerGas + the maxPriorityFeePerGas).
+ *
+ * However, the user will only pay (the future baseFeePerGas + the maxPriorityFeePerGas).
* And this value is just for getting informed about the fees of last block.
*/
readonly baseFeePerGas?: Numbers;
/**
* The maximum fee that the user would be willing to pay per-gas.
- *
+ *
* However, the user will only pay (the future baseFeePerGas + the maxPriorityFeePerGas).
* And the `maxFeePerGas` could be used to prevent paying more than it, if `baseFeePerGas` went too high.
*/
@@ -467,4 +466,4 @@ export interface FeeData {
* The validator's tip for including a transaction in a block.
*/
readonly maxPriorityFeePerGas?: Numbers;
-}
\ No newline at end of file
+}
diff --git a/packages/web3-utils/CHANGELOG.md b/packages/web3-utils/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-utils/CHANGELOG.md
+++ b/packages/web3-utils/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-utils/src/converters.ts b/packages/web3-utils/src/converters.ts
index 4b1e2ac0..2daf9ff0 100644
--- a/packages/web3-utils/src/converters.ts
+++ b/packages/web3-utils/src/converters.ts
@@ -42,36 +42,30 @@ const expo10 = (expo: number) => base ** BigInt(expo);
// Ref: https://ethdocs.org/en/latest/ether.html
/** @internal */
export const zondUnitMap = {
- noether: BigInt('0'),
- wei: BigInt(1),
- kwei: expo10(3),
- Kwei: expo10(3),
- babbage: expo10(3),
- femtoether: expo10(3),
- mwei: expo10(6),
- Mwei: expo10(6),
- lovelace: expo10(6),
- picoether: expo10(6),
- gwei: expo10(9),
- Gwei: expo10(9),
- shannon: expo10(9),
- nanoether: expo10(9),
+ nozond: BigInt('0'),
+ planck: BigInt(1),
+ kplanck: expo10(3),
+ Kplanck: expo10(3),
+ mplanck: expo10(6),
+ Mplanck: expo10(6),
+ gplanck: expo10(9),
+ Gplanck: expo10(9),
nano: expo10(9),
- szabo: expo10(12),
- microether: expo10(12),
+ tplanck: expo10(12),
+ Tplanck: expo10(12),
micro: expo10(12),
- finney: expo10(15),
- milliether: expo10(15),
+ pplanck: expo10(15),
+ Pplanck: expo10(15),
milli: expo10(15),
- ether: expo10(18),
- kether: expo10(21),
+ zond: expo10(18),
+ kzond: expo10(21),
grand: expo10(21),
- mether: expo10(24),
- gether: expo10(27),
- tether: expo10(30),
+ mzond: expo10(24),
+ gzond: expo10(27),
+ tzond: expo10(30),
};
-export type EtherUnits = keyof typeof zondUnitMap;
+export type ZondUnits = keyof typeof zondUnitMap;
/**
* Convert a value from bytes to Uint8Array
* @param data - Data to be converted
@@ -149,9 +143,7 @@ export const hexToBytes = (bytes: HexString): Uint8Array => {
* > Uint8Array(20) [ 116, 101, 115, 116, 116, 101, 115, 116, 116, 101, 115, 116, 116, 101, 115, 116, 116, 101, 115, 116 ]
* ```
*/
-export const addressToBytes = (value: Address): Uint8Array => {
- return bytesToUint8Array(addressToHex(value));
-};
+export const addressToBytes = (value: Address): Uint8Array => bytesToUint8Array(addressToHex(value));
/**
* Convert a hex string to an address string
@@ -495,28 +487,25 @@ export const toBigInt = (value: unknown): bigint => {
};
/**
- * Takes a number of wei and converts it to any other ether unit.
- * @param number - The value in wei
+ * Takes a number of planck and converts it to any other zond unit.
+ * @param number - The value in planck
* @param unit - The unit to convert to
* @returns - Returns the converted value in the given unit
*
* @example
* ```ts
- * console.log(web3.utils.fromWei("1", "ether"));
+ * console.log(web3.utils.fromPlanck("1", "zond"));
* > 0.000000000000000001
- *
- * console.log(web3.utils.fromWei("1", "shannon"));
- * > 0.000000001
* ```
*/
-export const fromWei = (number: Numbers, unit: EtherUnits): string => {
+export const fromPlanck = (number: Numbers, unit: ZondUnits): string => {
const denomination = zondUnitMap[unit];
if (!denomination) {
throw new InvalidUnitError(unit);
}
- // value in wei would always be integer
+ // value in planck would always be integer
// 13456789, 1234
const value = String(toNumber(number));
@@ -554,20 +543,20 @@ export const fromWei = (number: Numbers, unit: EtherUnits): string => {
};
/**
- * Takes a number of a unit and converts it to wei.
+ * Takes a number of a unit and converts it to planck.
*
* @param number - The number to convert.
- * @param unit - {@link EtherUnits} The unit of the number passed.
- * @returns The number converted to wei.
+ * @param unit - {@link ZondUnits} The unit of the number passed.
+ * @returns The number converted to planck.
*
* @example
* ```ts
- * console.log(web3.utils.toWei("0.001", "ether"));
- * > 1000000000000000 //(wei)
+ * console.log(web3.utils.toPlanck("0.001", "zond"));
+ * > 1000000000000000 //(planck)
* ```
*/
-// todo in 1.x unit defaults to 'ether'
-export const toWei = (number: Numbers, unit: EtherUnits): string => {
+// todo in 1.x unit defaults to 'zond'
+export const toPlanck = (number: Numbers, unit: ZondUnits): string => {
validator.validate(['number'], [number]);
const denomination = zondUnitMap[unit];
diff --git a/packages/web3-utils/src/formatter.ts b/packages/web3-utils/src/formatter.ts
index 46aa9741..032b0dd7 100644
--- a/packages/web3-utils/src/formatter.ts
+++ b/packages/web3-utils/src/formatter.ts
@@ -16,7 +16,13 @@ along with web3.js. If not, see .
*/
import { FormatterError } from '@theqrl/web3-errors';
import { Bytes, DataFormat, FMT_BYTES, FMT_NUMBER, FormatType } from '@theqrl/web3-types';
-import { isNullish, isObject, JsonSchema, utils, ValidationSchemaInput } from '@theqrl/web3-validator';
+import {
+ isNullish,
+ isObject,
+ JsonSchema,
+ utils,
+ ValidationSchemaInput,
+} from '@theqrl/web3-validator';
import { bytesToUint8Array, bytesToHex, numberToHex, toBigInt } from './converters.js';
import { mergeDeep } from './objects.js';
import { padLeft } from './string_manipulation.js';
diff --git a/packages/web3-utils/src/promise_helpers.ts b/packages/web3-utils/src/promise_helpers.ts
index 1b55abe3..ed7becc6 100644
--- a/packages/web3-utils/src/promise_helpers.ts
+++ b/packages/web3-utils/src/promise_helpers.ts
@@ -84,22 +84,25 @@ export function pollTillDefinedAndReturnIntervalId(
): [Promise>, Timer] {
let intervalId: Timer | undefined;
const polledRes = new Promise>((resolve, reject) => {
- intervalId = setInterval(function intervalCallbackFunc(){
- (async () => {
- try {
- const res = await waitWithTimeout(func, interval);
+ intervalId = setInterval(
+ (function intervalCallbackFunc() {
+ (async () => {
+ try {
+ const res = await waitWithTimeout(func, interval);
- if (!isNullish(res)) {
+ if (!isNullish(res)) {
+ clearInterval(intervalId);
+ resolve(res as unknown as Exclude);
+ }
+ } catch (error) {
clearInterval(intervalId);
- resolve(res as unknown as Exclude);
+ reject(error);
}
- } catch (error) {
- clearInterval(intervalId);
- reject(error);
- }
- })() as unknown;
- return intervalCallbackFunc;}() // this will immediate invoke first call
- , interval);
+ })() as unknown;
+ return intervalCallbackFunc;
+ })(), // this will immediate invoke first call
+ interval,
+ );
});
return [polledRes as unknown as Promise>, intervalId!];
@@ -109,7 +112,7 @@ export function pollTillDefinedAndReturnIntervalId(
* Repeatedly calls an async function with a given interval until the result of the function is defined (not undefined or null),
* or until a timeout is reached.
* pollTillDefinedAndReturnIntervalId() function should be used instead of pollTillDefined if you need IntervalId in result.
- * This function will be deprecated in next major release so use pollTillDefinedAndReturnIntervalId().
+ * This function will be deprecated in next major release so use pollTillDefinedAndReturnIntervalId().
* @param func - The function to call.
* @param interval - The interval in milliseconds.
*/
diff --git a/packages/web3-utils/src/validation.ts b/packages/web3-utils/src/validation.ts
index cba23f8d..2e4b4ce8 100644
--- a/packages/web3-utils/src/validation.ts
+++ b/packages/web3-utils/src/validation.ts
@@ -16,10 +16,7 @@ along with web3.js. If not, see .
*/
import { InvalidBlockError } from '@theqrl/web3-errors';
-import {
- isBlockTag,
- isNullish as isNullishValidator,
-} from '@theqrl/web3-validator';
+import { isBlockTag, isNullish as isNullishValidator } from '@theqrl/web3-validator';
import { BlockNumberOrTag, BlockTags } from '@theqrl/web3-types';
/**
diff --git a/packages/web3-utils/test/config/jest.config.js b/packages/web3-utils/test/config/jest.config.js
index 4a60f95b..c8c21e06 100644
--- a/packages/web3-utils/test/config/jest.config.js
+++ b/packages/web3-utils/test/config/jest.config.js
@@ -12,7 +12,7 @@ module.exports = {
},
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
- },
+ },
verbose: false,
collectCoverage: false,
coverageReporters: ['json'],
diff --git a/packages/web3-utils/test/fixtures/converters.ts b/packages/web3-utils/test/fixtures/converters.ts
index aa56dc91..39e71473 100644
--- a/packages/web3-utils/test/fixtures/converters.ts
+++ b/packages/web3-utils/test/fixtures/converters.ts
@@ -15,8 +15,15 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { Address, Bytes, HexString, Numbers, ValueTypes, ZPrefixedHexString } from '@theqrl/web3-types';
-import { EtherUnits, hexToBytes } from '../../src/converters';
+import {
+ Address,
+ Bytes,
+ HexString,
+ Numbers,
+ ValueTypes,
+ ZPrefixedHexString,
+} from '@theqrl/web3-types';
+import { ZondUnits, hexToBytes } from '../../src/converters';
export const bytesToHexValidData: [Bytes, HexString][] = [
[new Uint8Array([72]), '0x48'],
@@ -245,72 +252,75 @@ export const toHexInvalidData: [any, string][] = [
[undefined, 'Invalid value given "undefined". Error: can not be converted to hex.'],
];
-const conversionBaseData: [[Numbers, EtherUnits], string][] = [
- [[0, 'wei'], '0'],
- [[123, 'wei'], '123'],
- [['123', 'wei'], '123'],
- [[BigInt(123), 'wei'], '123'],
- [['1000', 'wei'], '1000'],
- [['1', 'kwei'], '0.001'],
- [['1', 'mwei'], '0.000001'],
- [['1', 'gwei'], '0.000000001'],
+const conversionBaseData: [[Numbers, ZondUnits], string][] = [
+ [[0, 'planck'], '0'],
+ [[123, 'planck'], '123'],
+ [['123', 'planck'], '123'],
+ [[BigInt(123), 'planck'], '123'],
+ [['1000', 'planck'], '1000'],
+ [['1', 'kplanck'], '0.001'],
+ [['1', 'mplanck'], '0.000001'],
+ [['1', 'gplanck'], '0.000000001'],
[['1', 'micro'], '0.000000000001'],
[['1', 'milli'], '0.000000000000001'],
- [['1', 'ether'], '0.000000000000000001'],
- [['1', 'kether'], '0.000000000000000000001'],
- [['1', 'mether'], '0.000000000000000000000001'],
- [['1', 'gether'], '0.000000000000000000000000001'],
- [['1', 'tether'], '0.000000000000000000000000000001'],
- [['900000000000000000000000000001', 'tether'], '0.900000000000000000000000000001'],
- [['1000', 'kwei'], '1'],
- [['1000000', 'mwei'], '1'],
- [['1000000000', 'gwei'], '1'],
+ [['1', 'zond'], '0.000000000000000001'],
+ [['1', 'kzond'], '0.000000000000000000001'],
+ [['1', 'mzond'], '0.000000000000000000000001'],
+ [['1', 'gzond'], '0.000000000000000000000000001'],
+ [['1', 'tzond'], '0.000000000000000000000000000001'],
+ [['900000000000000000000000000001', 'tzond'], '0.900000000000000000000000000001'],
+ [['1000', 'kplanck'], '1'],
+ [['1000000', 'mplanck'], '1'],
+ [['1000000000', 'gplanck'], '1'],
[['1000000000000', 'micro'], '1'],
[['1000000000000000', 'milli'], '1'],
- [['1000000000000000000', 'ether'], '1'],
- [['1000000000000000000000', 'kether'], '1'],
- [['1000000000000000000000000', 'mether'], '1'],
- [['1000000000000000000000000000', 'gether'], '1'],
- [['1000000000000000000000000000000', 'tether'], '1'],
- [['1000000000000000000000000000000', 'tether'], '1'],
- [['12345678', 'gwei'], '0.012345678'],
- [['76912345678', 'gwei'], '76.912345678'],
- [['134439381738', 'gwei'], '134.439381738'],
- [['178373938391829348', 'ether'], '0.178373938391829348'],
- [['879123456788877661', 'gwei'], '879123456.788877661'],
- [['879123456788877661', 'tether'], '0.000000000000879123456788877661'],
-];
-
-export const fromWeiValidData: [[Numbers, EtherUnits], string][] = [
+ [['1000000000000000000', 'zond'], '1'],
+ [['1000000000000000000000', 'kzond'], '1'],
+ [['1000000000000000000000000', 'mzond'], '1'],
+ [['1000000000000000000000000000', 'gzond'], '1'],
+ [['1000000000000000000000000000000', 'tzond'], '1'],
+ [['1000000000000000000000000000000', 'tzond'], '1'],
+ [['12345678', 'gplanck'], '0.012345678'],
+ [['76912345678', 'gplanck'], '76.912345678'],
+ [['134439381738', 'gplanck'], '134.439381738'],
+ [['178373938391829348', 'zond'], '0.178373938391829348'],
+ [['879123456788877661', 'gplanck'], '879123456.788877661'],
+ [['879123456788877661', 'tzond'], '0.000000000000879123456788877661'],
+];
+
+export const fromPlanckValidData: [[Numbers, ZondUnits], string][] = [
...conversionBaseData,
- [['0xff', 'wei'], '255'],
+ [['0xff', 'planck'], '255'],
];
-export const toWeiValidData: [[Numbers, EtherUnits], string][] = [
+export const toPlanckValidData: [[Numbers, ZondUnits], string][] = [
...conversionBaseData,
- [['255', 'wei'], '0xFF'],
+ [['255', 'planck'], '0xFF'],
];
-export const fromWeiInvalidData: [[any, any], string][] = [
+export const fromPlanckInvalidData: [[any, any], string][] = [
// eslint-disable-next-line no-useless-escape
- [['123.34', 'kwei'], 'Invalid value given "123.34". Error: can not parse as number data.'],
+ [['123.34', 'kplanck'], 'Invalid value given "123.34". Error: can not parse as number data.'],
// Using "null" value intentionally for validation
// eslint-disable-next-line no-null/no-null
- [[null, 'kwei'], 'Invalid value given "undefined". Error: can not parse as number data.'],
- [[undefined, 'kwei'], 'Invalid value given "undefined". Error: can not parse as number data.'],
- [[{}, 'kwei'], 'Invalid value given "{}". Error: can not parse as number data'],
- [['data', 'kwei'], 'Invalid value given "data". Error: can not parse as number data.'],
- [['1234', 'uwei'], 'Invalid value given "uwei". Error: invalid unit.'],
+ [[null, 'kplanck'], 'Invalid value given "undefined". Error: can not parse as number data.'],
+ [
+ [undefined, 'kplanck'],
+ 'Invalid value given "undefined". Error: can not parse as number data.',
+ ],
+ [[{}, 'kplanck'], 'Invalid value given "{}". Error: can not parse as number data'],
+ [['data', 'kplanck'], 'Invalid value given "data". Error: can not parse as number data.'],
+ [['1234', 'uplanck'], 'Invalid value given "uplanck". Error: invalid unit.'],
];
-export const toWeiInvalidData: [[any, any], string][] = [
+export const toPlanckInvalidData: [[any, any], string][] = [
// Using "null" value intentionally for validation
// eslint-disable-next-line no-null/no-null
- [[null, 'kwei'], 'value "null" at "/0" must pass "number" validation'],
- [[undefined, 'kwei'], 'Web3 validator found 1 error[s]:\nvalue at "/0" is required'],
- [[{}, 'kwei'], 'value "{}" at "/0" must pass "number" validation'],
- [['data', 'kwei'], 'value "data" at "/0" must pass "number" validation'],
- [['1234', 'uwei'], 'Invalid value given "uwei". Error: invalid unit.'],
+ [[null, 'kplanck'], 'value "null" at "/0" must pass "number" validation'],
+ [[undefined, 'kplanck'], 'Web3 validator found 1 error[s]:\nvalue at "/0" is required'],
+ [[{}, 'kplanck'], 'value "{}" at "/0" must pass "number" validation'],
+ [['data', 'kplanck'], 'value "data" at "/0" must pass "number" validation'],
+ [['1234', 'uplanck'], 'Invalid value given "uplanck". Error: invalid unit.'],
];
export const toCheckSumValidData: [string, string][] = [
['Z0089d53f703f7e0843953d48133f74ce247184c2', 'Z0089d53F703f7E0843953D48133f74cE247184c2'],
@@ -348,9 +358,25 @@ export const toBigIntInvalidData: [any, string][] = [
];
export const addressToBytesValidData: [ZPrefixedHexString, Uint8Array][] = [
- ['Z4848484848484848484848484848484848484848', new Uint8Array([72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72])],
- ['Z3772377237723772377237723772377237723772', new Uint8Array([55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55, 114])],
- ['Z480c480c480c480c480c480c480c480c480c480c', new Uint8Array([72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12])],
+ [
+ 'Z4848484848484848484848484848484848484848',
+ new Uint8Array([
+ 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
+ ]),
+ ],
+ [
+ 'Z3772377237723772377237723772377237723772',
+ new Uint8Array([
+ 55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55, 114, 55,
+ 114,
+ ]),
+ ],
+ [
+ 'Z480c480c480c480c480c480c480c480c480c480c',
+ new Uint8Array([
+ 72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12, 72, 12,
+ ]),
+ ],
];
export const addressToHexValidData: [ZPrefixedHexString, HexString][] = [
@@ -363,8 +389,14 @@ export const addressToHexValidData: [ZPrefixedHexString, HexString][] = [
export const invalidAddressData: [any, string][] = [
['Z1', 'value "Z1" at "/0" must pass "address" validation'],
- ['ZE247a45c287191d435A8a5D72A7C8dc030451E9F', 'value "ZE247a45c287191d435A8a5D72A7C8dc030451E9F" at "/0" must pass "address" validation'], // Invalid checksum
- ['-Z407d73d8a49eeb85d32cf465507dd71d507100c1', 'value "-Z407d73d8a49eeb85d32cf465507dd71d507100c1" at "/0" must pass "address" validation'],
+ [
+ 'ZE247a45c287191d435A8a5D72A7C8dc030451E9F',
+ 'value "ZE247a45c287191d435A8a5D72A7C8dc030451E9F" at "/0" must pass "address" validation',
+ ], // Invalid checksum
+ [
+ '-Z407d73d8a49eeb85d32cf465507dd71d507100c1',
+ 'value "-Z407d73d8a49eeb85d32cf465507dd71d507100c1" at "/0" must pass "address" validation',
+ ],
];
export const hexToAddressValidData: [HexString, ZPrefixedHexString][] = [
@@ -381,4 +413,4 @@ export const hexToAddressInvalidData: [HexString, string][] = [
['xfff', 'value "xfff" at "/0" must pass "hex" validation'],
['-123', 'value "-123" at "/0" must pass "hex" validation'],
['-9x123', 'value "-9x123" at "/0" must pass "hex" validation'],
-];
\ No newline at end of file
+];
diff --git a/packages/web3-utils/test/fixtures/hash.ts b/packages/web3-utils/test/fixtures/hash.ts
index 9f96d4fd..b41e56bc 100644
--- a/packages/web3-utils/test/fixtures/hash.ts
+++ b/packages/web3-utils/test/fixtures/hash.ts
@@ -263,14 +263,8 @@ export const encodePackedInvalidData: [any, string][] = [
[{ type: 'string', value: true }, 'Invalid value given "true". Error: not a valid string.'],
[{ type: 'string', value: 1234 }, 'Invalid value given "1234". Error: not a valid string.'],
[{ type: 'boolean', value: 1234 }, 'Invalid value given "1234". Error: not a valid boolean.'],
- [
- { type: 'address', value: 1234 },
- 'Invalid value given "1234". Error: invalid zond address',
- ],
- [
- { type: 'address', value: '0x2' },
- 'Invalid value given "0x2". Error: invalid zond address',
- ],
+ [{ type: 'address', value: 1234 }, 'Invalid value given "1234". Error: invalid zond address'],
+ [{ type: 'address', value: '0x2' }, 'Invalid value given "0x2". Error: invalid zond address'],
[{ type: 'uint612', value: 13 }, 'Invalid value given "13". Error: invalid size given.'],
[
{ type: 'uint8', value: 1000 },
diff --git a/packages/web3-utils/test/unit/converters.test.ts b/packages/web3-utils/test/unit/converters.test.ts
index e40488f4..53a3f0cd 100644
--- a/packages/web3-utils/test/unit/converters.test.ts
+++ b/packages/web3-utils/test/unit/converters.test.ts
@@ -21,7 +21,7 @@ import {
fromAscii,
fromDecimal,
fromUtf8,
- fromWei,
+ fromPlanck,
hexToAscii,
hexToBytes,
hexToNumber,
@@ -35,7 +35,7 @@ import {
toHex,
toNumber,
toUtf8,
- toWei,
+ toPlanck,
utf8ToHex,
toChecksumAddress,
bytesToUint8Array,
@@ -49,8 +49,8 @@ import {
asciiToHexValidData,
bytesToHexInvalidData,
bytesToHexValidData,
- fromWeiInvalidData,
- fromWeiValidData,
+ fromPlanckInvalidData,
+ fromPlanckValidData,
hexToAsciiValidData,
hexToBytesInvalidData,
hexToBytesValidData,
@@ -63,8 +63,8 @@ import {
numberToHexValidData,
toHexValidData,
toHexInvalidData,
- toWeiInvalidData,
- toWeiValidData,
+ toPlanckInvalidData,
+ toPlanckValidData,
utf8ToHexInvalidData,
utf8ToHexValidData,
toCheckSumValidData,
@@ -386,30 +386,30 @@ describe('converters', () => {
});
});
- describe('fromWei', () => {
+ describe('fromPlanck', () => {
describe('valid cases', () => {
- it.each(fromWeiValidData)('%s', (input, output) => {
- expect(fromWei(input[0], input[1])).toEqual(output);
+ it.each(fromPlanckValidData)('%s', (input, output) => {
+ expect(fromPlanck(input[0], input[1])).toEqual(output);
});
});
describe('invalid cases', () => {
- it.each(fromWeiInvalidData)('%s', (input, output) => {
- expect(() => fromWei(input[0], input[1])).toThrow(output);
+ it.each(fromPlanckInvalidData)('%s', (input, output) => {
+ expect(() => fromPlanck(input[0], input[1])).toThrow(output);
});
});
});
- describe('toWei', () => {
+ describe('toPlanck', () => {
describe('valid cases', () => {
- it.each(toWeiValidData)('%s', (input, output) => {
- expect(toWei(output, input[1])).toEqual(input[0].toString());
+ it.each(toPlanckValidData)('%s', (input, output) => {
+ expect(toPlanck(output, input[1])).toEqual(input[0].toString());
});
});
describe('invalid cases', () => {
- it.each(toWeiInvalidData)('%s', (input, output) => {
- expect(() => toWei(input[0], input[1])).toThrow(output);
+ it.each(toPlanckInvalidData)('%s', (input, output) => {
+ expect(() => toPlanck(input[0], input[1])).toThrow(output);
});
});
});
diff --git a/packages/web3-utils/test/unit/socket_provider.test.ts b/packages/web3-utils/test/unit/socket_provider.test.ts
index a0d30513..2152163c 100644
--- a/packages/web3-utils/test/unit/socket_provider.test.ts
+++ b/packages/web3-utils/test/unit/socket_provider.test.ts
@@ -16,7 +16,12 @@ along with web3.js. If not, see .
*/
import { EventEmitter } from 'stream';
-import { Web3APIPayload, ZondExecutionAPI, JsonRpcResponse, Web3ProviderStatus } from '@theqrl/web3-types';
+import {
+ Web3APIPayload,
+ ZondExecutionAPI,
+ JsonRpcResponse,
+ Web3ProviderStatus,
+} from '@theqrl/web3-types';
// eslint-disable-next-line import/no-relative-packages
import { sleep } from '../../../../fixtures/utils';
import { SocketProvider } from '../../src/socket_provider';
diff --git a/packages/web3-validator/CHANGELOG.md b/packages/web3-validator/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-validator/CHANGELOG.md
+++ b/packages/web3-validator/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-validator/README.md b/packages/web3-validator/README.md
index f8e75959..68e648a2 100644
--- a/packages/web3-validator/README.md
+++ b/packages/web3-validator/README.md
@@ -50,13 +50,13 @@ const errors = validator.validate(['uint8', 'string'], [val1, val2], { silent: t
To see more examples of schema you can use to validate check [following file](./test/fixtures/abi_to_json_schema.ts).
-Following eth types are supported to validate.
+Following zond types are supported to validate.
-| Type | Input As | Description |
-| ----- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Type | Input As | Description |
+| ----- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| uint | `number`, `string`, `HexString` | Unsigned integer, all zond compatible variants are also supported e.g. `uint8`, `uint256`. You can also use array specifiers as `uint[]` or `uint[2]` |
| int | `number`, `string`, `HexString` | Signed integer, all zond compatible variants are also supported e.g. `int8`, `int256`. You can also use array specifiers as `int[]` or `int[2]` |
-| bytes | `HexString`, `Uint8Array` | Raw bytes. You can also use fixed length bytes as `bytes[2]` |
+| bytes | `HexString`, `Uint8Array` | Raw bytes. You can also use fixed length bytes as `bytes[2]` |
| string | `string` | String values |
| address | `string`, `HexString` | Zond network compatible address |
diff --git a/packages/web3-validator/src/utils.ts b/packages/web3-validator/src/utils.ts
index 08f497e3..ae05d93d 100644
--- a/packages/web3-validator/src/utils.ts
+++ b/packages/web3-validator/src/utils.ts
@@ -401,7 +401,6 @@ export const addressToHex = (value: string): string => {
return value.replace('Z', '0x');
};
-
/**
* Converts value to it's hex representation
*/
diff --git a/packages/web3-validator/src/validation/address.ts b/packages/web3-validator/src/validation/address.ts
index c4c60b95..6978f032 100644
--- a/packages/web3-validator/src/validation/address.ts
+++ b/packages/web3-validator/src/validation/address.ts
@@ -54,10 +54,7 @@ export const isAddressString = (value: string, checkChecksum = true) => {
return false;
}
// If it's ALL lowercase or ALL upppercase
- if (
- /^Z[0-9a-f]{40}$/.test(value) ||
- /^Z[0-9A-F]{40}$/.test(value)
- ) {
+ if (/^Z[0-9a-f]{40}$/.test(value) || /^Z[0-9A-F]{40}$/.test(value)) {
return true;
// Otherwise check each case
}
diff --git a/packages/web3-validator/src/validation/bloom.ts b/packages/web3-validator/src/validation/bloom.ts
index 6b8a0d82..0aad2de9 100644
--- a/packages/web3-validator/src/validation/bloom.ts
+++ b/packages/web3-validator/src/validation/bloom.ts
@@ -17,7 +17,13 @@ along with web3.js. If not, see .
import { keccak256 } from 'ethereum-cryptography/keccak.js';
import { ValidInputTypes } from '../types.js';
-import { addressToHex, codePointToInt, hexToUint8Array, padLeft, uint8ArrayToHexString } from '../utils.js';
+import {
+ addressToHex,
+ codePointToInt,
+ hexToUint8Array,
+ padLeft,
+ uint8ArrayToHexString,
+} from '../utils.js';
import { isAddressString } from './address.js';
import { isHexStrict } from './string.js';
diff --git a/packages/web3-validator/src/validation/numbers.ts b/packages/web3-validator/src/validation/numbers.ts
index b270c1fd..3cd0d95f 100644
--- a/packages/web3-validator/src/validation/numbers.ts
+++ b/packages/web3-validator/src/validation/numbers.ts
@@ -119,9 +119,9 @@ export const isNumber = (value: ValidInputTypes) => {
if (
typeof value === 'string' &&
/[0-9.]/.test(value) &&
- // NOTE(rgeraldes24): issue found during the tests; previously, values such
- // as 'Z1' returned true; making sure that we just have numbers and dot here
- !(/[^0-9.]/.test(value)) &&
+ // NOTE(rgeraldes24): issue found during the tests; previously, values such
+ // as 'Z1' returned true; making sure that we just have numbers and dot here
+ !/[^0-9.]/.test(value) &&
value.indexOf('.') === value.lastIndexOf('.')
) {
return true;
diff --git a/packages/web3-validator/test/config/jest.config.js b/packages/web3-validator/test/config/jest.config.js
index 4a60f95b..c8c21e06 100644
--- a/packages/web3-validator/test/config/jest.config.js
+++ b/packages/web3-validator/test/config/jest.config.js
@@ -12,7 +12,7 @@ module.exports = {
},
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
- },
+ },
verbose: false,
collectCoverage: false,
coverageReporters: ['json'],
diff --git a/packages/web3-validator/test/fixtures/validation.ts b/packages/web3-validator/test/fixtures/validation.ts
index b4ac58b6..50502a64 100644
--- a/packages/web3-validator/test/fixtures/validation.ts
+++ b/packages/web3-validator/test/fixtures/validation.ts
@@ -782,13 +782,6 @@ export const validNotBaseTypeData: { dataType: string; data: any }[] = [
];
export const validAddressDataWithHex: [string, string][] = [
- [
- 'Zdec0518fa672a70027b04c286582e543ab17319f',
- '0xdec0518fa672a70027b04c286582e543ab17319f',
- ],
- [
- 'Zd115bffabbdd893a6f7cea402e7338643ced44a6',
- '0xd115bffabbdd893a6f7cea402e7338643ced44a6',
- ],
+ ['Zdec0518fa672a70027b04c286582e543ab17319f', '0xdec0518fa672a70027b04c286582e543ab17319f'],
+ ['Zd115bffabbdd893a6f7cea402e7338643ced44a6', '0xd115bffabbdd893a6f7cea402e7338643ced44a6'],
];
-
diff --git a/packages/web3-zond-abi/CHANGELOG.md b/packages/web3-zond-abi/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-zond-abi/CHANGELOG.md
+++ b/packages/web3-zond-abi/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-zond-abi/test/unit/get_encoded_eip712_data.test.ts b/packages/web3-zond-abi/test/unit/get_encoded_eip712_data.test.ts
index d40c5f25..f20d7250 100644
--- a/packages/web3-zond-abi/test/unit/get_encoded_eip712_data.test.ts
+++ b/packages/web3-zond-abi/test/unit/get_encoded_eip712_data.test.ts
@@ -24,6 +24,6 @@ describe('getEncodedEip712Data', () => {
});
it.each(erroneousTestData)('%s', (_, typedData, hashEncodedData, expectedError) => {
- expect(() => getEncodedEip712Data(typedData, hashEncodedData)).toThrowError(expectedError);
+ expect(() => getEncodedEip712Data(typedData, hashEncodedData)).toThrow(expectedError);
});
});
diff --git a/packages/web3-zond-accounts/CHANGELOG.md b/packages/web3-zond-accounts/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-zond-accounts/CHANGELOG.md
+++ b/packages/web3-zond-accounts/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-zond-accounts/index.d.ts b/packages/web3-zond-accounts/index.d.ts
index 5cc0b6cd..ce27d454 100644
--- a/packages/web3-zond-accounts/index.d.ts
+++ b/packages/web3-zond-accounts/index.d.ts
@@ -1,2 +1,18 @@
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
declare module '@theqrl/wallet.js';
declare module '@theqrl/dilithium5';
diff --git a/packages/web3-zond-accounts/src/account.ts b/packages/web3-zond-accounts/src/account.ts
index 062b5529..550857d8 100644
--- a/packages/web3-zond-accounts/src/account.ts
+++ b/packages/web3-zond-accounts/src/account.ts
@@ -23,12 +23,7 @@ import {
TransactionSigningError,
UndefinedRawTransactionError,
} from '@theqrl/web3-errors';
-import {
- Address,
- Bytes,
- HexString,
- Transaction,
-} from '@theqrl/web3-types';
+import { Address, Bytes, HexString, Transaction } from '@theqrl/web3-types';
import {
bytesToUint8Array,
bytesToHex,
@@ -44,14 +39,9 @@ import {
import { isHexStrict, isNullish } from '@theqrl/web3-validator';
import { CryptoPublicKeyBytes } from '@theqrl/dilithium5';
-import { Dilithium, getDilithiumAddressFromPK } from '@theqrl/wallet.js'
+import { Dilithium, getDilithiumAddressFromPK } from '@theqrl/wallet.js';
import { TransactionFactory } from './tx/transactionFactory.js';
-import type {
- SignTransactionResult,
- TypedTransaction,
- Web3Account,
- SignResult,
-} from './types.js';
+import type { SignTransactionResult, TypedTransaction, Web3Account, SignResult } from './types.js';
/**
* Get the public key Uint8Array after the validation
@@ -96,9 +86,7 @@ export const hashMessage = (message: string): string => {
const messageBytes = hexToBytes(messageHex);
- const preamble = hexToBytes(
- fromUtf8(`\x19Zond Signed Message:\n${messageBytes.byteLength}`),
- );
+ const preamble = hexToBytes(fromUtf8(`\x19Zond Signed Message:\n${messageBytes.byteLength}`));
const zondMessage = uint8ArrayConcat(preamble, messageBytes);
@@ -228,13 +216,12 @@ export const recoverTransaction = (rawTransaction: HexString): Address => {
* ```
*/
export const publicKeyToAddress = (publicKey: Bytes): string => {
- const publicKeyUint8Array = parseAndValidatePublicKey(publicKey);
+ const publicKeyUint8Array = parseAndValidatePublicKey(publicKey);
const address = getDilithiumAddressFromPK(publicKeyUint8Array);
return toChecksumAddress(hexToAddress(bytesToHex(address)));
};
-
// TODO(youtrack/theqrl/web3.js/3)
/**
* encrypt a private key with a password, returns a V3 JSON Keystore
@@ -406,11 +393,10 @@ export const publicKeyToAddress = (publicKey: Bytes): string => {
// };
// };
-
/**
* Get the seed Uint8Array after the validation
*/
-export const parseAndValidateSeed = (data: Bytes , ignoreLength?: boolean): Uint8Array => {
+export const parseAndValidateSeed = (data: Bytes, ignoreLength?: boolean): Uint8Array => {
let seedUint8Array: Uint8Array;
// To avoid the case of 1 character less in a hex string which is prefixed with '0' by using 'bytesToUint8Array'
@@ -431,7 +417,6 @@ export const parseAndValidateSeed = (data: Bytes , ignoreLength?: boolean): Uint
return seedUint8Array;
};
-
/**
* Get an Account object from the seed
*
diff --git a/packages/web3-zond-accounts/src/common/chains/mainnet.ts b/packages/web3-zond-accounts/src/common/chains/mainnet.ts
index fa91e6fe..f132edf0 100644
--- a/packages/web3-zond-accounts/src/common/chains/mainnet.ts
+++ b/packages/web3-zond-accounts/src/common/chains/mainnet.ts
@@ -1,29 +1,28 @@
export default {
- "name": "mainnet",
- "chainId": 1,
- "networkId": 1,
- "defaultHardfork": "shanghai",
- "consensus": {
- "type": "pos",
- "algorithm": "casper",
- "casper": {}
+ name: 'mainnet',
+ chainId: 1,
+ networkId: 1,
+ defaultHardfork: 'shanghai',
+ consensus: {
+ type: 'pos',
+ algorithm: 'casper',
+ casper: {},
},
- "comment": "The Zond main chain",
- "url": "https://ethstats.net/",
- "genesis": {
- "gasLimit": 5000,
- "extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa"
+ comment: 'The Zond main chain',
+ url: 'https://ethstats.net/',
+ genesis: {
+ gasLimit: 5000,
+ extraData: '0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa',
},
- "hardforks": [
+ hardforks: [
{
- "name": "shanghai",
- "block": 0,
- "forkHash": null
- }
+ name: 'shanghai',
+ block: 0,
+ forkHash: null,
+ },
],
- "bootstrapNodes": [],
- "dnsNetworks": [
- "enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net"
- ]
-}
- ;
\ No newline at end of file
+ bootstrapNodes: [],
+ dnsNetworks: [
+ 'enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net',
+ ],
+};
diff --git a/packages/web3-zond-accounts/src/common/common.ts b/packages/web3-zond-accounts/src/common/common.ts
index 04e102e9..7d6f3579 100644
--- a/packages/web3-zond-accounts/src/common/common.ts
+++ b/packages/web3-zond-accounts/src/common/common.ts
@@ -102,7 +102,7 @@ export class Common extends EventEmitter {
...opts,
});
}
-
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
throw new Error(`Custom chain ${chainParamsOrName} not supported`);
}
@@ -243,10 +243,7 @@ export class Common extends EventEmitter {
* @param timestamp: timestamp in seconds at which block was/is to be minted
* @returns The name of the HF
*/
- public getHardforkByBlockNumber(
- _blockNumber: Numbers,
- _timestamp?: Numbers,
- ): string {
+ public getHardforkByBlockNumber(_blockNumber: Numbers, _timestamp?: Numbers): string {
const blockNumber = toType(_blockNumber, TypeOutput.BigInt);
const timestamp = toType(_timestamp, TypeOutput.Number);
@@ -254,10 +251,9 @@ export class Common extends EventEmitter {
const hfs = this.hardforks().filter(
hf =>
// eslint-disable-next-line no-null/no-null
- hf.block !== null ||
- hf.timestamp !== undefined,
+ hf.block !== null || hf.timestamp !== undefined,
);
-
+
// Find the first hardfork that has a block number greater than `blockNumber`
// (skips the merge hardfork since it cannot have a block number specified).
// If timestamp is not provided, it also skips timestamps hardforks to continue
@@ -311,9 +307,7 @@ export class Common extends EventEmitter {
0,
);
if (minTimeStamp > timestamp) {
- throw Error(
- `Maximum HF determined by timestamp is lower than the block number HF`,
- );
+ throw Error(`Maximum HF determined by timestamp is lower than the block number HF`);
}
const maxTimeStamp = hfs
@@ -338,10 +332,7 @@ export class Common extends EventEmitter {
* @param timestamp
* @returns The name of the HF set
*/
- public setHardforkByBlockNumber(
- blockNumber: Numbers,
- timestamp?: Numbers,
- ): string {
+ public setHardforkByBlockNumber(blockNumber: Numbers, timestamp?: Numbers): string {
const hardfork = this.getHardforkByBlockNumber(blockNumber, timestamp);
this.setHardfork(hardfork);
return hardfork;
@@ -486,7 +477,7 @@ export class Common extends EventEmitter {
/**
* Returns a parameter for the hardfork active on block number provided.
- *
+ *
* @param topic Parameter topic
* @param name Parameter name
* @param blockNumber Block number
@@ -655,7 +646,7 @@ export class Common extends EventEmitter {
public nextHardforkBlockOrTimestamp(_hardfork?: string | Hardfork): bigint | null {
const hardfork = _hardfork ?? this._hardfork;
const hfs = this.hardforks();
- let hfIndex = hfs.findIndex(hf => hf.name === hardfork);
+ const hfIndex = hfs.findIndex(hf => hf.name === hardfork);
// Hardfork not found
if (hfIndex < 0) {
@@ -724,7 +715,7 @@ export class Common extends EventEmitter {
if (
typeof blockOrTime === 'number' &&
blockOrTime !== 0 &&
- blockOrTime !== prevBlockOrTime
+ blockOrTime !== prevBlockOrTime
) {
const hfBlockUint8Array = hexToBytes(blockOrTime.toString(16).padStart(16, '0'));
hfUint8Array = uint8ArrayConcat(hfUint8Array, hfBlockUint8Array);
@@ -791,7 +782,8 @@ export class Common extends EventEmitter {
// eslint-disable-next-line no-null/no-null
(hf.forkHash === null || hf.forkHash === undefined) &&
// eslint-disable-next-line no-null/no-null
- (blockOrTime !== null && blockOrTime !== undefined)
+ blockOrTime !== null &&
+ blockOrTime !== undefined
) {
hf.forkHash = this.forkHash(hf.name, genesisHash);
}
diff --git a/packages/web3-zond-accounts/src/common/hardforks/shanghai.ts b/packages/web3-zond-accounts/src/common/hardforks/shanghai.ts
index 107d6f73..641dca44 100644
--- a/packages/web3-zond-accounts/src/common/hardforks/shanghai.ts
+++ b/packages/web3-zond-accounts/src/common/hardforks/shanghai.ts
@@ -1,541 +1,540 @@
export default {
- "name": "shanghai",
- "comment": "Start of the Zond main chain",
- "url": "",
- "status": "",
- "gasConfig": {
- "minGasLimit": {
- "v": 5000,
- "d": "Minimum the gas limit may ever be"
- },
- "gasLimitBoundDivisor": {
- "v": 1024,
- "d": "The bound divisor of the gas limit, used in update calculations"
- },
- "maxRefundQuotient": {
- "v": 5,
- "d": "Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)"
- },
- "baseFeeMaxChangeDenominator": {
- "v": 8,
- "d": "Maximum base fee change denominator"
- },
- "elasticityMultiplier": {
- "v": 2,
- "d": "Maximum block gas target elasticity"
- },
- "initialBaseFee": {
- "v": 1000000000,
- "d": "Initial base fee on first EIP1559 block"
- }
+ name: 'shanghai',
+ comment: 'Start of the Zond main chain',
+ url: '',
+ status: '',
+ gasConfig: {
+ minGasLimit: {
+ v: 5000,
+ d: 'Minimum the gas limit may ever be',
+ },
+ gasLimitBoundDivisor: {
+ v: 1024,
+ d: 'The bound divisor of the gas limit, used in update calculations',
+ },
+ maxRefundQuotient: {
+ v: 5,
+ d: 'Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)',
+ },
+ baseFeeMaxChangeDenominator: {
+ v: 8,
+ d: 'Maximum base fee change denominator',
+ },
+ elasticityMultiplier: {
+ v: 2,
+ d: 'Maximum block gas target elasticity',
+ },
+ initialBaseFee: {
+ v: 1000000000,
+ d: 'Initial base fee on first EIP1559 block',
+ },
},
- "gasPrices": {
- "base": {
- "v": 2,
- "d": "Gas base cost, used e.g. for ChainID opcode (Istanbul)"
+ gasPrices: {
+ base: {
+ v: 2,
+ d: 'Gas base cost, used e.g. for ChainID opcode (Istanbul)',
+ },
+ tierStep: {
+ v: [0, 2, 3, 5, 8, 10, 20],
+ d: 'Once per operation, for a selection of them',
+ },
+ exp: {
+ v: 10,
+ d: 'Base fee of the EXP opcode',
+ },
+ expByte: {
+ v: 50,
+ d: 'Times ceil(log256(exponent)) for the EXP instruction',
},
- "tierStep": {
- "v": [0, 2, 3, 5, 8, 10, 20],
- "d": "Once per operation, for a selection of them"
+ sha3: {
+ v: 30,
+ d: 'Base fee of the SHA3 opcode',
},
- "exp": {
- "v": 10,
- "d": "Base fee of the EXP opcode"
+ sha3Word: {
+ v: 6,
+ d: "Once per word of the SHA3 operation's data",
},
- "expByte": {
- "v": 50,
- "d": "Times ceil(log256(exponent)) for the EXP instruction"
+ sload: {
+ v: 0,
+ d: 'Base fee of the SLOAD opcode',
},
- "sha3": {
- "v": 30,
- "d": "Base fee of the SHA3 opcode"
+ sstoreSet: {
+ v: 20000,
+ d: 'Once per SSTORE operation if the zeroness changes from zero',
},
- "sha3Word": {
- "v": 6,
- "d": "Once per word of the SHA3 operation's data"
+ sstoreReset: {
+ v: 5000,
+ d: 'Once per SSTORE operation if the zeroness does not change from zero',
},
- "sload": {
- "v": 0,
- "d": "Base fee of the SLOAD opcode"
+ sstoreRefund: {
+ v: 15000,
+ d: 'Once per SSTORE operation if the zeroness changes to zero',
},
- "sstoreSet": {
- "v": 20000,
- "d": "Once per SSTORE operation if the zeroness changes from zero"
+ jumpdest: {
+ v: 1,
+ d: 'Base fee of the JUMPDEST opcode',
},
- "sstoreReset": {
- "v": 5000,
- "d": "Once per SSTORE operation if the zeroness does not change from zero"
+ log: {
+ v: 375,
+ d: 'Base fee of the LOG opcode',
},
- "sstoreRefund": {
- "v": 15000,
- "d": "Once per SSTORE operation if the zeroness changes to zero"
+ logData: {
+ v: 8,
+ d: "Per byte in a LOG* operation's data",
},
- "jumpdest": {
- "v": 1,
- "d": "Base fee of the JUMPDEST opcode"
+ logTopic: {
+ v: 375,
+ d: 'Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas',
},
- "log": {
- "v": 375,
- "d": "Base fee of the LOG opcode"
+ create: {
+ v: 32000,
+ d: 'Base fee of the CREATE opcode',
},
- "logData": {
- "v": 8,
- "d": "Per byte in a LOG* operation's data"
+ call: {
+ v: 0,
+ d: 'Base fee of the CALL opcode',
},
- "logTopic": {
- "v": 375,
- "d": "Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas"
+ callStipend: {
+ v: 2300,
+ d: 'Free gas given at beginning of call',
},
- "create": {
- "v": 32000,
- "d": "Base fee of the CREATE opcode"
+ callValueTransfer: {
+ v: 9000,
+ d: 'Paid for CALL when the value transfor is non-zero',
},
- "call": {
- "v": 0,
- "d": "Base fee of the CALL opcode"
+ callNewAccount: {
+ v: 25000,
+ d: "Paid for CALL when the destination address didn't exist prior",
},
- "callStipend": {
- "v": 2300,
- "d": "Free gas given at beginning of call"
+ memory: {
+ v: 3,
+ d: 'Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL',
},
- "callValueTransfer": {
- "v": 9000,
- "d": "Paid for CALL when the value transfor is non-zero"
+ quadCoeffDiv: {
+ v: 512,
+ d: 'Divisor for the quadratic particle of the memory cost equation',
},
- "callNewAccount": {
- "v": 25000,
- "d": "Paid for CALL when the destination address didn't exist prior"
+ createData: {
+ v: 200,
+ d: '',
},
- "memory": {
- "v": 3,
- "d": "Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL"
+ tx: {
+ v: 21000,
+ d: 'Per transaction. NOTE: Not payable on data of calls between transactions',
},
- "quadCoeffDiv": {
- "v": 512,
- "d": "Divisor for the quadratic particle of the memory cost equation"
+ txCreation: {
+ v: 32000,
+ d: 'The cost of creating a contract via tx',
},
- "createData": {
- "v": 200,
- "d": ""
+ txDataZero: {
+ v: 4,
+ d: 'Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions',
},
- "tx": {
- "v": 21000,
- "d": "Per transaction. NOTE: Not payable on data of calls between transactions"
+ txDataNonZero: {
+ v: 16,
+ d: 'Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions',
},
- "txCreation": {
- "v": 32000,
- "d": "The cost of creating a contract via tx"
+ copy: {
+ v: 3,
+ d: 'Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added',
},
- "txDataZero": {
- "v": 4,
- "d": "Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions"
+ depositroot: {
+ v: 19992,
+ d: '',
},
- "txDataNonZero": {
- "v": 16,
- "d": "Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions"
+ sha256: {
+ v: 60,
+ d: '',
},
- "copy": {
- "v": 3,
- "d": "Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added"
+ sha256Word: {
+ v: 12,
+ d: '',
},
- "depositroot": {
- "v": 19992,
- "d": ""
+ identity: {
+ v: 15,
+ d: '',
},
- "sha256": {
- "v": 60,
- "d": ""
+ identityWord: {
+ v: 3,
+ d: '',
},
- "sha256Word": {
- "v": 12,
- "d": ""
+ stop: {
+ v: 0,
+ d: 'Base fee of the STOP opcode',
},
- "identity": {
- "v": 15,
- "d": ""
+ add: {
+ v: 3,
+ d: 'Base fee of the ADD opcode',
},
- "identityWord": {
- "v": 3,
- "d": ""
+ mul: {
+ v: 5,
+ d: 'Base fee of the MUL opcode',
},
- "stop": {
- "v": 0,
- "d": "Base fee of the STOP opcode"
+ sub: {
+ v: 3,
+ d: 'Base fee of the SUB opcode',
},
- "add": {
- "v": 3,
- "d": "Base fee of the ADD opcode"
+ div: {
+ v: 5,
+ d: 'Base fee of the DIV opcode',
},
- "mul": {
- "v": 5,
- "d": "Base fee of the MUL opcode"
+ sdiv: {
+ v: 5,
+ d: 'Base fee of the SDIV opcode',
},
- "sub": {
- "v": 3,
- "d": "Base fee of the SUB opcode"
+ mod: {
+ v: 5,
+ d: 'Base fee of the MOD opcode',
},
- "div": {
- "v": 5,
- "d": "Base fee of the DIV opcode"
+ smod: {
+ v: 5,
+ d: 'Base fee of the SMOD opcode',
},
- "sdiv": {
- "v": 5,
- "d": "Base fee of the SDIV opcode"
+ addmod: {
+ v: 8,
+ d: 'Base fee of the ADDMOD opcode',
},
- "mod": {
- "v": 5,
- "d": "Base fee of the MOD opcode"
+ mulmod: {
+ v: 8,
+ d: 'Base fee of the MULMOD opcode',
},
- "smod": {
- "v": 5,
- "d": "Base fee of the SMOD opcode"
+ signextend: {
+ v: 5,
+ d: 'Base fee of the SIGNEXTEND opcode',
},
- "addmod": {
- "v": 8,
- "d": "Base fee of the ADDMOD opcode"
+ lt: {
+ v: 3,
+ d: 'Base fee of the LT opcode',
},
- "mulmod": {
- "v": 8,
- "d": "Base fee of the MULMOD opcode"
+ gt: {
+ v: 3,
+ d: 'Base fee of the GT opcode',
},
- "signextend": {
- "v": 5,
- "d": "Base fee of the SIGNEXTEND opcode"
+ slt: {
+ v: 3,
+ d: 'Base fee of the SLT opcode',
},
- "lt": {
- "v": 3,
- "d": "Base fee of the LT opcode"
+ sgt: {
+ v: 3,
+ d: 'Base fee of the SGT opcode',
},
- "gt": {
- "v": 3,
- "d": "Base fee of the GT opcode"
+ eq: {
+ v: 3,
+ d: 'Base fee of the EQ opcode',
},
- "slt": {
- "v": 3,
- "d": "Base fee of the SLT opcode"
+ iszero: {
+ v: 3,
+ d: 'Base fee of the ISZERO opcode',
},
- "sgt": {
- "v": 3,
- "d": "Base fee of the SGT opcode"
+ and: {
+ v: 3,
+ d: 'Base fee of the AND opcode',
},
- "eq": {
- "v": 3,
- "d": "Base fee of the EQ opcode"
+ or: {
+ v: 3,
+ d: 'Base fee of the OR opcode',
},
- "iszero": {
- "v": 3,
- "d": "Base fee of the ISZERO opcode"
+ xor: {
+ v: 3,
+ d: 'Base fee of the XOR opcode',
},
- "and": {
- "v": 3,
- "d": "Base fee of the AND opcode"
+ not: {
+ v: 3,
+ d: 'Base fee of the NOT opcode',
},
- "or": {
- "v": 3,
- "d": "Base fee of the OR opcode"
+ byte: {
+ v: 3,
+ d: 'Base fee of the BYTE opcode',
},
- "xor": {
- "v": 3,
- "d": "Base fee of the XOR opcode"
+ address: {
+ v: 2,
+ d: 'Base fee of the ADDRESS opcode',
},
- "not": {
- "v": 3,
- "d": "Base fee of the NOT opcode"
+ balance: {
+ v: 0,
+ d: 'Base fee of the BALANCE opcode',
},
- "byte": {
- "v": 3,
- "d": "Base fee of the BYTE opcode"
+ origin: {
+ v: 2,
+ d: 'Base fee of the ORIGIN opcode',
},
- "address": {
- "v": 2,
- "d": "Base fee of the ADDRESS opcode"
+ caller: {
+ v: 2,
+ d: 'Base fee of the CALLER opcode',
},
- "balance": {
- "v": 0,
- "d": "Base fee of the BALANCE opcode"
+ callvalue: {
+ v: 2,
+ d: 'Base fee of the CALLVALUE opcode',
},
- "origin": {
- "v": 2,
- "d": "Base fee of the ORIGIN opcode"
+ calldataload: {
+ v: 3,
+ d: 'Base fee of the CALLDATALOAD opcode',
},
- "caller": {
- "v": 2,
- "d": "Base fee of the CALLER opcode"
+ calldatasize: {
+ v: 2,
+ d: 'Base fee of the CALLDATASIZE opcode',
},
- "callvalue": {
- "v": 2,
- "d": "Base fee of the CALLVALUE opcode"
+ calldatacopy: {
+ v: 3,
+ d: 'Base fee of the CALLDATACOPY opcode',
},
- "calldataload": {
- "v": 3,
- "d": "Base fee of the CALLDATALOAD opcode"
+ codesize: {
+ v: 2,
+ d: 'Base fee of the CODESIZE opcode',
},
- "calldatasize": {
- "v": 2,
- "d": "Base fee of the CALLDATASIZE opcode"
+ codecopy: {
+ v: 3,
+ d: 'Base fee of the CODECOPY opcode',
},
- "calldatacopy": {
- "v": 3,
- "d": "Base fee of the CALLDATACOPY opcode"
+ gasprice: {
+ v: 2,
+ d: 'Base fee of the GASPRICE opcode',
},
- "codesize": {
- "v": 2,
- "d": "Base fee of the CODESIZE opcode"
+ extcodesize: {
+ v: 0,
+ d: 'Base fee of the EXTCODESIZE opcode',
},
- "codecopy": {
- "v": 3,
- "d": "Base fee of the CODECOPY opcode"
+ extcodecopy: {
+ v: 0,
+ d: 'Base fee of the EXTCODECOPY opcode',
},
- "gasprice": {
- "v": 2,
- "d": "Base fee of the GASPRICE opcode"
+ blockhash: {
+ v: 20,
+ d: 'Base fee of the BLOCKHASH opcode',
},
- "extcodesize": {
- "v": 0,
- "d": "Base fee of the EXTCODESIZE opcode"
+ coinbase: {
+ v: 2,
+ d: 'Base fee of the COINBASE opcode',
},
- "extcodecopy": {
- "v": 0,
- "d": "Base fee of the EXTCODECOPY opcode"
+ timestamp: {
+ v: 2,
+ d: 'Base fee of the TIMESTAMP opcode',
},
- "blockhash": {
- "v": 20,
- "d": "Base fee of the BLOCKHASH opcode"
+ number: {
+ v: 2,
+ d: 'Base fee of the NUMBER opcode',
},
- "coinbase": {
- "v": 2,
- "d": "Base fee of the COINBASE opcode"
+ prevrandao: {
+ v: 2,
+ d: 'Base fee of the PREVRANDAO opcode',
},
- "timestamp": {
- "v": 2,
- "d": "Base fee of the TIMESTAMP opcode"
+ gaslimit: {
+ v: 2,
+ d: 'Base fee of the GASLIMIT opcode',
},
- "number": {
- "v": 2,
- "d": "Base fee of the NUMBER opcode"
+ pop: {
+ v: 2,
+ d: 'Base fee of the POP opcode',
},
- "prevrandao": {
- "v": 2,
- "d": "Base fee of the PREVRANDAO opcode"
+ mload: {
+ v: 3,
+ d: 'Base fee of the MLOAD opcode',
},
- "gaslimit": {
- "v": 2,
- "d": "Base fee of the GASLIMIT opcode"
+ mstore: {
+ v: 3,
+ d: 'Base fee of the MSTORE opcode',
},
- "pop": {
- "v": 2,
- "d": "Base fee of the POP opcode"
+ mstore8: {
+ v: 3,
+ d: 'Base fee of the MSTORE8 opcode',
},
- "mload": {
- "v": 3,
- "d": "Base fee of the MLOAD opcode"
+ sstore: {
+ v: 0,
+ d: 'Base fee of the SSTORE opcode',
},
- "mstore": {
- "v": 3,
- "d": "Base fee of the MSTORE opcode"
+ jump: {
+ v: 8,
+ d: 'Base fee of the JUMP opcode',
},
- "mstore8": {
- "v": 3,
- "d": "Base fee of the MSTORE8 opcode"
+ jumpi: {
+ v: 10,
+ d: 'Base fee of the JUMPI opcode',
},
- "sstore": {
- "v": 0,
- "d": "Base fee of the SSTORE opcode"
+ pc: {
+ v: 2,
+ d: 'Base fee of the PC opcode',
},
- "jump": {
- "v": 8,
- "d": "Base fee of the JUMP opcode"
+ msize: {
+ v: 2,
+ d: 'Base fee of the MSIZE opcode',
},
- "jumpi": {
- "v": 10,
- "d": "Base fee of the JUMPI opcode"
+ gas: {
+ v: 2,
+ d: 'Base fee of the GAS opcode',
},
- "pc": {
- "v": 2,
- "d": "Base fee of the PC opcode"
+ push: {
+ v: 3,
+ d: 'Base fee of the PUSH opcode',
},
- "msize": {
- "v": 2,
- "d": "Base fee of the MSIZE opcode"
+ dup: {
+ v: 3,
+ d: 'Base fee of the DUP opcode',
},
- "gas": {
- "v": 2,
- "d": "Base fee of the GAS opcode"
+ swap: {
+ v: 3,
+ d: 'Base fee of the SWAP opcode',
},
- "push": {
- "v": 3,
- "d": "Base fee of the PUSH opcode"
+ return: {
+ v: 0,
+ d: 'Base fee of the RETURN opcode',
},
- "dup": {
- "v": 3,
- "d": "Base fee of the DUP opcode"
+ invalid: {
+ v: 0,
+ d: 'Base fee of the INVALID opcode',
},
- "swap": {
- "v": 3,
- "d": "Base fee of the SWAP opcode"
+ delegatecall: {
+ v: 0,
+ d: 'Base fee of the DELEGATECALL opcode',
},
- "return": {
- "v": 0,
- "d": "Base fee of the RETURN opcode"
+ modexpGquaddivisor: {
+ v: 3,
+ d: 'Gquaddivisor from modexp precompile for gas calculation',
},
- "invalid": {
- "v": 0,
- "d": "Base fee of the INVALID opcode"
+ ecAdd: {
+ v: 150,
+ d: 'Gas costs for curve addition precompile',
},
- "delegatecall": {
- "v": 0,
- "d": "Base fee of the DELEGATECALL opcode"
+ ecMul: {
+ v: 6000,
+ d: 'Gas costs for curve multiplication precompile',
},
- "modexpGquaddivisor": {
- "v": 3,
- "d": "Gquaddivisor from modexp precompile for gas calculation"
+ ecPairing: {
+ v: 45000,
+ d: 'Base gas costs for curve pairing precompile',
},
- "ecAdd": {
- "v": 150,
- "d": "Gas costs for curve addition precompile"
+ ecPairingWord: {
+ v: 34000,
+ d: 'Gas costs regarding curve pairing precompile input length',
},
- "ecMul": {
- "v": 6000,
- "d": "Gas costs for curve multiplication precompile"
+ revert: {
+ v: 0,
+ d: 'Base fee of the REVERT opcode',
},
- "ecPairing": {
- "v": 45000,
- "d": "Base gas costs for curve pairing precompile"
+ staticcall: {
+ v: 0,
+ d: 'Base fee of the STATICCALL opcode',
},
- "ecPairingWord": {
- "v": 34000,
- "d": "Gas costs regarding curve pairing precompile input length"
+ returndatasize: {
+ v: 2,
+ d: 'Base fee of the RETURNDATASIZE opcode',
},
- "revert": {
- "v": 0,
- "d": "Base fee of the REVERT opcode"
+ returndatacopy: {
+ v: 3,
+ d: 'Base fee of the RETURNDATACOPY opcode',
},
- "staticcall": {
- "v": 0,
- "d": "Base fee of the STATICCALL opcode"
+ shl: {
+ v: 3,
+ d: 'Base fee of the SHL opcode',
},
- "returndatasize": {
- "v": 2,
- "d": "Base fee of the RETURNDATASIZE opcode"
+ shr: {
+ v: 3,
+ d: 'Base fee of the SHR opcode',
},
- "returndatacopy": {
- "v": 3,
- "d": "Base fee of the RETURNDATACOPY opcode"
+ sar: {
+ v: 3,
+ d: 'Base fee of the SAR opcode',
},
- "shl": {
- "v": 3,
- "d": "Base fee of the SHL opcode"
+ extcodehash: {
+ v: 0,
+ d: 'Base fee of the EXTCODEHASH opcode',
},
- "shr": {
- "v": 3,
- "d": "Base fee of the SHR opcode"
+ create2: {
+ v: 32000,
+ d: 'Base fee of the CREATE2 opcode',
},
- "sar": {
- "v": 3,
- "d": "Base fee of the SAR opcode"
+ sstoreSentryGasEIP2200: {
+ v: 2300,
+ d: 'Minimum gas required to be present for an SSTORE call, not consumed',
},
- "extcodehash": {
- "v": 0,
- "d": "Base fee of the EXTCODEHASH opcode"
+ sstoreNoopGasEIP2200: {
+ v: 100,
+ d: "Once per SSTORE operation if the value doesn't change",
},
- "create2": {
- "v": 32000,
- "d": "Base fee of the CREATE2 opcode"
+ sstoreDirtyGasEIP2200: {
+ v: 100,
+ d: 'Once per SSTORE operation if a dirty value is changed',
},
- "sstoreSentryGasEIP2200": {
- "v": 2300,
- "d": "Minimum gas required to be present for an SSTORE call, not consumed"
+ sstoreInitGasEIP2200: {
+ v: 20000,
+ d: 'Once per SSTORE operation from clean zero to non-zero',
},
- "sstoreNoopGasEIP2200": {
- "v": 100,
- "d": "Once per SSTORE operation if the value doesn't change"
+ sstoreInitRefundEIP2200: {
+ v: 19900,
+ d: 'Once per SSTORE operation for resetting to the original zero value',
},
- "sstoreDirtyGasEIP2200": {
- "v": 100,
- "d": "Once per SSTORE operation if a dirty value is changed"
+ sstoreCleanGasEIP2200: {
+ v: 2900,
+ d: 'Once per SSTORE operation from clean non-zero to something else',
},
- "sstoreInitGasEIP2200": {
- "v": 20000,
- "d": "Once per SSTORE operation from clean zero to non-zero"
+ sstoreCleanRefundEIP2200: {
+ v: 4900,
+ d: 'Once per SSTORE operation for resetting to the original non-zero value',
},
- "sstoreInitRefundEIP2200": {
- "v": 19900,
- "d": "Once per SSTORE operation for resetting to the original zero value"
+ sstoreClearRefundEIP2200: {
+ v: 4800,
+ d: 'Once per SSTORE operation for clearing an originally existing storage slot',
},
- "sstoreCleanGasEIP2200": {
- "v": 2900,
- "d": "Once per SSTORE operation from clean non-zero to something else"
+ chainid: {
+ v: 2,
+ d: 'Base fee of the CHAINID opcode',
},
- "sstoreCleanRefundEIP2200": {
- "v": 4900,
- "d": "Once per SSTORE operation for resetting to the original non-zero value"
+ selfbalance: {
+ v: 5,
+ d: 'Base fee of the SELFBALANCE opcode',
},
- "sstoreClearRefundEIP2200": {
- "v": 4800,
- "d": "Once per SSTORE operation for clearing an originally existing storage slot"
+ coldsload: {
+ v: 2100,
+ d: 'Gas cost of the first read of storage from a given location (per transaction)',
},
- "chainid": {
- "v": 2,
- "d": "Base fee of the CHAINID opcode"
+ coldaccountaccess: {
+ v: 2600,
+ d: 'Gas cost of the first read of a given address (per transaction)',
},
- "selfbalance": {
- "v": 5,
- "d": "Base fee of the SELFBALANCE opcode"
+ warmstorageread: {
+ v: 100,
+ d: "Gas cost of reading storage locations which have already loaded 'cold'",
},
- "coldsload": {
- "v": 2100,
- "d": "Gas cost of the first read of storage from a given location (per transaction)"
+ accessListStorageKeyCost: {
+ v: 1900,
+ d: 'Gas cost per storage key in an Access List transaction',
},
- "coldaccountaccess": {
- "v": 2600,
- "d": "Gas cost of the first read of a given address (per transaction)"
+ accessListAddressCost: {
+ v: 2400,
+ d: 'Gas cost per storage key in an Access List transaction',
},
- "warmstorageread": {
- "v": 100,
- "d": "Gas cost of reading storage locations which have already loaded 'cold'"
+ basefee: {
+ v: 2,
+ d: 'Gas cost of the BASEFEE opcode',
+ },
+ push0: {
+ v: 2,
+ d: 'Base fee of the PUSH0 opcode',
+ },
+ initCodeWordCost: {
+ v: 2,
+ d: 'Gas to pay for each word (32 bytes) of initcode when creating a contract',
+ },
+ },
+ vm: {
+ stackLimit: {
+ v: 1024,
+ d: 'Maximum size of VM stack allowed',
},
- "accessListStorageKeyCost": {
- "v": 1900,
- "d": "Gas cost per storage key in an Access List transaction"
+ callCreateDepth: {
+ v: 1024,
+ d: 'Maximum depth of call/create stack',
},
- "accessListAddressCost": {
- "v": 2400,
- "d": "Gas cost per storage key in an Access List transaction"
+ maxExtraDataSize: {
+ v: 32,
+ d: 'Maximum size extra data may be after Genesis',
},
- "basefee": {
- "v": 2,
- "d": "Gas cost of the BASEFEE opcode"
+ maxCodeSize: {
+ v: 24576,
+ d: 'Maximum length of contract code',
},
- "push0": {
- "v": 2,
- "d": "Base fee of the PUSH0 opcode"
+ maxInitCodeSize: {
+ v: 49152,
+ d: 'Maximum length of initialization code when creating a contract',
},
- "initCodeWordCost": {
- "v": 2,
- "d": "Gas to pay for each word (32 bytes) of initcode when creating a contract"
- }
},
- "vm": {
- "stackLimit": {
- "v": 1024,
- "d": "Maximum size of VM stack allowed"
- },
- "callCreateDepth": {
- "v": 1024,
- "d": "Maximum depth of call/create stack"
- },
- "maxExtraDataSize": {
- "v": 32,
- "d": "Maximum size extra data may be after Genesis"
- },
- "maxCodeSize": {
- "v": 24576,
- "d": "Maximum length of contract code"
- },
- "maxInitCodeSize": {
- "v": 49152,
- "d": "Maximum length of initialization code when creating a contract"
- }
- }
-}
- ;
\ No newline at end of file
+};
diff --git a/packages/web3-zond-accounts/src/common/types.ts b/packages/web3-zond-accounts/src/common/types.ts
index 97bbae88..df28e7b8 100644
--- a/packages/web3-zond-accounts/src/common/types.ts
+++ b/packages/web3-zond-accounts/src/common/types.ts
@@ -78,7 +78,7 @@ interface BaseOpts {
hardfork?: string | Hardfork;
/**
* Selected EIPs which can be activated, please use an array for instantiation.
- *
+ *
*/
eips?: number[];
}
diff --git a/packages/web3-zond-accounts/src/common/utils.ts b/packages/web3-zond-accounts/src/common/utils.ts
index a28ab156..7c937257 100644
--- a/packages/web3-zond-accounts/src/common/utils.ts
+++ b/packages/web3-zond-accounts/src/common/utils.ts
@@ -49,7 +49,7 @@ const intToHex = function (i: number) {
};
/**
- * Converts Gzond genesis parameters to an ZondJS compatible `CommonOpts` object
+ * Converts Gzond genesis parameters to a ZondJS compatible `CommonOpts` object
* @param json object representing the Gzond genesis file hardfork
* @returns genesis parameters in a `CommonOpts` compliant object
*/
@@ -71,8 +71,7 @@ function parseGzondParams(json: any) {
baseFeePerGas: string;
} = json;
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
- let { extraData, timestamp }: { extraData: string; timestamp: string } =
- json;
+ let { extraData, timestamp }: { extraData: string; timestamp: string } = json;
const genesisTimestamp = Number(timestamp);
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const { chainId }: { chainId: number } = config;
@@ -108,13 +107,12 @@ function parseGzondParams(json: any) {
type: 'pos',
algorithm: 'casper',
casper: {},
- }
+ },
};
- const forkMap: { [key: string]: { name: string; isTimestamp?: boolean } } =
- {
- // [Hardfork.Shanghai]: { name: 'shanghaiTime', isTimestamp: true },
- };
+ const forkMap: { [key: string]: { name: string; isTimestamp?: boolean } } = {
+ // [Hardfork.Shanghai]: { name: 'shanghaiTime', isTimestamp: true },
+ };
// forkMapRev is the map from config field name to Hardfork
const forkMapRev = Object.keys(forkMap).reduce<{ [key: string]: string }>((acc, elem) => {
diff --git a/packages/web3-zond-accounts/src/tx/address.ts b/packages/web3-zond-accounts/src/tx/address.ts
index 6f754ac0..3caa748b 100644
--- a/packages/web3-zond-accounts/src/tx/address.ts
+++ b/packages/web3-zond-accounts/src/tx/address.ts
@@ -15,9 +15,9 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
import { bytesToHex, hexToAddress, uint8ArrayEquals } from '@theqrl/web3-utils';
-import { assertIsUint8Array, zeros } from '../common/utils.js';
-import { getDilithiumAddressFromPK } from '@theqrl/wallet.js'
+import { getDilithiumAddressFromPK } from '@theqrl/wallet.js';
import { CryptoPublicKeyBytes } from '@theqrl/dilithium5';
+import { assertIsUint8Array, zeros } from '../common/utils.js';
export class Address {
public readonly buf: Uint8Array;
@@ -70,13 +70,13 @@ export class Address {
* @param pubKey The Dilithium5 public key
*/
public static publicToAddress(_pubKey: Uint8Array): Uint8Array {
- let pubKey = _pubKey;
+ const pubKey = _pubKey;
assertIsUint8Array(pubKey);
if (pubKey.length !== CryptoPublicKeyBytes) {
throw new Error(`Expected pubKey to be of length ${CryptoPublicKeyBytes}`);
}
-
- return getDilithiumAddressFromPK(pubKey)
+
+ return getDilithiumAddressFromPK(pubKey);
}
}
diff --git a/packages/web3-zond-accounts/src/tx/baseTransaction.ts b/packages/web3-zond-accounts/src/tx/baseTransaction.ts
index b698fa3a..b6beba3a 100644
--- a/packages/web3-zond-accounts/src/tx/baseTransaction.ts
+++ b/packages/web3-zond-accounts/src/tx/baseTransaction.ts
@@ -19,14 +19,9 @@ import { Numbers } from '@theqrl/web3-types';
import { bytesToHex, toHex } from '@theqrl/web3-utils';
import { cryptoSignVerify } from '@theqrl/dilithium5';
import { Dilithium } from '@theqrl/wallet.js';
+import { isAddressString } from '@theqrl/web3-validator';
import { MAX_INTEGER, MAX_UINT64, SEED_BYTES } from './constants.js';
-import {
- Chain,
- Common,
- Hardfork,
- toUint8Array,
- uint8ArrayToBigInt,
-} from '../common/index.js';
+import { Chain, Common, Hardfork, toUint8Array, uint8ArrayToBigInt } from '../common/index.js';
import type {
FeeMarketEIP1559TxData,
FeeMarketEIP1559ValuesArray,
@@ -35,7 +30,6 @@ import type {
} from './types.js';
import { Address } from './address.js';
import { checkMaxInitCodeSize } from './utils.js';
-import { isAddressString } from '@theqrl/web3-validator';
interface TransactionCache {
hash: Uint8Array | undefined;
@@ -91,21 +85,18 @@ export abstract class BaseTransaction {
*/
protected DEFAULT_HARDFORK: string | Hardfork = Hardfork.Shanghai;
- public constructor(
- txData: FeeMarketEIP1559TxData,
- opts: TxOptions,
- ) {
+ public constructor(txData: FeeMarketEIP1559TxData, opts: TxOptions) {
const { nonce, gasLimit, to, value, data, signature, publicKey, type } = txData;
this._type = Number(uint8ArrayToBigInt(toUint8Array(type)));
this.txOptions = opts;
- var toB: Uint8Array
+ let toB: Uint8Array;
if (typeof to === 'string') {
if (to === '') {
- toB = toUint8Array('0x')
+ toB = toUint8Array('0x');
} else if (isAddressString(to)) {
- toB = toUint8Array(toHex(to))
+ toB = toUint8Array(toHex(to));
} else {
throw new Error(
`Cannot convert string to Uint8Array. only supports address strings and this string was given: ${to}`,
@@ -201,7 +192,7 @@ export abstract class BaseTransaction {
this.data[i] === 0 ? (cost += txDataZero) : (cost += txDataNonZero);
}
// eslint-disable-next-line no-null/no-null
- if ((this.to === undefined || this.to === null)) {
+ if (this.to === undefined || this.to === null) {
const dataLength = BigInt(Math.ceil(this.data.length / 32));
const initCodeCost = this.common.param('gasPrices', 'initCodeWordCost') * dataLength;
cost += initCodeCost;
@@ -232,8 +223,7 @@ export abstract class BaseTransaction {
* signature parameters `publicKey` and `signature` for encoding. For an EIP-155 compliant
* representation for external signing use {@link BaseTransaction.getMessageToSign}.
*/
- public abstract raw():
- | FeeMarketEIP1559ValuesArray;
+ public abstract raw(): FeeMarketEIP1559ValuesArray;
/**
* Returns the encoding of the transaction.
@@ -270,7 +260,7 @@ export abstract class BaseTransaction {
const msgHashBuf = Buffer.from(msgHash);
try {
- return cryptoSignVerify(sigBuf, msgHashBuf, pubKeyBuf);;
+ return cryptoSignVerify(sigBuf, msgHashBuf, pubKeyBuf);
} catch (e: any) {
return false;
}
@@ -307,7 +297,7 @@ export abstract class BaseTransaction {
const msgHash = this.getMessageToSign(true);
const buf = Buffer.from(seed);
const acc = new Dilithium(buf);
- const signature = acc.sign(msgHash)
+ const signature = acc.sign(msgHash);
const tx = this._processSignatureAndPublicKey(signature, acc.getPK());
return tx;
diff --git a/packages/web3-zond-accounts/src/tx/constants.ts b/packages/web3-zond-accounts/src/tx/constants.ts
index 8c6c3356..b6841ca8 100644
--- a/packages/web3-zond-accounts/src/tx/constants.ts
+++ b/packages/web3-zond-accounts/src/tx/constants.ts
@@ -27,4 +27,4 @@ export const MAX_INTEGER = BigInt(
'0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
);
-export const SEED_BYTES = 48;
\ No newline at end of file
+export const SEED_BYTES = 48;
diff --git a/packages/web3-zond-accounts/src/tx/eip1559Transaction.ts b/packages/web3-zond-accounts/src/tx/eip1559Transaction.ts
index c935a5f2..32c8e37b 100644
--- a/packages/web3-zond-accounts/src/tx/eip1559Transaction.ts
+++ b/packages/web3-zond-accounts/src/tx/eip1559Transaction.ts
@@ -369,8 +369,8 @@ export class FeeMarketEIP1559Transaction extends BaseTransaction,
+ transaction: FeeMarketEIP1559TxData | Record,
) => SignTransactionResult;
export type SignResult = SignatureObject & {
@@ -83,5 +81,4 @@ export interface WebStorage {
[name: string]: any;
}
-export type TypedTransaction =
- FeeMarketEIP1559Transaction;
+export type TypedTransaction = FeeMarketEIP1559Transaction;
diff --git a/packages/web3-zond-accounts/src/wallet.ts b/packages/web3-zond-accounts/src/wallet.ts
index b4faf7cb..a27c300d 100644
--- a/packages/web3-zond-accounts/src/wallet.ts
+++ b/packages/web3-zond-accounts/src/wallet.ts
@@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { Web3BaseWallet, Web3BaseWalletAccount, /*KeyStore*/ } from '@theqrl/web3-types';
+import { Web3BaseWallet, Web3BaseWalletAccount /* KeyStore */ } from '@theqrl/web3-types';
import { isNullish } from '@theqrl/web3-validator';
import { WebStorage } from './types.js';
@@ -47,7 +47,7 @@ export class Wallet<
T extends Web3BaseWalletAccount = Web3BaseWalletAccount,
> extends Web3BaseWallet {
private readonly _addressMap = new Map();
- //private readonly _defaultKeyName = 'web3js_wallet';
+ // private readonly _defaultKeyName = 'web3js_wallet';
/**
* Get the storage object of the browser
diff --git a/packages/web3-zond-accounts/test/fixtures/account.ts b/packages/web3-zond-accounts/test/fixtures/account.ts
index 673ab251..92a77153 100644
--- a/packages/web3-zond-accounts/test/fixtures/account.ts
+++ b/packages/web3-zond-accounts/test/fixtures/account.ts
@@ -31,7 +31,7 @@ import {
import { CipherOptions, KeyStore } from '@theqrl/web3-types';
import { hexToBytes } from '@theqrl/web3-utils';
import { FeeMarketEIP1559TxData } from '../../src/tx/types';
-import { sign, signTransaction/*, encrypt */} from '../../src/account';
+import { sign, signTransaction /* , encrypt */ } from '../../src/account';
export const validPublicKeyToAddressData: [string, string][] = [
[
@@ -52,18 +52,17 @@ export const validPublicKeyToAddressData: [string, string][] = [
],
];
-export const invalidPublicKeyToAddressData: [
- any,
- PublicKeyLengthError | InvalidPublicKeyError,
-][] = [
- ['', new InvalidPublicKeyError()],
- [new Uint8Array([]), new PublicKeyLengthError()],
-];
+export const invalidPublicKeyToAddressData: [any, PublicKeyLengthError | InvalidPublicKeyError][] =
+ [
+ ['', new InvalidPublicKeyError()],
+ [new Uint8Array([]), new PublicKeyLengthError()],
+ ];
export const validSeedtoAccountData: [any, any][] = [
[
{
- address: '0x034da61fe50c659a3285549dc395571e2bf6891c462c041e3c6b9061fc73eb3687d03f940e5e65d582019ef10ce1327f',
+ address:
+ '0x034da61fe50c659a3285549dc395571e2bf6891c462c041e3c6b9061fc73eb3687d03f940e5e65d582019ef10ce1327f',
ignoreLength: false,
},
{
@@ -72,22 +71,26 @@ export const validSeedtoAccountData: [any, any][] = [
sign,
signTransaction,
// TODO(youtrack/theqrl/web3.js/3)
- //encrypt,
+ // encrypt,
},
],
[
- { address: '0x7fc43a2ccb557f900d4ca924c187b4438a7f8185b8edbfbabdd26b87f125594495268f55ceac9c9eb23efaab76b0d4c5' },
+ {
+ address:
+ '0x7fc43a2ccb557f900d4ca924c187b4438a7f8185b8edbfbabdd26b87f125594495268f55ceac9c9eb23efaab76b0d4c5',
+ },
{
address: 'Z20618F56c422D34b190B9B49a636a3429B927A91',
seed: '0x7fc43a2ccb557f900d4ca924c187b4438a7f8185b8edbfbabdd26b87f125594495268f55ceac9c9eb23efaab76b0d4c5',
sign,
signTransaction,
- //encrypt,
+ // encrypt,
},
],
[
{
- address: '0xc902ea9bbf1dd51aaa2ee9bed126aba921f6a6afac9cf09a21f3d915b057bace6787a894a71d1d103992aca0a6a4250c', // ignoreLength parameter set true
+ address:
+ '0xc902ea9bbf1dd51aaa2ee9bed126aba921f6a6afac9cf09a21f3d915b057bace6787a894a71d1d103992aca0a6a4250c', // ignoreLength parameter set true
ignoreLength: true,
},
{
@@ -95,7 +98,7 @@ export const validSeedtoAccountData: [any, any][] = [
seed: '0xc902ea9bbf1dd51aaa2ee9bed126aba921f6a6afac9cf09a21f3d915b057bace6787a894a71d1d103992aca0a6a4250c',
sign,
signTransaction,
- //encrypt,
+ // encrypt,
},
],
];
@@ -173,10 +176,7 @@ export const transactionsTestData: [FeeMarketEIP1559TxData][] = [
],
];
-export const invalidSeedtoAccountData: [
- any,
- SeedLengthError | InvalidSeedError,
-][] = [
+export const invalidSeedtoAccountData: [any, SeedLengthError | InvalidSeedError][] = [
['', new InvalidSeedError()],
[new Uint8Array([]), new SeedLengthError()],
];
diff --git a/packages/web3-zond-accounts/test/integration/account.test.ts b/packages/web3-zond-accounts/test/integration/account.test.ts
index 533a74b7..600797fc 100644
--- a/packages/web3-zond-accounts/test/integration/account.test.ts
+++ b/packages/web3-zond-accounts/test/integration/account.test.ts
@@ -16,30 +16,30 @@ along with web3.js. If not, see .
*/
import { Address } from '@theqrl/web3-types';
-import { /*Web3ValidatorError,*/ isAddressString } from '@theqrl/web3-validator';
+import { /* Web3ValidatorError, */ isAddressString } from '@theqrl/web3-validator';
import {
create,
- //decrypt,
- //encrypt,
+ // decrypt,
+ // encrypt,
hashMessage,
seedToAccount,
publicKeyToAddress,
- //recover,
+ // recover,
recoverTransaction,
sign,
signTransaction,
} from '../../src';
import { TransactionFactory } from '../../src/tx/transactionFactory';
import {
- //invalidDecryptData,
- //invalidEncryptData,
- //invalidKeyStore,
+ // invalidDecryptData,
+ // invalidEncryptData,
+ // invalidKeyStore,
invalidSeedtoAccountData,
invalidPublicKeyToAddressData,
signatureRecoverData,
transactionsTestData,
- //validDecryptData,
- //validEncryptData,
+ // validDecryptData,
+ // validEncryptData,
validHashMessageData,
validSeedtoAccountData,
validPublicKeyToAddressData,
@@ -53,7 +53,7 @@ describe('accounts', () => {
expect(typeof account.seed).toBe('string');
expect(typeof account.address).toBe('string');
expect(isAddressString(account.address)).toBe(true);
- //expect(typeof account.encrypt).toBe('function');
+ // expect(typeof account.encrypt).toBe('function');
expect(typeof account.sign).toBe('function');
expect(typeof account.signTransaction).toBe('function');
});
@@ -76,9 +76,9 @@ describe('accounts', () => {
describe('seedToAccount', () => {
describe('valid cases', () => {
it.each(validSeedtoAccountData)('%s', (input, output) => {
- expect(
- JSON.stringify(seedToAccount(input.address, input.ignoreLength)),
- ).toEqual(JSON.stringify(output));
+ expect(JSON.stringify(seedToAccount(input.address, input.ignoreLength))).toEqual(
+ JSON.stringify(output),
+ );
});
});
diff --git a/packages/web3-zond-accounts/test/integration/wallet.test.ts b/packages/web3-zond-accounts/test/integration/wallet.test.ts
index 640e805e..f7a1053a 100644
--- a/packages/web3-zond-accounts/test/integration/wallet.test.ts
+++ b/packages/web3-zond-accounts/test/integration/wallet.test.ts
@@ -17,8 +17,8 @@ along with web3.js. If not, see .
/* eslint-disable @typescript-eslint/no-magic-numbers */
-import { Web3AccountProvider/*, KeyStore */ } from '@theqrl/web3-types';
-//import { isBrowser, isElectron, itIf } from '../fixtures/system_test_utils';
+import { Web3AccountProvider /* , KeyStore */ } from '@theqrl/web3-types';
+// import { isBrowser, isElectron, itIf } from '../fixtures/system_test_utils';
import { Wallet } from '../../src';
import * as accountProvider from '../../src/account';
diff --git a/packages/web3-zond-accounts/test/unit/account.test.ts b/packages/web3-zond-accounts/test/unit/account.test.ts
index 4b683f5b..80448336 100644
--- a/packages/web3-zond-accounts/test/unit/account.test.ts
+++ b/packages/web3-zond-accounts/test/unit/account.test.ts
@@ -16,11 +16,11 @@ along with web3.js. If not, see .
*/
import { Address } from '@theqrl/web3-types';
-import { /*Web3ValidatorError,*/ isAddressString } from '@theqrl/web3-validator';
+import { /* Web3ValidatorError, */ isAddressString } from '@theqrl/web3-validator';
import {
create,
- //decrypt,
- //encrypt,
+ // decrypt,
+ // encrypt,
hashMessage,
seedToAccount,
publicKeyToAddress,
@@ -29,15 +29,15 @@ import {
signTransaction,
} from '../../src/account';
import {
- //invalidDecryptData,
- //invalidEncryptData,
- //invalidKeyStore,
+ // invalidDecryptData,
+ // invalidEncryptData,
+ // invalidKeyStore,
invalidSeedtoAccountData,
invalidPublicKeyToAddressData,
signatureRecoverData,
transactionsTestData,
- //validDecryptData,
- //validEncryptData,
+ // validDecryptData,
+ // validEncryptData,
validHashMessageData,
validSeedtoAccountData,
validPublicKeyToAddressData,
@@ -54,7 +54,7 @@ describe('accounts', () => {
expect(typeof account.address).toBe('string');
expect(isAddressString(account.address)).toBe(true);
// TODO(youtrack/theqrl/web3.js/3)
- //expect(typeof account.encrypt).toBe('function');
+ // expect(typeof account.encrypt).toBe('function');
expect(typeof account.sign).toBe('function');
expect(typeof account.signTransaction).toBe('function');
});
@@ -78,9 +78,9 @@ describe('accounts', () => {
describe('seedToAccount', () => {
describe('valid cases', () => {
it.each(validSeedtoAccountData)('%s', (input, output) => {
- expect(
- JSON.stringify(seedToAccount(input.address, input.ignoreLength)),
- ).toEqual(JSON.stringify(output));
+ expect(JSON.stringify(seedToAccount(input.address, input.ignoreLength))).toEqual(
+ JSON.stringify(output),
+ );
});
});
@@ -113,7 +113,7 @@ describe('accounts', () => {
const signedResult = await signTransaction(
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
TransactionFactory.fromTxData(txObj),
- account.seed
+ account.seed,
);
expect(signedResult).toBeDefined();
diff --git a/packages/web3-zond-accounts/test/unit/common/chains.test.ts b/packages/web3-zond-accounts/test/unit/common/chains.test.ts
index f8f1673b..1bcc86eb 100644
--- a/packages/web3-zond-accounts/test/unit/common/chains.test.ts
+++ b/packages/web3-zond-accounts/test/unit/common/chains.test.ts
@@ -61,9 +61,9 @@ describe('[Common/Chains]: Initialization / Chain params', () => {
};
expect(f).toThrow('not supported'); // eslint-disable-line no-new
});
-
+
it('Should provide correct access to chain parameters', () => {
- let c = new Common({ chain: 'mainnet', hardfork: 'shanghai' });
+ const c = new Common({ chain: 'mainnet', hardfork: 'shanghai' });
// expect(c.hardforks()[3]['block']).toBe(2463000);
expect(c.hardforks()[0]['block']).toBe(0);
expect(c.consensusType()).toEqual(ConsensusType.ProofOfStake);
diff --git a/packages/web3-zond-accounts/test/unit/common/customChains.test.ts b/packages/web3-zond-accounts/test/unit/common/customChains.test.ts
index 4955fc88..0fe055e1 100644
--- a/packages/web3-zond-accounts/test/unit/common/customChains.test.ts
+++ b/packages/web3-zond-accounts/test/unit/common/customChains.test.ts
@@ -14,7 +14,7 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { Chain, Common, ConsensusType, /*CustomChain,*/ Hardfork } from '../../../src/common';
+import { Chain, Common, ConsensusType, /* CustomChain, */ Hardfork } from '../../../src/common';
import * as testnet from '../../fixtures/common/testnet.json';
import * as testnet2 from '../../fixtures/common/testnet2.json';
diff --git a/packages/web3-zond-accounts/test/unit/common/eips.test.ts b/packages/web3-zond-accounts/test/unit/common/eips.test.ts
index b4f9796f..f299a45d 100644
--- a/packages/web3-zond-accounts/test/unit/common/eips.test.ts
+++ b/packages/web3-zond-accounts/test/unit/common/eips.test.ts
@@ -19,18 +19,15 @@ along with web3.js. If not, see .
// NOTE(rgeraldes24): unused for now
describe.skip('[Common/EIPs]: Initialization / Chain params', () => {
-
it.skip('Correct initialization', () => {
// let eips = [2537, 2929];
// const c = new Common({ chain: Chain.Mainnet, eips });
// expect(c.eips()).toEqual(eips);
-
// eips = [2718, 2929, 2930];
// expect(() => {
// // eslint-disable-next-line no-new
// new Common({ chain: Chain.Mainnet, eips, hardfork: Hardfork.Istanbul });
// }).not.toThrow();
-
// eips = [2930];
// expect(() => {
// // eslint-disable-next-line no-new
diff --git a/packages/web3-zond-accounts/test/unit/common/hardforks.test.ts b/packages/web3-zond-accounts/test/unit/common/hardforks.test.ts
index 6d26f2f1..7ff31b6b 100644
--- a/packages/web3-zond-accounts/test/unit/common/hardforks.test.ts
+++ b/packages/web3-zond-accounts/test/unit/common/hardforks.test.ts
@@ -20,9 +20,7 @@ import { Chain, Common, ConsensusAlgorithm, ConsensusType, Hardfork } from '../.
describe('[Common]: Hardfork logic', () => {
it('Hardfork access', () => {
- const supportedHardforks = [
- Hardfork.Shanghai,
- ];
+ const supportedHardforks = [Hardfork.Shanghai];
let c;
for (const hardfork of supportedHardforks) {
@@ -32,7 +30,7 @@ describe('[Common]: Hardfork logic', () => {
});
it('getHardforkByBlockNumber() / setHardforkByBlockNumber()', () => {
- let c = new Common({ chain: Chain.Mainnet });
+ const c = new Common({ chain: Chain.Mainnet });
expect(c.getHardforkByBlockNumber(0)).toEqual(Hardfork.Shanghai);
expect(c.getHardforkByBlockNumber(1149999)).toEqual(Hardfork.Shanghai);
diff --git a/packages/web3-zond-accounts/test/unit/common/mergePOS.test.ts b/packages/web3-zond-accounts/test/unit/common/mergePOS.test.ts
index 6669c318..6dd2c09c 100644
--- a/packages/web3-zond-accounts/test/unit/common/mergePOS.test.ts
+++ b/packages/web3-zond-accounts/test/unit/common/mergePOS.test.ts
@@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
// import { toBigInt } from '@theqrl/web3-utils';
-import { /*Chain,*/ Common, Hardfork } from '../../../src/common';
+import { /* Chain, */ Common, Hardfork } from '../../../src/common';
import * as testnetPOS from '../../fixtures/common/pos.json';
import posExecGenesis from '../../fixtures/common/pos-exec-genesis.json';
@@ -127,7 +127,7 @@ describe('[Common]: Merge/POS specific logic', () => {
expect(c.getHardforkByBlockNumber(5, 0)).toBe('shanghai');
});
-
+
it('Should fail setting invalid hardfork', () => {
const customChains = [testnetPOS];
expect(() => {
diff --git a/packages/web3-zond-accounts/test/unit/common/params.test.ts b/packages/web3-zond-accounts/test/unit/common/params.test.ts
index eeafcafc..e20d218a 100644
--- a/packages/web3-zond-accounts/test/unit/common/params.test.ts
+++ b/packages/web3-zond-accounts/test/unit/common/params.test.ts
@@ -48,9 +48,7 @@ describe('[Common]: Parameter access for param(), paramByHardfork()', () => {
it('Parameter updates', () => {
const c = new Common({ chain: Chain.Mainnet });
- expect(c.paramByHardfork('gasPrices', 'ecAdd', 'shanghai')).toEqual(
- BigInt(150),
- );
+ expect(c.paramByHardfork('gasPrices', 'ecAdd', 'shanghai')).toEqual(BigInt(150));
// expect(c.paramByHardfork('pow', 'minerReward', 'byzantium')).toEqual(
// BigInt(3000000000000000000),
diff --git a/packages/web3-zond-accounts/test/unit/common/utils.test.ts b/packages/web3-zond-accounts/test/unit/common/utils.test.ts
index ce148a9f..f11c6c2b 100644
--- a/packages/web3-zond-accounts/test/unit/common/utils.test.ts
+++ b/packages/web3-zond-accounts/test/unit/common/utils.test.ts
@@ -67,9 +67,7 @@ describe('[Utils/Parse]', () => {
'51c7fe41be669f69c45c33a56982cbde405313342d9e2b00d7c91a7b284dd4f8',
),
});
- expect(common.hardforks().map(hf => hf.name)).toEqual([
- 'shanghai',
- ]);
+ expect(common.hardforks().map(hf => hf.name)).toEqual(['shanghai']);
for (const hf of common.hardforks()) {
/* eslint-disable @typescript-eslint/no-use-before-define */
expect(hf.forkHash).toEqual(kilnForkHashes[hf.name]);
@@ -86,9 +84,7 @@ describe('[Utils/Parse]', () => {
});
// merge hardfork is now scheduled just after shanghai even if mergeForkIdTransition is not confirmed
// to be post merge
- expect(common1.hardforks().map(hf => hf.name)).toEqual([
- 'shanghai',
- ]);
+ expect(common1.hardforks().map(hf => hf.name)).toEqual(['shanghai']);
expect(common1.hardfork()).toEqual(Hardfork.Shanghai);
});
@@ -97,18 +93,16 @@ describe('[Utils/Parse]', () => {
const common = Common.fromGzondGenesis(posExecGenesis, {
chain: 'customChain',
});
- expect(common.hardforks().map(hf => hf.name)).toEqual([
- 'shanghai',
- ]);
+ expect(common.hardforks().map(hf => hf.name)).toEqual(['shanghai']);
expect(common.getHardforkByBlockNumber(0)).toEqual(Hardfork.Shanghai);
expect(common.getHardforkByBlockNumber(1, BigInt(2))).toEqual(Hardfork.Shanghai);
// shanghai is at timestamp 8
expect(common.getHardforkByBlockNumber(8)).toEqual(Hardfork.Shanghai);
expect(common.getHardforkByBlockNumber(8, BigInt(2))).toEqual(Hardfork.Shanghai);
- expect(common.getHardforkByBlockNumber(8, 8)).toEqual(Hardfork.Shanghai);
+ expect(common.getHardforkByBlockNumber(8, 8)).toEqual(Hardfork.Shanghai);
// should be post merge at shanghai
- expect(common.getHardforkByBlockNumber(8, 8)).toEqual(Hardfork.Shanghai);
+ expect(common.getHardforkByBlockNumber(8, 8)).toEqual(Hardfork.Shanghai);
expect(common.hardfork()).toEqual(Hardfork.Shanghai);
});
});
diff --git a/packages/web3-zond-accounts/test/unit/tx/base.test.ts b/packages/web3-zond-accounts/test/unit/tx/base.test.ts
index f1df7234..dc94b4bd 100644
--- a/packages/web3-zond-accounts/test/unit/tx/base.test.ts
+++ b/packages/web3-zond-accounts/test/unit/tx/base.test.ts
@@ -14,20 +14,16 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { bytesToUint8Array, hexToBytes, uint8ArrayEquals } from '@theqrl/web3-utils'
+import { bytesToUint8Array, hexToBytes, uint8ArrayEquals } from '@theqrl/web3-utils';
import { Dilithium } from '@theqrl/wallet.js';
-import {
- FeeMarketEIP1559Transaction,
-} from '../../../src';
+import { HexString } from '@theqrl/web3-types';
+import { FeeMarketEIP1559Transaction } from '../../../src';
import { Chain, Common, Hardfork, toUint8Array, uint8ArrayToBigInt } from '../../../src/common';
import { MAX_INTEGER, MAX_UINT64 } from '../../../src/tx/constants';
import type { BaseTransaction } from '../../../src/tx/baseTransaction';
import eip1559Fixtures from '../../fixtures/json/eip1559txs.json';
-import { HexString } from '@theqrl/web3-types';
-
-
const seedToPublic = function (seed: HexString): Uint8Array {
const _seed = hexToBytes(seed);
const buf = Buffer.from(_seed);
@@ -103,7 +99,7 @@ describe('[BaseTransaction]', () => {
});
it('fromValuesArray()', () => {
- let rlpData: any = eip1559Txs[0].raw();
+ const rlpData: any = eip1559Txs[0].raw();
rlpData[2] = toUint8Array('0x0');
expect(() => {
FeeMarketEIP1559Transaction.fromValuesArray(rlpData);
@@ -206,7 +202,7 @@ describe('[BaseTransaction]', () => {
const signedTx = tx.sign(hexToBytes(seed));
const txPubKey = signedTx.getSenderPublicKey();
- const pubKeyFromSeed = seedToPublic(seed)
+ const pubKeyFromSeed = seedToPublic(seed);
expect(uint8ArrayEquals(txPubKey, pubKeyFromSeed)).toBe(true);
}
}
diff --git a/packages/web3-zond-accounts/test/unit/tx/eip1559.test.ts b/packages/web3-zond-accounts/test/unit/tx/eip1559.test.ts
index 17f2aa79..a1f3281f 100644
--- a/packages/web3-zond-accounts/test/unit/tx/eip1559.test.ts
+++ b/packages/web3-zond-accounts/test/unit/tx/eip1559.test.ts
@@ -199,8 +199,10 @@ describe('[FeeMarketEIP1559Transaction]', () => {
value: '0x2933bc9',
data: '0x',
accessList: [],
- publicKey: '0x1de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240e',
- signature: '0x1e402bc3ca44e1e7e812865158f22a0e70f9790c6740afb514511bf908ee9e51deab654abb7f3a044934aaa0dc3d09c369dd6a1df0fb2c049130228dc82c4665f7fb026d516d4da5c7e08a601ce81f451e23283804e7c0960acddc202b6a52c4452015d64f3e480a0cfaadb7c5946318226ea172573c4a2ba16ed08c1bb91a77d3cf666895d90af09f37cbe322ef8a5ea647820cbfa04073bdd73522e9f4578c44a13e695f961c91e7b40f75c837c9cc9d5035bbdeb7a07518f8fe28583ae5d24a2e2167ee14f1e6ba9a7e59386b5639a550d918bae1f611504024b61deadd076680a315a5b63dd354b5cb462e9a045abff82077ec6c80e8f6842577565f3e10791cc324982aee8493d1cf8054f24e1d73e02604326593c4f210fad2cbe4f93993348af27c62a17b9ad1bfc92bdaeffa55d03187c37f95a0c92ed1ca77d8fb3d60abd6d6fb40545e634a0cca26134b262967b5af1285ecbd5fbe40bd33a15fa09b99bffcd7cea10c9d74ae401e2ba42fa1d3472dd5a7c772da3a7e8b49fe544569bd48a4f0d0194ce9738f3a4f3b349b997b5821e236fabf1739f1266893ff275ad1cfb090f216784d79200fdb10b3bfac7d92106135ba34e4bb00ee6252b90beb45e442eba2f9b8f5f073f9566ed11fd3afbc1b0d30248cbdbba2759ddcb2598914144b4c24ce3ff7c45135e7b251e4663123da99612813e920a209f2420f2f3ca56dcff7abce627f848acf70fb91ff4f792ab33f171c3fd2303cad7736186b805de5fb376739bff9d91d468d6306a623ef9b5360d3af8d55a11b9c984ce91a158e82108d0f174913ed567ef288c2b5dbe65f8c14f3a4386045814e0d432b17b13ee35408a2f934b76124fa0224d2e7fe0c3ed17f658c7503334b01aedf6fa24b3058fa8103aa247f5263098be603ee1f286b6df3f166a9fc27f8f5fb2f8acc464a3648e58a5345f949dfbb9a77615fce9738ceebfbaadff08d80e908a7d390a2f05745eedd67bfcf1dfc646337ff9db80753492800c9a0b6b22afcb4e4359b4aac9d8d19c2862a9f9430e5c75840ae2c9391c95336abd24b0f7fe12418c65969e7f6feea1da6e95acc73216e69d6fd0ed9595811150c25235fabaaccbc2d64dd63ddfbb8239b8481082b49ed28dad8ca3073365dc9159259ee178b4a192a0ec1e2621a9ebc710b20c4d176f00031dd807cab36be29ff5b7785d0ca066156cd5e9a4e4f14d3d073689a3ea6f9db3a7e51b30968f0f6cb949f8a689b3a4f3617c13519fc478b52ce134617361b327bde825cb4f6df785324cdb238b526538875761dddd2f45055cce869942c8f9117724035611c3cd3caa61f3960cd0d1292d26145fdf90ad85252a58af0ae4541748cbf13b99d0017bd5f34787d117d7a7a40278f43b5a1ac021bb7c415ea4fa7033e4d2b0d3ee6ce26d9642ebbe910d5ff7639b70e377f133ca43ca0069b2f996d27f694f935c9239cd2d74d1023e820a453d25ee0dd37c50d98dac08184b1749ecc877a8b3e83ac50d395d631874a5b51a9e7520929636583a3a8c3b8ea0c7a81424f834970c369348b26179f0c5663de1e62df1de5bf464318adaced1a6151bc73ce7c7885b0a3210ed1056d300083ae8030ff3ef8f653284b7080231cdc1c9e90fbc864f06460bb54de044930118d01e285f9a297c6ea3080241ee86b29c46e53392f149aa7d06d3133cf0995733f3f1c0cd5fe38858d9742ebd73b8d9eaf333b6440e9444c0a1618041c087863b4c222382e4551464b7166a3738cfb73015782a2ce3547efadece0f864db371a807fbaa7378047685a2c32def9c3a60147fb1bb536301edc0bce29fd06871f3125da6f14157457d6984d22e1d80e788bbe957c061f8cf46c1286f064447b597e7b0e63d16461bccbd08d5f306ec1ede2f66988b1de22700f2d0e9d324b612709ed7c9065920bfd179d83d444dcd27c370e75e0bcbc902b8873b3ddc66a35e42d1f2201441b73c68dfd211e52cdf249f76a3a8bc8224e0ac2d9c3eee48f29576900573f6e07fd728045443263612fb4eeea90847de0577b1a035ff52b9a25563f797dd0d58013c349d9735a6afd2bf5c7804a5e9827c41d56765abc198d96315e4afc442404a6af16f6c6bc4f27010710b75470d8960090476f96db76f361ba929b5c518321bdb1bf84375603774e663da29afd9e133fea0f5828494ea1cd59e8bf9ed5cfa5cb6d9b010eaed3e3f39029e3a4dd489941aa297c4b56aab66536cbec4abe3cedbfa82da3afc633f59e1b77680e123e0723966ae420afe2ed5c7ea15a86e3ab1b5168ee93637e965325e23bf07babf2821ae3f30799e5cf5d0572ce69860591c9e3d3d27c8f922e22b64f054827ecee8a30bf855098cc09a648d80117c4e8581692801286c22f2d4da0a7ec9769ddf530861a6673cd3b9bd6117bb2c71fee31c4713a73208639c646a98575cafbcc3cdc42746c32ef7aa24374a004f867b29cdc384c106ccd6a7f2fdcda7fdefa7df338092230b4a8ea6418e912b5609deddc3d602ab077c73273699e2cdf690b1b032a358b31a093aabb6fb93112decfd8c804e0ff2ad6c08ba6d33f8ef11dcda054a4a11f5d34d2378c8afe2aecd4a1719580fad793e2c31a4986b1e44c0bf7f838ccaaefc3ffc01ef0607ce532aca3f0aefc2bf545e1bfddd86fdc3e5569c974b978b434e2de9fdf820a4b547759ff80b36417bc5d69a52d195f9138ad6cfbbb06f992dede9e6d78ec3b9a3b2eacbcd45cfa3ea9da25d21cf55184e8bb6c7b4dbea7e2d3ded4fffbd4738da7367743c6ebd023498edc558f5143815094c6f6d2118ccf9b9827da40d8b27a1f6bc1ae43f5853458828bda54e58014de4a0cb3709d171370aee1a0c619567a0dc9103b92125666b37d2b45b4b9b0f25c15a6360841aa31804b756e617f3403c92d5507876e1c14aa70fa517fcae97b6018d934c9026c9799fed157417dd6f30527444967e10c47b39c1327643fab2c029804f23c1b051f41d8ccdf3c3acfd569750bc78e0396d3a694a7410a9703302bbd1c58e3507de5d56357b1590f563b2bb0bbf7048caa3fc7c89ea501d929d23c40776744f2fdd97ffc388e3fbe5640aee6972d8ec830408ac6703cdade9e329944dde141ba394f89786367a5af8a994702a2585bae24c23b8e772a42afa92b4d8ce1b7aa372b562baaf63977b34449f7ba4dd1b906a58e73045fcf5160adc09dcd360818694da9974dbb6adfc0f7784c1d31b6bb2bbbd914cc311981355f870fc1d90804da3bdba640f8c70878fc21844a4ce6e2b714598adfe415d67d7ee95983d8fbf28574390c5a2ef99076a428a62e4fbeb1218b09d3978416970be19347597c8d1c8b43bf9bd6f0f67e6fd9e935399e36b33e34717b9130802de354a38f3d4b7459a82c1d729fd52747ae8785534d24d3e5d870bcd004bdc8978d06e2c0c0e4135cc6dce11330ca0bc407c4acf5e1a2ecd033a485fab5db4fda5d51710da72a49240dd58fd725c6f856b0ee2bc07f8cc473c29376ce08ad9c1171d09bb072d432a5e0d15a9f695c95f2c7d2cfde9b3933e00a115fe6f3e446ef5cdd5ee75bf2c89e40a1bba154af228127385855f20916e9e3d47567b11d28b2a17140dfc7c014e70052e280f6f4f841aaf81d66a3c7740c3834daff8f65860ecef9debb7452a366ea77c42742eb9bc3cb88bd67a722794b3e85b501bd26ed9c2ff502b5b76a8368116fa98c67d2d9b74ea65bebe773342b87b2da8508a31bbc76d8c5a9c58b1ab93ced437c3a3570aded7fcd85eddb1d6d46080cf76c6fe719a67ad2585ef4f7f2b533350117b07cfc22c0b2b0f557b991d256e0b56844b8ca12dcbdeae2c27a8c0a0cc0e95fb4721e3df4a0ddd3429614a9d3aa023c78ae7c38c6c553072656ca4ecbc95c9785d6693973c8bb304caebc981b803923de0467d16714e5fd1b001999ef61f3919a3e0890ea6ca187b8ae906f9b57f33b6b21353cd9a370795db6812de5cb8a791a8963f32cbafa55f7dc681e345ff9c6c5675145e4b256fe657566a3e5f2d4eb0ba2c2adc407a0e2963fbdc6b8a880842b1d96932ec5f20ebe947f59e78d0f8aea5457df67db3162b464e37620d8cc04eddb68d020d019dcff85318e4ec4c025fd98e30933cf9ebfb9190a3f26e48e2e170bebe49900a763f3de7cd965556956e2a666c7c3d711bac457eb323287a033215f7161c5258b49f207d3c888521ca23a6b0c62cbba5d149916dfb0c5b81aba26f5e5cd21d574211d375020ba1b8c82abaf243db3c5d570aee4f4f455ba3efafc554bb8c263023dd741864a06542336239cd26a230c09280fc780fa8a0daa120b3a36e804c37cc5e927ce798246912f5bbe2ac9cdcad6d4a287ab875bef8e296f1c2c455511f2f440aa90a7868b4de594926a83b62cbeb338ae0b3f8e01d9bf17055d9c9c054dd4a73be3dc111810653c71b84a5c9bd7bce98e6e533aa40343396c9ba6b81e0b91781573ae9326213bc7e24064af7b9cd75f57a694cc111925c049d8f5e973e61a3600f6211a7144841cf13a9177b88f5ec41ef7b2c5cd7e06f1ceb494c4147283f629b8f31462b9d5c19c22fb652555c3bc3f500adb5117ab7b8918117b2a7c137e7325cd9aac85ac98d55cb55429fd61c0bd8ea858c1361dd269d2d461173b4e24ce02bb8d30521fe9f407d9bc17cb37418f7c9e4443298b92891a1d5fcea1361dfffb8db2aa181c8f007bd0163fd52b75b23bb66d99697b87eb27288cbc337372850f5458e364ab6646f94e17322ddd8d353c658fb4d5d29d84fb55acd736524c2bbd0edb0a6846e64aa7d77c6008614275b4435b38a3fc83eda59ee92a2d1e86059055eee97a6d5729b2a6bcf226c89597a370ee1c9f69bbd36cb5f36571f24d2742232f17a9d43524b5bdd7e17230e8efccfea3444216eb8870041798472c783a37c1fceb2f5be779ced9e328011476bbc9521557141512585ff09179c36829fdd9f11353faa2678522414304d857db8270ef918c901052ce190a3741d48536258c435275e4ed472275725569802fbeed0fe23c101a55d4a56d7d848584308415a06e6193f281390f95b4ac94249797a15ab2cf965ededf499a2dcc03705e50abeb21c288c505b4a7016e213818fb1d4b8c202f6cf84789956a5759c43a796838f2c2d720de65a11ed7d59cfb3342478db314084e57344a22020abc19cbf65d7c96bdb51a491acd2b92daeeaf20965ee7cad5166d4a20305f9fd439189d8a58c52dc34bd88e510fb810024963907d4fbde5343b978f3704d4f220b63e08b42599b2d535dfbc61f1b5705266fcc5e3eee37d4adbe6ac8332244c5cf52044e3ad63c38b9f6638fe06bacaa0178a3d5a553a6d49a561f21377690f1d14a00dafba76a9f154e7e27833c36261cfdce2cfee34e138fe346198fdd8fe6bcc6c5d34b88e77105757789ee27b7044aa8e05799e1241247cc744a31d556f854537e9af81df5ee9ef1c830b27e37d94b58b57f157866445b7aa324fee7916711e5227a9b6f7b14d3c39a60145bd4641f37aca4ee2b7bf9ddfd0b085cf4c42378090aa870e45d05b5dfbfe15ae6d6f07a7350a7c24bf4f90c66b616ef28f368b06a4dc1d12a4eaac07324a72235a6d6ae9dc48c1c80ae18c76d1364ad2a9d2ae4572a82ba2ef8aba40cc356a3fbd3054a7bf07fef0cd5b1db775c48bb5ec94e246b75b477bf28aafdaeb74c606e3e8b76e546ed7ec882d203078a3b982064d8ffd6bddd2225dd27ca7e5e9cd62d832a82fd61427845b5b8fbae90bff21886a526758d83de838234f93e603148bfad389c1bfaaca7b75ee6586b0c9147bdcafc8320388a24f9fc43b467d4d868710bc639888cb2a8d6b433333a3dc6a31464272e1aa0fc04491ff89ee5be994111c8781a706d80171b4ecbb86cef31403641d2071ffb8f297c814a63390cc4ec32f702913a7c08d92c1001441e3149aa4562fe663387cebd9d1ea71af1f5c14dbfb1733c2b1027381e56eb7e3d3768d1c6a2f29d53362947952c3a8598f67def0de814af7387ac6e558d30ba793f41c4008b3b9008337cf0f504a90041b884d4cd73695e98a622adb0175cda0bda6208026902113d11776eefef5c01f941fd4ae6ce6128e77882870a702c86530ba29c6df95183855cd5978b89a68fcf35bf075c98400b46eb419a098f4898e2738cc929cca9836f3140eb1e1dace42ee9c0ed46c93315375a581fbdda4ba065d1a5994bd99a124c08e3514c12ca411f18c3d4cdd2afed764bf330c5fe8f7da73117956c9f29ea6771f80cfea4658ca422b47bec6a7ea0a06d209cc8a8aeb4c81c68e6ed6aa1bcdda3453207e32efcb974589aff889543087c384d618d70135485f607b89b0b3ff838eb3c40b283f4487ddee094a5e8dd3f4555c6f7789f1f301091a33364d58dc18236686b0c8030f5a7e9196cdd8e7f400000000000000000000000000000000000a0e151b222a303a',
+ publicKey:
+ '0x1de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240e',
+ signature:
+ '0x1e402bc3ca44e1e7e812865158f22a0e70f9790c6740afb514511bf908ee9e51deab654abb7f3a044934aaa0dc3d09c369dd6a1df0fb2c049130228dc82c4665f7fb026d516d4da5c7e08a601ce81f451e23283804e7c0960acddc202b6a52c4452015d64f3e480a0cfaadb7c5946318226ea172573c4a2ba16ed08c1bb91a77d3cf666895d90af09f37cbe322ef8a5ea647820cbfa04073bdd73522e9f4578c44a13e695f961c91e7b40f75c837c9cc9d5035bbdeb7a07518f8fe28583ae5d24a2e2167ee14f1e6ba9a7e59386b5639a550d918bae1f611504024b61deadd076680a315a5b63dd354b5cb462e9a045abff82077ec6c80e8f6842577565f3e10791cc324982aee8493d1cf8054f24e1d73e02604326593c4f210fad2cbe4f93993348af27c62a17b9ad1bfc92bdaeffa55d03187c37f95a0c92ed1ca77d8fb3d60abd6d6fb40545e634a0cca26134b262967b5af1285ecbd5fbe40bd33a15fa09b99bffcd7cea10c9d74ae401e2ba42fa1d3472dd5a7c772da3a7e8b49fe544569bd48a4f0d0194ce9738f3a4f3b349b997b5821e236fabf1739f1266893ff275ad1cfb090f216784d79200fdb10b3bfac7d92106135ba34e4bb00ee6252b90beb45e442eba2f9b8f5f073f9566ed11fd3afbc1b0d30248cbdbba2759ddcb2598914144b4c24ce3ff7c45135e7b251e4663123da99612813e920a209f2420f2f3ca56dcff7abce627f848acf70fb91ff4f792ab33f171c3fd2303cad7736186b805de5fb376739bff9d91d468d6306a623ef9b5360d3af8d55a11b9c984ce91a158e82108d0f174913ed567ef288c2b5dbe65f8c14f3a4386045814e0d432b17b13ee35408a2f934b76124fa0224d2e7fe0c3ed17f658c7503334b01aedf6fa24b3058fa8103aa247f5263098be603ee1f286b6df3f166a9fc27f8f5fb2f8acc464a3648e58a5345f949dfbb9a77615fce9738ceebfbaadff08d80e908a7d390a2f05745eedd67bfcf1dfc646337ff9db80753492800c9a0b6b22afcb4e4359b4aac9d8d19c2862a9f9430e5c75840ae2c9391c95336abd24b0f7fe12418c65969e7f6feea1da6e95acc73216e69d6fd0ed9595811150c25235fabaaccbc2d64dd63ddfbb8239b8481082b49ed28dad8ca3073365dc9159259ee178b4a192a0ec1e2621a9ebc710b20c4d176f00031dd807cab36be29ff5b7785d0ca066156cd5e9a4e4f14d3d073689a3ea6f9db3a7e51b30968f0f6cb949f8a689b3a4f3617c13519fc478b52ce134617361b327bde825cb4f6df785324cdb238b526538875761dddd2f45055cce869942c8f9117724035611c3cd3caa61f3960cd0d1292d26145fdf90ad85252a58af0ae4541748cbf13b99d0017bd5f34787d117d7a7a40278f43b5a1ac021bb7c415ea4fa7033e4d2b0d3ee6ce26d9642ebbe910d5ff7639b70e377f133ca43ca0069b2f996d27f694f935c9239cd2d74d1023e820a453d25ee0dd37c50d98dac08184b1749ecc877a8b3e83ac50d395d631874a5b51a9e7520929636583a3a8c3b8ea0c7a81424f834970c369348b26179f0c5663de1e62df1de5bf464318adaced1a6151bc73ce7c7885b0a3210ed1056d300083ae8030ff3ef8f653284b7080231cdc1c9e90fbc864f06460bb54de044930118d01e285f9a297c6ea3080241ee86b29c46e53392f149aa7d06d3133cf0995733f3f1c0cd5fe38858d9742ebd73b8d9eaf333b6440e9444c0a1618041c087863b4c222382e4551464b7166a3738cfb73015782a2ce3547efadece0f864db371a807fbaa7378047685a2c32def9c3a60147fb1bb536301edc0bce29fd06871f3125da6f14157457d6984d22e1d80e788bbe957c061f8cf46c1286f064447b597e7b0e63d16461bccbd08d5f306ec1ede2f66988b1de22700f2d0e9d324b612709ed7c9065920bfd179d83d444dcd27c370e75e0bcbc902b8873b3ddc66a35e42d1f2201441b73c68dfd211e52cdf249f76a3a8bc8224e0ac2d9c3eee48f29576900573f6e07fd728045443263612fb4eeea90847de0577b1a035ff52b9a25563f797dd0d58013c349d9735a6afd2bf5c7804a5e9827c41d56765abc198d96315e4afc442404a6af16f6c6bc4f27010710b75470d8960090476f96db76f361ba929b5c518321bdb1bf84375603774e663da29afd9e133fea0f5828494ea1cd59e8bf9ed5cfa5cb6d9b010eaed3e3f39029e3a4dd489941aa297c4b56aab66536cbec4abe3cedbfa82da3afc633f59e1b77680e123e0723966ae420afe2ed5c7ea15a86e3ab1b5168ee93637e965325e23bf07babf2821ae3f30799e5cf5d0572ce69860591c9e3d3d27c8f922e22b64f054827ecee8a30bf855098cc09a648d80117c4e8581692801286c22f2d4da0a7ec9769ddf530861a6673cd3b9bd6117bb2c71fee31c4713a73208639c646a98575cafbcc3cdc42746c32ef7aa24374a004f867b29cdc384c106ccd6a7f2fdcda7fdefa7df338092230b4a8ea6418e912b5609deddc3d602ab077c73273699e2cdf690b1b032a358b31a093aabb6fb93112decfd8c804e0ff2ad6c08ba6d33f8ef11dcda054a4a11f5d34d2378c8afe2aecd4a1719580fad793e2c31a4986b1e44c0bf7f838ccaaefc3ffc01ef0607ce532aca3f0aefc2bf545e1bfddd86fdc3e5569c974b978b434e2de9fdf820a4b547759ff80b36417bc5d69a52d195f9138ad6cfbbb06f992dede9e6d78ec3b9a3b2eacbcd45cfa3ea9da25d21cf55184e8bb6c7b4dbea7e2d3ded4fffbd4738da7367743c6ebd023498edc558f5143815094c6f6d2118ccf9b9827da40d8b27a1f6bc1ae43f5853458828bda54e58014de4a0cb3709d171370aee1a0c619567a0dc9103b92125666b37d2b45b4b9b0f25c15a6360841aa31804b756e617f3403c92d5507876e1c14aa70fa517fcae97b6018d934c9026c9799fed157417dd6f30527444967e10c47b39c1327643fab2c029804f23c1b051f41d8ccdf3c3acfd569750bc78e0396d3a694a7410a9703302bbd1c58e3507de5d56357b1590f563b2bb0bbf7048caa3fc7c89ea501d929d23c40776744f2fdd97ffc388e3fbe5640aee6972d8ec830408ac6703cdade9e329944dde141ba394f89786367a5af8a994702a2585bae24c23b8e772a42afa92b4d8ce1b7aa372b562baaf63977b34449f7ba4dd1b906a58e73045fcf5160adc09dcd360818694da9974dbb6adfc0f7784c1d31b6bb2bbbd914cc311981355f870fc1d90804da3bdba640f8c70878fc21844a4ce6e2b714598adfe415d67d7ee95983d8fbf28574390c5a2ef99076a428a62e4fbeb1218b09d3978416970be19347597c8d1c8b43bf9bd6f0f67e6fd9e935399e36b33e34717b9130802de354a38f3d4b7459a82c1d729fd52747ae8785534d24d3e5d870bcd004bdc8978d06e2c0c0e4135cc6dce11330ca0bc407c4acf5e1a2ecd033a485fab5db4fda5d51710da72a49240dd58fd725c6f856b0ee2bc07f8cc473c29376ce08ad9c1171d09bb072d432a5e0d15a9f695c95f2c7d2cfde9b3933e00a115fe6f3e446ef5cdd5ee75bf2c89e40a1bba154af228127385855f20916e9e3d47567b11d28b2a17140dfc7c014e70052e280f6f4f841aaf81d66a3c7740c3834daff8f65860ecef9debb7452a366ea77c42742eb9bc3cb88bd67a722794b3e85b501bd26ed9c2ff502b5b76a8368116fa98c67d2d9b74ea65bebe773342b87b2da8508a31bbc76d8c5a9c58b1ab93ced437c3a3570aded7fcd85eddb1d6d46080cf76c6fe719a67ad2585ef4f7f2b533350117b07cfc22c0b2b0f557b991d256e0b56844b8ca12dcbdeae2c27a8c0a0cc0e95fb4721e3df4a0ddd3429614a9d3aa023c78ae7c38c6c553072656ca4ecbc95c9785d6693973c8bb304caebc981b803923de0467d16714e5fd1b001999ef61f3919a3e0890ea6ca187b8ae906f9b57f33b6b21353cd9a370795db6812de5cb8a791a8963f32cbafa55f7dc681e345ff9c6c5675145e4b256fe657566a3e5f2d4eb0ba2c2adc407a0e2963fbdc6b8a880842b1d96932ec5f20ebe947f59e78d0f8aea5457df67db3162b464e37620d8cc04eddb68d020d019dcff85318e4ec4c025fd98e30933cf9ebfb9190a3f26e48e2e170bebe49900a763f3de7cd965556956e2a666c7c3d711bac457eb323287a033215f7161c5258b49f207d3c888521ca23a6b0c62cbba5d149916dfb0c5b81aba26f5e5cd21d574211d375020ba1b8c82abaf243db3c5d570aee4f4f455ba3efafc554bb8c263023dd741864a06542336239cd26a230c09280fc780fa8a0daa120b3a36e804c37cc5e927ce798246912f5bbe2ac9cdcad6d4a287ab875bef8e296f1c2c455511f2f440aa90a7868b4de594926a83b62cbeb338ae0b3f8e01d9bf17055d9c9c054dd4a73be3dc111810653c71b84a5c9bd7bce98e6e533aa40343396c9ba6b81e0b91781573ae9326213bc7e24064af7b9cd75f57a694cc111925c049d8f5e973e61a3600f6211a7144841cf13a9177b88f5ec41ef7b2c5cd7e06f1ceb494c4147283f629b8f31462b9d5c19c22fb652555c3bc3f500adb5117ab7b8918117b2a7c137e7325cd9aac85ac98d55cb55429fd61c0bd8ea858c1361dd269d2d461173b4e24ce02bb8d30521fe9f407d9bc17cb37418f7c9e4443298b92891a1d5fcea1361dfffb8db2aa181c8f007bd0163fd52b75b23bb66d99697b87eb27288cbc337372850f5458e364ab6646f94e17322ddd8d353c658fb4d5d29d84fb55acd736524c2bbd0edb0a6846e64aa7d77c6008614275b4435b38a3fc83eda59ee92a2d1e86059055eee97a6d5729b2a6bcf226c89597a370ee1c9f69bbd36cb5f36571f24d2742232f17a9d43524b5bdd7e17230e8efccfea3444216eb8870041798472c783a37c1fceb2f5be779ced9e328011476bbc9521557141512585ff09179c36829fdd9f11353faa2678522414304d857db8270ef918c901052ce190a3741d48536258c435275e4ed472275725569802fbeed0fe23c101a55d4a56d7d848584308415a06e6193f281390f95b4ac94249797a15ab2cf965ededf499a2dcc03705e50abeb21c288c505b4a7016e213818fb1d4b8c202f6cf84789956a5759c43a796838f2c2d720de65a11ed7d59cfb3342478db314084e57344a22020abc19cbf65d7c96bdb51a491acd2b92daeeaf20965ee7cad5166d4a20305f9fd439189d8a58c52dc34bd88e510fb810024963907d4fbde5343b978f3704d4f220b63e08b42599b2d535dfbc61f1b5705266fcc5e3eee37d4adbe6ac8332244c5cf52044e3ad63c38b9f6638fe06bacaa0178a3d5a553a6d49a561f21377690f1d14a00dafba76a9f154e7e27833c36261cfdce2cfee34e138fe346198fdd8fe6bcc6c5d34b88e77105757789ee27b7044aa8e05799e1241247cc744a31d556f854537e9af81df5ee9ef1c830b27e37d94b58b57f157866445b7aa324fee7916711e5227a9b6f7b14d3c39a60145bd4641f37aca4ee2b7bf9ddfd0b085cf4c42378090aa870e45d05b5dfbfe15ae6d6f07a7350a7c24bf4f90c66b616ef28f368b06a4dc1d12a4eaac07324a72235a6d6ae9dc48c1c80ae18c76d1364ad2a9d2ae4572a82ba2ef8aba40cc356a3fbd3054a7bf07fef0cd5b1db775c48bb5ec94e246b75b477bf28aafdaeb74c606e3e8b76e546ed7ec882d203078a3b982064d8ffd6bddd2225dd27ca7e5e9cd62d832a82fd61427845b5b8fbae90bff21886a526758d83de838234f93e603148bfad389c1bfaaca7b75ee6586b0c9147bdcafc8320388a24f9fc43b467d4d868710bc639888cb2a8d6b433333a3dc6a31464272e1aa0fc04491ff89ee5be994111c8781a706d80171b4ecbb86cef31403641d2071ffb8f297c814a63390cc4ec32f702913a7c08d92c1001441e3149aa4562fe663387cebd9d1ea71af1f5c14dbfb1733c2b1027381e56eb7e3d3768d1c6a2f29d53362947952c3a8598f67def0de814af7387ac6e558d30ba793f41c4008b3b9008337cf0f504a90041b884d4cd73695e98a622adb0175cda0bda6208026902113d11776eefef5c01f941fd4ae6ce6128e77882870a702c86530ba29c6df95183855cd5978b89a68fcf35bf075c98400b46eb419a098f4898e2738cc929cca9836f3140eb1e1dace42ee9c0ed46c93315375a581fbdda4ba065d1a5994bd99a124c08e3514c12ca411f18c3d4cdd2afed764bf330c5fe8f7da73117956c9f29ea6771f80cfea4658ca422b47bec6a7ea0a06d209cc8a8aeb4c81c68e6ed6aa1bcdda3453207e32efcb974589aff889543087c384d618d70135485f607b89b0b3ff838eb3c40b283f4487ddee094a5e8dd3f4555c6f7789f1f301091a33364d58dc18236686b0c8030f5a7e9196cdd8e7f400000000000000000000000000000000000a0e151b222a303a',
};
expect(json).toEqual(expectedJSON);
});
diff --git a/packages/web3-zond-accounts/test/unit/tx/inputValue.test.ts b/packages/web3-zond-accounts/test/unit/tx/inputValue.test.ts
index bfbb9a91..477343e9 100644
--- a/packages/web3-zond-accounts/test/unit/tx/inputValue.test.ts
+++ b/packages/web3-zond-accounts/test/unit/tx/inputValue.test.ts
@@ -19,14 +19,9 @@ import { hexToBytes } from '@theqrl/web3-utils';
// import { Chain, Common, Hardfork, toUint8Array } from '../../../src/common';
// import { Address } from '../../../src/tx/address';
-import {
- FeeMarketEIP1559Transaction,
- TransactionFactory,
-} from '../../../src';
-
-import type {
- FeeMarketEIP1559ValuesArray,
-} from '../../../src';
+import { FeeMarketEIP1559Transaction, TransactionFactory } from '../../../src';
+
+import type { FeeMarketEIP1559ValuesArray } from '../../../src';
// import type { BigIntLike } from '../../../src/common/types';
// NOTE(rgeraldes24): test 'Transaction Input Values' not valid atm
diff --git a/packages/web3-zond-accounts/test/unit/tx/transactionFactory.test.ts b/packages/web3-zond-accounts/test/unit/tx/transactionFactory.test.ts
index 76a8d696..c3a1dc38 100644
--- a/packages/web3-zond-accounts/test/unit/tx/transactionFactory.test.ts
+++ b/packages/web3-zond-accounts/test/unit/tx/transactionFactory.test.ts
@@ -17,17 +17,16 @@ along with web3.js. If not, see .
import { hexToBytes } from '@theqrl/web3-utils';
import { Chain, Common, Hardfork } from '../../../src/common';
-import {
- FeeMarketEIP1559Transaction,
- TransactionFactory,
-} from '../../../src';
+import { FeeMarketEIP1559Transaction, TransactionFactory } from '../../../src';
const common = new Common({
chain: Chain.Mainnet,
hardfork: Hardfork.Shanghai,
});
-const seed = hexToBytes('d00fd401dc076020ab57f52becab30305bbfc5b3bd7334287c06cdb500c860c54e54b5bd2c5c137d601ef6e8a9e9fac8');
+const seed = hexToBytes(
+ 'd00fd401dc076020ab57f52becab30305bbfc5b3bd7334287c06cdb500c860c54e54b5bd2c5c137d601ef6e8a9e9fac8',
+);
const unsignedEIP1559Tx = FeeMarketEIP1559Transaction.fromTxData(
{ chainId: BigInt(1) },
@@ -56,7 +55,6 @@ describe('[TransactionFactory]: Basic functions', () => {
it('fromSerializedData() -> error cases', () => {
for (const txType of txTypes) {
-
// NOTE(rgeraldes24): this part is not valid since we support tx types from the start
/*
const unsupportedCommon = new Common({
@@ -80,7 +78,7 @@ describe('[TransactionFactory]: Basic functions', () => {
it('fromBlockBodyData() -> success cases', () => {
for (const txType of txTypes) {
- let rawTx = txType.signed.serialize();
+ const rawTx = txType.signed.serialize();
const tx = TransactionFactory.fromBlockBodyData(rawTx, { common });
expect(tx.constructor.name).toEqual(txType.name);
expect(tx.serialize()).toEqual(rawTx);
diff --git a/packages/web3-zond-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts b/packages/web3-zond-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts
index ad918fc9..4d0fb3f2 100644
--- a/packages/web3-zond-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts
+++ b/packages/web3-zond-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts
@@ -14,15 +14,21 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { bytesToHex, hexToBytes, uint8ArrayEquals, uint8ArrayConcat, addressToBytes } from '@theqrl/web3-utils';
import {
- FeeMarketEIP1559Transaction,
-} from '../../../src';
-import { Chain, Common, Hardfork/*, uint8ArrayToBigInt*/ } from '../../../src/common';
+ bytesToHex,
+ hexToBytes,
+ uint8ArrayEquals,
+ uint8ArrayConcat,
+ addressToBytes,
+} from '@theqrl/web3-utils';
+import { FeeMarketEIP1559Transaction } from '../../../src';
+import { Chain, Common, Hardfork /* , uint8ArrayToBigInt */ } from '../../../src/common';
import type { AccessList } from '../../../src';
-const seed = hexToBytes('0xec3077d539c7b333e596b9e6c0b5f5952d26469ab9a60d1fd54c329ef9959593850a2daf60369e434a7c55939f99e149');
+const seed = hexToBytes(
+ '0xec3077d539c7b333e596b9e6c0b5f5952d26469ab9a60d1fd54c329ef9959593850a2daf60369e434a7c55939f99e149',
+);
const address = addressToBytes('Z20982e08c8b5b4d007e4f6c4a637033ce90aa352');
const common = new Common({
@@ -78,9 +84,17 @@ describe('[FeeMarketEIP1559Transaction] -> EIP-2930 Compatibility', () => {
}
});
-
it('cannot input decimal values', () => {
- const values = ['chainId', 'nonce', 'maxFeePerGas', 'maxPriorityFeePerGas', 'gasLimit', 'value', 'publicKey', 'signature'];
+ const values = [
+ 'chainId',
+ 'nonce',
+ 'maxFeePerGas',
+ 'maxPriorityFeePerGas',
+ 'gasLimit',
+ 'value',
+ 'publicKey',
+ 'signature',
+ ];
const cases = [
10.1,
'10.1',
@@ -293,4 +307,4 @@ describe('[FeeMarketEIP1559Transaction] -> EIP-2930 Compatibility', () => {
expect(tx.getDataFee()).toEqual(BigInt(0));
}
});
-});
\ No newline at end of file
+});
diff --git a/packages/web3-zond-accounts/test/unit/tx/types.ts b/packages/web3-zond-accounts/test/unit/tx/types.ts
index 886a5d56..b04b0bdc 100644
--- a/packages/web3-zond-accounts/test/unit/tx/types.ts
+++ b/packages/web3-zond-accounts/test/unit/tx/types.ts
@@ -15,8 +15,7 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-export type ForkName =
- | 'Shanghai';
+export type ForkName = 'Shanghai';
export type ForkNamesMap = { [forkName in ForkName]: string };
diff --git a/packages/web3-zond-accounts/test/unit/wallet.test.ts b/packages/web3-zond-accounts/test/unit/wallet.test.ts
index be02066b..08e1b0ca 100644
--- a/packages/web3-zond-accounts/test/unit/wallet.test.ts
+++ b/packages/web3-zond-accounts/test/unit/wallet.test.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
/* eslint-disable @typescript-eslint/no-magic-numbers */
-import { Web3AccountProvider, Web3BaseWalletAccount /*, KeyStore */ } from '@theqrl/web3-types';
+import { Web3AccountProvider, Web3BaseWalletAccount /* , KeyStore */ } from '@theqrl/web3-types';
import { Wallet } from '../../src/wallet';
describe('Wallet', () => {
@@ -40,7 +40,7 @@ describe('Wallet', () => {
totalSeedCreate += 1;
return { address: `seed_create_${totalSeedCreate}` };
}),
- //decrypt: jest.fn(),
+ // decrypt: jest.fn(),
create: jest.fn().mockImplementation(() => {
totalAccountsCreate += 1;
return { address: `account_create_${totalAccountsCreate}` };
diff --git a/packages/web3-zond-contract/CHANGELOG.md b/packages/web3-zond-contract/CHANGELOG.md
index 0e07e464..1d013ff9 100644
--- a/packages/web3-zond-contract/CHANGELOG.md
+++ b/packages/web3-zond-contract/CHANGELOG.md
@@ -3,4 +3,4 @@
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
\ No newline at end of file
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
diff --git a/packages/web3-zond-contract/src/contract.ts b/packages/web3-zond-contract/src/contract.ts
index ee07c2fd..a71fa179 100644
--- a/packages/web3-zond-contract/src/contract.ts
+++ b/packages/web3-zond-contract/src/contract.ts
@@ -204,13 +204,13 @@ export class Contract
* jsonInterface: [...],
* from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',
* maxFeePerGas: '10000000000000',
- * maxPriorityFeePerGas: '0',
+ * maxPriorityFeePerGas: '0',
* gas: 1000000
* }
*
* myContract.options.from = 'Z1234567890123456789012345678901234567891'; // default from address
- * myContract.options.maxFeePerGas = '20000000000000'; // default max fee per gas in wei
- * myContract.options.maxPriorityFeePerGas = '0'; // default max priority fee per gas in wei
+ * myContract.options.maxFeePerGas = '20000000000000'; // default max fee per gas in planck
+ * myContract.options.maxPriorityFeePerGas = '0'; // default max priority fee per gas in planck
* myContract.options.gas = 5000000; // provide as fallback always 5M gas
* ```
*/
@@ -260,7 +260,7 @@ export class Contract
* ```ts title="Example"
* var myContract = new web3.zond.Contract([...], 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe', {
* from: 'Z1234567890123456789012345678901234567891', // default from address
- * maxFeePerGas: '20000000000' // default max fee per gas in wei, 20 gwei in this case
+ * maxFeePerGas: '20000000000' // default max fee per gas in planck, 20 gplanck in this case
* });
* ```
*
diff --git a/packages/web3-zond-contract/src/encoding.ts b/packages/web3-zond-contract/src/encoding.ts
index f24a1fdb..4f420b01 100644
--- a/packages/web3-zond-contract/src/encoding.ts
+++ b/packages/web3-zond-contract/src/encoding.ts
@@ -113,7 +113,7 @@ export const encodeEventABI = (
if (!opts.topics.length) delete opts.topics;
if (address) {
- opts.address = `Z${address.slice(1).toLowerCase()}`
+ opts.address = `Z${address.slice(1).toLowerCase()}`;
}
return opts;
diff --git a/packages/web3-zond-contract/src/utils.ts b/packages/web3-zond-contract/src/utils.ts
index b76a0fc3..7d3345c9 100644
--- a/packages/web3-zond-contract/src/utils.ts
+++ b/packages/web3-zond-contract/src/utils.ts
@@ -149,7 +149,7 @@ export const getEstimateGasParams = ({
to: contractOptions.address,
gas: contractOptions.gas,
maxFeePerGas: contractOptions.maxFeePerGas,
- maxPriorityFeePerGas: contractOptions.maxPriorityFeePerGas,
+ maxPriorityFeePerGas: contractOptions.maxPriorityFeePerGas,
from: contractOptions.from,
input: contractOptions.input,
data: contractOptions.data,
diff --git a/packages/web3-zond-contract/test/fixtures/contracts/SampleStorageContract.hyp b/packages/web3-zond-contract/test/fixtures/contracts/SampleStorageContract.hyp
index 841d3993..35178f65 100644
--- a/packages/web3-zond-contract/test/fixtures/contracts/SampleStorageContract.hyp
+++ b/packages/web3-zond-contract/test/fixtures/contracts/SampleStorageContract.hyp
@@ -15,8 +15,7 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion ^0.8.7;
+pragma hyperion >=0.0;
contract SampleStorageContract {
uint256 uintNum;
diff --git a/packages/web3-zond-contract/test/fixtures/contracts/SimpleOverloaded.hyp b/packages/web3-zond-contract/test/fixtures/contracts/SimpleOverloaded.hyp
index 28bc9698..bdee647f 100644
--- a/packages/web3-zond-contract/test/fixtures/contracts/SimpleOverloaded.hyp
+++ b/packages/web3-zond-contract/test/fixtures/contracts/SimpleOverloaded.hyp
@@ -1,5 +1,4 @@
-// TODO(now.youtrack.cloud/issue/web3js-11)
-pragma hyperion 0.8.19;
+pragma hyperion >=0.0;
contract SimpleOverload {
uint256 public secret;
diff --git a/packages/web3-zond-contract/test/fixtures/erc20.ts b/packages/web3-zond-contract/test/fixtures/zrc20.ts
similarity index 98%
rename from packages/web3-zond-contract/test/fixtures/erc20.ts
rename to packages/web3-zond-contract/test/fixtures/zrc20.ts
index eef7f317..d4ab8826 100644
--- a/packages/web3-zond-contract/test/fixtures/erc20.ts
+++ b/packages/web3-zond-contract/test/fixtures/zrc20.ts
@@ -19,7 +19,7 @@ import { Address, Numbers } from '@theqrl/web3-types';
import { LogsSubscription } from '../../src/log_subscription';
import { ContractEventOptions, PayableMethodObject, NonPayableMethodObject } from '../../src/types';
-export interface Erc20Interface {
+export interface Zrc20Interface {
methods: {
[key: string]: (
...args: ReadonlyArray
@@ -60,7 +60,7 @@ export interface Erc20Interface {
}
// https://ethereumdev.io/abi-for-erc20-contract-on-ethereum/
-export const erc20Abi = [
+export const zrc20Abi = [
{
constant: true,
inputs: [],
diff --git a/packages/web3-zond-contract/test/fixtures/erc721.ts b/packages/web3-zond-contract/test/fixtures/zrc721.ts
similarity index 98%
rename from packages/web3-zond-contract/test/fixtures/erc721.ts
rename to packages/web3-zond-contract/test/fixtures/zrc721.ts
index 472f49dd..90894d18 100644
--- a/packages/web3-zond-contract/test/fixtures/erc721.ts
+++ b/packages/web3-zond-contract/test/fixtures/zrc721.ts
@@ -19,7 +19,7 @@ import { Address, Numbers } from '@theqrl/web3-types';
import { LogsSubscription } from '../../src/log_subscription';
import { ContractEventOptions, NonPayableMethodObject, PayableMethodObject } from '../../src/types';
-export interface Erc721Interface {
+export interface Zrc721Interface {
methods: {
[key: string]: (
...args: ReadonlyArray
@@ -64,7 +64,7 @@ export interface Erc721Interface {
// https://eips.ethereum.org/EIPS/eip-721
// Copied interface from above link to Remix and compile
-export const erc721Abi = [
+export const zrc721Abi = [
{
constant: true,
inputs: [
diff --git a/packages/web3-zond-contract/test/integration/contract_accesslist.test.ts b/packages/web3-zond-contract/test/integration/contract_accesslist.test.ts
index 86f150cd..0aa772ed 100644
--- a/packages/web3-zond-contract/test/integration/contract_accesslist.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_accesslist.test.ts
@@ -15,6 +15,7 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
+import { isNullish } from '@theqrl/web3-utils';
import { Contract } from '../../src';
import { GreeterBytecode, GreeterAbi } from '../shared_fixtures/build/Greeter';
import {
@@ -23,7 +24,6 @@ import {
describeIf,
getSystemTestBackend,
} from '../fixtures/system_test_utils';
-import { isNullish } from '@theqrl/web3-utils';
describe('contract', () => {
describeIf(getSystemTestBackend() === 'gzond')('createAccessList', () => {
@@ -43,7 +43,7 @@ describe('contract', () => {
arguments: ['My Greeting'],
};
- sendOptions = { from: acc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: acc.address /* gas: '1000000' */ };
});
it('create access list for setter', async () => {
@@ -62,13 +62,15 @@ describe('contract', () => {
const accessListResult = {
accessList: [
{
- address: isNullish(deployedContract.options.address) ? deployedContract.options.address : `Z${deployedContract.options.address.slice(1).toLowerCase()}`,
+ address: isNullish(deployedContract.options.address)
+ ? deployedContract.options.address
+ : `Z${deployedContract.options.address.slice(1).toLowerCase()}`,
storageKeys: [
'0x0000000000000000000000000000000000000000000000000000000000000001',
],
},
],
- gasUsed: '0x866b',
+ gasUsed: '0x863a',
};
expect(accessList).toStrictEqual(accessListResult);
@@ -88,13 +90,15 @@ describe('contract', () => {
const accessListResult = {
accessList: [
{
- address: isNullish(deployedContract.options.address) ? deployedContract.options.address : `Z${deployedContract.options.address.slice(1).toLowerCase()}`,
+ address: isNullish(deployedContract.options.address)
+ ? deployedContract.options.address
+ : `Z${deployedContract.options.address.slice(1).toLowerCase()}`,
storageKeys: [
'0x0000000000000000000000000000000000000000000000000000000000000001',
],
},
],
- gasUsed: '0x68ab',
+ gasUsed: '0x68a0',
};
expect(accessList).toStrictEqual(accessListResult);
diff --git a/packages/web3-zond-contract/test/integration/contract_clone.test.ts b/packages/web3-zond-contract/test/integration/contract_clone.test.ts
index e17f30ee..e7e732be 100644
--- a/packages/web3-zond-contract/test/integration/contract_clone.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_clone.test.ts
@@ -34,7 +34,7 @@ describe('contract', () => {
arguments: ['My Greeting'],
};
- sendOptions = { from: acc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: acc.address /* gas: '1000000' */ };
});
it('should clone the contract but with same address', async () => {
diff --git a/packages/web3-zond-contract/test/integration/contract_defaults_extra.test.ts b/packages/web3-zond-contract/test/integration/contract_defaults_extra.test.ts
index 806260ec..977f1fe0 100644
--- a/packages/web3-zond-contract/test/integration/contract_defaults_extra.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_defaults_extra.test.ts
@@ -56,7 +56,7 @@ describe('contract defaults (extra)', () => {
arguments: ['My Greeting'],
};
- sendOptions = { from: acc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: acc.address /* gas: '1000000' */ };
});
afterEach(async () => {
@@ -142,7 +142,7 @@ describe('contract defaults (extra)', () => {
arguments: ['My Greeting'],
};
- sendOptions = { from: acc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: acc.address /* gas: '1000000' */ };
contract = await contract.deploy(deployOptions).send(sendOptions);
});
diff --git a/packages/web3-zond-contract/test/integration/contract_deploy.test.ts b/packages/web3-zond-contract/test/integration/contract_deploy.test.ts
index b6b7c588..a6c8fbd9 100644
--- a/packages/web3-zond-contract/test/integration/contract_deploy.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_deploy.test.ts
@@ -17,16 +17,16 @@ along with web3.js. If not, see .
import { Web3Zond } from '@theqrl/web3-zond';
import { Contract } from '../../src';
import { sleep } from '../shared_fixtures/utils';
-import { ERC721TokenAbi, ERC721TokenBytecode } from '../shared_fixtures/build/ERC721Token';
+import { ZRC721TokenAbi, ZRC721TokenBytecode } from '../shared_fixtures/build/ZRC721Token';
import { GreeterBytecode, GreeterAbi } from '../shared_fixtures/build/Greeter';
import { DeployRevertAbi, DeployRevertBytecode } from '../shared_fixtures/build/DeployRevert';
import {
getSystemTestProvider,
- //isWs,
+ // isWs,
createTempAccount,
createNewAccount,
signTxAndSendEIP1559,
- //sendFewSampleTxs,
+ // sendFewSampleTxs,
closeOpenConnection,
} from '../fixtures/system_test_utils';
@@ -108,11 +108,11 @@ describe('contract', () => {
expect(Number(estimatedGas)).toBeGreaterThan(0);
});
it('should return estimated gas of contract constructor without arguments', async () => {
- const estimatedGas = await new Contract(ERC721TokenAbi, undefined, {
+ const estimatedGas = await new Contract(ZRC721TokenAbi, undefined, {
provider: getSystemTestProvider(),
})
.deploy({
- data: ERC721TokenBytecode,
+ data: ZRC721TokenBytecode,
arguments: [],
})
.estimateGas({
@@ -186,13 +186,13 @@ describe('contract', () => {
// Deploy once again to trigger block mining to trigger confirmation
// We can send any other transaction as well
- //await contract.deploy(deployOptions).send(sendOptions);
+ // await contract.deploy(deployOptions).send(sendOptions);
- //await sendFewSampleTxs(3);
+ // await sendFewSampleTxs(3);
// Wait for some fraction of time to trigger the handler
// On http we use polling to get confirmation, so wait a bit longer
- //await sleep(isWs ? 500 : 2000);
+ // await sleep(isWs ? 500 : 2000);
// eslint-disable-next-line jest/no-standalone-expect
expect(confirmationHandler).toHaveBeenCalled();
diff --git a/packages/web3-zond-contract/test/integration/contract_empty_string.test.ts b/packages/web3-zond-contract/test/integration/contract_empty_string.test.ts
index a27dd1d5..3fbbc655 100644
--- a/packages/web3-zond-contract/test/integration/contract_empty_string.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_empty_string.test.ts
@@ -34,7 +34,7 @@ describe('request empty string from contract', () => {
arguments: [],
};
- sendOptions = { from: acc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: acc.address /* gas: '1000000' */ };
});
it('should fetch empty string', async () => {
diff --git a/packages/web3-zond-contract/test/integration/contract_events.test.ts b/packages/web3-zond-contract/test/integration/contract_events.test.ts
index 6f029f51..250c73b5 100644
--- a/packages/web3-zond-contract/test/integration/contract_events.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_events.test.ts
@@ -46,7 +46,7 @@ describe('contract', () => {
arguments: [10, 'string init value'],
};
- sendOptions = { from: acc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: acc.address /* gas: '1000000' */ };
contractDeployed = await contract.deploy(deployOptions).send(sendOptions);
});
diff --git a/packages/web3-zond-contract/test/integration/contract_filter_events.test.ts b/packages/web3-zond-contract/test/integration/contract_filter_events.test.ts
index 32cfdff6..b6145ddb 100644
--- a/packages/web3-zond-contract/test/integration/contract_filter_events.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_filter_events.test.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
import { toBigInt } from '@theqrl/web3-utils';
import { Contract } from '../../src';
-import { ERC20TokenAbi, ERC20TokenBytecode } from '../shared_fixtures/build/ERC20Token';
+import { ZRC20TokenAbi, ZRC20TokenBytecode } from '../shared_fixtures/build/ZRC20Token';
import { BasicAbi, BasicBytecode } from '../shared_fixtures/build/Basic';
import {
getSystemTestProvider,
@@ -29,9 +29,9 @@ import { EventLog } from '../../src/types';
const initialSupply = BigInt('5000000000');
describe('contract getPastEvent filter', () => {
- describe('erc20', () => {
- let contract: Contract;
- let contractDeployed: Contract;
+ describe('zrc20', () => {
+ let contract: Contract;
+ let contractDeployed: Contract;
let deployOptions: Record;
let sendOptions: Record;
let mainAcc: Record;
@@ -40,16 +40,16 @@ describe('contract getPastEvent filter', () => {
let toAcc3: Record;
beforeAll(async () => {
- contract = new Contract(ERC20TokenAbi, undefined, {
+ contract = new Contract(ZRC20TokenAbi, undefined, {
provider: getSystemTestProvider(),
});
deployOptions = {
- data: ERC20TokenBytecode,
+ data: ZRC20TokenBytecode,
arguments: [initialSupply],
};
mainAcc = await createTempAccount();
- sendOptions = { from: mainAcc.address, /*gas: '10000000'*/ };
+ sendOptions = { from: mainAcc.address /* gas: '10000000' */ };
contractDeployed = await contract.deploy(deployOptions).send(sendOptions);
toAcc1 = await createNewAccount();
toAcc2 = await createNewAccount();
@@ -172,7 +172,7 @@ describe('contract getPastEvent filter', () => {
arguments: [123, '123'],
};
mainAcc = await createTempAccount();
- sendOptions = { from: mainAcc.address, /*gas: '10000000'*/ };
+ sendOptions = { from: mainAcc.address /* gas: '10000000' */ };
contractDeployed = await contract.deploy(deployOptions).send(sendOptions);
await contractDeployed.methods
.firesMultiValueIndexedEvent('str1', 1, true)
diff --git a/packages/web3-zond-contract/test/integration/contract_methods.test.ts b/packages/web3-zond-contract/test/integration/contract_methods.test.ts
index c41cf24d..87325496 100644
--- a/packages/web3-zond-contract/test/integration/contract_methods.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_methods.test.ts
@@ -15,10 +15,10 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
import { ContractExecutionError } from '@theqrl/web3-errors';
+import { isNullish } from '@theqrl/web3-utils';
import { Contract } from '../../src';
import { BasicAbi, BasicBytecode } from '../shared_fixtures/build/Basic';
import { getSystemTestProvider, createTempAccount } from '../fixtures/system_test_utils';
-import { isNullish } from '@theqrl/web3-utils';
describe('contract', () => {
let contract: Contract;
@@ -108,15 +108,15 @@ describe('contract', () => {
it('should returns a receipt (EIP-1559, maxFeePerGas and maxPriorityFeePerGas specified)', async () => {
const tempAcc = await createTempAccount();
- const sendOptionsLocal = { from: tempAcc.address, /*gas: '1000000'*/ };
+ const sendOptionsLocal = { from: tempAcc.address /* gas: '1000000' */ };
const contractLocal = await contract.deploy(deployOptions).send(sendOptionsLocal);
const receipt = await contractLocal.methods
.setValues(1, 'string value', true)
.send({
...sendOptionsLocal,
- maxFeePerGas: '0x59682F00', // 1.5 Gwei
- maxPriorityFeePerGas: '0x1DCD6500', // .5 Gwei
+ maxFeePerGas: '0x59682F00', // 1.5 Gplanck
+ maxPriorityFeePerGas: '0x1DCD6500', // .5 Gplanck
type: '0x2',
});
@@ -153,14 +153,16 @@ describe('contract', () => {
).rejects.toMatchObject({
name: 'TransactionRevertedWithoutReasonError',
receipt: {
- cumulativeGasUsed: BigInt(21543),
+ cumulativeGasUsed: BigInt(21537),
from: acc.address,
- gasUsed: BigInt(21543),
+ gasUsed: BigInt(21537),
logs: [],
logsBloom:
'0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
status: BigInt(0),
- to: isNullish(contractDeployed.options.address) ? contractDeployed.options.address : `Z${contractDeployed.options.address.slice(1).toLowerCase()}`,
+ to: isNullish(contractDeployed.options.address)
+ ? contractDeployed.options.address
+ : `Z${contractDeployed.options.address.slice(1).toLowerCase()}`,
transactionIndex: BigInt(0),
type: BigInt(2),
},
diff --git a/packages/web3-zond-contract/test/integration/contract_methods_errors.test.ts b/packages/web3-zond-contract/test/integration/contract_methods_errors.test.ts
index e534c496..4130698b 100644
--- a/packages/web3-zond-contract/test/integration/contract_methods_errors.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_methods_errors.test.ts
@@ -44,7 +44,7 @@ describe('contract errors', () => {
data: ErrorsContractBytecode,
};
- const sendOptionsLocal = { from: acc.address, /*gas: '10000000'*/ };
+ const sendOptionsLocal = { from: acc.address /* gas: '10000000' */ };
deployedContract = await contract.deploy(deployOptions).send(sendOptionsLocal);
contract.setProvider(getSystemTestProvider());
diff --git a/packages/web3-zond-contract/test/integration/contract_negative_numbers.test.ts b/packages/web3-zond-contract/test/integration/contract_negative_numbers.test.ts
index 19af702b..99f52862 100644
--- a/packages/web3-zond-contract/test/integration/contract_negative_numbers.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_negative_numbers.test.ts
@@ -42,7 +42,7 @@ describe('Contract - NegativeNumbers.hyp', () => {
sendOptions = {
from: account.address,
type: '2',
- //gas: '1000000',
+ // gas: '1000000',
};
contractDeployed = await contract.deploy(deployOptions).send(sendOptions);
diff --git a/packages/web3-zond-contract/test/integration/contract_simple_overloaded.test.ts b/packages/web3-zond-contract/test/integration/contract_simple_overloaded.test.ts
index 8b44753a..5b3c086d 100644
--- a/packages/web3-zond-contract/test/integration/contract_simple_overloaded.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_simple_overloaded.test.ts
@@ -32,7 +32,7 @@ describe('SimpleOverloaded', () => {
.deploy({
data: SimpleOverloadedBytecode,
})
- .send({ from: mainAcc.address, /*gas: '10000000'*/ });
+ .send({ from: mainAcc.address /* gas: '10000000' */ });
});
it('should call getSecret with no args', async () => {
@@ -53,7 +53,7 @@ describe('SimpleOverloaded', () => {
it('should send setSecret with no args', async () => {
const transactionReceipt = await contractDeployed.methods
.setSecret()
- .send({ from: mainAcc.address, /*gas: '10000000'*/ });
+ .send({ from: mainAcc.address /* gas: '10000000' */ });
expect(transactionReceipt.status).toBe(BigInt(1));
const response = await contractDeployed.methods.getSecret(42, 'some string').call();
@@ -63,7 +63,7 @@ describe('SimpleOverloaded', () => {
it('should send setSecret with one args', async () => {
const transactionReceipt = await contractDeployed.methods
.setSecret(42)
- .send({ from: mainAcc.address, /*gas: '10000000'*/ });
+ .send({ from: mainAcc.address /* gas: '10000000' */ });
expect(transactionReceipt.status).toBe(BigInt(1));
const response = await contractDeployed.methods.getSecret(42, 'some string').call();
@@ -73,7 +73,7 @@ describe('SimpleOverloaded', () => {
it('should send setSecret with two args', async () => {
const transactionReceipt = await contractDeployed.methods
.setSecret(42, 'more string')
- .send({ from: mainAcc.address, /*gas: '10000000'*/ });
+ .send({ from: mainAcc.address /* gas: '10000000' */ });
expect(transactionReceipt.status).toBe(BigInt(1));
const response = await contractDeployed.methods.getSecret(42, 'some string').call();
@@ -87,14 +87,14 @@ describe('SimpleOverloaded', () => {
it('should send multicall with one arg', async () => {
const transactionReceipt = await contractDeployed.methods
.multicall(['0x5b9fdc30', '0x5b9fdc30', '0x5b9fdc30'])
- .send({ from: mainAcc.address, /*gas: '10000000'*/ });
+ .send({ from: mainAcc.address /* gas: '10000000' */ });
expect(transactionReceipt.status).toBe(BigInt(1));
});
it('should send multicall with two args', async () => {
const transactionReceipt = await contractDeployed.methods
.multicall(99999999999, ['0x5b9fdc30', '0x5b9fdc30', '0x5b9fdc30'])
- .send({ from: mainAcc.address, /*gas: '10000000'*/ });
+ .send({ from: mainAcc.address /* gas: '10000000' */ });
expect(transactionReceipt.status).toBe(BigInt(1));
});
});
diff --git a/packages/web3-zond-contract/test/integration/contract_erc20.test.ts b/packages/web3-zond-contract/test/integration/contract_zrc20.test.ts
similarity index 92%
rename from packages/web3-zond-contract/test/integration/contract_erc20.test.ts
rename to packages/web3-zond-contract/test/integration/contract_zrc20.test.ts
index 6e7142dd..07de8d52 100644
--- a/packages/web3-zond-contract/test/integration/contract_erc20.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_zrc20.test.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
import { LogsOutput } from '@theqrl/web3-types';
import { Contract } from '../../src';
-import { ERC20TokenAbi, ERC20TokenBytecode } from '../shared_fixtures/build/ERC20Token';
+import { ZRC20TokenAbi, ZRC20TokenBytecode } from '../shared_fixtures/build/ZRC20Token';
import {
getSystemTestProvider,
describeIf,
@@ -32,32 +32,32 @@ import { processAsync, toUpperCaseAddress } from '../shared_fixtures/utils';
const initialSupply = BigInt('5000000000');
describe('contract', () => {
- describe('erc20', () => {
- let contract: Contract;
+ describe('zrc20', () => {
+ let contract: Contract;
let deployOptions: Record;
let sendOptions: Record;
beforeAll(() => {
- contract = new Contract(ERC20TokenAbi, undefined, {
+ contract = new Contract(ZRC20TokenAbi, undefined, {
provider: getSystemTestProvider(),
});
deployOptions = {
- data: ERC20TokenBytecode,
+ data: ZRC20TokenBytecode,
arguments: [initialSupply],
};
});
it('should deploy the contract', async () => {
const acc = await createTempAccount();
- const sendOptionsLocal = { from: acc.address, /*gas: '10000000'*/ };
+ const sendOptionsLocal = { from: acc.address /* gas: '10000000' */ };
await expect(
contract.deploy(deployOptions).send(sendOptionsLocal),
).resolves.toBeDefined();
});
describe('contract instance', () => {
- let contractDeployed: Contract;
+ let contractDeployed: Contract;
let pkAccount: { address: string; seed: string };
let mainAcc: { address: string; seed: string };
const prepareForTransfer = async (value: string) => {
@@ -70,7 +70,7 @@ describe('contract', () => {
mainAcc = await createTempAccount();
pkAccount = await createNewAccount();
await refillAccount(mainAcc.address, pkAccount.address, '20000000000000000');
- sendOptions = { from: mainAcc.address, /*gas: '10000000'*/ };
+ sendOptions = { from: mainAcc.address /* gas: '10000000' */ };
contractDeployed = await contract.deploy(deployOptions).send(sendOptions);
});
describe('methods', () => {
@@ -184,13 +184,13 @@ describe('contract', () => {
.call(),
).toBe(transferFromValue);
- // increaseAllowance
+ // approve
await signAndSendContractMethod(
contract.provider,
contractDeployed.options.address as string,
- contractDeployed.methods.increaseAllowance(
+ contractDeployed.methods.approve(
tempAccount.address,
- transferFromValue,
+ transferFromValue + transferFromValue,
),
tempAccount.seed,
);
diff --git a/packages/web3-zond-contract/test/integration/contract_erc721.test.ts b/packages/web3-zond-contract/test/integration/contract_zrc721.test.ts
similarity index 95%
rename from packages/web3-zond-contract/test/integration/contract_erc721.test.ts
rename to packages/web3-zond-contract/test/integration/contract_zrc721.test.ts
index 34016504..57f43764 100644
--- a/packages/web3-zond-contract/test/integration/contract_erc721.test.ts
+++ b/packages/web3-zond-contract/test/integration/contract_zrc721.test.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
import { toBigInt } from '@theqrl/web3-utils';
import { Contract } from '../../src';
-import { ERC721TokenAbi, ERC721TokenBytecode } from '../shared_fixtures/build/ERC721Token';
+import { ZRC721TokenAbi, ZRC721TokenBytecode } from '../shared_fixtures/build/ZRC721Token';
import {
getSystemTestProvider,
describeIf,
@@ -30,24 +30,24 @@ import {
import { processAsync, toUpperCaseAddress } from '../shared_fixtures/utils';
describe('contract', () => {
- describe('erc721', () => {
- let contract: Contract;
- let contractDeployed: Contract;
+ describe('zrc721', () => {
+ let contract: Contract;
+ let contractDeployed: Contract;
let deployOptions: Record;
let sendOptions: Record;
beforeAll(async () => {
- contract = new Contract(ERC721TokenAbi, undefined, {
+ contract = new Contract(ZRC721TokenAbi, undefined, {
provider: getSystemTestProvider(),
});
const acc = await createTempAccount();
deployOptions = {
- data: ERC721TokenBytecode,
+ data: ZRC721TokenBytecode,
arguments: [],
};
- sendOptions = { from: acc.address, /*gas: '10000000'*/ };
+ sendOptions = { from: acc.address /* gas: '10000000' */ };
});
it('should deploy the contract', async () => {
@@ -65,7 +65,7 @@ describe('contract', () => {
});
beforeEach(async () => {
acc2 = await createTempAccount();
- sendOptions = { from: acc.address, /*gas: '10000000'*/ };
+ sendOptions = { from: acc.address /* gas: '10000000' */ };
contractDeployed = await contract.deploy(deployOptions).send(sendOptions);
});
diff --git a/packages/web3-zond-contract/test/integration/jest.config.js b/packages/web3-zond-contract/test/integration/jest.config.js
index a1bae319..1d958902 100644
--- a/packages/web3-zond-contract/test/integration/jest.config.js
+++ b/packages/web3-zond-contract/test/integration/jest.config.js
@@ -5,7 +5,7 @@ const base = require('../config/jest.config');
module.exports = {
...base,
setupFilesAfterEnv: ['/test/integration/setup.js'],
- testMatch: ['/test/integration/**/*.(spec|test).(js|ts)'],
+ testMatch: ['/test/integration/**/*.(spec|test).(js|ts)'],
/**
* restoreMocks [boolean]
*
diff --git a/packages/web3-zond-contract/test/integration/local_account/contract_deploy.test.ts b/packages/web3-zond-contract/test/integration/local_account/contract_deploy.test.ts
index 43b68370..de5127e2 100644
--- a/packages/web3-zond-contract/test/integration/local_account/contract_deploy.test.ts
+++ b/packages/web3-zond-contract/test/integration/local_account/contract_deploy.test.ts
@@ -86,20 +86,15 @@ describe('contract', () => {
).rejects.toThrow('Signer Error Signer Error gasLimit is too low');
});
- it.each(['0x2'])(
- 'should return estimated gas of contract method %p',
- async txType => {
- const contractDeployed = await contract.deploy(deployOptions).send(sendOptions);
-
- const estimatedGas = await contractDeployed.methods
- .setGreeting('Hello')
- .estimateGas({
- ...sendOptions,
- type: txType,
- });
- expect(Number(estimatedGas)).toBeGreaterThan(0);
- },
- );
+ it.each(['0x2'])('should return estimated gas of contract method %p', async txType => {
+ const contractDeployed = await contract.deploy(deployOptions).send(sendOptions);
+
+ const estimatedGas = await contractDeployed.methods.setGreeting('Hello').estimateGas({
+ ...sendOptions,
+ type: txType,
+ });
+ expect(Number(estimatedGas)).toBeGreaterThan(0);
+ });
it('should deploy the contract if data is provided at initiation', async () => {
const contractWithParams = new web3.zond.Contract(GreeterAbi, undefined, {
diff --git a/packages/web3-zond-contract/test/integration/local_account/contract_overloaded_methods.test.ts b/packages/web3-zond-contract/test/integration/local_account/contract_overloaded_methods.test.ts
index e9c05a74..a73e545b 100644
--- a/packages/web3-zond-contract/test/integration/local_account/contract_overloaded_methods.test.ts
+++ b/packages/web3-zond-contract/test/integration/local_account/contract_overloaded_methods.test.ts
@@ -21,27 +21,27 @@ import Web3 from '@theqrl/web3';
import { Web3Account } from '@theqrl/web3-zond-accounts';
import { utf8ToHex } from '@theqrl/web3-utils';
import { Contract, EventLog } from '../../../src';
-import { ERC721TokenAbi, ERC721TokenBytecode } from '../../shared_fixtures/build/ERC721Token';
+import { ZRC721TokenAbi, ZRC721TokenBytecode } from '../../shared_fixtures/build/ZRC721Token';
import { getSystemTestProvider, createLocalAccount } from '../../fixtures/system_test_utils';
import { toUpperCaseHex } from '../../shared_fixtures/utils';
-describe('contract ERC721 overloaded functions', () => {
- let contract: Contract;
+describe('contract ZRC721 overloaded functions', () => {
+ let contract: Contract;
let sendOptions: Record;
let deployOptions: Record;
let localAccount: Web3Account;
let web3: Web3;
- let contractDeployed: Contract;
+ let contractDeployed: Contract;
beforeAll(async () => {
web3 = new Web3(getSystemTestProvider());
localAccount = await createLocalAccount(web3);
- contract = new web3.zond.Contract(ERC721TokenAbi) as unknown as Contract<
- typeof ERC721TokenAbi
+ contract = new web3.zond.Contract(ZRC721TokenAbi) as unknown as Contract<
+ typeof ZRC721TokenAbi
>;
deployOptions = {
- data: ERC721TokenBytecode,
+ data: ZRC721TokenBytecode,
arguments: [],
};
diff --git a/packages/web3-zond-contract/test/integration/local_account/contract_erc20.test.ts b/packages/web3-zond-contract/test/integration/local_account/contract_zrc20.test.ts
similarity index 87%
rename from packages/web3-zond-contract/test/integration/local_account/contract_erc20.test.ts
rename to packages/web3-zond-contract/test/integration/local_account/contract_zrc20.test.ts
index e64e9c0e..67fe2320 100644
--- a/packages/web3-zond-contract/test/integration/local_account/contract_erc20.test.ts
+++ b/packages/web3-zond-contract/test/integration/local_account/contract_zrc20.test.ts
@@ -20,29 +20,29 @@ import Web3 from '@theqrl/web3';
// eslint-disable-next-line import/no-extraneous-dependencies
import { Web3Account } from '@theqrl/web3-zond-accounts';
import { Contract } from '../../../src';
-import { ERC20TokenAbi, ERC20TokenBytecode } from '../../shared_fixtures/build/ERC20Token';
+import { ZRC20TokenAbi, ZRC20TokenBytecode } from '../../shared_fixtures/build/ZRC20Token';
import { getSystemTestProvider, createLocalAccount } from '../../fixtures/system_test_utils';
const initialSupply = BigInt('5000000000');
describe('contract', () => {
- describe('erc20', () => {
- let contract: Contract;
+ describe('zrc20', () => {
+ let contract: Contract;
let sendOptions: Record;
let deployOptions: Record;
let localAccount: Web3Account;
let web3: Web3;
- let contractDeployed: Contract;
+ let contractDeployed: Contract;
beforeAll(async () => {
web3 = new Web3(getSystemTestProvider());
localAccount = await createLocalAccount(web3);
- contract = new web3.zond.Contract(ERC20TokenAbi) as unknown as Contract<
- typeof ERC20TokenAbi
+ contract = new web3.zond.Contract(ZRC20TokenAbi) as unknown as Contract<
+ typeof ZRC20TokenAbi
>;
deployOptions = {
- data: ERC20TokenBytecode,
+ data: ZRC20TokenBytecode,
arguments: [initialSupply],
};
@@ -97,7 +97,7 @@ describe('contract', () => {
it.each(['0x2'])('should increase allowance %p', async type => {
const value = BigInt(10);
- const extraAmount = BigInt(4);
+ const newAmount = BigInt(20);
const tempAccount = await createLocalAccount(web3);
// approve
@@ -112,9 +112,9 @@ describe('contract', () => {
.call(),
).toBe(value);
- // increaseAllowance
+ // approve
await contractDeployed.methods
- .increaseAllowance(tempAccount.address, extraAmount)
+ .approve(tempAccount.address, newAmount)
.send({ ...sendOptions, from: localAccount.address, type, gas: '2000000' });
// check allowance
@@ -122,7 +122,7 @@ describe('contract', () => {
await contractDeployed.methods
.allowance(localAccount.address, tempAccount.address)
.call(),
- ).toBe(value + extraAmount);
+ ).toBe(newAmount);
});
});
});
diff --git a/packages/web3-zond-contract/test/integration/local_account/contract_erc721.test.ts b/packages/web3-zond-contract/test/integration/local_account/contract_zrc721.test.ts
similarity index 78%
rename from packages/web3-zond-contract/test/integration/local_account/contract_erc721.test.ts
rename to packages/web3-zond-contract/test/integration/local_account/contract_zrc721.test.ts
index b23c0c4e..950dbbc8 100644
--- a/packages/web3-zond-contract/test/integration/local_account/contract_erc721.test.ts
+++ b/packages/web3-zond-contract/test/integration/local_account/contract_zrc721.test.ts
@@ -20,27 +20,27 @@ import Web3 from '@theqrl/web3';
// eslint-disable-next-line import/no-extraneous-dependencies
import { Web3Account } from '@theqrl/web3-zond-accounts';
import { Contract, EventLog } from '../../../src';
-import { ERC721TokenAbi, ERC721TokenBytecode } from '../../shared_fixtures/build/ERC721Token';
+import { ZRC721TokenAbi, ZRC721TokenBytecode } from '../../shared_fixtures/build/ZRC721Token';
import { getSystemTestProvider, createLocalAccount } from '../../fixtures/system_test_utils';
import { toUpperCaseHex } from '../../shared_fixtures/utils';
describe('contract', () => {
- describe('erc721', () => {
- let contract: Contract;
+ describe('zrc721', () => {
+ let contract: Contract;
let sendOptions: Record;
let deployOptions: Record;
let localAccount: Web3Account;
let web3: Web3;
- let contractDeployed: Contract;
+ let contractDeployed: Contract;
beforeAll(async () => {
web3 = new Web3(getSystemTestProvider());
localAccount = await createLocalAccount(web3);
- contract = new web3.zond.Contract(ERC721TokenAbi) as unknown as Contract<
- typeof ERC721TokenAbi
+ contract = new web3.zond.Contract(ZRC721TokenAbi) as unknown as Contract<
+ typeof ZRC721TokenAbi
>;
deployOptions = {
- data: ERC721TokenBytecode,
+ data: ZRC721TokenBytecode,
arguments: [],
};
@@ -130,36 +130,33 @@ describe('contract', () => {
).toBe(toUpperCaseHex(toAccount.address));
});
- it.each(['0x2'])(
- 'should set approve for all item with local wallet %p',
- async type => {
- const tempAccount = await createLocalAccount(web3);
- const toAccount = await createLocalAccount(web3);
+ it.each(['0x2'])('should set approve for all item with local wallet %p', async type => {
+ const tempAccount = await createLocalAccount(web3);
+ const toAccount = await createLocalAccount(web3);
- await contractDeployed.methods.setApprovalForAll(toAccount.address, true).send({
- ...sendOptions,
- type,
- from: tempAccount.address,
- });
+ await contractDeployed.methods.setApprovalForAll(toAccount.address, true).send({
+ ...sendOptions,
+ type,
+ from: tempAccount.address,
+ });
- expect(
- await contractDeployed.methods
- .isApprovedForAll(tempAccount.address, toAccount.address)
- .call(),
- ).toBe(true);
+ expect(
+ await contractDeployed.methods
+ .isApprovedForAll(tempAccount.address, toAccount.address)
+ .call(),
+ ).toBe(true);
- await contractDeployed.methods.setApprovalForAll(toAccount.address, false).send({
- ...sendOptions,
- type,
- from: tempAccount.address,
- });
+ await contractDeployed.methods.setApprovalForAll(toAccount.address, false).send({
+ ...sendOptions,
+ type,
+ from: tempAccount.address,
+ });
- expect(
- await contractDeployed.methods
- .isApprovedForAll(tempAccount.address, toAccount.address)
- .call(),
- ).toBe(false);
- },
- );
+ expect(
+ await contractDeployed.methods
+ .isApprovedForAll(tempAccount.address, toAccount.address)
+ .call(),
+ ).toBe(false);
+ });
});
});
diff --git a/packages/web3-zond-contract/test/integration/setup.js b/packages/web3-zond-contract/test/integration/setup.js
index 0b1a2152..0e837f30 100644
--- a/packages/web3-zond-contract/test/integration/setup.js
+++ b/packages/web3-zond-contract/test/integration/setup.js
@@ -20,6 +20,6 @@ along with web3.js. If not, see .
require('../config/setup');
const jestTimeout = String(process.env.WEB3_SYSTEM_TEST_PROVIDER).includes('ipc') ? 150000 : 150000;
-//const jestTimeout = String(process.env.WEB3_SYSTEM_TEST_PROVIDER).includes('ipc') ? 35000 : 15000;
+// const jestTimeout = String(process.env.WEB3_SYSTEM_TEST_PROVIDER).includes('ipc') ? 35000 : 15000;
jest.setTimeout(jestTimeout);
diff --git a/packages/web3-zond-contract/test/unit/contract.test.ts b/packages/web3-zond-contract/test/unit/contract.test.ts
index cf227052..2ac82b28 100644
--- a/packages/web3-zond-contract/test/unit/contract.test.ts
+++ b/packages/web3-zond-contract/test/unit/contract.test.ts
@@ -16,7 +16,13 @@ along with web3.js. If not, see .
*/
import * as zond from '@theqrl/web3-zond';
-import { ValidChains, Hardfork, AccessListResult, Address, ZOND_DATA_FORMAT } from '@theqrl/web3-types';
+import {
+ ValidChains,
+ Hardfork,
+ AccessListResult,
+ Address,
+ ZOND_DATA_FORMAT,
+} from '@theqrl/web3-types';
import { Web3ContractError } from '@theqrl/web3-errors';
import { Web3Context } from '@theqrl/web3-core';
@@ -25,8 +31,8 @@ import { sampleStorageContractABI } from '../fixtures/storage';
import { GreeterAbi, GreeterBytecode } from '../shared_fixtures/build/Greeter';
import { AllGetPastEventsData, getLogsData, getPastEventsData } from '../fixtures/unitTestFixtures';
import { getSystemTestProvider, isHttp, itIf } from '../fixtures/system_test_utils';
-import { erc721Abi } from '../fixtures/erc721';
-import { ERC20TokenAbi } from '../shared_fixtures/build/ERC20Token';
+import { zrc721Abi } from '../fixtures/zrc721';
+import { ZRC20TokenAbi } from '../shared_fixtures/build/ZRC20Token';
import { processAsync } from '../shared_fixtures/utils';
jest.mock('@theqrl/web3-zond');
@@ -738,13 +744,13 @@ describe('Contract', () => {
{ config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
);
- contract.options.jsonInterface = ERC20TokenAbi;
- expect(contract.options.jsonInterface).toMatchObject(ERC20TokenAbi);
+ contract.options.jsonInterface = ZRC20TokenAbi;
+ expect(contract.options.jsonInterface).toMatchObject(ZRC20TokenAbi);
});
it('should be able to call a payable method', async () => {
const contract = new Contract(
- erc721Abi,
+ zrc721Abi,
'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123' },
{ config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
@@ -769,7 +775,7 @@ describe('Contract', () => {
it('should be able to call a payable method with data as a contract init option', async () => {
const contract = new Contract(
- erc721Abi,
+ zrc721Abi,
'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123', dataInputFill: 'data' },
{ config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
@@ -794,7 +800,7 @@ describe('Contract', () => {
it('should be able to call a payable method with input as a contract init option', async () => {
const contract = new Contract(
- erc721Abi,
+ zrc721Abi,
'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123', dataInputFill: 'input' },
{ config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
@@ -827,7 +833,7 @@ describe('Contract', () => {
},
});
const contract = new Contract(
- erc721Abi,
+ zrc721Abi,
'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123' },
web3Context,
@@ -860,7 +866,7 @@ describe('Contract', () => {
},
});
const contract = new Contract(
- erc721Abi,
+ zrc721Abi,
'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123' },
web3Context,
@@ -899,7 +905,7 @@ describe('Contract', () => {
const spyGetLogs = jest
.spyOn(zond, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toStrictEqual(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toStrictEqual(getLogsData.request.fromBlock);
expect(_params.toBlock).toStrictEqual(getLogsData.request.toBlock);
expect(_params.topics).toStrictEqual(getLogsData.request.topics);
@@ -940,7 +946,7 @@ describe('Contract', () => {
const spyGetLogs = jest
.spyOn(zond, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toStrictEqual(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toStrictEqual(getLogsData.request.fromBlock);
expect(_params.toBlock).toStrictEqual(getLogsData.request.toBlock);
@@ -981,7 +987,7 @@ describe('Contract', () => {
const spyGetLogs = jest
.spyOn(zond, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toStrictEqual(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toBeUndefined();
expect(_params.toBlock).toBeUndefined();
expect(_params.topics).toBeUndefined();
@@ -1017,7 +1023,7 @@ describe('Contract', () => {
const spyGetLogs = jest
.spyOn(zond, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toStrictEqual(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toBeUndefined();
expect(_params.toBlock).toBeUndefined();
expect(_params.topics).toBeUndefined();
@@ -1084,7 +1090,7 @@ describe('Contract', () => {
const spyGetLogs = jest
.spyOn(zond, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toStrictEqual(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toBeUndefined();
expect(_params.toBlock).toBeUndefined();
@@ -1166,7 +1172,7 @@ describe('Contract', () => {
const result = deploy.encodeABI();
expect(result).toBe(
- '0x60806040523480156200001157600080fd5b5060405162000ed038038062000ed08339818101604052810190620000379190620001ea565b806001908162000048919062000486565b5060008081905550506200056d565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000c08262000075565b810181811067ffffffffffffffff82111715620000e257620000e162000086565b5b80604052505050565b6000620000f762000057565b9050620001058282620000b5565b919050565b600067ffffffffffffffff82111562000128576200012762000086565b5b620001338262000075565b9050602081019050919050565b60005b838110156200016057808201518184015260208101905062000143565b60008484015250505050565b6000620001836200017d846200010a565b620000eb565b905082815260208101848484011115620001a257620001a162000070565b5b620001af84828562000140565b509392505050565b600082601f830112620001cf57620001ce6200006b565b5b8151620001e18482602086016200016c565b91505092915050565b60006020828403121562000203576200020262000061565b5b600082015167ffffffffffffffff81111562000224576200022362000066565b5b6200023284828501620001b7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028e57607f821691505b602082108103620002a457620002a362000246565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200030e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002cf565b6200031a8683620002cf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000367620003616200035b8462000332565b6200033c565b62000332565b9050919050565b6000819050919050565b620003838362000346565b6200039b62000392826200036e565b848454620002dc565b825550505050565b600090565b620003b2620003a3565b620003bf81848462000378565b505050565b5b81811015620003e757620003db600082620003a8565b600181019050620003c5565b5050565b601f82111562000436576200040081620002aa565b6200040b84620002bf565b810160208510156200041b578190505b620004336200042a85620002bf565b830182620003c4565b50505b505050565b600082821c905092915050565b60006200045b600019846008026200043b565b1980831691505092915050565b600062000476838362000448565b9150826002028217905092915050565b62000491826200023b565b67ffffffffffffffff811115620004ad57620004ac62000086565b5b620004b9825462000275565b620004c6828285620003eb565b600060209050601f831160018114620004fe5760008415620004e9578287015190505b620004f5858262000468565b86555062000565565b601f1984166200050e86620002aa565b60005b82811015620005385784890151825560018201915060208501945060208101905062000511565b8683101562000558578489015162000554601f89168262000448565b8355505b6001600288020188555050505b505050505050565b610953806200057d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610077578063d09de08a14610095575b600080fd5b610060600480360381019061005b91906103c0565b61009f565b60405161006e9291906104a3565b60405180910390f35b61007f6101bd565b60405161008c91906104d3565b60405180910390f35b61009d61024f565b005b600060607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d59291906105ee565b60405180910390a182600190816100ec91906107c6565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e600160405161011d9190610898565b60405180910390a160018080805461013490610524565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610524565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b5050505050905091509150915091565b6060600180546101cc90610524565b80601f01602080910402602001604051908101604052809291908181526020018280546101f890610524565b80156102455780601f1061021a57610100808354040283529160200191610245565b820191906000526020600020905b81548152906001019060200180831161022857829003601f168201915b5050505050905090565b600160005461025e91906108e9565b600081905550565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102cd82610284565b810181811067ffffffffffffffff821117156102ec576102eb610295565b5b80604052505050565b60006102ff610266565b905061030b82826102c4565b919050565b600067ffffffffffffffff82111561032b5761032a610295565b5b61033482610284565b9050602081019050919050565b82818337600083830152505050565b600061036361035e84610310565b6102f5565b90508281526020810184848401111561037f5761037e61027f565b5b61038a848285610341565b509392505050565b600082601f8301126103a7576103a661027a565b5b81356103b7848260208601610350565b91505092915050565b6000602082840312156103d6576103d5610270565b5b600082013567ffffffffffffffff8111156103f4576103f3610275565b5b61040084828501610392565b91505092915050565b60008115159050919050565b61041e81610409565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561045e578082015181840152602081019050610443565b60008484015250505050565b600061047582610424565b61047f818561042f565b935061048f818560208601610440565b61049881610284565b840191505092915050565b60006040820190506104b86000830185610415565b81810360208301526104ca818461046a565b90509392505050565b600060208201905081810360008301526104ed818461046a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061053c57607f821691505b60208210810361054f5761054e6104f5565b5b50919050565b60008190508160005260206000209050919050565b6000815461057781610524565b610581818661042f565b9450600182166000811461059c57600181146105b2576105e5565b60ff1983168652811515602002860193506105e5565b6105bb85610555565b60005b838110156105dd578154818901526001820191506020810190506105be565b808801955050505b50505092915050565b60006040820190508181036000830152610608818561056a565b9050818103602083015261061c818461046a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026106727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610635565b61067c8683610635565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006106c36106be6106b984610694565b61069e565b610694565b9050919050565b6000819050919050565b6106dd836106a8565b6106f16106e9826106ca565b848454610642565b825550505050565b600090565b6107066106f9565b6107118184846106d4565b505050565b5b818110156107355761072a6000826106fe565b600181019050610717565b5050565b601f82111561077a5761074b81610555565b61075484610625565b81016020851015610763578190505b61077761076f85610625565b830182610716565b50505b505050565b600082821c905092915050565b600061079d6000198460080261077f565b1980831691505092915050565b60006107b6838361078c565b9150826002028217905092915050565b6107cf82610424565b67ffffffffffffffff8111156107e8576107e7610295565b5b6107f28254610524565b6107fd828285610739565b600060209050601f831160018114610830576000841561081e578287015190505b61082885826107aa565b865550610890565b601f19841661083e86610555565b60005b8281101561086657848901518255600182019150602085019450602081019050610841565b86831015610883578489015161087f601f89168261078c565b8355505b6001600288020188555050505b505050505050565b600060208201905081810360008301526108b2818461056a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108f482610694565b91506108ff83610694565b9250828201905080821115610917576109166108ba565b5b9291505056fea26469706673582212207e5ba44159ffb37af8e8a9e7c5b6fb5ce81ea195b62ae3ac36288f2cf72c18a764736f6c634300081000330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
+ '0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
spyTx.mockClear();
@@ -1189,7 +1195,7 @@ describe('Contract', () => {
expect(_tx.to).toBeUndefined();
expect(_tx.from).toStrictEqual(sendOptions.from);
expect(_tx.input).toBe(
- '0x60806040523480156200001157600080fd5b5060405162000ed038038062000ed08339818101604052810190620000379190620001ea565b806001908162000048919062000486565b5060008081905550506200056d565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000c08262000075565b810181811067ffffffffffffffff82111715620000e257620000e162000086565b5b80604052505050565b6000620000f762000057565b9050620001058282620000b5565b919050565b600067ffffffffffffffff82111562000128576200012762000086565b5b620001338262000075565b9050602081019050919050565b60005b838110156200016057808201518184015260208101905062000143565b60008484015250505050565b6000620001836200017d846200010a565b620000eb565b905082815260208101848484011115620001a257620001a162000070565b5b620001af84828562000140565b509392505050565b600082601f830112620001cf57620001ce6200006b565b5b8151620001e18482602086016200016c565b91505092915050565b60006020828403121562000203576200020262000061565b5b600082015167ffffffffffffffff81111562000224576200022362000066565b5b6200023284828501620001b7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028e57607f821691505b602082108103620002a457620002a362000246565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200030e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002cf565b6200031a8683620002cf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000367620003616200035b8462000332565b6200033c565b62000332565b9050919050565b6000819050919050565b620003838362000346565b6200039b62000392826200036e565b848454620002dc565b825550505050565b600090565b620003b2620003a3565b620003bf81848462000378565b505050565b5b81811015620003e757620003db600082620003a8565b600181019050620003c5565b5050565b601f82111562000436576200040081620002aa565b6200040b84620002bf565b810160208510156200041b578190505b620004336200042a85620002bf565b830182620003c4565b50505b505050565b600082821c905092915050565b60006200045b600019846008026200043b565b1980831691505092915050565b600062000476838362000448565b9150826002028217905092915050565b62000491826200023b565b67ffffffffffffffff811115620004ad57620004ac62000086565b5b620004b9825462000275565b620004c6828285620003eb565b600060209050601f831160018114620004fe5760008415620004e9578287015190505b620004f5858262000468565b86555062000565565b601f1984166200050e86620002aa565b60005b82811015620005385784890151825560018201915060208501945060208101905062000511565b8683101562000558578489015162000554601f89168262000448565b8355505b6001600288020188555050505b505050505050565b610953806200057d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610077578063d09de08a14610095575b600080fd5b610060600480360381019061005b91906103c0565b61009f565b60405161006e9291906104a3565b60405180910390f35b61007f6101bd565b60405161008c91906104d3565b60405180910390f35b61009d61024f565b005b600060607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d59291906105ee565b60405180910390a182600190816100ec91906107c6565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e600160405161011d9190610898565b60405180910390a160018080805461013490610524565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610524565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b5050505050905091509150915091565b6060600180546101cc90610524565b80601f01602080910402602001604051908101604052809291908181526020018280546101f890610524565b80156102455780601f1061021a57610100808354040283529160200191610245565b820191906000526020600020905b81548152906001019060200180831161022857829003601f168201915b5050505050905090565b600160005461025e91906108e9565b600081905550565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102cd82610284565b810181811067ffffffffffffffff821117156102ec576102eb610295565b5b80604052505050565b60006102ff610266565b905061030b82826102c4565b919050565b600067ffffffffffffffff82111561032b5761032a610295565b5b61033482610284565b9050602081019050919050565b82818337600083830152505050565b600061036361035e84610310565b6102f5565b90508281526020810184848401111561037f5761037e61027f565b5b61038a848285610341565b509392505050565b600082601f8301126103a7576103a661027a565b5b81356103b7848260208601610350565b91505092915050565b6000602082840312156103d6576103d5610270565b5b600082013567ffffffffffffffff8111156103f4576103f3610275565b5b61040084828501610392565b91505092915050565b60008115159050919050565b61041e81610409565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561045e578082015181840152602081019050610443565b60008484015250505050565b600061047582610424565b61047f818561042f565b935061048f818560208601610440565b61049881610284565b840191505092915050565b60006040820190506104b86000830185610415565b81810360208301526104ca818461046a565b90509392505050565b600060208201905081810360008301526104ed818461046a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061053c57607f821691505b60208210810361054f5761054e6104f5565b5b50919050565b60008190508160005260206000209050919050565b6000815461057781610524565b610581818661042f565b9450600182166000811461059c57600181146105b2576105e5565b60ff1983168652811515602002860193506105e5565b6105bb85610555565b60005b838110156105dd578154818901526001820191506020810190506105be565b808801955050505b50505092915050565b60006040820190508181036000830152610608818561056a565b9050818103602083015261061c818461046a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026106727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610635565b61067c8683610635565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006106c36106be6106b984610694565b61069e565b610694565b9050919050565b6000819050919050565b6106dd836106a8565b6106f16106e9826106ca565b848454610642565b825550505050565b600090565b6107066106f9565b6107118184846106d4565b505050565b5b818110156107355761072a6000826106fe565b600181019050610717565b5050565b601f82111561077a5761074b81610555565b61075484610625565b81016020851015610763578190505b61077761076f85610625565b830182610716565b50505b505050565b600082821c905092915050565b600061079d6000198460080261077f565b1980831691505092915050565b60006107b6838361078c565b9150826002028217905092915050565b6107cf82610424565b67ffffffffffffffff8111156107e8576107e7610295565b5b6107f28254610524565b6107fd828285610739565b600060209050601f831160018114610830576000841561081e578287015190505b61082885826107aa565b865550610890565b601f19841661083e86610555565b60005b8281101561086657848901518255600182019150602085019450602081019050610841565b86831015610883578489015161087f601f89168261078c565b8355505b6001600288020188555050505b505050505050565b600060208201905081810360008301526108b2818461056a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108f482610694565b91506108ff83610694565b9250828201905080821115610917576109166108ba565b5b9291505056fea26469706673582212207e5ba44159ffb37af8e8a9e7c5b6fb5ce81ea195b62ae3ac36288f2cf72c18a764736f6c634300081000330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
+ '0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
expect(returnFormat).toBe(ZOND_DATA_FORMAT);
@@ -1226,7 +1232,7 @@ describe('Contract', () => {
expect(_tx.to).toBeUndefined();
expect(_tx.from).toStrictEqual(sendOptions.from);
expect(_tx.data).toBe(
- '0x60806040523480156200001157600080fd5b5060405162000ed038038062000ed08339818101604052810190620000379190620001ea565b806001908162000048919062000486565b5060008081905550506200056d565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000c08262000075565b810181811067ffffffffffffffff82111715620000e257620000e162000086565b5b80604052505050565b6000620000f762000057565b9050620001058282620000b5565b919050565b600067ffffffffffffffff82111562000128576200012762000086565b5b620001338262000075565b9050602081019050919050565b60005b838110156200016057808201518184015260208101905062000143565b60008484015250505050565b6000620001836200017d846200010a565b620000eb565b905082815260208101848484011115620001a257620001a162000070565b5b620001af84828562000140565b509392505050565b600082601f830112620001cf57620001ce6200006b565b5b8151620001e18482602086016200016c565b91505092915050565b60006020828403121562000203576200020262000061565b5b600082015167ffffffffffffffff81111562000224576200022362000066565b5b6200023284828501620001b7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028e57607f821691505b602082108103620002a457620002a362000246565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200030e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002cf565b6200031a8683620002cf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000367620003616200035b8462000332565b6200033c565b62000332565b9050919050565b6000819050919050565b620003838362000346565b6200039b62000392826200036e565b848454620002dc565b825550505050565b600090565b620003b2620003a3565b620003bf81848462000378565b505050565b5b81811015620003e757620003db600082620003a8565b600181019050620003c5565b5050565b601f82111562000436576200040081620002aa565b6200040b84620002bf565b810160208510156200041b578190505b620004336200042a85620002bf565b830182620003c4565b50505b505050565b600082821c905092915050565b60006200045b600019846008026200043b565b1980831691505092915050565b600062000476838362000448565b9150826002028217905092915050565b62000491826200023b565b67ffffffffffffffff811115620004ad57620004ac62000086565b5b620004b9825462000275565b620004c6828285620003eb565b600060209050601f831160018114620004fe5760008415620004e9578287015190505b620004f5858262000468565b86555062000565565b601f1984166200050e86620002aa565b60005b82811015620005385784890151825560018201915060208501945060208101905062000511565b8683101562000558578489015162000554601f89168262000448565b8355505b6001600288020188555050505b505050505050565b610953806200057d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610077578063d09de08a14610095575b600080fd5b610060600480360381019061005b91906103c0565b61009f565b60405161006e9291906104a3565b60405180910390f35b61007f6101bd565b60405161008c91906104d3565b60405180910390f35b61009d61024f565b005b600060607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d59291906105ee565b60405180910390a182600190816100ec91906107c6565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e600160405161011d9190610898565b60405180910390a160018080805461013490610524565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610524565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b5050505050905091509150915091565b6060600180546101cc90610524565b80601f01602080910402602001604051908101604052809291908181526020018280546101f890610524565b80156102455780601f1061021a57610100808354040283529160200191610245565b820191906000526020600020905b81548152906001019060200180831161022857829003601f168201915b5050505050905090565b600160005461025e91906108e9565b600081905550565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102cd82610284565b810181811067ffffffffffffffff821117156102ec576102eb610295565b5b80604052505050565b60006102ff610266565b905061030b82826102c4565b919050565b600067ffffffffffffffff82111561032b5761032a610295565b5b61033482610284565b9050602081019050919050565b82818337600083830152505050565b600061036361035e84610310565b6102f5565b90508281526020810184848401111561037f5761037e61027f565b5b61038a848285610341565b509392505050565b600082601f8301126103a7576103a661027a565b5b81356103b7848260208601610350565b91505092915050565b6000602082840312156103d6576103d5610270565b5b600082013567ffffffffffffffff8111156103f4576103f3610275565b5b61040084828501610392565b91505092915050565b60008115159050919050565b61041e81610409565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561045e578082015181840152602081019050610443565b60008484015250505050565b600061047582610424565b61047f818561042f565b935061048f818560208601610440565b61049881610284565b840191505092915050565b60006040820190506104b86000830185610415565b81810360208301526104ca818461046a565b90509392505050565b600060208201905081810360008301526104ed818461046a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061053c57607f821691505b60208210810361054f5761054e6104f5565b5b50919050565b60008190508160005260206000209050919050565b6000815461057781610524565b610581818661042f565b9450600182166000811461059c57600181146105b2576105e5565b60ff1983168652811515602002860193506105e5565b6105bb85610555565b60005b838110156105dd578154818901526001820191506020810190506105be565b808801955050505b50505092915050565b60006040820190508181036000830152610608818561056a565b9050818103602083015261061c818461046a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026106727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610635565b61067c8683610635565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006106c36106be6106b984610694565b61069e565b610694565b9050919050565b6000819050919050565b6106dd836106a8565b6106f16106e9826106ca565b848454610642565b825550505050565b600090565b6107066106f9565b6107118184846106d4565b505050565b5b818110156107355761072a6000826106fe565b600181019050610717565b5050565b601f82111561077a5761074b81610555565b61075484610625565b81016020851015610763578190505b61077761076f85610625565b830182610716565b50505b505050565b600082821c905092915050565b600061079d6000198460080261077f565b1980831691505092915050565b60006107b6838361078c565b9150826002028217905092915050565b6107cf82610424565b67ffffffffffffffff8111156107e8576107e7610295565b5b6107f28254610524565b6107fd828285610739565b600060209050601f831160018114610830576000841561081e578287015190505b61082885826107aa565b865550610890565b601f19841661083e86610555565b60005b8281101561086657848901518255600182019150602085019450602081019050610841565b86831015610883578489015161087f601f89168261078c565b8355505b6001600288020188555050505b505050505050565b600060208201905081810360008301526108b2818461056a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108f482610694565b91506108ff83610694565b9250828201905080821115610917576109166108ba565b5b9291505056fea26469706673582212207e5ba44159ffb37af8e8a9e7c5b6fb5ce81ea195b62ae3ac36288f2cf72c18a764736f6c634300081000330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
+ '0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
expect(returnFormat).toBe(ZOND_DATA_FORMAT);
@@ -1269,10 +1275,10 @@ describe('Contract', () => {
expect(_tx.to).toBeUndefined();
expect(_tx.from).toStrictEqual(sendOptions.from);
expect(_tx.data).toBe(
- '0x60806040523480156200001157600080fd5b5060405162000ed038038062000ed08339818101604052810190620000379190620001ea565b806001908162000048919062000486565b5060008081905550506200056d565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000c08262000075565b810181811067ffffffffffffffff82111715620000e257620000e162000086565b5b80604052505050565b6000620000f762000057565b9050620001058282620000b5565b919050565b600067ffffffffffffffff82111562000128576200012762000086565b5b620001338262000075565b9050602081019050919050565b60005b838110156200016057808201518184015260208101905062000143565b60008484015250505050565b6000620001836200017d846200010a565b620000eb565b905082815260208101848484011115620001a257620001a162000070565b5b620001af84828562000140565b509392505050565b600082601f830112620001cf57620001ce6200006b565b5b8151620001e18482602086016200016c565b91505092915050565b60006020828403121562000203576200020262000061565b5b600082015167ffffffffffffffff81111562000224576200022362000066565b5b6200023284828501620001b7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028e57607f821691505b602082108103620002a457620002a362000246565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200030e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002cf565b6200031a8683620002cf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000367620003616200035b8462000332565b6200033c565b62000332565b9050919050565b6000819050919050565b620003838362000346565b6200039b62000392826200036e565b848454620002dc565b825550505050565b600090565b620003b2620003a3565b620003bf81848462000378565b505050565b5b81811015620003e757620003db600082620003a8565b600181019050620003c5565b5050565b601f82111562000436576200040081620002aa565b6200040b84620002bf565b810160208510156200041b578190505b620004336200042a85620002bf565b830182620003c4565b50505b505050565b600082821c905092915050565b60006200045b600019846008026200043b565b1980831691505092915050565b600062000476838362000448565b9150826002028217905092915050565b62000491826200023b565b67ffffffffffffffff811115620004ad57620004ac62000086565b5b620004b9825462000275565b620004c6828285620003eb565b600060209050601f831160018114620004fe5760008415620004e9578287015190505b620004f5858262000468565b86555062000565565b601f1984166200050e86620002aa565b60005b82811015620005385784890151825560018201915060208501945060208101905062000511565b8683101562000558578489015162000554601f89168262000448565b8355505b6001600288020188555050505b505050505050565b610953806200057d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610077578063d09de08a14610095575b600080fd5b610060600480360381019061005b91906103c0565b61009f565b60405161006e9291906104a3565b60405180910390f35b61007f6101bd565b60405161008c91906104d3565b60405180910390f35b61009d61024f565b005b600060607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d59291906105ee565b60405180910390a182600190816100ec91906107c6565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e600160405161011d9190610898565b60405180910390a160018080805461013490610524565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610524565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b5050505050905091509150915091565b6060600180546101cc90610524565b80601f01602080910402602001604051908101604052809291908181526020018280546101f890610524565b80156102455780601f1061021a57610100808354040283529160200191610245565b820191906000526020600020905b81548152906001019060200180831161022857829003601f168201915b5050505050905090565b600160005461025e91906108e9565b600081905550565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102cd82610284565b810181811067ffffffffffffffff821117156102ec576102eb610295565b5b80604052505050565b60006102ff610266565b905061030b82826102c4565b919050565b600067ffffffffffffffff82111561032b5761032a610295565b5b61033482610284565b9050602081019050919050565b82818337600083830152505050565b600061036361035e84610310565b6102f5565b90508281526020810184848401111561037f5761037e61027f565b5b61038a848285610341565b509392505050565b600082601f8301126103a7576103a661027a565b5b81356103b7848260208601610350565b91505092915050565b6000602082840312156103d6576103d5610270565b5b600082013567ffffffffffffffff8111156103f4576103f3610275565b5b61040084828501610392565b91505092915050565b60008115159050919050565b61041e81610409565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561045e578082015181840152602081019050610443565b60008484015250505050565b600061047582610424565b61047f818561042f565b935061048f818560208601610440565b61049881610284565b840191505092915050565b60006040820190506104b86000830185610415565b81810360208301526104ca818461046a565b90509392505050565b600060208201905081810360008301526104ed818461046a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061053c57607f821691505b60208210810361054f5761054e6104f5565b5b50919050565b60008190508160005260206000209050919050565b6000815461057781610524565b610581818661042f565b9450600182166000811461059c57600181146105b2576105e5565b60ff1983168652811515602002860193506105e5565b6105bb85610555565b60005b838110156105dd578154818901526001820191506020810190506105be565b808801955050505b50505092915050565b60006040820190508181036000830152610608818561056a565b9050818103602083015261061c818461046a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026106727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610635565b61067c8683610635565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006106c36106be6106b984610694565b61069e565b610694565b9050919050565b6000819050919050565b6106dd836106a8565b6106f16106e9826106ca565b848454610642565b825550505050565b600090565b6107066106f9565b6107118184846106d4565b505050565b5b818110156107355761072a6000826106fe565b600181019050610717565b5050565b601f82111561077a5761074b81610555565b61075484610625565b81016020851015610763578190505b61077761076f85610625565b830182610716565b50505b505050565b600082821c905092915050565b600061079d6000198460080261077f565b1980831691505092915050565b60006107b6838361078c565b9150826002028217905092915050565b6107cf82610424565b67ffffffffffffffff8111156107e8576107e7610295565b5b6107f28254610524565b6107fd828285610739565b600060209050601f831160018114610830576000841561081e578287015190505b61082885826107aa565b865550610890565b601f19841661083e86610555565b60005b8281101561086657848901518255600182019150602085019450602081019050610841565b86831015610883578489015161087f601f89168261078c565b8355505b6001600288020188555050505b505050505050565b600060208201905081810360008301526108b2818461056a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108f482610694565b91506108ff83610694565b9250828201905080821115610917576109166108ba565b5b9291505056fea26469706673582212207e5ba44159ffb37af8e8a9e7c5b6fb5ce81ea195b62ae3ac36288f2cf72c18a764736f6c634300081000330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
+ '0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
expect(_tx.input).toBe(
- '0x60806040523480156200001157600080fd5b5060405162000ed038038062000ed08339818101604052810190620000379190620001ea565b806001908162000048919062000486565b5060008081905550506200056d565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000c08262000075565b810181811067ffffffffffffffff82111715620000e257620000e162000086565b5b80604052505050565b6000620000f762000057565b9050620001058282620000b5565b919050565b600067ffffffffffffffff82111562000128576200012762000086565b5b620001338262000075565b9050602081019050919050565b60005b838110156200016057808201518184015260208101905062000143565b60008484015250505050565b6000620001836200017d846200010a565b620000eb565b905082815260208101848484011115620001a257620001a162000070565b5b620001af84828562000140565b509392505050565b600082601f830112620001cf57620001ce6200006b565b5b8151620001e18482602086016200016c565b91505092915050565b60006020828403121562000203576200020262000061565b5b600082015167ffffffffffffffff81111562000224576200022362000066565b5b6200023284828501620001b7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028e57607f821691505b602082108103620002a457620002a362000246565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200030e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002cf565b6200031a8683620002cf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000367620003616200035b8462000332565b6200033c565b62000332565b9050919050565b6000819050919050565b620003838362000346565b6200039b62000392826200036e565b848454620002dc565b825550505050565b600090565b620003b2620003a3565b620003bf81848462000378565b505050565b5b81811015620003e757620003db600082620003a8565b600181019050620003c5565b5050565b601f82111562000436576200040081620002aa565b6200040b84620002bf565b810160208510156200041b578190505b620004336200042a85620002bf565b830182620003c4565b50505b505050565b600082821c905092915050565b60006200045b600019846008026200043b565b1980831691505092915050565b600062000476838362000448565b9150826002028217905092915050565b62000491826200023b565b67ffffffffffffffff811115620004ad57620004ac62000086565b5b620004b9825462000275565b620004c6828285620003eb565b600060209050601f831160018114620004fe5760008415620004e9578287015190505b620004f5858262000468565b86555062000565565b601f1984166200050e86620002aa565b60005b82811015620005385784890151825560018201915060208501945060208101905062000511565b8683101562000558578489015162000554601f89168262000448565b8355505b6001600288020188555050505b505050505050565b610953806200057d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610077578063d09de08a14610095575b600080fd5b610060600480360381019061005b91906103c0565b61009f565b60405161006e9291906104a3565b60405180910390f35b61007f6101bd565b60405161008c91906104d3565b60405180910390f35b61009d61024f565b005b600060607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d59291906105ee565b60405180910390a182600190816100ec91906107c6565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e600160405161011d9190610898565b60405180910390a160018080805461013490610524565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610524565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b5050505050905091509150915091565b6060600180546101cc90610524565b80601f01602080910402602001604051908101604052809291908181526020018280546101f890610524565b80156102455780601f1061021a57610100808354040283529160200191610245565b820191906000526020600020905b81548152906001019060200180831161022857829003601f168201915b5050505050905090565b600160005461025e91906108e9565b600081905550565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102cd82610284565b810181811067ffffffffffffffff821117156102ec576102eb610295565b5b80604052505050565b60006102ff610266565b905061030b82826102c4565b919050565b600067ffffffffffffffff82111561032b5761032a610295565b5b61033482610284565b9050602081019050919050565b82818337600083830152505050565b600061036361035e84610310565b6102f5565b90508281526020810184848401111561037f5761037e61027f565b5b61038a848285610341565b509392505050565b600082601f8301126103a7576103a661027a565b5b81356103b7848260208601610350565b91505092915050565b6000602082840312156103d6576103d5610270565b5b600082013567ffffffffffffffff8111156103f4576103f3610275565b5b61040084828501610392565b91505092915050565b60008115159050919050565b61041e81610409565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561045e578082015181840152602081019050610443565b60008484015250505050565b600061047582610424565b61047f818561042f565b935061048f818560208601610440565b61049881610284565b840191505092915050565b60006040820190506104b86000830185610415565b81810360208301526104ca818461046a565b90509392505050565b600060208201905081810360008301526104ed818461046a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061053c57607f821691505b60208210810361054f5761054e6104f5565b5b50919050565b60008190508160005260206000209050919050565b6000815461057781610524565b610581818661042f565b9450600182166000811461059c57600181146105b2576105e5565b60ff1983168652811515602002860193506105e5565b6105bb85610555565b60005b838110156105dd578154818901526001820191506020810190506105be565b808801955050505b50505092915050565b60006040820190508181036000830152610608818561056a565b9050818103602083015261061c818461046a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026106727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610635565b61067c8683610635565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006106c36106be6106b984610694565b61069e565b610694565b9050919050565b6000819050919050565b6106dd836106a8565b6106f16106e9826106ca565b848454610642565b825550505050565b600090565b6107066106f9565b6107118184846106d4565b505050565b5b818110156107355761072a6000826106fe565b600181019050610717565b5050565b601f82111561077a5761074b81610555565b61075484610625565b81016020851015610763578190505b61077761076f85610625565b830182610716565b50505b505050565b600082821c905092915050565b600061079d6000198460080261077f565b1980831691505092915050565b60006107b6838361078c565b9150826002028217905092915050565b6107cf82610424565b67ffffffffffffffff8111156107e8576107e7610295565b5b6107f28254610524565b6107fd828285610739565b600060209050601f831160018114610830576000841561081e578287015190505b61082885826107aa565b865550610890565b601f19841661083e86610555565b60005b8281101561086657848901518255600182019150602085019450602081019050610841565b86831015610883578489015161087f601f89168261078c565b8355505b6001600288020188555050505b505050505050565b600060208201905081810360008301526108b2818461056a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108f482610694565b91506108ff83610694565b9250828201905080821115610917576109166108ba565b5b9291505056fea26469706673582212207e5ba44159ffb37af8e8a9e7c5b6fb5ce81ea195b62ae3ac36288f2cf72c18a764736f6c634300081000330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
+ '0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
expect(returnFormat).toBe(ZOND_DATA_FORMAT);
@@ -1314,7 +1320,7 @@ describe('Contract', () => {
expect(_tx.to).toBeUndefined();
expect(_tx.from).toStrictEqual(sendOptions.from);
expect(_tx.data).toBe(
- '0x60806040523480156200001157600080fd5b5060405162000ed038038062000ed08339818101604052810190620000379190620001ea565b806001908162000048919062000486565b5060008081905550506200056d565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620000c08262000075565b810181811067ffffffffffffffff82111715620000e257620000e162000086565b5b80604052505050565b6000620000f762000057565b9050620001058282620000b5565b919050565b600067ffffffffffffffff82111562000128576200012762000086565b5b620001338262000075565b9050602081019050919050565b60005b838110156200016057808201518184015260208101905062000143565b60008484015250505050565b6000620001836200017d846200010a565b620000eb565b905082815260208101848484011115620001a257620001a162000070565b5b620001af84828562000140565b509392505050565b600082601f830112620001cf57620001ce6200006b565b5b8151620001e18482602086016200016c565b91505092915050565b60006020828403121562000203576200020262000061565b5b600082015167ffffffffffffffff81111562000224576200022362000066565b5b6200023284828501620001b7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028e57607f821691505b602082108103620002a457620002a362000246565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200030e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002cf565b6200031a8683620002cf565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000367620003616200035b8462000332565b6200033c565b62000332565b9050919050565b6000819050919050565b620003838362000346565b6200039b62000392826200036e565b848454620002dc565b825550505050565b600090565b620003b2620003a3565b620003bf81848462000378565b505050565b5b81811015620003e757620003db600082620003a8565b600181019050620003c5565b5050565b601f82111562000436576200040081620002aa565b6200040b84620002bf565b810160208510156200041b578190505b620004336200042a85620002bf565b830182620003c4565b50505b505050565b600082821c905092915050565b60006200045b600019846008026200043b565b1980831691505092915050565b600062000476838362000448565b9150826002028217905092915050565b62000491826200023b565b67ffffffffffffffff811115620004ad57620004ac62000086565b5b620004b9825462000275565b620004c6828285620003eb565b600060209050601f831160018114620004fe5760008415620004e9578287015190505b620004f5858262000468565b86555062000565565b601f1984166200050e86620002aa565b60005b82811015620005385784890151825560018201915060208501945060208101905062000511565b8683101562000558578489015162000554601f89168262000448565b8355505b6001600288020188555050505b505050505050565b610953806200057d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063a413686214610046578063cfae321714610077578063d09de08a14610095575b600080fd5b610060600480360381019061005b91906103c0565b61009f565b60405161006e9291906104a3565b60405180910390f35b61007f6101bd565b60405161008c91906104d3565b60405180910390f35b61009d61024f565b005b600060607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d59291906105ee565b60405180910390a182600190816100ec91906107c6565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e600160405161011d9190610898565b60405180910390a160018080805461013490610524565b80601f016020809104026020016040519081016040528092919081815260200182805461016090610524565b80156101ad5780601f10610182576101008083540402835291602001916101ad565b820191906000526020600020905b81548152906001019060200180831161019057829003601f168201915b5050505050905091509150915091565b6060600180546101cc90610524565b80601f01602080910402602001604051908101604052809291908181526020018280546101f890610524565b80156102455780601f1061021a57610100808354040283529160200191610245565b820191906000526020600020905b81548152906001019060200180831161022857829003601f168201915b5050505050905090565b600160005461025e91906108e9565b600081905550565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102cd82610284565b810181811067ffffffffffffffff821117156102ec576102eb610295565b5b80604052505050565b60006102ff610266565b905061030b82826102c4565b919050565b600067ffffffffffffffff82111561032b5761032a610295565b5b61033482610284565b9050602081019050919050565b82818337600083830152505050565b600061036361035e84610310565b6102f5565b90508281526020810184848401111561037f5761037e61027f565b5b61038a848285610341565b509392505050565b600082601f8301126103a7576103a661027a565b5b81356103b7848260208601610350565b91505092915050565b6000602082840312156103d6576103d5610270565b5b600082013567ffffffffffffffff8111156103f4576103f3610275565b5b61040084828501610392565b91505092915050565b60008115159050919050565b61041e81610409565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561045e578082015181840152602081019050610443565b60008484015250505050565b600061047582610424565b61047f818561042f565b935061048f818560208601610440565b61049881610284565b840191505092915050565b60006040820190506104b86000830185610415565b81810360208301526104ca818461046a565b90509392505050565b600060208201905081810360008301526104ed818461046a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061053c57607f821691505b60208210810361054f5761054e6104f5565b5b50919050565b60008190508160005260206000209050919050565b6000815461057781610524565b610581818661042f565b9450600182166000811461059c57600181146105b2576105e5565b60ff1983168652811515602002860193506105e5565b6105bb85610555565b60005b838110156105dd578154818901526001820191506020810190506105be565b808801955050505b50505092915050565b60006040820190508181036000830152610608818561056a565b9050818103602083015261061c818461046a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026106727fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610635565b61067c8683610635565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006106c36106be6106b984610694565b61069e565b610694565b9050919050565b6000819050919050565b6106dd836106a8565b6106f16106e9826106ca565b848454610642565b825550505050565b600090565b6107066106f9565b6107118184846106d4565b505050565b5b818110156107355761072a6000826106fe565b600181019050610717565b5050565b601f82111561077a5761074b81610555565b61075484610625565b81016020851015610763578190505b61077761076f85610625565b830182610716565b50505b505050565b600082821c905092915050565b600061079d6000198460080261077f565b1980831691505092915050565b60006107b6838361078c565b9150826002028217905092915050565b6107cf82610424565b67ffffffffffffffff8111156107e8576107e7610295565b5b6107f28254610524565b6107fd828285610739565b600060209050601f831160018114610830576000841561081e578287015190505b61082885826107aa565b865550610890565b601f19841661083e86610555565b60005b8281101561086657848901518255600182019150602085019450602081019050610841565b86831015610883578489015161087f601f89168261078c565b8355505b6001600288020188555050505b505050505050565b600060208201905081810360008301526108b2818461056a565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108f482610694565b91506108ff83610694565b9250828201905080821115610917576109166108ba565b5b9291505056fea26469706673582212207e5ba44159ffb37af8e8a9e7c5b6fb5ce81ea195b62ae3ac36288f2cf72c18a764736f6c634300081000330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
+ '0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
expect(returnFormat).toBe(ZOND_DATA_FORMAT);
diff --git a/packages/web3-zond-contract/test/unit/contract_typing.test.ts b/packages/web3-zond-contract/test/unit/contract_typing.test.ts
index 5e1b82d8..84d5e710 100644
--- a/packages/web3-zond-contract/test/unit/contract_typing.test.ts
+++ b/packages/web3-zond-contract/test/unit/contract_typing.test.ts
@@ -20,8 +20,8 @@ along with web3.js. If not, see .
import { expectTypeOf, typecheck } from '@humeris/espresso-shot';
import { Numbers } from '@theqrl/web3-types';
import { Contract } from '../../src/contract';
-import { erc20Abi, Erc20Interface } from '../fixtures/erc20';
-import { erc721Abi, Erc721Interface } from '../fixtures/erc721';
+import { zrc20Abi, Zrc20Interface } from '../fixtures/zrc20';
+import { zrc721Abi, Zrc721Interface } from '../fixtures/zrc721';
import { NonPayableMethodObject, PayableMethodObject } from '../../src';
describe('contract typing', () => {
@@ -59,44 +59,44 @@ describe('contract typing', () => {
>(),
);
});
- describe('erc20', () => {
- const contract = new Contract(erc20Abi);
+ describe('zrc20', () => {
+ const contract = new Contract(zrc20Abi);
typecheck('should contain all methods', () =>
- expectTypeOf().toBe(),
+ expectTypeOf().toBe(),
);
typecheck('should have interface compliance methods', () =>
- expectTypeOf(contract.methods).toExtend(),
+ expectTypeOf(contract.methods).toExtend(),
);
typecheck('should have all events', () =>
- expectTypeOf().toBe(),
+ expectTypeOf().toBe(),
);
typecheck('should have interface compliance events', () =>
- expectTypeOf(contract.events).toExtend(),
+ expectTypeOf(contract.events).toExtend(),
);
});
- describe('erc721', () => {
- const contract = new Contract(erc721Abi);
+ describe('zrc721', () => {
+ const contract = new Contract(zrc721Abi);
typecheck('should contain all methods', () =>
- expectTypeOf().toBe(),
+ expectTypeOf().toBe(),
);
// TODO: It's not matching types for `safeTransferFrom` because of overloaded method
// typecheck('should have interface compliance methods', () =>
- // expectTypeOf(contract.methods).toExtend(),
+ // expectTypeOf(contract.methods).toExtend(),
// );
typecheck('should have all events', () =>
- expectTypeOf().toBe(),
+ expectTypeOf().toBe(),
);
typecheck('should have interface compliance events', () =>
- expectTypeOf(contract.events).toExtend(),
+ expectTypeOf(contract.events).toExtend(),
);
});
});
diff --git a/packages/web3-zond-iban/CHANGELOG.md b/packages/web3-zond-iban/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-zond-iban/CHANGELOG.md
+++ b/packages/web3-zond-iban/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-zond-iban/src/iban.ts b/packages/web3-zond-iban/src/iban.ts
index 53d76978..e0d98920 100644
--- a/packages/web3-zond-iban/src/iban.ts
+++ b/packages/web3-zond-iban/src/iban.ts
@@ -16,7 +16,13 @@ along with web3.js. If not, see .
*/
import { HexString } from '@theqrl/web3-types';
-import { toChecksumAddress, leftPad, toNumber, hexToAddress, addressToHex } from '@theqrl/web3-utils';
+import {
+ toChecksumAddress,
+ leftPad,
+ toNumber,
+ hexToAddress,
+ addressToHex,
+} from '@theqrl/web3-utils';
import { isAddressString } from '@theqrl/web3-validator';
import { InvalidAddressError } from '@theqrl/web3-errors';
import { IbanOptions } from './types.js';
@@ -252,9 +258,9 @@ export class Iban {
}
/**
- * This method should be used to create iban object from an Zond address.
+ * This method should be used to create iban object from a Zond address.
*
- * @param address - an Zond address
+ * @param address - a Zond address
* @returns an Iban class instance that holds the equivalent IBAN
*
* @example
@@ -275,7 +281,7 @@ export class Iban {
}
/**
- * This method should be used to create an zond address from a Direct IBAN address.
+ * This method should be used to create a zond address from a Direct IBAN address.
* If the provided string was not a direct IBAN (has the length of 34 or 35), an Error will be thrown:
* ('Iban is indirect and cannot be converted. Must be length of 34 or 35').
* Note: this is also available as a method at an Iban instance.
@@ -321,9 +327,9 @@ export class Iban {
};
/**
- * This method should be used to create IBAN address from an Zond address
+ * This method should be used to create IBAN address from a Zond address
*
- * @param address - an Zond address
+ * @param address - a Zond address
* @return the equivalent IBAN address
*
* @example
diff --git a/packages/web3-zond-ens/.eslintignore b/packages/web3-zond-zns/.eslintignore
similarity index 100%
rename from packages/web3-zond-ens/.eslintignore
rename to packages/web3-zond-zns/.eslintignore
diff --git a/packages/web3-zond-ens/.eslintrc.js b/packages/web3-zond-zns/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-ens/.eslintrc.js
rename to packages/web3-zond-zns/.eslintrc.js
diff --git a/packages/web3-zond-ens/.gitignore b/packages/web3-zond-zns/.gitignore
similarity index 100%
rename from packages/web3-zond-ens/.gitignore
rename to packages/web3-zond-zns/.gitignore
diff --git a/packages/web3-zond-ens/.npmignore b/packages/web3-zond-zns/.npmignore
similarity index 100%
rename from packages/web3-zond-ens/.npmignore
rename to packages/web3-zond-zns/.npmignore
diff --git a/packages/web3-zond-ens/.prettierignore b/packages/web3-zond-zns/.prettierignore
similarity index 100%
rename from packages/web3-zond-ens/.prettierignore
rename to packages/web3-zond-zns/.prettierignore
diff --git a/packages/web3-zond-ens/.prettierrc.json b/packages/web3-zond-zns/.prettierrc.json
similarity index 100%
rename from packages/web3-zond-ens/.prettierrc.json
rename to packages/web3-zond-zns/.prettierrc.json
diff --git a/packages/web3-zond-ens/CHANGELOG.md b/packages/web3-zond-zns/CHANGELOG.md
similarity index 99%
rename from packages/web3-zond-ens/CHANGELOG.md
rename to packages/web3-zond-zns/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-zond-ens/CHANGELOG.md
+++ b/packages/web3-zond-zns/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-zond-ens/README.md b/packages/web3-zond-zns/README.md
similarity index 77%
rename from packages/web3-zond-ens/README.md
rename to packages/web3-zond-zns/README.md
index 51f68dad..ba871f02 100644
--- a/packages/web3-zond-ens/README.md
+++ b/packages/web3-zond-zns/README.md
@@ -2,7 +2,7 @@
-# web3.js - ENS
+# web3.js - ZNS


@@ -11,22 +11,22 @@
This is a sub-package of [web3.js][repo].
-`web3-zond-ens` This package has ENS functions for interacting with Ethereum Name Service.
+`web3-zond-zns` This package has ZNS functions for interacting with Zond Name Service.
## Installation
-You can install the package either using [NPM](https://www.npmjs.com/package/web3-eth-ens) or using [Yarn](https://yarnpkg.com/package/web3-eth-ens)
+You can install the package either using [NPM](https://www.npmjs.com/package/web3-zond-zns) or using [Yarn](https://yarnpkg.com/package/web3-zond-zns)
### Using NPM
```bash
-npm install web3-zond-ens
+npm install web3-zond-zns
```
### Using Yarn
```bash
-yarn add web3-zond-ens
+yarn add web3-zond-zns
```
## Getting Started
@@ -53,7 +53,7 @@ yarn add web3-zond-ens
| test:unit | Uses `jest` to run tests under `/test/unit` |
[docs]: https://docs.web3js.org/
-[repo]: https://github.com/web3/web3.js/tree/4.x/packages/web3-eth-ens
-[npm-image]: https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-eth-ens%2Fpackage.json
-[npm-url]: https://npmjs.org/package/web3-eth-ens
-[downloads-image]: https://img.shields.io/npm/dm/web3-eth-ens?label=npm%20downloads
+[repo]: https://github.com/web3/web3.js/tree/4.x/packages/web3-zond-zns
+[npm-image]: https://img.shields.io/github/package-json/v/web3/web3.js/4.x?filename=packages%2Fweb3-zond-zns%2Fpackage.json
+[npm-url]: https://npmjs.org/package/web3-zond-zns
+[downloads-image]: https://img.shields.io/npm/dm/web3-zond-zns?label=npm%20downloads
diff --git a/packages/web3-zond-ens/assets/logo/web3js.ai b/packages/web3-zond-zns/assets/logo/web3js.ai
similarity index 100%
rename from packages/web3-zond-ens/assets/logo/web3js.ai
rename to packages/web3-zond-zns/assets/logo/web3js.ai
diff --git a/packages/web3-zond-ens/assets/logo/web3js.jpg b/packages/web3-zond-zns/assets/logo/web3js.jpg
similarity index 100%
rename from packages/web3-zond-ens/assets/logo/web3js.jpg
rename to packages/web3-zond-zns/assets/logo/web3js.jpg
diff --git a/packages/web3-zond-ens/assets/logo/web3js.svg b/packages/web3-zond-zns/assets/logo/web3js.svg
similarity index 100%
rename from packages/web3-zond-ens/assets/logo/web3js.svg
rename to packages/web3-zond-zns/assets/logo/web3js.svg
diff --git a/packages/web3-zond-ens/package.json b/packages/web3-zond-zns/package.json
similarity index 82%
rename from packages/web3-zond-ens/package.json
rename to packages/web3-zond-zns/package.json
index 5301f510..f47fc110 100644
--- a/packages/web3-zond-ens/package.json
+++ b/packages/web3-zond-zns/package.json
@@ -1,10 +1,10 @@
{
- "name": "@theqrl/web3-zond-ens",
+ "name": "@theqrl/web3-zond-zns",
"version": "0.3.0",
"publishConfig": {
"access": "public"
},
- "description": "This package has ENS functions for interacting with Ethereum Name Service.",
+ "description": "This package has ZNS functions for interacting with Zond Name Service.",
"main": "./lib/commonjs/index.js",
"module": "./lib/esm/index.js",
"exports": {
@@ -42,9 +42,7 @@
"test:ci": "jest --coverage=true --coverage-reporters=json --verbose",
"test:watch": "npm test -- --watch",
"test:unit": "jest --config=./test/unit/jest.config.js",
- "test:integration": "jest --config=./test/integration/jest.config.js",
- "ens:download:registry": "curl -L -o test/fixtures/ens/registry.json 'https://api.etherscan.io/api?module=contract&action=getabi&address=0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'",
- "ens:download:reverse_registrar": "curl -L -o test/fixtures/ens/reverse_registrar.json 'https://api.etherscan.io/api?module=contract&action=getabi&address=0x084b1c3c81545d370f3634392de611caabff8148'"
+ "test:integration": "jest --config=./test/integration/jest.config.js"
},
"devDependencies": {
"@theqrl/eslint-config-base-web3": "^0.3.0",
diff --git a/packages/web3-zond-ens/src/abi/ens/PublicResolver.ts b/packages/web3-zond-zns/src/abi/zns/PublicResolver.ts
similarity index 100%
rename from packages/web3-zond-ens/src/abi/ens/PublicResolver.ts
rename to packages/web3-zond-zns/src/abi/zns/PublicResolver.ts
diff --git a/packages/web3-zond-ens/src/abi/ens/ENSRegistry.ts b/packages/web3-zond-zns/src/abi/zns/ZNSRegistry.ts
similarity index 98%
rename from packages/web3-zond-ens/src/abi/ens/ENSRegistry.ts
rename to packages/web3-zond-zns/src/abi/zns/ZNSRegistry.ts
index bcac4c53..d8f2398d 100644
--- a/packages/web3-zond-ens/src/abi/ens/ENSRegistry.ts
+++ b/packages/web3-zond-zns/src/abi/zns/ZNSRegistry.ts
@@ -15,8 +15,8 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-// https://github.com/ensdomains/ens-contracts/blob/master/contracts/registry/ENSRegistry.sol
-export const ENSRegistryAbi = [
+// https://github.com/ensdomains/ens-contracts/blob/master/contracts/registry/ZNSRegistry.sol
+export const ZNSRegistryAbi = [
{
anonymous: false,
inputs: [
diff --git a/packages/web3-zond-ens/src/config.ts b/packages/web3-zond-zns/src/config.ts
similarity index 88%
rename from packages/web3-zond-ens/src/config.ts
rename to packages/web3-zond-zns/src/config.ts
index b702d417..7cd5d89c 100644
--- a/packages/web3-zond-ens/src/config.ts
+++ b/packages/web3-zond-zns/src/config.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
//
/**
- * An object holding the interface Ids of the ENS resolver contracts. Please see [how to write a resolver](https://docs.ens.domains/contract-developer-guide/writing-a-resolver).
+ * An object holding the interface Ids of the ZNS resolver contracts. Please see [how to write a resolver](https://docs.ens.domains/contract-developer-guide/writing-a-resolver).
*/
export const interfaceIds: { [T: string]: string } = {
addr: '0x3b3b57de',
@@ -29,7 +29,7 @@ export const interfaceIds: { [T: string]: string } = {
};
/**
- * An object holding the functionsthat are supported by the ENS resolver contracts/interfaces.
+ * An object holding the functionsthat are supported by the ZNS resolver contracts/interfaces.
*/
export const methodsInInterface: { [T: string]: string } = {
setAddr: 'addr',
@@ -41,7 +41,7 @@ export const methodsInInterface: { [T: string]: string } = {
};
/**
- * An object holding the addressed of the ENS registries on the different networks (mainnet).
+ * An object holding the addressed of the ZNS registries on the different networks (mainnet).
*/
// TODO(youtrack/theqrl/web3.js/1)
export const registryAddresses: { [T: string]: string } = {
diff --git a/packages/web3-zond-ens/src/index.ts b/packages/web3-zond-zns/src/index.ts
similarity index 85%
rename from packages/web3-zond-ens/src/index.ts
rename to packages/web3-zond-zns/src/index.ts
index cf3b9780..da1cdf4e 100644
--- a/packages/web3-zond-ens/src/index.ts
+++ b/packages/web3-zond-zns/src/index.ts
@@ -16,7 +16,7 @@ along with web3.js. If not, see .
*/
/**
- * The `web3.zond.ens` functions let you interact with ENS. We recommend reading the [ENS documentation](https://docs.ens.domains/) to get deeper insights about the internals of the name service.
+ * The `web3.zond.zns` functions let you interact with ZNS. We recommend reading the [ZNS documentation](https://docs.ens.domains/) to get deeper insights about the internals of the name service.
*
*/
/**
@@ -24,5 +24,5 @@ along with web3.js. If not, see .
*/
import { registryAddresses } from './config.js';
-export * from './ens.js';
+export * from './zns.js';
export { registryAddresses };
diff --git a/packages/web3-zond-ens/src/registry.ts b/packages/web3-zond-zns/src/registry.ts
similarity index 90%
rename from packages/web3-zond-ens/src/registry.ts
rename to packages/web3-zond-zns/src/registry.ts
index 7a98eee0..ecfa77fc 100644
--- a/packages/web3-zond-ens/src/registry.ts
+++ b/packages/web3-zond-zns/src/registry.ts
@@ -18,18 +18,18 @@ along with web3.js. If not, see .
import { Web3ContextObject } from '@theqrl/web3-core';
import { Contract } from '@theqrl/web3-zond-contract';
import { Address } from '@theqrl/web3-types';
-import { ENSRegistryAbi } from './abi/ens/ENSRegistry.js';
-import { PublicResolverAbi } from './abi/ens/PublicResolver.js';
+import { ZNSRegistryAbi } from './abi/zns/ZNSRegistry.js';
+import { PublicResolverAbi } from './abi/zns/PublicResolver.js';
import { registryAddresses } from './config.js';
import { namehash } from './utils.js';
export class Registry {
- private readonly contract: Contract;
+ private readonly contract: Contract;
private readonly context: Web3ContextObject;
public constructor(context: Web3ContextObject, customRegistryAddress?: Address) {
this.contract = new Contract(
- ENSRegistryAbi,
+ ZNSRegistryAbi,
customRegistryAddress ?? registryAddresses.main,
context,
);
@@ -74,7 +74,7 @@ export class Registry {
// address type is unknown, not sure why
if (typeof address === 'string') {
const contract = new Contract(PublicResolverAbi, address, this.context);
- // TODO: set contract provider needs to be added when ens current provider
+ // TODO: set contract provider needs to be added when zns current provider
return contract;
}
throw new Error();
diff --git a/packages/web3-zond-ens/src/resolver.ts b/packages/web3-zond-zns/src/resolver.ts
similarity index 81%
rename from packages/web3-zond-ens/src/resolver.ts
rename to packages/web3-zond-zns/src/resolver.ts
index e69ac58a..718109c1 100644
--- a/packages/web3-zond-ens/src/resolver.ts
+++ b/packages/web3-zond-zns/src/resolver.ts
@@ -19,7 +19,7 @@ import { ResolverMethodMissingError } from '@theqrl/web3-errors';
import { Contract } from '@theqrl/web3-zond-contract';
import { isNullish, sha3 } from '@theqrl/web3-utils';
import { isHexStrict } from '@theqrl/web3-validator';
-import { PublicResolverAbi } from './abi/ens/PublicResolver.js';
+import { PublicResolverAbi } from './abi/zns/PublicResolver.js';
import { interfaceIds, methodsInInterface } from './config.js';
import { Registry } from './registry.js';
import { namehash } from './utils.js';
@@ -34,9 +34,9 @@ export class Resolver {
this.registry = registry;
}
- private async getResolverContractAdapter(ENSName: string) {
- // TODO : (Future 4.1.0 TDB) cache resolver contract if frequently queried same ENS name, refresh cache based on TTL and usage, also limit cache size, optional cache with a flag
- return this.registry.getResolver(ENSName);
+ private async getResolverContractAdapter(ZNSName: string) {
+ // TODO : (Future 4.1.0 TDB) cache resolver contract if frequently queried same ZNS name, refresh cache based on TTL and usage, also limit cache size, optional cache with a flag
+ return this.registry.getResolver(ZNSName);
}
// https://eips.ethereum.org/EIPS/eip-165
@@ -62,8 +62,8 @@ export class Resolver {
);
}
- public async supportsInterface(ENSName: string, interfaceId: string) {
- const resolverContract = await this.getResolverContractAdapter(ENSName);
+ public async supportsInterface(ZNSName: string, interfaceId: string) {
+ const resolverContract = await this.getResolverContractAdapter(ZNSName);
let interfaceIdParam = interfaceId;
@@ -79,27 +79,27 @@ export class Resolver {
}
// eslint-disable-next-line @typescript-eslint/no-inferrable-types
- public async getAddress(ENSName: string, coinType: number = 60) {
- const resolverContract = await this.getResolverContractAdapter(ENSName);
+ public async getAddress(ZNSName: string, coinType: number = 60) {
+ const resolverContract = await this.getResolverContractAdapter(ZNSName);
await this.checkInterfaceSupport(resolverContract, methodsInInterface.addr);
- return resolverContract.methods.addr(namehash(ENSName), coinType).call();
+ return resolverContract.methods.addr(namehash(ZNSName), coinType).call();
}
- public async getPubkey(ENSName: string) {
- const resolverContract = await this.getResolverContractAdapter(ENSName);
+ public async getPubkey(ZNSName: string) {
+ const resolverContract = await this.getResolverContractAdapter(ZNSName);
await this.checkInterfaceSupport(resolverContract, methodsInInterface.pubkey);
- return resolverContract.methods.pubkey(namehash(ENSName)).call();
+ return resolverContract.methods.pubkey(namehash(ZNSName)).call();
}
- public async getContenthash(ENSName: string) {
- const resolverContract = await this.getResolverContractAdapter(ENSName);
+ public async getContenthash(ZNSName: string) {
+ const resolverContract = await this.getResolverContractAdapter(ZNSName);
await this.checkInterfaceSupport(resolverContract, methodsInInterface.contenthash);
- return resolverContract.methods.contenthash(namehash(ENSName)).call();
+ return resolverContract.methods.contenthash(namehash(ZNSName)).call();
}
}
diff --git a/packages/web3-zond-ens/src/utils.ts b/packages/web3-zond-zns/src/utils.ts
similarity index 100%
rename from packages/web3-zond-ens/src/utils.ts
rename to packages/web3-zond-zns/src/utils.ts
diff --git a/packages/web3-zond-ens/src/ens.ts b/packages/web3-zond-zns/src/zns.ts
similarity index 68%
rename from packages/web3-zond-ens/src/ens.ts
rename to packages/web3-zond-zns/src/zns.ts
index e30f1d08..74b6e6b2 100644
--- a/packages/web3-zond-ens/src/ens.ts
+++ b/packages/web3-zond-zns/src/zns.ts
@@ -16,7 +16,7 @@ along with web3.js. If not, see .
*/
import { Web3Context, Web3ContextObject } from '@theqrl/web3-core';
-import { ENSNetworkNotSyncedError, ENSUnsupportedNetworkError } from '@theqrl/web3-errors';
+import { ZNSNetworkNotSyncedError, ZNSUnsupportedNetworkError } from '@theqrl/web3-errors';
import { isSyncing } from '@theqrl/web3-zond';
import { Contract } from '@theqrl/web3-zond-contract';
import { getId } from '@theqrl/web3-net';
@@ -27,16 +27,16 @@ import {
SupportedProviders,
Web3NetAPI,
} from '@theqrl/web3-types';
-import { PublicResolverAbi } from './abi/ens/PublicResolver.js';
+import { PublicResolverAbi } from './abi/zns/PublicResolver.js';
import { networkIds, registryAddresses } from './config.js';
import { Registry } from './registry.js';
import { Resolver } from './resolver.js';
/**
- * This class is designed to interact with the ENS system on the Zond blockchain.
+ * This class is designed to interact with the ZNS system on the Zond blockchain.
*
*/
-export class ENS extends Web3Context {
+export class ZNS extends Web3Context {
/**
* The registryAddress property can be used to define a custom registry address when you are connected to an unknown chain. It defaults to the main registry address.
*/
@@ -47,17 +47,17 @@ export class ENS extends Web3Context {
private _lastSyncCheck?: number;
/**
- * Use to create an instance of ENS
- * @param registryAddr - (Optional) The address of the ENS registry (default: mainnet registry address)
- * @param provider - (Optional) The provider to use for the ENS instance
+ * Use to create an instance of ZNS
+ * @param registryAddr - (Optional) The address of the ZNS registry (default: mainnet registry address)
+ * @param provider - (Optional) The provider to use for the ZNS instance
* @example
* ```ts
- * const ens = new ENS(
+ * const zns = new ZNS(
* "Z00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
* "http://localhost:8545"
* );
*
- * console.log( ens.defaultChain);
+ * console.log( zns.defaultChain);
* > mainnet
* ```
*/
@@ -76,12 +76,12 @@ export class ENS extends Web3Context {
/**
* Returns the Resolver by the given address
- * @param name - The name of the ENS domain
+ * @param name - The name of the ZNS domain
* @returns - An contract instance of the resolver
*
* @example
* ```ts
- * const resolver = await ens.getResolver('resolver');
+ * const resolver = await zns.getResolver('resolver');
*
* console.log(resolver.options.address);
* > 'Z1234567890123456789012345678901234567890'
@@ -93,11 +93,11 @@ export class ENS extends Web3Context {
/**
* Returns true if the record exists
- * @param name - The ENS name
- * @returns - Returns `true` if node exists in this ENS registry. This will return `false` for records that are in the legacy ENS registry but have not yet been migrated to the new one.
+ * @param name - The ZNS name
+ * @returns - Returns `true` if node exists in this ZNS registry. This will return `false` for records that are in the legacy ZNS registry but have not yet been migrated to the new one.
* @example
* ```ts
- * const exists = await web3.zond.ens.recordExists('zond.ens');
+ * const exists = await web3.zond.zns.recordExists('zond.zns');
* ```
*/
public async recordExists(name: string): Promise {
@@ -105,12 +105,12 @@ export class ENS extends Web3Context {
}
/**
- * Returns the caching TTL (time-to-live) of an ENS name.
- * @param name - The ENS name
+ * Returns the caching TTL (time-to-live) of a ZNS name.
+ * @param name - The ZNS name
* @returns - Returns the caching TTL (time-to-live) of a name.
* @example
* ```ts
- * const owner = await web3.zond.ens.getTTL('zond.ens');
+ * const owner = await web3.zond.zns.getTTL('zond.zns');
* ```
*/
public async getTTL(name: string): Promise {
@@ -119,11 +119,11 @@ export class ENS extends Web3Context {
/**
* Returns the owner by the given name and current configured or detected Registry
- * @param name - The ENS name
+ * @param name - The ZNS name
* @returns - Returns the address of the owner of the name.
* @example
* ```ts
- * const owner = await web3.zond.ens.getOwner('zond.ens');
+ * const owner = await web3.zond.zns.getOwner('zond.zns');
* ```
*/
public async getOwner(name: string): Promise {
@@ -131,27 +131,27 @@ export class ENS extends Web3Context {
}
/**
- * Resolves an ENS name to an Zond address.
- * @param ENSName - The ENS name to resolve
- * @param coinType - (Optional) The coin type, defaults to 60 (ETH)
+ * Resolves a ZNS name to a Zond address.
+ * @param ZNSName - The ZNS name to resolve
+ * @param coinType - (Optional) The coin type, defaults to 60 (ZND)
* @returns - The Zond address of the given name
* ```ts
- * const address = await web3.zond.ens.getAddress('zond.ens');
+ * const address = await web3.zond.zns.getAddress('zond.zns');
* console.log(address);
* > 'ZfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359'
* ```
*/
- public async getAddress(ENSName: string, coinType = 60) {
- return this._resolver.getAddress(ENSName, coinType);
+ public async getAddress(ZNSName: string, coinType = 60) {
+ return this._resolver.getAddress(ZNSName, coinType);
}
/**
* Returns the X and Y coordinates of the curve point for the public key.
- * @param ENSName - The ENS name
+ * @param ZNSName - The ZNS name
* @returns - The X and Y coordinates of the curve point for the public key
* @example
* ```ts
- * const key = await web3.zond.ens.getPubkey('zond.ens');
+ * const key = await web3.zond.zns.getPubkey('zond.zns');
* console.log(key);
* > {
* "0": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -161,32 +161,32 @@ export class ENS extends Web3Context {
* }
* ```
*/
- public async getPubkey(ENSName: string) {
- return this._resolver.getPubkey(ENSName);
+ public async getPubkey(ZNSName: string) {
+ return this._resolver.getPubkey(ZNSName);
}
/**
- * Returns the content hash object associated with an ENS node.
- * @param ENSName - The ENS name
- * @returns - The content hash object associated with an ENS node
+ * Returns the content hash object associated with a ZNS node.
+ * @param ZNSName - The ZNS name
+ * @returns - The content hash object associated with a ZNS node
* @example
* ```ts
- * const hash = await web3.zond.ens.getContenthash('zond.ens');
+ * const hash = await web3.zond.zns.getContenthash('zond.zns');
* console.log(hash);
* > 'QmaEBknbGT4bTQiQoe2VNgBJbRfygQGktnaW5TbuKixjYL'
* ```
*/
- public async getContenthash(ENSName: string) {
- return this._resolver.getContenthash(ENSName);
+ public async getContenthash(ZNSName: string) {
+ return this._resolver.getContenthash(ZNSName);
}
/**
- * Checks if the current used network is synced and looks for ENS support there.
+ * Checks if the current used network is synced and looks for ZNS support there.
* Throws an error if not.
- * @returns - The address of the ENS registry if the network has been detected successfully
+ * @returns - The address of the ZNS registry if the network has been detected successfully
* @example
* ```ts
- * console.log(await web3.zond.ens.checkNetwork());
+ * console.log(await web3.zond.zns.checkNetwork());
* > 'Z00000000000C2E074eC69A0dFb2997BA6C7d2e1e'
* ```
*/
@@ -196,7 +196,7 @@ export class ENS extends Web3Context {
const syncInfo = await isSyncing(this);
if (!(typeof syncInfo === 'boolean' && !syncInfo)) {
- throw new ENSNetworkNotSyncedError();
+ throw new ZNSNetworkNotSyncedError();
}
this._lastSyncCheck = now;
@@ -212,7 +212,7 @@ export class ENS extends Web3Context {
const addr = registryAddresses[networkIds[networkType]];
if (typeof addr === 'undefined') {
- throw new ENSUnsupportedNetworkError(networkType);
+ throw new ZNSUnsupportedNetworkError(networkType);
}
this._detectedAddress = addr;
@@ -221,22 +221,22 @@ export class ENS extends Web3Context {
/**
* Returns true if the related Resolver does support the given signature or interfaceId.
- * @param ENSName - The ENS name
- * @param interfaceId - The signature of the function or the interfaceId as described in the ENS documentation
+ * @param ZNSName - The ZNS name
+ * @param interfaceId - The signature of the function or the interfaceId as described in the ZNS documentation
* @returns - `true` if the related Resolver does support the given signature or interfaceId.
* @example
* ```ts
- * const supports = await web3.zond.ens.supportsInterface('zond.ens', 'addr(bytes32');
+ * const supports = await web3.zond.zns.supportsInterface('zond.zns', 'addr(bytes32');
* console.log(supports);
* > true
* ```
*/
- public async supportsInterface(ENSName: string, interfaceId: string) {
- return this._resolver.supportsInterface(ENSName, interfaceId);
+ public async supportsInterface(ZNSName: string, interfaceId: string) {
+ return this._resolver.supportsInterface(ZNSName, interfaceId);
}
/**
- * @returns - Returns all events that can be emitted by the ENS registry.
+ * @returns - Returns all events that can be emitted by the ZNS registry.
*/
public get events() {
return this._registry.events;
diff --git a/packages/web3-zond-ens/test/.eslintrc.js b/packages/web3-zond-zns/test/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-ens/test/.eslintrc.js
rename to packages/web3-zond-zns/test/.eslintrc.js
diff --git a/packages/web3-zond-ens/test/config/jest.config.js b/packages/web3-zond-zns/test/config/jest.config.js
similarity index 100%
rename from packages/web3-zond-ens/test/config/jest.config.js
rename to packages/web3-zond-zns/test/config/jest.config.js
diff --git a/packages/web3-zond-ens/test/config/setup.js b/packages/web3-zond-zns/test/config/setup.js
similarity index 100%
rename from packages/web3-zond-ens/test/config/setup.js
rename to packages/web3-zond-zns/test/config/setup.js
diff --git a/packages/web3-zond-ens/test/fixtures/accounts.json b/packages/web3-zond-zns/test/fixtures/accounts.json
similarity index 100%
rename from packages/web3-zond-ens/test/fixtures/accounts.json
rename to packages/web3-zond-zns/test/fixtures/accounts.json
diff --git a/packages/web3-zond-ens/test/fixtures/system_tests_utils.ts b/packages/web3-zond-zns/test/fixtures/system_tests_utils.ts
similarity index 100%
rename from packages/web3-zond-ens/test/fixtures/system_tests_utils.ts
rename to packages/web3-zond-zns/test/fixtures/system_tests_utils.ts
diff --git a/packages/web3-zond-ens/test/fixtures/utils.ts b/packages/web3-zond-zns/test/fixtures/utils.ts
similarity index 73%
rename from packages/web3-zond-ens/test/fixtures/utils.ts
rename to packages/web3-zond-zns/test/fixtures/utils.ts
index b972253f..bdb1d262 100644
--- a/packages/web3-zond-ens/test/fixtures/utils.ts
+++ b/packages/web3-zond-zns/test/fixtures/utils.ts
@@ -17,15 +17,15 @@ along with web3.js. If not, see .
export const namehashValidData: [string, string][] = [
['', '0x0000000000000000000000000000000000000000000000000000000000000000'],
- ['eth', '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae'],
- ['foo.eth', '0xde9b09fd7c5f901e23a3f19fecc54828e9c848539801e86591bd9801b019f84f'],
- ['FOO.eth', '0xde9b09fd7c5f901e23a3f19fecc54828e9c848539801e86591bd9801b019f84f'],
+ ['znd', '0x5ca200831516f7386952dbee215dfe7e4920ece6d31d89501d03e9239082ae7a'],
+ ['foo.znd', '0xa5bb084f89105bd16dff5eef797279b0c91d93529934875c65e3f2948b8b5be9'],
+ ['FOO.znd', '0xa5bb084f89105bd16dff5eef797279b0c91d93529934875c65e3f2948b8b5be9'],
];
export const normalizeValidData: [string, string][] = [
['Öbb.at', 'öbb.at'],
['Ⓜ', 'm'],
- ['foo.eth', 'foo.eth'],
- ['Foo.eth', 'foo.eth'],
- ['🦚.eth', '🦚.eth'],
+ ['foo.znd', 'foo.znd'],
+ ['Foo.znd', 'foo.znd'],
+ ['🦚.znd', '🦚.znd'],
];
diff --git a/packages/web3-zond-ens/test/fixtures/ens/ENSRegistry.json b/packages/web3-zond-zns/test/fixtures/zns/ZNSRegistry.json
similarity index 99%
rename from packages/web3-zond-ens/test/fixtures/ens/ENSRegistry.json
rename to packages/web3-zond-zns/test/fixtures/zns/ZNSRegistry.json
index b73563f0..0120c300 100644
--- a/packages/web3-zond-ens/test/fixtures/ens/ENSRegistry.json
+++ b/packages/web3-zond-zns/test/fixtures/zns/ZNSRegistry.json
@@ -1,7 +1,7 @@
{
"_format": "hh-sol-artifact-1",
- "contractName": "ENSRegistry",
- "sourceName": "contracts/registry/ENSRegistry.sol",
+ "contractName": "ZNSRegistry",
+ "sourceName": "contracts/registry/ZNSRegistry.sol",
"abi": [
{
"inputs": [],
diff --git a/packages/web3-zond-ens/test/fixtures/ens/abi/NameWrapper.ts b/packages/web3-zond-zns/test/fixtures/zns/abi/NameWrapper.ts
similarity index 100%
rename from packages/web3-zond-ens/test/fixtures/ens/abi/NameWrapper.ts
rename to packages/web3-zond-zns/test/fixtures/zns/abi/NameWrapper.ts
diff --git a/packages/web3-zond-ens/test/fixtures/ens/abi/PublicResolver.ts b/packages/web3-zond-zns/test/fixtures/zns/abi/PublicResolver.ts
similarity index 99%
rename from packages/web3-zond-ens/test/fixtures/ens/abi/PublicResolver.ts
rename to packages/web3-zond-zns/test/fixtures/zns/abi/PublicResolver.ts
index b666d4f4..a4c76151 100644
--- a/packages/web3-zond-ens/test/fixtures/ens/abi/PublicResolver.ts
+++ b/packages/web3-zond-zns/test/fixtures/zns/abi/PublicResolver.ts
@@ -20,8 +20,8 @@ export const PublicResolverAbi = [
{
inputs: [
{
- internalType: 'contract ENS',
- name: '_ens',
+ internalType: 'contract ZNS',
+ name: '_zns',
type: 'address',
},
{
diff --git a/packages/web3-zond-ens/test/fixtures/ens/abi/ENSRegistry.ts b/packages/web3-zond-zns/test/fixtures/zns/abi/ZNSRegistry.ts
similarity index 99%
rename from packages/web3-zond-ens/test/fixtures/ens/abi/ENSRegistry.ts
rename to packages/web3-zond-zns/test/fixtures/zns/abi/ZNSRegistry.ts
index 99730866..11c959c3 100644
--- a/packages/web3-zond-ens/test/fixtures/ens/abi/ENSRegistry.ts
+++ b/packages/web3-zond-zns/test/fixtures/zns/abi/ZNSRegistry.ts
@@ -15,8 +15,8 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-// https://github.com/ensdomains/ens-contracts/blob/master/contracts/registry/ENSRegistry.sol
-export const ENSRegistryAbi = [
+// https://github.com/ensdomains/ens-contracts/blob/master/contracts/registry/ZNSRegistry.sol
+export const ZNSRegistryAbi = [
{
inputs: [],
stateMutability: 'nonpayable',
diff --git a/packages/web3-zond-ens/test/fixtures/ens/bytecode/NameWrapperBytecode.ts b/packages/web3-zond-zns/test/fixtures/zns/bytecode/NameWrapperBytecode.ts
similarity index 100%
rename from packages/web3-zond-ens/test/fixtures/ens/bytecode/NameWrapperBytecode.ts
rename to packages/web3-zond-zns/test/fixtures/zns/bytecode/NameWrapperBytecode.ts
diff --git a/packages/web3-zond-ens/test/fixtures/ens/bytecode/PublicResolverBytecode.ts b/packages/web3-zond-zns/test/fixtures/zns/bytecode/PublicResolverBytecode.ts
similarity index 100%
rename from packages/web3-zond-ens/test/fixtures/ens/bytecode/PublicResolverBytecode.ts
rename to packages/web3-zond-zns/test/fixtures/zns/bytecode/PublicResolverBytecode.ts
diff --git a/packages/web3-zond-ens/test/fixtures/ens/bytecode/ENSRegistryBytecode.ts b/packages/web3-zond-zns/test/fixtures/zns/bytecode/ZNSRegistryBytecode.ts
similarity index 99%
rename from packages/web3-zond-ens/test/fixtures/ens/bytecode/ENSRegistryBytecode.ts
rename to packages/web3-zond-zns/test/fixtures/zns/bytecode/ZNSRegistryBytecode.ts
index 2fdf02f8..c16a97d2 100644
--- a/packages/web3-zond-ens/test/fixtures/ens/bytecode/ENSRegistryBytecode.ts
+++ b/packages/web3-zond-zns/test/fixtures/zns/bytecode/ZNSRegistryBytecode.ts
@@ -16,5 +16,5 @@ along with web3.js. If not, see .
*/
// https://github.com/ensdomains/ens-contracts/blob/master/contracts/resolvers/PublicResolver.sol
-export const ENSRegistryBytecode =
+export const ZNSRegistryBytecode =
'0x608060405234801561001057600080fd5b5060008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb580546001600160a01b0319163317905561192c806100596000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80635b0fc9c31161008c578063a22cb46511610066578063a22cb46514610247578063cf4088231461025a578063e985e9c51461026d578063f79fe538146102c657600080fd5b80635b0fc9c3146102015780635ef2c7f0146102145780639201de551461022757600080fd5b806314ab9038116100bd57806314ab90381461017b57806316a25cbd146101905780631896f70a146101ee57600080fd5b80630178b8bf146100e457806302571be31461014757806306ab59231461015a575b600080fd5b61011d6100f2366004611258565b60009081526020819052604090206001015473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61011d610155366004611258565b6102fe565b61016d610168366004611295565b610339565b60405190815260200161013e565b61018e6101893660046112e2565b6105c3565b005b6101d561019e366004611258565b60009081526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1690565b60405167ffffffffffffffff909116815260200161013e565b61018e6101fc36600461130e565b610817565b61018e61020f36600461130e565b610a6a565b61018e610222366004611331565b610cb7565b61023a610235366004611258565b610cd9565b60405161013e91906113b4565b61018e6102553660046113e7565b610e58565b61018e610268366004611423565b610eef565b6102b661027b366004611470565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b604051901515815260200161013e565b6102b66102d4366004611258565b60009081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff16151590565b60008181526020819052604081205473ffffffffffffffffffffffffffffffffffffffff163081036103335750600092915050565b92915050565b600083815260208190526040812054849073ffffffffffffffffffffffffffffffffffffffff163381148061039e575073ffffffffffffffffffffffffffffffffffffffff8116600090815260016020908152604080832033845290915290205460ff165b6103a782610f0a565b6040516020016103b7919061149a565b60408051601f19818403018152908290526103d4916020016114df565b6040516020818303038152906040526103ec33610f0a565b6040516020016103fd929190611520565b60408051601f198184030181529082905261041a9160200161154f565b60408051601f19818403018152908290526104379160200161156b565b60408051601f1981840301815291905260008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5546104909073ffffffffffffffffffffffffffffffffffffffff16610f0a565b6040516020016104a1929190611520565b604051602081830303815290604052906104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e891906113b4565b60405180910390fd5b50604080516020810188905290810186905260009060600160408051601f198184030181529181528151602092830120600081815292839052912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8816179055905060405173ffffffffffffffffffffffffffffffffffffffff86168152869088907fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829060200160405180910390a39695505050505050565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff1633811480610628575073ffffffffffffffffffffffffffffffffffffffff8116600090815260016020908152604080832033845290915290205460ff165b61063182610f0a565b604051602001610641919061149a565b60408051601f198184030181529082905261065e916020016114df565b60405160208183030381529060405261067633610f0a565b604051602001610687929190611520565b60408051601f19818403018152908290526106a49160200161154f565b60408051601f19818403018152908290526106c19160200161156b565b60408051601f1981840301815291905260008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461071a9073ffffffffffffffffffffffffffffffffffffffff16610f0a565b60405160200161072b929190611520565b60405160208183030381529060405290610772576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e891906113b4565b5060405167ffffffffffffffff8416815284907f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa689060200160405180910390a25050600091825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff163381148061087c575073ffffffffffffffffffffffffffffffffffffffff8116600090815260016020908152604080832033845290915290205460ff165b61088582610f0a565b604051602001610895919061149a565b60408051601f19818403018152908290526108b2916020016114df565b6040516020818303038152906040526108ca33610f0a565b6040516020016108db929190611520565b60408051601f19818403018152908290526108f89160200161154f565b60408051601f19818403018152908290526109159160200161156b565b60408051601f1981840301815291905260008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461096e9073ffffffffffffffffffffffffffffffffffffffff16610f0a565b60405160200161097f929190611520565b604051602081830303815290604052906109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e891906113b4565b5060405173ffffffffffffffffffffffffffffffffffffffff8416815284907f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a09060200160405180910390a2505060009182526020829052604090912060010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff1633811480610acf575073ffffffffffffffffffffffffffffffffffffffff8116600090815260016020908152604080832033845290915290205460ff165b610ad882610f0a565b604051602001610ae8919061149a565b60408051601f1981840301815290829052610b05916020016114df565b604051602081830303815290604052610b1d33610f0a565b604051602001610b2e929190611520565b60408051601f1981840301815290829052610b4b9160200161154f565b60408051601f1981840301815290829052610b689160200161156b565b60408051601f1981840301815291905260008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb554610bc19073ffffffffffffffffffffffffffffffffffffffff16610f0a565b604051602001610bd2929190611520565b60405160208183030381529060405290610c19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e891906113b4565b50600084815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff851617905560405173ffffffffffffffffffffffffffffffffffffffff8416815284907fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2669060200160405180910390a250505050565b6000610cc4868686610339565b9050610cd181848461108e565b505050505050565b606060005b60208160ff16108015610d2a5750828160ff1660208110610d0157610d016115ac565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b15610d415780610d398161160a565b915050610cde565b60008160ff1667ffffffffffffffff811115610d5f57610d5f611629565b6040519080825280601f01601f191660200182016040528015610d89576020820181803683370190505b509050600091505b60208260ff16108015610ddd5750838260ff1660208110610db457610db46115ac565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b15610e5157838260ff1660208110610df757610df76115ac565b1a60f81b818360ff1681518110610e1057610e106115ac565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535081610e498161160a565b925050610d91565b9392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610ef98484610a6a565b610f0484838361108e565b50505050565b60408051602880825260608281019093526000919060208201818036833701905050905060005b6014811015611087576000610f47826013611658565b610f5290600861166f565b610f5d9060026117cc565b610f7d9073ffffffffffffffffffffffffffffffffffffffff8716611807565b60f81b9050600060108260f81c610f94919061181b565b60f81b905060008160f81c6010610fab919061183d565b8360f81c610fb9919061185e565b60f81b9050610fc78261121d565b85610fd386600261166f565b81518110610fe357610fe36115ac565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061101b8161121d565b8561102786600261166f565b611032906001611881565b81518110611042576110426115ac565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350505050808061107f90611899565b915050610f31565b5092915050565b60008381526020819052604090206001015473ffffffffffffffffffffffffffffffffffffffff838116911614611146576000838152602081815260409182902060010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155915191825284917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0910160405180910390a25b60008381526020819052604090206001015467ffffffffffffffff828116740100000000000000000000000000000000000000009092041614611218576000838152602081815260409182902060010180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000067ffffffffffffffff861690810291909117909155915191825284917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68910160405180910390a25b505050565b6000600a60f883901c10156112445761123b60f883901c60306118d1565b60f81b92915050565b61123b60f883901c60576118d1565b919050565b60006020828403121561126a57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125357600080fd5b6000806000606084860312156112aa57600080fd5b83359250602084013591506112c160408501611271565b90509250925092565b803567ffffffffffffffff8116811461125357600080fd5b600080604083850312156112f557600080fd5b82359150611305602084016112ca565b90509250929050565b6000806040838503121561132157600080fd5b8235915061130560208401611271565b600080600080600060a0868803121561134957600080fd5b853594506020860135935061136060408701611271565b925061136e60608701611271565b915061137c608087016112ca565b90509295509295909350565b60005b838110156113a357818101518382015260200161138b565b83811115610f045750506000910152565b60208152600082518060208401526113d3816040850160208701611388565b601f01601f19169190910160400192915050565b600080604083850312156113fa57600080fd5b61140383611271565b91506020830135801515811461141857600080fd5b809150509250929050565b6000806000806080858703121561143957600080fd5b8435935061144960208601611271565b925061145760408601611271565b9150611465606086016112ca565b905092959194509250565b6000806040838503121561148357600080fd5b61148c83611271565b915061130560208401611271565b7f596f7520617265206e6f7420746865206f776e657220000000000000000000008152600082516114d2816016850160208701611388565b9190910160160192915050565b600082516114f1818460208701611388565b7f206d736773656e6465723a000000000000000000000000000000000000000000920191825250600b01919050565b60008351611532818460208801611388565b835190830190611546818360208801611388565b01949350505050565b60008251611561818460208701611388565b9190910192915050565b6000825161157d818460208701611388565b7f206e6f64653a2000000000000000000000000000000000000000000000000000920191825250600701919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff8103611620576116206115db565b60010192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008282101561166a5761166a6115db565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156116a7576116a76115db565b500290565b600181815b8085111561170557817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156116eb576116eb6115db565b808516156116f857918102915b93841c93908002906116b1565b509250929050565b60008261171c57506001610333565b8161172957506000610333565b816001811461173f576002811461174957611765565b6001915050610333565b60ff84111561175a5761175a6115db565b50506001821b610333565b5060208310610133831016604e8410600b8410161715611788575081810a610333565b61179283836116ac565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156117c4576117c46115db565b029392505050565b6000610e51838361170d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611816576118166117d8565b500490565b600060ff83168061182e5761182e6117d8565b8060ff84160491505092915050565b600060ff821660ff84168160ff04811182151516156117c4576117c46115db565b600060ff821660ff841680821015611878576118786115db565b90039392505050565b60008219821115611894576118946115db565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036118ca576118ca6115db565b5060010190565b600060ff821660ff84168060ff038211156118ee576118ee6115db565b01939250505056fea2646970667358221220504e59c82907e2f23b970e6f59e61282809e57a5d52d051976f95421d183cfc764736f6c634300080d0033';
diff --git a/packages/web3-zond-ens/test/fixtures/ens/reverse_registrar.json b/packages/web3-zond-zns/test/fixtures/zns/reverse_registrar.json
similarity index 88%
rename from packages/web3-zond-ens/test/fixtures/ens/reverse_registrar.json
rename to packages/web3-zond-zns/test/fixtures/zns/reverse_registrar.json
index a878744a..23feacac 100644
--- a/packages/web3-zond-ens/test/fixtures/ens/reverse_registrar.json
+++ b/packages/web3-zond-zns/test/fixtures/zns/reverse_registrar.json
@@ -1,5 +1,5 @@
{
"status": "1",
"message": "OK-Missing/Invalid API Key, rate limit of 1/5sec applied",
- "result": "[{\"inputs\":[{\"internalType\":\"contract ENS\",\"name\":\"ensAddr\",\"type\":\"address\"},{\"internalType\":\"contract Resolver\",\"name\":\"resolverAddr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"ADDR_REVERSE_NODE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"claimWithResolver\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"defaultResolver\",\"outputs\":[{\"internalType\":\"contract Resolver\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ens\",\"outputs\":[{\"internalType\":\"contract ENS\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"node\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
+ "result": "[{\"inputs\":[{\"internalType\":\"contract ZNS\",\"name\":\"znsAddr\",\"type\":\"address\"},{\"internalType\":\"contract Resolver\",\"name\":\"resolverAddr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"ADDR_REVERSE_NODE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"claimWithResolver\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"defaultResolver\",\"outputs\":[{\"internalType\":\"contract Resolver\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"zns\",\"outputs\":[{\"internalType\":\"contract ZNS\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"node\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
}
diff --git a/packages/web3-zond-ens/test/integration/jest.config.js b/packages/web3-zond-zns/test/integration/jest.config.js
similarity index 100%
rename from packages/web3-zond-ens/test/integration/jest.config.js
rename to packages/web3-zond-zns/test/integration/jest.config.js
diff --git a/packages/web3-zond-ens/test/integration/resolver.test.ts b/packages/web3-zond-zns/test/integration/resolver.test.ts
similarity index 78%
rename from packages/web3-zond-ens/test/integration/resolver.test.ts
rename to packages/web3-zond-zns/test/integration/resolver.test.ts
index cb35a977..9f77b52e 100644
--- a/packages/web3-zond-ens/test/integration/resolver.test.ts
+++ b/packages/web3-zond-zns/test/integration/resolver.test.ts
@@ -23,7 +23,7 @@ import { hexToAddress, sha3 } from '@theqrl/web3-utils';
import { Address, Bytes, DEFAULT_RETURN_FORMAT } from '@theqrl/web3-types';
// eslint-disable-next-line import/no-extraneous-dependencies
import { IpcProvider } from '@theqrl/web3-providers-ipc';
-import { ENS } from '../../src';
+import { ZNS } from '../../src';
import { namehash } from '../../src/utils';
import {
@@ -37,15 +37,15 @@ import {
itIf,
} from '../fixtures/system_tests_utils';
-import { ENSRegistryAbi } from '../fixtures/ens/abi/ENSRegistry';
-import { PublicResolverAbi } from '../fixtures/ens/abi/PublicResolver';
-import { NameWrapperAbi } from '../fixtures/ens/abi/NameWrapper';
-import { ENSRegistryBytecode } from '../fixtures/ens/bytecode/ENSRegistryBytecode';
-import { NameWrapperBytecode } from '../fixtures/ens/bytecode/NameWrapperBytecode';
-import { PublicResolverBytecode } from '../fixtures/ens/bytecode/PublicResolverBytecode';
+import { ZNSRegistryAbi } from '../fixtures/zns/abi/ZNSRegistry';
+import { PublicResolverAbi } from '../fixtures/zns/abi/PublicResolver';
+import { NameWrapperAbi } from '../fixtures/zns/abi/NameWrapper';
+import { ZNSRegistryBytecode } from '../fixtures/zns/bytecode/ZNSRegistryBytecode';
+import { NameWrapperBytecode } from '../fixtures/zns/bytecode/NameWrapperBytecode';
+import { PublicResolverBytecode } from '../fixtures/zns/bytecode/PublicResolverBytecode';
-describe('ens', () => {
- let registry: Contract;
+describe('zns', () => {
+ let registry: Contract;
let resolver: Contract;
let nameWrapper: Contract;
@@ -61,7 +61,7 @@ describe('ens', () => {
let web3Zond: Web3Zond;
let accounts: string[];
- let ens: ENS;
+ let zns: ZNS;
let defaultAccount: string;
let accountOne: string;
@@ -79,7 +79,7 @@ describe('ens', () => {
sendOptions = { from: defaultAccount, gas: '10000000' };
- const Registry = new Contract(ENSRegistryAbi, undefined, {
+ const Registry = new Contract(ZNSRegistryAbi, undefined, {
provider: getSystemTestProvider(),
});
@@ -91,7 +91,7 @@ describe('ens', () => {
provider: getSystemTestProvider(),
});
- registry = await Registry.deploy({ data: ENSRegistryBytecode }).send(sendOptions);
+ registry = await Registry.deploy({ data: ZNSRegistryBytecode }).send(sendOptions);
nameWrapper = await NameWrapper.deploy({ data: NameWrapperBytecode }).send(sendOptions);
@@ -118,10 +118,10 @@ describe('ens', () => {
const clientUrl = getSystemTestProviderUrl();
let provider;
if (isIpc) provider = new IpcProvider(clientUrl);
- else if (isWs) provider = new ENS.providers.WebsocketProvider(clientUrl);
- else provider = new ENS.providers.HttpProvider(clientUrl);
+ else if (isWs) provider = new ZNS.providers.WebsocketProvider(clientUrl);
+ else provider = new ZNS.providers.HttpProvider(clientUrl);
- ens = new ENS(registry.options.address, provider);
+ zns = new ZNS(registry.options.address, provider);
web3Zond = new Web3Zond(provider);
const block = await web3Zond.getBlock('latest', false, DEFAULT_RETURN_FORMAT);
@@ -136,9 +136,9 @@ describe('ens', () => {
afterAll(async () => {
if (isSocket) {
- await closeOpenConnection(ens);
+ await closeOpenConnection(zns);
// @ts-expect-error @typescript-eslint/ban-ts-comment
- await closeOpenConnection(ens?._registry?.contract);
+ await closeOpenConnection(zns?._registry?.contract);
await closeOpenConnection(registry);
await closeOpenConnection(resolver);
await closeOpenConnection(nameWrapper);
@@ -152,20 +152,20 @@ describe('ens', () => {
});
it('supports known interfaces', async () => {
- await expect(ens.supportsInterface('resolver', '0x3b3b57de')).resolves.toBeTruthy(); // IAddrResolver
- await expect(ens.supportsInterface('resolver', '0xf1cb7e06')).resolves.toBeTruthy(); // IAddressResolver
- await expect(ens.supportsInterface('resolver', '0x691f3431')).resolves.toBeTruthy(); // INameResolver
- await expect(ens.supportsInterface('resolver', '0x2203ab56')).resolves.toBeTruthy(); // IABIResolver
- await expect(ens.supportsInterface('resolver', '0xc8690233')).resolves.toBeTruthy(); // IPubkeyResolver
- await expect(ens.supportsInterface('resolver', '0x59d1d43c')).resolves.toBeTruthy(); // ITextResolver
- await expect(ens.supportsInterface('resolver', '0xbc1c58d1')).resolves.toBeTruthy(); // IContentHashResolver
- await expect(ens.supportsInterface('resolver', '0xa8fa5682')).resolves.toBeTruthy(); // IDNSRecordResolver
- await expect(ens.supportsInterface('resolver', '0x5c98042b')).resolves.toBeTruthy(); // IDNSZoneResolver
- await expect(ens.supportsInterface('resolver', '0x01ffc9a7')).resolves.toBeTruthy(); // IInterfaceResolver
+ await expect(zns.supportsInterface('resolver', '0x3b3b57de')).resolves.toBeTruthy(); // IAddrResolver
+ await expect(zns.supportsInterface('resolver', '0xf1cb7e06')).resolves.toBeTruthy(); // IAddressResolver
+ await expect(zns.supportsInterface('resolver', '0x691f3431')).resolves.toBeTruthy(); // INameResolver
+ await expect(zns.supportsInterface('resolver', '0x2203ab56')).resolves.toBeTruthy(); // IABIResolver
+ await expect(zns.supportsInterface('resolver', '0xc8690233')).resolves.toBeTruthy(); // IPubkeyResolver
+ await expect(zns.supportsInterface('resolver', '0x59d1d43c')).resolves.toBeTruthy(); // ITextResolver
+ await expect(zns.supportsInterface('resolver', '0xbc1c58d1')).resolves.toBeTruthy(); // IContentHashResolver
+ await expect(zns.supportsInterface('resolver', '0xa8fa5682')).resolves.toBeTruthy(); // IDNSRecordResolver
+ await expect(zns.supportsInterface('resolver', '0x5c98042b')).resolves.toBeTruthy(); // IDNSZoneResolver
+ await expect(zns.supportsInterface('resolver', '0x01ffc9a7')).resolves.toBeTruthy(); // IInterfaceResolver
});
it('does not support a random interface', async () => {
- await expect(ens.supportsInterface('resolver', '0x3b3b57df')).resolves.toBeFalsy();
+ await expect(zns.supportsInterface('resolver', '0x3b3b57df')).resolves.toBeFalsy();
});
it('fetch pubkey', async () => {
@@ -173,7 +173,7 @@ describe('ens', () => {
.setResolver(domainNode, resolver.options.address as string)
.send(sendOptions);
- const res = await ens.getPubkey(domain);
+ const res = await zns.getPubkey(domain);
expect(res.x).toBe('0x0000000000000000000000000000000000000000000000000000000000000000');
expect(res.y).toBe('0x0000000000000000000000000000000000000000000000000000000000000000');
});
@@ -184,7 +184,7 @@ describe('ens', () => {
await resolver.methods.setPubkey(domainNode, x, y).send(sendOptions);
- const result = await ens.getPubkey(domain);
+ const result = await zns.getPubkey(domain);
expect(result[0]).toBe(x);
expect(result[1]).toBe(y);
@@ -201,7 +201,7 @@ describe('ens', () => {
itIf(isSocket)('ContenthashChanged event', async () => {
// eslint-disable-next-line @typescript-eslint/no-misused-promises, no-async-promise-executor
await new Promise(async resolve => {
- const resolver2 = await ens.getResolver('resolver');
+ const resolver2 = await zns.getResolver('resolver');
const event = resolver2.events.ContenthashChanged();
event.on('data', () => {
@@ -214,7 +214,7 @@ describe('ens', () => {
it('fetches contenthash', async () => {
await resolver.methods.setContenthash(domainNode, contentHash).call(sendOptions);
- const res = await ens.getContenthash(domain);
+ const res = await zns.getContenthash(domain);
expect(res).toBe(contentHash);
});
@@ -238,9 +238,9 @@ describe('ens', () => {
await resolver.methods.setAddr(domainNode, accountOne).send(sendOptions);
- // NOTE(rgeraldes24): ens.getAddress(domain) return type is 'bytes';
+ // NOTE(rgeraldes24): zns.getAddress(domain) return type is 'bytes';
// value is not converted automatically to the 'address' type via ABI
- const resultAddress = await ens.getAddress(domain);
+ const resultAddress = await zns.getAddress(domain);
expect(hexToAddress(resultAddress.toString())).toBe(accountOne);
});
});
diff --git a/packages/web3-zond-ens/test/integration/setup.js b/packages/web3-zond-zns/test/integration/setup.js
similarity index 100%
rename from packages/web3-zond-ens/test/integration/setup.js
rename to packages/web3-zond-zns/test/integration/setup.js
diff --git a/packages/web3-zond-ens/test/integration/ens.events.test.ts b/packages/web3-zond-zns/test/integration/zns.events.test.ts
similarity index 78%
rename from packages/web3-zond-ens/test/integration/ens.events.test.ts
rename to packages/web3-zond-zns/test/integration/zns.events.test.ts
index 9e1f30cb..23718be4 100644
--- a/packages/web3-zond-ens/test/integration/ens.events.test.ts
+++ b/packages/web3-zond-zns/test/integration/zns.events.test.ts
@@ -23,7 +23,7 @@ import { getBlock } from '@theqrl/web3-zond';
import { Address, Bytes, DEFAULT_RETURN_FORMAT } from '@theqrl/web3-types';
// eslint-disable-next-line import/no-extraneous-dependencies
import { IpcProvider } from '@theqrl/web3-providers-ipc';
-import { ENS } from '../../src';
+import { ZNS } from '../../src';
import { namehash } from '../../src/utils';
import {
@@ -37,23 +37,23 @@ import {
getSystemTestProviderUrl,
} from '../fixtures/system_tests_utils';
-import { ENSRegistryAbi } from '../fixtures/ens/abi/ENSRegistry';
-import { ENSRegistryBytecode } from '../fixtures/ens/bytecode/ENSRegistryBytecode';
-import { NameWrapperAbi } from '../fixtures/ens/abi/NameWrapper';
-import { NameWrapperBytecode } from '../fixtures/ens/bytecode/NameWrapperBytecode';
-import { PublicResolverAbi } from '../fixtures/ens/abi/PublicResolver';
-import { PublicResolverBytecode } from '../fixtures/ens/bytecode/PublicResolverBytecode';
+import { ZNSRegistryAbi } from '../fixtures/zns/abi/ZNSRegistry';
+import { ZNSRegistryBytecode } from '../fixtures/zns/bytecode/ZNSRegistryBytecode';
+import { NameWrapperAbi } from '../fixtures/zns/abi/NameWrapper';
+import { NameWrapperBytecode } from '../fixtures/zns/bytecode/NameWrapperBytecode';
+import { PublicResolverAbi } from '../fixtures/zns/abi/PublicResolver';
+import { PublicResolverBytecode } from '../fixtures/zns/bytecode/PublicResolverBytecode';
-describeIf(isSocket)('ens events', () => {
- let registry: Contract;
+describeIf(isSocket)('zns events', () => {
+ let registry: Contract;
let resolver: Contract;
let nameWrapper: Contract;
type ResolverContract = Contract;
let Resolver: ResolverContract;
- let setEnsResolver: ResolverContract;
- let getEnsResolver: ResolverContract;
+ let setZnsResolver: ResolverContract;
+ let getZnsResolver: ResolverContract;
let sendOptions: PayableTxOptions;
@@ -63,7 +63,7 @@ describeIf(isSocket)('ens events', () => {
const label = sha3('resolver') as string;
let accounts: string[];
- let ens: ENS;
+ let zns: ZNS;
let defaultAccount: string;
let accountOne: string;
@@ -77,7 +77,7 @@ describeIf(isSocket)('ens events', () => {
sendOptions = { from: defaultAccount, gas: '10000000' };
- const Registry = new Contract(ENSRegistryAbi, undefined, {
+ const Registry = new Contract(ZNSRegistryAbi, undefined, {
provider: getSystemTestProvider(),
});
@@ -89,7 +89,7 @@ describeIf(isSocket)('ens events', () => {
provider: getSystemTestProvider(),
});
- registry = await Registry.deploy({ data: ENSRegistryBytecode }).send(sendOptions);
+ registry = await Registry.deploy({ data: ZNSRegistryBytecode }).send(sendOptions);
nameWrapper = await NameWrapper.deploy({ data: NameWrapperBytecode }).send(sendOptions);
@@ -116,12 +116,12 @@ describeIf(isSocket)('ens events', () => {
const clientUrl = getSystemTestProviderUrl();
let provider;
if (isIpc) provider = new IpcProvider(clientUrl);
- else if (isWs) provider = new ENS.providers.WebsocketProvider(clientUrl);
- else provider = new ENS.providers.HttpProvider(clientUrl);
+ else if (isWs) provider = new ZNS.providers.WebsocketProvider(clientUrl);
+ else provider = new ZNS.providers.HttpProvider(clientUrl);
- ens = new ENS(registry.options.address, provider);
+ zns = new ZNS(registry.options.address, provider);
- const block = await getBlock(ens, 'latest', false, DEFAULT_RETURN_FORMAT);
+ const block = await getBlock(zns, 'latest', false, DEFAULT_RETURN_FORMAT);
const gas = block.gasLimit.toString();
// Increase gas for contract calls
@@ -132,11 +132,11 @@ describeIf(isSocket)('ens events', () => {
});
afterAll(async () => {
- await closeOpenConnection(ens);
+ await closeOpenConnection(zns);
// @ts-expect-error @typescript-eslint/ban-ts-comment
- await closeOpenConnection(ens?._registry?.contract);
- await closeOpenConnection(getEnsResolver);
- await closeOpenConnection(setEnsResolver);
+ await closeOpenConnection(zns?._registry?.contract);
+ await closeOpenConnection(getZnsResolver);
+ await closeOpenConnection(setZnsResolver);
await closeOpenConnection(registry);
await closeOpenConnection(resolver);
await closeOpenConnection(nameWrapper);
@@ -153,7 +153,7 @@ describeIf(isSocket)('ens events', () => {
it('NewResolver event', async () => {
// eslint-disable-next-line @typescript-eslint/no-misused-promises, no-async-promise-executor
await new Promise(async resolve => {
- const event = ens.events.NewResolver();
+ const event = zns.events.NewResolver();
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
event.on('data', () => {
diff --git a/packages/web3-zond-ens/test/integration/ens.test.ts b/packages/web3-zond-zns/test/integration/zns.test.ts
similarity index 76%
rename from packages/web3-zond-ens/test/integration/ens.test.ts
rename to packages/web3-zond-zns/test/integration/zns.test.ts
index a53cbf37..0a31de09 100644
--- a/packages/web3-zond-ens/test/integration/ens.test.ts
+++ b/packages/web3-zond-zns/test/integration/zns.test.ts
@@ -22,7 +22,7 @@ import { Address, Bytes, DEFAULT_RETURN_FORMAT } from '@theqrl/web3-types';
import { sha3, toChecksumAddress } from '@theqrl/web3-utils';
// eslint-disable-next-line import/no-extraneous-dependencies
import { IpcProvider } from '@theqrl/web3-providers-ipc';
-import { ENS } from '../../src';
+import { ZNS } from '../../src';
import { namehash } from '../../src/utils';
import {
@@ -35,23 +35,23 @@ import {
isWs,
} from '../fixtures/system_tests_utils';
-import { PublicResolverAbi as PublicResolver } from '../../src/abi/ens/PublicResolver';
-import { ENSRegistryAbi } from '../fixtures/ens/abi/ENSRegistry';
-import { NameWrapperAbi } from '../fixtures/ens/abi/NameWrapper';
-import { PublicResolverAbi } from '../fixtures/ens/abi/PublicResolver';
-import { ENSRegistryBytecode } from '../fixtures/ens/bytecode/ENSRegistryBytecode';
-import { NameWrapperBytecode } from '../fixtures/ens/bytecode/NameWrapperBytecode';
-import { PublicResolverBytecode } from '../fixtures/ens/bytecode/PublicResolverBytecode';
+import { PublicResolverAbi as PublicResolver } from '../../src/abi/zns/PublicResolver';
+import { ZNSRegistryAbi } from '../fixtures/zns/abi/ZNSRegistry';
+import { NameWrapperAbi } from '../fixtures/zns/abi/NameWrapper';
+import { PublicResolverAbi } from '../fixtures/zns/abi/PublicResolver';
+import { ZNSRegistryBytecode } from '../fixtures/zns/bytecode/ZNSRegistryBytecode';
+import { NameWrapperBytecode } from '../fixtures/zns/bytecode/NameWrapperBytecode';
+import { PublicResolverBytecode } from '../fixtures/zns/bytecode/PublicResolverBytecode';
-describe('ens', () => {
- let registry: Contract;
+describe('zns', () => {
+ let registry: Contract;
let resolver: Contract;
let nameWrapper: Contract;
type ResolverContract = Contract;
let Resolver: ResolverContract;
- let getEnsResolver: Contract;
+ let getZnsResolver: Contract;
let sendOptions: PayableTxOptions;
@@ -64,7 +64,7 @@ describe('ens', () => {
const web3jsName = 'web3js.test';
let accounts: string[];
- let ens: ENS;
+ let zns: ZNS;
let defaultAccount: string;
let accountOne: string;
@@ -78,7 +78,7 @@ describe('ens', () => {
sendOptions = { from: defaultAccount, gas: '10000000' };
- const Registry = new Contract(ENSRegistryAbi, undefined, {
+ const Registry = new Contract(ZNSRegistryAbi, undefined, {
provider: getSystemTestProvider(),
});
@@ -90,7 +90,7 @@ describe('ens', () => {
provider: getSystemTestProvider(),
});
- registry = await Registry.deploy({ data: ENSRegistryBytecode }).send(sendOptions);
+ registry = await Registry.deploy({ data: ZNSRegistryBytecode }).send(sendOptions);
nameWrapper = await NameWrapper.deploy({ data: NameWrapperBytecode }).send(sendOptions);
@@ -117,12 +117,12 @@ describe('ens', () => {
const clientUrl = getSystemTestProviderUrl();
let provider;
if (isIpc) provider = new IpcProvider(clientUrl);
- else if (isWs) provider = new ENS.providers.WebsocketProvider(clientUrl);
- else provider = new ENS.providers.HttpProvider(clientUrl);
+ else if (isWs) provider = new ZNS.providers.WebsocketProvider(clientUrl);
+ else provider = new ZNS.providers.HttpProvider(clientUrl);
- ens = new ENS(registry.options.address, provider);
+ zns = new ZNS(registry.options.address, provider);
- const block = await getBlock(ens, 'latest', false, DEFAULT_RETURN_FORMAT);
+ const block = await getBlock(zns, 'latest', false, DEFAULT_RETURN_FORMAT);
const gas = block.gasLimit.toString();
// Increase gas for contract calls
@@ -134,10 +134,10 @@ describe('ens', () => {
afterAll(async () => {
if (isSocket) {
- await closeOpenConnection(ens);
+ await closeOpenConnection(zns);
// @ts-expect-error @typescript-eslint/ban-ts-comment
- await closeOpenConnection(ens?._registry?.contract);
- await closeOpenConnection(getEnsResolver);
+ await closeOpenConnection(zns?._registry?.contract);
+ await closeOpenConnection(getZnsResolver);
await closeOpenConnection(registry);
await closeOpenConnection(resolver);
await closeOpenConnection(nameWrapper);
@@ -152,25 +152,25 @@ describe('ens', () => {
});
it('should return the subnode owner of "resolver"', async () => {
- const owner = await ens.getOwner('resolver');
+ const owner = await zns.getOwner('resolver');
expect(owner).toEqual(toChecksumAddress(defaultAccount));
});
it('should return the registered resolver for the subnode "resolver"', async () => {
- getEnsResolver = await ens.getResolver('resolver');
+ getZnsResolver = await zns.getResolver('resolver');
- expect(getEnsResolver.options.address).toEqual(resolver.options.address);
+ expect(getZnsResolver.options.address).toEqual(resolver.options.address);
});
it('should get the owner record for a name', async () => {
- const web3jsOwner = await ens.getOwner(web3jsName);
+ const web3jsOwner = await zns.getOwner(web3jsName);
expect(web3jsOwner).toEqual(toChecksumAddress(defaultAccount));
});
it('should get TTL', async () => {
- const TTL = await ens.getTTL(web3jsName);
+ const TTL = await zns.getTTL(web3jsName);
expect(TTL).toBe(BigInt(0));
});
@@ -180,7 +180,7 @@ describe('ens', () => {
.setSubnodeOwner(namehash(domain), sha3(subdomain) as string, defaultAccount)
.send(sendOptions);
- const exists = await ens.recordExists(fullDomain);
+ const exists = await zns.recordExists(fullDomain);
expect(exists).toBeTruthy();
});
diff --git a/packages/web3-zond-ens/test/tsconfig.json b/packages/web3-zond-zns/test/tsconfig.json
similarity index 100%
rename from packages/web3-zond-ens/test/tsconfig.json
rename to packages/web3-zond-zns/test/tsconfig.json
diff --git a/packages/web3-zond-ens/test/unit/constructor.test.ts b/packages/web3-zond-zns/test/unit/constructor.test.ts
similarity index 75%
rename from packages/web3-zond-ens/test/unit/constructor.test.ts
rename to packages/web3-zond-zns/test/unit/constructor.test.ts
index 44f9444a..9ce4ae27 100644
--- a/packages/web3-zond-ens/test/unit/constructor.test.ts
+++ b/packages/web3-zond-zns/test/unit/constructor.test.ts
@@ -18,10 +18,10 @@ along with web3.js. If not, see .
import { Web3Context, Web3ContextObject } from '@theqrl/web3-core';
import { Registry } from '../../src/registry';
import { Resolver } from '../../src/resolver';
-import { ENS } from '../../src/ens';
+import { ZNS } from '../../src/zns';
import { registryAddresses } from '../../src/config';
-describe('ens', () => {
+describe('zns', () => {
let object: Web3ContextObject;
beforeAll(() => {
@@ -48,17 +48,17 @@ describe('ens', () => {
expect(resolver.getContenthash).toBeDefined();
});
- it('should construct main ens class with expected methods', () => {
- const ens = new ENS(registryAddresses.main, 'http://127.0.0.1:8545');
+ it('should construct main zns class with expected methods', () => {
+ const zns = new ZNS(registryAddresses.main, 'http://127.0.0.1:8545');
- expect(ens.getResolver).toBeDefined();
- expect(ens.recordExists).toBeDefined();
- expect(ens.getTTL).toBeDefined();
- expect(ens.getOwner).toBeDefined();
- expect(ens.getAddress).toBeDefined();
- expect(ens.getPubkey).toBeDefined();
- expect(ens.getContenthash).toBeDefined();
- expect(ens.checkNetwork).toBeDefined();
- expect(ens.supportsInterface).toBeDefined();
+ expect(zns.getResolver).toBeDefined();
+ expect(zns.recordExists).toBeDefined();
+ expect(zns.getTTL).toBeDefined();
+ expect(zns.getOwner).toBeDefined();
+ expect(zns.getAddress).toBeDefined();
+ expect(zns.getPubkey).toBeDefined();
+ expect(zns.getContenthash).toBeDefined();
+ expect(zns.checkNetwork).toBeDefined();
+ expect(zns.supportsInterface).toBeDefined();
});
});
diff --git a/packages/web3-zond-ens/test/unit/index.test.ts b/packages/web3-zond-zns/test/unit/index.test.ts
similarity index 92%
rename from packages/web3-zond-ens/test/unit/index.test.ts
rename to packages/web3-zond-zns/test/unit/index.test.ts
index ec6df8f7..d49ffa08 100644
--- a/packages/web3-zond-ens/test/unit/index.test.ts
+++ b/packages/web3-zond-zns/test/unit/index.test.ts
@@ -14,12 +14,12 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import * as ens from '../../src';
+import * as zns from '../../src';
import { registryAddresses } from '../../src';
describe('main package', () => {
it('should import', () => {
expect(registryAddresses).toBeDefined();
- expect(ens.ENS).toBeDefined();
+ expect(zns.ZNS).toBeDefined();
});
});
diff --git a/packages/web3-zond-ens/test/unit/jest.config.js b/packages/web3-zond-zns/test/unit/jest.config.js
similarity index 86%
rename from packages/web3-zond-ens/test/unit/jest.config.js
rename to packages/web3-zond-zns/test/unit/jest.config.js
index 1e018350..92306133 100644
--- a/packages/web3-zond-ens/test/unit/jest.config.js
+++ b/packages/web3-zond-zns/test/unit/jest.config.js
@@ -11,7 +11,7 @@ module.exports = {
[
'json',
{
- file: 'web3-zond-ens-unit-coverage.json',
+ file: 'web3-zond-zns-unit-coverage.json',
},
],
],
diff --git a/packages/web3-zond-ens/test/unit/registry.test.ts b/packages/web3-zond-zns/test/unit/registry.test.ts
similarity index 85%
rename from packages/web3-zond-ens/test/unit/registry.test.ts
rename to packages/web3-zond-zns/test/unit/registry.test.ts
index cac3df7b..ced1efd5 100644
--- a/packages/web3-zond-ens/test/unit/registry.test.ts
+++ b/packages/web3-zond-zns/test/unit/registry.test.ts
@@ -24,7 +24,7 @@ describe('registry', () => {
let object: Web3ContextObject;
let registry: Registry;
const mockAddress = 'Z0000000000000000000000000000000000000000';
- const ENS_NAME = 'web3js.eth';
+ const ZNS_NAME = 'web3js.znd';
beforeAll(() => {
const context = new Web3Context('http://test.com');
@@ -52,8 +52,8 @@ describe('registry', () => {
call,
} as unknown as NonPayableMethodObject);
- await registry.getOwner(ENS_NAME);
- expect(getOwnerMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ await registry.getOwner(ZNS_NAME);
+ expect(getOwnerMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
expect(call).toHaveBeenCalled();
});
it('getOwner throw (transaction reverted)', async () => {
@@ -67,9 +67,9 @@ describe('registry', () => {
.mockReturnValue({ call } as unknown as NonPayableMethodObject);
await expect(async () => {
- await registry.getOwner(ENS_NAME);
+ await registry.getOwner(ZNS_NAME);
}).rejects.toThrow(new Error());
- expect(getOwnerMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ expect(getOwnerMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
expect(call).toHaveBeenCalled();
});
});
@@ -83,8 +83,8 @@ describe('registry', () => {
call,
} as unknown as NonPayableMethodObject);
- await registry.getTTL(ENS_NAME);
- expect(getTTLMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ await registry.getTTL(ZNS_NAME);
+ expect(getTTLMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
expect(call).toHaveBeenCalled();
});
it('getTTL throw (transaction reverted)', async () => {
@@ -98,9 +98,9 @@ describe('registry', () => {
.mockReturnValue({ call } as unknown as NonPayableMethodObject);
await expect(async () => {
- await registry.getTTL(ENS_NAME);
+ await registry.getTTL(ZNS_NAME);
}).rejects.toThrow(new Error());
- expect(getTTLMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ expect(getTTLMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
expect(call).toHaveBeenCalled();
});
});
@@ -116,8 +116,8 @@ describe('registry', () => {
call,
} as unknown as NonPayableMethodObject);
- await registry.recordExists(ENS_NAME);
- expect(setRecordMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ await registry.recordExists(ZNS_NAME);
+ expect(setRecordMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
expect(call).toHaveBeenCalled();
});
it('recordExists throw (transaction reverted)', async () => {
@@ -133,9 +133,9 @@ describe('registry', () => {
} as unknown as NonPayableMethodObject);
await expect(async () => {
- await registry.recordExists(ENS_NAME);
+ await registry.recordExists(ZNS_NAME);
}).rejects.toThrow(new Error());
- expect(setRecordMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ expect(setRecordMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
expect(call).toHaveBeenCalled();
});
});
@@ -160,8 +160,8 @@ describe('registry', () => {
call,
} as unknown as NonPayableMethodObject);
- await registry.getResolver(ENS_NAME);
- expect(resolverMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ await registry.getResolver(ZNS_NAME);
+ expect(resolverMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
expect(call).toHaveBeenCalled();
});
@@ -185,9 +185,9 @@ describe('registry', () => {
} as unknown as NonPayableMethodObject);
await expect(async () => {
- await registry.getResolver(ENS_NAME);
+ await registry.getResolver(ZNS_NAME);
}).rejects.toThrow(new Error());
- expect(resolverMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ expect(resolverMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
expect(call).toHaveBeenCalled();
});
@@ -203,9 +203,9 @@ describe('registry', () => {
} as unknown as NonPayableMethodObject);
await expect(async () => {
- await registry.getResolver(ENS_NAME);
+ await registry.getResolver(ZNS_NAME);
}).rejects.toThrow(new Error());
- expect(resolverMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ expect(resolverMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
expect(call).toHaveBeenCalled();
});
});
diff --git a/packages/web3-zond-ens/test/unit/resolver.test.ts b/packages/web3-zond-zns/test/unit/resolver.test.ts
similarity index 92%
rename from packages/web3-zond-ens/test/unit/resolver.test.ts
rename to packages/web3-zond-zns/test/unit/resolver.test.ts
index 36d0dcd6..5e0ed2f6 100644
--- a/packages/web3-zond-ens/test/unit/resolver.test.ts
+++ b/packages/web3-zond-zns/test/unit/resolver.test.ts
@@ -19,7 +19,7 @@ import { Web3Context, Web3ContextObject } from '@theqrl/web3-core';
import { ResolverMethodMissingError } from '@theqrl/web3-errors';
import { Contract, NonPayableMethodObject } from '@theqrl/web3-zond-contract';
import { sha3 } from '@theqrl/web3-utils';
-import { PublicResolverAbi } from '../../src/abi/ens/PublicResolver';
+import { PublicResolverAbi } from '../../src/abi/zns/PublicResolver';
import { interfaceIds, methodsInInterface } from '../../src/config';
import { Registry } from '../../src/registry';
import { Resolver } from '../../src/resolver';
@@ -31,7 +31,7 @@ describe('resolver', () => {
let resolver: Resolver;
let contract: Contract;
const mockAddress = 'Z0000000000000000000000000000000000000000';
- const ENS_NAME = 'web3js.eth';
+ const ZNS_NAME = 'web3js.znd';
beforeAll(() => {
const context = new Web3Context('http://test.com');
@@ -124,11 +124,11 @@ describe('resolver', () => {
});
});
- await resolver.getAddress(ENS_NAME);
+ await resolver.getAddress(ZNS_NAME);
expect(supportsInterfaceMock).toHaveBeenCalledWith(
interfaceIds[methodsInInterface.addr],
);
- expect(addrMock).toHaveBeenCalledWith(namehash(ENS_NAME), 60);
+ expect(addrMock).toHaveBeenCalledWith(namehash(ZNS_NAME), 60);
});
});
@@ -152,11 +152,11 @@ describe('resolver', () => {
});
});
- await resolver.getPubkey(ENS_NAME);
+ await resolver.getPubkey(ZNS_NAME);
expect(supportsInterfaceMock).toHaveBeenCalledWith(
interfaceIds[methodsInInterface.pubkey],
);
- expect(pubkeyMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ expect(pubkeyMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
});
});
@@ -180,11 +180,11 @@ describe('resolver', () => {
});
});
- await resolver.getContenthash(ENS_NAME);
+ await resolver.getContenthash(ZNS_NAME);
expect(supportsInterfaceMock).toHaveBeenCalledWith(
interfaceIds[methodsInInterface.contenthash],
);
- expect(contenthashMock).toHaveBeenCalledWith(namehash(ENS_NAME));
+ expect(contenthashMock).toHaveBeenCalledWith(namehash(ZNS_NAME));
});
});
@@ -206,9 +206,9 @@ describe('resolver', () => {
call,
} as unknown as NonPayableMethodObject);
- await expect(resolver.supportsInterface(ENS_NAME, interfaceId)).resolves.not.toThrow();
+ await expect(resolver.supportsInterface(ZNS_NAME, interfaceId)).resolves.not.toThrow();
- // expect(setContenthashMock).toHaveBeenCalledWith(namehash(ENS_NAME), hash);
+ // expect(setContenthashMock).toHaveBeenCalledWith(namehash(ZNS_NAME), hash);
expect(supportsInterfaceMock).toHaveBeenCalledWith(sha3(interfaceId)?.substring(0, 10));
expect(call).toHaveBeenCalled();
});
@@ -221,7 +221,7 @@ describe('resolver', () => {
});
});
- await expect(resolver.supportsInterface(ENS_NAME, interfaceId)).rejects.toThrow(
+ await expect(resolver.supportsInterface(ZNS_NAME, interfaceId)).rejects.toThrow(
new Error('Invalid interface Id'),
);
});
@@ -246,10 +246,10 @@ describe('resolver', () => {
} as unknown as NonPayableMethodObject);
await expect(
- resolver.supportsInterface(ENS_NAME, interfaceId),
+ resolver.supportsInterface(ZNS_NAME, interfaceId),
).resolves.not.toThrow();
- // expect(setContenthashMock).toHaveBeenCalledWith(namehash(ENS_NAME), hash);
+ // expect(setContenthashMock).toHaveBeenCalledWith(namehash(ZNS_NAME), hash);
expect(supportsInterfaceMock).toHaveBeenCalledWith(
sha3(interfaceId)?.substring(0, 10),
);
diff --git a/packages/web3-zond-ens/test/unit/utils.test.ts b/packages/web3-zond-zns/test/unit/utils.test.ts
similarity index 97%
rename from packages/web3-zond-ens/test/unit/utils.test.ts
rename to packages/web3-zond-zns/test/unit/utils.test.ts
index e7cce3ed..ffdb2376 100644
--- a/packages/web3-zond-ens/test/unit/utils.test.ts
+++ b/packages/web3-zond-zns/test/unit/utils.test.ts
@@ -18,7 +18,7 @@ along with web3.js. If not, see .
import { namehash, normalize } from '../../src/utils';
import { namehashValidData, normalizeValidData } from '../fixtures/utils';
-describe('ens utils', () => {
+describe('zns utils', () => {
describe('namehash', () => {
describe('valid cases', () => {
it.each(namehashValidData)('%s', (input, output) => {
diff --git a/packages/web3-zond-ens/test/unit/ens.test.ts b/packages/web3-zond-zns/test/unit/zns.test.ts
similarity index 70%
rename from packages/web3-zond-ens/test/unit/ens.test.ts
rename to packages/web3-zond-zns/test/unit/zns.test.ts
index ef66ec98..3a09ce82 100644
--- a/packages/web3-zond-ens/test/unit/ens.test.ts
+++ b/packages/web3-zond-zns/test/unit/zns.test.ts
@@ -16,14 +16,16 @@ along with web3.js. If not, see .
*/
import { Web3Context, Web3ContextObject, Web3PromiEvent } from '@theqrl/web3-core';
-import { ENSNetworkNotSyncedError, ENSUnsupportedNetworkError } from '@theqrl/web3-errors';
+import { ZNSNetworkNotSyncedError, ZNSUnsupportedNetworkError } from '@theqrl/web3-errors';
import { Contract } from '@theqrl/web3-zond-contract';
-import { PublicResolverAbi } from '../../src/abi/ens/PublicResolver';
+import { PublicResolverAbi } from '../../src/abi/zns/PublicResolver';
import { registryAddresses } from '../../src/config';
-import { ENS } from '../../src/ens';
+import { ZNS } from '../../src/zns';
-jest.useFakeTimers().setSystemTime(new Date('2020-01-01'));
+Object.defineProperty(global, 'performance', {
+ writable: true,
+});
jest.mock('@theqrl/web3-zond', () => ({
__esModule: true,
@@ -40,30 +42,30 @@ jest.mock('@theqrl/web3-net', () => ({
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
const { getId } = require('@theqrl/web3-net');
-describe('ens', () => {
+describe('zns', () => {
let object: Web3ContextObject;
let resolverContract: Contract;
const mockAddress = 'Z0000000000000000000000000000000000000000';
- const ENS_NAME = 'web3js.zond';
- let ens: ENS;
+ const ZNS_NAME = 'web3js.zond';
+ let zns: ZNS;
beforeAll(() => {
const context = new Web3Context('http://test.com');
object = context.getContextObject();
resolverContract = new Contract(PublicResolverAbi, mockAddress);
- ens = new ENS(registryAddresses.main, object);
+ zns = new ZNS(registryAddresses.main, object);
});
describe('Resolver', () => {
it('getResolver', async () => {
const getResolverMock = jest
- .spyOn(ens['_registry'], 'getResolver')
+ .spyOn(zns['_registry'], 'getResolver')
.mockResolvedValue(resolverContract);
- await ens.getResolver(ENS_NAME);
+ await zns.getResolver(ZNS_NAME);
- expect(getResolverMock).toHaveBeenCalledWith(ENS_NAME);
+ expect(getResolverMock).toHaveBeenCalledWith(ZNS_NAME);
});
});
@@ -72,12 +74,12 @@ describe('ens', () => {
// eslint-disable-next-line @typescript-eslint/no-empty-function
const call = jest.spyOn({ call: () => {} }, 'call');
- const recordExistsMock = jest.spyOn(ens['_registry'], 'recordExists').mockReturnValue({
+ const recordExistsMock = jest.spyOn(zns['_registry'], 'recordExists').mockReturnValue({
call,
} as unknown as Web3PromiEvent);
- await ens.recordExists(ENS_NAME);
+ await zns.recordExists(ZNS_NAME);
- expect(recordExistsMock).toHaveBeenCalledWith(ENS_NAME);
+ expect(recordExistsMock).toHaveBeenCalledWith(ZNS_NAME);
});
});
@@ -86,12 +88,12 @@ describe('ens', () => {
// eslint-disable-next-line @typescript-eslint/no-empty-function
const call = jest.spyOn({ call: () => {} }, 'call');
- const getTTLMock = jest.spyOn(ens['_registry'], 'getTTL').mockReturnValue({
+ const getTTLMock = jest.spyOn(zns['_registry'], 'getTTL').mockReturnValue({
call,
} as unknown as Web3PromiEvent);
- await ens.getTTL(ENS_NAME);
- expect(getTTLMock).toHaveBeenCalledWith(ENS_NAME);
+ await zns.getTTL(ZNS_NAME);
+ expect(getTTLMock).toHaveBeenCalledWith(ZNS_NAME);
});
});
@@ -100,12 +102,12 @@ describe('ens', () => {
// eslint-disable-next-line @typescript-eslint/no-empty-function
const call = jest.spyOn({ call: () => {} }, 'call');
- const getOwnerMock = jest.spyOn(ens['_registry'], 'getOwner').mockReturnValue({
+ const getOwnerMock = jest.spyOn(zns['_registry'], 'getOwner').mockReturnValue({
call,
} as unknown as Web3PromiEvent);
- await ens.getOwner(ENS_NAME);
- expect(getOwnerMock).toHaveBeenCalledWith(ENS_NAME);
+ await zns.getOwner(ZNS_NAME);
+ expect(getOwnerMock).toHaveBeenCalledWith(ZNS_NAME);
});
});
@@ -114,19 +116,19 @@ describe('ens', () => {
// eslint-disable-next-line @typescript-eslint/no-empty-function
const call = jest.spyOn({ call: () => {} }, 'call');
- const addrMock = jest.spyOn(ens['_resolver'], 'getAddress').mockReturnValue({
+ const addrMock = jest.spyOn(zns['_resolver'], 'getAddress').mockReturnValue({
call,
} as unknown as Web3PromiEvent);
- await ens.getAddress(ENS_NAME);
+ await zns.getAddress(ZNS_NAME);
- expect(addrMock).toHaveBeenCalledWith(ENS_NAME, 60);
+ expect(addrMock).toHaveBeenCalledWith(ZNS_NAME, 60);
});
});
describe('events', () => {
it('get events', async () => {
- const { events } = ens;
+ const { events } = zns;
expect(typeof events.NewOwner).toBe('function');
expect(typeof events.allEvents).toBe('function');
expect(typeof events.NewResolver).toBe('function');
@@ -136,39 +138,39 @@ describe('ens', () => {
describe('constructor', () => {
it('default params', async () => {
- const localEns = new ENS();
- expect(localEns.provider).toBeUndefined();
- expect(localEns.registryAddress).toBe(registryAddresses.main);
+ const localZns = new ZNS();
+ expect(localZns.provider).toBeUndefined();
+ expect(localZns.registryAddress).toBe(registryAddresses.main);
});
it('set params', async () => {
- const localEns = new ENS(registryAddresses.main, 'http://127.0.0.1:8545');
+ const localZns = new ZNS(registryAddresses.main, 'http://127.0.0.1:8545');
// @ts-expect-error check clientUrl field
- expect(localEns.provider?.clientUrl).toBe('http://127.0.0.1:8545');
- expect(localEns.registryAddress).toBe(registryAddresses.main);
+ expect(localZns.provider?.clientUrl).toBe('http://127.0.0.1:8545');
+ expect(localZns.registryAddress).toBe(registryAddresses.main);
});
});
describe('pubkey', () => {
it('getPubkey', async () => {
- const pubkeyMock = jest.spyOn(ens['_resolver'], 'getPubkey').mockReturnValue({
+ const pubkeyMock = jest.spyOn(zns['_resolver'], 'getPubkey').mockReturnValue({
call: jest.fn(),
} as unknown as Web3PromiEvent);
- await ens.getPubkey(ENS_NAME);
- expect(pubkeyMock).toHaveBeenCalledWith(ENS_NAME);
+ await zns.getPubkey(ZNS_NAME);
+ expect(pubkeyMock).toHaveBeenCalledWith(ZNS_NAME);
});
describe('Contenthash', () => {
it('getContenthash', async () => {
const contenthashMock = jest
- .spyOn(ens['_resolver'], 'getContenthash')
+ .spyOn(zns['_resolver'], 'getContenthash')
.mockReturnValue({
call: jest.fn(),
} as unknown as Web3PromiEvent);
- await ens.getContenthash(ENS_NAME);
+ await zns.getContenthash(ZNS_NAME);
- expect(contenthashMock).toHaveBeenCalledWith(ENS_NAME);
+ expect(contenthashMock).toHaveBeenCalledWith(ZNS_NAME);
});
});
});
@@ -176,14 +178,14 @@ describe('ens', () => {
it('supportsInterface', async () => {
const interfaceId = 'setAddr';
const supportsInterfaceMock = jest
- .spyOn(ens['_resolver'], 'supportsInterface')
+ .spyOn(zns['_resolver'], 'supportsInterface')
.mockReturnValue({
call: jest.fn(),
} as unknown as Web3PromiEvent);
- await ens.supportsInterface(ENS_NAME, interfaceId);
+ await zns.supportsInterface(ZNS_NAME, interfaceId);
- expect(supportsInterfaceMock).toHaveBeenCalledWith(ENS_NAME, interfaceId);
+ expect(supportsInterfaceMock).toHaveBeenCalledWith(ZNS_NAME, interfaceId);
});
describe('CheckNetwork', () => {
@@ -193,7 +195,7 @@ describe('ens', () => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
isSyncing.mockReset();
});
- it('Not last sync/ENSNetworkNotSyncedError', async () => {
+ it('Not last sync/ZNSNetworkNotSyncedError', async () => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
getId.mockImplementation(() => expectedNetworkId);
@@ -205,10 +207,10 @@ describe('ens', () => {
highestBlock: 51266,
} as unknown;
});
- await expect(ens.checkNetwork()).rejects.toThrow(new ENSNetworkNotSyncedError());
+ await expect(zns.checkNetwork()).rejects.toThrow(new ZNSNetworkNotSyncedError());
});
- it('Threshold exceeded from previous check/ENSNetworkNotSyncedError', async () => {
+ it('Threshold exceeded from previous check/ZNSNetworkNotSyncedError', async () => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
getId.mockImplementation(() => expectedNetworkId);
@@ -218,17 +220,17 @@ describe('ens', () => {
return false;
});
// update `_lastSyncCheck`
- await ens.checkNetwork();
+ await zns.checkNetwork();
// now - this._lastSyncCheck > 3600)
jest.useFakeTimers().setSystemTime(new Date('2020-01-01').getTime() + 3601000); // (3600 + 1) * 1000
- await expect(ens.checkNetwork()).resolves.not.toThrow();
+ await expect(zns.checkNetwork()).resolves.not.toThrow();
});
- it('ENSUnsupportedNetworkError', async () => {
+ it('ZNSUnsupportedNetworkError', async () => {
// reset from previous check
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
- ens['_detectedAddress'] = undefined;
+ zns['_detectedAddress'] = undefined;
const network = 'AnUnsupportedNetwork';
@@ -244,8 +246,8 @@ describe('ens', () => {
} as unknown;
});
- await expect(ens.checkNetwork()).rejects.toThrow(
- new ENSUnsupportedNetworkError(network),
+ await expect(zns.checkNetwork()).rejects.toThrow(
+ new ZNSUnsupportedNetworkError(network),
);
});
});
diff --git a/packages/web3-zond-ens/tsconfig.cjs.json b/packages/web3-zond-zns/tsconfig.cjs.json
similarity index 100%
rename from packages/web3-zond-ens/tsconfig.cjs.json
rename to packages/web3-zond-zns/tsconfig.cjs.json
diff --git a/packages/web3-zond-ens/tsconfig.esm.json b/packages/web3-zond-zns/tsconfig.esm.json
similarity index 100%
rename from packages/web3-zond-ens/tsconfig.esm.json
rename to packages/web3-zond-zns/tsconfig.esm.json
diff --git a/packages/web3-zond-ens/tsconfig.types.json b/packages/web3-zond-zns/tsconfig.types.json
similarity index 100%
rename from packages/web3-zond-ens/tsconfig.types.json
rename to packages/web3-zond-zns/tsconfig.types.json
diff --git a/packages/web3-zond-ens/tsdoc.json b/packages/web3-zond-zns/tsdoc.json
similarity index 100%
rename from packages/web3-zond-ens/tsdoc.json
rename to packages/web3-zond-zns/tsdoc.json
diff --git a/packages/web3-zond/CHANGELOG.md b/packages/web3-zond/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3-zond/CHANGELOG.md
+++ b/packages/web3-zond/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3-zond/index.d.ts b/packages/web3-zond/index.d.ts
index 41645e41..f0207bf2 100644
--- a/packages/web3-zond/index.d.ts
+++ b/packages/web3-zond/index.d.ts
@@ -1 +1,17 @@
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
declare module '@theqrl/wallet.js';
diff --git a/packages/web3-zond/src/rpc_method_wrappers.ts b/packages/web3-zond/src/rpc_method_wrappers.ts
index 319eda8e..899cb4db 100644
--- a/packages/web3-zond/src/rpc_method_wrappers.ts
+++ b/packages/web3-zond/src/rpc_method_wrappers.ts
@@ -321,7 +321,11 @@ export async function getTransactionFromBlock(
transactionIndex: Numbers,
returnFormat: ReturnFormat,
) {
- const transactionIndexFormatted = format({ format: 'uint' }, transactionIndex, ZOND_DATA_FORMAT);
+ const transactionIndexFormatted = format(
+ { format: 'uint' },
+ transactionIndex,
+ ZOND_DATA_FORMAT,
+ );
let response;
if (isBytes(block)) {
diff --git a/packages/web3-zond/src/schemas.ts b/packages/web3-zond/src/schemas.ts
index 2f4cd78b..1fb6e74b 100644
--- a/packages/web3-zond/src/schemas.ts
+++ b/packages/web3-zond/src/schemas.ts
@@ -55,9 +55,7 @@ export const chainSchema = {
export const hardforkSchema = {
type: 'string',
- enum: [
- 'shanghai',
- ],
+ enum: ['shanghai'],
};
export const customChainSchema = {
diff --git a/packages/web3-zond/src/utils/detect_transaction_type.ts b/packages/web3-zond/src/utils/detect_transaction_type.ts
index 7fa14176..323f7cd7 100644
--- a/packages/web3-zond/src/utils/detect_transaction_type.ts
+++ b/packages/web3-zond/src/utils/detect_transaction_type.ts
@@ -17,7 +17,12 @@ along with web3.js. If not, see .
import { format, toHex } from '@theqrl/web3-utils';
import { TransactionTypeParser, Web3Context } from '@theqrl/web3-core';
-import { ZondExecutionAPI, HardforksOrdered, Transaction, ZOND_DATA_FORMAT } from '@theqrl/web3-types';
+import {
+ ZondExecutionAPI,
+ HardforksOrdered,
+ Transaction,
+ ZOND_DATA_FORMAT,
+} from '@theqrl/web3-types';
import { Web3ValidatorError, isNullish, validator } from '@theqrl/web3-validator';
import { InvalidPropertiesForTransactionTypeError } from '@theqrl/web3-errors';
@@ -27,11 +32,7 @@ const transactionType0x2Schema = {
type: 'object',
};
-const validateTxTypeAndHandleErrors = (
- txSchema: object,
- tx: Transaction,
- txType: '0x2',
-) => {
+const validateTxTypeAndHandleErrors = (txSchema: object, tx: Transaction, txType: '0x2') => {
try {
validator.validateJSONSchema(txSchema, tx);
} catch (error) {
@@ -89,5 +90,4 @@ export const detectTransactionType = (
transaction as unknown as Record,
);
-export const detectRawTransactionType = (transaction: Uint8Array) =>
- toHex(transaction[0]);
+export const detectRawTransactionType = (transaction: Uint8Array) => toHex(transaction[0]);
diff --git a/packages/web3-zond/src/utils/get_revert_reason.ts b/packages/web3-zond/src/utils/get_revert_reason.ts
index e00625b9..b69476f3 100644
--- a/packages/web3-zond/src/utils/get_revert_reason.ts
+++ b/packages/web3-zond/src/utils/get_revert_reason.ts
@@ -16,7 +16,11 @@ along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
-import { ContractExecutionError, Eip838ExecutionError, InvalidResponseError } from '@theqrl/web3-errors';
+import {
+ ContractExecutionError,
+ Eip838ExecutionError,
+ InvalidResponseError,
+} from '@theqrl/web3-errors';
import { decodeContractErrorData, isAbiErrorFragment } from '@theqrl/web3-zond-abi';
import {
AbiErrorFragment,
diff --git a/packages/web3-zond/src/utils/get_transaction_gas_pricing.ts b/packages/web3-zond/src/utils/get_transaction_gas_pricing.ts
index bcf8b5bb..06f72715 100644
--- a/packages/web3-zond/src/utils/get_transaction_gas_pricing.ts
+++ b/packages/web3-zond/src/utils/get_transaction_gas_pricing.ts
@@ -63,19 +63,14 @@ export async function getTransactionGasPricing(
web3Context: Web3Context,
returnFormat: ReturnFormat,
): Promise<
- | FormatType<
- { maxPriorityFeePerGas?: Numbers; maxFeePerGas?: Numbers },
- ReturnFormat
- >
- | undefined
+ FormatType<{ maxPriorityFeePerGas?: Numbers; maxFeePerGas?: Numbers }, ReturnFormat> | undefined
> {
const transactionType = getTransactionType(transaction, web3Context);
if (!isNullish(transactionType)) {
if (transactionType.startsWith('-'))
throw new UnsupportedTransactionTypeError(transactionType);
- if (transactionType !== '0x2')
- throw new UnsupportedTransactionTypeError(transactionType);
+ if (transactionType !== '0x2') throw new UnsupportedTransactionTypeError(transactionType);
return {
...(await getEip1559GasPricing(transaction, web3Context, returnFormat)),
diff --git a/packages/web3-zond/src/utils/prepare_transaction_for_signing.ts b/packages/web3-zond/src/utils/prepare_transaction_for_signing.ts
index 203514de..c24d91ab 100644
--- a/packages/web3-zond/src/utils/prepare_transaction_for_signing.ts
+++ b/packages/web3-zond/src/utils/prepare_transaction_for_signing.ts
@@ -18,7 +18,6 @@ along with web3.js. If not, see .
import {
ZondExecutionAPI,
HexString,
- PopulatedUnsignedEip1559Transaction,
PopulatedUnsignedTransaction,
Transaction,
ValidChains,
@@ -44,13 +43,13 @@ const getZondjsTxDataFromTransaction = (
type: transaction.type,
chainId: transaction.chainId,
accessList: (
- transaction as FormatType
+ transaction
).accessList,
maxPriorityFeePerGas: (
- transaction as FormatType
+ transaction
).maxPriorityFeePerGas,
maxFeePerGas: (
- transaction as FormatType
+ transaction
).maxFeePerGas,
});
diff --git a/packages/web3-zond/src/utils/reject_if_block_timeout.ts b/packages/web3-zond/src/utils/reject_if_block_timeout.ts
index bc8610be..de2587be 100644
--- a/packages/web3-zond/src/utils/reject_if_block_timeout.ts
+++ b/packages/web3-zond/src/utils/reject_if_block_timeout.ts
@@ -34,25 +34,24 @@ function resolveByPolling(
transactionHash?: Bytes,
): [Promise, ResourceCleaner] {
const pollingInterval = web3Context.transactionPollingInterval;
- const [intervalId, promiseToError] =
- rejectIfConditionAtInterval(async () => {
- let lastBlockNumber;
- try {
- lastBlockNumber = await getBlockNumber(web3Context, NUMBER_DATA_FORMAT);
- } catch (error) {
- console.warn('An error happen while trying to get the block number', error);
- return undefined;
- }
- const numberOfBlocks = lastBlockNumber - starterBlockNumber;
- if (numberOfBlocks >= web3Context.transactionBlockTimeout) {
- return new TransactionBlockTimeoutError({
- starterBlockNumber,
- numberOfBlocks,
- transactionHash,
- });
- }
+ const [intervalId, promiseToError] = rejectIfConditionAtInterval(async () => {
+ let lastBlockNumber;
+ try {
+ lastBlockNumber = await getBlockNumber(web3Context, NUMBER_DATA_FORMAT);
+ } catch (error) {
+ console.warn('An error happen while trying to get the block number', error);
return undefined;
- }, pollingInterval);
+ }
+ const numberOfBlocks = lastBlockNumber - starterBlockNumber;
+ if (numberOfBlocks >= web3Context.transactionBlockTimeout) {
+ return new TransactionBlockTimeoutError({
+ starterBlockNumber,
+ numberOfBlocks,
+ transactionHash,
+ });
+ }
+ return undefined;
+ }, pollingInterval);
const clean = () => {
clearInterval(intervalId);
diff --git a/packages/web3-zond/src/utils/transaction_builder.ts b/packages/web3-zond/src/utils/transaction_builder.ts
index f2fc9431..8b62e923 100644
--- a/packages/web3-zond/src/utils/transaction_builder.ts
+++ b/packages/web3-zond/src/utils/transaction_builder.ts
@@ -141,10 +141,11 @@ export async function defaultTransactionBuilder(option
if (isNullish(populatedTransaction.from)) {
let publicKey;
if (!isNullish(options.seed)) {
- const _seed = typeof options.seed === 'string' ? hexToBytes(options.seed): options.seed
- const buf = Buffer.from(_seed)
- const d = new Dilithium(buf)
- publicKey = d.getPK()
+ const _seed =
+ typeof options.seed === 'string' ? hexToBytes(options.seed) : options.seed;
+ const buf = Buffer.from(_seed);
+ const d = new Dilithium(buf);
+ publicKey = d.getPK();
}
populatedTransaction.from = getTransactionFromOrToAttr(
diff --git a/packages/web3-zond/src/validation.ts b/packages/web3-zond/src/validation.ts
index b259a7f1..a4ae0526 100644
--- a/packages/web3-zond/src/validation.ts
+++ b/packages/web3-zond/src/validation.ts
@@ -25,7 +25,13 @@ import {
TransactionWithSenderAPI,
ZOND_DATA_FORMAT,
} from '@theqrl/web3-types';
-import { isAddressString, isHexStrict, isHexString32Bytes, isNullish, isUInt } from '@theqrl/web3-validator';
+import {
+ isAddressString,
+ isHexStrict,
+ isHexString32Bytes,
+ isNullish,
+ isUInt,
+} from '@theqrl/web3-validator';
import {
ChainMismatchError,
HardforkMismatchError,
@@ -90,10 +96,7 @@ export function isTransaction1559Unsigned(value: Transaction1559UnsignedAPI): bo
export function isTransactionWithSender(value: TransactionWithSenderAPI): boolean {
if (!isAddressString(value.from)) return false;
if (!isBaseTransaction(value)) return false;
- if (
- !isTransaction1559Unsigned(value as Transaction1559UnsignedAPI)
- )
- return false;
+ if (!isTransaction1559Unsigned(value as Transaction1559UnsignedAPI)) return false;
return true;
}
@@ -180,14 +183,11 @@ export const validateHardfork = (transaction: InternalTransaction) => {
export const validateFeeMarketGas = (transaction: InternalTransaction) => {
// This check is verifying gas isn't less than 0.
- if (
- isNullish(transaction.gas) ||
- !isUInt(transaction.gas)
- )
+ if (isNullish(transaction.gas) || !isUInt(transaction.gas))
throw new InvalidGas({
gas: transaction.gas,
});
-
+
if (
isNullish(transaction.maxFeePerGas) ||
!isUInt(transaction.maxFeePerGas) ||
@@ -218,7 +218,6 @@ export const validateGas = (transaction: InternalTransaction) => {
maxFeePerGas: transaction.maxFeePerGas,
});
-
validateFeeMarketGas(transaction);
};
diff --git a/packages/web3-zond/src/web3_zond.ts b/packages/web3-zond/src/web3_zond.ts
index 97766da2..6aa3a992 100644
--- a/packages/web3-zond/src/web3_zond.ts
+++ b/packages/web3-zond/src/web3_zond.ts
@@ -153,7 +153,7 @@ export class Web3Zond extends Web3Context "0x4a817c800"
* ```
*/
- public async getMaxPriorityFeePerGas(
- returnFormat: ReturnFormat = DEFAULT_RETURN_FORMAT as ReturnFormat,
- ) {
+ public async getMaxPriorityFeePerGas<
+ ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT,
+ >(returnFormat: ReturnFormat = DEFAULT_RETURN_FORMAT as ReturnFormat) {
return rpcMethodsWrappers.getMaxPriorityFeePerGas(this, returnFormat);
}
@@ -174,7 +174,7 @@ export class Web3Zond extends Web3Context {
* maxFeePerGas: 40000000000n,
* maxPriorityFeePerGas: 20000000000n,
@@ -195,7 +195,7 @@ export class Web3Zond extends Web3Context {
const block = await this.getBlock<{ number: FMT_NUMBER.BIGINT; bytes: FMT_BYTES.HEX }>(
undefined,
@@ -267,7 +267,7 @@ export class Web3Zond extends Web3Context {
return process.env.TEST_ACCOUNT_PRIVATE_KEY;
// eslint-disable-next-line no-else-return
} else if (getSystemTestBackend() === 'testnet' || getSystemTestBackend() === 'mainnet') {
- return secrets[getSystemTestBackend().toUpperCase() as 'TESTNET' | 'MAINNET'].ACCOUNT
- .seed;
+ return secrets[getSystemTestBackend().toUpperCase() as 'TESTNET' | 'MAINNET'].ACCOUNT.seed;
}
throw new Error('Unable to get test account private key');
diff --git a/packages/web3-zond/test/fixtures/detect_transaction_type.ts b/packages/web3-zond/test/fixtures/detect_transaction_type.ts
index 5a3945e4..f8b699db 100644
--- a/packages/web3-zond/test/fixtures/detect_transaction_type.ts
+++ b/packages/web3-zond/test/fixtures/detect_transaction_type.ts
@@ -138,4 +138,5 @@ export const transactionTypeUndefined: FormatType[] = [];
+export const transactionTypeValidationError: FormatType[] =
+ [];
diff --git a/packages/web3-zond/test/fixtures/format_transaction.ts b/packages/web3-zond/test/fixtures/format_transaction.ts
index 9d658bd5..3058b44b 100644
--- a/packages/web3-zond/test/fixtures/format_transaction.ts
+++ b/packages/web3-zond/test/fixtures/format_transaction.ts
@@ -15,7 +15,13 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { FormatType, Transaction, DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER } from '@theqrl/web3-types';
+import {
+ FormatType,
+ Transaction,
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+} from '@theqrl/web3-types';
import { hexToBytes } from '@theqrl/web3-utils';
export const bytesAsHexStringTransaction: FormatType<
@@ -44,8 +50,10 @@ export const bytesAsHexStringTransaction: FormatType<
hardfork: 'shanghai',
},
gasLimit: BigInt('21000'),
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
export const bytesAsUint8ArrayTransaction: FormatType<
@@ -74,8 +82,12 @@ export const bytesAsUint8ArrayTransaction: FormatType<
hardfork: 'shanghai',
},
gasLimit: BigInt('21000'),
- publicKey: hexToBytes('0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d'),
- signature: hexToBytes('0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37'),
+ publicKey: hexToBytes(
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ ),
+ signature: hexToBytes(
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ ),
};
export const numbersAsHexStringTransaction: FormatType<
@@ -104,8 +116,10 @@ export const numbersAsHexStringTransaction: FormatType<
hardfork: 'shanghai',
},
gasLimit: '0x5208',
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
export const numbersAsNumberTransaction: FormatType<
@@ -134,8 +148,10 @@ export const numbersAsNumberTransaction: FormatType<
hardfork: 'shanghai',
},
gasLimit: 21000,
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
export const numbersAsStringTransaction: FormatType<
@@ -164,8 +180,10 @@ export const numbersAsStringTransaction: FormatType<
hardfork: 'shanghai',
},
gasLimit: '21000',
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
export const numbersAsBigIntTransaction: FormatType<
@@ -194,8 +212,10 @@ export const numbersAsBigIntTransaction: FormatType<
hardfork: 'shanghai',
},
gasLimit: BigInt(21000),
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
const dummyTransaction: Transaction = {
diff --git a/packages/web3-zond/test/fixtures/prepare_transaction_for_signing.ts b/packages/web3-zond/test/fixtures/prepare_transaction_for_signing.ts
index 0630d123..7da023ac 100644
--- a/packages/web3-zond/test/fixtures/prepare_transaction_for_signing.ts
+++ b/packages/web3-zond/test/fixtures/prepare_transaction_for_signing.ts
@@ -95,7 +95,7 @@ export const validTransactions: [
from: 'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
value: '1000000000',
input: '',
- common: common,
+ common,
accessList,
},
'0x89e5dc721ff0b98aac7f03f30763d54e31b8c773d6b98a8e81c73e78039897270fcbf94ae0f2422d294dbf17256e7051',
@@ -118,7 +118,7 @@ export const validTransactions: [
to: 'ZF0109fC8DF283027b6285cc889F5aA624EaC1F55',
value: '1000000000',
input: '',
- common: common,
+ common,
accessList,
},
'0x89e5dc721ff0b98aac7f03f30763d54e31b8c773d6b98a8e81c73e78039897270fcbf94ae0f2422d294dbf17256e7051',
@@ -141,7 +141,7 @@ export const validTransactions: [
from: 'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
value: '1000000000',
input: '',
- common: common,
+ common,
},
'0x89e5dc721ff0b98aac7f03f30763d54e31b8c773d6b98a8e81c73e78039897270fcbf94ae0f2422d294dbf17256e7051',
'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
@@ -162,7 +162,7 @@ export const validTransactions: [
to: 'ZF0109fC8DF283027b6285cc889F5aA624EaC1F55',
value: '1000000000',
input: '',
- common: common,
+ common,
},
'0x89e5dc721ff0b98aac7f03f30763d54e31b8c773d6b98a8e81c73e78039897270fcbf94ae0f2422d294dbf17256e7051',
'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
@@ -185,7 +185,7 @@ export const validTransactions: [
from: 'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
value: '1000000000',
input: '',
- common: common,
+ common,
accessList,
},
'0x89e5dc721ff0b98aac7f03f30763d54e31b8c773d6b98a8e81c73e78039897270fcbf94ae0f2422d294dbf17256e7051',
@@ -208,7 +208,7 @@ export const validTransactions: [
to: 'ZF0109fC8DF283027b6285cc889F5aA624EaC1F55',
value: '1000000000',
input: '',
- common: common,
+ common,
accessList,
},
'0x89e5dc721ff0b98aac7f03f30763d54e31b8c773d6b98a8e81c73e78039897270fcbf94ae0f2422d294dbf17256e7051',
@@ -231,7 +231,7 @@ export const validTransactions: [
from: 'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
value: '1000000000',
input: '',
- common: common,
+ common,
},
'0x89e5dc721ff0b98aac7f03f30763d54e31b8c773d6b98a8e81c73e78039897270fcbf94ae0f2422d294dbf17256e7051',
'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
@@ -253,7 +253,7 @@ export const validTransactions: [
from: 'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
value: '1000000000',
input: '',
- common: common,
+ common,
},
'0x89e5dc721ff0b98aac7f03f30763d54e31b8c773d6b98a8e81c73e78039897270fcbf94ae0f2422d294dbf17256e7051',
'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
@@ -274,7 +274,7 @@ export const validTransactions: [
to: 'ZF0109fC8DF283027b6285cc889F5aA624EaC1F55',
value: '1000000000',
input: '',
- common: common,
+ common,
},
'0x89e5dc721ff0b98aac7f03f30763d54e31b8c773d6b98a8e81c73e78039897270fcbf94ae0f2422d294dbf17256e7051',
'Z201BdF510d5aa66d1b5DB98dFB0f30D40b6Ea47D',
diff --git a/packages/web3-zond/test/fixtures/validate_transaction_for_signing.ts b/packages/web3-zond/test/fixtures/validate_transaction_for_signing.ts
index 59f4bbd6..d43f36c8 100644
--- a/packages/web3-zond/test/fixtures/validate_transaction_for_signing.ts
+++ b/packages/web3-zond/test/fixtures/validate_transaction_for_signing.ts
@@ -302,12 +302,7 @@ export const validateChainInfoData: [
export const validateGasData: [
FormatType | any,
- (
- | undefined
- | MissingGasError
- | InvalidGas
- | InvalidMaxPriorityFeePerGasOrMaxFeePerGas
- ),
+ undefined | MissingGasError | InvalidGas | InvalidMaxPriorityFeePerGasOrMaxFeePerGas,
][] = [
[
{
diff --git a/packages/web3-zond/test/fixtures/validation.ts b/packages/web3-zond/test/fixtures/validation.ts
index 3e44324f..655b660a 100644
--- a/packages/web3-zond/test/fixtures/validation.ts
+++ b/packages/web3-zond/test/fixtures/validation.ts
@@ -96,13 +96,8 @@ export const isTransaction1559UnsignedValidData = (): [Transaction1559UnsignedAP
];
});
-
-
-
export const isTransactionWithSenderValidData = (): [TransactionWithSenderAPI, true][] => {
- const transactions = [
- ...isTransaction1559UnsignedValidData(),
- ];
+ const transactions = [...isTransaction1559UnsignedValidData()];
return transactions.map(transaction => {
return [
{
@@ -118,9 +113,7 @@ export const validateTransactionWithSenderInvalidData = (): [
any,
InvalidTransactionWithSender,
][] => {
- const transactions = [
- ...isTransaction1559UnsignedValidData(),
- ];
+ const transactions = [...isTransaction1559UnsignedValidData()];
return transactions.map(transaction => {
return [transaction[0], new InvalidTransactionWithSender(transaction[0])];
});
diff --git a/packages/web3-zond/test/fixtures/web3_zond_methods_with_parameters.ts b/packages/web3-zond/test/fixtures/web3_zond_methods_with_parameters.ts
index 1f1edf71..3098cd55 100644
--- a/packages/web3-zond/test/fixtures/web3_zond_methods_with_parameters.ts
+++ b/packages/web3-zond/test/fixtures/web3_zond_methods_with_parameters.ts
@@ -2053,8 +2053,10 @@ export const tx = {
transactionIndex: '0',
value: '1',
type: '0x01',
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
export const txReceipt: TransactionReceipt = {
diff --git a/packages/web3-zond/test/integration/block/rpc.getBlock.test.ts b/packages/web3-zond/test/integration/block/rpc.getBlock.test.ts
index 24158267..6c7aa06a 100644
--- a/packages/web3-zond/test/integration/block/rpc.getBlock.test.ts
+++ b/packages/web3-zond/test/integration/block/rpc.getBlock.test.ts
@@ -85,7 +85,7 @@ describe('rpc with block', () => {
// tempAcc.address,
// '100000000000000000000',
// );
- sendOptions = { from: tempAcc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: tempAcc.address /* gas: '1000000' */ };
await contract.deploy(deployOptions).send(sendOptions);
const [receipt]: TransactionReceipt[] = await sendFewTxes({
diff --git a/packages/web3-zond/test/integration/block/rpc.getBlockTransactionCount.test.ts b/packages/web3-zond/test/integration/block/rpc.getBlockTransactionCount.test.ts
index 0a357e9a..0682556b 100644
--- a/packages/web3-zond/test/integration/block/rpc.getBlockTransactionCount.test.ts
+++ b/packages/web3-zond/test/integration/block/rpc.getBlockTransactionCount.test.ts
@@ -19,7 +19,7 @@ import { SupportedProviders, TransactionReceipt } from '@theqrl/web3-types';
import { Contract } from '@theqrl/web3-zond-contract';
import { Web3Zond } from '../../../src';
import {
- //getSystemTestBackend,
+ // getSystemTestBackend,
getSystemTestProvider,
createTempAccount,
closeOpenConnection,
@@ -67,7 +67,7 @@ describe('rpc with block', () => {
});
beforeAll(async () => {
tempAcc = await createTempAccount();
- sendOptions = { from: tempAcc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: tempAcc.address /* gas: '1000000' */ };
await contract.deploy(deployOptions).send(sendOptions);
const [receipt]: TransactionReceipt[] = await sendFewTxes({
diff --git a/packages/web3-zond/test/integration/block/rpc.getTransactionCount.test.ts b/packages/web3-zond/test/integration/block/rpc.getTransactionCount.test.ts
index 7bd5e597..4d914160 100644
--- a/packages/web3-zond/test/integration/block/rpc.getTransactionCount.test.ts
+++ b/packages/web3-zond/test/integration/block/rpc.getTransactionCount.test.ts
@@ -66,7 +66,7 @@ describe('rpc with block', () => {
});
beforeAll(async () => {
tempAcc = await createTempAccount();
- sendOptions = { from: tempAcc.address, /*gas: '1000000'*/ type:2 };
+ sendOptions = { from: tempAcc.address, /* gas: '1000000' */ type: 2 };
await contract.deploy(deployOptions).send(sendOptions);
const [receipt]: TransactionReceipt[] = await sendFewTxes({
diff --git a/packages/web3-zond/test/integration/block/rpc.getTransactionFromBlock.test.ts b/packages/web3-zond/test/integration/block/rpc.getTransactionFromBlock.test.ts
index e860d0cd..7bbd0dc6 100644
--- a/packages/web3-zond/test/integration/block/rpc.getTransactionFromBlock.test.ts
+++ b/packages/web3-zond/test/integration/block/rpc.getTransactionFromBlock.test.ts
@@ -65,7 +65,7 @@ describe('rpc with block', () => {
});
beforeAll(async () => {
tempAcc = await createTempAccount();
- sendOptions = { from: tempAcc.address, /*gas: '1000000'*/ type:2 };
+ sendOptions = { from: tempAcc.address, /* gas: '1000000' */ type: 2 };
await contract.deploy(deployOptions).send(sendOptions);
const [receipt]: TransactionReceipt[] = await sendFewTxes({
diff --git a/packages/web3-zond/test/integration/defaults.test.ts b/packages/web3-zond/test/integration/defaults.test.ts
index 2d95e98c..11110e0c 100644
--- a/packages/web3-zond/test/integration/defaults.test.ts
+++ b/packages/web3-zond/test/integration/defaults.test.ts
@@ -17,7 +17,12 @@ along with web3.js. If not, see .
// eslint-disable-next-line import/no-extraneous-dependencies
import { Contract } from '@theqrl/web3-zond-contract';
import { hexToNumber, numberToHex } from '@theqrl/web3-utils';
-import { TransactionBuilder, TransactionTypeParser, Web3Context, Web3PromiEvent } from '@theqrl/web3-core';
+import {
+ TransactionBuilder,
+ TransactionTypeParser,
+ Web3Context,
+ Web3PromiEvent,
+} from '@theqrl/web3-core';
import {
Hardfork,
SupportedProviders,
@@ -71,7 +76,7 @@ describe('defaults', () => {
data: BasicBytecode,
arguments: [10, 'string init value'],
};
- sendOptions = { from: tempAcc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: tempAcc.address /* gas: '1000000' */ };
});
afterEach(async () => {
@@ -91,7 +96,7 @@ describe('defaults', () => {
data: MsgSenderBytecode,
arguments: ['test'],
})
- .send({ from: tempAcc2.address, /*gas: '2700000',*/ });
+ .send({ from: tempAcc2.address /* gas: '2700000', */ });
// default
expect(web3Zond.defaultAccount).toBeUndefined();
@@ -117,10 +122,8 @@ describe('defaults', () => {
defaultAccount: tempAcc.address,
});
- const tx = await contractMsgFrom.methods
- .setTestString('test2')
- .send();
- //.send({ gas: '1000000' });
+ const tx = await contractMsgFrom.methods.setTestString('test2').send();
+ // .send({ gas: '1000000' });
const txSend = await web3Zond.sendTransaction({
to: tempAcc2.address,
value: '0x1',
@@ -485,9 +488,9 @@ describe('defaults', () => {
it('enableExperimentalFeatures useSubscriptionWhenCheckingBlockTimeout', () => {
// default
- expect(web3Zond.enableExperimentalFeatures.useSubscriptionWhenCheckingBlockTimeout).toBe(
- false,
- );
+ expect(
+ web3Zond.enableExperimentalFeatures.useSubscriptionWhenCheckingBlockTimeout,
+ ).toBe(false);
// after set
web3Zond.setConfig({
@@ -496,9 +499,9 @@ describe('defaults', () => {
useRpcCallSpecification: false,
},
});
- expect(web3Zond.enableExperimentalFeatures.useSubscriptionWhenCheckingBlockTimeout).toBe(
- true,
- );
+ expect(
+ web3Zond.enableExperimentalFeatures.useSubscriptionWhenCheckingBlockTimeout,
+ ).toBe(true);
// set by create new instance
zond2 = new Web3Zond({
@@ -798,11 +801,6 @@ describe('defaults', () => {
);
expect(res).toBe('0x4444');
- // test override to 0x2 if:
- // tx.maxFeePerGas !== undefined ||
- // tx.maxPriorityFeePerGas !== undefined ||
- // tx.hardfork === 'london' ||
- // tx.common?.hardfork === 'london'
const maxFeePerGasOverride = getTransactionType(
{
from: 'ZEB014f8c8B418Db6b45774c326A0E64C78914dC0',
@@ -867,9 +865,6 @@ describe('defaults', () => {
);
expect(commonOverride).toBe('0x2');
- // override to 0x1 if:
- // tx.accessList !== undefined || tx.hardfork === 'berlin' || tx.common?.hardfork === 'berlin'
-
const accessListOverride = getTransactionType(
{
from: 'ZEB014f8c8B418Db6b45774c326A0E64C78914dC0',
diff --git a/packages/web3-zond/test/integration/defaults.transactionBlockTimeout.test.ts b/packages/web3-zond/test/integration/defaults.transactionBlockTimeout.test.ts
index 75e6f948..9fa06277 100644
--- a/packages/web3-zond/test/integration/defaults.transactionBlockTimeout.test.ts
+++ b/packages/web3-zond/test/integration/defaults.transactionBlockTimeout.test.ts
@@ -26,15 +26,15 @@ import { SendTransactionEvents } from '../../src';
import {
closeOpenConnection,
getSystemTestProvider,
- //isSocket,
- //itIf,
- //waitForOpenConnection,
+ // isSocket,
+ // itIf,
+ // waitForOpenConnection,
createLocalAccount,
- //sendFewSampleTxs,
+ // sendFewSampleTxs,
} from '../fixtures/system_test_utils';
const MAX_32_SIGNED_INTEGER = 2147483647;
-//const gas = 21000;
+// const gas = 21000;
const type = BigInt(2);
/* eslint-disable jest/no-standalone-expect */
describe('defaults', () => {
@@ -71,7 +71,7 @@ describe('defaults', () => {
> = web3.zond.sendTransaction({
from: account1.address,
to: account2.address,
- //gas,
+ // gas,
type,
value: '0x1',
// Give a high nonce so the transaction stuck forever.
diff --git a/packages/web3-zond/test/integration/get_revert_reason.test.ts b/packages/web3-zond/test/integration/get_revert_reason.test.ts
index a2552553..7678d3b3 100644
--- a/packages/web3-zond/test/integration/get_revert_reason.test.ts
+++ b/packages/web3-zond/test/integration/get_revert_reason.test.ts
@@ -45,8 +45,9 @@ describe('Web3Zond.getRevertReason', () => {
simpleRevertDeployTransaction.gas = await web3Zond.estimateGas(
simpleRevertDeployTransaction,
);
- simpleRevertContractAddress = (await web3Zond.sendTransaction(simpleRevertDeployTransaction))
- .contractAddress as Address;
+ simpleRevertContractAddress = (
+ await web3Zond.sendTransaction(simpleRevertDeployTransaction)
+ ).contractAddress as Address;
});
it('should return reason for a contract call', async () => {
diff --git a/packages/web3-zond/test/integration/nonce.test.ts b/packages/web3-zond/test/integration/nonce.test.ts
index 9c62ac7e..09d53d41 100644
--- a/packages/web3-zond/test/integration/nonce.test.ts
+++ b/packages/web3-zond/test/integration/nonce.test.ts
@@ -27,7 +27,7 @@ import {
getSystemTestProvider,
} from '../fixtures/system_test_utils';
-//const gas = 30000;
+// const gas = 30000;
describe('defaults', () => {
let web3Zond: Web3Zond;
@@ -61,7 +61,7 @@ describe('defaults', () => {
to,
value,
from,
- //gas,
+ // gas,
// Give a high nonce so the transaction stuck forever.
// However, make this random to be able to run the test many times without receiving an error that indicate submitting the same transaction twice.
nonce: Number.MAX_SAFE_INTEGER,
diff --git a/packages/web3-zond/test/integration/rpc.test.ts b/packages/web3-zond/test/integration/rpc.test.ts
index bddfed58..81d96bf6 100644
--- a/packages/web3-zond/test/integration/rpc.test.ts
+++ b/packages/web3-zond/test/integration/rpc.test.ts
@@ -25,7 +25,12 @@ import {
} from '@theqrl/web3-types';
// eslint-disable-next-line import/no-extraneous-dependencies
import { Contract, decodeEventABI } from '@theqrl/web3-zond-contract';
-import { hexToNumber, hexToString, numberToHex, getStorageSlotNumForLongString } from '@theqrl/web3-utils';
+import {
+ hexToNumber,
+ hexToString,
+ numberToHex,
+ getStorageSlotNumForLongString,
+} from '@theqrl/web3-utils';
// eslint-disable-next-line import/no-extraneous-dependencies
import { Web3Zond } from '../../src';
@@ -71,7 +76,7 @@ describe('rpc', () => {
arguments: [10, 'string init value'],
};
tempAcc = await createTempAccount();
- sendOptions = { from: tempAcc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: tempAcc.address /* gas: '1000000' */ };
contractDeployed = await contract.deploy(deployOptions).send(sendOptions);
});
@@ -118,7 +123,7 @@ describe('rpc', () => {
expect(typeof res).toBe(mapFormatToType[format as string]);
expect(parseInt(String(res), 16)).toBeGreaterThan(0);
});
-
+
it.each(Object.values(FMT_NUMBER))('getBalance', async format => {
const value = '0xa';
const newAccount = await createNewAccount();
@@ -237,7 +242,7 @@ describe('rpc', () => {
// TODO: after alpha release add tests for matching following (value transferred)
// TODO: after alpha release add tests for matching following (specify some random inputData in tx and validate in test with getTransaction)
- validateTransaction(res as TransactionInfo, {type: 2});
+ validateTransaction(res as TransactionInfo, { type: 2 });
expect(res?.hash).toBe(receipt.transactionHash);
});
@@ -278,7 +283,6 @@ describe('rpc', () => {
// expect(res[0]).toEqual(tempAcc.address);
});
-
it('getPastLogs', async () => {
const listOfStrings = ['t1', 't2', 't3'];
const resTx = [];
diff --git a/packages/web3-zond/test/integration/setup.js b/packages/web3-zond/test/integration/setup.js
index e92c1d3c..1f7e77c3 100644
--- a/packages/web3-zond/test/integration/setup.js
+++ b/packages/web3-zond/test/integration/setup.js
@@ -20,6 +20,6 @@ along with web3.js. If not, see .
require('../config/setup');
const jestTimeout = process.env.WEB3_SYSTEM_TEST_PROVIDER.includes('ipc') ? 120000 : 120000;
-//const jestTimeout = process.env.WEB3_SYSTEM_TEST_PROVIDER.includes('ipc') ? 60000 : 50000;
+// const jestTimeout = process.env.WEB3_SYSTEM_TEST_PROVIDER.includes('ipc') ? 60000 : 50000;
jest.setTimeout(jestTimeout);
diff --git a/packages/web3-zond/test/integration/web3_zond/send_transaction.test.ts b/packages/web3-zond/test/integration/web3_zond/send_transaction.test.ts
index 04d4a918..be9f17b7 100644
--- a/packages/web3-zond/test/integration/web3_zond/send_transaction.test.ts
+++ b/packages/web3-zond/test/integration/web3_zond/send_transaction.test.ts
@@ -30,6 +30,7 @@ import {
import { Wallet } from '@theqrl/web3-zond-accounts';
import { isHexStrict } from '@theqrl/web3-validator';
+import { isNullish } from '@theqrl/web3-utils';
import Web3Zond from '../../../src';
import {
closeOpenConnection,
@@ -39,7 +40,6 @@ import {
getSystemTestProvider,
} from '../../fixtures/system_test_utils';
import { SimpleRevertAbi, SimpleRevertDeploymentData } from '../../fixtures/simple_revert';
-import { isNullish } from '@theqrl/web3-utils';
describe('Web3Zond.sendTransaction', () => {
let web3Zond: Web3Zond;
@@ -321,23 +321,22 @@ describe('Web3Zond.sendTransaction', () => {
});
it('should send type 0x2 transaction with maxPriorityFeePerGas got from await web3Zond.getMaxPriorityFeePerGas()', async () => {
- const transaction: Transaction = {
- from: tempAcc.address,
- to: 'Z0000000000000000000000000000000000000000',
- value: BigInt(1),
- maxPriorityFeePerGas: await web3Zond.getMaxPriorityFeePerGas(),
- };
- const response = await web3Zond.sendTransaction(transaction);
+ const transaction: Transaction = {
+ from: tempAcc.address,
+ to: 'Z0000000000000000000000000000000000000000',
+ value: BigInt(1),
+ maxPriorityFeePerGas: await web3Zond.getMaxPriorityFeePerGas(),
+ };
+ const response = await web3Zond.sendTransaction(transaction);
- // eslint-disable-next-line jest/no-standalone-expect
- expect(response.type).toBe(BigInt(2));
- // eslint-disable-next-line jest/no-standalone-expect
- expect(response.status).toBe(BigInt(1));
- const minedTransactionData = await web3Zond.getTransaction(response.transactionHash);
- // eslint-disable-next-line jest/no-standalone-expect
- expect(minedTransactionData).toMatchObject(transaction);
- },
- );
+ // eslint-disable-next-line jest/no-standalone-expect
+ expect(response.type).toBe(BigInt(2));
+ // eslint-disable-next-line jest/no-standalone-expect
+ expect(response.status).toBe(BigInt(1));
+ const minedTransactionData = await web3Zond.getTransaction(response.transactionHash);
+ // eslint-disable-next-line jest/no-standalone-expect
+ expect(minedTransactionData).toMatchObject(transaction);
+ });
describe('Transaction PromiEvents', () => {
let transaction: Transaction;
@@ -477,7 +476,7 @@ describe('Web3Zond.sendTransaction', () => {
.on('error', error => expect(error).toMatchObject(expectedThrownError)),
).rejects.toMatchObject(expectedThrownError);
});
-
+
it('Should throw TransactionRevertInstructionError because insufficient funds', async () => {
const transaction: Transaction = {
from: tempAcc.address,
diff --git a/packages/web3-zond/test/integration/zond.test.ts b/packages/web3-zond/test/integration/zond.test.ts
index f0378413..0bec2100 100644
--- a/packages/web3-zond/test/integration/zond.test.ts
+++ b/packages/web3-zond/test/integration/zond.test.ts
@@ -64,7 +64,7 @@ describe('zond', () => {
arguments: [10, 'string init value'],
};
- sendOptions = { from: tempAcc.address, /*gas: '1000000'*/ };
+ sendOptions = { from: tempAcc.address /* gas: '1000000' */ };
const deployedContract = await contract.deploy(deployOptions).send(sendOptions);
const { provider } = web3Zond;
diff --git a/packages/web3-zond/test/unit/default_transaction_builder.test.ts b/packages/web3-zond/test/unit/default_transaction_builder.test.ts
index c9f2c386..e2cf5698 100644
--- a/packages/web3-zond/test/unit/default_transaction_builder.test.ts
+++ b/packages/web3-zond/test/unit/default_transaction_builder.test.ts
@@ -329,22 +329,6 @@ describe('defaultTransactionBuilder', () => {
});
describe('should populate hardfork', () => {
- /*
- it('should populate with london', async () => {
- const input = { ...transaction };
- delete input.hardfork;
- delete input.common;
- delete input.maxPriorityFeePerGas;
- delete input.maxFeePerGas;
-
- const result = await defaultTransactionBuilder({
- transaction: input,
- web3Context,
- fillGasPrice: true,
- });
- expect(result.hardfork).toBe('london');
- });
- */
it('should populate with shanghai', async () => {
const input = { ...transaction };
delete input.hardfork;
@@ -541,7 +525,7 @@ describe('defaultTransactionBuilder', () => {
web3Context,
fillGasPrice: true,
});
- expect(result.maxPriorityFeePerGas).toBe(expectedMaxPriorityFeePerGas); // 2.5 Gwei, hardcoded in defaultTransactionBuilder;
+ expect(result.maxPriorityFeePerGas).toBe(expectedMaxPriorityFeePerGas); // 2.5 Gplanck, hardcoded in defaultTransactionBuilder;
expect(result.maxFeePerGas).toBe(expectedMaxFeePerGas);
});
@@ -555,7 +539,7 @@ describe('defaultTransactionBuilder', () => {
web3Context,
fillGasPrice: true,
});
- expect(result.maxPriorityFeePerGas).toBe(expectedMaxPriorityFeePerGas); // 2.5 Gwei, hardcoded in defaultTransactionBuilder;
+ expect(result.maxPriorityFeePerGas).toBe(expectedMaxPriorityFeePerGas); // 2.5 Gplanck, hardcoded in defaultTransactionBuilder;
expect(result.maxFeePerGas).toBe(expectedMaxFeePerGas);
});
@@ -569,7 +553,7 @@ describe('defaultTransactionBuilder', () => {
web3Context,
fillGasPrice: true,
});
- expect(result.maxPriorityFeePerGas).toBe(expectedMaxPriorityFeePerGas); // 2.5 Gwei, hardcoded in defaultTransactionBuilder;
+ expect(result.maxPriorityFeePerGas).toBe(expectedMaxPriorityFeePerGas); // 2.5 Gplanck, hardcoded in defaultTransactionBuilder;
expect(result.maxFeePerGas).toBe(expectedMaxFeePerGas);
});
@@ -591,7 +575,7 @@ describe('defaultTransactionBuilder', () => {
web3Context,
fillGasPrice: true,
});
- expect(result.maxPriorityFeePerGas).toBe(web3Context.defaultMaxPriorityFeePerGas); // 2.5 Gwei, hardcoded in defaultTransactionBuilder;
+ expect(result.maxPriorityFeePerGas).toBe(web3Context.defaultMaxPriorityFeePerGas); // 2.5 Gplanck, hardcoded in defaultTransactionBuilder;
expect(result.maxFeePerGas).toBe(expectedMaxFeePerGas);
});
@@ -612,7 +596,7 @@ describe('defaultTransactionBuilder', () => {
web3Context,
fillGasPrice: true,
});
- expect(result.maxPriorityFeePerGas).toBe(web3Context.defaultMaxPriorityFeePerGas); // 2.5 Gwei, hardcoded in defaultTransactionBuilder;
+ expect(result.maxPriorityFeePerGas).toBe(web3Context.defaultMaxPriorityFeePerGas); // 2.5 Gplanck, hardcoded in defaultTransactionBuilder;
expect(result.maxFeePerGas).toBe(expectedMaxFeePerGas);
});
@@ -633,7 +617,7 @@ describe('defaultTransactionBuilder', () => {
web3Context,
fillGasPrice: true,
});
- expect(result.maxPriorityFeePerGas).toBe(web3Context.defaultMaxPriorityFeePerGas); // 2.5 Gwei, hardcoded in defaultTransactionBuilder;
+ expect(result.maxPriorityFeePerGas).toBe(web3Context.defaultMaxPriorityFeePerGas); // 2.5 Gplanck, hardcoded in defaultTransactionBuilder;
expect(result.maxFeePerGas).toBe(expectedMaxFeePerGas);
});
});
diff --git a/packages/web3-zond/test/unit/prepare_transaction_for_signing.test.ts b/packages/web3-zond/test/unit/prepare_transaction_for_signing.test.ts
index f7a5ba9c..7d27f95b 100644
--- a/packages/web3-zond/test/unit/prepare_transaction_for_signing.test.ts
+++ b/packages/web3-zond/test/unit/prepare_transaction_for_signing.test.ts
@@ -19,16 +19,13 @@ import { ZondExecutionAPI } from '@theqrl/web3-types';
import { Web3Context } from '@theqrl/web3-core';
import HttpProvider from '@theqrl/web3-providers-http';
import { isNullish } from '@theqrl/web3-validator';
-import {
- FeeMarketEIP1559Transaction,
-} from '@theqrl/web3-zond-accounts';
+import { FeeMarketEIP1559Transaction } from '@theqrl/web3-zond-accounts';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { bytesToHex, hexToBytes } from '@theqrl/web3-utils';
import { prepareTransactionForSigning } from '../../src/utils/prepare_transaction_for_signing';
import { validTransactions } from '../fixtures/prepare_transaction_for_signing';
-
describe('prepareTransactionForSigning', () => {
const web3Context = new Web3Context({
provider: new HttpProvider('http://127.0.0.1'),
@@ -65,15 +62,11 @@ describe('prepareTransactionForSigning', () => {
);
// should produce an web3-utils/tx instance
- expect(
- zondjsTx instanceof FeeMarketEIP1559Transaction,
- ).toBeTruthy();
+ expect(zondjsTx instanceof FeeMarketEIP1559Transaction).toBeTruthy();
expect(zondjsTx.sign).toBeDefined();
// should sign transaction
- const signedTransaction = zondjsTx.sign(
- hexToBytes(expectedSeed.substring(2)),
- );
+ const signedTransaction = zondjsTx.sign(hexToBytes(expectedSeed.substring(2)));
const senderAddress = signedTransaction.getSenderAddress().toString();
expect(senderAddress).toBe(`Z${expectedAddress.slice(1).toLowerCase()}`);
@@ -89,13 +82,13 @@ describe('prepareTransactionForSigning', () => {
// should be able to obtain expectedMessageToSign
const messageToSign = bytesToHex(signedTransaction.getMessageToSign());
expect(messageToSign).toBe(expectedMessageToSign);
-
+
// should have expected public key and signature
const publicKey = !isNullish(signedTransaction.publicKey)
- ? bytesToHex(signedTransaction.publicKey!)
+ ? bytesToHex(signedTransaction.publicKey)
: '';
const signature = !isNullish(signedTransaction.signature)
- ? bytesToHex(signedTransaction.signature!)
+ ? bytesToHex(signedTransaction.signature)
: '';
expect(publicKey).toBe(expectedPublicKey);
expect(signature).toBe(expectedSignature);
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/call.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/call.ts
index 8a23c107..517c84b6 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/call.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/call.ts
@@ -32,8 +32,10 @@ const transaction: TransactionCall = {
hardfork: 'shanghai',
chainId: '0x1',
gasLimit: '0x5208',
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
/**
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/estimate_gas.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/estimate_gas.ts
index 7850f96b..44eddcd9 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/estimate_gas.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/estimate_gas.ts
@@ -32,8 +32,10 @@ const transaction: Transaction = {
hardfork: 'shanghai',
chainId: '0x1',
gasLimit: '0x5208',
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
/**
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_block.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_block.ts
index fa7b0a04..545d55d8 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_block.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_block.ts
@@ -53,8 +53,10 @@ const hydratedTransaction: TransactionInfo = {
to: 'Zf02c1c8e6114b1dbe8937a39260b5b0a374432bb',
transactionIndex: '0x41',
value: '0xf3dbb76162000',
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
type: '0x2',
};
export const mockRpcResponseHydrated: Block = {
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_pending_transactions.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_pending_transactions.ts
index dcb71a78..37ebc378 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_pending_transactions.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_pending_transactions.ts
@@ -31,8 +31,10 @@ const transaction: Transaction = {
hardfork: 'shanghai',
chainId: '0x1',
gasLimit: '0x5208',
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
export const mockRpcResponse: Transaction[] = [transaction, transaction, transaction];
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_transaction.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_transaction.ts
index c50169fd..b68ef603 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_transaction.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_transaction.ts
@@ -30,8 +30,10 @@ export const mockRpcResponse: TransactionInfo = {
maxFeePerGas: '0xf2cec3661',
maxPriorityFeePerGas: '0xb2d05e00',
nonce: '0xb8',
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
to: 'Z7a250d5630b4cf539739df2c5dacb4c659f2488d',
transactionIndex: '0xc8',
type: '0x2',
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_transaction_from_block.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_transaction_from_block.ts
index 730f6c2f..d64f211b 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_transaction_from_block.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/get_transaction_from_block.ts
@@ -32,8 +32,10 @@ export const mockRpcResponse: Transaction = {
hardfork: 'shanghai',
chainId: '0x1',
gasLimit: '0x5208',
- publicKey: '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
- signature: '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
+ publicKey:
+ '0xdd7c87d17d3fcf7023c405ff0a91e22113a611447b16da12055af7247f624bfeef35973ffd35cde534367e66a6150714899be22b86b93046b1043cc0b4b606a69382946ccc07d2e407519c94204d5ed8f7448dbbc39070903bec56292045882275cc620bd9365cd3cba5b3bb4410eefaf5577b3c75a7ea98369256e2a3c6b0b310507b1a0f2970fcd891cdeb6277674a7581e168f2be7205a5797d1b75c01d0d294574333cce057b0f67ea7c902ca7a121b8eddf408c78b0f2ec21b4285a17a443225d285ec4ceed14864fad3d71b2644d33244be0f76bf56a6cef772e2b8774db90e10affd4c4960a519dce5b0a7412c43c00604296cc03314c2f880156c191b7a034524b5f2b069e9d36829565d35c1155973e1a6672223d7de965ea428affc1d372302de26d8f109788da68c05008d150fdf7d9164aa3fecfdf754a7fc1cb69f7537e24f87c396ed9ce19625df470b2d83be5fa8df03ec5f52f39d10cb81d3a6b05ea9efd23670fd20db01f3d08c3b1ba7cc65e86c73635ac3ecaad70418d8779b53de4fb786679d7436e81646262710fca67743cab7491b5763b1e921996633a4878ae4f9b16481b236054226f0c2951b2bee0a0fc057d8248d719ca3c1404c41c972d8ce3d7b612066c0dbe7cf8ee871f1783ae3da2a32a0908195f44e81992bba297b673989bb1dde9e54bed429cce5d0e221107466b06dc53e4379f38e38687480186f09300d3b5e80adb80120dbb1907a75bd16b08d102ff2df1aad42ac61aa08500bbf79ceaffa2eb470be257d48580910fe64c536e52b87a458d8985bb6bb896ef95713a698f90bc4afd52054042326d8230cf0e66e9841bcd7e1c06900bd773d4bba7cce6c577f91c40c2da18e8da1681136d824388efb551033e22293e2f1b44be3098307a3bfe71b568fc1da14e573ba1ace1b604b5dae5ceccc4dd3e2dd61fd52db4376feb2d528b95d476711c9f940923b8f41f1e06bae5964268f9ba57de5ae2ca9620a4d3e2440eb332f9d88fd59c15a73b8e226ce0a30a6f5a85547c0d128a9e04c248f24a3afa21e32acfef6c738edefcf61ba3683a3e5bd73d0372f00f51c7e063043f4a3601806df5fc971c4542d4e671597cb02a9abf0b0502d46b6f98f6e73d14923828dd1297a664ae1e8e9354452885077932148bbf71f9a3c7354201dcb5ed4e75591ede7d85fe58d72ef8989be383ec96d71f199e5aa21250bc7220cc98bb43fb4fb9dc04b01ded4f8e0b4cc9d57a8a741bd368aa2eab84073e880e1468d215ac46c6d5b6f839cdd4b38c306a03139763efba6e656224a3a33f0e8992b3e592eb2311337e08b1990d625d2afeb6d62295c6eb5c4db4accec883b526182b5f8a848ccb078d20c9dd168917c4e524dca8177c5a39a2a8871e3413077341283f510a531714d9becab7936b8c5e96c7489b5a2cb8182c1fff7aa4a7a0f98b2a5eea94932c77c25c7ac38f802ef7f1615f664db8b72a03a78485b855221b1816655803e5ab77e2e171a37faa53a06655b1e65e2531826e0135f41bc781cb3515cf0d139290c323e7ecca33321d42e19b0bba6d97914d7bbe97847bb1bf2653910c055d8d9b159777cce143d15a9fc606225ceb6385a20ad732893198c68486ab6fb9951fa87fe0e38f93241c52db6d854d058f3263716a9784174959efe0c97cca6d3d13dff9d1633d7baa76d52b8e286623f19a8298dbd11cc592506a33ceb7b28e261986fad5154c8c648203798673c4c8b5046b4781ebcb2ebd797dcef0ed03c6d10bd54e4a4adf71fc081039b88b24e9831cb9046f59f55a63ab187ae6e4abc30f1c9d1f9698914bfb08b83dc6ac71cb09ce30e41162997ef59177748f7a5328b2c36e2a0b42d177231cc4ede3254f06c29c716c4cff9c97e7f6fa1cb49c40cf844226ff59bfdb2aee689f2b89e6d72c7499fdf81eec8e22babc28e2749c3459090138899b5334839aa0eef3f247f22c3682282697302290e89df81d5b355e6316811f9c6946228ca04d389ebce3942eb6daaa441fcd0d921d52f06b9117298c3fa5f404669a1e34d7cdc16b12ce10ff830b5ccf2fe3407bd06423c849afe65479e99c28046bf729ec4e4a748d7547205998be3f5b4904638a677e01d178602929ed91f5818d3ecf57d2126fd1d36a356a5d37760e3877a02ee0ae500db1e096289a80b9ea3d22ff7642a2a6311d4d74838d1740bfbc264d71058e3b5299316730358fbf498ad4916af0300c852984e1a5a1769948ddccbe3262f65ed15ac60af2d7d9101381cd197d51f241279ad81e138236e993c272ecf8f2dc6ae4632866865d7a4108c9920f749d1d4ec95e6e39297407c76a1296cac5737d0762a8730acf26dbf79df34bbfed0d6b1774e4f14bf891bf9590a104885e1bd9c7e00d3e51b93c7af0e2e79edbe6e0729c9bc02fcf90fc581fb9b7ca03e2fda0c65f45314043a9f7ed84b4849c19f020c73b0ee21224d39a47e47f66d2145948cda62a0caeadd22bf50a472537f1088410afead959841ab74820db1587ac8a642fb8b56d813e15806caeb5ce245f3a5fe48a764f4054bb7852596d71aa013b40c9ded467a715c91fc965b97fccd19cd6ab899ee2d46fd619ec4fe047a2abbe9b7ea4ddd3e40cee964f75ea61d960ea312f8c36f6f057dc1bbc51152391c093cc0fb26b67ebc2d6a6d986e35f557117fdfdd9943b8e8cdf3c1dfdfd64b352f9e180eaf5934591f62fafdf129e85fd0f47a6a30cedeb15ac718b7cacd54b6011e5c59491272779b8c9a5ec806db2c961286546bff5935c0e6e14644ca0d46471bed78950014915551911d610fa380a9ef7bba4ca8add1d22e992ff009663ef19e14aee1027da01959a2f5a86d4527d3994b2aa9b4a0c83a4543d7f43d1fb23f38c1464ff1c995f3d4c00eb69eaeab804b9d02e7c887b1138bbf684028ac6cc9bf47caecadd843c69ae717a3526bba50d355ccec4b3dd9d929ffb0b181a9de278b1f77d629265092d5b210d786b8624ab90353e224bbd57d911b63b50a67c7efd890311ea2fc8e65573006783f35234e89936f7d15daab14eb1d07c8b915c66c8156180ec78502e9ddefb4b65bf4e500029ce1a43a5dd0202b132ee3cadb32a1736930cfacd46011a0d6f6c580477e4ed339454d308be708c5f584604d4c7ac71ba7d66686c18912a010fecdadc1e5472773b2baff775b6d4dd6a6f951bec3746b78070ddcdfe8332e1847fd83194e5c03aa7a58d46163a65e3561b139fec15e1d172c4b64276f0f89aa86e8cc54802af590c9d162e1f91fb9dc64c5b1db838f6076b48d4586dc69614622ae48da679c42139e08871345cf35f04bb6a56842924803b576f6d2931856fdbcc37b5b1b920307bb3e03a8e31cf28eee6c9541e91d25bafba7cc92051b912afc0c4bf0ea1bf98d4589600b28fe80e360354165a0819f874b8391b02fb575ef5a61215afc0d4e8fc2fca54936291ffec578f68b5c6622f69a2b9dd40e48e27a8553d4a85ed25f1942ea22ab9ca568508d99da5f717849cc9597f2514652558aaa5292df584e0c752df5e14d66de129637129acd1927179db44dd74510f569379bdf88ac1c2ef883eb70eb3bf94f1acdee2c6e26ff222a70cf257d7239146b46ac1b0b5630442097e2f5a52bb65110d',
+ signature:
+ '0x6a0d435e0c61b820d147823e165e94eb7145cad30a197e4483b74f2361e89544d30a6110662137cf20c88fc2a25e89b52c2a291ff75183e6faa07b649674c3fad1c1efb4d831beb19dd5cf64450935e0a862cad65a3cd21d9c886308e7d656e8688604b56ed610c908403731e5d1af848fc3554b5484db50308396cbfbe47e72bf1d2ffd6c3e92798ce243bc6165c25e9bc5a95fafff0761bbd5a36b3b015e801bff41eae440b572094b2d2133b66b75e556984b20e72f6c29cc0bb2c6c8fd1f7bbcbcfd6894daeca9779f75e4fe27b7fcd45da3a90c79fa815f660a92e8ed7f50d81fae8ede6cbf754c780460e041398b33dcd5178bb2987e029c967a2c20cc73bfcbc7acc946dbe506cd224a3816d6c0524942746ccbda4aba968aaade03cbc146cdc2336eb0ad832bbdbba9cb6eaf8cc2c2a5861f591d175527f759dbdeb562f164638f64bd4dd72b80b8ae4d2516bc183343c046726ca998c0db0c05759cd704fe43a57995673d63e6ae605e2191a6d3b3f875662ec7ebbce7506aecc33c49a651d15c27e80bd0cc0088fe17cec596f47ece16fbf0ec857bdab65488830928594455e1f9bc8c862a3d31fce7ad1beee32175e94e44753f8f85713cd809e563c3dddf384c6733dcb2df0d8cd490bed092c20cbf43f7a957bd25a6f8534f857f5b4a87c83d248dca0b7f876df3347a0fa1c98a9a9dd48246ba979276518945dd8cf9a6275d5b34455ba7144c40e8fc7a3da32ccaeb1681d0bd390d3211dde1427552f3474fde89d57593c87ac07d998d3a8330ef707f30b79d905ab6278517cc316bd391cf9622d83ca7b6bb6a202b69f50f2c45b0c2fd868b2b72a67d7a810146b750b132d704c9fc67a2b0895efdeb4c52292c350bc4d9639a4bd4e58b704a1480225e6e0c335f74f732402fc3c0e5b4f46ab6a4e2b6ffa1efe894eed451a930c43d48ab1f20ba0e1e17c30e8b7f0df3b66dbb69c6aa3a9bf4471234a6cccefb3690a6cdcf9a35ca8c2d6424bfdcf35bf6baf8123c540235bd6cc456a006ace0538fe33adf641364054257113071a5ac8addb3de5f85e323c6d7996a6888e1d4138f809815d91cc299a7ef08c5e06251db6d2c524f9d62e7990e89ef6c0a592967441b6462a07577325cbc6c98112009f12d233d501aa971d64933e7032a92b2ff86980944d9bc4dea2f6a2fcf5b3525bea80edcec2f610e7afeaa1b7ba3b0f58baa2d6045941f67d645f97fc5e502134f1da844bb539a5389a7cd8100b0b70c5087c38e9987c849cfaac91e11afaef613be2e29250f61d943e8916fe485f751426b4172e7cc6182d9f7c4d2f364c6a904e575aa765556682ac1231067e4ed33866158eeebbbfbda3b29008fd96ed45d22bb46a0debe59dfe8fb7d3402572ba2406d5c1e01ce5c4114deff10fef0bee2ed1abdf090daed961006c9e100052603f050dae80d5e5e6ad207479f02b8e9299ef65d94881648e0bea436bbf1f04ebdfa732098d4b36ed61e5552682c2f290cea2a35674977724d33d4451591f644eb958e8d30680906d071ef865ebc8013599e75fe54fb97b331c69c5d0e18659f381b4dd1ce8c411178572557b12e0dec85ac9a83c02b2c132b34f8a48ba78a8ba6b58eb9733a3cdd01328940ae5db3e9290f0c176c00d0f59c3e64cde87a2350bfd3523915f071a83ddf8b69563c5cadbabe2974be597de008f5913af3cf415ac1839115c3c24a0b3e2597cdfcc31b8d3c4dbfd3fd02c10978a52990c3cf98aeeecc1ed9f8267b7392c2188b15f0ca14a3449cb9b1a7ffff7f1f62952fe61db86d5c9f87a23c8075cb582b2024a4762023b02e70a44b42cbe534f87bbc64d46c84a41b0b76448a8c42dea1871509f78dc516e5229f3a151ee49f16102abf93a2231114701a0b6e863dc59963918171372ed67d7249ba2b1876fdee8fcb99fa16b468940b959b3a9b68c81d52edbcaa54fbd383ae94882cb47fdc935cc837990ee416b2d0b09fdcfaaf0b9ec066f1cfdc7b8738148b96e337a91b7d5b003130b3028ffe47cf1c2e174beec34ec1c5a969494ab8968131ee35234ad7360cc27dcd964efe247a12b48d56b39911f2a3e57ef98e08c7e49c1d3a62cfbb3c9c674992fccf3b922d7b3cba6c0eb97b6b3fb8960750e489de7e1da100e4df245e801fc0f01bb96279c418b34cd98b6ef703158cb315c5e109934f751db7599b9c519a6182029e3c77f2c915ab55db395ac0e0a0908c8c775022c6afb9195a4ff9b9afdd6b9d899175a096b1f57649e51498f4e9476cf645cb86428ea852fc07880830927c4f3676af111aa2ffb590385a95006221bc21396b19d9e3c05149551da806e3de0165fd676d08cb39612d796d99f0b2384a5dd30e5bd10da578e2ac9da5ca4db50e50aff49aae329f9e484562ce2fe1739c7abe2799594286cf4904c0c9f9082f0e05ce4a7ceab6a83c07086ba66da27737e4ba2b4d6120e24c1d723326b60e6ed2657e1c0f61259b9f1a23a80851022cf9ddcde2a337d5a74a5e9413fe2f9a8e66cd34c20ef97efccd276dbdc6302fbac17e97a95ffdc797e59fe6dc5ffded4759ca19e8c9b9e3814a27572dc1c932862718bbd7774d5723219a77a65aed1688db36040c945a5488bbe75475c1bd4ea9ef40a93e4f08b1bf258768f9b2ef5d1b5c52bd369612ecf95c18f0109f5965840af5cb73fd6bd07cd1a30780924cf3ec88bf14c4695895354c3408b2bc33d001d5bf07d940d32ce8658ae19d43d27ae48bab17fcc3c7b08af6dcbd482aeb9dd5986c82fb9a7abc666a0abcb49ceb81ac50a71b84ed0afffa307d889b1a8acef7cb63f2bf00b42767a586f3d29bfe60e6e10783db7197219e137f200740cc760494607850c32d7697765bf9710161dd1d19b4280c0c6072cfce1554b18e9e126456be748e0b90e0d93c0b4ee9754d56852f92613031f722f3d57bf0068eb55a11d92881df85a98d41406892d48b2bad44bce05d6b2f05c486dd7f55ecab561433652669ad27b0974931d4ab13cb5ec9a2fc71071f8167331e5dd7552efd4d7b01541162c934edde318b4259c64fec894b792e4772d684bf43bf882d76f8f60f6e6ea974f8cdcc67503c99fff915fd74100c2e73edbb7fd3c0bc02fbd18a15894ef1efab7ea49a9f00e2f4006159f1ffde9d4374763842cf3463bf825a95c7e6ce22c3438cd8531ac7e4613a72b0540d02f9275708cb7944d8b59b2a5aa19a61035a0db38dc4f0efdc4e9d3cd02c4cb8d43ae7540b3f66d00e9a82fd7dcc51b305862a3ac97e8f3c84df7b3391c45933053b16b6f939049e4fceca224574454407e35675fd16d8d4f48f77a07596c50fd5bb02f51133c049744e522a86aa82932694f129b3015c706acced2266808f615a43f836755e601354eefaca99d30c184031c0f1bec9909aba6c865fd2e992b5b438e88ac82cb025c062d9cebed865975a1369a01e4ab56d2531b522d6873127d569d8f0f5bc0c4dd40f054c87ba5029cc28d6dcd3e7a6dc089fedc451769b23d047904a2398289c16650c4721921c3201646f193aaa46b9ab7741ffc8cbac4ccdd7524134724eb21317891f6ff3ccbdbef8ecb10fc5aa4c8c141d1c52a56ae091666a828a0ab67053be248d22ab69cd89d6edd46fc29a4f6e4e009a3aa26c67d015dd915c1c0bbf9639a57ab50032ac0e524b2ff4bd1f3a036edda5bb957060a71ea1d4c77df8e9ea49c46039d50799ac86bd0f17faf4c7c82265f0ca2b4cefb484a179923c81b169a825790204d65e9334cdde6f767b673d77635603796108c48273929e377b7e34ce48d9c9fb3e4f2403fb9dbd64a888b29e0982f37e81c2d8d7fdc0e5b9f9fd2b5dd100ab1d5baf5f74fc38a1f801847ba98c107c0ff788c5a4db0d29e27004c6b3925fe6164816c1028f22facb60fd8f1d4f1c692c3ead673f2b0670be9a1dd49299d0c5dfd2cdae9e19136a8d07183220aa19e6cb5e259a715be07e4df4057dc6a51f10021f4d859ec85fc50b5388da849939fa43b270d16dbc221b2bf6b670a8912a247279344af155e1a7c1a0b786cf38e2d5292e472bf6e4b665b0b2f659b75ffb2aa3d3c3f743b537f0d121beee52fc6deb6548954c5ab938a4eac96fe6e501ffa5a1c63b1aecc527f869d535b14aa3847444639f570bd30e70c356acc6f72ca67fecc378bec7ce782421fff39c4985a64248d75b871889bc7d7964c484340ca60fba30664479286a0862faa0ecef624bd7c846d0ec1fad65a01b9947ed572ac3c57e8d849be6e17f9c79229bd61337cf4214dea289618307a3a5a5af622ea6b5ab5706809f481d978a18195235741349d6177d0703b63664fb8c7da05d096905064ca8ba317bf7fe2d7b3ab94b53b367b097ab85096b240b94c0d6805b95be88ece2083e8ef73e0d29ca88a2c0cf810b058326f5ac89597cfe1f0104dcc7ae878fb93bb9609b603ca304b82fa1a9e3a3db9902c01053889e3383125e9135bc8921af25b761aca9117e4a8e6390d33693d46e31e2b62ee8aabef2b74f321d6b42bfd2b673559efedd4e1a58b1ed3b85fc5f2c8cb240693744d3b9ec1d13b03ec2ac39ac5204db97964a2e6a52d343964537e26a2c2b660c4477ceac60b2eb70f2ff85129fe6e29545547b52998b3b354d9cac5b54149b149fc22126dee957175fdf638e75c5457fd91cee888164944fb794a91beed4e776c2281e62a130911c1b8c2639c2638ce39d8f1c14df6a30f9f1ca3786fc11270e0ae8ffe8335059fd7930bb0daf74470b5ec2fa57bed5eb59439e3a245093939248e31dc8b85da0902127d5717239c9abd6beb21cb87624cfdfebf5425a7ebfb0463032a8768a560a7a6d5ce86988c95ddce8d4458d09e0856fce6dea0f97d5e50927e6a5f4d5d6dc2cf4954811f0dbc73af4be8b182fb7dce630be402b02a247df5264c0070c3811de7dd5581d7dffa9220f8fa41386b8da967a2a0a4743c14362b6f78123974e6724ddac7fe1aaca82a8baca4cb56fa62f75ead6fdbad5d6494607eeba7237d2e4ac8c3f2197790551fa6a3fb5992d8a9f998a5420da971e04ff4d4d7210e016234052d4a1ad0886f50ca117bbeeff789a167c8d3f2aeebc01397c3915d94023ec6054f8da3bbe0ab772aafb9a17e0bfab5b9b5e02be98e8c0a04c17799052bc9a6574b942088864522828508cb4b086e8c674673e5fef1c6bcbd08f2cc69040ed901edcbac3eb355dff67970de2a2eda7a7df5b58ca380fec4ee88ee25d8aa654bfa145aa87d79662252dfdc74f5e7a282ce922341eebddc514986135a423dfe3d8eb6181cb0a78ddef6e7fd7c0f002996185420716cad2366a92d56ca7497940bc406ff2a7f36c71e9fc543e441702f79528122535ad1625302c4b879111ef75af7b3e2625257de306247ae04eee1d3c3eac6764a8a4d20f46491ccb23ca9591ab3b38a36e7e7cf3e3a3d22c4dc258ad2809bada96675c5dc2dba868f729cc4df50811fc91f93ce49542f5dfb3064d45bbe9ab5019bd3dc3034832c5d526089805fbbc1142742b426767deab357d2dcb9629f4473826a6b1fc85ef3bc79922828e191424bc0ec55dee974802d70d08e5008fb9666d4df87f8c446235c6bb7cb0b1dbedf7df69a18297c3918b264eac0213a1d760672584681b8066daf7382a8a8fb4d4a09fc9d9be062fbd27ca2bebabed73d6a5cf7301cd86145b2d1f9c2c341cf7b71b2da3c6d37ea3a8b02d81e60fa3a77f575be11284a1dc7531b18b388445d86024c6659e90d6baced6de3ade963955ce5d944b1ae3dbc868d1c8ad7eb0812350c97008ff9e641a30ddd649bd7ab3e974bcc601386addb7c18f141167b4436de279df282608443853491dd07c520af956084c290ec221b2863a883b29ca3756c72d81037c6a99015bdd5898993045164eda727ff8db717ed174c1d552137e8f3809ece6566b71a868f510fd83c65d0aa0a2c7f9ec9a87b364cba58f9c1b6af78eaae0c5eb30427bdb8a6e7209e114472efc6ff3e52fd65155e0e4f28c8d3d3abf06cf484dfcb9ffe05a670178ac9986c8a0db86a9737a9b28f3a3460d8b5d47b67e395cb951c53763b5f765004cd3a15aee7422ef67fe8478860d493022977a26f202c6de50072bb9b14887022be011ad4d42a1f1d823da4d649830b72a2c59fbe7520ed7d133280bf43ceca325afd241f88fbd15402917bd29f652a072e5a3e593537258189b517d9a7ccd53964304af81b424cca587f9c9fac0fa2628fd7fb4a220e4cb195b80b01e164231590925e604dbcecc59b54ce967e7a8fad6c8c3db96ed4daf7ffec89de66ea189b22b00c1faf0dc3d11adb18b8a7a2045b074652b085fea9c22da89ad17d8778ac9e031969d2029317e9fb9ec2365717ba6edf2096f7987999aa8afbbc6e7e81294aaaeccdcfc55bec3df535a8ca1bbf62dd4dbfa0e2f335484a0dde30000000000000000000000000000000000000000070e1a21252b2f37',
};
/**
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/sign_transaction.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/sign_transaction.ts
index 4fff309c..04d7d2ea 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/sign_transaction.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/fixtures/sign_transaction.ts
@@ -50,8 +50,10 @@ const rawType0x2Transaction: Transaction = {
};
const signedType0x2Transaction: Transaction = {
...rawType0x2Transaction,
- publicKey: '0xda218daf9d5457bee0e2381250f7ad3159e8a243fbf90e02c2802e1722cee954758875aa00c57adda2736030ea7fd293367c202298d7125f4ca8bd83d0ee8e8805f4a9f2d3915d507a581d59a80491575ed69ed994a6650ecf8902cb056a6d5f8b59a46905ab1c58094c2a5a388de306486dbc23bf268ffa272e010182e8e9e23c07f55a866e59195333a353aeddf3cd51c22f955c21977d3ee9e4ee6557f30edb5d2517c04f834f6825a7a162323cb8b679cb5d2089190aa3e3c486b4b9895987b47e1b475ccc4f25969bc95ac24d2fb3cfcda7330ff9f949ac06a2b7a7293ee8463dc38a9c55d4bb5d8f4904836c29764931b0c3f4d1257871b132b08ae249fb40b61bb75360298f15345d4868b7aa4f06c485b703f6db84d2d5e1e70412928d6c6454a2a019540c518243e18e17404dfd781a576a34e0f297bc4fa69532e717cb9cadc1feafe4c6a99e31cde842dc05fd19d8c7131d530e9ab22b1c621e9d4a2ffd444376f0e0847c0523f56f345669fe88bb28492ed23dc822f83be85eb035695eceb08fb24fab3fb6cd54ee5972d68664af9d3bb4213da1ee11e95070eb45d033777eccf9efe54f2f23bdd0fd64cd0b4bd311d941f108fa13166505944de90e25fe50d4d4be8118d316994b53bacb96c92a4f4048e10fb01d7a8e89d7d0ba37f58ba37e1c399fd1d5c2fd0ba1d30231432a0592d0e06b0a18f0decaa3ef39e88c6d70b42bcc80e28f633c99a89e411d300ff78c7bc93f910906bc9d9202f4ce3b9a1c37432b4df23e053297f81b965ca0b1f447e323a2e66c9ffb75ab1c8daa2a9b239bd87bed1990f4dbf9747005950aa73b6a74da306342a63dfb67d5042f16814f08bd3fda8b572e501ce0a03111f93c0c1d3655634435f1ffc3fc000bf133c926bc336304eea648a7a1c7ebdd65fa593d5c11990878b385499a394584702fe309073aa15420e0d0980165ae7213dae40890babb2bbd3f7abf648c9dc74feba7c0ec8f0525bf5744744b9f5b28f6ac7f234e4f425f4bbafb69714abd911dd0514fd53039c13f72b1074f6c5a229f9172628747079193592bf74ac9049c2aed7823e9522ffeffb7d84887808a5e0814407ebbf514301fb015a3f0fa0c79d3fea883901f3bfc493569a239156f29364a1b43aeb4c3dc6a975ba517e1a6e8ca66b60e4de5326d2d65d95783b050546c73edc37175bf2dac38109c4cc6711c4f6ce4b7af5313e1967161841c11cbbd4f998d5d6b6b1135c9c75616ec88393300c199a2d602f6b048302258c6bf8960434ba6d3d6108a9d8fe17569c1454aedaa7b383975f3ecf1565df1e007744b9474111756a9b4471475dac9e55bb5eb1df67329aa077c14bb8aebac457ad06744e6b67238e1416e14a1c8c84d7981bb42b41562b10b9ba86809f47d19bb2c6a8a9f88559a9a73fecc7f95d781501095fd0f7493ecb020b35b613e2c91db655a9c85ae893e4da69e1ad833fb40c285f09992dbb6b18f154b198af34e3088928102e618722412934ff0bff977d9195d3eb520f8edb7cb08ffc9eeb0f60d02d8272652e456fdd28392acb41ce12fadc83c70dd742abd2015805f2b3713995d1d99050f08f9f88366cf5870b827dadc5bd20fdeacd672df857330be4e1b96838a0d8e97859fd7127d355e51ff9a5e43697b3cedaa1d62dd3aabe28fef97eae5cfec98399bc66f7a34616f95dcebf7eb6563a9115c13c46a80d564e669af08ce600ba0fec9f15a9422b1da6c3995cbff0212626c118ddf77721d84c938200bc9618e7234e3137053eb16620942e9632684e73163f0daad57327999e800c226a09c7083581e3b647cbd61e42a986ecb52f8e64e4d3efdb3fb942ebf2d1638a5c567115e6d33436e2f515e15b903e727d22c1945c968fd1ba1d87093e7768b75cd6033f2826580e85bd7c96477a62b1956a8f7aaba88d7ae095812acc9b9c33a477f3f920e49c7443bba90561b7804f6fe2bba598103507c61365bc11aea34f9f84c0e3a902eb6df4c292aead67699a63c1f5a4b87beb14b2e45537841902764b459b90ba378aadfdcd125deb953413fec2e3e1e3b4f6e435ae84cc7951b996a03db7e49cd1ddeda2041c99eff5dc9c85ffa383852ba9f9dde80cfe8c0353a6faa24a5ae307b8bd863c14f6a9b5b75daf8534118131b3b32b8239f51f6d5123ced24e9bd251d208ca40fa97f9e47fa79f25ede38280a5206c10281a8d4a8459fb0fe9dece2cc61f1ced84e7b5744e59312e32de10c82be7f81264d3a775a04913ce7bb1f28c25037f4b3b2ad5790b3667c9e309234cd161c36f7a71a0145ff0a7c9c1b9bed601b4971696c1979ac3ae2418a842e50c33ed45fddd0e319e48f72583cb90a4b08a57983f63918352cbc6f0a6d345c845f0f2cfbebc25cef454dfcdde04966e63e37d0b2060a12bdedfe3758c5f38a3c7250271ce9dded0e2c37304bbf668add831f76902d42041b9e7a2d77e9e912980be070a0dd84f3523055a86d84b7d92282974ec8f411e26aa88286b6a1314ea9a0b3d3ab100947770238d6a714d0e2ac9a1b7b3cff7e54c33d8bf7a40972418dc7fb205d7c29a8ad0a269eb9f0874e1ae2d37485e9fac92bce8c267d2feaa63f1fe186ae0cd25b626246b2db984941fa6eeb2b2ab14a56aaf15da2458b591b4862173a917a404725b9fee25539b948b2e2c9c5f2a251e9f88cd301715aa221e710228a0e1c691e0ea91414d7ddc6cbe76b572dd904b8107e4472e5e0d694ec8e4cf29c79ca83206c9a8fcb8e77a1157b4f7c9a68ab41520b5e2c0c9af6d11109c259ab5dc8d1f87bc83ebeb4a8845519833e42883ad7b16752b2ffbdc53ececca688b97b431a33d4223dcc32be985ea66f255ae44df027713ae10120e3bcc2eac966d974cc6e69449e959d7eb783855f975d36a8a5d5889db3137b338cabba16284d87965493bb07cc5639bb017499d5a59049a65fd5a0a58568c8c93677491b45b3099dd3ab9527dcb9455d42e7c22278dd800187a8fa016ad0ae3a5737f5ac6fbec043576cf5298150daba87066fb20ee074dfbfb330f4d9321834b35b43e9448997b254e78e1f2c5a4d757e4dc5bfee53dedcc863c539273d7135b063b724bc0edf153fd1f2828866801673c068442b38bcf45ea3bc006b84aaef5e8cc1de1d00e10484b3a59546c4b729595bde6a7facb5e1f6a041dd52307ec9ca2d1ca891eca2e2f0803ddac1698d6cc07d4ee381c06e9d232676c1acfa03287000c44afdf6c1613fa3ae499acd852f8a43dee5f2f790ab6b56a3010d6f35b6d0d3d185540f21593b8d8e75c4938192706ae087555ebc1e48882f1ee46af8256964d7fd4fb9bb6ffa60f79036b17e46d7f210c25fb1690a748dcf33ae74b1f44290fe1a46b87333def13630cc17e7e1290593775b043f817e603675dd16ceb159b4ee6d43799c2ae23984465e0942a64e30da1271d5e6194585d3ecdfe2302d4cae4ca388a516184e333f0d87103ab6585a955be8c7708c338fe1775b04486721b008cf99fd1f6d1a0d1027d975b21086fd42d4037f7979eac9e22108432401aff3443c5aec62e5a7c44bcda3d0ccc0e1b56c611f69b84500d2649f852190eedd1eb9a121d476dd26f81c6a52859c1de36066e8ce44a9f2edf94717b0fe445caddb',
- signature: '0x0935c5706443302711732ba9885ca7bb6159c5dfb605c342c630bce9c4df9cba359818f330e3593c627a2020bc762b8dee97106effaca61b569a7f12b5b8c2f9a38ce92927ce3ecdad3c3521443347ea9f63c9fe448709002047f28671758100e5c94e4df05362b16138752bd5990604885ecc8eaa2d2466ebf538115370c72b5985c9f13ec04f762e3625fd433248a7f6efee01be7c22f1bfaa0f459396ad0255cc34d0b3e1e4c1a7b556ec9bf017e83bee29965f2fcf90e92c38fd99ec60fd4afa9eada645eb2bb7cb53b7e67211e8555a5fff6fe93257c975bc13a39681542eb5be699554f3b0ecb8b9e3d8adf0bfc5631355aaaa191dd45c26d0821cd71031a12338684a00a3dcf0cf1142a5185a73b8810cec81b521fed4452a76911a3e8cc06c5774d17cc45da74d6d40d0a17319970bc8920be220e1adf898eed27a5f2180b9df60164c9633dbdf748edc44bae0c117ee8650edd05158baeb9ffec06a413ab9ca6f484e7e68052a2f8721ec35f6c5dae005004dd4de715b142c1251fbc3810483b2dfdded14d98f7eeaf26a0f49673c6391610e413a58a6a49fa507e2fd5272e726a859d9b5ef7a3437e3af4c5001e7031ead37a048e32ae1cccaf1cace132722a26b4e7f88842a53e64c61a87d27c8070ad2757bc0db0338b774e54531aeb98e153e41dba39843c8d061fe487a38c6d5af11e8e699177bacff2458bb66eb5848c087de205589d99c63c011070e23696dc764b681625b54dc925b8d9b16246d8daaa910cc0ebd022b360e222f3a0c1ace07450e91de9dea8e3b6830370b1e21244ae71acaabf78571c202e59e6ad357afd8e7ddc9d1d9431f4efe4b75e8efd9a0805d91cb8b12f90d3e6e9c578c0932286438e49b4dedc3ea0a135c7cdbb3f383086bdec0328108c98c9eadade7a6b7132cfc2294c11c5caa2cb711f89ba9ced9cd4c8b89bfc1980bbe1d56385b4950fe00a2d48026de9f7a6a150f8a4e87b133ed70f894aca75960c0852abd8879051d0eabd1d9261a4dc785d8195a74819c4d9398fb4d2d9deb17bc8b63ee84100dacdaba9915a9305700fec4feae4452c53ab3868934ed02a629f79e96173d3d406b3d212e4caded40b9be7b5f377765a6e7db5c550641555251ac2ac0af8bf3b47fe5491bfe0119f7aea37f5131cbdd1d5e41c4fb3c77a720265e69c269587430fa4b5081dffe263a5fd45614258897fd454f2d15534337bcabe5538769015c2c135f3ddd27a67037d869b62ae57614f0dfec276ff9306e006a8933f303b587254609ced54432cafe59b7dd221fb84054ac080b710b2b476a2ce33130f03a817d2cead4fa151b083946ad680fe7d116f65581aefcfd8e3fbbd5657657a85230cff1e3e2f80381054d54c96e82a902bcfbcb60cf20d838f8fba4b74b482f8535554ab050715d008eaac85dab3c4919606a7f948f2e67f9ba41d023ec9c57d559fd1cfe56e6ea0e99c235c86010312c9d63d719ce73478c7a3b19b3fa0f7a5271771364f71a31875f56cc2bb567cbf874563891563d787a2033b3bfc7071cbb8b2ad7629446a132a23871486bad2bc1c7bf0ca4b217ede496907f71f0cc67318a533e259a5b5e6e6ad1e4b80ad62480103d525c9a9cf37e5408566eb8ef89ee2be6843397efd0959fd7cb0407b3700b2e0bf5cddf38d7d12f2a30637519babc7d2e22292ea868f2338dcc3bf63f4977439cd0984fec14de470ff940930be9614ae27d4a9c7d7e6430591e72997c3590a42538d5624eab37bf0f4bb84a66393b1f0f23bf0ac9fd439ede4eb58d4dc2aac5dc45865fc05493bc97d7df1d72cd6d0f56c90af76c9053432719cd8ace5838bd4d4592835aa4fc6466cfe43e60715cd8357a213449e1485ea058514e1ff539271a5434babf5d2f53d2ef82e2549a5e7ca68d6659e1b959e17cab4718ffa27119a3bc5238693d38c7fd1c4d3a66ddc643fb265ebd5f4b42457a64c7e20df6213285239a4aa1299708b304916cf3e3638c8dd3462add791d93c066e335beff662e43a899fee8bfa3902a94b0b8ee4c417935841dcb45207db1270ae584bfba4a1377e317cf6c868715b23877479c68b21c24e2e12bc9537aabd3093e5186f8a78acc393404a42b8a7e54e9fc7ad472e10d34cdb90ca8f94ed9484d37f517b465895643be2d26bb8130e553e7b55c66847671149567c34810b3c5f7f583eaeff39fca2c82ae5694d109b5bd5b9f24309df592d9bcac06e0818ad42de3b86cf52751244bf53e5e3dc2d47277ed6c0219d1dc3ed861462abc1df2759cc457e04971cc4aabef5a8798bd0b3805933fa73b15f437bd01f054d432dcc5f89a1a59efddedb8c78265d1765c3d538f1cca56611347a7a76d5fc1b28b48c2785008606a3b774461fbfd14204ca4d3a2b687424ade21489abecae340b10f0cc4e8a691f399a7a78cc573dc5a2e580845c8ea907f0c0a2145910e5c2eb9edf9230a94337572678cce9b33f48cafe61e494fe44c9ca24bc8c5b4a7f1cbce8a220f4b8d97156bc1cf91a43c1d71dde2dc621b77a3d94138d35b4d67f78e9c1c27127f4e8333039642f814398c21712eb0f3b27ea594fe81d8cc796bd4f8bdc1dabd916bef09bcf0bdf9034595d412675a4ace420f5105fa9ca1ecab8995bfb833d4d80f54bed43571aa411d8ba70f14cf361c549bf84e6d72a1a62e7272963221134620f87742804cb6868109aab31bba8f4520192e75ad39cb20375b2cac0e007662db7b0257c9f933aecc199b989eec8c716759458407f84b3e1dd0014db44309a46df72c996ef053090290e77c774722d0e52a8118256884bc0e782aab637c8312058cb3b85ad01186540e6d69b2d1586b523ec282fcb88a35928268c2003f87cb58b58bffbef4f636483bb06ad58fabefb958cf1bd4bec44d14be31c31aaa7cffa839161fc9be6e1a04f38ce2314ff5b3e039e6d6a3b4fb51ff0a30cce255048d467e27baf6cc2df950c0d629c9b352584d313291b38e5963e575f85bb1c00daf21b9dba8740bb842153a467e87f43983a8cf2691e9de3a52a6e13487faf8665ec639a60cb688426aad216d3f5b9feb89813a28979219ba6066842145b6775ed827023728685df857d190eac57d1acef555c9b1e30054364b730617a90c8582e5e6f66bfa245b0c53705530c6faa4011a0d5b94d15c65555437862ad6919f0182e038080fb3cfaa0224e40bb69403f8095bd744ec178f2855fa08f3e94e7dce2b64a4383da62809a8537efc0dbad167127eb170e69dabe6c142ea8a65aceca2a01c5e3f816d54e77cf08203d24752f7e99de231d08c3cf5f8481d7a94ce1ebc54f5121825a700eff0bb3577a604a0251bec7019a08918427bfd9e376cfa7b47d69fb888339bbca64b0b231f64d373b9137a1b1fe8115eb85447a6f3791e1f60f397128b60fb5a81fa713b712a6fc8e48dedf81c362c462749f77d2244ff8bf4d20fe40dffec34606e8e1faf9d1f67bf1990351564a4fc613bb1cf1f871e03dfe9a099c812aa349edc0fb581282ace5867d7ee1207cdaa261219cad381b446a6051422aace3eedcce741338b593b9c192ea3997886e88a0e38f5d346723cc0e94466f49d128f9d40d2f470551f3105ca0dfbea39db3748f6b6cee706a1e17783e228c3f0daa4b3e3f72ebe1923dc94f18a66119905ecb0f53fa15cbf305004a94d70ce5df8dedd76d071036e9bc99e76a345009cf5424cdbd7a877831408bfc4d6a3321e33bb0ac2fd81bc405bff83f7fc4b8e558af231d88fdde4ae4402c8b743964cd8d543378f6212ae6dd68b2e8efcb62d4a7d7cccf85eafcebfca7a1d06b0b7fa618f8ecd7c07cbe40183244aaeba1c37520d464f9d96dc392f3f7cbb806f12c2d867b94324d35854d7fca5454cabf5de6fc7225ac4965ca176f9fc8f1d62fc1b27a4768bd9d6a2bf7d10982a01d9e953d9ccb3b0f20e79a9963b365fe4fc7a70d9b88b223e889bdd3dc17a3dc8d195feb4f39cb59f590e464c8efcaa445a4d5ebc5501fd0e91040b639ce3b4b2574a3eabaa60cef9334b1a384da9930849f36e01b8c8dbdabde85c3b02eb6b209fbd57028432a17fbd3ef987d38ab4157f02a5578bee71ed0a28c58447dfb9f6f15647831c20dcb82499c3f1484b5f4b1bf0bb94b57b5483e1565020f134e15312dcfdbfa1c6af51b6d9f486d39977a96a53f028c2cc0bb8078ee21059dd44d455aeb51daf1579abe4c35e6f1251df752d26a42dee8c20d710b173b32c3990866d1683063cef6cd8ed1512e109207d421cdb7d7db8c9fa2797d6be3ee057b3207c86846db11cff0a29e07d23fe6a4eeae3943798a76acedb3d38797f6f094ee1ad6203a3353fb120811c3d18170a774b7809f311d404e861fc07a0c0fedd8c6f4529d401086b948d1f373c60883b23c0eb202a9f98e61b501b91bcdb9a20d18e62c060e21d192ec0924164a9d7bca22a6668ac07fb11500cd009cf80eb0ce8576470099123686ac16ad32184f124aeb8a6202fa58aa2b9adb0664307044ec969b4d2dc90102f6ac9757963b0da6bffbf5aaf7928006653ad9a8ea285948d00971ae4067efa7b37990ca1416cdbd689e950a5d3d61ed7c990915cdd97b8d273223df3ec242e6f5b48222f35059f301b28b876d114ad5dc26caa9964a509c9d4d82e966ea94ee9c2d5694304e37187dcdb58c3ccc4eee8e786b33f37c08204d5feee88a96127710bfbe00d63fb17b397210b11c508a5138d9a7d4f75ddaf882261ff1b02f05975e2757c70bdde9208ceaca0ef1ed4c7ecf2b3a2be1c1e11ab984f2dcc580dfbf03207032c10f682a19398b47d88940292f1a5bf780d6f8567f1169130742ad5cac9c42d546d6581b5df8ebd7d607ce465e6eeb9b12fd09a520d604a2ef348c2fbe7bb1f81551d67433b1d19438682ed0d46caf8fbe0d8ec10d85ca71a3095eb76d34461c8eb5a90d39f3c97b1f619bea1663befcaaecc97a9a08d4b335242319ded480d826dd35894f64c49cda13102d9aa126aeda4365accbc7bc6aca9a723537991273f41c09ecf009908b4f18de6729f6d16ff598a20bdd46dfb62ac08ee67ed91dfb8d992a14382293129d9971c6b9ebbb378c87ae9704fb976943e02abd29a7febc86e00488677d575d501bc3e8485c4b1d80a343e1aca737da8d9fdf589255a51fbe93efb84c43b76934675d63ee93e1234e299101b7b99b88f152340dd07fba2d97abae648173b2a58546159bb59e83561df55559bc6008255aeadaf56efd7035ec0dfe1bf45483224712b4c0328d78faa365694df862d75bedbf18d9737171351d1e7a19e8f3cf7a1e05357a728e711e7771d159e7712457af1a6b678f00758811a8f8507fb2dfe4253abbddb89553793d29a41cf2b64a5e824b78afffddcbf81342fa0877e0c88b9a97323e1102803ca2541bd28fb790b0821597d8661bd4fe524b7ecdada89a30cbaef2cba546145d6ea4b985aef676d13cdad1d13cd8d086c26cf60dcd8d33b21a4e7a8c5e9a1abaa5938282288f05fcd6143f3ad0c22b6c68bda5bf1df2ee6ca00dbddad99f5013125da578299fcd0ea8b040b2a0f854331355ed1e00489fbdf862a81aea97b1a417df3aa530f7843d66516eb997b1ec517eba23f80eb38c4cb7ad5e488081431425fcfc272584f3f24e29ee2023ae1c197c3d6f77d2ce54b5da9d4fb13e8aad9915d17afd2deb55bc6adcbcd717fba516ef6d79494c8e0efc4a85baa7a97891706e700f400d9d880707111f081f1af6d2ab9e3f375ac60ae923f9a1d92037b143b5d4bf238af35930b876f47afd3202a2279a8fcdef568fd192da1b8504ca9daea018c0c221acc76ddda58a0e373d0e63817ec36d026421b74b87bb5b159d9013879083a298e5385c3120e3b853816416c359d0e65050adc3b70627b084ad7149ab461db9e8335e602b903fbeccc2c12234f2b67a4d30fd2b7a19fc335b24c76f0e52e75539dfa2f7c4f00f8afbc442fa84cc2c830c0e935ba294c1392c874a369f75505093346170727a1fdbc7dedaa07df03d75d5ce5dfdd9acbf82c29c20d3151b7b99b47e9d085df2d14514df579739a6d25b825322108ed2da49e7c55f29f56ac490b6e1c6f8bd20fa9d979211d69523da1f1ed38b8208c622e755d6dc839b2816c3c377e5e3b8a4519cdded01995fc42464acfcd6823712884804629af7530a02a46798c8d28e0fd8cb05c8da263c576a881d1f7159301158b5093e30557e2d4496e35ff8dccb26d8fa29adc24456846acb017cc99e28eec9f47bc406c0963e3310d19f51f9b402ca86ec763ae7d5f96ed3d3cc281c4ab0fec7b0f7cca1e3b0f68fe144c37fef2537413c7963309b35ddb8837072d5a84161d2e4a5e9993aaf70eaaf00023434f97bcc0cdd1f5091547ace2ef0e2c31a0b4dd76829dadaeb4d9eef354658be6f30000000000000000000000000000000000000000000000000000000005080b151b212a2f',
+ publicKey:
+ '0xda218daf9d5457bee0e2381250f7ad3159e8a243fbf90e02c2802e1722cee954758875aa00c57adda2736030ea7fd293367c202298d7125f4ca8bd83d0ee8e8805f4a9f2d3915d507a581d59a80491575ed69ed994a6650ecf8902cb056a6d5f8b59a46905ab1c58094c2a5a388de306486dbc23bf268ffa272e010182e8e9e23c07f55a866e59195333a353aeddf3cd51c22f955c21977d3ee9e4ee6557f30edb5d2517c04f834f6825a7a162323cb8b679cb5d2089190aa3e3c486b4b9895987b47e1b475ccc4f25969bc95ac24d2fb3cfcda7330ff9f949ac06a2b7a7293ee8463dc38a9c55d4bb5d8f4904836c29764931b0c3f4d1257871b132b08ae249fb40b61bb75360298f15345d4868b7aa4f06c485b703f6db84d2d5e1e70412928d6c6454a2a019540c518243e18e17404dfd781a576a34e0f297bc4fa69532e717cb9cadc1feafe4c6a99e31cde842dc05fd19d8c7131d530e9ab22b1c621e9d4a2ffd444376f0e0847c0523f56f345669fe88bb28492ed23dc822f83be85eb035695eceb08fb24fab3fb6cd54ee5972d68664af9d3bb4213da1ee11e95070eb45d033777eccf9efe54f2f23bdd0fd64cd0b4bd311d941f108fa13166505944de90e25fe50d4d4be8118d316994b53bacb96c92a4f4048e10fb01d7a8e89d7d0ba37f58ba37e1c399fd1d5c2fd0ba1d30231432a0592d0e06b0a18f0decaa3ef39e88c6d70b42bcc80e28f633c99a89e411d300ff78c7bc93f910906bc9d9202f4ce3b9a1c37432b4df23e053297f81b965ca0b1f447e323a2e66c9ffb75ab1c8daa2a9b239bd87bed1990f4dbf9747005950aa73b6a74da306342a63dfb67d5042f16814f08bd3fda8b572e501ce0a03111f93c0c1d3655634435f1ffc3fc000bf133c926bc336304eea648a7a1c7ebdd65fa593d5c11990878b385499a394584702fe309073aa15420e0d0980165ae7213dae40890babb2bbd3f7abf648c9dc74feba7c0ec8f0525bf5744744b9f5b28f6ac7f234e4f425f4bbafb69714abd911dd0514fd53039c13f72b1074f6c5a229f9172628747079193592bf74ac9049c2aed7823e9522ffeffb7d84887808a5e0814407ebbf514301fb015a3f0fa0c79d3fea883901f3bfc493569a239156f29364a1b43aeb4c3dc6a975ba517e1a6e8ca66b60e4de5326d2d65d95783b050546c73edc37175bf2dac38109c4cc6711c4f6ce4b7af5313e1967161841c11cbbd4f998d5d6b6b1135c9c75616ec88393300c199a2d602f6b048302258c6bf8960434ba6d3d6108a9d8fe17569c1454aedaa7b383975f3ecf1565df1e007744b9474111756a9b4471475dac9e55bb5eb1df67329aa077c14bb8aebac457ad06744e6b67238e1416e14a1c8c84d7981bb42b41562b10b9ba86809f47d19bb2c6a8a9f88559a9a73fecc7f95d781501095fd0f7493ecb020b35b613e2c91db655a9c85ae893e4da69e1ad833fb40c285f09992dbb6b18f154b198af34e3088928102e618722412934ff0bff977d9195d3eb520f8edb7cb08ffc9eeb0f60d02d8272652e456fdd28392acb41ce12fadc83c70dd742abd2015805f2b3713995d1d99050f08f9f88366cf5870b827dadc5bd20fdeacd672df857330be4e1b96838a0d8e97859fd7127d355e51ff9a5e43697b3cedaa1d62dd3aabe28fef97eae5cfec98399bc66f7a34616f95dcebf7eb6563a9115c13c46a80d564e669af08ce600ba0fec9f15a9422b1da6c3995cbff0212626c118ddf77721d84c938200bc9618e7234e3137053eb16620942e9632684e73163f0daad57327999e800c226a09c7083581e3b647cbd61e42a986ecb52f8e64e4d3efdb3fb942ebf2d1638a5c567115e6d33436e2f515e15b903e727d22c1945c968fd1ba1d87093e7768b75cd6033f2826580e85bd7c96477a62b1956a8f7aaba88d7ae095812acc9b9c33a477f3f920e49c7443bba90561b7804f6fe2bba598103507c61365bc11aea34f9f84c0e3a902eb6df4c292aead67699a63c1f5a4b87beb14b2e45537841902764b459b90ba378aadfdcd125deb953413fec2e3e1e3b4f6e435ae84cc7951b996a03db7e49cd1ddeda2041c99eff5dc9c85ffa383852ba9f9dde80cfe8c0353a6faa24a5ae307b8bd863c14f6a9b5b75daf8534118131b3b32b8239f51f6d5123ced24e9bd251d208ca40fa97f9e47fa79f25ede38280a5206c10281a8d4a8459fb0fe9dece2cc61f1ced84e7b5744e59312e32de10c82be7f81264d3a775a04913ce7bb1f28c25037f4b3b2ad5790b3667c9e309234cd161c36f7a71a0145ff0a7c9c1b9bed601b4971696c1979ac3ae2418a842e50c33ed45fddd0e319e48f72583cb90a4b08a57983f63918352cbc6f0a6d345c845f0f2cfbebc25cef454dfcdde04966e63e37d0b2060a12bdedfe3758c5f38a3c7250271ce9dded0e2c37304bbf668add831f76902d42041b9e7a2d77e9e912980be070a0dd84f3523055a86d84b7d92282974ec8f411e26aa88286b6a1314ea9a0b3d3ab100947770238d6a714d0e2ac9a1b7b3cff7e54c33d8bf7a40972418dc7fb205d7c29a8ad0a269eb9f0874e1ae2d37485e9fac92bce8c267d2feaa63f1fe186ae0cd25b626246b2db984941fa6eeb2b2ab14a56aaf15da2458b591b4862173a917a404725b9fee25539b948b2e2c9c5f2a251e9f88cd301715aa221e710228a0e1c691e0ea91414d7ddc6cbe76b572dd904b8107e4472e5e0d694ec8e4cf29c79ca83206c9a8fcb8e77a1157b4f7c9a68ab41520b5e2c0c9af6d11109c259ab5dc8d1f87bc83ebeb4a8845519833e42883ad7b16752b2ffbdc53ececca688b97b431a33d4223dcc32be985ea66f255ae44df027713ae10120e3bcc2eac966d974cc6e69449e959d7eb783855f975d36a8a5d5889db3137b338cabba16284d87965493bb07cc5639bb017499d5a59049a65fd5a0a58568c8c93677491b45b3099dd3ab9527dcb9455d42e7c22278dd800187a8fa016ad0ae3a5737f5ac6fbec043576cf5298150daba87066fb20ee074dfbfb330f4d9321834b35b43e9448997b254e78e1f2c5a4d757e4dc5bfee53dedcc863c539273d7135b063b724bc0edf153fd1f2828866801673c068442b38bcf45ea3bc006b84aaef5e8cc1de1d00e10484b3a59546c4b729595bde6a7facb5e1f6a041dd52307ec9ca2d1ca891eca2e2f0803ddac1698d6cc07d4ee381c06e9d232676c1acfa03287000c44afdf6c1613fa3ae499acd852f8a43dee5f2f790ab6b56a3010d6f35b6d0d3d185540f21593b8d8e75c4938192706ae087555ebc1e48882f1ee46af8256964d7fd4fb9bb6ffa60f79036b17e46d7f210c25fb1690a748dcf33ae74b1f44290fe1a46b87333def13630cc17e7e1290593775b043f817e603675dd16ceb159b4ee6d43799c2ae23984465e0942a64e30da1271d5e6194585d3ecdfe2302d4cae4ca388a516184e333f0d87103ab6585a955be8c7708c338fe1775b04486721b008cf99fd1f6d1a0d1027d975b21086fd42d4037f7979eac9e22108432401aff3443c5aec62e5a7c44bcda3d0ccc0e1b56c611f69b84500d2649f852190eedd1eb9a121d476dd26f81c6a52859c1de36066e8ce44a9f2edf94717b0fe445caddb',
+ signature:
+ '0x0935c5706443302711732ba9885ca7bb6159c5dfb605c342c630bce9c4df9cba359818f330e3593c627a2020bc762b8dee97106effaca61b569a7f12b5b8c2f9a38ce92927ce3ecdad3c3521443347ea9f63c9fe448709002047f28671758100e5c94e4df05362b16138752bd5990604885ecc8eaa2d2466ebf538115370c72b5985c9f13ec04f762e3625fd433248a7f6efee01be7c22f1bfaa0f459396ad0255cc34d0b3e1e4c1a7b556ec9bf017e83bee29965f2fcf90e92c38fd99ec60fd4afa9eada645eb2bb7cb53b7e67211e8555a5fff6fe93257c975bc13a39681542eb5be699554f3b0ecb8b9e3d8adf0bfc5631355aaaa191dd45c26d0821cd71031a12338684a00a3dcf0cf1142a5185a73b8810cec81b521fed4452a76911a3e8cc06c5774d17cc45da74d6d40d0a17319970bc8920be220e1adf898eed27a5f2180b9df60164c9633dbdf748edc44bae0c117ee8650edd05158baeb9ffec06a413ab9ca6f484e7e68052a2f8721ec35f6c5dae005004dd4de715b142c1251fbc3810483b2dfdded14d98f7eeaf26a0f49673c6391610e413a58a6a49fa507e2fd5272e726a859d9b5ef7a3437e3af4c5001e7031ead37a048e32ae1cccaf1cace132722a26b4e7f88842a53e64c61a87d27c8070ad2757bc0db0338b774e54531aeb98e153e41dba39843c8d061fe487a38c6d5af11e8e699177bacff2458bb66eb5848c087de205589d99c63c011070e23696dc764b681625b54dc925b8d9b16246d8daaa910cc0ebd022b360e222f3a0c1ace07450e91de9dea8e3b6830370b1e21244ae71acaabf78571c202e59e6ad357afd8e7ddc9d1d9431f4efe4b75e8efd9a0805d91cb8b12f90d3e6e9c578c0932286438e49b4dedc3ea0a135c7cdbb3f383086bdec0328108c98c9eadade7a6b7132cfc2294c11c5caa2cb711f89ba9ced9cd4c8b89bfc1980bbe1d56385b4950fe00a2d48026de9f7a6a150f8a4e87b133ed70f894aca75960c0852abd8879051d0eabd1d9261a4dc785d8195a74819c4d9398fb4d2d9deb17bc8b63ee84100dacdaba9915a9305700fec4feae4452c53ab3868934ed02a629f79e96173d3d406b3d212e4caded40b9be7b5f377765a6e7db5c550641555251ac2ac0af8bf3b47fe5491bfe0119f7aea37f5131cbdd1d5e41c4fb3c77a720265e69c269587430fa4b5081dffe263a5fd45614258897fd454f2d15534337bcabe5538769015c2c135f3ddd27a67037d869b62ae57614f0dfec276ff9306e006a8933f303b587254609ced54432cafe59b7dd221fb84054ac080b710b2b476a2ce33130f03a817d2cead4fa151b083946ad680fe7d116f65581aefcfd8e3fbbd5657657a85230cff1e3e2f80381054d54c96e82a902bcfbcb60cf20d838f8fba4b74b482f8535554ab050715d008eaac85dab3c4919606a7f948f2e67f9ba41d023ec9c57d559fd1cfe56e6ea0e99c235c86010312c9d63d719ce73478c7a3b19b3fa0f7a5271771364f71a31875f56cc2bb567cbf874563891563d787a2033b3bfc7071cbb8b2ad7629446a132a23871486bad2bc1c7bf0ca4b217ede496907f71f0cc67318a533e259a5b5e6e6ad1e4b80ad62480103d525c9a9cf37e5408566eb8ef89ee2be6843397efd0959fd7cb0407b3700b2e0bf5cddf38d7d12f2a30637519babc7d2e22292ea868f2338dcc3bf63f4977439cd0984fec14de470ff940930be9614ae27d4a9c7d7e6430591e72997c3590a42538d5624eab37bf0f4bb84a66393b1f0f23bf0ac9fd439ede4eb58d4dc2aac5dc45865fc05493bc97d7df1d72cd6d0f56c90af76c9053432719cd8ace5838bd4d4592835aa4fc6466cfe43e60715cd8357a213449e1485ea058514e1ff539271a5434babf5d2f53d2ef82e2549a5e7ca68d6659e1b959e17cab4718ffa27119a3bc5238693d38c7fd1c4d3a66ddc643fb265ebd5f4b42457a64c7e20df6213285239a4aa1299708b304916cf3e3638c8dd3462add791d93c066e335beff662e43a899fee8bfa3902a94b0b8ee4c417935841dcb45207db1270ae584bfba4a1377e317cf6c868715b23877479c68b21c24e2e12bc9537aabd3093e5186f8a78acc393404a42b8a7e54e9fc7ad472e10d34cdb90ca8f94ed9484d37f517b465895643be2d26bb8130e553e7b55c66847671149567c34810b3c5f7f583eaeff39fca2c82ae5694d109b5bd5b9f24309df592d9bcac06e0818ad42de3b86cf52751244bf53e5e3dc2d47277ed6c0219d1dc3ed861462abc1df2759cc457e04971cc4aabef5a8798bd0b3805933fa73b15f437bd01f054d432dcc5f89a1a59efddedb8c78265d1765c3d538f1cca56611347a7a76d5fc1b28b48c2785008606a3b774461fbfd14204ca4d3a2b687424ade21489abecae340b10f0cc4e8a691f399a7a78cc573dc5a2e580845c8ea907f0c0a2145910e5c2eb9edf9230a94337572678cce9b33f48cafe61e494fe44c9ca24bc8c5b4a7f1cbce8a220f4b8d97156bc1cf91a43c1d71dde2dc621b77a3d94138d35b4d67f78e9c1c27127f4e8333039642f814398c21712eb0f3b27ea594fe81d8cc796bd4f8bdc1dabd916bef09bcf0bdf9034595d412675a4ace420f5105fa9ca1ecab8995bfb833d4d80f54bed43571aa411d8ba70f14cf361c549bf84e6d72a1a62e7272963221134620f87742804cb6868109aab31bba8f4520192e75ad39cb20375b2cac0e007662db7b0257c9f933aecc199b989eec8c716759458407f84b3e1dd0014db44309a46df72c996ef053090290e77c774722d0e52a8118256884bc0e782aab637c8312058cb3b85ad01186540e6d69b2d1586b523ec282fcb88a35928268c2003f87cb58b58bffbef4f636483bb06ad58fabefb958cf1bd4bec44d14be31c31aaa7cffa839161fc9be6e1a04f38ce2314ff5b3e039e6d6a3b4fb51ff0a30cce255048d467e27baf6cc2df950c0d629c9b352584d313291b38e5963e575f85bb1c00daf21b9dba8740bb842153a467e87f43983a8cf2691e9de3a52a6e13487faf8665ec639a60cb688426aad216d3f5b9feb89813a28979219ba6066842145b6775ed827023728685df857d190eac57d1acef555c9b1e30054364b730617a90c8582e5e6f66bfa245b0c53705530c6faa4011a0d5b94d15c65555437862ad6919f0182e038080fb3cfaa0224e40bb69403f8095bd744ec178f2855fa08f3e94e7dce2b64a4383da62809a8537efc0dbad167127eb170e69dabe6c142ea8a65aceca2a01c5e3f816d54e77cf08203d24752f7e99de231d08c3cf5f8481d7a94ce1ebc54f5121825a700eff0bb3577a604a0251bec7019a08918427bfd9e376cfa7b47d69fb888339bbca64b0b231f64d373b9137a1b1fe8115eb85447a6f3791e1f60f397128b60fb5a81fa713b712a6fc8e48dedf81c362c462749f77d2244ff8bf4d20fe40dffec34606e8e1faf9d1f67bf1990351564a4fc613bb1cf1f871e03dfe9a099c812aa349edc0fb581282ace5867d7ee1207cdaa261219cad381b446a6051422aace3eedcce741338b593b9c192ea3997886e88a0e38f5d346723cc0e94466f49d128f9d40d2f470551f3105ca0dfbea39db3748f6b6cee706a1e17783e228c3f0daa4b3e3f72ebe1923dc94f18a66119905ecb0f53fa15cbf305004a94d70ce5df8dedd76d071036e9bc99e76a345009cf5424cdbd7a877831408bfc4d6a3321e33bb0ac2fd81bc405bff83f7fc4b8e558af231d88fdde4ae4402c8b743964cd8d543378f6212ae6dd68b2e8efcb62d4a7d7cccf85eafcebfca7a1d06b0b7fa618f8ecd7c07cbe40183244aaeba1c37520d464f9d96dc392f3f7cbb806f12c2d867b94324d35854d7fca5454cabf5de6fc7225ac4965ca176f9fc8f1d62fc1b27a4768bd9d6a2bf7d10982a01d9e953d9ccb3b0f20e79a9963b365fe4fc7a70d9b88b223e889bdd3dc17a3dc8d195feb4f39cb59f590e464c8efcaa445a4d5ebc5501fd0e91040b639ce3b4b2574a3eabaa60cef9334b1a384da9930849f36e01b8c8dbdabde85c3b02eb6b209fbd57028432a17fbd3ef987d38ab4157f02a5578bee71ed0a28c58447dfb9f6f15647831c20dcb82499c3f1484b5f4b1bf0bb94b57b5483e1565020f134e15312dcfdbfa1c6af51b6d9f486d39977a96a53f028c2cc0bb8078ee21059dd44d455aeb51daf1579abe4c35e6f1251df752d26a42dee8c20d710b173b32c3990866d1683063cef6cd8ed1512e109207d421cdb7d7db8c9fa2797d6be3ee057b3207c86846db11cff0a29e07d23fe6a4eeae3943798a76acedb3d38797f6f094ee1ad6203a3353fb120811c3d18170a774b7809f311d404e861fc07a0c0fedd8c6f4529d401086b948d1f373c60883b23c0eb202a9f98e61b501b91bcdb9a20d18e62c060e21d192ec0924164a9d7bca22a6668ac07fb11500cd009cf80eb0ce8576470099123686ac16ad32184f124aeb8a6202fa58aa2b9adb0664307044ec969b4d2dc90102f6ac9757963b0da6bffbf5aaf7928006653ad9a8ea285948d00971ae4067efa7b37990ca1416cdbd689e950a5d3d61ed7c990915cdd97b8d273223df3ec242e6f5b48222f35059f301b28b876d114ad5dc26caa9964a509c9d4d82e966ea94ee9c2d5694304e37187dcdb58c3ccc4eee8e786b33f37c08204d5feee88a96127710bfbe00d63fb17b397210b11c508a5138d9a7d4f75ddaf882261ff1b02f05975e2757c70bdde9208ceaca0ef1ed4c7ecf2b3a2be1c1e11ab984f2dcc580dfbf03207032c10f682a19398b47d88940292f1a5bf780d6f8567f1169130742ad5cac9c42d546d6581b5df8ebd7d607ce465e6eeb9b12fd09a520d604a2ef348c2fbe7bb1f81551d67433b1d19438682ed0d46caf8fbe0d8ec10d85ca71a3095eb76d34461c8eb5a90d39f3c97b1f619bea1663befcaaecc97a9a08d4b335242319ded480d826dd35894f64c49cda13102d9aa126aeda4365accbc7bc6aca9a723537991273f41c09ecf009908b4f18de6729f6d16ff598a20bdd46dfb62ac08ee67ed91dfb8d992a14382293129d9971c6b9ebbb378c87ae9704fb976943e02abd29a7febc86e00488677d575d501bc3e8485c4b1d80a343e1aca737da8d9fdf589255a51fbe93efb84c43b76934675d63ee93e1234e299101b7b99b88f152340dd07fba2d97abae648173b2a58546159bb59e83561df55559bc6008255aeadaf56efd7035ec0dfe1bf45483224712b4c0328d78faa365694df862d75bedbf18d9737171351d1e7a19e8f3cf7a1e05357a728e711e7771d159e7712457af1a6b678f00758811a8f8507fb2dfe4253abbddb89553793d29a41cf2b64a5e824b78afffddcbf81342fa0877e0c88b9a97323e1102803ca2541bd28fb790b0821597d8661bd4fe524b7ecdada89a30cbaef2cba546145d6ea4b985aef676d13cdad1d13cd8d086c26cf60dcd8d33b21a4e7a8c5e9a1abaa5938282288f05fcd6143f3ad0c22b6c68bda5bf1df2ee6ca00dbddad99f5013125da578299fcd0ea8b040b2a0f854331355ed1e00489fbdf862a81aea97b1a417df3aa530f7843d66516eb997b1ec517eba23f80eb38c4cb7ad5e488081431425fcfc272584f3f24e29ee2023ae1c197c3d6f77d2ce54b5da9d4fb13e8aad9915d17afd2deb55bc6adcbcd717fba516ef6d79494c8e0efc4a85baa7a97891706e700f400d9d880707111f081f1af6d2ab9e3f375ac60ae923f9a1d92037b143b5d4bf238af35930b876f47afd3202a2279a8fcdef568fd192da1b8504ca9daea018c0c221acc76ddda58a0e373d0e63817ec36d026421b74b87bb5b159d9013879083a298e5385c3120e3b853816416c359d0e65050adc3b70627b084ad7149ab461db9e8335e602b903fbeccc2c12234f2b67a4d30fd2b7a19fc335b24c76f0e52e75539dfa2f7c4f00f8afbc442fa84cc2c830c0e935ba294c1392c874a369f75505093346170727a1fdbc7dedaa07df03d75d5ce5dfdd9acbf82c29c20d3151b7b99b47e9d085df2d14514df579739a6d25b825322108ed2da49e7c55f29f56ac490b6e1c6f8bd20fa9d979211d69523da1f1ed38b8208c622e755d6dc839b2816c3c377e5e3b8a4519cdded01995fc42464acfcd6823712884804629af7530a02a46798c8d28e0fd8cb05c8da263c576a881d1f7159301158b5093e30557e2d4496e35ff8dccb26d8fa29adc24456846acb017cc99e28eec9f47bc406c0963e3310d19f51f9b402ca86ec763ae7d5f96ed3d3cc281c4ab0fec7b0f7cca1e3b0f68fe144c37fef2537413c7963309b35ddb8837072d5a84161d2e4a5e9993aaf70eaaf00023434f97bcc0cdd1f5091547ace2ef0e2c31a0b4dd76829dadaeb4d9eef354658be6f30000000000000000000000000000000000000000000000000000000005080b151b212a2f',
};
const type0x2SignedTransactionInfo = {
@@ -73,7 +75,7 @@ type TestData = [
string,
[Transaction, SignedTransactionInfoAPI | HexStringBytes, SignedTransactionInfoAPI],
];
-export const testData: TestData[] = [
+export const testData: TestData[] = [
[
JSON.stringify(rawType0x2Transaction),
[
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/get_block_number.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/get_block_number.test.ts
index c5c6947a..83ddad1a 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/get_block_number.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/get_block_number.test.ts
@@ -16,7 +16,12 @@ along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
import { format } from '@theqrl/web3-utils';
-import { DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { getBlockNumber } from '../../../src/rpc_method_wrappers';
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/get_chain_id.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/get_chain_id.test.ts
index 0fd9ec55..d455c79e 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/get_chain_id.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/get_chain_id.test.ts
@@ -16,7 +16,12 @@ along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
import { format } from '@theqrl/web3-utils';
-import { DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { getChainId } from '../../../src/rpc_method_wrappers';
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/get_gas_price.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/get_gas_price.test.ts
index 541c59a7..987ce286 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/get_gas_price.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/get_gas_price.test.ts
@@ -16,7 +16,12 @@ along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
import { format } from '@theqrl/web3-utils';
-import { DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { getGasPrice } from '../../../src/rpc_method_wrappers';
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/get_logs.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/get_logs.test.ts
index ef6a1582..6d2e7e29 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/get_logs.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/get_logs.test.ts
@@ -16,7 +16,12 @@ along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
import { format } from '@theqrl/web3-utils';
-import { DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { getLogs } from '../../../src/rpc_method_wrappers';
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/get_pending_transactions.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/get_pending_transactions.test.ts
index 10c2f0a8..5f82d524 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/get_pending_transactions.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/get_pending_transactions.test.ts
@@ -15,7 +15,12 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
-import { DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { getPendingTransactions } from '../../../src/rpc_method_wrappers';
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction.test.ts
index e4b1abc8..8501b510 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction.test.ts
@@ -16,7 +16,12 @@ along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
import { format } from '@theqrl/web3-utils';
-import { DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { getTransaction } from '../../../src/rpc_method_wrappers';
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction_count.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction_count.test.ts
index 56026811..5aca8def 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction_count.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction_count.test.ts
@@ -73,7 +73,9 @@ describe('getTransactionCount', () => {
mockRpcResponse,
expectedReturnFormat,
);
- (zondRpcMethods.getTransactionCount as jest.Mock).mockResolvedValueOnce(mockRpcResponse);
+ (zondRpcMethods.getTransactionCount as jest.Mock).mockResolvedValueOnce(
+ mockRpcResponse,
+ );
const result = await getTransactionCount(
web3Context,
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction_receipt.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction_receipt.test.ts
index cb7c7f9b..fe3bec4a 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction_receipt.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/get_transaction_receipt.test.ts
@@ -16,7 +16,12 @@ along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
import { format } from '@theqrl/web3-utils';
-import { DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { getTransactionReceipt } from '../../../src/rpc_method_wrappers';
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/sign.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/sign.test.ts
index 5ac7d0a0..efe5284d 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/sign.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/sign.test.ts
@@ -16,7 +16,12 @@ along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
import { format } from '@theqrl/web3-utils';
-import { DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { Wallet } from '@theqrl/web3-zond-accounts';
import { sign } from '../../../src/rpc_method_wrappers';
diff --git a/packages/web3-zond/test/unit/rpc_method_wrappers/sign_typed_data.test.ts b/packages/web3-zond/test/unit/rpc_method_wrappers/sign_typed_data.test.ts
index 51f34c25..b7cc90af 100644
--- a/packages/web3-zond/test/unit/rpc_method_wrappers/sign_typed_data.test.ts
+++ b/packages/web3-zond/test/unit/rpc_method_wrappers/sign_typed_data.test.ts
@@ -15,7 +15,12 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
import { Web3Context } from '@theqrl/web3-core';
-import { DEFAULT_RETURN_FORMAT, FMT_BYTES, FMT_NUMBER, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ FMT_BYTES,
+ FMT_NUMBER,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import { format } from '@theqrl/web3-utils';
diff --git a/packages/web3-zond/test/unit/utils/getTransactionFromOrToAttr.test.ts b/packages/web3-zond/test/unit/utils/getTransactionFromOrToAttr.test.ts
index 039eeb46..9e00fe4a 100644
--- a/packages/web3-zond/test/unit/utils/getTransactionFromOrToAttr.test.ts
+++ b/packages/web3-zond/test/unit/utils/getTransactionFromOrToAttr.test.ts
@@ -50,8 +50,7 @@ describe('getTransactionFromOrToAttr', () => {
it.each(invalidGetTransactionFromOrToAttrDataForWallet)(
'$title with wallet',
({ input, output }) => {
- const seed =
- '0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709';
+ const seed = '0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709';
// setup wallet
const web3Zond = new Web3Zond('http://localhost:8545');
diff --git a/packages/web3-zond/test/unit/utils/watch_transaction_by_polling.test.ts b/packages/web3-zond/test/unit/utils/watch_transaction_by_polling.test.ts
index 3ff90d71..82d82166 100644
--- a/packages/web3-zond/test/unit/utils/watch_transaction_by_polling.test.ts
+++ b/packages/web3-zond/test/unit/utils/watch_transaction_by_polling.test.ts
@@ -37,7 +37,8 @@ const mockBlockData = {
hash: '0xdc0818cf78f21a8e70579cb46a43643f78291264dda342ae31049421c82d21ae',
};
-const testMessage = 'Title: %s\ninputSignedTransaction: %s\nexpectedTransactionHash: %s\nexpectedTransactionReceipt: %s\n';
+const testMessage =
+ 'Title: %s\ninputSignedTransaction: %s\nexpectedTransactionHash: %s\nexpectedTransactionReceipt: %s\n';
describe('watchTransactionByPolling', () => {
describe('should call getBlockByNumber', () => {
let web3Context: Web3Context;
diff --git a/packages/web3-zond/test/unit/utils/watch_transaction_for_confirmations.test.ts b/packages/web3-zond/test/unit/utils/watch_transaction_for_confirmations.test.ts
index c3ab3ffa..97875bae 100644
--- a/packages/web3-zond/test/unit/utils/watch_transaction_for_confirmations.test.ts
+++ b/packages/web3-zond/test/unit/utils/watch_transaction_for_confirmations.test.ts
@@ -16,7 +16,11 @@ along with web3.js. If not, see .
*/
import { Web3Context, Web3PromiEvent } from '@theqrl/web3-core';
import { format } from '@theqrl/web3-utils';
-import { DEFAULT_RETURN_FORMAT, TransactionReceipt, Web3ZondExecutionAPI } from '@theqrl/web3-types';
+import {
+ DEFAULT_RETURN_FORMAT,
+ TransactionReceipt,
+ Web3ZondExecutionAPI,
+} from '@theqrl/web3-types';
import { zondRpcMethods } from '@theqrl/web3-rpc-methods';
import {
TransactionMissingReceiptOrBlockHashError,
diff --git a/packages/web3-zond/test/unit/web3_zond_calculate_fee_data.test.ts b/packages/web3-zond/test/unit/web3_zond_calculate_fee_data.test.ts
index 9611175a..0fe9c641 100644
--- a/packages/web3-zond/test/unit/web3_zond_calculate_fee_data.test.ts
+++ b/packages/web3-zond/test/unit/web3_zond_calculate_fee_data.test.ts
@@ -36,7 +36,9 @@ describe('Web3Zond.calculateFeeData', () => {
'latest',
false,
);
- expect(zondRpcMethods.getMaxPriorityFeePerGas).toHaveBeenCalledWith(web3Zond.requestManager);
+ expect(zondRpcMethods.getMaxPriorityFeePerGas).toHaveBeenCalledWith(
+ web3Zond.requestManager,
+ );
});
it('should calculate fee data', async () => {
@@ -44,11 +46,13 @@ describe('Web3Zond.calculateFeeData', () => {
const maxPriorityFeePerGas = BigInt(100);
const baseFeePerGasFactor = BigInt(3);
- jest.spyOn(zondRpcMethods, 'getBlockByNumber').mockReturnValueOnce({ baseFeePerGas } as any);
+ jest.spyOn(zondRpcMethods, 'getBlockByNumber').mockReturnValueOnce({
+ baseFeePerGas,
+ } as any);
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
- jest
- .spyOn(zondRpcMethods, 'getMaxPriorityFeePerGas')
- .mockReturnValueOnce(maxPriorityFeePerGas as any);
+ jest.spyOn(zondRpcMethods, 'getMaxPriorityFeePerGas').mockReturnValueOnce(
+ maxPriorityFeePerGas as any,
+ );
const feeData = await web3Zond.calculateFeeData(baseFeePerGasFactor, maxPriorityFeePerGas);
expect(feeData).toMatchObject({
@@ -63,7 +67,9 @@ describe('Web3Zond.calculateFeeData', () => {
const alternativeMaxPriorityFeePerGas = BigInt(700);
const baseFeePerGasFactor = BigInt(3);
- jest.spyOn(zondRpcMethods, 'getBlockByNumber').mockReturnValueOnce({ baseFeePerGas } as any);
+ jest.spyOn(zondRpcMethods, 'getBlockByNumber').mockReturnValueOnce({
+ baseFeePerGas,
+ } as any);
const feeData = await web3Zond.calculateFeeData(
baseFeePerGasFactor,
alternativeMaxPriorityFeePerGas,
diff --git a/packages/web3-zond/test/unit/web3_zond_methods_no_parameters.test.ts b/packages/web3-zond/test/unit/web3_zond_methods_no_parameters.test.ts
index aa44d928..51123157 100644
--- a/packages/web3-zond/test/unit/web3_zond_methods_no_parameters.test.ts
+++ b/packages/web3-zond/test/unit/web3_zond_methods_no_parameters.test.ts
@@ -64,7 +64,9 @@ describe('web3_zond_methods_no_parameters', () => {
it('getMaxPriorityFeePerGas', async () => {
await web3Zond.getMaxPriorityFeePerGas();
- expect(zondRpcMethods.getMaxPriorityFeePerGas).toHaveBeenCalledWith(web3Zond.requestManager);
+ expect(zondRpcMethods.getMaxPriorityFeePerGas).toHaveBeenCalledWith(
+ web3Zond.requestManager,
+ );
});
});
});
diff --git a/packages/web3/CHANGELOG.md b/packages/web3/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/packages/web3/CHANGELOG.md
+++ b/packages/web3/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3/README.md b/packages/web3/README.md
index 334ed99e..382f44d3 100644
--- a/packages/web3/README.md
+++ b/packages/web3/README.md
@@ -56,25 +56,25 @@ yarn add web3
We encourage users to use only required individual packages listed in following table, for making lightweight application instead of importing main web3 package, and if you don't need functions from most of the packages that are implicitly included with main web3 package.
-| Package | Version | License | Docs | Description |
-| ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
-| [web3](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3) | [](https://www.npmjs.com/package/web3) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3) | :rotating_light: Entire Web3.js offering (includes all packages) |
-| [web3-core](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-core) | [](https://www.npmjs.com/package/web3-core) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-core) | Core functions for web3.js packages |
-| [web3-errors](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-errors) | [](https://www.npmjs.com/package/web3-core) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-errors) | Errors Objects |
-| [web3-zond](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth) | [](https://www.npmjs.com/package/web3-eth) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth) | Modules to interact with the Zond blockchain and smart contracts |
-| [web3-zond-abi](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-abi) | [](https://www.npmjs.com/package/web3-eth-abi) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-abi) | Functions for encoding and decoding ZVM in/output |
-| [web3-zond-accounts](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-accounts) | [](https://www.npmjs.com/package/web3-eth-accounts) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-accounts) | Functions for managing Zond accounts and signing |
-| [web3-zond-contract](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-contract) | [](https://www.npmjs.com/package/web3-eth-contract) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-contract) | The contract package contained in [web3-zond](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth) |
-| [web3-zond-ens](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-ens) | [](https://www.npmjs.com/package/web3-eth-ens) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-ens) | Functions for interacting with the Ethereum Name Service |
-| [web3-zond-iban](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-iban) | [](https://www.npmjs.com/package/web3-eth-iban) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-iban) | Functionality for converting Zond addressed to IBAN addressed and vice versa |
-| [web3-net](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-net) | [](https://www.npmjs.com/package/web3-net) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-net) | Functions to interact with an Zond node's network properties |
-| [web3-providers-http](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-http) | [](https://www.npmjs.com/package/web3-providers-http) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-http) | Web3.js provider for the HTTP protocol |
-| [web3-providers-ipc](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ipc) | [](https://www.npmjs.com/package/web3-providers-ipc) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-ipc) | Web3.js provider for IPC |
-| [web3-providers-ws](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ws) | [](https://www.npmjs.com/package/web3-providers-ws) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-ws) | Web3.js provider for the Websocket protocol |
-| [web3-rpc-methods](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-rpc-methods) | [](https://www.npmjs.com/package/web3-types) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/) | RPC Methods |
-| [web3-types](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-types) | [](https://www.npmjs.com/package/web3-types) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-types) | Shared useable types |
-| [web3-utils](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-utils) | [](https://www.npmjs.com/package/web3-utils) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-utils) | Useful utility functions for Dapp developers |
-| [web3-validator](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-validator) | [](https://www.npmjs.com/package/web3-validator) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-validator) | Utilities for validating objects |
+| Package | Version | License | Docs | Description |
+| ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
+| [web3](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3) | [](https://www.npmjs.com/package/web3) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3) | :rotating_light: Entire Web3.js offering (includes all packages) |
+| [web3-core](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-core) | [](https://www.npmjs.com/package/web3-core) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-core) | Core functions for web3.js packages |
+| [web3-errors](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-errors) | [](https://www.npmjs.com/package/web3-core) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-errors) | Errors Objects |
+| [web3-zond](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth) | [](https://www.npmjs.com/package/web3-eth) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth) | Modules to interact with the Zond blockchain and smart contracts |
+| [web3-zond-abi](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-abi) | [](https://www.npmjs.com/package/web3-eth-abi) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-abi) | Functions for encoding and decoding ZVM in/output |
+| [web3-zond-accounts](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-accounts) | [](https://www.npmjs.com/package/web3-eth-accounts) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-accounts) | Functions for managing Zond accounts and signing |
+| [web3-zond-contract](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-contract) | [](https://www.npmjs.com/package/web3-eth-contract) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-contract) | The contract package contained in [web3-zond](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth) |
+| [web3-zond-zns](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-ens) | [](https://www.npmjs.com/package/web3-eth-ens) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-ens) | Functions for interacting with the Zond Name Service |
+| [web3-zond-iban](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-iban) | [](https://www.npmjs.com/package/web3-eth-iban) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-iban) | Functionality for converting Zond addressed to IBAN addressed and vice versa |
+| [web3-net](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-net) | [](https://www.npmjs.com/package/web3-net) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-net) | Functions to interact with a Zond node's network properties |
+| [web3-providers-http](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-http) | [](https://www.npmjs.com/package/web3-providers-http) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-http) | Web3.js provider for the HTTP protocol |
+| [web3-providers-ipc](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ipc) | [](https://www.npmjs.com/package/web3-providers-ipc) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-ipc) | Web3.js provider for IPC |
+| [web3-providers-ws](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ws) | [](https://www.npmjs.com/package/web3-providers-ws) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-ws) | Web3.js provider for the Websocket protocol |
+| [web3-rpc-methods](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-rpc-methods) | [](https://www.npmjs.com/package/web3-types) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/) | RPC Methods |
+| [web3-types](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-types) | [](https://www.npmjs.com/package/web3-types) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-types) | Shared useable types |
+| [web3-utils](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-utils) | [](https://www.npmjs.com/package/web3-utils) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-utils) | Useful utility functions for Dapp developers |
+| [web3-validator](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-validator) | [](https://www.npmjs.com/package/web3-validator) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-validator) | Utilities for validating objects |
[docs]: https://docs.web3js.org/
[repo]: https://github.com/web3/web3.js/tree/4.x/packages/web3
diff --git a/packages/web3/package.json b/packages/web3/package.json
index cdd98baa..90825750 100644
--- a/packages/web3/package.json
+++ b/packages/web3/package.json
@@ -91,7 +91,7 @@
"@theqrl/web3-zond-abi": "^0.3.0",
"@theqrl/web3-zond-accounts": "^0.3.0",
"@theqrl/web3-zond-contract": "^0.3.0",
- "@theqrl/web3-zond-ens": "^0.3.0",
+ "@theqrl/web3-zond-zns": "^0.3.0",
"@theqrl/web3-zond-iban": "^0.3.0"
},
"gitHead": "d4f3246946fec86d908a215b27568aa8faea88d7"
diff --git a/packages/web3/src/accounts.ts b/packages/web3/src/accounts.ts
index 622517db..65f90b3b 100644
--- a/packages/web3/src/accounts.ts
+++ b/packages/web3/src/accounts.ts
@@ -15,14 +15,19 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { ZondExecutionAPI, Bytes, Transaction, /*KeyStore,*/ ZOND_DATA_FORMAT } from '@theqrl/web3-types';
+import {
+ ZondExecutionAPI,
+ Bytes,
+ Transaction,
+ /* KeyStore, */ ZOND_DATA_FORMAT,
+} from '@theqrl/web3-types';
import { format } from '@theqrl/web3-utils';
import { Web3Context } from '@theqrl/web3-core';
import { prepareTransactionForSigning } from '@theqrl/web3-zond';
import {
create,
- //decrypt,
- //encrypt,
+ // decrypt,
+ // encrypt,
hashMessage,
recoverTransaction,
signTransaction,
@@ -85,7 +90,7 @@ export const initAccountsForContext = (context: Web3Context) =
create: createWithContext,
seedToAccount: seedToAccountWithContext,
// TODO(youtrack/theqrl/web3.js/3)
- //decrypt: decryptWithContext,
+ // decrypt: decryptWithContext,
});
return {
@@ -93,12 +98,12 @@ export const initAccountsForContext = (context: Web3Context) =
create: createWithContext,
seedToAccount: seedToAccountWithContext,
// TODO(youtrack/theqrl/web3.js/3)
- //decrypt: decryptWithContext,
+ // decrypt: decryptWithContext,
recoverTransaction,
hashMessage,
sign,
// TODO(youtrack/theqrl/web3.js/3)
- //encrypt,
+ // encrypt,
wallet,
};
};
diff --git a/packages/web3/src/index.ts b/packages/web3/src/index.ts
index c1116259..fb3a8071 100644
--- a/packages/web3/src/index.ts
+++ b/packages/web3/src/index.ts
@@ -65,7 +65,7 @@ along with web3.js. If not, see .
* ```ts
* import Web3 from '@theqrl/web3';
*
- * // "Web3.givenProvider" will be set if in an Zond supported browser.
+ * // "Web3.givenProvider" will be set if in a Zond supported browser.
* const web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8546');
*
* > web3.zond
@@ -249,7 +249,7 @@ along with web3.js. If not, see .
* web3.zond.givenProvider
* ...
* ```
- * When using web3.js in an Zond compatible browser, it will set with the current native provider by that browser.
+ * When using web3.js in a Zond compatible browser, it will set with the current native provider by that browser.
* Will return the given provider by the (browser) environment, otherwise `undefined`.
*
* #### Returns
diff --git a/packages/web3/src/types.ts b/packages/web3/src/types.ts
index 393de695..fd380f92 100644
--- a/packages/web3/src/types.ts
+++ b/packages/web3/src/types.ts
@@ -27,7 +27,7 @@ import {
encodeParameters,
} from '@theqrl/web3-zond-abi';
import {
- //encrypt,
+ // encrypt,
hashMessage,
recoverTransaction,
sign,
@@ -36,7 +36,7 @@ import {
Web3Account,
} from '@theqrl/web3-zond-accounts';
import { Contract } from '@theqrl/web3-zond-contract';
-import { ENS } from '@theqrl/web3-zond-ens';
+import { ZNS } from '@theqrl/web3-zond-zns';
import { Net } from '@theqrl/web3-net';
import { Iban } from '@theqrl/web3-zond-iban';
@@ -58,7 +58,7 @@ export interface Web3ZondInterface extends Zond {
Contract: typeof Contract;
Iban: typeof Iban;
net: Net;
- ens: ENS;
+ zns: ZNS;
abi: {
encodeEventSignature: typeof encodeFunctionSignature;
encodeFunctionCall: typeof encodeFunctionCall;
@@ -80,7 +80,7 @@ export interface Web3ZondInterface extends Zond {
hashMessage: typeof hashMessage;
sign: typeof sign;
// TODO(youtrack/theqrl/web3.js/3)
- //encrypt: typeof encrypt;
+ // encrypt: typeof encrypt;
// decrypt: (
// keystore: string,
// password: string,
diff --git a/packages/web3/src/version.ts b/packages/web3/src/version.ts
index 086c03f5..d5f77f8a 100644
--- a/packages/web3/src/version.ts
+++ b/packages/web3/src/version.ts
@@ -1 +1 @@
-/* eslint-disable header/header */ export const Web3PkgInfo = { version: '0.2.1' };
+/* eslint-disable header/header */ export const Web3PkgInfo = { version: '0.3.0' };
diff --git a/packages/web3/src/web3.ts b/packages/web3/src/web3.ts
index 34993fb5..b5de709d 100644
--- a/packages/web3/src/web3.ts
+++ b/packages/web3/src/web3.ts
@@ -24,7 +24,7 @@ import {
} from '@theqrl/web3-core';
import { Web3Zond, RegisteredSubscription, registeredSubscriptions } from '@theqrl/web3-zond';
import Contract from '@theqrl/web3-zond-contract';
-import { ENS, registryAddresses } from '@theqrl/web3-zond-ens';
+import { ZNS, registryAddresses } from '@theqrl/web3-zond-zns';
import { Iban } from '@theqrl/web3-zond-iban';
import { Net } from '@theqrl/web3-net';
import * as utils from '@theqrl/web3-utils';
@@ -53,7 +53,7 @@ export class Web3<
Web3Zond,
Iban,
Net,
- ENS,
+ ZNS,
};
public utils: typeof utils;
@@ -155,8 +155,8 @@ export class Web3<
// Zond Module
this.zond = Object.assign(zond, {
- // ENS module
- ens: self.use(ENS, registryAddresses.main), // registry address defaults to main network
+ // ZNS module
+ zns: self.use(ZNS, registryAddresses.main), // registry address defaults to main network
// Iban helpers
Iban,
diff --git a/packages/web3/src/zond.exports.ts b/packages/web3/src/zond.exports.ts
index 75c9d49e..d5451624 100644
--- a/packages/web3/src/zond.exports.ts
+++ b/packages/web3/src/zond.exports.ts
@@ -20,5 +20,5 @@ export * from '@theqrl/web3-zond';
export * as abi from '@theqrl/web3-zond-abi';
export * as accounts from '@theqrl/web3-zond-accounts';
export * as contract from '@theqrl/web3-zond-contract';
-export * as ens from '@theqrl/web3-zond-ens';
+export * as zns from '@theqrl/web3-zond-zns';
export * as iban from '@theqrl/web3-zond-iban';
diff --git a/packages/web3/test/cjs_black_box/.eslintrc.cjs b/packages/web3/test/cjs_black_box/.eslintrc.cjs
index 88d28e7e..b95638b5 100644
--- a/packages/web3/test/cjs_black_box/.eslintrc.cjs
+++ b/packages/web3/test/cjs_black_box/.eslintrc.cjs
@@ -7,6 +7,6 @@ module.exports = {
parserOptions: {
project: './tsconfig.json',
tsconfigRootDir: __dirname,
- ecmaVersion: 12
+ ecmaVersion: 12,
},
};
diff --git a/packages/web3/test/cjs_black_box/test/web3-zond-contract/erc20.test.ts b/packages/web3/test/cjs_black_box/test/web3-zond-contract/zrc20.test.ts
similarity index 50%
rename from packages/web3/test/cjs_black_box/test/web3-zond-contract/erc20.test.ts
rename to packages/web3/test/cjs_black_box/test/web3-zond-contract/zrc20.test.ts
index 26f7223f..de078b23 100644
--- a/packages/web3/test/cjs_black_box/test/web3-zond-contract/erc20.test.ts
+++ b/packages/web3/test/cjs_black_box/test/web3-zond-contract/zrc20.test.ts
@@ -25,52 +25,48 @@ import {
// eslint-disable-next-line import/no-relative-packages
} from '../../../shared_fixtures/system_tests_utils';
import {
- ERC20TokenAbi,
- ERC20TokenBytecode,
+ ZRC20TokenAbi,
+ ZRC20TokenBytecode,
// eslint-disable-next-line import/no-relative-packages
-} from '../../../shared_fixtures/contracts/ERC20Token';
+} from '../../../shared_fixtures/contracts/ZRC20Token';
/* eslint-disable @typescript-eslint/no-unsafe-call */
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
const Web3 = require('web3').default;
+describeIf(getSystemTestBackend() === 'gzond')('Black Box Unit Tests - web3.zond.Contract', () => {
+ describe('Gzond - ZRC20', () => {
+ let account;
+ let web3: typeof Web3;
+ let deployedContract: Contract;
-describeIf(getSystemTestBackend() === 'gzond')(
- 'Black Box Unit Tests - web3.zond.Contract',
- () => {
- describe('Gzond - ERC20', () => {
- let account;
- let web3: typeof Web3;
- let deployedContract: Contract;
-
- beforeAll(async () => {
- account = await createNewAccount({
- refill: true,
- });
-
- web3 = new Web3(getSystemTestProvider());
- deployedContract = await new web3.zond.Contract(ERC20TokenAbi)
- .deploy({
- data: ERC20TokenBytecode,
- arguments: ['420'],
- })
- .send({ from: account.address, gas: '10000000' });
+ beforeAll(async () => {
+ account = await createNewAccount({
+ refill: true,
});
- afterAll(async () => {
- if (isWs) await closeOpenConnection(web3);
- });
+ web3 = new Web3(getSystemTestProvider());
+ deployedContract = await new web3.zond.Contract(ZRC20TokenAbi)
+ .deploy({
+ data: ZRC20TokenBytecode,
+ arguments: ['420'],
+ })
+ .send({ from: account.address, gas: '10000000' });
+ });
- it('should get deployed contract info', async () => {
- const contract = new web3.zond.Contract(
- ERC20TokenAbi,
- deployedContract.options.address,
- );
+ afterAll(async () => {
+ if (isWs) await closeOpenConnection(web3);
+ });
- expect(await contract.methods.name().call()).toBe('Gold');
- expect(await contract.methods.symbol().call()).toBe('GLD');
- expect(await contract.methods.decimals().call()).toBe(BigInt(18));
- expect(await contract.methods.totalSupply().call()).toBe(BigInt(420));
- });
+ it('should get deployed contract info', async () => {
+ const contract = new web3.zond.Contract(
+ ZRC20TokenAbi,
+ deployedContract.options.address,
+ );
+
+ expect(await contract.methods.name().call()).toBe('Gold');
+ expect(await contract.methods.symbol().call()).toBe('GLD');
+ expect(await contract.methods.decimals().call()).toBe(BigInt(18));
+ expect(await contract.methods.totalSupply().call()).toBe(BigInt(420));
});
- },
-);
+ });
+});
diff --git a/packages/web3/test/e2e/e2e_utils.ts b/packages/web3/test/e2e/e2e_utils.ts
index 493e04c7..b9adb5ac 100644
--- a/packages/web3/test/e2e/e2e_utils.ts
+++ b/packages/web3/test/e2e/e2e_utils.ts
@@ -77,8 +77,7 @@ export const getE2ETestAccountSeed = (): string => {
return process.env.TEST_ACCOUNT_PRIVATE_KEY;
// eslint-disable-next-line no-else-return
} else if (getSystemTestBackend() === 'testnet' || getSystemTestBackend() === 'mainnet') {
- return secrets[getSystemTestBackend().toUpperCase() as 'TESTNET' | 'MAINNET'].ACCOUNT
- .seed;
+ return secrets[getSystemTestBackend().toUpperCase() as 'TESTNET' | 'MAINNET'].ACCOUNT.seed;
}
throw new Error('Unable to get test account private key');
diff --git a/packages/web3/test/e2e/fixtures/mainnet_block_hydrated.ts b/packages/web3/test/e2e/fixtures/mainnet_block_hydrated.ts
index 3689ff0d..25633b17 100644
--- a/packages/web3/test/e2e/fixtures/mainnet_block_hydrated.ts
+++ b/packages/web3/test/e2e/fixtures/mainnet_block_hydrated.ts
@@ -3713,5 +3713,5 @@ export const mainnetBlockHydrated = {
value: '0x0',
},
],
- transactionsRoot: '0x2b0f787500743395385ad4a4142693bffd51d508cae1fdd675d269842b9bc2b0'
+ transactionsRoot: '0x2b0f787500743395385ad4a4142693bffd51d508cae1fdd675d269842b9bc2b0',
};
diff --git a/packages/web3/test/e2e/get_transaction_from_block.test.ts b/packages/web3/test/e2e/get_transaction_from_block.test.ts
index dce9fbe2..33c2dc98 100644
--- a/packages/web3/test/e2e/get_transaction_from_block.test.ts
+++ b/packages/web3/test/e2e/get_transaction_from_block.test.ts
@@ -93,7 +93,7 @@ describe(`${getSystemTestBackend()} tests - getTransactionFromBlock`, () => {
publicKey: expect.any(String),
signature: expect.any(String),
to: null,
- value: '0x0'
+ value: '0x0',
});
}
});
diff --git a/packages/web3/test/esm_black_box/test/web3-zond-contract/erc20.test.ts b/packages/web3/test/esm_black_box/test/web3-zond-contract/erc20.test.ts
deleted file mode 100644
index d2b07dc5..00000000
--- a/packages/web3/test/esm_black_box/test/web3-zond-contract/erc20.test.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-This file is part of web3.js.
-
-web3.js is free software: you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-web3.js 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 Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with web3.js. If not, see .
-*/
-/* eslint-disable import/no-relative-packages */
-import Web3 from '@theqrl/web3';
-import Contract from '@theqrl/web3-zond-contract';
-
-import {
- closeOpenConnection,
- describeIf,
- getSystemTestBackend,
- isWs,
- getSystemTestProvider,
- createNewAccount,
-} from '../../../shared_fixtures/system_tests_utils';
-import { ERC20TokenAbi, ERC20TokenBytecode } from '../../../shared_fixtures/contracts/ERC20Token';
-
-describeIf(getSystemTestBackend() === 'gzond')(
- 'Black Box Unit Tests - web3.zond.Contract',
- () => {
- describe('Gzond - ERC20', () => {
- let account;
- let web3: Web3;
- let deployedContract: Contract;
-
- beforeAll(async () => {
- account = await createNewAccount({
- refill: true,
- });
-
- web3 = new Web3(getSystemTestProvider());
- deployedContract = await new web3.zond.Contract(ERC20TokenAbi)
- .deploy({
- data: ERC20TokenBytecode,
- arguments: ['420'],
- })
- .send({ from: account.address, gas: '10000000' });
- });
-
- afterAll(async () => {
- if (isWs) await closeOpenConnection(web3);
- });
-
- it('should get deployed contract info', async () => {
- const contract = new web3.zond.Contract(
- ERC20TokenAbi,
- deployedContract.options.address,
- );
-
- expect(await contract.methods.name().call()).toBe('Gold');
- expect(await contract.methods.symbol().call()).toBe('GLD');
- expect(await contract.methods.decimals().call()).toBe(BigInt(18));
- expect(await contract.methods.totalSupply().call()).toBe(BigInt(420));
- });
- });
- },
-);
diff --git a/packages/web3/test/esm_black_box/test/web3-zond-contract/zrc20.test.ts b/packages/web3/test/esm_black_box/test/web3-zond-contract/zrc20.test.ts
new file mode 100644
index 00000000..c5718e39
--- /dev/null
+++ b/packages/web3/test/esm_black_box/test/web3-zond-contract/zrc20.test.ts
@@ -0,0 +1,67 @@
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+/* eslint-disable import/no-relative-packages */
+import Web3 from '@theqrl/web3';
+import Contract from '@theqrl/web3-zond-contract';
+
+import {
+ closeOpenConnection,
+ describeIf,
+ getSystemTestBackend,
+ isWs,
+ getSystemTestProvider,
+ createNewAccount,
+} from '../../../shared_fixtures/system_tests_utils';
+import { ZRC20TokenAbi, ZRC20TokenBytecode } from '../../../shared_fixtures/contracts/ZRC20Token';
+
+describeIf(getSystemTestBackend() === 'gzond')('Black Box Unit Tests - web3.zond.Contract', () => {
+ describe('Gzond - ZRC20', () => {
+ let account;
+ let web3: Web3;
+ let deployedContract: Contract;
+
+ beforeAll(async () => {
+ account = await createNewAccount({
+ refill: true,
+ });
+
+ web3 = new Web3(getSystemTestProvider());
+ deployedContract = await new web3.zond.Contract(ZRC20TokenAbi)
+ .deploy({
+ data: ZRC20TokenBytecode,
+ arguments: ['420'],
+ })
+ .send({ from: account.address, gas: '10000000' });
+ });
+
+ afterAll(async () => {
+ if (isWs) await closeOpenConnection(web3);
+ });
+
+ it('should get deployed contract info', async () => {
+ const contract = new web3.zond.Contract(
+ ZRC20TokenAbi,
+ deployedContract.options.address,
+ );
+
+ expect(await contract.methods.name().call()).toBe('Gold');
+ expect(await contract.methods.symbol().call()).toBe('GLD');
+ expect(await contract.methods.decimals().call()).toBe(BigInt(18));
+ expect(await contract.methods.totalSupply().call()).toBe(BigInt(420));
+ });
+ });
+});
diff --git "a/packages/web3/test/integration/external-providers/truffle-hdwallet.test\331\200tbd.ts" "b/packages/web3/test/integration/external-providers/truffle-hdwallet.test\331\200tbd.ts"
index ddfe1213..8ffbc1ae 100644
--- "a/packages/web3/test/integration/external-providers/truffle-hdwallet.test\331\200tbd.ts"
+++ "b/packages/web3/test/integration/external-providers/truffle-hdwallet.test\331\200tbd.ts"
@@ -24,11 +24,10 @@ import {
// getSystemTestProvider,
isIpc,
} from '../../shared_fixtures/system_tests_utils';
-//import Web3 from '../../../src';
+// import Web3 from '../../../src';
describeIf(!isIpc)('compatibility with `truffle` `HDWalletProvider` provider', () => {
- //let provider: HDWalletProvider;
-
+ // let provider: HDWalletProvider;
// beforeAll(async () => {
// const clientUrl = getSystemTestProvider();
// const account1 = await createNewAccount({ unlock: true, refill: true });
diff --git a/packages/web3/test/integration/sync.test.ts b/packages/web3/test/integration/sync.test.ts
index 29ee0c21..83f25dbc 100644
--- a/packages/web3/test/integration/sync.test.ts
+++ b/packages/web3/test/integration/sync.test.ts
@@ -45,7 +45,7 @@ const nodeInfo = async (web3: Web3) => {
};
// TODO(youtrack/theqrl/web3.js/5)
describe.skip('Sync nodes test', () => {
-// describeIf((isIpc || isWs) && isSyncTest)('Sync nodes test', () => {
+ // describeIf((isIpc || isWs) && isSyncTest)('Sync nodes test', () => {
let web3Node1: Web3;
let web3Node2: Web3;
beforeAll(async () => {
diff --git a/packages/web3/test/integration/web3.accounts.test.ts b/packages/web3/test/integration/web3.accounts.test.ts
index 9342b0c4..178415dd 100644
--- a/packages/web3/test/integration/web3.accounts.test.ts
+++ b/packages/web3/test/integration/web3.accounts.test.ts
@@ -64,19 +64,19 @@ describe('web3.accounts', () => {
const tx = {
from: account.address,
to: tempAccount,
- value: web3.utils.toWei('0.00001', 'ether'),
+ value: web3.utils.toPlanck('0.00001', 'zond'),
gas: '0x5218',
data: '0x1',
maxFeePerGas: '0x19475bd7f8',
maxPriorityFeePerGas: '0x5eae5feec',
};
- // Fund this account with some ether
+ // Fund this account with some zond
await expect(
web3.zond.sendTransaction({
from: tempAccount,
to: account.address,
- value: web3.utils.toWei('2', 'ether'),
+ value: web3.utils.toPlanck('2', 'zond'),
}),
).resolves.toBeDefined();
@@ -109,7 +109,7 @@ describe('web3.accounts', () => {
const tx = {
from: account.address,
to: tempAccount,
- value: web3.utils.toWei('0.1', 'ether'),
+ value: web3.utils.toPlanck('0.1', 'zond'),
gas: '0x1',
data: '0x1',
maxFeePerGas: '0x19475bd7f8',
@@ -127,7 +127,7 @@ describe('web3.accounts', () => {
const tx = {
from: tempAccount,
to: account.address,
- value: web3.utils.toWei('0.1', 'ether'),
+ value: web3.utils.toPlanck('0.1', 'zond'),
gas: '0x1',
data: '0x1',
};
@@ -144,19 +144,19 @@ describe('web3.accounts', () => {
const tx = {
from: account.address,
to: tempAccount,
- value: web3.utils.toWei('0.1', 'ether'),
+ value: web3.utils.toPlanck('0.1', 'zond'),
gas: '0x5218',
data: '0x1',
maxFeePerGas: '0x19475bd7f8',
maxPriorityFeePerGas: '0x5eae5feec',
};
- // Fund this account with some ether
+ // Fund this account with some zond
await expect(
web3.zond.sendTransaction({
from: tempAccount,
to: account.address,
- value: web3.utils.toWei('0.5', 'ether'),
+ value: web3.utils.toPlanck('0.5', 'zond'),
}),
).resolves.toBeDefined();
@@ -184,7 +184,7 @@ describe('web3.accounts', () => {
const tx = {
from: account.address,
to: tempAccount,
- value: web3.utils.toWei('0.1', 'ether'),
+ value: web3.utils.toPlanck('0.1', 'zond'),
gas: '0x1',
data: '0x1',
maxFeePerGas: '0x19475bd7f8',
@@ -200,9 +200,7 @@ describe('web3.accounts', () => {
describe('seedToAccount', () => {
it('should create account from seed', async () => {
const acc = await createNewAccount();
- const createdAccount: Web3Account = web3.zond.accounts.seedToAccount(
- acc.seed,
- );
+ const createdAccount: Web3Account = web3.zond.accounts.seedToAccount(acc.seed);
expect(acc.address.toLowerCase()).toBe(createdAccount.address.toLowerCase());
});
});
diff --git a/packages/web3/test/integration/web3.zond.transaction.test.ts b/packages/web3/test/integration/web3.zond.transaction.test.ts
index 7735356d..37a3e6ba 100644
--- a/packages/web3/test/integration/web3.zond.transaction.test.ts
+++ b/packages/web3/test/integration/web3.zond.transaction.test.ts
@@ -84,7 +84,7 @@ describe('signTransaction', () => {
case 'zond_sendRawTransaction':
expect(payload.params[0]).toBe(txObj.signedLondon); // validate transaction for London HF
-
+
// if (txObj.transaction.maxPriorityFeePerGas !== undefined) {
// // eslint-disable-next-line jest/no-conditional-expect
// expect(payload.params[0]).toBe(txObj.signedLondon); // validate transaction for London HF
diff --git a/tools/web3-plugin-example/src/ERC20Token.ts b/packages/web3/test/shared_fixtures/contracts/ZRC20Token.ts
similarity index 95%
rename from tools/web3-plugin-example/src/ERC20Token.ts
rename to packages/web3/test/shared_fixtures/contracts/ZRC20Token.ts
index b13578a6..b07e6647 100644
--- a/tools/web3-plugin-example/src/ERC20Token.ts
+++ b/packages/web3/test/shared_fixtures/contracts/ZRC20Token.ts
@@ -14,7 +14,7 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-export const ERC20TokenAbi = [
+export const ZRC20TokenAbi = [
{
inputs: [{ internalType: 'uint256', name: 'initialSupply', type: 'uint256' }],
stateMutability: 'nonpayable',
@@ -74,26 +74,6 @@ export const ERC20TokenAbi = [
stateMutability: 'view',
type: 'function',
},
- {
- inputs: [
- { internalType: 'address', name: 'spender', type: 'address' },
- { internalType: 'uint256', name: 'subtractedValue', type: 'uint256' },
- ],
- name: 'decreaseAllowance',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'spender', type: 'address' },
- { internalType: 'uint256', name: 'addedValue', type: 'uint256' },
- ],
- name: 'increaseAllowance',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
{
inputs: [],
name: 'name',
@@ -137,5 +117,5 @@ export const ERC20TokenAbi = [
type: 'function',
},
] as const;
-export const ERC20TokenBytecode =
+export const ZRC20TokenBytecode =
'0x60806040523480156200001157600080fd5b50604051620017a8380380620017a8833981810160405281019062000037919062000362565b6040518060400160405280600481526020017f476f6c64000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474c4400000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000272565b508060049080519060200190620000d492919062000272565b505050620000e93382620000f060201b60201c565b5062000535565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000162576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015990620003f5565b60405180910390fd5b62000176600083836200026860201b60201c565b80600260008282546200018a919062000446565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001e1919062000446565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002489190620004b4565b60405180910390a362000264600083836200026d60201b60201c565b5050565b505050565b505050565b828054620002809062000500565b90600052602060002090601f016020900481019282620002a45760008555620002f0565b82601f10620002bf57805160ff1916838001178555620002f0565b82800160010185558215620002f0579182015b82811115620002ef578251825591602001919060010190620002d2565b5b509050620002ff919062000303565b5090565b5b808211156200031e57600081600090555060010162000304565b5090565b600080fd5b6000819050919050565b6200033c8162000327565b81146200034857600080fd5b50565b6000815190506200035c8162000331565b92915050565b6000602082840312156200037b576200037a62000322565b5b60006200038b848285016200034b565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620003dd601f8362000394565b9150620003ea82620003a5565b602082019050919050565b600060208201905081810360008301526200041081620003ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004538262000327565b9150620004608362000327565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000498576200049762000417565b5b828201905092915050565b620004ae8162000327565b82525050565b6000602082019050620004cb6000830184620004a3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051957607f821691505b6020821081036200052f576200052e620004d1565b5b50919050565b61126380620005456000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b1e565b60405180910390f35b6100e660048036038101906100e19190610bd9565b610308565b6040516100f39190610c34565b60405180910390f35b61010461032b565b6040516101119190610c5e565b60405180910390f35b610134600480360381019061012f9190610c79565b610335565b6040516101419190610c34565b60405180910390f35b610152610364565b60405161015f9190610ce8565b60405180910390f35b610182600480360381019061017d9190610bd9565b61036d565b60405161018f9190610c34565b60405180910390f35b6101b260048036038101906101ad9190610d03565b6103a4565b6040516101bf9190610c5e565b60405180910390f35b6101d06103ec565b6040516101dd9190610b1e565b60405180910390f35b61020060048036038101906101fb9190610bd9565b61047e565b60405161020d9190610c34565b60405180910390f35b610230600480360381019061022b9190610bd9565b6104f5565b60405161023d9190610c34565b60405180910390f35b610260600480360381019061025b9190610d30565b610518565b60405161026d9190610c5e565b60405180910390f35b60606003805461028590610d9f565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d9f565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610dff565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d9f565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d9f565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610ec7565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610feb565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c5e565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611057565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d19061117b565b60405180910390fd5b6108e5838383610a7b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109629061120d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109fe9190610dff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a629190610c5e565b60405180910390a3610a75848484610a80565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610abf578082015181840152602081019050610aa4565b83811115610ace576000848401525b50505050565b6000601f19601f8301169050919050565b6000610af082610a85565b610afa8185610a90565b9350610b0a818560208601610aa1565b610b1381610ad4565b840191505092915050565b60006020820190508181036000830152610b388184610ae5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b7082610b45565b9050919050565b610b8081610b65565b8114610b8b57600080fd5b50565b600081359050610b9d81610b77565b92915050565b6000819050919050565b610bb681610ba3565b8114610bc157600080fd5b50565b600081359050610bd381610bad565b92915050565b60008060408385031215610bf057610bef610b40565b5b6000610bfe85828601610b8e565b9250506020610c0f85828601610bc4565b9150509250929050565b60008115159050919050565b610c2e81610c19565b82525050565b6000602082019050610c496000830184610c25565b92915050565b610c5881610ba3565b82525050565b6000602082019050610c736000830184610c4f565b92915050565b600080600060608486031215610c9257610c91610b40565b5b6000610ca086828701610b8e565b9350506020610cb186828701610b8e565b9250506040610cc286828701610bc4565b9150509250925092565b600060ff82169050919050565b610ce281610ccc565b82525050565b6000602082019050610cfd6000830184610cd9565b92915050565b600060208284031215610d1957610d18610b40565b5b6000610d2784828501610b8e565b91505092915050565b60008060408385031215610d4757610d46610b40565b5b6000610d5585828601610b8e565b9250506020610d6685828601610b8e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610db757607f821691505b602082108103610dca57610dc9610d70565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e0a82610ba3565b9150610e1583610ba3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e4a57610e49610dd0565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610eb1602583610a90565b9150610ebc82610e55565b604082019050919050565b60006020820190508181036000830152610ee081610ea4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f43602483610a90565b9150610f4e82610ee7565b604082019050919050565b60006020820190508181036000830152610f7281610f36565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fd5602283610a90565b9150610fe082610f79565b604082019050919050565b6000602082019050818103600083015261100481610fc8565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611041601d83610a90565b915061104c8261100b565b602082019050919050565b6000602082019050818103600083015261107081611034565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006110d3602583610a90565b91506110de82611077565b604082019050919050565b60006020820190508181036000830152611102816110c6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611165602383610a90565b915061117082611109565b604082019050919050565b6000602082019050818103600083015261119481611158565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111f7602683610a90565b91506112028261119b565b604082019050919050565b60006020820190508181036000830152611226816111ea565b905091905056fea264697066735822122039c50588d39e359807efa398bd1b3aff1b082ef738dddcfa8475048e11f9024e64736f6c634300080d0033';
diff --git a/packages/web3/test/shared_fixtures/contracts/ERC721Token.ts b/packages/web3/test/shared_fixtures/contracts/ZRC721Token.ts
similarity index 100%
rename from packages/web3/test/shared_fixtures/contracts/ERC721Token.ts
rename to packages/web3/test/shared_fixtures/contracts/ZRC721Token.ts
diff --git a/packages/web3/test/unit/index.test.ts b/packages/web3/test/unit/index.test.ts
index 703f0fea..3ff0a55d 100644
--- a/packages/web3/test/unit/index.test.ts
+++ b/packages/web3/test/unit/index.test.ts
@@ -20,7 +20,7 @@ import { Web3Zond } from '@theqrl/web3-zond';
import * as abi from '@theqrl/web3-zond-abi';
import * as accounts from '@theqrl/web3-zond-accounts';
import * as contract from '@theqrl/web3-zond-contract';
-import * as ens from '@theqrl/web3-zond-ens';
+import * as zns from '@theqrl/web3-zond-zns';
import * as iban from '@theqrl/web3-zond-iban';
import * as http from '@theqrl/web3-providers-http';
@@ -42,7 +42,7 @@ describe('exports of web3 package', () => {
expect(zond.abi).toEqual(abi);
expect(zond.accounts).toEqual(accounts);
expect(zond.contract).toEqual(contract);
- expect(zond.ens).toEqual(ens);
+ expect(zond.zns).toEqual(zns);
expect(zond.iban).toEqual(iban);
});
});
diff --git a/scripts/compile_contracts.js b/scripts/compile_contracts.js
index 54b08ca0..02c403e0 100755
--- a/scripts/compile_contracts.js
+++ b/scripts/compile_contracts.js
@@ -22,7 +22,7 @@ along with web3.js. If not, see .
const { promisify } = require('util');
const { resolve } = require('path');
-const { compile } = require('hypc');
+const { compile } = require('@theqrl/hypc');
const { rm, readdirSync, readFileSync, writeFileSync, mkdirSync, existsSync } = require('fs');
const rmPromise = promisify(rm);
diff --git a/scripts/consensus/prysm-wallet-v2/direct/accounts/all-accounts.keystore.json b/scripts/consensus/qrysm-wallet-v2/direct/accounts/all-accounts.keystore.json
similarity index 100%
rename from scripts/consensus/prysm-wallet-v2/direct/accounts/all-accounts.keystore.json
rename to scripts/consensus/qrysm-wallet-v2/direct/accounts/all-accounts.keystore.json
diff --git a/scripts/pos.sh b/scripts/pos.sh
index 92eeb0ea..e81d99fc 100755
--- a/scripts/pos.sh
+++ b/scripts/pos.sh
@@ -121,7 +121,7 @@ start() {
--accept-terms-of-use \
--chain-config-file=$TMP_FOLDER/consensus/config.yml \
--config-file=$TMP_FOLDER/consensus/config.yml \
- --wallet-dir=$TMP_FOLDER/consensus/prysm-wallet-v2 \
+ --wallet-dir=$TMP_FOLDER/consensus/qrysm-wallet-v2 \
--wallet-password-file=$TMP_FOLDER/consensus/wallet_password.txt \
--rpc >> ${TMP_FOLDER}/logs/validator.log 2>&1 &
diff --git a/scripts/system_tests_utils.ts b/scripts/system_tests_utils.ts
index 978278e6..cd48d0fc 100644
--- a/scripts/system_tests_utils.ts
+++ b/scripts/system_tests_utils.ts
@@ -20,7 +20,7 @@ import { format, SocketProvider } from '@theqrl/web3-utils';
// eslint-disable-next-line import/no-extraneous-dependencies
import {
create as _createAccount,
- //decrypt,
+ // decrypt,
seedToAccount,
signTransaction,
} from '@theqrl/web3-zond-accounts';
@@ -36,7 +36,7 @@ import {
Bytes,
Web3BaseProvider,
Transaction,
- //KeyStore,
+ // KeyStore,
ProviderConnectInfo,
Web3ProviderEventCallback,
ProviderRpcError,
@@ -220,7 +220,7 @@ export const createAccountProvider = (context: Web3Context) =>
return {
create: createWithContext,
seedToAccount: seedToAccountWithContext,
- //decrypt: decryptWithContext,
+ // decrypt: decryptWithContext,
};
};
@@ -251,7 +251,7 @@ export const createNewAccount = async (config?: {
await refillAccount(mainAcc, acc.address, '10000000000000000000');
}
- return { address: `Z${acc.address.slice(1).toLowerCase()}`, seed: acc.seed! };
+ return { address: `Z${acc.address.slice(1).toLowerCase()}`, seed: acc.seed };
};
let tempAccountList: { address: string; seed: string }[] = [];
const walletsOnWorker = 20;
@@ -267,11 +267,7 @@ export const createTempAccount = async (
password?: string;
} = {},
): Promise<{ address: string; seed: string }> => {
- if (
- config.refill === false ||
- config.seed ||
- config.password
- ) {
+ if (config.refill === false || config.seed || config.password) {
return createNewAccount({
refill: config.refill ?? true,
seed: config.seed,
@@ -307,11 +303,7 @@ export const getSystemTestAccountsWithKeys = async (): Promise<
export const getSystemTestAccounts = async (): Promise =>
(await getSystemTestAccountsWithKeys()).map(a => a.address);
-export const signTxAndSendEIP1559 = async (
- provider: unknown,
- tx: Transaction,
- seed: string,
-) => {
+export const signTxAndSendEIP1559 = async (provider: unknown, tx: Transaction, seed: string) => {
const web3 = new Web3(provider as Web3BaseProvider);
const acc = web3.zond.accounts.seedToAccount(seed);
web3.zond.wallet?.add(seed);
@@ -343,7 +335,13 @@ export const signAndSendContractMethodEIP1559 = async (
export const createLocalAccount = async (web3: Web3) => {
const account = web3.zond.accounts.create();
- await refillAccount((await createTempAccount()).address, account.address, '100000000000000000000');
+ await refillAccount(
+ (
+ await createTempAccount()
+ ).address,
+ account.address,
+ '100000000000000000000',
+ );
web3.zond.accounts.wallet.add(account);
return account;
};
@@ -422,4 +420,4 @@ export const objectBigintToString = (obj: object): object =>
JSON.parse(
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
JSON.stringify(obj, (_, value) => (typeof value === 'bigint' ? value.toString() : value)),
- );
\ No newline at end of file
+ );
diff --git a/templates/jest.config.js.tmpl b/templates/jest.config.js.tmpl
index d7789fbb..d3ee327e 100644
--- a/templates/jest.config.js.tmpl
+++ b/templates/jest.config.js.tmpl
@@ -22,7 +22,7 @@ module.exports = {
},
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
- },
+ },
rootDir: '../..',
testMatch: ['/test/**/?(*.)+(spec|test).+(ts|tsx|js)'],
setupFilesAfterEnv: ['/test/config/setup.js'],
@@ -31,7 +31,7 @@ module.exports = {
},
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
- },
+ },
verbose: false,
collectCoverage: false,
coverageReporters: ['json'],
diff --git a/tools/web3-packagetemplate/CHANGELOG.md b/tools/web3-packagetemplate/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/tools/web3-packagetemplate/CHANGELOG.md
+++ b/tools/web3-packagetemplate/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/tools/web3-plugin-example/CHANGELOG.md b/tools/web3-plugin-example/CHANGELOG.md
index 2ad5a7d4..dc93264a 100644
--- a/tools/web3-plugin-example/CHANGELOG.md
+++ b/tools/web3-plugin-example/CHANGELOG.md
@@ -33,4 +33,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- I've improved the security in XY (#1000)
--->
\ No newline at end of file
+-->
diff --git a/packages/web3/test/shared_fixtures/contracts/ERC20Token.ts b/tools/web3-plugin-example/src/ZRC20Token.ts
similarity index 95%
rename from packages/web3/test/shared_fixtures/contracts/ERC20Token.ts
rename to tools/web3-plugin-example/src/ZRC20Token.ts
index b13578a6..b07e6647 100644
--- a/packages/web3/test/shared_fixtures/contracts/ERC20Token.ts
+++ b/tools/web3-plugin-example/src/ZRC20Token.ts
@@ -14,7 +14,7 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-export const ERC20TokenAbi = [
+export const ZRC20TokenAbi = [
{
inputs: [{ internalType: 'uint256', name: 'initialSupply', type: 'uint256' }],
stateMutability: 'nonpayable',
@@ -74,26 +74,6 @@ export const ERC20TokenAbi = [
stateMutability: 'view',
type: 'function',
},
- {
- inputs: [
- { internalType: 'address', name: 'spender', type: 'address' },
- { internalType: 'uint256', name: 'subtractedValue', type: 'uint256' },
- ],
- name: 'decreaseAllowance',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- { internalType: 'address', name: 'spender', type: 'address' },
- { internalType: 'uint256', name: 'addedValue', type: 'uint256' },
- ],
- name: 'increaseAllowance',
- outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
- stateMutability: 'nonpayable',
- type: 'function',
- },
{
inputs: [],
name: 'name',
@@ -137,5 +117,5 @@ export const ERC20TokenAbi = [
type: 'function',
},
] as const;
-export const ERC20TokenBytecode =
+export const ZRC20TokenBytecode =
'0x60806040523480156200001157600080fd5b50604051620017a8380380620017a8833981810160405281019062000037919062000362565b6040518060400160405280600481526020017f476f6c64000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474c4400000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000272565b508060049080519060200190620000d492919062000272565b505050620000e93382620000f060201b60201c565b5062000535565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000162576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015990620003f5565b60405180910390fd5b62000176600083836200026860201b60201c565b80600260008282546200018a919062000446565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001e1919062000446565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002489190620004b4565b60405180910390a362000264600083836200026d60201b60201c565b5050565b505050565b505050565b828054620002809062000500565b90600052602060002090601f016020900481019282620002a45760008555620002f0565b82601f10620002bf57805160ff1916838001178555620002f0565b82800160010185558215620002f0579182015b82811115620002ef578251825591602001919060010190620002d2565b5b509050620002ff919062000303565b5090565b5b808211156200031e57600081600090555060010162000304565b5090565b600080fd5b6000819050919050565b6200033c8162000327565b81146200034857600080fd5b50565b6000815190506200035c8162000331565b92915050565b6000602082840312156200037b576200037a62000322565b5b60006200038b848285016200034b565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620003dd601f8362000394565b9150620003ea82620003a5565b602082019050919050565b600060208201905081810360008301526200041081620003ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004538262000327565b9150620004608362000327565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000498576200049762000417565b5b828201905092915050565b620004ae8162000327565b82525050565b6000602082019050620004cb6000830184620004a3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051957607f821691505b6020821081036200052f576200052e620004d1565b5b50919050565b61126380620005456000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610b1e565b60405180910390f35b6100e660048036038101906100e19190610bd9565b610308565b6040516100f39190610c34565b60405180910390f35b61010461032b565b6040516101119190610c5e565b60405180910390f35b610134600480360381019061012f9190610c79565b610335565b6040516101419190610c34565b60405180910390f35b610152610364565b60405161015f9190610ce8565b60405180910390f35b610182600480360381019061017d9190610bd9565b61036d565b60405161018f9190610c34565b60405180910390f35b6101b260048036038101906101ad9190610d03565b6103a4565b6040516101bf9190610c5e565b60405180910390f35b6101d06103ec565b6040516101dd9190610b1e565b60405180910390f35b61020060048036038101906101fb9190610bd9565b61047e565b60405161020d9190610c34565b60405180910390f35b610230600480360381019061022b9190610bd9565b6104f5565b60405161023d9190610c34565b60405180910390f35b610260600480360381019061025b9190610d30565b610518565b60405161026d9190610c5e565b60405180910390f35b60606003805461028590610d9f565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610d9f565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b60008061031361059f565b90506103208185856105a7565b600191505092915050565b6000600254905090565b60008061034061059f565b905061034d858285610770565b6103588585856107fc565b60019150509392505050565b60006012905090565b60008061037861059f565b905061039981858561038a8589610518565b6103949190610dff565b6105a7565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103fb90610d9f565b80601f016020809104026020016040519081016040528092919081815260200182805461042790610d9f565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60008061048961059f565b905060006104978286610518565b9050838110156104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610ec7565b60405180910390fd5b6104e982868684036105a7565b60019250505092915050565b60008061050061059f565b905061050d8185856107fc565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610f59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067c90610feb565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516107639190610c5e565b60405180910390a3505050565b600061077c8484610518565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107f657818110156107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90611057565b60405180910390fd5b6107f584848484036105a7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361086b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610862906110e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d19061117b565b60405180910390fd5b6108e5838383610a7b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561096b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109629061120d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109fe9190610dff565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a629190610c5e565b60405180910390a3610a75848484610a80565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610abf578082015181840152602081019050610aa4565b83811115610ace576000848401525b50505050565b6000601f19601f8301169050919050565b6000610af082610a85565b610afa8185610a90565b9350610b0a818560208601610aa1565b610b1381610ad4565b840191505092915050565b60006020820190508181036000830152610b388184610ae5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b7082610b45565b9050919050565b610b8081610b65565b8114610b8b57600080fd5b50565b600081359050610b9d81610b77565b92915050565b6000819050919050565b610bb681610ba3565b8114610bc157600080fd5b50565b600081359050610bd381610bad565b92915050565b60008060408385031215610bf057610bef610b40565b5b6000610bfe85828601610b8e565b9250506020610c0f85828601610bc4565b9150509250929050565b60008115159050919050565b610c2e81610c19565b82525050565b6000602082019050610c496000830184610c25565b92915050565b610c5881610ba3565b82525050565b6000602082019050610c736000830184610c4f565b92915050565b600080600060608486031215610c9257610c91610b40565b5b6000610ca086828701610b8e565b9350506020610cb186828701610b8e565b9250506040610cc286828701610bc4565b9150509250925092565b600060ff82169050919050565b610ce281610ccc565b82525050565b6000602082019050610cfd6000830184610cd9565b92915050565b600060208284031215610d1957610d18610b40565b5b6000610d2784828501610b8e565b91505092915050565b60008060408385031215610d4757610d46610b40565b5b6000610d5585828601610b8e565b9250506020610d6685828601610b8e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610db757607f821691505b602082108103610dca57610dc9610d70565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e0a82610ba3565b9150610e1583610ba3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610e4a57610e49610dd0565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000610eb1602583610a90565b9150610ebc82610e55565b604082019050919050565b60006020820190508181036000830152610ee081610ea4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610f43602483610a90565b9150610f4e82610ee7565b604082019050919050565b60006020820190508181036000830152610f7281610f36565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610fd5602283610a90565b9150610fe082610f79565b604082019050919050565b6000602082019050818103600083015261100481610fc8565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611041601d83610a90565b915061104c8261100b565b602082019050919050565b6000602082019050818103600083015261107081611034565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006110d3602583610a90565b91506110de82611077565b604082019050919050565b60006020820190508181036000830152611102816110c6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611165602383610a90565b915061117082611109565b604082019050919050565b6000602082019050818103600083015261119481611158565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006111f7602683610a90565b91506112028261119b565b604082019050919050565b60006020820190508181036000830152611226816111ea565b905091905056fea264697066735822122039c50588d39e359807efa398bd1b3aff1b082ef738dddcfa8475048e11f9024e64736f6c634300080d0033';
diff --git a/tools/web3-plugin-example/src/contract_method_wrappers.ts b/tools/web3-plugin-example/src/contract_method_wrappers.ts
index b267e601..d9f0b8a1 100644
--- a/tools/web3-plugin-example/src/contract_method_wrappers.ts
+++ b/tools/web3-plugin-example/src/contract_method_wrappers.ts
@@ -16,10 +16,16 @@ along with web3.js. If not, see .
*/
import { Web3PluginBase } from '@theqrl/web3-core';
import Contract from '@theqrl/web3-zond-contract';
-import { Address, ContractAbi, DataFormat, DEFAULT_RETURN_FORMAT, Numbers } from '@theqrl/web3-types';
+import {
+ Address,
+ ContractAbi,
+ DataFormat,
+ DEFAULT_RETURN_FORMAT,
+ Numbers,
+} from '@theqrl/web3-types';
import { format, numberToHex } from '@theqrl/web3-utils';
// eslint-disable-next-line require-extensions/require-extensions
-import { ERC20TokenAbi } from './ERC20Token';
+import { ZRC20TokenAbi } from './ZRC20Token';
// eslint-disable-next-line require-extensions/require-extensions
import { Web3Context } from './reexported_web3_context';
@@ -28,7 +34,7 @@ export class ContractMethodWrappersPlugin extends Web3PluginBase {
// This should be private, but it's public so _contract.requestManager.send can
// be mocked in contract_method_wrappers.test.ts
- public readonly _contract: Contract;
+ public readonly _contract: Contract;
public constructor(abi: ContractAbi, address: Address) {
super();
diff --git a/tools/web3-plugin-example/test/unit/contract_method_wrappers.test.ts b/tools/web3-plugin-example/test/unit/contract_method_wrappers.test.ts
index 528d283a..48baac05 100644
--- a/tools/web3-plugin-example/test/unit/contract_method_wrappers.test.ts
+++ b/tools/web3-plugin-example/test/unit/contract_method_wrappers.test.ts
@@ -18,7 +18,7 @@ import Web3 from '@theqrl/web3';
import { DEFAULT_RETURN_FORMAT } from '@theqrl/web3-types';
import { ContractMethodWrappersPlugin } from '../../src/contract_method_wrappers';
-import { ERC20TokenAbi } from '../../src/ERC20Token';
+import { ZRC20TokenAbi } from '../../src/ZRC20Token';
declare module '../web3_export_helper' {
interface Web3 {
@@ -31,7 +31,7 @@ describe('ContractMethodWrappersPlugin', () => {
const web3 = new Web3('http://127.0.0.1:8545');
web3.registerPlugin(
new ContractMethodWrappersPlugin(
- ERC20TokenAbi,
+ ZRC20TokenAbi,
'ZdAC17F958D2ee523a2206206994597C13D831ec7',
),
);
@@ -53,7 +53,7 @@ describe('ContractMethodWrappersPlugin', () => {
beforeAll(() => {
web3 = new Web3('http://127.0.0.1:8545');
- web3.registerPlugin(new ContractMethodWrappersPlugin(ERC20TokenAbi, contractAddress));
+ web3.registerPlugin(new ContractMethodWrappersPlugin(ZRC20TokenAbi, contractAddress));
});
beforeEach(() => {
@@ -87,7 +87,7 @@ describe('ContractMethodWrappersPlugin', () => {
'0xc41b9a4f654c44552e135f770945916f57c069b80326f9a5f843e613491ab6b1';
// Mocking getBlockByNumber for getEip1559GasPricing
- requestManagerSendSpy.mockResolvedValueOnce({"baseFeePerGas": "1000000000"});
+ requestManagerSendSpy.mockResolvedValueOnce({ baseFeePerGas: '1000000000' });
// Mocking block number for trySendTransaction call
requestManagerSendSpy.mockResolvedValueOnce('0x1');
requestManagerSendSpy.mockResolvedValueOnce(expectedTransactionHash);
diff --git a/yarn.lock b/yarn.lock
index fa56a4ef..2c9ef521 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1659,11 +1659,6 @@
dependencies:
"@octokit/openapi-types" "^13.1.0"
-"@openzeppelin/contracts@^4.7.1":
- version "4.9.3"
- resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.3.tgz#00d7a8cf35a475b160b3f0293a6403c511099364"
- integrity sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg==
-
"@parcel/watcher@2.0.4":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b"
@@ -1830,13 +1825,6 @@
dependencies:
"@sinonjs/commons" "^1.7.0"
-"@solidity-parser/parser@^0.14.3":
- version "0.14.3"
- resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.3.tgz#0d627427b35a40d8521aaa933cc3df7d07bfa36f"
- integrity sha512-29g2SZ29HtsqA58pLCtopI1P/cPy5/UAzlcAXO6T/CNJimG6yA8kx4NaseMyJULiC+TEs02Y9/yeHzClqoA0hw==
- dependencies:
- antlr4ts "^0.5.0-alpha.4"
-
"@theqrl/dilithium5@^0.0.9":
version "0.0.9"
resolved "https://registry.yarnpkg.com/@theqrl/dilithium5/-/dilithium5-0.0.9.tgz#f4b80654faf0f345fabc6420991c40063673baa9"
@@ -1845,6 +1833,19 @@
randombytes "^2.1.0"
sha3 "^2.1.4"
+"@theqrl/hypc@^0.0.2":
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/@theqrl/hypc/-/hypc-0.0.2.tgz#9030fa95906d718f306460e9f90f9ca7c5b05aa0"
+ integrity sha512-XsP7hETJdlmmdGtmp/K5ZtTcz3EzZaP+WhjuOTf4PmhE+6oijN271H10htYHvBo95ED2OYiuUCYucYNw7Q6mfQ==
+ dependencies:
+ command-exists "^1.2.8"
+ commander "^8.1.0"
+ follow-redirects "^1.12.1"
+ js-sha3 "0.8.0"
+ memorystream "^0.3.1"
+ semver "^5.5.0"
+ tmp "0.0.33"
+
"@theqrl/wallet.js@^0.1.0":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@theqrl/wallet.js/-/wallet.js-0.1.1.tgz#4a400d6aa8e886a2953ddbf6f43de1cee1f6d82b"
@@ -1854,6 +1855,9 @@
randombytes "^2.1.0"
sha3 "^2.1.4"
+"@theqrl/zond-contracts@file:../zond-contracts":
+ version "0.1.0"
+
"@tootallnate/once@2":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
@@ -2676,11 +2680,6 @@ ansi-styles@^6.1.0:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
-antlr4ts@^0.5.0-alpha.4:
- version "0.5.0-alpha.4"
- resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a"
- integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==
-
anymatch@^3.0.3, anymatch@~3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
@@ -4354,11 +4353,6 @@ emittery@^0.10.2:
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933"
integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==
-emoji-regex@^10.1.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.1.0.tgz#d50e383743c0f7a5945c47087295afc112e3cf66"
- integrity sha512-xAEnNCT3w2Tg6MA7ly6QqYJvEoY1tm9iIjJ3yMKK9JPlWuRHAMoe5iETwQnx3M9TVbFMfsrBgWKR+IsmswwNjg==
-
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -9391,18 +9385,6 @@ prelude-ls@^1.2.1:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
-prettier-plugin-solidity@^1.0.0-beta.20:
- version "1.0.0-beta.24"
- resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-beta.24.tgz#67573ca87098c14f7ccff3639ddd8a4cab2a87eb"
- integrity sha512-6JlV5BBTWzmDSq4kZ9PTXc3eLOX7DF5HpbqmmaF+kloyUwOZbJ12hIYsUaZh2fVgZdV2t0vWcvY6qhILhlzgqg==
- dependencies:
- "@solidity-parser/parser" "^0.14.3"
- emoji-regex "^10.1.0"
- escape-string-regexp "^4.0.0"
- semver "^7.3.7"
- solidity-comments-extractor "^0.0.7"
- string-width "^4.2.3"
-
prettier@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
@@ -10354,24 +10336,6 @@ solc@0.7.3:
semver "^5.5.0"
tmp "0.0.33"
-solc@^0.8.15:
- version "0.8.16"
- resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.16.tgz#120f992357e236d99e6cf3445bf2c2dca3384f96"
- integrity sha512-6oZg7FAhIouj2zYLvoR3Q4fMP/+BGPR7sY7GcrEXKIp+DRd8RmpDEFO1LUBKpClUiaYguNgmthTFmnPl4MeiMQ==
- dependencies:
- command-exists "^1.2.8"
- commander "^8.1.0"
- follow-redirects "^1.12.1"
- js-sha3 "0.8.0"
- memorystream "^0.3.1"
- semver "^5.5.0"
- tmp "0.0.33"
-
-solidity-comments-extractor@^0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19"
- integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==
-
sort-keys@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
From 0928d534cc0d696d7354b51dce1df0cacdfd6631 Mon Sep 17 00:00:00 2001
From: Ricardo Geraldes <144315960+rgeraldes24@users.noreply.github.com>
Date: Mon, 14 Jul 2025 13:36:12 +0400
Subject: [PATCH 2/8] Merge upstream (#9)
* Documentation updates
* Node version badge to v18.x
* Fix some broken links
* version bump
* version bump
---------
Co-authored-by: Cyyber Ttechno
Co-authored-by: JP Lomas
---
CONTRIBUTIONS.md | 8 +-
README.md | 54 +++++++------
RELEASE.md | 10 ++-
codecov.yml | 4 +-
.../support_additional_rpc_methods/index.md | 16 ++--
.../web3_tree_shaking_support_guide/index.md | 4 +-
.../basics/sign_and_send_tx/local_wallet.md | 4 +-
.../sign_and_send_tx/wallet_of_zond_node.md | 4 +-
docs/docs/guides/basics/zond.md | 16 ++--
...ng_and_interacting_with_smart_contracts.md | 8 +-
.../infer_contract_types_guide/index.md | 8 +-
.../web3_plugin_guide/plugin_authors.md | 49 +++++------
.../guides/web3_plugin_guide/plugin_users.md | 10 +--
.../web3_providers_guide/events_listening.md | 2 +-
.../guides/web3_providers_guide/examples.md | 18 ++---
.../docs/guides/web3_providers_guide/index.md | 21 +++--
docs/docusaurus.config.js | 6 +-
package.json | 8 +-
packages/abi/LICENSE.md | 34 +++++++-
packages/abi/README.md | 9 +--
packages/abi/package.json | 6 +-
packages/web3-core/README.md | 36 ++++-----
packages/web3-core/package.json | 22 ++---
packages/web3-errors/README.md | 32 ++++----
packages/web3-errors/package.json | 8 +-
.../src/errors/transaction_errors.ts | 2 +-
packages/web3-net/README.md | 33 ++++----
packages/web3-net/package.json | 14 ++--
packages/web3-providers-http/README.md | 35 ++++----
packages/web3-providers-http/package.json | 12 +--
packages/web3-providers-ipc/README.md | 33 ++++----
packages/web3-providers-ipc/package.json | 12 +--
packages/web3-providers-ws/README.md | 35 ++++----
packages/web3-providers-ws/package.json | 12 +--
packages/web3-rpc-methods/README.md | 35 ++++----
packages/web3-rpc-methods/package.json | 12 +--
packages/web3-types/README.md | 35 ++++----
packages/web3-types/package.json | 6 +-
packages/web3-utils/README.md | 37 ++++-----
packages/web3-utils/package.json | 12 +--
packages/web3-validator/README.md | 35 ++++----
packages/web3-validator/package.json | 10 +--
packages/web3-zond-abi/README.md | 36 ++++-----
packages/web3-zond-abi/package.json | 12 +--
packages/web3-zond-accounts/README.md | 36 ++++-----
packages/web3-zond-accounts/package.json | 16 ++--
packages/web3-zond-contract/README.md | 37 ++++-----
packages/web3-zond-contract/package.json | 22 ++---
packages/web3-zond-contract/src/index.ts | 2 +-
.../.eslintignore | 0
.../.eslintrc.js | 0
.../.gitignore | 0
.../.npmignore | 0
.../.prettierignore | 0
.../.prettierrc.json | 0
.../CHANGELOG.md | 0
packages/web3-zond-ens/README.md | 55 +++++++++++++
.../assets/logo/web3js.ai | 0
.../assets/logo/web3js.jpg | Bin
.../assets/logo/web3js.svg | 0
.../package.json | 24 +++---
.../src/abi/zns/PublicResolver.ts | 0
.../src/abi/zns/ZNSRegistry.ts | 0
.../src/config.ts | 0
.../src/index.ts | 0
.../src/registry.ts | 0
.../src/resolver.ts | 0
.../src/utils.ts | 0
.../src/zns.ts | 0
.../test/.eslintrc.js | 0
.../test/config/jest.config.js | 0
.../test/config/setup.js | 0
.../test/fixtures/accounts.json | 0
.../test/fixtures/system_tests_utils.ts | 0
.../test/fixtures/utils.ts | 0
.../test/fixtures/zns/ZNSRegistry.json | 0
.../test/fixtures/zns/abi/NameWrapper.ts | 0
.../test/fixtures/zns/abi/PublicResolver.ts | 0
.../test/fixtures/zns/abi/ZNSRegistry.ts | 0
.../zns/bytecode/NameWrapperBytecode.ts | 0
.../zns/bytecode/PublicResolverBytecode.ts | 0
.../zns/bytecode/ZNSRegistryBytecode.ts | 0
.../test/fixtures/zns/reverse_registrar.json | 0
.../test/integration/jest.config.js | 0
.../test/integration/resolver.test.ts | 0
.../test/integration/setup.js | 0
.../test/integration/zns.events.test.ts | 0
.../test/integration/zns.test.ts | 0
.../test/tsconfig.json | 0
.../test/unit/constructor.test.ts | 0
.../test/unit/index.test.ts | 0
.../test/unit/jest.config.js | 2 +-
.../test/unit/registry.test.ts | 0
.../test/unit/resolver.test.ts | 0
.../test/unit/utils.test.ts | 0
.../test/unit/zns.test.ts | 0
.../tsconfig.cjs.json | 0
.../tsconfig.esm.json | 0
.../tsconfig.types.json | 0
.../tsdoc.json | 0
packages/web3-zond-iban/README.md | 36 ++++-----
packages/web3-zond-iban/package.json | 14 ++--
packages/web3-zond-zns/README.md | 59 --------------
packages/web3-zond/README.md | 35 ++++----
packages/web3-zond/package.json | 28 +++----
packages/web3-zond/src/rpc_method_wrappers.ts | 2 +-
packages/web3-zond/src/web3_zond.ts | 2 +-
.../test/integration/defaults.test.ts | 4 +-
packages/web3/README.md | 76 +++++++++---------
packages/web3/package.json | 38 ++++-----
packages/web3/src/types.ts | 2 +-
packages/web3/src/version.ts | 2 +-
packages/web3/src/web3.ts | 2 +-
packages/web3/src/zond.exports.ts | 2 +-
packages/web3/test/cjs_black_box/package.json | 2 +-
.../cjs_black_box/test/batchRequest.test.ts | 2 +-
.../web3-zond-accounts/hashMessage.test.ts | 2 +-
.../test/web3-zond-contract/zrc20.test.ts | 2 +-
.../test/web3-zond/getBlock.test.ts | 2 +-
.../test/web3-zond/getTransaction.test.ts | 2 +-
packages/web3/test/cjs_black_box/yarn.lock | 48 +++++------
packages/web3/test/e2e/web3_extend.test.ts | 2 +-
packages/web3/test/esm_black_box/package.json | 2 +-
packages/web3/test/esm_black_box/yarn.lock | 46 +++++------
packages/web3/test/unit/index.test.ts | 2 +-
tools/eslint-config-base-web3/package.json | 8 +-
tools/web3-packagetemplate/README.md | 36 ++++-----
tools/web3-packagetemplate/package.json | 6 +-
tools/web3-plugin-example/README.md | 33 ++++----
tools/web3-plugin-example/package.json | 18 ++---
yarn.lock | 16 ++++
131 files changed, 762 insertions(+), 778 deletions(-)
rename packages/{web3-zond-zns => web3-zond-ens}/.eslintignore (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/.eslintrc.js (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/.gitignore (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/.npmignore (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/.prettierignore (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/.prettierrc.json (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/CHANGELOG.md (100%)
create mode 100644 packages/web3-zond-ens/README.md
rename packages/{web3-zond-zns => web3-zond-ens}/assets/logo/web3js.ai (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/assets/logo/web3js.jpg (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/assets/logo/web3js.svg (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/package.json (83%)
rename packages/{web3-zond-zns => web3-zond-ens}/src/abi/zns/PublicResolver.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/src/abi/zns/ZNSRegistry.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/src/config.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/src/index.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/src/registry.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/src/resolver.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/src/utils.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/src/zns.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/.eslintrc.js (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/config/jest.config.js (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/config/setup.js (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/accounts.json (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/system_tests_utils.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/utils.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/zns/ZNSRegistry.json (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/zns/abi/NameWrapper.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/zns/abi/PublicResolver.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/zns/abi/ZNSRegistry.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/zns/bytecode/NameWrapperBytecode.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/zns/bytecode/PublicResolverBytecode.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/zns/bytecode/ZNSRegistryBytecode.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/fixtures/zns/reverse_registrar.json (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/integration/jest.config.js (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/integration/resolver.test.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/integration/setup.js (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/integration/zns.events.test.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/integration/zns.test.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/tsconfig.json (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/unit/constructor.test.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/unit/index.test.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/unit/jest.config.js (86%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/unit/registry.test.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/unit/resolver.test.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/unit/utils.test.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/test/unit/zns.test.ts (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/tsconfig.cjs.json (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/tsconfig.esm.json (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/tsconfig.types.json (100%)
rename packages/{web3-zond-zns => web3-zond-ens}/tsdoc.json (100%)
delete mode 100644 packages/web3-zond-zns/README.md
diff --git a/CONTRIBUTIONS.md b/CONTRIBUTIONS.md
index 95b072de..a3bf15a8 100644
--- a/CONTRIBUTIONS.md
+++ b/CONTRIBUTIONS.md
@@ -1,8 +1,10 @@
## Guidelines for Pull Requests and Releases
+_These guidelines are a work in progress and will be changed/updated as the project evolves._
+
This document provides some ground rules for contributors (including the maintainer(s) of
the project) about how to make, review and publish changes. The most basic requirement is
-that **Web3 not break**.
+that **this should not break**.
### Pull Requests for substantive changes (e.g. everything except comments and docs)
@@ -45,7 +47,3 @@ Read more in [Release Guidelines](./RELEASE.md).
### Emergencies
Emergency releases are allowed to shorten waiting periods depending on the severity of the issue.
-
-There is precedent set for this in the 1.2.6 release (see [#3351](https://github.com/ethereum/web3.js/pull/3351)), where the consensus view was to make the smallest change necessary to address the emergency while waiving the `rc` process (meaning many existing additions to master were excluded).
-
-This topic is under further org-wide discussion at [ethereum/js-organization#6](https://github.com/ethereum/js-organization/issues/6).
diff --git a/README.md b/README.md
index b316b2bb..474ec1ab 100644
--- a/README.md
+++ b/README.md
@@ -9,32 +9,32 @@


-
+
-Web3.js is a TypeScript implementation of the [Zond JSON RPC API](https://eth.wiki/json-rpc/API) and related tooling maintained by [ChainSafe Systems](https://chainsafe.io).
+Web3.js is a TypeScript implementation of the [Zond JSON RPC API](https://eth.wiki/json-rpc/API) and related tooling maintained by [The QRL Contributors](https://chainsafe.io).
## Installation
-You can install the package either using [NPM](https://www.npmjs.com/package/web3) or using [Yarn](https://yarnpkg.com/package/web3)
+You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3)
-> If you wanna checkout latest bugfix or feature, use `npm install web3@dev`
+> If you wanna checkout latest bugfix or feature, use `npm install @theqrl/web3@dev`
### Using NPM
```bash
-npm install web3
+npm install @theqrl/web3
```
### Using Yarn
```bash
-yarn add web3
+yarn add @theqrl/web3
```
## Getting Started
-- :writing_hand: If you have questions [submit an issue](https://github.com/ChainSafe/web3.js/issues/new/choose) or join us on [Discord](https://discord.gg/yjyvFRP)
- 
+- :writing_hand: If you have questions [submit an issue](https://github.com/theqrl/web3.js/issues/new/choose) or join us on [Discord](https://theqrl.org/discord)
+ 
## Prerequisites
@@ -43,30 +43,32 @@ yarn add web3
## Useful links
-- [Web3 tree shaking support guide](https://docs.web3js.org/guides/advanced/web3_tree_shaking_support_guide/)
+These links are for the Web3.js but should be useful pointers in the correct direction for theQRL/Web3.js as well.
+
+- [Web3 tree shaking support guide](https://docs.web3js.org/guides/advanced/tree_shaking)
- [React App Example](https://github.com/ChainSafe/web3js-example-react-app)
## Architecture Overview
| Package | Version | License | Docs | Description |
| ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
-| [web3](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3) | [](https://www.npmjs.com/package/web3) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3) | :rotating_light: Entire Web3.js offering (includes all packages) |
-| [web3-core](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-core) | [](https://www.npmjs.com/package/web3-core) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-core) | Core functions for web3.js packages |
-| [web3-errors](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-errors) | [](https://www.npmjs.com/package/web3-core) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-errors) | Errors Objects |
-| [web3-zond](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth) | [](https://www.npmjs.com/package/web3-eth) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth) | Modules to interact with the Zond blockchain and smart contracts |
-| [web3-zond-abi](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-abi) | [](https://www.npmjs.com/package/web3-eth-abi) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-abi) | Functions for encoding and decoding ZVM in/output |
-| [web3-zond-accounts](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-accounts) | [](https://www.npmjs.com/package/web3-eth-accounts) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-accounts) | Functions for managing Zond accounts and signing |
-| [web3-zond-contract](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-contract) | [](https://www.npmjs.com/package/web3-eth-contract) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-contract) | The contract package contained in [web3-zond](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth) |
-| [web3-zond-zns](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-ens) | [](https://www.npmjs.com/package/web3-eth-ens) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-ens) | Functions for interacting with the Zond Name Service |
-| [web3-zond-iban](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-eth-iban) | [](https://www.npmjs.com/package/web3-eth-iban) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-eth-iban) | Functionality for converting Zond addressed to IBAN addressed and vice versa |
-| [web3-net](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-net) | [](https://www.npmjs.com/package/web3-net) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-net) | Functions to interact with a Zond node's network properties |
-| [web3-providers-http](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-http) | [](https://www.npmjs.com/package/web3-providers-http) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-http) | Web3.js provider for the HTTP protocol |
-| [web3-providers-ipc](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ipc) | [](https://www.npmjs.com/package/web3-providers-ipc) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-ipc) | Web3.js provider for IPC |
-| [web3-providers-ws](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-providers-ws) | [](https://www.npmjs.com/package/web3-providers-ws) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-providers-ws) | Web3.js provider for the Websocket protocol |
-| [web3-rpc-methods](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-rpc-methods) | [](https://www.npmjs.com/package/web3-types) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/) | RPC Methods |
-| [web3-types](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-types) | [](https://www.npmjs.com/package/web3-types) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-types) | Shared useable types |
-| [web3-utils](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-utils) | [](https://www.npmjs.com/package/web3-utils) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-utils) | Useful utility functions for Dapp developers |
-| [web3-validator](https://github.com/ChainSafe/web3.js/tree/4.x/packages/web3-validator) | [](https://www.npmjs.com/package/web3-validator) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.web3js.org/api/web3-validator) | Utilities for validating objects |
+| [web3](https://github.com/theqrl/web3.js/tree/main/packages/web3) | [](https://www.npmjs.com/package/@theqrl/web3) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3) | :rotating_light: Entire Web3.js offering (includes all packages) |
+| [web3-core](https://github.com/theqrl/web3.js/tree/main/packages/web3-core) | [](https://www.npmjs.com/package/@theqrl/web3-core) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-core) | Core functions for web3.js packages |
+| [web3-errors](https://github.com/theqrl/web3.js/tree/main/packages/web3-errors) | [](https://www.npmjs.com/package/@theqrl/web3-core) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-errors) | Errors Objects |
+| [web3-zond](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond) | [](https://www.npmjs.com/package/@theqrl/web3-eth) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-eth) | Modules to interact with the Zond blockchain and smart contracts |
+| [web3-zond-abi](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-abi) | [](https://www.npmjs.com/package/@theqrl/web3-zond-abi) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-zond-abi) | Functions for encoding and decoding ZVM in/output |
+| [web3-zond-accounts](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-accounts) | [](https://www.npmjs.com/package/@theqrl/web3-zond-accounts) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-zond-accounts) | Functions for managing Zond accounts and signing |
+| [web3-zond-contract](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-contract) | [](https://www.npmjs.com/package/@theqrl/web3-zond-contract) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-zond-contract) | The contract package contained in [web3-zond](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond) |
+| [web3-zond-ens](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-ens) | [](https://www.npmjs.com/package/@theqrl/web3-zond-ens) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-zond-ens) | Functions for interacting with the Ethereum Name Service |
+| [web3-zond-iban](https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-iban) | [](https://www.npmjs.com/package/@theqrl/web3-zond-iban) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-zond-iban) | Functionality for converting Zond addressed to IBAN addressed and vice versa |
+| [web3-net](https://github.com/theqrl/web3.js/tree/main/packages/web3-net) | [](https://www.npmjs.com/package/@theqrl/web3-net) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-net) | Functions to interact with an Zond node's network properties |
+| [web3-providers-http](https://github.com/theqrl/web3.js/tree/main/packages/web3-providers-http) | [](https://www.npmjs.com/package/@theqrl/web3-providers-http) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-providers-http) | Web3.js provider for the HTTP protocol |
+| [web3-providers-ipc](https://github.com/theqrl/web3.js/tree/main/packages/web3-providers-ipc) | [](https://www.npmjs.com/package/@theqrl/web3-providers-ipc) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-providers-ipc) | Web3.js provider for IPC |
+| [web3-providers-ws](https://github.com/theqrl/web3.js/tree/main/packages/web3-providers-ws) | [](https://www.npmjs.com/package/@theqrl/web3-providers-ws) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-providers-ws) | Web3.js provider for the Websocket protocol |
+| [web3-rpc-methods](https://github.com/theqrl/web3.js/tree/main/packages/web3-rpc-methods) | [](https://www.npmjs.com/package/@theqrl/web3-types) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/) | RPC Methods |
+| [web3-types](https://github.com/theqrl/web3.js/tree/main/packages/web3-types) | [](https://www.npmjs.com/package/@theqrl/web3-types) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-types) | Shared useable types |
+| [web3-utils](https://github.com/theqrl/web3.js/tree/main/packages/web3-utils) | [](https://www.npmjs.com/package/@theqrl/web3-utils) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-utils) | Useful utility functions for Dapp developers |
+| [web3-validator](https://github.com/theqrl/web3.js/tree/main/packages/web3-validator) | [](https://www.npmjs.com/package/@theqrl/web3-validator) | [](https://www.gnu.org/licenses/lgpl-3.0) | [](https://docs.theqrl.org/api/web3-validator) | Utilities for validating objects |
## Package.json Scripts
diff --git a/RELEASE.md b/RELEASE.md
index feb3295b..d325ee77 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -1,8 +1,12 @@
-# web3.js Release Guidelines
+# @theqrl/web3.js Release Guidelines
+
+_This document has not yet been fully ported from the original web3.js repository. It is a work in progress and will be updated in the future._
+
+_We need to use lerna pinned at v6 either with npx or installed globally to run the commands in this document_
## Version Number Definition
-The web3.js project follows the [semver 2.0.0 specification](https://semver.org/).
+The @theqrl/web3.js project follows the [semver 2.0.0 specification](https://semver.org/).
### Major
@@ -44,7 +48,7 @@ Further details about versioning can be found in the [semver 2.0.0 specification
8. `git tag bumped-version`: Tag the commit with bumped version having prefix `v` , e.g. `git tag v4.0.1-alpha.0`
9. `git push origin release/bumped-version`: Push release branch to `origin`
10. `git push origin --tags`: Push release tag created in `Step 8` to `origin`
-11. Create a draft release on Github similar to [this](https://github.com/ChainSafe/web3.js/releases/tag/web3-providers-base%401.0.0-alpha.1)
+11. Create a draft release on Github similar to [this Chainsafe example](https://github.com/chainsafe/web3.js/releases/tag/web3-providers-base%401.0.0-alpha.1)
- Check `This is a pre-release`
- In the release description, copy all entries in `CHANGELOG.md` for the version being released
12. Click `Save draft`
diff --git a/codecov.yml b/codecov.yml
index 0a8f0dfd..11dfde6b 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -39,9 +39,9 @@ component_management:
- component_id: "@theqrl/web3-zond-contract"
paths:
- /packages/web3-zond-contract/src/
- - component_id: "@theqrl/web3-zond-zns"
+ - component_id: "@theqrl/web3-zond-ens"
paths:
- - /packages/web3-zond-zns/src/
+ - /packages/web3-zond-ens/src/
- component_id: "@theqrl/web3-zond-iban"
paths:
- /packages/web3-zond-iban/src/
diff --git a/docs/docs/guides/advanced/support_additional_rpc_methods/index.md b/docs/docs/guides/advanced/support_additional_rpc_methods/index.md
index b685b292..ad0b44ca 100644
--- a/docs/docs/guides/advanced/support_additional_rpc_methods/index.md
+++ b/docs/docs/guides/advanced/support_additional_rpc_methods/index.md
@@ -24,7 +24,7 @@ This will give your plugin access to [requestManager](/api/web3-core/class/Web3C
:::caution
```ts
-import { Web3PluginBase } from 'web3';
+import { Web3PluginBase } from '@theqrl/web3';
export default class CustomRpcMethodsPlugin extends Web3PluginBase {
// step 1
@@ -35,7 +35,7 @@ export default class CustomRpcMethodsPlugin extends Web3PluginBase {
2. After that add public `pluginNamespace` property. This will be used to access your plugin, as mentioned in step number 5 code example.
```ts
-import { Web3PluginBase } from 'web3';
+import { Web3PluginBase } from '@theqrl/web3';
export default class CustomRpcMethodsPlugin extends Web3PluginBase {
public pluginNamespace = 'customRpcMethods'; // step 2
@@ -45,7 +45,7 @@ export default class CustomRpcMethodsPlugin extends Web3PluginBase {
3. Once plugin class is created using above mentioned steps, its very easy to add new RPC methods like:
```ts
-import { Web3PluginBase } from 'web3';
+import { Web3PluginBase } from '@theqrl/web3';
export default class CustomRpcMethodsPlugin extends Web3PluginBase {
public pluginNamespace = 'customRpcMethods';
@@ -64,7 +64,7 @@ export default class CustomRpcMethodsPlugin extends Web3PluginBase {
4. Final step is setting up module [augmentation](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation), this will allow you to access plugin on web3 object.
```ts
-import { Web3PluginBase } from 'web3';
+import { Web3PluginBase } from '@theqrl/web3';
export default class CustomRpcMethodsPlugin extends Web3PluginBase {
public pluginNamespace = 'customRpcMethods';
@@ -79,7 +79,7 @@ export default class CustomRpcMethodsPlugin extends Web3PluginBase {
}
// Module Augmentation
-declare module 'web3' {
+declare module '@theqrl/web3' {
// step 4
interface Web3Context {
@@ -99,8 +99,8 @@ After the plugin is ready, it is recommended to publish it on the NPM registry.
Once plugin is registered its custom methods will be available to use.
```ts
-import { Web3 } from 'web3';
-import CustomRpcMethodsPlugin from 'web3-plugin-example';
+import { Web3 } from '@theqrl/web3';
+import CustomRpcMethodsPlugin from '@theqrl/web3-plugin-example';
const web3 = new Web3('http://127.0.0.1:8545');
web3.registerPlugin(new CustomRpcMethodsPlugin()); // step 5
@@ -112,6 +112,6 @@ web3.customRpcMethods.customRpcMethod();
For more details follow :
-- [Example Plugin Code](https://github.com/web3/web3.js/tree/4.x/tools/web3-plugin-example)
+- [Example Plugin Code](https://github.com/theqrl/web3.js/tree/main/tools/web3-plugin-example)
- [Web3 Plugin developers Guide](/guides/web3_plugin_guide/plugin_authors)
- [Web3 Plugin Users Guide](/guides/web3_plugin_guide/plugin_users)
diff --git a/docs/docs/guides/advanced/web3_tree_shaking_support_guide/index.md b/docs/docs/guides/advanced/web3_tree_shaking_support_guide/index.md
index 5db3c7e9..906365ea 100644
--- a/docs/docs/guides/advanced/web3_tree_shaking_support_guide/index.md
+++ b/docs/docs/guides/advanced/web3_tree_shaking_support_guide/index.md
@@ -34,10 +34,10 @@ For further information about `sideEffects` see [webpack docs](https://webpack.j
import Web3Zond from '@theqrl/web3-zond';
```
-If you only need a few functions from `web3-utils`:
+If you only need a few functions from `@theqrl/web3-utils`:
```ts
-import { numberToHex, hexToNumber } from 'web3-utils';
+import { numberToHex, hexToNumber } from '@theqrl/web3-utils';
```
You can find an example app with tree shaking [here](https://github.com/ChainSafe/web3js-example-react-app).
diff --git a/docs/docs/guides/basics/sign_and_send_tx/local_wallet.md b/docs/docs/guides/basics/sign_and_send_tx/local_wallet.md
index a3d78cec..2e546fc4 100644
--- a/docs/docs/guides/basics/sign_and_send_tx/local_wallet.md
+++ b/docs/docs/guides/basics/sign_and_send_tx/local_wallet.md
@@ -11,7 +11,7 @@ The simplest way to sign and send transactions is using a local wallet:
```ts
// First step: initialize `web3` instance
-import Web3 from 'web3';
+import Web3 from '@theqrl/web3';
const web3 = new Web3(/* PROVIDER*/);
// Second step: add an account to wallet
@@ -45,7 +45,7 @@ List of references:
```ts
// First step: initialize `web3` instance
-import Web3 from 'web3';
+import Web3 from '@theqrl/web3';
const web3 = new Web3(/* PROVIDER*/);
// Second step: add an account to wallet
diff --git a/docs/docs/guides/basics/sign_and_send_tx/wallet_of_zond_node.md b/docs/docs/guides/basics/sign_and_send_tx/wallet_of_zond_node.md
index e3f95993..4ea60ea5 100644
--- a/docs/docs/guides/basics/sign_and_send_tx/wallet_of_zond_node.md
+++ b/docs/docs/guides/basics/sign_and_send_tx/wallet_of_zond_node.md
@@ -11,7 +11,7 @@ If Zond node has unlocked account in its wallet you can send transaction without
```ts
// First step: initialize web3 instance
-import Web3 from 'web3';
+import Web3 from '@theqrl/web3';
const web3 = new Web3(/* PROVIDER*/);
// Second step: sign and send the transaction
@@ -37,7 +37,7 @@ List of references:
```ts
// First step: initialize web3 instance
-import Web3 from 'web3';
+import Web3 from '@theqrl/web3';
const web3 = new Web3(/* PROVIDER*/);
// Second step: sign and send the transaction
diff --git a/docs/docs/guides/basics/zond.md b/docs/docs/guides/basics/zond.md
index ccea547c..aa93685e 100644
--- a/docs/docs/guides/basics/zond.md
+++ b/docs/docs/guides/basics/zond.md
@@ -31,8 +31,8 @@ Before we start writing and deploying our contract, we need to set up our enviro
First, create a new project directory for your project and navigate into it:
```
-mkdir web3-eth-tutorial
-cd web3-eth-tutorial
+mkdir web3-zond-tutorial
+cd web3-zond-tutorial
```
Next, initialize a new Node.js project using npm:
@@ -57,7 +57,7 @@ In this step, we will set up the web3.js library and connect to the Ganache netw
First, install the `web3` package using npm:
```
-npm install @theqrl/web3@4.0.1-rc.1
+npm install @theqrl/web3
```
Note that we are installing the latest version of 4.x, at the time of this tutorial writing. You can check the latest version at https://www.npmjs.com/package/@theqrl/web3?activeTab=versions
@@ -65,7 +65,7 @@ Note that we are installing the latest version of 4.x, at the time of this tutor
Next, create a new file called `index.ts` in your project directory and add the following code to it:
```javascript
-const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`)
+const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`)
// Set up a connection to the Ganache network
const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:7545'));
@@ -99,7 +99,7 @@ In the first example, we are going to send a simple value transaction.
Create a file named `transaction.ts` and fill it with the following code:
```typescript
-const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`)
+const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`)
const fs = require('fs');
const path = require('path');
@@ -202,7 +202,7 @@ transactionHash {
In the next example, we are going to use `estimateGas` function to see the expected gas for contract deployment. (For more on contracts, please see the corresponding tutotial). Create a file named `estimate.ts` and fill it with the following code:
```typescript
-import Web3, { ZOND_DATA_FORMAT, DEFAULT_RETURN_FORMAT } from 'web3';
+import Web3, { ZOND_DATA_FORMAT, DEFAULT_RETURN_FORMAT } from '@theqrl/web3';
async function estimate() {
// abi of our contract
@@ -284,7 +284,7 @@ If everything is working correctly, you should see something like the following:
In the next example we are going to sign a transaction and use `sendSignedTransaction` to send the signed transaction. Create a file named `sendSigned.ts` and fill it with the following code:
```typescript
-import Web3 from 'web3';
+import Web3 from '@theqrl/web3';
const web3 = new Web3('http://localhost:7545');
//make sure to copy the private key from ganache
@@ -347,7 +347,7 @@ Transaction receipt: {
## Conclusion
-In this tutorial, we learned how to use different methods provied by the `web3-eth` package.
+In this tutorial, we learned how to use different methods provided by the `@theqrl/web3` package.
With this knowledge, you can start experimenting with the Zond blockchain. Keep in mind that this is just the beginning, and there is a lot more to learn about Zond and web3.js. So keep exploring and building, and have fun!
diff --git a/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md b/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md
index 0012758e..ca14d385 100644
--- a/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md
+++ b/docs/docs/guides/smart_contracts/deploying_and_interacting_with_smart_contracts.md
@@ -181,7 +181,7 @@ Note that we are installing the latest version of 4.x, at the time of this tutor
Next, create a new file called `index.js` in your project directory and add the following code to it:
```javascript
-const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`)
+const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`)
// Set up a connection to the Ganache network
const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:7545'));
@@ -216,7 +216,7 @@ Create a file named `deploy.js` and fill it with the following code:
```javascript
// For simplicity we use `web3` package here. However, if you are concerned with the size,
// you may import individual packages like 'web3-zond', 'web3-zond-contract' and 'web3-providers-http'.
-const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`)
+const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`)
const fs = require('fs');
const path = require('path');
@@ -292,7 +292,7 @@ In this step, we will use web3.js to interact with the smart contract on the Gan
Create a file named `interact.js` and fill it with the following code:
```javascript
-const { Web3 } = require('web3'); // web3.js has native ESM builds and (`import Web3 from 'web3'`)
+const { Web3 } = require('@theqrl/web3'); // web3.js has native ESM builds and (`import Web3 from '@theqrl/web3'`)
const fs = require('fs');
const path = require('path');
@@ -419,7 +419,7 @@ With this knowledge, you can start experimenting with writing smart contract in
## Additional Resources
-- [Official web3.js Documentation](https://docs.web3js.org/)
+- [Official web3.js Documentation](https://docs.theqrl.org/)
- [Hyperion Documentation](https://solidity.readthedocs.io/)
- [Ganache](https://www.trufflesuite.com/ganache)
- [Truffle](https://trufflesuite.com/)
diff --git a/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md b/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md
index cbbf4804..12f96a18 100644
--- a/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md
+++ b/docs/docs/guides/smart_contracts/infer_contract_types_guide/index.md
@@ -11,8 +11,8 @@ Before we dive into the problem, let's take a quick look at the problem. Web3.js
Web3.js uses ABI type to dynamically load available methods and events but Typescript currently [doesn't support loading JSON as const](https://github.com/microsoft/TypeScript/issues/32063). If you go to the [Playground Link](https://www.typescriptlang.org/play?#code/MYewdgzgLgBAhgIwJYwLwwNoCga5gbxz1wCIkwAHAVyghIC5MjjdCWWywoBTAJzDgAbACoBPCtwYwS0XuQDmJADTN20gQFtJjEpu4B9ZavYko47dNkKSxvAF8VagreKce-IWIlSZUOWEVHJ3U4LR8IUQ0EEEFDIKdTc3C-axcYO1sAXXi8XzgeAFkaRCRBJDMfMHAKOFFEQUkc0jNvHVBIPypgKBBeG2IHVTYOOCqwSJAqOkYAMyEIbibpcmpaKWwnYYTyABNuAA9uHalOxbTScncBESSdOB2d3m4IOiXXPR8QAHcwPiNg6QtCwke6PZ50NKDTbnZZgPaHY6MU5vXKXPjXLzA0FPF7-YK6ULAiASOF-FHNW7SbHg-pqKFqLZqTjwo5SOaCBbk2FXTyUkhUS4AJgArAA2PEJD46ABuQiojRhiVa0gFXBF4shWSWBLCOgAghQKLwQLLBBLckCfNxpdwuLTcPTWLYQWMJlM2fMziYVjRpkxoQDmQdWUjePKuW50bzlSCHjjXoqpdIZsaNOaTJa7nGaZCUYzvaSEScw178WiPDcY9TcRGk6YQOmOJmqdncbm0vmOLtg4iYOzOYryxi+aqoOrG+9CT5TfKJxaR0KxfaWBl2NlnXXhLxRhAZmTnc2SNbbVBl47nAXVn6NgzB1wo5Wsa2E4G699fn0I4fqxCnOfiJ2rhDtGT5gjWiZTjoxK2nsn6Kt+z7LgMWobpBVKCII3yjMAComJMUBXusHZ3jyj4+KO461mhJBzhSMYUUumprtq0D5NwRRQCUZQVDKSDcF8jZKsCMxUGA3RIOAZ45J2nCEYwN7sIBqL3hWmI+D+tEhLqlgkrBmlCepiHtgGZYqcO9GLuKVHaSCGiTHaX4LmqjF-ihJh1nAhrGjagn4XJ-q3oGwFkTo0QxPpdb6YeYVmkxLDriYrGFMUyDcaIlTVLU9S4U2fIiWJUASWAUlDM6PprPJxFBWZIGGWBL74h5wCgKJp6OVWRmucxqE2QgQjYdwADyMy+TQ-kKSwSkXDVIUqpZEXUVFTlji5dJuRwSXsSlpTlOlvH8YJh75eJkmqOeMnldeCUcHWezAEgGjzKNBG+kRJnbDNak6KOAAcC02UtFlcH9cXENdribRxXG7dOfECdqR2iSdxVndJZWUK9lXvUywVfS29X-USun7oGCEE8ZgWmaReP8vN1lElQCB+HA3RHAAanKOUJIeDEal18Xard3DAE8cALHqGFYWJXO5H5mMBYpJEPjTMWEz4gPAqroN4ODuSQ9taUZZQWUIA0h15UjhWnQMaOXvLE0AUrql8hp9PhMTcGky7nV0nmTvmcCvNq1mew7Bzgizu1gfzdruC66QdbkCL3Bi9wEuYV8A3PeNVVU8rfKq27Ogaz4Wv82DLGcclnGpTDOhjDUdSmzLdHCZbRUlY7dsVZg8dacCHzanLPcO3gU3cvnMZWAEwfSCXUEpDPscwH3eTV9DPHSNKcPmzGx1WyjNuld3V2C9RERROFQ9jfbucfdTfLT4EEEA1HyT+Ioy+r-rNc7ZvJDbwOgjC2BUO6o2Pl2DGI9V51h6JxQQABlKghpBDpWvi9Eed8cafWWpRF+wJ55zWcnzNa3VEpVy2r-Q2+14YHhAcjTuY90Y52xgWB+HUCZF0BA2N+Id4xIXsH7aq7Do7ENnrZeybV4K4NWuwVcAserAmZpAPcnsODD2vFgthk9NYgCvvg9WvDpBl1IQo8hbEoa13-g3E2ZtgF73btbQRECgJQM0awyBIi6r8K4SQFMIA0xGNjOTP8Qi87Ow4T4gxOgeiEOCfwimithE6PInTaJVI7KtTiUHL+Z8bLKN3HwAAYqmbOt8PGuK8aFPRZpfFxJMXI9aEMKGWL-ntdQmUm52LoQ40BTiHREEyPACAMB2jQAANxAA) and choose ".d.ts" you can check type difference with and without `as const`.
```typescript
-import { Contract, Web3 } from 'web3';
-import ZRC20 from './node_modules/@theqrl/zond-contracts/build/contracts/ZRC20.json';
+import { Contract, Web3 } from '@theqrl/web3';
+import ERC20 from './node_modules/@openzeppelin/contracts/build/contracts/ERC20.json';
(async function () {
const web3 = new Web3('rpc url');
@@ -100,8 +100,8 @@ and run the script with `node -r ts-node/register
+
@@ -540,15 +540,15 @@ Follow these steps to connect to the Zond network with MetaMask and web3.js, inc
```
10. Open your web browser and navigate to `http://localhost:8097/`. MetaMask should ask for your approval to connect to your website. Follow the steps and give your consent.
-11. If everything is set up properly, you should be able to connect to the Zond network with MetaMask and see the logged account address.
+11. If everything is set up properly, you should be able to connect to the QRL network with MetaMask and see the logged account address.
Note that in the above steps you had created a local web server using Node.js and Express, serving your HTML file from the root directory of your project. You needs this local server because many browser does not allow extensions to inject objects for static files located on your machine. However, you can customize the port number and the root directory if needed.
-Now you can start building your Zond application with web3.js and MetaMask!
+Now you can start building your QRL application with web3.js and MetaMask!
### Setting Web3 Provider using a String URL
-web3.js allows you to set the Zond network provider, easily, by passing a string URL containing either the `http`, `https`, `ws`, or `wss` protocol. This provider can be used to connect to a remote server or node.
+web3.js allows you to set the QRL network provider, easily, by passing a string URL containing either the `http`, `https`, `ws`, or `wss` protocol. This provider can be used to connect to a remote server or node.
And when a string is passed, an instance of the compatible class above will be created accordingly. ex. WebSocketProvider instance will be created for string containing `ws` or `wss`. And you access this instance by calling `web3.provider` to read the provider and possibly register an event listener.
@@ -560,7 +560,7 @@ const web3 = new Web3('https://ropsten.infura.io/v3/YOUR_INFURA_PROJECT_ID');
Replace `` with your own Infura project ID. This code snippet creates a new Web3 instance with Infura's Ropsten network endpoint as the provider.
-However, if you do not want to use Infura and want to run your own Zond node, you can set the provider to a local node with, for example, the `http` protocol, like this:
+However, if you do not want to use Infura and want to run your own QRL node, you can set the provider to a local node with, for example, the `http` protocol, like this:
```js
const web3 = new Web3('http://localhost:8545');
@@ -568,7 +568,7 @@ const web3 = new Web3('http://localhost:8545');
This code snippet sets the provider to a local node running on port 8545.
-You can also use the `WebSocket` protocol to connect to a remote Zond node that supports it, like this:
+You can also use the `WebSocket` protocol to connect to a remote QRL node that supports it, like this:
```js
const web3 = new Web3('wss://eth-mainnet.alchemyapi.io/v2/');
@@ -580,8 +580,8 @@ A few points to consider:
- Make sure the URL you are using is correct, including the protocol and port if necessary.
- If you are using a remote node, make sure your firewall allows access to the specified port.
-- It is recommended to use encrypted protocols `https` and `wss` when connecting to Zond network using a string URL.
+- It is recommended to use encrypted protocols `https` and `wss` when connecting to QRL network using a string URL.
## Conclusion
-In this tutorial, we explored different types of providers available in web3.js and learned how to set them up and use them in our code. Depending on your application's needs, you can choose the provider that best suits your requirements. The HTTP Provider is the simplest and most widely used provider, while the Websocket Provider and IPC Provider offer real-time communication and faster performance, respectively. With these providers, you can connect your web application to the Zond network and start building decentralized applications.
+In this tutorial, we explored different types of providers available in web3.js and learned how to set them up and use them in our code. Depending on your application's needs, you can choose the provider that best suits your requirements. The HTTP Provider is the simplest and most widely used provider, while the Websocket Provider and IPC Provider offer real-time communication and faster performance, respectively. With these providers, you can connect your web application to the QRL network and start building decentralized applications.
diff --git a/docs/docs/guides/web3_providers_guide/index.md b/docs/docs/guides/web3_providers_guide/index.md
index ad346b39..6bfd173c 100644
--- a/docs/docs/guides/web3_providers_guide/index.md
+++ b/docs/docs/guides/web3_providers_guide/index.md
@@ -7,7 +7,7 @@ sidebar_label: 'Providers'
## Introduction
-web3.js providers are objects responsible for enabling connectivity with the Zond network in various ways. Connecting your web application to a Zond node is necessary for sending transactions, querying data, and interacting with smart contracts on the network. In this guide, we will explore the different types of providers available in web3.js, how to set them up, and how to use them in your code.
+web3.js providers are objects responsible for enabling connectivity with the QRL network in various ways. Connecting your web application to a QRL node is necessary for sending transactions, querying data, and interacting with smart contracts on the network. In this guide, we will explore the different types of providers available in web3.js, how to set them up, and how to use them in your code.
Connecting to a chain happens through a provider. You can pass the provider to the constructor as in the following example:
@@ -17,7 +17,7 @@ import Web3 from '@theqrl/web3';
const web3 = new Web3(/* PROVIDER*/);
// calling any method that interact with the network would involve using the early passed provider.
-await web3.zond.sendTransaction({
+await web3.qrl.sendTransaction({
from,
to,
value,
@@ -48,15 +48,15 @@ There are multiple ways to set the provider.
```ts title='Setting a provider'
web3.setProvider(myProvider);
-web3.zond.setProvider(myProvider);
+web3.qrl.setProvider(myProvider);
web3.Contract.setProvider(myProvider);
contractInstance.setProvider(myProvider);
```
The key rule for setting provider is as follows:
-1. Any provider set on the higher level will be applied to all lower levels. e.g. Any provider set using `web3.setProvider` will also be applied to `web3.zond` object.
-2. For contracts `web3.Contract.setProvider` can be used to set provider for **all instances** of contracts created by `web3.zond.Contract`.
+1. Any provider set on the higher level will be applied to all lower levels. e.g. Any provider set using `web3.setProvider` will also be applied to `web3.qrl` object.
+2. For contracts `web3.Contract.setProvider` can be used to set provider for **all instances** of contracts created by `web3.qrl.Contract`.
---
@@ -77,13 +77,13 @@ web3.setProvider(new Web3.providers.WebsocketProvider('ws://localhost:8546'));
// Using the IPC provider in node.js
const net = require('net');
-const web3 = new Web3('/Users/myuser/Library/Zond/gzond.ipc', net); // mac os path
+const web3 = new Web3('/Users/myuser/Library/QRL/Execution/gzond.ipc', net); // mac os path
// or
const web3 = new Web3(
- new Web3.providers.IpcProvider('/Users/myuser/Library/Zond/gzond.ipc', net),
+ new Web3.providers.IpcProvider('/Users/myuser/Library/QRL/Execution/gzond.ipc', net),
); // mac os path
// on windows the path is: "\\\\.\\pipe\\gzond.ipc"
-// on linux the path is: "/users/myuser/.zond/gzond.ipc"
+// on linux the path is: "/users/myuser/.qrl/execution/gzond.ipc"
```
### Remote Node Provider
@@ -105,13 +105,13 @@ The web3.js Provider specifications are defined in [web3 base provider](https://
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index 8b0b9794..0eb41511 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -21,18 +21,18 @@ const { join } = require('path');
const packages = [
'@theqrl/web3',
- '@theqrl/web3-zond',
- '@theqrl/web3-zond-contract',
+ '@theqrl/web3-qrl',
+ '@theqrl/web3-qrl-contract',
'@theqrl/web3-utils',
'@theqrl/web3-validator',
'@theqrl/web3-types',
'@theqrl/web3-core',
'@theqrl/web3-errors',
'@theqrl/web3-net',
- '@theqrl/web3-zond-abi',
- '@theqrl/web3-zond-accounts',
- '@theqrl/web3-zond-ens',
- '@theqrl/web3-zond-iban',
+ '@theqrl/web3-qrl-abi',
+ '@theqrl/web3-qrl-accounts',
+ '@theqrl/web3-qrl-qrns',
+ '@theqrl/web3-qrl-iban',
'@theqrl/web3-providers-http',
'@theqrl/web3-providers-ws',
'@theqrl/web3-providers-ipc',
@@ -41,7 +41,7 @@ const packages = [
/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'web3.js',
- tagline: 'The ultimate JavaScript library for Zond',
+ tagline: 'The ultimate JavaScript library for QRL',
url: 'https://docs.web3js.org',
baseUrl: '/',
onBrokenLinks: 'throw',
diff --git a/fixtures/build/Basic.json b/fixtures/build/Basic.json
index 3dc51364..5142cccd 100644
--- a/fixtures/build/Basic.json
+++ b/fixtures/build/Basic.json
@@ -293,7 +293,7 @@
"type": "function"
}
],
- "zvm": {
+ "qrvm": {
"bytecode": {
"object": "608060405234801562000010575f80fd5b50604051620013a7380380620013a7833981810160405281019062000036919062000213565b815f8190555080600190816200004d9190620004a5565b50505062000589565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6200007b8162000067565b811462000086575f80fd5b50565b5f81519050620000998162000070565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000ef82620000a7565b810181811067ffffffffffffffff82111715620001115762000110620000b7565b5b80604052505050565b5f6200012562000056565b9050620001338282620000e4565b919050565b5f67ffffffffffffffff821115620001555762000154620000b7565b5b6200016082620000a7565b9050602081019050919050565b5f5b838110156200018c5780820151818401526020810190506200016f565b5f8484015250505050565b5f620001ad620001a78462000138565b6200011a565b905082815260208101848484011115620001cc57620001cb620000a3565b5b620001d98482856200016d565b509392505050565b5f82601f830112620001f857620001f76200009f565b5b81516200020a84826020860162000197565b91505092915050565b5f80604083850312156200022c576200022b6200005f565b5b5f6200023b8582860162000089565b925050602083015167ffffffffffffffff8111156200025f576200025e62000063565b5b6200026d85828601620001e1565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620002c657607f821691505b602082108103620002dc57620002db62000281565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000303565b6200034c868362000303565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200038d62000387620003818462000067565b62000364565b62000067565b9050919050565b5f819050919050565b620003a8836200036d565b620003c0620003b78262000394565b8484546200030f565b825550505050565b5f90565b620003d6620003c8565b620003e38184846200039d565b505050565b5b818110156200040a57620003fe5f82620003cc565b600181019050620003e9565b5050565b601f82111562000459576200042381620002e2565b6200042e84620002f4565b810160208510156200043e578190505b620004566200044d85620002f4565b830182620003e8565b50505b505050565b5f82821c905092915050565b5f6200047b5f19846008026200045e565b1980831691505092915050565b5f6200049583836200046a565b9150826002028217905092915050565b620004b08262000277565b67ffffffffffffffff811115620004cc57620004cb620000b7565b5b620004d88254620002ae565b620004e58282856200040e565b5f60209050601f8311600181146200051b575f841562000506578287015190505b62000512858262000488565b86555062000581565b601f1984166200052b86620002e2565b5f5b8281101562000554578489015182556001820191506020850194506020810190506200052d565b8683101562000574578489015162000570601f8916826200046a565b8355505b6001600288020188555050505b505050505050565b610e1080620005975f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c8063844d6a321161006f578063844d6a3214610154578063939d7c4e1461015e578063ae012ede1461017a578063b7a8238a14610184578063d7af8ac1146101a0578063e8256ea0146101bc576100b2565b806319eb4a90146100b65780632bfc4c69146100d65780633bccbbc9146100f45780635a018657146100fe5780637cfbdcf01461011a578063828909bd14610136575b5f80fd5b6100be6101da565b6040516100cd939291906105b3565b60405180910390f35b6100de610286565b6040516100eb91906105ef565b60405180910390f35b6100fc610316565b005b610118600480360381019061011391906107a0565b610351565b005b610134600480360381019061012f9190610869565b610391565b005b61013e6103df565b60405161014b91906108da565b60405180910390f35b61015c6103e7565b005b610178600480360381019061017391906107a0565b610429565b005b610182610469565b005b61019e600480360381019061019991906108f3565b610474565b005b6101ba60048036038101906101b5919061093a565b6104ae565b005b6101c46104e2565b6040516101d191906109a6565b60405180910390f35b5f60605f8054600160025f9054906101000a900460ff168180546101fd906109ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610229906109ec565b80156102745780601f1061024b57610100808354040283529160200191610274565b820191905f5260205f20905b81548152906001019060200180831161025757829003601f168201915b50505050509150925092509250909192565b606060018054610295906109ec565b80601f01602080910402602001604051908101604052809291908181526020018280546102c1906109ec565b801561030c5780601f106102e35761010080835404028352916020019161030c565b820191905f5260205f20905b8154815290600101906020018083116102ef57829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890610a66565b60405180910390fd5b7fa8297798732ff8a80a23cf22707934835a9d5b03536598708f7414646a1b95b383838360405161038493929190610a84565b60405180910390a1505050565b8015158285856040516103a5929190610aee565b60405180910390207f5b5730af07e266d8b4845f404beb3b193085c686b0edd8e8e20cd4b3fc2b6cd560405160405180910390a450505050565b5f8054905090565b5f610427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041e90610b50565b60405180910390fd5b565b801515827f553c4a49a36d26504ba0880f2f9bfe9ac7db4b81a893bde296546cd96ae0b33c8560405161045c91906105ef565b60405180910390a3505050565b5f610472575f80fd5b565b7f617cf8a4400dd7963ed519ebe655a16e8da1282bb8fea36a21f634af912f54ab816040516104a391906105ef565b60405180910390a150565b825f8190555081600190816104c39190610d0b565b508060025f6101000a81548160ff021916908315150217905550505050565b5f60025f9054906101000a900460ff16905090565b5f819050919050565b610509816104f7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561054657808201518184015260208101905061052b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61056b8261050f565b6105758185610519565b9350610585818560208601610529565b61058e81610551565b840191505092915050565b5f8115159050919050565b6105ad81610599565b82525050565b5f6060820190506105c65f830186610500565b81810360208301526105d88185610561565b90506105e760408301846105a4565b949350505050565b5f6020820190508181035f8301526106078184610561565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61065e82610551565b810181811067ffffffffffffffff8211171561067d5761067c610628565b5b80604052505050565b5f61068f61060f565b905061069b8282610655565b919050565b5f67ffffffffffffffff8211156106ba576106b9610628565b5b6106c382610551565b9050602081019050919050565b828183375f83830152505050565b5f6106f06106eb846106a0565b610686565b90508281526020810184848401111561070c5761070b610624565b5b6107178482856106d0565b509392505050565b5f82601f83011261073357610732610620565b5b81356107438482602086016106de565b91505092915050565b610755816104f7565b811461075f575f80fd5b50565b5f813590506107708161074c565b92915050565b61077f81610599565b8114610789575f80fd5b50565b5f8135905061079a81610776565b92915050565b5f805f606084860312156107b7576107b6610618565b5b5f84013567ffffffffffffffff8111156107d4576107d361061c565b5b6107e08682870161071f565b93505060206107f186828701610762565b92505060406108028682870161078c565b9150509250925092565b5f80fd5b5f80fd5b5f8083601f84011261082957610828610620565b5b8235905067ffffffffffffffff8111156108465761084561080c565b5b60208301915083600182028301111561086257610861610810565b5b9250929050565b5f805f806060858703121561088157610880610618565b5b5f85013567ffffffffffffffff81111561089e5761089d61061c565b5b6108aa87828801610814565b945094505060206108bd87828801610762565b92505060406108ce8782880161078c565b91505092959194509250565b5f6020820190506108ed5f830184610500565b92915050565b5f6020828403121561090857610907610618565b5b5f82013567ffffffffffffffff8111156109255761092461061c565b5b6109318482850161071f565b91505092915050565b5f805f6060848603121561095157610950610618565b5b5f61095e86828701610762565b935050602084013567ffffffffffffffff81111561097f5761097e61061c565b5b61098b8682870161071f565b925050604061099c8682870161078c565b9150509250925092565b5f6020820190506109b95f8301846105a4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a0357607f821691505b602082108103610a1657610a156109bf565b5b50919050565b7f52455645525445442057495448205245564552540000000000000000000000005f82015250565b5f610a50601483610519565b9150610a5b82610a1c565b602082019050919050565b5f6020820190508181035f830152610a7d81610a44565b9050919050565b5f6060820190508181035f830152610a9c8186610561565b9050610aab6020830185610500565b610ab860408301846105a4565b949350505050565b5f81905092915050565b5f610ad58385610ac0565b9350610ae28385846106d0565b82840190509392505050565b5f610afa828486610aca565b91508190509392505050565b7f52455645525445442057495448205245515549524500000000000000000000005f82015250565b5f610b3a601583610519565b9150610b4582610b06565b602082019050919050565b5f6020820190508181035f830152610b6781610b2e565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610bca7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b8f565b610bd48683610b8f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610c0f610c0a610c05846104f7565b610bec565b6104f7565b9050919050565b5f819050919050565b610c2883610bf5565b610c3c610c3482610c16565b848454610b9b565b825550505050565b5f90565b610c50610c44565b610c5b818484610c1f565b505050565b5b81811015610c7e57610c735f82610c48565b600181019050610c61565b5050565b601f821115610cc357610c9481610b6e565b610c9d84610b80565b81016020851015610cac578190505b610cc0610cb885610b80565b830182610c60565b50505b505050565b5f82821c905092915050565b5f610ce35f1984600802610cc8565b1980831691505092915050565b5f610cfb8383610cd4565b9150826002028217905092915050565b610d148261050f565b67ffffffffffffffff811115610d2d57610d2c610628565b5b610d3782546109ec565b610d42828285610c82565b5f60209050601f831160018114610d73575f8415610d61578287015190505b610d6b8582610cf0565b865550610dd2565b601f198416610d8186610b6e565b5f5b82811015610da857848901518255600182019150602085019450602081019050610d83565b86831015610dc55784890151610dc1601f891682610cd4565b8355505b6001600288020188555050505b50505050505056fea26469706673582212207da11f3a359a735e703035a15dd6b74e550d7cec3bbd53a756cae01784e630346468797063430000020033"
}
diff --git a/fixtures/build/DeployRevert.json b/fixtures/build/DeployRevert.json
index 6dd29633..294c4ab4 100644
--- a/fixtures/build/DeployRevert.json
+++ b/fixtures/build/DeployRevert.json
@@ -6,7 +6,7 @@
"type": "constructor"
}
],
- "zvm": {
+ "qrvm": {
"bytecode": {
"object": "6080604052348015600e575f80fd5b505f6017575f80fd5b603e8060225f395ff3fe60806040525f80fdfea2646970667358221220fa38571b8dfcaa315c964f584d24c12693f06ac4f4fba5012d72845a2b29eaa06468797063430000020033"
}
diff --git a/fixtures/build/ErrorsContract.json b/fixtures/build/ErrorsContract.json
index d8328e33..e4d9d70d 100644
--- a/fixtures/build/ErrorsContract.json
+++ b/fixtures/build/ErrorsContract.json
@@ -36,7 +36,7 @@
"type": "function"
}
],
- "zvm": {
+ "qrvm": {
"bytecode": {
"object": "60806040525f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561004e575f80fd5b5061028d8061005c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063593b0df4146100385780638ec6371414610042575b5f80fd5b61004061004c565b005b61004a6100f6565b005b600260011015610091576040517f8d6ea8be00000000000000000000000000000000000000000000000000000000815260040161008890610239565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156100f3573d5f803e3d5ffd5b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461017a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156101dc573d5f803e3d5ffd5b50565b5f82825260208201905092915050565b7f7265766572746564207573696e6720637573746f6d204572726f7200000000005f82015250565b5f610223601b836101df565b915061022e826101ef565b602082019050919050565b5f6020820190508181035f83015261025081610217565b905091905056fea264697066735822122057a99e26f20ecc70c84ffffdd7cd6e23f0c465dcee92f32c9db27c46ef39b3d96468797063430000020033"
}
diff --git a/fixtures/build/Greeter.json b/fixtures/build/Greeter.json
index c8bd67a7..7932b1aa 100644
--- a/fixtures/build/Greeter.json
+++ b/fixtures/build/Greeter.json
@@ -88,7 +88,7 @@
"type": "function"
}
],
- "zvm": {
+ "qrvm": {
"bytecode": {
"object": "608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da56468797063430000020033"
}
diff --git a/fixtures/build/MsgSender.json b/fixtures/build/MsgSender.json
index 867990f5..cb52d53e 100644
--- a/fixtures/build/MsgSender.json
+++ b/fixtures/build/MsgSender.json
@@ -62,7 +62,7 @@
"type": "function"
}
],
- "zvm": {
+ "qrvm": {
"bytecode": {
"object": "608060405234801562000010575f80fd5b5060405162000d0b38038062000d0b8339818101604052810190620000369190620001d3565b805f908162000046919062000459565b50506200053d565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000af8262000067565b810181811067ffffffffffffffff82111715620000d157620000d062000077565b5b80604052505050565b5f620000e56200004e565b9050620000f38282620000a4565b919050565b5f67ffffffffffffffff82111562000115576200011462000077565b5b620001208262000067565b9050602081019050919050565b5f5b838110156200014c5780820151818401526020810190506200012f565b5f8484015250505050565b5f6200016d6200016784620000f8565b620000da565b9050828152602081018484840111156200018c576200018b62000063565b5b620001998482856200012d565b509392505050565b5f82601f830112620001b857620001b76200005f565b5b8151620001ca84826020860162000157565b91505092915050565b5f60208284031215620001eb57620001ea62000057565b5b5f82015167ffffffffffffffff8111156200020b576200020a6200005b565b5b6200021984828501620001a1565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027157607f821691505b6020821081036200028757620002866200022c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002ae565b620002f78683620002ae565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620003416200033b62000335846200030f565b62000318565b6200030f565b9050919050565b5f819050919050565b6200035c8362000321565b620003746200036b8262000348565b848454620002ba565b825550505050565b5f90565b6200038a6200037c565b6200039781848462000351565b505050565b5b81811015620003be57620003b25f8262000380565b6001810190506200039d565b5050565b601f8211156200040d57620003d7816200028d565b620003e2846200029f565b81016020851015620003f2578190505b6200040a62000401856200029f565b8301826200039c565b50505b505050565b5f82821c905092915050565b5f6200042f5f198460080262000412565b1980831691505092915050565b5f6200044983836200041e565b9150826002028217905092915050565b620004648262000222565b67ffffffffffffffff81111562000480576200047f62000077565b5b6200048c825462000259565b62000499828285620003c2565b5f60209050601f831160018114620004cf575f8415620004ba578287015190505b620004c685826200043c565b86555062000535565b601f198416620004df866200028d565b5f5b828110156200050857848901518255600182019150602085019450602081019050620004e1565b8683101562000528578489015162000524601f8916826200041e565b8355505b6001600288020188555050505b505050505050565b6107c0806200054b5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063315e2f1b14610043578063d5ce338914610074578063fb8f0f5914610092575b5f80fd5b61005d60048036038101906100589190610337565b6100b0565b60405161006b929190610412565b60405180910390f35b61007c610158565b604051610089919061047f565b60405180910390f35b61009a61015f565b6040516100a79190610498565b60405180910390f35b5f6060825f90816100c191906106bb565b5060015f8080546100d1906104e5565b80601f01602080910402602001604051908101604052809291908181526020018280546100fd906104e5565b80156101485780601f1061011f57610100808354040283529160200191610148565b820191905f5260205f20905b81548152906001019060200180831161012b57829003601f168201915b5050505050905091509150915091565b5f33905090565b5f805461016b906104e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610197906104e5565b80156101e25780601f106101b9576101008083540402835291602001916101e2565b820191905f5260205f20905b8154815290600101906020018083116101c557829003601f168201915b505050505081565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61024982610203565b810181811067ffffffffffffffff8211171561026857610267610213565b5b80604052505050565b5f61027a6101ea565b90506102868282610240565b919050565b5f67ffffffffffffffff8211156102a5576102a4610213565b5b6102ae82610203565b9050602081019050919050565b828183375f83830152505050565b5f6102db6102d68461028b565b610271565b9050828152602081018484840111156102f7576102f66101ff565b5b6103028482856102bb565b509392505050565b5f82601f83011261031e5761031d6101fb565b5b813561032e8482602086016102c9565b91505092915050565b5f6020828403121561034c5761034b6101f3565b5b5f82013567ffffffffffffffff811115610369576103686101f7565b5b6103758482850161030a565b91505092915050565b5f8115159050919050565b6103928161037e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156103cf5780820151818401526020810190506103b4565b5f8484015250505050565b5f6103e482610398565b6103ee81856103a2565b93506103fe8185602086016103b2565b61040781610203565b840191505092915050565b5f6040820190506104255f830185610389565b818103602083015261043781846103da565b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61046982610440565b9050919050565b6104798161045f565b82525050565b5f6020820190506104925f830184610470565b92915050565b5f6020820190508181035f8301526104b081846103da565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104fc57607f821691505b60208210810361050f5761050e6104b8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610536565b61057b8683610536565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105bf6105ba6105b584610593565b61059c565b610593565b9050919050565b5f819050919050565b6105d8836105a5565b6105ec6105e4826105c6565b848454610542565b825550505050565b5f90565b6106006105f4565b61060b8184846105cf565b505050565b5b8181101561062e576106235f826105f8565b600181019050610611565b5050565b601f8211156106735761064481610515565b61064d84610527565b8101602085101561065c578190505b61067061066885610527565b830182610610565b50505b505050565b5f82821c905092915050565b5f6106935f1984600802610678565b1980831691505092915050565b5f6106ab8383610684565b9150826002028217905092915050565b6106c482610398565b67ffffffffffffffff8111156106dd576106dc610213565b5b6106e782546104e5565b6106f2828285610632565b5f60209050601f831160018114610723575f8415610711578287015190505b61071b85826106a0565b865550610782565b601f19841661073186610515565b5f5b8281101561075857848901518255600182019150602085019450602081019050610733565b868310156107755784890151610771601f891682610684565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220f2d700c2e7e9858d966931346c180d7b48be89275c7a16c03a3f05e6337032ea6468797063430000020033"
}
diff --git a/fixtures/build/MyContract.json b/fixtures/build/MyContract.json
index 6c96cbe5..f36c8a90 100644
--- a/fixtures/build/MyContract.json
+++ b/fixtures/build/MyContract.json
@@ -14,7 +14,7 @@
"type": "function"
}
],
- "zvm": {
+ "qrvm": {
"bytecode": {
"object": "608060405234801561000f575f80fd5b506102178061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f540c8ba1461002d575b5f80fd5b61003561004b565b6040516100429190610164565b60405180910390f35b60605f8054610059906101b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610085906101b1565b80156100d05780601f106100a7576101008083540402835291602001916100d0565b820191905f5260205f20905b8154815290600101906020018083116100b357829003601f168201915b5050505050905090565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156101115780820151818401526020810190506100f6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610136826100da565b61014081856100e4565b93506101508185602086016100f4565b6101598161011c565b840191505092915050565b5f6020820190508181035f83015261017c818461012c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806101c857607f821691505b6020821081036101db576101da610184565b5b5091905056fea26469706673582212201bf34f340672cd895a93afa7de11dbc06050c1f7b3afad8bf202f023397ae5ca6468797063430000020033"
}
diff --git a/fixtures/build/NegativeNumbers.json b/fixtures/build/NegativeNumbers.json
index 8ea932dd..5828cb7c 100644
--- a/fixtures/build/NegativeNumbers.json
+++ b/fixtures/build/NegativeNumbers.json
@@ -193,7 +193,7 @@
"type": "function"
}
],
- "zvm": {
+ "qrvm": {
"bytecode": {
"object": "608060405234801561000f575f80fd5b5060405161058e38038061058e83398181016040528101906100319190610074565b805f819055505061009f565b5f80fd5b5f819050919050565b61005381610041565b811461005d575f80fd5b50565b5f8151905061006e8161004a565b92915050565b5f602082840312156100895761008861003d565b5b5f61009684828501610060565b91505092915050565b6104e2806100ac5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806309872ebc1461004e57806310e9b2b41461006c5780634a299b87146100885780636119780b146100a4575b5f80fd5b6100566100c0565b604051610063919061022d565b60405180910390f35b61008660048036038101906100819190610278565b6100c5565b005b6100a2600480360381019061009d9190610304565b61012c565b005b6100be60048036038101906100b99190610375565b6101aa565b005b5f5481565b7f5b53dc4e9e8fa2416d4e172bdad04be5a6d622643bc9ef45987b2caadd0d0c95816040516100f4919061022d565b60405180910390a1807f33e7dccd3899498f4408d6468e5dfad650f32574dba2ec4f13399a82e62166d560405160405180910390a250565b7f2e1fb99ee1b27b6491b2d46a54ac8daca82f2da6810e4b8eed4d634f78fa6948848484846040516101619493929190610425565b60405180910390a182847f0e29b573959c1b6ffd5e16886385ec1732e187cc5ac10e8faceb5e02a1c7b50b848460405161019c929190610463565b60405180910390a350505050565b7ffaa997e4b16dcde196bbb99868e16fa934a0b4c1f019e494d9fbffb5abc46fc282826040516101db929190610485565b60405180910390a180827f0204c97becd72594486cf753e30e8acfc9951ee663e404bc858e3d10b80da99b60405160405180910390a35050565b5f819050919050565b61022781610215565b82525050565b5f6020820190506102405f83018461021e565b92915050565b5f80fd5b5f80fd5b61025781610215565b8114610261575f80fd5b50565b5f813590506102728161024e565b92915050565b5f6020828403121561028d5761028c610246565b5b5f61029a84828501610264565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126102c4576102c36102a3565b5b8235905067ffffffffffffffff8111156102e1576102e06102a7565b5b6020830191508360018202830111156102fd576102fc6102ab565b5b9250929050565b5f805f806060858703121561031c5761031b610246565b5b5f61032987828801610264565b945050602061033a87828801610264565b935050604085013567ffffffffffffffff81111561035b5761035a61024a565b5b610367878288016102af565b925092505092959194509250565b5f806040838503121561038b5761038a610246565b5b5f61039885828601610264565b92505060206103a985828601610264565b9150509250929050565b5f819050919050565b6103c5816103b3565b82525050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61040483856103cb565b93506104118385846103db565b61041a836103e9565b840190509392505050565b5f6060820190506104385f8301876103bc565b610445602083018661021e565b81810360408301526104588184866103f9565b905095945050505050565b5f6020820190508181035f83015261047c8184866103f9565b90509392505050565b5f6040820190506104985f83018561021e565b6104a5602083018461021e565b939250505056fea26469706673582212208c35f0412a200d24bee1b19dc4aad276af243631f502b9df1e8f860ceee574536468797063430000020033"
}
diff --git a/fixtures/build/ZRC20Token.json b/fixtures/build/SQRCTF1Token.json
similarity index 98%
rename from fixtures/build/ZRC20Token.json
rename to fixtures/build/SQRCTF1Token.json
index daf43c71..a5f92503 100644
--- a/fixtures/build/ZRC20Token.json
+++ b/fixtures/build/SQRCTF1Token.json
@@ -29,7 +29,7 @@
"type": "uint256"
}
],
- "name": "ZRC20InsufficientAllowance",
+ "name": "SQRCTF1InsufficientAllowance",
"type": "error"
},
{
@@ -50,7 +50,7 @@
"type": "uint256"
}
],
- "name": "ZRC20InsufficientBalance",
+ "name": "SQRCTF1InsufficientBalance",
"type": "error"
},
{
@@ -61,7 +61,7 @@
"type": "address"
}
],
- "name": "ZRC20InvalidApprover",
+ "name": "SQRCTF1InvalidApprover",
"type": "error"
},
{
@@ -72,7 +72,7 @@
"type": "address"
}
],
- "name": "ZRC20InvalidReceiver",
+ "name": "SQRCTF1InvalidReceiver",
"type": "error"
},
{
@@ -83,7 +83,7 @@
"type": "address"
}
],
- "name": "ZRC20InvalidSender",
+ "name": "SQRCTF1InvalidSender",
"type": "error"
},
{
@@ -94,7 +94,7 @@
"type": "address"
}
],
- "name": "ZRC20InvalidSpender",
+ "name": "SQRCTF1InvalidSpender",
"type": "error"
},
{
@@ -320,7 +320,7 @@
"type": "function"
}
],
- "zvm": {
+ "qrvm": {
"bytecode": {
"object": "608060405234801562000010575f80fd5b5060405162001670380380620016708339818101604052810190620000369190620003cb565b6040518060400160405280600481526020017f476f6c64000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474c4400000000000000000000000000000000000000000000000000000000008152508160039081620000b3919062000656565b508060049081620000c5919062000656565b505050620000da3382620000e160201b60201c565b5062000866565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154575f6040517faf8383ac0000000000000000000000000000000000000000000000000000000081526004016200014b91906200077d565b60405180910390fd5b620001675f83836200016b60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001bf578060025f828254620001b29190620007c5565b9250508190555062000290565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200024b578381836040517f670e01c8000000000000000000000000000000000000000000000000000000008152600401620002429392919062000810565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002d9578060025f828254039250508190555062000323565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200038291906200084b565b60405180910390a3505050565b5f80fd5b5f819050919050565b620003a78162000393565b8114620003b2575f80fd5b50565b5f81519050620003c5816200039c565b92915050565b5f60208284031215620003e357620003e26200038f565b5b5f620003f284828501620003b5565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200047757607f821691505b6020821081036200048d576200048c62000432565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004b4565b620004fd8683620004b4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200053e62000538620005328462000393565b62000515565b62000393565b9050919050565b5f819050919050565b62000559836200051e565b62000571620005688262000545565b848454620004c0565b825550505050565b5f90565b6200058762000579565b620005948184846200054e565b505050565b5b81811015620005bb57620005af5f826200057d565b6001810190506200059a565b5050565b601f8211156200060a57620005d48162000493565b620005df84620004a5565b81016020851015620005ef578190505b62000607620005fe85620004a5565b83018262000599565b50505b505050565b5f82821c905092915050565b5f6200062c5f19846008026200060f565b1980831691505092915050565b5f6200064683836200061b565b9150826002028217905092915050565b6200066182620003fb565b67ffffffffffffffff8111156200067d576200067c62000405565b5b6200068982546200045f565b62000696828285620005bf565b5f60209050601f831160018114620006cc575f8415620006b7578287015190505b620006c3858262000639565b86555062000732565b601f198416620006dc8662000493565b5f5b828110156200070557848901518255600182019150602085019450602081019050620006de565b8683101562000725578489015162000721601f8916826200061b565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000765826200073a565b9050919050565b620007778162000759565b82525050565b5f602082019050620007925f8301846200076c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007d18262000393565b9150620007de8362000393565b9250828201905080821115620007f957620007f862000798565b5b92915050565b6200080a8162000393565b82525050565b5f606082019050620008255f8301866200076c565b620008346020830185620007ff565b620008436040830184620007ff565b949350505050565b5f602082019050620008605f830184620007ff565b92915050565b610dfc80620008745f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa9190610a75565b60405180910390f35b6100cd60048036038101906100c89190610b26565b61028d565b6040516100da9190610b7e565b60405180910390f35b6100eb6102af565b6040516100f89190610ba6565b60405180910390f35b61011b60048036038101906101169190610bbf565b6102b8565b6040516101289190610b7e565b60405180910390f35b6101396102e6565b6040516101469190610c2a565b60405180910390f35b61016960048036038101906101649190610c43565b6102ee565b6040516101769190610ba6565b60405180910390f35b610187610333565b6040516101949190610a75565b60405180910390f35b6101b760048036038101906101b29190610b26565b6103c3565b6040516101c49190610b7e565b60405180910390f35b6101e760048036038101906101e29190610c6e565b6103e5565b6040516101f49190610ba6565b60405180910390f35b60606003805461020c90610cd9565b80601f016020809104026020016040519081016040528092919081815260200182805461023890610cd9565b80156102835780601f1061025a57610100808354040283529160200191610283565b820191905f5260205f20905b81548152906001019060200180831161026657829003601f168201915b5050505050905090565b5f80610297610467565b90506102a481858561046e565b600191505092915050565b5f600254905090565b5f806102c2610467565b90506102cf858285610480565b6102da858585610513565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461034290610cd9565b80601f016020809104026020016040519081016040528092919081815260200182805461036e90610cd9565b80156103b95780601f10610390576101008083540402835291602001916103b9565b820191905f5260205f20905b81548152906001019060200180831161039c57829003601f168201915b5050505050905090565b5f806103cd610467565b90506103da818585610513565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61047b8383836001610603565b505050565b5f61048b84846103e5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561050d57818110156104fe578281836040517f80fde4800000000000000000000000000000000000000000000000000000000081526004016104f593929190610d18565b60405180910390fd5b61050c84848484035f610603565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610583575f6040517fc90f6e4800000000000000000000000000000000000000000000000000000000815260040161057a9190610d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105f3575f6040517faf8383ac0000000000000000000000000000000000000000000000000000000081526004016105ea9190610d4d565b60405180910390fd5b6105fe8383836107d2565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610673575f6040517f23b1dd6f00000000000000000000000000000000000000000000000000000000815260040161066a9190610d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106e3575f6040517f18c103dd0000000000000000000000000000000000000000000000000000000081526004016106da9190610d4d565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156107cc578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107c39190610ba6565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610822578060025f8282546108169190610d93565b925050819055506108f0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156108ab578381836040517f670e01c80000000000000000000000000000000000000000000000000000000081526004016108a293929190610d18565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610937578060025f8282540392505081905550610981565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109de9190610ba6565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a22578082015181840152602081019050610a07565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610a47826109eb565b610a5181856109f5565b9350610a61818560208601610a05565b610a6a81610a2d565b840191505092915050565b5f6020820190508181035f830152610a8d8184610a3d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ac282610a99565b9050919050565b610ad281610ab8565b8114610adc575f80fd5b50565b5f81359050610aed81610ac9565b92915050565b5f819050919050565b610b0581610af3565b8114610b0f575f80fd5b50565b5f81359050610b2081610afc565b92915050565b5f8060408385031215610b3c57610b3b610a95565b5b5f610b4985828601610adf565b9250506020610b5a85828601610b12565b9150509250929050565b5f8115159050919050565b610b7881610b64565b82525050565b5f602082019050610b915f830184610b6f565b92915050565b610ba081610af3565b82525050565b5f602082019050610bb95f830184610b97565b92915050565b5f805f60608486031215610bd657610bd5610a95565b5b5f610be386828701610adf565b9350506020610bf486828701610adf565b9250506040610c0586828701610b12565b9150509250925092565b5f60ff82169050919050565b610c2481610c0f565b82525050565b5f602082019050610c3d5f830184610c1b565b92915050565b5f60208284031215610c5857610c57610a95565b5b5f610c6584828501610adf565b91505092915050565b5f8060408385031215610c8457610c83610a95565b5b5f610c9185828601610adf565b9250506020610ca285828601610adf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610cf057607f821691505b602082108103610d0357610d02610cac565b5b50919050565b610d1281610ab8565b82525050565b5f606082019050610d2b5f830186610d09565b610d386020830185610b97565b610d456040830184610b97565b949350505050565b5f602082019050610d605f830184610d09565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d9d82610af3565b9150610da883610af3565b9250828201905080821115610dc057610dbf610d66565b5b9291505056fea26469706673582212208ffe1b35a8689c90242005ff81b18c501dbfb4d6196d3abc409b2f790d2ff9c36468797063430000020033"
}
diff --git a/fixtures/build/ZRC20Token.ts b/fixtures/build/SQRCTF1Token.ts
similarity index 99%
rename from fixtures/build/ZRC20Token.ts
rename to fixtures/build/SQRCTF1Token.ts
index 144b9bbd..adc5e5db 100644
--- a/fixtures/build/ZRC20Token.ts
+++ b/fixtures/build/SQRCTF1Token.ts
@@ -14,7 +14,7 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-export const ZRC20TokenAbi = [
+export const SQRCTF1TokenAbi = [
{
inputs: [{ internalType: 'uint256', name: 'initialSupply', type: 'uint256' }],
signature: '',
@@ -118,5 +118,5 @@ export const ZRC20TokenAbi = [
type: 'function',
},
] as const;
-export const ZRC20TokenBytecode =
+export const SQRCTF1TokenBytecode =
'0x608060405234801562000010575f80fd5b5060405162001670380380620016708339818101604052810190620000369190620003cb565b6040518060400160405280600481526020017f476f6c64000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474c4400000000000000000000000000000000000000000000000000000000008152508160039081620000b3919062000656565b508060049081620000c5919062000656565b505050620000da3382620000e160201b60201c565b5062000866565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000154575f6040517faf8383ac0000000000000000000000000000000000000000000000000000000081526004016200014b91906200077d565b60405180910390fd5b620001675f83836200016b60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620001bf578060025f828254620001b29190620007c5565b9250508190555062000290565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156200024b578381836040517f670e01c8000000000000000000000000000000000000000000000000000000008152600401620002429392919062000810565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002d9578060025f828254039250508190555062000323565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200038291906200084b565b60405180910390a3505050565b5f80fd5b5f819050919050565b620003a78162000393565b8114620003b2575f80fd5b50565b5f81519050620003c5816200039c565b92915050565b5f60208284031215620003e357620003e26200038f565b5b5f620003f284828501620003b5565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200047757607f821691505b6020821081036200048d576200048c62000432565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004b4565b620004fd8683620004b4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200053e62000538620005328462000393565b62000515565b62000393565b9050919050565b5f819050919050565b62000559836200051e565b62000571620005688262000545565b848454620004c0565b825550505050565b5f90565b6200058762000579565b620005948184846200054e565b505050565b5b81811015620005bb57620005af5f826200057d565b6001810190506200059a565b5050565b601f8211156200060a57620005d48162000493565b620005df84620004a5565b81016020851015620005ef578190505b62000607620005fe85620004a5565b83018262000599565b50505b505050565b5f82821c905092915050565b5f6200062c5f19846008026200060f565b1980831691505092915050565b5f6200064683836200061b565b9150826002028217905092915050565b6200066182620003fb565b67ffffffffffffffff8111156200067d576200067c62000405565b5b6200068982546200045f565b62000696828285620005bf565b5f60209050601f831160018114620006cc575f8415620006b7578287015190505b620006c3858262000639565b86555062000732565b601f198416620006dc8662000493565b5f5b828110156200070557848901518255600182019150602085019450602081019050620006de565b8683101562000725578489015162000721601f8916826200061b565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000765826200073a565b9050919050565b620007778162000759565b82525050565b5f602082019050620007925f8301846200076c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007d18262000393565b9150620007de8362000393565b9250828201905080821115620007f957620007f862000798565b5b92915050565b6200080a8162000393565b82525050565b5f606082019050620008255f8301866200076c565b620008346020830185620007ff565b620008436040830184620007ff565b949350505050565b5f602082019050620008605f830184620007ff565b92915050565b610dfc80620008745f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa9190610a75565b60405180910390f35b6100cd60048036038101906100c89190610b26565b61028d565b6040516100da9190610b7e565b60405180910390f35b6100eb6102af565b6040516100f89190610ba6565b60405180910390f35b61011b60048036038101906101169190610bbf565b6102b8565b6040516101289190610b7e565b60405180910390f35b6101396102e6565b6040516101469190610c2a565b60405180910390f35b61016960048036038101906101649190610c43565b6102ee565b6040516101769190610ba6565b60405180910390f35b610187610333565b6040516101949190610a75565b60405180910390f35b6101b760048036038101906101b29190610b26565b6103c3565b6040516101c49190610b7e565b60405180910390f35b6101e760048036038101906101e29190610c6e565b6103e5565b6040516101f49190610ba6565b60405180910390f35b60606003805461020c90610cd9565b80601f016020809104026020016040519081016040528092919081815260200182805461023890610cd9565b80156102835780601f1061025a57610100808354040283529160200191610283565b820191905f5260205f20905b81548152906001019060200180831161026657829003601f168201915b5050505050905090565b5f80610297610467565b90506102a481858561046e565b600191505092915050565b5f600254905090565b5f806102c2610467565b90506102cf858285610480565b6102da858585610513565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461034290610cd9565b80601f016020809104026020016040519081016040528092919081815260200182805461036e90610cd9565b80156103b95780601f10610390576101008083540402835291602001916103b9565b820191905f5260205f20905b81548152906001019060200180831161039c57829003601f168201915b5050505050905090565b5f806103cd610467565b90506103da818585610513565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61047b8383836001610603565b505050565b5f61048b84846103e5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81101561050d57818110156104fe578281836040517f80fde4800000000000000000000000000000000000000000000000000000000081526004016104f593929190610d18565b60405180910390fd5b61050c84848484035f610603565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610583575f6040517fc90f6e4800000000000000000000000000000000000000000000000000000000815260040161057a9190610d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105f3575f6040517faf8383ac0000000000000000000000000000000000000000000000000000000081526004016105ea9190610d4d565b60405180910390fd5b6105fe8383836107d2565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610673575f6040517f23b1dd6f00000000000000000000000000000000000000000000000000000000815260040161066a9190610d4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106e3575f6040517f18c103dd0000000000000000000000000000000000000000000000000000000081526004016106da9190610d4d565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156107cc578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107c39190610ba6565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610822578060025f8282546108169190610d93565b925050819055506108f0565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156108ab578381836040517f670e01c80000000000000000000000000000000000000000000000000000000081526004016108a293929190610d18565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610937578060025f8282540392505081905550610981565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109de9190610ba6565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610a22578082015181840152602081019050610a07565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610a47826109eb565b610a5181856109f5565b9350610a61818560208601610a05565b610a6a81610a2d565b840191505092915050565b5f6020820190508181035f830152610a8d8184610a3d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ac282610a99565b9050919050565b610ad281610ab8565b8114610adc575f80fd5b50565b5f81359050610aed81610ac9565b92915050565b5f819050919050565b610b0581610af3565b8114610b0f575f80fd5b50565b5f81359050610b2081610afc565b92915050565b5f8060408385031215610b3c57610b3b610a95565b5b5f610b4985828601610adf565b9250506020610b5a85828601610b12565b9150509250929050565b5f8115159050919050565b610b7881610b64565b82525050565b5f602082019050610b915f830184610b6f565b92915050565b610ba081610af3565b82525050565b5f602082019050610bb95f830184610b97565b92915050565b5f805f60608486031215610bd657610bd5610a95565b5b5f610be386828701610adf565b9350506020610bf486828701610adf565b9250506040610c0586828701610b12565b9150509250925092565b5f60ff82169050919050565b610c2481610c0f565b82525050565b5f602082019050610c3d5f830184610c1b565b92915050565b5f60208284031215610c5857610c57610a95565b5b5f610c6584828501610adf565b91505092915050565b5f8060408385031215610c8457610c83610a95565b5b5f610c9185828601610adf565b9250506020610ca285828601610adf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610cf057607f821691505b602082108103610d0357610d02610cac565b5b50919050565b610d1281610ab8565b82525050565b5f606082019050610d2b5f830186610d09565b610d386020830185610b97565b610d456040830184610b97565b949350505050565b5f602082019050610d605f830184610d09565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d9d82610af3565b9150610da883610af3565b9250828201905080821115610dc057610dbf610d66565b5b9291505056fea26469706673582212208ffe1b35a8689c90242005ff81b18c501dbfb4d6196d3abc409b2f790d2ff9c36468797063430000020033';
diff --git a/fixtures/build/ZRC721Token.json b/fixtures/build/SQRCTN1Token.json
similarity index 98%
rename from fixtures/build/ZRC721Token.json
rename to fixtures/build/SQRCTN1Token.json
index a2fe210d..5f896ff3 100644
--- a/fixtures/build/ZRC721Token.json
+++ b/fixtures/build/SQRCTN1Token.json
@@ -23,7 +23,7 @@
"type": "address"
}
],
- "name": "ZRC721IncorrectOwner",
+ "name": "SQRCTN1IncorrectOwner",
"type": "error"
},
{
@@ -39,7 +39,7 @@
"type": "uint256"
}
],
- "name": "ZRC721InsufficientApproval",
+ "name": "SQRCTN1InsufficientApproval",
"type": "error"
},
{
@@ -50,7 +50,7 @@
"type": "address"
}
],
- "name": "ZRC721InvalidApprover",
+ "name": "SQRCTN1InvalidApprover",
"type": "error"
},
{
@@ -61,7 +61,7 @@
"type": "address"
}
],
- "name": "ZRC721InvalidOperator",
+ "name": "SQRCTN1InvalidOperator",
"type": "error"
},
{
@@ -72,7 +72,7 @@
"type": "address"
}
],
- "name": "ZRC721InvalidOwner",
+ "name": "SQRCTN1InvalidOwner",
"type": "error"
},
{
@@ -83,7 +83,7 @@
"type": "address"
}
],
- "name": "ZRC721InvalidReceiver",
+ "name": "SQRCTN1InvalidReceiver",
"type": "error"
},
{
@@ -94,7 +94,7 @@
"type": "address"
}
],
- "name": "ZRC721InvalidSender",
+ "name": "SQRCTN1InvalidSender",
"type": "error"
},
{
@@ -105,7 +105,7 @@
"type": "uint256"
}
],
- "name": "ZRC721NonexistentToken",
+ "name": "SQRCTN1NonexistentToken",
"type": "error"
},
{
@@ -495,7 +495,7 @@
"type": "function"
}
],
- "zvm": {
+ "qrvm": {
"bytecode": {
"object": "608060405234801562000010575f80fd5b506040518060400160405280600881526020017f47616d654974656d0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f49544d0000000000000000000000000000000000000000000000000000000000815250815f90816200008d91906200030c565b5080600190816200009f91906200030c565b505050620003f0565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200012457607f821691505b6020821081036200013a5762000139620000df565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200019e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000161565b620001aa868362000161565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001f4620001ee620001e884620001c2565b620001cb565b620001c2565b9050919050565b5f819050919050565b6200020f83620001d4565b620002276200021e82620001fb565b8484546200016d565b825550505050565b5f90565b6200023d6200022f565b6200024a81848462000204565b505050565b5b818110156200027157620002655f8262000233565b60018101905062000250565b5050565b601f821115620002c0576200028a8162000140565b620002958462000152565b81016020851015620002a5578190505b620002bd620002b48562000152565b8301826200024f565b50505b505050565b5f82821c905092915050565b5f620002e25f1984600802620002c5565b1980831691505092915050565b5f620002fc8383620002d1565b9150826002028217905092915050565b6200031782620000a8565b67ffffffffffffffff811115620003335762000332620000b2565b5b6200033f82546200010c565b6200034c82828562000275565b5f60209050601f83116001811462000382575f84156200036d578287015190505b620003798582620002ef565b865550620003e8565b601f198416620003928662000140565b5f5b82811015620003bb5784890151825560018201915060208501945060208101905062000394565b86831015620003db5784890151620003d7601f891682620002d1565b8355505b6001600288020188555050505b505050505050565b61229d80620003fe5f395ff3fe608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063cf378343146102a4578063e985e9c5146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f80fd5b610106600480360381019061010191906117ca565b610304565b604051610113919061180f565b60405180910390f35b610124610364565b60405161013191906118b2565b60405180910390f35b610154600480360381019061014f9190611905565b6103f3565b604051610161919061196f565b60405180910390f35b610184600480360381019061017f91906119b2565b61040e565b005b6101a0600480360381019061019b91906119f0565b610424565b005b6101bc60048036038101906101b791906119f0565b610523565b005b6101d860048036038101906101d39190611905565b610542565b6040516101e5919061196f565b60405180910390f35b61020860048036038101906102039190611a40565b610553565b6040516102159190611a7a565b60405180910390f35b610226610609565b60405161023391906118b2565b60405180910390f35b61025660048036038101906102519190611abd565b610699565b005b610272600480360381019061026d9190611c27565b6106af565b005b61028e60048036038101906102899190611905565b6106d4565b60405161029b91906118b2565b60405180910390f35b6102be60048036038101906102b99190611d45565b6107df565b6040516102cb9190611a7a565b60405180910390f35b6102ee60048036038101906102e99190611d9f565b610815565b6040516102fb919061180f565b60405180910390f35b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061035d575061035c826108a3565b5b9050919050565b60605f805461037290611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461039e90611e0a565b80156103e95780601f106103c0576101008083540402835291602001916103e9565b820191905f5260205f20905b8154815290600101906020018083116103cc57829003601f168201915b5050505050905090565b5f6103fd82610984565b5061040782610a0a565b9050919050565b610420828261041b610a43565b610a4a565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610494575f6040517f0c0f2aa600000000000000000000000000000000000000000000000000000000815260040161048b919061196f565b60405180910390fd5b5f6104a783836104a2610a43565b610a5c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461051d578382826040517fed97935a00000000000000000000000000000000000000000000000000000000815260040161051493929190611e3a565b60405180910390fd5b50505050565b61053d83838360405180602001604052805f8152506106af565b505050565b5f61054c82610984565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105c4575f6040517fd5da55ca0000000000000000000000000000000000000000000000000000000081526004016105bb919061196f565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461061890611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461064490611e0a565b801561068f5780601f106106665761010080835404028352916020019161068f565b820191905f5260205f20905b81548152906001019060200180831161067257829003601f168201915b5050505050905090565b6106ab6106a4610a43565b8383610c67565b5050565b6106ba848484610424565b6106ce6106c5610a43565b85858585610dd0565b50505050565b60606106df82610984565b505f60065f8481526020019081526020015f2080546106fd90611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461072990611e0a565b80156107745780601f1061074b57610100808354040283529160200191610774565b820191905f5260205f20905b81548152906001019060200180831161075757829003601f168201915b505050505090505f610784610f7c565b90505f8151036107985781925050506107da565b5f825111156107cc5780826040516020016107b4929190611ea9565b604051602081830303815290604052925050506107da565b6107d584610f92565b925050505b919050565b5f806107eb6007610ff8565b90506107f78482611004565b61080181846110f7565b61080b6007611151565b8091505092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061096d57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061097d575061097c82611165565b5b9050919050565b5f8061098f836111ce565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a0157826040517f0f8ff0280000000000000000000000000000000000000000000000000000000081526004016109f89190611a7a565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610a578383836001611207565b505050565b5f80610a67846111ce565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610aa857610aa78184866113c6565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b3357610ae75f855f80611207565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610bb257600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cd757816040517f774067b3000000000000000000000000000000000000000000000000000000008152600401610cce919061196f565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610dc3919061180f565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f75578273ffffffffffffffffffffffffffffffffffffffff16636fd56ae9868685856040518563ffffffff1660e01b8152600401610e2e9493929190611f1e565b6020604051808303815f875af1925050508015610e6957506040513d601f19601f82011682018060405250810190610e669190611f7c565b60015b610eea573d805f8114610e97576040519150601f19603f3d011682016040523d82523d5f602084013e610e9c565b606091505b505f815103610ee257836040517f0c0f2aa6000000000000000000000000000000000000000000000000000000008152600401610ed9919061196f565b60405180910390fd5b805181602001fd5b636fd56ae960e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f7357836040517f0c0f2aa6000000000000000000000000000000000000000000000000000000008152600401610f6a919061196f565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b6060610f9d82610984565b505f610fa7610f7c565b90505f815111610fc55760405180602001604052805f815250610ff0565b80610fcf84611489565b604051602001610fe0929190611ea9565b6040516020818303038152906040525b915050919050565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611074575f6040517f0c0f2aa600000000000000000000000000000000000000000000000000000000815260040161106b919061196f565b60405180910390fd5b5f61108083835f610a5c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110f2575f6040517f959b8cd50000000000000000000000000000000000000000000000000000000081526004016110e9919061196f565b60405180910390fd5b505050565b8060065f8481526020019081526020015f2090816111159190612144565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111459190611a7a565b60405180910390a15050565b6001815f015f828254019250508190555050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061123f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611371575f61124e84610984565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112b857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112cb57506112c98184610815565b155b1561130d57826040517f828c51c6000000000000000000000000000000000000000000000000000000008152600401611304919061196f565b60405180910390fd5b811561136f57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6113d1838383611553565b611484575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144557806040517f0f8ff02800000000000000000000000000000000000000000000000000000000815260040161143c9190611a7a565b60405180910390fd5b81816040517f2715868700000000000000000000000000000000000000000000000000000000815260040161147b929190612213565b60405180910390fd5b505050565b60605f600161149784611613565b0190505f8167ffffffffffffffff8111156114b5576114b4611b03565b5b6040519080825280601f01601f1916602001820160405280156114e75781602001600182028036833780820191505090505b5090505f82602001820190505b600115611548578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161153d5761153c61223a565b5b0494505f85036114f4575b819350505050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561160a57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115cb57506115ca8484610815565b5b8061160957508273ffffffffffffffffffffffffffffffffffffffff166115f183610a0a565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061166f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816116655761166461223a565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106116ac576d04ee2d6d415b85acef810000000083816116a2576116a161223a565b5b0492506020810190505b662386f26fc1000083106116db57662386f26fc1000083816116d1576116d061223a565b5b0492506010810190505b6305f5e1008310611704576305f5e10083816116fa576116f961223a565b5b0492506008810190505b612710831061172957612710838161171f5761171e61223a565b5b0492506004810190505b6064831061174c57606483816117425761174161223a565b5b0492506002810190505b600a831061175b576001810190505b80915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117a981611775565b81146117b3575f80fd5b50565b5f813590506117c4816117a0565b92915050565b5f602082840312156117df576117de61176d565b5b5f6117ec848285016117b6565b91505092915050565b5f8115159050919050565b611809816117f5565b82525050565b5f6020820190506118225f830184611800565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561185f578082015181840152602081019050611844565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61188482611828565b61188e8185611832565b935061189e818560208601611842565b6118a78161186a565b840191505092915050565b5f6020820190508181035f8301526118ca818461187a565b905092915050565b5f819050919050565b6118e4816118d2565b81146118ee575f80fd5b50565b5f813590506118ff816118db565b92915050565b5f6020828403121561191a5761191961176d565b5b5f611927848285016118f1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61195982611930565b9050919050565b6119698161194f565b82525050565b5f6020820190506119825f830184611960565b92915050565b6119918161194f565b811461199b575f80fd5b50565b5f813590506119ac81611988565b92915050565b5f80604083850312156119c8576119c761176d565b5b5f6119d58582860161199e565b92505060206119e6858286016118f1565b9150509250929050565b5f805f60608486031215611a0757611a0661176d565b5b5f611a148682870161199e565b9350506020611a258682870161199e565b9250506040611a36868287016118f1565b9150509250925092565b5f60208284031215611a5557611a5461176d565b5b5f611a628482850161199e565b91505092915050565b611a74816118d2565b82525050565b5f602082019050611a8d5f830184611a6b565b92915050565b611a9c816117f5565b8114611aa6575f80fd5b50565b5f81359050611ab781611a93565b92915050565b5f8060408385031215611ad357611ad261176d565b5b5f611ae08582860161199e565b9250506020611af185828601611aa9565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b398261186a565b810181811067ffffffffffffffff82111715611b5857611b57611b03565b5b80604052505050565b5f611b6a611764565b9050611b768282611b30565b919050565b5f67ffffffffffffffff821115611b9557611b94611b03565b5b611b9e8261186a565b9050602081019050919050565b828183375f83830152505050565b5f611bcb611bc684611b7b565b611b61565b905082815260208101848484011115611be757611be6611aff565b5b611bf2848285611bab565b509392505050565b5f82601f830112611c0e57611c0d611afb565b5b8135611c1e848260208601611bb9565b91505092915050565b5f805f8060808587031215611c3f57611c3e61176d565b5b5f611c4c8782880161199e565b9450506020611c5d8782880161199e565b9350506040611c6e878288016118f1565b925050606085013567ffffffffffffffff811115611c8f57611c8e611771565b5b611c9b87828801611bfa565b91505092959194509250565b5f67ffffffffffffffff821115611cc157611cc0611b03565b5b611cca8261186a565b9050602081019050919050565b5f611ce9611ce484611ca7565b611b61565b905082815260208101848484011115611d0557611d04611aff565b5b611d10848285611bab565b509392505050565b5f82601f830112611d2c57611d2b611afb565b5b8135611d3c848260208601611cd7565b91505092915050565b5f8060408385031215611d5b57611d5a61176d565b5b5f611d688582860161199e565b925050602083013567ffffffffffffffff811115611d8957611d88611771565b5b611d9585828601611d18565b9150509250929050565b5f8060408385031215611db557611db461176d565b5b5f611dc28582860161199e565b9250506020611dd38582860161199e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611e2157607f821691505b602082108103611e3457611e33611ddd565b5b50919050565b5f606082019050611e4d5f830186611960565b611e5a6020830185611a6b565b611e676040830184611960565b949350505050565b5f81905092915050565b5f611e8382611828565b611e8d8185611e6f565b9350611e9d818560208601611842565b80840191505092915050565b5f611eb48285611e79565b9150611ec08284611e79565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ef082611ecc565b611efa8185611ed6565b9350611f0a818560208601611842565b611f138161186a565b840191505092915050565b5f608082019050611f315f830187611960565b611f3e6020830186611960565b611f4b6040830185611a6b565b8181036060830152611f5d8184611ee6565b905095945050505050565b5f81519050611f76816117a0565b92915050565b5f60208284031215611f9157611f9061176d565b5b5f611f9e84828501611f68565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026120037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611fc8565b61200d8683611fc8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61204861204361203e846118d2565b612025565b6118d2565b9050919050565b5f819050919050565b6120618361202e565b61207561206d8261204f565b848454611fd4565b825550505050565b5f90565b61208961207d565b612094818484612058565b505050565b5b818110156120b7576120ac5f82612081565b60018101905061209a565b5050565b601f8211156120fc576120cd81611fa7565b6120d684611fb9565b810160208510156120e5578190505b6120f96120f185611fb9565b830182612099565b50505b505050565b5f82821c905092915050565b5f61211c5f1984600802612101565b1980831691505092915050565b5f612134838361210d565b9150826002028217905092915050565b61214d82611828565b67ffffffffffffffff81111561216657612165611b03565b5b6121708254611e0a565b61217b8282856120bb565b5f60209050601f8311600181146121ac575f841561219a578287015190505b6121a48582612129565b86555061220b565b601f1984166121ba86611fa7565b5f5b828110156121e1578489015182556001820191506020850194506020810190506121bc565b868310156121fe57848901516121fa601f89168261210d565b8355505b6001600288020188555050505b505050505050565b5f6040820190506122265f830185611960565b6122336020830184611a6b565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffdfea264697066735822122031bb73dd9da8ee8fc83a5e39b070affb3518cab44253c4df7982d596b265d1db6468797063430000020033"
}
diff --git a/fixtures/build/ZRC721Token.ts b/fixtures/build/SQRCTN1Token.ts
similarity index 98%
rename from fixtures/build/ZRC721Token.ts
rename to fixtures/build/SQRCTN1Token.ts
index 47ecf48c..5e18d606 100644
--- a/fixtures/build/ZRC721Token.ts
+++ b/fixtures/build/SQRCTN1Token.ts
@@ -14,7 +14,7 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-export const ZRC721TokenAbi = [
+export const SQRCTN1TokenAbi = [
{ inputs: [], stateMutability: 'nonpayable', type: 'constructor' },
{
inputs: [
@@ -22,7 +22,7 @@ export const ZRC721TokenAbi = [
{ internalType: 'uint256', name: 'tokenId', type: 'uint256' },
{ internalType: 'address', name: 'owner', type: 'address' },
],
- name: 'ZRC721IncorrectOwner',
+ name: 'SQRCTN1IncorrectOwner',
type: 'error',
},
{
@@ -30,37 +30,37 @@ export const ZRC721TokenAbi = [
{ internalType: 'address', name: 'operator', type: 'address' },
{ internalType: 'uint256', name: 'tokenId', type: 'uint256' },
],
- name: 'ZRC721InsufficientApproval',
+ name: 'SQRCTN1InsufficientApproval',
type: 'error',
},
{
inputs: [{ internalType: 'address', name: 'approver', type: 'address' }],
- name: 'ZRC721InvalidApprover',
+ name: 'SQRCTN1InvalidApprover',
type: 'error',
},
{
inputs: [{ internalType: 'address', name: 'operator', type: 'address' }],
- name: 'ZRC721InvalidOperator',
+ name: 'SQRCTN1InvalidOperator',
type: 'error',
},
{
inputs: [{ internalType: 'address', name: 'owner', type: 'address' }],
- name: 'ZRC721InvalidOwner',
+ name: 'SQRCTN1InvalidOwner',
type: 'error',
},
{
inputs: [{ internalType: 'address', name: 'receiver', type: 'address' }],
- name: 'ZRC721InvalidReceiver',
+ name: 'SQRCTN1InvalidReceiver',
type: 'error',
},
{
inputs: [{ internalType: 'address', name: 'sender', type: 'address' }],
- name: 'ZRC721InvalidSender',
+ name: 'SQRCTN1InvalidSender',
type: 'error',
},
{
inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],
- name: 'ZRC721NonexistentToken',
+ name: 'SQRCTN1NonexistentToken',
type: 'error',
},
{
@@ -232,5 +232,5 @@ export const ZRC721TokenAbi = [
type: 'function',
},
] as const;
-export const ZRC721TokenBytecode =
+export const SQRCTN1TokenBytecode =
'0x608060405234801562000010575f80fd5b506040518060400160405280600881526020017f47616d654974656d0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f49544d0000000000000000000000000000000000000000000000000000000000815250815f90816200008d91906200030c565b5080600190816200009f91906200030c565b505050620003f0565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200012457607f821691505b6020821081036200013a5762000139620000df565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200019e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000161565b620001aa868362000161565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620001f4620001ee620001e884620001c2565b620001cb565b620001c2565b9050919050565b5f819050919050565b6200020f83620001d4565b620002276200021e82620001fb565b8484546200016d565b825550505050565b5f90565b6200023d6200022f565b6200024a81848462000204565b505050565b5b818110156200027157620002655f8262000233565b60018101905062000250565b5050565b601f821115620002c0576200028a8162000140565b620002958462000152565b81016020851015620002a5578190505b620002bd620002b48562000152565b8301826200024f565b50505b505050565b5f82821c905092915050565b5f620002e25f1984600802620002c5565b1980831691505092915050565b5f620002fc8383620002d1565b9150826002028217905092915050565b6200031782620000a8565b67ffffffffffffffff811115620003335762000332620000b2565b5b6200033f82546200010c565b6200034c82828562000275565b5f60209050601f83116001811462000382575f84156200036d578287015190505b620003798582620002ef565b865550620003e8565b601f198416620003928662000140565b5f5b82811015620003bb5784890151825560018201915060208501945060208101905062000394565b86831015620003db5784890151620003d7601f891682620002d1565b8355505b6001600288020188555050505b505050505050565b61229d80620003fe5f395ff3fe608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806370a082311161008a578063b88d4fde11610064578063b88d4fde14610258578063c87b56dd14610274578063cf378343146102a4578063e985e9c5146102d4576100e8565b806370a08231146101ee57806395d89b411461021e578063a22cb4651461023c576100e8565b8063095ea7b3116100c6578063095ea7b31461016a57806323b872dd1461018657806342842e0e146101a25780636352211e146101be576100e8565b806301ffc9a7146100ec57806306fdde031461011c578063081812fc1461013a575b5f80fd5b610106600480360381019061010191906117ca565b610304565b604051610113919061180f565b60405180910390f35b610124610364565b60405161013191906118b2565b60405180910390f35b610154600480360381019061014f9190611905565b6103f3565b604051610161919061196f565b60405180910390f35b610184600480360381019061017f91906119b2565b61040e565b005b6101a0600480360381019061019b91906119f0565b610424565b005b6101bc60048036038101906101b791906119f0565b610523565b005b6101d860048036038101906101d39190611905565b610542565b6040516101e5919061196f565b60405180910390f35b61020860048036038101906102039190611a40565b610553565b6040516102159190611a7a565b60405180910390f35b610226610609565b60405161023391906118b2565b60405180910390f35b61025660048036038101906102519190611abd565b610699565b005b610272600480360381019061026d9190611c27565b6106af565b005b61028e60048036038101906102899190611905565b6106d4565b60405161029b91906118b2565b60405180910390f35b6102be60048036038101906102b99190611d45565b6107df565b6040516102cb9190611a7a565b60405180910390f35b6102ee60048036038101906102e99190611d9f565b610815565b6040516102fb919061180f565b60405180910390f35b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061035d575061035c826108a3565b5b9050919050565b60605f805461037290611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461039e90611e0a565b80156103e95780601f106103c0576101008083540402835291602001916103e9565b820191905f5260205f20905b8154815290600101906020018083116103cc57829003601f168201915b5050505050905090565b5f6103fd82610984565b5061040782610a0a565b9050919050565b610420828261041b610a43565b610a4a565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610494575f6040517f0c0f2aa600000000000000000000000000000000000000000000000000000000815260040161048b919061196f565b60405180910390fd5b5f6104a783836104a2610a43565b610a5c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461051d578382826040517fed97935a00000000000000000000000000000000000000000000000000000000815260040161051493929190611e3a565b60405180910390fd5b50505050565b61053d83838360405180602001604052805f8152506106af565b505050565b5f61054c82610984565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105c4575f6040517fd5da55ca0000000000000000000000000000000000000000000000000000000081526004016105bb919061196f565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606001805461061890611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461064490611e0a565b801561068f5780601f106106665761010080835404028352916020019161068f565b820191905f5260205f20905b81548152906001019060200180831161067257829003601f168201915b5050505050905090565b6106ab6106a4610a43565b8383610c67565b5050565b6106ba848484610424565b6106ce6106c5610a43565b85858585610dd0565b50505050565b60606106df82610984565b505f60065f8481526020019081526020015f2080546106fd90611e0a565b80601f016020809104026020016040519081016040528092919081815260200182805461072990611e0a565b80156107745780601f1061074b57610100808354040283529160200191610774565b820191905f5260205f20905b81548152906001019060200180831161075757829003601f168201915b505050505090505f610784610f7c565b90505f8151036107985781925050506107da565b5f825111156107cc5780826040516020016107b4929190611ea9565b604051602081830303815290604052925050506107da565b6107d584610f92565b925050505b919050565b5f806107eb6007610ff8565b90506107f78482611004565b61080181846110f7565b61080b6007611151565b8091505092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061096d57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061097d575061097c82611165565b5b9050919050565b5f8061098f836111ce565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a0157826040517f0f8ff0280000000000000000000000000000000000000000000000000000000081526004016109f89190611a7a565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610a578383836001611207565b505050565b5f80610a67846111ce565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610aa857610aa78184866113c6565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b3357610ae75f855f80611207565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610bb257600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cd757816040517f774067b3000000000000000000000000000000000000000000000000000000008152600401610cce919061196f565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610dc3919061180f565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115610f75578273ffffffffffffffffffffffffffffffffffffffff16636fd56ae9868685856040518563ffffffff1660e01b8152600401610e2e9493929190611f1e565b6020604051808303815f875af1925050508015610e6957506040513d601f19601f82011682018060405250810190610e669190611f7c565b60015b610eea573d805f8114610e97576040519150601f19603f3d011682016040523d82523d5f602084013e610e9c565b606091505b505f815103610ee257836040517f0c0f2aa6000000000000000000000000000000000000000000000000000000008152600401610ed9919061196f565b60405180910390fd5b805181602001fd5b636fd56ae960e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610f7357836040517f0c0f2aa6000000000000000000000000000000000000000000000000000000008152600401610f6a919061196f565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b6060610f9d82610984565b505f610fa7610f7c565b90505f815111610fc55760405180602001604052805f815250610ff0565b80610fcf84611489565b604051602001610fe0929190611ea9565b6040516020818303038152906040525b915050919050565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611074575f6040517f0c0f2aa600000000000000000000000000000000000000000000000000000000815260040161106b919061196f565b60405180910390fd5b5f61108083835f610a5c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110f2575f6040517f959b8cd50000000000000000000000000000000000000000000000000000000081526004016110e9919061196f565b60405180910390fd5b505050565b8060065f8481526020019081526020015f2090816111159190612144565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111459190611a7a565b60405180910390a15050565b6001815f015f828254019250508190555050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061123f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611371575f61124e84610984565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112b857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156112cb57506112c98184610815565b155b1561130d57826040517f828c51c6000000000000000000000000000000000000000000000000000000008152600401611304919061196f565b60405180910390fd5b811561136f57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6113d1838383611553565b611484575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144557806040517f0f8ff02800000000000000000000000000000000000000000000000000000000815260040161143c9190611a7a565b60405180910390fd5b81816040517f2715868700000000000000000000000000000000000000000000000000000000815260040161147b929190612213565b60405180910390fd5b505050565b60605f600161149784611613565b0190505f8167ffffffffffffffff8111156114b5576114b4611b03565b5b6040519080825280601f01601f1916602001820160405280156114e75781602001600182028036833780820191505090505b5090505f82602001820190505b600115611548578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161153d5761153c61223a565b5b0494505f85036114f4575b819350505050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561160a57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806115cb57506115ca8484610815565b5b8061160957508273ffffffffffffffffffffffffffffffffffffffff166115f183610a0a565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061166f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816116655761166461223a565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106116ac576d04ee2d6d415b85acef810000000083816116a2576116a161223a565b5b0492506020810190505b662386f26fc1000083106116db57662386f26fc1000083816116d1576116d061223a565b5b0492506010810190505b6305f5e1008310611704576305f5e10083816116fa576116f961223a565b5b0492506008810190505b612710831061172957612710838161171f5761171e61223a565b5b0492506004810190505b6064831061174c57606483816117425761174161223a565b5b0492506002810190505b600a831061175b576001810190505b80915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117a981611775565b81146117b3575f80fd5b50565b5f813590506117c4816117a0565b92915050565b5f602082840312156117df576117de61176d565b5b5f6117ec848285016117b6565b91505092915050565b5f8115159050919050565b611809816117f5565b82525050565b5f6020820190506118225f830184611800565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561185f578082015181840152602081019050611844565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61188482611828565b61188e8185611832565b935061189e818560208601611842565b6118a78161186a565b840191505092915050565b5f6020820190508181035f8301526118ca818461187a565b905092915050565b5f819050919050565b6118e4816118d2565b81146118ee575f80fd5b50565b5f813590506118ff816118db565b92915050565b5f6020828403121561191a5761191961176d565b5b5f611927848285016118f1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61195982611930565b9050919050565b6119698161194f565b82525050565b5f6020820190506119825f830184611960565b92915050565b6119918161194f565b811461199b575f80fd5b50565b5f813590506119ac81611988565b92915050565b5f80604083850312156119c8576119c761176d565b5b5f6119d58582860161199e565b92505060206119e6858286016118f1565b9150509250929050565b5f805f60608486031215611a0757611a0661176d565b5b5f611a148682870161199e565b9350506020611a258682870161199e565b9250506040611a36868287016118f1565b9150509250925092565b5f60208284031215611a5557611a5461176d565b5b5f611a628482850161199e565b91505092915050565b611a74816118d2565b82525050565b5f602082019050611a8d5f830184611a6b565b92915050565b611a9c816117f5565b8114611aa6575f80fd5b50565b5f81359050611ab781611a93565b92915050565b5f8060408385031215611ad357611ad261176d565b5b5f611ae08582860161199e565b9250506020611af185828601611aa9565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b398261186a565b810181811067ffffffffffffffff82111715611b5857611b57611b03565b5b80604052505050565b5f611b6a611764565b9050611b768282611b30565b919050565b5f67ffffffffffffffff821115611b9557611b94611b03565b5b611b9e8261186a565b9050602081019050919050565b828183375f83830152505050565b5f611bcb611bc684611b7b565b611b61565b905082815260208101848484011115611be757611be6611aff565b5b611bf2848285611bab565b509392505050565b5f82601f830112611c0e57611c0d611afb565b5b8135611c1e848260208601611bb9565b91505092915050565b5f805f8060808587031215611c3f57611c3e61176d565b5b5f611c4c8782880161199e565b9450506020611c5d8782880161199e565b9350506040611c6e878288016118f1565b925050606085013567ffffffffffffffff811115611c8f57611c8e611771565b5b611c9b87828801611bfa565b91505092959194509250565b5f67ffffffffffffffff821115611cc157611cc0611b03565b5b611cca8261186a565b9050602081019050919050565b5f611ce9611ce484611ca7565b611b61565b905082815260208101848484011115611d0557611d04611aff565b5b611d10848285611bab565b509392505050565b5f82601f830112611d2c57611d2b611afb565b5b8135611d3c848260208601611cd7565b91505092915050565b5f8060408385031215611d5b57611d5a61176d565b5b5f611d688582860161199e565b925050602083013567ffffffffffffffff811115611d8957611d88611771565b5b611d9585828601611d18565b9150509250929050565b5f8060408385031215611db557611db461176d565b5b5f611dc28582860161199e565b9250506020611dd38582860161199e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611e2157607f821691505b602082108103611e3457611e33611ddd565b5b50919050565b5f606082019050611e4d5f830186611960565b611e5a6020830185611a6b565b611e676040830184611960565b949350505050565b5f81905092915050565b5f611e8382611828565b611e8d8185611e6f565b9350611e9d818560208601611842565b80840191505092915050565b5f611eb48285611e79565b9150611ec08284611e79565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ef082611ecc565b611efa8185611ed6565b9350611f0a818560208601611842565b611f138161186a565b840191505092915050565b5f608082019050611f315f830187611960565b611f3e6020830186611960565b611f4b6040830185611a6b565b8181036060830152611f5d8184611ee6565b905095945050505050565b5f81519050611f76816117a0565b92915050565b5f60208284031215611f9157611f9061176d565b5b5f611f9e84828501611f68565b91505092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026120037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611fc8565b61200d8683611fc8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61204861204361203e846118d2565b612025565b6118d2565b9050919050565b5f819050919050565b6120618361202e565b61207561206d8261204f565b848454611fd4565b825550505050565b5f90565b61208961207d565b612094818484612058565b505050565b5b818110156120b7576120ac5f82612081565b60018101905061209a565b5050565b601f8211156120fc576120cd81611fa7565b6120d684611fb9565b810160208510156120e5578190505b6120f96120f185611fb9565b830182612099565b50505b505050565b5f82821c905092915050565b5f61211c5f1984600802612101565b1980831691505092915050565b5f612134838361210d565b9150826002028217905092915050565b61214d82611828565b67ffffffffffffffff81111561216657612165611b03565b5b6121708254611e0a565b61217b8282856120bb565b5f60209050601f8311600181146121ac575f841561219a578287015190505b6121a48582612129565b86555061220b565b601f1984166121ba86611fa7565b5f5b828110156121e1578489015182556001820191506020850194506020810190506121bc565b868310156121fe57848901516121fa601f89168261210d565b8355505b6001600288020188555050505b505050505050565b5f6040820190506122265f830185611960565b6122336020830184611a6b565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffdfea264697066735822122031bb73dd9da8ee8fc83a5e39b070affb3518cab44253c4df7982d596b265d1db6468797063430000020033';
diff --git a/fixtures/contracts/SQRCTF1Token.hyp b/fixtures/contracts/SQRCTF1Token.hyp
new file mode 100644
index 00000000..c14d9ff4
--- /dev/null
+++ b/fixtures/contracts/SQRCTF1Token.hyp
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: GNU
+pragma hyperion >=0.0;
+
+import '@theqrl/qrl-contracts/token/SQRCTF1/SQRCTF1.hyp';
+
+contract SQRCTF1Token is SQRCTF1 {
+ constructor(uint256 initialSupply) SQRCTF1('Gold', 'GLD') {
+ _mint(msg.sender, initialSupply);
+ }
+}
diff --git a/fixtures/contracts/ZRC721Token.hyp b/fixtures/contracts/SQRCTN1Token.hyp
similarity index 63%
rename from fixtures/contracts/ZRC721Token.hyp
rename to fixtures/contracts/SQRCTN1Token.hyp
index 0d2fd641..18ae79c3 100644
--- a/fixtures/contracts/ZRC721Token.hyp
+++ b/fixtures/contracts/SQRCTN1Token.hyp
@@ -1,14 +1,14 @@
// SPDX-License-Identifier: GNU
pragma hyperion >=0.0;
-import '@theqrl/zond-contracts/token/ZRC721/extensions/ZRC721URIStorage.hyp';
-import '@theqrl/zond-contracts/utils/Counters.hyp';
+import '@theqrl/qrl-contracts/token/SQRCTN1/extensions/SQRCTN1URIStorage.hyp';
+import '@theqrl/qrl-contracts/utils/Counters.hyp';
-contract ZRC721Token is ZRC721URIStorage {
+contract SQRCTN1Token is SQRCTN1URIStorage {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
- constructor() ZRC721('GameItem', 'ITM') {}
+ constructor() SQRCTN1('GameItem', 'ITM') {}
function awardItem(address player, string memory tokenURI) public returns (uint256) {
uint256 newItemId = _tokenIds.current();
diff --git a/fixtures/contracts/ZRC20Token.hyp b/fixtures/contracts/ZRC20Token.hyp
deleted file mode 100644
index b2bf722b..00000000
--- a/fixtures/contracts/ZRC20Token.hyp
+++ /dev/null
@@ -1,10 +0,0 @@
-// SPDX-License-Identifier: GNU
-pragma hyperion >=0.0;
-
-import '@theqrl/zond-contracts/token/ZRC20/ZRC20.hyp';
-
-contract ZRC20Token is ZRC20 {
- constructor(uint256 initialSupply) ZRC20('Gold', 'GLD') {
- _mint(msg.sender, initialSupply);
- }
-}
diff --git a/fixtures/utils.ts b/fixtures/utils.ts
index 3cd50b1f..6df943d8 100644
--- a/fixtures/utils.ts
+++ b/fixtures/utils.ts
@@ -69,5 +69,5 @@ export const toUpperCaseHex = (str: string) => {
};
export const toUpperCaseAddress = (str: string) => {
- return `Z${str.slice(1).toUpperCase()}`;
+ return `Q${str.slice(1).toUpperCase()}`;
};
diff --git a/package.json b/package.json
index 52fef06c..6350800e 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,11 @@
{
"name": "web3.js",
"private": true,
- "description": "Zond API wrappers and utilities",
+ "description": "QRL API wrappers and utilities",
"author": "The QRL Contributors",
"license": "LGPL-3.0",
"keywords": [
- "zond",
+ "qrl",
"web3",
"web3js",
"web3.js",
@@ -81,7 +81,7 @@
"@cypress/webpack-preprocessor": "^5.12.0",
"@droppedcode/typedoc-plugin-relative-includes": "^1.0.2",
"@theqrl/hypc": "^0.0.2",
- "@theqrl/zond-contracts": "file:../zond-contracts",
+ "@theqrl/qrl-contracts": "file:../qrl-contracts",
"@types/node": "^18.11.9",
"@types/webpack": "^5.28.0",
"assert": "^2.0.0",
diff --git a/packages/abi/LICENSE.md b/packages/abi/LICENSE.md
index 10c588e4..4fc29d25 100644
--- a/packages/abi/LICENSE.md
+++ b/packages/abi/LICENSE.md
@@ -26,9 +26,9 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-## Zond
+## QRL
-Zond project derivations and modifications are also MIT licensed:
+QRL project derivations and modifications are also MIT licensed:
MIT License
diff --git a/packages/abi/README.md b/packages/abi/README.md
index 418a8f7a..47c1668e 100644
--- a/packages/abi/README.md
+++ b/packages/abi/README.md
@@ -1,9 +1,9 @@
-# Zond ABI Coder
+# QRL ABI Coder
This sub-module is a fork of the [ethers project](https://github.com/ethers-io/ethers.js).
It is responsible for encoding and decoding the Application Binary Interface (ABI)
-used by most Zond smart contracts to interoperate between other smart contracts and clients.
+used by most QRL smart contracts to interoperate between other smart contracts and clients.
More information, can be inferred from the [ethers project documentation](https://docs.ethers.io/v5/api/utils/abi/).
diff --git a/packages/abi/package.json b/packages/abi/package.json
index 91925d54..e8c8322a 100644
--- a/packages/abi/package.json
+++ b/packages/abi/package.json
@@ -1,7 +1,7 @@
{
"name": "@theqrl/abi",
"version": "0.3.3",
- "description": "Utilities and Classes for parsing, formatting and managing Zond ABIs.",
+ "description": "Utilities and Classes for parsing, formatting and managing QRL ABIs.",
"license": "MIT",
"main": "./lib/commonjs/index.js",
"module": "./lib/esm/index.js",
diff --git a/packages/abi/src/coders/address.ts b/packages/abi/src/coders/address.ts
index ab6afe4d..8f808735 100644
--- a/packages/abi/src/coders/address.ts
+++ b/packages/abi/src/coders/address.ts
@@ -27,7 +27,7 @@ export class AddressCoder extends Coder {
}
defaultValue(): string {
- return 'Z0000000000000000000000000000000000000000';
+ return 'Q0000000000000000000000000000000000000000';
}
encode(writer: Writer, value: string): number {
diff --git a/packages/abi/src/interface.ts b/packages/abi/src/interface.ts
index 892f7851..2e585d72 100644
--- a/packages/abi/src/interface.ts
+++ b/packages/abi/src/interface.ts
@@ -458,7 +458,7 @@ export class Interface {
);
}
- // Decode the result from a function call (e.g. from zond_call)
+ // Decode the result from a function call (e.g. from qrl_call)
decodeFunctionResult(functionFragment: FunctionFragment | string, data: BytesLike): Result {
if (typeof functionFragment === 'string') {
functionFragment = this.getFunction(functionFragment);
@@ -517,7 +517,7 @@ export class Interface {
});
}
- // Encode the result for a function call (e.g. for zond_call)
+ // Encode the result for a function call (e.g. for qrl_call)
encodeFunctionResult(
functionFragment: FunctionFragment | string,
values?: ReadonlyArray,
@@ -529,7 +529,7 @@ export class Interface {
return hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));
}
- // Create the filter for the event with search criteria (e.g. for zond_filterLog)
+ // Create the filter for the event with search criteria (e.g. for qrl_filterLog)
encodeFilterTopics(
eventFragment: EventFragment | string,
values: ReadonlyArray,
diff --git a/packages/web3-core/package.json b/packages/web3-core/package.json
index 10ad2788..ea541556 100644
--- a/packages/web3-core/package.json
+++ b/packages/web3-core/package.json
@@ -51,7 +51,7 @@
"@theqrl/web3-types": "^0.3.3",
"@theqrl/web3-utils": "^0.3.3",
"@theqrl/web3-validator": "^0.3.3",
- "@theqrl/web3-zond-iban": "^0.3.3"
+ "@theqrl/web3-qrl-iban": "^0.3.3"
},
"optionalDependencies": {
"@theqrl/web3-providers-ipc": "^0.3.3"
diff --git a/packages/web3-core/src/web3_config.ts b/packages/web3-core/src/web3_config.ts
index c44628d3..8aba6f98 100644
--- a/packages/web3-core/src/web3_config.ts
+++ b/packages/web3-core/src/web3_config.ts
@@ -108,8 +108,8 @@ export abstract class Web3Config
/**
* The `handleRevert` options property returns the revert reason string if enabled for the following methods:
- * - web3.zond.sendTransaction()
- * - web3.zond.call()
+ * - web3.qrl.sendTransaction()
+ * - web3.qrl.call()
* - myContract.methods.myMethod().call()
* - myContract.methods.myMethod().send()
* Default is `false`.
@@ -148,8 +148,8 @@ export abstract class Web3Config
/**
* This default address is used as the default `from` property, if no `from` property is specified in for the following methods:
- * - web3.zond.sendTransaction()
- * - web3.zond.call()
+ * - web3.qrl.sendTransaction()
+ * - web3.qrl.call()
* - myContract.methods.myMethod().call()
* - myContract.methods.myMethod().send()
*/
@@ -166,11 +166,11 @@ export abstract class Web3Config
/**
* The default block is used for certain methods. You can override it by passing in the defaultBlock as last parameter. The default value is `"latest"`.
- * - web3.zond.getBalance()
- * - web3.zond.getCode()
- * - web3.zond.getTransactionCount()
- * - web3.zond.getStorageAt()
- * - web3.zond.call()
+ * - web3.qrl.getBalance()
+ * - web3.qrl.getCode()
+ * - web3.qrl.getTransactionCount()
+ * - web3.qrl.getStorageAt()
+ * - web3.qrl.call()
* - myContract.methods.myMethod().call()
*/
public get defaultBlock() {
@@ -193,7 +193,7 @@ export abstract class Web3Config
}
/**
- * The time used to wait for Zond Node to return the sent transaction result.
+ * The time used to wait for QRL Node to return the sent transaction result.
* Note: If the RPC call stuck at the Node and therefor timed-out, the transaction may still be pending or even mined by the Network. We recommend checking the pending transactions in such a case.
* Default is `750` seconds (12.5 minutes).
*/
diff --git a/packages/web3-core/src/web3_context.ts b/packages/web3-core/src/web3_context.ts
index 99b83f00..65674d4a 100644
--- a/packages/web3-core/src/web3_context.ts
+++ b/packages/web3-core/src/web3_context.ts
@@ -22,7 +22,7 @@ import {
Web3AccountProvider,
SupportedProviders,
HexString,
- ZondExecutionAPI,
+ QRLExecutionAPI,
Web3BaseProvider,
Transaction,
} from '@theqrl/web3-types';
@@ -341,7 +341,7 @@ export class Web3Context<
/**
* Will return the givenProvider if available.
*
- * When using web3.js in a Zond compatible browser, it will set with the current native provider by that browser. Will return the given provider by the (browser) environment, otherwise `undefined`.
+ * When using web3.js in a QRL compatible browser, it will set with the current native provider by that browser. Will return the given provider by the (browser) environment, otherwise `undefined`.
*/
// eslint-disable-next-line class-methods-use-this
public get givenProvider() {
@@ -406,8 +406,8 @@ export type TransactionBuilder = <
}) => Promise;
/**
- * Extend this class when creating a plugin that either doesn't require {@link ZondExecutionAPI},
- * or interacts with a RPC node that doesn't fully implement {@link ZondExecutionAPI}.
+ * Extend this class when creating a plugin that either doesn't require {@link QRLExecutionAPI},
+ * or interacts with a RPC node that doesn't fully implement {@link QRLExecutionAPI}.
*
* To add type support for RPC methods to the {@link Web3RequestManager},
* define a {@link Web3APISpec} and pass it as a generic to Web3PluginBase like so:
@@ -429,10 +429,10 @@ export abstract class Web3PluginBase<
}
/**
- * Extend this class when creating a plugin that makes use of {@link ZondExecutionAPI},
- * or depends on other Web3 packages (such as `web3-zond-contract`) that depend on {@link ZondExecutionAPI}.
+ * Extend this class when creating a plugin that makes use of {@link QRLExecutionAPI},
+ * or depends on other Web3 packages (such as `web3-qrl-contract`) that depend on {@link QRLExecutionAPI}.
*
- * To add type support for RPC methods to the {@link Web3RequestManager} (in addition to {@link ZondExecutionAPI}),
+ * To add type support for RPC methods to the {@link Web3RequestManager} (in addition to {@link QRLExecutionAPI}),
* define a {@link Web3APISpec} and pass it as a generic to Web3PluginBase like so:
*
* @example
@@ -445,6 +445,6 @@ export abstract class Web3PluginBase<
* class CustomPlugin extends Web3PluginBase {...}
* ```
*/
-export abstract class Web3ZondPluginBase extends Web3PluginBase<
- API & ZondExecutionAPI
+export abstract class Web3QRLPluginBase extends Web3PluginBase<
+ API & QRLExecutionAPI
> {}
diff --git a/packages/web3-core/src/web3_request_manager.ts b/packages/web3-core/src/web3_request_manager.ts
index 7850b836..e64371ed 100644
--- a/packages/web3-core/src/web3_request_manager.ts
+++ b/packages/web3-core/src/web3_request_manager.ts
@@ -26,7 +26,7 @@ import {
import HttpProvider from '@theqrl/web3-providers-http';
import WSProvider from '@theqrl/web3-providers-ws';
import {
- ZondExecutionAPI,
+ QRLExecutionAPI,
JsonRpcBatchRequest,
JsonRpcBatchResponse,
JsonRpcPayload,
@@ -67,7 +67,7 @@ const availableProviders: {
};
export class Web3RequestManager<
- API extends Web3APISpec = ZondExecutionAPI,
+ API extends Web3APISpec = QRLExecutionAPI,
> extends Web3EventEmitter<{
[key in Web3RequestManagerEvent]: SupportedProviders | undefined;
}> {
diff --git a/packages/web3-core/src/web3_subscriptions.ts b/packages/web3-core/src/web3_subscriptions.ts
index f8b9a1cb..c668cac1 100644
--- a/packages/web3-core/src/web3_subscriptions.ts
+++ b/packages/web3-core/src/web3_subscriptions.ts
@@ -20,7 +20,7 @@ import {
BlockOutput,
DEFAULT_RETURN_FORMAT,
DataFormat,
- ZondExecutionAPI,
+ QRLExecutionAPI,
JsonRpcSubscriptionResult,
JsonRpcSubscriptionResultOld,
JsonRpcNotification,
@@ -47,7 +47,7 @@ export abstract class Web3Subscription<
EventMap extends Web3EventMap,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
ArgsType = any,
- API extends Web3APISpec = ZondExecutionAPI,
+ API extends Web3APISpec = QRLExecutionAPI,
// The following generic type is just to define the type `CombinedEventMap` and use it inside the class
// it combines the user passed `EventMap` with the `CommonSubscriptionEvents`
// However, this type definition could be refactored depending on the closure of
@@ -117,7 +117,7 @@ export abstract class Web3Subscription<
public async sendSubscriptionRequest(): Promise {
this._id = await this._subscriptionManager.requestManager.send({
- method: 'zond_subscribe',
+ method: 'qrl_subscribe',
params: this._buildSubscriptionParams(),
});
@@ -148,8 +148,8 @@ export abstract class Web3Subscription<
public async sendUnsubscribeRequest() {
await this._subscriptionManager.requestManager.send({
- method: 'zond_unsubscribe',
- params: [this.id] as Web3APIParams,
+ method: 'qrl_unsubscribe',
+ params: [this.id] as Web3APIParams,
});
this._id = undefined;
}
@@ -168,7 +168,7 @@ export abstract class Web3Subscription<
}
// eslint-disable-next-line class-methods-use-this
- protected _buildSubscriptionParams(): Web3APIParams {
+ protected _buildSubscriptionParams(): Web3APIParams {
// This should be overridden in the subclass
throw new Error('Implement in the child class');
}
diff --git a/packages/web3-core/test/unit/fixtures/example_subscription.ts b/packages/web3-core/test/unit/fixtures/example_subscription.ts
index c9f61937..deb62c01 100644
--- a/packages/web3-core/test/unit/fixtures/example_subscription.ts
+++ b/packages/web3-core/test/unit/fixtures/example_subscription.ts
@@ -20,7 +20,7 @@ import { Web3Subscription } from '../../../src';
export class ExampleSubscription extends Web3Subscription<
{ data: string },
{ param1: string },
- { zond_subscribe: (newHeads: string) => void }
+ { qrl_subscribe: (newHeads: string) => void }
> {
// eslint-disable-next-line class-methods-use-this
protected _buildSubscriptionParams() {
diff --git a/packages/web3-core/test/unit/web3_extend.test.ts b/packages/web3-core/test/unit/web3_extend.test.ts
index 62384d50..4c369d95 100644
--- a/packages/web3-core/test/unit/web3_extend.test.ts
+++ b/packages/web3-core/test/unit/web3_extend.test.ts
@@ -40,16 +40,16 @@ describe('Web3Context extend tests', () => {
methods: [
{
name: 'getL2Balance',
- call: 'zond_getBalance',
+ call: 'qrl_getBalance',
},
],
});
- await web3.L2Module.getL2Balance('Z5b43746580AAF00A69019fA59D9ed7d9c85dDd70', 'latest');
+ await web3.L2Module.getL2Balance('Q5b43746580AAF00A69019fA59D9ed7d9c85dDd70', 'latest');
expect(requestManagerSendSpy).toHaveBeenCalledWith({
- method: 'zond_getBalance',
- params: ['Z5b43746580AAF00A69019fA59D9ed7d9c85dDd70', 'latest'],
+ method: 'qrl_getBalance',
+ params: ['Q5b43746580AAF00A69019fA59D9ed7d9c85dDd70', 'latest'],
});
});
@@ -63,16 +63,16 @@ describe('Web3Context extend tests', () => {
methods: [
{
name: 'getL0Balance',
- call: 'zond_getBalance',
+ call: 'qrl_getBalance',
},
],
});
- await web3.getL0Balance('Z5b43746580AAF00A69019fA59D9ed7d9c85dDd70', 'latest');
+ await web3.getL0Balance('Q5b43746580AAF00A69019fA59D9ed7d9c85dDd70', 'latest');
expect(requestManagerSendSpy).toHaveBeenCalledWith({
- method: 'zond_getBalance',
- params: ['Z5b43746580AAF00A69019fA59D9ed7d9c85dDd70', 'latest'],
+ method: 'qrl_getBalance',
+ params: ['Q5b43746580AAF00A69019fA59D9ed7d9c85dDd70', 'latest'],
});
});
});
diff --git a/packages/web3-core/test/unit/web3_subscription.test.ts b/packages/web3-core/test/unit/web3_subscription.test.ts
index d1b6e94f..46f71107 100644
--- a/packages/web3-core/test/unit/web3_subscription.test.ts
+++ b/packages/web3-core/test/unit/web3_subscription.test.ts
@@ -61,7 +61,7 @@ describe('Web3Subscription', () => {
expect(requestManager.send).toHaveBeenCalledTimes(1);
expect(requestManager.send).toHaveBeenCalledWith({
- method: 'zond_subscribe',
+ method: 'qrl_subscribe',
params: ['newHeads'],
});
});
@@ -95,7 +95,7 @@ describe('Web3Subscription', () => {
expect(requestManager.send).toHaveBeenCalledTimes(1);
expect(requestManager.send).toHaveBeenCalledWith({
- method: 'zond_unsubscribe',
+ method: 'qrl_unsubscribe',
params: ['sub-id'],
});
});
diff --git a/packages/web3-errors/src/error_codes.ts b/packages/web3-errors/src/error_codes.ts
index 420a7b07..344c7909 100644
--- a/packages/web3-errors/src/error_codes.ts
+++ b/packages/web3-errors/src/error_codes.ts
@@ -129,10 +129,10 @@ export const JSONRPC_ERR_UNSUPPORTED_METHOD = 4200;
export const JSONRPC_ERR_DISCONNECTED = 4900;
export const JSONRPC_ERR_CHAIN_DISCONNECTED = 4901;
-// ZNS error codes
-export const ERR_ZNS_CHECK_INTERFACE_SUPPORT = 901;
-export const ERR_ZNS_UNSUPPORTED_NETWORK = 902;
-export const ERR_ZNS_NETWORK_NOT_SYNCED = 903;
+// QRNS error codes
+export const ERR_QRNS_CHECK_INTERFACE_SUPPORT = 901;
+export const ERR_QRNS_UNSUPPORTED_NETWORK = 902;
+export const ERR_QRNS_NETWORK_NOT_SYNCED = 903;
// Utils error codes
export const ERR_INVALID_STRING = 1001;
diff --git a/packages/web3-errors/src/errors/zns_errors.ts b/packages/web3-errors/src/errors/qrns_errors.ts
similarity index 62%
rename from packages/web3-errors/src/errors/zns_errors.ts
rename to packages/web3-errors/src/errors/qrns_errors.ts
index 377bd440..9bc8da8f 100644
--- a/packages/web3-errors/src/errors/zns_errors.ts
+++ b/packages/web3-errors/src/errors/qrns_errors.ts
@@ -18,28 +18,28 @@ along with web3.js. If not, see .
/* eslint-disable max-classes-per-file */
import {
- ERR_ZNS_CHECK_INTERFACE_SUPPORT,
- ERR_ZNS_NETWORK_NOT_SYNCED,
- ERR_ZNS_UNSUPPORTED_NETWORK,
+ ERR_QRNS_CHECK_INTERFACE_SUPPORT,
+ ERR_QRNS_NETWORK_NOT_SYNCED,
+ ERR_QRNS_UNSUPPORTED_NETWORK,
} from '../error_codes.js';
import { BaseWeb3Error } from '../web3_error_base.js';
-export class ZNSCheckInterfaceSupportError extends BaseWeb3Error {
- public code = ERR_ZNS_CHECK_INTERFACE_SUPPORT;
+export class QRNSCheckInterfaceSupportError extends BaseWeb3Error {
+ public code = ERR_QRNS_CHECK_INTERFACE_SUPPORT;
public constructor(errorDetails: string) {
- super(`ZNS resolver check interface support error. "${errorDetails}"`);
+ super(`QRNS resolver check interface support error. "${errorDetails}"`);
}
}
-export class ZNSUnsupportedNetworkError extends BaseWeb3Error {
- public code = ERR_ZNS_UNSUPPORTED_NETWORK;
+export class QRNSUnsupportedNetworkError extends BaseWeb3Error {
+ public code = ERR_QRNS_UNSUPPORTED_NETWORK;
public constructor(networkType: string) {
- super(`ZNS is not supported on network ${networkType}`);
+ super(`QRNS is not supported on network ${networkType}`);
}
}
-export class ZNSNetworkNotSyncedError extends BaseWeb3Error {
- public code = ERR_ZNS_NETWORK_NOT_SYNCED;
+export class QRNSNetworkNotSyncedError extends BaseWeb3Error {
+ public code = ERR_QRNS_NETWORK_NOT_SYNCED;
public constructor() {
super(`Network not synced`);
}
diff --git a/packages/web3-errors/src/errors/transaction_errors.ts b/packages/web3-errors/src/errors/transaction_errors.ts
index bdb14a8d..bc54cbd0 100644
--- a/packages/web3-errors/src/errors/transaction_errors.ts
+++ b/packages/web3-errors/src/errors/transaction_errors.ts
@@ -101,7 +101,7 @@ export class TransactionRevertInstructionError<
public data?: string,
) {
super(
- `Transaction has been reverted by the ZVM${
+ `Transaction has been reverted by the QRVM${
receipt === undefined ? '' : `:\n ${BaseWeb3Error.convertToString(receipt)}`
}`,
);
@@ -177,7 +177,7 @@ export class TransactionRevertedWithoutReasonError<
> extends TransactionError {
public constructor(receipt?: ReceiptType) {
super(
- `Transaction has been reverted by the ZVM${
+ `Transaction has been reverted by the QRVM${
receipt === undefined ? '' : `:\n ${BaseWeb3Error.convertToString(receipt)}`
}`,
receipt,
@@ -263,7 +263,7 @@ export class ChainIdMismatchError extends InvalidValueError {
public constructor(value: { txChainId: unknown; customChainId: unknown }) {
super(
JSON.stringify(value),
- // https://github.com/theqrl/web3.js/blob/8783f4d64e424456bdc53b34ef1142d0a7cee4d7/packages/web3-zond-accounts/src/index.js#L176
+ // https://github.com/theqrl/web3.js/blob/8783f4d64e424456bdc53b34ef1142d0a7cee4d7/packages/web3-qrl-accounts/src/index.js#L176
'Chain Id doesnt match in tx.chainId tx.common.customChain.chainId',
);
}
@@ -412,7 +412,7 @@ export class TransactionSendTimeoutError extends BaseWeb3Error {
public constructor(value: { numberOfSeconds: number; transactionHash?: Bytes }) {
super(
- `The connected Zond Node did not respond within ${
+ `The connected QRL Node did not respond within ${
value.numberOfSeconds
} seconds, please make sure your transaction was properly sent and you are connected to a healthy Node. Be aware that transaction might still be pending or mined!\n\tTransaction Hash: ${
value.transactionHash ? value.transactionHash.toString() : 'not available'
diff --git a/packages/web3-errors/src/errors/utils_errors.ts b/packages/web3-errors/src/errors/utils_errors.ts
index feba1ae9..13fd4c29 100644
--- a/packages/web3-errors/src/errors/utils_errors.ts
+++ b/packages/web3-errors/src/errors/utils_errors.ts
@@ -55,7 +55,7 @@ export class InvalidAddressError extends InvalidValueError {
public code = ERR_INVALID_ADDRESS;
public constructor(value: unknown) {
- super(value, 'invalid zond address');
+ super(value, 'invalid qrl address');
}
}
diff --git a/packages/web3-errors/src/index.ts b/packages/web3-errors/src/index.ts
index c77fc3fb..870ee295 100644
--- a/packages/web3-errors/src/index.ts
+++ b/packages/web3-errors/src/index.ts
@@ -20,7 +20,7 @@ export * from './web3_error_base.js';
export * from './errors/account_errors.js';
export * from './errors/connection_errors.js';
export * from './errors/contract_errors.js';
-export * from './errors/zns_errors.js';
+export * from './errors/qrns_errors.js';
export * from './errors/generic_errors.js';
export * from './errors/provider_errors.js';
export * from './errors/signature_errors.js';
diff --git a/packages/web3-errors/test/unit/__snapshots__/errors.test.ts.snap b/packages/web3-errors/test/unit/__snapshots__/errors.test.ts.snap
index bb172482..b9b2199a 100644
--- a/packages/web3-errors/test/unit/__snapshots__/errors.test.ts.snap
+++ b/packages/web3-errors/test/unit/__snapshots__/errors.test.ts.snap
@@ -365,7 +365,7 @@ Object {
"code": 402,
"data": undefined,
"innerError": undefined,
- "message": "Transaction has been reverted by the ZVM:
+ "message": "Transaction has been reverted by the QRVM:
{\\"attr1\\":\\"attr1\\"}",
"name": "TransactionRevertInstructionError",
"reason": "message",
@@ -386,7 +386,7 @@ Object {
"customErrorName": "customErrorName",
"data": "data",
"innerError": undefined,
- "message": "Transaction has been reverted by the ZVM",
+ "message": "Transaction has been reverted by the QRVM",
"name": "TransactionRevertWithCustomError",
"reason": "reason",
"receipt": Object {
@@ -400,7 +400,7 @@ exports[`errors TransactionRevertedWithoutReasonError should have valid json str
Object {
"code": 405,
"innerError": undefined,
- "message": "Transaction has been reverted by the ZVM:
+ "message": "Transaction has been reverted by the QRVM:
{\\"attr1\\":\\"attr1\\"}",
"name": "TransactionRevertedWithoutReasonError",
"receipt": Object {
diff --git a/packages/web3-errors/test/unit/errors.test.ts b/packages/web3-errors/test/unit/errors.test.ts
index 0d2c84ba..37ebacf7 100644
--- a/packages/web3-errors/test/unit/errors.test.ts
+++ b/packages/web3-errors/test/unit/errors.test.ts
@@ -19,7 +19,7 @@ import { JsonRpcError } from '@theqrl/web3-types';
import * as accountErrors from '../../src/errors/account_errors';
import * as connectionErrors from '../../src/errors/connection_errors';
import * as contractErrors from '../../src/errors/contract_errors';
-import * as znsErrors from '../../src/errors/zns_errors';
+import * as qrnsErrors from '../../src/errors/qrns_errors';
import * as genericErrors from '../../src/errors/generic_errors';
import * as providerErrors from '../../src/errors/provider_errors';
import * as signatureErrors from '../../src/errors/signature_errors';
@@ -44,7 +44,7 @@ describe('errors', () => {
...accountErrors,
...connectionErrors,
...contractErrors,
- ...znsErrors,
+ ...qrnsErrors,
...genericErrors,
...providerErrors,
...signatureErrors,
diff --git a/packages/web3-net/README.md b/packages/web3-net/README.md
index 6ccdd0da..f3c4e644 100644
--- a/packages/web3-net/README.md
+++ b/packages/web3-net/README.md
@@ -8,7 +8,7 @@
This is a sub-package of [@theqrl/web3.js](https://github.com/theqrl/web3.js).
-`@theqrl/web3-net` package allows to interact with a Zond node’s network properties.
+`@theqrl/web3-net` package allows to interact with a QRL node’s network properties.
## Installation
diff --git a/packages/web3-net/package.json b/packages/web3-net/package.json
index b4b4d72e..96fb49fa 100644
--- a/packages/web3-net/package.json
+++ b/packages/web3-net/package.json
@@ -4,7 +4,7 @@
"publishConfig": {
"access": "public"
},
- "description": "Web3 module to interact with the Zond nodes networking properties.",
+ "description": "Web3 module to interact with the QRL nodes networking properties.",
"main": "./lib/commonjs/index.js",
"module": "./lib/esm/index.js",
"exports": {
diff --git a/packages/web3-net/src/index.ts b/packages/web3-net/src/index.ts
index e80405d9..03705383 100644
--- a/packages/web3-net/src/index.ts
+++ b/packages/web3-net/src/index.ts
@@ -16,7 +16,7 @@ along with web3.js. If not, see .
*/
/**
- * The web3-net package allows you to interact with a Zond node’s network properties.
+ * The web3-net package allows you to interact with a QRL node’s network properties.
*
* ```ts
* import Net from '@theqrl/web3-net';
@@ -26,18 +26,18 @@ along with web3.js. If not, see .
* import Web3 from '@theqrl/web3';
* const web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8546');
*
- * // -> web3.zond.net
+ * // -> web3.qrl.net
*
* // get the ID of the network
- * await web3.zond.net.getId();
+ * await web3.qrl.net.getId();
* > 5777n
*
* // get the peer count
- * await web3.zond.net.getPeerCount();
+ * await web3.qrl.net.getPeerCount();
* > 0n
*
* // Check if the node is listening for peers
- * await web3.zond.net.isListening();
+ * await web3.qrl.net.isListening();
* > true
* ```
*/
diff --git a/packages/web3-net/test/unit/web3_net_methods.test.ts b/packages/web3-net/test/unit/web3_net_methods.test.ts
index e18f7481..8ba2ee7f 100644
--- a/packages/web3-net/test/unit/web3_net_methods.test.ts
+++ b/packages/web3-net/test/unit/web3_net_methods.test.ts
@@ -21,7 +21,7 @@ import { getDataFormat } from '../fixtures/web3_net_methods';
jest.mock('../../src/rpc_method_wrappers');
-describe('web3_zond_methods', () => {
+describe('web3_qrl_methods', () => {
let web3Net: Net;
beforeAll(() => {
diff --git a/packages/web3-providers-http/src/index.ts b/packages/web3-providers-http/src/index.ts
index c05f374d..04e65a44 100644
--- a/packages/web3-providers-http/src/index.ts
+++ b/packages/web3-providers-http/src/index.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
import fetch from 'cross-fetch';
import {
- ZondExecutionAPI,
+ QRLExecutionAPI,
JsonRpcResponseWithResult,
Web3APIMethod,
Web3APIPayload,
@@ -32,7 +32,7 @@ import { HttpProviderOptions } from './types.js';
export { HttpProviderOptions } from './types.js';
export default class HttpProvider<
- API extends Web3APISpec = ZondExecutionAPI,
+ API extends Web3APISpec = QRLExecutionAPI,
> extends Web3BaseProvider {
private readonly clientUrl: string;
private readonly httpProviderOptions: HttpProviderOptions | undefined;
diff --git a/packages/web3-providers-http/test/integration/request.test.ts b/packages/web3-providers-http/test/integration/request.test.ts
index b703a434..e3ccaa35 100644
--- a/packages/web3-providers-http/test/integration/request.test.ts
+++ b/packages/web3-providers-http/test/integration/request.test.ts
@@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { ZondExecutionAPI, Web3APIPayload, JsonRpcResponseWithResult } from '@theqrl/web3-types';
+import { QRLExecutionAPI, Web3APIPayload, JsonRpcResponseWithResult } from '@theqrl/web3-types';
import HttpProvider from '../../src/index';
import {
getSystemTestProviderUrl,
@@ -26,7 +26,7 @@ import {
describeIf(isHttp)('HttpProvider - implemented methods', () => {
let httpProvider: HttpProvider;
- let jsonRpcPayload: Web3APIPayload;
+ let jsonRpcPayload: Web3APIPayload;
beforeAll(async () => {
httpProvider = new HttpProvider(getSystemTestProviderUrl());
@@ -34,9 +34,9 @@ describeIf(isHttp)('HttpProvider - implemented methods', () => {
jsonRpcPayload = {
jsonrpc: '2.0',
id: 42,
- method: 'zond_getBalance',
+ method: 'qrl_getBalance',
params: [tempAcc.address, 'latest'],
- } as Web3APIPayload;
+ } as Web3APIPayload;
});
describe('httpProvider.request', () => {
diff --git a/packages/web3-providers-http/test/unit/implemented_methods.test.ts b/packages/web3-providers-http/test/unit/implemented_methods.test.ts
index 63b0945a..55852676 100644
--- a/packages/web3-providers-http/test/unit/implemented_methods.test.ts
+++ b/packages/web3-providers-http/test/unit/implemented_methods.test.ts
@@ -21,7 +21,7 @@ import fetchMock from 'jest-fetch-mock';
jest.setMock('cross-fetch', fetchMock);
/* eslint-disable-next-line import/first */
-import { Web3APIPayload, ZondExecutionAPI } from '@theqrl/web3-types';
+import { Web3APIPayload, QRLExecutionAPI } from '@theqrl/web3-types';
/* eslint-disable-next-line import/first */
import { ResponseError } from '@theqrl/web3-errors';
/* eslint-disable-next-line import/first */
@@ -33,9 +33,9 @@ describe('HttpProvider - implemented methods', () => {
const jsonRpcPayload = {
jsonrpc: '2.0',
id: 42,
- method: 'zond_getBalance',
- params: ['Z407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest'],
- } as Web3APIPayload;
+ method: 'qrl_getBalance',
+ params: ['Q407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest'],
+ } as Web3APIPayload;
let httpProvider: HttpProvider;
diff --git a/packages/web3-providers-ipc/src/index.ts b/packages/web3-providers-ipc/src/index.ts
index 00141a1a..04896957 100644
--- a/packages/web3-providers-ipc/src/index.ts
+++ b/packages/web3-providers-ipc/src/index.ts
@@ -19,7 +19,7 @@ import { Socket, SocketConstructorOpts } from 'net';
import { ConnectionNotOpenError, InvalidClientError } from '@theqrl/web3-errors';
import { ReconnectOptions, SocketProvider, toUtf8 } from '@theqrl/web3-utils';
import {
- ZondExecutionAPI,
+ QRLExecutionAPI,
Web3APIMethod,
Web3APIPayload,
Web3APISpec,
@@ -59,7 +59,7 @@ import { existsSync } from 'fs';
* );
* ```
*/
-export default class IpcProvider extends SocketProvider<
+export default class IpcProvider extends SocketProvider<
Uint8Array | string,
CloseEvent,
Error,
diff --git a/packages/web3-providers-ipc/test/unit/check_implementation.test.ts b/packages/web3-providers-ipc/test/unit/check_implementation.test.ts
index f2efe75b..05cfeb5a 100644
--- a/packages/web3-providers-ipc/test/unit/check_implementation.test.ts
+++ b/packages/web3-providers-ipc/test/unit/check_implementation.test.ts
@@ -109,8 +109,8 @@ describe('IPCProvider', () => {
ipc.request({
jsonrpc: '2.0',
id: 42,
- method: 'zond_getBalance',
- params: ['Z407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest'],
+ method: 'qrl_getBalance',
+ params: ['Q407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest'],
}),
).rejects.toThrow('Connection not open');
});
diff --git a/packages/web3-providers-ws/src/index.ts b/packages/web3-providers-ws/src/index.ts
index 2deea77e..1db822a2 100644
--- a/packages/web3-providers-ws/src/index.ts
+++ b/packages/web3-providers-ws/src/index.ts
@@ -18,7 +18,7 @@ along with web3.js. If not, see .
import { ClientRequestArgs } from 'http';
import WebSocket, { ClientOptions, CloseEvent } from 'isomorphic-ws';
import {
- ZondExecutionAPI,
+ QRLExecutionAPI,
Web3APIMethod,
Web3APIPayload,
Web3APISpec,
@@ -67,7 +67,7 @@ export { ClientOptions } from 'isomorphic-ws';
* ```
*/
export default class WebSocketProvider<
- API extends Web3APISpec = ZondExecutionAPI,
+ API extends Web3APISpec = QRLExecutionAPI,
> extends SocketProvider {
protected readonly _socketOptions?: ClientOptions | ClientRequestArgs;
diff --git a/packages/web3-providers-ws/test/integration/web_socket_provider_integration.test.ts b/packages/web3-providers-ws/test/integration/web_socket_provider_integration.test.ts
index 8c265b16..c4b1878a 100644
--- a/packages/web3-providers-ws/test/integration/web_socket_provider_integration.test.ts
+++ b/packages/web3-providers-ws/test/integration/web_socket_provider_integration.test.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
import { Web3WSProviderError } from '@theqrl/web3-errors';
import {
- ZondExecutionAPI,
+ QRLExecutionAPI,
JsonRpcId,
JsonRpcNotification,
JsonRpcResponse,
@@ -43,7 +43,7 @@ describeIf(isWs)('WebSocketProvider - implemented methods', () => {
let clientWsUrl: string;
let tempAccount: string;
let webSocketProvider: WebSocketProvider;
- let jsonRpcPayload: Web3APIPayload;
+ let jsonRpcPayload: Web3APIPayload;
// helper function
beforeAll(async () => {
@@ -54,9 +54,9 @@ describeIf(isWs)('WebSocketProvider - implemented methods', () => {
jsonRpcPayload = {
jsonrpc: '2.0',
id: 42,
- method: 'zond_getBalance',
+ method: 'qrl_getBalance',
params: [tempAccount, 'latest'],
- } as Web3APIPayload;
+ } as Web3APIPayload;
webSocketProvider = new WebSocketProvider(
clientWsUrl,
{},
@@ -220,13 +220,13 @@ describeIf(isWs)('WebSocketProvider - implemented methods', () => {
});
describe('send multiple Requests on same connection with valid payload and receive response tests', () => {
// eslint-disable-next-line jest/expect-expect
- let jsonRpcPayload2: Web3APIPayload;
+ let jsonRpcPayload2: Web3APIPayload;
beforeAll(() => {
jsonRpcPayload2 = {
jsonrpc: '2.0',
id: 43,
- method: 'zond_mining',
- } as Web3APIPayload;
+ method: 'qrl_mining',
+ } as Web3APIPayload;
});
it('should send multiple requests', async () => {
diff --git a/packages/web3-providers-ws/test/unit/check_implementation.test.ts b/packages/web3-providers-ws/test/unit/check_implementation.test.ts
index bf96bc1a..62546c52 100644
--- a/packages/web3-providers-ws/test/unit/check_implementation.test.ts
+++ b/packages/web3-providers-ws/test/unit/check_implementation.test.ts
@@ -95,8 +95,8 @@ describe('WebSocketProvider', () => {
ws.request({
jsonrpc: '2.0',
id: 42,
- method: 'zond_getBalance',
- params: ['Z407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest'],
+ method: 'qrl_getBalance',
+ params: ['Q407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest'],
}),
).rejects.toThrow('Connection not open');
});
diff --git a/packages/web3-providers-ws/test/unit/web_socket_provider.test.ts b/packages/web3-providers-ws/test/unit/web_socket_provider.test.ts
index 529bc81e..b2f847cb 100644
--- a/packages/web3-providers-ws/test/unit/web_socket_provider.test.ts
+++ b/packages/web3-providers-ws/test/unit/web_socket_provider.test.ts
@@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
import WebSocket from 'isomorphic-ws';
-import { ZondExecutionAPI, Web3APIPayload } from '@theqrl/web3-types';
+import { QRLExecutionAPI, Web3APIPayload } from '@theqrl/web3-types';
import WebSocketProvider from '../../src/index';
import {
invalidConnectionStrings,
@@ -27,7 +27,7 @@ jest.mock('isomorphic-ws');
describe('WebSocketProvider', () => {
let wsProvider: WebSocketProvider;
- let jsonRpcPayload: Web3APIPayload;
+ let jsonRpcPayload: Web3APIPayload;
let jsonRpcResponse: Record;
beforeEach(() => {
@@ -38,8 +38,8 @@ describe('WebSocketProvider', () => {
jsonRpcPayload = {
jsonrpc: '2.0',
id: 42,
- method: 'zond_getBalance',
- params: ['Z407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest'],
+ method: 'qrl_getBalance',
+ params: ['Q407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest'],
};
jsonRpcResponse = { ...jsonRpcPayload, result: JSON.stringify(jsonRpcPayload) };
});
diff --git a/packages/web3-zond-abi/.eslintignore b/packages/web3-qrl-abi/.eslintignore
similarity index 100%
rename from packages/web3-zond-abi/.eslintignore
rename to packages/web3-qrl-abi/.eslintignore
diff --git a/packages/web3-zond-abi/.eslintrc.js b/packages/web3-qrl-abi/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-abi/.eslintrc.js
rename to packages/web3-qrl-abi/.eslintrc.js
diff --git a/packages/web3-zond-abi/.gitignore b/packages/web3-qrl-abi/.gitignore
similarity index 100%
rename from packages/web3-zond-abi/.gitignore
rename to packages/web3-qrl-abi/.gitignore
diff --git a/packages/web3-zond-abi/.npmignore b/packages/web3-qrl-abi/.npmignore
similarity index 100%
rename from packages/web3-zond-abi/.npmignore
rename to packages/web3-qrl-abi/.npmignore
diff --git a/packages/web3-zond-abi/.prettierignore b/packages/web3-qrl-abi/.prettierignore
similarity index 100%
rename from packages/web3-zond-abi/.prettierignore
rename to packages/web3-qrl-abi/.prettierignore
diff --git a/packages/web3-zond-abi/.prettierrc.json b/packages/web3-qrl-abi/.prettierrc.json
similarity index 100%
rename from packages/web3-zond-abi/.prettierrc.json
rename to packages/web3-qrl-abi/.prettierrc.json
diff --git a/packages/web3-zond-abi/CHANGELOG.md b/packages/web3-qrl-abi/CHANGELOG.md
similarity index 100%
rename from packages/web3-zond-abi/CHANGELOG.md
rename to packages/web3-qrl-abi/CHANGELOG.md
diff --git a/packages/web3-zond-abi/README.md b/packages/web3-qrl-abi/README.md
similarity index 69%
rename from packages/web3-zond-abi/README.md
rename to packages/web3-qrl-abi/README.md
index 8192e4fb..88506def 100644
--- a/packages/web3-zond-abi/README.md
+++ b/packages/web3-qrl-abi/README.md
@@ -1,28 +1,28 @@
-# @theqrl/web3.js - Web3-Zond-Abi
+# @theqrl/web3.js - Web3-QRL-Abi


-[](https://www.npmjs.com/package/@theqrl/web3-zond-abi)
-[](https://www.npmjs.com/package/@theqrl/web3-zond-abi)
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-abi)
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-abi)
This is a sub-package of [@theqrl/web3.js](https://github.com/theqrl/web3.js).
-`@theqrl/web3-zond-abi` contains functions for the encode and decode ZVM in/output.
+`@theqrl/web3-qrl-abi` contains functions for the encode and decode QRVM in/output.
## Installation
-You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3-zond-abi) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3-zond-abi)
+You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3-qrl-abi) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3-qrl-abi)
### Using NPM
```bash
-npm install @theqrl/web3-zond-abi
+npm install @theqrl/web3-qrl-abi
```
### Using Yarn
```bash
-yarn add @theqrl/web3-zond-abi
+yarn add @theqrl/web3-qrl-abi
```
## Getting Started
@@ -49,7 +49,7 @@ yarn add @theqrl/web3-zond-abi
| test:unit | Uses `jest` to run tests under `/test/unit` |
[docs]: https://docs.theqrl.org/
-[repo]: https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-abi
-[npm-image]: https://img.shields.io/github/package-json/v/theqrl/web3.js/main?filename=packages%2Fweb3-zond-abi%2Fpackage.json
-[npm-url]: https://npmjs.org/package/@theqrl/web3-zond-abi
-[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3-zond-abi?label=npm%20downloads
+[repo]: https://github.com/theqrl/web3.js/tree/main/packages/web3-qrl-abi
+[npm-image]: https://img.shields.io/github/package-json/v/theqrl/web3.js/main?filename=packages%2Fweb3-qrl-abi%2Fpackage.json
+[npm-url]: https://npmjs.org/package/@theqrl/web3-qrl-abi
+[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3-qrl-abi?label=npm%20downloads
diff --git a/packages/web3-zond-abi/assets/logo/web3js.ai b/packages/web3-qrl-abi/assets/logo/web3js.ai
similarity index 100%
rename from packages/web3-zond-abi/assets/logo/web3js.ai
rename to packages/web3-qrl-abi/assets/logo/web3js.ai
diff --git a/packages/web3-zond-abi/assets/logo/web3js.jpg b/packages/web3-qrl-abi/assets/logo/web3js.jpg
similarity index 100%
rename from packages/web3-zond-abi/assets/logo/web3js.jpg
rename to packages/web3-qrl-abi/assets/logo/web3js.jpg
diff --git a/packages/web3-zond-abi/assets/logo/web3js.svg b/packages/web3-qrl-abi/assets/logo/web3js.svg
similarity index 100%
rename from packages/web3-zond-abi/assets/logo/web3js.svg
rename to packages/web3-qrl-abi/assets/logo/web3js.svg
diff --git a/packages/web3-zond-abi/package.json b/packages/web3-qrl-abi/package.json
similarity index 95%
rename from packages/web3-zond-abi/package.json
rename to packages/web3-qrl-abi/package.json
index 6512af91..6bc97d2b 100644
--- a/packages/web3-zond-abi/package.json
+++ b/packages/web3-qrl-abi/package.json
@@ -1,10 +1,10 @@
{
- "name": "@theqrl/web3-zond-abi",
+ "name": "@theqrl/web3-qrl-abi",
"version": "0.3.3",
"publishConfig": {
"access": "public"
},
- "description": "Web3 module encode and decode ZVM in/output.",
+ "description": "Web3 module encode and decode QRVM in/output.",
"main": "./lib/commonjs/index.js",
"module": "./lib/esm/index.js",
"exports": {
@@ -14,7 +14,7 @@
"require": "./lib/commonjs/index.js"
}
},
- "repository": "https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-abi",
+ "repository": "https://github.com/theqrl/web3.js/tree/main/packages/web3-qrl-abi",
"author": "The QRL Contributors",
"license": "LGPL-3.0",
"engines": {
diff --git a/packages/web3-zond-abi/src/api/errors_api.ts b/packages/web3-qrl-abi/src/api/errors_api.ts
similarity index 100%
rename from packages/web3-zond-abi/src/api/errors_api.ts
rename to packages/web3-qrl-abi/src/api/errors_api.ts
diff --git a/packages/web3-zond-abi/src/api/events_api.ts b/packages/web3-qrl-abi/src/api/events_api.ts
similarity index 95%
rename from packages/web3-zond-abi/src/api/events_api.ts
rename to packages/web3-qrl-abi/src/api/events_api.ts
index 1a52ab4f..6d4b7f33 100644
--- a/packages/web3-zond-abi/src/api/events_api.ts
+++ b/packages/web3-qrl-abi/src/api/events_api.ts
@@ -27,7 +27,7 @@ import { jsonInterfaceMethodToString, isAbiEventFragment } from '../utils.js';
*
* @example
* ```ts
- * const event = web3.zond.abi.encodeEventSignature({
+ * const event = web3.qrl.abi.encodeEventSignature({
* name: "myEvent",
* type: "event",
* inputs: [
@@ -44,7 +44,7 @@ import { jsonInterfaceMethodToString, isAbiEventFragment } from '../utils.js';
* console.log(event);
* > 0xf2eeb729e636a8cb783be044acf6b7b1e2c5863735b60d6daae84c366ee87d97
*
- * const event = web3.zond.abi.encodeEventSignature({
+ * const event = web3.qrl.abi.encodeEventSignature({
* inputs: [
* {
* indexed: true,
diff --git a/packages/web3-zond-abi/src/api/functions_api.ts b/packages/web3-qrl-abi/src/api/functions_api.ts
similarity index 90%
rename from packages/web3-zond-abi/src/api/functions_api.ts
rename to packages/web3-qrl-abi/src/api/functions_api.ts
index 8d59d093..32f268e4 100644
--- a/packages/web3-zond-abi/src/api/functions_api.ts
+++ b/packages/web3-qrl-abi/src/api/functions_api.ts
@@ -29,7 +29,7 @@ import { encodeParameters } from './parameters_api.js';
* @returns - The ABI signature of the function.
* @example
* ```ts
- * const signature = web3.zond.abi.encodeFunctionSignature({
+ * const signature = web3.qrl.abi.encodeFunctionSignature({
* name: "myMethod",
* type: "function",
* inputs: [
@@ -46,11 +46,11 @@ import { encodeParameters } from './parameters_api.js';
* console.log(signature);
* > 0x24ee0097
*
- * const signature = web3.zond.abi.encodeFunctionSignature('myMethod(uint256,string)')
+ * const signature = web3.qrl.abi.encodeFunctionSignature('myMethod(uint256,string)')
* console.log(signature);
* > 0x24ee0097
*
- * const signature = web3.zond.abi.encodeFunctionSignature('safeTransferFrom(address,address,uint256,bytes)');
+ * const signature = web3.qrl.abi.encodeFunctionSignature('safeTransferFrom(address,address,uint256,bytes)');
* console.log(signature);
* > 0xb88d4fde
* ```
@@ -79,7 +79,7 @@ export const encodeFunctionSignature = (functionName: string | AbiFunctionFragme
* @returns - The ABI encoded function call, which, means the function signature and the parameters passed.
* @example
* ```ts
- * const sig = web3.zond.abi.encodeFunctionCall(
+ * const sig = web3.qrl.abi.encodeFunctionCall(
* {
* name: "myMethod",
* type: "function",
@@ -101,7 +101,7 @@ export const encodeFunctionSignature = (functionName: string | AbiFunctionFragme
*
*
*
- * const sig = web3.zond.abi.encodeFunctionCall(
+ * const sig = web3.qrl.abi.encodeFunctionCall(
* {
* inputs: [
* {
@@ -119,7 +119,7 @@ export const encodeFunctionSignature = (functionName: string | AbiFunctionFragme
* stateMutability: "view",
* type: "function",
* },
- * ["Z1234567890123456789012345678901234567890"]
+ * ["Q1234567890123456789012345678901234567890"]
* );
*
* console.log(sig);
diff --git a/packages/web3-zond-abi/src/api/logs_api.ts b/packages/web3-qrl-abi/src/api/logs_api.ts
similarity index 99%
rename from packages/web3-zond-abi/src/api/logs_api.ts
rename to packages/web3-qrl-abi/src/api/logs_api.ts
index 17ab0471..7c174630 100644
--- a/packages/web3-zond-abi/src/api/logs_api.ts
+++ b/packages/web3-qrl-abi/src/api/logs_api.ts
@@ -32,7 +32,7 @@ const _decodeParameter = (inputType: string, clonedTopic: string) =>
*
* @example
* ```ts
- * let res = web3.zond.abi.decodeLog(
+ * let res = web3.qrl.abi.decodeLog(
* [
* {
* type: "string",
diff --git a/packages/web3-zond-abi/src/api/parameters_api.ts b/packages/web3-qrl-abi/src/api/parameters_api.ts
similarity index 93%
rename from packages/web3-zond-abi/src/api/parameters_api.ts
rename to packages/web3-qrl-abi/src/api/parameters_api.ts
index 7ca503d0..89cb39ae 100644
--- a/packages/web3-zond-abi/src/api/parameters_api.ts
+++ b/packages/web3-qrl-abi/src/api/parameters_api.ts
@@ -28,7 +28,7 @@ import { formatParam, isAbiFragment, mapTypes, modifyParams } from '../utils.js'
* @returns - The ABI encoded parameters
* @example
* ```ts
- * const res = web3.zond.abi.encodeParameters(
+ * const res = web3.qrl.abi.encodeParameters(
* ["uint256", "string"],
* ["2345675643", "Hello!%"]
* );
@@ -79,31 +79,31 @@ export const encodeParameters = (abi: ReadonlyArray, params: unknown[]
* @returns - The ABI encoded parameter
* @example
* ```ts
- * const res = web3.zond.abi.encodeParameter("uint256", "2345675643");
+ * const res = web3.qrl.abi.encodeParameter("uint256", "2345675643");
* console.log(res);
* 0x000000000000000000000000000000000000000000000000000000008bd02b7b
*
- * const res = web3.zond.abi.encodeParameter("uint", "2345675643");
+ * const res = web3.qrl.abi.encodeParameter("uint", "2345675643");
*
* console.log(res);
* >0x000000000000000000000000000000000000000000000000000000008bd02b7b
*
- * const res = web3.zond.abi.encodeParameter("bytes32", "0xdf3234");
+ * const res = web3.qrl.abi.encodeParameter("bytes32", "0xdf3234");
*
* console.log(res);
* >0xdf32340000000000000000000000000000000000000000000000000000000000
*
- * const res = web3.zond.abi.encodeParameter("bytes", "0xdf3234");
+ * const res = web3.qrl.abi.encodeParameter("bytes", "0xdf3234");
*
* console.log(res);
* > 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003df32340000000000000000000000000000000000000000000000000000000000
*
- * const res = web3.zond.abi.encodeParameter("bytes32[]", ["0xdf3234", "0xfdfd"]);
+ * const res = web3.qrl.abi.encodeParameter("bytes32[]", ["0xdf3234", "0xfdfd"]);
*
* console.log(res);
* > 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002df32340000000000000000000000000000000000000000000000000000000000fdfd000000000000000000000000000000000000000000000000000000000000
*
- * const res = web3.zond.abi.encodeParameter(
+ * const res = web3.qrl.abi.encodeParameter(
* {
* ParentStruct: {
* propertyOne: "uint256",
@@ -193,14 +193,14 @@ export const decodeParametersWith = (
* @returns - The result object containing the decoded parameters.
* @example
* ```ts
- * let res = web3.zond.abi.decodeParameters(
+ * let res = web3.qrl.abi.decodeParameters(
* ["string", "uint256"],
* "0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000ea000000000000000000000000000000000000000000000000000000000000000848656c6c6f212521000000000000000000000000000000000000000000000000"
* );
* console.log(res);
* > { '0': 'Hello!%!', '1': 234n, __length__: 2 }
*
- * let res = web3.zond.abi.decodeParameters(
+ * let res = web3.qrl.abi.decodeParameters(
* [
* {
* type: "string",
@@ -222,7 +222,7 @@ export const decodeParametersWith = (
* myNumber: 234n
* }
*
- * const res = web3.zond.abi.decodeParameters(
+ * const res = web3.qrl.abi.decodeParameters(
* [
* "uint8[]",
* {
@@ -302,14 +302,14 @@ export const decodeParameters = (
* @returns - The decoded parameter
* @example
* ```ts
- * const res = web3.zond.abi.decodeParameter(
+ * const res = web3.qrl.abi.decodeParameter(
* "uint256",
* "0x0000000000000000000000000000000000000000000000000000000000000010"
* );
* console.log(res);
* > 16n
*
- * const res = web3.zond.abi.decodeParameter(
+ * const res = web3.qrl.abi.decodeParameter(
* "string",
* "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000848656c6c6f212521000000000000000000000000000000000000000000000000"
* );
@@ -317,7 +317,7 @@ export const decodeParameters = (
* console.log(res);
* > Hello!%!
*
- * const res = web3.zond.abi.decodeParameter(
+ * const res = web3.qrl.abi.decodeParameter(
* {
* ParentStruct: {
* propertyOne: "uint256",
diff --git a/packages/web3-zond-abi/src/decode_contract_error_data.ts b/packages/web3-qrl-abi/src/decode_contract_error_data.ts
similarity index 100%
rename from packages/web3-zond-abi/src/decode_contract_error_data.ts
rename to packages/web3-qrl-abi/src/decode_contract_error_data.ts
diff --git a/packages/web3-zond-abi/src/eip_712.ts b/packages/web3-qrl-abi/src/eip_712.ts
similarity index 100%
rename from packages/web3-zond-abi/src/eip_712.ts
rename to packages/web3-qrl-abi/src/eip_712.ts
diff --git a/packages/web3-zond-abi/src/ethers_abi_coder.ts b/packages/web3-qrl-abi/src/ethers_abi_coder.ts
similarity index 100%
rename from packages/web3-zond-abi/src/ethers_abi_coder.ts
rename to packages/web3-qrl-abi/src/ethers_abi_coder.ts
diff --git a/packages/web3-zond-abi/src/index.ts b/packages/web3-qrl-abi/src/index.ts
similarity index 85%
rename from packages/web3-zond-abi/src/index.ts
rename to packages/web3-qrl-abi/src/index.ts
index 883a4107..0b710105 100644
--- a/packages/web3-zond-abi/src/index.ts
+++ b/packages/web3-qrl-abi/src/index.ts
@@ -16,7 +16,7 @@ along with web3.js. If not, see .
*/
/**
- * The web3.zond.abi functions let you encode and decode parameters to ABI (Application Binary Interface) for function calls to the ZVM (Zond Virtual Machine).
+ * The web3.qrl.abi functions let you encode and decode parameters to ABI (Application Binary Interface) for function calls to the QRVM (Quantum Resistant Virtual Machine).
*/
export * from './api/errors_api.js';
export * from './api/events_api.js';
diff --git a/packages/web3-zond-abi/src/utils.ts b/packages/web3-qrl-abi/src/utils.ts
similarity index 100%
rename from packages/web3-zond-abi/src/utils.ts
rename to packages/web3-qrl-abi/src/utils.ts
diff --git a/packages/web3-zond-abi/test/.eslintrc.js b/packages/web3-qrl-abi/test/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-abi/test/.eslintrc.js
rename to packages/web3-qrl-abi/test/.eslintrc.js
diff --git a/packages/web3-zond-abi/test/config/jest.config.js b/packages/web3-qrl-abi/test/config/jest.config.js
similarity index 100%
rename from packages/web3-zond-abi/test/config/jest.config.js
rename to packages/web3-qrl-abi/test/config/jest.config.js
diff --git a/packages/web3-zond-abi/test/config/setup.js b/packages/web3-qrl-abi/test/config/setup.js
similarity index 100%
rename from packages/web3-zond-abi/test/config/setup.js
rename to packages/web3-qrl-abi/test/config/setup.js
diff --git a/packages/web3-zond-abi/test/fixtures/data.ts b/packages/web3-qrl-abi/test/fixtures/data.ts
similarity index 97%
rename from packages/web3-zond-abi/test/fixtures/data.ts
rename to packages/web3-qrl-abi/test/fixtures/data.ts
index 09e7ecf8..584f65bd 100644
--- a/packages/web3-zond-abi/test/fixtures/data.ts
+++ b/packages/web3-qrl-abi/test/fixtures/data.ts
@@ -269,7 +269,7 @@ export const validFunctionsCall: { input: { abi: any; params: any }; output: str
},
params: [
'0x000000000000000000000000',
- 'Z0000000000000000000000000000000000000000',
+ 'Q0000000000000000000000000000000000000000',
'170141183460469231731687303715884105727',
'-170141183460469231731687303715884105727',
],
@@ -452,12 +452,12 @@ export const validDecodeLogsData: {
data: '0x00000000000000000000000000000000000000000000000000000000000186a0',
},
output: {
- '0': 'Z6E599DA0bfF7A6598AC1224E4985430Bf16458a4',
- '1': 'Z6f1DF96865D09d21e8f3f9a7fbA3b17A11c7C53C',
+ '0': 'Q6E599DA0bfF7A6598AC1224E4985430Bf16458a4',
+ '1': 'Q6f1DF96865D09d21e8f3f9a7fbA3b17A11c7C53C',
'2': '100000',
__length__: 3,
- from: 'Z6E599DA0bfF7A6598AC1224E4985430Bf16458a4',
- to: 'Z6f1DF96865D09d21e8f3f9a7fbA3b17A11c7C53C',
+ from: 'Q6E599DA0bfF7A6598AC1224E4985430Bf16458a4',
+ to: 'Q6f1DF96865D09d21e8f3f9a7fbA3b17A11c7C53C',
value: '100000',
},
},
@@ -489,10 +489,10 @@ export const validDecodeLogsData: {
topics: ['0x000000000000000000000000cb00cde33a7a0fba30c63745534f1f7ae607076b'],
},
output: {
- '0': 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ '0': 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
'1': {
'0': 'Rick Sanchez',
- '1': 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ '1': 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
'2': {
'0': 'rick.c137@citadel.cfc',
'1': '+1 (555) 314-1593',
@@ -502,7 +502,7 @@ export const validDecodeLogsData: {
},
__length__: 3,
name: 'Rick Sanchez',
- addr: 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ addr: 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
contact: {
'0': 'rick.c137@citadel.cfc',
'1': '+1 (555) 314-1593',
@@ -512,10 +512,10 @@ export const validDecodeLogsData: {
},
},
__length__: 2,
- addr: 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ addr: 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
user: {
'0': 'Rick Sanchez',
- '1': 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ '1': 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
'2': {
'0': 'rick.c137@citadel.cfc',
'1': '+1 (555) 314-1593',
@@ -525,7 +525,7 @@ export const validDecodeLogsData: {
},
__length__: 3,
name: 'Rick Sanchez',
- addr: 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ addr: 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
contact: {
'0': 'rick.c137@citadel.cfc',
'1': '+1 (555) 314-1593',
@@ -897,7 +897,7 @@ export const validDecodeParametersData: {
outputResult: {
'0': {
'0': 'Rick Sanchez',
- '1': 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ '1': 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
'2': {
'0': 'rick.c137@citadel.cfc',
'1': '+1 (555) 314-1593',
@@ -906,7 +906,7 @@ export const validDecodeParametersData: {
phone: '+1 (555) 314-1593',
},
__length__: 3,
- addr: 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ addr: 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
contact: {
'0': 'rick.c137@citadel.cfc',
'1': '+1 (555) 314-1593',
@@ -919,7 +919,7 @@ export const validDecodeParametersData: {
__length__: 1,
user: {
'0': 'Rick Sanchez',
- '1': 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ '1': 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
'2': {
'0': 'rick.c137@citadel.cfc',
'1': '+1 (555) 314-1593',
@@ -928,7 +928,7 @@ export const validDecodeParametersData: {
phone: '+1 (555) 314-1593',
},
__length__: 3,
- addr: 'ZCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
+ addr: 'QCB00CDE33a7a0Fba30C63745534F1f7Ae607076b',
contact: {
'0': 'rick.c137@citadel.cfc',
'1': '+1 (555) 314-1593',
diff --git a/packages/web3-zond-abi/test/fixtures/get_encoded_eip712_data.ts b/packages/web3-qrl-abi/test/fixtures/get_encoded_eip712_data.ts
similarity index 87%
rename from packages/web3-zond-abi/test/fixtures/get_encoded_eip712_data.ts
rename to packages/web3-qrl-abi/test/fixtures/get_encoded_eip712_data.ts
index aacc77ed..b7010860 100644
--- a/packages/web3-zond-abi/test/fixtures/get_encoded_eip712_data.ts
+++ b/packages/web3-qrl-abi/test/fixtures/get_encoded_eip712_data.ts
@@ -75,16 +75,16 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Ether Mail',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
from: {
name: 'Cow',
- wallet: 'ZCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
+ wallet: 'QCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
},
to: {
name: 'Bob',
- wallet: 'ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
+ wallet: 'QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
},
contents: 'Hello, Bob!',
},
@@ -144,16 +144,16 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Ether Mail',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
from: {
name: 'Cow',
- wallet: 'ZCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
+ wallet: 'QCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
},
to: {
name: 'Bob',
- wallet: 'ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
+ wallet: 'QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
},
contents: 'Hello, Bob!',
},
@@ -213,16 +213,16 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Ether Mail',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
from: {
name: 'Cow',
- wallet: 'ZCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
+ wallet: 'QCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
},
to: {
name: 'Bob',
- wallet: 'ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
+ wallet: 'QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
},
contents: 'Hello, Bob!',
},
@@ -272,14 +272,14 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
array1: ['string', 'string2', 'string3'],
array2: [
- 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
- 'ZCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
- 'ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
+ 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ 'QCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
+ 'QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
],
array3: [123456, 654321, 42],
},
@@ -329,14 +329,14 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
array1: ['string', 'string2', 'string3'],
array2: [
- 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
- 'ZCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
- 'ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
+ 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ 'QCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
+ 'QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
],
array3: [123456, 654321, 42],
},
@@ -386,14 +386,14 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
array1: ['string', 'string2', 'string3'],
array2: [
- 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
- 'ZCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
- 'ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
+ 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ 'QCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
+ 'QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
],
array3: [123456, 654321, 42],
},
@@ -443,14 +443,14 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
array1: ['string', 'string2', 'string3'],
array2: [
- 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
- 'ZCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
- 'ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
+ 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ 'QCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
+ 'QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
],
array3: [123456, 654321, 42],
},
@@ -492,7 +492,7 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
bytes32: '0x133d00e67f2390ce846a631aeb6718a674a3923f5320b79b6d3e2f5bf146319e',
@@ -535,7 +535,7 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
bytes32: '0x133d00e67f2390ce846a631aeb6718a674a3923f5320b79b6d3e2f5bf146319e',
@@ -578,7 +578,7 @@ export const testData: [string, Eip712TypedData, boolean | undefined, string][]
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
bytes32: '0x133d00e67f2390ce846a631aeb6718a674a3923f5320b79b6d3e2f5bf146319e',
@@ -638,11 +638,11 @@ export const erroneousTestData: [string, Eip712TypedData, boolean | undefined, E
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
array1: ['string', 'string2', 'string3'],
- array2: 'ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
+ array2: 'QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
array3: [123456, 654321, 42],
},
},
@@ -691,11 +691,11 @@ export const erroneousTestData: [string, Eip712TypedData, boolean | undefined, E
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
array1: ['string', 'string2', 'string3'],
- array2: ['ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB'],
+ array2: ['QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB'],
array3: [123456, 654321, 42],
},
},
@@ -744,11 +744,11 @@ export const erroneousTestData: [string, Eip712TypedData, boolean | undefined, E
name: 'Array Data',
version: '1',
chainId: 1,
- verifyingContract: 'ZCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
+ verifyingContract: 'QCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
},
message: {
array1: ['string', 'string2', 'string3'],
- array2: ['ZbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB'],
+ array2: ['QbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB'],
array3: undefined,
},
},
diff --git a/packages/web3-zond-abi/test/integration/jest.config.js b/packages/web3-qrl-abi/test/integration/jest.config.js
similarity index 100%
rename from packages/web3-zond-abi/test/integration/jest.config.js
rename to packages/web3-qrl-abi/test/integration/jest.config.js
diff --git a/packages/web3-zond-abi/test/integration/setup.js b/packages/web3-qrl-abi/test/integration/setup.js
similarity index 100%
rename from packages/web3-zond-abi/test/integration/setup.js
rename to packages/web3-qrl-abi/test/integration/setup.js
diff --git a/packages/web3-zond-abi/test/tsconfig.json b/packages/web3-qrl-abi/test/tsconfig.json
similarity index 100%
rename from packages/web3-zond-abi/test/tsconfig.json
rename to packages/web3-qrl-abi/test/tsconfig.json
diff --git a/packages/web3-zond-abi/test/unit/api/errors_api.test.ts b/packages/web3-qrl-abi/test/unit/api/errors_api.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/api/errors_api.test.ts
rename to packages/web3-qrl-abi/test/unit/api/errors_api.test.ts
diff --git a/packages/web3-zond-abi/test/unit/api/events_api.test.ts b/packages/web3-qrl-abi/test/unit/api/events_api.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/api/events_api.test.ts
rename to packages/web3-qrl-abi/test/unit/api/events_api.test.ts
diff --git a/packages/web3-zond-abi/test/unit/api/functions_api.test.ts b/packages/web3-qrl-abi/test/unit/api/functions_api.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/api/functions_api.test.ts
rename to packages/web3-qrl-abi/test/unit/api/functions_api.test.ts
diff --git a/packages/web3-zond-abi/test/unit/api/logs_api.test.ts b/packages/web3-qrl-abi/test/unit/api/logs_api.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/api/logs_api.test.ts
rename to packages/web3-qrl-abi/test/unit/api/logs_api.test.ts
diff --git a/packages/web3-zond-abi/test/unit/api/parameters_api.test.ts b/packages/web3-qrl-abi/test/unit/api/parameters_api.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/api/parameters_api.test.ts
rename to packages/web3-qrl-abi/test/unit/api/parameters_api.test.ts
diff --git a/packages/web3-zond-abi/test/unit/constructor.test.ts b/packages/web3-qrl-abi/test/unit/constructor.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/constructor.test.ts
rename to packages/web3-qrl-abi/test/unit/constructor.test.ts
diff --git a/packages/web3-zond-abi/test/unit/decodeContractErrorData.test.ts b/packages/web3-qrl-abi/test/unit/decodeContractErrorData.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/decodeContractErrorData.test.ts
rename to packages/web3-qrl-abi/test/unit/decodeContractErrorData.test.ts
diff --git a/packages/web3-zond-abi/test/unit/get_encoded_eip712_data.test.ts b/packages/web3-qrl-abi/test/unit/get_encoded_eip712_data.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/get_encoded_eip712_data.test.ts
rename to packages/web3-qrl-abi/test/unit/get_encoded_eip712_data.test.ts
diff --git a/packages/web3-zond-ens/test/unit/jest.config.js b/packages/web3-qrl-abi/test/unit/jest.config.js
similarity index 86%
rename from packages/web3-zond-ens/test/unit/jest.config.js
rename to packages/web3-qrl-abi/test/unit/jest.config.js
index 1e018350..cb892553 100644
--- a/packages/web3-zond-ens/test/unit/jest.config.js
+++ b/packages/web3-qrl-abi/test/unit/jest.config.js
@@ -11,7 +11,7 @@ module.exports = {
[
'json',
{
- file: 'web3-zond-ens-unit-coverage.json',
+ file: 'web3-qrl-abi-unit-coverage.json',
},
],
],
diff --git a/packages/web3-zond-abi/test/unit/types.test.ts b/packages/web3-qrl-abi/test/unit/types.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/types.test.ts
rename to packages/web3-qrl-abi/test/unit/types.test.ts
diff --git a/packages/web3-zond-abi/test/unit/utils.test.ts b/packages/web3-qrl-abi/test/unit/utils.test.ts
similarity index 100%
rename from packages/web3-zond-abi/test/unit/utils.test.ts
rename to packages/web3-qrl-abi/test/unit/utils.test.ts
diff --git a/packages/web3-zond-abi/tsconfig.cjs.json b/packages/web3-qrl-abi/tsconfig.cjs.json
similarity index 100%
rename from packages/web3-zond-abi/tsconfig.cjs.json
rename to packages/web3-qrl-abi/tsconfig.cjs.json
diff --git a/packages/web3-zond-abi/tsconfig.esm.json b/packages/web3-qrl-abi/tsconfig.esm.json
similarity index 100%
rename from packages/web3-zond-abi/tsconfig.esm.json
rename to packages/web3-qrl-abi/tsconfig.esm.json
diff --git a/packages/web3-zond-abi/tsconfig.types.json b/packages/web3-qrl-abi/tsconfig.types.json
similarity index 100%
rename from packages/web3-zond-abi/tsconfig.types.json
rename to packages/web3-qrl-abi/tsconfig.types.json
diff --git a/packages/web3-zond-abi/tsdoc.json b/packages/web3-qrl-abi/tsdoc.json
similarity index 100%
rename from packages/web3-zond-abi/tsdoc.json
rename to packages/web3-qrl-abi/tsdoc.json
diff --git a/packages/web3-zond-accounts/.eslintignore b/packages/web3-qrl-accounts/.eslintignore
similarity index 100%
rename from packages/web3-zond-accounts/.eslintignore
rename to packages/web3-qrl-accounts/.eslintignore
diff --git a/packages/web3-zond-accounts/.eslintrc.js b/packages/web3-qrl-accounts/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-accounts/.eslintrc.js
rename to packages/web3-qrl-accounts/.eslintrc.js
diff --git a/packages/web3-zond-accounts/.gitignore b/packages/web3-qrl-accounts/.gitignore
similarity index 100%
rename from packages/web3-zond-accounts/.gitignore
rename to packages/web3-qrl-accounts/.gitignore
diff --git a/packages/web3-zond-accounts/.npmignore b/packages/web3-qrl-accounts/.npmignore
similarity index 100%
rename from packages/web3-zond-accounts/.npmignore
rename to packages/web3-qrl-accounts/.npmignore
diff --git a/packages/web3-zond-accounts/.prettierignore b/packages/web3-qrl-accounts/.prettierignore
similarity index 100%
rename from packages/web3-zond-accounts/.prettierignore
rename to packages/web3-qrl-accounts/.prettierignore
diff --git a/packages/web3-zond-accounts/.prettierrc.json b/packages/web3-qrl-accounts/.prettierrc.json
similarity index 100%
rename from packages/web3-zond-accounts/.prettierrc.json
rename to packages/web3-qrl-accounts/.prettierrc.json
diff --git a/packages/web3-zond-accounts/CHANGELOG.md b/packages/web3-qrl-accounts/CHANGELOG.md
similarity index 100%
rename from packages/web3-zond-accounts/CHANGELOG.md
rename to packages/web3-qrl-accounts/CHANGELOG.md
diff --git a/packages/web3-qrl-accounts/README.md b/packages/web3-qrl-accounts/README.md
new file mode 100644
index 00000000..b05362ac
--- /dev/null
+++ b/packages/web3-qrl-accounts/README.md
@@ -0,0 +1,55 @@
+# @theqrl/web3.js - Web3 QRL Accounts
+
+
+
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-accounts)
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-accounts)
+
+This is a sub-package of [@theqrl/web3.js](https://github.com/theqrl/web3.js).
+
+`@theqrl/web3-qrl-accounts` contains functionality for managing QRL accounts and signing.
+
+## Installation
+
+You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3-qrl-accounts) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3-qrl-accounts)
+
+### Using NPM
+
+```bash
+npm install @theqrl/web3-qrl-accounts
+```
+
+### Using Yarn
+
+```bash
+yarn add @theqrl/web3-qrl-accounts
+```
+
+## Getting Started
+
+- :writing_hand: If you have questions [submit an issue](https://github.com/theqrl/web3.js/issues/new) or join us on [Discord](https://theqrl.org/discord)
+ 
+
+## Prerequisites
+
+- :gear: [NodeJS](https://nodejs.org/) (LTS/Fermium)
+- :toolbox: [Yarn](https://yarnpkg.com/)/[Lerna](https://lerna.js.org/)
+
+## Package.json Scripts
+
+| Script | Description |
+| ---------------- | -------------------------------------------------- |
+| clean | Uses `rimraf` to remove `dist/` |
+| build | Uses `tsc` to build package and dependent packages |
+| lint | Uses `eslint` to lint package |
+| lint:fix | Uses `eslint` to check and fix any warnings |
+| format | Uses `prettier` to format the code |
+| test | Uses `jest` to run unit tests |
+| test:integration | Uses `jest` to run tests under `/test/integration` |
+| test:unit | Uses `jest` to run tests under `/test/unit` |
+
+[docs]: https://docs.theqrl.org/
+[repo]: https://github.com/theqrl/web3.js/tree/main/packages/web3-qrl-accounts
+[npm-image]: https://img.shields.io/github/package-json/v/theqrl/web3.js/main?filename=packages%2Fweb3-qrl-accounts%2Fpackage.json
+[npm-url]: https://npmjs.org/package/@theqrl/web3-qrl-accounts
+[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3-qrl-accounts?label=npm%20downloads
diff --git a/packages/web3-zond-accounts/assets/logo/web3js.ai b/packages/web3-qrl-accounts/assets/logo/web3js.ai
similarity index 100%
rename from packages/web3-zond-accounts/assets/logo/web3js.ai
rename to packages/web3-qrl-accounts/assets/logo/web3js.ai
diff --git a/packages/web3-zond-accounts/assets/logo/web3js.jpg b/packages/web3-qrl-accounts/assets/logo/web3js.jpg
similarity index 100%
rename from packages/web3-zond-accounts/assets/logo/web3js.jpg
rename to packages/web3-qrl-accounts/assets/logo/web3js.jpg
diff --git a/packages/web3-zond-accounts/assets/logo/web3js.svg b/packages/web3-qrl-accounts/assets/logo/web3js.svg
similarity index 100%
rename from packages/web3-zond-accounts/assets/logo/web3js.svg
rename to packages/web3-qrl-accounts/assets/logo/web3js.svg
diff --git a/packages/web3-zond-accounts/cypress b/packages/web3-qrl-accounts/cypress
similarity index 100%
rename from packages/web3-zond-accounts/cypress
rename to packages/web3-qrl-accounts/cypress
diff --git a/packages/web3-zond-accounts/cypress.config.js b/packages/web3-qrl-accounts/cypress.config.js
similarity index 100%
rename from packages/web3-zond-accounts/cypress.config.js
rename to packages/web3-qrl-accounts/cypress.config.js
diff --git a/packages/web3-zond-accounts/index.d.ts b/packages/web3-qrl-accounts/index.d.ts
similarity index 100%
rename from packages/web3-zond-accounts/index.d.ts
rename to packages/web3-qrl-accounts/index.d.ts
diff --git a/packages/web3-zond-accounts/package.json b/packages/web3-qrl-accounts/package.json
similarity index 93%
rename from packages/web3-zond-accounts/package.json
rename to packages/web3-qrl-accounts/package.json
index f53a530a..0ca39a85 100644
--- a/packages/web3-zond-accounts/package.json
+++ b/packages/web3-qrl-accounts/package.json
@@ -1,10 +1,10 @@
{
- "name": "@theqrl/web3-zond-accounts",
+ "name": "@theqrl/web3-qrl-accounts",
"version": "0.3.3",
"publishConfig": {
"access": "public"
},
- "description": "Package for managing Zond accounts and signing",
+ "description": "Package for managing QRL accounts and signing",
"main": "./lib/commonjs/index.js",
"module": "./lib/esm/index.js",
"exports": {
@@ -69,7 +69,7 @@
"@theqrl/web3-utils": "^0.3.3",
"@theqrl/web3-validator": "^0.3.3",
"crc-32": "^1.2.2",
- "zond-cryptography": "file:../../../js-zond-cryptography",
+ "qrl-cryptography": "file:../../../js-qrl-cryptography",
"sha3": "^2.1.4"
},
"gitHead": "d4f3246946fec86d908a215b27568aa8faea88d7"
diff --git a/packages/web3-zond-accounts/src/account.ts b/packages/web3-qrl-accounts/src/account.ts
similarity index 94%
rename from packages/web3-zond-accounts/src/account.ts
rename to packages/web3-qrl-accounts/src/account.ts
index 5f82b5a8..1674db0a 100644
--- a/packages/web3-zond-accounts/src/account.ts
+++ b/packages/web3-qrl-accounts/src/account.ts
@@ -18,8 +18,8 @@ along with web3.js. If not, see .
import {
decrypt as createDecipheriv,
encrypt as createCipheriv,
-} from 'zond-cryptography/aes.js';
-import { argon2idSync } from 'zond-cryptography/argon2id.js';
+} from 'qrl-cryptography/aes.js';
+import { argon2idSync } from 'qrl-cryptography/argon2id.js';
import {
InvalidKdfError,
InvalidPasswordError,
@@ -88,7 +88,7 @@ export const parseAndValidatePublicKey = (data: Bytes, ignoreLength?: boolean):
/**
*
- * Hashes the given message. The data will be UTF-8 HEX decoded and enveloped as follows: "\\x19Zond Signed Message:\\n" + message.length + message and hashed using keccak256.
+ * Hashes the given message. The data will be UTF-8 HEX decoded and enveloped as follows: "\\x19QRL Signed Message:\\n" + message.length + message and hashed using keccak256.
*
* @param message - A message to hash, if its HEX it will be UTF8 decoded.
* @returns The hashed message
@@ -105,23 +105,23 @@ export const hashMessage = (message: string): string => {
const messageBytes = hexToBytes(messageHex);
- const preamble = hexToBytes(fromUtf8(`\x19Zond Signed Message:\n${messageBytes.byteLength}`));
+ const preamble = hexToBytes(fromUtf8(`\x19QRL Signed Message:\n${messageBytes.byteLength}`));
- const zondMessage = uint8ArrayConcat(preamble, messageBytes);
+ const qrlMessage = uint8ArrayConcat(preamble, messageBytes);
- return sha3Raw(zondMessage); // using keccak in web3-utils.sha3Raw instead of SHA3 (NIST Standard) as both are different
+ return sha3Raw(qrlMessage); // using keccak in web3-utils.sha3Raw instead of SHA3 (NIST Standard) as both are different
};
/**
* Signs arbitrary data with the private key derived from the given seed.
- * **_NOTE:_** The value passed as the data parameter will be UTF-8 HEX decoded and wrapped as follows: "\\x19Zond Signed Message:\\n" + message.length + message
+ * **_NOTE:_** The value passed as the data parameter will be UTF-8 HEX decoded and wrapped as follows: "\\x19QRL Signed Message:\\n" + message.length + message
*
* @param data - The data to sign
* @param seed - The 40 byte seed
* @returns The signature Object containing the message, messageHash, signature
*
* ```ts
- * web3.zond.accounts.sign('Some data', '0x4c0883a69102937d6231471b5dbb6204fe5129617082792ae468d01a3f362318')
+ * web3.qrl.accounts.sign('Some data', '0x4c0883a69102937d6231471b5dbb6204fe5129617082792ae468d01a3f362318')
* > {
* message: 'Some data',
* messageHash: '0x1da44b586eb0729ff70a73c326926f6ed5a25f5b056e7f47fbc6e58d86871655',
@@ -144,7 +144,7 @@ export const sign = (data: string, seed: Bytes): SignResult => {
};
/**
- * Signs a Zond transaction with the private key derived from the given seed.
+ * Signs a QRL transaction with the private key derived from the given seed.
*
* @param transaction - The transaction, must be a EIP 1559 transaction type
* @param seed - The seed to import. This is 40 bytes of random data.
@@ -152,12 +152,12 @@ export const sign = (data: string, seed: Bytes): SignResult => {
*
* This function is not stateful here. We need network access to get the account `nonce` and `chainId` to sign the transaction.
* This function will rely on user to provide the full transaction to be signed. If you want to sign a partial transaction object
- * Use {@link Web3.zond.accounts.sign} instead.
+ * Use {@link Web3.qrl.accounts.sign} instead.
*
* Signing an eip 1559 transaction
* ```ts
* signTransaction({
- * to: 'ZF0109fC8DF283027b6285cc889F5aA624EaC1F55',
+ * to: 'QF0109fC8DF283027b6285cc889F5aA624EaC1F55',
* maxPriorityFeePerGas: '0x3B9ACA00',
* maxFeePerGas: '0xB2D05E00',
* gasLimit: '0x6A4012',
@@ -206,13 +206,13 @@ export const signTransaction = async (
};
/**
- * Recovers the Zond address which was used to sign the given RLP encoded transaction.
+ * Recovers the QRL address which was used to sign the given RLP encoded transaction.
*
* @param rawTransaction - The hex string having RLP encoded transaction
- * @returns The Zond address used to sign this transaction
+ * @returns The QRL address used to sign this transaction
* ```ts
* recoverTransaction('0xf869808504e3b29200831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a0c9cf86333bcb065d140032ecaab5d9281bde80f21b9687b3e94161de42d51895a0727a108a0b8d101465414033c3f705a9c7b826e596766046ee1183dbc8aeaa68');
- * > "Z2c7536E3605D9C16a7a3D7b1898e529396a65c23"
+ * > "Q2c7536E3605D9C16a7a3D7b1898e529396a65c23"
* ```
*/
export const recoverTransaction = (rawTransaction: HexString): Address => {
@@ -231,7 +231,7 @@ export const recoverTransaction = (rawTransaction: HexString): Address => {
* @example
* ```ts
* publicKeyToAddress("0xbe6383dad004f233317e46ddb46ad31b16064d14447a95cc1d8c8d4bc61c3728")
- * > "ZEB014f8c8B418Db6b45774c326A0E64C78914dC0"
+ * > "QEB014f8c8B418Db6b45774c326A0E64C78914dC0"
* ```
*/
export const publicKeyToAddress = (publicKey: Bytes): string => {
@@ -267,7 +267,7 @@ export const publicKeyToAddress = (publicKey: Bytes): string => {
* {
* version: 1,
* id: '1b1dd3e2-ee6f-49c6-8a9b-a4722046582e',
- * address: 'Z2086ea3853acf31bdeaa7d46f34360e8996d95c5',
+ * address: 'Q2086ea3853acf31bdeaa7d46f34360e8996d95c5',
* crypto: {
* ciphertext: '02383d4ea331fdf518651aa638d77f36de002f6b2cb340712c2957b68f927234a9c87f776e40b61227aca366bd4b7056046dfdddee29df22290939a1e96f5be5',
* cipherparams: { iv: 'bfb43120ae00e9de110f8325' },
@@ -354,7 +354,7 @@ export const encrypt = async (
return {
version: 1,
id: uuidV4(),
- address: `Z${acc.address.slice(1).toLowerCase()}`,
+ address: `Q${acc.address.slice(1).toLowerCase()}`,
crypto: {
ciphertext,
cipherparams: {
@@ -399,13 +399,13 @@ export const parseAndValidateSeed = (data: Bytes, ignoreLength?: boolean): Uint8
* @returns A Web3Account object
*
* The `Web3Account.signTransaction` is not stateful here. We need network access to get the account `nonce` and `chainId` to sign the transaction.
- * Use {@link Web3.zond.accounts.signTransaction} instead.
+ * Use {@link Web3.qrl.accounts.signTransaction} instead.
*
* ```ts
* seedToAccount("0xdb4078ef7b6631dc329034cc20a969ccd470579b68c2c34897ac733dd72f8fb4fe5dad790336672c108189940eb7ed88");
* >
* {
- * address: 'Z2086EA3853Acf31bDEaa7D46F34360e8996D95C5',
+ * address: 'Q2086EA3853Acf31bDEaa7D46F34360e8996D95C5',
* seed: '0xdb4078ef7b6631dc329034cc20a969ccd470579b68c2c34897ac733dd72f8fb4fe5dad790336672c108189940eb7ed88',
* signTransaction: [Function: signTransaction],
* sign: [Function: sign],
@@ -439,9 +439,9 @@ export const seedToAccount = (seed: Bytes, ignoreLength?: boolean): Web3Account
*
* @returns A Web3Account object
* ```ts
- * web3.zond.accounts.create();
+ * web3.qrl.accounts.create();
* {
- * address: 'ZbD504f977021b5E5DdccD8741A368b147B3B38bB',
+ * address: 'QbD504f977021b5E5DdccD8741A368b147B3B38bB',
* seed: '0x964ced1c69ad27a311c432fdc0d8211e987595f7eb34ab405a5f16bdc9563ec5',
* signTransaction: [Function: signTransaction],
* sign: [Function: sign],
@@ -467,7 +467,7 @@ export const create = (): Web3Account => {
* decrypt({
* version: 1,
* id: '1b1dd3e2-ee6f-49c6-8a9b-a4722046582e',
- * address: 'Z2086ea3853acf31bdeaa7d46f34360e8996d95c5',
+ * address: 'Q2086ea3853acf31bdeaa7d46f34360e8996d95c5',
* crypto: {
* ciphertext: '02383d4ea331fdf518651aa638d77f36de002f6b2cb340712c2957b68f927234a9c87f776e40b61227aca366bd4b7056046dfdddee29df22290939a1e96f5be5',
* cipherparams: { iv: 'bfb43120ae00e9de110f8325' },
@@ -484,7 +484,7 @@ export const create = (): Web3Account => {
* }, '123').then((res) => console.log(util.inspect(res, { depth: null })));
* >
* {
- * address: 'Z2086EA3853Acf31bDEaa7D46F34360e8996D95C5',
+ * address: 'Q2086EA3853Acf31bDEaa7D46F34360e8996D95C5',
* seed: '0xdb4078ef7b6631dc329034cc20a969ccd470579b68c2c34897ac733dd72f8fb4fe5dad790336672c108189940eb7ed88',
* signTransaction: [Function: signTransaction],
* sign: [Function: sign],
diff --git a/packages/web3-zond-accounts/src/common/chains/mainnet.ts b/packages/web3-qrl-accounts/src/common/chains/mainnet.ts
similarity index 82%
rename from packages/web3-zond-accounts/src/common/chains/mainnet.ts
rename to packages/web3-qrl-accounts/src/common/chains/mainnet.ts
index f132edf0..8387f63e 100644
--- a/packages/web3-zond-accounts/src/common/chains/mainnet.ts
+++ b/packages/web3-qrl-accounts/src/common/chains/mainnet.ts
@@ -8,7 +8,7 @@ export default {
algorithm: 'casper',
casper: {},
},
- comment: 'The Zond main chain',
+ comment: 'The QRL main chain',
url: 'https://ethstats.net/',
genesis: {
gasLimit: 5000,
@@ -23,6 +23,6 @@ export default {
],
bootstrapNodes: [],
dnsNetworks: [
- 'enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net',
+ 'qnrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net',
],
};
diff --git a/packages/web3-zond-accounts/src/common/common.ts b/packages/web3-qrl-accounts/src/common/common.ts
similarity index 92%
rename from packages/web3-zond-accounts/src/common/common.ts
rename to packages/web3-qrl-accounts/src/common/common.ts
index 7d6f3579..9c278da9 100644
--- a/packages/web3-zond-accounts/src/common/common.ts
+++ b/packages/web3-qrl-accounts/src/common/common.ts
@@ -21,7 +21,7 @@ import { bytesToHex, hexToBytes, uint8ArrayConcat } from '@theqrl/web3-utils';
import { TypeOutput } from './types.js';
import { intToUint8Array, toType, parseGzondGenesis } from './utils.js';
import mainnet from './chains/mainnet.js';
-import { EIPs } from './eips/index.js';
+import { QIPs } from './qips/index.js';
import type { ConsensusAlgorithm, ConsensusType } from './enums.js';
import { Chain, CustomChain, Hardfork } from './enums.js';
import { hardforks as HARDFORK_SPECS } from './hardforks/index.js';
@@ -56,7 +56,7 @@ export class Common extends EventEmitter {
private _chainParams: ChainConfig;
private _hardfork: string | Hardfork;
- private _eips: number[] = [];
+ private _qips: number[] = [];
private readonly _customChains: ChainConfig[];
private readonly HARDFORK_CHANGES: [HardforkSpecKeys, HardforkSpecValues][];
@@ -110,18 +110,18 @@ export class Common extends EventEmitter {
/**
* Static method to load and set common from a gzond genesis json
* @param genesisJson json of gzond configuration
- * @param { chain, eips, genesisHash, hardfork } to further configure the common instance
+ * @param { chain, qips, genesisHash, hardfork } to further configure the common instance
* @returns Common
*/
public static fromGzondGenesis(
genesisJson: any,
- { chain, eips, genesisHash, hardfork }: GzondConfigOpts,
+ { chain, qips, genesisHash, hardfork }: GzondConfigOpts,
): Common {
const genesisParams = parseGzondGenesis(genesisJson, chain);
const common = new Common({
chain: genesisParams.name ?? 'custom',
customChains: [genesisParams],
- eips,
+ qips,
hardfork: hardfork ?? genesisParams.hardfork,
});
if (genesisHash !== undefined) {
@@ -178,8 +178,8 @@ export class Common extends EventEmitter {
if (opts.hardfork !== undefined) {
this.setHardfork(opts.hardfork);
}
- if (opts.eips) {
- this.setEIPs(opts.eips);
+ if (opts.qips) {
+ this.setQIPs(opts.qips);
}
}
@@ -354,43 +354,43 @@ export class Common extends EventEmitter {
}
/**
- * Sets the active EIPs
- * @param eips
+ * Sets the active QIPs
+ * @param qips
*/
- public setEIPs(eips: number[] = []) {
- for (const eip of eips) {
- if (!(eip in EIPs)) {
- throw new Error(`${eip} not supported`);
+ public setQIPs(qips: number[] = []) {
+ for (const qip of qips) {
+ if (!(qip in QIPs)) {
+ throw new Error(`${qip} not supported`);
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument
- const minHF = this.gteHardfork(EIPs[eip].minimumHardfork);
+ const minHF = this.gteHardfork(QIPs[qip].minimumHardfork);
if (!minHF) {
throw new Error(
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
- `${eip} cannot be activated on hardfork ${this.hardfork()}, minimumHardfork: ${minHF}`,
+ `${qip} cannot be activated on hardfork ${this.hardfork()}, minimumHardfork: ${minHF}`,
);
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
- if (EIPs[eip].requiredEIPs !== undefined) {
+ if (QIPs[qip].requiredQIPs !== undefined) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
- for (const elem of EIPs[eip].requiredEIPs) {
+ for (const elem of QIPs[qip].requiredQIPs) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
- if (!(eips.includes(elem) || this.isActivatedEIP(elem))) {
+ if (!(qips.includes(elem) || this.isActivatedQIP(elem))) {
throw new Error(
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
- `${eip} requires EIP ${elem}, but is not included in the EIP list`,
+ `${qip} requires QIP ${elem}, but is not included in the QIP list`,
);
}
}
}
}
- this._eips = eips;
+ this._qips = qips;
}
/**
* Returns a parameter for the current chain setup
*
- * If the parameter is present in an EIP, the EIP always takes precedence.
+ * If the parameter is present in an QIP, the QIP always takes precedence.
* Otherwise the parameter if taken from the latest applied HF with
* a change on the respective parameter.
*
@@ -399,11 +399,11 @@ export class Common extends EventEmitter {
* @returns The value requested or `BigInt(0)` if not found
*/
public param(topic: string, name: string): bigint {
- // TODO: consider the case that different active EIPs
+ // TODO: consider the case that different active QIPs
// can change the same parameter
let value;
- for (const eip of this._eips) {
- value = this.paramByEIP(topic, name, eip);
+ for (const qip of this._qips) {
+ value = this.paramByQIP(topic, name, qip);
if (value !== undefined) return value;
}
return this.paramByHardfork(topic, name, this._hardfork);
@@ -420,15 +420,15 @@ export class Common extends EventEmitter {
// eslint-disable-next-line no-null/no-null
let value = null;
for (const hfChanges of this.HARDFORK_CHANGES) {
- // EIP-referencing HF file (e.g. berlin.json)
- if ('eips' in hfChanges[1]) {
+ // QIP-referencing HF file (e.g. berlin.json)
+ if ('qips' in hfChanges[1]) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
- const hfEIPs = hfChanges[1].eips;
- for (const eip of hfEIPs) {
+ const hfQIPs = hfChanges[1].qips;
+ for (const qip of hfQIPs) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
- const valueEIP = this.paramByEIP(topic, name, eip);
+ const valueQIP = this.paramByQIP(topic, name, qip);
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
- value = typeof valueEIP === 'bigint' ? valueEIP : value;
+ value = typeof valueQIP === 'bigint' ? valueQIP : value;
}
// Parameter-inlining HF file (e.g. istanbul.json)
} else {
@@ -449,28 +449,28 @@ export class Common extends EventEmitter {
}
/**
- * Returns a parameter corresponding to an EIP
+ * Returns a parameter corresponding to an QIP
* @param topic Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pos')
* @param name Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic)
- * @param eip Number of the EIP
+ * @param qip Number of the QIP
* @returns The value requested or `undefined` if not found
*/
// eslint-disable-next-line class-methods-use-this
- public paramByEIP(topic: string, name: string, eip: number): bigint | undefined {
- if (!(eip in EIPs)) {
- throw new Error(`${eip} not supported`);
+ public paramByQIP(topic: string, name: string, qip: number): bigint | undefined {
+ if (!(qip in QIPs)) {
+ throw new Error(`${qip} not supported`);
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
- const eipParams = EIPs[eip];
- if (!(topic in eipParams)) {
+ const qipParams = QIPs[qip];
+ if (!(topic in qipParams)) {
throw new Error(`Topic ${topic} not defined`);
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
- if (eipParams[topic][name] === undefined) {
+ if (qipParams[topic][name] === undefined) {
return undefined;
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
- const value = eipParams[topic][name].v;
+ const value = qipParams[topic][name].v;
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
return BigInt(value);
}
@@ -494,25 +494,25 @@ export class Common extends EventEmitter {
}
/**
- * Checks if an EIP is activated by either being included in the EIPs
- * manually passed in with the {@link CommonOpts.eips} or in a
+ * Checks if an QIP is activated by either being included in the QIPs
+ * manually passed in with the {@link CommonOpts.qips} or in a
* hardfork currently being active
*
- * Note: this method only works for EIPs being supported
- * by the {@link CommonOpts.eips} constructor option
- * @param eip
+ * Note: this method only works for QIPs being supported
+ * by the {@link CommonOpts.qips} constructor option
+ * @param qip
*/
- public isActivatedEIP(eip: number): boolean {
- if (this.eips().includes(eip)) {
+ public isActivatedQIP(qip: number): boolean {
+ if (this.qips().includes(qip)) {
return true;
}
for (const hfChanges of this.HARDFORK_CHANGES) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const hf = hfChanges[1];
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument
- if (this.gteHardfork(hf.name) && 'eips' in hf) {
+ if (this.gteHardfork(hf.name) && 'qips' in hf) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
- if ((hf.eips as number[]).includes(eip)) {
+ if ((hf.qips as number[]).includes(qip)) {
return true;
}
}
@@ -615,18 +615,18 @@ export class Common extends EventEmitter {
}
/**
- * Returns the hardfork change block for eip
- * @param eip EIP number
+ * Returns the hardfork change block for qip
+ * @param qip QIP number
* @returns Block number or null if unscheduled
*/
// eslint-disable-next-line @typescript-eslint/ban-types
- public eipBlock(eip: number): bigint | null {
+ public qipBlock(qip: number): bigint | null {
for (const hfChanges of this.HARDFORK_CHANGES) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const hf = hfChanges[1];
- if ('eips' in hf) {
+ if ('qips' in hf) {
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
- if (hf.eips.includes(eip)) {
+ if (hf.qips.includes(qip)) {
return this.hardforkBlock(
typeof hfChanges[0] === 'number' ? String(hfChanges[0]) : hfChanges[0],
);
@@ -734,7 +734,7 @@ export class Common extends EventEmitter {
}
/**
- * Returns an eth/64 compliant fork hash (EIP-2124)
+ * Returns an eth/64 compliant fork hash (QIP-2124)
* @param hardfork Hardfork name, optional if HF set
* @param genesisHash Genesis block hash of the chain, optional if already defined and not needed to be calculated
*/
@@ -816,7 +816,7 @@ export class Common extends EventEmitter {
/**
* Returns DNS networks for the current chain
- * @returns {String[]} Array of DNS ENR urls
+ * @returns {String[]} Array of DNS QNR urls
*/
public dnsNetworks(): string[] {
return this._chainParams.dnsNetworks!;
@@ -855,11 +855,11 @@ export class Common extends EventEmitter {
}
/**
- * Returns the active EIPs
- * @returns List of EIPs
+ * Returns the active QIPs
+ * @returns List of QIPs
*/
- public eips(): number[] {
- return this._eips;
+ public qips(): number[] {
+ return this._qips;
}
/**
diff --git a/packages/web3-zond-accounts/src/common/enums.ts b/packages/web3-qrl-accounts/src/common/enums.ts
similarity index 96%
rename from packages/web3-zond-accounts/src/common/enums.ts
rename to packages/web3-qrl-accounts/src/common/enums.ts
index 779143a2..688ad7f9 100644
--- a/packages/web3-zond-accounts/src/common/enums.ts
+++ b/packages/web3-qrl-accounts/src/common/enums.ts
@@ -32,5 +32,5 @@ export enum ConsensusAlgorithm {
export enum CustomChain {
// NOTE(rgeraldes24): one entry is required for now
- CustomZond = 'custom-zond',
+ CustomQRL = 'custom-qrl',
}
diff --git a/packages/web3-zond-accounts/src/common/hardforks/index.ts b/packages/web3-qrl-accounts/src/common/hardforks/index.ts
similarity index 100%
rename from packages/web3-zond-accounts/src/common/hardforks/index.ts
rename to packages/web3-qrl-accounts/src/common/hardforks/index.ts
diff --git a/packages/web3-zond-accounts/src/common/hardforks/shanghai.ts b/packages/web3-qrl-accounts/src/common/hardforks/shanghai.ts
similarity index 99%
rename from packages/web3-zond-accounts/src/common/hardforks/shanghai.ts
rename to packages/web3-qrl-accounts/src/common/hardforks/shanghai.ts
index 641dca44..508fa301 100644
--- a/packages/web3-zond-accounts/src/common/hardforks/shanghai.ts
+++ b/packages/web3-qrl-accounts/src/common/hardforks/shanghai.ts
@@ -1,6 +1,6 @@
export default {
name: 'shanghai',
- comment: 'Start of the Zond main chain',
+ comment: 'Start of the QRL main chain',
url: '',
status: '',
gasConfig: {
diff --git a/packages/web3-zond-accounts/src/common/index.ts b/packages/web3-qrl-accounts/src/common/index.ts
similarity index 100%
rename from packages/web3-zond-accounts/src/common/index.ts
rename to packages/web3-qrl-accounts/src/common/index.ts
diff --git a/packages/web3-zond-accounts/src/common/eips/index.ts b/packages/web3-qrl-accounts/src/common/qips/index.ts
similarity index 93%
rename from packages/web3-zond-accounts/src/common/eips/index.ts
rename to packages/web3-qrl-accounts/src/common/qips/index.ts
index 5c65774a..c2b047b7 100644
--- a/packages/web3-zond-accounts/src/common/eips/index.ts
+++ b/packages/web3-qrl-accounts/src/common/qips/index.ts
@@ -15,4 +15,4 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-export const EIPs: { [key: number]: any } = {};
+export const QIPs: { [key: number]: any } = {};
diff --git a/packages/web3-zond-accounts/src/common/types.ts b/packages/web3-qrl-accounts/src/common/types.ts
similarity index 98%
rename from packages/web3-zond-accounts/src/common/types.ts
rename to packages/web3-qrl-accounts/src/common/types.ts
index df28e7b8..5fbc5a42 100644
--- a/packages/web3-zond-accounts/src/common/types.ts
+++ b/packages/web3-qrl-accounts/src/common/types.ts
@@ -77,10 +77,10 @@ interface BaseOpts {
*/
hardfork?: string | Hardfork;
/**
- * Selected EIPs which can be activated, please use an array for instantiation.
+ * Selected QIPs which can be activated, please use an array for instantiation.
*
*/
- eips?: number[];
+ qips?: number[];
}
/**
diff --git a/packages/web3-zond-accounts/src/common/utils.ts b/packages/web3-qrl-accounts/src/common/utils.ts
similarity index 99%
rename from packages/web3-zond-accounts/src/common/utils.ts
rename to packages/web3-qrl-accounts/src/common/utils.ts
index 7c937257..a2c07c32 100644
--- a/packages/web3-zond-accounts/src/common/utils.ts
+++ b/packages/web3-qrl-accounts/src/common/utils.ts
@@ -49,7 +49,7 @@ const intToHex = function (i: number) {
};
/**
- * Converts Gzond genesis parameters to a ZondJS compatible `CommonOpts` object
+ * Converts Gzond genesis parameters to a `CommonOpts` object
* @param json object representing the Gzond genesis file hardfork
* @returns genesis parameters in a `CommonOpts` compliant object
*/
diff --git a/packages/web3-zond-accounts/src/index.ts b/packages/web3-qrl-accounts/src/index.ts
similarity index 87%
rename from packages/web3-zond-accounts/src/index.ts
rename to packages/web3-qrl-accounts/src/index.ts
index 677d6ef2..7ad776a6 100644
--- a/packages/web3-zond-accounts/src/index.ts
+++ b/packages/web3-qrl-accounts/src/index.ts
@@ -16,14 +16,14 @@ along with web3.js. If not, see .
*/
/**
- * The web3.zond.accounts contains functions to generate Zond accounts and sign transactions and data.
+ * The web3.qrl.accounts contains functions to generate QRL accounts and sign transactions and data.
*
* **_NOTE:_** This package has NOT been audited and might potentially be unsafe. Take precautions to clear memory properly, store the private keys safely, and test transaction receiving and sending functionality properly before using in production!
*
*
* To use this package standalone and use its methods use:
* ```ts
- * import { create, decrypt } from '@theqrl/web3-zond-accounts'; // ....
+ * import { create, decrypt } from '@theqrl/web3-qrl-accounts'; // ....
* ```
*
* To use this package within the web3 object use:
@@ -33,7 +33,7 @@ along with web3.js. If not, see .
*
* const web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8546');
* // now you have access to the accounts class
- * web3.zond.accounts.create();
+ * web3.qrl.accounts.create();
* ```
*/
diff --git a/packages/web3-zond-accounts/src/schemas.ts b/packages/web3-qrl-accounts/src/schemas.ts
similarity index 100%
rename from packages/web3-zond-accounts/src/schemas.ts
rename to packages/web3-qrl-accounts/src/schemas.ts
diff --git a/packages/web3-zond-accounts/src/tx/address.ts b/packages/web3-qrl-accounts/src/tx/address.ts
similarity index 97%
rename from packages/web3-zond-accounts/src/tx/address.ts
rename to packages/web3-qrl-accounts/src/tx/address.ts
index 3caa748b..57c1866f 100644
--- a/packages/web3-zond-accounts/src/tx/address.ts
+++ b/packages/web3-qrl-accounts/src/tx/address.ts
@@ -65,7 +65,7 @@ export class Address {
}
/**
- * Returns the zond address of a given public key.
+ * Returns the qrl address of a given public key.
* Accepts "Dilithium5 public keys".
* @param pubKey The Dilithium5 public key
*/
diff --git a/packages/web3-zond-accounts/src/tx/baseTransaction.ts b/packages/web3-qrl-accounts/src/tx/baseTransaction.ts
similarity index 99%
rename from packages/web3-zond-accounts/src/tx/baseTransaction.ts
rename to packages/web3-qrl-accounts/src/tx/baseTransaction.ts
index b6beba3a..8adf98a9 100644
--- a/packages/web3-zond-accounts/src/tx/baseTransaction.ts
+++ b/packages/web3-qrl-accounts/src/tx/baseTransaction.ts
@@ -42,7 +42,7 @@ interface TransactionCache {
/**
* This base class will likely be subject to further
* refactoring along the introduction of additional tx types
- * on the Zond network.
+ * on the QRL network.
*
* It is therefore not recommended to use directly.
*/
diff --git a/packages/web3-zond-accounts/src/tx/constants.ts b/packages/web3-qrl-accounts/src/tx/constants.ts
similarity index 94%
rename from packages/web3-zond-accounts/src/tx/constants.ts
rename to packages/web3-qrl-accounts/src/tx/constants.ts
index b6841ca8..48f4b8d6 100644
--- a/packages/web3-zond-accounts/src/tx/constants.ts
+++ b/packages/web3-qrl-accounts/src/tx/constants.ts
@@ -21,7 +21,7 @@ along with web3.js. If not, see .
export const MAX_UINT64 = BigInt('0xffffffffffffffff');
/**
- * The max integer that the zvm can handle (2^256-1)
+ * The max integer that the qrvm can handle (2^256-1)
*/
export const MAX_INTEGER = BigInt(
'0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
diff --git a/packages/web3-zond-accounts/src/tx/eip1559Transaction.ts b/packages/web3-qrl-accounts/src/tx/eip1559Transaction.ts
similarity index 99%
rename from packages/web3-zond-accounts/src/tx/eip1559Transaction.ts
rename to packages/web3-qrl-accounts/src/tx/eip1559Transaction.ts
index 9b7f63bf..4f0da257 100644
--- a/packages/web3-zond-accounts/src/tx/eip1559Transaction.ts
+++ b/packages/web3-qrl-accounts/src/tx/eip1559Transaction.ts
@@ -14,7 +14,7 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { keccak256 } from 'zond-cryptography/keccak.js';
+import { keccak256 } from 'qrl-cryptography/keccak.js';
import { validateNoLeadingZeroes } from '@theqrl/web3-validator';
import { RLP } from '@ethereumjs/rlp';
import { bytesToHex, hexToBytes, uint8ArrayConcat, uint8ArrayEquals } from '@theqrl/web3-utils';
diff --git a/packages/web3-zond-accounts/src/tx/index.ts b/packages/web3-qrl-accounts/src/tx/index.ts
similarity index 100%
rename from packages/web3-zond-accounts/src/tx/index.ts
rename to packages/web3-qrl-accounts/src/tx/index.ts
diff --git a/packages/web3-zond-accounts/src/tx/transactionFactory.ts b/packages/web3-qrl-accounts/src/tx/transactionFactory.ts
similarity index 100%
rename from packages/web3-zond-accounts/src/tx/transactionFactory.ts
rename to packages/web3-qrl-accounts/src/tx/transactionFactory.ts
diff --git a/packages/web3-zond-accounts/src/tx/types.ts b/packages/web3-qrl-accounts/src/tx/types.ts
similarity index 96%
rename from packages/web3-zond-accounts/src/tx/types.ts
rename to packages/web3-qrl-accounts/src/tx/types.ts
index 8855f558..509e31ac 100644
--- a/packages/web3-zond-accounts/src/tx/types.ts
+++ b/packages/web3-qrl-accounts/src/tx/types.ts
@@ -14,7 +14,7 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import type { Numbers, ZPrefixedHexString } from '@theqrl/web3-types';
+import type { Numbers, QPrefixedHexString } from '@theqrl/web3-types';
import type { Common } from '../common/common.js';
// eslint-disable-next-line require-extensions/require-extensions
@@ -61,7 +61,7 @@ export interface TxOptions {
*/
export type AccessListItem = {
- address: ZPrefixedHexString;
+ address: QPrefixedHexString;
storageKeys: PrefixedHexString[];
};
@@ -106,10 +106,10 @@ export type TxData = {
/**
* The transaction's the address is sent to.
*/
- to?: Address | Uint8Array | ZPrefixedHexString;
+ to?: Address | Uint8Array | QPrefixedHexString;
/**
- * The amount of Zond sent.
+ * The amount of Quanta sent.
*/
value?: Numbers | Uint8Array;
diff --git a/packages/web3-zond-accounts/src/tx/utils.ts b/packages/web3-qrl-accounts/src/tx/utils.ts
similarity index 100%
rename from packages/web3-zond-accounts/src/tx/utils.ts
rename to packages/web3-qrl-accounts/src/tx/utils.ts
diff --git a/packages/web3-zond-accounts/src/types.ts b/packages/web3-qrl-accounts/src/types.ts
similarity index 100%
rename from packages/web3-zond-accounts/src/types.ts
rename to packages/web3-qrl-accounts/src/types.ts
diff --git a/packages/web3-zond-accounts/src/wallet.ts b/packages/web3-qrl-accounts/src/wallet.ts
similarity index 88%
rename from packages/web3-zond-accounts/src/wallet.ts
rename to packages/web3-qrl-accounts/src/wallet.ts
index 7aee0a2c..96de2ea9 100644
--- a/packages/web3-zond-accounts/src/wallet.ts
+++ b/packages/web3-qrl-accounts/src/wallet.ts
@@ -23,7 +23,7 @@ type BrowserError = { code: number; name: string };
/**
* Wallet is an in memory `wallet` that can hold multiple accounts.
- * These accounts can be used when using web3.zond.sendTransaction().
+ * These accounts can be used when using web3.qrl.sendTransaction().
*
* ### Parameters
* Web3AccountProvider - AccountProvider for the wallet
@@ -31,7 +31,7 @@ type BrowserError = { code: number; name: string };
* ```ts
* import Web3 from '@theqrl/web3';
* const web3 = new Web3("https://localhost:8454")
- * web3.zond.accounts.wallet
+ * web3.qrl.accounts.wallet
* > Wallet(0) [
* _accountProvider: {
* create: [Function: create],
@@ -88,17 +88,17 @@ export class Wallet<
* @param numberOfAccounts - Number of accounts to create. Leave empty to create an empty wallet.
* @returns The wallet
* ```ts
- * web3.zond.accounts.wallet.create(2)
+ * web3.qrl.accounts.wallet.create(2)
* > Wallet(2) [
* {
- * address: 'Zde38310a42B751AE57d30cFFF4a0A3c52A442fCE',
+ * address: 'Qde38310a42B751AE57d30cFFF4a0A3c52A442fCE',
* seed: '0x6422c9d28efdcbee93c1d32a5fc6fd6fa081b985487885296cf8c9bbb5872600',
* signTransaction: [Function: signTransaction],
* sign: [Function: sign],
* encrypt: [Function: encrypt]
* },
* {
- * address: 'Z766BF755246d924B1d017Fdb5390f38a60166691',
+ * address: 'Q766BF755246d924B1d017Fdb5390f38a60166691',
* seed: '0x756530f13c0eb636ebdda655335f5dea9921e3362e2e588b0ad59e556f7751f0',
* signTransaction: [Function: signTransaction],
* sign: [Function: sign],
@@ -110,8 +110,8 @@ export class Wallet<
* decrypt: [Function: decrypt]
* },
* _addressMap: Map(2) {
- * 'Zde38310a42b751ae57d30cfff4a0a3c52a442fce' => 0,
- * 'Z766bf755246d924b1d017fdb5390f38a60166691' => 1
+ * 'Qde38310a42b751ae57d30cfff4a0a3c52a442fce' => 0,
+ * 'Q766bf755246d924b1d017fdb5390f38a60166691' => 1
* },
* _defaultKeyName: 'web3js_wallet'
* ]
@@ -134,10 +134,10 @@ export class Wallet<
* @returns The wallet
*
* ```ts
- * web3.zond.accounts.wallet.add('0xbce9b59981303e76c4878b1a6d7b088ec6b9dd5c966b7d5f54d7a749ff683387');
+ * web3.qrl.accounts.wallet.add('0xbce9b59981303e76c4878b1a6d7b088ec6b9dd5c966b7d5f54d7a749ff683387');
* > Wallet(1) [
* {
- * address: 'Z85D70633b90e03e0276B98880286D0D055685ed7',
+ * address: 'Q85D70633b90e03e0276B98880286D0D055685ed7',
* seed: '0xbce9b59981303e76c4878b1a6d7b088ec6b9dd5c966b7d5f54d7a749ff683387',
* signTransaction: [Function: signTransaction],
* sign: [Function: sign],
@@ -148,7 +148,7 @@ export class Wallet<
* publicKeyToAccount: [Function: publicKeyToAccount],
* decrypt: [Function: decrypt]
* },
- * _addressMap: Map(1) { 'Z85d70633b90e03e0276b98880286d0d055685ed7' => 0 },
+ * _addressMap: Map(1) { 'Q85d70633b90e03e0276b98880286d0d055685ed7' => 0 },
* _defaultKeyName: 'web3js_wallet'
* ]
* ```
@@ -160,7 +160,7 @@ export class Wallet<
let index = this.length;
const existAccount = this.get(account.address);
if (existAccount) {
- console.warn(`Account Z${account.address.slice(1).toLowerCase()} already exists.`);
+ console.warn(`Account Q${account.address.slice(1).toLowerCase()} already exists.`);
index = this._addressMap.get(account.address.toLowerCase()) ?? index;
}
this._addressMap.set(account.address.toLowerCase(), index);
@@ -195,11 +195,11 @@ export class Wallet<
* @param addressOrIndex - The account address, or index in the wallet.
* @returns true if the wallet was removed. false if it couldn't be found.
* ```ts
- * web3.zond.accounts.wallet.add('0xbce9b59981303e76c4878b1a6d7b088ec6b9dd5c966b7d5f54d7a749ff683387');
+ * web3.qrl.accounts.wallet.add('0xbce9b59981303e76c4878b1a6d7b088ec6b9dd5c966b7d5f54d7a749ff683387');
*
- * web3.zond.accounts.wallet.remove('Z85D70633b90e03e0276B98880286D0D055685ed7');
+ * web3.qrl.accounts.wallet.remove('Q85D70633b90e03e0276B98880286D0D055685ed7');
* > true
- * web3.zond.accounts.wallet
+ * web3.qrl.accounts.wallet
* > Wallet(0) [
* _accountProvider: {
* create: [Function: create],
@@ -238,7 +238,7 @@ export class Wallet<
* @returns The wallet object
* ```ts
*
- * web3.zond.accounts.wallet.clear();
+ * web3.qrl.accounts.wallet.clear();
* > Wallet(0) [
* _accountProvider: {
* create: [Function: create],
@@ -267,14 +267,14 @@ export class Wallet<
* @returns An array of the encrypted keystore v1.
*
* ```ts
- * web3.zond.accounts.wallet.create(1)
- * web3.zond.accounts.wallet.encrypt("abc").then((res) => console.log(util.inspect(res, { depth: null })));
+ * web3.qrl.accounts.wallet.create(1)
+ * web3.qrl.accounts.wallet.encrypt("abc").then((res) => console.log(util.inspect(res, { depth: null })));
* >
* [
* {
* version: 1,
* id: 'ccb92c3f-94c3-4ca0-86a9-1becdb1855b4',
- * address: 'Z20fd3c13848a14e2ec61a53492140c26034e3fd6',
+ * address: 'Q20fd3c13848a14e2ec61a53492140c26034e3fd6',
* crypto: {
* ciphertext: '9171df3615b852a8c899c0a86885fa2d932db27c17b212ee346cdad1be896736c32e48f6d8d9d2b6ff210d2454d2cc9c736147293dd47d4be0e104105599b11c',
* cipherparams: { iv: '259d7d6b79c11d3f2e4b88da' },
@@ -308,11 +308,11 @@ export class Wallet<
* @returns The decrypted wallet object
*
* ```ts
- * web3.zond.accounts.wallet.decrypt([
+ * web3.qrl.accounts.wallet.decrypt([
* {
* version: 1,
* id: 'ccb92c3f-94c3-4ca0-86a9-1becdb1855b4',
- * address: 'Z20fd3c13848a14e2ec61a53492140c26034e3fd6',
+ * address: 'Q20fd3c13848a14e2ec61a53492140c26034e3fd6',
* crypto: {
* ciphertext: '9171df3615b852a8c899c0a86885fa2d932db27c17b212ee346cdad1be896736c32e48f6d8d9d2b6ff210d2454d2cc9c736147293dd47d4be0e104105599b11c',
* cipherparams: { iv: '259d7d6b79c11d3f2e4b88da' },
@@ -331,7 +331,7 @@ export class Wallet<
* >
* Wallet(1) [
* {
- * address: 'Z20FD3c13848A14e2EC61A53492140c26034E3FD6',
+ * address: 'Q20FD3c13848A14e2EC61A53492140c26034E3FD6',
* seed: '0x1a3bbb0aa289420ef915059a093cfed7e92990043b01ba8b5407a56aafae5507576781603015f6db7d33920a4947a261',
* signTransaction: [Function: signTransaction],
* sign: [Function: sign],
@@ -342,7 +342,7 @@ export class Wallet<
* seedToAccount: [Function: seedToAccountWithContext],
* decrypt: [Function: decryptWithContext]
* },
- * _addressMap: Map(1) { 'z20fd3c13848a14e2ec61a53492140c26034e3fd6' => 0 },
+ * _addressMap: Map(1) { 'Q20fd3c13848a14e2ec61a53492140c26034e3fd6' => 0 },
* _defaultKeyName: 'web3js_wallet'
* ]
* ```
@@ -372,7 +372,7 @@ export class Wallet<
* @param options - (optional) encryption options
* @returns Will return boolean value true if saved properly
* ```ts
- * web3.zond.accounts.wallet.save('test#!$');
+ * web3.qrl.accounts.wallet.save('test#!$');
* >true
* ```
*/
@@ -404,9 +404,9 @@ export class Wallet<
* @returns Returns the wallet object
*
* ```ts
- * web3.zond.accounts.wallet.save('test#!$');
+ * web3.qrl.accounts.wallet.save('test#!$');
* > true
- * web3.zond.accounts.wallet.load('test#!$');
+ * web3.qrl.accounts.wallet.load('test#!$');
* { defaultKeyName: "web3js_wallet",
* length: 0,
* _accounts: Accounts {_requestManager: RequestManager, givenProvider: Proxy, providers: {…}, _provider: WebsocketProvider, …},
diff --git a/packages/web3-zond-accounts/test/.eslintrc.js b/packages/web3-qrl-accounts/test/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-accounts/test/.eslintrc.js
rename to packages/web3-qrl-accounts/test/.eslintrc.js
diff --git a/packages/web3-zond-accounts/test/config/jest.config.js b/packages/web3-qrl-accounts/test/config/jest.config.js
similarity index 100%
rename from packages/web3-zond-accounts/test/config/jest.config.js
rename to packages/web3-qrl-accounts/test/config/jest.config.js
diff --git a/packages/web3-zond-accounts/test/config/setup.js b/packages/web3-qrl-accounts/test/config/setup.js
similarity index 100%
rename from packages/web3-zond-accounts/test/config/setup.js
rename to packages/web3-qrl-accounts/test/config/setup.js
diff --git a/packages/web3-qrl-accounts/test/fixtures/account.ts b/packages/web3-qrl-accounts/test/fixtures/account.ts
new file mode 100644
index 00000000..cdb7048e
--- /dev/null
+++ b/packages/web3-qrl-accounts/test/fixtures/account.ts
@@ -0,0 +1,360 @@
+/*
+This file is part of web3.js.
+
+web3.js is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+web3.js 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with web3.js. If not, see .
+*/
+
+import {
+ InvalidKdfError,
+ InvalidPublicKeyError,
+ PublicKeyLengthError,
+ InvalidPasswordError,
+ IVLengthError,
+ InvalidSeedError,
+ SeedLengthError,
+} from '@theqrl/web3-errors';
+import { CipherOptions, KeyStore } from '@theqrl/web3-types';
+import { hexToBytes } from '@theqrl/web3-utils';
+import { FeeMarketEIP1559TxData } from '../../src/tx/types';
+import { sign, signTransaction, encrypt} from '../../src/account';
+
+export const validPublicKeyToAddressData: [string, string][] = [
+ [
+ '0xd64a1cc77db0e77b70ee2cd5bbca52b06dde43423e03d8fb9f76e9698d15111a6b6042e9e2757edff6ddf54ea4c9656c6d6354ad538f308a2be1e67f4d39feb7765e31f048cc3403dd967fcdd405f3ef4817bb7bc70691d7129f2e4a10a7fd6b050ce306f77083c48f97b984e5f8232cc17473b55adf92a1fa2a31b0fbde0dba752530a7a4626b863f6deebb05695ad788df09ee49da26771ff5278445384dbc74b487486741077a58fa6881814f0cb99a502d4d384cb9b78b0bca4a681a6de448ddd25b6833b744a80bd9632b4dea700e00f9483a7e272691a8d77e4786dd311b41ec9933534e1b1cf1a402cbfefce230eb76bc5061be6d2902a18e35002743359a81b4dcb9da657af0bb1429bc757e6d2e5791299b07e8e5d65168c76d0e8b8a723466ab86a2f3ed53ccda578c60317052a5bb0d25caaabd4dde849dafecb4cd97e9213f4c8a4a2c317fae51d7d3371062d8381c925c686fced1213c8d930f6cf249e1a5a2d7ec160df0d82c2c7422b3fb258fca2a8db0ed4218137167cfaf37b7d8cfa3573b5e23f3694f21d41a1da987db1fbbcb579987e1928150f478987c8e7aad4833f2ea692014b5902153c95ab438e12d0b4d2f1436971f476fbd85947189dc0d6d37d91e76389aa52068fa3c501357aedcfbbf7a776e5950654034f8368a3df5e426713f6eeb7ae4e2d3467853dbb19e0d850e61eeac4dd7a5c010b6748872734a3cbee90e2bbf8e876682a1d9ee174e858a59ea081439c711e64c05ae3640b661038e251c33f0b7acff793061c87e843aa8389c0dad50d3ce5c217f9c2b37450378c3642c31cff85a7231df6dd5970c7fb26e8016afb29b355331fde585f0daed5e3c36f8fa3250fd18831d770342ac0272dc59e95ad03902917afe3dabd73cff58f02d60f29cc60074999d1ff152fcd8be139eee3aab59a512dc3a7d50cf534229420d96c38cb4b7c7e8bd806b5abe8c7bd12e427bc74039798e7b6fbcb4f4ecd851015a1a8962b15e83d4d8a4794307581d8736130a15c522de42dbf0bc331ab52443b17f222f7f534630e9d20a0aced9876b1911b6f808143a1e1265393568df45e0a02ea53ab24039faf4cf176f19a110322fb71afbd945572fe367c77d0c1dbfec85a8731a2e39bd41eb9e44bf0dfdc1ee1f564d06ad7c1adbf196ef31f2bd0247c674bdf3b416121aa49079cc69b9643829d7ae05a7213d31b8c9d334b441ebfb96cae49791130676e83bad0af57d5ec22d4e3e2c2a0977ed0560567a5c852a4916a39a15fb43a35c38680f9d88d5268327b211c4af40e93a6a121c9907ef9ef5d3d545cbbe504070c0acceacfa6df8e0b444573ecb2229fe850f6b44869065f2fccaf838af7b20cc8093aceced65b10a665fbd4a8ea513229642269e9cb9f5a7428d1c4aec329ef28e55ab3b0fe2658318b8681eae65f201dd387a32c4713bf8f1982ea91c0240f466c772ce5d203bfbb51e335ec3fd807ad7bb93691328721d970b7dfbf1c93550670da8e87fe27c9b8954916e8681095452b0dabbabacdc0a427586855d46618f164fce04f9fc57d40a1326d3fa968bd28f069a03ee558dd4cc063c8b77ca2d3f35dec70b0a12ad54be9e9871c43a3850707a4188166860c337e6026338e6ca6d3e4467a57c67e6ed64de11e377ebbbb581ccbe8d636a763797508d2848a13db3246c5232783905007d0c8529e6224d7a7985c59f12b8ba1e7c6d489da4e7d66ef9b0e4d9c1d040699107d6fa957defecb7243e3fada84ab90880070e2c4e7b5fe26fc630a70ebe89f418c14616e36c4a2902e3fdc8a2597c73ccbbf39d9a530bde406ccddbaac26af94125b0d9daeacfc160056e9e935e31277130bf5ad379e41fc25c62a96000cd50eda3b3f7857e4e6e481a923046e40e889313fa96948535196fe96e346513a9527475a9dedf1664b65e8cc8fef9af8bee1e7cc404710515f7ffb2361b40eebc317972766a79e86d0c29f042d153d877961f5459228e486d06a6b05c0eae71e8f14433db14528e10cd069e9dd3f10fa0d0ba8240ade03aedd0b25f7c80a54dae007f0c7b60d3fed7e1a2e055e6e5b16ff10bbf853f9d774951d1d0c40b724e26b4922a28f3acae60427e173dedcd359e2af2b9e08360996788fab227597043777e6d9eff5918ce99ada8b117f2395d500bbfcb0c528fb0ec0c90e5eddf28b56a4b6397ba0ae0ed20c67ccd78fce12c90f5465f68c820cb5342c1613b46c60fe329df2a9c338df3cf53cb6e17f8b25a798062bf2af6750aa877c0477b4796679dbb7e276f87c6df6341085cf7e98d2d3135561ec62795b39e47a16440ebdd98258662ef59a3e8cb2c2e09b660eabb55417ec810102c2378547f2a48736c1504e5efe2560ea4f5720865f8634541868acca16ae7904c563031a5c1de2c07a3118a3bb01f3c32c53aeda2cee111afce49c663bcc80a26d93ff3daa24a12678483fc6012e8b03bb92c7581da64249fc9d9c04cda20579ba24286fa21b21e7bbecc0e6222446532a00d581729db8cacdbca0b19f18e04600fd24c450737e16456fdefd37ba35c98f2cb6b1b3c4d329359b1e877cc8673d65fb7c1fa63ef6313ca7f51af60283a935d63403f7ca39818065d5dac105e81a95590c15f1991c397b980515d70bcd307dc7f9d2915f6e02db06927fd87274a0243ffaed29443e470b77d3bd7d0c55eb7af0674e8ab2b7136f45df1483bdc70380c0c0afa49033bd242020a126feb019cd819b6bc51a77eca7b1682066e73fe2db3eb01bfee0fe425ec0e03e1de4ff836657240f5890bf747f8301be29fe69280fd6403cabfd6ef4b97333cc351c606da702bef947b03c631178f48be47bc55ad42b9eacb81becd0b5d5bb5bff131b83df3a1ef2ec17383e263ac7c7ee6707a09ca1afb663d10c0376bcd7022eab9b25b01bdd584435711d0c28b2a8012ecd2b6f76469471799ff4a9940d2a1c19cb1730420c3ae806aef91249ec5a4b685adafbe4b58f5a4ac805c9013bcb9b937f616df6e9028e3a8a1148df3d665efac36c998976bdd1742abcbd583051102e5aad527335a62f6f3847115937475e7ba3643dd41c3b9fb021f9a4e57c8880f317d59ba3ddc0c95cfdfcd87eace88b03cb935ce35b4e4f8a7fcbb3c548f057d78a830379794f4328469e7be857607a5ea6f21090a4d7aab7243dd6e4f731f9db911216bda4a7b2b6a671c11617df3c2a772d0e91b8232f01f89a3a25cefb39ff50140e6fdaa8b4015a150841231fee3943b3c853da72f1fcf068682afee972f586d4a3a2ff06fbb9b19cd3ef7be2f8f735cdf500c36e41f67740b4e03459073c5f80db6488b25c24263f5d0b57ebb798bd0ae7d720103c7169e7500b95cb63ec5cff2ec6d0bd0ba5f69b3635e124f6bde5332a873eb515c8e57a99ca154e66582394122175361e9ef908356429ea2a3c6c85c1dd351b3b6d957905636ed9472eacc78d2a80ee7b01af018551fa3b26a5305d1d0b39869c903cb6e8317d5f027959bf57cd8b79033e5e7921e4f1da4e1ba09f4149caf93286e1f03efaed4d9bdec4050e488b088830d974543ab21cf0bf7fce1012802fb0b7e2a2ea85137064238bdd7399e28360bdac3b16d608f3a43a67b66469313925cadabe31ff5f9726d8cd850324b',
+ 'Q208b13bde416DF6e4Dd37E0C38Eaf0A8E05a9780',
+ ],
+ [
+ '0x7ebe91aa142f5bc260e1c737bccc46890c193e72b8310670a972d5c2ce647bd146d6584ce8804d52f1f412e56ee653e13beb63c8505e885c4b260d0762dbc5d8b151e86e94212eee8f98d02a69ea5618f17596a0f93f38751da6197fb68dfa848bc66896ca44281b5a5958c418033a43b8606938f77d8847374096c14aec283072f93d78096dd234b37d925c3aea97be95f83d96d4c183c738ad40e1ef82514dd54306f6fd200cee43ace14a8fd80e72088189ec4f2bbeb067607c8f2b1b7fd77ac474713cc428beaebc5ab7bd0c2825bc2d8d77903bd966204b4f87bc7df9eeb3eafebfe2f288ef7a743e4257de5837563c703f2c6b84e0ac7a66f92ba8fd08c2de9f5c81a108e60330a070ead18a35e39b109981b95ce7f3328666c10572a36a96ea342b27979191b3967f32038bf13942388b4d40d8ffc4fd919214811970567c8dde120807272af74165d6e43c966ac6d547c10c1f73db2c7835bae289667efbde24ad5510b5ff31755d4b71da9085ae44a644e1660f49a75b9e5e1ef7ca1aa608214eadd2c00e606937230a14d979b4fb65e7faa593004f478e3134861d93e7d3871dc1294ef28e1e4550fc87f0ff28db457716365a4f4b34787cecaaebd848cd30f902e7df85a11668baab39b8b4616418987fd734c90082b2d8fcc274412c171095c32466fdb5c4c8f729a4f71cb1862dabe89e9e52a2e065f87ef3d45ee4eefc0505921e1a987c05f5681f23bd3d4a571a186c29339bef27aca21ade90a3997afe12c50afdde466403956ce90deccb40d508c0675a68297d4b9ac9657454d4a4069a1b4e9d6d96e805555af1d46317428450417094582d65cd5da7a25457b926e87b18c09f3a11a2d544bffd0e6e1ee5ca6f8a05a53a3610c104ac4ddf62eba69cd52c970d252ed33d3ef76e9ccee18a10ad3134efd9da82a6537698a624f3ee66750bb8e9b0fdbdfac907399de563c5bda1275e7c1c35d34e066306cdf9529558b41107094dc718e5c33f89a28cbbb5ce438ca0e11a85a0ec35af8aa9c5a5094bc881ef4c86520703a83373f3a57927a129d3e88f3b55e7f90aa6d879aa657d6dc3e6c6ce648835029db4abfd675ac5209e6b5d18c9eb7ebc4a6c4c2bac7fb630bb3d88c585e91be9fa5f35dbbbb8f3cc6213f71aec195f31288a4e1b0a3911cc9c42877551bd39fb2623c9ad0cc705835dd97c1a28a04ece1d8e85449b2db68825c092cfb07d602c48b2459286b8f666ff66ffc54c9ee71ae231d0295bcdfab83c1ae9038e22f2fcdd189e5cab5880f56e2a726db4ba2c87ad8a1a44a6892ad99c3d007d5e380f4eba4369cfc8587de11fec82fcff3c91b57f05e62e6850b099436e40c642334958525d55170079e9662bbf70eb7e7e922a88e06621281e14b23869c0ae0df1526205531462993859d996ce573521c172df5e93ce4d5611f87cc67218705fd561073e792b74b8789b4c85b1c0a0dad909790ac1d1ab71abb90718956129f7f32e3f4db3f1ed43c569d65c465b70a89f39a4433eb5a5626819fbae5cf09d4d5c885584521e7a3511af52ca3d72804e56b9b4492529fa155c908eee332d90dd6d4b3c0e5c17872ba6cfb69573ef76661f16b9cbd10f8d03998a0f61cf467ad130391ef596b9cf5a78443aa8acb27c732fe605d5866b1679137cf9d7e2fa7ea1f7ab3e2b0c571ab91dd1dda7fa398e781f2c81fcf535e4e9a0341d3308b27db2413e3cfb0bac86ecfb9bbf123cac1e196ca478df0c14f5de41722f691281275c07d9955b2673047271816a8a1f17108db9784e71323c146d7b0dd21e450d7f66440cc45359e143cc3d87bd577e75e207583113d536bd1283b2db583c45e3d88b2303044e89a758490633043b1f88f1367189640986ef9b8687acb9996f1441cdf6553dabc104ae591efad4e02292ac0ee9652d769b0cb10255707bef0c6635b0d5cb2456520fe4cf65775f58250be8149468b87038d7a4098f74568cb1f8ed2dbb05aaa274cfb3dc517027eeca7e8ec08fe5e55e3ea814526ea59f0aa3e748acc8d1a5cb3f1f9141c3314539580edd9329bc6ef2b29526a236dc9a0b6d31c6acb4d6ffa9bad65e9d1eabac897a45f02adaaf387e9046b44ad30686b6fb004681c2979c2c483d3171bfee21ae01553251ebc955a635b2ec1e3404d82f0b40ebf6f57d96afecdc8801eabf0399c59a94d2c68bd31168681179be10b467a6f7d6bbdc9c7dce2badb07d08131c1e544cb718f19488179f27f8e36136adde46fb0cd4c95470bdcf2bd1ce1e9605667bf9a88868d65a5a3afbb6a033a2a2aebf049542a59bdc249ddac8491b514f4f0597d0e65b03f63c1e4655bbb67afd39c829cadbfbbc2bc30c07df35d6b2c33af7db49d1881ed77fbaad8fa193b274a2f4549c4b51e7c6bdda41e28b97e32486323cd3adac1b3d30360e11f79ee123024d2ce771f3559a4c74f2f53402c2a1744e8c801576374c3632fb73e027229237a2eb6a17dd73ac91bbb38436f5bd95e12205bb651f0151a5b6a78f09c1427cee8ec4300e35e60eae2a8462ca56f8eb8142a45f56baf2efb33fdeea5781c87324813583a32bcbe525a5ddce6e6c6b00f0a89dc46f9fe852ce8f4613cfb425ef51362d43e545ebf702fa94bdd667e012f99fd2ac21141e975b841a22a0c99897e5df5429b84ce543591fe4e23f6e073dbf2fcba2e1c15f8a248403069ef890950eda72ec02af5fcc4e792e6d270748a564cae949da0cea0dfdac21ac1dd05130e14c245c1ecc7170a896dc17cb2b2714fe490e628b3c405d164455a11a4bc30493696243449ddfddfa54f2d8627c829e5e11530f4d899586e5a27ea6d4b58ab883c03738540098475dc5d5129a2dfd223e55ed19ce6051cd3135e065ecc40e094ae2450534270d43922ad5a8a906f1d15e3f2ae5bea7955d9038729597169a59bec55906a2df631b06438eb878f2ca73d0dfa031ce73e7f2d16b28edfdf6fbe0083428c34afc50b9d6cc22d4014c69c7ead61f7046ab760e6f0b25dd8f5131a2d8fe6c0ba7165e6f369df539c91ccb769d745163052018a2754d0dd3c90817cb763858ceba519804c82dcf17c238d89991e6ac4d7f04dbb187e2b4200c3c95c8e8061647e22b2aab38a0cf0e8fcc1461b7cedf92f28bd2ff671eab90307e5602f918d6c46f676e63fec80a5f2e418f77aa2bead7e25c908be21723488b35e29faee3d64d9ca72b2aeddefa982cb64a09677a68b4c4d43c296bcbdaa6f1406014665e89d25e875621ec9f1b044b29f1294d2ec231154113bd3032d29a67bf0645e0f6568dc45c5e175c2477f9b058d132fc98d8a7caf0532a7d9e4595e50a1916f37320efbff98b0dedcdd53df9ceff014ccf47db85ac4f3e574681d9f6192db134a7c2e5242ff63231c171bc0a71473d531615f33da5dc3b89332ed2fd0f07ab47bad5291f6bac530bf3fe4c9612e73e04c94d793efa04d2f4f17df281a7297b5b33b03c4ce3f9ab546e866f35c6421a70da4d12f604066aa4faa2f788c72762e689b8080413460899967d20b9af92cbb1cd8561858a7009116d904863e6cb483ebd08ae18e6930e17f89995ebd34818f42ba6048adb19f9e0082b7680ec209a6f6da8d6df1ad735bee0b5a078f0b16bd54964bfdc7dbaaa0fc570',
+ 'Q20e0934142C8d04EdF630855729132f19C8A846f',
+ ],
+ [
+ '0xdb403f989f30a2fa65f24bef8c53bbae67abcb559b44097098bb505e7b2363609756a85409681d71eb628631fa5df5681a029a8aaf781bc698926f0583942331bf453f047ddc23bc55550f40d7c35b6ee2853a61d509e0c46e0a01b85780c75f28aabb4e555cde8bd4afa04cdeb4a3494ae0f31eb040eaa9322bb6376b91e4062c538e75e206bc92123914c54f130eda1f934edbe201f7a046fe6c6c9d01e5ce5dc64a77ecbaaccb739a0c9fe372a03d9e1b84e646c58367f3f7e151f378e54a5f3469b02ee833c07b6551ffe8005d2ac81e5efc61e0184df5579b9ddd1ffbd8f8ee838d8550f26b476d6f58e2b53feacd67d6d60b0d9044eed39a1295b8980b817396a474375b366efbca7e5f019454f78c007d00c7bc1db2759a7a3a012f1e3753da3b9508913556fe4fca413beaf54cb8f9e9b0f1f0319582bd402017de09ef62394092f487b8707f934e882260f0e24607cee55c5b30410abd4c4b452b32362696d726b056afc797f7e4b81ee72ebf92d679c319970cb87bd11f5b4b808ad899497111f4d0aabb4307d85269f6ad2af26af250731c50e053a68d83ef2ea5f3eb56c395ce04e06281e559785305a3b589a54e7b7988b87632a5c46987ac3c60289dc88f56fd6fd8e1e1589ad55e863baf8dbe2049b5164566bae9a8d469222cf0bb868e2b1f2523a48586a0d5707a8dabd0e60ca4579a1d143f31b4bd803d0f12b3927e1f79c46200f7f0265d26c7e1329b7adb6baffde4b7655f36f88e81a502517b078ddac4f03bf8c48508382e4bcf23ffc3f1654b35b4d07d27d6d9eafb9eff06c8df46bf91e4eef4dc9c9149144cea1c1744fcf8f4d7295210e1c5eac8c5527f02917d9cdbb0b0579d6c1fa8ab6a1bcad2f47b52b2ad7a1116b080f4cfcb5c4ec36d35a6d8d84095541a3397751e58abc9be9aa19af8a49ce7621900be402afcc33f21dddadf2cf20ed5e557b143325cac9b376387f24220d438c2bfc505ea502220544848b734108d010422fbb4832c69609da9f3fc315a4d500ac93d297afe8a71d1a837f6844327f7dfd9ef893c29dd30e394cbd2d1469ddba0ea255f8d3a11c5d5dd09a839b4e68b9c37b29a0a05263e897eff3dfd5595e16f0f0965b72ed0ab107bea58766f6b182e37d93799d8fefd3dd960d46e074ce19fa55b09522b025d7fef70ac91a66337d59feeda32913d7156133f227424fe20710dab11fc935ac5ce97c30eb530f8b1cd1f1f8d062f192cc2e42dcc8025651c4eb2cd026b99b145eaee498ab5186ad59cf337a772c448d05e6cf8d05f49631818eb7010b71ae5aa0dd773f870ba40b6436dd10cc550d9f5cb0c8357240789aae69b3a79dbb8c25508e4623d2346e1b3e5150279c6191e2a36db492f8ef0a1fa50faa8ce6bde2cdc892d9f7a515713ed31e02472aa0447366be58945ab7468c91c05958bc5e31cce33d3d9a339fd15ffc2e39e8ebea1eaf8370c6b4d6b6e0f8d20046ff7fe26752745a82735350f2b9b7b4d05f5c18d5bc0bec3e22010943c9a262d658fd83bd61daa2abdc7dac89f670acc8b1182ba04ab912959e50c8c8ec6a2da12d8b1506809d4ed86798abf0c1be6567e046c5bfd574df076533a87d1a7d3f3574941fad13aaa0e8232f8040b5a37d39d1abc9b7332c00b934ccd9d8b52f5767cee93fb58bfc3b19004a7217602e288add3001af9e590553015264683b614d3c9dccb5f54ede9a491250cb6e51c9eb3b983abb971f4c523fbfa746bf6306aa4cb3774b596e58a030407d47afb92a431ffdca4c33a3c0176beb6d57907ec6cc9a79134d44d7937619e37dad065a625ea987d60e64847e185edb350562f8ca70e6e52ffe81a87dec3accb883c5fd73a0a50dbbedc5b2b4e5e05bb3b18348389ff71c90469bca76bd4b433e4227528010d045e025c38435551129a20dae68b12bfdf278e2a1a068cc2a5b84da4cb2324c57e08e5655785b7d5b82af62ffeaf3a6e68f9e6036009905936a832637cbee9417ef9be6b17ac0f08bdcd13900bf4e84a9cd3a546352a96ad0c3686fb43e65d294944f2cfc50eedac3db99e27c1dfe9b6769c2f0baf01cf46b3c913c0ec4b93ff6999eaca89e57ef0b7c58664175e8c9005540125a15f8a59fc608a5afacb18dd885982ff004123ab380a23ca410c0998b48b69f0db251768d8bbfb9f876a6dac47f0143ca78420c9af93dae7000b050d1e9fc22064e94852aefe345482880cc0f658027aefcefeb63f046346941692cb5fe67b5dbfde98f95b81540ba3973976e861db8c607d221d52d581e3f1dd6a252a8b36858e72fdb4b34a7cec076de8cfa95331b4d6cac895046135f850796eee5ada6ec2890e45fdf730023b76c5fb7f710455fc334077791f24e94be1da2fc153ebfb0f057746dd3e171273839a2b511dc2b0ee65350d7a4f11d85cfedbeeb2a085f22787216ec031a1786d49eb012c8feb2586aa41b2354804823b5a8ee62072e16f85b20b1d289aaa70fb42973b288321dd8d4aa3266c0e2114d05ddf3c8ec042c9cf4597b1ce13e1ab105a52298658e3ca42c68fe23ccb4efc82f7493d4688583f37841d1d308552c3898fec8c063a9156f7a3d89fddd44049a7add58f769baf8e6b602dff6599a08382f859ee1ecee9834bf2276cd30688cfd2a719d5f1a6708ca9a4f1d9da8cebfb98e05afc0a0179795596c0d070923fa25473ea07f9b36059689b9ea2f220f60f47a08ad9b4b53594dcd57d48c580423d2e7981ea662d70f9565a4530cb781120e22e4c6e9ae94596b3a565980204b5429c3e744d4080d7af8a2c6517288b7dc82620c9284d243b7f9db81ddf2aa0a2fefd69fff3b60cac64e13cb324ba3bbc229a03fbadc336e65f591f976c46502ed89d8c55f33fde8fa55ba79ffdab06a3df8aba7c0b0a834400cac7e6bf090d4d9a4a07f61c99bfd415143aff2f572766ba5e7344375da086bbefc55da251f0ac36983ad18c43eea02b4dc3428af89589d2dbcd5bb1ffd2bcc6cd2f9d428b8320743844f181fecd3f62475c7aa2456163ca0e9b5e82ec35d73b414de5e62b3006f3e522eb81ba09359bdbd2ddca77fafa19c03f15749d29716da39b7dd8f2beb4a2d51205e9c56bcc03dd896609459fcbf21206405766004d6f8fe3b557b886e385e4ee1121c8cff72895a878ab2902cc9f1f40fee422af71aedf198ee68113b6392f9fcff751201746b0ce4219bbd9e3e21f93a5e00780df5977363aa6b122dc993e6d08062f2b1735146922ee0814c2014db90f7c756409542bcc8651a49da5fbb4a9a016ca034af5f263e201e4b2e2f9113c2711d522f50ad271fa8b7f6f78a5a989b7f966dd76899875e4ee821c552602921ea599d05266a6be7ad816a98e8a52497626f4cff399b7d292d34a646169b65a36bde064118b9406ffdbae67b7a79532a3f8dd06507fa80fdaee931e0dc2007bd6e665a36d07253104af170296ad73544b9d2807fe6a942f90dd700afcc3b89644bea570f7b5acad62de55aa2da41e1508ed2fdc122532d04f20bee1716afe3bca76674a431fe73f7d29c56eb1e84b864155f27abbe9e8f4d856f55898c7d909f0d46c3335f5afeea3cdb91b488acfe7f8b1ebf56741105f70162d4dd73807e7e3f2db7ee243b1fea17dd209cc19b896e4eedb',
+ 'Q20eB07072ce4C33851b2b397468ea46BDF57f45d',
+ ],
+ [
+ '0xce1a0f0c5ac286b95605d6814fe6fc62bb15b1b24a10bfe6302404577a54ecbbb73ddc730dc78cbfc3e56aeede7f71af054c024a2f29bba9753ad6db0fb7985780ae4cf8bc6b2df1ba0e36b52d29f451a84b2338e45415e32c3bdbebf5323a8e3ca907c6fed49b0ef51f0e56b6d6793625e879a554046931688a99253ae9ff0a2c923aff9879f1ffacdad57b786b00eead006464cc0c0bc77b4ec66f1c4b5d033922e816db7a5672938a66adac90098e4d606cddf5862a0b13fa04ceae099dac247a923c9d64eaea3ecfbbe672934cb84df386f45c5c532ffb2cd2d5e26a04404b1dfbf0dd8c8ff086e0608e554a9d2f47f58b2ee830e0fdb599af8060205aeb06656d6de047824a910d1f5a4f8e664937d0df3cdc29dd03666888692307400d1066bd418b9655086756fc387b6c360fe4ca6594e53a648864a2eae22e0df153f28b6f5b060d96c5c731a411cc8093131180793505ddbf43da5efc7def6f202dbdf75e32114e1e703cbc1d1c370a253f25ed4c96ecc5600738a95c35a233c70c50b38a59d3f2f988997a4174a20dcca6cfbfed10ec5e47fb1cd0db9450400a703f3a67dd0bd506f8de3d69503e5d8cbd3713f82eda75a8bc5477ee701847a43ecf4c080cf713e36a7ad263241b94a51693d60849486cdad625868563f4047b6aa584c75a21ce679d8d2346a6aee29ee405a69ece9fe60ce8afb7c02fe6fa378a337de03ec7cb64a518364707c04821e3f31ec2c77670015d920c3ac5da6523908ba578e7d667caf4a75328087f324e6182e2b0f9b018ff8b6beeb294186c91520f0987c5abc19c50c877ab3fe27a1c36f05376f3e50c4256fd87c4e5daff831aa912a9aafadac3271c512aac76d19aea4797aa3482f798c3db6106ae775fdfcf64a165daf7f62555a9b7311c938ce9075ab7d1722651826bd3b685177592ab207fc68a28ce9279fbc3e156300cda089967c1ff94c895ca084a59a2f7d5a4df5015ef80b4ac337a3360f3102cd604a7b1afa82974174becef1a95fca7177b02179306c6744cc4c3c90469d180ac08f810d7f25bef61b86dc3f27fa422dbb4e5f8c2f5e54938f20b42a2f72c4a2253e8939d3858e73ac7ad5ad52aec2de982f30dc7ab7f759cdd13ea6b56a9849267328bddba386f3585c78a330bc6110270891c8163d06f7f194d45100573452dd11eaf563e40242f686041b20254d0481d086b7801cd7c4e216cc8e3fd07efe326902dbcb892ac3547191b2d927e78b6cbfc9a1c540ae6161241a751d74ad3deb297b119abc44599a0baca10b54b26913457c029061e24f0b53948dc89616da4d57b955fe675e3baf19c9bbf7ac6ab57815eddccfb2f2034c06b568cea0be0e968b5524e8bf2727da84a194b581e16811b40285b0ba832240dffcb78a8cebdbe26aaa037228a37fc54748d1a380d9132b54ff0171e88ae9fb6ccf87688955b7eae75eaf79f5a9bea2dac274215af93f09b4cea375a9ee2d350e1e4f936e433d9009ce5c03b666ccbb0477d68d083f59b472490f6ae68f045209b4d7c9c464ec3438a91e5fc7425e79c566271cc6933b225991a0472e3615741240d2fe31b134a398ef5351d68aa6bb185785293f0470caac8e66b7e4a9dbd7c40b6a4dc4095fd27b7218a9bc1d36247fa8ff4cc0760955b51d31353a917a716cbcfe48983d32b1e27de0e88660e3d874d567ae8f02c0666090d94dfaf47bfeaf50fd7f2025b573d2cfa9f8a0945ce046cc4855fe2c3c38d756d3ed753c02cc1be174c21ff14e6468651726b07e8ca435a5946ed3479c1496b6dea8bc27047f62f4ccfcc72fb564f4306548f47165c6ee6f14e450c191d050d21a36db97018a23b9785bace0ff68f53af2ddf463913bdbfcdbf6b0134841867177459fa33a2da7c171f79bf8c091181fe440ae92b1a13251d98914874b64bb335cd317f376309cb62f1d21d6e758f61f66b8a69853d71073e8e379846fd007b2c0ccfecd73df4aa49dbd265c0ab3c4f410dac37453fd2b0f84f84924cca4072c23908b17b93aab1a43f5ae8eefa0be486af53fe729116e20e6b0bc2398f58ebcbd323452b60d8d6bd1514e5d6bd6ea151028dd4615f55506a4c83b88fabd1e55bf4af953a22685de2fb9cb2473b76d6088105862a740a07b69ee549b1c5ee35bc45aa7cc8f218e0e8ec93b4c8a70c1240f2bf54c55fa0bc2f73dfdba5f24b8eb45bcbb34f4eca1acd80e272aff2c6163c0c7c3442aa8ccfa60946f5bc37483660de9cf42cb8521d95284e491dddc7235ae3e5501951a8118216d4c1e1ea5f069fe08273c590861d8ab2631a545df7a8bd3600ed93a9fec458350c166620bb1746bb85066429821bb5c6693f4b65dca46abdc8ba1e3e0c303c1eff1815691150c8271d6eca99d3333ef79a1ac20abd518cafc9a366e4bdf93f7c9887fa37733f0da895fc9e6254bb52e854d3da6d19e15a2dc6afa27cb81eb168ada4221319aa7704543475f2c3f047dd376a7f3a44b8e7193d0a7a9be5cc0b39c958662adc9d817dce646c557c1ba2f3d5efc696c25589af52ac875804062924451aef04e94475057fde3525cec8b5c2028fc90c3293793c11e73e790b82db568a725bad33aac6957ea4c5bb5251be415653fe4832d39e14f704c43302ad8a80dd523ff7a99d575a80d5b9dbd81144d695eea6144318a83976ba1b73c439368b8e896f9a1381d8ef7549d5581f8310562a0ee3244540ef7a0a381fd48261ed0d5d51c91e69bd610c5c7563c781cdacf05bfd8d651e7236db50d4febea3107987ef6c136ee5cd571254f1b320d6e5c3777be0ce0264f83817c649ccf206ab10b907728cc4878bf3ee2233f297d54a924006e4fb8432996c31399a2b12f565e784c6833e99c0f3b307df756f9cecac6ff66ed37b7b5962cc2030f4403d3b8a995de1191912cbf9fc1183f6f9d6eb7df786234af0ffc6f24446af7b5b0cee501f5e8b7b7e686a6f72b59cb96044a6d41ac5f7961fc8d00c060c59b9c027e52cab4641597293a9290efc53faedddd437014a8ef5c4986e722e8eeae2367ecf5fb5b1e968894978f4e21115ed62ee91da468e1997fe3028e34d0810bf393b43618b4224f01915c55f4d02e42631f6b41358e6746b76576926cfdd2159abb960d522c6392b6c53f889e4530d12c09ff7bb4532819976341474c591db070fa39fce96212c140c8c71628054acea47085b224becd9d8be7efc683c991f6d3b05b300b3ec890fd065984390b2992cbf495099862009afe9d2c561dcd10bc784892a8ce6d761be6de9f17a4ea69ed4e398c549c4632256d4b34c1e9ccaa3a956dccba3a888351363d0089eb5015e4cbce8c4cc6cf60c7be3cff9aaf4763cd3bacf43bd966225053fd54c0d98af70b5b0aa6654834858988a02ee863f9679fb5bd25fa548fca87ad2fa36a6d57761d0b2985a51b4e9e4f6264438a0d606d224e8bce4ea6c6aaa5b0e77e92b62edf66711f4bf153afb7c5247cfe1f648e8d4f602f589200fbe9a40ceb5c82261d23b8fb87e9308b162aff3395861e0fa47b097bb6e29f6dc5789825d4cadc3b09d2e53007abf0a4fa1ceb0e504e4580f4d355ae23a508451e94b33e3377899659fbb8be420ecc29930f197befa8547d6f92ca88985816c1fc2eaf4aca9dd51a3',
+ 'Q20C6955e256842369460e4aC5516Fd5c9CfC2Cf3',
+ ],
+];
+
+export const invalidPublicKeyToAddressData: [any, PublicKeyLengthError | InvalidPublicKeyError][] =
+ [
+ ['', new InvalidPublicKeyError()],
+ [new Uint8Array([]), new PublicKeyLengthError()],
+ ];
+
+export const validSeedtoAccountData: [any, any][] = [
+ [
+ {
+ address:
+ '0x034da61fe50c659a3285549dc395571e2bf6891c462c041e3c6b9061fc73eb3687d03f940e5e65d582019ef10ce1327f',
+ ignoreLength: false,
+ },
+ {
+ address: 'Q2054f0f00cB9925477DCd3Cd506dBb3d37742026',
+ seed: '0x034da61fe50c659a3285549dc395571e2bf6891c462c041e3c6b9061fc73eb3687d03f940e5e65d582019ef10ce1327f',
+ sign,
+ signTransaction,
+ encrypt,
+ },
+ ],
+ [
+ {
+ address:
+ '0x7fc43a2ccb557f900d4ca924c187b4438a7f8185b8edbfbabdd26b87f125594495268f55ceac9c9eb23efaab76b0d4c5',
+ },
+ {
+ address: 'Q20618F56c422D34b190B9B49a636a3429B927A91',
+ seed: '0x7fc43a2ccb557f900d4ca924c187b4438a7f8185b8edbfbabdd26b87f125594495268f55ceac9c9eb23efaab76b0d4c5',
+ sign,
+ signTransaction,
+ encrypt,
+ },
+ ],
+ [
+ {
+ address:
+ '0xc902ea9bbf1dd51aaa2ee9bed126aba921f6a6afac9cf09a21f3d915b057bace6787a894a71d1d103992aca0a6a4250c', // ignoreLength parameter set true
+ ignoreLength: true,
+ },
+ {
+ address: 'Q2046B4F923f908201Ab8Ddd86330b3228720D589',
+ seed: '0xc902ea9bbf1dd51aaa2ee9bed126aba921f6a6afac9cf09a21f3d915b057bace6787a894a71d1d103992aca0a6a4250c',
+ sign,
+ signTransaction,
+ encrypt,
+ },
+ ],
+];
+
+export const signatureRecoverData: [string, any][] = [
+ [
+ 'Some long text with integers 1233 and special characters and unicode \u1234 as well.',
+ {
+ address: 'Q20Ab9b8384f91B69839FDC0b16856eAeb508d551',
+ seed: '0x77eda0d9c08a5a7134c79973c8fa16a1191f21c29a85f4d913b8d1289d0d1c3944d63d11d7e1c35a51925216de64e052',
+ data: 'Some long text with integers 1233 and special characters and unicode \u1234 as well.',
+ signature:
+ '0xdbbd812bdb43972e4b53851aaf80058fbff7b2badc6c4b4066553dc306fb5e33a7df7949c27652bd4ccd8d652f1ac1465f7d66bb7a1cd9d36c8c5797ae36674259fe436b128c3cf45c78dce17ce4b32a068e9d296b4ee2902384bcbe14f9f4a3138238d9841ec9c4b43ce8417e60cc23481ac2907aaddacb0c12d674c6a5c88de0ed0ef7f5572075c74bf57bb89c1defd09ecab92d5e4ccca404f14a714dea4e0d326a5957bad7d7c4d528f446230612082e6c6949cf551d85642b53df553d75695e30ada5c8613430497d4b3c0219c934e8faa51cd314ea5704313bbe927cdf2bfcefbc39c3dd86df132188a4c8ae731370dc9239603a838de5303c76ce970459b73d977f08cd08bac408f0faaab6af734918c6ed64faa77d2c1268bbac42dd089afac94ddb597eed82bbb84498ceea13c8aee3d09cd54a4b943981e7a5c17651fadae43b3ae57e36214961585d35aeaf1571f02e5239fa27a75bc057bbf2f206a15854759ed1d9f2cc6c0136b582e5986311c0c11cd0d8c4f2ada58b4d1a390ab6be1e5870b07780ffa3fd4b10e4e46d58a44fbfce1ae199c69e3bcd105ea1006ad1f644b2bed85e516a50385e5662cd33b17c2ff05ef54f3cc4b0b15343f2794d86e668e6975ac80ef68f3da89df2f5ad9b5c516c6a0e7b9a65b6f42e20642c4f2633f233d5da0b9cf994dff93ab9d82e6e37c60fce3458d5a300ce1c9233ce26f1a9bba94c029ef0c200990302f52c3d5798ee94bd7f382758603cece73f782e7db49df1064c101178759dbc3c690b6482970ab08550fc3a9e74125f1af9008f35f02c541d8d8a937882f00b3fdc650179b0c21c54b8974a770a68f833bfde16d674bf89564cee1b8054102025e05f9416d81f26cae846ae9d937d7c75050d41ee9ac79cd8f92b3df2cee8e07e15c8fac0a33e399e4cb84d6663ee213cd9e7807782f816fadbe62b1fef8129cd31c78682762b139f9712203197965f32290fccdd29ba780f50c5fc7e55986f566b541d3c393e3350bb53d60ee0c1c991aed9a8097ec6be70dadba33ce60beea886cb7daf9132b0cbb8d424a622608d9c5424ae4da35598ecf5a90707dc5b902f24ca41f1cc6e0de2d2246f4cc223987239505c47abaa41bffa8a069fa3c62c3ed0fce8853a366a59465c1eb82f0d3d991855107b6f97a9e34e0455ee813439e5783c471237ff736c3c1b2f34fd7df6ac957d2b6868183609ef3e57cdc90a2872c05151304f727186eca8bf4fdb35e73de68cab3d63c2747ea5e62d8bf55269fa481c939c9fb4c724ed3c08e25069fedc473838eac7679250ce8ee2536ed0b5f562ac3496d1eafaeb6995614ad2aea97810fa0f1112f6167aeb5b586618a11c55641cdff7b3fcab701165dbc74cda9e491f64ce21817e716d94c6f6846290e3c2d40ea05e056d54df237cbe3958d05456070aa29ced24de43910449f59ccf8b4eb4eb396c938cc71b8ef5d2018c2704ebaae850d3b72cc13fb1acc5b6a07527ecbc642b771006f198056f19fb7670ad86d049257f81d6d422694489ce02764b8698560ec14a10815383f3f1066af382305513beee5887d64091f1788a082939057457a9cd687d0a6a59b85b1e38d10627d17a60fd742b963bf2ed3d94c59796b782ca6b1e9ea903801fd069f517e1f8ecca272eab6c722b4a75ae5550b60287fe3f3697045671fa3431c189ebc7373384e26e0538ab4b36a958f6d082a368161a55c7f5ada0786ec5d3630c1b2eef4b98d571e9cdd91918e7e13020e34a0cdc22e6f6ef836dc48813dd2405b030b76fb83ef98182610ebad9cc26258c02eeb37a224bc294b41fec8d72850487d2f4a3e5b63d38ba56a3e28237ff5b83c9b79c5d0901165be0ee71216535ce0e2dc4ac2330653cc6e50b7af6c7957262067c9124b16009b5c9343a3245cce40dd472e1be5a4073322bd195daed7955e28c079d8f1267de1ae074dd507398df42248e8dbe00f9d8f125ca3f56a8cdc946d3ff283d3b0b9af25f358e64f94097d37983ee615aa7c8220abdf726e414d8f56a9e68419265789e38cb73185ad4d1f837efdb6ca599ce3b1b86714d2a2628080bf4e392ef6c245102251b8c4cbecaee7e4b483c9f3eebac593b343bca1200ad596bdf1390c0c36a362d5fe46a7a27bb0682232e97e9fb542263a66a65e10383b8254a8cb496ce8ec6c47f3c183083875bfb169eaed8f24de16f783b78db9d0b1b2a025025ff3fd5742d38481a57f177729d92e12732e7c3bdb8205e1414b249a0338f91a8c9468b911f33355e772c79db0ec65712edea6f4fe52cc798ffe718ed38142fa238e9e7250cc01482a76cc432f4a61fdc520bdc023141381a37bc982f74c2d0354b5e019d622648c079942d80d712511b8df9fcabf100ade7d4522099c8fa61352f8f5e70edb3d6c55b36f7c7704d541716326663fb6eaf0322a1743db3c56578c31aedc51d68f82d8cb77b66c9e9ce03154289894fb11ea36ec22ee1de9e5876fecdd3aebeb262f88e9c9f9384fc86dbf0eae309385ea231c98b7e04c3d9ae41438b147e46343277b21baa79bc1bd87314066528be6802ee4cad41d50a88169d6c09473990a6659711705526d6f544c271b5ab169d47fc4ae294be6dadd3409145ccf8266c032cd98337702d5d7d44dd305c53fb03d23682118603e99d9c289fd23fbfd443c4783c7556618f6795a2a210f595070087adf472a1c2843e8b6fca38880a90ee4a622746c860a85998b498bf7b0a44f74cb3967287b45225eeba66af4dd108a16277ee21d6509e70a1a3cd461307e3d9099b358047b2f5ab7171e9b0c4514614013fe35510ca8c664c363e0a004b880fbee385a079e43919149d0678b8639e991b11629424ee412ed1807d7407a391313e9349f454df66b96f7f4d208835ab3d8d9ad8190afc0754fbf5f8bdbb42b41e95eeb651728438f66723391294b345c256f5855b0c4b37b5dec77ebf9f0a6d16e795023d6bce19610e21ed888b78037c1293604fb788f3a7a14cc625f3d97eaf369c61b0affa6d17978ef1744a95d0553602e5c0232bff85b8c3ead49b0f22009661c8d9486de77f570c648e31c4d488c9625753a6abc884aab250d1c25b4dd01b31817440160a948cd4c48cfb4bf47f6c401d1c02a956286fd00d15f1c6d81798be778d8034f6fcea11b214d821aec35c6fd9ab0f9eb24093412fd452960c11bbf0130790aa96421f6d58a12d103b2e533be16d555bd6efb09eb0459fb192890cfdf14c9342c0388ccea15a57454f6f8d61fbe1a03601bca97c513b387a97177d18acd015975f0d7bfd876315fc550ddfb46ad89b7c53c73517fbafbdf0626b720a1e6a95dd8f0e377c2ed6dd89abae6dd52f6a4f9a8b0a2962d31db14dab338014bb5b0cda29fd31461a454e5a068984642efb943d45f57fca10222c86ef786a4014d5fc129af9708935d7a731c39f705309e4bfc333df72aad4c1fc0277bf7248f64d73a659e16b3ba265d859f999e77b10eb3ba9375b213a059ba1874494761ebe793925a4796378246174861a7411dc9e7204522cbdb851aebd56f17c6f6548a80e839e6f02a48e4253401a614e9ad316d01f6567fb8ac57a97d035208f6b5b6c001451be465d606db493b750893053414035069417271ea8ade58b34b67e151430c06ba20dadd3c5a3087fe6cbb0c36af487acdad85fe41ce3d5fc897c82a98db286b3b5192572466b5c1d1950b5215c6e56d01832b1dd25f444ef3d99d020ec1f7e34001cfcddd24e52d55aa1c21455bc158b60cefcd20e0801505af56aa8221aa1a83ac7dd188cc0458d76cde43aea36013519d8139194bca779280d8670f718826bc7a19e9a9d737185a5d1781d9345fc23de2b21a894be02e29d3712ae96f40febb21a1f502b52ab143dafae61dacca6c2bf9447e97352006807b1fbfc5624f188ac117a17a256387c01a2cded9d073ff5cab04a4169a168c595ce50af4fb6758dd166dfdffdcd8bec0149c5650ad68504e0459300f03e4296b2224355f59bf51e31a92d0102b8e36394bda5d825592af21bceb7b756a2de13fd15ac723f5d12d4409911c78b867af8d8c93bfe3b95c818d6c62b3045eb7fdb94df061798e315be5b18a0ccc4700b72083843a4098c3e3b279f6b1066f315546c36dec5c9d41f7a68683feed2a8d942f65c27cef3c03c3ad6fe18995433374b64226d4834c9ccc34373e9e4e9700b931a26a51fb7349135921160a982c4556db0845dd7b4db53ef80a3467156fc7968c24186149934281d498e3a06284ded4ac5d7ba692ecc5a2929287d3758401cc928cb12fb3c17f54d67dc5523008d414713adf571538f54703cd3d094e966f00b144e65868835a9a0016ec39c64bc3fa9f27d808a5c42d4bf2e201c20209518fd914094fa200cfbd106b119dfffe1ab8c21cee2359637b2cf4c48f622a5c0160fe4fd835c4b4b0b22b545f5700914671914fdaf1ab6951445944f569d78722f1f40b147a9b407a61656b9afd2ce72d460a17c46b9d26db86129591c2fa18ad699ea7c280d14d74985f18635d968cd433ef7788ef79f52fb518d70c7183657e8a44d86c675cd1befc4bab1a2293d23b584c9f5ee612c474e2acdbf17b5f28fcfa9991399bde5545422b168117ca7a8850199d3a225c467dac9179a270ad76436ea9a46585df8fd05830f4c4c2f5bad2ce87d4884491753b205097e4f6161749132ebf56cbbafafbb7008a8d8713007ffeb8f0f0f1ae4f12743365c01ad2f9b18226e5b29369677698a8036398776086eb492db51b60510294d0bf1016f90aee9b0b2e4d1f5c7b6604a3bf2ad5a53e6e3929b5d6618d795e335176a8de638f78ab7b91322e4088d52dde886ae2979508c4d0118585cfce2ce6a078fbd592c3b519044a45bb49fe80f5d7deb1da0f2c14762f32007a4b4ced81ce24d1377225e14e64829f6300df994c03b4c0741ab33482b8add3f225034a03f0fb7eb65a411488a9b42eb0dd214848238768817c9114b90b1edbd552a7841e0b835aa2b3ab7bab2f819bd9303d826f11e119cb3535cb78b0b517d954783ce2cd39027dc3fec1955e67cf3a67e756108e7cce31e020c0369cd72813eed21c92b796b75006d5a3dfaa0340b94ed8e128a64d2594835794ec28da3caacdb0dca481ab2a6c819f4fd0cf0144909d872855180e2aebcd9fe0e8c5686d9f53a0039fb6aaddbd36dd9b888ddc543f6fb5fff17b94c7b0a9f43ac8840089ff25604259bfcdec9663a1ac0c30c81b9906b8fc4b0452e78d47805c7cc47837a5b55db3b8a05d11c94fdd7d10d6d2b07c1a3330293e3e4ae1e68b7bfdaf1feb5ff5799e6954be28b3fd93e0cd6940062fab4321ada8def1136ac1936e67f347d32d53e977a39bcff90650810cb83ca27d1448d900f2f12e1230292fee7fc2527ec42b4f75404f593278f5bc5b2eb1952877d73b5f8ecd0eaa2ca49596366872cb95074f727e3054a643a58e6918ed6bdadaaa122c7a2f0c531ab81e02ec10d936a96f0467f8397be28338c3a4f985dbdc583ac91d43333944d29f2a1e5cda79fbab2f181376aecd210c7bbdcd4bd51df5010d00ffa48534ea28e170f2c510ba37150d9ba7ce0b03d0955dc1ed554baa04eac7de48b3f086df66875451dce93bcf282565407efd542b4cf340320e2012f4ef74f1daafa4313d128b396357ce5018986c05e7b2212d6a857af9e99fc1a2c1a37e2d6bdb5607e837d1afb8534f5627f16b093d09da12daab057e1cf38dc196650a79e02e9f8170ef9446a2a5cd05cd8d8a404a169a0b9b3b3ace06c59473eaf3cd8fa28df1c55f8214504f5595f22f6862ed1de42047e3e7454c2e46abf3b7e83d1c2f3d3a93819bfda60cba693714418f03c8ed6bfe09d5924e568979d8a61369ef8fb626ffbc0e0bf8012bedfbef31dec48dd395197fb3fbca250d16a7ce43a817e2912376e2414325451d283d64ec29bd2cfadb7955b6d60ad03a9b78ff8b95c4540f39eb02371de5e9f55234fe036951e8e48d28811717122d0832d1af310c00d694c2ebd87e94e5a268c26adb052e895faf7791da701f0430d212754c36750736c6b9ffb14b769ded5c3f1e2ed380ca65661214a97b5b6dbf5f1fceec10fdcc48b9a4a1c04bb66977a94df03f782024f979cefa64034982b4b15d888d53cbfe9755a7b51d18393f51f328288c6a5327a1fdb86741b3e21057a719162b0ed3b3365f9ff411407f239b422d278e462d094e66f304d1bfdf09b3826424906495e61e9199623afe9391b391ab5419107e6c16e37294fd0bb3552a3b020132d858135018b89670dd6ede726207e5883c6c27c4147b5518ba00a8d140693fe97f44d0c95fb98f1efd34b515a7a81c1d4dee1e8fc0d1a6daebfc1f7ff096d99b0b8d8df005f6466bcd7e87d83a9abbfff0d378c93a3a8a9aab0c9d1d9f71534375e607c86ee0000000000000000000000000000000b131a212527343c',
+ },
+ ],
+ [
+ 'Some data',
+ {
+ address: 'Q205f2Cd3c4B65a999Fabb5496D78c896d141B018',
+ seed: '0xef3a996efd6133a749a1cb9a15e7679adf68d240d9eaba3349e679969068e5f83ed6f1f7506eeb0d87e2d94f8ebcd914',
+ data: 'Some data',
+ signature:
+ '0x4a073fa43a191dfa4e9df04fe4a8ace3f87fa300fa12e24a1b75a04354bbe72bd3ed73fd9d6d4925a2e466bf2164f63da3a30074a801deb2abfb0dc4a67e1e9afff17d0fce39f63601ea9a804e3bbc0f5739508149e4b3b4ca21af040adeaeea62954089fdaef60167b60409a7cbe322ce87aa59c282bef9ddd920f9ee24ce70796cf2abb6e632fc0fe91b937be5d9f45245838f19e8bfaac1f180a943f3c055b534b0477845dbb3b1e4bf6c9aa66d8002cf62558e4873f1bcfce3d0b3c18b8c67fa6b24bfee293f6a85b0c2bdb50a1e6f62eff1d226bfbf95ee122c77325581efc241dd0e2a0839420f1162a265de4c4b084d357c51bd5abbdeaad4397681934095d7fc5361b0387f51cff4ac3323c6e433d8315c43838f5e8a874ffd3291f15616a5ac7c55ae54082b8247ef164b397a2beb822a5e4a00b80628f5b870ead9ad075afe19a61b1e4b656055299f7bf749060a1a1d84ddd262ae74189bace793c70888364c9ce1018e988b86fb3ddfe8417a2332263afdc945bb2e71f4f0bdedc604f828e3ffd848b61719b2511cf5494e74f98fdde48eed6e9e2b6bf177b36458b978024ad2c6a1e80d55115418d9a87941d061abf6e388e0d78aca3ae93b4e2d8c35346dab0fefab48f770bebe6e1f984a19aac7a303c048b679e3745f5a3a58670dc3b3e49b10434238a589dde687cecc1a130ecfc65b05717119373b95c1675c0216c63219ff1b3ab054b32a2ab839e25bf4cac1e6e208d59f097e28688a7092d17f3c0ee966af43ac740a9bf12a903850838a2a7e2093b97337782e86f1a0d35fa360058a6c46862c98f85df3f8221885378e355625258b45fe08a19a3c4d2492ac201086e6ece0c634f4a856caada6edf0879b72b89bfb49b49bab4b910b78650f885d0416d05c5174f9e6f9b42957512fc3348d2b8040443dc6e840a8cf1dd6e45bf20e13efc829a8ca967b122205f6a23f2741451a480ddc69abe91a8d9d0716a54810c242af998dd5a1ec2d5075db76b25867a267b9de41c11df3d4db76f09d1175b59127e304d2743554fc574698a71a5c245fc57c33ec927dd211f424e644af4298bc21bcc3026dc84153caba85434adc3c5eff4b8caaa8ae2fb506c689b290d1d1b435cc263e493f5138205b39527bf1d5899263dc3217964a0ce145c84a981c5e6f4899a43d65fbc37ea26bdefb79d9e6baa322851bdc9b88c8083d8d9699fc1a3bf80fdafa3b3f29e7713acb32a9993b57b11327df29af68aa76a8e4f89d3924ad58c9ccd801d715f83694551d77a5033c995415b33d256cec6a62160c92599a9f183a19cc58ce557bb8f259428aa2ab287d111aeeddfa036f2a47bde557ad43a1a4063220231541786d943137a6aaee88f5198ba9e2a42cfc0eed2fb48562f13752b7120139b50f42bcb8ab7f3491694abe15bea4b84474984b0742ac89b78799662f079bc9c56e5bb839e2494ce97df0992d7f9d0485120e0a0dbd5f487847b93d2b174d521c9ed0e37d61950db537d4f2270d20e825d4f882ee45a00b07fb40bf91b467c8a5baa7dd4ba433940ce049dddd58a71d62233bccb31c3f0027d13b349f9ecaa4cda4e58f6f9a913621d80d3d339875cad44306ad64c316b68728b539410d22614661f652889422ca64781e7bedf33a0930e69233c99c6e92d5185c6c7d089a13b038873984ae279e74206b268cea7704222bb4843255e977a3c375b0549687563a0e822f7c790796420c5297ff0f4bfc9fbbda97365c649f36852be9d231f58ae9ba80db3b87dc4b85900346c6b1d75079ac9b32d012a3ec8cc8e7d31c122a991d43d2795df6f44353e15bd17f08ad07ddd06b7a18f2ba643dca97b7228ab302f0b50230b66e1eb8afcabdfd88e95431b7e4d2b95a92655e089c54cdb26a0558db1e0b597383d431613e1282ff600c56805f3b32497c7390102fc59491639d98f62a9bc5b2701feb88c0e21e9a3506dc95dcc11d090fe3fb28b9adcb26ee2339b9eaa150e204b41f979e51f3d20da764c43a372f4ad020c27da8d516d7e5a360b340aaae992797fb74af4d1983b64cb9e2c22aafa0e295027088d75aa954f45b737c7a3a1eb300a104797a5dd42458731babf40314cfa4c0fbba10466e213ae97000f8af34160303c18733bc8b11c2a69a06a1cf5c45ce2e0a04848a7e4e995ae5f920ae090534a42282ec0ca94f44f841a7fbad9a5d1cc1d75613602d1c166ff6af7d5c79708f7c06cc078236f99f2d461c73fdf5c2f7f366665973d2711fe8c539d00885ee22dfff47b6431df15ead051cf7cb78d1dc08a6f53ce001b119cefb48fbf853333a65876323a8c2ed7f30cbd2d1a69c43c565b701f64e1e8cfd4cbfbc95b3d9461ee6e23e3e5d742287d655d81d0e658599404ee769547fd8ef7e9afe33f297d048e5ee6d6cefa063f67ce46c11f0fe41c3aa1412ae4f8f95a0933f314b60e94343f060e72c122aeb6c9a372842e17a46a59deb37a9066e6ead1a9e7527b25f45b8a144528b854bba4f89c57f399c87f85d93d677183430ec8efe6fe765ee70237c0afe5e4b90b368ad1b918841d0762d33a24bb41c8e5d5807ace97754274d08fead5f085d96d7252e773c74d059cdc8e208c85be231e36899ab20cd1c879a5af35fa7b47f73be1a1b5a8e804cb3af6fdb22a66e32b1e92e58cc6150815ceffb29f8631772e44a14d356349b3ff706443c2c3eec7f42cf94ac82edfea06bfa6aa3915085119d23b13c0e5c7967a7373a4dfd87210b04486788c579cf17f68c44ba3b2d41223baf823331c32fa8ac7b3ccc5ac31b5770b93144dda5c186dc5429820ffc0263e4e11372e3dc28384f2334487d35ac0a0b6940d1192937ab919e658f88d888745e7628cedc7b733809b7ec806b3d02c64d7a99862d41ed56e80b52e48c3818afb8d24439808a50a4c0a4350fe1ef07436190c12e6f892835b06018b0c6b997864e432b53536ebb35f783ac556d1f0fc4b356f960cd35482c67d9ec44a42dad35b5d734c87af8ab88200254282885e9a8bdbac5699bc6e8cc28ce416cc7ed85e1f96b3a5a29e005b250ac4a4647865d13435b680670cbc96772d625d0ad7d1ff4f9ebed5386dc78fdb367c9ef868cfe9a2f8c400c955e6c8249e6a4d54878c27af35c049eaa486ce3cbe60759d43f6cdb89ff93a67e1668b423f00cf528e3797b6910f8f3196798e923290f090953f3a04cf4627d74970cb62bb9e94446586052317c5a1b9d00fe6316ad477116ad24bec19b379cd5d652a20c4d903e38d4db33ccb79be6e07dd6dd7d25fa92961e155e642462d9b2ba41d3a04f69127f14569b7010a40804f2b0ef3e3dbc23184d97a5b3a5a6a9caa2f5cabda9293e9262c9a94033d53bf623fad6f8a45c72f913a5416c96d0558f12dafe8221a075d38db630749b69a7628cf72338c47e0268fb3f24766a777b8df8f92b9794549df3067bd2a452d34eb55ad91b50089f1318569deee45d9b1b0570153626ce8b14739e99d0e10a914191d74310dd4a4714ee2219a0f292b4fcd1decc7a51fd542ba4e37be86980ffe0b69bb4fd26c5eb4d82c9e9207ab083b06c36546ccff6785bdaed2e4b7372db02f833b8707987cfa4fa8fcea4e66e77be9f56e604e5efd1f95a3f79df8c9fc8fbd71228101770f3f262d7a2ce7ae07ae9df77f4d7e4b712b0c5dd0acaf13cbe33723ba1fb60caa53f14ad7c175c32a928af24118c9d7b38921970b9c55c4b99a3d75ddad15c5779ee57c05b7b1b747224c6e948dbec45a9c5745e106d8bba5ab80f9209a31f3cc8d194f9165ee7249dcdf282922d0bdee1eb787400c4458c152e35c5d0df749d430dfd1accfb1af91e444795a4de21be3a27a1b5f952f4b121d519cb682ce9b8d333468e820b548e55f1ae7445c73ed12286dc059774912124d2010f0706b002e3de3cd35425cb9f008a102ac86d349bfb02b0a790696193d944b94220d580b573dbd39530994f78c24ca99687b158f93b1b6549a56ccb7dd7dc340a2ddb21b045e33210a609884a88a87fa9125ed8bab6fb439b708374330e0231349d5d0fe2040c965facaa6ba0320fc064103da50dc443966ce98213a37adc4c56fd6bd5c1af5c4fcfa47921c16890cf29f44a4773f429da77eacfe5b9659ae3362deb33abbabf73b931a5b7716f4025c6b7996dd1f1aa9cb9610078466afa392c022e397f0c2232665145017178b7e188fd2a788e8d7e95bead0c1b6ca893ebc6a1714d79761b5983890dc7c84aa24a9c1882e90e9aab9d03a2e2a425ad9fcde3052e1d8647d600a13d0a0642b321c8dec857fcd7b72863bc46af88f62dc7b1a965c13d1321e80089186b3fe2406ef5a85e3ac3cdc738b14377e6acd7908c7ab91ca24a3896173512bf5d1faeee979ae11834f51576a007895293437143013c43eb38ac8ea7b0461f7765cbed2b1f186fcc29d5bcfa561dc43b8104a009b491033aff3bbae4a9946a5526da751e9e4675ce456f9066a18d39d1cf5a28d1295cf7ddb2d3bd75cb76b8cae004145a0bdb4cdf9d9a3352f163abb25a9f17d19aecd14e72c6021529cbbcc76e1603955f08fcc861873515d65b76cbcda0aec17df22a8e626f0e4fb1c4e992279bb43575bfd3f9568f5cd08905a187ce6db1bd1f84c8ef51ff01fac8c9f6f8b6521f805a4e3a73be440f21f75479dd19571a6d5e652b2e6e91e747dd25c7fda39435c7372cc02fc382c0021362dec107d8bba9e30692dca80b74e42c0a4004c9bc26929af713d9520e3b83a22388100bf039ffbd5ac38fa91c481889fd0c41b76029f0123aa64c9e7a411247b0ab43516873eb9e1a1139954b1f87e15c023a0dc7173e32792dc8f5852e72837177ba3f7cc6cdfa9fd78fad65ea08d77b77ff3b959db4cff3067b63ff72334d5c213e7f5e5ba996393566fd0f9416e0a848bd8fa87532b51ec8187308c68bf925a836c7122b106bfa4498f308905b27794dab8985ea61e75d5d91a45f30aa303611ef4e501b8238e89fc412c5f51071551efd65417e488f49a8d901ccc10f9887ede417143bdeeed8ad1df40b37b04a92392b0f729b72bf48c88996c225c1822464108a8c997c1ddf2c5c7c8a23de2b343a7ce747608f721e6edf70505d2c9d481a597b32105886cb7bbb1b4062d3189a0bb44a16b47862874252b1062d0e8405b262b2f80232d1a267846d62ce1304d4ed88185b8d67293e092f06f528bc48a1bcf65c506fde8dd147e1fca73ef2a37b3c5eeecb582d1ab7d3ddebe8a5f981482111a9f25f795c2624479c1f4212b13b81415cc25cd9489990a6478f1103dfbf65f878cc9a7c359de3445bc0b3dd232c7115561cba30c29f00379c8f4c996bfd37ea9705f3a30018388968c7e6860d511010fa5030535cd072e37e2e65b073280278702a37ab0a728b6fe306aaa3189f44caf24530cb415694d80eaf085918ad84c8ac4dd93a9084bdef253a385a5089bb5320920c96b21d760bca35b513fbebae549929f43191fbd04170b652cbb432f7fa986d0ca48f2bea087528a8744fc151e50db5b8bde5e07cd6649b99c816b106fd4ac59bf22a79c41c2978abe52d73201ac73fde6a8970b4f8c46f73f34d486523a490442481d8e7ce0b4259ec34df68aedfeb1da930b41f042c12a25aa03f2670c03aa1e95758f63d4f6ff3d40138fe4a195bc1030b857506a73e4beb1a477178d876be302ab05849d22578814c0c2dd478234373649391c77514e08caece17b23b6b31377a8108c3180846b3d5cad20990af2158151dc6932083b789912007ab90d6131ef7c6ca0482e732f0a09f97d40e58d5118c7ffc417b8da47b3aa93452448199cc13f97628d68d4e82544a666e52e7c13b7a5416367969915186a53d8babf483c877349028ab6422ae78081cd7ccd7b1e45a5078f3244b05406b0a51a84fcbb168bcaf586bea6026162c000f24448e03e73dbcd7d46f9e2621a39ec336a887f903b10aae33f1917a0b127f2463ece34edd9fdb921cb5090fbc542203a875d86b3524122738a2973550d0fd0eac9cd56a4447097d62550fe0fa8cdcacf7bc5c45744dc50ea495bc4e7f5868207a31d960d825d5a75d52974262d7aad5120fb8b29fd1567205a85aa535e22cc24d0cbbb0f9c8660626e0f987ae8b52e639ce2157a3c468f22aa4ba6c2cfce9eb9e7cab0c173257e2eac2055915d74009c68445ef32c9a69257daaaf9980482261121c9bba39b7164a01cec1ae9825d5e6a2cb65313ace3c119e26cac2801465d61153ca025c6b785122554affae62109ef774ceee8472b20104d61e888adae84fcc6b68f2f4e81195f64f1769ff5d45f9392c0b900f727de408b53b49841ff7d840dee9b6857fd8b6bc9082f5c6074919ba4f4fe20267690d6dcdee907102a3885c10667b1bf1a5f939fafd8d959759fa9abe502172c40c9cadb4e666f70818398b5b6dce3f00000000000000000000000000000000a12181c2329303c',
+ },
+ ],
+ [
+ 'Some data!%$$%&@*',
+ {
+ address: 'Q20fE39238877509b60DF7e2958bdBc6f88398F1a',
+ seed: '0x6ca868b6b469e210b079f6742d2e149b6db46f4ed416c11f5d9636e1bd7f35f14d5b5daa84f0a69e54052bcff1897ba2',
+ data: 'Some data!%$$%&@*',
+ signature:
+ '0x3ae41db8f5361a6bb6da1367413648e87d060f5b766e7313c2b20fe8b1aae6b028ea7a327386758cab331e38a3a8ebeab2b7b9c3d17ab098a048c11187b75f25c9c7681f6e53e173f45c17738a5bcce23604e148e46ad1040d1e8afdc3a42dc539d33ba98ee9d4df0adacfc08bfddd546d624fe0a399492218429887e3cfc73a1b472e3d8cf8c770e23bab919fc246f1485072ff22a152127f9789a0459211076b261409393d0c9aa0d935953f5c7cae3a711445c216c44ea1f7b2e3207ccb7813f594d71f26ae9c1675dfe75880e62deb54b8fd64149455a6a5019e5ea04ce5863792615b84abe8c978d1230b131e73b83329f714db930e04f6620ddc7d3211a05c04cd04722798c9e011901c099d34a96b38149a78f21200552d7075d56cf3429898daee44a13191fdb9cb1043cb41cd13940150d72bc2cf1f7db4323a63789c298984ba28ff354e9f1de8abcc82b4af84cb0a299b75f56b137cd3b6e5c6966b837373c50e9da81cb26fd18725579570b8b1e7510838b6a93356d785d336c82e24d47c0e8ad6d777497b0d8dca8238e62a99b2d6b1fd3775109037934b877771f6fa00d76617cd430c1e961290991ccaa3bce8baec77d9c987ab3292a514d21af5631263ea7fcd50a8c2ece9ba26541ab40c9c2c31eabf4d73ae73541985010e46f785001733da6eedde7e6c3f512330014cb9f67f30d4edee4f08338cef7a329877d3abbcb38f36e44f0c88baf517819ac9027d8cf0493c27183dffc05ab58f7299bcd460c393df9fb2f27d9a36552963de70ab176e12f5dac4f58af7b04b354c2049473cf5a67c6a15ece09f1f99e452f01cebf48982e2411c7d5bdae6f6cbf0dd19f4d1df86631624b4a1012f1bd1ee3fa71d80ef8dc2ebcfb9c3d5e4ab431cfc2a6739163c5c3530fad5cc299c763cf3bdc5b9e86fc277d6519cd5ddc34f495a32ba7b6cd4409fb26854de17531d0a05d02fded9ad1541fecf6e1b23bf2a91e283f43e4f4818901116e7a8400945f6bca28480a58f4aa193e3129e1418e594de7a6267d0430ba0848465b4a191cde35efb367c3b08bf4d2d0b428bf973988ffda357c515181f3251dd4eda96b198b7a888e5be515a4ee6a55ca5dbe0e40deb7bf75b15df308135c1dc5c3432ddd141ea79746b68690b79d0e623030e1552e98242f443baec376f7524fec3b97c241e12cf8fdcc05af35aeb970b41e6cf31d1e618627ac30e1960ad5eb1798d11c0e5c628ac5c1a46d58e6d1290615b7d084412e2420d5f72f590499fb296a518e1894e4e99ee2731fb83891908dbffa49c0591e370a7fcde49e5cb7338c60d764455dd92f481ec6734f7f010d95e22aed3dc63dc81461ecb2e124893f1fdd9b40649100443c2b99aa828a3baf687be03e889811dbdd6d18240379eee75530de6576c154f4b354f0cd295a9af27a8319d88b280a6dc46eb74370c2642bd67f275d7d2e0f68ed69f6358f812995eab1e109566c4e1f5883819f5f68973572852ab397ded832ba9651a67ff16e913b4c92d0b2df78c5eee40277e9e1d0ea5b8fae08f380c9094352ea8e852b46f5f2f7de065b395f4591aa1dabf36a17745a89c5929744d394e2c0339b0bb07c1f1c2c7e358c55673f1384bd733d707648086a48bdb5e6921ab9ed9eda4faf3c739b1548d7064b9bc409a2d0c9d9292110fc498c9b2a5079e22f4b4cdf64c252ccb211d2b635415ebc06220ac91e5cef69c99bcf5459e04c8ddd477d00df4b1da50ee1a460b6c25de81b71e54dd9b5b13667aa1d92ab042ac847da956deec90da7c65f5cb0d5b9469bc8fb72a85170a28d70f5109c342ea9cbe86c576845aa31e997e4b21be3a8999e3ab59b361c73dca43ed06ce8d097eeecda87a8faf816bf9e0e6ffc8c86bb12607ac2606389d8ea92db611561b079406ca34150334bd6dbebe52d6a1b045f98dfdea008af1a3aba1951cad750c783a15237e7d388aa76301b25daef1fe13994e53c5d6957994b7604b9e00d72c93d3dd57fb0c34f1fc0d7d2e01e34aed521c439bc0fbe2301b4f60277f0e69c6c086318e18b8dcbe628c3e81305460cf87f110788528e01e03b80becfdb6e7c54f6529ccb5da6fba8fdf4b84d3f9db3afff819d7ea04c0e99b9e9fb1dccd64c81fc508a9af54999e8972a9621c5c5ae704df79001dbefb4d1b3a2df860dddf57eab4b94cd85c6c6bb934a89cf5246793ac2f3a727b6b418b4940edad9c0223a046d72987f6c08b061a3076b40fda04ee07d93d4f8fb16242f69e65659552a43db90b941dbf8cf037ad5e420914b12b1059e35c78025398ea9ef6f144fe71b84c8f46865f595b1419184e5fec3a7ded761e93fc846980a656ad42ebd503d71019374e875d60df8319fce422fc458d1869164aef6c6be98f7e400607916904a7e2b24c912ce189a36d2a2aca3474fc90db823f9a7b54d6e6a6558c54e62489666b067a53b7b280e80ab06ed721b3975ddafeb6457563ba31549506602281c3b5a418b311ef2b830da1d5602c5f6dc65998a7fc54bfea07f91968ac23fa556a01cb2dfdf45f5513f6729bea6a1984f6ea869aa98f3dc315faf5f35e0f06a219adc772efa1009b59bc142e15b89261e91a6706ad83c4c794110d5393ceb60460a1faf4b53c89202b479ce707189df5f97ed85657ec55ac3705d1827ff39a3927edb7f48067bf5e61699427c3255d38b92b17f47946fc744c6e5f8d793a49352219c34943a9d0303277b8d336df3e3534ce28a071bfb735bdfae5b12a624ddd92c882cd5e799e61262e9ad0a3d5fcbea237ab2c5edada34e7d9ed9ec3e38dd84069eb1ac8f370c821f721e2ed55608d3566192a1c11bf3a75e27b073a914e14f3b8e1a93908d39d6aba8ab87c181e0c2c7cb94a6b2191b6009fa533b5349b96f6f1de0de804185a26f26835448013982b9232abb7e350f1911331de9e562741f4d9b56099e42cbeefc683d576e683f5f86267a28676293a8bfb91a39cecd00d4820e91498b241ac8d88e899fc56c52aaf1aab024160d5d80ae67dfa485cd24971e555bee9ef0e39fc04b8eb2ef67f4ba15b36c6de0cb9c24489f9c0f18fa8a842336fcbe54cc09b84a6c7177153a783c15e7dc684c6a96ef5a9827b613dc757f0093f2a63e18625f382b6808cd8b642c37f61f75d475ebfd05faf49e2970cbc4f663b772f40200a4ca1591fca358019fdd0c766be133a1cb2a1667898b973fea8e2e2849ca5465dfb92e3bba0d96b6063dae4bfb50c5c3b84601408dfe6a176d429d6a0363016911c023277dd28bfddf79644a27c527c61d8557800ee8dc4ec89493fc544872d12d842f96cc4fd5537b7b8cbe5a85d1ea97efcf98b0bebfdd49538f2463afbbd46c3444c72faef6d6344613aa4862c012f927796d138036da6f78921aecc184bdb7136938fe1e5682c8ee2957c56cbfd934550c43793179b662beab389bdf945351d1b6db05591e2e13f2b3c232c3ec074d395bb24c667933e8be24c2e49375fa8ade02f0e3413e352d25fc981fe82c2633566c1fdf6ca61ca45f2744f1e98f14b53d93b27d832f7feee32894fe403ca22f8b4ca87e6ee4ca9966b13a51faa59e489d380b831a5806f6e1219a498b032bee61f0af732e254928c798255c41bcdf64cf1ef668e6396eb830a4c5b42f190ba2b2377a8754b3b37572ce7a42d8c09757d366c8494b61b317e0abb1ef2c0b2d6bb7181efa981f6a5959de38c15def522a1584d6f6a90d351641ee933878b8c72bf7e96d15102a0aacd3cfa1e2bdfeb9e0d33b1e781a9c39ca7070b0370fbec61d7b80f46b65590813feaca8f83f0ec9b8fd5dfa1c257266d4e06645e1f0c5225e80d659e4eec1cf652573552a339e5aa9e1a0f6d8a5b277a4b07ac6bb192ce1334825164fdb74a1a30b1466815c4a32fbfb7bd740f2b00945e4ad6c94476204312de87caab20934f0cd601045d5902d8558d1084133100a9fea3400ded12f7b9b6d39e68d2853e58c862232b6d4fc721fc1640671f9c990ccdb37437514f0b7c361dfdf186b2d3cd58da2b6a4f32f66210e2cf0d568d8cfb79e5cb6255b828a9d0e8d8b316f9681330e22964a5fb2097ab47073caf41816eaf3ab0373ea7c0b0777d17e505e545adcd4cee8ef0afa485ffe02e2350f1b2057d3637a50f662f0fe1db37a44ddc14fb89e98e9388b331f9c65dc5f0054868e7ed6da1c5a24a909302a635246578a1583fa07d9b30daaedd4d85496cc3bbd0a30b92783bad911d41d6b6f6684d80298981c2ff2c529abedef0a46acc7df7549063902d29e5fc2248525c808bf4af929aceab2d505e85c4b0ec5317c6df377dbdc6dfda4fae4f82a161f7caadf32f3aa49e6fb58b53fb2a7bc45a07c23215f7da877d09d0e57a4a1f3664513bfdc08d050597cab614a001889110fb1cce9bbc1b07b5547cc73c23bb40200cb500df2ea01cac7632e6586ee0411f474aea524f1e13996a2a47616e7670ceb53fc942dac891d61cbd02df0dbaf6fc927e6a5ba106782b989e8b37123cec848f3e2219b598a9f084dea2041bb087fd06c1f160aea3dba594e95ae9adf6f4ba53b5dd14d6b14bc8f789f9a87d7d2f716ac0b41fb7ef0b3431400a03e1ac60a9d6dba2435fa3be5d4aeef9caf896b59f9072a3fdf9f48cb550c9d2e60ce7d9e6535ddce0825eba3360eed31574c523ba2dd12e12b7fd7fef4b8113521ef3e028e2c9c9c22479f69f951ee773378b59826f7afb60fb953157bfbc193b8ac4e25c3d4d89652776ecd5e3f66573e4a1d843d46e83e947f73c2dec63a0d8893d34c7ac3847a8eddf1e75d7e3f6d6a7fe30e02317725201af6b3114043c42a73a6613f25ddd3a1e3952d98c6744928535cceec2d48e223bc8e4c9cf9c1f1653ebc0356c33d3460a4ced0d2cb7c5818e8a0cd391897c1d4a14bb318024ff092a1591c0f500149f57808fdf7439856b7869ffc47ca6dc20531f1cbf6a3ad8c6687ce28a3733d680c66a75426271dd64f84e5c1886c87f32e1878d92df10b72f428546b4be34a2a550ee65abbe706eba2554c9cc5d37aa3e43df919bcd91aa5fdebd0f37297612afbe2cf90bd0238a6ed578b67c91322996f1a614f7a237fecdad80a02938017f639ec7faf79d399da9f4434bc8560a15fd465600627fb09ed276d06a1f24e49d9467be0ca2aff6252b80b84b41ac7c6de1f24888696915355603965d894cdaffe91fbd9a50186bd35285dcca977b4cb34ce1b2095cb52618ad42a68b2febb6434d2eca0b51f089268debdc41e925f08f6fdc7622678903c5cf93ad1f8eb790a1e572bcc82d9622ea3c66b6717ba2dca169ecc5b73a364b9ce714f313349cb621187d09c254be875b32a915249abfa7f14140103d84d923e848898a54161495d47f2d3d6aa8a59400adc79903f75a0141f2ec78b30b1d01ae2c18c7458a7e19daf44c0fb5153ef297e0c28fa05fa48b9fd93ce00ff7baadc3d49cfd8b2fc676f5519801d0c8bb9637ffddf4621aecbd22348d8b25aa973d68e81f776925961f92fa116f1610872999c8f982f2f4c2a1737a997094ce0edc92e66dc23ae17c4d9a075a2a895a36fe92e36abb211ec49e364dc05e25a8c6068b57b58eefac308f05c4f95c686241974e3182019b73652949e01c7aa12b1005986d67f9b3e4caaa4a3d9be61ad758e0f6bf128c3fdfd75dd70dd85b40a6200f3915dfabee762582f9764ec11311dc03394177440df3860f402b688f56c474f38ca675199583d6f7900ce3eb0181bd83db4fcd1888ee2c8cba0e2bdb6da0401c4b87cbe40f95f4d1f9154b3397d638a2fe5095071dc85a7b1044eab3950bcba13dfb4b183f32fbbd77df9a5684a363a7b86b049c4abf6b93ccf1397bbf9ef78ceb5139ff42343bab5fcea5264c5a4d8dd83c5d5bfca37ed0656ce3f0e476d1f2943e0b1be4b7d22a570a14ec9c54df11b757889dde5b3ea162b12c259f18b49c428d821928390a61ae70a4216077c8ca2aabd48e2f80e7a2999bfce4bf503fbee1aea784f9829715339152ece6fcb2af65aea460c50d3ac45519a8127e7b269bdc6df1f8daeca21ab391b321a171a023c2a12c5b62b72b7d511bb95ced25071f0dd82eb3863ff509d362fd2508930fb150cf86a24061f58f0bd0e7fdcb1be1e5fd8dab58225413ee7c2a653392887cc71163e662b798add4825ff457adc64d1bbdea7fd2fea4b1dca5593720a7f01fc233d47ee85647480a74786925880ddda0996bc39ace4564019c4482eefe01ceaa120e2f7b22b0a4b386da32dfc7b98e577423ee33d98413cc5bbd5d57e5152211dbc3612a2b972321e63aa7a2ff56bac1417a98821aaa419c2bf8cb916fb1388148c85ae7ac1ca1cf0a194fe174e2225a06268595b6bcbec1f6fc9aeffb295c85868da6b0b4e9f2fbfd0b162133353f768bb7d0f8173f01355b83a4ced200232e46517f8d000000000000000000000000000000000000000000020c0f1b26282f36',
+ },
+ ],
+ [
+ '102',
+ {
+ address: 'Q20f3531Ff6BdBbED17F5DB48d1129f5395011b79',
+ seed: '0x7815f4ef272b06985c8089e2c28ff8076fdfa9feed8cefdcecbfbee3d0b52cbddc59fdb1226b95292464567b9fca978e',
+ data: '102',
+ signature:
+ '0x66688fddbb49fb1c9de541b7bbf8815b96f36a6ef711411c026cb339ed3c96194e2dbba95b4e43ef5a049729621268953173f557ef42bb5154d4f06baac3ada396a6c584f2c9ffc36bde6d8ac4493d2c0a494fc9c572d803cdd2970948a870afc1ea1cf231c2b2cbf2022fcd4118df96aca6b25118030ec164685b164bd6ca181f80caef4e28cc5cf15c65398d42a441c8ecaf842fc85ea534a83a00cd959c998226c82b7ca853f67a6652fe13938af544040e0a6c0d8ff2f56a87d87f86dad805e579e1b9e370eacb301b4c86538322a468be1c747e9ae5a20d68dfc4166d378fc5cc32ed103dfbbba0a8e9c766fa70517d5373d83848a0c62a35ba2b082aae2b4075ca48b847d2dca2c27d28597182f74df5c4c5e3c15dd7f023603e4fb7074f3fd1d4bd840fb4ed671dddbbd48e7c72480cb502ecfb67482a6b5b59caf50e613891dd3db3f585070860d05dd000fa69e3051d90d04f4b55fe9de7d1d2b71943838513bb4c4e721af3bb4695789eac42b5b0ec42d02b5bbb0e2906ce93e403c09ee762024a711c92051d9b36f6a1c858e998489e83944f787bd1c9b748058a06ce88e15419b8724471a52903a75982635feaf3b6df7fb706449db3b6573ce1855f62e74f109da71a956689ca84f3461200fa9f13793a94df7331ac8258d59a17dbbc3181c9efb0202fcbe3f3e39f59a28535df505eb091828b0b398285d0b218ebc152068634c7af42c6dff92436a8b5852a3645077918be3e9061918ac6b492b9e28c669636a446cebf62b35d85a3096a8b88a1317f8192977435d70afbe084a6e5fbdf8dac2c95b0cff80d4062b449a22c551c2e7134f57e7c0163725c25beb47c5a80aff88b902d8ade248ae6b25620d8eb2b4d47fc8e592454e52002c72bf2cbb64103db07d6adf47a6cb91b69b4ebe126985685419eb51728f6aaa707a5c6e1a3d5f747e1162da2c7908a55bd859b59f795908e2f524553578930bb232a2ef2eb0b65e4ae84b7101838c041a31e8efd424a03fc95de8a29d779d6da6c1218388e1d94f8b12e11359624c5bf40e2e7c0a911a3aae4fba00018b09a0877d51f79098012db7264f10df23b5744fb71c5a69a2cf6b32bfe38ee8a321e5ae95f3cd3e5771b9095abc490635531a83ab353c6892f56d2f5e63d1d4c2fc33e6b40551efa2929365501dbf894ffcbf9f044bd0d6be17dfab60131c37849cd0cc76be904893d9e56942a36c2357ef72588e005568042af5f1babdccda625417bb628a2afa8a4a1f8ca40a4b8fa82a9e0d963af5588e2d25b794cf20a4b18669e37b18ed54a3574672e0ddbf27b033f5a7103565d33fed1395b65c056c3d376cb4676cbcbdb47778bea57a92ea8853df4a0e651a6de4f86e49349588a95de61bffe428591dbb2040a9d98a69bc2151ba6253a2b5c9e1d25fbba704a92aa315174e798da389de8ac6a4b4ec11292e65332e76cc5bfa94859649ce0c10f4dced9ae2d129b13e14c9b2ac3f5da9f78331560016d8c14b2f6c4585af55737f6700ba98475d2add8d3ecfbeac74382b4d9cfe5b8bc7bbd6d265ef17ba4df21944e05bd8833aab2592be42661a0fa9df63282be6ea8f84dd356a00652751a24eb36aa67d042d512e729f7824b84e6a6b2a2dddff1eb4ab7c5cc3799e8c271b37ae60be43b8c49af99862d534d36f5776df4ce0c9ecb48bf1155dd3327a4c944137a55e9bed458a9866bad912188a0afb0f6eb87eed203cdae72048f637e81978fd41b6a591bb3e9e2d7c68b1600fbc62284e93d6b5c2d2188db039a0577288c49449827ec7b6fd1a7f67eb1e3905b56843b0da22153bf78eb514982576b7d024a66532a1dea4cab02db0d2501567b06e27a2341f6d296ff285c2323d96e465789afd08956eac8b3988f2597255347002269e955af2ab4884e05cfe98c590018a81a4a076b803a577ff5cda717eb05799156cfd09a02fea28a64ac2beb715b612e10fc40b115bf5115c4541db11eda325d68e6c93697c67c4d848214f3cd299f5997b5847ccc3f77e9c96aa612e9e04d4603bd35c8890d524e791ac52b18544a8921483d032a3d6391eaed701f910fa392714307f29594ee895529e88bccc35fd0c1ab67349cf388781c69227f6a08079ae76c98ec008269b281090b8e124f05bbcaf0e06e3952593958a88c59169a108edd7797d14a9f50edc739828225e6019b205830fb6bc9f3d5992cddc08ec08e9473bc028579a985f0aecc4d53bc2710df31f351fe54280962923f96124fc6ccaf31e58ad6694907cc82bc9bc8e31cc4db05547b8916e34629ea1a49aacd6c4efc41e1e923d91d66346bd6ad89ea01315b49e0d08a9ac7137294a20f96f6736f6fe310d580f90c55a6349d31188e7adc7da761e6e43567b8116227e8342404f4b875fa706557733b38a6021e931c5241bd7c6abb4330d7799e0031bbb831890dd660eb5dd5d465c93ad4024f7aaaa0f7d92ba622a1198d33ddc4e7bc23419e2cd19eea57aef5601d07b16da1bd77cf64df8ba02ba322de5540cf40b51677680bc678d1c9ebf9067d666a0c032580c0dcef69fa819fe19a93a23ded75bfd9eac34bcebcf79e59d3430352df7420b54f039f5f60a58f2e12d60a8ed41081f95ff6dedb552301d753d17b5761843766d440d1ed09e5ef42df6c452604a568e174b4467207a92dd74c7749bd90a9b7c040cfcc87e030f8c9196f28c48488f24ff91dbf173bdecc6ea5c0c586e35a4e693ed537701fb8c720c88c0089f2550bd251599e82d9ea86658bd7e259652f8063e20b6d8ab9eb3d3283ddeafe3a9033d6c35e525c9023c1f4e5dac4343904b130a3b2c3c0d60f4a035e63c86d2c6231968198e994f68d339a5fbc11c0730dc8900c12bf98de8a9cdd71ebc4cfbdf4920c5f40ab48cbc67cf8e9f1540b67d0d50f6b1e78bf8a2bb02ce70db985a881df8fe633f3aa1de41eeeeb0e304e591d49da9abb98d71e14b0212745ad407079365da791d91701744d6120eaa0927ec2d7407dcdef2b83344c8a22905863045bc72b2056ec00e7becdc6e3d571ce2f0a9c40cc1b0211694c94947ec08aa1475e7d6c5cd9c1390357a376b043ba952df8730130ab5e3dd94768df1a015aa1a5dc1d2c027ef1499fd01f3fbc75245360cdfd2eb84658f1ebea0de4a26830e36416f9ccc04bf12ab5513f3664a282de8c377d358a38bdecdfc66719d4b8c57db7892a297eb0cf5710af2e6c865def832e182a8397fb072cf059b4a764700a775c1dcff5103b197bdf05b5dd989c2f0b74770b3c5591027ae2887fb897778a6ff0770f2c839bcdc5bb4e22c32c4dd17cc55f59ff41be6306932a201abd6e8043a606d4b0f88efcd5d8d466a6227af22fd1162463052fd145bf19464f7285acf36b2df0deec006d59d210dca48b974c4834fd8e3bb4c6ef02b7d6a544ed59576d0884952f42b7821e026deadbe8ea94b45d7c46db7bfbe73328adb6441cdfc7e213877cba2fd1f6ca9dbc10d57975b97af42f6277906ef7e09f656686fe573d3bd219239521bbf69e7078b0474d13363b046234f012dbd4ba43ce0a5d41db64f9446103155dd8e7640ff4593128f6ef14c10dfec0112bdce42428686f7cebb30610a10448b9e42ec952470aae12f239065a55e5a32b6f9fc00cc1f0a22e6ec443f586404fc8524c5a09da269fdaedb0696e74e7fe12b7d38e91cf2ada7f906c1fee2df6774a0a30990a80d9468a02d97f22b38019cd3d71a91a07e5a00bbe886d1ea9b8a69669a1c7fdef309bbd87264ff2645bd54a85b49a417da5905271b4d8963e8679b0660cc23b1526462a56d178af655d257b7257b0004d2f271db29cd11060eb30c1cf025d2226d3fec2fff02d0e032de63229042380a8478a6817e3af34b263edad9965e32ac305da44e2865d7fad010acb01df9682c556fbc647a15301b14957e62e178a2e85bc46e17230e8b3b33e219a8c326119c8670037813dd654d6262a64279d0186a027a221de6d9a3827b63b9c5019b2d26293bbaf60c6d67f0fa19bbbba8542ce47d3a00fc6770bdb1e4e4e7ac755b1bf2260c806b186e070cfbac7b441d9ff94ce8889aac6cf6c03ac87be0e817eba4cb193234d1f47f72cec1ce54e83eee8cce9a74ccdfac6ea32e902dea8b875a4e6fe34cb3642d220040ae95c119f2030138b67335a77d996e4c54a8f41c8ef1b07fc7fd86bb59c98e6434d9e2db72dab43cf5e845924d04f75ae47590f7f5c5cc0a1b02dd1f2c5df230ce019e1cdbde4507d2bedaa9bc6678ab246295df82dd8d433f20e99a1b8a8bbafc1888f01f715d829e2648a34d43d87893d5dd9d5d551d41abc1b3bafc2116b1fbe34de5a67fd18a9fb0766e56a524538052ed23893b6c14e7f38872992ff7639e4b0f480d801cf37e0b733ca58e37f5fce5070e6329419c53e833b5efbb6b24eb6f3b3e5aed8923778abfafad3a6da35c883729ce847dc67f24b41ad256b4037f096092cac70de29df0f956dd7583213d30095705df623277538b20983a1aab7c3b5c33b5746ec653546fe1b9d275d434e7d6abd257d0aa4815816f3dd07bf14723fcabb032919324e3c095f03fd68c5e0c998e635aab3a062a025c057b60ffa79bd36b9231e71c839e8a75feeb460d31484e1da86a6194e294bbdd3200ba893f17fd01172fe8f7881c1bbb3afb0ae632e1c0fdfa2fcab5251c20ff1aa772a5eb58005a9a0cd0412c345b9e8d7815498103a2cf6624ca62af2b828681480d78ccfd1563f3f65195bca5a6c30074d8d46ae5da633b8839bbe6042402f2470358ae8067d9d2d309bcd213807ede4cc3653cd0dec242bc9313866e79dbc73c12fe62a8271f68c8b5f0b784c792543ac6f7850a827cf62305ef9784dd667d19173fcaa7f8ede91d2357cac232121f436a8e051650faa5a111d6d68efaa93079cb0d5ccc5a476f5535070661005c172a75523c825906a8e71a0d39755793ae74c7cdcf927ccd58892fd53d86dd442e3e5c155cfbd7cc94299d06fc393c5efc0fbe9ba44f63b8cddd44dd71970dde2467d1fcdc963c05407b4645b1c93f7ee4fb8e932c0af1921b170eaff0b20647877de22500de43c90a41b1f1c5fb7ebced4f5d88103590ecd3a7bc6c2f30a3bc2455b8e764e18cc8661cf435f7eb9b05a9e7e7cabe3d89a2b7f6173a9aa79832b793449acc470072e631ac3447a923146fe5ec109c162acac36498283f80a95eb2ac3031ae93ed220d33f40e0996068da49ceb51d672c1596abda6d6d3841ca5d166e226b7e8784904887a961111516edc27df8c604b79897a2e4f024bd0c29b751d101fe0ac65ee193955bb4c6d348df3270ccc0866431ca1f4abc57443458061ee9e2c183537a4155ffa498e78463a7ade294fbba6dee1a4e86eeda90570b3a9499f1e543de124b77a934e21b9aade4869c7a024666693ef4a5a6ff11a1c2af88db01515855f54f5e0160ee79ddd3d7f8ddc00e91c5cda757a8f5846ad7ff892fde48e8d2015d791680693052d8f3b1f9dd86104ff580c61ef24edc4ee00b61c149e67c3bdfcccd5197c767a4835957c5cae969d7818d281b3bd48d0e297a2c815bf9016132210a13c4e702a2be2ffb21e5bfc3f64d7d96a532df41a9d1b82370675d2b38046e789a8b4b55ee9a8fe9d08b3c39c8b5e27e732fd55083b479d496db172d4cccd4e406861aa791fab67b73ed77320f9b712348b33d5331267f697b5da39e1d36560b5c46199c4503de4f1e78b11f1ec6191d7645ca761e86c38c9fef888baac32f746abfaa11f1578c4382c11c21186b7bead8acdeaf268d019c26c9653a8b79c925c2a2f18033839b2776445f4ab7b556792ddd1a31991a46027a5536c03c79e19642805010926c905056030941e42a0af292d32203412dc30d3f898dcc4c1449f4fea1e4764cde647b4159a6fc890cdcbb6c12705a9e9d7dcb656558182e9e47e9ace0d2082cdfa438c8f5dd9622349c57625023f99f88adf644c74c2e9d428af79f7e2b2386557b063ea7981eef90fdfbbb06768862018cdb53d478beee3c11c51fcf547666cc1632029b1fec1154efc04e31c3d0958c204fa6770533bb4d082e7b41321914bff4bc5275eae648439c4641211a68de90e5bad7213609e143712ce5b190428a17c0bb9604ed2bb5b2abe984eb60c10b1512689fd2f1e2da053a76d19d29b4c66b8f132b5c98a2ad4b423a0b1a9c9585a501994a568b6c43b3a2ef4588365802e3b07147a483a306518e6242c07825f4be7805442297db7f16c91007c0a4a669ccb73077c54907aefe442d7e7f3d7ba4161d5206ba0b3747986f466e24982416d51920f6aa5b1db97559dbcfaa688aef47f4d2d396f33b54231344c1607f1982101e30318485b7ccd3ec0e3575a5a8b7e0f95181d5e7ed08242a5058b0d439414754747585b4d7df3337607791a5c5c9f5fa4682b7cd181e545b66c40000000000000000000000000000000a12171e2832363c',
+ },
+ ],
+];
+
+export const transactionsTestData: [FeeMarketEIP1559TxData][] = [
+ [
+ // 'Tx1559'
+ {
+ type: 2,
+ to: 'QF0109fC8DF283027b6285cc889F5aA624EaC1F55',
+ maxPriorityFeePerGas: '0x3B9ACA00',
+ maxFeePerGas: '0xB2D05E00',
+ gasLimit: '0x6A4012',
+ value: '0x186A0',
+ data: '',
+ chainId: 1,
+ nonce: 0,
+ },
+ ],
+];
+
+export const invalidSeedtoAccountData: [any, SeedLengthError | InvalidSeedError][] = [
+ ['', new InvalidSeedError()],
+ [new Uint8Array([]), new SeedLengthError()],
+];
+
+export const validEncryptData: [[any, string | Uint8Array, CipherOptions], KeyStore][] = [
+ // Test taken from https://github.com/theQRL/go-zond/tree/main/accounts/keystore/testdata/v1_test_vector.json
+ [
+ [
+ '0x5dfdcad4f721fe41d1bdf632de24ba60ba7cfab9c9a79287fa007b6a0dec8200b1fa35d2575bb15bd44d59b8d878828b',
+ '1234567890',
+ {
+ t: 1,
+ m: 65536,
+ p: 1,
+ iv: hexToBytes('0x4c2275c4a14a5e984bfaec2b'),
+ salt: hexToBytes(
+ '2c2f566f38f5b79634d17267d95a0914ed47a44fe91f9cbb0b8765ebaa0b7ddd',
+ ),
+ },
+ ],
+ {
+ version: 1,
+ address: 'Q2068da65aa0167e1d55fd692786cf87117fcf3fc',
+ crypto: {
+ ciphertext: 'bde2b4e9fd51a73917bab6ec31b25f1cdd9c908eeb0d81bd6cf70217175abcb583734fd9524ec12b5491df8f7cbd9425e4a8bfde730a42b56074a2dd4b5b05f9',
+ cipherparams: { iv: '4c2275c4a14a5e984bfaec2b' },
+ cipher: 'aes-256-gcm',
+ kdf: 'argon2id',
+ kdfparams: {
+ m: 65536,
+ t: 1,
+ p: 1,
+ dklen: 32,
+ salt: '2c2f566f38f5b79634d17267d95a0914ed47a44fe91f9cbb0b8765ebaa0b7ddd',
+ },
+ },
+ id: '1d82a61f-2bba-4ebc-a283-56d49d877eb7',
+ },
+ ],
+];
+
+export const invalidEncryptData: [
+ [any, any, any],
+ (
+ | SeedLengthError
+ | InvalidKdfError
+ | InvalidSeedError
+ | InvalidPasswordError
+ | IVLengthError
+ ),
+][] = [
+ [
+ ['0x67f476289210e3bef3c1c75e4de993ff0a00663df00def84e73aa7411eac18a', '123', {}],
+ new SeedLengthError(),
+ ],
+ [
+ [
+ '0xe6768fa565489b1a11a8541782f7ece4cd791ac92dd6dee0c8c897bafae7dc0e5e43769916b6e2d285ad4919fb1dc7aa',
+ '123',
+ {
+ iv: 'bfb43120ae00e9de110f8325',
+ salt: '210d0ec956787d865358ac45716e6dd42e68d48e346d795746509523aeb477dd',
+ kdf: 'hkdf',
+ },
+ ],
+ new InvalidKdfError(),
+ ],
+ [
+ [undefined, '123', {}], // no private key provided
+ new InvalidSeedError(),
+ ],
+ [
+ // no password provided
+ ['0xe6768fa565489b1a11a8541782f7ece4cd791ac92dd6dee0c8c897bafae7dc0e5e43769916b6e2d285ad4919fb1dc7aa', undefined, {}],
+ new InvalidPasswordError(),
+ ],
+ [
+ // iv length is not 12 bytes
+ [
+ '0xdb4078ef7b6631dc329034cc20a969ccd470579b68c2c34897ac733dd72f8fb4fe5dad790336672c108189940eb7ed88',
+ '123',
+ {
+ m: 8192,
+ iv: hexToBytes('0xbfb43120ae00e9de110f8325143a2709'),
+ salt: undefined,
+ },
+ ],
+ new IVLengthError(),
+ ],
+];
+
+export const invalidKeyStore: [[any, string]][] = [
+ [
+ // invalid keystore error, missing id field
+ [
+ {
+ // invalid kdf
+ version: 1,
+ address: 'Q2068da65aa0167e1d55fd692786cf87117fcf3fc',
+ crypto: {
+ ciphertext: 'f833f12f6cb57f6961fb34bbf4ff5019c9fd70e1ab98bf0f1ba164f1b4bc773e853f973b708a4ec1b5e1148de96437ac5fc75da87c6b7293628e9d45b4bc2ab7',
+ cipherparams: { iv: '4c2275c4a14a5e984bfaec2b' },
+ cipher: 'aes-256-gcm',
+ kdf: 'hkdf',
+ kdfparams: {
+ m: 262144,
+ t: 8,
+ p: 1,
+ dklen: 32,
+ salt: '2c2f566f38f5b79634d17267d95a0914ed47a44fe91f9cbb0b8765ebaa0b7ddd',
+ },
+ },
+ },
+ '1234567890',
+ ],
+ ],
+];
+
+export const validDecryptData: [[string, string, CipherOptions, string]][] = [
+ [
+ [
+ '0x5dfdcad4f721fe41d1bdf632de24ba60ba7cfab9c9a79287fa007b6a0dec8200b1fa35d2575bb15bd44d59b8d878828b',
+ '1234567890',
+ {
+ t: 1,
+ m: 65536,
+ p: 1,
+ iv: hexToBytes('0x4c2275c4a14a5e984bfaec2b'),
+ salt: hexToBytes(
+ '2c2f566f38f5b79634d17267d95a0914ed47a44fe91f9cbb0b8765ebaa0b7ddd',
+ ),
+ },
+ '0x5dfdcad4f721fe41d1bdf632de24ba60ba7cfab9c9a79287fa007b6a0dec8200b1fa35d2575bb15bd44d59b8d878828b',
+ ],
+ ],
+];
+
+export const invalidDecryptData: [[any, string], InvalidKdfError | string][] = [
+ [
+ [
+ {
+ // invalid kdf
+ version: 1,
+ address: 'Q2068da65aa0167e1d55fd692786cf87117fcf3fc',
+ crypto: {
+ ciphertext: 'bde2b4e9fd51a73917bab6ec31b25f1cdd9c908eeb0d81bd6cf70217175abcb583734fd9524ec12b5491df8f7cbd9425e4a8bfde730a42b56074a2dd4b5b05f9',
+ cipherparams: { iv: '4c2275c4a14a5e984bfaec2b' },
+ cipher: 'aes-256-gcm',
+ kdf: 'hkdf',
+ kdfparams: {
+ m: 65536,
+ t: 1,
+ p: 1,
+ dklen: 32,
+ salt: '2c2f566f38f5b79634d17267d95a0914ed47a44fe91f9cbb0b8765ebaa0b7ddd',
+ },
+ },
+ id: '1d82a61f-2bba-4ebc-a283-56d49d877eb7',
+ },
+ '1234567890',
+ ],
+ new InvalidKdfError(),
+ ],
+ [
+ [
+ {
+ // wrong password
+ version: 1,
+ address: 'Q2068da65aa0167e1d55fd692786cf87117fcf3fc',
+ crypto: {
+ ciphertext: 'bde2b4e9fd51a73917bab6ec31b25f1cdd9c908eeb0d81bd6cf70217175abcb583734fd9524ec12b5491df8f7cbd9425e4a8bfde730a42b56074a2dd4b5b05f9',
+ cipherparams: { iv: '4c2275c4a14a5e984bfaec2b' },
+ cipher: 'aes-256-gcm',
+ kdf: 'argon2id',
+ kdfparams: {
+ m: 65536,
+ t: 1,
+ p: 1,
+ dklen: 32,
+ salt: '2c2f566f38f5b79634d17267d95a0914ed47a44fe91f9cbb0b8765ebaa0b7ddd',
+ },
+ },
+ id: '1d82a61f-2bba-4ebc-a283-56d49d877eb7',
+ },
+ '12',
+ ],
+ "The operation failed for an operation-specific reason",
+ ],
+];
+
+export const validHashMessageData: [string, string][] = [
+ ['🤗', '0xcae553ad3d0ab274e62944105dee942352692738f79f48c55e3c4235ca82c274'],
+ [
+ 'Some long text with integers 1233 and special characters and unicode \u1234 as well.',
+ '0xca5dd6e9cb2f27051ef4a23dc5ba62a4cdb98369355a1d9c9121100e68576d5d',
+ ],
+ ['non utf8 string', '0x3bbc26183e34d9f0c27fb7af8c9dcb2cfb32cdd55335aa01abab191bc540d18c'],
+ ['', '0xd1e20245c66f2cc8733c0a25cf6136279aab0d4e4d5eb18ede8759cd83b69516'],
+];
diff --git a/packages/web3-zond-accounts/test/fixtures/accounts.json b/packages/web3-qrl-accounts/test/fixtures/accounts.json
similarity index 100%
rename from packages/web3-zond-accounts/test/fixtures/accounts.json
rename to packages/web3-qrl-accounts/test/fixtures/accounts.json
diff --git a/packages/web3-zond-accounts/test/fixtures/common/gzond-genesis-kiln.json b/packages/web3-qrl-accounts/test/fixtures/common/gzond-genesis-kiln.json
similarity index 64%
rename from packages/web3-zond-accounts/test/fixtures/common/gzond-genesis-kiln.json
rename to packages/web3-qrl-accounts/test/fixtures/common/gzond-genesis-kiln.json
index 50c7e2cc..6cf918d3 100644
--- a/packages/web3-zond-accounts/test/fixtures/common/gzond-genesis-kiln.json
+++ b/packages/web3-qrl-accounts/test/fixtures/common/gzond-genesis-kiln.json
@@ -3,775 +3,775 @@
"chainId": 1337802
},
"alloc": {
- "Z0000000000000000000000000000000000000000": {
+ "Q0000000000000000000000000000000000000000": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000001": {
+ "Q0000000000000000000000000000000000000001": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000002": {
+ "Q0000000000000000000000000000000000000002": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000003": {
+ "Q0000000000000000000000000000000000000003": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000004": {
+ "Q0000000000000000000000000000000000000004": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000005": {
+ "Q0000000000000000000000000000000000000005": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000006": {
+ "Q0000000000000000000000000000000000000006": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000007": {
+ "Q0000000000000000000000000000000000000007": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000008": {
+ "Q0000000000000000000000000000000000000008": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000009": {
+ "Q0000000000000000000000000000000000000009": {
"balance": "1"
},
- "Z000000000000000000000000000000000000000a": {
+ "Q000000000000000000000000000000000000000a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000000b": {
+ "Q000000000000000000000000000000000000000b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000000c": {
+ "Q000000000000000000000000000000000000000c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000000d": {
+ "Q000000000000000000000000000000000000000d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000000e": {
+ "Q000000000000000000000000000000000000000e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000000f": {
+ "Q000000000000000000000000000000000000000f": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000010": {
+ "Q0000000000000000000000000000000000000010": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000011": {
+ "Q0000000000000000000000000000000000000011": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000012": {
+ "Q0000000000000000000000000000000000000012": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000013": {
+ "Q0000000000000000000000000000000000000013": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000014": {
+ "Q0000000000000000000000000000000000000014": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000015": {
+ "Q0000000000000000000000000000000000000015": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000016": {
+ "Q0000000000000000000000000000000000000016": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000017": {
+ "Q0000000000000000000000000000000000000017": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000018": {
+ "Q0000000000000000000000000000000000000018": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000019": {
+ "Q0000000000000000000000000000000000000019": {
"balance": "1"
},
- "Z000000000000000000000000000000000000001a": {
+ "Q000000000000000000000000000000000000001a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000001b": {
+ "Q000000000000000000000000000000000000001b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000001c": {
+ "Q000000000000000000000000000000000000001c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000001d": {
+ "Q000000000000000000000000000000000000001d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000001e": {
+ "Q000000000000000000000000000000000000001e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000001f": {
+ "Q000000000000000000000000000000000000001f": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000020": {
+ "Q0000000000000000000000000000000000000020": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000021": {
+ "Q0000000000000000000000000000000000000021": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000022": {
+ "Q0000000000000000000000000000000000000022": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000023": {
+ "Q0000000000000000000000000000000000000023": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000024": {
+ "Q0000000000000000000000000000000000000024": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000025": {
+ "Q0000000000000000000000000000000000000025": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000026": {
+ "Q0000000000000000000000000000000000000026": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000027": {
+ "Q0000000000000000000000000000000000000027": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000028": {
+ "Q0000000000000000000000000000000000000028": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000029": {
+ "Q0000000000000000000000000000000000000029": {
"balance": "1"
},
- "Z000000000000000000000000000000000000002a": {
+ "Q000000000000000000000000000000000000002a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000002b": {
+ "Q000000000000000000000000000000000000002b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000002c": {
+ "Q000000000000000000000000000000000000002c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000002d": {
+ "Q000000000000000000000000000000000000002d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000002e": {
+ "Q000000000000000000000000000000000000002e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000002f": {
+ "Q000000000000000000000000000000000000002f": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000030": {
+ "Q0000000000000000000000000000000000000030": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000031": {
+ "Q0000000000000000000000000000000000000031": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000032": {
+ "Q0000000000000000000000000000000000000032": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000033": {
+ "Q0000000000000000000000000000000000000033": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000034": {
+ "Q0000000000000000000000000000000000000034": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000035": {
+ "Q0000000000000000000000000000000000000035": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000036": {
+ "Q0000000000000000000000000000000000000036": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000037": {
+ "Q0000000000000000000000000000000000000037": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000038": {
+ "Q0000000000000000000000000000000000000038": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000039": {
+ "Q0000000000000000000000000000000000000039": {
"balance": "1"
},
- "Z000000000000000000000000000000000000003a": {
+ "Q000000000000000000000000000000000000003a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000003b": {
+ "Q000000000000000000000000000000000000003b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000003c": {
+ "Q000000000000000000000000000000000000003c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000003d": {
+ "Q000000000000000000000000000000000000003d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000003e": {
+ "Q000000000000000000000000000000000000003e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000003f": {
+ "Q000000000000000000000000000000000000003f": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000040": {
+ "Q0000000000000000000000000000000000000040": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000041": {
+ "Q0000000000000000000000000000000000000041": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000042": {
+ "Q0000000000000000000000000000000000000042": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000043": {
+ "Q0000000000000000000000000000000000000043": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000044": {
+ "Q0000000000000000000000000000000000000044": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000045": {
+ "Q0000000000000000000000000000000000000045": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000046": {
+ "Q0000000000000000000000000000000000000046": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000047": {
+ "Q0000000000000000000000000000000000000047": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000048": {
+ "Q0000000000000000000000000000000000000048": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000049": {
+ "Q0000000000000000000000000000000000000049": {
"balance": "1"
},
- "Z000000000000000000000000000000000000004a": {
+ "Q000000000000000000000000000000000000004a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000004b": {
+ "Q000000000000000000000000000000000000004b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000004c": {
+ "Q000000000000000000000000000000000000004c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000004d": {
+ "Q000000000000000000000000000000000000004d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000004e": {
+ "Q000000000000000000000000000000000000004e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000004f": {
+ "Q000000000000000000000000000000000000004f": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000050": {
+ "Q0000000000000000000000000000000000000050": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000051": {
+ "Q0000000000000000000000000000000000000051": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000052": {
+ "Q0000000000000000000000000000000000000052": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000053": {
+ "Q0000000000000000000000000000000000000053": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000054": {
+ "Q0000000000000000000000000000000000000054": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000055": {
+ "Q0000000000000000000000000000000000000055": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000056": {
+ "Q0000000000000000000000000000000000000056": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000057": {
+ "Q0000000000000000000000000000000000000057": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000058": {
+ "Q0000000000000000000000000000000000000058": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000059": {
+ "Q0000000000000000000000000000000000000059": {
"balance": "1"
},
- "Z000000000000000000000000000000000000005a": {
+ "Q000000000000000000000000000000000000005a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000005b": {
+ "Q000000000000000000000000000000000000005b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000005c": {
+ "Q000000000000000000000000000000000000005c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000005d": {
+ "Q000000000000000000000000000000000000005d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000005e": {
+ "Q000000000000000000000000000000000000005e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000005f": {
+ "Q000000000000000000000000000000000000005f": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000060": {
+ "Q0000000000000000000000000000000000000060": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000061": {
+ "Q0000000000000000000000000000000000000061": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000062": {
+ "Q0000000000000000000000000000000000000062": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000063": {
+ "Q0000000000000000000000000000000000000063": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000064": {
+ "Q0000000000000000000000000000000000000064": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000065": {
+ "Q0000000000000000000000000000000000000065": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000066": {
+ "Q0000000000000000000000000000000000000066": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000067": {
+ "Q0000000000000000000000000000000000000067": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000068": {
+ "Q0000000000000000000000000000000000000068": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000069": {
+ "Q0000000000000000000000000000000000000069": {
"balance": "1"
},
- "Z000000000000000000000000000000000000006a": {
+ "Q000000000000000000000000000000000000006a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000006b": {
+ "Q000000000000000000000000000000000000006b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000006c": {
+ "Q000000000000000000000000000000000000006c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000006d": {
+ "Q000000000000000000000000000000000000006d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000006e": {
+ "Q000000000000000000000000000000000000006e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000006f": {
+ "Q000000000000000000000000000000000000006f": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000070": {
+ "Q0000000000000000000000000000000000000070": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000071": {
+ "Q0000000000000000000000000000000000000071": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000072": {
+ "Q0000000000000000000000000000000000000072": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000073": {
+ "Q0000000000000000000000000000000000000073": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000074": {
+ "Q0000000000000000000000000000000000000074": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000075": {
+ "Q0000000000000000000000000000000000000075": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000076": {
+ "Q0000000000000000000000000000000000000076": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000077": {
+ "Q0000000000000000000000000000000000000077": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000078": {
+ "Q0000000000000000000000000000000000000078": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000079": {
+ "Q0000000000000000000000000000000000000079": {
"balance": "1"
},
- "Z000000000000000000000000000000000000007a": {
+ "Q000000000000000000000000000000000000007a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000007b": {
+ "Q000000000000000000000000000000000000007b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000007c": {
+ "Q000000000000000000000000000000000000007c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000007d": {
+ "Q000000000000000000000000000000000000007d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000007e": {
+ "Q000000000000000000000000000000000000007e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000007f": {
+ "Q000000000000000000000000000000000000007f": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000080": {
+ "Q0000000000000000000000000000000000000080": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000081": {
+ "Q0000000000000000000000000000000000000081": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000082": {
+ "Q0000000000000000000000000000000000000082": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000083": {
+ "Q0000000000000000000000000000000000000083": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000084": {
+ "Q0000000000000000000000000000000000000084": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000085": {
+ "Q0000000000000000000000000000000000000085": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000086": {
+ "Q0000000000000000000000000000000000000086": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000087": {
+ "Q0000000000000000000000000000000000000087": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000088": {
+ "Q0000000000000000000000000000000000000088": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000089": {
+ "Q0000000000000000000000000000000000000089": {
"balance": "1"
},
- "Z000000000000000000000000000000000000008a": {
+ "Q000000000000000000000000000000000000008a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000008b": {
+ "Q000000000000000000000000000000000000008b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000008c": {
+ "Q000000000000000000000000000000000000008c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000008d": {
+ "Q000000000000000000000000000000000000008d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000008e": {
+ "Q000000000000000000000000000000000000008e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000008f": {
+ "Q000000000000000000000000000000000000008f": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000090": {
+ "Q0000000000000000000000000000000000000090": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000091": {
+ "Q0000000000000000000000000000000000000091": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000092": {
+ "Q0000000000000000000000000000000000000092": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000093": {
+ "Q0000000000000000000000000000000000000093": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000094": {
+ "Q0000000000000000000000000000000000000094": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000095": {
+ "Q0000000000000000000000000000000000000095": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000096": {
+ "Q0000000000000000000000000000000000000096": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000097": {
+ "Q0000000000000000000000000000000000000097": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000098": {
+ "Q0000000000000000000000000000000000000098": {
"balance": "1"
},
- "Z0000000000000000000000000000000000000099": {
+ "Q0000000000000000000000000000000000000099": {
"balance": "1"
},
- "Z000000000000000000000000000000000000009a": {
+ "Q000000000000000000000000000000000000009a": {
"balance": "1"
},
- "Z000000000000000000000000000000000000009b": {
+ "Q000000000000000000000000000000000000009b": {
"balance": "1"
},
- "Z000000000000000000000000000000000000009c": {
+ "Q000000000000000000000000000000000000009c": {
"balance": "1"
},
- "Z000000000000000000000000000000000000009d": {
+ "Q000000000000000000000000000000000000009d": {
"balance": "1"
},
- "Z000000000000000000000000000000000000009e": {
+ "Q000000000000000000000000000000000000009e": {
"balance": "1"
},
- "Z000000000000000000000000000000000000009f": {
+ "Q000000000000000000000000000000000000009f": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a0": {
+ "Q00000000000000000000000000000000000000a0": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a1": {
+ "Q00000000000000000000000000000000000000a1": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a2": {
+ "Q00000000000000000000000000000000000000a2": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a3": {
+ "Q00000000000000000000000000000000000000a3": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a4": {
+ "Q00000000000000000000000000000000000000a4": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a5": {
+ "Q00000000000000000000000000000000000000a5": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a6": {
+ "Q00000000000000000000000000000000000000a6": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a7": {
+ "Q00000000000000000000000000000000000000a7": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a8": {
+ "Q00000000000000000000000000000000000000a8": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000a9": {
+ "Q00000000000000000000000000000000000000a9": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000aa": {
+ "Q00000000000000000000000000000000000000aa": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ab": {
+ "Q00000000000000000000000000000000000000ab": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ac": {
+ "Q00000000000000000000000000000000000000ac": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ad": {
+ "Q00000000000000000000000000000000000000ad": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ae": {
+ "Q00000000000000000000000000000000000000ae": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000af": {
+ "Q00000000000000000000000000000000000000af": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b0": {
+ "Q00000000000000000000000000000000000000b0": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b1": {
+ "Q00000000000000000000000000000000000000b1": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b2": {
+ "Q00000000000000000000000000000000000000b2": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b3": {
+ "Q00000000000000000000000000000000000000b3": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b4": {
+ "Q00000000000000000000000000000000000000b4": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b5": {
+ "Q00000000000000000000000000000000000000b5": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b6": {
+ "Q00000000000000000000000000000000000000b6": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b7": {
+ "Q00000000000000000000000000000000000000b7": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b8": {
+ "Q00000000000000000000000000000000000000b8": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000b9": {
+ "Q00000000000000000000000000000000000000b9": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ba": {
+ "Q00000000000000000000000000000000000000ba": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000bb": {
+ "Q00000000000000000000000000000000000000bb": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000bc": {
+ "Q00000000000000000000000000000000000000bc": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000bd": {
+ "Q00000000000000000000000000000000000000bd": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000be": {
+ "Q00000000000000000000000000000000000000be": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000bf": {
+ "Q00000000000000000000000000000000000000bf": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c0": {
+ "Q00000000000000000000000000000000000000c0": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c1": {
+ "Q00000000000000000000000000000000000000c1": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c2": {
+ "Q00000000000000000000000000000000000000c2": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c3": {
+ "Q00000000000000000000000000000000000000c3": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c4": {
+ "Q00000000000000000000000000000000000000c4": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c5": {
+ "Q00000000000000000000000000000000000000c5": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c6": {
+ "Q00000000000000000000000000000000000000c6": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c7": {
+ "Q00000000000000000000000000000000000000c7": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c8": {
+ "Q00000000000000000000000000000000000000c8": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000c9": {
+ "Q00000000000000000000000000000000000000c9": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ca": {
+ "Q00000000000000000000000000000000000000ca": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000cb": {
+ "Q00000000000000000000000000000000000000cb": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000cc": {
+ "Q00000000000000000000000000000000000000cc": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000cd": {
+ "Q00000000000000000000000000000000000000cd": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ce": {
+ "Q00000000000000000000000000000000000000ce": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000cf": {
+ "Q00000000000000000000000000000000000000cf": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d0": {
+ "Q00000000000000000000000000000000000000d0": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d1": {
+ "Q00000000000000000000000000000000000000d1": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d2": {
+ "Q00000000000000000000000000000000000000d2": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d3": {
+ "Q00000000000000000000000000000000000000d3": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d4": {
+ "Q00000000000000000000000000000000000000d4": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d5": {
+ "Q00000000000000000000000000000000000000d5": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d6": {
+ "Q00000000000000000000000000000000000000d6": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d7": {
+ "Q00000000000000000000000000000000000000d7": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d8": {
+ "Q00000000000000000000000000000000000000d8": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000d9": {
+ "Q00000000000000000000000000000000000000d9": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000da": {
+ "Q00000000000000000000000000000000000000da": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000db": {
+ "Q00000000000000000000000000000000000000db": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000dc": {
+ "Q00000000000000000000000000000000000000dc": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000dd": {
+ "Q00000000000000000000000000000000000000dd": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000de": {
+ "Q00000000000000000000000000000000000000de": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000df": {
+ "Q00000000000000000000000000000000000000df": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e0": {
+ "Q00000000000000000000000000000000000000e0": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e1": {
+ "Q00000000000000000000000000000000000000e1": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e2": {
+ "Q00000000000000000000000000000000000000e2": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e3": {
+ "Q00000000000000000000000000000000000000e3": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e4": {
+ "Q00000000000000000000000000000000000000e4": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e5": {
+ "Q00000000000000000000000000000000000000e5": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e6": {
+ "Q00000000000000000000000000000000000000e6": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e7": {
+ "Q00000000000000000000000000000000000000e7": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e8": {
+ "Q00000000000000000000000000000000000000e8": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000e9": {
+ "Q00000000000000000000000000000000000000e9": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ea": {
+ "Q00000000000000000000000000000000000000ea": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000eb": {
+ "Q00000000000000000000000000000000000000eb": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ec": {
+ "Q00000000000000000000000000000000000000ec": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ed": {
+ "Q00000000000000000000000000000000000000ed": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ee": {
+ "Q00000000000000000000000000000000000000ee": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ef": {
+ "Q00000000000000000000000000000000000000ef": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f0": {
+ "Q00000000000000000000000000000000000000f0": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f1": {
+ "Q00000000000000000000000000000000000000f1": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f2": {
+ "Q00000000000000000000000000000000000000f2": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f3": {
+ "Q00000000000000000000000000000000000000f3": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f4": {
+ "Q00000000000000000000000000000000000000f4": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f5": {
+ "Q00000000000000000000000000000000000000f5": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f6": {
+ "Q00000000000000000000000000000000000000f6": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f7": {
+ "Q00000000000000000000000000000000000000f7": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f8": {
+ "Q00000000000000000000000000000000000000f8": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000f9": {
+ "Q00000000000000000000000000000000000000f9": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000fa": {
+ "Q00000000000000000000000000000000000000fa": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000fb": {
+ "Q00000000000000000000000000000000000000fb": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000fc": {
+ "Q00000000000000000000000000000000000000fc": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000fd": {
+ "Q00000000000000000000000000000000000000fd": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000fe": {
+ "Q00000000000000000000000000000000000000fe": {
"balance": "1"
},
- "Z00000000000000000000000000000000000000ff": {
+ "Q00000000000000000000000000000000000000ff": {
"balance": "1"
},
- "Z4242424242424242424242424242424242424242": {
+ "Q4242424242424242424242424242424242424242": {
"balance": "0",
"code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a26469706673582212201dd26f37a621703009abf16e77e69c93dc50c79db7f6cc37543e3e0e3decdc9764736f6c634300060b0033",
"storage": {
@@ -808,41 +808,41 @@
"0x0000000000000000000000000000000000000000000000000000000000000040": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7"
}
},
- "Zf97e180c050e5Ab072211Ad2C213Eb5AEE4DF134": {
+ "Qf97e180c050e5Ab072211Ad2C213Eb5AEE4DF134": {
"balance": "10000000000000000000000000"
},
- "Z2cA5F489CC1Fd1CEC24747B64E8dE0F4A6A850E1": {
+ "Q2cA5F489CC1Fd1CEC24747B64E8dE0F4A6A850E1": {
"balance": "10000000000000000000000000"
},
- "Z7203bd333a874D9d329050ecE393820fCD501eaA": {
+ "Q7203bd333a874D9d329050ecE393820fCD501eaA": {
"balance": "10000000000000000000000000"
},
- "ZA51918aA40D78Ff8be939bf0E8404252875c6aDF": {
+ "QA51918aA40D78Ff8be939bf0E8404252875c6aDF": {
"balance": "10000000000000000000000000"
},
- "ZAA81078e6b2121dd7A846690DFdD6b10d7658d8B": {
+ "QAA81078e6b2121dd7A846690DFdD6b10d7658d8B": {
"balance": "10000000000000000000000000"
},
- "ZFA2d31D8f21c1D1633E9BEB641dF77D21D63ccDd": {
+ "QFA2d31D8f21c1D1633E9BEB641dF77D21D63ccDd": {
"balance": "10000000000000000000000000"
},
- "Zf751C9c6d60614226fE57D2cAD6e10C856a2ddA3": {
+ "Qf751C9c6d60614226fE57D2cAD6e10C856a2ddA3": {
"balance": "10000000000000000000000000"
},
- "Z9cD16887f6A808AEaa65D3c840f059EeA4ca1319": {
+ "Q9cD16887f6A808AEaa65D3c840f059EeA4ca1319": {
"balance": "10000000000000000000000000"
},
- "Z2E07043584F11BFF0AC39c927665DF6c6ebaffFB": {
+ "Q2E07043584F11BFF0AC39c927665DF6c6ebaffFB": {
"balance": "10000000000000000000000000"
},
- "Z60e771E5eCA8E26690920de669520Da210D64A9B": {
+ "Q60e771E5eCA8E26690920de669520Da210D64A9B": {
"balance": "10000000000000000000000000"
},
- "ZFC4db92C2Cf77CE02fBfd7Da0346d2CbFA66aD59": {
+ "QFC4db92C2Cf77CE02fBfd7Da0346d2CbFA66aD59": {
"balance": "10000000000000000000000000"
}
},
- "coinbase": "Z0000000000000000000000000000000000000000",
+ "coinbase": "Q0000000000000000000000000000000000000000",
"extraData": "",
"gasLimit": "0x400000",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
diff --git a/packages/web3-zond-accounts/test/fixtures/common/invalid-spurious-dragon.json b/packages/web3-qrl-accounts/test/fixtures/common/invalid-spurious-dragon.json
similarity index 90%
rename from packages/web3-zond-accounts/test/fixtures/common/invalid-spurious-dragon.json
rename to packages/web3-qrl-accounts/test/fixtures/common/invalid-spurious-dragon.json
index ec8b9b16..c3486735 100644
--- a/packages/web3-zond-accounts/test/fixtures/common/invalid-spurious-dragon.json
+++ b/packages/web3-qrl-accounts/test/fixtures/common/invalid-spurious-dragon.json
@@ -6,7 +6,7 @@
"extraData": "0x22466c6578692069732061207468696e6722202d204166726900000000000000e0a2bd4258d2768837baa26a28fe71dc079f84c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0xa00000",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "coinbase": "Z0000000000000000000000000000000000000000",
+ "coinbase": "Q0000000000000000000000000000000000000000",
"number": "0x0",
"gasUsed": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
diff --git a/packages/web3-zond-accounts/test/fixtures/common/no-extra-data.json b/packages/web3-qrl-accounts/test/fixtures/common/no-extra-data.json
similarity index 78%
rename from packages/web3-zond-accounts/test/fixtures/common/no-extra-data.json
rename to packages/web3-qrl-accounts/test/fixtures/common/no-extra-data.json
index b03fb0be..54091dc5 100644
--- a/packages/web3-zond-accounts/test/fixtures/common/no-extra-data.json
+++ b/packages/web3-qrl-accounts/test/fixtures/common/no-extra-data.json
@@ -6,9 +6,9 @@
"extraData": "",
"gasLimit": "0x1C9C380",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "coinbase": "Z0000000000000000000000000000000000000000",
+ "coinbase": "Q0000000000000000000000000000000000000000",
"alloc": {
- "Za94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "Qa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"balance": "0x6d6172697573766477000000"
}
},
diff --git a/packages/web3-zond-accounts/test/fixtures/common/pos-exec-genesis.json b/packages/web3-qrl-accounts/test/fixtures/common/pos-exec-genesis.json
similarity index 99%
rename from packages/web3-zond-accounts/test/fixtures/common/pos-exec-genesis.json
rename to packages/web3-qrl-accounts/test/fixtures/common/pos-exec-genesis.json
index 2a4ed69c..47ee600a 100644
--- a/packages/web3-zond-accounts/test/fixtures/common/pos-exec-genesis.json
+++ b/packages/web3-qrl-accounts/test/fixtures/common/pos-exec-genesis.json
@@ -6,7 +6,7 @@
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000728bb68502bfcd91ce4c7a692a0c0773ced5cff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x47b760",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "coinbase": "Z0000000000000000000000000000000000000000",
+ "coinbase": "Q0000000000000000000000000000000000000000",
"alloc": {
"0000000000000000000000000000000000000000": {
"balance": "0x1"
diff --git a/packages/web3-zond-accounts/test/fixtures/common/pos.json b/packages/web3-qrl-accounts/test/fixtures/common/pos.json
similarity index 100%
rename from packages/web3-zond-accounts/test/fixtures/common/pos.json
rename to packages/web3-qrl-accounts/test/fixtures/common/pos.json
diff --git a/packages/web3-zond-accounts/test/fixtures/common/testnet.json b/packages/web3-qrl-accounts/test/fixtures/common/testnet.json
similarity index 100%
rename from packages/web3-zond-accounts/test/fixtures/common/testnet.json
rename to packages/web3-qrl-accounts/test/fixtures/common/testnet.json
diff --git a/packages/web3-zond-accounts/test/fixtures/common/testnet2.json b/packages/web3-qrl-accounts/test/fixtures/common/testnet2.json
similarity index 100%
rename from packages/web3-zond-accounts/test/fixtures/common/testnet2.json
rename to packages/web3-qrl-accounts/test/fixtures/common/testnet2.json
diff --git a/packages/web3-zond-accounts/test/fixtures/common/testnet3.json b/packages/web3-qrl-accounts/test/fixtures/common/testnet3.json
similarity index 100%
rename from packages/web3-zond-accounts/test/fixtures/common/testnet3.json
rename to packages/web3-qrl-accounts/test/fixtures/common/testnet3.json
diff --git a/packages/web3-zond-accounts/test/fixtures/json/eip1559.json b/packages/web3-qrl-accounts/test/fixtures/json/eip1559.json
similarity index 99%
rename from packages/web3-zond-accounts/test/fixtures/json/eip1559.json
rename to packages/web3-qrl-accounts/test/fixtures/json/eip1559.json
index 44705a28..656208a9 100644
--- a/packages/web3-zond-accounts/test/fixtures/json/eip1559.json
+++ b/packages/web3-qrl-accounts/test/fixtures/json/eip1559.json
@@ -5,7 +5,7 @@
"gasLimit": 35552,
"maxPriorityFeePerGas": 75853,
"maxFeePerGas": 121212,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4802f91c44048203338301284d8301d97c828ae094000000000000000000000000000000000000aaaa8402933bc980c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f31e402bc3ca44e1e7e812865158f22a0e70f9790c6740afb514511bf908ee9e51deab654abb7f3a044934aaa0dc3d09c369dd6a1df0fb2c049130228dc82c4665f7fb026d516d4da5c7e08a601ce81f451e23283804e7c0960acddc202b6a52c4452015d64f3e480a0cfaadb7c5946318226ea172573c4a2ba16ed08c1bb91a77d3cf666895d90af09f37cbe322ef8a5ea647820cbfa04073bdd73522e9f4578c44a13e695f961c91e7b40f75c837c9cc9d5035bbdeb7a07518f8fe28583ae5d24a2e2167ee14f1e6ba9a7e59386b5639a550d918bae1f611504024b61deadd076680a315a5b63dd354b5cb462e9a045abff82077ec6c80e8f6842577565f3e10791cc324982aee8493d1cf8054f24e1d73e02604326593c4f210fad2cbe4f93993348af27c62a17b9ad1bfc92bdaeffa55d03187c37f95a0c92ed1ca77d8fb3d60abd6d6fb40545e634a0cca26134b262967b5af1285ecbd5fbe40bd33a15fa09b99bffcd7cea10c9d74ae401e2ba42fa1d3472dd5a7c772da3a7e8b49fe544569bd48a4f0d0194ce9738f3a4f3b349b997b5821e236fabf1739f1266893ff275ad1cfb090f216784d79200fdb10b3bfac7d92106135ba34e4bb00ee6252b90beb45e442eba2f9b8f5f073f9566ed11fd3afbc1b0d30248cbdbba2759ddcb2598914144b4c24ce3ff7c45135e7b251e4663123da99612813e920a209f2420f2f3ca56dcff7abce627f848acf70fb91ff4f792ab33f171c3fd2303cad7736186b805de5fb376739bff9d91d468d6306a623ef9b5360d3af8d55a11b9c984ce91a158e82108d0f174913ed567ef288c2b5dbe65f8c14f3a4386045814e0d432b17b13ee35408a2f934b76124fa0224d2e7fe0c3ed17f658c7503334b01aedf6fa24b3058fa8103aa247f5263098be603ee1f286b6df3f166a9fc27f8f5fb2f8acc464a3648e58a5345f949dfbb9a77615fce9738ceebfbaadff08d80e908a7d390a2f05745eedd67bfcf1dfc646337ff9db80753492800c9a0b6b22afcb4e4359b4aac9d8d19c2862a9f9430e5c75840ae2c9391c95336abd24b0f7fe12418c65969e7f6feea1da6e95acc73216e69d6fd0ed9595811150c25235fabaaccbc2d64dd63ddfbb8239b8481082b49ed28dad8ca3073365dc9159259ee178b4a192a0ec1e2621a9ebc710b20c4d176f00031dd807cab36be29ff5b7785d0ca066156cd5e9a4e4f14d3d073689a3ea6f9db3a7e51b30968f0f6cb949f8a689b3a4f3617c13519fc478b52ce134617361b327bde825cb4f6df785324cdb238b526538875761dddd2f45055cce869942c8f9117724035611c3cd3caa61f3960cd0d1292d26145fdf90ad85252a58af0ae4541748cbf13b99d0017bd5f34787d117d7a7a40278f43b5a1ac021bb7c415ea4fa7033e4d2b0d3ee6ce26d9642ebbe910d5ff7639b70e377f133ca43ca0069b2f996d27f694f935c9239cd2d74d1023e820a453d25ee0dd37c50d98dac08184b1749ecc877a8b3e83ac50d395d631874a5b51a9e7520929636583a3a8c3b8ea0c7a81424f834970c369348b26179f0c5663de1e62df1de5bf464318adaced1a6151bc73ce7c7885b0a3210ed1056d300083ae8030ff3ef8f653284b7080231cdc1c9e90fbc864f06460bb54de044930118d01e285f9a297c6ea3080241ee86b29c46e53392f149aa7d06d3133cf0995733f3f1c0cd5fe38858d9742ebd73b8d9eaf333b6440e9444c0a1618041c087863b4c222382e4551464b7166a3738cfb73015782a2ce3547efadece0f864db371a807fbaa7378047685a2c32def9c3a60147fb1bb536301edc0bce29fd06871f3125da6f14157457d6984d22e1d80e788bbe957c061f8cf46c1286f064447b597e7b0e63d16461bccbd08d5f306ec1ede2f66988b1de22700f2d0e9d324b612709ed7c9065920bfd179d83d444dcd27c370e75e0bcbc902b8873b3ddc66a35e42d1f2201441b73c68dfd211e52cdf249f76a3a8bc8224e0ac2d9c3eee48f29576900573f6e07fd728045443263612fb4eeea90847de0577b1a035ff52b9a25563f797dd0d58013c349d9735a6afd2bf5c7804a5e9827c41d56765abc198d96315e4afc442404a6af16f6c6bc4f27010710b75470d8960090476f96db76f361ba929b5c518321bdb1bf84375603774e663da29afd9e133fea0f5828494ea1cd59e8bf9ed5cfa5cb6d9b010eaed3e3f39029e3a4dd489941aa297c4b56aab66536cbec4abe3cedbfa82da3afc633f59e1b77680e123e0723966ae420afe2ed5c7ea15a86e3ab1b5168ee93637e965325e23bf07babf2821ae3f30799e5cf5d0572ce69860591c9e3d3d27c8f922e22b64f054827ecee8a30bf855098cc09a648d80117c4e8581692801286c22f2d4da0a7ec9769ddf530861a6673cd3b9bd6117bb2c71fee31c4713a73208639c646a98575cafbcc3cdc42746c32ef7aa24374a004f867b29cdc384c106ccd6a7f2fdcda7fdefa7df338092230b4a8ea6418e912b5609deddc3d602ab077c73273699e2cdf690b1b032a358b31a093aabb6fb93112decfd8c804e0ff2ad6c08ba6d33f8ef11dcda054a4a11f5d34d2378c8afe2aecd4a1719580fad793e2c31a4986b1e44c0bf7f838ccaaefc3ffc01ef0607ce532aca3f0aefc2bf545e1bfddd86fdc3e5569c974b978b434e2de9fdf820a4b547759ff80b36417bc5d69a52d195f9138ad6cfbbb06f992dede9e6d78ec3b9a3b2eacbcd45cfa3ea9da25d21cf55184e8bb6c7b4dbea7e2d3ded4fffbd4738da7367743c6ebd023498edc558f5143815094c6f6d2118ccf9b9827da40d8b27a1f6bc1ae43f5853458828bda54e58014de4a0cb3709d171370aee1a0c619567a0dc9103b92125666b37d2b45b4b9b0f25c15a6360841aa31804b756e617f3403c92d5507876e1c14aa70fa517fcae97b6018d934c9026c9799fed157417dd6f30527444967e10c47b39c1327643fab2c029804f23c1b051f41d8ccdf3c3acfd569750bc78e0396d3a694a7410a9703302bbd1c58e3507de5d56357b1590f563b2bb0bbf7048caa3fc7c89ea501d929d23c40776744f2fdd97ffc388e3fbe5640aee6972d8ec830408ac6703cdade9e329944dde141ba394f89786367a5af8a994702a2585bae24c23b8e772a42afa92b4d8ce1b7aa372b562baaf63977b34449f7ba4dd1b906a58e73045fcf5160adc09dcd360818694da9974dbb6adfc0f7784c1d31b6bb2bbbd914cc311981355f870fc1d90804da3bdba640f8c70878fc21844a4ce6e2b714598adfe415d67d7ee95983d8fbf28574390c5a2ef99076a428a62e4fbeb1218b09d3978416970be19347597c8d1c8b43bf9bd6f0f67e6fd9e935399e36b33e34717b9130802de354a38f3d4b7459a82c1d729fd52747ae8785534d24d3e5d870bcd004bdc8978d06e2c0c0e4135cc6dce11330ca0bc407c4acf5e1a2ecd033a485fab5db4fda5d51710da72a49240dd58fd725c6f856b0ee2bc07f8cc473c29376ce08ad9c1171d09bb072d432a5e0d15a9f695c95f2c7d2cfde9b3933e00a115fe6f3e446ef5cdd5ee75bf2c89e40a1bba154af228127385855f20916e9e3d47567b11d28b2a17140dfc7c014e70052e280f6f4f841aaf81d66a3c7740c3834daff8f65860ecef9debb7452a366ea77c42742eb9bc3cb88bd67a722794b3e85b501bd26ed9c2ff502b5b76a8368116fa98c67d2d9b74ea65bebe773342b87b2da8508a31bbc76d8c5a9c58b1ab93ced437c3a3570aded7fcd85eddb1d6d46080cf76c6fe719a67ad2585ef4f7f2b533350117b07cfc22c0b2b0f557b991d256e0b56844b8ca12dcbdeae2c27a8c0a0cc0e95fb4721e3df4a0ddd3429614a9d3aa023c78ae7c38c6c553072656ca4ecbc95c9785d6693973c8bb304caebc981b803923de0467d16714e5fd1b001999ef61f3919a3e0890ea6ca187b8ae906f9b57f33b6b21353cd9a370795db6812de5cb8a791a8963f32cbafa55f7dc681e345ff9c6c5675145e4b256fe657566a3e5f2d4eb0ba2c2adc407a0e2963fbdc6b8a880842b1d96932ec5f20ebe947f59e78d0f8aea5457df67db3162b464e37620d8cc04eddb68d020d019dcff85318e4ec4c025fd98e30933cf9ebfb9190a3f26e48e2e170bebe49900a763f3de7cd965556956e2a666c7c3d711bac457eb323287a033215f7161c5258b49f207d3c888521ca23a6b0c62cbba5d149916dfb0c5b81aba26f5e5cd21d574211d375020ba1b8c82abaf243db3c5d570aee4f4f455ba3efafc554bb8c263023dd741864a06542336239cd26a230c09280fc780fa8a0daa120b3a36e804c37cc5e927ce798246912f5bbe2ac9cdcad6d4a287ab875bef8e296f1c2c455511f2f440aa90a7868b4de594926a83b62cbeb338ae0b3f8e01d9bf17055d9c9c054dd4a73be3dc111810653c71b84a5c9bd7bce98e6e533aa40343396c9ba6b81e0b91781573ae9326213bc7e24064af7b9cd75f57a694cc111925c049d8f5e973e61a3600f6211a7144841cf13a9177b88f5ec41ef7b2c5cd7e06f1ceb494c4147283f629b8f31462b9d5c19c22fb652555c3bc3f500adb5117ab7b8918117b2a7c137e7325cd9aac85ac98d55cb55429fd61c0bd8ea858c1361dd269d2d461173b4e24ce02bb8d30521fe9f407d9bc17cb37418f7c9e4443298b92891a1d5fcea1361dfffb8db2aa181c8f007bd0163fd52b75b23bb66d99697b87eb27288cbc337372850f5458e364ab6646f94e17322ddd8d353c658fb4d5d29d84fb55acd736524c2bbd0edb0a6846e64aa7d77c6008614275b4435b38a3fc83eda59ee92a2d1e86059055eee97a6d5729b2a6bcf226c89597a370ee1c9f69bbd36cb5f36571f24d2742232f17a9d43524b5bdd7e17230e8efccfea3444216eb8870041798472c783a37c1fceb2f5be779ced9e328011476bbc9521557141512585ff09179c36829fdd9f11353faa2678522414304d857db8270ef918c901052ce190a3741d48536258c435275e4ed472275725569802fbeed0fe23c101a55d4a56d7d848584308415a06e6193f281390f95b4ac94249797a15ab2cf965ededf499a2dcc03705e50abeb21c288c505b4a7016e213818fb1d4b8c202f6cf84789956a5759c43a796838f2c2d720de65a11ed7d59cfb3342478db314084e57344a22020abc19cbf65d7c96bdb51a491acd2b92daeeaf20965ee7cad5166d4a20305f9fd439189d8a58c52dc34bd88e510fb810024963907d4fbde5343b978f3704d4f220b63e08b42599b2d535dfbc61f1b5705266fcc5e3eee37d4adbe6ac8332244c5cf52044e3ad63c38b9f6638fe06bacaa0178a3d5a553a6d49a561f21377690f1d14a00dafba76a9f154e7e27833c36261cfdce2cfee34e138fe346198fdd8fe6bcc6c5d34b88e77105757789ee27b7044aa8e05799e1241247cc744a31d556f854537e9af81df5ee9ef1c830b27e37d94b58b57f157866445b7aa324fee7916711e5227a9b6f7b14d3c39a60145bd4641f37aca4ee2b7bf9ddfd0b085cf4c42378090aa870e45d05b5dfbfe15ae6d6f07a7350a7c24bf4f90c66b616ef28f368b06a4dc1d12a4eaac07324a72235a6d6ae9dc48c1c80ae18c76d1364ad2a9d2ae4572a82ba2ef8aba40cc356a3fbd3054a7bf07fef0cd5b1db775c48bb5ec94e246b75b477bf28aafdaeb74c606e3e8b76e546ed7ec882d203078a3b982064d8ffd6bddd2225dd27ca7e5e9cd62d832a82fd61427845b5b8fbae90bff21886a526758d83de838234f93e603148bfad389c1bfaaca7b75ee6586b0c9147bdcafc8320388a24f9fc43b467d4d868710bc639888cb2a8d6b433333a3dc6a31464272e1aa0fc04491ff89ee5be994111c8781a706d80171b4ecbb86cef31403641d2071ffb8f297c814a63390cc4ec32f702913a7c08d92c1001441e3149aa4562fe663387cebd9d1ea71af1f5c14dbfb1733c2b1027381e56eb7e3d3768d1c6a2f29d53362947952c3a8598f67def0de814af7387ac6e558d30ba793f41c4008b3b9008337cf0f504a90041b884d4cd73695e98a622adb0175cda0bda6208026902113d11776eefef5c01f941fd4ae6ce6128e77882870a702c86530ba29c6df95183855cd5978b89a68fcf35bf075c98400b46eb419a098f4898e2738cc929cca9836f3140eb1e1dace42ee9c0ed46c93315375a581fbdda4ba065d1a5994bd99a124c08e3514c12ca411f18c3d4cdd2afed764bf330c5fe8f7da73117956c9f29ea6771f80cfea4658ca422b47bec6a7ea0a06d209cc8a8aeb4c81c68e6ed6aa1bcdda3453207e32efcb974589aff889543087c384d618d70135485f607b89b0b3ff838eb3c40b283f4487ddee094a5e8dd3f4555c6f7789f1f301091a33364d58dc18236686b0c8030f5a7e9196cdd8e7f400000000000000000000000000000000000a0e151b222a303a"
},
@@ -15,7 +15,7 @@
"gasLimit": 32593,
"maxPriorityFeePerGas": 38850,
"maxFeePerGas": 136295,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4702f91c43048201618297c283021467827f5194000000000000000000000000000000000000aaaa8403b08b3380c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f370a530f88574fe49fb0e8979548f0452e68e6bf6c7d397793b24b59f87613dbfd838397aeef62ed3afa2b6e6a0cf990b6c550a6226d279a60d2b71b2bf3835db14cac660a97b9da52cf76217522e26f4a4e982f3dcec44c2502b27bd70a4e9360f15e7c745de77d75c31c1deb6083ec1b06b108e9e7fe7f06335c5cbae7f39746cd3315a2bbaff3a89818dbf82925520672703cae50ca652b99c20abe216fda3dc7355fbe3290a8aab8ddea9e09f1db68087ade5954fe849e3452411cd8e7b7f5ed6328b69bf4a60ff70b33338c1d1adba6e1fd2ecb47c8e0fd2443124647370a4c384d1d1ffcaf81f7ce57e734528ccfb8370e295acc6f8bda855882ac1eb7ce600465804be853f22708a0d562d1a5aa1f9b116da4b878b9d31ae6a3600d380d234fd20ff9a25cf86c9809c3d9b01ca45b502f3f9257e995d02679b1adeccb7273d330133eaa12015081365f0cd42ba0dfbeb21b49a97d1bd7726113aabcf9b0aa12bf214d89d14f55328ed06d4961579ad3b92174fb9e026494ec7d9c4543fd0af5a68506428051deddb7952f9faadd21bf28cb4feaf7056f1324a9b30865f035ebd89ec201fc3a412733b580499acf751eb8c70bef8cd59e4568bbea85633ec21790d150a4112c38d8080b362233d2b34cd4ce910e83915e3820e3a67a63542ca37cf69681ccedb7d143a92101ff92a504689c40d4e16b78ed46c36602985243e8aa1d57e3bd2ab828ec97b47a5260d9b5312f89b2cc202cf0ca23838cb560faa92b5404f11abc5a9c62827ffd3b12ebb77e074b4628ad63ce6e313dda3936ac9c26f7eadec03a6b00052018a7ce5a8713ef2fb8a9c612e46f40d42c924327cedd0d633e06d9573ced43a99101293e55f432ad6c6013b976b56482f6eb5ab7bd601124dae1141c5c7463424d0ef4df329c58f476b157527e70e4707d93da48c83b4ae0cd14c4b6737b6d88351eecbff6b0bbb58b5f30a8f1cf1f27a8a08e16d565b3a7ff5f08e52a97e0d3729c9e5e50cc844d40c0f52a7c40222db1f55e37cd66c79698337098cd5062f99502ba5e84df0c231b613cf250c40ab32e531b31514955c2c1151ba7ea1b30e6a4c2d9f46ac751b2e2dcfea3a3b37c664cb5d6e18b5dd0c8ea262a80ad66d53ec14638f8b5cba4706f70801da0a143393e40a8ef49767af44d4923b299c44faebef35e0b262c44f62aed49744340ea122469e067c0768a3e62f5c28fbd2b5b1d5c2f08fa7a000c6033a5b1a875862c16b1629160d92b13c691c7f01db56ca9f521ad13e82aa7c2f278377f42b58e9d6035095b76bd9afb0301bdbdff88e8e49aaba6bdacc9affff75278e463c323ab9309bbc61f8080d9ecc9382fe2ac6a17e09208f973bf46c740f543fac2ac12ea0bc5f2dbec026497da357bbb046751baf0a7e4a6ce586b980cc9efefb1c87d97db6444c2cc9faafcb5d061a71da1b154582f3664d0f93d9afdc77725900dd89d29dd6ed4571e1cb131ad3be5ffde3224cee6ee862bab6d2e5b208a94f0957ddafc3ba531b1554b92dfb03c204a0bf200e1c719473a0a1535501fdcff817b03499c35f75251d88fc5f2c214cd55b99f3e3ebd4d130b3e9e653306dd0cc89f5c12d932aff7ccbb42b0321d591b30eadeeb41630537a26737fd68fe05b80832d9f9351b37894ceba26210c54d55c173980eaba7d15495b440a14597c6e80151614d75895b7040edff5365277d3b1eab1bc778c1d981f9d3bd3e398014d34395dab0c1a1d8ce96cb217545a7d5ea4f5ddf48a02351e4680250026c199d5a059dc499ce56179ea3c3b5d674d2f3c294d4327ac9d686bba578b0c921b1576b4bf6f921074f1b0a202a1d4d07eb5c5bfaa2d387ef43d53b17f2fe969aada5082268527394895f514cb5716dabbbbb685dd73bc3624e08339e7c6deff52b9b3b23ff494e08c9e4f9adb8f6491bb8954d78b8156182718d7540be10473724b7ecfb599259bff8ccd0a2b1e5e75ee3f0b2bbac0cc6d2426b69f1a75253bb666d2e64fdefff8066e39874a3e7f5c095a773055c6b69ee086d1591f9c779d7f451297bf79de7246f6bf001c30c7081193a97a6fb0e544712db22d16f7db8d0142f9b9ff4593bd1ed95e88ee455473dabfe97d0cc3cc8067426e4ba2e0421b64dcfc7705dec27579e4bee63156c1321f72ce132289bc088cdbdebbf6a60fb85face1ddae70fe378b0bd2d48e5213f222e3ef6d5eca5536fbdcf0836fde048a975408120f7b8916a0709598c35a127d67f594210a0c8a6c11924dacb12dd60c6f5c2cfce46d20a4d88d77f6dd04954c7f92f6d0e91fbaf5baa22ea8864d009323f14d4b223856c81ac63618e2302ae2304ef7aab1b055313c762b3313256faf39fef46695cd5ffcc9f1ce1759c6a8be5862c711d27b1b5e08af8764109f3e6f26c977249529b74214e2e2bc581ce8029ddb7366567fd5018a3bb2f08ca9698748a58a97b89d405bb32011e083c4eba7d697e721a65504cdc2b85cdfe7262402687cb87ef65f926b35cb326a42bfab6ca0cdf5eae762eca5937197fe342e14b8dada1a0caade5bed7c6379482444adf0e330b1b87b600e75c2f00acd7c501bf4192f1efbefe6bfb7e29949af12e018afed825362fcdc9230bc321057e5348820dcda30e6cddff37b9a74feb6795ac36d86781fb3b537674992990b48be990f5b3a07392f34dbfdc8a807a63e83838444c5a671b810e582f619dc29d5b3d247735eeffd259721407b35994e6d96fbcd09fa754b1fb549a5b0eb1ec17c7d77e6b6a571a8ebd0997a8ffcd8383f70ab55c353992a3bd0f627722009aa338187f8f0f7c781c7d21d0175b0bec018e327074e2e0297d30627b2b081d0b75bd607247401f33200a820f214454c1218ad13a8d9fe1b23baa6e3edc9cb6ecc4ee5ccbd8038695ae6a8307597445951dcab7d9d3bc0843c85efbf15298873d956e0c2fb4b57ba53c4abfbf577f8c68d0cd133963dd4f8a70151e0afa9e8f7693eb8ae51837f63598ca221c29084441f7f85a6de073f05428cb9902f5f825660dfd3df94716e488db0de0d479e65344b3875c8c8524954d10afab391fb0cb65eb804fec6e9eef3a11f5a57e5eb77a3ccfc5087c818e1746bdbd302f44e6f9c704d501d95470013c3ead5b261e6623d9afd0a1af160c64c44d1ef5541c08a735807550ae8afff6cead6b27fc7dd4023721b04cd40bd617e89fb5644e4c0d56c24aa2bb888d8715500e4b800916e55c557d5c4e3a491da960e261c990ec4ebf1ff6b93c446c2e0f37d32da0a08a02888852bb53f8d31a2d47b260b60a2c3aa4ffcc31a067172bce3b9675be9d68c23b7300de8886ad593afd725540298c663100bef50fb21b71ffb993720f4b9ec28788ee70bb9d859710104ba899396df4a8521873bf3f16b53f251715c6a43e8381162537cd8271e3e0c9ab8005ceb8b8aa50d53de6fe7fc67bb80dbf1f1a550f4637725f52d8687fc1a85c7ca87e6eacaaa834df14ab2e0e3d4859329584fc03cf170567c93f05079b361eebfe862362c97ef1052f421c03768f9980e77a2124f1c7e1e85c38d879d9c9db518a25bb58612ddece1a87735b1e966652d4c4291b1eb520651f7eba36d9551cb7a4976dfb2d85c3f36f0e85d7e7074ecc48f793d7305d28b15c7e05b446723266d81d07a4e501c01f64d6413c1d90be95e87b185c80df9ad95e4bb0519eec9ed642e3eca067486289d673f0dbc48ea98640c7e0d9879766275f0f50e7db309ce56730edef2c2e8c3510a21068610e4be437bbcfd0bf62725330885f76344f85f6be07636ae7f463cbc99e7900520548df8727bae92167d5140eeaed329e411e2f1f18cbf52797909613b2141ae7bc8351f94efbc776fe58324b6088ae8277ca146c8d77768973b5acdf3184baa8795b4d7e0569c78bf965b4d4f45de00abbbeafeab5316be9c9f40bfd5779eb2c2545984d688096980c27bd64c9ec6e8d94b3039fab343c60badbba7746f4b497a17edd964bd61f3ae4d63d3f37b2c0af9889f3b2517531d529c80b9c9df37c8df110e651d1f0b587f26fb81690fbbe74b322638d843e71c818eee1eb6fa735cc75017d4dcefe00f73f91ebeb3d4f66988dab16cabc9524ae7c779580e20a8612f4e8eb585c5dfab9345cffdbfb51af32133a187cfd2f3c2655610ffc059f6e0c799cf7bf73dd5990367c8197b0fc0d6b881807dd0a1867f2960f2f6b600a05d3fa324352a406350e70bd9872bcb363df9f03245c2f58af28554e2684bb201c62110a7728f2e7a944619c66cf953e39a8826cfb37ee9565a3ae0b23247a0c8671797b9c795f255bcb9a2bf291e938e23c712907da77e8cae545685f0dacb140b8574a2528572f3cf980a7a2234f856915d281f750fbac09cd13bc2dea19a89b7f8ad6df039d04b8e8ec431eacd28abbb5a424daebc59324b174bed3f4161b69563366e43c867ac4415a3fa3790869aa2fa2a08d4b31db5270694fd1ecc4d3383ab46ea584ed98f8d6a85c4f993bd2735e92bf62ff00f83337adb9d03ee877298810db9a7dedf94d5bd39c01598ee03ac3a8993bd2ec51ea2c3f406b498d6fc05ea1eea6a6d35084f6238ab5005059f51ea0a8fb269b918b40a826c12cdbb0fc61895b33f2a1d27ddf12eb3be160879dffd38f3509c6ed5ac1ce1a7c7871b5077bb660f550fd70eaa4c6bc0f402551d811cde76f35a739b3aad6e81fecf817aa07ffb52a36faccc9b95ceac1f2c483a16267d0182a7b711e88a192c8f98c163d2f629fa2fb2f1edaf9635a6414d3a6f1c606b702c8656c4411189864b18029ac0862d1a95e0cfbff8927d58a20839830aaa97d29d3008a1128ccb91ba458ddd26538f9f6cb7f192136591c5dd6e85ec1a876e8582a362dd69e786a934869327f51c4279f5c670dbf85256073b8d3499fbd69e3ef16db5fa1c5fcc325198b1985af028bb6f4501c6fa7198baa634df26cc639ba46c3d908ab547dd98676a6f968fbfc3522aa1e5700a1616cd73a2644fa33767aab9d2d76ab6a794d81dfba6781c5043433a72624a8ae67d82faabd5fd0c309c5b4054de592eebd73e63cc9dfe888eff396e59e6b3b9e82c9b891b10b6d11f7ab56a79ce69cf567e6d60495523e00d93597ce02e7929cdc993ea7a3fb64a9e1a96022c7ed17be36f21e186c314fe489526b1fe462252fad8c0d5b95c1aed3673bf4db8c5fedf4a682f7d374bbbf145b4f8523809de99072ebf184208a759bc9b944fb670056a76e625395f04b324782ff353f0bc7beae46a6778626825d2289fc591626b06877666e8626f4d7073fdd2eb26718b637e90441672fba959ed52589dfe01b04045b96448657ec18f35f10790e90ba67d0a865992ab29838d6482a5f9ac10ee39637679ad6de429b5629071878a2b13b9b045dff60b4e4148873fc579819b0695a99f0f429899eda984775e0e57bca7c5f5e4b7e42cb48f71db9cf6326bca50ac63c962eca24141e3c02d8fa38afec2efd5124a74090cdaf35970c02f57469c1d54fbc114a5efb06bb625daf7942fb774d698f6bae2d84c27c054c02dd39baaa3c9e6491ea3b08c89b30b0652ef0c09e41ee28f5504eb79ee8f9996eff6055577af7cdcce6f34d44ffa503022eb22811fbfbdfa696ffe4660c25c682decaf7715c113377599d830bc0df5290beefb90fea66c24e236c29f458416bcf8e1a09d7b1b49e700299394bb76873a19da78109102544c8cbf7fb469673f154939be8a4daa0f17ac791137d11637ad062bb1ae2a8ac50e01cd280db9d981a918f9517c20faafd4577dc9e5c7355ebe233661fc33dba7f288b48b63463ba9a6d4e78fd6a320d5303911bfd41c1e6581913101abc7f7f3c3f3ffef830799a59c6cbf3defa293b55cd80ec23feed26c91bc4836c717227ce2017850c0f313fce8b6a975902f86667c3f3455788ee96e90afb1676ac62b639a34af33b7b4e81367fdeab5d107a62aebb7dfd280567fca1a3916525172f648849b3a84fa8bf90f3f98db25edb580b0ccf89bca26f9dd5e186401dd8aa02f6869c698f416dc9b3df61efd46c90994e73cd5a239f2dd1885d7454aa1133a10c073ab9664e1d6a874efa4282df95844884779c74129fdef27f9e05dfdaab9c3d557244d06da082600392f69aa2eaacbb26f15b08f03bd4cb1eb4e3b7342d3f97eaab2ea69c4678cb95514186033fbfe3c4a7b49c4ed4bf926da3ede05d0070c0eafbb3cec83ad50023fef39ca0a4b2962a46dddbb0d48eee4d7273116d9b766a6fd53a19ea1db61b8374de6e9ab71d43e4416ecd5ee639f6347278605921e4a4e3a51961b563af32c2d8d7f4335944fc33f611fe992697d8f7492e0c5ec0a825bf314182d353ab2ebfc153597c7d5013d575b78a1d1f4052780ae0839a9cc1c4f1a354b87a5b6b8bc060d0f84a9c3dd000000000000000000000000000000000000000000000000000000000000070c14181c1e262d"
},
@@ -25,7 +25,7 @@
"gasLimit": 68541,
"maxPriorityFeePerGas": 66377,
"maxFeePerGas": 136097,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4902f91c45048203d983010349830213a183010bbd94000000000000000000000000000000000000aaaa8401f0657180c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f36f55262c289abd3df22a8cc8b1bf8b672475f799d01b6c250932279aeac0eac23acf86194fe5503895dcca80a43c0dbd174414b241b85983f9831b11490bde3a06b4eef1d7e1fba68ae12261330ec0c40fb6f124fd9d754f09bff1181aa0019a5abf7638cb6342513fd5f74d109fa828b1ea663f1472226e4bac8d5bc349547db8ed027d02ec030d53b5c1470dd3c94d3012d8e0abccd8cf916193624d7655691e150ba27ab7894ecb67f58cab7cfd4798ece2fa2f202ba5f55e04e7bf819c9fda95ef25a910247add60d3f371370a9016e972941e1c0352b8fc0c37386b15b3587f104e2de1289d637e883c2fa1be6dba5ea48a31c8c9cbd0627e622458c8eb4a39e9b88a2b0a97a8ac57c2a89e30c440dfe9bfd30e81518ffa5dd4fdb09490379d46c46f9d0dfa324b892988a5ad25f256e5b7e1a49efc02e34a4b16d69c0e796c8552efa2b4e70e9a9aa0dca66f2a635696dc281d7d388c2b361e321aebf175052b425d2928e955a777b40ca602db96e894c2a8c32b10c421f3ca35b7c6cf66502b9df8253b26fdf51d13d56aef552aef954ff8a843581d0b3be8f2ee9ddc2336921c18fdbe205b7d59caea4612194fee2aa4b915ae1a19001f038c434f4fe3965ed9b6d4f32f143cb477d252035d6cc768bc204f2e07a16089ea603ebc2a568e89de9c574e89e222a8f7a718d4209382f9824ccdb872f891560edb7e8e1abd71213a5c589a69e42fe9e234e6a5a0600686efc3a916d57c75a5bf932e9f19c26e2256d4dcaee036ab885fec9e03b99fdeb6b63fa91cc29e1bb8ba47c9bd85bf553d1a5767816983436ef2e0e763b79c16103e8133770048001c9d5ce581605aa12e9759769cb6522cfe270cdb9a3894d893d5ce5b02f10d2743c2852d70678ae5837b62dd0b4f3a7c1b16510782f195e46767a13f666d60049711bb80fba407c950baeacbb25697a53f3583b6dd43bee58e9cc542ca2afce49fabee99e4d6fcaf0034b26053e03fed78ae1e6113cbb5257300b3a5ff0597765e03ab6fc96961b18bcc44530673e998d257a401a45033da6b5861cf06f16785f4b855b2e663bbfcff752dac281421d1bd80ce597fd7bde69363983177430509497d73b2ef06d7dc25f7ecf50db9f8984883508a46027abaebd2b8025174cab0408cd24afcc59ec160ac22224e70c391b075d119a9b309b0f43b195fd14e9bfeac44310eb80fab2b8854c73584a55a093c1e68a17a018a9dc3723f3bb331ed2fed124f90087b743cd42e50ca5d41710b414ee6e7c79fea2740449f117b7123c25ac5db5ffbfa8fb88c5680a21aa739172b2c030ec55be796ae2176b74dcf0df41dcb8c510b336f88b1ffcdd9c5edf4a9280bcc047864d750457aff3eb80cf252d5822a34ea20ad1570fbe86e5a1c7c03c120d503cc62784fc15dc21dba0e4c8e13f1b8ba3f3a486459a69950e72439323aefb84854050beffb46f2909768d9e420cf8f3d10a09f2e47dda14be1c749daa584b114452ead0882382e8d3f42aa34f76dd079e768d630ee6ae77a1da4b3374184e2a264be3c2b8f040cd9547d867042b10ade19d6c157b859b2eec005a5828cc3929a2b4c8e2ab881822bbc5e92a629975a82022a3508c0b3e30134380c810fa2ee58c7afe5047c26e3f48f2620bf88844d3696e926f4a889c91f95ba523533e0d4e2b8725e06df80837473403a56da3861f9d2a83d5934776e5e6fadcf86ca3822f09feee60277df90e575b28cbcfc6faeaa053500812b64267435a45e500fc6577c65d5fc60dbe9f67a4c5ed5f4e9afb401ef9a579d63c6f3a8005f7483a0a49885b5fb2e3243b3b5492b7050eeb661e55d9b73cfb4be6ea5b912037e60e0ee647922fc6a4cd779be6bf311531045ac29eceef4f1f0da2ad1a3df1d4dd1bd11614b9d36407ba6585a79b2e6a9ecc2cabc49d50cde3ae5469088e8ed4c18a3c80451cd98d65457a2e75d27ed24936934dd0162516dcdd83099700083184c80850625f28cd934f7665ad1d2b5d3f7cf783aa30297056f74182d06e6cba83095a13ca31e1e39934fe0b78d68ef7b29480b304541fddfdb805700cf688831a05b9c725c0641cbe898f219b0ad985083df109065c92576a4db0863f526b830a1b637fad9ccb5a281153f5c6cd79ce924f7d60ddd8b24bd3b5d8033a27d4c0244ae0f51820133318d1f20c74d4cf6e3706b707effdca86ae3f5c9e16bb4a7f974bc8d1016ccd28591dbaaed1ce4ca72c7328f5cd3c76770ff68bd52e83af101b337ebb9986d809a5d096d94bfa74b5f5f1f75222656baf814612f9f3a10b5842e64dd93d7c23b9e587dbb02911a17309e00f505446067c20d7e6520e0b195032d366ccda99bd186721acd33c0e9e744c162005b512837330af1a4b167b0a97e3d18253c55f99b5d68ed0295fc8b3027d361bcc0653baa4c2aa206fc51793038e484c2c06d5ac18196c7a5f537402bef5793418ecf202fdc2ff603d5484f9507d900d9733c209787ce65d359f5c9ce882cb51f23a412c16556b3a6a9704c132158180eb93e9a6d339b99ad9fc73dedcf695aa1c07401d7b29862b258bb7df8bc7901f6bebd327ab23a972a14a94635e2f95d3cd082755c5619f5b86ba409054c32405346a119eeca838c8903c4562732cf6457320ac7155d025cf9f5d31f1d8a7810cf2958c2f6d837e69b368b38d002584bfe7ef78dd5ddadcb883aabffc697b18a2aee90c680ca1549cbbced7cba3bae03c3593f3eef95af2dbe4bd879a36d5832aad0ea8424d42353e73955d26bbd0887d1eacb17ba85af57f1c13d3bbda9a8a072d2fd8da93101e76f67ca154ffa80715e1f2151352ef1dc0b77f4ac6a257382efbe46399a098ea40cecdd21f11ceaee3baca7955b6109df0733658d01a9244b7b6ce39542ed2fc6fb274f8b29df13903b10be91983f6daee286d855cc75ab5e06c0c2ea71be56beca6b99026cf748cfe57562095a1e4545e52e6a55bf176e6b5f149179695edcb36219a4a7748872e0f9aeb096691925b5319c030bb757fcd00143b3346ad6180d62ab0385049975afcb284f71793dcec75bd438bea5ad107ca0162a7d116f7299cdbbf330d5f79608c7206e87a181d0af3ec47163e38a21617ebb850398c8a6beecdbd47b35718a8ac9207b660c4488569e3c5368b63a160c16fc1caa7c8474815305c8718bc73eb9f0aaa3a137dbd1e79fe29eaccb3505cc6f9736c640ce52f4b65d8d82c6562774e9ae53522ef98637c8f6febdccef6cf63d9a626d3e2502716af35696b48ef997298a5722ef7779ba97b377be34a2030e16cee6bd36bc18d0dff876121d4d25897d4735f4e5d5d956a65f6bd4e2089d4665d82de0498a8f0eb7421b81832017e827c1a48a8c49bd0cf5e1d296f1be4976a4b4bac101022fab2c0b023bdd9896254e4ce67d8f9854a432e7332001d87c585b634d98268046bf9ffa9b897086cb792d7e4d569b6fdb5d900671fe66d0036743f424537a325e63e2756f178cfa13500d60a57787702341e9b18c6c1bfbd9eff186e6aff13734527829fb933b5ef724ef8348064d08e30cc1627e41367877ad88693c1f90edbc0b771a6b8d6da57e812f9db7f63ea5d440f21c3b953fd16142a0cc50bd664e220dce1378dd2cbaa3f5a55745ea0ad63b65195058f7093729ab5a64b95cb046c119675bdb337b080eae6a54146087adb08a5ea4a62b02d6f95d0c64de0be8a2524c278b6238554f81a8daf334abeb31e039da921c0ab3518bf384997a123d558d8c540b66a2159f1fdc54ccb5081497b078009fcfd7304f67c09d414fe68e1b7797fd3e810ec6cc62f8958b65dfb344313f1a6fda6769bba16e450be277eedf9cb716c5f0e2afa05dc0bbc2583e71f7e07767b77f2170ae236794ca801ea9f4ae7b62463696e0f09c60b2d6bc2e18e513610e2e11bced82408e4b188567751aef2c6bed97eaa42b4f7421cb13ad9d6717de614c7b5d5ec52fece40b706ad6cc2b8a12cf464b08524170274bce3444ec400e5481accffe77d57d28c7290b071e873332a8f649067a19e6546b26ae91a786a368cbb1aa3617f2760c893eb753222f6b5bc4c15b06f7d0e35c7304c5582b9e2980534d04c681efabf641aeb979b42f7aa980ae021f393035da5f71d127dec1c5cf59999dfdc1100a52b0f36e680bbc13e84247c0661163f876eec050ca78bb9f9a931dec8ccf17562c4f31e9e2bdf055e77f80885c896f69b15855748e77c8a0d1b326fc063fb3894cf8387b1b7304b53fec5620c34180d0aeff6f50a2e87de49c8de44867a7eb903219ef99bc0692bf8ce073cd9af7154463442ba87353da22481271169eaacbf091fc4a2a8ee5ec6abbd2051898bf2603ca621daee683443a0d17a68b91b8ae889bc303231c24c0e182297370583ae12835a335d5a4a5621bc9b49651768c19e029373737e77219cbc5a195fe4a054df5af506a87e1f2c8b6963389c7e0b399efb22bbc21ab59fe60d46cc71fb557a7be33f7466ef74305015c67979d1e27876ea054b5f58f10dc6e1b954e5f1c376da7b8dc0a21d77a56f5f3b898783de66eb1ba68f2e81d84c0095050f39b80a090824766ba1fffbd717a6f3b316a6d5d4ef3e3855a130198a8f6aec3aa059aff46911ffb9affea7851f3d89afb6f131d7931835fa02bac26ec37b37b2b8489f43acafe45cb779e570d544b4e8e9e1e9c5da6df7e87e9262b58ffdf85ede26f28487f26779d07cf9dad2e982103a430db7ae975e66c9a08298df4be05ebc536fda0cd40462131f6a94792d81d534450ddfcd6b2555af103510c3d0d01c03b66796c89a051a7c59ace1a22ef2032d891600184d927b37935d48cec718600e8fbdd15fd0bf743add5f6501f3a1a64bdf364755a4189f1aa3c882b5d17446d1b69ab356024dd6392126deb9737bb6443a6dc5f2688ce49db7de7ee4c91cb1831f69c0678b60f8dc7aa0c610f51694b81de166ac6c09a69dcec1def48f5c9652f327f308a8093776e21917fef6387924d5442192ce25be27628429aab7c5ccf8f2bad9974537448c00792d9f5fc708957bb93cadd541971badf141191e58eca1c4982119b1c6b1fb84b76f050d05147b99f600bdff6730d3ede65eb9f2f3dc5122f624427f2cc0e228df17d80c06ad1ee1913d5a408c6ac3b37808d70d697d6728e60aab51efe8de7bb60a6444fec52be8c20c030a670da0635d7c42cfa2c4bc8e791925662c457a83fb1238f83555e9709e21cba529cd309fade5a4561d92d0d01f271c091bdffb74dcdadf2381e20f6f6980c6a0fde839d0b40e6f30030a04e4e185b487f886c000e560bf9e022205fafbd57b1c4a7fe07cc1855026324788f57d9a7fe7b8e3110ebdadf5cb6d47a91949297e9c736f289f6d8d9fb514fe2d14a180e2dab4f92ed42a220da0c53acd26206aa08a75706697748a31efae233d2427cee5af445b7eeb39a98d48a4dd4ae5c7efa6131ca3f3d163c01473e981d70338fe461c6ac02013d810d62eeb816b7069b128d1ebdf28b1ecef383c753d51717cda4632dff105762489115542af8580cf9e1c4a1aed8c97a4e1fb4426785687fe201cd4b98e8fba0496c753ef41a465e4b0b3640be7946e73e81bde4f983cc1bddf00c83a03cbdb1078c8bc35765aee8c1ad0f0c2c3cc3b5faab22b02be726b30163afa2cb14e91264467a2825022c28eea1ec3dc6fa52e4b5a18b549a08252cc213207d3bc7414bbcc8a666310d371fdf293847a243acffa95e84b84b8345e8e4f0e8c927c233c0822666b22ec7ccd0cb63131c13a628fc0ccffad55e0aaf1b40ad2b77c7c24c3548197cb723d517e2db6cf0a2a8ed363c7ebaa406162ec3b8909164ce37600ca38d9bc2397d920b6b12cd2e77cb38f68dae24a94479e7be32c5ccc0b92f3d152269158cd1c026991a33d1e35ce0702eb416e592c28cb9244e599c5616bbef26bfe6b5f9284e3fff989be28a5dc562a602e7d3ec45062ee9664182f9b66e088e70118d98f716a92351f49bcf0e3ebcb7efd0bdc9079ad1542426d95c71f0ed13295980e10fe993c93d4c1a96d20557055ee86a9fe66fe2c7bde85727b25114e6198a5a1696a5d21556a901be2c708e3bba02b3613311709b8ce69e57942432735b7fb61ba3aa1209b8aaf0e227bab4473954d66e5b2a5322f8ca6aa7754d5f2097b9af6bd29eecbca3c810e99709836cd6a0fcd305723bdd3d8abd1e7a6544a96c449e4789def08770b6fe5bf6217b5f2651fe1d0e04749ed7440562db860879f0a65313b523613adb49462972aff95c323fcffeeb3668b9763cb73627f282349524447fc16033a0dfba78fc170e6ec398366cab084f270996e53ea44cbe96336d4e5eccd3e6021b38536b79bcd10307253a5785122138939cc1cfea0a3e4e75b7dff71c3ef2f81e22233d6e0f12466b81969cb2b3d2eef40000000000000000000000000000000000000000050d131b22262b37"
},
@@ -35,7 +35,7 @@
"gasLimit": 57725,
"maxPriorityFeePerGas": 74140,
"maxFeePerGas": 81173,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4802f91c440482026f8301219c83013d1582e17d94000000000000000000000000000000000000aaaa84014a598780c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f389085fa58011caedbf477cec0dde4f48dba516c75eaa699c11914cf32ed10da864138533635a67e4ec4b09fa8d68c13d8406b61aa8de995926dcce96276202010f5b9814e55f8239b9fbb5db686d8e2b182a6008c4013e2abbc13daa757622c87a6a438eec4adede24fc010fbb0fe1c6f2b6524494c60096c85bfaaa2d626edc8f810bbc46a67ab8e401fd90b51ea0d67ad0f0789b5cea998c1c7b89af8db6255a29752633c7dd30e32c29b64c0aa7ff088eb9857edc31a79d0a189ec2d7074bd1931739b6607ff9eaf676724c51712fd3f55311fed92ad0e34df44dc3397e61fc725bee343d2cb73659ee6a25001eda75125e50f7015d932bb0fa03c3ebb217ba67d2fd9534d37f807e4bf910b038ff9ee9dad8f3b4abccf085816e6205be0054907322fa4577a4bc4f210570b1b9148b43f74acfbb0f6e222428de5c55d6e2c50b98c34435a81f68ed3bd126f0fc3fc5116a0fc471d27ca229e956b6ff18ebe9b4c91a0a5428d499dd8c6ad0cb856949e0bbd8427b60a9f6910af9957a0d037b0a2307a799f43b32a7797cb06a6f5156d8d7b62c0562ef6dad2e95e2d58a1a30ff31863dfae96fb20462cf4b2203bccdb8e6fc55fae2f442a13772d8ca5c91bd4d6e454595b257824ee61378ccf8280976961c128d39942ea3ee9a06bc5888bdf29a242ed4ef97ea030b9bf630b2286f9c77dd2619652086b2c6d8faed92900d2ee5a4b49b3b4100a827699f6fb3c31ad97aebbb21599f4cf235ee1835d57fe9451d495390d7ff76f17c1f3a408925f1bf536430408cdbab29956bcd4d00118510865dbe35a7170df4c3f71f61b3c759f0fe03d67c21374ab442f16161ac21f4a212f31a4f69ff9628228a3ae3f4f189e3bced753a2a521f1b23c14904ebbc6a8df8bfb3425dd46698383c856fb040e0b9e58069699aa98631020751621fe5ea8058b27394f25873213db3742e246bf9de2a80bc3652644a1e4e7f1c301ad972a3df9f46a43e11751f9e6d89a5bf874f489a5a777bea7f6f87b1ded3f8ea3b7a0adf16d2c5b0b19290c4e028b56c8e3ef78c3345cd4d125cfc36b5ceec6b894321fdac094344f0a8907833f99ff7ceb2de10052a9a9bcbdee92dda96574674cf5880310225cdd23944c7da96084c1150a1eaef5a1ccb609c0e7e378127d6c5ac5f5a5f9d21c664770ab6a172f7abad5a024faf567614dce5f2e4e369293065b95de9c847bf1e9784fcff8e93af466a1a8e49abac8115d1cafcf78f6123137d657c062b500a8bf1c44f4047466ce95a55f92e207019e687cb60c91e1cdbef8130a0818db3eb59adef3e950a1dd1ffceacce3c3fac005b04a152ba27b5582aeb3b2ae3a1fc790bdc8fb754c52eeadd39d6980ee16876d431f7d864e0f6a526c8225c50ff440bd560ca5fe06bd38a5cfc127b654aa4ce97acab67d69fa852bb52e644b40767b6256bf5fb54698e0fc2cfd5b5296fb6fe50a15a2ea1298440559186886df7918be0d49cbeb580e0644ae72ec28801a6e0136ac8488600eebe53638cd0f50cb94cd6447f0a06cabb4fed96eda6add82f5d90b6ff1b1215bda7a18ce512efaa8259ea5a40e766602202ea7696a3b44f794374f7e7445ccdb35f0fa35a91e73d53f979c8261c434141aeeee21d1b23a4df15db58ef47fdf7dd493c8cc9c9b6eb31ca0afa52a4b6bfa08551562c4c12e4edf74f6f88982a86b4a1ab1b7b5bc9e0569a58051fc3134929ed8acaa8862766e9c57babedee0a092f9272cecac9f0bc5484ce48e38e7ca03e2cb272051d45bdcd4276847b649baff4d8d3a10d04bfc8f1c54329896db75998afaf07a4fa9b2191f000d4897a76b52eb860bac2b25b21515a3bcdeed9719fc868bc8e47d8f6e658ec6945ff7ac0ede7a6f79de1f0814d4ab752585cf86945edf8946f9df8829e136005d0750928cb7f2c9e201297569e0998204b1fa4a153081a6a7342c05b1b7f0b88ce9218b62e2451b22ec17a7c330070245c1e1519752b47aeaca22ff24427b525ee9b4eca5a08a49a6eca22699bb3d43f5266decb9985dee040a485830709a171f620917fdd2e7fe1f5e5bee0430d3a480fa7745493a506d1e3637b11744626fcdc690e52c077ed2fb40de755019943ab4607a01e403de777046e30de5730ec9accb3dd62ed888c400a5c1e040a0d7232e9640db327da1e88d482c55fbf241e83ccee14fc51465b5f6e23206033299222b3f5fcb6992ca5f4506d710ba8deb051627f6b8e54c5ddb28b3f1d28673f58c36b57bee171339fd949306d1e0e74504d2ff966cae07b2fa3dbdf7758d14aa7e1f5483af18e1aa3649abb1c015eccb9a7f4bb84000ad319a6348611b4aa1ee683a8f051b0118eaedf3ae967f9fcae1be3385a062e6f73cb65a22da0f1f2e7119974c12f5c6a2aa5d79ef8582d70d8b1c36dbbd2d03ab958f7ab219c4a3556fec7aeab9a26c56e7a0876de4809bceb43da949a7700ef4b6911fc3800f78ce93d34ac938caa48b946deaca33f57af49cb0a7f9b717e705c3aa30c92e8a3c8888b2a799d2b7825ca521f065a75f1d4df95b6da85c538a4208e0ba7c6809df543f09c6e197b3f41ebe286c714a3a9d96642d149d53234e085044f153c404f2fe95cca01fe802d78852f5694bc4e62c39cd745c085e33209295844527bba5c5a04a3b1f0539b3512d6596d21e57412eef9e7c3624366a49cca2eab0cef5971a57079bdee46f8315c117a6b2a1586de54c27edd29c9092a37e68cfa0b9301e8bc024c8d8179b2abe0cd80ace0113b231def14dc9353721cbe328db23a7a9ea189c57f117fb62ebd9ece7982b0fc9107b70240d46432b70d429cd1e56e6be8faa28ee392506a5b68e702ce946f1351039b39e53c6fe5194d3d4edb6c430cf353db073fc76be339c8dfc07439d550da81c4ea01413ffd64ee2272081880ec124d89e30887e6c2f227057acaee2dbe0e4b5666b770c3eabfdc1f22ab37df8bd8a0a8cf919075782fe159020285142365bb3eb320ac807036a62e508f0190b02e06382cbd7ee5794e159682ce0b2594597b3f31d2652816b728628a56b5bd660d98af99e816632fd81a866b9cf874b4b32096c2a417ebda7670d3b90abad137605fca5064e7a64f9d0e23f611b1868774a2c391529edb149906522977133a9c0b5b181aab76a03ccc1cfda7853bf0a4756d51b6e85a605e57e5420dcf35a8297a8c14c32d7e6e49886dbfb5513eb7a06e255ae9c39c022c24a441993acce31f39467e4d37241a1c228b66611160c33e4db7a94891536a60180e6cfb04fd0d2525ec207c10026f474c0bac29b54b667afcd7bfb50f4fefcafd1bd6e10f8678ec223b7cef75ea6f472bce3ffde2f996b106a26a87caae61edfe9c5b87ecede86c81a4e6d4fc27c92b7fc58f25ddfbe569705fbcda0295e5690728962fc95297c93ad53b052ab636397187946fb88bfa4470a689f89327a9dfd295aa711608a87834a281ff4bac7f3416c25f49ccbbc4867b1d5db9926c30c9f4e1a412a38f0e68717e1ca6b80e7bbff28c2a67739d1267f69623dc8caabd571e0c54ef91c02355353b5b2d4f82196c3ba377c056781740560f9e50b0fc1c4a76b69f301f9d2552cb7c464c218a1c135c0ebc2796ee47e00c054c0d4bc0a723fdb6715d65129fc5aa19f696cd6d1dee8ba9f149e3902d65effe47df633721e4cfd4d4c8414a22013993a2db666a3d212cf5b8350666ebe3d92fefe90cb270b7b31949dda6506a590a6df466ee4ca8154b7acae9b07cfd5d3dcd9c093bf2d70ddf57c8201527c2499dedbc029b5e408a81923d069f5d7a04a0d9535acb0b0c74e024ee5c39e58ef9ed3ffab125d728a0eaf6b027a1ad11aa4cfaccef5c53573a90dbe837bf3ae0a24431ff3da8cbbc3299a8be040ba18163846851d6a50200233bbfc1ffe838331f0e62a842c17255ae399e00c0a811d6aa51268cf7cedd261a88cfda36b8a5bd04508c89815ae9e4c418657db1654b67328d14b099d48bd0989bffd512470f7aedd8c58946319a0f77d46754ba9d57da27732facb8beb0840b47dfceb1ac53aec85eda558c5651e8ed05fc0e9bd5d30d6f15104e07eaf3b53487b012ca651512d2f401cc990de6258da8f603580d00be75c38aea270aeaff59ec63ee4fbfb1f80b62ca97fe6d7b744f806804f13577a8c2c07638073066982d7cccca30abba1072f8db33eb810881c23c3914fdf092e94ce28318c0e4e4078ee508657db4b6d4fc764e8fa3cef48bfd488d214ef0e76b6a24ffd42974400ff161e1de09264493a2533a802b83dc6b09a8732a01912e9ae1f8205e2ce63c587c57b668ec941969527d1ad829ce056417a7b73f6b1a65f6a1041fa120569d6c6a744250ca9e7c92052971be608e38a51be6d5f83bb706f49668295463baaeec5e0d17f788057e0ffc8a1c2ecaee422fcaabaeee6f00ac2a983e4c3035b9842cf04c94506ee8c4e328e94f8c5ac60694c82addf0617721ad5a4120f066cd833765f8fde78234d6dffef86343527c4ebaac4968e3ae33de73876b87d444cd123a662929055e30b44b04f3704f0fe0d80a15f9144ad894360b88386424c436f1a94a2ff810b6c8cd49c359491294777dbb67f57f885f3bb83fd97b4823762d1067daab778188b39b9610d0e30ae40e9c9e4f4193772f7d60c8e25c3214c5b9980dbf0fa529d6bd75bc42dd6ed1e4688dcd0101258b5a1f931a62829094afb804e4785b4a88b7c83d1ae057b5fea1b3240c51afd52761d72fbcad6a9d9a5d062e900f4492c576f0479f36282ae475f3386b843afd562078a740eb4e5ff32ef8ca6e8730e3ad4e3f0b592ba9eec8697523ef619d5cd140e42bb9691edfbdd174ad2100e59fea0c1ffe6884825d83a8f1690aaeecc77b12a1b38469b950b08c7c75c15b71362cbe7cabadf8281f9c6ede9aa26d45d3237c93fb9598a3a07ac0f90e76f03acf7c4a00c2901cdd23d17103b648513cc16a57cf461dc002ac704211376c979242b07a359452e84affd27b4f344e103a7addfd823a95a30572c47b0c4a84e4c81e5ebadb8d57835b2ee9a280e7f1b4738f228b7d6390316dc89f8675f856a2944d53780ae20744b86d45044da7c85e2b59e13898d3b256e79d4a54c85de2a436914c986bd632ddb8ae1e2d4b9881f396ead9e6a330ec9c2ac5810f07893477f17a1c487eb4d99d35699c8e1993fcc15a1df8107aafdd8af7e9fceedf673bdf1af7215387991c5be3d5e9a477003abe62f1ef96ee5bfc5d7cc05646ae6a391066bd4e4b48f2d711c33c9f9ba3f4e79df2c63d41c58c86c0098b47ab9e14753804196886ff49ac733f48a62fd45d95b55291f6aaf4f7d5219d04581c92e564060fe2d8ffff4c1297f4836e7ea11a1310e30edb63257a76f0ae55a55d56e16d0f1450db73d19cdf1d942257cc1705f009c7a3eb12cd96516c6cfc652d2dd28c5584a2d12492fc88f3cbd859d6d471bb51bf663d5e762a827ac06b4bf8ad4de4349ce1c479219b644a0365320c74962a2e67080f64269b72f159bb0bc6256cf180b2e31660fa4b47fd31641b29e99cfda1c772178036790baa3aac9436a538bdd4f83b173a130a47225967c097ef3e60076cd24dbea18c4bb5ae836c7d4ec71ac4f46baffe20247a196b144f344a7008f10df945515ced9efdeb343a2edbb530eaca7cd130386979db74921fba883bc0b1d8fe78ba687f137b7102a4b8138d0c5fde6692864eb7ad1392c3e2f4da261c18747f0dea03f9a651897a31b310f504998b820c6e245268a2f47bd5c355eaf74cbef77d02bd07a1cfcca458cf3c0057d6a001fb6047d78dc9cc746fb850992a49ee892446c59cce6fbaeec69bd9c7bec4b4f34aa67cfed049951fd95472f5a0f726bcc90a24157613597f475ec437c6aadf8199418baa5b2c84abb274e1d4fa235aef468a86fc8b5c948aecdd636c02ada9644400d131f55bf14ef6cd5108b8ae5044047afb7d5319157d4a9abeeb59feee4c98601d9ec5846c83d14562b1d2da0fcbcce19edf7d36ad7d71bd1814dfcb170ceef4dbfe5f9499cf3f12f2ee50db86831b2efa7ec54e46ff9df015fbee88b6d450ceedd377849be4d7690750165944286b27f403dc6a0e875968e681c5a89044f26db655977b0c4ae430f469b1cab979f8b2869283d8344711801978045d61f65a9d3604901b22bf672f38e7e324dfd3734c5bfbcee876e5b2f844057ed6981d0cdeeff8dd5ca86b048c5d8969b1d819bc6cecfc902a9dad6bf8766ac8afb46778fa452e036adef92ee2887e6e691354711e3aa6fea4e6d83e1228c5302a67caa61d38d17a36468cacd8c00bdc447c16689d58ee5a9e619724f5b930ab35bdc611824d4f5457748591b0b9dde2e816324297aeb1bdbfc9f519223249506792bac3fb2d577f98444756a5f75358696da9c3f70223393e777a8fa6c7dbebed26328ec0f90000000000000000000000000009131d21262d393e"
},
@@ -45,7 +45,7 @@
"gasLimit": 65254,
"maxPriorityFeePerGas": 42798,
"maxFeePerGas": 103466,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4702f91c43048203cc82a72e8301942a82fee694000000000000000000000000000000000000aaaa8405a2ec3780c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f3626a00ed5b85c01c1ecaf59fadbd5f67e2b2ca4b6cf71eb131e198d4910dd7f9864777ff38303cf0edcffd7360f3239da539f3c00bec25e82cc981aec7a66232c0801e5376b1d56fad6180e4c1cc71d8482cfa0f2cd21a2f5fcded0222c74f40069e86b400e35900df1b1d4777ae42d79f05d636cc5f4aea6aabc82650911633f81f3039f9490e3f8fb0600370e7e429be5e38440afd318e3f527857516c732af4b63dcb89e285411c4b91ad3b0441c8da9ef691c304292025e0333133f638c581ab79cf4e423b47982dbe397ba26dd2ec7ea01487a0fd1035d88c25da52fc95695d859fc5ca257c97e174107487ae9765bc4e7d1bae40fa924ad6d6b50bbfe99b1aa928f1db1fa43e6224d82360336dc4dba5ed83198557b5a2c6c7c0cd24085bf24656e27f40fcf8cd2048f6e6ef0716b93b92d79bcd6302bf3aab36bb41f80afe792f0cb49ffe27bde269a8132d4e7c687e9fe5817c6acb0f5d9ec1872147464ae274449c83174a274a612a50d9940bf62f8b908318a57699df0c30d411c9d09175339be07a905b76644de9b34068364f7de250729055b0425c5e61a727991c6596d3457845e589ca59742e59b29b9e51e50796950e31192ed5f3782ad175f4a4c8a1c2d95965a0fc91f89931c980880aa84fba6d341cfdbace46735a6d7b5b53c9f1fc24855be63670bc48266d4acda27f10ddf18bfc2b9fb2f4d1d57b958fd2266df602d9ba8b28e0db3b3638799aec903fc8c7785fcbfbc0c2a1c4248ecd0ff9700d596ab8ee89e14016671d0d75a7d1f216c82c727e01726821d030d53eecbb68b3aab6cf7fc3c818982464ea14deb34fa8b2fe5dd2e3e412a8a7c60f630cee37e6b4d655efbee0841588c12120d8d558ce2dd9da93d2fbedb154875c123dc93add9b6071abf02c4e5d15535aa9c23ce2f02e32bbf73a425616d308bac64e9730a6e1dd91598e68248b647aec71b090c031518e64ffba1fc072f9e543abe9a56e66bdbd392894e5010c7454561d40cc2fac75869c6e73bfb921ee54b6c3f45426533ef89954ea6a36190920aa4ff6ed7a84c850d8853d3b9494ef46217e1c5e6fb5f8fd0b4e68d940acd032e98f53166ed5e9a84263a0627da0a042122822b7d70e2819bfef3fb0046c8d30e3ffc5a4a917575565aafc795e8f3b881d781e419259d5bb1e8d270ab3329bc21d5527b71b87b238df9ae9300d0f4b734ebe6931dfa80b983a365b67bee45bcebcf960a10ac04d8dd65b4ec7f4676931f41a6cd305d2ab86e5fb0ee8a6ff08dc72c36ebdc5729205ab358ac57ccfc95d1ce49cc07c15cdf3bfabdb0b5745881fa8a8432ca6e4ab1746fe14f385b87e9e263ed5816bc5069c252250343742934ab6bc8bb9b2e23d61e0d86b0b35169004a823e293d00aa9bde8fe748ef2b73e39a705b6747883c354dff1629de102aafad5db7f75b4df3e460826cb7364250e1264f3eace2b76a2d1a7db7aaee5d80e3acc40815dc944f133c537de3b8a1d4e7a6f9d26fbb4fac25a0d1f3258a9fc205e8f264a4a15467eb777e8ba16d14eccc2800de314c056a686254a70831a7e89eb889ccd8c38cdd90cfe691d4ec460ef3cd764754f9caa7e90312bedfd1d7d0e1ecd02ca9590003bf66ebbd0338aad9af56115caab09de72e0d0ff9e129bb4b162c6913a031277229b0a1ecff4f383d2da966faca5c334a966de9e60f3ceb96b909a1fc97fdbeb9cddb9ed837a996c882ab4672afe225de30736deb43fd518855c0a14f439e53a0292e4d3965fdf4f3562f9eb38af5e42a18396d58ca75b4fba94e2ba6fa03328b3b093a88e045d4c4f42e5dd4e5f51fd7d5574bd575fff16f11e8af98d48b3badfefc3108cf25bce5d547baa1fe48e61498157f63c72c235565a2e4e58f1c48dcc7f48ddbf083cc4955633249ce39a752d6f87514e6c79dac735b452928a328619e790ec0fa6b1a644c541c4ab2cb8067c7c5e957cf9ab97d600288406b741f8311741192c492e881fca8550516effdd91ca5ba6b319ca4909c85e43f83d4ab0748e4eede8bbb1cdbf7f9c392714354a35f3329f9c5036812a59da6f6067130caba18634fc82990a552596332674f4995393d6e2693c79773fa64380024cb578dba1af2e815f5c5a5888e263e8c720dfedac4c7c52242c60d97882fc2f0400759de9f7d5716f5da56dfb110f9c26403737e77b4a1bcb33f227aa01a94a00cd748aa3257044deb85404d3787617db5e893ed81ffd7e5f201377e23ca4b8b88a47b73753b0b54d2d41ef673825e5a24ca7641a2979c2a04cbd48b71f620b80bb628a611bde2160d567e626f98ac2dc9a935521c42006a0e2dec2d788d324e732042c7acc5e618f5a3ac33b47e39cf1821c16326cccaf7061436572a5f91ddd0041bdc8e4cb9f7f30458e648882a368e08ebc757b5d5c7c48ee025687398773748595b164f875e7bb305b07ad796c88e7d2cbd3d9a9377bb7fb0e07396ec65a7f7de2d4b64faaa4b192ea0effb0e7989b66cc234f35efe0a6ac83047f36cf0f20e4759c7da68b6bc3798a2b8c9a93a489dd9cf0c2e0b13649bce638ade69c51af2e67cefe993fd42c0bb9d38e6dbc108b778979970c8ef880a47ce3810bb5e2d67a6e3724b5617d84ea3e9f993633a75cdadfe05e4268e0e895cb2b0df8fb927ecf5420d7eeb046c1e92d187ff20bc3f9376d754c01199973c48e62a3ecf8191a764f0153f5c57f297757f326335e9fcab37b00532058ff0d3a3073614a29f487dabad52b66addf6aa655c3a6174dcdc0d9f5ca477515fef97b08605ad25c6bc24b9a63965e84d597d85b39452009b5f8ed6f357f64bc6bf49afc11d527960821037552b990819a3f46a3a24fe521ef0014a214f6b793b4ff12d29609290023fbbe5b5054e2b5910b74d1d14505a502ee04a71e205b9df17a86210a5e379891a1a260736fab7402b3e45030d986f76e4275c017dfd70caed528a4262362d5c4fbe99361bfb5b47cb32c78e1e23625af71c52a515adf37d43a55320cd22f675686baa36bee304667ccf1f480ddf0a36f542ed6e94d5eb65b88dfba15fd809f20ca4f310398996cf75dbee419eb098fec75ae44e610396e771ce6f755b5a8cfc3639de208424d0521d3e3d7d212d563fdcdcceea592ad53f85373686c3da6b949b57baa18e712cd945dabeb0f3b1dd1a0ab11fda0aad995d1210f8868e456399ddeef632e98453caa51214a07e468874b13b6eccd9832c9adf24a486903af0f3a70923de792622f50af7f6677e2c80106a5765e3c329e152e1d15f98908637bdfd38cb2e96c743b87e7497f7b69c8727fb202d61bc9bccd85cf1f3e3c3ed9c56e8f9763e51ee63a12608f61345a7c0ba53e9a5de7c6d75d6f86e7b10301af74cacc4d3796e1e98fb3175c010630d06640a70cad431a9abb3d9126c3accb90e7d2a50b3f8629aa83a0432e2b8c646c5a1d488f8f814094de73f226f66e064484bf4f7c1733beb87cc6a54039d6d391a787030526157e99b262d2b234e3285d7b9cd2580e9fce6082fd659cc2e90232480a63ba1038ac73cc0b52b1df811efb2cad318a2c9fc69bd090da5dc1f4cc2ada3d48703ac43d861bc50ab2ea9d8f63d8a164d7506c8c7dbe947e3fa4a9dffada7f3dc80af25b877673a1ec4aa72c238bd146a473592a3cd34a2097be62113977bde0db4e7d593800c8e31d146f2603539434d08e241082eecdb8709fa63710a9b45651d0525ab3df180de75f19eff426251f7e92dc6260ec8ea223f3e721bfa8c43aeeb2a7efd605a949e77a024aab20d9962b1a213d81569ff0ef65ad25d7c2d61a1786ef09b01c931c72a4693abe9bb88505ce879c9c213032a3c2f05decaa6bfb59b2f3303302239e933feb2e18097e08e5e592fbd659832be83bf268ba6b01029ecd5acdaba20be089e610d3824242cd0bf2712bc3fec808264f8a50fa1498ea83b460aea04cd516509b53aa501678cdee5f87a34b4e1d0bf3da15f93b39f9180440536b0319c6a277d911421dcc06ebf7a83c6c48219fc5693b610bf48578fd95caa34d03dcd72bd11884cbf4095f79cd204dd8d3282e52790dcd0171ba0523ddf1addc3f855870f5973623f3a14c607bdaa27f2aca824148a7aa03dc27b3434ca86f8c7a56529973985fd1ad980bcda4132584313dd5a768f17a4fee94b15d94f885406c2873a43413dabdec48505cfa5d859b7ee9a72df4ddf5f996e1bc7056ca5e66af09c359ad021dea2763597ec9a7a75396d8881c515314e49637ff55d45821bd5d86ab2348bb7868a1eace63808321f11dcf16d61291e7143836e10b9c753ef0154475cb79c3a836eb5e318e9dfc1dc73efa7f7ba3b4b3617ef7f60dfe0f2145f415688417a654480269d6aa41e07decd52f8a38111d8913a02f8d74de7ceab85de8e751dfeb2d936aca10bbdf8194167fcda9b72602e91bdac75105eb170557753e242664997a2c08afe330f332ec4edc4c0b15f27fe148391f317f4a45f51854ad22b9b645ffc3de0c569362f3ba7a27d8d9b8d910a2b0ad09a62b1a1c741c7de85eaf2a9494e611adc27b21188d032390415fde53e9f9c1fbf141e9db0e59f16b531ef524d63b0a627f563eaf0145b07d5097efbf93deb8463fda79e06a129ee89cf19018efd7e1240e62708b6e1ecb69b264698beccedbbd634148ae825d74356267dd2edc077d0cc41f668008708ed36dfc2d190f5ba3f94bb0190cb3b8606ffafa7ef18008baa7f2f4d13a2a7350451adeb03445a9636d0ec708edb058beda2f561d7ad492f91b04350eb9795dedc3c30c7484674053874a505f7ba2106e9ac0213b065118ceb6eef4657b90022c138558978b144c76271e52c99b0dbe7fb5b5245372ddfe538cffa7cd1885f27e40d7065f2080b89aa630d8d11e926d87237fe954f46ba77fc443936b3f0b3ba0f31196ab4b80b0d74eaafcc3e04fcc9825cf594892e5e3c26be421da4d7bc5b851d8e0140341e56969e3fc4fb2e4e05e82bf57ee02fa8ee6553897cf9d9a1be67bd2ed39285ba452145b61624c8ceb6dbaf61a94a8aa2c028daa7ee807a20c2d932b2a86d0b9b7ed7e3ef13b69b9d9819f82ec5d2ec4d7bef26085134f98f47bd0d90b8bd17db5a12883aee126968d790f7ffd5f671fd189700e207307158328e5adc656a268f7b31df163f4864c23a295eb07b473a4fd19696fd14b2f19957860fb5f049b99884c4569a28aa8fec978875d15b5e04fcb9cc6154f431a66a5c10c4b1eff0fbc883793cc5447e9b0cb81061d017cf5566ba04c85c20489e69eea7d8c7578f8716765773fd7a45c50dec6bda2cb84a04d4a63d7570d6aa32c5d1c04d7108bd728db39c25d50b523185069d050de2d4a8d13d3663df2b1bb8c97822780d84aba359bf467eef726c3747df57f5bd5f973746e0610c0613321b549583abbf32acf6d9b2457304507fbfd71f4956acb56a20e298ba4651b38c4d788599de8de12de614e80656153445ab3f3849f44d36442318a9f17c194001e638a34e19338ead9081b48da6891ea0b9f755d79efd7485e7230ce0f992cded308b1c5cc802cb1dd2b2b87c765f7423e7660a8f62639181ed50549b1f9644de58e872e28fc83f658256b386e5d4cf7eb55fbfb255169af5658eb058b4056e07b271dad73b75328a1ad9f043147035ee81b4606bb8b54bdb42f7d577fba2c80a413aaede218b948b69cdb45f987872417a07ed41ff59a7fced9a41cb140dbfa2fa3838669d636f96ab0ff861388999483a148643792dce4f57dd3ffd443cfc5ec3764267b14ff9c39956202a1f11aa3b832f02675a01b219e774c99e17f263430488107d5170be5ec9218ad696a79802c20ff068abbf065a54e61270ca9c1003b787cabdf10d8f7f4ff698aa11ecf3c2902d61bebb604c8bb10a1c7591c75ad4e74f4e0966ee92cc297b3a7f8bc24d7d9e2c642c3c94c7257f9578595367b8a533f3799a7f9af5cfa9240b3a6de8b2e6660ce695f185dd13ee1fcc8902cddc350412027a681928252f30ca5cde6205eaccd65e3fb33724b49597b64971536c887004baa9cb7ec229b7a789cd235284afba8d5c025aa7019d78fc2b1625a35113fc974ea5850edad91e573f9fdb64397c5bf16c71a35a9c6936a9ac9b2f5fffd2ddc3bc5b6edf90fe7a175152f72ea24a0dd08a91034cf02cba40c746117fda813637498f317794c5f29fcfe3c9908b145eda95fa762cfc396ac6493cb4ea6b86905cfdad29da7bf5cc395172e5feac461c64238b7a0e95218fec1f117a238d6907176957fecb47d882549c25b48f0e916e4ed5866623780f71dd2fa25d9b0fff1beda64248a6d7073c7ae6109796c002ea1d686c5bf74d6e2193c405e69ceeafa44808586bfdc132c6589909ec4c5f2212248697f8babf30f15173680a0b4d0e02f6a9c9da8cedce3f70b11727fa3b0bff90d1765a0bb000000000000000000000000000000060c151d262f373c"
},
@@ -55,7 +55,7 @@
"gasLimit": 37274,
"maxPriorityFeePerGas": 87890,
"maxFeePerGas": 130273,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4802f91c440482024c830157528301fce182919a94000000000000000000000000000000000000aaaa8405ec1b9f80c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f36203d797ba0623d4c18ef335223568d3cde022df2670f327722268441712645b31149bf219abfe96e88670c20367f9958e8469c5f4f828b9dfd2bc8959d752e6d6df3151a35692a3a536e646b6844ff3a09566c5094047c57cb51a22df467410c79b85c6abd6075a2196689e5de785a84747c7da91d9294a0df8bb95cddaf97d6415f42c60cc54d9ff4ea900f0713e45386e6739297b87f00fff37f844eda791a88b785374f28af0e18f0e40edd36daf28372a7dcdd4bd223af296a7d373358555fedbec8315ea332d49618da6f4e4920bb581d1d31090cba84d41b8189583170aba6679e303340d1d09b19a3e013ab2d1beb93a9d2b2e6a4852ad54216d1388eabd99294aa787221d20e54c586e73d51e466bc6de7c4ac2a337bbb2456d1547bda73ecec70d8d0a5e0b2aae132711551a4547705ff5fb74415cfa307086a41f9c80aa9302f8faf6bb7b390b9535bf0d447cbed7b2813059ea773730ed5b5d7dde603dddd30eec74cdfb5f833c5ed1a9d2ea9ede90c3d450ba9dcf8f4852bd393cc2d1b4856864474ec34f67758dec60cf05d325475bf21de9aa5585fc4f8735df17cf9ff97ad8adb04355a2a67d09282b225e045f9cd168624b3fadccdbee0cf17e8029fda3140b22adbf9a96b6f117f40323492e10b82647adab4f8cf820dd46c48f978643dbc3d0419ccb4bb4041ff59b94e9f45fa27aae3b308dc344e11420974d8e90f53b2f90d7248d533558f26a15b7c2c66767a531faebe78f663347cde462c4732f881c44faf3d8cd3ea85a7f471f6ff9a7cf26ef4c1acf9f25b5f78c875005af429071518538e9d85a046c367c43624fce26606eba7658c2a7f54df2e0c5af01e2b005457bc71289864769318508e8597b33d8279ae36d0c9337d814adf03c158111f342fb7fd56b59ac25d7c8f35977e4c21e6c1f51359cdc9556c26fefd705e6a7d29e3eacb27c2cdbf7abc43e6f4a2e2bb2069e32f2b991c39279e757c4da7460bc72881bf572b065e30aee9e15f2262dadcb890a2aedeb50b5f2233ebf88ef0b95d2261018bb267079c8f03b7f2eaa1014a1eeff39974e77944a88068a5bbbbda0d7683336f8c9feb9f57d6afe73a36fb0511b1239a4da567024dcf0a37c212e5bc6a3953aaee76921f857791044ef95f8e4113a155c0bbddced1d2328df166fb4d6b44080093d6e7cffc0a62d17fc4a6b09089d1a7da90b316ae7c716d28d2f9298678132b42a1fce5f0871f9d8b02d86ae5b76640aa4737afd7ad5d45c0ed6a96f130813b7d51261b1f8030605edaa1258d0df2d20edfb4130e76c13273170da0c81d0c722b2f336e3bbc9101494ece58773f328bb1c8b9688be47fcf1c207835e8f2fe5225df5e56bde9acbc36134091972f33d33866e148ce59d986d4d6c5bf39601b0c687be47e450ee4f9397f211beaa0f5e837b776fad5b7e80bd9639f6d482cbfd6fd7f86e58c967154f2512bbf776fcdec5bbf9df1fa9587f2bafb277187fc7eb2a2578e38ceede9046928bd33ec72d046325f1ebbfac9dc00636fd017b6ec6a4e0516b222ce511e2eec18f00510f3da055345f671403044e6cdad3575ba071bc6e8f73b2ed5d4cb5226988027604ec5f9b784041744636cec5ab009d460622a4b6fe83a06508b5d1341d46c2300859069273d0c9197032426684e5e1555fffc384e1513c44a043409ccf46cdd037f0acf22310e3919fa215527c3c885978a489296b2e6419b452fb8ce2df53834e362771ca8c60846cfd2c28e021c03182c526b4d4ffc9e77db3176bb56f78e572ebbde5659d1f646a2dfd630fa637c412ee8eb5150492b998084b1e1bef37e61b5bc91e45a0c92c331330f586980ca97bbd4165809195b36155cfe0375c1e245b8cfb0d0c5a0d2858072ec13991278c0983348b71df4e8998431d4022ef112ba775bd55c84db9eeb28726ce6fc484eb52012dcad90f8fe5caaed3cd709c6ab7d6bd52feef2f3e0aaa5d50e1c4b02e227ca4db6731491f14ab7ef808a69b7e3cdb6853904a3aac9cea3f962a97d1eb0b0837b10abaef2b6bb4eb7efcadd7ba4b8b931799d2e767a845b379b7f4e79e77c69886955c06effcf11f97266c5772a313e04fa3f3934476135fb9208d19c4bb87bdb79324803352b432740ddf9443dbaeb542769ec92a27117daa35f4ab3d6e85944f8d7dd411ad31fee8cb0b7f15bc67f0e752bc2ecd28f14fe18076a26b442590819eb3918458ee4bc7cdefd9e37f3b1b26e4a7a79d33ed113c8881a5cd69df82dcd699eb321e9482811199d33c936427e352a1619246e645ef94ea79618e26d843ba9e8f48a0653b43d29a03ab231623eb559d733fc0826b544220c8a46665edd5c2c24b8f6d79ba512773fea8d397ec39e3a003746b9c515e58a463ea3587ede2f36d203392355c1c39b0932945e1111e48c9cb39879a81eccffbdf32f3bec52ceecff9281e521d309a5fff71c9bfd66fe33c3c94dfa67aa32b42548d7987b6b30c9a24041a19a32fc3b31611712caec6e062c164e0fa1905e6ebaab7ef06cea8737c952a7850f7c3a4852a7e3cf320918e1222dbdc34c1080da3b7e4ec5886e5474d9347a37d701a38e1736e14feb51957ae36afd49dbde2c5124073a9f59cc177c8ed7dfe3c71416b862a8481865896c99eb03a68cf597823cf5a63de31849a66c4ec9c629a9b87dd28e747df8905c2ebb083f782346f06ff5613799fb95122dfde046aab65b553dc7f3e8da9fa9795e76e8c117344eac257ec2e557ff6534dd5869255af47d41f08e18c5825976b897303512a2f95d04d7a4ff96bd81281c1c0f96e7054f6ca485343b3c594bfc37777a3223276837cacb4b373f5b2e419e0d603db049c06dd2525c768463c236f6655110c310f5cb8777eaac56fb59cd43cb31d53d5655704208e0acfd85cf1b22a517484f4bf8f258b7050eb69b4aa498ed05aa12fa77f5eeb2a46656bfe843fe5324c33a4943cf88a63da5419787073eea5bcd60baa70aa20af89b46bdd308eadfad1a8ab239d8db76581a84bd1d632b2909a1cfa82716901dfe154e623fc51fdddb641506a42675edd22d89193b648fdfc800e6fcd51cae3bff3f9bfd003ceeba492864374d694e5366dfe95c03cb798aa6d70cb128f73ec437754684cdf15799f1b61d97918126acbc9e9ab662009b1f32e28915871c51bc3252044d396a1dbdd66744e1114add9748c9466427864c5f6618eb2cf920fb8fe21a4ac835f47063723f856292a23395ab6e791c0190cde48eedf23b6dcbaec2756100d8d06c499a1a854f2ce77d9ddbc5edc705d4456ec8765da73c3fe685ba4f44e4ce478bcf3a5df0f651299522a4e71ec60376c6e950e7ec644dced9bc66b13b450d45ffcf8e942f5f476a83f10e29aea805a7b117a7ebac315fa698da3ce9ea88824cf2aad389a82ed28ff702fce0da6bdb5a79d7c94f27fbbede8ed26c4a6db5a97f9e336b6ff1d6bfa89bf6f4f1ec80c634c66d5897771f0033aa75fc90533ed60ed477bc656bc4c1bd8d65a0f5fc39d4372b6c526585dc826f2b54e0f74effa1c9e97013384e3780e4403290c732dc2846b067e9aecc2fc5358c25aa67b6217ae7c88d1a6d8c77941261a48f5c8126b9c00f649b1d71b35124e96f9b0517d276b31e512ee0e37fc766a041bdcc6e92c2a7621de88e3cf7b01a023a04d76b5e1e20fe7989121b9c073d6915a2a679e173620198e7930adbf9118a5627db30420ec87ab6117412aefc07b9032fd348ad8e298c5958fcfd4f4ef1e1840b78616110d8416880018a96e4765cb9b6c99bf92ee003020bd0db409ff379516805c196068bddf34d88cef6abf4120ad64c3909c27e412225d6daa7784df9c7bd0f920a71cc0037dea71219107ac82e3fc031a07c0c8f4c6b6853e9d655c71f3cdac9bb0fc84774f150bb108154391581c55511f5afe3890cf0126d4f7cb64f3b02597db4315cce85fcfe42fdfaac18d7da32aed0f070ceb628ea42f290c4e4d2aa6d6485f923a4379efa3d7b9262d83e6d62ac3d748de678f59ecb3aa48fa8aeaf8e4b84a028aa910052c8a6a197ae51953f0a76dbc19530020f4018bc43af5b29e636427478a6507f80761d715df0492eb6a24fd53a2c87c81ed36b0d3241d57bb74171c47f5850823c7951cc7c6d56805fd48b9d4c8deeff92f0ac344b24a1434d66b648974333c8d5d236a4ab3f0dd8b7650774a0c8514efa48115b285f385d7768beda878ad564cc4ac0cbe7e1934caba476318d9f673b99bd8ef5bb6c678592ce59b3b8f7bdf8e2c60169e08689ae83144a2327b629c6ad97f4588feee746f70d28305c9397769e067705dd45b9715f02fc1156e9633aea009febe9698492b0d785055dd26f80cbe2aa9cdf779d77f56cb82dbe74d2acb05a153c43206247fd8b54f1c06bdae138f5ee9e4fdd5cf8a9a8a0943632265bc849402559ed5d4e3c406de8505de80ebaaed0893f4529b6bab329b37d5a21c41fbad93964f7a04154d2c30b6db5d09dd02e51b7fbcb0c0d971e12294eeaf55a1af3681a7deb9ba679c77cfb7d3a4fa1f411f9d1ee37204bc76a319ab58c27c88856591d146dcf638936e88c429dc74f6365820ad794b313a9be903bae13e72abbb26a0461a5c526a039d50aa251f281c9f4c2e5190655f2583af2e2ed869a0309aa447398224a5123b4229c0156a1433c8112545ce504fde1ab13b0e9c1807beebf2158b5e4e4f9cd520ce4f3fdbb1c28a6c2a4a24d22304cd8e82a74116fa77d5c58b605f33d4124374876cc322e8510286745ab744d4efc8b49ee5879fa7a2ff86ff97072fabfcde477068fa8077eaa752b8f283c183808948f65f89eb40b6aa9eda82361871da9585b4f6f384cf97cad670ed2c60c02096b414f336092bd8abba8b64f5217ac3a18abd9914b40d6ed9f5dd94702d2b474687b83bae309eb5006b02b6b521b2f9a936eeae94df3fd76fd6eeb9f08495fba23dceb4969477e056ae538e8850a97055498a15b520429a27e772be631badd0f6acc806f46424c55a3201c858e99f9ca04a6e9fb0a72577ec61475779a8203d975edc55728170c93477368e051b41cecd23e0835252950c4a1adf8de74db4759df4574816ea329a773c68e276005fb330cc2454ad916270a96c632c61a0dd9274ec6ac88d563fe5c9c604466eb5f26643bbc3bc21dee6a8e8923037cb5fd9c8b9a401de7d53b6c8269d8d0abec77fe2585f29c8bac13022dcd4c01f5ba34f6d3024a9e943fdc92b441f6f29e203b761db3e5f22211264371b97f6cc7099e2439db71e26f88ab3e7a0b9dbeb7f99ddaad0a87b9743694931b5946a60ea6ddd7613b0e95e116f2df837be8456f264805dcfbf8818fcac37f821d0f9ad1ea1535fee033bef784215e70b52f73f4ca6a74fde656781b545c1daefcef810de5789bb77e267c45a35c26f0e55b066d83c63dc20d80d5bd3b6c6f2d6f5cc608aaafca221e575b4ec0feafa1ae8dfe23f1155b92258c4c9684df5ba90d70a1b55884a2e33026c4b986aba3f0ba33b7dd04eff8b5f40f561c97f8ed2c4791e22361d63074a2b9f9f84af0b7f8d34fc16a0f7b6afe1c4cf9adadacf3cf0e764dbb0962a2137bf8f2b381b8ad946cec4390d03deae302094086e7d15af275602ed9a128542bba7cd321f50b2d2aaa35ba1cb5e15850116b160fa44b6cb44713da08ec67b16bbab0377aedf846161c4a8d388631076ea888bc28cb5f48696f2d0eb8e0d8b507a29a2030b33584991d92b2d30cb0f364c9d5ebf8212acf74a2b7f6c93bf42576ccf2f627139e9c8a1e4ebd1f353b076913e81df4a5d6ff148e4d0286fd9e1c0799af8e1036dfb2b666c7aac7268cf1f36114f679cbe7b813b183da4a272e803378e986826b31af75609271831eb3eef701cbfb4cdc2752035159500afa0fbea6bca34ea1513919316ede7685484ac84f024f2f27222dc59c7bb650fc0e58e8f161f5cf22e8b6736c1b2297034ef6cff42e0bd5ccaaa9b4fa0e857766e5ecc9a698b192a9c3c4e37abb126e8beb4c210ffeb55fee0ae6b918f4dc5abeaf73db74bb6396dec2a633bfef1e69a0f2c22a68aca02cd9e687abf466f5487540c765c43d9cd1747e27f617876dd9b9c6014a9d1d66e540885ceb25a76272968f5309a770157b8c7685054a6e1655d5080dc3da39c33b09799c1f2e6586328718aae5c407367708168d8aa3de483b538be12b22ba38db49f1bd7babe5304399c6e5fe68203e3b03638f511648bd8da760a111ad0147ad33a6ac875ba264a17275aae2f852341a8524019c7450da38739f76be40bedbbfa7018d5bdea1a9e9fdb5a7e624549089451f357a6bc70a33d1f110fe1d92ce3a9a163e16aae5f060b125f77848bcaddebeff20b3c4573749db5c022838ca2b4d5d8f2f6f81f4a72d2d307294a5c71cbf90f3b40449ca6a8b9c3eefa002442717d9f052657bcee00000000000000000000000c141e232a353b40"
},
@@ -65,7 +65,7 @@
"gasLimit": 76053,
"maxPriorityFeePerGas": 8714,
"maxFeePerGas": 112705,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4802f91c440482038482220a8301b8418301291594000000000000000000000000000000000000aaaa8401cfe6d180c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f351c0fd45239b2d9235bebb32ace00c6c74f32d9a7b2c68d2262926ac6965da191194feea472c5533a47bd2817b3550f507ced144ccf46308774d76e8f127336c2aa9ec2a6bec3ecccf7af971a4c98e39d309121f0a8d3fbac8ce19005dddac0be12c1746d6c386713c44033f55dfd987fe91117de3341d5ced0f48ffaa1c329df5d9e7a2ac7433ab3d3ed4958a50f5056e62c1a175b470d8f64f120a6f99502fe5c61dc581194ae1de716ccf8a779383cbc933d148fec9e9929d73574a2099ef6fff48c84358f36ec54cb95bdffb63fc30a538ed8a83e6d2e0ed97c0733dde3075c524c96fa44e92a0f6d3742628dc1bf5a4f6b39aa40b7d5e2b1fe187cc4f6dfd1ee26236ae36ffef9d34ad53879e7a2703ec7f2474624b775a2c7201a3af798425c09e88b9712b392a07df51a781a3c6c68e116eccc51eaaa72646406387cf945ec40944a84af09ea43948fe11efc2b5164e0c43ea3e216987e6ca11228a7dd6b394a793d83e59caec6a756fffb4401dd718c09586a1ce980daeb548d383b2795e512ca15c08c286de8df58c36ee1d2bbb53455c1a7bbb62d89ff9dcf5cecb30995feba8c354776f0bc73bed74a08a2c3ebff11eee963930f5081bf10c702bc33df8bb61e3d35752c3c9d6e019d828a5739a0e609d1da9db626d27f65ecc06ad92ebf02172a7add565c86ce9826d2dc2c4a7b3d0da83670adea13ba40bfb071b38f7d22a858eaa69280a75050ee73df9f7702d925911e58e6db04a4db86c2bb0ace5dc0f36654d6c496fa64e636739079d50956fd4022558e1972831ce3dafb6b8de84228e7305f2217c19a5c8f4b00ad7b3a625824e0f9d30039eef39eb5cacf51b542691e154dc32baf932f3a77f8ca550636cc597e57fa3e99a9d5c129dc46c4176a8123b7305b9593f32eb75011f181f0070f0a4c58e8d3c28453b18bf0be9210aa9327f096de2c2394d98b4a8975dfdb693af69118b30c2d197411a26825f3d68d524cd73279fd6011bdb3c79f54726e79ce6185436762dbdb673596f5a721ec9a1e34e876a407000d73b3227bf2e5674d263299c0a067fd41ddd85702243906bffa04a710c8be6614946013bbfc192cbaa89c4d3fad364ef3edceeeecaff9a1dff146f17d10dfb66a51246403c6f5b4504d9afda1349818d014cda5b9677e7965de222c48d6881280877b48259791b117e2ea8e93fbc7fb42974176a796416418661fd3fd22cb70cedbda3a9b4c4baf0af287bd4f225c5ace125a81b921e637a584bd3f6474ddaccd1fa898e0fee2666e964f6d23160573b65559b3b5b23d08bfebd7cdbfefee9dbfb2ce99b9672486433916bd02867573709408b3785f836a83b04c7d76edde83ba116df01a68ace99281b341ca34baba05acf3a14575d0e6019cff340c0800a52f79848f5e75abf2b42d53e49f847df9666e36fc697eaebcaaea0d558303a877a0c7f890bc06568c2c7c19a24b513e14231fc31531684facb1d897988ab87fdd31cecc2d6c0393c158013f9a49569d6da6e18fe438f8ae6c3fb018be25da1b955ef8d8c551e2fa6d75438c9c8d61383c52cd13084a936b19ef5f4efbc1da0cf937bcd68b924087d703d5b0f66063f6e65ddd23ae24039158b783807869427f7b7618d4c3703fe40a9b82882d80731705ae222a47315fe7be8f1bf5623ec069510f08f3994154b0b77ed1108feee548d19e83e39edf8e4710c231e61a21402342f78b686b030f87f4dd617512c50f22abae49beaefb8076d350cc615f4e1fe2b5391825f5e6093ffc010f329b93d6b39329535fd30cd60a95bb398fe8b42e380ced928056f92be1514afb8bff538884c7c68c9e868560b2c81ad1f7687aedef47dd2261283c90d90d594198c5e73d3c7758537f03de24dd4187442b5dc08ba1dd192ce3d11a5b2bd80aef9d45e6e8d370d2e5f7facac6ff6a01db9dca1cbba4634e433079ee08002248ae9e117c1ba83811d9f6f953265f84b52f88534cdaa5683a1896c87ac1e312d3ca9be1ef731389b3714545413b31bf400e85beef7681b3f7fa549819721fc342fe5d48951e2d7e1068118cedaba5f74585ad2e51725bf70f918eabe576a0c645f4567a266ec3d07649b637f33bf685702c76818f90ad867dc5cf91d854a7e540ffbaaa1bd17b22d3202cf319159a35b1bb6021708a7855b36b66aecdde8fa1ee193851bb350f2fd450dff0391cd2f8edce7e2327417432e3c0329d683c0df06f4fe59337399d6fa20835c793caa90c9d013dd4f1577589c012949b7af88c5943762f8f18252028e2d882c26f6ec4a687afc321d4f8b935d095ffb20ccd635537e67ac57d30a7ecf39d83f92f6de8ddfb8d233075fd788f3f70b700694a9b4f8741066e679623a0b01b688d62f5768f94fac14f6a6a41a0a1ce096bebf7a94b3140b752e0dfed1f92f857882c67e8276721a818fb3f78649ce64acf42530d996c2e5d118c90047993cd6ad0acea12434587a6175ecdcc9ca99284e2e4e7017a9b2b073e30e882684893bcd350dd2c53885b0dbf188d1551843c0eb7f9bde51b2780ba6469d0d0d082dcc6ea516fcdc48866bbeddcd74d9561a298d51020d8ca9cac2d2f62e4c51aef9d7265fd6098e09e92f7739363898780c0ae310ffd0cf8e5a61e648570a881a2d52a9b811888f9aff9d4ee3b32504d76dc2f0c6a0f17587d94bd80a644d59385681a63288654975b4a678ea7864d5b7e6914896a7d4e4cc0291cfccb5119844111f5a3a6a13b0bb4eeecbad66c5a53c424eaa5c3f4b1b36dc552cade08c0a337f8d213a693ccfae76866fdef6fcbfff50b97c492381562aca77ae98a7e837121e3531ec0c3bae693ac9131a2440fe80495e58c90d16cb76299e23510c966cab6681572b8a9258e8f5e2e18eb40586ca23068b396420897beb5af1f11084eb1ba7de277f55fe7be2400bb734d2ed3784c1661784cff4c9a8fcafb27849470c2d2f959e55877286d8b2bf3d90870f3f8b18fe700f10ecdc32fe5129e56c19e723a39ea9f18b75fc166b684f59d0d101c755dde353a2527d8bace4f10b0978fcbedcf8a8fe49c5d961a6c20fdab4926262a4aec12408c5b188cc9de19411c15cf2578c88b868433e57391341cb44db065e2f20e70d46ed8d1ed8c848b6285312494cfe726632e9acffde94d4c9867c43d61618f7b33d1c0378a1395ee6e7831da1d9b38c8fcc95555d838f301404859b083cf00eebfcd5b4d02b09ec8d037d02a6f74b1b3d86ea539f7c08c888f4560fcba1db36e706116069009037afb5969da00f816527dfcc9691012362fa873bed7d74f9d7a1d238feecfce2eccbc63b22f6e28d659d2766c6e25ed1ea1cb170a0fb3fb19d0749be1368caf621fe8a2d5d8783effeb71a9fa8bd6b70a625c2ea6eabc330ebb9faf2107936c7bf82c916fb925040ec885b399dfb4bbef7bf4649b9844357a508008591077c1a5aea7ed42cd962c6dc995bcdf34a6abf5727f115dd0dbdfb62617b182ebe63d0e49b664333dc7ff3f5e490dd391b45964168208e33941292d5fef99d9a5e15c7a756a218b83d28b746a2c9ddb8b24a33b9c4fef6747854515b35d1ab0172b80626fad2b6d78a86c5804b6df7d86a2a1276194e92f33b65a3d55da9fb0358740c2cd24b83dd0be973cb73426b841941603aac8d9bf565bc200ebd5c3dab81a990c1bd6c1921dc4ca92043d0ce81a686aafb9e2a06a34c2048fd8c47b5361cf10542912c8b54c670154c493e7423c8b5a9f9ec04cdd362df54cf13fc5d2b6d0f01705f4861749f048685226a92ef58d25fa8ded6792a1cb9edd2b69a99ac7da39c2cd720561dfd4a551fe5662a22bf16fd09ea26964a6d5fd6c1b51452ab99804374c6359cc857e5c0b22962f29b25fa83dbb69e95994a8e8a8717445657a8f41593859abdfb8ee8d358cbd0b9a2bf56bb376384d3e447f9efaad688742586d4fb027b97a57cbfc6db44de1a441caaaea92bfc6f6380d31125bc7051abbd17667593be1fa5fe438b6c29928b039fbb3a6235b2f5a9d9b56e25d42549bc2331066537e9262029d78c19946a252fb79a4d8dbb3f907f6d9799f06bc88d866b962d2db546813933ebe2d35e01ecc771f77253810f553725b3a17eff75bf85fd40741692a6200adc0233120486409c611db74c072d22fb4321ac8c030d23c5ef45289b58e35aa63d0f36b57bc47d3ce628b6dedf5cda9199b81b0e9601477fb562bf4293e7fd0b5ac4853c4ad9ce47d5a761c7a91bb71d1e898a27127dc5d17ad0e1f60b74244376f1c8d073670bc50cd02e1f746a8a826b6bd56de61635b16ea2e1db38e172c2716a392659b20f627d779017102ae8dea4e20e80538ceb63315c3c270c62108ed9ab38fae3a0733f0a480186b28c91a400bf7c553fdc9407f1f51fc08ceecfa3b2306fa31a72f75ff56e23997ddcf2930809f4737377d1c5da8528f216fdf28ddd279bf0ec64ad0f819d1e13194e68baf4f421ce48eec5773a65f6da1ef221fe5adf9a391d21ba38e6dfa9c94c713fc8e092ff590f1b83b5cdbc4443b9c77fbc856ef305174fd84fdf3aa8fdd841b5ff75b70c160a39ea2f817439b25bfb7a4b78c3ce4b484673f88c944cb9da1c9635f29480c7490f8417a055c6e19b5d32299a802726feadb2f02b8fbbc1a5300e1e813e0efd01a7619393023ee77e74122f7aba187b2d39f82eaf63a30bbcaa75ea223caee9b0682640d549f3b1f5ebdf2ed8abbcafbf42b2d4aee6dc6e2318d567d2a84177be6673e1b176220b1bba332e2ccb050bab684ae1de274c1750dd281ff8d2a4f398330ad5c265270693c2dba1b6e29486abda0aeccabcc3fa813691c5ed4e49db982bc9df1dbc4b99d4460c882b30c02a8eef1ef13f378b75970eda5786fcf025636af5bd7ca2a0cfc4ad5f26e287d840b1989d3e9fa197e3e31e643b575c388ea474a5ad16011fdc50c322f64db35fca37a9f5d1f2083970b39a6d1c4f21acc9a300cb176da23b39d415aec72256521a2cb5ea03eaa178c226e593dfa891abc2fe33e2770867477de1cf3738968965d8c554c28b9e66a87f816200c022446860e97500f022426650fb23551b3d7b6292235db665dbdfe2a5533f2fb03e84272a20fd1388278bf80b582e2e6652c2c8f1d1dd987cf5cc574eabda8df7daec21cc519d3c731e1293eeec6129515f47d5b63a98a723c07bd463b654a17aea4a76ca7cf4d561876545f5036dee9503a4a7c5cedaeb469d6dd69ed6b7f08ff3a8f5de9c20c747e12829c575700b9552400d755bf3c16d77b6ce443ecd27a97b330e8017411879790a01ae342d31fdc0cdeb796f5edd5b4ed73c3820d3889bc5ddfe23f7628434eb22d89a0a48afa802ed3203db384b601502fc28fbcd3add127371e2eb0987e54f6ae761cb6417a836d1fcd837944e6593da4d043392b92860d3aa956f391fb3b134078555f4e7b2e47eeac2c1098baf2cf4346fe5d26a7da2b34f6470b182ac617b10f67a8c156e08b7ce60a388e9a74620ffe645e556054ea8bd73f7569396941cd925403bcb1d3f197e373b0d2b8c32e1cef0bf892e2fa6f0ec54ad62d05978b6a62b806a36be76542786cc748136eca8e2bca3e91fef9cfc437ffaae0f64e4b179eee024556b9c1a6a413c8d7c3117f320c225f73ec2740d147f2104cc2dd42ea1695a0b691e325ed1dfb017b94d58df8a82abe85d4c4139bbcb62a4903a364e0ddbda772744956de0f92f61f44eaefc98e6e9b5154aeea17bb0586af25b1ef183ec2125dbf8a56b79668920d8dcb27045882ae99a8c5b05e854e6ba59f3d213bde8f56e0b51bd941e97dd0edf2b936122449c35edb301abb7df7acdf34ecbee604b8f967d1ee09fad9a9667dc52b9a87c9a75861b21d2a5de419724159742b86d42a6f145e33367795746472c98d577b5550475e9b8bc99ac6aa5a69d2b462a3597085cb8ec851ba0d8d89b81afcbe750b1519bbd10c41e4c621493c8fab5e0bb5b425f210c816ccaf19005814c6d01f854578bdbb57cd445c3ea9bc47ce287893288de1f921ec5d131c064b20061f4ea53f972c3f5dae734678a5b73ee5f156c3898add8d2cb2607b28bf9a17caa98ae10749034795505e0dc33f00114d483a073e715eb71ffd0f4f2af99e7f789ac51c2be529999b519c928827bed3d6f5cc9819d1fb730e13305b4429e965225dae99ef7b63f481fb311b7c7ff0d20774281aeff2eb8ea34e58577df3ea25aba65650d9e59b17a338097ce054653e99606c522d2b6fad2865ece28800c4145bc10d8e60f5b3cbead04638e2c44bc7af68bd751ba645c1e0e1f696110b07cc340cf99a820df4f5ef12c6c00339d3c4ad19d8ea5da66ee7377a58a4de0331c3e484f5c6f757a829cb7be162c5e8295a7ae1c2036525f606376788caae7f55d7997cad7242b378eb0cf21274a4d8a9495a3c1c4ea103a71b0b3bbbedd3960fa000000000000000000000c1320252b363e41"
},
@@ -75,7 +75,7 @@
"gasLimit": 28335,
"maxPriorityFeePerGas": 86252,
"maxFeePerGas": 94636,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4702f91c43048202c5830150ec830171ac826eaf94000000000000000000000000000000000000aaaa8362d8db80c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f32a860e3ef684b354b98585e5bbff5ccc4dee8b2e576325a4ee1e3571b7f0f9956f6441c10f6b2f90865b9162cf026c5abb65611111e330370008204873d7b1c701770f64f3a2bd8c063c8dae1dbaa93121ba3f831305fa1dffce7e089b8a900c1470825cdafb401950d6f0d8e2fc6ff7cd56b3f3025339b32ce3ebb19ae066277d261f783b9d810ed23acce45486914bfd5f88a17c6c9ded8cf5efac467466097f5fc9a7499d47bc9423c96d16a8f4a736ae565cda622f72f76e498657e83f619c355b7152f9b54746b8e7879e322566d54da3a03e0ca0f8c5f44fdc91b467590dd8bce5c5899ebbaad86ae3893e19aa2924a44f505b8f7df0c4a9d7ec59a2e6daa0d33acd3e1e9076f8531290425ff0af19b58c5bf8614ee567de68b2e8acff3493269f12a49998edd73a8de88b3c90e36248c250a24c047ddc35f0aef665225551d3fd4942569ec6aec74ffb8e1bfc546ef80e52ed938434c5c31c58eef71377a1da3714f368ad84ffd4193f59642aeb6f0a6a1c36471ffd38e27b4c7da33dbe30a5f3f25aac5b7b3e30ad6099fa7784ecda783f1fd75aff409d7b5e84a91a2bed3d0812b3e054411e0ee9fa8a1260ff29e79b52c8c796602481a6b40f8ceaac1e2570be95a2f9a3babe5e0f042df1f97e1cdaeed4682645ca03d3dbe5ef4f7364f52a556db86b1d9e700b72d92a0a7c5dd4ef57a4c45fd3fa4b92a192da710ccf926ee856a3c6030f02dd7adfac1071396b7a7ab7cdf4ff22e4e044bd9269328980ac4e6149a0f549cd8d22c3971639a337d1eda621520dbe399cd49f53572377b3f4371e28cf78904fcefb44a1a70ef1818cc30f81f94fb38c926bcd75cd0d5e5f6171f152734eefb7f935a98f9f0a052bbcd67d787d5de205a52c4eac0dfe2a515ae8d42be9c01af42abc15fd66d3852852ac474e85903d42e289e2ffb046c18a121a8470c398d71cf40bbe50c38fb67a1bb7f2619fe5cb49995e01909964a2f86c926859e6f5743f03c1dc01b9db8fbff7c52b432f451c46ccb842a9e2ac419e662069359b8ac9f0fd1da48c2a7bd5e6b49b19b6a8cbb7844fdde0dab7031a5c2d630c10326dcd0c4a2d283dce7d69f88f6177d5b22b9fe28ec6947a614338a92cc240ff1d28c74a6a46f864aeb6e0a29811dbf4e884d5e06d2de8a351be59ecff4fa416509d212317e94a9f143ff1be20eaf1d7da37e4fccbb93b06d477bd4d08550f27a868289909930b16d544daf26b8b7e0e5d6df4e45fc3a70f280eb8d80d016c608d20b2633c446fa2a7a4cdd50e3b9400321f549a4576a1f37d82057f13b2ea92a0e2d15f1d3d07aa4d45def8aa772457823becb902c37754da9fee7121bb4349852da1e93f64f6ef4fe4133b2c4340630d3a983b62711503826a0efbaebc683ac999b2650f72194ba2ac47c243cd3dd5b45face1fdef95c0b5f464b3692c7b8fe5754a7eef2d1148ee81019018392e27605c0d02a3b32afb16dadff1c8204c66efe285be27c7f4a1a6df8e5c6c21c44111b1896a59325a3afe047b57019007136d88e1e0a6ab4c476b463d715a08802bc94900a31ea1ad05c702a10b81ff93cfef894dd688f09957bc1a6aec7ee5c46e264a1293dbe3d76d87b234f33aec0385c3f2cc470a9cc9ef3d222537d3141e1ae54b551d8262881491f525db00d1249615fc056d1d1ee9a5dbb1bf9fe71ae4a6eda8a3e7472c3419af2d52144aa072ae61d2346ddf4cd11b05d89022e7753a08d7275167ea2a4afe0f187e3dd9ee76a002c61126894b63784c01be419e585d0a72653ec2737475cce2c1a02e11c5b88e405aac023c768c08a92c571e622789e8fd9e1029171419c6f8695bc37cbd6911689e3057fc46659462234760c121a9278f64746387aeb799b3d72d875a2cccd890e1fe7b9e4a67b01fad7ebe5c30646651b218613545cf4335c351210d6e86592fa6df5b691ba989e9019f12488f8067e50f79a8b832854ce2b1e11170f07b66c319485af0ca95eaaed22d52c01dc20fa43843e944cca67564da74931b0674ce0b278729dff6044beacdd88f8b9a09304185186739d18e2cdc4978ea50addc98be92e6a4a80848e7d5ddf78fe9a403246a6f92325d7789131124e7a43113ed6d9dc8c2c52d74b2e17aacccf3d42bf6f50c305345592be0f2872d1d5afc6f47f1ac07e19fa4fa7335d11515b5246540e8b992fa04a70683fc179231f641d6437703239d7ca29db9e8bef9a1624a4b6564dae5d0e8f3c0ec19c6f0090b9cb7ef1442356cc37e076d05433fe0ebc11ed22aae6a3885bcde0a4ef78e979cdabfd0e8f07abcced9fb04c4acb1d511f9a067f010313f5a43aabf230889073f8bdbd85bdf068b8ca7a36790449a7488a8302c4bba94433e4acf17a8196c49e3cb1eb97523cb2134e04197ff1e3ea569b865bb757555b76bde94b013c37356c8acb7ffb54b6c05dd56a9249551c2f6c7426b8762bda7fab12ff1ce1383a0b76d2a0bff96ea351a022934647ab38e9372f242a4f27d5e46ce87849cb40d2055492f35a3774e3781aa80d2e6f1bae348f1f4f98c09d8e18f67c25ad16f5dc72b0ca2631d61151a480702dce28bfa71f79f76a7fd72b0d477d15b9faa7c128f1ed03b51881540572eb281637dbd86b74af9720b1855062bc58f41b41137394253c300bb23756f734e4da4d9f9b2465a8b4d8bbce586c2376611b7cff2427bc9c92cd3ae1eea5355e6e27721298aa6964f060d412f2d34d15e6e097e8c47703b2662dfb76e24e4037167b927d0995f9b881f44087f5e31bc908c133b445848f7e88d47d687006b36fd16a897849672061587781388e5e79574a9af39d18a8b87b02f0c573eca081d5ea7cd87acb082fea1ee7c7aa402b62de14494f0c5f105dadf42a826e1c7c38bfe9afab5b0962faf2d00adfeec7d47366c9113812088c2838a6472cbe2dcac21ebc7c6b43a5bc4687128db20498eef748b566beafdfd741856465f132546d539846bd3dd367ed082845fc6d1eb861c7bf04fa003b9ac4daa2a72015ea099ef950617915afa94f1737eda92d13f03e96adfd772ef6e58e3ce76dba81f51ba816427379420855fc9c9151a11114629238498fa620c640ba3165587e914892f5da739fa4b45be87f7f6ede8fb421e0969cb735c0485d8a13cdc3babb4025c3565923188d150f5dd7ee4ce4da02ac6591760b88ee3bb5c16b591e2e4806c451c4568a038610bb8e8eb4a93551ea6f7d6b656ce2dd24a755ef3be6398fecc376f8464c56923944669d73f4bf7186f9f01a552e004478b9344cd2aabe7a7151fbf0ae8bf09d40decccd38ce0019818f8741f0a4d679e49483cc486075373f5864f38ca0df221cce14b7e525792cdacbef9a51be06de9d0c033240c220ac54ab0e993289825984e793f65497e7ad086e56cbdf1b59b1d9fc687fa1b2f8c785e39de01c5217d1a947c3bdc622a798a68285b9873addc35ac0ba5171527de195db3dff4c20af09c695fd1fe00fd5b37c6f9a339964f50e6800118beb42593b6dcec61ff56b5e4a84af8f8ce27a9e19395de4557cb89be3a7eab50edee9cf15604e1b1f74d9e79676f85d80b265edf8da382dae880fa3e64d0d559eeb302c76c953e5bf845765eecb44f697bea0f66eb64f3b0993a11b1bfc8abe711994be26459a04f932f79219c859059900611c086c2ddbd2fb2599a480385a35f39dfffe81e4398eb46cd09f4653f0917753fabc1840e37622c67bb89aa2c342f51fae9e26c47a5c50c443e090ff0ee5a72f5ddc895ad94194c8c49aabb50688b595c0d81b7598d5665e19f68e63916fe8315c7fdf3b3df5d2d21d0e4c90f1205968617fffea2653349d70e96ad48d9d807daa9d214c7d173241e0c1195a3dd096fdf1275fc4a6e8f40286266116bed20ff1da3309e963ffb5ee90b3d004f98ff7d6612f620f8571dc49290370e06359742979e7dbc1fb8f419110e36244fccf45d2b14700f19877539608482bdacb6df7af7d1443ab99116100e69f584f860a2b9239dd1515255a288a07b9c5fec86a8a8834bfa299709e6b37077ac09ad5612c6325d3c4e4c6bf8776cee7c9f782e3a2622a47550f7f89aad2a32c00778a843f1db5d7ebe22bf400a10591d82ec7097b7f9c4669a8a7eeeba73427af3e85b041729e8bbb88250df117c0a11c84c55faf1474600fc64c2a63a56f7bde71358f7a288d37e9c80f518e95e347f79d850dad86daf2370c01b948f9ef0b2a00507815560452b9e5d2c700e53a6424ae06d6d704c51725083cca9e731f1fdec0e05740bb35c2b3c3686aa3b64c653404d58886c66dd6f64124ad7485236fedc8ffafa0543bd93b8278f2af806c3d89a857e17aeeec2f51be518afe3564f7ba9dfd3eebc1aca157d7d8edc2d146e1b4d0c521cdce15dd9362925c76285cdd622ab6ed4c119c0d15f9e0f5c3ed4061308de22e3f2dbe5d39c54908ebbe91b8b062a914fc52463a6eadf991064e5c2de792c064260918ccff6b68c3cbba2ae8df563a75de89a27ae9d2e880d453dd04e19504af3e78c7396905cf59adaf2f5785a24a9bdb18fb340b249e566e286f5c4a8c98801fac90bc83364c30c430a58c8515fc40e5ea36512301845498fa6e331bb0f4d61ef5accedafce61918606e9693dc0da65fce43c924b556cfa6aa0ff6baef5b58b2859332bea3ca0b5a94d99a86467e88f36be317b9e9677bc17b022d35ad5ea14138f173ddf70f3561a496ef63cc48d22a685768b4f4a0ac68a219865f2f3aed705c86a9803e4a68bf1efa3e3fdd6a7b5d780e0e30ddc07c4e07a405db8068df48e658e13c27deece7b067438ecb6543d0fd78d3c440e63c3833f6aa8fbf0e540a51ac18b641bec0d88d9cb012977094240a17aafb1e107c8fd0ed1b0dd9d818ce643e27662b94dcc0eacdc8dd466c01ecd0b99e3680b7c244f029b598af34971b581bc37d5cc809737febb208c028ce120ab4147e523c8077becd60cc2e3cb7d6ff0e5255be60e7689b96a52234cf5af0a3ce6d645790358466cd4a79fa865042b05aa7be89b462535f0fc5eddacd5782470c84dbee84303a349606b1bc6a1eb9a1a103a537180583e8cbd09cc2c4a88150bf281c9bbf78d5db3a9fe8afe1f51b73d5482b8784910d0332b0e3bd04396fb24c9377b7877831b2aa265c8fab4208669cf91bde2ab7e3afeef4126ebd055e3d4dfd9c3711bb195836ad72376fe42654c90b53c524ddd4993f6e1478bd4490d0d31793f5d275c47466a7b91962b10fe1dcbcaddd06f6cae50ac866669501780e3de1f18200cc6b56cfd718fcd573667e2e483c60368f13b0cd3ed0be08e278ae7da3f3d5adf3f7a4f51da1c9f6fb317fad4550b5a2696a10b4b7c0f1a6ae751fb55a8866ed7f2b62fbe34ac24890eb1102db4daaface0681adfe66bdd922545df28866329bec52c8ba50a0f7124a6ebad62acc2e43cf174d328371ae50b875ecafffe23dad431205e0eecb5c369faad2b37de1e66175718bcb75b43a727906e72fc904f910b018fd519949380ccc42e43111a863da3e10afcbd135c7af84b410c17766f952a6a74858bd2d8238d4ebd71045bdc103dd8754ca519d2de40af212e616ddc2a66ba6e7db85efd6e4dbc3259b543246d5019c70eff9309d6bfda5d7c4c6ec4a1bd623416eb3c6261f920fcdbc47534738944f2a476722f0360fe0f36c0b438976ab27672099b5fd54bfba93d9039bc69d044f8d04ab17c696d3a1112154942a3817fb452824fb047c582b8fec47a6808928bb39be957c24642102d2f4907a7fd8be5fa984ac218536e66665f76332d93584f9be3f4b9fce3a167b8d362b4801376562035cad57c39a65b5a3ac5f0b156799c22aafbe8b9f2a322053d9c2b8fa40deba2bac1ebedb0cfb6938a6a72da6f59ff4851a2b9872418cf83fda097e0bef9f2db0a3e892d56ff2299d76c40502f1d3c8f560d35a4f501023c9d6b474bcda2b969ebf0e0d671d0131d4a0c2caeb29c2b5d8572f64825cca24333342d2f99b3b7672db98382c766d33599cf73934e86b0b1eea2dc35ab7b22d6e6616c833aebae92d3e22c8658b419853bbdd26303cdf79d57b5b5bf30a721581d43310360f84dd07249d30c1c5279503622a4e6a8191440a42e7461ad24df026f484774084e272ea1178e73011314545cb5a2163b2c07ae229dec889a9f97697918b4dd040959bdf7ea6d9e2d174f895402eafe125fe7da7ba163a892cff76cdaee275e68b7a36046e397024c3b80c93ce61594984092dc9b87e7fbd8407ceae3a31e8a37162415b98dc7b1c3c9193041807ce5c386dd12c63fc8f7c77da742bb3c559afdb9a83787abce67aee09346589b79f414f12ecede192149b9de362140717294c9cdd8274d5d70889ecbdc080f101a244445637aa7cddae83842617a90bed8f7383c7a0360b5b1cacddc061f2e6d80859bc9cddf00000000000000000000000000000000000008101d25282b2f39"
},
@@ -85,7 +85,7 @@
"gasLimit": 45047,
"maxPriorityFeePerGas": 45216,
"maxFeePerGas": 91648,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4602f91c42048203ab82b0a08301660082aff794000000000000000000000000000000000000aaaa832a76b980c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f340b0924de85693fe92e69fd8d56ccac03943a4f11c70b3ae910c20937b61396cd8c864a86bebc07372a540b6f4b8d3cbe6d9d4b6b9bd3b37d1ddecac61663f8d48f4c5eac6e3999475f5f3671c9a26895aae1267084e2bcd368535992ee906430a7f5cd5b7209da714c378bcbb9b512b61887c823e675e8fe987b7b59e369b440fe46ea54458fe74907ebfef0f3abe3404071c17679f51665143aab03f949014cf4d9dbf8652bed20f97fa48054382718cb0ab187ae5f11d46782e93587b0902d11aa8046477fc4dbdb8c2b09057eee6293c068bcbdf07b1ac82a837b6829096abf303bda8413a4007904fbf18bac678686de145ec6e2ae326bfc1dcf3c91d48c3dde3cd67a0e06cd7c664c987e0254f1606d583d43aa7a8c8b7e27267b703f5185788ab4c5a3f06e4d28e3f4ad00ac0cebd6bd485156f7bd9046ae3cb46633119c395cf344049767f4852e9d8bac2f41c147c78756d400630bdb2f101727ccdb96b593d0ef88c1b5715517c527eaf5672b6c71b369f7eaff7ed64ae8b27585861bdcfdda4bf9eefe263b7261fb05ca8569aeef90a42313b862fcc30910404509508207cdbe202ed3c223aba2ee96e3d75ca09d676b79914cf80ee64e58cf08f83afc841b3b44eadc56a3fecf8b7b8a3687e9eba3bf07620be6368b317949a6c8edf1d6ca2241b3f8a511ea470398489f485d655c4cfab172c5e8bcc191090ac3b00b271f895d5ec8658ec3663839c97548aed689a81feeab7b03aef3f3c69ac3c87da9165273f9d9e9cf755ad34b95ac066dd7dd76e571a12436920c41816fdf7964cbb98a499626a1efa2eec9cfe20122b84fc0528b5e775d1b37ea5e4506554a2663f1fc76b31ef284c5618a16be51d280f84ca377cf7a479a28007d747e147171b31c6a7097ee77927868110191919459a5b28fff313d778fe6b42c9dd398dc9979af2fa438c584844882c691fb735caffb6b97bb422731525b9c8acbf1c0fa742aaa43fd7b1336d7dfe7d1d58f8bd16564d1bfb2f4dff85b0141d03ba98c03ca6094aad3dcf9d327bfa44075ea0317217261473b23262312b8951e3b9d079664037adcdc50fb446c698f78d88524761e019eafe2d82b1333ab45472dea75b5cf1da9f22dd98f6efe9095c636f6be427e1b0a021681c9aaee376cee9618db9b0a5f3f6cb6fbcffb0e22dcda7f4bd85b7f34059fb28dca9aae2d78c6a74d62d1663090f8f98c58a212a504959dc012027871623697cb62750d767ebb52dba6b1cab7cefee4676b3de083af12b948adcb9ed69eb41a7b9d690d6a8b8734f3907553053f3b539ab0c95075ce76746f0c4a6312eb3ec035e61e139b782332e3dec3555a29bf3135dae9615d61ec3d0c9154e48b7e4cf5af43ace046cff98079b22a2e528eb36fd1f6792834b2d7e4df693e1071ee639018bffc73bc276d9ccb0dc3e9fd1d8f36dae1478fe03d23b518dcff11312f5ca4029c8739f91852272403a17a1ff96d2cf5e19423c29e23de0fa7cefb79590dbb842dc41a9003791445937302328d82ccf74d36f52275816e8b5b152be8e4b935575d80f6c2d27e79186dab1bc30554a3a7722fbb3a4d4929397c687a938b1e2dc7445adbe358d4f218cdfe809fdc48dbe03a181b2878a9724b121011cda7073ba6c7c1ca0ea89316af8d9d98be6f7de01bec145e13d597eb3c1619e1640b0e9e1c5a5ad25378faec053be41591611f291159f0bac5d8202bd6422db1e44b132e584e20ec2519e16763b2557f865479bdeb3599ffabb188aa89decba662152d2997409681f69e1bf922541e7a1f7af9c0ab93eb014f9a029d14942588890368cbc71750d14bb3b05234d4f68fc1fc2cf7e1783e97ad9baa1ec1887226ae050f03b61cb66acd029e8d236b985754ed7c8e5b85dd41ae0a63be20f5e31d6e22337206a34d3be4dacd58eddf7642c8f8e414ce16d373effc795d86f1f8f2d7df3d25fedbffb08a3ac065c5e666554923086432db62bc064596609dfbba27ece15b5906ee56b5ae6cff1a23a876c79cfc661b81f17540a5865a54e23dfb973307d108287a8ff91582e31f37d91816e97644dc69bf9096402464c9981180986dedbbefab8575c6a47c6c9f6ad49e977f60cec17dbdf5813e011d11c119c31621a57877ef1c6c2fa8f7e4589f1792917a2a6e1a19fc0ca62c166605f61fdb1d789d85933ce402c2ca74e1699b7eccb0fbe4486be9f8e4b9ccf85ca5e4c1773941df8de66c62482892ead422be0aa35c6e8ea07635693e07a7a47073ab68caaa892646cb9aa81fe050e5a310a71bded9437fb95f0df035abe066e77c7804113dc363c1c06acd0e07ae0d5c74e042fcdbe52861ce60d7ff00247a91e32e827b2d809e8d4d250f4eb60520a59bcccaedba1243859988607c8c18c1d946c0fd3bb93afd85ba209d002e84aa4f32ec22a664a61f5b8928f593a19faed8421ebf16d2e67003df4baf1f873fe17e37647ac19c0cb166734214c40b1de55ec72292963466c01277d5d8ac30a9d91ab211001818ae1be363b4e3ddd6b7a456c545d5dca6f1f840b0f57681ead99e0c2bb65fea5fc876a77da5ebdb3927d63d53b04f074d5c25efe078bf146c1e923efaef9be45ce46252bb77af8ac1432d811917d2b530de59180f1eb2bf14f8998def32afd35a184000ac10bd4c356ee199a430243520ba1d45d8c48f986ffcdd6ffa6a245bfab06f663e8b9a13931b9e5dee0950037c5ee026d592814ed0a3d9376ffb8f7ce368a4bcd11de938944fee1cf8d3dbb133e7403f634d6783c9a3b78f8602f690e30c4792469fe36e6d1e40c08d1dbb0654c2c4350fb5f0337a803f40a0f5ca2ab0ea26f076e703882ba676e4552152427bb5b3b2119faa457ca38302b2bded65b0b76bc39dca9ab9dba05d6d59618f14532020666a657317c8d631648a381c545fe60efbcb5c9f62bf7c257b6c26e2b48ff31deed9dc36653a282299406c27a8af5db21091cf21aa362196a93face23f1442ee100304397841a52bd5202d49bc33b1723ac28e702b67ddd4569ebe1e46429646d8ea42449ccb9fd2caaea520379e6ff6d0e62776a71047792ed829423a496340987f5d0d956132836232090812c1558ccfc7e9277c1540e4d20bb1001de87eb7a77c6fa5611c783c87dd2df6a56d987ffc1bc0b986d9e3ca77a6eaf4958a38b251265975987f21aad974b8763e46e6f8722f641696a61b41723f5e018b7b968a11cbce2d72d5680bc524d3dfbbdba3ad1f91f0f521b6371d4ad0b2f2a4f28f91d0a39c31b83e67e7398afa406ef0ff610962a64b1273dd0f4e6a9c79db9cd4a5e73ee82a8d6ca454d66d66cecdaf0dc1686d0b0a593ca66de3e45f87961c8ada010683e5ef3f4fee3db253e0af4dda1f6a11de415589e92e49aa5c4b4db34906cb690dfd8e1202d7feb67e6b7ccf34de885d3f074fa55184f4f448c9ce60078e23ec58530714ad2c672eb2e003d41eb21dcb6d92b85925e04322c80391b65a4216d163b32dcf8cda511917df359e1e8ea5f535178aa9f9b50e623df872553ad3546f3b9b5b26b4359563c04e83a0e29e34a048f4930f00576cdb9428a05501b601b91f204b38767ce2f43b009a2da3a0cbe9b2d15a505f82a92984292c9806c28fda04b99777779edc8b3a69c85ddd0f7080876268f38619b5e92808fb23214bf53fea9f6e1f4ea834886110ef0fd9a8bd71aaa9ac4fbf1e1fc27ed7c80b5598f98f81e54a38148dd45bd953af2b577090ce8ef686b066766ffa581baeb29e6e07ed14ed870a26ea7a7605b34b5b97ac02333b38b1a49ee23db5111eb72228dfd6659ae29983ffc24e33d28c6f5764368fa1783aa585412d6f9e3f3373deb6892cbb7e856c69ac2efcb9a8d87d0fcda68b9de86fc22b326e9252b6b2be92cb8b960c4f8257480594a168d0e31bf16546d31f5d8624e4a0d207f397a34472361696afe2d4aa6c13161b3dd65a60108fa887a689405b17e00a018d89919fa9c88546fde9f0b87e4a5322d04c6ddc9446f67d6d256e371a5b74ec2af18438c2977a330e0eb7314715c72502ffeb84de241075f96308850a164d07cd65b8dbba52bbc6d46f6c4b461efa9eb03322b5ac2ef922524efe2303f63a777a7fdfdb369065efa44272a54690fd53a0f951e6b430b79f337883bc4a4f119cdc1908d369fa20968ceefe99d334e7fcaddac06547c385cf079dd2cc81d132f8a9f706fc6fad5003e6ebe12cb8f2d10f284e5cb3e1e73f585b7aeb190d2c57ea907a03b60e54717de56b902ef9d9080ab064366ddea997c4ae2899142f755a2256b02ab793779737e48993362e55024b1e24c69b907aaca6524acc637c8ba3f83d993d60e16746122f50f2a33f82be5ee25f4e4e491af8712ac1d91852369ad28fb213b9aba270f9bde27efc17773a8e826ac7aa2b240683390e7179eba27796fe13e36f3d12008d458a045d91d87ee14ab5988312889429010a51483bdace49eb88f4aeedb0edf95d3381f7c082c53bac947357e72a468c280ded0487235f3cb0cb91a478667285f5bb21f08082d10b76e871296edb4d9f878afc6a38871058a9cecec5f2317a7d83703803eb32db6fc2e892657e9bbf173021c477e53328e2cd0234b531b8d554be430b9dc550a8cd6b44318e013f912e5648a031a4f9027d353b6fabd6b7ef029f049834af0afbdbc361bd707142f152e4712a6a9584f5d7b96df2b219d85d1f9ead1f82dae22816b912436d9a13a06aa49ae3c2177c56be4effd925bc61da981022e57521bc090224234effff07216c59582c4686b2f9cb0732e72b5659d61ecf448a1707be09e052a709134673b3a21e471ecc22fe1cf98430edbcb94eb6e43665f1bcb63c6ea7740da8340834e2b64052f036a0c683d5603fc64129d7b6b43e81cf660b91ee2956f0355e5e7eff70bc5f2fb688be469c868dcb6b57ca568a51f7ae259f092d5763b2750357468e53dee4ed2dcce62f23f94df44c9f3e9339d1f487e07bc205ae968c38db7173126370391bbf89d151e9284428f7fe1b5f8d3a7492b3dd80c58ac7cd94f34634513282080df65d148759e8df11d6111349d1640431f2d32d2d9fbe0ce57ffa4e749b369121f8dabcacd467b9c94912ae783970dce7dbbc46b7cd9097cb50156b9e79d6f46ec3a7c072fa0cb983e9c08ac3f564f652368be7c83d776b0733da66f2b7fae1027dc570ae9552715f2d0bbfbb6a3edec73c1b211c6cbfb170f565446aea3dd760e1f9238cf9b9df88b87c0d8e5904482fd12e13e65ad9e3fdc8157b971c6e414f6ab18b3cd3d3ebb407ffc6e299cdb6d8989db94de8cfac3a1e68db6d658eac4b951b434cfb043fe36d8f6ecbe48943722bd15af68c5a7f47c3b54fef728bea49622f6f2710f5ccbbeab47ef6edaca885ae4d9143507652b61f1fc0b0d249b27fab9ed392ffa29a267a0d88f80454eab5de9146854e47d602bef8b3a167ccce22c457014a4a10b0a1038fd470f63622658307a76d0096b215983be5a574362ae26c3fcff2c5762dfa4441617b7e736cf014ecbe8655658eb49ab01aa8e83d5bfe173b5b2969ed3a08898722b709e4805cda8db060ce9c129e7a9614dc8cd57ffede7429696d99f3463122b56a947055fc66e86c7713d75c4a34583050269d60d92ddd8c14a40041cf4d2b83cacc22137bcc740185171dc0146fea16c1efa79f47ded9e254610a4a6abfb9a743e0d96ae2f7abc62c08bf31bfce3c6f3ba71d6217883ae77b99999ee38c30e7332eb79eafa45d7f6b27aa2f68ce4469c23dd3857aa6e6c3dcb6b5467c70965f247215d2598ad5eb90326c4256d754e7d0257bdf55b35bff26e41fbf545e7040ba6ace60bf97f498171c3ef534305cd3d7b412eb7244dfc56ad29362689f54ebdbfcdbaa47ca7cd5edbc05820f38b4d3b344382a141316c57dbad18c6e8c206bdd3d661dcf8ee286f81056361fd7f02ebddb93a7e6fbbc0357e26ad3c22b4d68b82523adc6351fb596c4ecea9597db4cba097e80cfb3993c753e77efeb29402ecd6c77bb6328fe32a60eaf5ad73162570238357726c1d4412253755212c885d283f24d2302cbe8c1163668ca6202f0829612e8c1dae4dc0b76c0e1d08f0c38781a848e8662079133ada796ac5ee24f105ae931baed243de9faa5a559cc039b79d4514ee2d54020e81c2ada48e9e6ff993a2b48636f58692bfc02fe43546ba6711afd60a580a393db2daefd4e52f493a4abcdb4631068fe71abf60880b5aa312f6242b0aea8cad87bd1253de785499298a9300b5807d1e28e7b6dc22f06a83ad52ec0adecdfaf3bbcc409dfd59dfa9ec065092c82c3c17d97b4451fd4bbd465ad9f54971dd15292967118226f6101143adb1bbe626585984c2f3f4f70416394149d2f74c54662b4a59687d0e1f366870c6d9dadbee0f343d6062adb9d3d5d7fd080e3f6184898cad00000000000000000000000000000000070f16191e28333b"
},
@@ -95,7 +95,7 @@
"gasLimit": 62341,
"maxPriorityFeePerGas": 24721,
"maxFeePerGas": 107729,
- "to": "Z000000000000000000000000000000000000aaaa",
+ "to": "Q000000000000000000000000000000000000aaaa",
"seed": "0x43425e20ad82f0611295b1a8e583f10b45c41fd51837e5df4f2a745a4f4c5014eb7ebae166903c8c99597f7ce47cb9e4",
"signedTransactionRLP": "0xb91c4502f91c4104778260918301a4d182f38594000000000000000000000000000000000000aaaa8403e6c7f380c0b90a201de9c19823cb94b05ce8a3aa5377e8332c9b2223d6e42d8cb9818c3fed182c667c401160d9e2024e6651382851e120e1fbff1d7d15a4596f626e61af263fd753ee3f80ca801682d7189b2c64bf3acb1d676033e49b432fdff76af56beab1b1e09a8269b4c2865aa9f603e6f53706b849ff1eb4219469fef70eca55d2786ff26373ba730ecd7eedeb77e3a8eee780da5393312446da09883f1db34e4b8e695b3f38b8b2c642f4d067194b2b7b4eb87250a29bcc49140dd41da57e9193531c0d0630cbe8830ed8a3f4ae6b527e6ecdd04b27f808823a5d8e564b6b9164f63f9553d0afdd8a8724c93ee8c4d6f700a7e069f4471411ae0aafffc312f94b1f3dda9eafba18d2551db4689cda39c6170448f8107edf97c13cb1b65cff5817aa62658fce4e4b5b15ac633558b803f73c9f3628faf7129bc4a4fa80b42b2ca162f8c2e37054dcce634aee3a411db807740939f381e40996ed7c2f683e20ea421fd535d046658d55843749b547d1f3ce9bbe51ba10a30279261bc4d988fad5c53774a2fb06718507e7b3f20bc0f6f030c07276e3bf45caae9a30af29f7397c1722c12051ea2f941a90783e38acfbba892ad63637dc113c0b354253e32ec71ade86d4f0890661ab1506e544576df4f3ef32ff0a15182ce7a178c6dbc1c5a536c6d6e61f1c7f860cd0fca797c929681329b15162933bcc7eb28e57f4a2e7e195399bc917e764218a74f99f7bd5180284d9e5f2fd5651158748d289befac922edefafe47c8352b9f9ed9a6b7639f5c1fbf31423dce815156696f0d3c582fad4af0a3711775ba93cffe3d8dc0149a2ae217c55a46452dd3dde99a1f718185b03833c1ed8deed4ab1d6ad20479229b37b687a991030962682d1ba1f430c2f494dec8a68c482e0c9181655d6eae7ef50f691319485f4ce08ebdbb87551c82122934061024b7619a96f849f484fae363ffb81e655112b7ebaf95d29311e917d9ce3fa0cbe73b8b982df394d43af1b0ac8ad6bab5583cf993d0101fcf1b34682f89d21efa189c8309f1a4d625edda4ae53583de2cd3b38e0e266ed313ff5fea263469ed9e9bc18c859dc97f6398554a7e84b6e7d4e980246a1107eb993a7d84a17d06055c3ddabf62d75fd917b888bf7a8bf232dc0960eeabebb6a87956f6905fe5cc87a964cadc71ae60f8a44264603559a2ca765c6a736a2ee413dfb00a4158823bf8bed5c3af1eb88367b1586d9695349c2ef61f227db765ad473172a835058dd03109c6fd2a3f22da9eb52cb3fd2d5bd4fb40dd4f6a743ca7b20b80937f828f726aac0f90981ac94b18ef2ad5c90d994d386d477deb4ee23091b6c87e26818e6ac634333bce48930a6fa091acd4c82048c5425c83f5d5682f76e20daa2fa0dd6e69af57b3731d1bfb89e6fd39790ce3300e331349c9925c05b335d813f933b9393622582e80ef2f0027133860191fda6ad963de03b6298cfcacf775e58f1099b68408a93835739a96696f36c3dd495c276f8a2f3f8ef972ccbff82a4ea46ec12b2f87571b0b213215548b914d055ba98e30ac9bc6ffb31ca8c4ae7219a69608479b96c7c0a600034d49589a63ac1740eef6994f2354fa7ace3223a7003b99288f397ab6a2497db78b4ee14d5716be55ff9ec291408e9e756c08092e2d8f5f2d994f0bf75d4afbf5b8a9c217df6982b64933c786dbb21d9a9ce4c5532572213922f750ccd9c8e5e08d578a2144240757adbc1bf53581f1ebd54dafe48a9f7102f1d87ae8a346cd4621392c589f73bc94ba1a027eaac7da1e29435398de3a354235839010bfb9fc711be2c84693f550b148913f3a9de1ded6ad41b0eeda1c8ea8eb5839a06fed3e36b7e8a220a5d5e7efacbba56a585c2664483ea68c95e42803e131240ac27499252b7dc5b06fa71b91662690979c5d8ea0ede78a801d6cde3b29aba83c3fb5fabbeaec63871ba4cc5772bcd7f97c78b16170e13f49dbe116300548c668dcb61d798dc834ff6693799e6ffe6f3b32f4f2b71349e301768e2397f904f045384eee863120bcc1686637dfe7152a2afaa1dabce08c8f16f8fd011e87268eff9e16f1bbe07f0bff3e23355d3c94767e8e43bc35bd632ce5fa1f6f983d4b2c1ff9bb04805395b006098e29c0d03facd9dd77d594fbace0ed5212e76425fed9dc96ad4191f6ffea72cd299d0369e1e7534b7585a9a35f430d86b00ded922a9cd2db891b7c203a01355dc78676390bf41598e0ef9be9ff9218f28e417061461d910fef22c3499002299c4fcef26e8352f5ccd036c91b8784205cb3f3c2e0aecff18d89faa59b4fb0cf4ad453be3736d2596bd739013fa8c75bf1e848865952c300be4d0a80f5dcb80d3cfd1f3f3c83a123d3aa471b17c7ce1c7ea50abbe5fe397187ff52438af55b5b64cd8f9a3d021c443d8ccc55befb1c513ae8afab0d5b1bb4154a09b50cc0a4605162cde421fd6e3003cab82cc8ec3ab7ed5d98ed7222d83e00cb61d3257c6503ad52f214f1e5a756ee9d4d4fddfc09d73b0a1378b437456a7bc42d9d43f916ccc61ff126a50841484f0f9addb261f38ac75d7dfcb0435fc4a6092e85d6ac4fae064e95870b0efd4269681099c2bb743773cfc61fd082ceb27c95468193dc1773b31906e638c9928c2d0a57a77e0d4ad0e77e703cc099be8a5390dffe6c4449c72036247db0a76a6899d6046eab2ee121e5d65540ede74eb76cc4bb2438edde71b126ec6be88a54f9981060dd8508b0f635938916f7bf3cba7a104c59b816f3c5256a11e1704c03461d0e9e22133b907dbf1edcc796c2daaaa07c42a01deacf8072a4b76cf060d386b0e0f30546811d03df36238c28c568b900777309c8d2c0e5c711c12820e96626dd88debc6e80c8e0627aef80acdbfac556abb17b91a4372aaf6eda4ce114ffb9fa1d81aadb88099dcb1ad953aeabb48611716aae98c8fbfbfe30d6cfa3e15a409f5d754bf1c2602e2f467cf32133a53929df8d34112871c66da00c7931fef9351275206acb60b6848db36360af2643b7cc793df85fad6c3b4201bb7b2ff8327ae8efaf928a2ba6c36eefd912f015f494a34656bee438f9a9ead1128e03e9b8a6fba651a0e0f0e6f043cb78f76ff2ed08e9796317948f5ce6b4c4fb48c5f5f6a79f2c576f0228be0da8b468f449deb3cc0a9319e02c2bf802eebce51d1019ebfdd7045fdb8a74e108edec98610e6ff95db9af4be713cf78d1a8f11baf81d7cf02e7aca5ad389acdf474490d86abb23acb44c319b2531d2d97024ad5454425ac803c40f19b382bc8e0ff277788e178b055e0a5908fe212efc62a8f86354e3c1a0a653123743b9b7fd7115bf16e4c12b233ff8122513d8bc09ec3a561dc130a901cf7d7ecc43188494bbed9813114f0ea79e7817be2471f437d395cf23710d40573f328490ae37454587173817b7ce18627b40a662dba0bbb9858971a505a0786a98526e49faf0d7aec553a3b74abf28d3c92106ac3361845d49a4a668d743e202ed690171a66575897531e65b453f2b016fc26e94412d07dc5bec7b72d5f2187893f297add3a34daa3a074c40af5f8f8a32d0e3e501e77ae14800c5a96202790e9ca6264d9d31bf4d251ed8c76f42c2efbc8628614fa41942081e281878a1c81b2d80c3e6677fd6e5f9bc016395e6247466240eb911f3999b0361bd22fbf469783c3209c96bdd607ebe73c8c764a5d6f1dbc2715532b1dcb9065a1fc6f52576645e459e3937ccd229bcfd64e6c5fe38f6fee80672df432d2fd8519ba4e5e42db3a83bc2648290e15bd7da4108dfb8721104c77507b33b2de8c205c0ee8bb3a7cfd2026ccc0165ab5310d3cf0db14444c152e6ca3ddc5025e16cd3676625b83dfe576dd0ff736d35fdaf639a919790ab28791c5ddb15cdf4c1e22b00f4337f7bb7807ebd348a11ffa5cf904870f4914b5a63efd52de98e36af94671e5fccacdaa83cccbf923de4d3f350c8d7e7c4c9aace867e7711c2be18dda3b4acd4c043a48c991be7aaee8f6309173a72a96fd43ad0444794364d6aa56fef68f802a47de1263af714f87c90840b581cd3c76c1340a99b4f6c9b42cfd2b59c3c6a52c4bc212f29a6dafb601678435553e0026ad969d992cc17dad3360bc5f5539010e325b0dfb25989abc84c9f5a4c5600b314e23fdc1e1fb2804fdc7d4c290c1fc74833b185a96e580ad1b818bbd1424c9d977c0487257f28ebaae495daa526699ea7e1b4e8186a7c80c7e17843b27b49f298a6662138483f0cebbc114f36f070966563d9c69fe97a2e7fa7fe35912355dbf69e0df3c613b439d6ac8145f77a93b5d8342f554045d558bb88fe43b93896eb28b981fe4e31b8c885aa4a4efc3a21433967e36286d8d6a651cd0b574c4b0d1c2be684da0b1333fa241a6d76d2f0bd86863ce8702988baf81c216af359443fb844e6cb9de1282800a950b3af67b621105f400fce8dabddaa3552e4dc0b04fdb0bf50fea7ba2964cf1c88c4f939f0979c15adb71e49e84c7fc7f52c601ce8cb5ea655dfe0040760c8514e21a81711143c2eb66efc50396e1462e7e0184af093c530652d6c04f2a3bced8c0c4e36b84db582ac461462a4fd54574bf34c156a6442e0f5099cfaa69edc4885c0caea2afb303071cdbabdbe3a28681de67abce6f45dfeff0ef66e323be880fd8fa7c634daf1a11fdeca23e9a03f6610791a7b2276325d47f2a95b9c94ae6acf26562b1c9b5ae5e4c07a21548f479e0db61af6cefba171616a5a1452009be4d3e73a3ad0781cbd010990f17af2c125cc8b31f50c9dd8c8e2b7672dd171904e005c8e8ef55055a718a37e1938f2abed1e0ba8d211133113ed9916ea17b210970031fe05e42e85b8d4fcf3311f8c687c110bb7d7d91a29343fefddba912f03bf0549ca27ef591cff440f95765d474af6da62e821ac7147f3761d7f26e990187875b8b095bcb27b09a97a6ee0cdbdd24a977a175cfb8a1c3cc4717c9e544fc6129426da54c64de09943d20aeac2bf73c44d5b20c0f0c3c848539b2af32b561855da934d6e991ee309bd0e343f6732eb0c01b41f92eacb885516797c58ca6bb2e4ae50c5f6ffaea0f98c30b5cbca2f3fdb34d05e9f7245a8543df1a094972151c1ab60e928fd4a15ed19d59bf1a8bc8aaea5e0fbc4fa1e848696d9bce08e597731bcdd39122c730799e0cacd912805df3d07de2d9e55469cf8e73be55ab26e49b3566794153f1dba003879bed58fb5092e894d5fdff69faf1fb02ef3bf2d0544fb821f9d7063aca08dad5fd2e36665a311ab8232e4ad0e60c873bec9e03efb21b5188e46a5b82d38c57ff1926b1520c16fb89c9108fbaa3ce32c42e4a78acf010848c39f01e2048b8fe0b71447d4f7a952f9760be363143fdd45da929459a7542775b0a63602293721ffd7753d9f73e2cc9d8ae0b0afd637f543b1e097dc430aeb7f7b8c9aee994185c0bccb2e3fa8a53e6110ee1bba9b2520353a35e64ae58d7ea199c849341eb3d077553574e66789f014ed2736d450164680bbad8369e03b5f90059e4b5e2057e708b8114bfd40f791f0903987a807f00be701874b5498384f53c377322fbe98e4efca5cb8a99bd11e0c931b5562fd416f630666c62b86cb3699c0bc6d9f1de382c6e46bca1c508e22fdbcbb2beb70c9aed8926c2385c4dc6b654fa4364ddd930e4366c2f6aea54553a2f0798431f974162bac9d1e91712c1acbc6407beab9d6ddfbf97d3c114817f19b956618a573c3a561750cb81ef1d4e776c831a94f4bd6fbb645bf01c6f36e2f0c4aa812f193a7bd2829d756cfd793d1cb47761596a4d0255dd7c8d32752b1c87055093c620346a5445b1d6e7be785aa3b88bc02c626e0c4f9d56d397b2aacd08f72d14ed9b2444b924381d25df086106eb2056181211cd0a3346104cbd806a38087a8c228053d33dcc83e8938ab27bf681f293f5a6a02816d35e50e251c8f6684093062bee877b89c7a902cad984be546fd91b97e4bc391623a43c3bd0316ea0a342a91add5223edb298946122e6c361c4e190b8677a766a24d1cb2ee1b83702557d22ad372ca3c0ae95a1af5039b08c9b3df06e5029083d8d33c90094025162293d48155bfd8b5faecedc60505f943fc1b51470eda0fc8dc0f0e537745a4a40c9f4046447b4692deb4d9ccd056641698cc26acf4781116ca927b37a0b57572a49566cbd610bc03710a8501cb23532b18ecc3e0a39835b2e9e8ba76f7a7b82744142023a20e9bcb7dc51a1ffedfe98acc0854f77758d3fd03f0d54ef0ec8094632f2740d5b659ae0efc87c5206b0e616ba0f228b41f7b4a5e1fde4a2437150f11681cac2614b10ef92eb86fdc445465bf535cf3b570a382290808da3e5c45dc09f9b8b4be2ed0773ca9061c2e3d8c3e5493091f123908eb609c38d4e501a6a7e60e57d8ded0b387278da50753e9c036a4d2db4be30b319143ca00782a274031a016bc6a19ca8ac02ac3ad1e1eaf3e2bd5767499111cfad82b3393762cec23ede4f2e85c305c767f0225a87802eab2d7e3a6e4d486d1e0ec3ef63c16a5a72da94a4ea4bf9d17834f3b3b5050c828a6abeea82881fc7aa4cc7bf6ecfdeda47511a10e8bc52b71666770d4235800e99d41e36a38fb33bcc4a3bbedb3f3979583b9dc923361c518db6cef078410491f95ec594aae88b9a332efb28e97672092f457f963df249d3b42bfa67d4fbb249eb2c5b0b8ee7eaa20014bf1118f106a87bdd7fb11cb4d7695567f3a685799950fcc9a77e78e6d5267855820a0035c64739a53ea6656e1f96ee9a6029eb47e80faaaf5398437d3e07ac8111aec35ecf16ccccb591f858af6ebc113aa7e292eeef0538c5a5e5257eef83295c859368e0572d054c5a046a7c408c3693e05a7cee00bda13d3c8eecef7b40cc803e11b818f2b038e095e3b8e49f698614775402a25cf877b8313af36c372183dfa6e6db21e37f1c85a96a27c99728fe8627c00db8a00a4238ca53cbb729572598012e3e773fea53cc5526cee3163e2b1a4be8c3567162bb1a1d9c34f7ae7dcbd0d3f3b64371199dccc35a431a9a9120720d313e5dfc6e3dd5c01b568291720c4f5b53da80efbd106ab379011a8b910ed8d054a0ccab41a0ba679330888c36e5808bda580268ad11c420c4c76700389ff271bd331ea86230f9ca01cd336c3660808dd03980520b8c706b6783d86a29172e531262c86d1e639d671bfe161c62cb83232c9b543fe42ec9b70ea3f66c335247f44358b664bf6b98497b124638eea4200303338b40f62aa10e3429bf5dfdb10ccb01922d17629a68639d85482cd3f7f3363b7168e8341df98d3684695d0b2b9011e0e99324890034fe9c6f34d0b4c0877ef2b3c0dea4087e436aa31ebc6cb4c56c4bc0a275de2ec6f3938e163a42a68016116c6c81d96654947ba5aaea9f9e8a451b6addc0bf307b0cd72242cb5829c285759d086cef6ed8d5f5da076bdda0e18c9f0f5170470086fdc6308f2afc5e192cb795651ec673c11b75330cc7554a05c4eae0546600788b52162f866057a950c005f42aec242805f0b11dd1949ba96c1b1aa4d65cc00ca7bfe48bc1b79a58e980b55b7df794bd3b1bf80276327d3c8ab4a3256c0b92d0d489f576ca89122e235e301f36bdd704ad2455f6ed1832d78eb0eab055952b07389d50f65412fae85a94e042310d10d52b704840f3de603bd8477857d26be7532043e3c3b3e272f283fb85b3ada96bd537b108626ce7757b95cfc0f255aa61e6ece37cb8084bc9e4932df0003ea7bc82f4a7b9d55261b7e6740c912383d5424ab4cbb8e4c2a89ad61583766460eea2b95650c9403f286b0735a4abe7ec9535fad3cc0a7ff557e0e8006f0a5ad2891a2cd42554262797b71f2115d145493a93fccf832d6b98b4573b06e7dd0e39552dd4070bdf91161c83290e91f79c05de155645cac4407d339b69610332963eac4bd36cb47f1c440354302e16b5523a9f02c9700647ca2a38b7290e5088ebbf0779c91f780e0eeb3129c363b73da29e96b7e4a9aec8c6ab885045396b9ca7f8c92d412f9748be09347ec3da355c1c34a616169ad8fd6b949c1ae3587da6d6f1cbd5811118737db1627a264110356c404ddd4c6dad4672ec23571c0d2dd2aeb87fffcf5125bd997dc7072c78717c20935b0e3a6eaa84eba60df9b38f001fca266279812bcce764753f4c6bcb9118ec0924cf0bc282862d5b00261039b426e7721daada9a3cfed5bebb7f4417f30fdb433cf2c2f19bbecb0be7f85c66a642392f0ebb5e66e424730bef47be2a29e00268e80d36e88a5f4933a3931ac6877048d21203baef5e29d38148263c8b9168c97f2401ba09a7ae1e3a0ecd9c68d0d51606e2a71a86d0cb7178f7957840c6a4ab6db989c3ac7fb819c272f168c307f8cc78e66cef6b66fc58457d59a7b4824d85ac9b8556955603e5120d3c808122940378e85faae31493298c90eb6b70009e9bc43c5655b85e89429248b251b3d135a7527dd3b47fe927e19c41aaac9134c219357b277d00c465ae6b4b2232ead87aa18ab8acfa82f737b6ed959c8798d99bd10b1ccbf6b3d79278d70bdc72a06ab01d022a8d0f9520cad330d84508ae75b6c1ee4dd3429e41e1297c219aaa6cf26f4b6853643ccc6d4b34fd7bca0be8df3f4fa39680f7ae2a88da89eeb803dc4b237d8cb0de7e6c7d58b6ebbb915a6d7bf7b2c9f49c9b7832e0256758fa17bbcce2ec9eac7d88feafb4633a6af59b9a8881b8f7c85b43f7e3dd6fa25385da6a3bfaeb8afc5ae0e429a2f68d663fd7f5e02a239f0efcb4221cd3fbecdcf8ad1f0ae3984de8390fdaff8d42db0495c8a6fcf9a354072df1ffb2882e6926fb02f1d046684011a8e957a45fedcaae1f22f171f829b24cec5cf344f948691ece49cb352c111836b1799676802a4601ca8253d6eda16142befa25674b0ce1e6d441ede6875c6bc00783218b3defe754e899db2f44478407ce5d2bf7a4443745907ba3cfe1568326fe5419fb50a3ba57dc116e96a54ef763a1af163233b009f6b727192c94b9d519af5be5f869b4aa0ec83fff1c5b4ce9f6a647bd1a8a7bd7dc9b7e1274f74e98fde72d2db71b666cd23963668a54896b098ed8b4e64fc09f69d7328b439069188ed852f34f375e761e1453721bf7cc98cb687be17a9c3a9316e1af876d7101dc93c3ecfd748a43a39aa5c07e781cca59b7423df8a43780fa8dd214d8dd769220fef06a0efa36f05d7baa2e88e0841b10a5c7fbf5024cd642345e3ad77265a3ac569684940441a1603eb0d8d244bf26da341447b06d7b21ea8fd84886f59954e06d54eba638777c507235e68f1f9854c8ac5e9659b1dab5d4cb56eb6372faf44d4ed7adaa5a70819dd8a471319e9700edf28b95478c26d7d3a8bd211568466807a637658e83423b8fe29d196458d993668e195750588be5563c83d42047f3e60aa6ceaaa02370f104693256e26275f86ac84bf55055eeb1c80a2673ace2c352b2242ff59b386a7f66899726e5fed155ccfcc86c86761715a446346dee59395de48373b2debe7895fc565dac73af52330efefa466bc5ac9181a1963fb57cbfa83df3e3ee54fb51330f1e648afda7ec80b41d04a72c6d70945e66e63eb164c23b5f2d044eb81cc6d54bcf90f47d0a0a63dc1523d77898679b5db8955670496d9dd6a056eebce0157e8e62e81c9f25554e16d4625cb3d779f254c14dec656c11e6a2897dc48dacc999d2efea178f2ee867487b3558b5bc5b16cca3c0121076dd81d22183b8e21b3599f434c2f9e3560a52261a0ccdb139f253c6f4439512d7eabfb28270ca721bbe9ccf6034fcca31c7f2719d90bf2ba0b2dc3195bcc578ecb6246b8b3c9005241cedbb48237dea567e263bd5307524d8293fc4495a4d69cb5fda91117f7f51a3281ffad32eed14f61d2e1516bf581d91d7d7579661aca5c48108f4053852c11d01fda7fdd3a065f861858e48b2e321cd35c4e260d1913ede000ae26a59a3284988eedcaf1570daed71be8130b3438b6882cb4ab22ba353e0af8b9667c996618d1a19cda284b4754f143111c5e16282673779c424d5253b5c40e0f2536698da3a9cfe4111475b7db090b4c4e6cf41b354e929dc5cd0927646b767886898da7d601114f546f868f9ce0f10000000000000000000000000000000000030913181e25303a"
}
diff --git a/packages/web3-zond-accounts/test/fixtures/json/eip1559txs.json b/packages/web3-qrl-accounts/test/fixtures/json/eip1559txs.json
similarity index 99%
rename from packages/web3-zond-accounts/test/fixtures/json/eip1559txs.json
rename to packages/web3-qrl-accounts/test/fixtures/json/eip1559txs.json
index 063cb36a..bd7c9fd0 100644
--- a/packages/web3-zond-accounts/test/fixtures/json/eip1559txs.json
+++ b/packages/web3-qrl-accounts/test/fixtures/json/eip1559txs.json
@@ -1,7 +1,7 @@
[
{
"seed": "4c3f1b0ce35b22ae3d02d9b6f8584e993638d538990606cf31200159eb23c99ff836a13b55cf93867488d21a1cf009ad",
- "sendersAddress": "Z201bec2fd7f2384f1f1312d18f0f9d218de77336",
+ "sendersAddress": "Q201bec2fd7f2384f1f1312d18f0f9d218de77336",
"type": "message",
"raw": [
"0x01",
@@ -30,14 +30,14 @@
"maxPriorityFeePerGas": "0x01",
"maxFeePerGas": "0x01",
"nonce": "0x",
- "to": "Zcccccccccccccccccccccccccccccccccccccccc",
+ "to": "Qcccccccccccccccccccccccccccccccccccccccc",
"value": "0x0186a0",
"publicKey": "0x94ef47878aea6c24a6aac5d43465cc361bbaf8bc8c9eba9abccda48977767f5604b8150337fd5ca7cf90bf8f63fca0e6fc0728a3071e5ccae2766a15679d2a57ddc95f6f51ff8bb831aaa937271eb80d599566ae1e73173aad708f68330bbd9c6555c0f9366763011f7aa4edebab101f99a4007c8ae1123a13e7c7cc19e2e7699b549bb770d3753bea49ec9e31104bae89fc38abe75e1f140267a2f492409d25f188aec4783afd2c8140f6a8c6850077536cb2760c65779d165b6f03f9b149210d8160f58803d31171be717baf887aa612c02f806bd9e3332ddc21c0e6e912d053d4d49c13d2de8a75266e6157610175d4897e58886aae12bf7b949e20351d80a4a994e7c70c9ba76a2472818343609061ffa393f6f270dc8b4aa806d5616e55e936f26cccd3e1006bf185196ae5457d224fca6555068bfb64a228e8b44b4221e85d2f1137224992f41a78301ff768527e953e50424a45d21e8877a16a915629f45aba1aca08769c561260d4d58bcf36af98c26e6b81365b91720f3155c1f9383d8c7ab295aabe6c9799f625d29da42bd4002fbd337ceaf991573678f6384da18541c4e3a3c9472620c19129bb41e2b5e71884b98a8ac319a0ec2be11948f4c02b0b824a2347e00945ec89f45f431dfb3605d8228ce69136867570bd0149f4fe2b53f19d1458e7d6f9688af7c5ec3021fbe61cb331a5a44c9f5e9a4a1192d5eeddf98f47e1c8379bf000ae6886cc3eb5442fa8586652550876a4ef31dd941eac082e9fb1ff26db706159ec7be0a5051b408fc955c55335db1f46c6e87113aabb03960f2f4fc986e4e583021b6b69e7c68b0d1093429630cf7f4a7e895ad45a41363c53d0ddce0804a8858092bc7a069852fff02773e0abd6c7cc7d3d34c0bebfb34e1c5e95ddb184c4a0fc77ed09fca96dc472ba0391214c489890ea410085d4c6ecc69f3facf0b1587372752a421641597563fedc9fc64452d7a7a0db9560ec1c8564a3180a5e623b65e1dd494f967556bde56f9bf58cf5e07a050258e4a90cc2700831a4113391877c65ebaadea8710e23ca9f7afb8c5bd90edf38211b32874b65bef5455159c1a1d17ac3da17819f8adcb254a62d7f4c362cc470f75fddaf6f6624f3a56b0187c4e21295534a832a0f2720c411d0685751fff095078d18bc854856f7e1abe14eb76e9e45fd1eca282804784d9c27fd15ab00bb6dbfd864c401f759d0f2da8ad8640b81066038b72c6cf26605f8388cdd67aeca21dda79d6dd01bc3d3ff5ee29f5e016ea681ba581940d0130685d42e9635c6ca27e1eb9fbf08f44879f4f479eefbde7b65476fbe379f771b0f116a2e6e5f65416b72f2c49452c40b2f108ab86ac7dbb8e252ed32946e5be280b512734c96db9511b21eeec3d0caeac51f8ca315ad7dd62efd1113e03932856d5eef73035a0ae24fef22a2c8aa1db28bc87702c34b2d2d722ddf0ad9d2eb4a6c16b85a7e22c49d115c676afeef8f66ec95ec805e4c1423df5dc2eeece55f107005e15b3ded7c5ff7b7d6fd8530049ede7b776bee594fc18e29a4ae177419bfcb2a0185f51ab35c389baf9b37742192e1c36c2ba7d5c46f683dfa8ca8103a824033c68d844d0ed55e560b96b8421162f57e2daaef5853bfe476903fcb42196e78ae2afe3d5da230de9628e2d268dfc50290b2a8ddae0ade58e2919e0f9be4b538220b885e20b28741cce7c6072aa27cf076197d8e046072045f4a4e20058e7ff428419ce7629b7f76dc0568d99586fc4095107b02228d4f2e9978abe68ef302747a67805d0158b88e94bdb73f1c6e1ca8918b311b0a5d101130e142d2085778d1546532c842f2673cb7a3774eb6d23fa901883aaa682aa7ed0195c3f899f6b485e09715a3791ac9102c177b37465344523fef3e9479ce39d358db0106b5b4cfe26415c5ebc2d00ab36af1171ca33f2c95ff16b63f91e10de4405aec7d6368afc20643616bf30505507f7af84a6f70a36c9f6644bf22bb141f88f15c01f99fbb0344b6db03c042cb8e80e6e38717c3e749cae3782b3d3529cbcfd68a04ade376a7f334ea471d21ebbc62035a57cced3f74a1612edb492a13aacc93d51348249451616f01bbd0e89f46fa53acc5490c7164ef8b2ac0a236b9da37f696db7d2e2dd51243966d2deeae418f2edc6f38fabe746ec5bc832db5af6856266c140e78ce15c2699778910c8e002290b52a68bd14c3be294154c7f448be0160d4adc856b307aa4d3a3ec82af0d25d951d25dc2027ed7861c9ef7d0228179a9fd38ba45f8721d6ce3dd42dce8f58f917d3555c04151cae3e0fc761291c632c0f13e618958cda614f7650efd18e1ffed06bc171530b5bde901becb2b021db47e541679bbb55f7337e1d205e1031eb2ef9a332e84bcbd9b5e27682159c86d3031ab01d741fedf1b05a4e1bc82da108855c8d833abb99821c8be81df68818e2aa094a3cde6f3d5e1bd8b2e86daba12aa2b572ffc81c65c3e498432edb00f1fe6fb04ec92a96b2c206a36a5623f8710c06cc20fdc661230f8b441ce4ebfa45a2890a4a43f2dbd498a9ef9d1f4e748ec81bca42a27aa8acd72406ca303050a32aa644f60e1c58a036ca2b0f0ca69092f6d08a40ee97ff700931b87039bdff71043a75b1578b33d98b391ae0dccbd46f5428cc80016412cbce9532b70454ab801c77072249412a2d49e8f608ab7480b1a9416714c825bd07a96641b865daeda71a5bf6b9e28bbf4a9042e79a6d6dd0c1d99dd3cabf4d580b6bc22999acbfb6f25a33e622104c13aa173e2191eb70dd0db82ae47d1ddbbdb24d3d4403bcaa64bcde88c86ce5bd535694b24f117e729abb3582e2166658f969a206b44aa37837c6efd7f094443c65f43b95826aa97ab1d3dc9aa3e56b31b1d2fe5e2eb44d2b5ccb1039118ac3917148fe4dffdc81daac74007ce71dd5e779be416de62b271bc4379e0a24c6c42e8e8c0213dee8588752d54b12b4da7be2e7a75c6b3e8ad9a92a4768d0611bc91ddd4aebda0cfb84226280ce6f621b5a83016b51bc9de2fe0413ce43ff967cf3680c9e1c359316ab207d93382df330b6a1fff25f01506952465fbdc1d36aeb0124b593b29619b712867c63c7e872d65d18b8834c505ff23688bda7b9d4e4969d6b69aae0b5ff14a152191c5f94a061aa3a7db71bc4ad9ce217a931a92b35e6faec8e00800f96b0efe6d42d1edf25573f12da245539f8fba9ab270cf738d585a144d9098e5d529f3e8662903de413ca9174b9bc6da0a70be23cce8b1dd7b0a1db109605f20d3ba5d72d4361e63cdbfe58ba1e19c0cbb0ab65090c8dc30265ac76a191707804756107d14e1ec41b6b8765286f99960fb601394bb1db089bd5ea19f3b98666e003affb6e9477a42f1c836efdb2355ce392849a777a6c4ac9e1eeb7bad57faa0f25eec2adf2d2d3b20e5ad1ce82ffdd9264e90a37a269f24841742479ccfadb38664c503191da287b16ca59d06b0ebb09e658cc0090665d8ca90b917c4a089b9474b9d76ba7d9deeb96f9a82ed10365d756da05f23bc9f81222b09e5d4b490977052f0bdd3afacd28b2f6730b3a6784eff8653fc8dcca5d17f7c34b05a30cf939ca10c52b714a5ab51b77b523917963a9f3374c7004b81588e06103615fb793dc267e8e3677d8fed75cb371",
"signature": "0xec8a3ad1630b82a6a15686e79666d7a24a7f8c692acbba3f62456c49d7d1c3e473e94f8b4cb9360e995122c48841d17eef79bc6e8eeeb40d643941c07aa850dbbf1342b9549c48271cfbfd48cb67568e6220ebdd6ab43624c11a5176ac75ebce1ce9481cb368fc7b1066640482bf4e33f336bf386f238973f10b5b8a08a1ce5babb0f5060236dafcdbfb80cb91b4e34fd338f1c6751e47e47e8ad94f5daa4825cadab08c0cac808666697cb01deabc718dcd84703cb4045552c1d2cab176b19dc377810db8f21e331030860a831e385b199f66787fe589052c1a9353dc3350ad65e86f16ba79e5694da51c9fa4c882c9411e2a95f6011fb7dbd86bbb9d60f9d81ba38954d53f4cd81fe24909de070fcefed7edd55cb7e41249d605674003bf9f73a9d228b0c3881df78987720cbfc6aac68f64ab7df7069a4b2076088ff4d8f7806f99e269d32707a437a79775af93ec37a995ec4e25722b217b12d9c7bb49a2ff957e02bd94b4ccd8d3f9b855825d6f08354f95233c55c855a7e7b53fbada7380dea39cecca6695629c6949c4fe95e7e3bc29714bdd638de966adf2015fe9e6e5bb80b457d17ad9b8a7395bcbdb5b06e809017646a9e911521d22b9b42775e5bb5f2035f5df0224db461ce4f4896331e2568e8c960a076f3679682fb2b10b3ed50ede3f0bcf1cc8b1c50c802690d97ec15a130a36a41209ba9a5332476812427552ba99a52192e92b87a66abcaf6d8e456156f3f87d2d3a0b4498b30d155a8e2f4d50180988c74fb3dce018797c584fc8f55f89c723255ff4dc277cf3fc6afe45b3a372eb8948248aee7270f9d081ed231d5c4559ce24bcfc0efde8ea708adc8eea99628a718575b6369bfcdddbe02de626bb6fc8bb5ed4e643c0579fcfc78722b690631827cbc229fdf09c3f3af6ee72908756e5bb01b1ee1b31e96f16d5531ae06fbf7ed703e4e852af82d3164b23b42a8377c60a7ef66cc9f2e8733ab27068665c71745276dfd0e4e9e4a71f108806f2b39e790c7a19099bb4065961362fcb4ffbaaf9af64a527366542f19f4d8dd45c0da879123d9b23d73ccad5979398364f75a629c35aba791a708630175470ff5f3bcf340502c3b1745bec52dcaa2d063be76a598838fd0bb49ce80b084aec62030c7f53b02ac8c7b8dc07a7548f4bb9732d83c37fc0c70f7d7f9002a5a522ef4f5f8f98ae43c3b5da4db846964b40ae6034651c05e38e9836a9d72ec4a75cef2a5dca38401203cd7fe60fb1138ceb9b09bbb36483f3f1366953b484889126f74ca37389cc0639c368f8228de1fc70e8adbf1de146fcfc78e9989cff60efa9cd32d7e05be5c57eda2006e32c7019dcf3df8bd9b0935c34a2030e46d498fb89d098ed9639bb84f39ef0deb2e2c3a333150bff2a0abc0065cd1d717a18e2acee9da902ed7fd1b370f0617643638aaac8267fbefd3bf3cc3835a3ce4d9bddde7c01d28ba106e75a2c084995280ba95e1ba2a483392fbfa2c5094ed93398b7b0d1df00449f91baea21a0fd9010f738838480930dbdfe41ef70acd8d04e9dde5e6ebdd440646b8af1f76fee5cfb1a27fc0250dd553623b03aceac99a3b65e336888c975ad552fc5d9adb49047dc793ee20f1224da07e9f3a85cf43d1205c7b974810e9c0cb4cbc7ca930d9e2aa9b162156e3db57c80d1933931240a407fd710b8267c7f72f202b766318fb0679aa4e863aaac111b8d556963e60a3deb595599e85cbbfb9ad7f483d052d311cac389f1a67fa982f8c08cf94f547ace0d0123275e32bf5e8d304d1386d1d46c73891b88c4ea09f240e939e1f8d9b8aa64d0e18da9a235843463984d5c37fcc6c633b2f887c652d7b2589de2934ca3b3edbc706ef4c14688dfc762eacb27dfa7feb4f6d03c41c3f6eb7aadcec862d0bd03d61e087e336893b81d8d57e206faf36d487378bb866bb5fdf7e5659e69d93351c7c97c162d698ca5de5f7d287853b6672d14e5f49793cee9367a5a910db12c4c098e08e7e4233e4598e36c4907946753925e79d61db0a9a361dc1195b726294c603fd9b7798ca98f34655949e24dd8ad33d2bc512e38f7c26f248a7959548f844fe7c3ecc367381c529e77efe43ba23b59e6cda14ce27ece81e2d1e2fe2c55f2f29dadaee24dc2b2e638e1cad38fae7819e63e5275502f0f0a3825465d65cc017e873235ef4a871d8a0235f833adb6346d79c59f29c5e939e8cc2050eb9c64498654ef1e6ca975eeea8658eae664c26c5e9d667a29b7c36098c20701e2fe4ca0b922d6664e92c8ff7be49a75414c980d3545f915153006d60e092a2dd2b5e023508a256479d8f596ea57ae7e3548d6771a1b8298aa46df9ca7f49243281772aecbc79702c701dc85eb3b0813e0007551c5612f8351eaaec691079fa21363b8c07c8ae7a6301f65984936eef6f628b1157404184a6eadc87cec3bd34c498c7d9eb4355b79285bfd54a31b9e8f2cae2bd033cf8c4c4d4fd7cd3bd47c6bcd990152aec280a2a5617adfe2c67e6cfad40bd09d21675c9bb00e3bffa1efc2cbf9dcccedc5e0e7693ad6e04e5ab2330b8a432d79d6dac75badcce73129ca2cbe07074f4290622b165231b9fe2fa0ca028bf964b1e4dbd66e62d97b475c167145b302e7bd11c93884cdb76b2fb2ba0069492c9973aab5ce80a6152d3c14b9ba4e07af5201ebfeeaff572c2abd4a2158e31e8ef22132fa57f908318fb7ad52c7689f1a88e5c8cefdd460cd8fc2709dba564a3089a77513ac2e0500a6800d4f3b2245a230d90ed10218f08edacac2df43a1b62e8bcf343378dc1b14d6dc70f2e0ee848c263ddf52c52d14126c27379c1215b9b7555785767529d12e2e737eb346b3eef46150f7d7075e0ad16933b24c6ed6b12812b2878917062524bb0ba9a04797bcee675df0bb8062ffca21a6ed58c0fabd14b30f408714edd978199514ef267328ea96fc599e106ae3957b23f80d21bdf763c0e994c9d26ae2a3a98a7405098a151e51415f2d4d1ed87bf43fe7b6b6a632418fa1e996c237fca547773d847bf6f63800331c1bd77d9a0adb4f930dc1917e1f9f9163fbb086a91a5d7493899bed1658f6476808c393cde0d024d476840c28f8a40c5b8d179c2afb60c9f540e68c0cb6d9d0c383e6676fc0628242ac53c1be40a9bd5fd85366ca7af3e8ec5f087e0628a90378acaf16d0aee85e96e18447db68451336bfed0729ca71ff90e089740b87fabe5f702d3e37ac43fab6074d540c455f69251b0751d918cb4c40256fecbdff7c281b8e567762d2655c9e9f57ed5c59ab81744ef07598e70403a2561703f7274158540c0af52e4428213114803bba9e180dd7bb0ae2d20aac927af0d209ae331449261d5f72374ed37977daaed33860cf7bef036377274f86a8394b721773a6c9aa3ab895dd13188d75137cd25640ccf34af8d4a0e022a0aa992c96bf4642ee23def8178bd5f7376c7ae50fda9f9f13a86430d90af27fa0899c369112152cfed5e78b843f7e0864fd7e7edcc50ed36c5d9195109148ea9771a61651a187c059946a457fea2fa0dec08596a8c6dd85f4695fecc593c96c9480552eee4e4b3b7855b7d8b4ce079e783c024c224f2c15703a7cc77ef22d796a559b740184f963d234250f279c3bd77be36e5d1783d06c6ce45a29ac6e174ed4c761270938383cbba38df3e68f637f49b3a7b955600303fe8f2d3e4d3e7409af56d55f1229672a5b643fded07918cf3a7c3071f1f152627cdd366581328451c0aa7c202fc1106efb38d179c8bcde0f0716af45471bd09ad73d5902691605b3219ac223b7596714a81746032e30d0152a16f48516220937d3b6d1981553cdb9e8efcc70351da541d65505862e929140188e6058706f0950fb32f015935fcc67f859145a215fea9ca345a729bee8d96ae156f35283473306665ced9f8cb5cb926c6751f5f02f5d0f6ffcbd2de5dc0ebaf85d5c46ad9bca54305aa5e7e5848f2208889a5e0a187a0677b0bebf7a3326324a90de601c1ec0a99bfc75a397d56c0f535448450a798cdd45b931d1151605de65a2ae751cd34924c66891f84a200c56a4c0f9a3ff9a8766198dc0be298868770bbee13ec6d46dc6d6fecf63196848a5e3bb2f6991dc1be3d6fa85245710e8efb17b3ffe5848ff90a874fc69ddbc6f18c4c037a019216aafd8e35512d3d01d262baf840cf940c8f41c78be04299383b89461d26dda3a6862027edeafd9f50fa6fe0dfd3b8fa5f535b985cf6a3d0bc0f44b2f77e66ef583ab6ffb97170b30331e01e183a77ce65bcd6fc3cc7961f475a4f8e425a0068e9f9393abe6d3f178b3dd2d63353089e3b1315459619d18d9ebecc203b502207b56f570e539cab8e8755316d050f9890d34c3e60e1ee618e07b62fae542d687d74b20f7eaa395831276b279f9487effa05514670d08beb7365fd3fd1b090b6838d4650618e2a450fe6cb54ac34b1824b4314ec34b9a961eb6f264086f35b23602b077bbe5a5bb20cfd74583ef27323f2be31f8967d096e70e68dc8a6331cd07c4566f3871d7003a3738892e1831c10803efaf4e70eb534062369731109795421bd017ac1daf088e051cdc0255cc6fbca99c84ecabe92ad150d759555cb92aed8d1e7963384c0b6fc869518545e007626f94577ab0807a974040d3009c7b0ccdbf9f6c88d371af0ec7226be236bdf5db306b65456dbc599a9b5ecaeae707f0f31717e866b1e1f0ffbc225d6d9352ddf9454677fd38b833e111fa3f14cf9a795a5904d84ab8ff4c3c4b9aeecf3a46ab744a0462e1f8d1f994d230486c07211a13b632e7ea08883076850863bd89114fd1f883a036edd06a23e3772c02863c1dae722f522d42bcab9a3613eae46a2bb4bb93d72937d4702fb072e65566875f26192a2578b5b917d367f271b02e411342a5a9d68ecd72aaef0ff685e24919a3c1b6d00be9f29d46633dfaa58cd2968989f0162ec2d64458a3c76b0bb6d989eca1bdc30c37e825e0329108046eb8c18e66ee83aaaf12d0c13fef9583df3beb1d15d3e29b4a8720c984420b1e05d1ad5adfb07b720fa9c69c847bc038be8a8f1cbbd5a853a8259a72e3f06d0d195e77af858e7a7e8c594496b009a6899bf2161230072f58483e9a88fc10db1261716049114e3a00baa184aba4400d6ea34c709303579ca7bc6f83275609e27d2cd98babe1e37cf11bedd5e5df6be2e585898d9058cf22ee3bb44673b783d1e72849342935a4e6eca9759044e1f87d7be7dc1fea50cfed8cf6232f7a47132ee8fdc39b85e99f7da8d65a2ec82598a19ec4f598af3937a0fed0a6ba53cbe6bbd7538dd06868500e31262a9cee3cab333df177c30c698941c695bbf1c506604e1cabb8c9f1bf9df09f0a0cb7432a8c029f37b6e025918236ee495c7f6c32d52716e87c977451713125f58425b00657ddbdd94d3bf98cfb5ef0c469160745dc88c8d5296de9be6488a49ad7b2afaf76dc7bb7f7ca4ca1a1433ca77405ce2e2e6c934beb868f02a505d1750720801ad76d91d59810fce76760d4b747204d891673aa0d5c08df0a042cec89d0c00666e3cfe77650d138d2cf35cd3af012539248c98d1c0842952c209781cadafdec3b3c394ec8ff1a777c11a3727175a279a536da1489397d4af5f26d8184234797933da301454553f31b78ae001922324f23034cdd62954482f4a723fc82b614eeceff97fa00dab2a9e9c354c5a9369c1537a4747872e59e8805f0b738885c0ead943ab6fabcacba150db1ad68e767b8a62ef94c9909f872e7b3cac8b4ad970e14284f3e5dbbde9e541d943c1f421bcca18e9463d3766582deab592f7e003e82ef10f407f58b241a98c0c824251af48dbb874aceaf4f44d88a86f15c71eaaa8b8ea0e6821ab968be91da29802c9909aa554d781c072ad3109e6e8f124d77d2b12adb685c663b8725a82581a0be33a4ee1abbbf72b30d6ca950ba51ed4b3e813be7891dd5d775649124b0e3f76471461c451ecd643ceeb3d2162cbdd70be1676fbbb16f874bad11ca57b330f4d508b9511fac45bf16a4ea6d7bafd6cca9388746ff46ff3d73133f3102e57cbfed7929a8f75cbb91151c4ab6521727213ab383fadeb3065c28adbdbbc4d926f45baed69d212004b34c03cebc6bdda3b92490047218997447498be655e25b5786ab7a18c35d2f761e0e3a1fddb73aaa32e2985258747aa7af7bb4e8454df1a0cc864f9e36a62e9a9fe3ebe98b3109a4d201c3c98bb42166423f84f0cdfb8af74bc77b81e47d5b5b5c12c0bfa307fd9ab0c13bd3b38d25e0425441fb22bdc4a75d8eb4b72c836d2b5e9264ae9f20d9708ffedfdb81a2379510432657ff855a147610d4f08e06ce30d928e094c07d907f14ada32fdc4f3cb2bc7f0c0d24748eb0d015455972808287b8c9dae4e70c1a2e61678aafe2f5274d5867376a6fbabfef00133839a5e9f42b3e46636f7da6b01360b30000000000000000000000000000000000000007131c20262d3538",
"chainId": "0x01",
"accessList": [
{
- "address": "Z0000000000000000000000000000000000000101",
+ "address": "Q0000000000000000000000000000000000000101",
"storageKeys": [
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x00000000000000000000000000000000000000000000000000000000000060a7"
diff --git a/packages/web3-zond-accounts/test/fixtures/system_test_utils.ts b/packages/web3-qrl-accounts/test/fixtures/system_test_utils.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/fixtures/system_test_utils.ts
rename to packages/web3-qrl-accounts/test/fixtures/system_test_utils.ts
diff --git a/packages/web3-zond-accounts/test/integration/account.test.ts b/packages/web3-qrl-accounts/test/integration/account.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/integration/account.test.ts
rename to packages/web3-qrl-accounts/test/integration/account.test.ts
diff --git a/packages/web3-zond-accounts/test/integration/jest.config.js b/packages/web3-qrl-accounts/test/integration/jest.config.js
similarity index 100%
rename from packages/web3-zond-accounts/test/integration/jest.config.js
rename to packages/web3-qrl-accounts/test/integration/jest.config.js
diff --git a/packages/web3-zond-accounts/test/integration/setup.js b/packages/web3-qrl-accounts/test/integration/setup.js
similarity index 100%
rename from packages/web3-zond-accounts/test/integration/setup.js
rename to packages/web3-qrl-accounts/test/integration/setup.js
diff --git a/packages/web3-zond-accounts/test/integration/wallet.test.ts b/packages/web3-qrl-accounts/test/integration/wallet.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/integration/wallet.test.ts
rename to packages/web3-qrl-accounts/test/integration/wallet.test.ts
diff --git a/packages/web3-zond-accounts/test/tsconfig.json b/packages/web3-qrl-accounts/test/tsconfig.json
similarity index 100%
rename from packages/web3-zond-accounts/test/tsconfig.json
rename to packages/web3-qrl-accounts/test/tsconfig.json
diff --git a/packages/web3-zond-accounts/test/unit/__snapshots__/wallet.test.ts.snap b/packages/web3-qrl-accounts/test/unit/__snapshots__/wallet.test.ts.snap
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/__snapshots__/wallet.test.ts.snap
rename to packages/web3-qrl-accounts/test/unit/__snapshots__/wallet.test.ts.snap
diff --git a/packages/web3-zond-accounts/test/unit/account.test.ts b/packages/web3-qrl-accounts/test/unit/account.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/account.test.ts
rename to packages/web3-qrl-accounts/test/unit/account.test.ts
diff --git a/packages/web3-zond-accounts/test/unit/common/chains.test.ts b/packages/web3-qrl-accounts/test/unit/common/chains.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/common/chains.test.ts
rename to packages/web3-qrl-accounts/test/unit/common/chains.test.ts
diff --git a/packages/web3-zond-accounts/test/unit/common/customChains.test.ts b/packages/web3-qrl-accounts/test/unit/common/customChains.test.ts
similarity index 98%
rename from packages/web3-zond-accounts/test/unit/common/customChains.test.ts
rename to packages/web3-qrl-accounts/test/unit/common/customChains.test.ts
index 0fe055e1..8091a97e 100644
--- a/packages/web3-zond-accounts/test/unit/common/customChains.test.ts
+++ b/packages/web3-qrl-accounts/test/unit/common/customChains.test.ts
@@ -80,7 +80,7 @@ describe('[Common]: Custom chains', () => {
common = Common.custom(CustomChain.PolygonMumbai);
expect(common.hardfork()).toEqual(common.DEFAULT_HARDFORK);
- common = Common.custom(CustomChain.CustomZond, { hardfork: Hardfork.Byzantium });
+ common = Common.custom(CustomChain.CustomQRL, { hardfork: Hardfork.Byzantium });
expect(common.hardfork()).toEqual(Hardfork.Byzantium);
expect(() => {
diff --git a/packages/web3-zond-accounts/test/unit/common/hardforks.test.ts b/packages/web3-qrl-accounts/test/unit/common/hardforks.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/common/hardforks.test.ts
rename to packages/web3-qrl-accounts/test/unit/common/hardforks.test.ts
diff --git a/packages/web3-zond-accounts/test/unit/common/mergePOS.test.ts b/packages/web3-qrl-accounts/test/unit/common/mergePOS.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/common/mergePOS.test.ts
rename to packages/web3-qrl-accounts/test/unit/common/mergePOS.test.ts
diff --git a/packages/web3-zond-accounts/test/unit/common/params.test.ts b/packages/web3-qrl-accounts/test/unit/common/params.test.ts
similarity index 88%
rename from packages/web3-zond-accounts/test/unit/common/params.test.ts
rename to packages/web3-qrl-accounts/test/unit/common/params.test.ts
index e20d218a..8d49d94d 100644
--- a/packages/web3-zond-accounts/test/unit/common/params.test.ts
+++ b/packages/web3-qrl-accounts/test/unit/common/params.test.ts
@@ -18,7 +18,7 @@ import { Chain, Common, Hardfork } from '../../../src/common';
describe('[Common]: Parameter access for param(), paramByHardfork()', () => {
it('Basic usage', () => {
- const c = new Common({ chain: Chain.Mainnet, eips: [] });
+ const c = new Common({ chain: Chain.Mainnet, qips: [] });
expect(c.paramByHardfork('gasPrices', 'ecAdd', 'shanghai')).toEqual(BigInt(150));
// NOTE(rgeraldes24): there are no param updates yet
@@ -81,21 +81,21 @@ describe('[Common]: Parameter access for param(), paramByHardfork()', () => {
*/
});
- // NOTE(rgeraldes): unused: no eips available(merged)
- it.skip('EIP param access, paramByEIP()', () => {
+ // NOTE(rgeraldes): unused: no qips available(merged)
+ it.skip('QIP param access, paramByQIP()', () => {
const c = new Common({ chain: Chain.Mainnet });
- expect(c.paramByEIP('gasPrices', 'notexistingvalue', 2537)).toBeUndefined();
+ expect(c.paramByQIP('gasPrices', 'notexistingvalue', 2537)).toBeUndefined();
- const UNSUPPORTED_EIP = 1000000;
+ const UNSUPPORTED_QIP = 1000000;
expect(() => {
- c.paramByEIP('gasPrices', 'Bls12381G1AddGas', UNSUPPORTED_EIP);
+ c.paramByQIP('gasPrices', 'Bls12381G1AddGas', UNSUPPORTED_QIP);
}).toThrow('not supported');
expect(() => {
- c.paramByEIP('notExistingTopic', 'Bls12381G1AddGas', 2537);
+ c.paramByQIP('notExistingTopic', 'Bls12381G1AddGas', 2537);
}).toThrow('not defined');
- expect(c.paramByEIP('gasPrices', 'Bls12381G1AddGas', 2537)).toEqual(BigInt(600));
+ expect(c.paramByQIP('gasPrices', 'Bls12381G1AddGas', 2537)).toEqual(BigInt(600));
});
});
diff --git a/packages/web3-zond-accounts/test/unit/common/eips.test.ts b/packages/web3-qrl-accounts/test/unit/common/qips.test.ts
similarity index 80%
rename from packages/web3-zond-accounts/test/unit/common/eips.test.ts
rename to packages/web3-qrl-accounts/test/unit/common/qips.test.ts
index f299a45d..b1c3f2d8 100644
--- a/packages/web3-zond-accounts/test/unit/common/eips.test.ts
+++ b/packages/web3-qrl-accounts/test/unit/common/qips.test.ts
@@ -18,40 +18,40 @@ along with web3.js. If not, see .
// import { Chain, Common, Hardfork } from '../../../src/common';
// NOTE(rgeraldes24): unused for now
-describe.skip('[Common/EIPs]: Initialization / Chain params', () => {
+describe.skip('[Common/QIPs]: Initialization / Chain params', () => {
it.skip('Correct initialization', () => {
- // let eips = [2537, 2929];
- // const c = new Common({ chain: Chain.Mainnet, eips });
- // expect(c.eips()).toEqual(eips);
- // eips = [2718, 2929, 2930];
+ // let qips = [2537, 2929];
+ // const c = new Common({ chain: Chain.Mainnet, qips });
+ // expect(c.qips()).toEqual(qips);
+ // qips = [2718, 2929, 2930];
// expect(() => {
// // eslint-disable-next-line no-new
- // new Common({ chain: Chain.Mainnet, eips, hardfork: Hardfork.Istanbul });
+ // new Common({ chain: Chain.Mainnet, qips, hardfork: Hardfork.Istanbul });
// }).not.toThrow();
- // eips = [2930];
+ // qips = [2930];
// expect(() => {
// // eslint-disable-next-line no-new
- // new Common({ chain: Chain.Mainnet, eips, hardfork: Hardfork.Istanbul });
+ // new Common({ chain: Chain.Mainnet, qips, hardfork: Hardfork.Istanbul });
// }).toThrow();
});
/*
it('Initialization errors', () => {
- const UNSUPPORTED_EIP = 1000000;
- const eips = [UNSUPPORTED_EIP];
+ const UNSUPPORTED_QIP = 1000000;
+ const qips = [UNSUPPORTED_QIP];
expect(() => {
// eslint-disable-next-line no-new
- new Common({ chain: Chain.Mainnet, eips });
+ new Common({ chain: Chain.Mainnet, qips });
}).toThrow('not supported');
// Manual test since no test triggering EIP config available
// TODO: recheck on addition of new EIP configs
// To run manually change minimumHardfork in EIP2537 config to petersburg
- // eips = [ 2537, ]
+ // qips = [ 2537, ]
// msg = 'should throw on not meeting minimum hardfork requirements'
// f = () => {
- // new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Byzantium, eips })
+ // new Common({ chain: Chain.Mainnet, hardfork: Hardfork.Byzantium, qips })
// }
// st.throws(f, /minimumHardfork/, msg)
@@ -60,7 +60,7 @@ describe.skip('[Common/EIPs]: Initialization / Chain params', () => {
it('isActivatedEIP()', () => {
let c = new Common({ chain: Chain.Goerli, hardfork: Hardfork.Istanbul });
expect(c.isActivatedEIP(2315)).toBe(false);
- c = new Common({ chain: Chain.Goerli, hardfork: Hardfork.Istanbul, eips: [2315] });
+ c = new Common({ chain: Chain.Goerli, hardfork: Hardfork.Istanbul, qips: [2315] });
expect(c.isActivatedEIP(2315)).toBe(true);
c = new Common({ chain: Chain.Goerli, hardfork: Hardfork.Berlin });
expect(c.isActivatedEIP(2929)).toBe(true);
diff --git a/packages/web3-zond-accounts/test/unit/common/timestamp.test.ts b/packages/web3-qrl-accounts/test/unit/common/timestamp.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/common/timestamp.test.ts
rename to packages/web3-qrl-accounts/test/unit/common/timestamp.test.ts
diff --git a/packages/web3-zond-accounts/test/unit/common/utils.test.ts b/packages/web3-qrl-accounts/test/unit/common/utils.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/common/utils.test.ts
rename to packages/web3-qrl-accounts/test/unit/common/utils.test.ts
diff --git a/packages/web3-zond-accounts/test/unit/jest.config.js b/packages/web3-qrl-accounts/test/unit/jest.config.js
similarity index 85%
rename from packages/web3-zond-accounts/test/unit/jest.config.js
rename to packages/web3-qrl-accounts/test/unit/jest.config.js
index d2a9f0c0..35d4c12a 100644
--- a/packages/web3-zond-accounts/test/unit/jest.config.js
+++ b/packages/web3-qrl-accounts/test/unit/jest.config.js
@@ -11,7 +11,7 @@ module.exports = {
[
'json',
{
- file: 'web3-zond-accounts-unit-coverage.json',
+ file: 'web3-qrl-accounts-unit-coverage.json',
},
],
],
diff --git a/packages/web3-zond-accounts/test/unit/tx/base.test.ts b/packages/web3-qrl-accounts/test/unit/tx/base.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/tx/base.test.ts
rename to packages/web3-qrl-accounts/test/unit/tx/base.test.ts
diff --git a/packages/web3-zond-accounts/test/unit/tx/eip1559.test.ts b/packages/web3-qrl-accounts/test/unit/tx/eip1559.test.ts
similarity index 99%
rename from packages/web3-zond-accounts/test/unit/tx/eip1559.test.ts
rename to packages/web3-qrl-accounts/test/unit/tx/eip1559.test.ts
index a1f3281f..a74a0e98 100644
--- a/packages/web3-zond-accounts/test/unit/tx/eip1559.test.ts
+++ b/packages/web3-qrl-accounts/test/unit/tx/eip1559.test.ts
@@ -139,7 +139,7 @@ describe('[FeeMarketEIP1559Transaction]', () => {
expect(Object.isFrozen(signedTxn)).toBe(false);
});
- // NOTE(rgeraldes24): test not valid atm: no eips available
+ // NOTE(rgeraldes24): test not valid atm: no qips available
it.skip('common propagates from the common of tx, not the common in TxOptions', () => {
const data = testdata[0];
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
@@ -148,7 +148,7 @@ describe('[FeeMarketEIP1559Transaction]', () => {
const newCommon = new Common({
chain: Chain.Mainnet,
hardfork: Hardfork.Shanghai,
- eips: [2537],
+ qips: [2537],
});
expect(Object.isFrozen(newCommon)).not.toEqual(common);
Object.defineProperty(txn, 'common', {
@@ -157,7 +157,7 @@ describe('[FeeMarketEIP1559Transaction]', () => {
},
});
const signedTxn = txn.sign(seed);
- expect(signedTxn.common.eips()).toContain(2537);
+ expect(signedTxn.common.qips()).toContain(2537);
});
it('unsigned tx -> getMessageToSign()', () => {
@@ -195,7 +195,7 @@ describe('[FeeMarketEIP1559Transaction]', () => {
maxPriorityFeePerGas: '0x1284d',
maxFeePerGas: '0x1d97c',
gasLimit: '0x8ae0',
- to: 'Z000000000000000000000000000000000000aaaa',
+ to: 'Q000000000000000000000000000000000000aaaa',
value: '0x2933bc9',
data: '0x',
accessList: [],
diff --git a/packages/web3-zond-accounts/test/unit/tx/eip3860.test.ts b/packages/web3-qrl-accounts/test/unit/tx/eip3860.test.ts
similarity index 99%
rename from packages/web3-zond-accounts/test/unit/tx/eip3860.test.ts
rename to packages/web3-qrl-accounts/test/unit/tx/eip3860.test.ts
index 908fc7c4..6b09d396 100644
--- a/packages/web3-zond-accounts/test/unit/tx/eip3860.test.ts
+++ b/packages/web3-qrl-accounts/test/unit/tx/eip3860.test.ts
@@ -21,7 +21,7 @@ import { TransactionFactory } from '../../../src';
const common = new Common({
chain: Chain.Mainnet,
hardfork: Hardfork.Shanghai,
- eips: [],
+ qips: [],
});
const maxInitCodeSize = common.param('vm', 'maxInitCodeSize');
diff --git a/packages/web3-zond-accounts/test/unit/tx/inputValue.test.ts b/packages/web3-qrl-accounts/test/unit/tx/inputValue.test.ts
similarity index 94%
rename from packages/web3-zond-accounts/test/unit/tx/inputValue.test.ts
rename to packages/web3-qrl-accounts/test/unit/tx/inputValue.test.ts
index 477343e9..209f200d 100644
--- a/packages/web3-zond-accounts/test/unit/tx/inputValue.test.ts
+++ b/packages/web3-qrl-accounts/test/unit/tx/inputValue.test.ts
@@ -14,7 +14,7 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-// import { Bytes, ZPrefixedHexString } from '@theqrl/web3-types';
+// import { Bytes, QPrefixedHexString } from '@theqrl/web3-types';
import { hexToBytes } from '@theqrl/web3-utils';
// import { Chain, Common, Hardfork, toUint8Array } from '../../../src/common';
// import { Address } from '../../../src/tx/address';
@@ -26,7 +26,7 @@ import type { FeeMarketEIP1559ValuesArray } from '../../../src';
// NOTE(rgeraldes24): test 'Transaction Input Values' not valid atm
/*
-type AddressLike = Address | Uint8Array | ZPrefixedHexString;
+type AddressLike = Address | Uint8Array | QPrefixedHexString;
// @returns: Array with subtypes of the AddressLike type for a given address
function generateAddressLikeValues(address: string): AddressLike[] {
return [address, toUint8Array(address), new Address(toUint8Array(address))];
@@ -109,7 +109,7 @@ const baseTxValues = {
data: generateBufferLikeValues('0x65'),
gasLimit: generateBigIntLikeValues(100000),
nonce: generateBigIntLikeValues(0),
- to: generateAddressLikeValues('Z0000000000000000000000000000000000000000'),
+ to: generateAddressLikeValues('Q0000000000000000000000000000000000000000'),
publicKey: generateBigIntLikeValues(100),
signature: generateBigIntLikeValues(100),
value: generateBigIntLikeValues(10),
@@ -181,22 +181,22 @@ test('[Invalid Access Lists]', () => {
const invalidAccessLists = [
[[]], // does not have an address and does not have slots
[[[], []]], // the address is an array
- [['Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae']], // there is no storage slot array
+ [['Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae']], // there is no storage slot array
[
[
- 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
+ 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
['0x0000000000000000000000000000000000000000000000000000000000000003', []],
],
], // one of the slots is an array
[
[
- 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
+ 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
['0x0000000000000000000000000000000000000000000000000000000000000003'],
'0xab',
],
], // extra field
[
- 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
+ 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
['0x0000000000000000000000000000000000000000000000000000000000000003'],
], // account/slot needs to be encoded in a deeper array layer
];
diff --git a/packages/web3-zond-accounts/test/unit/tx/transactionFactory.test.ts b/packages/web3-qrl-accounts/test/unit/tx/transactionFactory.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/tx/transactionFactory.test.ts
rename to packages/web3-qrl-accounts/test/unit/tx/transactionFactory.test.ts
diff --git a/packages/web3-zond-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts b/packages/web3-qrl-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts
similarity index 99%
rename from packages/web3-zond-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts
rename to packages/web3-qrl-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts
index 4d0fb3f2..2dd103d2 100644
--- a/packages/web3-zond-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts
+++ b/packages/web3-qrl-accounts/test/unit/tx/typedTxsAndEIP2930.test.ts
@@ -29,7 +29,7 @@ import type { AccessList } from '../../../src';
const seed = hexToBytes(
'0xec3077d539c7b333e596b9e6c0b5f5952d26469ab9a60d1fd54c329ef9959593850a2daf60369e434a7c55939f99e149',
);
-const address = addressToBytes('Z20982e08c8b5b4d007e4f6c4a637033ce90aa352');
+const address = addressToBytes('Q20982e08c8b5b4d007e4f6c4a637033ce90aa352');
const common = new Common({
chain: Chain.Mainnet,
diff --git a/packages/web3-zond-accounts/test/unit/tx/types.ts b/packages/web3-qrl-accounts/test/unit/tx/types.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/tx/types.ts
rename to packages/web3-qrl-accounts/test/unit/tx/types.ts
diff --git a/packages/web3-zond-accounts/test/unit/wallet.test.ts b/packages/web3-qrl-accounts/test/unit/wallet.test.ts
similarity index 100%
rename from packages/web3-zond-accounts/test/unit/wallet.test.ts
rename to packages/web3-qrl-accounts/test/unit/wallet.test.ts
diff --git a/packages/web3-zond-accounts/tsconfig.cjs.json b/packages/web3-qrl-accounts/tsconfig.cjs.json
similarity index 100%
rename from packages/web3-zond-accounts/tsconfig.cjs.json
rename to packages/web3-qrl-accounts/tsconfig.cjs.json
diff --git a/packages/web3-zond-accounts/tsconfig.esm.json b/packages/web3-qrl-accounts/tsconfig.esm.json
similarity index 100%
rename from packages/web3-zond-accounts/tsconfig.esm.json
rename to packages/web3-qrl-accounts/tsconfig.esm.json
diff --git a/packages/web3-zond-accounts/tsconfig.types.json b/packages/web3-qrl-accounts/tsconfig.types.json
similarity index 100%
rename from packages/web3-zond-accounts/tsconfig.types.json
rename to packages/web3-qrl-accounts/tsconfig.types.json
diff --git a/packages/web3-zond-accounts/tsdoc.json b/packages/web3-qrl-accounts/tsdoc.json
similarity index 100%
rename from packages/web3-zond-accounts/tsdoc.json
rename to packages/web3-qrl-accounts/tsdoc.json
diff --git a/packages/web3-zond-contract/.eslintignore b/packages/web3-qrl-contract/.eslintignore
similarity index 100%
rename from packages/web3-zond-contract/.eslintignore
rename to packages/web3-qrl-contract/.eslintignore
diff --git a/packages/web3-zond-contract/.eslintrc.js b/packages/web3-qrl-contract/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-contract/.eslintrc.js
rename to packages/web3-qrl-contract/.eslintrc.js
diff --git a/packages/web3-zond-contract/.gitignore b/packages/web3-qrl-contract/.gitignore
similarity index 100%
rename from packages/web3-zond-contract/.gitignore
rename to packages/web3-qrl-contract/.gitignore
diff --git a/packages/web3-zond-contract/.npmignore b/packages/web3-qrl-contract/.npmignore
similarity index 100%
rename from packages/web3-zond-contract/.npmignore
rename to packages/web3-qrl-contract/.npmignore
diff --git a/packages/web3-zond-contract/.prettierignore b/packages/web3-qrl-contract/.prettierignore
similarity index 100%
rename from packages/web3-zond-contract/.prettierignore
rename to packages/web3-qrl-contract/.prettierignore
diff --git a/packages/web3-zond-contract/.prettierrc.json b/packages/web3-qrl-contract/.prettierrc.json
similarity index 100%
rename from packages/web3-zond-contract/.prettierrc.json
rename to packages/web3-qrl-contract/.prettierrc.json
diff --git a/packages/web3-zond-contract/CHANGELOG.md b/packages/web3-qrl-contract/CHANGELOG.md
similarity index 100%
rename from packages/web3-zond-contract/CHANGELOG.md
rename to packages/web3-qrl-contract/CHANGELOG.md
diff --git a/packages/web3-zond-contract/README.md b/packages/web3-qrl-contract/README.md
similarity index 74%
rename from packages/web3-zond-contract/README.md
rename to packages/web3-qrl-contract/README.md
index 3d0bd993..87775068 100644
--- a/packages/web3-zond-contract/README.md
+++ b/packages/web3-qrl-contract/README.md
@@ -1,29 +1,29 @@
-# @theqrl/web3.js - Zond Contract Package
+# @theqrl/web3.js - QRL Contract Package


-[](https://www.npmjs.com/package/@theqrl/web3-zond-contract)
-[](https://www.npmjs.com/package/@theqrl/web3-zond-contract)
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-contract)
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-contract)
This is a sub-package of [@theqrl/web3.js](https://github.com/theqrl/web3.js).
-`@theqrl/web3-zond-contract` contains the contract package used in `@theqrl/web3-zond`.
+`@theqrl/web3-qrl-contract` contains the contract package used in `@theqrl/web3-qrl`.
## Installation
-You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3-zond-contract) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3-zond-contract)
+You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3-qrl-contract) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3-qrl-contract)
### Using NPM
```bash
-npm install @theqrl/web3-zond-contract
+npm install @theqrl/web3-qrl-contract
```
### Using Yarn
```bash
-yarn add @theqrl/web3-zond-contract
+yarn add @theqrl/web3-qrl-contract
```
## Getting Started
@@ -41,14 +41,14 @@ yarn add @theqrl/web3-zond-contract
You can initialize the typesafe Contract API instance with the following.
```ts
-import { Contract } from '@theqrl/web3-zond-contract';
+import { Contract } from '@theqrl/web3-qrl-contract';
const abi = [...] as const;
const contract = new Contract(abi);
```
-- We prefer that you use `web3.zond.Contract` API in normal usage.
+- We prefer that you use `web3.qrl.Contract` API in normal usage.
- The use of `as const` is necessary to have fully type-safe interface for the contract.
- As the ABIs are not extensive in size, we suggest declaring them `as const` in your TS project.
- This approach is more flexible and seamless compared to other approaches of off-line compiling ABIs to TS interfaces (such as [TypeChain](https://github.com/dethcrypto/TypeChain).
@@ -73,7 +73,7 @@ The Typescript support for fixed length array types are supported up 30 elements
| test:unit | Uses `jest` to run tests under `/test/unit` |
[docs]: https://docs.theqrl.org/
-[repo]: https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-contract
-[npm-image]: https://img.shields.io/github/package-json/v/theqrl/web3.js/main?filename=packages%2Fweb3-zond-contract%2Fpackage.json
-[npm-url]: https://npmjs.org/package/@theqrl/web3-zond-contract
-[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3-zond-contract?label=npm%20downloads
+[repo]: https://github.com/theqrl/web3.js/tree/main/packages/web3-qrl-contract
+[npm-image]: https://img.shields.io/github/package-json/v/theqrl/web3.js/main?filename=packages%2Fweb3-qrl-contract%2Fpackage.json
+[npm-url]: https://npmjs.org/package/@theqrl/web3-qrl-contract
+[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3-qrl-contract?label=npm%20downloads
diff --git a/packages/web3-zond-contract/assets/logo/web3js.ai b/packages/web3-qrl-contract/assets/logo/web3js.ai
similarity index 100%
rename from packages/web3-zond-contract/assets/logo/web3js.ai
rename to packages/web3-qrl-contract/assets/logo/web3js.ai
diff --git a/packages/web3-zond-contract/assets/logo/web3js.jpg b/packages/web3-qrl-contract/assets/logo/web3js.jpg
similarity index 100%
rename from packages/web3-zond-contract/assets/logo/web3js.jpg
rename to packages/web3-qrl-contract/assets/logo/web3js.jpg
diff --git a/packages/web3-zond-contract/assets/logo/web3js.svg b/packages/web3-qrl-contract/assets/logo/web3js.svg
similarity index 100%
rename from packages/web3-zond-contract/assets/logo/web3js.svg
rename to packages/web3-qrl-contract/assets/logo/web3js.svg
diff --git a/packages/web3-zond-contract/cypress b/packages/web3-qrl-contract/cypress
similarity index 100%
rename from packages/web3-zond-contract/cypress
rename to packages/web3-qrl-contract/cypress
diff --git a/packages/web3-zond-contract/cypress.config.js b/packages/web3-qrl-contract/cypress.config.js
similarity index 100%
rename from packages/web3-zond-contract/cypress.config.js
rename to packages/web3-qrl-contract/cypress.config.js
diff --git a/packages/web3-zond-contract/package.json b/packages/web3-qrl-contract/package.json
similarity index 91%
rename from packages/web3-zond-contract/package.json
rename to packages/web3-qrl-contract/package.json
index afbb80e4..5ae57558 100644
--- a/packages/web3-zond-contract/package.json
+++ b/packages/web3-qrl-contract/package.json
@@ -1,10 +1,10 @@
{
- "name": "@theqrl/web3-zond-contract",
+ "name": "@theqrl/web3-qrl-contract",
"version": "0.3.3",
"publishConfig": {
"access": "public"
},
- "description": "Web3 module to interact with Zond smart contracts.",
+ "description": "Web3 module to interact with QRL smart contracts.",
"main": "./lib/commonjs/index.js",
"module": "./lib/esm/index.js",
"exports": {
@@ -14,7 +14,7 @@
"require": "./lib/commonjs/index.js"
}
},
- "repository": "https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-contract",
+ "repository": "https://github.com/theqrl/web3.js/tree/main/packages/web3-qrl-contract",
"author": "The QRL Contributors",
"license": "LGPL-3.0",
"engines": {
@@ -53,13 +53,13 @@
"@theqrl/web3-types": "^0.3.3",
"@theqrl/web3-utils": "^0.3.3",
"@theqrl/web3-validator": "^0.3.3",
- "@theqrl/web3-zond": "^0.3.3",
- "@theqrl/web3-zond-abi": "^0.3.3"
+ "@theqrl/web3-qrl": "^0.3.3",
+ "@theqrl/web3-qrl-abi": "^0.3.3"
},
"devDependencies": {
"@humeris/espresso-shot": "^4.0.0",
"@theqrl/eslint-config-base-web3": "^0.3.0",
- "@theqrl/web3-zond-accounts": "^0.3.3",
+ "@theqrl/web3-qrl-accounts": "^0.3.3",
"@types/jest": "^28.1.6",
"@typescript-eslint/eslint-plugin": "^5.30.7",
"@typescript-eslint/parser": "^5.30.7",
diff --git a/packages/web3-zond-contract/src/constants.ts b/packages/web3-qrl-contract/src/constants.ts
similarity index 100%
rename from packages/web3-zond-contract/src/constants.ts
rename to packages/web3-qrl-contract/src/constants.ts
diff --git a/packages/web3-zond-contract/src/contract.ts b/packages/web3-qrl-contract/src/contract.ts
similarity index 96%
rename from packages/web3-zond-contract/src/contract.ts
rename to packages/web3-qrl-contract/src/contract.ts
index a71fa179..cc8c6eef 100644
--- a/packages/web3-zond-contract/src/contract.ts
+++ b/packages/web3-qrl-contract/src/contract.ts
@@ -36,7 +36,7 @@ import {
NewHeadsSubscription,
sendTransaction,
SendTransactionEvents,
-} from '@theqrl/web3-zond';
+} from '@theqrl/web3-qrl';
import {
encodeEventSignature,
encodeFunctionSignature,
@@ -45,7 +45,7 @@ import {
isAbiEventFragment,
isAbiFunctionFragment,
jsonInterfaceMethodToString,
-} from '@theqrl/web3-zond-abi';
+} from '@theqrl/web3-qrl-abi';
import {
AbiConstructorFragment,
AbiErrorFragment,
@@ -63,7 +63,7 @@ import {
BlockNumberOrTag,
BlockTags,
Bytes,
- ZondExecutionAPI,
+ QRLExecutionAPI,
Filter,
FilterAbis,
HexString,
@@ -102,7 +102,7 @@ import {
import {
getCreateAccessListParams,
getEstimateGasParams,
- getZondTxCallParams,
+ getQRLTxCallParams,
getSendTxParams,
isContractInitOptions,
isWeb3ContractContext,
@@ -188,10 +188,10 @@ const contractSubscriptions = {
};
/**
- * The class designed to interact with smart contracts on the Zond blockchain.
+ * The class designed to interact with smart contracts on the QRL blockchain.
*/
export class Contract
- extends Web3Context
+ extends Web3Context
implements Web3EventEmitter>
{
/**
@@ -200,15 +200,15 @@ export class Contract
* ```ts
* myContract.options;
* > {
- * address: 'Z1234567890123456789012345678901234567891',
+ * address: 'Q1234567890123456789012345678901234567891',
* jsonInterface: [...],
- * from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',
+ * from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',
* maxFeePerGas: '10000000000000',
* maxPriorityFeePerGas: '0',
* gas: 1000000
* }
*
- * myContract.options.from = 'Z1234567890123456789012345678901234567891'; // default from address
+ * myContract.options.from = 'Q1234567890123456789012345678901234567891'; // default from address
* myContract.options.maxFeePerGas = '20000000000000'; // default max fee per gas in planck
* myContract.options.maxPriorityFeePerGas = '0'; // default max priority fee per gas in planck
* myContract.options.gas = 5000000; // provide as fallback always 5M gas
@@ -248,7 +248,7 @@ export class Contract
* Creates a new contract instance with all its methods and events defined in its {@doclink glossary/json_interface | json interface} object.
*
* ```ts
- * new web3.zond.Contract(jsonInterface[, address][, options])
+ * new web3.qrl.Contract(jsonInterface[, address][, options])
* ```
*
* @param jsonInterface - The JSON interface for the contract to instantiate.
@@ -258,8 +258,8 @@ export class Contract
* @returns - The contract instance with all its methods and events.
*
* ```ts title="Example"
- * var myContract = new web3.zond.Contract([...], 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe', {
- * from: 'Z1234567890123456789012345678901234567891', // default from address
+ * var myContract = new web3.qrl.Contract([...], 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe', {
+ * from: 'Q1234567890123456789012345678901234567891', // default from address
* maxFeePerGas: '20000000000' // default max fee per gas in planck, 20 gplanck in this case
* });
* ```
@@ -268,7 +268,7 @@ export class Contract
*
* ```ts title="Example"
* const myContractAbi = [....] as const; // ABI definitions
- * const myContract = new web3.zond.Contract(myContractAbi, 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe');
+ * const myContract = new web3.qrl.Contract(myContractAbi, 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe');
* ```
*/
public constructor(
@@ -446,13 +446,13 @@ export class Contract
*
* ```ts
* // calling a method
- * const result = await myContract.methods.myMethod(123).call({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
+ * const result = await myContract.methods.myMethod(123).call({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
*
* // or sending and using a promise
- * const receipt = await myContract.methods.myMethod(123).send({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
+ * const receipt = await myContract.methods.myMethod(123).send({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
*
* // or sending and using the events
- * const sendObject = myContract.methods.myMethod(123).send({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
+ * const sendObject = myContract.methods.myMethod(123).send({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
* sendObject.on('transactionHash', function(hash){
* ...
* });
@@ -479,7 +479,7 @@ export class Contract
* @returns - The new contract instance.
*
* ```ts
- * const contract1 = new zond.Contract(abi, address, {maxFeePerGas: '12345678', maxPriorityFeePerGas: '0', from: fromAddress});
+ * const contract1 = new qrl.Contract(abi, address, {maxFeePerGas: '12345678', maxPriorityFeePerGas: '0', from: fromAddress});
*
* const contract2 = contract1.clone();
* contract2.options.address = address2;
@@ -538,7 +538,7 @@ export class Contract
* arguments: [123, 'My String']
* })
* .send({
- * from: 'Z1234567890123456789012345678901234567891',
+ * from: 'Q1234567890123456789012345678901234567891',
* gas: 1500000,
* maxFeePerGas: '30000000000000',
* maxPriorityFeePerGas: '0'
@@ -561,7 +561,7 @@ export class Contract
* arguments: [123, 'My String']
* })
* .send({
- * from: 'Z1234567890123456789012345678901234567891',
+ * from: 'Q1234567890123456789012345678901234567891',
* gas: 1500000,
* maxFeePerGas: '30000000000000',
* maxPriorityFeePerGas: '0',
@@ -699,7 +699,7 @@ export class Contract
* transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',
* blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',
* blockNumber: 1234,
- * address: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
+ * address: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
* },{
* ...
* }]
@@ -1007,7 +1007,7 @@ export class Contract
options?: Options,
block?: BlockNumberOrTag,
) {
- const tx = getZondTxCallParams({
+ const tx = getQRLTxCallParams({
abi,
params,
options: {
diff --git a/packages/web3-zond-contract/src/encoding.ts b/packages/web3-qrl-contract/src/encoding.ts
similarity index 97%
rename from packages/web3-zond-contract/src/encoding.ts
rename to packages/web3-qrl-contract/src/encoding.ts
index 4f420b01..fa417db9 100644
--- a/packages/web3-zond-contract/src/encoding.ts
+++ b/packages/web3-qrl-contract/src/encoding.ts
@@ -40,9 +40,9 @@ import {
encodeParameters,
isAbiConstructorFragment,
jsonInterfaceMethodToString,
-} from '@theqrl/web3-zond-abi';
+} from '@theqrl/web3-qrl-abi';
-import { blockSchema, logSchema } from '@theqrl/web3-zond';
+import { blockSchema, logSchema } from '@theqrl/web3-qrl';
import { Web3ContractError } from '@theqrl/web3-errors';
@@ -113,7 +113,7 @@ export const encodeEventABI = (
if (!opts.topics.length) delete opts.topics;
if (address) {
- opts.address = `Z${address.slice(1).toLowerCase()}`;
+ opts.address = `Q${address.slice(1).toLowerCase()}`;
}
return opts;
diff --git a/packages/web3-zond-contract/src/index.ts b/packages/web3-qrl-contract/src/index.ts
similarity index 90%
rename from packages/web3-zond-contract/src/index.ts
rename to packages/web3-qrl-contract/src/index.ts
index 238bf182..50dd2294 100644
--- a/packages/web3-zond-contract/src/index.ts
+++ b/packages/web3-qrl-contract/src/index.ts
@@ -16,7 +16,7 @@ along with web3.js. If not, see .
*/
/**
- * The `web3.zond.Contract` object makes it easy to interact with smart contracts on the Zond blockchain.
+ * The `web3.qrl.Contract` object makes it easy to interact with smart contracts on the QRL blockchain.
* When you create a new contract object you give it the JSON interface of the respective smart contract and
* web3 will auto convert all calls into low level ABI calls over RPC for you.
* This allows you to interact with smart contracts as if they were JavaScript objects.
@@ -24,7 +24,7 @@ along with web3.js. If not, see .
* To use it standalone:
*
* ```ts
- * const Contract = require('@theqrl/web3-zond-contract');
+ * const Contract = require('@theqrl/web3-qrl-contract');
*
* // set provider for all later instances to use
* Contract.setProvider('ws://localhost:8546');
diff --git a/packages/web3-zond-contract/src/log_subscription.ts b/packages/web3-qrl-contract/src/log_subscription.ts
similarity index 98%
rename from packages/web3-zond-contract/src/log_subscription.ts
rename to packages/web3-qrl-contract/src/log_subscription.ts
index b6a4c4a8..8fb7937c 100644
--- a/packages/web3-zond-contract/src/log_subscription.ts
+++ b/packages/web3-qrl-contract/src/log_subscription.ts
@@ -72,7 +72,7 @@ import { EventLog, ContractAbiWithSignature } from './types.js';
* transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',
* blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',
* blockNumber: 1234,
- * address: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
+ * address: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
* }
* ```
*/
diff --git a/packages/web3-zond-contract/src/types.ts b/packages/web3-qrl-contract/src/types.ts
similarity index 91%
rename from packages/web3-zond-contract/src/types.ts
rename to packages/web3-qrl-contract/src/types.ts
index d44aa4fa..a4b921f6 100644
--- a/packages/web3-zond-contract/src/types.ts
+++ b/packages/web3-qrl-contract/src/types.ts
@@ -16,11 +16,11 @@ along with web3.js. If not, see .
*/
import { Web3ContextInitOptions, Web3PromiEvent } from '@theqrl/web3-core';
-import { NewHeadsSubscription, SendTransactionEvents } from '@theqrl/web3-zond';
+import { NewHeadsSubscription, SendTransactionEvents } from '@theqrl/web3-qrl';
import {
AccessListResult,
BlockNumberOrTag,
- ZondExecutionAPI,
+ QRLExecutionAPI,
HexString,
Numbers,
TransactionReceipt,
@@ -128,10 +128,10 @@ export interface ContractOptions {
*
* ```ts
* myContract.options.address;
- * > 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae'
+ * > 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae'
*
* // set a new address
- * myContract.options.address = 'Z1234FFDD...';
+ * myContract.options.address = 'Q1234FFDD...';
* ```
*/
address?: Address; // All transactions generated by web3.js from this contract will contain this address as the "to".
@@ -148,11 +148,11 @@ export interface ContractOptions {
export interface NonPayableMethodObject {
arguments: Inputs;
/**
- * This will call a method and execute its smart contract method in the ZVM without sending any transaction. Note calling cannot alter the smart contract state.
+ * This will call a method and execute its smart contract method in the QRVM without sending any transaction. Note calling cannot alter the smart contract state.
*
* ```ts
* // using the promise
- * const result = await myContract.methods.myMethod(123).call({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
+ * const result = await myContract.methods.myMethod(123).call({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
*
* // MULTI-ARGUMENT RETURN:
* // Hyperion
@@ -163,7 +163,7 @@ export interface NonPayableMethodObject
* }
*
* // web3.js
- * var MyContract = new web3.zond.Contract(abi, address);
+ * var MyContract = new web3.qrl.Contract(abi, address);
* const result = MyContract.methods.myFunction().call()
* console.log(result)
* > Result {
@@ -183,7 +183,7 @@ export interface NonPayableMethodObject
* }
*
* // web3.js
- * const MyContract = new web3.zond.Contract(abi, address);
+ * const MyContract = new web3.qrl.Contract(abi, address);
* const result = await MyContract.methods.myFunction().call();
* console.log(result);
* > "Hello!%"
@@ -203,13 +203,13 @@ export interface NonPayableMethodObject
* This will send a transaction to the smart contract and execute its method. Note this can alter the smart contract state.
*
* ```ts
- * await myContract.methods.myMethod(123).send({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
+ * await myContract.methods.myMethod(123).send({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
*
- * const receipt = await myContract.methods.myMethod(123).send({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
+ * const receipt = await myContract.methods.myMethod(123).send({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
*
*
* // using the event emitter
- * const sendObj = myContract.methods.myMethod(123).send({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'})
+ * const sendObj = myContract.methods.myMethod(123).send({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'})
* sendObj.on('transactionHash', function(hash){
* ...
* });
@@ -226,7 +226,7 @@ export interface NonPayableMethodObject
* "transactionIndex": 0,
* "blockHash": "0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46",
* "blockNumber": 3,
- * "contractAddress": "Z11f4d0A3c12e86B4b5F39B213F7E19D048276DAe",
+ * "contractAddress": "Q11f4d0A3c12e86B4b5F39B213F7E19D048276DAe",
* "cumulativeGasUsed": 314159,
* "gasUsed": 30234,
* "events": {
@@ -247,7 +247,7 @@ export interface NonPayableMethodObject
* transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',
* blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',
* blockNumber: 1234,
- * address: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
+ * address: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
* },
* "MyOtherEvent": {
* ...
@@ -296,7 +296,7 @@ export interface NonPayableMethodObject
/**
* Encodes the ABI for this method. The resulting hex string is 32-bit function signature hash plus the passed parameters in Hyperion tightly packed format.
* This can be used to send a transaction, call a method, or pass it into another smart contract’s method as arguments.
- * Set the data field on `web3.zond.sendTransaction` options as the encodeABI() result and it is the same as calling the contract method with `contract.myMethod.send()`.
+ * Set the data field on `web3.qrl.sendTransaction` options as the encodeABI() result and it is the same as calling the contract method with `contract.myMethod.send()`.
*
* Some use cases for encodeABI() include: preparing a smart contract transaction for a multi signature wallet,
* working with offline wallets and cold storage and creating transaction payload for complex smart contract proxy calls.
@@ -319,7 +319,7 @@ export interface NonPayableMethodObject
* > {
* "accessList": [
* {
- * "address": "Z15859bdf5aff2080a9968f6a410361e9598df62f",
+ * "address": "Q15859bdf5aff2080a9968f6a410361e9598df62f",
* "storageKeys": [
* "0x0000000000000000000000000000000000000000000000000000000000000000"
* ]
@@ -338,11 +338,11 @@ export interface NonPayableMethodObject
export interface PayableMethodObject {
arguments: Inputs;
/**
- * Will call a method and execute its smart contract method in the ZVM without sending any transaction. Note calling cannot alter the smart contract state.
+ * Will call a method and execute its smart contract method in the QRVM without sending any transaction. Note calling cannot alter the smart contract state.
*
* ```ts
* // using the promise
- * const result = await myContract.methods.myMethod(123).call({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
+ * const result = await myContract.methods.myMethod(123).call({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
*
* // MULTI-ARGUMENT RETURN:
* // Hyperion
@@ -353,7 +353,7 @@ export interface PayableMethodObject {
* }
*
* // web3.js
- * var MyContract = new web3.zond.Contract(abi, address);
+ * var MyContract = new web3.qrl.Contract(abi, address);
* const result = MyContract.methods.myFunction().call()
* console.log(result)
* > Result {
@@ -373,7 +373,7 @@ export interface PayableMethodObject {
* }
*
* // web3.js
- * const MyContract = new web3.zond.Contract(abi, address);
+ * const MyContract = new web3.qrl.Contract(abi, address);
* const result = await MyContract.methods.myFunction().call();
* console.log(result);
* > "Hello!%"
@@ -392,13 +392,13 @@ export interface PayableMethodObject {
* Will send a transaction to the smart contract and execute its method. Note this can alter the smart contract state.
*
* ```ts
- * await myContract.methods.myMethod(123).send({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
+ * await myContract.methods.myMethod(123).send({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
*
- * const receipt = await myContract.methods.myMethod(123).send({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
+ * const receipt = await myContract.methods.myMethod(123).send({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});
*
*
* // using the event emitter
- * const sendObj = myContract.methods.myMethod(123).send({from: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'})
+ * const sendObj = myContract.methods.myMethod(123).send({from: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'})
* sendObj.on('transactionHash', function(hash){
* ...
* });
@@ -415,7 +415,7 @@ export interface PayableMethodObject {
* "transactionIndex": 0,
* "blockHash": "0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46",
* "blockNumber": 3,
- * "contractAddress": "Z11f4d0A3c12e86B4b5F39B213F7E19D048276DAe",
+ * "contractAddress": "Q11f4d0A3c12e86B4b5F39B213F7E19D048276DAe",
* "cumulativeGasUsed": 314159,
* "gasUsed": 30234,
* "events": {
@@ -436,7 +436,7 @@ export interface PayableMethodObject {
* transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',
* blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',
* blockNumber: 1234,
- * address: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
+ * address: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
* },
* "MyOtherEvent": {
* ...
@@ -485,7 +485,7 @@ export interface PayableMethodObject {
/**
* Encodes the ABI for this method. The resulting hex string is 32-bit function signature hash plus the passed parameters in Hyperion tightly packed format.
* This can be used to send a transaction, call a method, or pass it into another smart contract’s method as arguments.
- * Set the data field on `web3.zond.sendTransaction` options as the encodeABI() result and it is the same as calling the contract method with `contract.myMethod.send()`.
+ * Set the data field on `web3.qrl.sendTransaction` options as the encodeABI() result and it is the same as calling the contract method with `contract.myMethod.send()`.
*
* Some use cases for encodeABI() include: preparing a smart contract transaction for a multi signature wallet,
* working with offline wallets and cold storage and creating transaction payload for complex smart contract proxy calls.
@@ -508,7 +508,7 @@ export interface PayableMethodObject {
* > {
* "accessList": [
* {
- * "address": "Z15859bdf5aff2080a9968f6a410361e9598df62f",
+ * "address": "Q15859bdf5aff2080a9968f6a410361e9598df62f",
* "storageKeys": [
* "0x0000000000000000000000000000000000000000000000000000000000000000"
* ]
@@ -523,7 +523,7 @@ export interface PayableMethodObject {
export type Web3ContractContext = Partial<
Web3ContextInitOptions<
- ZondExecutionAPI,
+ QRLExecutionAPI,
{
logs: typeof LogsSubscription;
newHeads: typeof NewHeadsSubscription;
diff --git a/packages/web3-zond-contract/src/utils.ts b/packages/web3-qrl-contract/src/utils.ts
similarity index 99%
rename from packages/web3-zond-contract/src/utils.ts
rename to packages/web3-qrl-contract/src/utils.ts
index 7d3345c9..db82fb02 100644
--- a/packages/web3-zond-contract/src/utils.ts
+++ b/packages/web3-qrl-contract/src/utils.ts
@@ -95,7 +95,7 @@ export const getSendTxParams = ({
return txParams;
};
-export const getZondTxCallParams = ({
+export const getQRLTxCallParams = ({
abi,
params,
options,
diff --git a/packages/web3-zond-contract/test/.eslintrc.js b/packages/web3-qrl-contract/test/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-contract/test/.eslintrc.js
rename to packages/web3-qrl-contract/test/.eslintrc.js
diff --git a/packages/web3-zond-contract/test/config/jest.config.js b/packages/web3-qrl-contract/test/config/jest.config.js
similarity index 100%
rename from packages/web3-zond-contract/test/config/jest.config.js
rename to packages/web3-qrl-contract/test/config/jest.config.js
diff --git a/packages/web3-zond-contract/test/config/setup.js b/packages/web3-qrl-contract/test/config/setup.js
similarity index 100%
rename from packages/web3-zond-contract/test/config/setup.js
rename to packages/web3-qrl-contract/test/config/setup.js
diff --git a/packages/web3-zond-contract/test/fixtures/MyContract.json b/packages/web3-qrl-contract/test/fixtures/MyContract.json
similarity index 100%
rename from packages/web3-zond-contract/test/fixtures/MyContract.json
rename to packages/web3-qrl-contract/test/fixtures/MyContract.json
diff --git a/packages/web3-zond-contract/test/fixtures/MyContract.ts b/packages/web3-qrl-contract/test/fixtures/MyContract.ts
similarity index 100%
rename from packages/web3-zond-contract/test/fixtures/MyContract.ts
rename to packages/web3-qrl-contract/test/fixtures/MyContract.ts
diff --git a/packages/web3-zond-contract/test/fixtures/SimpleOverloaded.ts b/packages/web3-qrl-contract/test/fixtures/SimpleOverloaded.ts
similarity index 100%
rename from packages/web3-zond-contract/test/fixtures/SimpleOverloaded.ts
rename to packages/web3-qrl-contract/test/fixtures/SimpleOverloaded.ts
diff --git a/packages/web3-zond-contract/test/fixtures/accounts.json b/packages/web3-qrl-contract/test/fixtures/accounts.json
similarity index 100%
rename from packages/web3-zond-contract/test/fixtures/accounts.json
rename to packages/web3-qrl-contract/test/fixtures/accounts.json
diff --git a/packages/web3-zond-contract/test/fixtures/contracts/SampleStorageContract.hyp b/packages/web3-qrl-contract/test/fixtures/contracts/SampleStorageContract.hyp
similarity index 100%
rename from packages/web3-zond-contract/test/fixtures/contracts/SampleStorageContract.hyp
rename to packages/web3-qrl-contract/test/fixtures/contracts/SampleStorageContract.hyp
diff --git a/packages/web3-zond-contract/test/fixtures/contracts/SimpleOverloaded.hyp b/packages/web3-qrl-contract/test/fixtures/contracts/SimpleOverloaded.hyp
similarity index 100%
rename from packages/web3-zond-contract/test/fixtures/contracts/SimpleOverloaded.hyp
rename to packages/web3-qrl-contract/test/fixtures/contracts/SimpleOverloaded.hyp
diff --git a/packages/web3-zond-contract/test/fixtures/encoding.ts b/packages/web3-qrl-contract/test/fixtures/encoding.ts
similarity index 100%
rename from packages/web3-zond-contract/test/fixtures/encoding.ts
rename to packages/web3-qrl-contract/test/fixtures/encoding.ts
diff --git a/packages/web3-zond-contract/test/fixtures/zrc20.ts b/packages/web3-qrl-contract/test/fixtures/sqrcTf1.ts
similarity index 98%
rename from packages/web3-zond-contract/test/fixtures/zrc20.ts
rename to packages/web3-qrl-contract/test/fixtures/sqrcTf1.ts
index d4ab8826..6061db49 100644
--- a/packages/web3-zond-contract/test/fixtures/zrc20.ts
+++ b/packages/web3-qrl-contract/test/fixtures/sqrcTf1.ts
@@ -19,7 +19,7 @@ import { Address, Numbers } from '@theqrl/web3-types';
import { LogsSubscription } from '../../src/log_subscription';
import { ContractEventOptions, PayableMethodObject, NonPayableMethodObject } from '../../src/types';
-export interface Zrc20Interface {
+export interface SqrcTf1Interface {
methods: {
[key: string]: (
...args: ReadonlyArray
@@ -60,7 +60,7 @@ export interface Zrc20Interface {
}
// https://ethereumdev.io/abi-for-erc20-contract-on-ethereum/
-export const zrc20Abi = [
+export const sqrcTf1Abi = [
{
constant: true,
inputs: [],
diff --git a/packages/web3-zond-contract/test/fixtures/zrc721.ts b/packages/web3-qrl-contract/test/fixtures/sqrcTn1.ts
similarity index 98%
rename from packages/web3-zond-contract/test/fixtures/zrc721.ts
rename to packages/web3-qrl-contract/test/fixtures/sqrcTn1.ts
index 90894d18..2c3926c1 100644
--- a/packages/web3-zond-contract/test/fixtures/zrc721.ts
+++ b/packages/web3-qrl-contract/test/fixtures/sqrcTn1.ts
@@ -19,7 +19,7 @@ import { Address, Numbers } from '@theqrl/web3-types';
import { LogsSubscription } from '../../src/log_subscription';
import { ContractEventOptions, NonPayableMethodObject, PayableMethodObject } from '../../src/types';
-export interface Zrc721Interface {
+export interface SqrcTn1Interface {
methods: {
[key: string]: (
...args: ReadonlyArray
@@ -64,7 +64,7 @@ export interface Zrc721Interface {
// https://eips.ethereum.org/EIPS/eip-721
// Copied interface from above link to Remix and compile
-export const zrc721Abi = [
+export const sqrcTn1Abi = [
{
constant: true,
inputs: [
diff --git a/packages/web3-zond-contract/test/fixtures/storage.ts b/packages/web3-qrl-contract/test/fixtures/storage.ts
similarity index 100%
rename from packages/web3-zond-contract/test/fixtures/storage.ts
rename to packages/web3-qrl-contract/test/fixtures/storage.ts
diff --git a/packages/web3-zond-contract/test/fixtures/system_test_utils.ts b/packages/web3-qrl-contract/test/fixtures/system_test_utils.ts
similarity index 100%
rename from packages/web3-zond-contract/test/fixtures/system_test_utils.ts
rename to packages/web3-qrl-contract/test/fixtures/system_test_utils.ts
diff --git a/packages/web3-zond-contract/test/fixtures/unitTestFixtures.ts b/packages/web3-qrl-contract/test/fixtures/unitTestFixtures.ts
similarity index 95%
rename from packages/web3-zond-contract/test/fixtures/unitTestFixtures.ts
rename to packages/web3-qrl-contract/test/fixtures/unitTestFixtures.ts
index 2c6f9204..7fefdf4e 100644
--- a/packages/web3-zond-contract/test/fixtures/unitTestFixtures.ts
+++ b/packages/web3-qrl-contract/test/fixtures/unitTestFixtures.ts
@@ -29,7 +29,7 @@ export const getLogsData = {
transactionHash: '0xbe70733bcf87282c0ba9bf3c0e2d545084fad48bd571c314140c8dc1db882673',
blockHash: '0x78755c18c9a0a1283fa04b2f78c7794c249395b08f7f7dff304034d64d6a1607',
blockNumber: 25,
- address: 'Z2D029a4bd792d795f35e0583F64eD9DedeBBa849',
+ address: 'Q2D029a4bd792d795f35e0583F64eD9DedeBBa849',
data: '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000548656c6c6f000000000000000000000000000000000000000000000000000000',
topics: ['0x7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e'],
type: 'mined',
@@ -47,7 +47,7 @@ export const getPastEventsData = {
transactionHash: '0xbe70733bcf87282c0ba9bf3c0e2d545084fad48bd571c314140c8dc1db882673',
blockHash: '0x78755c18c9a0a1283fa04b2f78c7794c249395b08f7f7dff304034d64d6a1607',
blockNumber: BigInt(25),
- address: 'Z2D029a4bd792d795f35e0583F64eD9DedeBBa849',
+ address: 'Q2D029a4bd792d795f35e0583F64eD9DedeBBa849',
data: '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000548656c6c6f000000000000000000000000000000000000000000000000000000',
topics: ['0x7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e'],
returnValues: {
@@ -73,7 +73,7 @@ export const AllGetPastEventsData = {
transactionHash: '0x1ba478ce1810bfa8a0725c0ca94f3cfe163a70c396037a1f3c94cad34e497959',
blockHash: '0x79eece1fb22b7109f302b65bd826b1cebf9f704642e86ae9086ed93baf44a45e',
blockNumber: 20,
- address: 'Z20bc23D0598b12c34cBDEf1fae439Ba8744DB426',
+ address: 'Q20bc23D0598b12c34cBDEf1fae439Ba8744DB426',
data: '0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000548656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010416e6f74686572204772656574696e6700000000000000000000000000000000',
topics: ['0x0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b75'],
type: 'mined',
@@ -85,7 +85,7 @@ export const AllGetPastEventsData = {
transactionHash: '0x1ba478ce1810bfa8a0725c0ca94f3cfe163a70c396037a1f3c94cad34e497959',
blockHash: '0x79eece1fb22b7109f302b65bd826b1cebf9f704642e86ae9086ed93baf44a45e',
blockNumber: 20,
- address: 'Z20bc23D0598b12c34cBDEf1fae439Ba8744DB426',
+ address: 'Q20bc23D0598b12c34cBDEf1fae439Ba8744DB426',
data: '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010416e6f74686572204772656574696e6700000000000000000000000000000000',
topics: ['0x7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e'],
type: 'mined',
@@ -100,7 +100,7 @@ export const AllGetPastEventsData = {
transactionHash: '0x1ba478ce1810bfa8a0725c0ca94f3cfe163a70c396037a1f3c94cad34e497959',
blockHash: '0x79eece1fb22b7109f302b65bd826b1cebf9f704642e86ae9086ed93baf44a45e',
blockNumber: BigInt(20),
- address: 'Z20bc23D0598b12c34cBDEf1fae439Ba8744DB426',
+ address: 'Q20bc23D0598b12c34cBDEf1fae439Ba8744DB426',
data: '0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000548656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010416e6f74686572204772656574696e6700000000000000000000000000000000',
topics: ['0x0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b75'],
returnValues: {
@@ -123,7 +123,7 @@ export const AllGetPastEventsData = {
transactionHash: '0x1ba478ce1810bfa8a0725c0ca94f3cfe163a70c396037a1f3c94cad34e497959',
blockHash: '0x79eece1fb22b7109f302b65bd826b1cebf9f704642e86ae9086ed93baf44a45e',
blockNumber: BigInt(20),
- address: 'Z20bc23D0598b12c34cBDEf1fae439Ba8744DB426',
+ address: 'Q20bc23D0598b12c34cBDEf1fae439Ba8744DB426',
data: '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010416e6f74686572204772656574696e6700000000000000000000000000000000',
topics: ['0x7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e'],
returnValues: {
diff --git a/packages/web3-zond-contract/test/integration/contract_accesslist.test.ts b/packages/web3-qrl-contract/test/integration/contract_accesslist.test.ts
similarity index 96%
rename from packages/web3-zond-contract/test/integration/contract_accesslist.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_accesslist.test.ts
index 0aa772ed..b61ac5bc 100644
--- a/packages/web3-zond-contract/test/integration/contract_accesslist.test.ts
+++ b/packages/web3-qrl-contract/test/integration/contract_accesslist.test.ts
@@ -64,7 +64,7 @@ describe('contract', () => {
{
address: isNullish(deployedContract.options.address)
? deployedContract.options.address
- : `Z${deployedContract.options.address.slice(1).toLowerCase()}`,
+ : `Q${deployedContract.options.address.slice(1).toLowerCase()}`,
storageKeys: [
'0x0000000000000000000000000000000000000000000000000000000000000001',
],
@@ -92,7 +92,7 @@ describe('contract', () => {
{
address: isNullish(deployedContract.options.address)
? deployedContract.options.address
- : `Z${deployedContract.options.address.slice(1).toLowerCase()}`,
+ : `Q${deployedContract.options.address.slice(1).toLowerCase()}`,
storageKeys: [
'0x0000000000000000000000000000000000000000000000000000000000000001',
],
diff --git a/packages/web3-zond-contract/test/integration/contract_clone.test.ts b/packages/web3-qrl-contract/test/integration/contract_clone.test.ts
similarity index 100%
rename from packages/web3-zond-contract/test/integration/contract_clone.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_clone.test.ts
diff --git a/packages/web3-zond-contract/test/integration/contract_defaults.test.ts b/packages/web3-qrl-contract/test/integration/contract_defaults.test.ts
similarity index 100%
rename from packages/web3-zond-contract/test/integration/contract_defaults.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_defaults.test.ts
diff --git a/packages/web3-zond-contract/test/integration/contract_defaults_extra.test.ts b/packages/web3-qrl-contract/test/integration/contract_defaults_extra.test.ts
similarity index 95%
rename from packages/web3-zond-contract/test/integration/contract_defaults_extra.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_defaults_extra.test.ts
index 977f1fe0..5fd6f447 100644
--- a/packages/web3-zond-contract/test/integration/contract_defaults_extra.test.ts
+++ b/packages/web3-qrl-contract/test/integration/contract_defaults_extra.test.ts
@@ -16,7 +16,7 @@ along with web3.js. If not, see .
*/
import { ValidChains, Hardfork, TransactionReceipt } from '@theqrl/web3-types';
-import * as Web3Zond from '@theqrl/web3-zond';
+import * as Web3QRL from '@theqrl/web3-qrl';
import { TransactionBlockTimeoutError } from '@theqrl/web3-errors';
import { Contract } from '../../src';
import { GreeterBytecode, GreeterAbi } from '../shared_fixtures/build/Greeter';
@@ -32,8 +32,8 @@ import {
type Resolve = (value?: unknown) => void;
const MAX_32_SIGNED_INTEGER = 2147483647;
-jest.mock('@theqrl/web3-zond', () => {
- const original = jest.requireActual('@theqrl/web3-zond');
+jest.mock('@theqrl/web3-qrl', () => {
+ const original = jest.requireActual('@theqrl/web3-qrl');
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return {
...original,
@@ -77,7 +77,7 @@ describe('contract defaults (extra)', () => {
await contract.methods.greet().send(sendOptions);
expect(contract.defaultHardfork).toBe(hardfork);
- const callSpy = jest.spyOn(Web3Zond, 'call');
+ const callSpy = jest.spyOn(Web3QRL, 'call');
await contract.methods.greet().call();
@@ -108,7 +108,7 @@ describe('contract defaults (extra)', () => {
await contract.methods.setGreeting('New Greeting').send(sendOptions);
- const callSpy = jest.spyOn(Web3Zond, 'call');
+ const callSpy = jest.spyOn(Web3QRL, 'call');
await contract.methods.greet().call();
@@ -149,7 +149,7 @@ describe('contract defaults (extra)', () => {
it('should use "defaultCommon" on "instance" level', async () => {
contract.defaultCommon = common;
- const callSpy = jest.spyOn(Web3Zond, 'call');
+ const callSpy = jest.spyOn(Web3QRL, 'call');
await contract.methods.greet().call();
@@ -171,7 +171,7 @@ describe('contract defaults (extra)', () => {
});
contract = await contract.deploy(deployOptions).send(sendOptions);
- const sendTransactionSpy = jest.spyOn(Web3Zond, 'sendTransaction');
+ const sendTransactionSpy = jest.spyOn(Web3QRL, 'sendTransaction');
expect(contract.transactionBlockTimeout).toBe(50);
contract.transactionBlockTimeout = 32;
@@ -311,7 +311,7 @@ describe('contract defaults (extra)', () => {
expect(contract.handleRevert).toBe(handleRevert);
- const sendTransactionSpy = jest.spyOn(Web3Zond, 'sendTransaction');
+ const sendTransactionSpy = jest.spyOn(Web3QRL, 'sendTransaction');
await contract.methods.setGreeting('New Greeting').send(sendOptions);
diff --git a/packages/web3-zond-contract/test/integration/contract_deploy.test.ts b/packages/web3-qrl-contract/test/integration/contract_deploy.test.ts
similarity index 95%
rename from packages/web3-zond-contract/test/integration/contract_deploy.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_deploy.test.ts
index a6c8fbd9..ea0e4c90 100644
--- a/packages/web3-zond-contract/test/integration/contract_deploy.test.ts
+++ b/packages/web3-qrl-contract/test/integration/contract_deploy.test.ts
@@ -14,10 +14,10 @@ GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { Web3Zond } from '@theqrl/web3-zond';
+import { Web3QRL } from '@theqrl/web3-qrl';
import { Contract } from '../../src';
import { sleep } from '../shared_fixtures/utils';
-import { ZRC721TokenAbi, ZRC721TokenBytecode } from '../shared_fixtures/build/ZRC721Token';
+import { SQRCTN1TokenAbi, SQRCTN1TokenBytecode } from '../shared_fixtures/build/SQRCTN1Token';
import { GreeterBytecode, GreeterAbi } from '../shared_fixtures/build/Greeter';
import { DeployRevertAbi, DeployRevertBytecode } from '../shared_fixtures/build/DeployRevert';
import {
@@ -37,10 +37,10 @@ describe('contract', () => {
let sendOptions: Record;
let acc: { address: string; seed: string };
let pkAccount: { address: string; seed: string };
- let web3Zond: Web3Zond;
+ let web3QRL: Web3QRL;
beforeAll(async () => {
- web3Zond = new Web3Zond(getSystemTestProvider());
+ web3QRL = new Web3QRL(getSystemTestProvider());
deployOptions = {
data: GreeterBytecode,
arguments: ['My Greeting'],
@@ -55,7 +55,7 @@ describe('contract', () => {
});
afterAll(async () => {
- await closeOpenConnection(web3Zond);
+ await closeOpenConnection(web3QRL);
});
describe('local account', () => {
it.each([signTxAndSendEIP1559])(
@@ -108,11 +108,11 @@ describe('contract', () => {
expect(Number(estimatedGas)).toBeGreaterThan(0);
});
it('should return estimated gas of contract constructor without arguments', async () => {
- const estimatedGas = await new Contract(ZRC721TokenAbi, undefined, {
+ const estimatedGas = await new Contract(SQRCTN1TokenAbi, undefined, {
provider: getSystemTestProvider(),
})
.deploy({
- data: ZRC721TokenBytecode,
+ data: SQRCTN1TokenBytecode,
arguments: [],
})
.estimateGas({
diff --git a/packages/web3-zond-contract/test/integration/contract_empty_string.test.ts b/packages/web3-qrl-contract/test/integration/contract_empty_string.test.ts
similarity index 100%
rename from packages/web3-zond-contract/test/integration/contract_empty_string.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_empty_string.test.ts
diff --git a/packages/web3-zond-contract/test/integration/contract_estimateGas_without_0x.test.ts b/packages/web3-qrl-contract/test/integration/contract_estimateGas_without_0x.test.ts
similarity index 97%
rename from packages/web3-zond-contract/test/integration/contract_estimateGas_without_0x.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_estimateGas_without_0x.test.ts
index 719bc5c7..56515f32 100644
--- a/packages/web3-zond-contract/test/integration/contract_estimateGas_without_0x.test.ts
+++ b/packages/web3-qrl-contract/test/integration/contract_estimateGas_without_0x.test.ts
@@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import { ZOND_DATA_FORMAT } from '@theqrl/web3-types';
+import { QRL_DATA_FORMAT } from '@theqrl/web3-types';
import { Contract } from '../../src';
import { getSystemTestProvider, createTempAccount } from '../fixtures/system_test_utils';
@@ -65,7 +65,7 @@ describe('contract', () => {
{
from: acc.address,
},
- ZOND_DATA_FORMAT,
+ QRL_DATA_FORMAT,
);
expect(gas).toBeDefined();
expect(gas).toMatch(/0[xX][0-9a-fA-F]/i);
diff --git a/packages/web3-zond-contract/test/integration/contract_events.test.ts b/packages/web3-qrl-contract/test/integration/contract_events.test.ts
similarity index 100%
rename from packages/web3-zond-contract/test/integration/contract_events.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_events.test.ts
diff --git a/packages/web3-zond-contract/test/integration/contract_filter_events.test.ts b/packages/web3-qrl-contract/test/integration/contract_filter_events.test.ts
similarity index 96%
rename from packages/web3-zond-contract/test/integration/contract_filter_events.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_filter_events.test.ts
index b6145ddb..22e87079 100644
--- a/packages/web3-zond-contract/test/integration/contract_filter_events.test.ts
+++ b/packages/web3-qrl-contract/test/integration/contract_filter_events.test.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
import { toBigInt } from '@theqrl/web3-utils';
import { Contract } from '../../src';
-import { ZRC20TokenAbi, ZRC20TokenBytecode } from '../shared_fixtures/build/ZRC20Token';
+import { SQRCTF1TokenAbi, SQRCTF1TokenBytecode } from '../shared_fixtures/build/SQRCTF1Token';
import { BasicAbi, BasicBytecode } from '../shared_fixtures/build/Basic';
import {
getSystemTestProvider,
@@ -29,9 +29,9 @@ import { EventLog } from '../../src/types';
const initialSupply = BigInt('5000000000');
describe('contract getPastEvent filter', () => {
- describe('zrc20', () => {
- let contract: Contract;
- let contractDeployed: Contract;
+ describe('sqrcTf1', () => {
+ let contract: Contract;
+ let contractDeployed: Contract;
let deployOptions: Record;
let sendOptions: Record;
let mainAcc: Record;
@@ -40,12 +40,12 @@ describe('contract getPastEvent filter', () => {
let toAcc3: Record;
beforeAll(async () => {
- contract = new Contract(ZRC20TokenAbi, undefined, {
+ contract = new Contract(SQRCTF1TokenAbi, undefined, {
provider: getSystemTestProvider(),
});
deployOptions = {
- data: ZRC20TokenBytecode,
+ data: SQRCTF1TokenBytecode,
arguments: [initialSupply],
};
mainAcc = await createTempAccount();
diff --git a/packages/web3-zond-contract/test/integration/contract_methods.test.ts b/packages/web3-qrl-contract/test/integration/contract_methods.test.ts
similarity index 98%
rename from packages/web3-zond-contract/test/integration/contract_methods.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_methods.test.ts
index 87325496..611c9b5c 100644
--- a/packages/web3-zond-contract/test/integration/contract_methods.test.ts
+++ b/packages/web3-qrl-contract/test/integration/contract_methods.test.ts
@@ -162,7 +162,7 @@ describe('contract', () => {
status: BigInt(0),
to: isNullish(contractDeployed.options.address)
? contractDeployed.options.address
- : `Z${contractDeployed.options.address.slice(1).toLowerCase()}`,
+ : `Q${contractDeployed.options.address.slice(1).toLowerCase()}`,
transactionIndex: BigInt(0),
type: BigInt(2),
},
diff --git a/packages/web3-zond-contract/test/integration/contract_methods_errors.test.ts b/packages/web3-qrl-contract/test/integration/contract_methods_errors.test.ts
similarity index 100%
rename from packages/web3-zond-contract/test/integration/contract_methods_errors.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_methods_errors.test.ts
diff --git a/packages/web3-zond-contract/test/integration/contract_negative_numbers.test.ts b/packages/web3-qrl-contract/test/integration/contract_negative_numbers.test.ts
similarity index 100%
rename from packages/web3-zond-contract/test/integration/contract_negative_numbers.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_negative_numbers.test.ts
diff --git a/packages/web3-zond-contract/test/integration/contract_simple_overloaded.test.ts b/packages/web3-qrl-contract/test/integration/contract_simple_overloaded.test.ts
similarity index 100%
rename from packages/web3-zond-contract/test/integration/contract_simple_overloaded.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_simple_overloaded.test.ts
diff --git a/packages/web3-zond-contract/test/integration/contract_zrc20.test.ts b/packages/web3-qrl-contract/test/integration/contract_sqrcTf1.test.ts
similarity index 95%
rename from packages/web3-zond-contract/test/integration/contract_zrc20.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_sqrcTf1.test.ts
index 07de8d52..955c620d 100644
--- a/packages/web3-zond-contract/test/integration/contract_zrc20.test.ts
+++ b/packages/web3-qrl-contract/test/integration/contract_sqrcTf1.test.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
import { LogsOutput } from '@theqrl/web3-types';
import { Contract } from '../../src';
-import { ZRC20TokenAbi, ZRC20TokenBytecode } from '../shared_fixtures/build/ZRC20Token';
+import { SQRCTF1TokenAbi, SQRCTF1TokenBytecode } from '../shared_fixtures/build/SQRCTF1Token';
import {
getSystemTestProvider,
describeIf,
@@ -32,18 +32,18 @@ import { processAsync, toUpperCaseAddress } from '../shared_fixtures/utils';
const initialSupply = BigInt('5000000000');
describe('contract', () => {
- describe('zrc20', () => {
- let contract: Contract;
+ describe('sqrcTf1', () => {
+ let contract: Contract;
let deployOptions: Record;
let sendOptions: Record;
beforeAll(() => {
- contract = new Contract(ZRC20TokenAbi, undefined, {
+ contract = new Contract(SQRCTF1TokenAbi, undefined, {
provider: getSystemTestProvider(),
});
deployOptions = {
- data: ZRC20TokenBytecode,
+ data: SQRCTF1TokenBytecode,
arguments: [initialSupply],
};
});
@@ -57,7 +57,7 @@ describe('contract', () => {
});
describe('contract instance', () => {
- let contractDeployed: Contract;
+ let contractDeployed: Contract;
let pkAccount: { address: string; seed: string };
let mainAcc: { address: string; seed: string };
const prepareForTransfer = async (value: string) => {
diff --git a/packages/web3-zond-contract/test/integration/contract_zrc721.test.ts b/packages/web3-qrl-contract/test/integration/contract_sqrcTn1.test.ts
similarity index 95%
rename from packages/web3-zond-contract/test/integration/contract_zrc721.test.ts
rename to packages/web3-qrl-contract/test/integration/contract_sqrcTn1.test.ts
index 57f43764..a7bf9438 100644
--- a/packages/web3-zond-contract/test/integration/contract_zrc721.test.ts
+++ b/packages/web3-qrl-contract/test/integration/contract_sqrcTn1.test.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
import { toBigInt } from '@theqrl/web3-utils';
import { Contract } from '../../src';
-import { ZRC721TokenAbi, ZRC721TokenBytecode } from '../shared_fixtures/build/ZRC721Token';
+import { SQRCTN1TokenAbi, SQRCTN1TokenBytecode } from '../shared_fixtures/build/SQRCTN1Token';
import {
getSystemTestProvider,
describeIf,
@@ -30,21 +30,21 @@ import {
import { processAsync, toUpperCaseAddress } from '../shared_fixtures/utils';
describe('contract', () => {
- describe('zrc721', () => {
- let contract: Contract;
- let contractDeployed: Contract;
+ describe('sqrcTn1', () => {
+ let contract: Contract;
+ let contractDeployed: Contract;
let deployOptions: Record;
let sendOptions: Record;
beforeAll(async () => {
- contract = new Contract(ZRC721TokenAbi, undefined, {
+ contract = new Contract(SQRCTN1TokenAbi, undefined, {
provider: getSystemTestProvider(),
});
const acc = await createTempAccount();
deployOptions = {
- data: ZRC721TokenBytecode,
+ data: SQRCTN1TokenBytecode,
arguments: [],
};
sendOptions = { from: acc.address /* gas: '10000000' */ };
@@ -288,7 +288,7 @@ describe('contract', () => {
.send(sendOptions);
}),
).resolves.toEqual({
- from: 'Z0000000000000000000000000000000000000000',
+ from: 'Q0000000000000000000000000000000000000000',
to: toUpperCaseAddress(acc2.address),
tokenId: BigInt(0),
});
diff --git a/packages/web3-zond-contract/test/integration/jest.config.js b/packages/web3-qrl-contract/test/integration/jest.config.js
similarity index 100%
rename from packages/web3-zond-contract/test/integration/jest.config.js
rename to packages/web3-qrl-contract/test/integration/jest.config.js
diff --git a/packages/web3-zond-contract/test/integration/local_account/contract_deploy.test.ts b/packages/web3-qrl-contract/test/integration/local_account/contract_deploy.test.ts
similarity index 95%
rename from packages/web3-zond-contract/test/integration/local_account/contract_deploy.test.ts
rename to packages/web3-qrl-contract/test/integration/local_account/contract_deploy.test.ts
index de5127e2..ea3a594a 100644
--- a/packages/web3-zond-contract/test/integration/local_account/contract_deploy.test.ts
+++ b/packages/web3-qrl-contract/test/integration/local_account/contract_deploy.test.ts
@@ -18,7 +18,7 @@ along with web3.js. If not, see .
// eslint-disable-next-line import/no-extraneous-dependencies
import Web3 from '@theqrl/web3';
// eslint-disable-next-line import/no-extraneous-dependencies
-import { Web3Account } from '@theqrl/web3-zond-accounts';
+import { Web3Account } from '@theqrl/web3-qrl-accounts';
import { GreeterBytecode, GreeterAbi } from '../../shared_fixtures/build/Greeter';
import { getSystemTestProvider, createLocalAccount, isWs } from '../../fixtures/system_test_utils';
import { Contract } from '../../../src';
@@ -34,7 +34,7 @@ describe('contract', () => {
beforeEach(async () => {
web3 = new Web3(getSystemTestProvider());
- contract = new web3.zond.Contract(GreeterAbi) as unknown as Contract;
+ contract = new web3.qrl.Contract(GreeterAbi) as unknown as Contract;
deployOptions = {
data: GreeterBytecode,
arguments: ['My Greeting'],
@@ -97,7 +97,7 @@ describe('contract', () => {
});
it('should deploy the contract if data is provided at initiation', async () => {
- const contractWithParams = new web3.zond.Contract(GreeterAbi, undefined, {
+ const contractWithParams = new web3.qrl.Contract(GreeterAbi, undefined, {
provider: web3.provider,
data: GreeterBytecode,
from: localAccount.address,
diff --git a/packages/web3-zond-contract/test/integration/local_account/contract_overloaded_methods.test.ts b/packages/web3-qrl-contract/test/integration/local_account/contract_overloaded_methods.test.ts
similarity index 88%
rename from packages/web3-zond-contract/test/integration/local_account/contract_overloaded_methods.test.ts
rename to packages/web3-qrl-contract/test/integration/local_account/contract_overloaded_methods.test.ts
index a73e545b..f3977935 100644
--- a/packages/web3-zond-contract/test/integration/local_account/contract_overloaded_methods.test.ts
+++ b/packages/web3-qrl-contract/test/integration/local_account/contract_overloaded_methods.test.ts
@@ -18,30 +18,30 @@ along with web3.js. If not, see .
// eslint-disable-next-line import/no-extraneous-dependencies
import Web3 from '@theqrl/web3';
// eslint-disable-next-line import/no-extraneous-dependencies
-import { Web3Account } from '@theqrl/web3-zond-accounts';
+import { Web3Account } from '@theqrl/web3-qrl-accounts';
import { utf8ToHex } from '@theqrl/web3-utils';
import { Contract, EventLog } from '../../../src';
-import { ZRC721TokenAbi, ZRC721TokenBytecode } from '../../shared_fixtures/build/ZRC721Token';
+import { SQRCTN1TokenAbi, SQRCTN1TokenBytecode } from '../../shared_fixtures/build/SQRCTN1Token';
import { getSystemTestProvider, createLocalAccount } from '../../fixtures/system_test_utils';
import { toUpperCaseHex } from '../../shared_fixtures/utils';
-describe('contract ZRC721 overloaded functions', () => {
- let contract: Contract;
+describe('contract SQRCTN1 overloaded functions', () => {
+ let contract: Contract;
let sendOptions: Record;
let deployOptions: Record;
let localAccount: Web3Account;
let web3: Web3;
- let contractDeployed: Contract;
+ let contractDeployed: Contract;
beforeAll(async () => {
web3 = new Web3(getSystemTestProvider());
localAccount = await createLocalAccount(web3);
- contract = new web3.zond.Contract(ZRC721TokenAbi) as unknown as Contract<
- typeof ZRC721TokenAbi
+ contract = new web3.qrl.Contract(SQRCTN1TokenAbi) as unknown as Contract<
+ typeof SQRCTN1TokenAbi
>;
deployOptions = {
- data: ZRC721TokenBytecode,
+ data: SQRCTN1TokenBytecode,
arguments: [],
};
diff --git a/packages/web3-zond-contract/test/integration/local_account/contract_zrc20.test.ts b/packages/web3-qrl-contract/test/integration/local_account/contract_sqrcTf1.test.ts
similarity index 88%
rename from packages/web3-zond-contract/test/integration/local_account/contract_zrc20.test.ts
rename to packages/web3-qrl-contract/test/integration/local_account/contract_sqrcTf1.test.ts
index 67fe2320..108fceef 100644
--- a/packages/web3-zond-contract/test/integration/local_account/contract_zrc20.test.ts
+++ b/packages/web3-qrl-contract/test/integration/local_account/contract_sqrcTf1.test.ts
@@ -18,31 +18,31 @@ along with web3.js. If not, see .
// eslint-disable-next-line import/no-extraneous-dependencies
import Web3 from '@theqrl/web3';
// eslint-disable-next-line import/no-extraneous-dependencies
-import { Web3Account } from '@theqrl/web3-zond-accounts';
+import { Web3Account } from '@theqrl/web3-qrl-accounts';
import { Contract } from '../../../src';
-import { ZRC20TokenAbi, ZRC20TokenBytecode } from '../../shared_fixtures/build/ZRC20Token';
+import { SQRCTF1TokenAbi, SQRCTF1TokenBytecode } from '../../shared_fixtures/build/SQRCTF1Token';
import { getSystemTestProvider, createLocalAccount } from '../../fixtures/system_test_utils';
const initialSupply = BigInt('5000000000');
describe('contract', () => {
- describe('zrc20', () => {
- let contract: Contract;
+ describe('sqrcTf1', () => {
+ let contract: Contract;
let sendOptions: Record;
let deployOptions: Record;
let localAccount: Web3Account;
let web3: Web3;
- let contractDeployed: Contract;
+ let contractDeployed: Contract;
beforeAll(async () => {
web3 = new Web3(getSystemTestProvider());
localAccount = await createLocalAccount(web3);
- contract = new web3.zond.Contract(ZRC20TokenAbi) as unknown as Contract<
- typeof ZRC20TokenAbi
+ contract = new web3.qrl.Contract(SQRCTF1TokenAbi) as unknown as Contract<
+ typeof SQRCTF1TokenAbi
>;
deployOptions = {
- data: ZRC20TokenBytecode,
+ data: SQRCTF1TokenBytecode,
arguments: [initialSupply],
};
@@ -58,7 +58,7 @@ describe('contract', () => {
});
it.each(['0x2'])('should transfer tokens %p', async type => {
- const acc = web3.zond.accounts.create();
+ const acc = web3.qrl.accounts.create();
const value = BigInt(10);
await contractDeployed.methods.transfer(acc.address, value).send({
diff --git a/packages/web3-zond-contract/test/integration/local_account/contract_zrc721.test.ts b/packages/web3-qrl-contract/test/integration/local_account/contract_sqrcTn1.test.ts
similarity index 91%
rename from packages/web3-zond-contract/test/integration/local_account/contract_zrc721.test.ts
rename to packages/web3-qrl-contract/test/integration/local_account/contract_sqrcTn1.test.ts
index 950dbbc8..44b218d7 100644
--- a/packages/web3-zond-contract/test/integration/local_account/contract_zrc721.test.ts
+++ b/packages/web3-qrl-contract/test/integration/local_account/contract_sqrcTn1.test.ts
@@ -18,29 +18,29 @@ along with web3.js. If not, see .
// eslint-disable-next-line import/no-extraneous-dependencies
import Web3 from '@theqrl/web3';
// eslint-disable-next-line import/no-extraneous-dependencies
-import { Web3Account } from '@theqrl/web3-zond-accounts';
+import { Web3Account } from '@theqrl/web3-qrl-accounts';
import { Contract, EventLog } from '../../../src';
-import { ZRC721TokenAbi, ZRC721TokenBytecode } from '../../shared_fixtures/build/ZRC721Token';
+import { SQRCTN1TokenAbi, SQRCTN1TokenBytecode } from '../../shared_fixtures/build/SQRCTN1Token';
import { getSystemTestProvider, createLocalAccount } from '../../fixtures/system_test_utils';
import { toUpperCaseHex } from '../../shared_fixtures/utils';
describe('contract', () => {
- describe('zrc721', () => {
- let contract: Contract;
+ describe('sqrcTn1', () => {
+ let contract: Contract;
let sendOptions: Record;
let deployOptions: Record;
let localAccount: Web3Account;
let web3: Web3;
- let contractDeployed: Contract;
+ let contractDeployed: Contract;
beforeAll(async () => {
web3 = new Web3(getSystemTestProvider());
localAccount = await createLocalAccount(web3);
- contract = new web3.zond.Contract(ZRC721TokenAbi) as unknown as Contract<
- typeof ZRC721TokenAbi
+ contract = new web3.qrl.Contract(SQRCTN1TokenAbi) as unknown as Contract<
+ typeof SQRCTN1TokenAbi
>;
deployOptions = {
- data: ZRC721TokenBytecode,
+ data: SQRCTN1TokenBytecode,
arguments: [],
};
@@ -58,7 +58,7 @@ describe('contract', () => {
});
it.each(['0x2'])('should award item %p', async type => {
- const tempAccount = web3.zond.accounts.create();
+ const tempAccount = web3.qrl.accounts.create();
await contractDeployed.methods
.awardItem(tempAccount.address, 'http://my-nft-uri')
.send({ ...sendOptions, type });
diff --git a/packages/web3-zond-contract/test/integration/setup.js b/packages/web3-qrl-contract/test/integration/setup.js
similarity index 100%
rename from packages/web3-zond-contract/test/integration/setup.js
rename to packages/web3-qrl-contract/test/integration/setup.js
diff --git a/packages/web3-zond-contract/test/shared_fixtures b/packages/web3-qrl-contract/test/shared_fixtures
similarity index 100%
rename from packages/web3-zond-contract/test/shared_fixtures
rename to packages/web3-qrl-contract/test/shared_fixtures
diff --git a/packages/web3-zond-contract/test/tsconfig.json b/packages/web3-qrl-contract/test/tsconfig.json
similarity index 100%
rename from packages/web3-zond-contract/test/tsconfig.json
rename to packages/web3-qrl-contract/test/tsconfig.json
diff --git a/packages/web3-zond-contract/test/unit/contract.test.ts b/packages/web3-qrl-contract/test/unit/contract.test.ts
similarity index 92%
rename from packages/web3-zond-contract/test/unit/contract.test.ts
rename to packages/web3-qrl-contract/test/unit/contract.test.ts
index 2ac82b28..07433645 100644
--- a/packages/web3-zond-contract/test/unit/contract.test.ts
+++ b/packages/web3-qrl-contract/test/unit/contract.test.ts
@@ -15,13 +15,13 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-import * as zond from '@theqrl/web3-zond';
+import * as qrl from '@theqrl/web3-qrl';
import {
ValidChains,
Hardfork,
AccessListResult,
Address,
- ZOND_DATA_FORMAT,
+ QRL_DATA_FORMAT,
} from '@theqrl/web3-types';
import { Web3ContractError } from '@theqrl/web3-errors';
import { Web3Context } from '@theqrl/web3-core';
@@ -31,11 +31,11 @@ import { sampleStorageContractABI } from '../fixtures/storage';
import { GreeterAbi, GreeterBytecode } from '../shared_fixtures/build/Greeter';
import { AllGetPastEventsData, getLogsData, getPastEventsData } from '../fixtures/unitTestFixtures';
import { getSystemTestProvider, isHttp, itIf } from '../fixtures/system_test_utils';
-import { zrc721Abi } from '../fixtures/zrc721';
-import { ZRC20TokenAbi } from '../shared_fixtures/build/ZRC20Token';
+import { sqrcTn1Abi } from '../fixtures/sqrcTn1';
+import { SQRCTF1TokenAbi } from '../shared_fixtures/build/SQRCTF1Token';
import { processAsync } from '../shared_fixtures/utils';
-jest.mock('@theqrl/web3-zond');
+jest.mock('@theqrl/web3-qrl');
describe('Contract', () => {
describe('constructor', () => {
@@ -58,7 +58,7 @@ describe('Contract', () => {
});
it('should init with abi and address', () => {
- const contract = new Contract([], 'Z00000000219ab540356cBB839Cbe05303d7705Fa');
+ const contract = new Contract([], 'Q00000000219ab540356cBB839Cbe05303d7705Fa');
expect(contract).toBeInstanceOf(Contract);
});
@@ -95,14 +95,14 @@ describe('Contract', () => {
const contract = new Contract(
[],
{ gas: '123' },
- { config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
+ { config: { defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa' } },
);
expect(contract).toBeInstanceOf(Contract);
});
it('should init with abi, address and options', () => {
- const contract = new Contract([], 'Z00000000219ab540356cBB839Cbe05303d7705Fa', {
+ const contract = new Contract([], 'Q00000000219ab540356cBB839Cbe05303d7705Fa', {
gas: '123',
});
@@ -112,9 +112,9 @@ describe('Contract', () => {
it('should init with abi, address, options and context', () => {
const contract = new Contract(
[],
- 'Z00000000219ab540356cBB839Cbe05303d7705Fa',
+ 'Q00000000219ab540356cBB839Cbe05303d7705Fa',
{ gas: '123' },
- { config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
+ { config: { defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa' } },
);
expect(contract).toBeInstanceOf(Contract);
@@ -152,15 +152,15 @@ describe('Contract', () => {
});
it('should pass the returnDataFormat to `_parseAndSetAddress` and `_parseAndSetJsonInterface`', () => {
- const contract = new Contract([], '', ZOND_DATA_FORMAT);
+ const contract = new Contract([], '', QRL_DATA_FORMAT);
// @ts-expect-error run protected method
const parseAndSetAddressSpy = jest.spyOn(contract, '_parseAndSetAddress');
- contract.options.address = 'Z6e599da0bff7a6598ac1224e4985430bf16458a4';
+ contract.options.address = 'Q6e599da0bff7a6598ac1224e4985430bf16458a4';
expect(parseAndSetAddressSpy).toHaveBeenCalledWith(
- 'Z6e599da0bff7a6598ac1224e4985430bf16458a4',
- ZOND_DATA_FORMAT,
+ 'Q6e599da0bff7a6598ac1224e4985430bf16458a4',
+ QRL_DATA_FORMAT,
);
const parseAndSetJsonInterfaceSpy = jest.spyOn(
contract,
@@ -168,19 +168,19 @@ describe('Contract', () => {
'_parseAndSetJsonInterface',
);
contract.options.jsonInterface = [];
- expect(parseAndSetJsonInterfaceSpy).toHaveBeenCalledWith([], ZOND_DATA_FORMAT);
+ expect(parseAndSetJsonInterfaceSpy).toHaveBeenCalledWith([], QRL_DATA_FORMAT);
});
it('should pass the returnDataFormat, as the constructor forth parameter, to `_parseAndSetAddress` and `_parseAndSetJsonInterface`', () => {
- const contract = new Contract([], '', {}, ZOND_DATA_FORMAT);
+ const contract = new Contract([], '', {}, QRL_DATA_FORMAT);
// @ts-expect-error run protected method
const parseAndSetAddressSpy = jest.spyOn(contract, '_parseAndSetAddress');
- contract.options.address = 'Z6e599da0bff7a6598ac1224e4985430bf16458a4';
+ contract.options.address = 'Q6e599da0bff7a6598ac1224e4985430bf16458a4';
expect(parseAndSetAddressSpy).toHaveBeenCalledWith(
- 'Z6e599da0bff7a6598ac1224e4985430bf16458a4',
- ZOND_DATA_FORMAT,
+ 'Q6e599da0bff7a6598ac1224e4985430bf16458a4',
+ QRL_DATA_FORMAT,
);
const parseAndSetJsonInterfaceSpy = jest.spyOn(
contract,
@@ -188,19 +188,19 @@ describe('Contract', () => {
'_parseAndSetJsonInterface',
);
contract.options.jsonInterface = [];
- expect(parseAndSetJsonInterfaceSpy).toHaveBeenCalledWith([], ZOND_DATA_FORMAT);
+ expect(parseAndSetJsonInterfaceSpy).toHaveBeenCalledWith([], QRL_DATA_FORMAT);
});
it('should pass the returnDataFormat, as the constructor fifth parameter, to `_parseAndSetAddress` and `_parseAndSetJsonInterface`', () => {
- const contract = new Contract([], '', {}, {}, ZOND_DATA_FORMAT);
+ const contract = new Contract([], '', {}, {}, QRL_DATA_FORMAT);
// @ts-expect-error run protected method
const parseAndSetAddressSpy = jest.spyOn(contract, '_parseAndSetAddress');
- contract.options.address = 'Z6e599da0bff7a6598ac1224e4985430bf16458a4';
+ contract.options.address = 'Q6e599da0bff7a6598ac1224e4985430bf16458a4';
expect(parseAndSetAddressSpy).toHaveBeenCalledWith(
- 'Z6e599da0bff7a6598ac1224e4985430bf16458a4',
- ZOND_DATA_FORMAT,
+ 'Q6e599da0bff7a6598ac1224e4985430bf16458a4',
+ QRL_DATA_FORMAT,
);
const parseAndSetJsonInterfaceSpy = jest.spyOn(
contract,
@@ -208,17 +208,17 @@ describe('Contract', () => {
'_parseAndSetJsonInterface',
);
contract.options.jsonInterface = [];
- expect(parseAndSetJsonInterfaceSpy).toHaveBeenCalledWith([], ZOND_DATA_FORMAT);
+ expect(parseAndSetJsonInterfaceSpy).toHaveBeenCalledWith([], QRL_DATA_FORMAT);
});
});
describe('Contract functions and defaults', () => {
let sendOptions: Record;
- const deployedAddr = 'Z20bc23D0598b12c34cBDEf1fae439Ba8744DB426';
+ const deployedAddr = 'Q20bc23D0598b12c34cBDEf1fae439Ba8744DB426';
beforeEach(() => {
sendOptions = {
- from: 'Z12364916b10Ae90076dDa6dE756EE1395BB69ec2',
+ from: 'Q12364916b10Ae90076dDa6dE756EE1395BB69ec2',
gas: '1000000',
};
});
@@ -229,7 +229,7 @@ describe('Contract', () => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const sendTransactionSpy = jest
- .spyOn(zond, 'sendTransaction')
+ .spyOn(qrl, 'sendTransaction')
.mockImplementation((_objInstance, tx) => {
expect(tx.to).toBeUndefined();
expect(tx.gas).toStrictEqual(sendOptions.gas);
@@ -263,7 +263,7 @@ describe('Contract', () => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const sendTransactionSpy = jest
- .spyOn(zond, 'sendTransaction')
+ .spyOn(qrl, 'sendTransaction')
.mockImplementation((_objInstance, tx) => {
expect(tx.to).toBeUndefined();
expect(tx.gas).toStrictEqual(sendOptions.gas);
@@ -305,11 +305,11 @@ describe('Contract', () => {
const arg = 'Hello';
const contract = new Contract(GreeterAbi);
sendOptions = {
- from: 'Z12364916b10Ae90076dDa6dE756EE1395BB69ec2',
+ from: 'Q12364916b10Ae90076dDa6dE756EE1395BB69ec2',
gas: '1000000',
};
const spyTx = jest
- .spyOn(zond, 'sendTransaction')
+ .spyOn(qrl, 'sendTransaction')
.mockImplementation((_objInstance, _tx) => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
@@ -344,12 +344,12 @@ describe('Contract', () => {
const arg = 'Hello';
const contract = new Contract(GreeterAbi);
sendOptions = {
- from: 'Z12364916b10Ae90076dDa6dE756EE1395BB69ec2',
+ from: 'Q12364916b10Ae90076dDa6dE756EE1395BB69ec2',
gas: '1000000',
data: '0xa41368620000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000548656c6c6f000000000000000000000000000000000000000000000000000000',
};
const spyTx = jest
- .spyOn(zond, 'sendTransaction')
+ .spyOn(qrl, 'sendTransaction')
.mockImplementation((_objInstance, _tx) => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
@@ -386,17 +386,17 @@ describe('Contract', () => {
provider: expectedProvider,
config: {
contractDataInputFill: 'data',
- defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa',
+ defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa',
},
});
const arg = 'Hello';
const contract = new Contract(GreeterAbi, web3Context);
sendOptions = {
- from: 'Z12364916b10Ae90076dDa6dE756EE1395BB69ec2',
+ from: 'Q12364916b10Ae90076dDa6dE756EE1395BB69ec2',
gas: '1000000',
};
const spyTx = jest
- .spyOn(zond, 'sendTransaction')
+ .spyOn(qrl, 'sendTransaction')
.mockImplementation((_objInstance, _tx) => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
@@ -432,17 +432,17 @@ describe('Contract', () => {
provider: expectedProvider,
config: {
contractDataInputFill: 'both',
- defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa',
+ defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa',
},
});
const arg = 'Hello';
const contract = new Contract(GreeterAbi, web3Context);
sendOptions = {
- from: 'Z12364916b10Ae90076dDa6dE756EE1395BB69ec2',
+ from: 'Q12364916b10Ae90076dDa6dE756EE1395BB69ec2',
gas: '1000000',
};
const spyTx = jest
- .spyOn(zond, 'sendTransaction')
+ .spyOn(qrl, 'sendTransaction')
.mockImplementation((_objInstance, _tx) => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
@@ -482,17 +482,17 @@ describe('Contract', () => {
provider: expectedProvider,
config: {
contractDataInputFill: 'input',
- defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa',
+ defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa',
},
});
const arg = 'Hello';
const contract = new Contract(GreeterAbi, web3Context);
sendOptions = {
- from: 'Z12364916b10Ae90076dDa6dE756EE1395BB69ec2',
+ from: 'Q12364916b10Ae90076dDa6dE756EE1395BB69ec2',
gas: '1000000',
};
const spyTx = jest
- .spyOn(zond, 'sendTransaction')
+ .spyOn(qrl, 'sendTransaction')
.mockImplementation((_objInstance, _tx) => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
@@ -528,14 +528,14 @@ describe('Contract', () => {
'0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000548656c6c6f000000000000000000000000000000000000000000000000000000';
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return Promise.resolve(newContract) as any;
});
- const spyZondCall = jest.spyOn(zond, 'call').mockImplementation((_objInstance, _tx) => {
+ const spyQRLCall = jest.spyOn(qrl, 'call').mockImplementation((_objInstance, _tx) => {
expect(_tx.to).toStrictEqual(deployedAddr);
expect(_tx.input).toBe('0xcfae3217');
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -551,13 +551,13 @@ describe('Contract', () => {
expect(res).toStrictEqual(arg);
spyTx.mockClear();
- spyZondCall.mockClear();
+ spyQRLCall.mockClear();
});
it('should clone pre deployed contract with address', () => {
const contract = new Contract(
sampleStorageContractABI,
- 'Z00000000219ab540356cBB839Cbe05303d7705Fa',
+ 'Q00000000219ab540356cBB839Cbe05303d7705Fa',
{ gas: '0x97254' },
);
@@ -596,9 +596,9 @@ describe('Contract', () => {
});
it('defaults set and get should work', () => {
- const contract = new Contract([], 'Z00000000219ab540356cBB839Cbe05303d7705Fa');
+ const contract = new Contract([], 'Q00000000219ab540356cBB839Cbe05303d7705Fa');
- const defaultAddr = 'Zd7E30ae310C1D1800F5B641Baa7af95b2e1FD98C';
+ const defaultAddr = 'Qd7E30ae310C1D1800F5B641Baa7af95b2e1FD98C';
expect(contract.defaultAccount).toBeUndefined();
contract.defaultAccount = defaultAddr;
expect(contract.defaultAccount).toStrictEqual(defaultAddr);
@@ -713,12 +713,12 @@ describe('Contract', () => {
});
it('should set and get correct address', () => {
- const addr = 'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701';
+ const addr = 'Q1230B93ffd14F2F022039675fA3fc3A46eE4C701';
const contract = new Contract(
[],
'',
{ gas: '123' },
- { config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
+ { config: { defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa' } },
);
contract.options.address = addr;
@@ -728,9 +728,9 @@ describe('Contract', () => {
it('should set, at the constructor, and later get jsonInterface', () => {
const contract = new Contract(
sampleStorageContractABI,
- 'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
+ 'Q1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123' },
- { config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
+ { config: { defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa' } },
);
expect(contract.options.jsonInterface).toMatchObject(sampleStorageContractABI);
@@ -739,27 +739,27 @@ describe('Contract', () => {
it('should set and get jsonInterface', () => {
const contract = new Contract(
sampleStorageContractABI,
- 'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
+ 'Q1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123' },
- { config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
+ { config: { defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa' } },
);
- contract.options.jsonInterface = ZRC20TokenAbi;
- expect(contract.options.jsonInterface).toMatchObject(ZRC20TokenAbi);
+ contract.options.jsonInterface = SQRCTF1TokenAbi;
+ expect(contract.options.jsonInterface).toMatchObject(SQRCTF1TokenAbi);
});
it('should be able to call a payable method', async () => {
const contract = new Contract(
- zrc721Abi,
- 'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
+ sqrcTn1Abi,
+ 'Q1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123' },
- { config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
+ { config: { defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa' } },
);
- const spyZondCall = jest
- .spyOn(zond, 'call')
+ const spyQRLCall = jest
+ .spyOn(qrl, 'call')
.mockImplementation(async (_objInstance, _tx) => {
- expect(_tx.to).toBe('Z1230B93ffd14F2F022039675fA3fc3A46eE4C701');
+ expect(_tx.to).toBe('Q1230B93ffd14F2F022039675fA3fc3A46eE4C701');
expect(_tx.input).toBe(
'0x095ea7b300000000000000000000000000000000219ab540356cbb839cbe05303d7705fa0000000000000000000000000000000000000000000000000000000000000001',
);
@@ -767,24 +767,24 @@ describe('Contract', () => {
});
await expect(
- contract.methods.approve('Z00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
+ contract.methods.approve('Q00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
).resolves.toBeTruthy();
- spyZondCall.mockClear();
+ spyQRLCall.mockClear();
});
it('should be able to call a payable method with data as a contract init option', async () => {
const contract = new Contract(
- zrc721Abi,
- 'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
+ sqrcTn1Abi,
+ 'Q1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123', dataInputFill: 'data' },
- { config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
+ { config: { defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa' } },
);
- const spyZondCall = jest
- .spyOn(zond, 'call')
+ const spyQRLCall = jest
+ .spyOn(qrl, 'call')
.mockImplementation(async (_objInstance, _tx) => {
- expect(_tx.to).toBe('Z1230B93ffd14F2F022039675fA3fc3A46eE4C701');
+ expect(_tx.to).toBe('Q1230B93ffd14F2F022039675fA3fc3A46eE4C701');
expect(_tx.data).toBe(
'0x095ea7b300000000000000000000000000000000219ab540356cbb839cbe05303d7705fa0000000000000000000000000000000000000000000000000000000000000001',
);
@@ -792,24 +792,24 @@ describe('Contract', () => {
});
await expect(
- contract.methods.approve('Z00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
+ contract.methods.approve('Q00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
).resolves.toBeTruthy();
- spyZondCall.mockClear();
+ spyQRLCall.mockClear();
});
it('should be able to call a payable method with input as a contract init option', async () => {
const contract = new Contract(
- zrc721Abi,
- 'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
+ sqrcTn1Abi,
+ 'Q1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123', dataInputFill: 'input' },
- { config: { defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa' } },
+ { config: { defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa' } },
);
- const spyZondCall = jest
- .spyOn(zond, 'call')
+ const spyQRLCall = jest
+ .spyOn(qrl, 'call')
.mockImplementation(async (_objInstance, _tx) => {
- expect(_tx.to).toBe('Z1230B93ffd14F2F022039675fA3fc3A46eE4C701');
+ expect(_tx.to).toBe('Q1230B93ffd14F2F022039675fA3fc3A46eE4C701');
expect(_tx.input).toBe(
'0x095ea7b300000000000000000000000000000000219ab540356cbb839cbe05303d7705fa0000000000000000000000000000000000000000000000000000000000000001',
);
@@ -817,10 +817,10 @@ describe('Contract', () => {
});
await expect(
- contract.methods.approve('Z00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
+ contract.methods.approve('Q00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
).resolves.toBeTruthy();
- spyZondCall.mockClear();
+ spyQRLCall.mockClear();
});
it('should be able to call a payable method with data as a web3Context option', async () => {
@@ -829,20 +829,20 @@ describe('Contract', () => {
provider: expectedProvider,
config: {
contractDataInputFill: 'data',
- defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa',
+ defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa',
},
});
const contract = new Contract(
- zrc721Abi,
- 'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
+ sqrcTn1Abi,
+ 'Q1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123' },
web3Context,
);
- const spyZondCall = jest
- .spyOn(zond, 'call')
+ const spyQRLCall = jest
+ .spyOn(qrl, 'call')
.mockImplementation(async (_objInstance, _tx) => {
- expect(_tx.to).toBe('Z1230B93ffd14F2F022039675fA3fc3A46eE4C701');
+ expect(_tx.to).toBe('Q1230B93ffd14F2F022039675fA3fc3A46eE4C701');
expect(_tx.data).toBe(
'0x095ea7b300000000000000000000000000000000219ab540356cbb839cbe05303d7705fa0000000000000000000000000000000000000000000000000000000000000001',
);
@@ -850,10 +850,10 @@ describe('Contract', () => {
});
await expect(
- contract.methods.approve('Z00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
+ contract.methods.approve('Q00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
).resolves.toBeTruthy();
- spyZondCall.mockClear();
+ spyQRLCall.mockClear();
});
it('should be able to call a payable method with both data and input as a web3Context option', async () => {
@@ -862,20 +862,20 @@ describe('Contract', () => {
provider: expectedProvider,
config: {
contractDataInputFill: 'both',
- defaultAccount: 'Z00000000219ab540356cBB839Cbe05303d7705Fa',
+ defaultAccount: 'Q00000000219ab540356cBB839Cbe05303d7705Fa',
},
});
const contract = new Contract(
- zrc721Abi,
- 'Z1230B93ffd14F2F022039675fA3fc3A46eE4C701',
+ sqrcTn1Abi,
+ 'Q1230B93ffd14F2F022039675fA3fc3A46eE4C701',
{ gas: '123' },
web3Context,
);
- const spyZondCall = jest
- .spyOn(zond, 'call')
+ const spyQRLCall = jest
+ .spyOn(qrl, 'call')
.mockImplementation(async (_objInstance, _tx) => {
- expect(_tx.to).toBe('Z1230B93ffd14F2F022039675fA3fc3A46eE4C701');
+ expect(_tx.to).toBe('Q1230B93ffd14F2F022039675fA3fc3A46eE4C701');
expect(_tx.data).toBe(
'0x095ea7b300000000000000000000000000000000219ab540356cbb839cbe05303d7705fa0000000000000000000000000000000000000000000000000000000000000001',
);
@@ -886,16 +886,16 @@ describe('Contract', () => {
});
await expect(
- contract.methods.approve('Z00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
+ contract.methods.approve('Q00000000219ab540356cBB839Cbe05303d7705Fa', 1).call(),
).resolves.toBeTruthy();
- spyZondCall.mockClear();
+ spyQRLCall.mockClear();
});
it('getPastEvents with filter should work', async () => {
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -903,9 +903,9 @@ describe('Contract', () => {
});
const spyGetLogs = jest
- .spyOn(zond, 'getLogs')
+ .spyOn(qrl, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Q${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toStrictEqual(getLogsData.request.fromBlock);
expect(_params.toBlock).toStrictEqual(getLogsData.request.toBlock);
expect(_params.topics).toStrictEqual(getLogsData.request.topics);
@@ -936,7 +936,7 @@ describe('Contract', () => {
it('getPastEvents with filter by topics should work', async () => {
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -944,9 +944,9 @@ describe('Contract', () => {
});
const spyGetLogs = jest
- .spyOn(zond, 'getLogs')
+ .spyOn(qrl, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Q${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toStrictEqual(getLogsData.request.fromBlock);
expect(_params.toBlock).toStrictEqual(getLogsData.request.toBlock);
@@ -977,7 +977,7 @@ describe('Contract', () => {
it('getPastEvents for all events should work', async () => {
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -985,9 +985,9 @@ describe('Contract', () => {
});
const spyGetLogs = jest
- .spyOn(zond, 'getLogs')
+ .spyOn(qrl, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Q${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toBeUndefined();
expect(_params.toBlock).toBeUndefined();
expect(_params.topics).toBeUndefined();
@@ -1013,7 +1013,7 @@ describe('Contract', () => {
it('getPastEvents for all events with filter should work', async () => {
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1021,9 +1021,9 @@ describe('Contract', () => {
});
const spyGetLogs = jest
- .spyOn(zond, 'getLogs')
+ .spyOn(qrl, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Q${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toBeUndefined();
expect(_params.toBlock).toBeUndefined();
expect(_params.topics).toBeUndefined();
@@ -1080,7 +1080,7 @@ describe('Contract', () => {
it('getPastEvents for all events with filter by topics should work', async () => {
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1088,9 +1088,9 @@ describe('Contract', () => {
});
const spyGetLogs = jest
- .spyOn(zond, 'getLogs')
+ .spyOn(qrl, 'getLogs')
.mockImplementation((_objInstance, _params) => {
- expect(_params.address).toBe(`Z${deployedAddr.slice(1).toLocaleLowerCase()}`);
+ expect(_params.address).toBe(`Q${deployedAddr.slice(1).toLocaleLowerCase()}`);
expect(_params.fromBlock).toBeUndefined();
expect(_params.toBlock).toBeUndefined();
@@ -1118,7 +1118,7 @@ describe('Contract', () => {
it('allEvents() should throw error with inner error', async () => {
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1126,7 +1126,7 @@ describe('Contract', () => {
});
const spyGetLogs = jest
- .spyOn(zond, 'getLogs')
+ .spyOn(qrl, 'getLogs')
.mockImplementation((_objInstance, _params) => {
throw new Error('Inner error');
});
@@ -1158,7 +1158,7 @@ describe('Contract', () => {
it('encodeABI should work for the deploy function using data', () => {
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1181,7 +1181,7 @@ describe('Contract', () => {
it('estimateGas should work for the deploy function using input', async () => {
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1189,7 +1189,7 @@ describe('Contract', () => {
});
const spyEstimateGas = jest
- .spyOn(zond, 'estimateGas')
+ .spyOn(qrl, 'estimateGas')
.mockImplementationOnce((_objInstance, _tx, _block, returnFormat) => {
expect(_block).toBe('latest');
expect(_tx.to).toBeUndefined();
@@ -1197,7 +1197,7 @@ describe('Contract', () => {
expect(_tx.input).toBe(
'0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
- expect(returnFormat).toBe(ZOND_DATA_FORMAT);
+ expect(returnFormat).toBe(QRL_DATA_FORMAT);
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return Promise.resolve(BigInt(36916)) as any;
@@ -1208,7 +1208,7 @@ describe('Contract', () => {
arguments: ['My Greeting'],
});
- const result = await deploy.estimateGas(sendOptions, ZOND_DATA_FORMAT);
+ const result = await deploy.estimateGas(sendOptions, QRL_DATA_FORMAT);
expect(result).toStrictEqual(BigInt(36916));
spyTx.mockClear();
@@ -1218,7 +1218,7 @@ describe('Contract', () => {
it('estimateGas should work for the deploy function using data', async () => {
const contract = new Contract(GreeterAbi);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1226,7 +1226,7 @@ describe('Contract', () => {
});
const spyEstimateGas = jest
- .spyOn(zond, 'estimateGas')
+ .spyOn(qrl, 'estimateGas')
.mockImplementationOnce((_objInstance, _tx, _block, returnFormat) => {
expect(_block).toBe('latest');
expect(_tx.to).toBeUndefined();
@@ -1234,7 +1234,7 @@ describe('Contract', () => {
expect(_tx.data).toBe(
'0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
- expect(returnFormat).toBe(ZOND_DATA_FORMAT);
+ expect(returnFormat).toBe(QRL_DATA_FORMAT);
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return Promise.resolve(BigInt(36916)) as any;
@@ -1245,7 +1245,7 @@ describe('Contract', () => {
arguments: ['My Greeting'],
});
- const result = await deploy.estimateGas(sendOptions, ZOND_DATA_FORMAT);
+ const result = await deploy.estimateGas(sendOptions, QRL_DATA_FORMAT);
expect(result).toStrictEqual(BigInt(36916));
spyTx.mockClear();
@@ -1261,7 +1261,7 @@ describe('Contract', () => {
const contract = new Contract(GreeterAbi, web3Context);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1269,7 +1269,7 @@ describe('Contract', () => {
});
const spyEstimateGas = jest
- .spyOn(zond, 'estimateGas')
+ .spyOn(qrl, 'estimateGas')
.mockImplementationOnce((_objInstance, _tx, _block, returnFormat) => {
expect(_block).toBe('latest');
expect(_tx.to).toBeUndefined();
@@ -1280,7 +1280,7 @@ describe('Contract', () => {
expect(_tx.input).toBe(
'0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
- expect(returnFormat).toBe(ZOND_DATA_FORMAT);
+ expect(returnFormat).toBe(QRL_DATA_FORMAT);
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return Promise.resolve(BigInt(36916)) as any;
@@ -1291,7 +1291,7 @@ describe('Contract', () => {
arguments: ['My Greeting'],
});
- const result = await deploy.estimateGas(sendOptions, ZOND_DATA_FORMAT);
+ const result = await deploy.estimateGas(sendOptions, QRL_DATA_FORMAT);
expect(result).toStrictEqual(BigInt(36916));
spyTx.mockClear();
@@ -1306,7 +1306,7 @@ describe('Contract', () => {
const contract = new Contract(GreeterAbi, web3Context);
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1314,7 +1314,7 @@ describe('Contract', () => {
});
const spyEstimateGas = jest
- .spyOn(zond, 'estimateGas')
+ .spyOn(qrl, 'estimateGas')
.mockImplementationOnce((_objInstance, _tx, _block, returnFormat) => {
expect(_block).toBe('latest');
expect(_tx.to).toBeUndefined();
@@ -1322,7 +1322,7 @@ describe('Contract', () => {
expect(_tx.data).toBe(
'0x608060405234801562000010575f80fd5b5060405162000e6238038062000e628339818101604052810190620000369190620001da565b806001908162000047919062000460565b505f80819055505062000544565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620000b6826200006e565b810181811067ffffffffffffffff82111715620000d857620000d76200007e565b5b80604052505050565b5f620000ec62000055565b9050620000fa8282620000ab565b919050565b5f67ffffffffffffffff8211156200011c576200011b6200007e565b5b62000127826200006e565b9050602081019050919050565b5f5b838110156200015357808201518184015260208101905062000136565b5f8484015250505050565b5f620001746200016e84620000ff565b620000e1565b9050828152602081018484840111156200019357620001926200006a565b5b620001a084828562000134565b509392505050565b5f82601f830112620001bf57620001be62000066565b5b8151620001d18482602086016200015e565b91505092915050565b5f60208284031215620001f257620001f16200005e565b5b5f82015167ffffffffffffffff81111562000212576200021162000062565b5b6200022084828501620001a8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200027857607f821691505b6020821081036200028e576200028d62000233565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002b5565b620002fe8683620002b5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000348620003426200033c8462000316565b6200031f565b62000316565b9050919050565b5f819050919050565b620003638362000328565b6200037b62000372826200034f565b848454620002c1565b825550505050565b5f90565b6200039162000383565b6200039e81848462000358565b505050565b5b81811015620003c557620003b95f8262000387565b600181019050620003a4565b5050565b601f8211156200041457620003de8162000294565b620003e984620002a6565b81016020851015620003f9578190505b620004116200040885620002a6565b830182620003a3565b50505b505050565b5f82821c905092915050565b5f620004365f198460080262000419565b1980831691505092915050565b5f62000450838362000425565b9150826002028217905092915050565b6200046b8262000229565b67ffffffffffffffff8111156200048757620004866200007e565b5b62000493825462000260565b620004a0828285620003c9565b5f60209050601f831160018114620004d6575f8415620004c1578287015190505b620004cd858262000443565b8655506200053c565b601f198416620004e68662000294565b5f5b828110156200050f57848901518255600182019150602085019450602081019050620004e8565b868310156200052f57848901516200052b601f89168262000425565b8355505b6001600288020188555050505b505050505050565b61091080620005525f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a413686214610043578063cfae321714610074578063d09de08a14610092575b5f80fd5b61005d600480360381019061005891906103a9565b61009c565b60405161006b929190610484565b60405180910390f35b61007c6101b7565b60405161008991906104b2565b60405180910390f35b61009a610247565b005b5f60607f0d363f2fba46ab11b6db8da0125b0d5484787c44e265b48810735998bab12b756001846040516100d19291906105c2565b60405180910390a182600190816100e8919061078b565b507f7d7846723bda52976e0286c6efffee937ee9f76817a867ec70531ad29fb1fc0e6001604051610119919061085a565b60405180910390a1600180808054610130906104ff565b80601f016020809104026020016040519081016040528092919081815260200182805461015c906104ff565b80156101a75780601f1061017e576101008083540402835291602001916101a7565b820191905f5260205f20905b81548152906001019060200180831161018a57829003601f168201915b5050505050905091509150915091565b6060600180546101c6906104ff565b80601f01602080910402602001604051908101604052809291908181526020018280546101f2906104ff565b801561023d5780601f106102145761010080835404028352916020019161023d565b820191905f5260205f20905b81548152906001019060200180831161022057829003601f168201915b5050505050905090565b60015f5461025591906108a7565b5f81905550565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102bb82610275565b810181811067ffffffffffffffff821117156102da576102d9610285565b5b80604052505050565b5f6102ec61025c565b90506102f882826102b2565b919050565b5f67ffffffffffffffff82111561031757610316610285565b5b61032082610275565b9050602081019050919050565b828183375f83830152505050565b5f61034d610348846102fd565b6102e3565b90508281526020810184848401111561036957610368610271565b5b61037484828561032d565b509392505050565b5f82601f8301126103905761038f61026d565b5b81356103a084826020860161033b565b91505092915050565b5f602082840312156103be576103bd610265565b5b5f82013567ffffffffffffffff8111156103db576103da610269565b5b6103e78482850161037c565b91505092915050565b5f8115159050919050565b610404816103f0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610441578082015181840152602081019050610426565b5f8484015250505050565b5f6104568261040a565b6104608185610414565b9350610470818560208601610424565b61047981610275565b840191505092915050565b5f6040820190506104975f8301856103fb565b81810360208301526104a9818461044c565b90509392505050565b5f6020820190508181035f8301526104ca818461044c565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061051657607f821691505b602082108103610529576105286104d2565b5b50919050565b5f819050815f5260205f209050919050565b5f815461054d816104ff565b6105578186610414565b9450600182165f81146105715760018114610587576105b9565b60ff1983168652811515602002860193506105b9565b6105908561052f565b5f5b838110156105b157815481890152600182019150602081019050610592565b808801955050505b50505092915050565b5f6040820190508181035f8301526105da8185610541565b905081810360208301526105ee818461044c565b90509392505050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610606565b61064b8683610606565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61068f61068a61068584610663565b61066c565b610663565b9050919050565b5f819050919050565b6106a883610675565b6106bc6106b482610696565b848454610612565b825550505050565b5f90565b6106d06106c4565b6106db81848461069f565b505050565b5b818110156106fe576106f35f826106c8565b6001810190506106e1565b5050565b601f821115610743576107148161052f565b61071d846105f7565b8101602085101561072c578190505b610740610738856105f7565b8301826106e0565b50505b505050565b5f82821c905092915050565b5f6107635f1984600802610748565b1980831691505092915050565b5f61077b8383610754565b9150826002028217905092915050565b6107948261040a565b67ffffffffffffffff8111156107ad576107ac610285565b5b6107b782546104ff565b6107c2828285610702565b5f60209050601f8311600181146107f3575f84156107e1578287015190505b6107eb8582610770565b865550610852565b601f1984166108018661052f565b5f5b8281101561082857848901518255600182019150602085019450602081019050610803565b868310156108455784890151610841601f891682610754565b8355505b6001600288020188555050505b505050505050565b5f6020820190508181035f8301526108728184610541565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108b182610663565b91506108bc83610663565b92508282019050808211156108d4576108d361087a565b5b9291505056fea264697066735822122039a530133d747adb5dc07fe92ab69bfc5e9af0e823a9563f32a3974379e87da564687970634300000200330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b4d79204772656574696e67000000000000000000000000000000000000000000',
);
- expect(returnFormat).toBe(ZOND_DATA_FORMAT);
+ expect(returnFormat).toBe(QRL_DATA_FORMAT);
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return Promise.resolve(BigInt(36916)) as any;
@@ -1333,7 +1333,7 @@ describe('Contract', () => {
arguments: ['My Greeting'],
});
- const result = await deploy.estimateGas(sendOptions, ZOND_DATA_FORMAT);
+ const result = await deploy.estimateGas(sendOptions, QRL_DATA_FORMAT);
expect(result).toStrictEqual(BigInt(36916));
spyTx.mockClear();
@@ -1345,7 +1345,7 @@ describe('Contract', () => {
const contract = new Contract(GreeterAbi, { data: GreeterBytecode });
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1353,7 +1353,7 @@ describe('Contract', () => {
});
const spyEstimateGas = jest
- .spyOn(zond, 'estimateGas')
+ .spyOn(qrl, 'estimateGas')
.mockImplementationOnce((_objInstance, _tx, _block) => {
expect(_block).toBe('latest');
expect(_tx.to).toStrictEqual(deployedAddr);
@@ -1384,7 +1384,7 @@ describe('Contract', () => {
const contract = new Contract(GreeterAbi, { data: GreeterBytecode });
- const spyTx = jest.spyOn(zond, 'sendTransaction').mockImplementation(() => {
+ const spyTx = jest.spyOn(qrl, 'sendTransaction').mockImplementation(() => {
const newContract = contract.clone();
newContract.options.address = deployedAddr;
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
@@ -1422,7 +1422,7 @@ describe('Contract', () => {
const arg = 'Hello';
const contract = new Contract(GreeterAbi);
- contract.options.address = 'Z12364916b10Ae90076dDa6dE756EE1395BB69ec2';
+ contract.options.address = 'Q12364916b10Ae90076dDa6dE756EE1395BB69ec2';
/* eslint-disable no-useless-escape */
await expect(async () => {
@@ -1431,7 +1431,7 @@ describe('Contract', () => {
});
it('contract method createAccessList should work', async () => {
- const fromAddr: Address = 'Z20bc23D0598b12c34cBDEf1fae439Ba8744DB426';
+ const fromAddr: Address = 'Q20bc23D0598b12c34cBDEf1fae439Ba8744DB426';
const result: AccessListResult = {
accessList: [
{
@@ -1446,8 +1446,8 @@ describe('Contract', () => {
const contract = new Contract(GreeterAbi, deployedAddr);
- const spyZondCall = jest
- .spyOn(zond, 'createAccessList')
+ const spyQRLCall = jest
+ .spyOn(qrl, 'createAccessList')
.mockImplementation((_objInstance, _tx) => {
expect(_tx.to).toStrictEqual(deployedAddr);
expect(_tx.input).toBe('0xcfae3217');
@@ -1459,7 +1459,7 @@ describe('Contract', () => {
const res = await contract.methods.greet().createAccessList({ from: fromAddr });
expect(res).toStrictEqual(result);
- spyZondCall.mockClear();
+ spyQRLCall.mockClear();
});
it('contract method createAccessList should work using data with web3config', async () => {
@@ -1468,7 +1468,7 @@ describe('Contract', () => {
provider: expectedProvider,
config: { contractDataInputFill: 'data' },
});
- const fromAddr: Address = 'Z20bc23D0598b12c34cBDEf1fae439Ba8744DB426';
+ const fromAddr: Address = 'Q20bc23D0598b12c34cBDEf1fae439Ba8744DB426';
const result: AccessListResult = {
accessList: [
{
@@ -1484,7 +1484,7 @@ describe('Contract', () => {
const contract = new Contract(GreeterAbi, deployedAddr, web3Context);
const spyEthCall = jest
- .spyOn(zond, 'createAccessList')
+ .spyOn(qrl, 'createAccessList')
.mockImplementation((_objInstance, _tx) => {
expect(_tx.to).toStrictEqual(deployedAddr);
expect(_tx.data).toBe('0xcfae3217');
@@ -1504,7 +1504,7 @@ describe('Contract', () => {
provider: expectedProvider,
config: { contractDataInputFill: 'both' },
});
- const fromAddr: Address = 'Z20bc23D0598b12c34cBDEf1fae439Ba8744DB426';
+ const fromAddr: Address = 'Q20bc23D0598b12c34cBDEf1fae439Ba8744DB426';
const result: AccessListResult = {
accessList: [
{
@@ -1520,7 +1520,7 @@ describe('Contract', () => {
const contract = new Contract(GreeterAbi, deployedAddr, web3Context);
const spyEthCall = jest
- .spyOn(zond, 'createAccessList')
+ .spyOn(qrl, 'createAccessList')
.mockImplementation((_objInstance, _tx) => {
expect(_tx.to).toStrictEqual(deployedAddr);
expect(_tx.data).toBe('0xcfae3217');
diff --git a/packages/web3-zond-contract/test/unit/contract_typing.test.ts b/packages/web3-qrl-contract/test/unit/contract_typing.test.ts
similarity index 72%
rename from packages/web3-zond-contract/test/unit/contract_typing.test.ts
rename to packages/web3-qrl-contract/test/unit/contract_typing.test.ts
index 84d5e710..a48b86e9 100644
--- a/packages/web3-zond-contract/test/unit/contract_typing.test.ts
+++ b/packages/web3-qrl-contract/test/unit/contract_typing.test.ts
@@ -20,8 +20,8 @@ along with web3.js. If not, see .
import { expectTypeOf, typecheck } from '@humeris/espresso-shot';
import { Numbers } from '@theqrl/web3-types';
import { Contract } from '../../src/contract';
-import { zrc20Abi, Zrc20Interface } from '../fixtures/zrc20';
-import { zrc721Abi, Zrc721Interface } from '../fixtures/zrc721';
+import { sqrcTf1Abi, SqrcTf1Interface } from '../fixtures/sqrcTf1';
+import { sqrcTn1Abi, SqrcTn1Interface } from '../fixtures/sqrcTn1';
import { NonPayableMethodObject, PayableMethodObject } from '../../src';
describe('contract typing', () => {
@@ -59,44 +59,44 @@ describe('contract typing', () => {
>(),
);
});
- describe('zrc20', () => {
- const contract = new Contract(zrc20Abi);
+ describe('sqrcTf1', () => {
+ const contract = new Contract(sqrcTf1Abi);
typecheck('should contain all methods', () =>
- expectTypeOf().toBe(),
+ expectTypeOf().toBe(),
);
typecheck('should have interface compliance methods', () =>
- expectTypeOf(contract.methods).toExtend(),
+ expectTypeOf(contract.methods).toExtend(),
);
typecheck('should have all events', () =>
- expectTypeOf().toBe(),
+ expectTypeOf().toBe(),
);
typecheck('should have interface compliance events', () =>
- expectTypeOf(contract.events).toExtend(),
+ expectTypeOf(contract.events).toExtend(),
);
});
- describe('zrc721', () => {
- const contract = new Contract(zrc721Abi);
+ describe('sqrcTn1', () => {
+ const contract = new Contract(sqrcTn1Abi);
typecheck('should contain all methods', () =>
- expectTypeOf().toBe(),
+ expectTypeOf().toBe(),
);
// TODO: It's not matching types for `safeTransferFrom` because of overloaded method
// typecheck('should have interface compliance methods', () =>
- // expectTypeOf(contract.methods).toExtend(),
+ // expectTypeOf(contract.methods).toExtend(),
// );
typecheck('should have all events', () =>
- expectTypeOf().toBe(),
+ expectTypeOf().toBe(),
);
typecheck('should have interface compliance events', () =>
- expectTypeOf(contract.events).toExtend(),
+ expectTypeOf(contract.events).toExtend(),
);
});
});
diff --git a/packages/web3-zond-contract/test/unit/encode_event_abi.test.ts b/packages/web3-qrl-contract/test/unit/encode_event_abi.test.ts
similarity index 93%
rename from packages/web3-zond-contract/test/unit/encode_event_abi.test.ts
rename to packages/web3-qrl-contract/test/unit/encode_event_abi.test.ts
index c3d8b198..316cbef2 100644
--- a/packages/web3-zond-contract/test/unit/encode_event_abi.test.ts
+++ b/packages/web3-qrl-contract/test/unit/encode_event_abi.test.ts
@@ -18,7 +18,7 @@ import { AbiEventFragment } from '@theqrl/web3-types';
import { ContractOptions, encodeEventABI } from '../../src';
const contractOptions: ContractOptions = {
- address: 'Zde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',
+ address: 'Qde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',
} as ContractOptions;
const abiEventFragment: AbiEventFragment & { signature: string } = {
anonymous: false,
@@ -55,7 +55,7 @@ describe('encodeEventAbi', () => {
expect(encodedEventFilter).toMatchObject({
fromBlock: '0xa',
- address: 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
+ address: 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
});
});
@@ -66,7 +66,7 @@ describe('encodeEventAbi', () => {
expect(encodedEventFilter).toMatchObject({
toBlock: '0xa',
- address: 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
+ address: 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
});
});
@@ -77,7 +77,7 @@ describe('encodeEventAbi', () => {
expect(encodedEventFilter).toMatchObject({
topics: ['0x3f6d5d7b72c0059e2ecac56fd4adeefb2cff23aa41d13170f78ea6bf81e6e0ca'],
- address: 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
+ address: 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
});
});
@@ -97,7 +97,7 @@ describe('encodeEventAbi', () => {
expect(encodedEventFilter).toMatchObject({
fromBlock: '0x3e8',
- address: 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
+ address: 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
});
});
@@ -179,7 +179,7 @@ describe('encodeEventAbi', () => {
// eslint-disable-next-line no-null/no-null
null,
],
- address: 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
+ address: 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
});
});
@@ -199,7 +199,7 @@ describe('encodeEventAbi', () => {
null,
'0x0000000000000000000000000000000000000000000000000000000000000001',
],
- address: 'Zde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
+ address: 'Qde0b295669a9fd93d5f28d9ec85e40f4cb697bae',
});
});
});
diff --git a/packages/web3-zond-contract/test/unit/encoding.ts b/packages/web3-qrl-contract/test/unit/encoding.ts
similarity index 100%
rename from packages/web3-zond-contract/test/unit/encoding.ts
rename to packages/web3-qrl-contract/test/unit/encoding.ts
diff --git a/packages/web3-zond-contract/test/unit/jest.config.js b/packages/web3-qrl-contract/test/unit/jest.config.js
similarity index 85%
rename from packages/web3-zond-contract/test/unit/jest.config.js
rename to packages/web3-qrl-contract/test/unit/jest.config.js
index cc07f3da..cb06b7d5 100644
--- a/packages/web3-zond-contract/test/unit/jest.config.js
+++ b/packages/web3-qrl-contract/test/unit/jest.config.js
@@ -11,7 +11,7 @@ module.exports = {
[
'json',
{
- file: 'web3-zond-contract-unit-coverage.json',
+ file: 'web3-qrl-contract-unit-coverage.json',
},
],
],
diff --git a/packages/web3-zond-contract/tsconfig.cjs.json b/packages/web3-qrl-contract/tsconfig.cjs.json
similarity index 100%
rename from packages/web3-zond-contract/tsconfig.cjs.json
rename to packages/web3-qrl-contract/tsconfig.cjs.json
diff --git a/packages/web3-zond-contract/tsconfig.esm.json b/packages/web3-qrl-contract/tsconfig.esm.json
similarity index 100%
rename from packages/web3-zond-contract/tsconfig.esm.json
rename to packages/web3-qrl-contract/tsconfig.esm.json
diff --git a/packages/web3-zond-contract/tsconfig.types.json b/packages/web3-qrl-contract/tsconfig.types.json
similarity index 100%
rename from packages/web3-zond-contract/tsconfig.types.json
rename to packages/web3-qrl-contract/tsconfig.types.json
diff --git a/packages/web3-zond-contract/tsdoc.json b/packages/web3-qrl-contract/tsdoc.json
similarity index 100%
rename from packages/web3-zond-contract/tsdoc.json
rename to packages/web3-qrl-contract/tsdoc.json
diff --git a/packages/web3-zond-ens/.eslintignore b/packages/web3-qrl-iban/.eslintignore
similarity index 100%
rename from packages/web3-zond-ens/.eslintignore
rename to packages/web3-qrl-iban/.eslintignore
diff --git a/packages/web3-zond-ens/.eslintrc.js b/packages/web3-qrl-iban/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-ens/.eslintrc.js
rename to packages/web3-qrl-iban/.eslintrc.js
diff --git a/packages/web3-zond-ens/.gitignore b/packages/web3-qrl-iban/.gitignore
similarity index 100%
rename from packages/web3-zond-ens/.gitignore
rename to packages/web3-qrl-iban/.gitignore
diff --git a/packages/web3-zond-ens/.npmignore b/packages/web3-qrl-iban/.npmignore
similarity index 100%
rename from packages/web3-zond-ens/.npmignore
rename to packages/web3-qrl-iban/.npmignore
diff --git a/packages/web3-zond-ens/.prettierignore b/packages/web3-qrl-iban/.prettierignore
similarity index 100%
rename from packages/web3-zond-ens/.prettierignore
rename to packages/web3-qrl-iban/.prettierignore
diff --git a/packages/web3-zond-ens/.prettierrc.json b/packages/web3-qrl-iban/.prettierrc.json
similarity index 100%
rename from packages/web3-zond-ens/.prettierrc.json
rename to packages/web3-qrl-iban/.prettierrc.json
diff --git a/packages/web3-zond-ens/CHANGELOG.md b/packages/web3-qrl-iban/CHANGELOG.md
similarity index 100%
rename from packages/web3-zond-ens/CHANGELOG.md
rename to packages/web3-qrl-iban/CHANGELOG.md
diff --git a/packages/web3-zond-iban/README.md b/packages/web3-qrl-iban/README.md
similarity index 69%
rename from packages/web3-zond-iban/README.md
rename to packages/web3-qrl-iban/README.md
index accd570d..16639b1e 100644
--- a/packages/web3-zond-iban/README.md
+++ b/packages/web3-qrl-iban/README.md
@@ -2,27 +2,27 @@


-[](https://www.npmjs.com/package/@theqrl/web3-zond-iban)
-[](https://www.npmjs.com/package/@theqrl/web3-zond-iban)
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-iban)
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-iban)
This is a sub-package of [@theqrl/web3.js](https://github.com/theqrl/web3.js).
-`@theqrl/web3-zond-iban` This package converts Zond addresses to IBAN addresses a vice versa.
+`@theqrl/web3-qrl-iban` This package converts QRL addresses to IBAN addresses a vice versa.
## Installation
-You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3-zond-iban) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3-zond-iban)
+You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3-qrl-iban) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3-qrl-iban)
### Using NPM
```bash
-npm install @theqrl/web3-zond-iban
+npm install @theqrl/web3-qrl-iban
```
### Using Yarn
```bash
-yarn add @theqrl/web3-zond-iban
+yarn add @theqrl/web3-qrl-iban
```
## Getting Started
@@ -49,7 +49,7 @@ yarn add @theqrl/web3-zond-iban
| test:unit | Uses `jest` to run tests under `/test/unit` |
[docs]: https://docs.theqrl.org/
-[repo]: https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-iban
-[npm-image]: https://img.shields.io/github/package-json/v/theqrl/web3.js/main?filename=packages%2Fweb3-zond-iban%2Fpackage.json
-[npm-url]: https://npmjs.org/package/@theqrl/web3-zond-iban
-[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3-zond-iban?label=npm%20downloads
+[repo]: https://github.com/theqrl/web3.js/tree/main/packages/web3-qrl-iban
+[npm-image]: https://img.shields.io/github/package-json/v/theqrl/web3.js/main?filename=packages%2Fweb3-qrl-iban%2Fpackage.json
+[npm-url]: https://npmjs.org/package/@theqrl/web3-qrl-iban
+[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3-qrl-iban?label=npm%20downloads
diff --git a/packages/web3-zond-ens/assets/logo/web3js.ai b/packages/web3-qrl-iban/assets/logo/web3js.ai
similarity index 100%
rename from packages/web3-zond-ens/assets/logo/web3js.ai
rename to packages/web3-qrl-iban/assets/logo/web3js.ai
diff --git a/packages/web3-zond-ens/assets/logo/web3js.jpg b/packages/web3-qrl-iban/assets/logo/web3js.jpg
similarity index 100%
rename from packages/web3-zond-ens/assets/logo/web3js.jpg
rename to packages/web3-qrl-iban/assets/logo/web3js.jpg
diff --git a/packages/web3-zond-ens/assets/logo/web3js.svg b/packages/web3-qrl-iban/assets/logo/web3js.svg
similarity index 100%
rename from packages/web3-zond-ens/assets/logo/web3js.svg
rename to packages/web3-qrl-iban/assets/logo/web3js.svg
diff --git a/packages/web3-zond-iban/coverage/coverage-final.json b/packages/web3-qrl-iban/coverage/coverage-final.json
similarity index 100%
rename from packages/web3-zond-iban/coverage/coverage-final.json
rename to packages/web3-qrl-iban/coverage/coverage-final.json
diff --git a/packages/web3-zond-iban/assets/logo/web3js.ai b/packages/web3-qrl-iban/logo/web3js.ai
similarity index 100%
rename from packages/web3-zond-iban/assets/logo/web3js.ai
rename to packages/web3-qrl-iban/logo/web3js.ai
diff --git a/packages/web3-zond-iban/assets/logo/web3js.jpg b/packages/web3-qrl-iban/logo/web3js.jpg
similarity index 100%
rename from packages/web3-zond-iban/assets/logo/web3js.jpg
rename to packages/web3-qrl-iban/logo/web3js.jpg
diff --git a/packages/web3-zond-iban/assets/logo/web3js.svg b/packages/web3-qrl-iban/logo/web3js.svg
similarity index 100%
rename from packages/web3-zond-iban/assets/logo/web3js.svg
rename to packages/web3-qrl-iban/logo/web3js.svg
diff --git a/packages/web3-zond-iban/package.json b/packages/web3-qrl-iban/package.json
similarity index 94%
rename from packages/web3-zond-iban/package.json
rename to packages/web3-qrl-iban/package.json
index 8820c9dd..0d9c24aa 100644
--- a/packages/web3-zond-iban/package.json
+++ b/packages/web3-qrl-iban/package.json
@@ -1,10 +1,10 @@
{
- "name": "@theqrl/web3-zond-iban",
+ "name": "@theqrl/web3-qrl-iban",
"version": "0.3.3",
"publishConfig": {
"access": "public"
},
- "description": "This package converts Zond addresses to IBAN addresses and vice versa.",
+ "description": "This package converts QRL addresses to IBAN addresses and vice versa.",
"main": "./lib/commonjs/index.js",
"module": "./lib/esm/index.js",
"exports": {
diff --git a/packages/web3-zond-iban/src/iban.ts b/packages/web3-qrl-iban/src/iban.ts
similarity index 84%
rename from packages/web3-zond-iban/src/iban.ts
rename to packages/web3-qrl-iban/src/iban.ts
index e0d98920..5a74b177 100644
--- a/packages/web3-zond-iban/src/iban.ts
+++ b/packages/web3-qrl-iban/src/iban.ts
@@ -28,7 +28,7 @@ import { InvalidAddressError } from '@theqrl/web3-errors';
import { IbanOptions } from './types.js';
/**
- * Converts Zond addresses to IBAN or BBAN addresses and vice versa.
+ * Converts QRL addresses to IBAN or BBAN addresses and vice versa.
*/
export class Iban {
private readonly _iban: string;
@@ -90,7 +90,7 @@ export class Iban {
*
* @example
* ```ts
- * web3.zond.Iban.isDirect("XE81ETHXREGGAVOFYORK");
+ * web3.qrl.Iban.isDirect("XE81ETHXREGGAVOFYORK");
* > false
* ```
*/
@@ -107,7 +107,7 @@ export class Iban {
*
* @example
* ```ts
- * const iban = new web3.zond.Iban("XE81ETHXREGGAVOFYORK");
+ * const iban = new web3.qrl.Iban("XE81ETHXREGGAVOFYORK");
* iban.isDirect();
* > false
* ```
@@ -125,7 +125,7 @@ export class Iban {
*
* @example
* ```ts
- * web3.zond.Iban.isIndirect("XE81ETHXREGGAVOFYORK");
+ * web3.qrl.Iban.isIndirect("XE81ETHXREGGAVOFYORK");
* > true
* ```
*/
@@ -142,7 +142,7 @@ export class Iban {
*
* @example
* ```ts
- * const iban = new web3.zond.Iban("XE81ETHXREGGAVOFYORK");
+ * const iban = new web3.qrl.Iban("XE81ETHXREGGAVOFYORK");
* iban.isIndirect();
* > true
* ```
@@ -160,10 +160,10 @@ export class Iban {
*
* @example
* ```ts
- * web3.zond.Iban.isValid("XE81ETHXREGGAVOFYORK");
+ * web3.qrl.Iban.isValid("XE81ETHXREGGAVOFYORK");
* > true
*
- * web3.zond.Iban.isValid("XE82ETHXREGGAVOFYORK");
+ * web3.qrl.Iban.isValid("XE82ETHXREGGAVOFYORK");
* > false // because the checksum is incorrect
* ```
*/
@@ -180,11 +180,11 @@ export class Iban {
*
* @example
* ```ts
- * const iban = new web3.zond.Iban("XE81ETHXREGGAVOFYORK");
+ * const iban = new web3.qrl.Iban("XE81ETHXREGGAVOFYORK");
* iban.isValid();
* > true
*
- * const iban = new web3.zond.Iban("XE82ETHXREGGAVOFYORK");
+ * const iban = new web3.qrl.Iban("XE82ETHXREGGAVOFYORK");
* iban.isValid();
* > false // because the checksum is incorrect
* ```
@@ -203,7 +203,7 @@ export class Iban {
*
* @example
* ```ts
- * const iban = new web3.zond.Iban("XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS");
+ * const iban = new web3.qrl.Iban("XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS");
* > Iban { _iban: 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS' }
* ```
*/
@@ -225,7 +225,7 @@ export class Iban {
*
* @example
* ```ts
- * web3.zond.Iban.fromBban('ETHXREGGAVOFYORK');
+ * web3.qrl.Iban.fromBban('ETHXREGGAVOFYORK');
* > Iban {_iban: "XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS"}
* ```
*/
@@ -246,7 +246,7 @@ export class Iban {
*
* @example
* ```ts
- * web3.zond.Iban.createIndirect({
+ * web3.qrl.Iban.createIndirect({
* institution: "XREG",
* identifier: "GAVOFYORK"
* });
@@ -258,14 +258,14 @@ export class Iban {
}
/**
- * This method should be used to create iban object from a Zond address.
+ * This method should be used to create iban object from a QRL address.
*
- * @param address - a Zond address
+ * @param address - a QRL address
* @returns an Iban class instance that holds the equivalent IBAN
*
* @example
* ```ts
- * web3.zond.Iban.fromAddress("Z00c5496aEe77C1bA1f0854206A26DdA82a81D6D8");
+ * web3.qrl.Iban.fromAddress("Q00c5496aEe77C1bA1f0854206A26DdA82a81D6D8");
* > Iban {_iban: "XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS"}
* ```
*/
@@ -281,18 +281,18 @@ export class Iban {
}
/**
- * This method should be used to create a zond address from a Direct IBAN address.
+ * This method should be used to create a qrl address from a Direct IBAN address.
* If the provided string was not a direct IBAN (has the length of 34 or 35), an Error will be thrown:
* ('Iban is indirect and cannot be converted. Must be length of 34 or 35').
* Note: this is also available as a method at an Iban instance.
*
* @param iban - a Direct IBAN address
- * @return the equivalent zond address
+ * @return the equivalent qrl address
*
* @example
* ```ts
- * web3.zond.Iban.toAddress("XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS");
- * > "Z00c5496aEe77C1bA1f0854206A26DdA82a81D6D8"
+ * web3.qrl.Iban.toAddress("XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS");
+ * > "Q00c5496aEe77C1bA1f0854206A26DdA82a81D6D8"
* ```
*/
public static toAddress = (iban: string): HexString => {
@@ -301,18 +301,18 @@ export class Iban {
};
/**
- * This method should be used to create the equivalent zond address for the early provided Direct IBAN address.
+ * This method should be used to create the equivalent qrl address for the early provided Direct IBAN address.
* If the provided string was not a direct IBAN (has the length of 34 or 35), an Error will be thrown:
* ('Iban is indirect and cannot be converted. Must be length of 34 or 35').
* Note: this is also available as a static method.
*
- * @return the equivalent zond address
+ * @return the equivalent qrl address
*
* @example
* ```ts
- * const iban = new web3.zond.Iban("XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS");
+ * const iban = new web3.qrl.Iban("XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS");
* iban.toAddress();
- * > "Z00c5496aEe77C1bA1f0854206A26DdA82a81D6D8"
+ * > "Q00c5496aEe77C1bA1f0854206A26DdA82a81D6D8"
* ```
*/
public toAddress = (): HexString => {
@@ -327,14 +327,14 @@ export class Iban {
};
/**
- * This method should be used to create IBAN address from a Zond address
+ * This method should be used to create IBAN address from a QRL address
*
- * @param address - a Zond address
+ * @param address - a QRL address
* @return the equivalent IBAN address
*
* @example
* ```ts
- * web3.zond.Iban.toIban("Z00c5496aEe77C1bA1f0854206A26DdA82a81D6D8");
+ * web3.qrl.Iban.toIban("Q00c5496aEe77C1bA1f0854206A26DdA82a81D6D8");
* > "XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS"
* ```
*/
@@ -349,7 +349,7 @@ export class Iban {
*
* @example
* ```ts
- * const iban = new web3.zond.Iban("XE81ETHXREGGAVOFYORK");
+ * const iban = new web3.qrl.Iban("XE81ETHXREGGAVOFYORK");
* iban.client();
* > 'GAVOFYORK'
* ```
@@ -363,7 +363,7 @@ export class Iban {
*
* @example
* ```ts
- * const iban = new web3.zond.Iban("XE81ETHXREGGAVOFYORK");
+ * const iban = new web3.qrl.Iban("XE81ETHXREGGAVOFYORK");
* iban.checksum();
* > "81"
* ```
@@ -378,7 +378,7 @@ export class Iban {
*
* @example
* ```ts
- * const iban = new web3.zond.Iban("XE81ETHXREGGAVOFYORK");
+ * const iban = new web3.qrl.Iban("XE81ETHXREGGAVOFYORK");
* iban.institution();
* > 'XREG'
* ```
@@ -392,7 +392,7 @@ export class Iban {
*
* @example
* ```ts
- * const iban = new web3.zond.Iban('XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS');
+ * const iban = new web3.qrl.Iban('XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS');
* iban.toString();
* > 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS'
* ```
diff --git a/packages/web3-zond-iban/src/index.ts b/packages/web3-qrl-iban/src/index.ts
similarity index 100%
rename from packages/web3-zond-iban/src/index.ts
rename to packages/web3-qrl-iban/src/index.ts
diff --git a/packages/web3-zond-iban/src/types.ts b/packages/web3-qrl-iban/src/types.ts
similarity index 100%
rename from packages/web3-zond-iban/src/types.ts
rename to packages/web3-qrl-iban/src/types.ts
diff --git a/packages/web3-zond-ens/test/.eslintrc.js b/packages/web3-qrl-iban/test/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-ens/test/.eslintrc.js
rename to packages/web3-qrl-iban/test/.eslintrc.js
diff --git a/packages/web3-zond-ens/test/config/jest.config.js b/packages/web3-qrl-iban/test/config/jest.config.js
similarity index 100%
rename from packages/web3-zond-ens/test/config/jest.config.js
rename to packages/web3-qrl-iban/test/config/jest.config.js
diff --git a/packages/web3-zond-ens/test/config/setup.js b/packages/web3-qrl-iban/test/config/setup.js
similarity index 100%
rename from packages/web3-zond-ens/test/config/setup.js
rename to packages/web3-qrl-iban/test/config/setup.js
diff --git a/packages/web3-zond-iban/test/fixtures/iban.ts b/packages/web3-qrl-iban/test/fixtures/iban.ts
similarity index 87%
rename from packages/web3-zond-iban/test/fixtures/iban.ts
rename to packages/web3-qrl-iban/test/fixtures/iban.ts
index 533c0f58..51af7b78 100644
--- a/packages/web3-zond-iban/test/fixtures/iban.ts
+++ b/packages/web3-qrl-iban/test/fixtures/iban.ts
@@ -18,10 +18,10 @@ along with web3.js. If not, see .
import { IbanOptions } from '../../src/types';
export const validIbanToAddressData: [string, string][] = [
- ['XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36', 'Z8ba1f109551bD432803012645Ac136ddd64DBA72'],
- ['XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS', 'Z00c5496aEe77C1bA1f0854206A26DdA82a81D6D8'],
- ['XE76LL5FJYLSMDVW5J02HWU6R5ZVPHURYM9', 'Zb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01'],
- ['XE76LL5FJYLSMDVW5J02HWU6R5ZVPHURYM9', 'Zb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01'],
+ ['XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36', 'Q8ba1f109551bD432803012645Ac136ddd64DBA72'],
+ ['XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS', 'Q00c5496aEe77C1bA1f0854206A26DdA82a81D6D8'],
+ ['XE76LL5FJYLSMDVW5J02HWU6R5ZVPHURYM9', 'Qb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01'],
+ ['XE76LL5FJYLSMDVW5J02HWU6R5ZVPHURYM9', 'Qb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01'],
];
export const invalidIbanToAddressData: [string, Error][] = [
@@ -32,9 +32,9 @@ export const invalidIbanToAddressData: [string, Error][] = [
];
export const invalidAddressData: [string][] = [
- ['Z1'],
- ['ZE247a45c287191d435A8a5D72A7C8dc030451E9F'], // Invalid checksum
- ['-Z407d73d8a49eeb85d32cf465507dd71d507100c1'],
+ ['Q1'],
+ ['QE247a45c287191d435A8a5D72A7C8dc030451E9F'], // Invalid checksum
+ ['-Q407d73d8a49eeb85d32cf465507dd71d507100c1'],
];
export const validFromBbanData: [string, string][] = [['ETHXREGGAVOFYORK', 'XE81ETHXREGGAVOFYORK']];
diff --git a/packages/web3-zond-ens/test/integration/jest.config.js b/packages/web3-qrl-iban/test/integration/jest.config.js
similarity index 100%
rename from packages/web3-zond-ens/test/integration/jest.config.js
rename to packages/web3-qrl-iban/test/integration/jest.config.js
diff --git a/packages/web3-zond-iban/test/integration/setup.js b/packages/web3-qrl-iban/test/integration/setup.js
similarity index 100%
rename from packages/web3-zond-iban/test/integration/setup.js
rename to packages/web3-qrl-iban/test/integration/setup.js
diff --git a/packages/web3-zond-iban/test/tsconfig.json b/packages/web3-qrl-iban/test/tsconfig.json
similarity index 100%
rename from packages/web3-zond-iban/test/tsconfig.json
rename to packages/web3-qrl-iban/test/tsconfig.json
diff --git a/packages/web3-zond-iban/test/unit/constructor.test.ts b/packages/web3-qrl-iban/test/unit/constructor.test.ts
similarity index 100%
rename from packages/web3-zond-iban/test/unit/constructor.test.ts
rename to packages/web3-qrl-iban/test/unit/constructor.test.ts
diff --git a/packages/web3-zond-iban/test/unit/iban.test.ts b/packages/web3-qrl-iban/test/unit/iban.test.ts
similarity index 100%
rename from packages/web3-zond-iban/test/unit/iban.test.ts
rename to packages/web3-qrl-iban/test/unit/iban.test.ts
diff --git a/packages/web3-zond-abi/test/unit/jest.config.js b/packages/web3-qrl-iban/test/unit/jest.config.js
similarity index 86%
rename from packages/web3-zond-abi/test/unit/jest.config.js
rename to packages/web3-qrl-iban/test/unit/jest.config.js
index ee0b9dac..542f92bd 100644
--- a/packages/web3-zond-abi/test/unit/jest.config.js
+++ b/packages/web3-qrl-iban/test/unit/jest.config.js
@@ -11,7 +11,7 @@ module.exports = {
[
'json',
{
- file: 'web3-zond-abi-unit-coverage.json',
+ file: 'web3-qrl-iban-unit-coverage.json',
},
],
],
diff --git a/packages/web3-zond-ens/tsconfig.cjs.json b/packages/web3-qrl-iban/tsconfig.cjs.json
similarity index 100%
rename from packages/web3-zond-ens/tsconfig.cjs.json
rename to packages/web3-qrl-iban/tsconfig.cjs.json
diff --git a/packages/web3-zond-ens/tsconfig.esm.json b/packages/web3-qrl-iban/tsconfig.esm.json
similarity index 100%
rename from packages/web3-zond-ens/tsconfig.esm.json
rename to packages/web3-qrl-iban/tsconfig.esm.json
diff --git a/packages/web3-zond-ens/tsconfig.types.json b/packages/web3-qrl-iban/tsconfig.types.json
similarity index 100%
rename from packages/web3-zond-ens/tsconfig.types.json
rename to packages/web3-qrl-iban/tsconfig.types.json
diff --git a/packages/web3-zond-ens/tsdoc.json b/packages/web3-qrl-iban/tsdoc.json
similarity index 100%
rename from packages/web3-zond-ens/tsdoc.json
rename to packages/web3-qrl-iban/tsdoc.json
diff --git a/packages/web3-zond-iban/.eslintignore b/packages/web3-qrl-qrns/.eslintignore
similarity index 100%
rename from packages/web3-zond-iban/.eslintignore
rename to packages/web3-qrl-qrns/.eslintignore
diff --git a/packages/web3-zond-iban/.eslintrc.js b/packages/web3-qrl-qrns/.eslintrc.js
similarity index 100%
rename from packages/web3-zond-iban/.eslintrc.js
rename to packages/web3-qrl-qrns/.eslintrc.js
diff --git a/packages/web3-zond-iban/.gitignore b/packages/web3-qrl-qrns/.gitignore
similarity index 100%
rename from packages/web3-zond-iban/.gitignore
rename to packages/web3-qrl-qrns/.gitignore
diff --git a/packages/web3-zond-iban/.npmignore b/packages/web3-qrl-qrns/.npmignore
similarity index 100%
rename from packages/web3-zond-iban/.npmignore
rename to packages/web3-qrl-qrns/.npmignore
diff --git a/packages/web3-zond-iban/.prettierignore b/packages/web3-qrl-qrns/.prettierignore
similarity index 100%
rename from packages/web3-zond-iban/.prettierignore
rename to packages/web3-qrl-qrns/.prettierignore
diff --git a/packages/web3-zond-iban/.prettierrc.json b/packages/web3-qrl-qrns/.prettierrc.json
similarity index 100%
rename from packages/web3-zond-iban/.prettierrc.json
rename to packages/web3-qrl-qrns/.prettierrc.json
diff --git a/packages/web3-zond-iban/CHANGELOG.md b/packages/web3-qrl-qrns/CHANGELOG.md
similarity index 100%
rename from packages/web3-zond-iban/CHANGELOG.md
rename to packages/web3-qrl-qrns/CHANGELOG.md
diff --git a/packages/web3-zond-ens/README.md b/packages/web3-qrl-qrns/README.md
similarity index 68%
rename from packages/web3-zond-ens/README.md
rename to packages/web3-qrl-qrns/README.md
index 32888007..3af3a665 100644
--- a/packages/web3-zond-ens/README.md
+++ b/packages/web3-qrl-qrns/README.md
@@ -1,28 +1,28 @@
-# @theqrl/web3.js - ENS
+# @theqrl/web3.js - QRNS


-[](https://www.npmjs.com/package/@theqrl/web3-zond-ens)
-[](https://www.npmjs.com/package/@theqrl/web3-zond-ens)
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-qrns)
+[](https://www.npmjs.com/package/@theqrl/web3-qrl-qrns)
This is a sub-package of [@theqrl/web3.js](https://github.com/theqrl/web3.js).
-`@theqrl/web3-zond-ens` This package has ENS functions for interacting with the Zond derivative of the Ethereum Name Service.
+`@theqrl/web3-qrl-qrns` This package has QRNS functions for interacting with the QRL derivative of the Ethereum Name Service.
## Installation
-You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3-zond-ens) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3-zond-ens)
+You can install the package either using [NPM](https://www.npmjs.com/package/@theqrl/web3-qrl-qrns) or using [Yarn](https://yarnpkg.com/package/@theqrl/web3-qrl-qrns)
### Using NPM
```bash
-npm install @theqrl/web3-zond-ens
+npm install @theqrl/web3-qrl-qrns
```
### Using Yarn
```bash
-yarn add @theqrl/web3-zond-ens
+yarn add @theqrl/web3-qrl-qrns
```
## Getting Started
@@ -49,7 +49,7 @@ yarn add @theqrl/web3-zond-ens
| test:unit | Uses `jest` to run tests under `/test/unit` |
[docs]: https://docs.theqrl.org/
-[repo]: https://github.com/theqrl/web3.js/tree/main/packages/web3-zond-ens
-[npm-image]: https://img.shields.io/github/package-json/v/theqrl/web3.js/main?filename=packages%2Fweb3-zond-ens%2Fpackage.json
-[npm-url]: https://npmjs.org/package/@theqrl/web3-zond-ens
-[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3-zond-ens?label=npm%20downloads
+[repo]: https://github.com/theqrl/web3.js/tree/main/packages/web3-qrl-qrns
+[npm-image]: https://img.shields.io/github/package-json/v/theqrl/web3.js/main?filename=packages%2Fweb3-qrl-qrns%2Fpackage.json
+[npm-url]: https://npmjs.org/package/@theqrl/web3-qrl-qrns
+[downloads-image]: https://img.shields.io/npm/dm/@theqrl/web3-qrl-qrns?label=npm%20downloads
diff --git a/packages/web3-zond-iban/logo/web3js.ai b/packages/web3-qrl-qrns/assets/logo/web3js.ai
similarity index 100%
rename from packages/web3-zond-iban/logo/web3js.ai
rename to packages/web3-qrl-qrns/assets/logo/web3js.ai
diff --git a/packages/web3-zond-iban/logo/web3js.jpg b/packages/web3-qrl-qrns/assets/logo/web3js.jpg
similarity index 100%
rename from packages/web3-zond-iban/logo/web3js.jpg
rename to packages/web3-qrl-qrns/assets/logo/web3js.jpg
diff --git a/packages/web3-zond-iban/logo/web3js.svg b/packages/web3-qrl-qrns/assets/logo/web3js.svg
similarity index 100%
rename from packages/web3-zond-iban/logo/web3js.svg
rename to packages/web3-qrl-qrns/assets/logo/web3js.svg
diff --git a/packages/web3-zond-ens/package.json b/packages/web3-qrl-qrns/package.json
similarity index 92%
rename from packages/web3-zond-ens/package.json
rename to packages/web3-qrl-qrns/package.json
index 079243b9..f16baa9f 100644
--- a/packages/web3-zond-ens/package.json
+++ b/packages/web3-qrl-qrns/package.json
@@ -1,10 +1,10 @@
{
- "name": "@theqrl/web3-zond-ens",
+ "name": "@theqrl/web3-qrl-qrns",
"version": "0.3.3",
"publishConfig": {
"access": "public"
},
- "description": "This package has ZNS functions for interacting with Zond Name Service.",
+ "description": "This package has QRNS functions for interacting with QRL Name Service.",
"main": "./lib/commonjs/index.js",
"module": "./lib/esm/index.js",
"exports": {
@@ -66,8 +66,8 @@
"@theqrl/web3-types": "^0.3.3",
"@theqrl/web3-utils": "^0.3.3",
"@theqrl/web3-validator": "^0.3.3",
- "@theqrl/web3-zond": "^0.3.3",
- "@theqrl/web3-zond-contract": "^0.3.3"
+ "@theqrl/web3-qrl": "^0.3.3",
+ "@theqrl/web3-qrl-contract": "^0.3.3"
},
"gitHead": "d4f3246946fec86d908a215b27568aa8faea88d7"
}
diff --git a/packages/web3-zond-ens/src/abi/zns/PublicResolver.ts b/packages/web3-qrl-qrns/src/abi/qrns/PublicResolver.ts
similarity index 100%
rename from packages/web3-zond-ens/src/abi/zns/PublicResolver.ts
rename to packages/web3-qrl-qrns/src/abi/qrns/PublicResolver.ts
diff --git a/packages/web3-zond-ens/src/abi/zns/ZNSRegistry.ts b/packages/web3-qrl-qrns/src/abi/qrns/QRNSRegistry.ts
similarity index 97%
rename from packages/web3-zond-ens/src/abi/zns/ZNSRegistry.ts
rename to packages/web3-qrl-qrns/src/abi/qrns/QRNSRegistry.ts
index d8f2398d..4a7e34f0 100644
--- a/packages/web3-zond-ens/src/abi/zns/ZNSRegistry.ts
+++ b/packages/web3-qrl-qrns/src/abi/qrns/QRNSRegistry.ts
@@ -15,8 +15,8 @@ You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
-// https://github.com/ensdomains/ens-contracts/blob/master/contracts/registry/ZNSRegistry.sol
-export const ZNSRegistryAbi = [
+// https://github.com/ensdomains/ens-contracts/blob/master/contracts/registry/ENSRegistry.sol
+export const QRNSRegistryAbi = [
{
anonymous: false,
inputs: [
diff --git a/packages/web3-zond-ens/src/config.ts b/packages/web3-qrl-qrns/src/config.ts
similarity index 74%
rename from packages/web3-zond-ens/src/config.ts
rename to packages/web3-qrl-qrns/src/config.ts
index 7cd5d89c..6acd4f7e 100644
--- a/packages/web3-zond-ens/src/config.ts
+++ b/packages/web3-qrl-qrns/src/config.ts
@@ -17,7 +17,7 @@ along with web3.js. If not, see .
//
/**
- * An object holding the interface Ids of the ZNS resolver contracts. Please see [how to write a resolver](https://docs.ens.domains/contract-developer-guide/writing-a-resolver).
+ * An object holding the interface Ids of the QRNS resolver contracts. Please see [how to write a resolver](https://docs.ens.domains/contract-developer-guide/writing-a-resolver).
*/
export const interfaceIds: { [T: string]: string } = {
addr: '0x3b3b57de',
@@ -29,7 +29,7 @@ export const interfaceIds: { [T: string]: string } = {
};
/**
- * An object holding the functionsthat are supported by the ZNS resolver contracts/interfaces.
+ * An object holding the functionsthat are supported by the QRNS resolver contracts/interfaces.
*/
export const methodsInInterface: { [T: string]: string } = {
setAddr: 'addr',
@@ -41,11 +41,11 @@ export const methodsInInterface: { [T: string]: string } = {
};
/**
- * An object holding the addressed of the ZNS registries on the different networks (mainnet).
+ * An object holding the addressed of the QRNS registries on the different networks (mainnet).
*/
// TODO(youtrack/theqrl/web3.js/1)
export const registryAddresses: { [T: string]: string } = {
- main: 'Z00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
+ main: 'Q00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
};
export const networkIds: { [T: string]: string } = {
diff --git a/packages/web3-zond-ens/src/index.ts b/packages/web3-qrl-qrns/src/index.ts
similarity index 78%
rename from packages/web3-zond-ens/src/index.ts
rename to packages/web3-qrl-qrns/src/index.ts
index da1cdf4e..1b209616 100644
--- a/packages/web3-zond-ens/src/index.ts
+++ b/packages/web3-qrl-qrns/src/index.ts
@@ -16,7 +16,7 @@ along with web3.js. If not, see .
*/
/**
- * The `web3.zond.zns` functions let you interact with ZNS. We recommend reading the [ZNS documentation](https://docs.ens.domains/) to get deeper insights about the internals of the name service.
+ * The `web3.qrl.qrns` functions let you interact with QRNS. We recommend reading the [QRNS documentation](https://docs.ens.domains/) to get deeper insights about the internals of the name service.
*
*/
/**
@@ -24,5 +24,5 @@ along with web3.js. If not, see .
*/
import { registryAddresses } from './config.js';
-export * from './zns.js';
+export * from './qrns.js';
export { registryAddresses };
diff --git a/packages/web3-zond-ens/src/zns.ts b/packages/web3-qrl-qrns/src/qrns.ts
similarity index 59%
rename from packages/web3-zond-ens/src/zns.ts
rename to packages/web3-qrl-qrns/src/qrns.ts
index 74b6e6b2..78b8e8ef 100644
--- a/packages/web3-zond-ens/src/zns.ts
+++ b/packages/web3-qrl-qrns/src/qrns.ts
@@ -16,27 +16,27 @@ along with web3.js. If not, see .
*/
import { Web3Context, Web3ContextObject } from '@theqrl/web3-core';
-import { ZNSNetworkNotSyncedError, ZNSUnsupportedNetworkError } from '@theqrl/web3-errors';
-import { isSyncing } from '@theqrl/web3-zond';
-import { Contract } from '@theqrl/web3-zond-contract';
+import { QRNSNetworkNotSyncedError, QRNSUnsupportedNetworkError } from '@theqrl/web3-errors';
+import { isSyncing } from '@theqrl/web3-qrl';
+import { Contract } from '@theqrl/web3-qrl-contract';
import { getId } from '@theqrl/web3-net';
import {
DEFAULT_RETURN_FORMAT,
- ZondExecutionAPI,
+ QRLExecutionAPI,
FMT_NUMBER,
SupportedProviders,
Web3NetAPI,
} from '@theqrl/web3-types';
-import { PublicResolverAbi } from './abi/zns/PublicResolver.js';
+import { PublicResolverAbi } from './abi/qrns/PublicResolver.js';
import { networkIds, registryAddresses } from './config.js';
import { Registry } from './registry.js';
import { Resolver } from './resolver.js';
/**
- * This class is designed to interact with the ZNS system on the Zond blockchain.
+ * This class is designed to interact with the QRNS system on the QRL blockchain.
*
*/
-export class ZNS extends Web3Context {
+export class QRNS extends Web3Context {
/**
* The registryAddress property can be used to define a custom registry address when you are connected to an unknown chain. It defaults to the main registry address.
*/
@@ -47,25 +47,25 @@ export class ZNS extends Web3Context {
private _lastSyncCheck?: number;
/**
- * Use to create an instance of ZNS
- * @param registryAddr - (Optional) The address of the ZNS registry (default: mainnet registry address)
- * @param provider - (Optional) The provider to use for the ZNS instance
+ * Use to create an instance of QRNS
+ * @param registryAddr - (Optional) The address of the QRNS registry (default: mainnet registry address)
+ * @param provider - (Optional) The provider to use for the QRNS instance
* @example
* ```ts
- * const zns = new ZNS(
- * "Z00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
+ * const qrns = new QRNS(
+ * "Q00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
* "http://localhost:8545"
* );
*
- * console.log( zns.defaultChain);
+ * console.log(qrns.defaultChain);
* > mainnet
* ```
*/
public constructor(
registryAddr?: string,
provider?:
- | SupportedProviders
- | Web3ContextObject
+ | SupportedProviders
+ | Web3ContextObject
| string,
) {
super(provider ?? '');
@@ -76,15 +76,15 @@ export class ZNS extends Web3Context {
/**
* Returns the Resolver by the given address
- * @param name - The name of the ZNS domain
+ * @param name - The name of the QRNS domain
* @returns - An contract instance of the resolver
*
* @example
* ```ts
- * const resolver = await zns.getResolver('resolver');
+ * const resolver = await qrns.getResolver('resolver');
*
* console.log(resolver.options.address);
- * > 'Z1234567890123456789012345678901234567890'
+ * > 'Q1234567890123456789012345678901234567890'
* ```
*/
public async getResolver(name: string): Promise> {
@@ -93,11 +93,11 @@ export class ZNS extends Web3Context {
/**
* Returns true if the record exists
- * @param name - The ZNS name
- * @returns - Returns `true` if node exists in this ZNS registry. This will return `false` for records that are in the legacy ZNS registry but have not yet been migrated to the new one.
+ * @param name - The QRNS name
+ * @returns - Returns `true` if node exists in this QRNS registry. This will return `false` for records that are in the legacy QRNS registry but have not yet been migrated to the new one.
* @example
* ```ts
- * const exists = await web3.zond.zns.recordExists('zond.zns');
+ * const exists = await web3.qrl.qrns.recordExists('qrl.qrns');
* ```
*/
public async recordExists(name: string): Promise {
@@ -105,12 +105,12 @@ export class ZNS extends Web3Context {
}
/**
- * Returns the caching TTL (time-to-live) of a ZNS name.
- * @param name - The ZNS name
+ * Returns the caching TTL (time-to-live) of a QRNS name.
+ * @param name - The QRNS name
* @returns - Returns the caching TTL (time-to-live) of a name.
* @example
* ```ts
- * const owner = await web3.zond.zns.getTTL('zond.zns');
+ * const owner = await web3.qrl.qrns.getTTL('qrl.qrns');
* ```
*/
public async getTTL(name: string): Promise {
@@ -119,11 +119,11 @@ export class ZNS extends Web3Context {
/**
* Returns the owner by the given name and current configured or detected Registry
- * @param name - The ZNS name
+ * @param name - The QRNS name
* @returns - Returns the address of the owner of the name.
* @example
* ```ts
- * const owner = await web3.zond.zns.getOwner('zond.zns');
+ * const owner = await web3.qrl.qrns.getOwner('qrl.qrns');
* ```
*/
public async getOwner(name: string): Promise {
@@ -131,27 +131,27 @@ export class ZNS extends Web3Context {
}
/**
- * Resolves a ZNS name to a Zond address.
- * @param ZNSName - The ZNS name to resolve
- * @param coinType - (Optional) The coin type, defaults to 60 (ZND)
- * @returns - The Zond address of the given name
+ * Resolves a QRNS name to a QRL address.
+ * @param QRNSName - The QRNS name to resolve
+ * @param coinType - (Optional) The coin type, defaults to 60 (QRL)
+ * @returns - The QRL address of the given name
* ```ts
- * const address = await web3.zond.zns.getAddress('zond.zns');
+ * const address = await web3.qrl.qrns.getAddress('qrl.qrns');
* console.log(address);
- * > 'ZfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359'
+ * > 'QfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359'
* ```
*/
- public async getAddress(ZNSName: string, coinType = 60) {
- return this._resolver.getAddress(ZNSName, coinType);
+ public async getAddress(QRNSName: string, coinType = 60) {
+ return this._resolver.getAddress(QRNSName, coinType);
}
/**
* Returns the X and Y coordinates of the curve point for the public key.
- * @param ZNSName - The ZNS name
+ * @param QRNSName - The QRNS name
* @returns - The X and Y coordinates of the curve point for the public key
* @example
* ```ts
- * const key = await web3.zond.zns.getPubkey('zond.zns');
+ * const key = await web3.qrl.qrns.getPubkey('qrl.qrns');
* console.log(key);
* > {
* "0": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -161,33 +161,33 @@ export class ZNS extends Web3Context {
* }
* ```
*/
- public async getPubkey(ZNSName: string) {
- return this._resolver.getPubkey(ZNSName);
+ public async getPubkey(QRNSName: string) {
+ return this._resolver.getPubkey(QRNSName);
}
/**
- * Returns the content hash object associated with a ZNS node.
- * @param ZNSName - The ZNS name
- * @returns - The content hash object associated with a ZNS node
+ * Returns the content hash object associated with a QRNS node.
+ * @param QRNSName - The QRNS name
+ * @returns - The content hash object associated with a QRNS node
* @example
* ```ts
- * const hash = await web3.zond.zns.getContenthash('zond.zns');
+ * const hash = await web3.qrl.qrns.getContenthash('qrl.qrns');
* console.log(hash);
* > 'QmaEBknbGT4bTQiQoe2VNgBJbRfygQGktnaW5TbuKixjYL'
* ```
*/
- public async getContenthash(ZNSName: string) {
- return this._resolver.getContenthash(ZNSName);
+ public async getContenthash(QRNSName: string) {
+ return this._resolver.getContenthash(QRNSName);
}
/**
- * Checks if the current used network is synced and looks for ZNS support there.
+ * Checks if the current used network is synced and looks for QRNS support there.
* Throws an error if not.
- * @returns - The address of the ZNS registry if the network has been detected successfully
+ * @returns - The address of the QRNS registry if the network has been detected successfully
* @example
* ```ts
- * console.log(await web3.zond.zns.checkNetwork());
- * > 'Z00000000000C2E074eC69A0dFb2997BA6C7d2e1e'
+ * console.log(await web3.qrl.qrns.checkNetwork());
+ * > 'Q00000000000C2E074eC69A0dFb2997BA6C7d2e1e'
* ```
*/
public async checkNetwork() {
@@ -196,7 +196,7 @@ export class ZNS extends Web3Context {
const syncInfo = await isSyncing(this);
if (!(typeof syncInfo === 'boolean' && !syncInfo)) {
- throw new ZNSNetworkNotSyncedError();
+ throw new QRNSNetworkNotSyncedError();
}
this._lastSyncCheck = now;
@@ -212,7 +212,7 @@ export class ZNS extends Web3Context {
const addr = registryAddresses[networkIds[networkType]];
if (typeof addr === 'undefined') {
- throw new ZNSUnsupportedNetworkError(networkType);
+ throw new QRNSUnsupportedNetworkError(networkType);
}
this._detectedAddress = addr;
@@ -221,22 +221,22 @@ export class ZNS extends Web3Context {
/**
* Returns true if the related Resolver does support the given signature or interfaceId.
- * @param ZNSName - The ZNS name
- * @param interfaceId - The signature of the function or the interfaceId as described in the ZNS documentation
+ * @param QRNSName - The QRNS name
+ * @param interfaceId - The signature of the function or the interfaceId as described in the QRNS documentation
* @returns - `true` if the related Resolver does support the given signature or interfaceId.
* @example
* ```ts
- * const supports = await web3.zond.zns.supportsInterface('zond.zns', 'addr(bytes32');
+ * const supports = await web3.qrl.qrns.supportsInterface('qrl.qrns', 'addr(bytes32');
* console.log(supports);
* > true
* ```
*/
- public async supportsInterface(ZNSName: string, interfaceId: string) {
- return this._resolver.supportsInterface(ZNSName, interfaceId);
+ public async supportsInterface(QRNSName: string, interfaceId: string) {
+ return this._resolver.supportsInterface(QRNSName, interfaceId);
}
/**
- * @returns - Returns all events that can be emitted by the ZNS registry.
+ * @returns - Returns all events that can be emitted by the QRNS registry.
*/
public get events() {
return this._registry.events;
diff --git a/packages/web3-zond-ens/src/registry.ts b/packages/web3-qrl-qrns/src/registry.ts
similarity index 79%
rename from packages/web3-zond-ens/src/registry.ts
rename to packages/web3-qrl-qrns/src/registry.ts
index ecfa77fc..9b7596ac 100644
--- a/packages/web3-zond-ens/src/registry.ts
+++ b/packages/web3-qrl-qrns/src/registry.ts
@@ -16,20 +16,20 @@ along with web3.js. If not, see .
*/
import { Web3ContextObject } from '@theqrl/web3-core';
-import { Contract } from '@theqrl/web3-zond-contract';
+import { Contract } from '@theqrl/web3-qrl-contract';
import { Address } from '@theqrl/web3-types';
-import { ZNSRegistryAbi } from './abi/zns/ZNSRegistry.js';
-import { PublicResolverAbi } from './abi/zns/PublicResolver.js';
+import { QRNSRegistryAbi } from './abi/qrns/QRNSRegistry.js';
+import { PublicResolverAbi } from './abi/qrns/PublicResolver.js';
import { registryAddresses } from './config.js';
import { namehash } from './utils.js';
export class Registry {
- private readonly contract: Contract;
+ private readonly contract: Contract