From 0e52d3fba4d495d2ef19c94c03ff818a6eba76ad Mon Sep 17 00:00:00 2001 From: Raman Siamionau Date: Fri, 8 Sep 2023 08:27:19 +0200 Subject: [PATCH] Revert "Merge pull request #164 from lidofinance/feat/depositor-rework" This reverts commit 31512d7c9615ef86559d6c56e3fdaa7ae18c3abc. --- .env.example | 33 - .github/workflows/tests_and_checks.yml | 20 +- .gitignore | 2 - README.md | 197 +- docker-compose.yml | 24 +- hardhat.config.js | 15 - package-lock.json | 4256 ----------------- package.json | 5 - poetry.lock | 13 +- pyproject.toml | 5 +- src/blockchain/buffered_eth.py | 16 + src/blockchain/constants.py | 41 +- src/blockchain/contracts.py | 63 + src/blockchain/contracts/__init__.py | 0 src/blockchain/contracts/base_interface.py | 22 - src/blockchain/contracts/deposit.py | 24 - .../contracts/deposit_security_module.py | 129 - src/blockchain/contracts/lido.py | 21 - src/blockchain/contracts/lido_locator.py | 28 - src/blockchain/contracts/staking_router.py | 102 - src/blockchain/deposit_strategy/__init__.py | 0 .../deposit_strategy/curated_module.py | 112 - src/blockchain/deposit_strategy/interface.py | 17 - src/blockchain/executer.py | 97 - src/blockchain/fetch_latest_block.py | 25 + src/blockchain/gas_strategy.py | 90 + .../requests_metric_middleware.py | 1 - src/blockchain/typings.py | 9 - src/blockchain/web3_extentions/__init__.py | 0 .../web3_extentions/lido_contracts.py | 44 - src/blockchain/web3_extentions/transaction.py | 121 - src/bots/depositor.py | 243 - src/bots/depositor_bot.py | 516 ++ src/bots/pause.py | 98 - src/bots/pause_bot.py | 207 + src/depositor.py | 58 +- src/metrics/healthcheck_pulse.py | 1 - src/metrics/logging.py | 2 - src/metrics/metrics.py | 34 +- src/metrics/transport_message_metrics.py | 13 +- src/pauser.py | 50 +- src/transport/msg_providers/kafka.py | 5 +- src/transport/msg_providers/rabbit.py | 2 +- src/transport/msg_schemas.py | 30 +- src/transport/msg_storage.py | 9 +- src/utils/__init__.py | 0 src/utils/timeout.py | 27 - src/variables.py | 81 +- .../types.py => variables_types.py} | 0 static/img.png | Bin 39855 -> 0 bytes static/img1.png | Bin 36369 -> 0 bytes static/img2.png | Bin 51833 -> 0 bytes static/img3.png | Bin 65415 -> 0 bytes tests/blockchain/__init__.py | 0 tests/blockchain/contracts/__init__.py | 0 tests/blockchain/contracts/test_deposit.py | 15 - .../contracts/test_deposit_security_module.py | 21 - tests/blockchain/contracts/test_lido.py | 12 - .../blockchain/contracts/test_lido_locator.py | 14 - .../contracts/test_staking_router.py | 21 - tests/blockchain/deposit_strategy/__init__.py | 0 .../deposit_strategy/test_curated_module.py | 108 - tests/blockchain/web3_extentions/__init__.py | 0 .../blockchain/web3_extentions/transaction.py | 37 - tests/bots/__init__.py | 0 tests/bots/test_depositor.py | 337 -- tests/bots/test_executor.py | 88 - tests/bots/test_pauser.py | 167 - tests/bots/test_timeout.py | 18 - tests/conftest.py | 48 - tests/cryptography/__init__.py | 0 tests/fixtures/common_fixtures.py | 36 + tests/fixtures/contracts.py | 51 - tests/fixtures/depositor_fixtures.py | 139 + tests/fixtures/gas_fee_fixtures.py | 27 + tests/fixtures/pause_bot_fixtures.py | 24 + tests/fixtures/provider.py | 33 - tests/fixtures/pytest_mocks.py | 210 + tests/test_depositor_bot.py | 236 + tests/test_gas_srategy.py | 40 + tests/test_pause_bot.py | 96 + tests/test_reccomended_buffered_eth.py | 15 + ...y_signature.py => test_signature_check.py} | 2 +- tests/utils/contract_utils.py | 25 - tests/utils/logs.py | 2 + tests/utils/mock_provider.py | 24 + tests/utils/regrex.py | 12 - 87 files changed, 1993 insertions(+), 6773 deletions(-) delete mode 100644 .env.example delete mode 100644 hardhat.config.js delete mode 100644 package-lock.json delete mode 100644 package.json create mode 100644 src/blockchain/buffered_eth.py create mode 100644 src/blockchain/contracts.py delete mode 100644 src/blockchain/contracts/__init__.py delete mode 100644 src/blockchain/contracts/base_interface.py delete mode 100644 src/blockchain/contracts/deposit.py delete mode 100644 src/blockchain/contracts/deposit_security_module.py delete mode 100644 src/blockchain/contracts/lido.py delete mode 100644 src/blockchain/contracts/lido_locator.py delete mode 100644 src/blockchain/contracts/staking_router.py delete mode 100644 src/blockchain/deposit_strategy/__init__.py delete mode 100644 src/blockchain/deposit_strategy/curated_module.py delete mode 100644 src/blockchain/deposit_strategy/interface.py delete mode 100644 src/blockchain/executer.py create mode 100644 src/blockchain/fetch_latest_block.py create mode 100644 src/blockchain/gas_strategy.py rename src/blockchain/{web3_extentions => }/requests_metric_middleware.py (99%) delete mode 100644 src/blockchain/typings.py delete mode 100644 src/blockchain/web3_extentions/__init__.py delete mode 100644 src/blockchain/web3_extentions/lido_contracts.py delete mode 100644 src/blockchain/web3_extentions/transaction.py delete mode 100644 src/bots/depositor.py create mode 100644 src/bots/depositor_bot.py delete mode 100644 src/bots/pause.py create mode 100644 src/bots/pause_bot.py delete mode 100644 src/utils/__init__.py delete mode 100644 src/utils/timeout.py rename src/{transport/types.py => variables_types.py} (100%) delete mode 100644 static/img.png delete mode 100644 static/img1.png delete mode 100644 static/img2.png delete mode 100644 static/img3.png delete mode 100644 tests/blockchain/__init__.py delete mode 100644 tests/blockchain/contracts/__init__.py delete mode 100644 tests/blockchain/contracts/test_deposit.py delete mode 100644 tests/blockchain/contracts/test_deposit_security_module.py delete mode 100644 tests/blockchain/contracts/test_lido.py delete mode 100644 tests/blockchain/contracts/test_lido_locator.py delete mode 100644 tests/blockchain/contracts/test_staking_router.py delete mode 100644 tests/blockchain/deposit_strategy/__init__.py delete mode 100644 tests/blockchain/deposit_strategy/test_curated_module.py delete mode 100644 tests/blockchain/web3_extentions/__init__.py delete mode 100644 tests/blockchain/web3_extentions/transaction.py delete mode 100644 tests/bots/__init__.py delete mode 100644 tests/bots/test_depositor.py delete mode 100644 tests/bots/test_executor.py delete mode 100644 tests/bots/test_pauser.py delete mode 100644 tests/bots/test_timeout.py delete mode 100644 tests/conftest.py delete mode 100644 tests/cryptography/__init__.py create mode 100644 tests/fixtures/common_fixtures.py delete mode 100644 tests/fixtures/contracts.py create mode 100644 tests/fixtures/depositor_fixtures.py create mode 100644 tests/fixtures/gas_fee_fixtures.py create mode 100644 tests/fixtures/pause_bot_fixtures.py delete mode 100644 tests/fixtures/provider.py create mode 100644 tests/fixtures/pytest_mocks.py create mode 100644 tests/test_depositor_bot.py create mode 100644 tests/test_gas_srategy.py create mode 100644 tests/test_pause_bot.py create mode 100644 tests/test_reccomended_buffered_eth.py rename tests/{cryptography/test_verify_signature.py => test_signature_check.py} (94%) delete mode 100644 tests/utils/contract_utils.py create mode 100644 tests/utils/logs.py create mode 100644 tests/utils/mock_provider.py delete mode 100644 tests/utils/regrex.py diff --git a/.env.example b/.env.example deleted file mode 100644 index 3db16308..00000000 --- a/.env.example +++ /dev/null @@ -1,33 +0,0 @@ -WEB3_RPC_ENDPOINTS=https://goerli.infura.io/v3/ - -# Account private key -# Publicity known private key. Generated with `test test ... test` mnemonic. -WALLET_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 - -# App specific -# LIDO_LOCATOR ADDRESS -# Mainnet: 0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb -# Görli: 0x1eDf09b5023DC86737b59dE68a8130De878984f5 -LIDO_LOCATOR=0x1eDf09b5023DC86737b59dE68a8130De878984f5 - -# DEPOSIT_CONTRACT ADDRESS -# Mainnet: 0x00000000219ab540356cBB839Cbe05303d7705Fa -# Görli: 0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b -DEPOSIT_CONTRACT=0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b - -# rabbit / kafka / rabbit,kafka -MESSAGE_TRANSPORTS=rabbit - -# rabbit secrets -RABBIT_MQ_URL=ws://127.0.0.1:15674/ws -RABBIT_MQ_USERNAME=guest -RABBIT_MQ_PASSWORD=guest - -# Transactions settings -CREATE_TRANSACTIONS=true - -# FLASHBOTS_RPC URL -# Mainnet: "https://relay.flashbots.net", -# Görli: "https://relay-goerli.flashbots.net", -FLASHBOTS_RPC=https://relay-goerli.flashbots.net -FLASHBOT_SIGNATURE=0xbb0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ffaa diff --git a/.github/workflows/tests_and_checks.yml b/.github/workflows/tests_and_checks.yml index 859eb58a..e57e1672 100644 --- a/.github/workflows/tests_and_checks.yml +++ b/.github/workflows/tests_and_checks.yml @@ -26,25 +26,9 @@ jobs: run: | poetry install - - name: Unit Tests with pytest + - name: Test with pytest run: | - poetry run pytest tests -m unit - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - - run: npm install --save-dev hardhat - - - name: Run hardhat - run: | - npx hardhat node --fork ${{ secrets.WEB3_RPC_ENDPOINT }} & - - - name: Integration Tests with pytest - run: | - poetry run pytest tests -m integration - env: - WEB3_RPC_ENDPOINTS: http://127.0.0.1:8545 - DEPOSIT_CONTRACT: "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b" - LIDO_LOCATOR: "0x1eDf09b5023DC86737b59dE68a8130De878984f5" + poetry run pytest tests security: uses: lidofinance/linters/.github/workflows/security.yml@master diff --git a/.gitignore b/.gitignore index 0edbe798..59d927b3 100644 --- a/.gitignore +++ b/.gitignore @@ -137,5 +137,3 @@ debug.log #cache deposit_contract_cache/ - -node_modules/ diff --git a/README.md b/README.md index 50620c09..9d1ffaa9 100644 --- a/README.md +++ b/README.md @@ -1,129 +1,85 @@ # Lido Lido Depositor bot -## Description - -Depositor and pauser bots are parts of [Deposit Security Module](https://github.com/lidofinance/lido-improvement-proposals/blob/develop/LIPS/lip-5.md#mitigations-for-deposit-front-running-vulnerability). - -**The Depositor Bot** obtains signed deposit messages from Council Daemons. -Once a sufficient number of messages is collected to constitute a quorum, the bot proceeds to initiate a deposit into the designated staking module. -This deposit is executed using the depositBufferedEther function within the "DepositSecurityModule" smart contract. - -**The Pauser Bot** obtains pause message from Council Daemon and enacts pause on the specified staking module. - -## Table of Contents - -- [Running Daemon](#running-daemon) -- [Variables](#variables) - - [Required variables](#required-variables) - - [Additional variables](#additional-variables) -- [Metrics and logs](#metrics-and-logs) -- [Development](#development) - - [Install](#install) - - [Tests](#tests) - - [Release flow](#release-flow) -- [Annotations to code](#annotations-to-code) - -## Running Daemon - -1. Create `.env` file -2. Setup variables - - Set WEB3_RPC_ENDPOINTS - - Set WALLET_PRIVATE_KEY - - Set CREATE_TRANSACTIONS to true - - Set TRANSPORTS to rabbit - - Set RABBIT_MQ_URL, RABBIT_MQ_USERNAME and RABBIT_MQ_PASSWORD -3. ```docker-compose up``` -4. Send metrics and logs to grafana -5. Setup alerts - -## Variables - -### Required variables - -| Variable | Default | Description | -|-----------------------------------------|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| -| WEB3_RPC_ENDPOINTS | - | List of rpc endpoints that will be used to send requests comma separated (`,`) | -| WALLET_PRIVATE_KEY | - | Account private key | -| CREATE_TRANSACTIONS | false | If true then tx will be send to blockchain | -| LIDO_LOCATOR | 0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb | Lido Locator address. Mainnet by default. Other networks could be found [here](https://docs.lido.fi/deployed-contracts/) | -| DEPOSIT_CONTRACT | 0x00000000219ab540356cBB839Cbe05303d7705Fa | Ethereum deposit contract address | -| -------------------------------------- | -------------------------------------- | ----------------------------------------- | -| TRANSPORTS | - | Transports used in bot. One of/or both: rabbit/kafka | -| RABBIT_MQ_URL | - | RabbitMQ url | -| RABBIT_MQ_USERNAME | - | RabbitMQ username for virtualhost | -| RABBIT_MQ_PASSWORD | - | RabbitMQ password for virtualhost | -| -------------------------------------- | --- _kafka is not used at the moment_ --- | ----------------------------------------- | -| KAFKA_BROKER_ADDRESS_1 | - | Kafka servers url and port | -| KAFKA_USERNAME | - | Kafka username | -| KAFKA_PASSWORD | - | Password for kafka | -| KAFKA_NETWORK | - | Network type (mainnet or goerli) | -| KAFKA_TOPIC | - | Kafka topic name (for msg receiving) | -| KAFKA_GROUP_PREFIX | - | Just for staging (staging-) | - -### Additional variables - -| Variable | Default | Description | -|-----------------------------------|------------|--------------------------------------------------------------------------------------------------------------------------| -| MIN_PRIORITY_FEE | 50 mwei | Min priority fee that will be used in tx | -| MAX_PRIORITY_FEE | 10 gwei | Max priority fee that will be used in tx | -| MAX_GAS_FEE | 100 gwei | Bot will wait for a lower price. Treshold for gas_fee | -| CONTRACT_GAS_LIMIT | 15000000 | Default transaction gas limit | -| FLASHBOTS_RPC | - | Flashbots rpc endpoint | -| FLASHBOT_SIGNATURE | - | Private key - Used to identify account in flashbot`s rpc (should NOT be equal to WALLET private key) | -| GAS_FEE_PERCENTILE_1 | 20 | Percentile for first recommended fee calculation | -| GAS_FEE_PERCENTILE_DAYS_HISTORY_1 | 1 | Percentile for first recommended calculates from N days of the fee history | -| GAS_PRIORITY_FEE_PERCENTILE | 25 | Priority transaction will be N percentile from priority fees in last block (min MIN_PRIORITY_FEE - max MAX_PRIORITY_FEE) | -| MAX_BUFFERED_ETHERS | 5000 ether | Maximum amount of ETH in the buffer, after which the bot deposits at any gas | -| PROMETHEUS_PORT | 9000 | Port with metrics server | -| PULSE_SERVER_PORT | 9010 | Port with bot`s status server | -| MAX_CYCLE_LIFETIME_IN_SECONDS | 1200 | Max lifetime of usual cycle. If cycle will not end in this time, bot will crush | - -## Metrics and logs - -Metrics list could be found in [source code](src/metrics/metrics.py). -Prometheus server hosted on `http://localhost:${{PROMETHEUS_PORT}}/`. - -## Development - -### Install +## Depositor bot description +Depositor bot - Deposits buffered ether via depositBufferedEther call on "DepositSecurityModule" smart contract using special gas strategy. -```bash -git clone git@github.com:lidofinance/depositor-bot.git -cd depositor-bot -poetry install -``` +The strategy is to check two things: how much buffered ether on smart contract are and gas fee. -To run bot +We deposit when all the following points are correct: +- We received council signatures enough for quorum. +- Gas fee is lower or equal than 5-th percentile for past day. +- Buffered ETH is greater than or equal to the calculation according to a special formula depending on the gas fee. -```bash -# For depositor bot -poetry run python src/depositor.py +## Pauser bot +If one of the councils send pause message (means something very bad going on), pauser bot try to send tx that will pause protocol. +In addition, the council daemon tries to pause the protocol on its own. -# For pause bot -poetry run python src/pauser.py -``` - -### Tests -#### Run unit tests +## How to install +Python packages ```bash -poetry run pytest tests -m unit +git clone git@github.com:lidofinance/depositor-bot.git +cd depositor-bot +poetry install ``` -#### Run integration tests. +## Run script -Install Hardhat and run goerli fork +To run (development): + +Envs: ```bash -npm install --save-dev hardhat -npx hardhat node --fork ${{ WEB3_RPC_ENDPOINT }} & +export NETWORK=... +export WEB3_RPC_ENDPOINTS=... +export FLASHBOT_SIGNATURE=... +export KAFKA_BROKER_ADDRESS_1=... +export KAFKA_USERNAME=... +export KAFKA_PASSWORD=... +export KAFKA_TOPIC=... +export RABBIT_MQ_URL=... +export RABBIT_MQ_USERNAME=... +export RABBIT_MQ_PASSWORD=... ``` +Run: ```bash -poetry run pytest tests -m integration +# For depositor bot +python src/depositor.py + +# For pause bot +python src/pauser.py ``` -### Release flow +## Available variables + +| Vars in env | Amount | Default - Raw | Description | +|-----------------------------------|:----------:|:-------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------| +| WEB3_RPC_ENDPOINTS (required) | - | `` | List of rpc endpoints that will be used to send requests separated by comma (`,`). If not provided will be used infura (WEB3_INFURA_PROJECT_ID) | +| NETWORK (required) | - | `None` | Network (e.g. mainnet, goerli) | +| WALLET_PRIVATE_KEY | - | `None` | Account private key | +| FLASHBOT_SIGNATURE (required) | - | `None` | Private key - Used to identify account in flashbot`s rpc (should NOT be equal to WALLET private key) | +| CREATE_TRANSACTIONS | - | `None` | If `true` then tx will be send to blockchain | +| MAX_BUFFERED_ETHERS | 5000 ETH | `5000 ether` | Maximum amount of ETH in the buffer, after which the bot deposits at any gas | +| MAX_GAS_FEE | 100 GWEI | `100 gwei` | Bot will wait for a lower price. Treshold for gas_fee | +| GAS_FEE_PERCENTILE_1 | 5 | `5` | Percentile for first recommended fee calculation | +| GAS_FEE_PERCENTILE_DAYS_HISTORY_1 | 1 | `1` | Percentile for first recommended calculates from N days of the fee history | +| GAS_PRIORITY_FEE_PERCENTILE | 25 | `25` | Priority transaction will be N percentile from priority fees in last block (min `MIN_PRIORITY_FEE` - max `MAX_PRIORITY_FEE`) | +| CONTRACT_GAS_LIMIT | 15 * 10**6 | `15000000` | Default transaction gas limit | +| MIN_PRIORITY_FEE | 50 mwei | `50 mwei` | Min priority fee that will be used in tx | +| MAX_PRIORITY_FEE | 10 GWEI | `10 gwei` | Max priority fee that will be used in tx (4 gwei recommended) | +| MAX_CYCLE_LIFETIME_IN_SECONDS | 6 minutes | `300` | Max lifetime of usual cycle. If cycle will not end in this time, bot will crush | +| TRANSPORTS | - | `rabbit` | Transports used in bot. One of/or both: rabbit/kafka. | +| RABBIT_MQ_URL | | `ws://127.0.0.1:15674/ws` | url with ws protocol supported | +| RABBIT_MQ_USERNAME | guest | `guest` | RabbitMQ username for virtualhost | +| RABBIT_MQ_PASSWORD | guest | `guest` | RabbitMQ password for virtualhost | +| KAFKA_BROKER_ADDRESS_1 | - | `None` | Kafka servers url and port | +| KAFKA_USERNAME | - | `None` | Kafka username value | +| KAFKA_PASSWORD | - | `None` | Kafka password value | +| KAFKA_TOPIC | - | `None` | Kafka topic name (for msg receiving) | +| KAFKA_GROUP_PREFIX | - | `None` | Just for staging (staging-) | + +## Release flow To create a new release: @@ -132,28 +88,3 @@ To create a new release: 1. When you need to release, go to Repo → Releases. 1. Publish the desired release draft manually by clicking the edit button - this release is now the `Latest Published`. 1. After publication, the action to create a release bump will be triggered automatically. - -## Annotations to code - -Council daemons sends messages to depositor and pauser bot throw kafka or rabbit. - -![img.png](static/img.png) - -Every 5 blocks Executor instance calls depositor bot. If Depositor returns failed status, executor executes depositor with next block instead of waiting for 5 blocks. - -![img.png](static/img1.png) - -Depositor bot makes deposit only if next conditions are ok -- Gas fee is low enough -- There are enough buffered eth ready for deposit -- There are enough messages from Council Daemons to form a quorum -- Module is active and not paused - -![img.png](static/img2.png) - -Message filtering process -1. Filter all invalid messages. (Invalid schema or signature) -2. Filter all expired messages -3. Filter all messages with block number less or equal to latest block in depositor bot and with outdated nonce or deposit root. - -![img.png](static/img3.png) diff --git a/docker-compose.yml b/docker-compose.yml index 54248be3..2f2a3c50 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,15 +8,12 @@ services: ports: - 127.0.0.1:9000:9000 environment: - - WEB3_RPC_ENDPOINTS=${WEB3_RPC_ENDPOINTS} + - NETWORK=${NETWORK} - WALLET_PRIVATE_KEY=${WALLET_PRIVATE_KEY} - - CREATE_TRANSACTIONS=${CREATE_TRANSACTIONS} - - TRANSPORTS=${TRANSPORTS} - - RABBIT_MQ_URL=${RABBIT_MQ_URL} - - RABBIT_MQ_USERNAME=${RABBIT_MQ_USERNAME} - - RABBIT_MQ_PASSWORD=${RABBIT_MQ_PASSWORD} - - FLASHBOTS_RPC=${FLASHBOTS_RPC} - - FLASHBOT_SIGNATURE=${FLASHBOT_SIGNATURE} + - KAFKA_BROKER_ADDRESS_1=${KAFKA_BROKER_ADDRESS_1} + - KAFKA_USERNAME=${KAFKA_USERNAME} + - KAFKA_PASSWORD=${KAFKA_PASSWORD} + - KAFKA_TOPIC=${KAFKA_TOPIC} command: src/depositor.py lido-pause-bot: @@ -27,11 +24,10 @@ services: ports: - 127.0.0.1:9001:9000 environment: - - WEB3_RPC_ENDPOINTS=${WEB3_RPC_ENDPOINTS} + - NETWORK=${NETWORK} - WALLET_PRIVATE_KEY=${WALLET_PRIVATE_KEY} - - CREATE_TRANSACTIONS=${CREATE_TRANSACTIONS} - - TRANSPORTS=${TRANSPORTS} - - RABBIT_MQ_URL=${RABBIT_MQ_URL} - - RABBIT_MQ_USERNAME=${RABBIT_MQ_USERNAME} - - RABBIT_MQ_PASSWORD=${RABBIT_MQ_PASSWORD} + - KAFKA_BROKER_ADDRESS_1=${KAFKA_BROKER_ADDRESS_1} + - KAFKA_USERNAME=${KAFKA_USERNAME} + - KAFKA_PASSWORD=${KAFKA_PASSWORD} + - KAFKA_TOPIC=${KAFKA_TOPIC} command: src/pauser.py diff --git a/hardhat.config.js b/hardhat.config.js deleted file mode 100644 index 37df865c..00000000 --- a/hardhat.config.js +++ /dev/null @@ -1,15 +0,0 @@ -/** @type import('hardhat/config').HardhatUserConfig */ -module.exports = { - solidity: "0.8.19", - networks: { - hardhat: { - mining: { - auto: true, - interval: 12000 - } - } - }, - localhost: { - timeout: 100_000 - }, -}; diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f4f4e382..00000000 --- a/package-lock.json +++ /dev/null @@ -1,4256 +0,0 @@ -{ - "name": "depositor-bot", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "devDependencies": { - "hardhat": "^2.17.1" - } - }, - "node_modules/@chainsafe/as-sha256": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", - "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==", - "dev": true - }, - "node_modules/@chainsafe/persistent-merkle-tree": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", - "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", - "dev": true, - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1" - } - }, - "node_modules/@chainsafe/ssz": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", - "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", - "dev": true, - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1", - "@chainsafe/persistent-merkle-tree": "^0.4.2", - "case": "^1.6.3" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "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" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", - "dev": true, - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@noble/hashes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@nomicfoundation/ethereumjs-block": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz", - "integrity": "sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.1", - "@nomicfoundation/ethereumjs-rlp": "5.0.1", - "@nomicfoundation/ethereumjs-trie": "6.0.1", - "@nomicfoundation/ethereumjs-tx": "5.0.1", - "@nomicfoundation/ethereumjs-util": "9.0.1", - "ethereum-cryptography": "0.1.3", - "ethers": "^5.7.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-block/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-blockchain": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz", - "integrity": "sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.1", - "@nomicfoundation/ethereumjs-common": "4.0.1", - "@nomicfoundation/ethereumjs-ethash": "3.0.1", - "@nomicfoundation/ethereumjs-rlp": "5.0.1", - "@nomicfoundation/ethereumjs-trie": "6.0.1", - "@nomicfoundation/ethereumjs-tx": "5.0.1", - "@nomicfoundation/ethereumjs-util": "9.0.1", - "abstract-level": "^1.0.3", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "level": "^8.0.0", - "lru-cache": "^5.1.1", - "memory-level": "^1.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-common": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz", - "integrity": "sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-util": "9.0.1", - "crc-32": "^1.2.0" - } - }, - "node_modules/@nomicfoundation/ethereumjs-ethash": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz", - "integrity": "sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.1", - "@nomicfoundation/ethereumjs-rlp": "5.0.1", - "@nomicfoundation/ethereumjs-util": "9.0.1", - "abstract-level": "^1.0.3", - "bigint-crypto-utils": "^3.0.23", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-ethash/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-evm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz", - "integrity": "sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==", - "dev": true, - "dependencies": { - "@ethersproject/providers": "^5.7.1", - "@nomicfoundation/ethereumjs-common": "4.0.1", - "@nomicfoundation/ethereumjs-tx": "5.0.1", - "@nomicfoundation/ethereumjs-util": "9.0.1", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-evm/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-rlp": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz", - "integrity": "sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==", - "dev": true, - "bin": { - "rlp": "bin/rlp" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-statemanager": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz", - "integrity": "sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.1", - "@nomicfoundation/ethereumjs-rlp": "5.0.1", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "ethers": "^5.7.1", - "js-sdsl": "^4.1.4" - } - }, - "node_modules/@nomicfoundation/ethereumjs-statemanager/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-trie": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz", - "integrity": "sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "5.0.1", - "@nomicfoundation/ethereumjs-util": "9.0.1", - "@types/readable-stream": "^2.3.13", - "ethereum-cryptography": "0.1.3", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-trie/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-tx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz", - "integrity": "sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==", - "dev": true, - "dependencies": { - "@chainsafe/ssz": "^0.9.2", - "@ethersproject/providers": "^5.7.2", - "@nomicfoundation/ethereumjs-common": "4.0.1", - "@nomicfoundation/ethereumjs-rlp": "5.0.1", - "@nomicfoundation/ethereumjs-util": "9.0.1", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-util": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz", - "integrity": "sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==", - "dev": true, - "dependencies": { - "@chainsafe/ssz": "^0.10.0", - "@nomicfoundation/ethereumjs-rlp": "5.0.1", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/persistent-merkle-tree": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", - "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", - "dev": true, - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1" - } - }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/ssz": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", - "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", - "dev": true, - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1", - "@chainsafe/persistent-merkle-tree": "^0.5.0" - } - }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/ethereumjs-vm": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz", - "integrity": "sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==", - "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.1", - "@nomicfoundation/ethereumjs-blockchain": "7.0.1", - "@nomicfoundation/ethereumjs-common": "4.0.1", - "@nomicfoundation/ethereumjs-evm": "2.0.1", - "@nomicfoundation/ethereumjs-rlp": "5.0.1", - "@nomicfoundation/ethereumjs-statemanager": "2.0.1", - "@nomicfoundation/ethereumjs-trie": "6.0.1", - "@nomicfoundation/ethereumjs-tx": "5.0.1", - "@nomicfoundation/ethereumjs-util": "9.0.1", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@nomicfoundation/ethereumjs-vm/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", - "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", - "dev": true, - "engines": { - "node": ">= 12" - }, - "optionalDependencies": { - "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", - "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", - "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", - "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", - "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", - "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", - "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", - "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", - "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", - "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", - "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", - "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@scure/bip32": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", - "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.2.0", - "@noble/secp256k1": "~1.7.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@scure/bip39": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", - "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.2.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@sentry/core": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", - "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", - "dev": true, - "dependencies": { - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", - "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", - "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", - "dev": true, - "dependencies": { - "@sentry/core": "5.30.0", - "@sentry/hub": "5.30.0", - "@sentry/tracing": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", - "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", - "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/types": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", - "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", - "dev": true, - "dependencies": { - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.5.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", - "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", - "dev": true - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/readable-stream": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", - "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/abstract-level": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true, - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", - "dev": true - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true - }, - "node_modules/bigint-crypto-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz", - "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "node_modules/browser-level": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", - "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", - "dev": true, - "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.1", - "module-error": "^1.0.2", - "run-parallel-limit": "^1.1.0" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dev": true, - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dev": true, - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/case": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", - "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/classic-level": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", - "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.0", - "module-error": "^1.0.1", - "napi-macros": "^2.2.2", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", - "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", - "dev": true, - "dependencies": { - "@noble/hashes": "1.2.0", - "@noble/secp256k1": "1.7.1", - "@scure/bip32": "1.1.5", - "@scure/bip39": "1.1.1" - } - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fp-ts": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/hardhat": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.17.1.tgz", - "integrity": "sha512-1PxRkfjhEzXs/wDxI5YgzYBxNmvzifBTjYzuopwel+vXpAhCudplusJthN5eig0FTs4qbi828DBIITEDh8x9LA==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/ethereumjs-block": "5.0.1", - "@nomicfoundation/ethereumjs-blockchain": "7.0.1", - "@nomicfoundation/ethereumjs-common": "4.0.1", - "@nomicfoundation/ethereumjs-evm": "2.0.1", - "@nomicfoundation/ethereumjs-rlp": "5.0.1", - "@nomicfoundation/ethereumjs-statemanager": "2.0.1", - "@nomicfoundation/ethereumjs-trie": "6.0.1", - "@nomicfoundation/ethereumjs-tx": "5.0.1", - "@nomicfoundation/ethereumjs-util": "9.0.1", - "@nomicfoundation/ethereumjs-vm": "7.0.1", - "@nomicfoundation/solidity-analyzer": "^0.1.0", - "@sentry/node": "^5.18.1", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "^5.1.0", - "adm-zip": "^0.4.16", - "aggregate-error": "^3.0.0", - "ansi-escapes": "^4.3.0", - "chalk": "^2.4.2", - "chokidar": "^3.4.0", - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "enquirer": "^2.3.0", - "env-paths": "^2.2.0", - "ethereum-cryptography": "^1.0.3", - "ethereumjs-abi": "^0.6.8", - "find-up": "^2.1.0", - "fp-ts": "1.19.3", - "fs-extra": "^7.0.1", - "glob": "7.2.0", - "immutable": "^4.0.0-rc.12", - "io-ts": "1.10.4", - "keccak": "^3.0.2", - "lodash": "^4.17.11", - "mnemonist": "^0.38.0", - "mocha": "^10.0.0", - "p-map": "^4.0.0", - "raw-body": "^2.4.1", - "resolve": "1.17.0", - "semver": "^6.3.0", - "solc": "0.7.3", - "source-map-support": "^0.5.13", - "stacktrace-parser": "^0.1.10", - "tsort": "0.0.1", - "undici": "^5.14.0", - "uuid": "^8.3.2", - "ws": "^7.4.6" - }, - "bin": { - "hardhat": "internal/cli/bootstrap.js" - }, - "peerDependencies": { - "ts-node": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/immutable": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", - "integrity": "sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==", - "dev": true - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/io-ts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", - "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", - "dev": true, - "dependencies": { - "fp-ts": "^1.0.0" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", - "dev": true, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/js-sdsl": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", - "integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keccak": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/level": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", - "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", - "dev": true, - "dependencies": { - "browser-level": "^1.0.1", - "classic-level": "^1.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" - } - }, - "node_modules/level-supports": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/level-transcoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "module-error": "^1.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/mcl-wasm": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", - "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", - "dev": true, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/memory-level": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", - "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", - "dev": true, - "dependencies": { - "abstract-level": "^1.0.0", - "functional-red-black-tree": "^1.0.1", - "module-error": "^1.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mnemonist": { - "version": "0.38.5", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", - "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", - "dev": true, - "dependencies": { - "obliterator": "^2.0.0" - } - }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/module-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/napi-macros": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", - "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", - "dev": true - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true - }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/obliterator": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", - "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/run-parallel-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "dev": true - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", - "dev": true, - "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solcjs" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/solc/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/solc/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/solc/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", - "dev": true, - "dependencies": { - "type-fest": "^0.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", - "dev": true - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "dev": true - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/undici": { - "version": "5.23.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.23.0.tgz", - "integrity": "sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg==", - "dev": true, - "dependencies": { - "busboy": "^1.6.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index ae34ce59..00000000 --- a/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "devDependencies": { - "hardhat": "^2.17.1" - } -} diff --git a/poetry.lock b/poetry.lock index 5d3dbe42..bdfa2499 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1558,6 +1558,17 @@ files = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +[[package]] +name = "timeout-decorator" +version = "0.5.0" +description = "Timeout decorator" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "timeout-decorator-0.5.0.tar.gz", hash = "sha256:6a2f2f58db1c5b24a2cc79de6345760377ad8bdc13813f5265f6c3e63d16b3d7"}, +] + [[package]] name = "tomli" version = "2.0.1" @@ -1812,4 +1823,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.11" -content-hash = "671e086219dba68d38a2681b1e0b6666dee97d7fecc06530e1c7076246101756" +content-hash = "0ffead054631f16e929a7e8e7c68cacd70428c1507834b30c159c3d99c74ec4f" diff --git a/pyproject.toml b/pyproject.toml index 139e5822..62081dcb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,7 @@ include = [ python = ">=3.9,<3.11" numpy = "1.23.3" prometheus-client = "0.14.1" +timeout-decorator = "^0.5.0" web3-multi-provider = "^0.6.0" schema = "^0.7.5" web3 = "^5.30.0" @@ -28,7 +29,3 @@ pythonpath = [ "src", "tests", ] -markers = [ - "unit", # offline - "integration", # hardhat fork -] diff --git a/src/blockchain/buffered_eth.py b/src/blockchain/buffered_eth.py new file mode 100644 index 00000000..eee491e1 --- /dev/null +++ b/src/blockchain/buffered_eth.py @@ -0,0 +1,16 @@ +from math import sqrt + + +def get_recommended_buffered_ether_to_deposit(gas_fee: int) -> int: + """Returns suggested minimum buffered ether to deposit (in Wei)""" + apr = 0.039 # Protocol APR + # ether/14 days : select sum(tr.value)/1e18 from ethereum."transactions" as tr + # where tr.to = '\xae7ab96520DE3A18E5e111B5EaAb095312D7fE84' + # and tr.block_time >= '2021-12-01' and tr.block_time < '2021-12-15' and tr.value < 600*1e18; + a = 12 # ~ ether/hour + keys_hour = a / 32 + p = 32 * 10 ** 18 * apr / 365 / 24 # ~ Profit in hour + cc = 378300 # gas constant for every deposit tx that should be paid + multiply_constant = 1.5 # we will get profit with constant from 1 to 2, but the most profitable will be 1.5 + + return sqrt(multiply_constant * cc * gas_fee * keys_hour / p) * 32 * 10 ** 18 diff --git a/src/blockchain/constants.py b/src/blockchain/constants.py index 8ffe2719..0817fdd1 100644 --- a/src/blockchain/constants.py +++ b/src/blockchain/constants.py @@ -1 +1,40 @@ -SLOT_TIME = 12 +from enum import IntEnum + + +class Network(IntEnum): + Mainnet = 1 + Kovan = 42 + Rinkeby = 4 + Görli = 5 + xDai = 100 + Ropsten = 3 + Zhejiang = 1337803 + + +NETWORK_CHAIN_ID = { + 'mainnet': 1, + 'goerli': 5, + 'zhejiang': 1337803, +} + + +FLASHBOTS_RPC = { + Network.Mainnet: "https://relay.flashbots.net", + Network.Görli: "https://relay-goerli.flashbots.net", +} + + +LIDO_LOCATOR = { + Network.Mainnet: '0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb', + Network.Görli: '0x1eDf09b5023DC86737b59dE68a8130De878984f5', +} + +NODE_OPS_ADDRESSES = { + Network.Mainnet: "0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5", + Network.Görli: "0x9D4AF1Ee19Dad8857db3a45B0374c81c8A1C6320", +} + +DEPOSIT_CONTRACT = { + Network.Mainnet: "0x00000000219ab540356cBB839Cbe05303d7705Fa", + Network.Görli: "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b", +} diff --git a/src/blockchain/contracts.py b/src/blockchain/contracts.py new file mode 100644 index 00000000..b335e981 --- /dev/null +++ b/src/blockchain/contracts.py @@ -0,0 +1,63 @@ +import json + +from web3 import Web3 + +from blockchain.constants import LIDO_LOCATOR, NODE_OPS_ADDRESSES, DEPOSIT_CONTRACT +from variables import WEB3_CHAIN_ID + + +def load_abi(abi_path, abi_name): + f = open(f'{abi_path}{abi_name}.json') + return json.load(f) + + +class Contracts: + __initialized = False + + lido = None + node_operator_registry = None + deposit_security_module = None + deposit_contract = None + staking_router = None + + def initialize(self, w3: Web3, abi_path='./interfaces/'): + __initialized = True + + self.lido_locator = w3.eth.contract( + address=LIDO_LOCATOR[WEB3_CHAIN_ID], + abi=load_abi(abi_path, 'LidoLocator'), + ) + + self.lido = w3.eth.contract( + address=self.lido_locator.functions.lido().call(), + abi=load_abi(abi_path, 'Lido'), + ) + + self.deposit_security_module = w3.eth.contract( + address=self.lido_locator.functions.depositSecurityModule().call(), + abi=load_abi(abi_path, 'DepositSecurityModule'), + ) + + self.staking_router = w3.eth.contract( + address=self.lido_locator.functions.stakingRouter().call(), + abi=load_abi(abi_path, 'StakingRouter'), + ) + + self.deposit_contract = w3.eth.contract( + address=DEPOSIT_CONTRACT[WEB3_CHAIN_ID], + abi=load_abi(abi_path, 'DepositContract'), + ) + + # TODO remove after get_nonce will be replaced with staking call + self.node_operator_registry = w3.eth.contract( + address=NODE_OPS_ADDRESSES[WEB3_CHAIN_ID], + abi=load_abi(abi_path, 'NodeOperatorRegistry'), + ) + + @staticmethod + def load_abi(abi_name): + f = open(f'../../interfaces/{abi_name}.json') + return json.load(f) + + +contracts = Contracts() diff --git a/src/blockchain/contracts/__init__.py b/src/blockchain/contracts/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/blockchain/contracts/base_interface.py b/src/blockchain/contracts/base_interface.py deleted file mode 100644 index a2bd6f08..00000000 --- a/src/blockchain/contracts/base_interface.py +++ /dev/null @@ -1,22 +0,0 @@ -import json -from typing import Optional, Any - -from web3 import Web3 -from web3.contract import Contract - - -class ContractInterface(Contract): - abi_path: str = None - - @staticmethod - def load_abi(abi_file: str) -> dict: - with open(abi_file) as abi_json: - return json.load(abi_json) - - @classmethod - def factory(cls, web3: Web3, class_name: Optional[str] = None, **kwargs: Any) -> 'Contract': - if cls.abi_path is None: - raise AttributeError(f'abi_path attribute is missing in {cls.__name__} class') - - kwargs['abi'] = cls.load_abi(cls.abi_path) - return super().factory(web3, class_name, **kwargs) diff --git a/src/blockchain/contracts/deposit.py b/src/blockchain/contracts/deposit.py deleted file mode 100644 index 8be013a3..00000000 --- a/src/blockchain/contracts/deposit.py +++ /dev/null @@ -1,24 +0,0 @@ -import logging - -from eth_typing import BlockIdentifier, Hash32 - -from blockchain.contracts.base_interface import ContractInterface - - -logger = logging.getLogger(__name__) - - -class DepositContract(ContractInterface): - abi_path = './interfaces/DepositContract.json' - - def get_deposit_root(self, block_identifier: BlockIdentifier = 'latest') -> Hash32: - """ - Query the current deposit root hash. - """ - response = self.functions.get_deposit_root().call(block_identifier=block_identifier) - logger.info({ - 'msg': f'Call `get_deposit_root()`.', - 'value': response.hex(), - 'block_identifier': block_identifier.__repr__(), - }) - return response diff --git a/src/blockchain/contracts/deposit_security_module.py b/src/blockchain/contracts/deposit_security_module.py deleted file mode 100644 index e6b2f204..00000000 --- a/src/blockchain/contracts/deposit_security_module.py +++ /dev/null @@ -1,129 +0,0 @@ -import logging - -from eth_typing import ChecksumAddress, Hash32 -from web3.types import BlockIdentifier - -from blockchain.contracts.base_interface import ContractInterface - - -logger = logging.getLogger(__name__) - - -class DepositSecurityModuleContract(ContractInterface): - abi_path = './interfaces/DepositSecurityModule.json' - - def get_guardian_quorum(self, block_identifier: BlockIdentifier = 'latest') -> int: - """Returns number of valid guardian signatures required to vet (depositRoot, nonce) pair.""" - response = self.functions.getGuardianQuorum().call(block_identifier=block_identifier) - logger.info({'msg': f'Call `getGuardianQuorum()`.', 'value': response, 'block_identifier': block_identifier.__repr__()}) - return response - - def get_guardians(self, block_identifier: BlockIdentifier = 'latest') -> list[ChecksumAddress]: - """Returns guardian committee member list.""" - response = self.functions.getGuardians().call(block_identifier=block_identifier) - logger.info({'msg': f'Call `getGuardians()`.', 'value': response, 'block_identifier': block_identifier.__repr__()}) - return response - - def get_attest_message_prefix(self, block_identifier: BlockIdentifier = 'latest') -> bytes: - response = self.functions.ATTEST_MESSAGE_PREFIX().call(block_identifier=block_identifier) - logger.info({'msg': f'Call `ATTEST_MESSAGE_PREFIX()`.', 'value': response.hex(), 'block_identifier': block_identifier.__repr__()}) - return response - - def can_deposit(self, staking_module_id: int, block_identifier: BlockIdentifier = 'latest') -> bool: - """ - Returns whether LIDO.deposit() can be called, given that the caller will provide - guardian attestations of non-stale deposit root and `nonce`, and the number of - such attestations will be enough to reach quorum. - """ - response = self.functions.canDeposit(staking_module_id).call(block_identifier=block_identifier) - logger.info({'msg': f'Call `canDeposit({staking_module_id})`.', 'value': response, 'block_identifier': block_identifier.__repr__()}) - return response - - def deposit_buffered_ether( - self, - block_number: int, - block_hash: Hash32, - deposit_root: Hash32, - staking_module_id: int, - nonce: int, - deposit_call_data: bytes, - guardian_signatures: list[tuple[bytes, bytes]], - ): - """ - Calls LIDO.deposit(maxDepositsPerBlock, stakingModuleId, depositCalldata). - - Reverts if any of the following is true: - 1. IDepositContract.get_deposit_root() != depositRoot. - 2. StakingModule.getNonce() != nonce. - 3. The number of guardian signatures is less than getGuardianQuorum(). - 4. An invalid or non-guardian signature received. - 5. block.number - StakingModule.getLastDepositBlock() < minDepositBlockDistance. - 6. blockhash(blockNumber) != blockHash. - - Signatures must be sorted in ascending order by address of the guardian. Each signature must - be produced for the keccak256 hash of the following message (each component taking 32 bytes): - - | ATTEST_MESSAGE_PREFIX | blockNumber | blockHash | depositRoot | stakingModuleId | nonce | - """ - response = self.functions.depositBufferedEther( - block_number, - block_hash, - deposit_root, - staking_module_id, - nonce, - deposit_call_data, - guardian_signatures, - ) - logger.info({'msg': 'Build `depositBufferedEther({}, {}, {}, {}, {}, {}, {})` tx.'.format( - block_number, - block_hash, - deposit_root, - staking_module_id, - nonce, - deposit_call_data, - guardian_signatures, - )}) - return response - - def get_pause_message_prefix(self, block_identifier: BlockIdentifier = 'latest') -> bytes: - response = self.functions.PAUSE_MESSAGE_PREFIX().call(block_identifier=block_identifier) - logger.info({'msg': f'Call `PAUSE_MESSAGE_PREFIX()`.', 'value': response.hex(), 'block_identifier': block_identifier.__repr__()}) - return response - - def get_pause_intent_validity_period_blocks(self, block_identifier: BlockIdentifier = 'latest') -> int: - """Returns current `pauseIntentValidityPeriodBlocks` contract parameter (see `pauseDeposits`).""" - response = self.functions.getPauseIntentValidityPeriodBlocks().call(block_identifier=block_identifier) - logger.info({'msg': f'Call `getPauseIntentValidityPeriodBlocks()`.', 'value': response, 'block_identifier': block_identifier.__repr__()}) - return response - - def pause_deposits( - self, - block_number: int, - staking_module_id: int, - guardian_signature: tuple[str, str], - ): - """ - Pauses deposits for staking module given that both conditions are satisfied (reverts otherwise): - - 1. The function is called by the guardian with index guardianIndex OR sig - is a valid signature by the guardian with index guardianIndex of the data - defined below. - - 2. block.number - blockNumber <= pauseIntentValidityPeriodBlocks - - The signature, if present, must be produced for keccak256 hash of the following - message (each component taking 32 bytes): - - | PAUSE_MESSAGE_PREFIX | blockNumber | stakingModuleId | - """ - tx = self.functions.pauseDeposits( - block_number, - staking_module_id, - guardian_signature - ) - logger.info({'msg': 'Build `pauseDeposits({}, {}, {})` tx.'.format( - block_number, - staking_module_id, - guardian_signature, - )}) - return tx diff --git a/src/blockchain/contracts/lido.py b/src/blockchain/contracts/lido.py deleted file mode 100644 index 198d654c..00000000 --- a/src/blockchain/contracts/lido.py +++ /dev/null @@ -1,21 +0,0 @@ -import logging - -from web3.types import BlockIdentifier, Wei - -from blockchain.contracts.base_interface import ContractInterface - - -logger = logging.getLogger(__name__) - - -class LidoContract(ContractInterface): - abi_path = './interfaces/Lido.json' - - def get_depositable_ether(self, block_identifier: BlockIdentifier = 'latest') -> Wei: - """ - Returns depositable ether amount. - Unfinalized stETH required by WithdrawalQueue are excluded from buffered ether. - """ - response = self.functions.getDepositableEther().call(block_identifier=block_identifier) - logger.info({'msg': f'Call `getDepositableEther()`.', 'value': response, 'block_identifier': block_identifier.__repr__()}) - return response diff --git a/src/blockchain/contracts/lido_locator.py b/src/blockchain/contracts/lido_locator.py deleted file mode 100644 index e2b5fd3a..00000000 --- a/src/blockchain/contracts/lido_locator.py +++ /dev/null @@ -1,28 +0,0 @@ -import logging - -from eth_typing import ChecksumAddress -from web3.types import BlockIdentifier - -from blockchain.contracts.base_interface import ContractInterface - - -logger = logging.getLogger(__name__) - - -class LidoLocatorContract(ContractInterface): - abi_path = './interfaces/LidoLocator.json' - - def lido(self, block_identifier: BlockIdentifier = 'latest') -> ChecksumAddress: - response = self.functions.lido().call(block_identifier=block_identifier) - logger.info({'msg': f'Call `lido()`.', 'value': response, 'block_identifier': block_identifier.__repr__()}) - return response - - def deposit_security_module(self, block_identifier: BlockIdentifier = 'latest') -> ChecksumAddress: - response = self.functions.depositSecurityModule().call(block_identifier=block_identifier) - logger.info({'msg': f'Call `depositSecurityModule()`.', 'value': response, 'block_identifier': block_identifier.__repr__()}) - return response - - def staking_router(self, block_identifier: BlockIdentifier = 'latest') -> ChecksumAddress: - response = self.functions.stakingRouter().call(block_identifier=block_identifier) - logger.info({'msg': f'Call `stakingRouter()`.', 'value': response, 'block_identifier': block_identifier.__repr__()}) - return response diff --git a/src/blockchain/contracts/staking_router.py b/src/blockchain/contracts/staking_router.py deleted file mode 100644 index f57d759f..00000000 --- a/src/blockchain/contracts/staking_router.py +++ /dev/null @@ -1,102 +0,0 @@ -import logging - -from web3.types import Wei, BlockIdentifier - -from blockchain.contracts.base_interface import ContractInterface - - -logger = logging.getLogger(__name__) - - -class StakingRouterContract(ContractInterface): - abi_path = './interfaces/StakingRouter.json' - - def get_max_deposits_count( - self, - staking_module_id: int, - depositable_ether: Wei, - block_identifier: BlockIdentifier = 'latest', - ) -> int: - """ - Calculate the max count of deposits which the staking module can provide data for based - on the passed `_maxDepositsValue` amount - @param staking_module_id id of the staking module to be deposited - @param depositable_ether max amount of ether that might be used for deposits count calculation - @return max number of deposits might be done using the given staking module - """ - response = self.functions.getStakingModuleMaxDepositsCount( - staking_module_id, - depositable_ether, - ).call(block_identifier=block_identifier) - logger.info({ - 'msg': f'Call `getStakingModuleMaxDepositsCount({staking_module_id}, {depositable_ether})`.', - 'value': response, - 'block_identifier': block_identifier.__repr__(), - }) - return response - - def get_staking_module_ids(self, block_identifier: BlockIdentifier = 'latest') -> list[int]: - """Returns the ids of all registered staking modules""" - response = self.functions.getStakingModuleIds().call(block_identifier=block_identifier) - logger.info({ - 'msg': f'Call `get_staking_module_ids()`.', - 'value': response, - 'block_identifier': block_identifier.__repr__(), - }) - return response - - def is_staking_module_active( - self, - staking_module_id: int, - block_identifier: BlockIdentifier = 'latest', - ) -> bool: - response = self.functions.getStakingModuleIsActive(staking_module_id).call(block_identifier=block_identifier) - logger.info({ - 'msg': f'Call `getStakingModuleIsActive({staking_module_id})`.', - 'value': response, - 'block_identifier': block_identifier.__repr__(), - }) - return response - - def is_staking_module_deposits_paused( - self, - staking_module_id: int, - block_identifier: BlockIdentifier = 'latest', - ) -> bool: - response = self.functions.getStakingModuleIsDepositsPaused(staking_module_id).call(block_identifier=block_identifier) - logger.info({ - 'msg': f'Call `getStakingModuleIsDepositsPaused({staking_module_id})`.', - 'value': response, - 'block_identifier': block_identifier.__repr__(), - }) - return response - - def get_staking_module_nonce( - self, - staking_module_id: int, - block_identifier: BlockIdentifier = 'latest', - ) -> int: - response = self.functions.getStakingModuleNonce(staking_module_id).call(block_identifier=block_identifier) - logger.info({ - 'msg': f'Call `getStakingModuleNonce({staking_module_id})`.', - 'value': response, - 'block_identifier': block_identifier.__repr__(), - }) - return response - - def get_staking_module_deposits_count( - self, - staking_module_id: int, - depositable_ether: Wei, - block_identifier: BlockIdentifier = 'latest', - ) -> int: - response = self.functions.getStakingModuleMaxDepositsCount( - staking_module_id, - depositable_ether, - ).call(block_identifier=block_identifier) - logger.info({ - 'msg': f'Call `getStakingModuleMaxDepositsCount({staking_module_id}, {depositable_ether})`.', - 'value': response, - 'block_identifier': block_identifier.__repr__(), - }) - return response diff --git a/src/blockchain/deposit_strategy/__init__.py b/src/blockchain/deposit_strategy/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/blockchain/deposit_strategy/curated_module.py b/src/blockchain/deposit_strategy/curated_module.py deleted file mode 100644 index 377a21f9..00000000 --- a/src/blockchain/deposit_strategy/curated_module.py +++ /dev/null @@ -1,112 +0,0 @@ -import logging -from typing import Literal - -import numpy -from eth_typing import BlockNumber -from web3 import Web3 -from web3.types import Wei - -import variables -from blockchain.deposit_strategy.interface import ModuleDepositStrategyInterface -from metrics.metrics import GAS_FEE, DEPOSITABLE_ETHER, POSSIBLE_DEPOSITS_AMOUNT - - -logger = logging.getLogger(__name__) - - -class CuratedModuleDepositStrategy(ModuleDepositStrategyInterface): - BLOCKS_IN_ONE_DAY = 24 * 60 * 60 // 12 - - CACHE_BLOCK_AMOUNT = 300 - REQUEST_SIZE = 1024 - - def __init__(self, w3: Web3, module_id: int): - super().__init__(w3, module_id) - - self._gas_fees: list = [] - - # Used for caching - self._latest_fetched_block: int = 0 - self._days_param = None - - def is_deposited_keys_amount_ok(self) -> bool: - possible_deposits_amount = self._get_possible_deposits_amount() - recommended_max_gas = self._calculate_recommended_gas_based_on_deposit_amount(possible_deposits_amount) - - base_fee_per_gas = self._get_pending_base_fee() - return recommended_max_gas >= base_fee_per_gas - - def _get_possible_deposits_amount(self) -> int: - depositable_ether = self.w3.lido.lido.get_depositable_ether() - DEPOSITABLE_ETHER.labels(self.module_id).set(depositable_ether) - - possible_deposits_amount = self.w3.lido.staking_router.get_staking_module_deposits_count( - self.module_id, - depositable_ether, - ) - POSSIBLE_DEPOSITS_AMOUNT.labels(self.module_id).set(possible_deposits_amount) - return possible_deposits_amount - - def _calculate_recommended_gas_based_on_deposit_amount(self, deposits_amount: int) -> Wei: - # For one key recommended gas fee will be around 10 - # For 10 keys around 100 gwei. For 20 keys ~ 800 gwei - # ToDo percentiles for all modules? - recommended_max_gas = (deposits_amount ** 3 + 100) * 10 ** 8 - logger.info({'msg': 'Calculate recommended max gas based on possible deposits.'}) - GAS_FEE.labels('based_on_buffer_fee', self.module_id).set(recommended_max_gas) - return recommended_max_gas - - def _get_pending_base_fee(self): - base_fee_per_gas = self.w3.eth.get_block('pending')['baseFeePerGas'] - logger.info({'msg': 'Fetch base_fee_per_gas for pending block.', 'value': base_fee_per_gas}) - return base_fee_per_gas - - def is_gas_price_ok(self) -> bool: - current_gas_fee = self._get_pending_base_fee() - GAS_FEE.labels('current_fee', self.module_id).set(current_gas_fee) - - recommended_gas_fee = self._get_recommended_gas_fee() - GAS_FEE.labels('recommended_fee', self.module_id).set(recommended_gas_fee) - - GAS_FEE.labels('max_fee', self.module_id).set(variables.MAX_GAS_FEE) - - current_buffered_ether = self.w3.lido.lido.get_depositable_ether() - if current_buffered_ether > variables.MAX_BUFFERED_ETHERS: - return variables.MAX_GAS_FEE >= current_gas_fee - - return recommended_gas_fee >= current_gas_fee - - def _get_recommended_gas_fee(self): - gas_history = self._fetch_gas_fee_history(variables.GAS_FEE_PERCENTILE_DAYS_HISTORY_1) - return int(numpy.percentile(gas_history, variables.GAS_FEE_PERCENTILE_1)) - - def _fetch_gas_fee_history(self, days: int) -> list[int]: - latest_block_num = self.w3.eth.get_block('latest')['number'] - - if ( - self._latest_fetched_block - and self._latest_fetched_block + self.CACHE_BLOCK_AMOUNT > latest_block_num - and self._days_param >= days - ): - logger.info({'msg': 'Use cached gas history'}) - return self._gas_fees - - logger.info({'msg': 'Fetch gas fee history.', 'value': {'block_number': latest_block_num}}) - - self._latest_fetched_block = latest_block_num - self._days_param = days - - total_blocks_to_fetch = self.BLOCKS_IN_ONE_DAY * days - requests_count = total_blocks_to_fetch // self.REQUEST_SIZE + 1 - - gas_fees = [] - last_block: Literal['latest'] | BlockNumber = 'latest' - - for i in range(requests_count): - stats = self.w3.eth.fee_history(self.REQUEST_SIZE, last_block, []) - last_block = BlockNumber(stats['oldestBlock'] - 2) - gas_fees = stats['baseFeePerGas'] + gas_fees - - self._gas_fees = gas_fees[:days * self.BLOCKS_IN_ONE_DAY] - - return self._gas_fees diff --git a/src/blockchain/deposit_strategy/interface.py b/src/blockchain/deposit_strategy/interface.py deleted file mode 100644 index 9dcf8325..00000000 --- a/src/blockchain/deposit_strategy/interface.py +++ /dev/null @@ -1,17 +0,0 @@ -from abc import ABC, abstractmethod - -from blockchain.typings import Web3 - - -class ModuleDepositStrategyInterface(ABC): - def __init__(self, w3: Web3, module_id: int): - self.w3 = w3 - self.module_id = module_id - - @abstractmethod - def is_gas_price_ok(self) -> bool: - pass - - @abstractmethod - def is_deposited_keys_amount_ok(self) -> bool: - pass diff --git a/src/blockchain/executer.py b/src/blockchain/executer.py deleted file mode 100644 index 3ad3b544..00000000 --- a/src/blockchain/executer.py +++ /dev/null @@ -1,97 +0,0 @@ -import logging -from time import sleep -from typing import Callable, Any, Optional - -from web3.types import BlockData -from web3_multi_provider import NoActiveProviderError - -from blockchain.constants import SLOT_TIME -from blockchain.typings import Web3 -from metrics import healthcheck_pulse -from utils.timeout import TimeoutManager, TimeoutManagerError - - -logger = logging.getLogger(__name__) - - -class Executor: - """Executes periodically function with block_identifier.""" - def __init__( - self, - w3: Web3, - function_to_execute: Callable[[BlockData], Any], - blocks_between_execution: int, - cycle_max_lifetime: int, - ) -> None: - """ - @param function_to_execute is functions that will be executed every N blocks - @param blocks_between_execution is amount of EL blocks between function execution. - Blocks could be missed, so waiting time could be higher than expected. - """ - self.w3 = w3 - - self.function_to_execute = function_to_execute - self.blocks_between_execution = blocks_between_execution - self.cycle_max_lifetime = cycle_max_lifetime - - self._latest_block_number = 0 - self._next_expected_block = 0 - - def execute_as_daemon(self) -> None: - """Run execution module """ - while True: - self._wait_for_new_block_and_execute() - - def _wait_for_new_block_and_execute(self) -> Any: - healthcheck_pulse.pulse() - - latest_block = self._exception_handler(self._wait_until_next_block) - result = self._exception_handler(self._execute_function, latest_block) - - if result: - self._next_expected_block += self.blocks_between_execution - else: - # If function do not return success code (True or whatever) retry function call with next block. - self._next_expected_block += 1 - - return result - - def _wait_until_next_block(self) -> BlockData: - with TimeoutManager(max( - # Wait at least 5 slots before throw exception - 5 * SLOT_TIME, - self.blocks_between_execution * SLOT_TIME * 2 - )): - while True: - latest_block: BlockData = self.w3.eth.get_block('latest') - logger.debug({'msg': 'Fetch latest block.', 'value': latest_block}) - - if latest_block['number'] >= self._next_expected_block: - self._next_expected_block = latest_block['number'] - return latest_block - - time_until_expected_block = (self._next_expected_block - latest_block.number - 1) * SLOT_TIME - - # If expected block is next - if time_until_expected_block == 0: - time_until_expected_block = 5 - - logger.debug({'msg': f'Sleep for {time_until_expected_block} seconds.'}) - sleep(time_until_expected_block) - - def _execute_function(self, block: BlockData) -> None: - with TimeoutManager(self.cycle_max_lifetime): - return self.function_to_execute(block) - - @staticmethod - def _exception_handler(function: Callable, *args, **kwargs) -> Optional[Any]: - try: - return function(*args, **kwargs) - except TimeoutManagerError as exception: - logger.error({'msg': 'Timeout error.', 'error': str(exception), 'function': function.__name__}) - raise TimeoutManagerError('Bot stuck. Shut down.') from exception - except NoActiveProviderError as exception: - logger.error({'msg': 'No active node available. Shut down.', 'error': str(exception)}) - raise NoActiveProviderError from exception - except Exception as error: - logger.error({'msg': 'Unexpected error.', 'error': str(error), 'args': str(error.args)}) diff --git a/src/blockchain/fetch_latest_block.py b/src/blockchain/fetch_latest_block.py new file mode 100644 index 00000000..070c46fb --- /dev/null +++ b/src/blockchain/fetch_latest_block.py @@ -0,0 +1,25 @@ +import logging +import time + +from web3 import Web3 +from web3.types import BlockData + + +logger = logging.getLogger(__name__) + + +def fetch_latest_block(w3: Web3, _prev_block_number: int) -> BlockData: + from_provider_index = w3.provider._current_provider_index + + while True: + current_block = w3.eth.get_block('latest') + logger.info({'msg': f'Fetch `latest` block.', 'value': current_block.number}) + + if _prev_block_number != current_block.number: + return current_block + + w3.provider._current_provider_index = (w3.provider._current_provider_index + 1) % len(w3.provider._hosts_uri) + + if from_provider_index == w3.provider._current_provider_index: + logger.info({'msg': f'All providers returns same block. Sleep for 5 seconds and try again.'}) + time.sleep(5) diff --git a/src/blockchain/gas_strategy.py b/src/blockchain/gas_strategy.py new file mode 100644 index 00000000..02665c54 --- /dev/null +++ b/src/blockchain/gas_strategy.py @@ -0,0 +1,90 @@ +import logging +from typing import List, Tuple, Iterable + +import numpy +from web3 import Web3 + +logger = logging.getLogger(__name__) + + +class GasFeeStrategy: + BLOCKS_IN_ONE_DAY = 6600 + + def __init__(self, w3: Web3, blocks_count_cache: int = 300, max_gas_fee: int = Web3.toWei('100', 'gwei')): + """ + gas_history_block_cache - blocks count that gas his + """ + self._w3 = w3 + self._blocks_count_cache: int = blocks_count_cache + self.max_gas_fee = max_gas_fee + + self._gas_fees: list = [] + + # Used for caching + self._latest_fetched_block: int = 0 + self._days_param = None + + def _fetch_gas_fee_history(self, days: int) -> List[int]: + """ + Returns gas fee history for N days. + Cache updates every {_blocks_count_cache} block. + """ + latest_block_num = self._w3.eth.get_block('latest')['number'] + + # If _blocks_count_cache didn't passed return cache + if ( + self._latest_fetched_block + and self._latest_fetched_block + self._blocks_count_cache > latest_block_num + and self._days_param >= days + ): + logger.info({'msg': 'Use cached gas history'}) + return self._gas_fees + + logger.info({'msg': 'Init or refresh gas history.', 'value': {'block_number': latest_block_num}}) + + self._latest_fetched_block = latest_block_num + self._days_param = days + + total_blocks_to_fetch = self.BLOCKS_IN_ONE_DAY * days + requests_count = total_blocks_to_fetch // 1024 + 1 + + gas_fees = [] + last_block = 'latest' + + for i in range(requests_count): + stats = self._w3.eth.fee_history(1024, last_block, []) + last_block = stats['oldestBlock'] - 2 + gas_fees = stats['baseFeePerGas'] + gas_fees + + self._gas_fees = gas_fees + + return self._gas_fees + + def get_gas_fee_percentile(self, days: int, percentile: int) -> float: + """Calculates provided percentile for N days""" + # One week price stats + gas_fee_history = self._fetch_gas_fee_history(days) + blocks_to_count_percentile = gas_fee_history[-days * self.BLOCKS_IN_ONE_DAY:] + gas_percentile = int(numpy.percentile(blocks_to_count_percentile, percentile)) + return gas_percentile + + def get_recommended_gas_fee(self, percentiles: Iterable[Tuple[int, int]], force: bool = False) -> float: + """Returns the recommended gas fee""" + if force: + return self.max_gas_fee + + min_recommended_fee = self.max_gas_fee + + for days, percentile in percentiles: + min_recommended_fee = min(min_recommended_fee, self.get_gas_fee_percentile(days, percentile)) + + return min_recommended_fee + + def get_priority_fee(self, percentile: int, min_priority_fee: int, max_priority_fee: int): + return min( + max( + self._w3.eth.fee_history(1, 'latest', reward_percentiles=[percentile])['reward'][0][0], + min_priority_fee, + ), + max_priority_fee, + ) diff --git a/src/blockchain/web3_extentions/requests_metric_middleware.py b/src/blockchain/requests_metric_middleware.py similarity index 99% rename from src/blockchain/web3_extentions/requests_metric_middleware.py rename to src/blockchain/requests_metric_middleware.py index 9e5e3f19..1a7d8ccf 100644 --- a/src/blockchain/web3_extentions/requests_metric_middleware.py +++ b/src/blockchain/requests_metric_middleware.py @@ -8,7 +8,6 @@ from metrics.metrics import ETH_RPC_REQUESTS_DURATION, ETH_RPC_REQUESTS - logger = logging.getLogger(__name__) diff --git a/src/blockchain/typings.py b/src/blockchain/typings.py deleted file mode 100644 index 6bcc623d..00000000 --- a/src/blockchain/typings.py +++ /dev/null @@ -1,9 +0,0 @@ -from web3 import Web3 as _Web3 - -from blockchain.web3_extentions.lido_contracts import LidoContracts -from blockchain.web3_extentions.transaction import TransactionUtils - - -class Web3(_Web3): - lido: LidoContracts - transaction: TransactionUtils diff --git a/src/blockchain/web3_extentions/__init__.py b/src/blockchain/web3_extentions/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/blockchain/web3_extentions/lido_contracts.py b/src/blockchain/web3_extentions/lido_contracts.py deleted file mode 100644 index 4c45471d..00000000 --- a/src/blockchain/web3_extentions/lido_contracts.py +++ /dev/null @@ -1,44 +0,0 @@ -from typing import cast - -from web3 import Web3 -from web3.module import Module - -import variables -from blockchain.contracts.deposit import DepositContract - -from blockchain.contracts.deposit_security_module import DepositSecurityModuleContract -from blockchain.contracts.lido import LidoContract -from blockchain.contracts.lido_locator import LidoLocatorContract -from blockchain.contracts.staking_router import StakingRouterContract - - -class LidoContracts(Module): - def __init__(self, w3: Web3): - super().__init__(w3) - self._load_contracts() - - def _load_contracts(self): - self.deposit_contract: DepositContract = cast(DepositContract, self.web3.eth.contract( - address=variables.DEPOSIT_CONTRACT, - ContractFactoryClass=DepositContract, - )) - - self.lido_locator: LidoLocatorContract = cast(LidoLocatorContract, self.web3.eth.contract( - address=variables.LIDO_LOCATOR, - ContractFactoryClass=LidoLocatorContract, - )) - - self.lido: LidoContract = cast(LidoContract, self.web3.eth.contract( - address=self.lido_locator.lido(), - ContractFactoryClass=LidoContract, - )) - - self.deposit_security_module = cast(DepositSecurityModuleContract, self.web3.eth.contract( - address=self.lido_locator.deposit_security_module(), - ContractFactoryClass=DepositSecurityModuleContract, - )) - - self.staking_router = cast(StakingRouterContract, self.web3.eth.contract( - address=self.lido_locator.staking_router(), - ContractFactoryClass=StakingRouterContract, - )) diff --git a/src/blockchain/web3_extentions/transaction.py b/src/blockchain/web3_extentions/transaction.py deleted file mode 100644 index c2095bed..00000000 --- a/src/blockchain/web3_extentions/transaction.py +++ /dev/null @@ -1,121 +0,0 @@ -import logging - -from eth_account.datastructures import SignedTransaction -from web3.contract import ContractFunction -from web3.exceptions import ContractLogicError, TransactionNotFound, TimeExhausted -from web3.module import Module -from web3.types import BlockData, Wei - -import variables -from blockchain.constants import SLOT_TIME -from metrics.metrics import TX_SEND - - -logger = logging.getLogger(__name__) - - -class TransactionUtils(Module): - @staticmethod - def check(transaction: ContractFunction) -> bool: - try: - transaction.call() - except (ValueError, ContractLogicError) as error: - logger.error({'msg': 'Local transaction reverted.', 'error': str(error)}) - return False - - logger.info({'msg': 'Tx local call succeed.'}) - return True - - def send( - self, - transaction: ContractFunction, - use_flashbots: bool, - timeout_in_blocks: int, - ) -> bool: - if not variables.ACCOUNT: - logger.info({'msg': 'Account was not provided. Sending transaction skipped.'}) - return True - - if not variables.CREATE_TRANSACTIONS: - logger.info({'msg': 'Dry mode activated. Sending transaction skipped.'}) - return True - - pending: BlockData = self.web3.eth.get_block('pending') - - priority = self._get_priority_fee( - variables.GAS_PRIORITY_FEE_PERCENTILE, - variables.MIN_PRIORITY_FEE, - variables.MAX_PRIORITY_FEE, - ) - - transaction_dict = transaction.build_transaction({ - 'from': variables.ACCOUNT.address, - # TODO Estimate gas and min(contract_gas_limit, estimated_gas * 1.3) - 'gas': variables.CONTRACT_GAS_LIMIT, - 'maxFeePerGas': pending['baseFeePerGas'] * 2 + priority, - 'maxPriorityFeePerGas': priority, - "nonce": self.web3.eth.get_transaction_count(variables.ACCOUNT.address), - }) - - signed = self.web3.eth.account.sign_transaction(transaction_dict, variables.ACCOUNT.privateKey) - - # TODO try to deposit with other relays - if use_flashbots and getattr(self.web3, 'flashbots', None): - status = self.flashbots_send(signed, pending['number'], timeout_in_blocks) - else: - status = self.classic_send(signed, timeout_in_blocks) - - if status: - TX_SEND.labels('success').inc() - logger.info({'msg': 'Transaction found in blockchain.'}) - else: - TX_SEND.labels('failure').inc() - logger.warning({'msg': 'Transaction not found in blockchain.'}) - - return status - - def flashbots_send( - self, - signed_tx: SignedTransaction, - pending_block_num: int, - timeout_in_blocks: int, - ) -> bool: - for i in range(timeout_in_blocks): - result = self.web3.flashbots.send_bundle( - [{"signed_transaction": signed_tx.rawTransaction}], - pending_block_num + i - ) - - logger.info({'msg': 'Transaction sent.'}) - try: - rec = result.receipts() - except TransactionNotFound: - return False - else: - logger.info({'msg': 'Transaction mined.', 'value': rec[-1]['transactionHash'].hex()}) - return True - - def classic_send(self, signed_tx: SignedTransaction, timeout_in_blocks: int) -> bool: - try: - tx_hash = self.web3.eth.send_raw_transaction(signed_tx.rawTransaction) - except Exception as error: - logger.error({'msg': 'Transaction reverted.', 'value': str(error)}) - return False - - logger.info({'msg': 'Transaction sent.', 'value': tx_hash.hex()}) - try: - tx_receipt = self.web3.eth.wait_for_transaction_receipt(tx_hash, (timeout_in_blocks + 1) * SLOT_TIME) - except TimeExhausted: - return False - - logger.info({'msg': 'Transaction found', 'value': tx_receipt['transactionHash'].hex()}) - return True - - def _get_priority_fee(self, percentile: int, min_priority_fee: Wei, max_priority_fee: Wei): - return min( - max( - self.web3.eth.fee_history(1, 'latest', reward_percentiles=[percentile])['reward'][0][0], - min_priority_fee, - ), - max_priority_fee, - ) diff --git a/src/bots/depositor.py b/src/bots/depositor.py deleted file mode 100644 index 3813c075..00000000 --- a/src/bots/depositor.py +++ /dev/null @@ -1,243 +0,0 @@ -import logging -from collections import defaultdict -from typing import Optional, Callable - -from eth_typing import Hash32 -from schema import Or, Schema -from web3.types import BlockData - -import variables - -from blockchain.deposit_strategy.curated_module import CuratedModuleDepositStrategy -from blockchain.deposit_strategy.interface import ModuleDepositStrategyInterface -from blockchain.typings import Web3 -from cryptography.verify_signature import compute_vs -from metrics.metrics import ( - ACCOUNT_BALANCE, CURRENT_QUORUM_SIZE, -) -from metrics.transport_message_metrics import message_metrics_filter -from transport.msg_providers.kafka import KafkaMessageProvider -from transport.msg_providers.rabbit import RabbitProvider, MessageType -from transport.msg_schemas import ( - DepositMessageSchema, - PingMessageSchema, - get_deposit_messages_sign_filter, - DepositMessage, -) -from transport.msg_storage import MessageStorage -from transport.types import TransportType - - -logger = logging.getLogger(__name__) - - -class ModuleNotSupportedError(Exception): - pass - - -class DepositorBot: - _flashbots_works = True - - def __init__(self, w3: Web3): - self.w3 = w3 - - transports = [] - - if TransportType.RABBIT in variables.MESSAGE_TRANSPORTS: - transports.append(RabbitProvider( - client='depositor', - routing_keys=[MessageType.PING, MessageType.DEPOSIT], - message_schema=Schema(Or(DepositMessageSchema, PingMessageSchema)), - )) - - if TransportType.KAFKA in variables.MESSAGE_TRANSPORTS: - transports.append(KafkaMessageProvider( - client=f'{variables.KAFKA_GROUP_PREFIX}deposit', - message_schema=Schema(Or(DepositMessageSchema, PingMessageSchema)), - )) - - if not transports: - logger.warning({'msg': 'No transports found. Dry mode activated.', 'value': variables.MESSAGE_TRANSPORTS}) - - attest_prefix = self.w3.lido.deposit_security_module.get_attest_message_prefix() - - self.message_storage = MessageStorage( - transports, - filters=[ - message_metrics_filter, - get_deposit_messages_sign_filter(attest_prefix), - ], - ) - - def execute(self, block: BlockData) -> bool: - self._check_balance() - - module_ids = self.w3.lido.staking_router.get_staking_module_ids() - - for module_id in module_ids: - logger.info({'msg': f'Do deposit for module with id: {module_id}.'}) - try: - self._deposit_to_module(module_id) - except ModuleNotSupportedError as error: - logger.warning({'msg': 'Module not supported exception.', 'error': str(error)}) - - return True - - def _check_balance(self): - if variables.ACCOUNT: - balance = self.w3.eth.get_balance(variables.ACCOUNT.address) - ACCOUNT_BALANCE.set(balance) - logger.info({'msg': 'Check account balance.', 'value': balance}) - else: - logger.info({'msg': 'No account provided. Dry mode.'}) - ACCOUNT_BALANCE.set(0) - - def _deposit_to_module(self, module_id: int) -> bool: - is_depositable = self._check_module_status(module_id) - logger.info({'msg': 'Fetch module depositable status.', 'value': is_depositable}) - - quorum = self._get_quorum(module_id) - logger.info({'msg': 'Build quorum.', 'value': quorum}) - - module_strategy = self._get_module_strategy(module_id) - - gas_is_ok = module_strategy.is_gas_price_ok() - logger.info({'msg': 'Calculate gas recommendations.', 'value': gas_is_ok}) - - keys_amount_is_profitable = module_strategy.is_deposited_keys_amount_ok() - logger.info({'msg': 'Calculations deposit recommendations.', 'value': keys_amount_is_profitable}) - - if is_depositable and quorum and gas_is_ok and keys_amount_is_profitable: - logger.info({'msg': 'Checks passed. Prepare deposit tx.'}) - return self._build_and_send_deposit_tx(quorum) - - logger.info({'msg': 'Checks failed. Skip deposit.'}) - return False - - def _get_module_strategy(self, module_id: int) -> ModuleDepositStrategyInterface: - # ToDo somehow support different gas strategies for different module types - if module_id == 1: - return CuratedModuleDepositStrategy(self.w3, module_id) - - raise ModuleNotSupportedError(f'Module with id: {module_id} is not supported yet.') - - def _check_module_status(self, module_id: int) -> bool: - """Returns True if module is ready for deposit""" - is_active = self.w3.lido.staking_router.is_staking_module_active(module_id) - is_deposits_paused = self.w3.lido.staking_router.is_staking_module_deposits_paused(module_id) - return is_active and not is_deposits_paused - - def _get_quorum(self, module_id: int) -> Optional[list[DepositMessage]]: - """Returns quorum messages or None is quorum is not ready""" - actualize_filter = self._get_message_actualize_filter(module_id) - messages = self.message_storage.get_messages(actualize_filter) - min_signs_to_deposit = self.w3.lido.deposit_security_module.get_guardian_quorum() - - messages_by_block_hash = defaultdict(dict) - - max_quorum_size = 0 - - for message in messages: - # Remove duplications (blockHash, guardianAddress) - messages_by_block_hash[message['blockHash']][message['guardianAddress']] = message - - for messages_dict in messages_by_block_hash.values(): - unified_messages = messages_dict.values() - - quorum_size = len(unified_messages) - - if quorum_size >= min_signs_to_deposit: - CURRENT_QUORUM_SIZE.set(quorum_size) - return list(unified_messages) - - max_quorum_size = max(quorum_size, max_quorum_size) - - CURRENT_QUORUM_SIZE.set(max_quorum_size) - - def _get_message_actualize_filter(self, module_id: int) -> Callable[[DepositMessage], bool]: - latest = self.w3.eth.get_block('latest') - - deposit_root = '0x' + self.w3.lido.deposit_contract.get_deposit_root().hex() - nonce = self.w3.lido.staking_router.get_staking_module_nonce(module_id) - guardians_list = self.w3.lido.deposit_security_module.get_guardians() - - def message_filter(message: DepositMessage) -> bool: - if message['guardianAddress'] not in guardians_list: - return False - - if message['blockNumber'] < latest['number'] - 200: - return False - - # Message from council is newer than depositor node latest block - if message['blockNumber'] > latest['number']: - # can't be verified, so skip - return True - - if message['nonce'] != nonce: - return False - - if message['depositRoot'] != deposit_root: - return False - - return True - - return message_filter - - def _build_and_send_deposit_tx(self, quorum: list[DepositMessage]) -> bool: - signs = self._prepare_signs_for_deposit(quorum) - - return self._send_deposit_tx( - quorum[0]['blockNumber'], - Hash32(bytes.fromhex(quorum[0]['blockHash'][2:])), - Hash32(bytes.fromhex(quorum[0]['depositRoot'][2:])), - quorum[0]['stakingModuleId'], - quorum[0]['nonce'], - b'', - signs, - ) - - @staticmethod - def _prepare_signs_for_deposit(quorum: list[DepositMessage]) -> tuple[tuple[str, str]]: - sorted_messages = sorted(quorum, key=lambda msg: int(msg['guardianAddress'], 16)) - - return tuple( - (msg['signature']['r'], compute_vs(msg['signature']['v'], msg['signature']['s'])) - for msg in sorted_messages - ) - - def _send_deposit_tx( - self, - block_number: int, - block_hash: Hash32, - deposit_root: Hash32, - staking_module_id: int, - staking_module_nonce: int, - payload: bytes, - guardian_signs: tuple[tuple[str, str]] - ) -> bool: - """Returns transactions success status""" - # Prepare transaction and send - deposit_tx = self.w3.lido.deposit_security_module.deposit_buffered_ether( - block_number, - block_hash, - deposit_root, - staking_module_id, - staking_module_nonce, - payload, - guardian_signs, - ) - - if not self.w3.transaction.check(deposit_tx): - return False - - logger.info({'msg': 'Send deposit transaction.', 'with_flashbots': self._flashbots_works}) - success = self.w3.transaction.send(deposit_tx, self._flashbots_works, 6) - - logger.info({'msg': f'Tx send. Result is {success}.'}) - - if self._flashbots_works and not success: - self._flashbots_works = False - else: - self._flashbots_works = True - - return success diff --git a/src/bots/depositor_bot.py b/src/bots/depositor_bot.py new file mode 100644 index 00000000..156ec3dc --- /dev/null +++ b/src/bots/depositor_bot.py @@ -0,0 +1,516 @@ +import logging +import traceback +import time +from collections import defaultdict +from typing import List, Tuple, Optional + +import timeout_decorator +from schema import Or, Schema +from web3 import Web3 +from web3.exceptions import BlockNotFound, ContractLogicError, TransactionNotFound +from web3_multi_provider import NoActiveProviderError + +import variables +from blockchain.buffered_eth import get_recommended_buffered_ether_to_deposit +from blockchain.constants import FLASHBOTS_RPC +from blockchain.contracts import contracts +from blockchain.fetch_latest_block import fetch_latest_block +from blockchain.gas_strategy import GasFeeStrategy +from cryptography.verify_signature import compute_vs +from metrics import healthcheck_pulse +from metrics.metrics import ( + BUILD_INFO, + ACCOUNT_BALANCE, + BUFFERED_ETHER, + REQUIRED_BUFFERED_ETHER, + GAS_FEE, + CAN_DEPOSIT_KEYS, + CURRENT_QUORUM_SIZE, + DEPOSIT_FAILURE, + SUCCESS_DEPOSIT, +) +from metrics.transport_message_metrics import message_metrics +from transport.msg_providers.kafka import KafkaMessageProvider +from transport.msg_providers.rabbit import RabbitProvider, MessageType +from transport.msg_schemas import ( + DepositMessageSchema, + PingMessageSchema, + get_deposit_messages_sign_filter, + DepositMessage, +) +from transport.msg_storage import MessageStorage +from variables_types import TransportType + + +logger = logging.getLogger(__name__) + + +MODULE_ID = 1 + + +class DepositorBot: + NOT_ENOUGH_BALANCE_ON_ACCOUNT = 'Account balance is too low.' + GAS_FEE_HIGHER_THAN_RECOMMENDED = 'Gas fee is higher than recommended fee.' + DEPOSIT_SECURITY_ISSUE = 'Deposit security module prohibits the deposit.' + LIDO_CONTRACT_HAS_NOT_ENOUGH_BUFFERED_ETHER = 'Lido contract has not enough buffered ether.' + DEPOSITOR_CAN_DEPOSIT_KEYS = 'Depositor can not deposit keys. ' \ + 'No keys, paused staking module or not enough reserved ether.' + QUORUM_IS_NOT_READY = 'Quorum is not ready.' + + current_block = None + deposit_root: str = None + nonce: int = None + last_fb_deposit_failed = False + + def __init__(self, w3: Web3): + logger.info({'msg': 'Initialize DepositorBot.'}) + self.w3 = w3 + + self.gas_fee_strategy = GasFeeStrategy(w3, blocks_count_cache=150, max_gas_fee=variables.MAX_GAS_FEE) + + self.min_signs_to_deposit = contracts.deposit_security_module.functions.getGuardianQuorum().call() + logger.info({'msg': f'Call `getGuardianQuorum()`.', 'value': self.min_signs_to_deposit}) + + self.guardians_list = contracts.deposit_security_module.functions.getGuardians().call() + logger.info({'msg': f'Call `getGuardians()`.', 'value': self.guardians_list}) + + self.deposit_prefix = contracts.deposit_security_module.functions.ATTEST_MESSAGE_PREFIX().call() + logger.info({'msg': 'Call `ATTEST_MESSAGE_PREFIX()`.', 'value': str(self.deposit_prefix)}) + + transports = [] + + if TransportType.RABBIT in variables.MESSAGE_TRANSPORTS: + transports.append(RabbitProvider( + client='depositor', + routing_keys=[MessageType.PING, MessageType.DEPOSIT], + message_schema=Schema(Or(DepositMessageSchema, PingMessageSchema)), + )) + + if TransportType.KAFKA in variables.MESSAGE_TRANSPORTS: + transports.append(KafkaMessageProvider( + client=f'{variables.KAFKA_GROUP_PREFIX}deposit', + message_schema=Schema(Or(DepositMessageSchema, PingMessageSchema)), + )) + + if not transports: + logger.error({'msg': 'No transports found', 'value': variables.MESSAGE_TRANSPORTS}) + raise ValueError(f'No transports found. Provided value: {variables.MESSAGE_TRANSPORTS}') + + self.message_storage = MessageStorage( + transports, + filters=[ + message_metrics, + get_deposit_messages_sign_filter(self.deposit_prefix), + ], + ) + + BUILD_INFO.labels( + 'Depositor bot', + variables.NETWORK, + variables.MAX_GAS_FEE, + variables.MAX_BUFFERED_ETHERS, + variables.CONTRACT_GAS_LIMIT, + variables.GAS_FEE_PERCENTILE_1, + variables.GAS_FEE_PERCENTILE_DAYS_HISTORY_1, + variables.GAS_PRIORITY_FEE_PERCENTILE, + variables.MIN_PRIORITY_FEE, + variables.MAX_PRIORITY_FEE, + variables.KAFKA_TOPIC, + variables.ACCOUNT.address if variables.ACCOUNT else '0x0', + variables.CREATE_TRANSACTIONS, + ) + + # ------------ CYCLE STAFF ------------------- + def run_as_daemon(self): + """Super-Mega infinity cycle!""" + while True: + self._waiting_for_new_block_and_run_cycle() + + @timeout_decorator.timeout(variables.MAX_CYCLE_LIFETIME_IN_SECONDS) + def _waiting_for_new_block_and_run_cycle(self): + try: + self.run_cycle() + except BlockNotFound as error: + logger.warning({'msg': 'Fetch block exception.', 'error': str(error)}) + # Waiting for new block + time.sleep(15) + except timeout_decorator.TimeoutError as exception: + # Bot is stuck. Drop bot and restart using Docker service + logger.error({'msg': 'Depositor bot do not respond.', 'error': str(exception)}) + raise timeout_decorator.TimeoutError('Depositor bot stuck. Restarting using docker service.') from exception + except NoActiveProviderError as exception: + logger.error({'msg': 'No active node available.', 'error': str(exception)}) + raise NoActiveProviderError from exception + except ConnectionError as error: + logger.error({'msg': error.args, 'error': str(error)}) + raise ConnectionError from error + except ValueError as error: + logger.error({'msg': error.args, 'error': str(error)}) + time.sleep(15) + except Exception as error: + logger.warning({'msg': 'Unexpected exception.', 'error': str(error), 'details': traceback.format_exc()}) + time.sleep(15) + else: + time.sleep(15) + + def run_cycle(self): + logger.info({'msg': 'New deposit cycle.'}) + self._update_state() + + deposit_issues = self.get_deposit_issues() + + if not deposit_issues: + logger.info({'msg': f'No issues found.', 'value': deposit_issues}) + return self.do_deposit() + + logger.info({'msg': f'Issues found.', 'value': deposit_issues}) + + long_issues = [ + self.NOT_ENOUGH_BALANCE_ON_ACCOUNT, + self.DEPOSIT_SECURITY_ISSUE, + self.LIDO_CONTRACT_HAS_NOT_ENOUGH_BUFFERED_ETHER, + self.DEPOSITOR_CAN_DEPOSIT_KEYS, + ] + + for long_issue in long_issues: + if long_issue in deposit_issues: + logger.info({'msg': f'Long issue found. Sleep for 1 minute.', 'value': long_issue}) + time.sleep(60) + break + + def _update_state(self): + healthcheck_pulse.pulse() + + self.current_block = fetch_latest_block(self.w3, self.current_block.number if self.current_block else 0) + + self.deposit_root = '0x' + contracts.deposit_contract.functions.get_deposit_root().call(block_identifier=self.current_block.hash.hex()).hex() + logger.info({'msg': f'Call `get_deposit_root()`.', 'value': str(self.deposit_root)}) + + # TODO replace nonce with getStakingModuleNonce + self.nonce = self._get_nonce() + logger.info({'msg': f'Call `getKeysOpIndex()`.', 'value': self.nonce}) + + def _get_nonce(self) -> int: + return contracts.node_operator_registry.functions.getKeysOpIndex().call(block_identifier=self.current_block.hash.hex()) + + def get_deposit_issues(self) -> List[str]: + # Filter non-valid messages. Actualized messages will be used in various checks. + self.actualize_messages() + + deposit_issues = [] + + if self._account_balance_issue(): + deposit_issues.append(self.NOT_ENOUGH_BALANCE_ON_ACCOUNT) + + if self._buffered_ether_issue(): + deposit_issues.append(self.LIDO_CONTRACT_HAS_NOT_ENOUGH_BUFFERED_ETHER) + + if self._high_gas_fee_issue(): + deposit_issues.append(self.GAS_FEE_HIGHER_THAN_RECOMMENDED) + + if self._quorum_issue(): + deposit_issues.append(self.QUORUM_IS_NOT_READY) + + # if staking_module_id is None deposit_issues would contain QUORUM_IS_NOT_READY because there is no messages + staking_module_id = self._get_latest_staking_module_id_in_messages() + if staking_module_id: + if self._prohibit_to_deposit_issue(staking_module_id): + deposit_issues.append(self.DEPOSIT_SECURITY_ISSUE) + + if self._cen_deposit_keys_issue(staking_module_id): + deposit_issues.append(self.DEPOSITOR_CAN_DEPOSIT_KEYS) + + return deposit_issues + + def _account_balance_issue(self) -> bool: + if variables.ACCOUNT: + balance = self.w3.eth.get_balance(variables.ACCOUNT.address, block_identifier={"blockHash": self.current_block.hash.hex()}) + ACCOUNT_BALANCE.set(balance) + logger.info({'msg': 'Check account balance.', 'value': balance}) + if balance < self.w3.toWei(0.05, 'ether'): + logger.warning({'msg': self.NOT_ENOUGH_BALANCE_ON_ACCOUNT, 'value': balance}) + return True + else: + logger.info({'msg': 'Check account balance. No account provided.'}) + ACCOUNT_BALANCE.set(0) + + def _buffered_ether_issue(self) -> bool: + pending_gas_fee = self.w3.eth.get_block('pending').baseFeePerGas + logger.info({'msg': 'Get pending `baseFeePerGas`.', 'value': pending_gas_fee}) + + buffered_ether = contracts.lido.functions.getDepositableEther().call( + block_identifier=self.current_block.hash.hex(), + ) + logger.info({'msg': 'Call `getDepositableEther()`.', 'value': buffered_ether}) + BUFFERED_ETHER.set(buffered_ether) + + recommended_buffered_ether = get_recommended_buffered_ether_to_deposit(pending_gas_fee) + logger.info({'msg': 'Recommended min buffered ether to deposit.', 'value': recommended_buffered_ether}) + REQUIRED_BUFFERED_ETHER.set(recommended_buffered_ether) + + if buffered_ether < recommended_buffered_ether: + logger.warning({'msg': self.LIDO_CONTRACT_HAS_NOT_ENOUGH_BUFFERED_ETHER, 'value': buffered_ether}) + return True + + def _high_gas_fee_issue(self) -> bool: + current_gas_fee = self.w3.eth.get_block('pending').baseFeePerGas + buffered_ether = contracts.lido.functions.getDepositableEther().call( + block_identifier=self.current_block.hash.hex(), + ) + + is_high_buffer = buffered_ether >= variables.MAX_BUFFERED_ETHERS + logger.info({'msg': 'Check max ether in buffer.', 'value': is_high_buffer}) + + recommended_gas_fee = self.gas_fee_strategy.get_recommended_gas_fee(( + (variables.GAS_FEE_PERCENTILE_DAYS_HISTORY_1, variables.GAS_FEE_PERCENTILE_1), + ), force=is_high_buffer) + + GAS_FEE.labels('max_fee').set(variables.MAX_GAS_FEE) + GAS_FEE.labels('current_fee').set(current_gas_fee) + GAS_FEE.labels('recommended_fee').set(recommended_gas_fee) + + if current_gas_fee > recommended_gas_fee: + logger.info({ + 'msg': self.GAS_FEE_HIGHER_THAN_RECOMMENDED, + 'values': { + 'max_fee': variables.MAX_GAS_FEE, + 'current_fee': current_gas_fee, + 'recommended_fee': recommended_gas_fee, + 'buffered_ether': buffered_ether, + } + }) + return True + + def _prohibit_to_deposit_issue(self, staking_module_id: int) -> bool: + can_deposit = contracts.deposit_security_module.functions.canDeposit(staking_module_id).call( + block_identifier=self.current_block.hash.hex(), + ) + logger.info({'msg': 'Call canDeposit().', 'value': can_deposit}) + + if not can_deposit: + logger.warning({'msg': self.DEPOSIT_SECURITY_ISSUE, 'value': can_deposit}) + return True + + def _cen_deposit_keys_issue(self, staking_module_id: int) -> bool: + depositable_ether = contracts.lido.functions.getDepositableEther().call( + block_identifier=self.current_block.hash.hex(), + ) + possible_deposits = contracts.staking_router.functions.getStakingModuleMaxDepositsCount( + staking_module_id, + depositable_ether, + ).call( + block_identifier=self.current_block.hash.hex(), + ) + logger.info({ + 'msg': f'Call getStakingModuleMaxDepositsCount({staking_module_id}, {depositable_ether}).', + 'value': possible_deposits, + }) + + CAN_DEPOSIT_KEYS.set(1 if possible_deposits else 0) + + if not possible_deposits: + logger.warning({'msg': self.DEPOSITOR_CAN_DEPOSIT_KEYS}) + return True + + def _quorum_issue(self) -> bool: + quorum_messages = self._form_a_quorum() + + CURRENT_QUORUM_SIZE.set(len(quorum_messages)) + + if len(quorum_messages) < self.min_signs_to_deposit: + logger.warning({'msg': self.QUORUM_IS_NOT_READY}) + return True + + def actualize_messages(self): + def _actualize_messages(message: DepositMessage): + if message['type'] != 'deposit': + logger.info({'msg': f'_actualize_message message.type issue', 'value': message['type']}) + return False + + # Maybe council daemon already reports next block + if message['blockNumber'] <= self.current_block.number: + if message['nonce'] != self.nonce: + logger.info({'msg': f'_actualize_message message.nonce issue', 'value': message['nonce']}) + return False + + if message['depositRoot'] != self.deposit_root: + logger.info({'msg': f'_actualize_message message.depositRoot issue', 'value': message['depositRoot']}) + return False + + if message['blockNumber'] + 200 < self.current_block.number: + logger.info({'msg': f'_actualize_message message.blockNumber issue', 'value': message['blockNumber']}) + return False + + if message['guardianAddress'] not in self.guardians_list: + logger.info({'msg': f'_actualize_message message.guardianAddress issue', 'value': message['guardianAddress']}) + return False + + return True + + self.message_storage.update_messages() + self.message_storage.get_messages(_actualize_messages) + + def _get_latest_staking_module_id_in_messages(self) -> Optional[int]: + messages = self._form_a_quorum() + if messages: + return messages[0]['stakingModuleId'] + + def _form_a_quorum(self) -> List[DepositMessage]: + dict_for_sort = defaultdict(lambda: defaultdict(list)) + + for message in self.message_storage.messages: + logger.debug({'msg': f'dict_for_sort message.', 'value': message}) + dict_for_sort[message['blockNumber']][message['blockHash']].append(message) + + max_quorum = 0 + quorum_block_number = 0 + quorum_block_hash = '' + + for block_num, blocks_by_number in dict_for_sort.items(): + for block_hash, block_messages in blocks_by_number.items(): + + if max_quorum < len(block_messages) and block_num > quorum_block_number: + max_quorum = len(block_messages) + quorum_block_number = block_num + quorum_block_hash = block_hash + + quorum_messages = self._remove_address_duplicates(dict_for_sort[quorum_block_number][quorum_block_hash]) + + if max_quorum >= self.min_signs_to_deposit: + logger.info({'msg': f'Quorum ready.', 'value': quorum_messages}) + else: + logger.warning({'msg': 'Not enough signs for quorum.', 'value': max_quorum}) + + return quorum_messages + + @staticmethod + def _remove_address_duplicates(messages: List[DepositMessage]) -> List[DepositMessage]: + guardian_address = [] + + def _filter(msg: DepositMessage) -> bool: + if msg['guardianAddress'] not in guardian_address: + guardian_address.append(msg['guardianAddress']) + return True + + return list(filter(_filter, messages)) + + @staticmethod + def _check_transaction(transaction) -> bool: + try: + transaction.call() + except ContractLogicError as error: + logger.error({'msg': 'Local transaction reverted.', 'error': str(error)}) + return False + + return True + + def do_deposit(self): + quorum = self._form_a_quorum() + + priority = self.gas_fee_strategy.get_priority_fee( + variables.GAS_PRIORITY_FEE_PERCENTILE, + variables.MIN_PRIORITY_FEE, + variables.MAX_PRIORITY_FEE, + ) + + signs = self._prepare_signs(quorum) + + logger.info({'msg': 'Sending deposit transaction.', 'values': { + 'deposit_root': str(self.deposit_root), + 'nonce': self.nonce, + 'block_number': quorum[0]['blockNumber'], + 'block_hash': quorum[0]['blockHash'], + 'signs': signs, + 'gas_limit': variables.CONTRACT_GAS_LIMIT, + 'priority_fee': priority, + }}) + + deposit_function = contracts.deposit_security_module.functions.depositBufferedEther( + quorum[0]['blockNumber'], + quorum[0]['blockHash'], + self.deposit_root, + quorum[0]['stakingModuleId'], + self.nonce, + b'', + signs, + ) + + if not self._check_transaction(deposit_function): + return + + logger.info({'msg': 'Deposit local call succeed.'}) + + if not variables.ACCOUNT: + logger.info({'msg': 'Account was not provided.'}) + return + + if not variables.CREATE_TRANSACTIONS: + logger.info({'msg': 'Run in dry mode.'}) + return + + logger.info({'msg': 'Transaction call completed successfully.'}) + + transaction = deposit_function.build_transaction({ + 'from': variables.ACCOUNT.address, + 'gas': variables.CONTRACT_GAS_LIMIT, + 'maxFeePerGas': self.current_block.baseFeePerGas * 2 + priority, + 'maxPriorityFeePerGas': priority, + "nonce": self.w3.eth.get_transaction_count(variables.ACCOUNT.address), + }) + + signed = self.w3.eth.account.sign_transaction(transaction, variables.ACCOUNT.privateKey) + + if ( + variables.FLASHBOT_SIGNATURE is not None + and variables.WEB3_CHAIN_ID in FLASHBOTS_RPC + and not self.last_fb_deposit_failed + ): + self._do_flashbots_deposit(signed) + else: + self._do_classic_deposit(signed) + + logger.info({'msg': f'Deposit method end. Sleep for 1 minute.'}) + time.sleep(60) + + def _do_classic_deposit(self, signed_transaction): + self.last_fb_deposit_failed = False + + logger.info({'msg': 'Try to deposit. Classic mode.'}) + + try: + result = self.w3.eth.send_raw_transaction(signed_transaction.rawTransaction) + except Exception as error: + logger.error({'msg': 'Transaction reverted.', 'value': str(error)}) + DEPOSIT_FAILURE.inc() + else: + logger.info({'msg': 'Transaction mined.', 'value': result.hex()}) + SUCCESS_DEPOSIT.inc() + + def _do_flashbots_deposit(self, signed_transaction): + logger.info({'msg': 'Try to deposit. Flashbots mode.'}) + + for i in range(7): + # Try to get in next 7 blocks + result = self.w3.flashbots.send_bundle( + [{"signed_transaction": signed_transaction.rawTransaction}], + self.current_block.number + 1 + i + ) + + try: + rec = result.receipts() + except TransactionNotFound as error: + self.last_fb_deposit_failed = True + logger.error({'msg': f'Deposit failed.', 'error': str(error)}) + DEPOSIT_FAILURE.inc() + else: + logger.info({'msg': 'Transaction mined.', 'value': rec[-1]['transactionHash'].hex()}) + SUCCESS_DEPOSIT.inc() + + @staticmethod + def _prepare_signs(messages: List[DepositMessage]) -> List[Tuple[str, str]]: + sorted_messages = sorted(messages, key=lambda msg: int(msg['guardianAddress'], 16)) + + return [ + (msg['signature']['r'], compute_vs(msg['signature']['v'], msg['signature']['s'])) + for msg in sorted_messages + ] diff --git a/src/bots/pause.py b/src/bots/pause.py deleted file mode 100644 index 36546411..00000000 --- a/src/bots/pause.py +++ /dev/null @@ -1,98 +0,0 @@ -import logging -from typing import Callable - -from schema import Schema, Or -from web3.types import BlockData - -import variables -from blockchain.typings import Web3 -from cryptography.verify_signature import compute_vs -from metrics.transport_message_metrics import message_metrics_filter -from transport.msg_providers.kafka import KafkaMessageProvider -from transport.msg_providers.rabbit import RabbitProvider, MessageType -from transport.msg_schemas import PauseMessageSchema, get_pause_messages_sign_filter, PauseMessage, PingMessageSchema -from transport.msg_storage import MessageStorage -from transport.types import TransportType - - -logger = logging.getLogger(__name__) - - -class PauserBot: - def __init__(self, w3: Web3): - self.w3 = w3 - - transports = [] - - if TransportType.RABBIT in variables.MESSAGE_TRANSPORTS: - transports.append(RabbitProvider( - client='pauser', - routing_keys=[MessageType.PING, MessageType.PAUSE], - message_schema=Schema(Or(PauseMessageSchema, PingMessageSchema)), - )) - - if TransportType.KAFKA in variables.MESSAGE_TRANSPORTS: - transports.append(KafkaMessageProvider( - client=f'{variables.KAFKA_GROUP_PREFIX}pause', - message_schema=Schema(Or(PauseMessageSchema, PingMessageSchema)), - )) - - if not transports: - logger.warning({'msg': 'No transports found', 'value': variables.MESSAGE_TRANSPORTS}) - - pause_prefix = self.w3.lido.deposit_security_module.get_pause_message_prefix() - - self.message_storage = MessageStorage( - transports, - filters=[ - message_metrics_filter, - get_pause_messages_sign_filter(pause_prefix), - ], - ) - - def execute(self, block: BlockData) -> bool: - messages = self.receive_pause_messages() - logger.info({'msg': f'Received {len(messages)} pause messages.'}) - - for message in messages: - self._send_pause_message(message) - - return True - - def receive_pause_messages(self) -> list[PauseMessage]: - actualize_filter = self._get_message_actualize_filter() - return self.message_storage.get_messages(actualize_filter) - - def _get_message_actualize_filter(self) -> Callable[[PauseMessage], bool]: - current_block = self.w3.eth.get_block('latest') - message_validity_time = self.w3.lido.deposit_security_module.get_pause_intent_validity_period_blocks() - - def message_filter(message: PauseMessage) -> bool: - # TODO Metrics for filtered messages - return message['blockNumber'] > current_block['number'] - message_validity_time - - return message_filter - - def _send_pause_message(self, message: PauseMessage) -> bool: - module_id = message['stakingModuleId'] - - logger.warning({'msg': f'Handle pause message for module: {module_id}', 'value': message}) - - if not self.w3.lido.staking_router.is_staking_module_active(module_id): - # Module already deactivated - self._clear_outdated_messages_for_module(module_id) - logger.info({'msg': f'Module {module_id} already paused. Skip message.'}) - return False - - pause_tx = self.w3.lido.deposit_security_module.pause_deposits( - message['blockNumber'], - module_id, - (message['signature']['r'], compute_vs(message['signature']['v'], message['signature']['s'])) - ) - - result = self.w3.transaction.send(pause_tx, False, 6) - logger.info({'msg': f'Transaction send. Result is {result}.', 'value': result}) - return result - - def _clear_outdated_messages_for_module(self, module_id: int) -> None: - self.message_storage.get_messages(lambda message: message['stakingModuleId'] != module_id) diff --git a/src/bots/pause_bot.py b/src/bots/pause_bot.py new file mode 100644 index 00000000..fe0a7896 --- /dev/null +++ b/src/bots/pause_bot.py @@ -0,0 +1,207 @@ +import logging +import time +from typing import List + +import timeout_decorator +from schema import Schema, Or +from web3 import Web3 +from web3.exceptions import BlockNotFound, ContractLogicError +from web3_multi_provider import NoActiveProviderError + +import variables +from blockchain.contracts import contracts +from blockchain.fetch_latest_block import fetch_latest_block +from cryptography.verify_signature import compute_vs +from metrics import healthcheck_pulse +from metrics.metrics import BUILD_INFO +from metrics.transport_message_metrics import message_metrics +from transport.msg_providers.kafka import KafkaMessageProvider +from transport.msg_providers.rabbit import RabbitProvider, MessageType +from transport.msg_schemas import PauseMessageSchema, get_pause_messages_sign_filter, PauseMessage, PingMessageSchema +from transport.msg_storage import MessageStorage +from variables_types import TransportType + +logger = logging.getLogger(__name__) + + +class PauserBot: + current_block = None + + def __init__(self, w3: Web3): + logger.info({'msg': 'Initialize PauserBot.'}) + self.w3 = w3 + + self.blocks_till_pause_is_valid = contracts.deposit_security_module.functions.getPauseIntentValidityPeriodBlocks().call() + logger.info({ + 'msg': f'Call `getPauseIntentValidityPeriodBlocks()`.', + 'value': self.blocks_till_pause_is_valid, + }) + + self.pause_prefix = contracts.deposit_security_module.functions.PAUSE_MESSAGE_PREFIX().call() + logger.info({'msg': f'Call `PAUSE_MESSAGE_PREFIX()`.', 'value': str(self.pause_prefix)}) + + transports = [] + + if TransportType.RABBIT in variables.MESSAGE_TRANSPORTS: + transports.append(RabbitProvider( + client='pauser', + routing_keys=[MessageType.PING, MessageType.PAUSE], + message_schema=Schema(Or(PauseMessageSchema, PingMessageSchema)), + )) + + if TransportType.KAFKA in variables.MESSAGE_TRANSPORTS: + transports.append(KafkaMessageProvider( + client=f'{variables.KAFKA_GROUP_PREFIX}pause', + message_schema=PauseMessageSchema, + )) + + if not transports: + logger.error({'msg': 'No transports found', 'value': variables.MESSAGE_TRANSPORTS}) + raise ValueError(f'No transports found. Provided value: {variables.MESSAGE_TRANSPORTS}') + + self.message_storage = MessageStorage( + transports, + filters=[ + message_metrics, + get_pause_messages_sign_filter(self.pause_prefix), + ], + ) + + BUILD_INFO.labels( + 'Pauser bot', + variables.NETWORK, + None, + None, + None, + None, + None, + None, + None, + None, + variables.KAFKA_TOPIC, + variables.ACCOUNT.address if variables.ACCOUNT else '0x0', + variables.CREATE_TRANSACTIONS, + ) + + def run_as_daemon(self): + """Super-Mega infinity cycle!""" + while True: + self._waiting_for_new_block_and_run_cycle() + + @timeout_decorator.timeout(variables.MAX_CYCLE_LIFETIME_IN_SECONDS) + def _waiting_for_new_block_and_run_cycle(self): + try: + self.run_cycle() + except timeout_decorator.TimeoutError as exception: + # Bot is stuck. Drop bot and restart using Docker service + logger.error({'msg': 'Pauser bot do not respond.', 'error': str(exception)}) + raise timeout_decorator.TimeoutError('Pauser bot stuck. Restarting using docker service.') from exception + except BlockNotFound as error: + logger.warning({'msg': 'Fetch block exception (BlockNotFound)', 'error': str(error)}) + time.sleep(15) + except NoActiveProviderError as exception: + logger.error({'msg': 'No active node available.', 'error': str(exception)}) + raise NoActiveProviderError from exception + except Exception as exception: + logger.warning({'msg': 'Unexpected exception.', 'error': str(exception)}) + time.sleep(15) + else: + time.sleep(15) + + def run_cycle(self): + logger.info({'msg': 'New pause cycle.'}) + self._update_state() + + messages = self.receive_pause_messages() + + if not messages: + return + + staking_module_id = messages[0]['stakingModuleId'] + is_active = contracts.staking_router.functions.getStakingModuleIsActive(staking_module_id).call( + block_identifier=self.current_block.hash.hex(), + ) + + logger.info({ + 'msg': f'Call `getStakingModuleIsActive()`.', + 'value': is_active, + 'stakingModuleId': staking_module_id, + }) + + if not is_active: + self.message_storage.clear() + return + + self.pause_protocol(messages) + + def _update_state(self): + healthcheck_pulse.pulse() + + self.current_block = fetch_latest_block(self.w3, self.current_block.number if self.current_block else 0) + + def receive_pause_messages(self) -> List[PauseMessage]: + def validate_messages(messages: List[PauseMessage]): + return filter(lambda msg: msg['blockNumber'] > self.current_block.number - self.blocks_till_pause_is_valid, messages) + + self.message_storage.update_messages() + return self.message_storage.get_messages(actualize_rule=validate_messages) + + def pause_protocol(self, messages: List[PauseMessage]): + logger.warning({'msg': 'Message pause protocol initiate.', 'value': messages}) + + if not variables.ACCOUNT: + logger.warning({'msg': 'No account provided. Skip creating tx.'}) + return + + if not variables.CREATE_TRANSACTIONS: + logger.warning({'msg': 'Running in DRY mode.'}) + return + + for message in messages: + if self.send_pause_transaction(message): + break + + def send_pause_transaction(self, message: PauseMessage): + priority_fee = self.w3.eth.max_priority_fee * 2 + + logger.info({ + 'msg': 'Send pause transaction.', + 'values': { + 'block_number': message['blockNumber'], + 'signature': (message['signature']['r'], compute_vs(message['signature']['v'], message['signature']['s'])), + 'priority_fee': priority_fee, + }, + }) + + pause_function = contracts.deposit_security_module.functions.pauseDeposits( + message['blockNumber'], + message['stakingModuleId'], + (message['signature']['r'], compute_vs(message['signature']['v'], message['signature']['s'])) + ) + + try: + pause_function.call() + except ContractLogicError as error: + logger.error({'msg': 'Local transaction reverted.', 'error': str(error)}) + return False + + logger.info({'msg': 'Transaction call completed successfully.'}) + + transaction = pause_function.build_transaction({ + 'from': variables.ACCOUNT.address, + 'gas': variables.CONTRACT_GAS_LIMIT, + 'maxFeePerGas': self.current_block.baseFeePerGas * 2 + priority_fee, + 'maxPriorityFeePerGas': priority_fee, + "nonce": self.w3.eth.get_transaction_count(variables.ACCOUNT.address), + }) + + signed = self.w3.eth.account.sign_transaction(transaction, variables.ACCOUNT.privateKey) + + try: + result = self.w3.eth.send_raw_transaction(signed.rawTransaction) + except Exception as error: + logger.error({'msg': 'Transaction reverted.', 'value': str(error)}) + return False + else: + logger.info({'msg': 'Transaction mined.', 'value': result.hex()}) + return True diff --git a/src/depositor.py b/src/depositor.py index 23849526..bafb61ba 100644 --- a/src/depositor.py +++ b/src/depositor.py @@ -1,74 +1,48 @@ from prometheus_client import start_http_server from flashbots import flashbot from web3 import Web3 -from web3_multi_provider import FallbackProvider +from web3_multi_provider import MultiProvider import variables -from blockchain.executer import Executor -from blockchain.web3_extentions.lido_contracts import LidoContracts -from blockchain.web3_extentions.transaction import TransactionUtils -from bots.depositor import DepositorBot +from blockchain.constants import FLASHBOTS_RPC +from blockchain.contracts import contracts from metrics.healthcheck_pulse import start_pulse_server from metrics.logging import logging -from blockchain.web3_extentions.requests_metric_middleware import add_requests_metric_middleware -from metrics.metrics import BUILD_INFO +from blockchain.requests_metric_middleware import add_requests_metric_middleware logger = logging.getLogger(__name__) def main(): + logger.info({'msg': 'Start Depositor bot.'}) + logger.info({'msg': f'Start up healthcheck service on port: {variables.PULSE_SERVER_PORT}.'}) start_pulse_server() logger.info({'msg': f'Start up metrics service on port: {variables.PROMETHEUS_PORT}.'}) start_http_server(variables.PROMETHEUS_PORT) - # Send vars to metrics - BUILD_INFO.labels( - 'Depositor bot', - variables.MAX_GAS_FEE, - variables.MAX_BUFFERED_ETHERS, - variables.CONTRACT_GAS_LIMIT, - variables.GAS_FEE_PERCENTILE_1, - variables.GAS_FEE_PERCENTILE_DAYS_HISTORY_1, - variables.GAS_PRIORITY_FEE_PERCENTILE, - variables.MIN_PRIORITY_FEE, - variables.MAX_PRIORITY_FEE, - variables.KAFKA_TOPIC, - variables.ACCOUNT.address if variables.ACCOUNT else '0x0', - variables.CREATE_TRANSACTIONS, - ) - logger.info({'msg': 'Connect MultiHTTPProviders.', 'rpc_count': len(variables.WEB3_RPC_ENDPOINTS)}) - w3 = Web3(FallbackProvider(variables.WEB3_RPC_ENDPOINTS)) - - logger.info({'msg': 'Initialize Lido contracts.'}) - w3.attach_modules({ - 'lido': LidoContracts, - 'transaction': TransactionUtils, - }) + w3 = Web3(MultiProvider(variables.WEB3_RPC_ENDPOINTS)) - if variables.FLASHBOT_SIGNATURE and variables.FLASHBOTS_RPC: + if variables.FLASHBOT_SIGNATURE is None: + logger.info({'msg': 'No flashbots middleware.'}) + elif variables.WEB3_CHAIN_ID in FLASHBOTS_RPC: logger.info({'msg': 'Add flashbots middleware.'}) - flashbot(w3, w3.eth.account.from_key(variables.FLASHBOT_SIGNATURE), variables.FLASHBOTS_RPC) + flashbot(w3, w3.eth.account.from_key(variables.FLASHBOT_SIGNATURE), FLASHBOTS_RPC[variables.WEB3_CHAIN_ID]) else: logger.info({'msg': 'No flashbots available for this network.'}) logger.info({'msg': 'Add metrics to web3 requests.'}) add_requests_metric_middleware(w3) - logger.info({'msg': 'Initialize Depositor bot.'}) - depositor_bot = DepositorBot(w3) + logger.info({'msg': 'Load contracts.'}) + contracts.initialize(w3) - e = Executor( - w3, - depositor_bot.execute, - 5, - variables.MAX_CYCLE_LIFETIME_IN_SECONDS, - ) - logger.info({'msg': 'Rum executor.'}) - e.execute_as_daemon() + from bots.depositor_bot import DepositorBot + depositor_bot = DepositorBot(w3) + depositor_bot.run_as_daemon() if __name__ == '__main__': diff --git a/src/metrics/healthcheck_pulse.py b/src/metrics/healthcheck_pulse.py index 57e69691..88626eec 100644 --- a/src/metrics/healthcheck_pulse.py +++ b/src/metrics/healthcheck_pulse.py @@ -5,7 +5,6 @@ import requests - SERVER_PORT = int(os.getenv('PULSE_SERVER_PORT', 9010)) _last_pulse = datetime.now() diff --git a/src/metrics/logging.py b/src/metrics/logging.py index 5007882a..cbec5a4d 100644 --- a/src/metrics/logging.py +++ b/src/metrics/logging.py @@ -1,6 +1,5 @@ import json import logging -from time import time class JsonFormatter(logging.Formatter): @@ -15,7 +14,6 @@ def format(self, record: logging.LogRecord) -> str: 'lineno': record.lineno, 'module': record.module, 'pathname': record.pathname, - 'timestamp': int(time()), **message, }) return to_json_msg diff --git a/src/metrics/metrics.py b/src/metrics/metrics.py index eedae177..fa6fa375 100644 --- a/src/metrics/metrics.py +++ b/src/metrics/metrics.py @@ -4,6 +4,7 @@ BUILD_INFO = Gauge('build_info', 'Build info', [ 'name', + 'network', 'max_gas_fee', 'max_buffered_ethers', 'contract_gas_limit', @@ -17,26 +18,27 @@ 'create_transactions', ], namespace=PREFIX) -GAS_FEE = Gauge('gas_fee', 'Gas fee', ['type', 'module_id'], namespace=PREFIX) +GAS_FEE = Gauge('gas_fee', 'Gas fee', ['type'], namespace=PREFIX) -TX_SEND = Counter('transactions_send', 'Amount of send transaction from bot.', ['status'], namespace=PREFIX) +DEPOSIT_FAILURE = Counter('deposit_failure', 'Deposit failure', namespace=PREFIX) +SUCCESS_DEPOSIT = Counter('deposit_success', 'Deposit done', namespace=PREFIX) ACCOUNT_BALANCE = Gauge('account_balance', 'Account balance', namespace=PREFIX) -DEPOSIT_MESSAGES = Gauge( - 'deposit_messages', +KAFKA_DEPOSIT_MESSAGES = Gauge( + 'kafka_deposit_messages', 'Guardians deposit messages', ['address', 'version'], namespace=PREFIX, ) -PAUSE_MESSAGES = Gauge( - 'pause_messages', +KAFKA_PAUSE_MESSAGES = Gauge( + 'kafka_pause_messages', 'Guardians pause messages', ['address', 'version'], namespace=PREFIX, ) -PING_MESSAGES = Gauge( - 'ping_messages', +KAFKA_PING_MESSAGES = Gauge( + 'kafka_ping_messages', 'Guardians ping messages', ['address', 'version'], namespace=PREFIX, @@ -48,16 +50,12 @@ namespace=PREFIX, ) -DEPOSITABLE_ETHER = Gauge( - 'depositable_ether', - 'Depositable Ether', - ['module_id'], - namespace=PREFIX, -) -POSSIBLE_DEPOSITS_AMOUNT = Gauge( - 'possible_deposits_amount', - 'Possible deposits amount.', - ['module_id'], +BUFFERED_ETHER = Gauge('buffered_ether', 'Buffered ether', namespace=PREFIX) +CAN_DEPOSIT_KEYS = Gauge('can_deposit_keys', 'Can depositor bot deposit keys.', namespace=PREFIX) + +REQUIRED_BUFFERED_ETHER = Gauge( + 'required_buffered_ether', + 'Buffered ether amount required for deposit', namespace=PREFIX, ) diff --git a/src/metrics/transport_message_metrics.py b/src/metrics/transport_message_metrics.py index f2747c80..6cedfc7f 100644 --- a/src/metrics/transport_message_metrics.py +++ b/src/metrics/transport_message_metrics.py @@ -1,6 +1,6 @@ import logging -from metrics.metrics import DEPOSIT_MESSAGES, PING_MESSAGES, PAUSE_MESSAGES +from metrics.metrics import KAFKA_DEPOSIT_MESSAGES, KAFKA_PING_MESSAGES from transport.msg_providers.rabbit import MessageType from transport.msg_schemas import DepositMessage @@ -8,23 +8,20 @@ logger = logging.getLogger(__name__) -def message_metrics_filter(msg: DepositMessage) -> bool: +def message_metrics(msg: DepositMessage) -> bool: + # Remove all ping messages, because we use them only for metrics msg_type = msg.get('type', None) logger.info({'msg': 'Guardian message received.', 'value': msg, 'type': msg_type}) address, version = msg.get('guardianAddress'), msg.get('app', {}).get('version') if msg_type == MessageType.PAUSE: - PAUSE_MESSAGES.labels(address, version).inc() return True if msg_type == MessageType.DEPOSIT: - DEPOSIT_MESSAGES.labels(address, version).inc() + KAFKA_DEPOSIT_MESSAGES.labels(address, version).inc() return True elif msg_type == MessageType.PING: - # Filter all ping messages, because we use them only for metrics - PING_MESSAGES.labels(address, version).inc() + KAFKA_PING_MESSAGES.labels(address, version).inc() return False - - # TODO Log all filtered messages diff --git a/src/pauser.py b/src/pauser.py index a83ad537..7bf0eb20 100644 --- a/src/pauser.py +++ b/src/pauser.py @@ -1,67 +1,37 @@ from prometheus_client import start_http_server from web3 import Web3 -from web3_multi_provider import FallbackProvider +from web3_multi_provider import MultiProvider import variables -from blockchain.executer import Executor -from blockchain.web3_extentions.lido_contracts import LidoContracts -from blockchain.web3_extentions.transaction import TransactionUtils -from bots.pause import PauserBot from metrics.healthcheck_pulse import start_pulse_server from metrics.logging import logging -from blockchain.web3_extentions.requests_metric_middleware import add_requests_metric_middleware -from metrics.metrics import BUILD_INFO - +from blockchain.requests_metric_middleware import add_requests_metric_middleware +from blockchain.contracts import contracts logger = logging.getLogger(__name__) def main(): + logger.info({'msg': 'Start Pause bot.'}) + logger.info({'msg': f'Start up healthcheck service on port: {variables.PULSE_SERVER_PORT}.'}) start_pulse_server() logger.info({'msg': f'Start up metrics service on port: {variables.PROMETHEUS_PORT}.'}) start_http_server(variables.PROMETHEUS_PORT) - BUILD_INFO.labels( - 'Pause bot', - variables.MAX_GAS_FEE, - variables.MAX_BUFFERED_ETHERS, - variables.CONTRACT_GAS_LIMIT, - None, - None, - None, - None, - None, - variables.KAFKA_TOPIC, - variables.ACCOUNT.address if variables.ACCOUNT else '0x0', - variables.CREATE_TRANSACTIONS, - ) - logger.info({'msg': 'Connect MultiHTTPProviders.', 'rpc_count': len(variables.WEB3_RPC_ENDPOINTS)}) - w3 = Web3(FallbackProvider(variables.WEB3_RPC_ENDPOINTS)) + w3 = Web3(MultiProvider(variables.WEB3_RPC_ENDPOINTS)) logger.info({'msg': 'Add metrics to web3 requests.'}) add_requests_metric_middleware(w3) logger.info({'msg': 'Load contracts.'}) - w3.attach_modules({ - 'lido': LidoContracts, - 'transaction': TransactionUtils, - }) - - logger.info({'msg': 'Add metrics to web3 requests.'}) - add_requests_metric_middleware(w3) + contracts.initialize(w3) - pause = PauserBot(w3) - e = Executor( - w3, - pause.execute, - 1, - variables.MAX_CYCLE_LIFETIME_IN_SECONDS, - ) - logger.info({'msg': 'Rum executor.'}) - e.execute_as_daemon() + from bots.pause_bot import PauserBot + deposit_pause_bot = PauserBot(w3) + deposit_pause_bot.run_as_daemon() if __name__ == '__main__': diff --git a/src/transport/msg_providers/kafka.py b/src/transport/msg_providers/kafka.py index 633d0365..df2c1b20 100644 --- a/src/transport/msg_providers/kafka.py +++ b/src/transport/msg_providers/kafka.py @@ -11,10 +11,9 @@ KAFKA_USERNAME, KAFKA_PASSWORD, KAFKA_TOPIC, - KAFKA_NETWORK, + NETWORK, ) - logger = logging.getLogger(__name__) @@ -29,7 +28,7 @@ class KafkaMessageProvider(BaseMessageProvider): def __init__(self, message_schema: Schema, client: str): logger.info({'msg': 'Kafka initialize.'}) - kafka_topic = f'{KAFKA_NETWORK}-{KAFKA_TOPIC}' + kafka_topic = f'{NETWORK}-{KAFKA_TOPIC}' self.kafka = Consumer({ 'client.id': kafka_topic + f'-{client}-client', diff --git a/src/transport/msg_providers/rabbit.py b/src/transport/msg_providers/rabbit.py index c9d126ae..4f0c260d 100644 --- a/src/transport/msg_providers/rabbit.py +++ b/src/transport/msg_providers/rabbit.py @@ -9,7 +9,7 @@ import variables from transport.msg_providers.common import BaseMessageProvider from transport.msg_providers.stomp.client import Client - +from variables import NETWORK, KAFKA_TOPIC logger = logging.getLogger(__name__) diff --git a/src/transport/msg_schemas.py b/src/transport/msg_schemas.py index a906615e..ded2d5c0 100644 --- a/src/transport/msg_schemas.py +++ b/src/transport/msg_schemas.py @@ -1,4 +1,3 @@ -import logging import re from typing import Callable, TypedDict @@ -7,9 +6,6 @@ from cryptography.verify_signature import verify_message_with_signature -logger = logging.getLogger(__name__) - - HASH_REGREX = Regex('^0x[0-9,A-F]{64}$', flags=re.IGNORECASE) ADDRESS_REGREX = Regex('^0x[0-9,A-F]{40}$', flags=re.IGNORECASE) @@ -64,20 +60,18 @@ class Signature(TypedDict): class DepositMessage(TypedDict): type: str depositRoot: str - nonce: int + nonce: str blockNumber: int blockHash: str guardianAddress: str signature: Signature stakingModuleId: int - app: dict -def get_deposit_messages_sign_filter(attestation_prefix: bytes) -> Callable: - """Returns filter that checks message validity""" +def get_deposit_messages_sign_filter(deposit_prefix) -> Callable: def check_deposit_messages(msg: DepositMessage) -> bool: - verified = verify_message_with_signature( - data=[attestation_prefix, msg['blockNumber'], msg['blockHash'], msg['depositRoot'], msg['stakingModuleId'], msg['nonce']], + return verify_message_with_signature( + data=[deposit_prefix, msg['blockNumber'], msg['blockHash'], msg['depositRoot'], msg['stakingModuleId'], msg['nonce']], abi=['bytes32', 'uint256', 'bytes32', 'bytes32', 'uint256', 'uint256'], address=msg['guardianAddress'], vrs=( @@ -87,11 +81,6 @@ def check_deposit_messages(msg: DepositMessage) -> bool: ), ) - if not verified: - logger.error({'msg': 'Message verification failed.', 'value': msg}) - - return verified - return check_deposit_messages @@ -129,10 +118,10 @@ class PauseMessage(TypedDict): stakingModuleId: int -def get_pause_messages_sign_filter(attestation_prefix: bytes) -> Callable: +def get_pause_messages_sign_filter(pause_prefix: str) -> Callable: def check_pause_message(msg: PauseMessage) -> bool: - verified = verify_message_with_signature( - data=[attestation_prefix, msg['blockNumber'], msg['stakingModuleId']], + return verify_message_with_signature( + data=[pause_prefix, msg['blockNumber'], msg['stakingModuleId']], abi=['bytes32', 'uint256', 'uint256'], address=msg['guardianAddress'], vrs=( @@ -142,11 +131,6 @@ def check_pause_message(msg: PauseMessage) -> bool: ), ) - if not verified: - logger.error({'msg': 'Message verification failed.', 'value': msg}) - - return verified - return check_pause_message diff --git a/src/transport/msg_storage.py b/src/transport/msg_storage.py index f365d849..8ec6a53e 100644 --- a/src/transport/msg_storage.py +++ b/src/transport/msg_storage.py @@ -1,7 +1,6 @@ from typing import List, Callable, Iterable from transport.msg_providers.common import BaseMessageProvider -from transport.msg_schemas import DepositMessage class MessageStorage: @@ -28,11 +27,13 @@ def _receive_messages(self) -> Iterable[dict]: return self.messages - def get_messages(self, actualize_rule: Callable[[DepositMessage], bool]) -> List[dict]: + def update_messages(self): + self._receive_messages() + + def get_messages(self, actualize_rule: Callable) -> List[dict]: """ - actualize_rule - is filter that filters all outdated messages + actualize_rule - function that will filter messages based on all messages in memory and last data from blockchain """ - self._receive_messages() self.messages = list(filter(actualize_rule, self.messages)) return self.messages diff --git a/src/utils/__init__.py b/src/utils/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/utils/timeout.py b/src/utils/timeout.py deleted file mode 100644 index 968b1c6e..00000000 --- a/src/utils/timeout.py +++ /dev/null @@ -1,27 +0,0 @@ -import signal - - -class TimeoutManagerError(Exception): - pass - - -class TimeoutManager: - """Simple timeout manager """ - @staticmethod - def handler(signum, frame): - raise TimeoutManagerError - - def __init__(self, seconds: int): - self.old = -1 - self.seconds = seconds - - def __enter__(self): - # Set timer - self.old = signal.signal(signal.SIGALRM, self.handler) - signal.setitimer(signal.ITIMER_REAL, self.seconds) - return self - - def __exit__(self, exception_type, exception_value, exception_traceback): - # Remove timer - signal.setitimer(signal.ITIMER_REAL, 0) - signal.signal(signal.SIGALRM, self.old) diff --git a/src/variables.py b/src/variables.py index 236e3e81..42c271b4 100644 --- a/src/variables.py +++ b/src/variables.py @@ -4,74 +4,63 @@ from eth_account import Account from web3 import Web3 +from blockchain.constants import NETWORK_CHAIN_ID, Network +from variables_types import TransportType logger = logging.getLogger(__name__) -# EL node -WEB3_RPC_ENDPOINTS = os.getenv('WEB3_RPC_ENDPOINTS', '').split(',') +NETWORK = os.getenv('NETWORK') -# Account private key -WALLET_PRIVATE_KEY = os.getenv('WALLET_PRIVATE_KEY', None) +# Transaction limits +MAX_GAS_FEE = Web3.toWei(*os.getenv('MAX_GAS_FEE', '100 gwei').split(' ')) +CONTRACT_GAS_LIMIT = int(os.getenv('CONTRACT_GAS_LIMIT', 15 * 10**6)) -if WALLET_PRIVATE_KEY: - ACCOUNT = Account.from_key(WALLET_PRIVATE_KEY) - logger.info({'msg': 'Load account from private key.', 'value': ACCOUNT.address}) -else: - ACCOUNT = None - logger.warning({'msg': 'Account not provided. Run in dry mode.'}) +# Gas fee percentile +GAS_FEE_PERCENTILE_1: int = int(os.getenv('GAS_FEE_PERCENTILE_1', 5)) +GAS_FEE_PERCENTILE_DAYS_HISTORY_1: int = int(os.getenv('GAS_FEE_PERCENTILE_DAYS_HISTORY_1', 1)) -# App specific -# LIDO_LOCATOR ADDRESS -# Mainnet: 0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb -# Görli: 0x1eDf09b5023DC86737b59dE68a8130De878984f5 -LIDO_LOCATOR = os.getenv('LIDO_LOCATOR', '0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb') +GAS_PRIORITY_FEE_PERCENTILE = int(os.getenv('GAS_PRIORITY_FEE_PERCENTILE', 25)) -# DEPOSIT_CONTRACT ADDRESS -# Mainnet: 0x00000000219ab540356cBB839Cbe05303d7705Fa -# Görli: 0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b -DEPOSIT_CONTRACT = os.getenv('DEPOSIT_CONTRACT', '0x00000000219ab540356cBB839Cbe05303d7705Fa') +MIN_PRIORITY_FEE = Web3.toWei(*os.getenv('MIN_PRIORITY_FEE', '50 mwei').split(' ')) +MAX_PRIORITY_FEE = Web3.toWei(*os.getenv('MAX_PRIORITY_FEE', '10 gwei').split(' ')) -# rabbit / kafka / rabbit,kafka -MESSAGE_TRANSPORTS = os.getenv('MESSAGE_TRANSPORTS', '').split(',') +MAX_BUFFERED_ETHERS = Web3.toWei(*os.getenv('MAX_BUFFERED_ETHERS', '5000 ether').split(' ')) # Kafka secrets KAFKA_BROKER_ADDRESS_1 = os.getenv('KAFKA_BROKER_ADDRESS_1') KAFKA_USERNAME = os.getenv('KAFKA_USERNAME') KAFKA_PASSWORD = os.getenv('KAFKA_PASSWORD') -KAFKA_NETWORK = os.getenv('KAFKA_NETWORK', 'mainnet') # or goerli KAFKA_TOPIC = os.getenv('KAFKA_TOPIC') KAFKA_GROUP_PREFIX = os.getenv('KAFKA_GROUP_PREFIX', '') -# rabbit secrets -RABBIT_MQ_URL = os.getenv('RABBIT_MQ_URL', 'ws://127.0.0.1:15674/ws') -RABBIT_MQ_USERNAME = os.getenv('RABBIT_MQ_USERNAME', 'guest') -RABBIT_MQ_PASSWORD = os.getenv('RABBIT_MQ_PASSWORD', 'guest') - -# Transactions settings -CREATE_TRANSACTIONS = os.getenv('CREATE_TRANSACTIONS') == 'true' - -MIN_PRIORITY_FEE = Web3.toWei(*os.getenv('MIN_PRIORITY_FEE', '50 mwei').split(' ')) -MAX_PRIORITY_FEE = Web3.toWei(*os.getenv('MAX_PRIORITY_FEE', '10 gwei').split(' ')) +# Should be reinitialized after brownie pre-script +WEB3_CHAIN_ID = NETWORK_CHAIN_ID.get(NETWORK, Network.Mainnet) -MAX_GAS_FEE = Web3.toWei(*os.getenv('MAX_GAS_FEE', '100 gwei').split(' ')) -CONTRACT_GAS_LIMIT = int(os.getenv('CONTRACT_GAS_LIMIT', 15 * 10**6)) - -# FLASHBOTS_RPC URL -# Mainnet: "https://relay.flashbots.net", -# Görli: "https://relay-goerli.flashbots.net", -FLASHBOTS_RPC = os.getenv('FLASHBOTS_RPC', None) +# Account private key +WALLET_PRIVATE_KEY = os.getenv('WALLET_PRIVATE_KEY', None) FLASHBOT_SIGNATURE = os.getenv('FLASHBOT_SIGNATURE', None) -# Curated module strategy -GAS_FEE_PERCENTILE_1: int = int(os.getenv('GAS_FEE_PERCENTILE_1', 20)) -GAS_FEE_PERCENTILE_DAYS_HISTORY_1: int = int(os.getenv('GAS_FEE_PERCENTILE_DAYS_HISTORY_1', 1)) +if WALLET_PRIVATE_KEY: + ACCOUNT = Account.from_key(WALLET_PRIVATE_KEY) + logger.info({'msg': 'Load account from private key.', 'value': ACCOUNT.address}) +else: + ACCOUNT = None + logger.warning({'msg': 'Account not provided. Run in dry mode.'}) -GAS_PRIORITY_FEE_PERCENTILE = int(os.getenv('GAS_PRIORITY_FEE_PERCENTILE', 25)) +CREATE_TRANSACTIONS = os.getenv('CREATE_TRANSACTIONS') == 'true' -MAX_BUFFERED_ETHERS = Web3.toWei(*os.getenv('MAX_BUFFERED_ETHERS', '5000 ether').split(' ')) +WEB3_RPC_ENDPOINTS = os.getenv('WEB3_RPC_ENDPOINTS', '').split(',') -# Metrics PROMETHEUS_PORT = int(os.getenv('PROMETHEUS_PORT', '9000')) PULSE_SERVER_PORT = int(os.getenv('PULSE_SERVER_PORT', '9010')) -MAX_CYCLE_LIFETIME_IN_SECONDS = int(os.getenv('MAX_CYCLE_LIFETIME_IN_SECONDS', '1200')) + +MAX_CYCLE_LIFETIME_IN_SECONDS = int(os.getenv('MAX_CYCLE_LIFETIME_IN_SECONDS', '30000')) + +RABBIT_MQ_URL = os.getenv('RABBIT_MQ_URL', 'ws://127.0.0.1:15674/ws') + +RABBIT_MQ_USERNAME = os.getenv('RABBIT_MQ_USERNAME', 'guest') +RABBIT_MQ_PASSWORD = os.getenv('RABBIT_MQ_PASSWORD', 'guest') + +# rabbit / kafka or rabbit,kafka +MESSAGE_TRANSPORTS = os.getenv('MESSAGE_TRANSPORTS', TransportType.RABBIT).split(',') diff --git a/src/transport/types.py b/src/variables_types.py similarity index 100% rename from src/transport/types.py rename to src/variables_types.py diff --git a/static/img.png b/static/img.png deleted file mode 100644 index 3bd5c83741e031194e7c2600fbea7b172a512033..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39855 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 diff --git a/static/img1.png b/static/img1.png deleted file mode 100644 index 3228000335ad9b823f83747085792a75a6166a48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36369 zcmeFZc{r4P_%=Q*QX{P+WiKsKNLeabYiL1a%^GDLW65qpDXJ0L3)zMkJ7KItl(b29 zX6$4i62{JZ-BQovLa2U4fbUk!s=Z-; z=1YqU)Na&ZMV0)Ls>a%zm_0(P&r101*&^b%2NkznajODpE9RCpTr3c=o`~8O6utgT zVDx&_z!~JWYq0_bYq6-a2mJQjJR>Nyx*EQ%a1yyQm*UoYI~2E~YVJp`7pPuORLF*J zKU9Z{@56wQ;Gu51{J)?2|2=>;J1{CiTo$w(TpuqhN$Jn%WzViBqD|ffu#X2f*15NP zThVeI9CnDA7$EP0mMqRDmt}sA zlvZyq_MZDn!Uh&~v%_Sq%xwM^497Ydmwt`iM5JkBwj#8V!(pv`niy)Vl4*PRcg~-)DT;@~5^FIrvSK5; z!h4U6_QGp`b1Ri!Yn(XP%%Q@%7aS=dU%dFQ{p1KC)>m%D1VF z588FyF?#0L7qLSVtvR?C)Q2V+S8grLWLEGU3*wfhRFp|Mw7ohp^|SNcp;xE-iiXk( zRU6Zc8QwPM`xv?H_Mg9eIW+NQ2c~s=z$tHv*JC8V&(<{xEi!V#Ajj5%-qOb#Kk$S~ zn4cTOf(4jF|Cssz7O;rFg{8E&e6<@8|}v*gKvi&7;^i-h

Qo!9 zDz&=$CtiMT_}CoJ#Llt`y>t`&x{W)p@D~~p7&(>;vy+!c4M(T^IZdp?r0})|x%T*| zp>Gi~__?p4#~3r4c~ADV>c+l3nY)-;eVMvr1Sjj#{~ev1I53n{^(i&C%{G`%)^?<1 z$wy0H-x`fZe~pwS6cyL+{ewMN_ocuLd-b%N5yxX|z=w4hq zt>|0x{8$Bl@8?75*{js5`eH-mj%Ha_zS(X2v!gWBry`j5SZjf6R;`OGH*f7woJOKX zQev56`)0Z6x9b+d9g3R|n-;govHB~sl)4TzSj-MAXy@r1*Xgevnl57#d%0CmxoJ)- zDr{YOcSQ)jQFlmfpGSLHX_{1evfKeLV~k^ZUKe_f<<^}jE49BdOXPDj`AUZG(jvNo zOtSh#&bV%d!PtK()T-AC+ZnT+rg@fGoN z9;4JL;R*I+8;yMr?*gsly*o4OnxJw4qWLciMieOptWQ!HNV z9$RpIuj{wo!Q^y`pyP;B(BNS4ghyFLUuC$J3flp-uxoVr`JeC5jIirrjJyZCj(rHI zxpGZEJu&`O!9v;KA)yAQE4!chky%5|zZoF#sL&2hPJ%Z!_R{84KNWiW>~1Ae6vqO^ ziZc|?#HiHno_s06uHCmj8TWNpoHK=du^vS72CZYq5B-m||hMH;QK~)-{LO*}a%-_c{l<=^EYAX-*KQyhTy3J@4M(R3TCDJX zq_R7~I+EC8)ZnA53I%NysLAmu@k(UL%oRSjk!vg8cF>wPakii;KPk85*!EG5|qm^-^!ky z%93T?grV4udFnZonp-6GLfAiP6jIA@75csb>#nwd)AcGjvK9MY7@03IA_Wic6q$!* zMx`idEHtzlbi*)Z-Ku9NdbPhvCBP(wF`Ta#{F4-t6*aNfFvlgj;#P}uUEU~6DCpaS zP8M2g%|-TmK+GnW#dFi%u%M=Hl#-(thwPtheQ>tESMK)KLuy&tnVhoxsgqxrMf-Lx z)U^4JmMj$?Ja{lu%gFU>s`;QC^T?FzH)Vedj6DY_o8{i>*s^@(UlaN3iTT#HsZ3vO zGTJ`5OU?`SkG3OQ@R0Z+1rwKQtkm9;@ozGgon`)(!%dlPfyC&j_)KAqq%JZOZ$z;R zWe=EYaSriLtyd8&3_F^%wS}EqswpG2(NHiZDQ|FHxmA?6)Oc}(TGu-yHE zAih|>p*tJ456{Z7D7BU->rXmQQ)vArAx=FXA8`cZo@$oro2l>C-aTG0ls29e!*|N# zdw`1U=AgmErD(<5!VgAljJw&TTdpLm9vVAnWLtve_~vw*ycDxjVm-z6VH=TeJvl_#DY(P--1TKrtb zZTKhc7t6l@YR-#^=;^m>HaATzq?asy=Aq|0L|x9de$*&!tI1lv@51w!u*BMA_yFqu z#l<+W0mZRWR(^>Wrat*6TnDv#n=Xh^ugy*l^-TsLNx5nifRi{p#xGhI0OmiC*PO9W zR;XZce*B{I!epbgwMI+6b3&u8UX<@*zN|Dn)b}k2))wLP>w07HU4mx`J?j}jo z8)N?YOd3v2QSp|ysP`OGGRkK*acbw8S|tc0__+wzhRafQsrs2^LkVvs&EKzgZu9I5 zjaLf~gWm|}w$CfQ0r8Auq{O(;joBXdJh4%y>VRs9SikQ?zveNE&lu-Ue@>e7;3SWf z-OCv!-GMsSnBQ9!g=r|u6yy^(~G%#aIH)v1Qk1isu7 zWbbX{lKA+_o7v3t&hL4AVYsiW=hKr=x!HLM`<5nxNw~BF^Bbq+-)a1zq*1iMq*r=R zwOTbkS?H5r5)YAI%%f&RO4wZT_d)LtJMS@8&Pjhbfgr1!9tg5R<=`6ARNG-ZLdUD* z+q3POYfg=SJw{n7@*E##6vBkWMw11|6;9nj(zKfgy;2IO+?b{5?#<3Wp6SuHNV<<0 zjaRGihhEOIY>tk5i;+wB3sVaA>**>F#FJ~rHS~4!s&QLJ(i2Gq^8VVg0SLfi)@QP? z?YK63kUThJ>{QOd%+Wr6gOSrXe05VulK*W|Szf%i@R`6x5p=Vy-pBfxiCOhHSX7A8mUw{^9nKcYGnlcm{#vl)S$IpdP0HmCab(Vb@5&paRaSo%$6oz0fG@^+>7uJXvwIN4%>TX~43X!H!0* z#3}7s``cHM^64~EP-h2hBBDLR_IrL2$!*$tCN)v(o@U1*M^pcYU0vp*Jfs|38guvb z<-YF|s<~0tXe(DJ9rn9AEloC>67XTaAc;9w$u{yOf6a61KI+X;CxNY(O}92koMpv{ zN=DSMf4#K~(CQ05cDz*Pn2a3E^NaF(DbxB!3T|}v5P?_HD`8HPyeW7QWb zjYVK%e6?wgEYzLMK7Te&-Py={4N8M-ejQe@3!`@hwC= zaWxSgvnO_nnzbUW&iA-6bU;oq0vDS4t7DVdiKW^f?8+~?jke+GFw~_NVj~8lf|PgM zE-vN5P8Dst69eOQCq+t8Jj1^AB*9RvwGLB_r&BCww%ai}n7;UM`(MFd=0;1RB!zUD zd=^?d8rm_uIkF2Awah-)CiROc19|qQ)zA5nflXVkO9M6%SvT`#56w!H^-&Jm)$J2v z4%R1^8I&B+IhQIblr$YAI-*llj%RCF9dMh3E+!i!)1||&3?`yS^6-kCVOIuij&S58 zB_?$GNr~zx)(fR3-C0)w&y%B^RRDjL-IDAT@@9jdIR%}j_?<02?D_NOy3;2Pzx3iN zcKFvott&V6nJG6>z{#3V=P6w>Gc$|uGtZ!0G!t%d7;U3cP^vJev93uIiNpl^@Fcqe zMRB3oUk!#1o(smX4A(@CXjRD+Mch$d%@Lm?>raTh^8N@}!(f+Mqt3IMjy`0>u{jI= z1o{l#_w>FM$*BkFyTbM!>&+h#&DghHF(Qu;!� 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 Usn2h#bl>;M1& diff --git a/static/img2.png b/static/img2.png deleted file mode 100644 index 8523e240bdb2aac213dc7a86e68e38b7d434d63c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51833 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 diff --git a/tests/blockchain/__init__.py b/tests/blockchain/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/blockchain/contracts/__init__.py b/tests/blockchain/contracts/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/blockchain/contracts/test_deposit.py b/tests/blockchain/contracts/test_deposit.py deleted file mode 100644 index 71d9cf47..00000000 --- a/tests/blockchain/contracts/test_deposit.py +++ /dev/null @@ -1,15 +0,0 @@ -import pytest - -from tests.utils.contract_utils import check_contract -from tests.utils.regrex import HASH_REGREX, check_value_re - - -@pytest.mark.integration -def test_deposit_contract_call(deposit_contract, caplog): - check_contract( - deposit_contract, - [ - ('get_deposit_root', None, lambda response: check_value_re(HASH_REGREX, '0x' + response.hex())), - ], - caplog, - ) diff --git a/tests/blockchain/contracts/test_deposit_security_module.py b/tests/blockchain/contracts/test_deposit_security_module.py deleted file mode 100644 index e9c40f70..00000000 --- a/tests/blockchain/contracts/test_deposit_security_module.py +++ /dev/null @@ -1,21 +0,0 @@ -import pytest - -from tests.utils.contract_utils import check_contract -from tests.utils.regrex import HASH_REGREX, check_value_re, check_value_type, ADDRESS_REGREX - - -@pytest.mark.integration -def test_deposit_security_module_call(deposit_security_module, caplog): - check_contract( - deposit_security_module, - [ - ('get_guardian_quorum', None, lambda response: check_value_type(response, int)), - ('get_guardians', None, lambda response: check_value_type(response, list) and - [check_value_re(ADDRESS_REGREX, g) for g in response]), - ('get_attest_message_prefix', None, lambda response: check_value_type(response, bytes)), - ('can_deposit', (1,), lambda response: check_value_type(response, bool)), - ('get_pause_message_prefix', None, lambda response: check_value_type(response, bytes)), - ('get_pause_intent_validity_period_blocks', None, lambda response: check_value_type(response, int)), - ], - caplog, - ) diff --git a/tests/blockchain/contracts/test_lido.py b/tests/blockchain/contracts/test_lido.py deleted file mode 100644 index 8ab24a08..00000000 --- a/tests/blockchain/contracts/test_lido.py +++ /dev/null @@ -1,12 +0,0 @@ -from tests.utils.contract_utils import check_contract -from tests.utils.regrex import check_value_type - - -def test_lido_contract_call(lido_contract, caplog): - check_contract( - lido_contract, - [ - ('get_depositable_ether', None, lambda response: check_value_type(response, int)), - ], - caplog, - ) diff --git a/tests/blockchain/contracts/test_lido_locator.py b/tests/blockchain/contracts/test_lido_locator.py deleted file mode 100644 index f25efae0..00000000 --- a/tests/blockchain/contracts/test_lido_locator.py +++ /dev/null @@ -1,14 +0,0 @@ -from tests.utils.contract_utils import check_contract -from tests.utils.regrex import check_value_re, ADDRESS_REGREX - - -def test_lido_locator_call(lido_locator, caplog): - check_contract( - lido_locator, - [ - ('lido', None, lambda response: check_value_re(ADDRESS_REGREX, response)), - ('deposit_security_module', None, lambda response: check_value_re(ADDRESS_REGREX, response)), - ('staking_router', None, lambda response: check_value_re(ADDRESS_REGREX, response)), - ], - caplog, - ) diff --git a/tests/blockchain/contracts/test_staking_router.py b/tests/blockchain/contracts/test_staking_router.py deleted file mode 100644 index 509cd3bc..00000000 --- a/tests/blockchain/contracts/test_staking_router.py +++ /dev/null @@ -1,21 +0,0 @@ -import pytest - -from tests.utils.contract_utils import check_contract -from tests.utils.regrex import check_value_type - - -@pytest.mark.integration -def test_staking_router_call(staking_router, caplog): - check_contract( - staking_router, - [ - ('get_max_deposits_count', (1, 100*10**18), lambda response: check_value_type(response, int)), - ('get_staking_module_ids', None, lambda response: check_value_type(response, list) and - [check_value_type(x, int) for x in response]), - ('is_staking_module_active', (1,), lambda response: check_value_type(response, bool)), - ('is_staking_module_deposits_paused', (1,), lambda response: check_value_type(response, bool)), - ('get_staking_module_nonce', (1,), lambda response: check_value_type(response, int)), - ('get_staking_module_deposits_count', (1, 100*10**18), lambda response: check_value_type(response, int)), - ], - caplog, - ) diff --git a/tests/blockchain/deposit_strategy/__init__.py b/tests/blockchain/deposit_strategy/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/blockchain/deposit_strategy/test_curated_module.py b/tests/blockchain/deposit_strategy/test_curated_module.py deleted file mode 100644 index 98fddd7f..00000000 --- a/tests/blockchain/deposit_strategy/test_curated_module.py +++ /dev/null @@ -1,108 +0,0 @@ -from unittest.mock import Mock - -import pytest - -import variables -from blockchain.deposit_strategy.curated_module import CuratedModuleDepositStrategy - - -MODULE_ID = 1337 - - -@pytest.fixture -def cmds(web3_lido_unit): - yield CuratedModuleDepositStrategy(web3_lido_unit, module_id=MODULE_ID) - - -@pytest.mark.unit -def test_is_deposited_keys_amount_ok(cmds): - cmds._get_possible_deposits_amount = Mock(return_value=100) - - cmds._calculate_recommended_gas_based_on_deposit_amount = Mock(return_value=30) - cmds._get_pending_base_fee = Mock(return_value=20) - - assert cmds.is_deposited_keys_amount_ok() - - cmds._get_pending_base_fee = Mock(return_value=50) - assert not cmds.is_deposited_keys_amount_ok() - - -@pytest.mark.unit -def test_get_possible_deposits_amount(cmds): - depositable_eth = 100 - possible_deposits = depositable_eth // 32 - - cmds.w3.lido.lido.get_depositable_ether = Mock(return_value=depositable_eth) - cmds.w3.lido.staking_router.get_staking_module_deposits_count = Mock(return_value=possible_deposits) - - assert cmds._get_possible_deposits_amount() == possible_deposits - cmds.w3.lido.staking_router.get_staking_module_deposits_count.assert_called_once_with( - MODULE_ID, - depositable_eth, - ) - - -@pytest.mark.unit -@pytest.mark.parametrize( - "deposits,expected_range", - [(1, (0, 20)), (5, (20, 100)), (10, (50, 1000)), (100, (1000, 1000000))], -) -def test_calculate_recommended_gas_based_on_deposit_amount(cmds, deposits, expected_range): - assert expected_range[0] * 10**9 <= cmds._calculate_recommended_gas_based_on_deposit_amount(deposits) <= expected_range[1] * 10**9 - - -@pytest.mark.unit -def test_get_recommended_gas_fee(cmds): - cmds._fetch_gas_fee_history = Mock(return_value=list(range(11))) - variables.GAS_FEE_PERCENTILE_DAYS_HISTORY_1 = 1 - variables.GAS_FEE_PERCENTILE_1 = 50 - - assert cmds._get_recommended_gas_fee() == 5 - - variables.GAS_FEE_PERCENTILE_1 = 30 - assert cmds._get_recommended_gas_fee() == 3 - - -@pytest.mark.unit -def test_is_gas_price_ok(cmds): - cmds._get_pending_base_fee = Mock(return_value=10) - cmds._get_recommended_gas_fee = Mock(return_value=20) - variables.MAX_GAS_FEE = 300 - - cmds.w3.lido.lido.get_depositable_ether = Mock(return_value=100) - variables.MAX_BUFFERED_ETHERS = 200 - assert cmds.is_gas_price_ok() - - cmds._get_recommended_gas_fee = Mock(return_value=5) - assert not cmds.is_gas_price_ok() - - cmds.w3.lido.lido.get_depositable_ether = Mock(return_value=300) - assert cmds.is_gas_price_ok() - - cmds._get_pending_base_fee = Mock(return_value=400) - assert not cmds.is_gas_price_ok() - - -@pytest.fixture() -def cmds_integration(web3_lido_integration): - yield CuratedModuleDepositStrategy(web3_lido_integration, module_id=MODULE_ID) - - -@pytest.mark.integration -def test_get_pending_base_fee(cmds_integration): - pending_gas = cmds_integration._get_pending_base_fee() - assert 1 <= pending_gas <= 1000 * 10**9 - - -@pytest.mark.integration -def test_fetch_gas_fee_history(cmds_integration): - history = cmds_integration._fetch_gas_fee_history(1) - assert isinstance(history, list) - assert len(history) == 1 * 24 * 60 * 60 / 12 - - cmds_integration.w3.eth.fee_history = Mock() - cmds_integration._fetch_gas_fee_history(1) - assert len(history) == 1 * 24 * 60 * 60 / 12 - cmds_integration.w3.eth.fee_history.assert_not_called() - - diff --git a/tests/blockchain/web3_extentions/__init__.py b/tests/blockchain/web3_extentions/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/blockchain/web3_extentions/transaction.py b/tests/blockchain/web3_extentions/transaction.py deleted file mode 100644 index f12acfee..00000000 --- a/tests/blockchain/web3_extentions/transaction.py +++ /dev/null @@ -1,37 +0,0 @@ -import logging -from unittest.mock import Mock - -import pytest - -import variables -from blockchain.web3_extentions.transaction import TransactionUtils - - -@pytest.mark.unit -def test_get_priority_fee(web3_lido_unit): - tu = TransactionUtils(web3_lido_unit) - tu.web3.eth.fee_history = Mock(return_value={'reward': [[50]]}) - - assert tu._get_priority_fee(0, 10, 30) == 30 - assert tu._get_priority_fee(0, 10, 70) == 50 - assert tu._get_priority_fee(0, 60, 70) == 60 - - -@pytest.mark.unit -def test_protector_no_account(web3_lido_unit, caplog): - caplog.set_level(logging.INFO) - - tu = TransactionUtils(web3_lido_unit) - variables.CREATE_TRANSACTIONS = False - tu.send(None, False, 10) - assert 'Account was not provided. Sending transaction skipped.' in caplog.messages[-1] - - -@pytest.mark.unit -def test_protector_create_tx(web3_lido_unit, set_integration_account, caplog): - caplog.set_level(logging.INFO) - - tu = TransactionUtils(web3_lido_unit) - variables.CREATE_TRANSACTIONS = False - tu.send(None, False, 10) - assert 'Dry mode activated. Sending transaction skipped.' in caplog.messages[-1] diff --git a/tests/bots/__init__.py b/tests/bots/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/bots/test_depositor.py b/tests/bots/test_depositor.py deleted file mode 100644 index 40b62e22..00000000 --- a/tests/bots/test_depositor.py +++ /dev/null @@ -1,337 +0,0 @@ -import logging -from unittest.mock import Mock - -import pytest - -import variables -from bots.depositor import DepositorBot -from tests.conftest import DSM_OWNER - - -COUNCIL_ADDRESS_1 = '0x70997970C51812dc3A010C7d01b50e0d17dc79C8' -COUNCIL_PK_1 = '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' - -COUNCIL_ADDRESS_2 = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC' -COUNCIL_PK_2 = '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a' - - -@pytest.fixture -def depositor_bot(web3_lido_unit, block_data): - variables.MESSAGE_TRANSPORTS = '' - web3_lido_unit.lido.staking_router.get_staking_module_ids = Mock(return_value=[1, 2]) - web3_lido_unit.eth.get_block = Mock(return_value=block_data) - yield DepositorBot(web3_lido_unit) - - -@pytest.fixture -def deposit_message(): - yield { - "type": "deposit", - "depositRoot": "0x64dcf70a7ad7fc6b1a55db6b08b86e9d80736259916fcaef98f4710f0bac687b", - "nonce": 12, - "blockNumber": 10, - "blockHash": "0x432e218931e9b94f0702ecb1b0d084c467a86b384767ce38c4fe164463070532", - "guardianAddress": "0x43464Fe06c18848a2E2e913194D64c1970f4326a", - "guardianIndex": 8, - "stakingModuleId": 1, - "signature": { - "r": "0xc2235eb6983f80d19158f807d5d90d93abec52034ea7184bbf164ba211f00116", - "s": "0x75354ffc9fb6e7a4b4c01c622661a1d0382ace8c4ff8024626e39ac1a6a613d0", - "_vs": "0x75354ffc9fb6e7a4b4c01c622661a1d0382ace8c4ff8024626e39ac1a6a613d0", - "recoveryParam": 0, - "v": 27 - }, - "app": { - "version": "1.0.3", - "name": "lido-council-daemon" - } - } - - -@pytest.mark.unit -def test_depositor_check_all_modules(depositor_bot, block_data): - depositor_bot._deposit_to_module = Mock(return_value=False) - depositor_bot.execute(block_data) - - assert depositor_bot._deposit_to_module.call_count == 2 - - -@pytest.mark.unit -def test_depositor_one_module_deposited(depositor_bot, block_data): - depositor_bot._deposit_to_module = Mock(return_value=True) - depositor_bot.execute(block_data) - - assert depositor_bot._deposit_to_module.call_count == 2 - - -@pytest.mark.unit -def test_check_balance_dry(depositor_bot, caplog): - caplog.set_level(logging.INFO) - depositor_bot._check_balance() - assert 'No account provided. Dry mode.' in caplog.messages[-1] - - -@pytest.mark.unit -def test_check_balance(depositor_bot, caplog, set_account): - caplog.set_level(logging.INFO) - - depositor_bot.w3.eth.get_balance = Mock(return_value=10*10**18) - depositor_bot._check_balance() - assert 'Check account balance' in caplog.messages[-1] - - -@pytest.mark.unit -@pytest.mark.parametrize( - "active,paused,expected", - [ - (True, True, False), - (True, False, True), - (False, True, False), - (False, False, False), - ], -) -def test_depositor_check_module_status(depositor_bot, active, paused, expected): - depositor_bot.w3.lido.staking_router.is_staking_module_active = Mock(return_value=active) - depositor_bot.w3.lido.staking_router.is_staking_module_deposits_paused = Mock(return_value=paused) - assert depositor_bot._check_module_status(1) == expected - - -@pytest.mark.unit -@pytest.mark.parametrize( - "is_depositable,quorum,is_gas_price_ok,is_deposited_keys_amount_ok", - [ - pytest.param(True, True, True, True, marks=pytest.mark.xfail), - (False, True, True, True), - (True, False, True, True), - (True, True, False, True), - (True, True, True, False), - ], -) -def test_depositor_deposit_to_module(depositor_bot, is_depositable, quorum, is_gas_price_ok, is_deposited_keys_amount_ok): - depositor_bot._check_module_status = Mock(return_value=is_depositable) - depositor_bot._get_quorum = Mock(return_value=quorum) - - strategy = Mock() - strategy.is_gas_price_ok = Mock(return_value=is_gas_price_ok) - strategy.is_deposited_keys_amount_ok = Mock(return_value=is_deposited_keys_amount_ok) - - depositor_bot._get_module_strategy = Mock(return_value=strategy) - depositor_bot._build_and_send_deposit_tx = Mock(return_value=True) - - assert not depositor_bot._deposit_to_module(1) - - -@pytest.fixture -def setup_deposit_message(depositor_bot, block_data): - depositor_bot.w3.eth.get_block = Mock(return_value=block_data) - depositor_bot.w3.lido.deposit_contract.get_deposit_root = Mock( - return_value=b'd\xdc\xf7\nz\xd7\xfck\x1aU\xdbk\x08\xb8n\x9d\x80sbY\x91o\xca\xef\x98\xf4q\x0f\x0b\xach{' - ) - depositor_bot.w3.lido.staking_router.get_staking_module_nonce = Mock(return_value=12) - depositor_bot.w3.lido.deposit_security_module.get_guardians = Mock(return_value=['0x43464Fe06c18848a2E2e913194D64c1970f4326a']) - - -@pytest.mark.unit -def test_depositor_message_actualizer(setup_deposit_message, depositor_bot, deposit_message, block_data): - message_filter = depositor_bot._get_message_actualize_filter(1) - assert list(filter(message_filter, [deposit_message])) - - -@pytest.mark.unit -def test_depositor_message_actualizer_not_guardian(setup_deposit_message, depositor_bot, deposit_message, block_data): - depositor_bot.w3.lido.deposit_security_module.get_guardians = Mock(return_value=['0x13464Fe06c18848a2E2e913194D64c1970f4326a']) - message_filter = depositor_bot._get_message_actualize_filter(1) - assert not list(filter(message_filter, [deposit_message])) - - -@pytest.mark.unit -def test_depositor_message_actualizer_outdated(setup_deposit_message, depositor_bot, deposit_message, block_data): - deposit_message['blockNumber'] = block_data['number'] - 250 - message_filter = depositor_bot._get_message_actualize_filter(1) - assert not list(filter(message_filter, [deposit_message])) - - deposit_message['blockNumber'] = block_data['number'] - 150 - assert list(filter(message_filter, [deposit_message])) - - -@pytest.mark.unit -def test_depositor_message_actualizer_nonce(setup_deposit_message, depositor_bot, deposit_message, block_data): - deposit_message['nonce'] += 10 - message_filter = depositor_bot._get_message_actualize_filter(1) - assert not list(filter(message_filter, [deposit_message])) - - deposit_message['blockNumber'] = block_data['number'] + 100 - assert list(filter(message_filter, [deposit_message])) - - -@pytest.mark.unit -def test_depositor_message_actualizer_root(setup_deposit_message, depositor_bot, deposit_message, block_data): - deposit_message['depositRoot'] += '0x55dcf70a7ad7fc6b1a55db6b08b86e9d80736259916fcaef98f4710f0bac687b' - message_filter = depositor_bot._get_message_actualize_filter(1) - assert not list(filter(message_filter, [deposit_message])) - - deposit_message['blockNumber'] = block_data['number'] + 100 - assert list(filter(message_filter, [deposit_message])) - - -@pytest.mark.unit -def test_prepare_signs_for_deposit(deposit_message, depositor_bot): - second_council = { - "guardianAddress": "0x13464Fe06c18848a2E2e913194D64c1970f4326a", - "signature": { - "r": "0xc2235eb6983f80d19158f807d5d90d93abec52034ea7184bbf164ba211f00116", - "s": "0x75354ffc9fb6e7a4b4c01c622661a1d0382ace8c4ff8024626e39ac1a6a613d0", - "_vs": "0x75354ffc9fb6e7a4b4c01c622661a1d0382ace8c4ff8024626e39ac1a6a613d0", - "recoveryParam": 0, - "v": 27 - }, - } - - expected = (('0xc2235eb6983f80d19158f807d5d90d93abec52034ea7184bbf164ba211f00116', '0x75354ffc9fb6e7a4b4c01c622661a1d0382ace8c4ff8024626e39ac1a6a613d0'), ('0xc2235eb6983f80d19158f807d5d90d93abec52034ea7184bbf164ba211f00116', '0x75354ffc9fb6e7a4b4c01c622661a1d0382ace8c4ff8024626e39ac1a6a613d0')) - - signs = depositor_bot._prepare_signs_for_deposit([second_council, deposit_message]) - assert signs == expected - - signs = depositor_bot._prepare_signs_for_deposit([deposit_message, second_council]) - assert signs == expected - - -@pytest.mark.unit -def test_send_deposit_tx(depositor_bot): - depositor_bot.w3.transaction.check = Mock(return_value=False) - params = [ - 1, b'', b'', 1, 1, b'', tuple(), - ] - assert not depositor_bot._send_deposit_tx(*params) - - depositor_bot.w3.transaction.check = Mock(return_value=True) - depositor_bot.w3.transaction.send = Mock(return_value=True) - assert depositor_bot._send_deposit_tx(*params) - assert depositor_bot._flashbots_works - - depositor_bot.w3.transaction.send = Mock(return_value=False) - assert not depositor_bot._send_deposit_tx(*params) - assert not depositor_bot._flashbots_works - - assert not depositor_bot._send_deposit_tx(*params) - assert depositor_bot._flashbots_works - - -@pytest.mark.unit -def test_get_quorum(depositor_bot, setup_deposit_message): - deposit_messages = [ - { - "blockHash": "0x432e218931e9b94f0702ecb1b0d084c467a86b384767ce38c4fe164463070532", - "guardianAddress": "0x43464Fe06c18848a2E2e913194D64c1970f4326a", - }, - { - "blockHash": "0x432e218931e9b94f0702ecb1b0d084c467a86b384767ce38c4fe164463070532", - "guardianAddress": "0x43464Fe06c18848a2E2e913194D64c1970f4326a", - }, - { - "blockHash": "0x232e218931e9b94f0702ecb1b0d084c467a86b384767ce38c4fe164463070532", - "guardianAddress": "0x43464Fe06c18848a2E2e913194D64c1970f4326a", - }, - { - "blockHash": "0x232e218931e9b94f0702ecb1b0d084c467a86b384767ce38c4fe164463070532", - "guardianAddress": "0x33464Fe06c18848a2E2e913194D64c1970f4326a", - } - ] - - depositor_bot.w3.lido.deposit_security_module.get_guardian_quorum = Mock(return_value=2) - depositor_bot.message_storage.get_messages = Mock(return_value=deposit_messages[:2]) - assert not depositor_bot._get_quorum(1) - - depositor_bot.message_storage.get_messages = Mock(return_value=deposit_messages[:4]) - quorum = depositor_bot._get_quorum(1) - assert quorum - assert deposit_messages[2] in quorum - assert deposit_messages[3] in quorum - - -def get_deposit_message(web3, account_address, pk, module_id): - latest = web3.eth.get_block('latest') - - prefix = web3.lido.deposit_security_module.get_attest_message_prefix() - block_number = latest.number - deposit_root = '0x' + web3.lido.deposit_contract.get_deposit_root().hex() - staking_module_id = int(1) - nonce = web3.lido.staking_router.get_staking_module_nonce(module_id) - - # | ATTEST_MESSAGE_PREFIX | blockNumber | blockHash | depositRoot | stakingModuleId | nonce | - - msg_hash = web3.solidityKeccak( - ['bytes32', 'uint256', 'bytes32', 'bytes32', 'uint256', 'uint256'], - [prefix, block_number, latest.hash.hex(), deposit_root, staking_module_id, nonce], - ) - signed = web3.eth.account.signHash(msg_hash, private_key=pk) - - msg = { - "type": "deposit", - "depositRoot": deposit_root, - "nonce": nonce, - "blockNumber": latest.number, - "blockHash": latest.hash.hex(), - "guardianAddress": account_address, - "guardianIndex": 8, - "stakingModuleId": staking_module_id, - "signature": { - "r": signed.r.to_bytes(32, 'big').hex(), - "s": signed.s.to_bytes(32, 'big').hex(), - "v": signed.v, - }, - } - - return msg - - -@pytest.fixture -def add_accounts_to_guardian(web3_lido_integration, set_integration_account): - web3_lido_integration.provider.make_request('hardhat_impersonateAccount', [DSM_OWNER]) - quorum_size = web3_lido_integration.lido.deposit_security_module.get_guardian_quorum() - - try: - # If guardian removal failed - web3_lido_integration.lido.deposit_security_module.functions.addGuardian(COUNCIL_ADDRESS_1, 2).transact({'from': DSM_OWNER}) - web3_lido_integration.lido.deposit_security_module.functions.addGuardian(COUNCIL_ADDRESS_2, 2).transact({'from': DSM_OWNER}) - except: - pass - - yield web3_lido_integration - - web3_lido_integration.lido.deposit_security_module.functions.removeGuardian(COUNCIL_ADDRESS_1, quorum_size).transact({'from': DSM_OWNER}) - web3_lido_integration.lido.deposit_security_module.functions.removeGuardian(COUNCIL_ADDRESS_2, quorum_size).transact({'from': DSM_OWNER}) - - -@pytest.mark.integration -def test_depositor_bot(web3_lido_integration, add_accounts_to_guardian, caplog): - max_deposits = web3_lido_integration.lido.deposit_security_module.functions.getMaxDeposits().call() - web3_lido_integration.lido.deposit_security_module.functions.setMaxDeposits(2).transact({'from': DSM_OWNER}) - - latest = web3_lido_integration.eth.get_block('latest') - - module_id = 1 - - old_module_nonce = web3_lido_integration.lido.staking_router.get_staking_module_nonce(module_id) - - deposit_message_1 = get_deposit_message(web3_lido_integration, COUNCIL_ADDRESS_1, COUNCIL_PK_1, module_id) - deposit_message_2 = get_deposit_message(web3_lido_integration, COUNCIL_ADDRESS_2, COUNCIL_PK_2, module_id) - deposit_message_3 = get_deposit_message(web3_lido_integration, COUNCIL_ADDRESS_2, COUNCIL_PK_2, module_id) - - db = DepositorBot(web3_lido_integration) - db.message_storage.messages = [deposit_message_2, deposit_message_3] - db.execute(latest) - - assert web3_lido_integration.lido.staking_router.get_staking_module_nonce(module_id) == old_module_nonce - - web3_lido_integration.eth.send_transaction({ - "from": web3_lido_integration.eth.accounts[0], - "to": web3_lido_integration.lido.lido.address, - "value": 2000 * 10**18 - }) - - db.message_storage.messages = [deposit_message_1, deposit_message_2, deposit_message_3] - db._get_module_strategy = Mock(return_value=Mock(return_value=True)) - assert db.execute(latest) - # assert web3_lido_integration.lido.staking_router.get_staking_module_nonce(module_id) == old_module_nonce + 1 - web3_lido_integration.lido.deposit_security_module.functions.setMaxDeposits(max_deposits).transact({'from': DSM_OWNER}) diff --git a/tests/bots/test_executor.py b/tests/bots/test_executor.py deleted file mode 100644 index 80f71f8a..00000000 --- a/tests/bots/test_executor.py +++ /dev/null @@ -1,88 +0,0 @@ -import time -from unittest.mock import Mock - -import pytest -from web3.types import BlockData - -from blockchain.executer import Executor -from metrics import healthcheck_pulse -from utils.timeout import TimeoutManagerError - - -def pure_func(block: BlockData): - return block.number - - -def pure_func_false(block: BlockData): - return False - - -def pure_func_sleep(block: BlockData): - time.sleep(8) - return True - - -@pytest.fixture -def remove_metrics(): - healthcheck_pulse.pulse = Mock() - - -@pytest.mark.integration -def test_timeout(web3_lido_integration, remove_metrics): - e = Executor( - web3_lido_integration, - pure_func_sleep, - 1, - 4, - ) - - with pytest.raises(TimeoutManagerError): - e.execute_as_daemon() - - -@pytest.mark.integration -def test_blocks_diff_call(web3_lido_integration, remove_metrics): - e = Executor( - web3_lido_integration, - pure_func, - 1, - 4, - ) - - block_1 = e._wait_for_new_block_and_execute() - block_2 = e._wait_for_new_block_and_execute() - block_3 = e._wait_for_new_block_and_execute() - - assert block_1 + 2 == block_2 + 1 == block_3 - - -@pytest.mark.integration -def test_blocks_true_result(web3_lido_integration, remove_metrics): - e = Executor( - web3_lido_integration, - pure_func, - 2, - 4, - ) - - block_1 = e._wait_for_new_block_and_execute() - block_2 = e._wait_for_new_block_and_execute() - - assert block_1 + 2 == block_2 - - -@pytest.mark.integration -def test_blocks_false_result(web3_lido_integration, remove_metrics): - e = Executor( - web3_lido_integration, - pure_func_false, - 2, - 4, - ) - - e._wait_for_new_block_and_execute() - block_1 = e._next_expected_block - e._wait_for_new_block_and_execute() - block_2 = e._next_expected_block - - assert block_1 + 1 == block_2 diff --git a/tests/bots/test_pauser.py b/tests/bots/test_pauser.py deleted file mode 100644 index b831e68b..00000000 --- a/tests/bots/test_pauser.py +++ /dev/null @@ -1,167 +0,0 @@ -from unittest.mock import Mock - -import pytest -from eth_abi import encode -from eth_account.messages import encode_defunct, encode_structured_data -from eth_hash.backends.pycryptodome import keccak256 - -import variables -from bots.pause import PauserBot -from tests.conftest import DSM_OWNER - -# WARNING: These accounts, and their private keys, are publicly known. -COUNCIL_ADDRESS = '0x70997970C51812dc3A010C7d01b50e0d17dc79C8' -COUNCIL_PK = '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d' - - -@pytest.fixture -def pause_bot(web3_lido_unit, block_data): - web3_lido_unit.eth.get_block = Mock(return_value=block_data) - variables.MESSAGE_TRANSPORTS = '' - web3_lido_unit.lido.deposit_security_module.get_pause_intent_validity_period_blocks = Mock(return_value=10) - yield PauserBot(web3_lido_unit) - - -@pytest.fixture -def pause_message(): - yield { - "blockHash": "0xe41c0212516a899c455203e833903c802338daa3048bc637b623f6fba0a1685c", - "blockNumber": 10, - "guardianAddress": "0x3dc4cF780F2599B528F37dedB34449Fb65Ef7d4A", - "guardianIndex": 0, - "stakingModuleId": 1, - "signature": { - "_vs": "0xd4933925f5f97a9632b4b1bc621a1c2771d58eaf6eee27dcf915eac8af010537", - "r": "0xbaa668505cd496caaf7117dd074338197200175057909ab73a04463656bdb0fa", - "recoveryParam": 1, - "s": "0x54933925f5f97a9632b4b1bc621a1c2771d58eaf6eee27dcf915eac8af010537", - "v": 28 - }, - "type": "pause" - } - - -@pytest.fixture -def add_account_to_guardian(web3_lido_integration, set_integration_account): - web3_lido_integration.provider.make_request('hardhat_impersonateAccount', [DSM_OWNER]) - quorum_size = web3_lido_integration.lido.deposit_security_module.get_guardian_quorum() - - try: - # If guardian removal failed - web3_lido_integration.lido.deposit_security_module.functions.addGuardian(COUNCIL_ADDRESS, quorum_size).transact( - {'from': DSM_OWNER}, - ) - except: - pass - - yield COUNCIL_ADDRESS - - web3_lido_integration.lido.deposit_security_module.functions.removeGuardian(COUNCIL_ADDRESS, quorum_size).transact( - {'from': DSM_OWNER}, - ) - - -def get_pause_message(web3): - latest = web3.eth.get_block('latest') - - prefix = web3.lido.deposit_security_module.get_pause_message_prefix() - - block_number = latest.number - staking_module_id = int(1) - - msg_hash = web3.solidityKeccak(['bytes32', 'uint256', 'uint256'], [prefix, block_number, staking_module_id]) - signed = web3.eth.account.signHash(msg_hash, private_key=COUNCIL_PK) - - return { - "blockHash": latest.hash.hex(), - "blockNumber": latest.number, - "guardianAddress": variables.ACCOUNT.address, - "stakingModuleId": 1, - "signature": { - "r": hex(signed.r), - "s": hex(signed.s), - "v": signed.v, - }, - "type": "pause" - } - - -@pytest.mark.unit -def test_pause_bot_without_messages(pause_bot, block_data): - pause_bot.message_storage.get_messages = Mock(return_value=[]) - pause_bot._send_pause_message = Mock() - pause_bot.execute(block_data) - pause_bot._send_pause_message.assert_not_called() - - -@pytest.mark.unit -@pytest.mark.parametrize( - "block_range", - [4, pytest.param(6, marks=pytest.mark.xfail)], -) -def test_pause_bot_outdate_messages(pause_bot, block_data, pause_message, block_range): - pause_message['blockNumber'] = 5 - pause_bot.message_storage.messages = [pause_message] - pause_bot.w3.lido.deposit_security_module.get_pause_intent_validity_period_blocks = Mock(return_value=block_range) - - pause_bot._send_pause_message = Mock() - pause_bot.execute(block_data) - pause_bot._send_pause_message.assert_not_called() - - -@pytest.mark.unit -@pytest.mark.parametrize( - "active_module", - [False, pytest.param(True, marks=pytest.mark.xfail)], -) -def test_pause_bot_clean_messages(pause_bot, block_data, pause_message, active_module): - pause_bot.message_storage.messages = [pause_message] - pause_bot.w3.lido.staking_router.is_staking_module_active = Mock(return_value=active_module) - - pause_bot.execute(block_data) - assert len(pause_bot.message_storage.messages) == 0 - - -@pytest.mark.unit -def test_pause_message_filtered_by_module_id(pause_bot, block_data, pause_message): - new_message = pause_message.copy() - new_message['stakingModuleId'] = 2 - - pause_bot.message_storage.messages = [pause_message, pause_message, new_message] - pause_bot.w3.lido.staking_router.is_staking_module_active = lambda module_id: not module_id % 2 - - pause_bot.execute(block_data) - - # Only module_id=1 messages filtered - assert len(pause_bot.message_storage.messages) == 1 - - -@pytest.mark.integration -def test_pauser_bot(web3_lido_integration, add_account_to_guardian): - latest = web3_lido_integration.eth.get_block('latest') - - pm = get_pause_message(web3_lido_integration) - - pb = PauserBot(web3_lido_integration) - pb.execute(latest) - - # Check no pause - assert not web3_lido_integration.lido.staking_router.is_staking_module_deposits_paused(1) - - # Add pause message - pb.message_storage.messages = [pm] - pb.execute(latest) - - # Check there is pause message and module paused - assert web3_lido_integration.lido.staking_router.is_staking_module_deposits_paused(1) - assert len(pb.message_storage.messages) == 1 - - pb.execute(latest) - # Check pause message cleaned - assert not pb.message_storage.messages - - # Cleanup - web3_lido_integration.lido.deposit_security_module.functions.unpauseDeposits(pm['stakingModuleId']).transact( - {'from': DSM_OWNER} - ) - assert not web3_lido_integration.lido.staking_router.is_staking_module_deposits_paused(1) diff --git a/tests/bots/test_timeout.py b/tests/bots/test_timeout.py deleted file mode 100644 index 879590a4..00000000 --- a/tests/bots/test_timeout.py +++ /dev/null @@ -1,18 +0,0 @@ -import time - -import pytest - -from utils.timeout import TimeoutManager, TimeoutManagerError - - -@pytest.mark.unit -def test_timeout(): - with pytest.raises(TimeoutManagerError): - simple_timeout(4, 8) - - simple_timeout(8, 4) - - -def simple_timeout(expect_time: int, sleep_time: int): - with TimeoutManager(expect_time): - time.sleep(sleep_time) diff --git a/tests/conftest.py b/tests/conftest.py deleted file mode 100644 index 61682483..00000000 --- a/tests/conftest.py +++ /dev/null @@ -1,48 +0,0 @@ -import pytest -from eth_account import Account -from eth_typing import BlockNumber -from web3.types import BlockData, Wei - -from tests.fixtures.provider import * -from tests.fixtures.contracts import * - - -# https://goerli.etherscan.io/address/0xe57025E250275cA56f92d76660DEcfc490C7E79A#readContract#F12 -DSM_OWNER = '0xa5F1d7D49F581136Cf6e58B32cBE9a2039C48bA1' - - -@pytest.fixture -def block_data(): - yield BlockData(number=BlockNumber(10), baseFeePerGas=Wei(100)) - - -@pytest.fixture -def set_account(): - variables.ACCOUNT = Account.from_key('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80') - yield variables.ACCOUNT - variables.ACCOUNT = None - - -@pytest.fixture -def set_integration_account(): - # Basic Hardhat account - # Address 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 - variables.ACCOUNT = Account.from_key('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80') - variables.CREATE_TRANSACTIONS = True - yield - variables.CREATE_TRANSACTIONS = False - variables.ACCOUNT = None - - -@pytest.fixture() -def ping_message(monkeypatch): - yield { - "type": "ping", - "blockNumber": 13726495, - "guardianIndex": 0, - "guardianAddress": "0x3dc4cF780F2599B528F37dedB34449Fb65Ef7d4A", - "app": { - "version": "1.1.1", - "name": "lido-council-daemon" - } - } diff --git a/tests/cryptography/__init__.py b/tests/cryptography/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/fixtures/common_fixtures.py b/tests/fixtures/common_fixtures.py new file mode 100644 index 00000000..00d740e9 --- /dev/null +++ b/tests/fixtures/common_fixtures.py @@ -0,0 +1,36 @@ +COMMON_FIXTURES = { + 'eth_chainId': ( + ((), {'jsonrpc': '2.0', 'id': 11, 'result': '0x1'}), + ('default', {'jsonrpc': '2.0', 'id': 11, 'result': '0x1'}), + ), + 'eth_getFilterChanges': ( + ('default', {'jsonrpc': '2.0', 'id': 1, 'result': []}), + ), + 'eth_getBlockByNumber': ( + (('latest', False), {'jsonrpc': '2.0', 'id': 15, 'result': {'baseFeePerGas': '0xffbf193d7', 'difficulty': '0x29aa4945316813', 'extraData': '0x486976656f6e2065752d6865617679', 'gasLimit': '0x1c9c380', 'gasUsed': '0x65fe32', 'hash': '0xf7b1887b32ad3b9346f907947e2dffb5012de2b7cb7b6b84b950356237944d0c', 'logsBloom': '0x092000900100008810000000805c080000000000000008000001606044086000080101400080020080005883004901909220824588002c900088840040212040880004004021410a8822000810002020800100088240050104000c03802844101a00002012004482014408221000189000008840081064082000003404288c0800820120104030000044008a0821000241000401910080180021084201100401071880289001a00202000080080810401000001021802010183c1000100c2000210003032200081028010d20005600400000024203991230848a000201026008a131202a0400090000419000010008a00000a880305102502000090000001220', 'miner': '0x1ad91ee08f21be3de0ba2ba6918e714da6b45836', 'mixHash': '0x98630b099b638f63942ba8ff6b65b8a7b26dd38c6e125528104aeff50c01d02a', 'nonce': '0x0000030ab4a3b4d8', 'number': '0xd17320', 'parentHash': '0xc2ea9185d4821a13da4a2975c85673eff34944e92c0b5d3516a3b4482ac2ab58', 'receiptsRoot': '0x3f30031d0a235a05e183de7416a42a2bdef7cbcbabd581282cfc8b2e239b9abe', 'sha3Uncles': '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', 'size': '0x63ff', 'stateRoot': '0x22b47b4d4370336d5a0ffb7423b1a40257b23fdcfe28a3ec45a21e60590e1dd8', 'timestamp': '0x61a88d67', 'totalDifficulty': '0x78d36e1e439ded9742d', 'transactions': [], 'transactionsRoot': '0xfa0b8a5325ea94fd117575c1aedf498ccaccdca636334f938b3b3184426f749c', 'uncles': []}}), + (('pending', False), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': '0x4a1533d7f', 'difficulty': '0x29be4af025287c', 'extraData': '0xd883010a0c846765746888676f312e31372e33856c696e7578', 'gasLimit': '0x1c95111', 'gasUsed': '0x1b68674', 'hash': None, 'logsBloom': '0x57aa6b0f5ba66e9fbecbbec7849fcff758cddfdfbeb53b3ee5e9bb7d7f7bdfcf79fe7df2bdccb9b3d3e9dff8fcffd7d5ba2bf9139feffdb5f73ffe3bb23ef82d26fa5fa7af73bf2ce9afb63efaff5f7f6ef6387464cfb554b5f7b7ff96e35f753a41fbbf7fb5de9abf76d7d87dbefff6fffaf271ffbf37cf769f5d37b4affeed7f12b75b57fef817f3d72fbd0ff366cc5575ad3ddf361f2dcbae546fe9bfedd6bb5babcb6eee27f9eefd4fd3fdb94f29fb7eca707fffa7f355f3973e1efdbe93efebfbf7cda9997baf3bd9af57fbfd55ffeeff585f0efd7f779fbfab78de60fd8cfe3debfef5c3bdf9d53f9f97adff87c3e3cdc9f1f6f3f9255ffa56e8db7bef', 'miner': None, 'mixHash': '0x0000000000000000000000000000000000000000000000000000000000000000', 'nonce': None, 'number': '0xd18e3e', 'parentHash': '0x01802ffbfec338704593f416bb06005afb88c2a343d5a405d6d3f5359422a41c', 'receiptsRoot': '0xa67cb02111fe0430601215c03aa86a2a95a032487c1644f7561e7d7ef58a4677', 'sha3Uncles': '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', 'size': '0x19b97', 'stateRoot': '0xdbffeb5d663c710239c0b8bf57b562848e8bd6d55117ad29cbb9fe930ac0e11a', 'timestamp': '0x61aa03ce', 'totalDifficulty': None, 'transactions': [], 'transactionsRoot': '0xaeade20445251ded37c5efce433e9a526683d340da591774ac14acb4ca7a11d3', 'uncles': []}}), + ), + 'eth_getCode': ( + (['0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'latest'], {'jsonrpc': '2.0', 'id': 14, 'result': '0x60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b57806348a0c8dd146101525780635c60da1b1461017b57806380afdea8146101b9578063d4aae0c4146101ce575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100e15760003411361583541616156100dc576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100e96101e3565b9050610126816000368080601f016020809104026020016040519081016040528093929190818152602001838380828437506101fa945050505050565b505050005b34801561013757600080fd5b5061014061023b565b60408051918252519081900360200190f35b34801561015e57600080fd5b50610167610240565b604080519115158252519081900360200190f35b34801561018757600080fd5b506101906101e3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c557600080fd5b5061014061026b565b3480156101da57600080fd5b50610190610296565b60006101f56101f061026b565b6102c1565b905090565b600061020583610395565b151561021057600080fd5b612710905060008083516020850186855a03f43d604051816000823e828015610237578282f35b8282fd5b600290565b60006101f57f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6103cf565b60006101f57fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6103cf565b60006101f57f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6103cf565b60006102cb610296565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b15801561036357600080fd5b505af1158015610377573d6000803e3d6000fd5b505050506040513d602081101561038d57600080fd5b505192915050565b60008073ffffffffffffffffffffffffffffffffffffffff831615156103be57600091506103c9565b823b90506000811191505b50919050565b5490565b5490565b9055565b90555600a165627a7a72305820976bd9d6f6ad7a0d339ea3b373704842cdb3d9e15e7463676c04c1fa6ffb56410029'}), + (['0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5', 'latest'], {'jsonrpc': '2.0', 'id': 15, 'result': '0x60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b57806348a0c8dd146101525780635c60da1b1461017b57806380afdea8146101b9578063d4aae0c4146101ce575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100e15760003411361583541616156100dc576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100e96101e3565b9050610126816000368080601f016020809104026020016040519081016040528093929190818152602001838380828437506101fa945050505050565b505050005b34801561013757600080fd5b5061014061023b565b60408051918252519081900360200190f35b34801561015e57600080fd5b50610167610240565b604080519115158252519081900360200190f35b34801561018757600080fd5b506101906101e3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c557600080fd5b5061014061026b565b3480156101da57600080fd5b50610190610296565b60006101f56101f061026b565b6102c1565b905090565b600061020583610395565b151561021057600080fd5b612710905060008083516020850186855a03f43d604051816000823e828015610237578282f35b8282fd5b600290565b60006101f57f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6103cf565b60006101f57fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6103cf565b60006101f57f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6103cf565b60006102cb610296565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b15801561036357600080fd5b505af1158015610377573d6000803e3d6000fd5b505050506040513d602081101561038d57600080fd5b505192915050565b60008073ffffffffffffffffffffffffffffffffffffffff831615156103be57600091506103c9565b823b90506000811191505b50919050565b5490565b5490565b9055565b90555600a165627a7a72305820976bd9d6f6ad7a0d339ea3b373704842cdb3d9e15e7463676c04c1fa6ffb56410029'}), + (['0x710B3303fB508a84F10793c1106e32bE873C24cd', 'latest'], {'jsonrpc': '2.0', 'id': 0, 'result': '0x608060405234801561001057600080fd5b50600436106101c35760003560e01c8063893d20e8116100f9578063ba6252b211610097578063c8f712d511610071578063c8f712d5146103cd578063e78a5875146103e0578063eccd085f146103e8578063f47610e6146103fb57600080fd5b8063ba6252b21461038d578063c6dda2c31461039e578063c7062e98146103c557600080fd5b8063a50833d6116100d3578063a50833d614610340578063a749013e14610367578063b187bd261461037a578063b7b7a4081461038557600080fd5b8063893d20e8146102f55780638b21f170146103065780638d71a6f41461032d57600080fd5b8063251e3a211161016657806362272f281161014057806362272f281461029357806363d8882a1461029b5780636b96736b146102a35780637e923312146102e257600080fd5b8063251e3a21146102655780633ab54bc31461026d5780633e6f6d681461028057600080fd5b80630c68ba21116101a25780630c68ba2114610209578063111e53131461022c57806313af40351461023f57806320d580d11461025257600080fd5b8062fed902146101c8578063062b662e146101dd5780630665f04b146101f4575b600080fd5b6101db6101d6366004611559565b61040e565b005b6007545b6040519081526020015b60405180910390f35b6101fc61044d565b6040516101eb9190611572565b61021c6102173660046115db565b6104af565b60405190151581526020016101eb565b6101db61023a3660046115fd565b6104d1565b6101db61024d3660046115db565b610511565b6101db6102603660046116e1565b610544565b6002546101e1565b6101db61027b3660046117aa565b6108cf565b6101db61028e366004611559565b610a4e565b6009546101e1565b6101db610a81565b6102ca7f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa81565b6040516001600160a01b0390911681526020016101eb565b6101db6102f0366004611559565b610aec565b6004546001600160a01b03166102ca565b6102ca7f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe8481565b6101db61033b3660046115fd565b610b1f565b6101e17fd225b544f236c424d88abf1dd1a58e20df146bb6c02d916809b75d7a72bccb1081565b6101db6103753660046115db565b610cd7565b60085460ff1661021c565b6001546101e1565b6000546001600160a01b03166102ca565b6101e17f1670745baff8f26a6c2e451bc4eedecf0009a8271dcf5d224e8ab295f22b086381565b6003546101e1565b6101db6103db3660046117d7565b610d0a565b61021c610d7c565b6101db6103f6366004611559565b610db3565b6101e16104093660046115db565b610de6565b6004546001600160a01b031633146104415760405162461bcd60e51b815260040161043890611875565b60405180910390fd5b61044a81610df1565b50565b606060058054806020026020016040519081016040528092919081815260200182805480156104a557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610487575b5050505050905090565b6001600160a01b03811660009081526006602052604081205415155b92915050565b6004546001600160a01b031633146104fb5760405162461bcd60e51b815260040161043890611875565b61050482610e2d565b61050d81610f13565b5050565b6004546001600160a01b0316331461053b5760405162461bcd60e51b815260040161043890611875565b61044a81610f48565b60007f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa6001600160a01b031663c5f2892f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561059f57600080fd5b505afa1580156105b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d7919061189b565b905080861461061f5760405162461bcd60e51b815260206004820152601460248201527319195c1bdcda5d081c9bdbdd0818da185b99d95960621b6044820152606401610438565b60085460ff16156106685760405162461bcd60e51b815260206004820152601360248201527219195c1bdcda5d1cc8185c99481c185d5cd959606a1b6044820152606401610438565b600060075411801561067d5750600754825110155b6106be5760405162461bcd60e51b81526020600482015260126024820152716e6f20677561726469616e2071756f72756d60701b6044820152606401610438565b6002546009546106ce90436118ca565b10156107145760405162461bcd60e51b8152602060048201526015602482015274746f6f206672657175656e74206465706f7369747360581b6044820152606401610438565b82158015906107235750828440145b6107675760405162461bcd60e51b81526020600482015260156024820152740eadccaf0e0cac6e8cac840c4d8dec6d640d0c2e6d605b1b6044820152606401610438565b60008060009054906101000a90046001600160a01b03166001600160a01b031663d07442f16040518163ffffffff1660e01b815260040160206040518083038186803b1580156107b657600080fd5b505afa1580156107ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ee919061189b565b90508086146108375760405162461bcd60e51b81526020600482015260156024820152741ad95e5cc81bdc081a5b99195e0818da185b99d959605a1b6044820152606401610438565b6108448787878787611012565b6001546040516390adc83b60e01b815260048101919091527f000000000000000000000000ae7ab96520de3a18e5e111b5eaab095312d7fe846001600160a01b0316906390adc83b90602401600060405180830381600087803b1580156108aa57600080fd5b505af11580156108be573d6000803e3d6000fd5b505043600955505050505050505050565b60085460ff16156108de575050565b3360006108ea826111a1565b90508060001914156109ac57604080517fd225b544f236c424d88abf1dd1a58e20df146bb6c02d916809b75d7a72bccb10602082015290810185905260009060600160405160208183030381529060405280519060200120905061095781856000015186602001516111c6565b9250610962836111a1565b91508160001914156109aa5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606401610438565b505b6003546109b985436118ca565b11156109fe5760405162461bcd60e51b81526020600482015260146024820152731c185d5cd9481a5b9d195b9d08195e1c1a5c995960621b6044820152606401610438565b6008805460ff191660011790556040516001600160a01b03831681527feb225a736fbfee3f85ccb72bdf84ff0396ab358b7970e2cc351ab3e3fd92358d906020015b60405180910390a150505050565b6004546001600160a01b03163314610a785760405162461bcd60e51b815260040161043890611875565b61044a81610f13565b6004546001600160a01b03163314610aab5760405162461bcd60e51b815260040161043890611875565b60085460ff1615610aea576008805460ff191690556040517f823084e804e36d8971e8b86749b6b0ace7b9f87ed272bef910c1e72d123eeb4890600090a15b565b6004546001600160a01b03163314610b165760405162461bcd60e51b815260040161043890611875565b61044a816111f0565b6004546001600160a01b03163314610b495760405162461bcd60e51b815260040161043890611875565b6001600160a01b03821660009081526006602052604090205480610ba05760405162461bcd60e51b815260206004820152600e60248201526d3737ba10309033bab0b93234b0b760911b6044820152606401610438565b60055480821115610bb357610bb36118e1565b808214610c495760006005610bc96001846118ca565b81548110610bd957610bd96118f7565b6000918252602090912001546001600160a01b03169050806005610bfe6001866118ca565b81548110610c0e57610c0e6118f7565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559290911681526006909152604090208290555b6001600160a01b0384166000908152600660205260408120556005805480610c7357610c7361190d565b600082815260209020810160001990810180546001600160a01b0319169055019055610c9e83610f13565b6040516001600160a01b03851681527fb8107d0c6b40be480ce3172ee66ba6d64b71f6b1685a851340036e6e2e3e3c5290602001610a40565b6004546001600160a01b03163314610d015760405162461bcd60e51b815260040161043890611875565b61044a816112a5565b6004546001600160a01b03163314610d345760405162461bcd60e51b815260040161043890611875565b60005b8251811015610d7257610d62838281518110610d5557610d556118f7565b6020026020010151610e2d565b610d6b81611923565b9050610d37565b5061050d81610f13565b60085460009060ff16158015610d9457506000600754115b8015610dae5750600254600954610dab90436118ca565b10155b905090565b6004546001600160a01b03163314610ddd5760405162461bcd60e51b815260040161043890611875565b61044a816112f3565b60006104cb826111a1565b60018190556040518181527f4d72502b63cfe737b98b225a53708fe347cf8274baed31e0c4e4941b758da992906020015b60405180910390a150565b6001600160a01b03811660009081526006602052604090205415610e875760405162461bcd60e51b81526020600482015260116024820152706475706c6963617465206164647265737360781b6044820152606401610438565b600580546001810182557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b038416908117909155905460008281526006602090815260409182902092909255519182527f038596bb31e2e7d3d9f184d4c98b310103f6d7f5830e5eec32bffe6f1728f9699101610e22565b60078190556040518181527f70d7432f2ec830b36e5b8c45176a8079968714429c4be85665c06ec1b8fde4bb90602001610e22565b6001600160a01b038116610fc45760405162461bcd60e51b815260206004820152603c60248201527f696e76616c69642076616c756520666f72206f776e65723a206d75737420626560448201527f20646966666572656e742066726f6d207a65726f2061646472657373000000006064820152608401610438565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3690602001610e22565b604080517f1670745baff8f26a6c2e451bc4eedecf0009a8271dcf5d224e8ab295f22b08636020820152908101869052606081018590526080810184905260a0810183905260009060c0016040516020818303038152906040528051906020012090506000805b83518110156111975760006110c98486848151811061109a5761109a6118f7565b6020026020010151600001518785815181106110b8576110b86118f7565b6020026020010151602001516111c6565b90506110ec816001600160a01b0316600090815260066020526040902054151590565b61112c5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b6044820152606401610438565b826001600160a01b0316816001600160a01b0316116111855760405162461bcd60e51b81526020600482015260156024820152741cda59db985d1d5c995cc81b9bdd081cdbdc9d1959605a1b6044820152606401610438565b915061119081611923565b9050611079565b5050505050505050565b6001600160a01b0381166000908152600660205260408120546104cb9060019061193e565b60006001600160ff1b03821660ff83901c601b016111e6868287856113b0565b9695505050505050565b600081116112705760405162461bcd60e51b815260206004820152604160248201527f696e76616c69642076616c756520666f72206d696e4465706f736974426c6f6360448201527f6b44697374616e63653a206d7573742062652067726561746572207468656e206064820152600360fc1b608482015260a401610438565b60028190556040518181527fdb69cbc4aa6648b506b7854c26807bfd811c27feaf97ac8847e3a66356cace1490602001610e22565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f7f40d0cbed36e9d36ffe92f223f1f44635a84ad83db42f8596e4885984b608a290602001610e22565b6000811161137b5760405162461bcd60e51b815260206004820152604960248201527f696e76616c69642076616c756520666f72207061757365496e74656e7456616c60448201527f6964697479506572696f64426c6f636b733a206d75737420626520677265617460648201526806572207468656e20360bc1b608482015260a401610438565b60038190556040518181527f8120886d27fee35672e5d5a482d6c858105aebb26caf12178b8c0034fa88c2ba90602001610e22565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561142d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610438565b8360ff16601b148061144257508360ff16601c145b6114995760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610438565b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa1580156114ed573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166115505760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610438565b95945050505050565b60006020828403121561156b57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156115b35783516001600160a01b03168352928401929184019160010161158e565b50909695505050505050565b80356001600160a01b03811681146115d657600080fd5b919050565b6000602082840312156115ed57600080fd5b6115f6826115bf565b9392505050565b6000806040838503121561161057600080fd5b611619836115bf565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561166657611666611627565b604052919050565b600067ffffffffffffffff82111561168857611688611627565b5060051b60200190565b6000604082840312156116a457600080fd5b6040516040810181811067ffffffffffffffff821117156116c7576116c7611627565b604052823581526020928301359281019290925250919050565b600080600080600060a086880312156116f957600080fd5b853594506020808701359450604080880135945060608801359350608088013567ffffffffffffffff81111561172e57600080fd5b8801601f81018a1361173f57600080fd5b803561175261174d8261166e565b61163d565b81815260069190911b8201840190848101908c83111561177157600080fd5b928501925b82841015611797576117888d85611692565b82529284019290850190611776565b8096505050505050509295509295909350565b600080606083850312156117bd57600080fd5b823591506117ce8460208501611692565b90509250929050565b600080604083850312156117ea57600080fd5b823567ffffffffffffffff81111561180157600080fd5b8301601f8101851361181257600080fd5b8035602061182261174d8361166e565b82815260059290921b8301810191818101908884111561184157600080fd5b938201935b8385101561186657611857856115bf565b82529382019390820190611846565b98969091013596505050505050565b6020808252600c908201526b3737ba1030b71037bbb732b960a11b604082015260600190565b6000602082840312156118ad57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156118dc576118dc6118b4565b500390565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600019821415611937576119376118b4565b5060010190565b60008083128015600160ff1b85018412161561195c5761195c6118b4565b6001600160ff1b0384018313811615611977576119776118b4565b5050039056fea2646970667358221220ad75fe8f6a607bdd29fc8a5e8b920609f7d6a7ecdb6c2096676458daf24bfbe764736f6c63430008090033'}), + (['0x00000000219ab540356cBB839Cbe05303d7705Fa', 'latest'], {'jsonrpc': '2.0', 'id': 0, 'result': '0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033'}), + + ), + 'eth_maxPriorityFeePerGas': ( + ((), {'jsonrpc': '2.0', 'id': 14, 'result': '0x3b9aca00'}), + ), + 'eth_getBlockByHash': ( + (['0xf7b1887b32ad3b9346f907947e2dffb5012de2b7cb7b6b84b950356237944d0c', False], {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': '0xffbf193d7', 'difficulty': '0x29aa4945316813', 'extraData': '0x486976656f6e2065752d6865617679', 'gasLimit': '0x1c9c380', 'gasUsed': '0x65fe32', 'hash': '0xf7b1887b32ad3b9346f907947e2dffb5012de2b7cb7b6b84b950356237944d0c', 'logsBloom': '0x092000900100008810000000805c080000000000000008000001606044086000080101400080020080005883004901909220824588002c900088840040212040880004004021410a8822000810002020800100088240050104000c03802844101a00002012004482014408221000189000008840081064082000003404288c0800820120104030000044008a0821000241000401910080180021084201100401071880289001a00202000080080810401000001021802010183c1000100c2000210003032200081028010d20005600400000024203991230848a000201026008a131202a0400090000419000010008a00000a880305102502000090000001220', 'miner': '0x1ad91ee08f21be3de0ba2ba6918e714da6b45836', 'mixHash': '0x98630b099b638f63942ba8ff6b65b8a7b26dd38c6e125528104aeff50c01d02a', 'nonce': '0x0000030ab4a3b4d8', 'number': '0xd17320', 'parentHash': '0xc2ea9185d4821a13da4a2975c85673eff34944e92c0b5d3516a3b4482ac2ab58', 'receiptsRoot': '0x3f30031d0a235a05e183de7416a42a2bdef7cbcbabd581282cfc8b2e239b9abe', 'sha3Uncles': '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', 'size': '0x63ff', 'stateRoot': '0x22b47b4d4370336d5a0ffb7423b1a40257b23fdcfe28a3ec45a21e60590e1dd8', 'timestamp': '0x61a88d67', 'totalDifficulty': '0x78d36e1e439ded9742d', 'transactions': ['0x65af93227a93216f5f27c5015f6f9396b90e4167be8e9372592c3b9650729c79', '0x0b8654b18d570962dfb3be131f294fe07ba5672c8e3648aec621c8ed51d59eb0', '0x4e5cdd826e957db5b1052a7a5d2cf993247ce6d17ea130b182ccaeebef6094e0', '0x35dcf51285cfc36f5fb4c0fd416f2d3bcc15d1480cf8a55c61efb9b695421355', '0xec4dbb6f8897b7d9f4c6cc59817f426e2efb6117fb9b60f669be676c0b808f30', '0x5784b40994e35ce5187655c613bb8270ba3b2a57c3b1536c7cc38c38c47a877b', '0x4e2cf3c48c1e4dedbd8770dbb0e11539d7224546130333642def3ab9f78cc7d8', '0x77afae22c5634e4f4c19e6beabf0b101db4e07cb6a482956725168afcaae6344', '0x4fe23160878453cbe977da19be25155ef46744ecf1d2981df5368cefc75604e8', '0xaf37fa5dfe43fae7c11b439279a2ce81fbd020cf9f89a4b01b6ba2dbf818f049', '0xa9afcffd6d3795362d7033f89aa10fcc0401ef1f1d96901b2edd46183f48fa21', '0xf797252a8371ea17a9af50bc10703712975807e3a8e58e34efa769ad68322ec2', '0xec9cd815126ef1f986e728d62f3cb367882be23172349672d21790e84630d52c', '0x3362d72d2b51bb41490481d4c769dcfb624f69a875a9e49bfcc325bc93405002', '0x562b3f8e433c3d71359a9fc067937ac597565a4699758838a48c53dc9664d9ce', '0xdca4669a396179c7ce92e23854080e9409380097e1a8063c5a305f15b960ccec', '0xbd265c019c17f35b09af4861d45ebde43d6b434a0bb0cc056a73f4bb619e1b3e', '0x7fa9303a4fa0b2762b806d686577f946d65061d6a0715691a480983b0c1bd3eb', '0xef0ce7a2ee102797454b4c15bffde48b11f69d9ef0f326f37841e7b8a0c5710c', '0x61bbbf3b653531b5705bd7f3958763af9f2b6c1645ebd516667ae47d03ea8e3f', '0x254fcdf47fbb9cff345400c5dc9216c4f33f7e2cef1ba056ce7ce06c1333f9f4', '0x8d6b3838aed7e0e875064211047fcc25a0dabb17c3c5133310eb6404fd066610', '0x5720197fa128bb7f5b7da15917b691b30a34dfaba6a4b6dbfed7e9fc62ce56ee', '0xfdcab88e7d59ad2a72702b25324884405906629da49a2970ce41dd94d7d2f693', '0x3139b8d1f05d220af2d9973fa7e7bc2f72f7dd5103533358d551e17bffe8c283', '0xd1d52415e2543f8f3ada618c6d38d8aeb4391d70e3d6e173fa5e0b59ca543642', '0x32d7cb13171ca1f8af20f9538562dc55f243c7c4932ecf6b13af07ccd0a5e911', '0x3f3561d30bf4595321e675850a026a62c38f88a211a52a98281a311e42382688', '0x9caf0cba2e321a488d09d9b180ea0df6c918a938e46f01a7b6c643f5dd08aa9c', '0xb065aebb4295617d35a7a6948147ce62fe65ccdc8bbe1970634e3da659a5a0e4', '0x17b5caf0210df90353f3cf30c33acfa60f57877acf28003396d1b9b079d8d033', '0x21834b1993e2d674b0956b86dea553d9462b5bf796ea641e5dd48b901345f8d6', '0x8e1b15ed802463a0324cc8a58d9fdd91c3858bd02743375dcafdfd1707200582', '0xc9c5971bff493ef3b62a4b2b4608dc608e5e7756204504211ac68498b7b34cc1', '0x707b3f3d0375a33e079e6317df5c89780f8a68abdf9c4f8ed303e326e2540403', '0x6afa5f502e2b36ffe30212d5825e40cf8570659f6b99c6a8f8924e956d84484f', '0x801d005f71330472eb94cb1a4b5fa1a4da54aa1dce6ec5e73653602c83cc3367', '0x10472a4f28d9e87344e4b4fee3e2ae18ce1017c58c81071e7ae763095069fd7f', '0x8675fe1441c22218c98dbdd08d28bdd2a91d6d5ff222f4aae52956db9f1a3847', '0xfcbd8ae334bb76c318948956597d56059072534039365adedc1cfc9ef184d846', '0xbb51f7a9e8b2344869516da8eb34940a8915eacf234c39649f09eade995c30c8', '0x7f0ed378838d0b72c8e4860efede754e85c2cc629d085f12a52920babc1707d3', '0x6b89090098ee6e1b6a16ac96c5dffad80322a6a136d85f139845f17b7301f2f4', '0x227f1a11a48aad6c4dbb7e3401219f0d26ea68ea5ba2160414b83fdb7e260a62', '0xa04141d8c2c600db65812ede705b10985399fcea8e7218d841b8a7a373f62d66', '0xfbe4fbeccb9cf51a8f8b77b84d42ec726bf33be845a8fe20372baf7f975fcfbd', '0x0f290cf9677c21190bdc81a3abab32e5e0c622470076404c7f9cbe9b85a76604', '0xcc88c425c5085ce25e5b231ea7a26e3fb3e7cb484b8babbe9d607973b41dfa9e', '0x006be29bbb258a38d2d606ba06a3bdf8b31046258d359f18aa995a6712da1357', '0xc2f104387aa55579c237f280e0ba1df680157e84ca8c91035d70d816b824c12d', '0xc62822e1042eab62bb258221e8025a9fc4d74bc58b09cd298e38d99d1f5124c7', '0xe2807ffcd149dc3d326e64f487dc52cdc9d8a4e467c357e5e4673e739a65d780', '0xac02ad169d2d0d7f965354ab5ebaa1674ade7405f13ed19e2df23f8e2dbd1e18', '0xbf35e37b9c35abe09c718124d017a000d1c709946f036999c2e88e43f83134fb', '0xbd60fbfaa148b42ea09bd873d892d85c9618af88f9b0492d00eb79095b4f5679', '0x39650ea365f331e083e5284a9bfe68bd0228734ab530449c4c1859267951d045', '0xe4fe2034919cd8550d43ca8eff8de469e97e3b7717d49ab170d7b0b3901031d1', '0xbad1ca6b0529eb796b3ec742470648eeb03c6f009acbcd7dff1c58593059a9a1', '0x39db5a0be5d0a5dbe9d366633ee7ebb5237f29a139318690b4b7a3df33fff669', '0xf5b5baa969befd31e539297ccd8a99bddf465183f44864fb89c73e7474ae56ea', '0x50a0a44e9cc1142a9fe7768bac30350650722de6ccf97aa5df00b0314316466d', '0xcdada45a8aa9f4cd9ad0a0b79045c3b96653230097de4dc05abefefbe02f4c7a', '0xd9167adec79e13b9a4327b6282dbbffcbbbf488ae9d31996403c52a586220d8f', '0x53a65c847879b49ed1df04080cb96cd751d0513bcc343d1bae174f49863a454b', '0xc7861a45ea4e9dfcd003917fb53df16f0558c38c2befc617cd018d71c817b587', '0xf83da1327dc6bcc1cf3eaeec6b1c1304758332059357f19a6b3a20de5b09ad08', '0x0b010e62fe93852e435c29da6ed3c49c56c26a05cf8cafa2e158374886752997', '0xcb5dd543f711f14d24111fc17d73b2c5bd058075e1bf4773ba7cdafd716d4dd3', '0x7d068f0129639e102f755e0b452b3ad98e6703b9b6a40fb48acce0f0f9eaf658', '0xd583e71f7c03e78e4b87fe45b7a64f7e61b91f6e5548159d11ceff37ca8a3362', '0xccc0f66457d1062975a192bfa84a98c259a3acfcf51edc135d460ce5fc44c999', '0x1dd110c83d242003f88e5a24193d100aad1a7f27a9ad87dcb0f37e945e445318', '0x6e48d8489c3a8d61ab67d8f54806d3469b1d1a15f90c43161f6cfc553c09a183', '0x150ed16197ed67682530cea4c6fd28b9149e744795154b050e9f758c7dc006c6', '0x6ad00ef83e6ae5b52d9ebf33140cd512fb551322de33a8fedb6906a644dd3452', '0x440518eead820d331fd3976fa370609dd4bfe59e0a0436668dd0526d1b4647d5', '0x42b3c2ab4d2996054a21817bcbe98b4e8dc0c83d7bce5bc3b8a8243b1e081585', '0xcbe3d82f95ecda55e7ba9d1f31c3f8f9576a0026aee4b55b706e7d7c65abdcbb', '0xa02785b22b85b9300ca384e2b6ecabf4bd14205b68a3913258140739dc2322ce', '0xf173c2b8d9cb3999be697dc582d8af92023577a8b15265a96f35ecf1c62cacd7', '0x9b56ddd6e4431c6199bbd94dff647fac2eca072d8c9fef1f9ab919343d684daa', '0x1a073ec19b0b8a0fa1344d7916d6aab03983bd63b1b3c31168f763170c9d106c', '0x13566558636a2f49e00c2babf517c3a18cc2a2ff01c971d4fc051751bf6b0b4b', '0x488688bdf3baddcb0b04c259ebfe57ef0543b575bbf66295d4f5b9c2b412f939'], 'transactionsRoot': '0xfa0b8a5325ea94fd117575c1aedf498ccaccdca636334f938b3b3184426f749c', 'uncles': []}}), + ) +} + + +LIDO_LOCATOR_CALLS = ( + (({'to': '0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb', 'data': '0x23509a2d'}, 'latest'), + {'jsonrpc': '2.0', 'id': 0, 'result': '0x000000000000000000000000ae7ab96520DE3A18E5e111B5EaAb095312D7fE84'}), + (({'to': '0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb', 'data': '0x472c1776'}, 'latest'), + {'jsonrpc': '2.0', 'id': 0, 'result': '0x000000000000000000000000710B3303fB508a84F10793c1106e32bE873C24cd'}), + (({'to': '0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb', 'data': '0xef6c064c'}, 'latest'), + {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000000'}), +) diff --git a/tests/fixtures/contracts.py b/tests/fixtures/contracts.py deleted file mode 100644 index 2f497af5..00000000 --- a/tests/fixtures/contracts.py +++ /dev/null @@ -1,51 +0,0 @@ -from typing import cast - -import pytest - -import variables -from blockchain.contracts.deposit_security_module import DepositSecurityModuleContract -from blockchain.contracts.lido import LidoContract -from blockchain.contracts.lido_locator import LidoLocatorContract -from blockchain.contracts.deposit import DepositContract -from blockchain.contracts.staking_router import StakingRouterContract - - -@pytest.fixture -def lido_locator(web3_provider_integration): - yield cast(LidoLocatorContract, web3_provider_integration.eth.contract( - # ToDo provide lido locator address via env variable - address=variables.LIDO_LOCATOR, - ContractFactoryClass=LidoLocatorContract, - )) - - -@pytest.fixture -def deposit_contract(web3_provider_integration): - yield cast(DepositContract, web3_provider_integration.eth.contract( - address=variables.DEPOSIT_CONTRACT, - ContractFactoryClass=DepositContract, - )) - - -@pytest.fixture -def lido_contract(web3_provider_integration, lido_locator): - yield cast(LidoContract, web3_provider_integration.eth.contract( - address=lido_locator.lido(), - ContractFactoryClass=LidoContract, - )) - - -@pytest.fixture -def deposit_security_module(web3_provider_integration, lido_locator): - yield cast(DepositSecurityModuleContract, web3_provider_integration.eth.contract( - address=lido_locator.deposit_security_module(), - ContractFactoryClass=DepositSecurityModuleContract, - )) - - -@pytest.fixture -def staking_router(web3_provider_integration, lido_locator): - yield cast(StakingRouterContract, web3_provider_integration.eth.contract( - address=lido_locator.staking_router(), - ContractFactoryClass=StakingRouterContract, - )) diff --git a/tests/fixtures/depositor_fixtures.py b/tests/fixtures/depositor_fixtures.py new file mode 100644 index 00000000..cf8bfd67 --- /dev/null +++ b/tests/fixtures/depositor_fixtures.py @@ -0,0 +1,139 @@ +from fixtures.common_fixtures import COMMON_FIXTURES, LIDO_LOCATOR_CALLS +from fixtures.gas_fee_fixtures import GAS_FEE_FIXTURES + + +DEPOSITOR_BASE_FIXTURES = { + 'eth_call': ( + *LIDO_LOCATOR_CALLS, + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x062b662e'}, 'latest'), {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0xc6dda2c3'}, 'latest'), {'jsonrpc': '2.0', 'id': 12, 'result': '0x1670745baff8f26a6c2e451bc4eedecf0009a8271dcf5d224e8ab295f22b0863'}), + (({'to': '0x00000000219ab540356cBB839Cbe05303d7705Fa', 'data': '0xc5f2892f'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x4eff65af4dac60f23b625a5d9c80f9cc36b0754cd1db072cd47bd6d053e2f94e'}), + (({'to': '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5', 'data': '0xd07442f1'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000043'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x39443b8e0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + (({'to': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'data': '0x47b714e0'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000001111271e5ec338bae335ab'}), + (({'from': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'to': '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5', 'data': '0x41bc716f0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000030a6c073f8bc871eea37b7b6dacaaac419473076fb05d7a4631173d1dc70c2adb47b9c0235d0ffb29e240ccab19e6152e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060a9d0b8d92e82182d933a26786a7b394843d5d19ef565b0214b2d9b7e82f6eb66d5cade6cbad25256ee7555b33c2c2f861148ec0ab495baefd06ff503c6c9006ff68e307f8a0f911573093d8258522d2666619a396d7fbe2cefb84940a1a48826'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x0665f04b'}, 'latest'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000043464Fe06c18848a2E2e913194D64c1970f4326a0000000000000000000000007912fa976bcde9c2cf728e213e892ad7588e6aaf00000000000000000000000014d5d5b71e048d2d75a39ffc5b407e3a3ab6f314000000000000000000000000f82d88217c249297c6037ba77ce34b3d8a90ab43000000000000000000000000a56b128ea2ea237052b0fa2a96a387c0e43157d8000000000000000000000000d4ef84b638b334699bcf5af4b0410b8ccd71943f'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x0df9a86d0000000000000000000000000000000000000000000000000000000000d1731f432e218931e9b94f0702ecb1b0d084c467a86b384767ce38c4fe1644630705324eff65af4dac60f23b625a5d9c80f9cc36b0754cd1db072cd47bd6d053e2f94e0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c2235eb6983f80d19158f807d5d90d93abec52034ea7184bbf164ba211f0011675354ffc9fb6e7a4b4c01c622661a1d0382ace8c4ff8024626e39ac1a6a613d0'}, 'latest'), {'jsonrpc': '2.0', 'id': 0, 'error': {'code': 3, 'data': '0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000146465706f73697420726f6f74206368616e676564000000000000000000000000', 'message': 'execution reverted: deposit root changed'}}), + (({'to': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'data': '0xf2cfa87d'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000001111271e5ec338bae335ab'}), + (({'to': '0x0000000000000000000000000000000000000000', 'data': '0x19c64b7900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000001111271e5ec338bae335ab'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + ), + 'eth_accounts': ( + ((), {'jsonrpc': '2.0', 'id': 0, 'result': []}), + ), + 'eth_getBalance': ( + (['0x3f17f1962B36e491b30A40b2405849e597Ba5FB5', {'blockHash': '0xf7b1887b32ad3b9346f907947e2dffb5012de2b7cb7b6b84b950356237944d0c'}], {'jsonrpc': '2.0', 'id': 0, 'result': '0xffffffffffffffff'}), + ), + **GAS_FEE_FIXTURES, + **COMMON_FIXTURES, +} + +DEPOSITOR_BASE_FIXTURES_SMALL_BALANCE = { + **DEPOSITOR_BASE_FIXTURES, + 'eth_getBalance': ( + (['0x3f17f1962B36e491b30A40b2405849e597Ba5FB5', {'blockHash': '0xf7b1887b32ad3b9346f907947e2dffb5012de2b7cb7b6b84b950356237944d0c'}], {'jsonrpc': '2.0', 'id': 0, 'result': '0xfff'}), + ), +} + +DEPOSITOR_FIXTURES_WITH_HIGH_GAS = { + **DEPOSITOR_BASE_FIXTURES, + 'eth_getBlockByNumber': ( + (('latest', False), {'jsonrpc': '2.0', 'id': 15, + 'result': {'baseFeePerGas': '0xffbf193d7', 'difficulty': '0x29aa4945316813', + 'extraData': '0x486976656f6e2065752d6865617679', 'gasLimit': '0x1c9c380', + 'gasUsed': '0x65fe32', + 'hash': '0xf7b1887b32ad3b9346f907947e2dffb5012de2b7cb7b6b84b950356237944d0c', + 'logsBloom': '0x092000900100008810000000805c080000000000000008000001606044086000080101400080020080005883004901909220824588002c900088840040212040880004004021410a8822000810002020800100088240050104000c03802844101a00002012004482014408221000189000008840081064082000003404288c0800820120104030000044008a0821000241000401910080180021084201100401071880289001a00202000080080810401000001021802010183c1000100c2000210003032200081028010d20005600400000024203991230848a000201026008a131202a0400090000419000010008a00000a880305102502000090000001220', + 'miner': '0x1ad91ee08f21be3de0ba2ba6918e714da6b45836', + 'mixHash': '0x98630b099b638f63942ba8ff6b65b8a7b26dd38c6e125528104aeff50c01d02a', + 'nonce': '0x0000030ab4a3b4d8', 'number': '0xd17320', + 'parentHash': '0xc2ea9185d4821a13da4a2975c85673eff34944e92c0b5d3516a3b4482ac2ab58', + 'receiptsRoot': '0x3f30031d0a235a05e183de7416a42a2bdef7cbcbabd581282cfc8b2e239b9abe', + 'sha3Uncles': '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', + 'size': '0x63ff', + 'stateRoot': '0x22b47b4d4370336d5a0ffb7423b1a40257b23fdcfe28a3ec45a21e60590e1dd8', + 'timestamp': '0x61a88d67', 'totalDifficulty': '0x78d36e1e439ded9742d', + 'transactions': [], + 'transactionsRoot': '0xfa0b8a5325ea94fd117575c1aedf498ccaccdca636334f938b3b3184426f749c', + 'uncles': []}}), + (('pending', False), {'jsonrpc': '2.0', 'id': 0, + 'result': {'baseFeePerGas': '0x994a1533d7f', 'difficulty': '0x29be4af025287c', + 'extraData': '0xd883010a0c846765746888676f312e31372e33856c696e7578', + 'gasLimit': '0x1c95111', 'gasUsed': '0x1b68674', 'hash': None, + 'logsBloom': '0x57aa6b0f5ba66e9fbecbbec7849fcff758cddfdfbeb53b3ee5e9bb7d7f7bdfcf79fe7df2bdccb9b3d3e9dff8fcffd7d5ba2bf9139feffdb5f73ffe3bb23ef82d26fa5fa7af73bf2ce9afb63efaff5f7f6ef6387464cfb554b5f7b7ff96e35f753a41fbbf7fb5de9abf76d7d87dbefff6fffaf271ffbf37cf769f5d37b4affeed7f12b75b57fef817f3d72fbd0ff366cc5575ad3ddf361f2dcbae546fe9bfedd6bb5babcb6eee27f9eefd4fd3fdb94f29fb7eca707fffa7f355f3973e1efdbe93efebfbf7cda9997baf3bd9af57fbfd55ffeeff585f0efd7f779fbfab78de60fd8cfe3debfef5c3bdf9d53f9f97adff87c3e3cdc9f1f6f3f9255ffa56e8db7bef', + 'miner': None, + 'mixHash': '0x0000000000000000000000000000000000000000000000000000000000000000', + 'nonce': None, 'number': '0xd18e3e', + 'parentHash': '0x01802ffbfec338704593f416bb06005afb88c2a343d5a405d6d3f5359422a41c', + 'receiptsRoot': '0xa67cb02111fe0430601215c03aa86a2a95a032487c1644f7561e7d7ef58a4677', + 'sha3Uncles': '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', + 'size': '0x19b97', + 'stateRoot': '0xdbffeb5d663c710239c0b8bf57b562848e8bd6d55117ad29cbb9fe930ac0e11a', + 'timestamp': '0x61aa03ce', 'totalDifficulty': None, 'transactions': [], + 'transactionsRoot': '0xaeade20445251ded37c5efce433e9a526683d340da591774ac14acb4ca7a11d3', + 'uncles': []}}), + ), +} + +DEPOSITOR_FIXTURES_WITH_DEPOSIT_PROHIBIT = { + **DEPOSITOR_BASE_FIXTURES, + 'eth_call': ( + *LIDO_LOCATOR_CALLS, + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x062b662e'}, 'latest'), {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0xc6dda2c3'}, 'latest'), {'jsonrpc': '2.0', 'id': 12, 'result': '0x1670745baff8f26a6c2e451bc4eedecf0009a8271dcf5d224e8ab295f22b0863'}), + (({'to': '0x00000000219ab540356cBB839Cbe05303d7705Fa', 'data': '0xc5f2892f'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x4eff65af4dac60f23b625a5d9c80f9cc36b0754cd1db072cd47bd6d053e2f94e'}), + (({'to': '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5', 'data': '0xd07442f1'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000043'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x39443b8e0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000000'}), + (({'to': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'data': '0x47b714e0'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000011271e5ec338bae335ab'}), + (({'from': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'to': '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5', 'data': '0x41bc716f0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000030a6c073f8bc871eea37b7b6dacaaac419473076fb05d7a4631173d1dc70c2adb47b9c0235d0ffb29e240ccab19e6152e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060a9d0b8d92e82182d933a26786a7b394843d5d19ef565b0214b2d9b7e82f6eb66d5cade6cbad25256ee7555b33c2c2f861148ec0ab495baefd06ff503c6c9006ff68e307f8a0f911573093d8258522d2666619a396d7fbe2cefb84940a1a48826'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x0665f04b'}, 'latest'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000043464Fe06c18848a2E2e913194D64c1970f4326a0000000000000000000000007912fa976bcde9c2cf728e213e892ad7588e6aaf00000000000000000000000014d5d5b71e048d2d75a39ffc5b407e3a3ab6f314000000000000000000000000f82d88217c249297c6037ba77ce34b3d8a90ab43000000000000000000000000a56b128ea2ea237052b0fa2a96a387c0e43157d8000000000000000000000000d4ef84b638b334699bcf5af4b0410b8ccd71943f'}), + (({'to': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'data': '0xf2cfa87d'}, '0xd17320'), + {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000001111271e5ec338bae335ab'}), + (({'to': '0x0000000000000000000000000000000000000000', + 'data': '0x19c64b7900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000001111271e5ec338bae335ab'}, + '0xd17320'), + {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + + ), +} + +DEPOSITOR_FIXTURES_NOT_ENOUGH_BUFFERED_ETHER = { + **DEPOSITOR_BASE_FIXTURES, + 'eth_call': ( + *LIDO_LOCATOR_CALLS, + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x062b662e'}, 'latest'), {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0xc6dda2c3'}, 'latest'), {'jsonrpc': '2.0', 'id': 12, 'result': '0x1670745baff8f26a6c2e451bc4eedecf0009a8271dcf5d224e8ab295f22b0863'}), + (({'to': '0x00000000219ab540356cBB839Cbe05303d7705Fa', 'data': '0xc5f2892f'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x4eff65af4dac60f23b625a5d9c80f9cc36b0754cd1db072cd47bd6d053e2f94e'}), + (({'to': '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5', 'data': '0xd07442f1'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000043'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x39443b8e0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + (({'to': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'data': '0x47b714e0'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000e5ec338bae335ab'}), + (({'from': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'to': '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5', 'data': '0x41bc716f0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000030a6c073f8bc871eea37b7b6dacaaac419473076fb05d7a4631173d1dc70c2adb47b9c0235d0ffb29e240ccab19e6152e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060a9d0b8d92e82182d933a26786a7b394843d5d19ef565b0214b2d9b7e82f6eb66d5cade6cbad25256ee7555b33c2c2f861148ec0ab495baefd06ff503c6c9006ff68e307f8a0f911573093d8258522d2666619a396d7fbe2cefb84940a1a48826'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x0665f04b'}, 'latest'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000043464Fe06c18848a2E2e913194D64c1970f4326a0000000000000000000000007912fa976bcde9c2cf728e213e892ad7588e6aaf00000000000000000000000014d5d5b71e048d2d75a39ffc5b407e3a3ab6f314000000000000000000000000f82d88217c249297c6037ba77ce34b3d8a90ab43000000000000000000000000a56b128ea2ea237052b0fa2a96a387c0e43157d8000000000000000000000000d4ef84b638b334699bcf5af4b0410b8ccd71943f'}), + (({'to': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'data': '0xf2cfa87d'}, '0xd17320'), + {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + (({'to': '0x0000000000000000000000000000000000000000', + 'data': '0x19c64b7900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001'}, + '0xd17320'), + {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + ), +} + +DEPOSITOR_FIXTURES_NO_FREE_KEYS = { + **DEPOSITOR_BASE_FIXTURES, + 'eth_call': ( + *LIDO_LOCATOR_CALLS, + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x062b662e'}, 'latest'), {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0xc6dda2c3'}, 'latest'), {'jsonrpc': '2.0', 'id': 12, 'result': '0x1670745baff8f26a6c2e451bc4eedecf0009a8271dcf5d224e8ab295f22b0863'}), + (({'to': '0x00000000219ab540356cBB839Cbe05303d7705Fa', 'data': '0xc5f2892f'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x4eff65af4dac60f23b625a5d9c80f9cc36b0754cd1db072cd47bd6d053e2f94e'}), + (({'to': '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5', 'data': '0xd07442f1'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000043'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x39443b8e0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + (({'to': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'data': '0x47b714e0'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000011271e5ec338bae335ab'}), + (({'from': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'to': '0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5', 'data': '0x41bc716f0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x0665f04b'}, 'latest'), {'jsonrpc': '2.0', 'id': 0, 'result': '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000600000000000000000000000043464Fe06c18848a2E2e913194D64c1970f4326a0000000000000000000000007912fa976bcde9c2cf728e213e892ad7588e6aaf00000000000000000000000014d5d5b71e048d2d75a39ffc5b407e3a3ab6f314000000000000000000000000f82d88217c249297c6037ba77ce34b3d8a90ab43000000000000000000000000a56b128ea2ea237052b0fa2a96a387c0e43157d8000000000000000000000000d4ef84b638b334699bcf5af4b0410b8ccd71943f'}), + (({'to': '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84', 'data': '0xf2cfa87d'}, '0xd17320'), + {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000001111271e5ec338bae335ab'}), + (({'to': '0x0000000000000000000000000000000000000000', + 'data': '0x19c64b7900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000001111271e5ec338bae335ab'}, + '0xd17320'), + {'jsonrpc': '2.0', 'id': 11, 'result': '0x0000000000000000000000000000000000000000000000000000000000000000'}), + ), +} diff --git a/tests/fixtures/gas_fee_fixtures.py b/tests/fixtures/gas_fee_fixtures.py new file mode 100644 index 00000000..4db5e10b --- /dev/null +++ b/tests/fixtures/gas_fee_fixtures.py @@ -0,0 +1,27 @@ +GAS_FEE_FIXTURES = { + 'eth_getFilterChanges': ( + ('default', {'jsonrpc': '2.0', 'id': 15, 'result': []}), + ), + 'eth_getBlockByNumber': ( + (('latest', False), {'jsonrpc': '2.0', 'id': 11, 'result': {'baseFeePerGas': '0x1816eeb4af', 'difficulty': '0x27aca623255aa9', 'extraData': '0x486976656f6e2065752d68656176792d32', 'gasLimit': '0x1c9c364', 'gasUsed': '0x8454f8', 'hash': '0x2420cd3a3f572ba42a881457c88c5c3f58cf44a46e7f25aea53d3a7313922694', 'logsBloom': '0x5260400700da108048d93200854128614100802800081404698960db80801ec8464604e3940845a34200c3c2800a4971922881803c01a13902474008842a2518012005042016030f1a80920a703402e209a160240845ce0128a451c282e040c0be0401180a3a0608a355581942010aa06441180242406622780550b4460a02004c11890083047425054a21690dcc044450012c7389089a0a0c20674c419008840b790700804034120a000fc08c2394019087886200038c440c8124b090850d11404120a2818840537b410143518037f000006a0b063a2438148c25020023e606b81825ad000202011506060096a080810459c904a1000062108b191212013223', 'miner': '0x1ad91ee08f21be3de0ba2ba6918e714da6b45836', 'mixHash': '0x4889052c97da7a2386244f85d8061a0765e1c0f98a212c2eda929dc406713dbe', 'nonce': '0xf078269bfcafc704', 'number': '0xd1271e', 'parentHash': '0x857a1b6ee3a8f2b837f9ae69f5a0b1b181903f5e23df0ed9d166776333e14ec8', 'receiptsRoot': '0x1760ed19deceff14ce9cdfebd18ff257c3afc22359edb144d663cd6eb6523aba', 'sha3Uncles': '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', 'size': '0xa1cc', 'stateRoot': '0xa9d6469a301598d5de4f43f121c020da2814875c9154fffb72fb7a6edb8a88cd', 'timestamp': '0x61a4733a', 'totalDifficulty': '0x78150c58dfe2dc7fcb1', 'transactions': [], 'transactionsRoot': '0x46fdbd1a3ea670807040dd45f91ebe007c9521395d219150c2d8ac8b77055722', 'uncles': []}}), + ), + 'eth_feeHistory': ( + (('0x1', 'latest', [25]), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0x48639c26c', '0x4cc965382'], 'gasUsedRatio': [0.7429978666666667], 'oldestBlock': '0xec38ea', 'reward': [['0x73a20d00']]}}), + (('0x400', 'latest', []), {'jsonrpc': '2.0', 'id': 12, 'result': {'baseFeePerGas': ['0x1d0ee0340f', '0x1e80eda479', '0x2007facf70', '0x1fb3b8b928', '0x1c72e60775', '0x1be78472de', '0x1abaeb9912', '0x187ecbf92a', '0x1ae433de3b', '0x1cbf6c8178', '0x1a982062ea', '0x180cf420bb', '0x1b0def7476', '0x1d7f25b2b2', '0x1e911fed9c', '0x1dca48b562', '0x1ba2717bb6', '0x1b4549a641', '0x18afd68002', '0x19c4496086', '0x1b9396e657', '0x1d28dd2bec', '0x1a7473795e', '0x1cfd90b8d4', '0x19e14dbde4', '0x1938c26edc', '0x19212a67d5', '0x1683c240bb', '0x1953e4065b', '0x1982ca677b', '0x17c3a5305d', '0x19a5e882e7', '0x18b46b86a9', '0x1733a3a821', '0x1568dcfff6', '0x1612eb0583', '0x18d4c00e61', '0x1bee92a48c', '0x1eb62a6156', '0x1ead4fff40', '0x203c9219db', '0x1c8a275a93', '0x1bfbfe0641', '0x1c56b4eb7e', '0x1a805afe1f', '0x1d95b4c675', '0x1a9de9ae1d', '0x1bb43a2fe4', '0x19f8ff0813', '0x18264f2346', '0x1a7c1eb5f2', '0x1dcb6c5a0b', '0x1ca4cf5114', '0x1dff403962', '0x1c18bfe181', '0x1adcdd560e', '0x19c6e7538d', '0x19acf0d71c', '0x1702489ccf', '0x165a3826e1', '0x1577e341ca', '0x14a672ecb4', '0x173a93feef', '0x162589c853', '0x147bad337d', '0x15fefb0079', '0x167fe3ee07', '0x151880a95a', '0x12ecbc915f', '0x11e17c55b9', '0x141d2e7341', '0x169eca18d6', '0x13caf0d5bc', '0x141a3dce05', '0x144c10cafe', '0x14618e5df8', '0x156993dfea', '0x15475d430e', '0x176b8137a9', '0x147e1110b4', '0x170c0c8bf1', '0x195dd93331', '0x1918b17004', '0x16a601d63e', '0x197aa3e9e3', '0x19d53d43bd', '0x17a286d25e', '0x15f37f14af', '0x18a3506ed9', '0x168411521a', '0x15ab9cab86', '0x13ea3aa5ff', '0x154edab671', '0x1356c248a9', '0x1267b90354', '0x14b49ff9ba', '0x15d38b0ccb', '0x131919ab32', '0x157bc74278', '0x178e84e7b7', '0x1a7def1fbf', '0x1dcd6ba973', '0x1c18a5a851', '0x1b6ab446aa', '0x1a56f8a628', '0x19dfc4e8c8', '0x1d1bbacf53', '0x1b502bb3d0', '0x1879656035', '0x17d79b991d', '0x170bd3596b', '0x15cad65073', '0x1883ae8c1b', '0x1734a699f7', '0x16ead94424', '0x19c7b6f3bd', '0x1939814e5b', '0x176354b516', '0x199d367279', '0x1744a16fb6', '0x16811e55db', '0x1939ae2c6a', '0x1ba61faaa6', '0x1abd92ee14', '0x1993ad620c', '0x1afc143b30', '0x19402a9ab2', '0x17ef500f29', '0x1aeca301ea', '0x1e494795e9', '0x1a903e3a23', '0x1a23a4abfe', '0x17ad1bd184', '0x15fb09f309', '0x1822918d8d', '0x1b25e29cf7', '0x195aee52a9', '0x1662c96e7f', '0x1777cf6644', '0x1604f93ef1', '0x18c4ea10be', '0x19bff19c79', '0x17a5285ad4', '0x163973f2ed', '0x1891db1f22', '0x19548108e6', '0x169024908f', '0x19538fea82', '0x199d235261', '0x1cca718725', '0x20629b66b3', '0x1cdd2ccefa', '0x1bcbe95bfd', '0x1c9c3a9f96', '0x19ffd23496', '0x179b67cbd1', '0x1a8da63ae0', '0x1d7243f0a7', '0x1a248bad17', '0x182b5611a0', '0x172dda125f', '0x14f4e7f233', '0x17931ef1ff', '0x1642709872', '0x14546ab9c9', '0x16578edeae', '0x158ce100da', '0x1380a55585', '0x15f0b97504', '0x16957bf2bf', '0x15d5ceaad5', '0x1556026b70', '0x13c5bffc11', '0x1339d1c452', '0x1564954215', '0x141257854c', '0x11d901eca8', '0x1335aff23d', '0x146ed69c46', '0x12b77d8b17', '0x12b6d76321', '0x1163021cfc', '0x138f36c00f', '0x15954b94ea', '0x1847528aa1', '0x16b28962ec', '0x189c5ab5b7', '0x15ca546a9d', '0x18839363fd', '0x187390f017', '0x15c8c0a1fa', '0x17f4b61d23', '0x1af29013c1', '0x1e508b78f7', '0x1bb1b78b9b', '0x1c3e1d6e3a', '0x1b1c3fac3d', '0x1ceb533163', '0x19cbaa5c33', '0x1d04195b85', '0x1e1f864dc8', '0x1b38cdb010', '0x1a8af5bdf4', '0x1bf770d431', '0x18cc01321a', '0x19f133faf3', '0x1766319608', '0x1624fb5409', '0x1871049637', '0x17ab5b72f7', '0x14b5f00499', '0x121f320406', '0x1462fef3b1', '0x169b5fead3', '0x196e137a95', '0x19124624bd', '0x1b1ec51ec3', '0x1819bf1987', '0x163c5c1dcf', '0x18828db725', '0x15ba6750d5', '0x15203467f3', '0x16b1a81eca', '0x149b37d8e3', '0x13fdb0f37b', '0x162b906510', '0x187de464e8', '0x169e2bbd83', '0x14f21b6f16', '0x178fd97840', '0x18506cefdb', '0x15b1e583fa', '0x14747fca36', '0x154b9b25b8', '0x1730f53e93', '0x15f4efb3a1', '0x16bd0e378a', '0x18adbe67c9', '0x1a8a45f95b', '0x1a5733974e', '0x184ac7ba31', '0x1b530b1ee5', '0x1ada7c4c68', '0x182035f63d', '0x15d37a262e', '0x1466d17f72', '0x14f1a85460', '0x178fc06bb2', '0x1a818a10c4', '0x19077f647e', '0x1af9596f39', '0x1b165a8a5e', '0x17b38f3913', '0x18dd276211', '0x16f07e8c55', '0x19cda8409d', '0x18f6b01316', '0x1704997b76', '0x17b471604f', '0x17e709aa6c', '0x15f180286a', '0x14462f826b', '0x1321c469e6', '0x1585582fee', '0x1835bd4b84', '0x1b3b7f57d0', '0x1a73bece7b', '0x1dc22bb349', '0x1d1ea41009', '0x1a72217030', '0x1c9addfd69', '0x19f954ad85', '0x198a0db22f', '0x17a16cb7ad', '0x1a94dd7cf5', '0x1de6a15965', '0x1a29cd2e39', '0x1ae98c2f6d', '0x1a44505369', '0x1d3d6345aa', '0x20c5579493', '0x1e2b8be3da', '0x1ac30fc3a3', '0x1e1b4ea844', '0x1b9a5dac87', '0x1f0cb3db4a', '0x20ad2e2fee', '0x1d2ead4dc5', '0x1d3355a1f9', '0x1a08dae8c0', '0x1c983daa39', '0x1d926d2f8a', '0x1b0377e7dc', '0x1bedf1e28f', '0x18d6bfe004', '0x1bec55ebf6', '0x1f69c1e7a2', '0x2026b2560a', '0x1e126b9b23', '0x1ef9b3b245', '0x1d3e8c84b8', '0x1a785f985a', '0x1d401fe018', '0x20e6f0c9e3', '0x211a9b1849', '0x1d9389264a', '0x1d2ce8a208', '0x1c003e6ae2', '0x1c1449be56', '0x1b37d8f523', '0x1ae7bcc773', '0x17b7822418', '0x1aadf8bb7b', '0x19b2adf465', '0x1cc77319b9', '0x1cf23a543d', '0x208d4fb06a', '0x1e6af48a07', '0x1dc5e744cf', '0x1a93a22d23', '0x1b9bda3963', '0x1c26ea5cae', '0x1fa9d4aa0a', '0x1fc60cc6b6', '0x1bcd4b2de0', '0x1a48258a25', '0x1be5e1d785', '0x1a2f80a73e', '0x175e92f70c', '0x1a4a364867', '0x1846e77dad', '0x1b3b002246', '0x1ea19dac57', '0x223f40a97d', '0x1e9a9fb973', '0x1dc92dfacf', '0x1a10083b76', '0x1cab8f8629', '0x1c3f1e6c1b', '0x1cb12bf5c9', '0x19e6dfa88d', '0x18bc57fe18', '0x1b7be93b93', '0x19a48f8f82', '0x166ffd9d92', '0x16da751fbb', '0x19b5af9ec1', '0x18e0e0a83e', '0x1b7ebbdac5', '0x1eee4ca296', '0x1fc8ed12e0', '0x1c339b3310', '0x1e29eea2c4', '0x1b13856aa9', '0x1ba33b6262', '0x1c5cb8fbdd', '0x19d4784b75', '0x1b95747ec9', '0x1822c5eef0', '0x151e6d3112', '0x17c1da1628', '0x159dcb0d83', '0x1472a29ff5', '0x15b5686316', '0x13554b44fb', '0x11d518807c', '0x10294f7e22', '0x122e373b75', '0x1473e8274b', '0x1701cfb223', '0x1932f75ae9', '0x16acfb4d28', '0x1982995635', '0x1b507d397c', '0x1b25d280ba', '0x18867cf091', '0x19f919437c', '0x1934bd5491', '0x17aead1b38', '0x152dc0b281', '0x17d3381ae7', '0x15d07529c2', '0x180d97956d', '0x175a88603b', '0x154c406e28', '0x17f517b378', '0x1af3982a3f', '0x1e51990592', '0x1b88100848', '0x183b8d7ca3', '0x1b425c8ce1', '0x1a02e66197', '0x170ccc327c', '0x177a670105', '0x151d3d1da3', '0x152331bf65', '0x17c6c61cc2', '0x1abefcb7c0', '0x19ca28c70a', '0x185de1ac3b', '0x1ababde0e0', '0x19986c791c', '0x1bde32b812', '0x19218766fd', '0x169a059757', '0x1830a5eb5b', '0x15f8e3f4cf', '0x13a1e245fc', '0x1615a3724b', '0x17ee502cfe', '0x15c5ab59d8', '0x172243e29b', '0x14fc6a124a', '0x179bd3fee2', '0x1a0b64f75a', '0x1ce459e832', '0x1b73e67855', '0x19d3125449', '0x1705b56910', '0x19e5aced3f', '0x1d21784509', '0x20c57b1195', '0x1d8415fcf6', '0x1d24afcfd5', '0x1fbf23e9a9', '0x1cade1885e', '0x1918255753', '0x1c3a53dae4', '0x1fc065ccc4', '0x219a07e823', '0x1dccc2a80e', '0x1cb431fefb', '0x1b76128fd5', '0x1dc5704667', '0x1a4e95c696', '0x1aab046672', '0x19b3762192', '0x17697715df', '0x1a564cd77f', '0x1a834d08d2', '0x1b6aaebce3', '0x1a23316ddb', '0x1a17281d1e', '0x19ad17f3f6', '0x1b3b63ab9a', '0x1e8244d4ef', '0x1b419a8aa6', '0x18228fc610', '0x1b2475769c', '0x191f9bf437', '0x15fba875b1', '0x18251b2edd', '0x1806c807b9', '0x19df0ef96b', '0x1a2aafbcab', '0x189665135f', '0x1675cfd87f', '0x19442fc68d', '0x1a6cce3f83', '0x17ef89ce81', '0x1a053dce1c', '0x19144ffef2', '0x1625c04dd0', '0x1751b4c003', '0x19e3ce4956', '0x1becf5178d', '0x191b30f615', '0x172c93a87f', '0x165ee2250f', '0x192a0eba28', '0x1c4f1235b8', '0x192637b8ad', '0x1c4aa41952', '0x1a6b2c3dd5', '0x1db83e0e08', '0x1afe3f0301', '0x1b8928113e', '0x1efa215eb3', '0x22d880eb6e', '0x1f6cd8cf2d', '0x22c3c0dda2', '0x1fe5396a30', '0x1e381d8678', '0x1c2abc71b0', '0x1da682c7a2', '0x215a1295c7', '0x1d2ed0430f', '0x1cfc7eb2e4', '0x1aaa8abd5f', '0x1deba51d48', '0x1bec717e7a', '0x1e65f5e32b', '0x1d8924043e', '0x1e05f10cf2', '0x1f2a18906a', '0x1e5f2a7bff', '0x1e51a5c5e3', '0x1b1ea06a19', '0x1b54115fc4', '0x185ae765e4', '0x1b65f67524', '0x1bae6009ca', '0x1b7fdd5536', '0x1979390767', '0x190dd69ca8', '0x1a5fd52fee', '0x192fd44d77', '0x165d6803f2', '0x1929115101', '0x1907f5037b', '0x1b8fa2734b', '0x1dda789dff', '0x1b28945450', '0x1c896b20b4', '0x1df4008f2d', '0x1fb7fc5e59', '0x1c317a678b', '0x1a2de0e787', '0x19ba9e28f6', '0x1cf1273a1c', '0x208e7d4f87', '0x1ec727e42f', '0x1ddf824f73', '0x1ca832d4e5', '0x1bc70f36d9', '0x18be4c7224', '0x191cead633', '0x1703b33d71', '0x189633fb9b', '0x16741a3047', '0x18ae691940', '0x174f4d1872', '0x15de6ee00d', '0x164d1cf841', '0x16a89b186e', '0x149cc39207', '0x173040c179', '0x1a159685de', '0x1ae7b3d241', '0x17dc962b36', '0x16cf7aebc6', '0x177516cbf0', '0x150aefc5e3', '0x150ec1defe', '0x17b0630aa5', '0x17fbef057d', '0x1afb49d599', '0x1e59dde26d', '0x1b57d9d66c', '0x1c0014a897', '0x1b38951656', '0x180c564afa', '0x1a604edeef', '0x19b36ec857', '0x1aa0cc5a10', '0x1adb32ba73', '0x17a1a7ab8a', '0x1a95b7d580', '0x1a99723792', '0x1786660006', '0x16dda0bc3b', '0x1767d88d9d', '0x1530107013', '0x174043fea7', '0x17c93df149', '0x1ac1ca789b', '0x199f5983a7', '0x17a1aef98c', '0x15b1554b46', '0x16370d3b7e', '0x1785c3700e', '0x150072a15d', '0x14ae97bb00', '0x16ea2a6ab3', '0x19c6f5057b', '0x180d2be0ca', '0x15d805aa7e', '0x15bb778c4a', '0x1356cfd91e', '0x1584a76845', '0x15e07a9730', '0x1583da6eac', '0x14ad468a97', '0x13293d7315', '0x1506e61e47', '0x17a73081ea', '0x1664f35fbb', '0x15d720e07c', '0x138caffc85', '0x123316374a', '0x1479588bce', '0x156c3f2065', '0x13d9b296e1', '0x146283cd8a', '0x15f5a4a889', '0x18088c5348', '0x16b4eef257', '0x1667505057', '0x15dbb0e85b', '0x1602304e08', '0x14ce332ff7', '0x1767a71aae', '0x16522b1053', '0x191c3ead04', '0x1be0d1f531', '0x18b0f63954', '0x16232ef086', '0x145b94a747', '0x16e7042642', '0x1502fed120', '0x13d2922448', '0x157feb2bb3', '0x13120f4fbc', '0x1142fc9e9f', '0xf9153cb3f', '0x11837291c1', '0x13b36b4392', '0x15beca0777', '0x17fd3ecbde', '0x172363c1e7', '0x18b75b56c7', '0x15a06febef', '0x18283f1c14', '0x15660975d4', '0x12c91bd78c', '0x15220892c7', '0x140debf21d', '0x168f2aab46', '0x157a7e4080', '0x15ebb2e9b8', '0x164ca9dcf5', '0x1746079313', '0x16c4c56747', '0x199cef3ac0', '0x172b672aa6', '0x17b4053c9a', '0x1aaa58445b', '0x1b08a395a2', '0x1865da0e95', '0x19b0e6fcda', '0x18653c3241', '0x1b70ce51b4', '0x1ea4ecd718', '0x1be82c67b3', '0x194d46ef69', '0x186ae41b5f', '0x1660b0687d', '0x161a1bae5e', '0x155c2cdcb6', '0x1807ae412b', '0x1b07ab68d9', '0x1c03ebb9d3', '0x1ded840e90', '0x1af70f3376', '0x18f36f0abf', '0x1c119e34b2', '0x1aab2b7728', '0x1aaafeffe7', '0x199e88872d', '0x1cd22fed9e', '0x1dfcdfacbc', '0x1ab5608570', '0x17db2258f3', '0x1a00779c4b', '0x176ce115db', '0x19c67c8e63', '0x1cff4be2cd', '0x2095eb7ef0', '0x1cb5303a0f', '0x1a5bad76d9', '0x1da6b4914f', '0x19f1ddff26', '0x188ee1039c', '0x194d847963', '0x166767fd73', '0x183b5c3dc6', '0x1691d97669', '0x18b9bedf97', '0x17aca6d2f6', '0x18782b434d', '0x1595964902', '0x171387ad3e', '0x16eb06cf95', '0x17966eb884', '0x182c30bdb3', '0x16a48d6072', '0x1467050743', '0x1674360261', '0x163c6d9f1c', '0x1760994deb', '0x1612b2daa9', '0x13e4e36ccc', '0x13dbbebb88', '0x15e471d9f7', '0x18814f367d', '0x17c7a808af', '0x16a3e77e8c', '0x14b03ee8fe', '0x145ecee5f9', '0x139aa7cbd0', '0x1557dfa3bb', '0x13a6568372', '0x128c7e4693', '0x14dd4dd754', '0x12967a5a16', '0x1377f09b34', '0x1585cd7949', '0x1835916e3c', '0x166934610b', '0x18acb66a8f', '0x1618275756', '0x164482db04', '0x13eab6f8b5', '0x13bf28104d', '0x1147430e44', '0x136ff644c8', '0x15dd3be88f', '0x17ef3a4211', '0x14f152f9cf', '0x1253289a96', '0x149d217967', '0x1698eae0c8', '0x18d4a1f0c8', '0x197269a8fd', '0x16fe913855', '0x19c079ac7b', '0x174487efff', '0x16c07e2eb4', '0x149c2de143', '0x16c4c83202', '0x13ec2f2bc2', '0x142c9720ee', '0x16b1ff32f9', '0x158dcca50f', '0x16cf141482', '0x1634010903', '0x136d80e7e3', '0x1354565295', '0x155b0d8476', '0x1805e92639', '0x15b2e01ca0', '0x16e7014957', '0x145e9e7ad4', '0x1464cab6fd', '0x13e2dbcec1', '0x12325b1441', '0x12ade8e4af', '0x15014927ed', '0x17441b581e', '0x1599b8586f', '0x184c803a67', '0x17a848a9b8', '0x1576e3bfbe', '0x131394704a', '0x15755d028e', '0x16757c14be', '0x15f1ac7edf', '0x14447e4d05', '0x141a35c20a', '0x13e84470d2', '0x11bad8910b', '0x1393d25f05', '0x156abaf1da', '0x141e44af53', '0x14b22f7bde', '0x174853431c', '0x16d8073e51', '0x19b21677c0', '0x1a0beb9b71', '0x16f8184973', '0x1717e15f7d', '0x145864b3ca', '0x140f2228bc', '0x13c19e8833', '0x16394da85f', '0x18a167f841', '0x18e4f722f3', '0x15e8e06e17', '0x132cc0647a', '0x159223ea79', '0x158642be96', '0x18313965a0', '0x17e79a81e4', '0x1ae41a5914', '0x19c40ae989', '0x1cfc591b14', '0x1d4b259417', '0x19f5461170', '0x17e23c1d1f', '0x1ade77e73d', '0x188bd0750f', '0x188a16e2f7', '0x17fcd4e6b9', '0x1afbc4e00a', '0x1e5a7e59e7', '0x1b80d19aa2', '0x1a49a746da', '0x188fdb6abf', '0x16dfae4b72', '0x1950b13d0f', '0x16d5fa2f05', '0x155c630319', '0x140127c665', '0x160d7f105f', '0x1420354fa9', '0x16a436c110', '0x1482e14792', '0x1243c14dd8', '0x148c26723d', '0x13ef055bcb', '0x15c7900486', '0x1795d8dd1f', '0x18951f7108', '0x1a35542b59', '0x1d7bd9f0e9', '0x1ba6cf0e7b', '0x1920d4e0c8', '0x1674529d97', '0x1942287223', '0x1c69a616b5', '0x1dff5e76dc', '0x1a9f43f106', '0x19308be76a', '0x1667a58700', '0x17277d8769', '0x19a4477fb3', '0x1c3779872a', '0x19b87f23a9', '0x1821c7c133', '0x1754d9d206', '0x16cbedb7fa', '0x188ebfcd00', '0x170ce97105', '0x16f7de3f38', '0x1504a30b68', '0x17a4e55a44', '0x16a0be1ea5', '0x191e71dcd5', '0x1664753241', '0x1584300559', '0x14fb2b7a94', '0x14720125e1', '0x12916dd376', '0x14e3441dee', '0x177f4079f5', '0x18087edc24', '0x1a73c10d1a', '0x1a3a10fc48', '0x18029c3e7c', '0x1682b0a80d', '0x18717b1d25', '0x193581a5b3', '0x17fbdb2af7', '0x15bbc10cde', '0x14583f2ca2', '0x11cd37470e', '0x1406a2cebe', '0x167d02c069', '0x148e289f7e', '0x171f6379d3', '0x18aed9186e', '0x1bc44d9a80', '0x18a7b155d0', '0x1b2e53723a', '0x1957f3582a', '0x179dc6c561', '0x1703ad1749', '0x17eb8ade42', '0x1527eb4242', '0x14c2c4e763', '0x14b6cdc201', '0x174cd6886f', '0x1a35672fb7', '0x180dd4d774', '0x19c674a0ae', '0x17bbea800f', '0x1776838e42', '0x15af8d029c', '0x174fe8497a', '0x18146e976c', '0x18631bad59', '0x15e0dfc1b6', '0x189c526230', '0x186447a795', '0x166d75f61a', '0x1437f13aeb', '0x162355035c', '0x16c8d9980d', '0x15afb43b66', '0x13f14e602a', '0x12de6eda8f', '0x1538f4c3f5', '0x15f5943532', '0x13cebe6e42', '0x12035d5e8a', '0x13fa03ee2b', '0x11d6553456', '0xfc864f56a', '0x11c0dc8376', '0x13f83e00b5', '0x167712502a', '0x14b09a4ca2', '0x1608599ddd', '0x14385a9e21', '0x12151749b3', '0x1457a69b76', '0x13c00173b0', '0x117098b69b', '0x1298bf2a5e', '0x14eb8c6eb7', '0x1414af6c11', '0x120bc5e59f', '0x10a9d7fdd8', '0x12be5ec813', '0x121685dd05', '0x10c5104d21', '0xfc2f7fa16', '0x11bb0b1779', '0x11de6d06db', '0x10e0ba9282', '0x12fc26da0d', '0x141294ccc2', '0x11c157a925', '0x13c01aa71c', '0x120a36b6d2', '0x108ff721c2', '0x1084411de8', '0x1294b4a2d5', '0x126d3885c2', '0x14ba6510db', '0x16564356f7', '0x15cc6e138a', '0x13580db6f2', '0x15c2459180', '0x1309fcdf50', '0x156ab303c3', '0x1815b6cff2', '0x1a9227209c', '0x17cabd3e81', '0x1552b44406', '0x17fcf5dbb5', '0x190a8fd93b', '0x165437f50e', '0x17246ca99f', '0x145fd11a2f', '0x1341e59f25', '0x1496e2afe4', '0x1327655a9b', '0x11b1130895', '0x13cc60cb9d', '0x138e23b3b4', '0x1479601b7e', '0x12f3e2e0b9', '0x10b9ecdeed', '0x111449ba03', '0x108854e182', '0x1298cbb6ba', '0x12cce7cdc0', '0x11faa1147b', '0x12ae32a36a', '0x116841bac2', '0xfba909609', '0xf6a934786', '0x11574ae9cc', '0xfa0870ba1', '0x11942792e2', '0x120e0df6bd', '0x14160fa69a', '0x14e81c1683', '0x1410f850f6', '0x12cdf27819', '0x13c6855c1e', '0x12c47a41a4', '0x138a6173ba', '0x15fb1d43e0', '0x1812d2a907', '0x16235568f9', '0x15018caf4e', '0x13146f09e9', '0x1328747eb3', '0x12aedac1f6', '0x146130b678', '0x13feb3165f', '0x12ba6a7e9e', '0x11bf4e61c8', '0x13ebc2d76d', '0x138b7c3c13', '0x119847b7f7', '0x1161b60877', '0x128e2dcf89', '0x1148008f3f', '0x10da52cc48', '0x12f59acaa1', '0x1096e7714d', '0x10842aa227', '0xf8330d028', '0x1173060996', '0x11e74cb43a', '0x1033a0efdc', '0x110279fb7c', '0x1322b95c62', '0x1586615e53', '0x1443a4e543', '0x1456819ef2', '0x156dbcbf7e', '0x181b370d53', '0x196024f540', '0x169dec0d18', '0x1662c774b6', '0x14b3c886a0', '0x14ba020f91', '0x1520d6f131', '0x140bdb066e', '0x131fb30925', '0x1583347c4c', '0x163a501874', '0x15798e9dd0', '0x16333d44d0', '0x140a6d5f0d', '0x12224cb58f', '0x1465f18094', '0x130c0b4d25', '0x156ce04eb8', '0x1816eeb4af', '0x16d1c17fdf'], 'gasUsedRatio': [0.69898302207346, 0.7003098897358982, 0.45889834525131734, 0.08952607414796689, 0.4234474172062155, 0.33168118605119756, 0.16556761279225637, 0.8912777667487565, 0.7761227510594937, 0.20035841676218702, 0.11741434503849763, 0.9995858623044163, 0.861084419024391, 0.6451315470030967, 0.3983577975587281, 0.21055851794423977, 0.44732837794389463, 0.12101558827554956, 0.6749720214707206, 0.7809476338444791, 0.7296306089950793, 0.12897494536673765, 0.8833850952077835, 0.07083897450161264, 0.3982421305312438, 0.485383452243286, 0.08377764017821616, 0.9997654806797761, 0.5289331778554855, 0.2261309332031, 0.8170881646635965, 0.35288358300833966, 0.256638078154804, 0.19104116826023135, 0.6241079990023047, 0.9996229730039787, 0.9995147372534449, 0.8980619111035039, 0.49549586732188766, 0.7033578666666667, 0.0412741, 0.4221689146117851, 0.5506502139401996, 0.2406641998777672, 0.965394668736715, 0.098720451465699, 0.6633801241310142, 0.2500186766233506, 0.21924358517605133, 0.8867880258492049, 0.9998750994171306, 0.3454978, 0.6889813333333333, 0.24658916666666666, 0.3243314666666667, 0.3383211, 0.48426233333333335, 0.08456516666666666, 0.3858701355206693, 0.34178752536868806, 0.34756690172754195, 0.9994877656934215, 0.313647519127858, 0.19954403333333334, 0.7954445182387267, 0.591571885467093, 0.2504204025821639, 0.08835980002277782, 0.27934741749947145, 0.9995718634497232, 0.9984155264831568, 0, 0.5626024003796789, 0.5387266320151705, 0.5165436895092016, 0.7024101, 0.4750339373064464, 0.9024995726658152, 0, 0.998645821911721, 0.9025725084957371, 0.4574025648397644, 0.10982669278755826, 0.9999187413017624, 0.5555597263028814, 0.15964475232679826, 0.2150461351817213, 0.9895938608035424, 0.15548154671085576, 0.34978963021843557, 0.17598101263389562, 0.7798032109378205, 0.13035095046525813, 0.3068690229621553, 0.9999463631923252, 0.716516554103138, 0, 0.9996240741361705, 0.8860088666666667, 0.9984080788223033, 0.9998494331928043, 0.2710057, 0.4032662561658126, 0.34285822000100535, 0.42928806753757925, 0.9999936, 0.25331417204433204, 0.08423514067628989, 0.3967099961750647, 0.3664513, 0.2823743, 0.9996343095699617, 0.28645760069376064, 0.45030706666666664, 0.9996658333333334, 0.4138086508141867, 0.20875797615331634, 0.8807250760983297, 0.13363574758213775, 0.36870958132982806, 0.9836296062897691, 0.8843134360221879, 0.3685811188822176, 0.32593325905779313, 0.7201707238621083, 0.2429603202947664, 0.2915563, 0.9996147571436842, 0.9994563994926395, 0.008318233333333333, 0.4361200333333333, 0.12309133333333333, 0.21353768045503566, 0.8920567623215369, 0.9993497333333333, 0.23584929316522416, 0.03156543333333333, 0.6933579359755199, 0.25309703333333333, 0.9995167280849749, 0.658355381131689, 0.17306385838397978, 0.25965951503285917, 0.9221164898418721, 0.6237853885255902, 0.06304370536940315, 0.9898904436380964, 0.5453921916664213, 0.9961344056830755, 0.9993802999365691, 0.06508275027198822, 0.352073622753795, 0.6170994885191114, 0.13496068121470806, 0.1319518460816841, 0.9992177589152299, 0.9358071240638939, 0.051239051914533214, 0.19804648694448976, 0.33612698246189326, 0.1164745435078481, 0.9997029144512735, 0.27685215546456005, 0.15322231968746075, 0.895926121344864, 0.3582553545466924, 0.11990604015683175, 0.9999982983773327, 0.6173351, 0.36738568121562626, 0.4085493615977162, 0.20687746666666668, 0.3894212031381978, 0.9508606208032461, 0.2529546, 0.05679526666666666, 0.8052564666666666, 0.7547140666666666, 0.1640325, 0.49945816666666665, 0.21626436666666668, 0.9998468162505979, 0.9138679500723518, 0.9995405, 0.23949169697542985, 0.8371927226741749, 0.04159747527764591, 0.9999675699975386, 0.48979562567372237, 0.06366708226580751, 0.8987689046552098, 0.9995189373375933, 0.9998037883247741, 0.1542367286583982, 0.5792121828097432, 0.3396339403571404, 0.7668931472239291, 0.06794574859062406, 0.9993793748385127, 0.6526234527442525, 0.1147474369407218, 0.4002161204933931, 0.7145594801554631, 0.046648348901296446, 0.6847499442134686, 0.10789673333333333, 0.285508132024255, 0.9149148414314636, 0.37363902976714797, 0, 0, 0.999914702112826, 0.9356230511989408, 0.9995020398165756, 0.44359384442337546, 0.8268766666666667, 0.054631066666666665, 0.19049836666666667, 0.9091053413658438, 0.04600754294037341, 0.3891135, 0.7969206930567699, 0.132034323232035, 0.38055323333333335, 0.9360347379215804, 0.9188680583744843, 0.19395243055823694, 0.20428250433427417, 0.9996112959985308, 0.6277061333333334, 0.06909823333333333, 0.27140563333333334, 0.6643134687689195, 0.856116665708888, 0.2870817666666667, 0.642409846548488, 0.8413045852176129, 0.8017087, 0.469932422343752, 0.18891848147039564, 0.9993025849667188, 0.43106094305715537, 0.09370064650255966, 0.11870884029867552, 0.23894564873685126, 0.6063327707311954, 0.9999156333333333, 0.9998797492418013, 0.277148625338717, 0.8107932333333333, 0.5168010562314099, 0, 0.6961872, 0.19040212767767725, 0.9993877327618839, 0.36982706666666665, 0.18824121754893652, 0.6193655428306416, 0.5333494980226672, 0.17214639374481477, 0.19572586666666666, 0.27463746666666666, 0.9994742866409049, 0.9998017129304211, 0.9993807877722134, 0.38538926109677674, 0.9999746845191794, 0.41413695433298525, 0.13270651298129307, 0.8265736005982427, 0.1320914364441328, 0.43305956560175785, 0.20105546950992959, 0.99951230114185, 0.9995044333333334, 0, 0.6145128666666667, 0.40406693803165455, 0.9527296225476477, 0.9830501, 0.18255166169764775, 0.04814287826668638, 0.99992, 0.16735913333333333, 0.999457063510815, 0.7095827859300264, 0.07227296666666666, 0.5024937518153143, 0.06631806189685777, 0.8933383119774038, 0.6367089592641094, 0.15393858103497204, 0.6356243320244873, 0.05736981479889826, 0.9966926691231953, 0.999932736967846, 0.5939790517570889, 0.24132138250040702, 0.6201709405017403, 0.27645916049233293, 0.12055922365289289, 0.9201368482585489, 0.9993592538570556, 0.5245354797366384, 0.07375239807057446, 0.4457827200878277, 0.3389778666666667, 0.5111850054911955, 0.3773334801087376, 0.45401158118689083, 0.025981316031167125, 0.9996868666666666, 0.35282977160530593, 0.9795917476189644, 0.5232255333333333, 0.9982753333333333, 0.2377484, 0.41521622531068253, 0.07056926586464814, 0.6553399, 0.5787017022122102, 0.9989181548327772, 0.5139253600021904, 0, 0.28129494285750894, 0.7459729467942687, 0.25447387894904877, 0.06981982824448896, 0.9998770762685758, 0.19373458752864323, 0.9866341803947543, 0.999564059404813, 0.9721662911085345, 0.07449444553451033, 0.3930673292013003, 0, 0.900194973725176, 0.4409001115067707, 0.5630900333333333, 0.11101083125661125, 0.31991516666666664, 0.9444277666666666, 0.2320317, 0, 0.5741413666666667, 0.9999462, 0.37066628896450715, 0.9207059926589265, 0.9998430198113061, 0.610441226504997, 0.04905829863938878, 0.7783120624930426, 0.09056308670361732, 0.5829317399250461, 0.6048675651874174, 0.14287152296630107, 0.7715990635336524, 0, 0, 0.999720339754896, 0.1395448348933404, 0.283759231857166, 0.7466437186230653, 0.062304033333333335, 0.18949243333333332, 0.12516869389625637, 0.9997499997666665, 0.9999262, 0.9995538977144515, 0.8811021367777994, 0.09944940848181069, 0.9999962593610742, 0.7829082882282763, 0.47559272040323886, 0.11361070583575164, 0.7361145543277239, 0.38187324407391, 0.25820293333333333, 0.07713494439346645, 0.9998136, 0.16240826666666666, 0.9105210905115512, 0.383682191436712, 0.14788614885142568, 0.9994933772324015, 0.9999121093580232, 0.9997414614996729, 0.1322741071088953, 0.020713711354979437, 0.9995904, 0.31688446666666664, 0.04460809313628091, 0.574298236011687, 0.09725582775457492, 0.5044072748935798, 0.9993940071167629, 0.9995837321677834, 0.3569719, 0.2792978009693132, 0.8878625620050579, 0.3302914120414594, 0.8551506289832415, 0.10714900591217133, 0.09741716666666667, 0.7811094, 0.13326986197977675, 0.07403147156375585, 0.999617259216976, 0.8344215854010123, 0.1391670944185124, 0.7501732921576612, 0.12862126666666668, 0.9998972333333334, 0.9126962145201456, 0.9373263415045854, 0.30073907564909924, 0.2627577659064219, 0.06596267121084602, 0.999493176350149, 0.999447825885745, 0.999907318814461, 0.10264770988770637, 0.44949812506621284, 0.8573148085094803, 0.11351261213580734, 0, 0.9994790955747237, 0.9993242222449995, 0.7330757920488276, 0.04742291656157002, 0.3528908559113969, 0.3268294312122707, 0.8364779333333333, 0.03454796942547731, 0.5548999683983113, 0.35495525693180896, 0.14374209977893826, 0.9997676059512496, 0.5266975670460079, 0.6363614907433214, 0.31336126697368755, 0.4928046385032767, 0.4364811114775588, 0.7423794926383731, 0.9813270333333334, 0.07355363333333333, 0.041938979919441996, 0.9984313318169541, 0.2024666, 0, 0.8933772333333333, 0.4803758, 0.8071330654384006, 0.545675561741557, 0.2585845240403581, 0.15392515428487374, 0.9997552887455868, 0.683432552925334, 0.12318659917341282, 0.8483964308364457, 0.3553249, 0.032383322314239855, 0.7116176584437929, 0.940959537147515, 0.8145243262900967, 0.09615586089561673, 0.1921738, 0.3613125884092483, 0.9995206662192885, 0.9998487187993784, 0.053555660872350364, 0.9997801515669598, 0.23519703305826034, 0.9998065883185072, 0.13303153333333334, 0.5804083312645202, 0.9999030893601599, 0.9995495394392924, 0.10735101014385572, 0.9250703180340377, 0.1698654113926009, 0.2897870536649833, 0.2283498420077277, 0.7106718333333333, 0.9993401666666667, 0, 0.4730585666666667, 0.1798310717081897, 0.9881552222782075, 0.2330416, 0.8544923451083316, 0.38649656706534935, 0.5660222678994627, 0.6520460722208705, 0.39825642595393196, 0.4930453426215133, 0.07791387378868354, 0.5307902013624386, 0.06480469687116604, 0.9998048324030344, 0.5412961558745545, 0.47374646702152867, 0.20531148361170976, 0.43413232754885034, 0.7107907181351952, 0.3198986946053284, 0.05183491048856097, 0.9999899, 0.4794378289600205, 0.9042957408192162, 0.8326910333333334, 0.13891691903810738, 0.7029974979825618, 0.6985286268890359, 0.7357764496793244, 0.05541416127630373, 0.21424943038817848, 0.4312069033176503, 0.9995191410040597, 0.999563809174547, 0.2814701480959311, 0.38240019316945706, 0.33717026666666666, 0.3772448, 0.06306886666666667, 0.5597500626027982, 0.16574952078119962, 0.7732677434436247, 0.15295001648052034, 0.8968671186917315, 0.27772295758394616, 0.2527404425459986, 0.5790793100300446, 0.5641028818094909, 0.1387674559470795, 0.9999192442841368, 0.9995306190650071, 0.6258624596617641, 0.04753223378923298, 0.3237847993095219, 0.6134408438553671, 0.08824761101625218, 0.5028370080187208, 0.9998404, 0.5498298, 0.9999107666666667, 0.9995177666666667, 0.10358866666666666, 0.5961333241910726, 0.3886740627624586, 0.03376727192382074, 0.887224415951019, 0.39759036908377826, 0.6443075588714168, 0.5342682333333333, 0.019697801569899673, 0.9999049665779688, 0.5021911333333333, 0.03767298767246216, 0.3879047492642137, 0.5944494878927655, 0.12096374622850915, 0.8895244108879558, 0.5920498769744447, 0.9996017202003831, 0.3303941, 0.18919713333333332, 0.17181733333333332, 0.5963158357469402, 0.7354202197255384, 0.0713444, 0.4391009821090295, 0.9318164030286429, 0.9996731521951568, 0.23220876666666668, 0.13285136666666666, 0.47957436666666664, 0.0595156170000005, 0.9507075111088519, 0.5666768395206049, 0.433844486734137, 0.3441660013464419, 0.20677096922048682, 0.8895090329293243, 0.9995750806563576, 0.28713214254446373, 0.4010476236538671, 0.08044892719760526, 0.22377842219195343, 0.999891150797165, 0.6853727498494548, 0.2063961465964054, 0.6076941216760092, 0.8089985199446773, 0.877757811681771, 0.2792038339600541, 0.44658828788594956, 0.4026224500288941, 0.5275194754324241, 0.28134296154321303, 0.9997579977336232, 0.3147525830891319, 0.9998639049341699, 0.9409137107307417, 0.04273285802851208, 0.0862791302252187, 0.1784274233651436, 0.9999907154038498, 0.16978032255251072, 0.2736198, 0.8384308, 0.048061033333333336, 0.1205921, 0.10745799940308377, 0.9999541332905244, 0.9995900332831967, 0.9150915386739235, 0.9127737578446752, 0.3581032812926303, 0.7727945568026288, 0, 0.9680333297398106, 0.04322029981038915, 0.011556273118935841, 0.9998220851836903, 0.2958520290580084, 0.9996141779709649, 0.30837019279580746, 0.5823539663081629, 0.5691160552148672, 0.6747281541010841, 0.41322063814776006, 0.9997028496934607, 0.11840003333333333, 0.5921316333333333, 0.9998824852468435, 0.5552531182362437, 0.1099856, 0.7120130192866666, 0.29828366666666667, 0.9993059666666667, 0.9669847, 0.1426980780065067, 0.12660684500190003, 0.3601967803462291, 0.16583838789951402, 0.4507175303889836, 0.3657269304220447, 0.999987954869666, 0.9993684653708512, 0.6458169040321496, 0.7730621580436562, 0.10401754254842085, 0.201219065589452, 0.9998465492653433, 0.3004635342048352, 0.49989823326949945, 0.34270516897516085, 0.9999007022678621, 0.6619294827335946, 0.06258407940669695, 0.07279356297457969, 0.8597976029942153, 0.10364080705694736, 0.9012802250851747, 0.9999993988408249, 0.9949949042075941, 0.02397935677585349, 0.17261103694776958, 0.9997439069993901, 0, 0.2862117962446751, 0.6212929449532488, 0.04173106052433705, 0.8263615861279451, 0.2256255753229008, 0.8820772, 0.3299496, 0.6343204333333333, 0.02837674322309068, 0.7764903943491291, 0.47257506558281476, 0.61686046739032, 0.5992031367951396, 0.24684803359512217, 0.10422500421145808, 0.9022127645547949, 0.4611825055127474, 0.7053047254150361, 0.276827015575386, 0.10513889712236522, 0.4928187470777644, 0.909697685045567, 0.9773815635592927, 0.38162352587003345, 0.30829922747665506, 0.1551644, 0.4384941333333333, 0.3495417274969007, 0.8548505311938291, 0.18261663333333333, 0.2758841, 0.9993675, 0.06353270635442176, 0.6895244102227829, 0.9220458333333333, 0.999303119496188, 0.20287475601643895, 0.9040350339767099, 0.08170717411103885, 0.5313693584469712, 0.07772458688632951, 0.4658280676208901, 0, 0.9998121825554864, 0.9994185972674071, 0.8787538999933401, 0, 0, 0.9996395642998056, 0.8848960785049089, 0.8953142256194391, 0.5992853500940042, 0.11448836933486037, 0.9796738, 0.1141393, 0.4113321992258774, 0.12344280191218605, 0.9189416099913673, 0, 0.5505127328996013, 0.999870416800021, 0.2988312321296255, 0.7329037267728994, 0.39376789791749217, 0, 0.47975965196681225, 0.9193049779372654, 0.9996168588256067, 0.11297954799447452, 0.7218804666666667, 0.057642566666666666, 0.5047349737018199, 0.40044940708611326, 0.16017296666666667, 0.6060923158130581, 0.9980236420174609, 0.9305674135774604, 0.21364736196491949, 0.9996859004746926, 0.39440266962135734, 0.1292154, 0.054997571795524995, 0.9994561383457935, 0.6864951261025944, 0.4082972424314273, 0.194407, 0.4674021817695021, 0.4611810124749787, 0.06248654518169693, 0.9168246891787891, 0.8758381492398212, 0.2574478865035613, 0.6148811479296156, 0.9998992329470596, 0.42463703333333336, 0.9993542666666667, 0.5546253249631599, 0.02739359223401942, 0.5216224178052434, 0.024018111500474802, 0.44373700416030365, 0.4396205225263149, 0.9995900652038563, 0.9331656789190522, 0.5428579636617776, 0.020418736325755, 0.0007020573556789051, 0.9998328061684437, 0.4913949481180415, 0.9957757719792875, 0.45245083333333336, 0.9997051666666666, 0.3326229, 0.9998787517322668, 0.5424770845260722, 0.04454920742984527, 0.18035093333333332, 0.9999700040422806, 0.1541938967660805, 0.4989019970385395, 0.41005681855944026, 0.9995658192986165, 0.9995676666666666, 0.1243869, 0.3232220596746056, 0.23740322157634014, 0.22507246014363255, 0.9269436611929562, 0.10824243773441268, 0.24164078464888983, 0.24600816666666667, 0.9095489666666666, 0.1504908876851579, 0.9999841666518888, 0.123662, 0.06188303333333333, 0.9999364045657251, 0.3805134884792559, 0.8704014593997993, 0.831650519080969, 0.6691170084438278, 0.764546540730314, 0.999914382821764, 0.2514299119538816, 0.13497968275034408, 0.07436544951761273, 0.9995093767876377, 0.9995181333333333, 0.7231178245556786, 0.049909059144053136, 0.28476618278479937, 0.05779187647123196, 0.6337905, 0.9297190626686375, 0.901686368226032, 0.14616581037978085, 0.2529248666666667, 0.36731193333333334, 0.4083035582420433, 0.8089966486967604, 0.2545075666666667, 0.4857352538086775, 0.16037928302066415, 0.9997616336794795, 0.3280801405144247, 0.9403455556487171, 0.06582351475960595, 0.34350850933347393, 0.40049884187897106, 0.3978506664132627, 0.1327282610238525, 0.9997125512790668, 0.9996839648758009, 0.5912638, 0.902606395144859, 0.4659244823177831, 0.1619300486089288, 0.25015805868861885, 0.843444359294467, 0.6253063277208222, 0.30559385510189163, 0.12468044195198667, 0.24441190513766997, 0, 0.9997963757695122, 0.9918428266727288, 0.15617429848887276, 0.9995895331145181, 0.7699329136114419, 0.9997461900339271, 0.05172962624634899, 0.9098001771136245, 0.22960427534867864, 0.22738749443537296, 0.3980443063668422, 0.6574195727516758, 0.037768551790345266, 0.42529443333333333, 0.4909945771287671, 0.9993843333333333, 0.9993027475337, 0.17116498266270982, 0.7862203491753678, 0.18323523333333333, 0.4543100003820397, 0.1970202172188694, 0.7999929666666666, 0.6317209421666924, 0.5510516562364173, 0.08851645521776019, 0.9995275439442413, 0.4644196369868158, 0.17790097664946639, 0.10601073333333333, 0.8797490082398796, 0.6168224423676129, 0.30719823333333335, 0.17837054550435166, 0.2846372976474944, 0.9989391964332069, 0.638873047192123, 0.10805668795192205, 0.13762386118840209, 0.9360103, 0.07162230584832756, 0.03929029727964301, 0.9994235365261698, 0.9993602505479953, 0.9998427461375792, 0.18390669386585576, 0.7595983252798348, 0.17094518292502844, 0.07710541977634008, 0.9999338706598279, 0.38352126997151403, 0.032113549713900034, 0.7653321091976539, 0.999755031708377, 0.3395209610408313, 0.09467488303994834, 0.19355263536337325, 0.9993398943891023, 0.3600797118495051, 0.2084914667695032, 0.2595237, 0.9997061203068537, 0.531180613474593, 0.2781605, 0.9993814292990438, 0.729152913876053, 0.038208079183529954, 0.9494813723652284, 0.15357486666666667, 0.17238556666666666, 0.4889518, 0.9999238, 0.4667965, 0.9995941666666667, 0.8104693666666667, 0.4035839666666667, 0.04958566666666667, 0.9993630446797965, 0, 0.9995593102479925, 0.9983055243133301, 0.9128888705537288, 0.08165385131111974, 0.08492061342415824, 0.9999400593335708, 0.675608682168117, 0.06675041036628195, 0.6456948345942691, 0.021568609442382595, 0.280728613079995, 0.7766699098152647, 0.22111737765434872, 0.19464300194629175, 0.9763037023806049, 0.45088080339446535, 0.6879579518471318, 0.20275803146153185, 0.0301118479915781, 0.5844131666666667, 0.37196046666666666, 0.9994544333333333, 0.5437823666666667, 0.3252396368279708, 0.6560574, 0.2273713281018915, 0.11430232576003864, 0.4205382419213565, 0.9993871883485352, 0.10465312898508, 0.9995611815427191, 0.6083517786396256, 0.9500220276928337, 0.6633963880352134, 0.3392112571471152, 0.24847207444616867, 0.7065446552684569, 0.29611471159071295, 0.6647655591160393, 0.9995490633864184, 0.8808051539064139, 0.1784011045853303, 0.29547059277985455, 0.1332040782480012, 0.5163959986444528, 0.4008244261727984, 0.8632439666666667, 0.42448752126881434, 0.2465891, 0.2904981, 0.9899118489204708, 0.4244860250199072, 0.10091407347635402, 0.4515402245930934, 0.7701010262065258, 0.22533517929418065, 0.400833, 0.9999914666666667, 0, 0.4823518162354126, 0.2568914399362176, 0.9994299341132884, 0.6041194782962301, 0.11977527045175553, 0.6994853699283283, 0.9999430234692877, 0.999441300557545, 0.2657248942752059, 0.5145439493511206, 0.7145246333333334, 0.9998253961660228, 0.7106096240267418, 0.06514372062235475, 0.45914074720096915, 0.1991712152429386, 0.5046981134543234, 0.5775208339421467, 0.2951619419122867, 0.3159291749004754, 0.9996268100961532, 0.6329951013071274, 0.364502510200756, 0.6351016333333334, 0.1109176, 0.11942538555566178, 0.999445332815644, 0.23504176666666668, 0.9994475333333334, 0.9974086361999159, 0.28908373647815405], 'oldestBlock': '0xd1231f'}}), + (('0x400', '0xd1231d', []), {'jsonrpc': '2.0', 'id': 13, 'result': {'baseFeePerGas': ['0x22d0b84596', '0x2049c3d3e5', '0x1f997c9826', '0x1dfacbc934', '0x1dbe40e7e2', '0x1ee609699c', '0x1bd2f0db58', '0x1cc19025dc', '0x1c2c116d4f', '0x19234c3580', '0x1c46e2c0db', '0x1f5648da2d', '0x1e1e9ec321', '0x21e1e7bbf9', '0x261dd52f24', '0x23be1055c3', '0x207627cb1d', '0x2484280aae', '0x279ef0e1ad', '0x256d0dc5d2', '0x2426046bb1', '0x1fa143de3b', '0x2394a779fa', '0x2805ae7f0f', '0x24894794ba', '0x23fa96f5ae', '0x27d75d7ca3', '0x2732755146', '0x27f18211e1', '0x23a8d38063', '0x1f9d621024', '0x238faf381c', '0x241158b835', '0x243fb3a9c9', '0x22ca86b8f9', '0x2344685f94', '0x23c87254ba', '0x28096f24b2', '0x26b1d50606', '0x23eff7df6d', '0x1fd45a0f5d', '0x2213df96a9', '0x1f5306fa90', '0x1edbba980e', '0x22b5e24fbd', '0x270c335f70', '0x269e77b146', '0x2424c1340f', '0x26b0c90d12', '0x21daafeb70', '0x2494c3734e', '0x2925e454dc', '0x2c23f7f2eb', '0x2763b307b5', '0x2c4e886c35', '0x28ef921770', '0x2e0c587032', '0x2cc6b17cdb', '0x2c4581ad6b', '0x2e700c18af', '0x343ce8f0cb', '0x34159decb1', '0x2fa158e01e', '0x2c868842bc', '0x2b56dab869', '0x280e7a00b5', '0x2c4507956f', '0x2cc5cb3ec8', '0x2987f5e154', '0x2e399a928f', '0x340096b55c', '0x2f1327a15c', '0x2bf57145df', '0x2ec7a836c0', '0x2bb093b11b', '0x28fb723a0d', '0x24e1acf22b', '0x297c9743be', '0x279ca0e53a', '0x2556863aa9', '0x21385dd8e2', '0x24c226a8c3', '0x29596ee337', '0x28ac2607d4', '0x25ea37b87c', '0x23a3725730', '0x22fe14669a', '0x261c9a34ea', '0x251d917b9e', '0x29c11b97c3', '0x2ef8512de9', '0x2afb5a42d4', '0x290ba6fb29', '0x2c9e072381', '0x2b9dc1ec2c', '0x284bfc9430', '0x241b2edaf0', '0x202885378e', '0x241e82211a', '0x223a18ce1a', '0x22943f8671', '0x2038be18e1', '0x1e7f0ae534', '0x1ccab9c90a', '0x1f38b218df', '0x231f31e689', '0x2782af4cce', '0x25194589e0', '0x293d225cf0', '0x2899a6894f', '0x2daba5b276', '0x2c8250ff25', '0x297ecf0b6b', '0x25a4c16a18', '0x2a57e09e0e', '0x2991962ea1', '0x253f86f912', '0x23159f80a1', '0x24c373ba81', '0x295bd75a0d', '0x2961dc4fb3', '0x2bb7202771', '0x272a4f751e', '0x27184990a6', '0x22fe5bd156', '0x258f154312', '0x2790374ed2', '0x2b381cef54', '0x2619657ef9', '0x2adc56146d', '0x290dd59aff', '0x278557cdf1', '0x246e3d5b8b', '0x266c140a78', '0x27a75c5725', '0x2440b456ff', '0x2122cf3706', '0x25466d98ef', '0x226dad38ae', '0x26ba100221', '0x2b9044ccb4', '0x2d05ebc5a7', '0x295a1540ec', '0x26794665fc', '0x22b10ecfad', '0x258c80b056', '0x242c26b256', '0x248c6f5824', '0x27418358f6', '0x23083fd385', '0x2535065c7b', '0x22034c001d', '0x2064e33b00', '0x1ea52afcce', '0x2278d9290f', '0x26c7bb7def', '0x2a27189201', '0x26250eec0b', '0x25fe6d6ce0', '0x273fa1c606', '0x2404df87f7', '0x242f5acefa', '0x233a50295b', '0x1ffb35e2ed', '0x23f9ae7796', '0x224fff1fe0', '0x26991a93c8', '0x2b6b460d26', '0x29434f342b', '0x2765725417', '0x2907ac80df', '0x286359ad2a', '0x2820b92242', '0x23e1b98ec4', '0x285d87d3f1', '0x2d68c5af48', '0x2dfac524f1', '0x283b6c8053', '0x29a44c1d1d', '0x250d9a29e8', '0x26084c1a22', '0x2a2d5cb390', '0x26608d441d', '0x249160ab72', '0x2192000315', '0x2020285e07', '0x1db85c3c06', '0x216e95dcbf', '0x2367b76fc7', '0x220b039dc1', '0x20a1566783', '0x1d066f78bc', '0x1ecf2a5db0', '0x1bedb2fe92', '0x1f6addd9d5', '0x1ff7d78b60', '0x1d6ac0fced', '0x1cb7ece81a', '0x204db7b453', '0x2456ae4795', '0x25766ffb24', '0x21f0c4cdf2', '0x262e02963d', '0x2851fd2912', '0x2d5c20fe6d', '0x2a28c0f87a', '0x2f6d397076', '0x2b2d7a60fa', '0x25c7cb14db', '0x2617dca3ac', '0x27c70f7d24', '0x250fb838ff', '0x27b1565cea', '0x22bb2b914d', '0x26883df987', '0x22e7956219', '0x274415a320', '0x23b3283e91', '0x2829512a85', '0x25f3b30cb6', '0x2670215ed7', '0x2341755ad7', '0x22c3200973', '0x1fc63b9aef', '0x1d3427d125', '0x20d9dcbae4', '0x24f4ee780f', '0x20eabedff4', '0x1f421d494a', '0x2329bbc5af', '0x278e528aa4', '0x2c7fe93193', '0x27c2048e73', '0x296f6cb036', '0x24417f1a30', '0x26e942d611', '0x228def4c9a', '0x205d2699bf', '0x2467c98c91', '0x2186b5eca7', '0x1d55df2f13', '0x1ec551444e', '0x1bd894474a', '0x1e82fab430', '0x1c4d694e70', '0x1d9b5d0203', '0x214e48cc8e', '0x23f08026ce', '0x2071eb05ab', '0x1d6792d6bb', '0x1e5c168ced', '0x1b1ffd1be6', '0x1e83f4dbbd', '0x1d538d93e0', '0x1b588a428e', '0x1dc1616050', '0x217892b4f7', '0x217a3e2c41', '0x1fe820382d', '0x1fbb7faf6a', '0x1ec772bf93', '0x1bea49d3fa', '0x1f30cc4a21', '0x1fd3a452cc', '0x1d7b2f1544', '0x1a50f14b23', '0x1706d321bf', '0x19e77e279c', '0x1d2461106f', '0x20c87bb849', '0x20314b9baf', '0x1c4d97f75f', '0x1b99f951e5', '0x1e7ccc25d2', '0x21ba7cd414', '0x21f86e5c82', '0x2282ac5fc3', '0x1e4c74a6ea', '0x1b63a69993', '0x1d0957a94f', '0x1b6d4a7e9b', '0x1a215cd6b0', '0x1bef512728', '0x1b63b86bfd', '0x1bc28b754b', '0x19152e2356', '0x184c8b34d0', '0x17bc58e893', '0x15e660ca8f', '0x18a30534ba', '0x1b48170a52', '0x1bb9401d04', '0x1f2fb704dc', '0x1dc95c4292', '0x1ab05d5b2c', '0x1bdc90fda8', '0x19f2e371c7', '0x1d304ab24c', '0x1d819e615d', '0x1d7b37f13d', '0x1edc54fed8', '0x1bb1642a12', '0x196d8019c6', '0x1c24c0a360', '0x1c7660d42b', '0x19de419362', '0x1924c55a64', '0x170e141434', '0x19efa3310f', '0x1c95c8320d', '0x1b3ed6f9c3', '0x1b434e0e60', '0x1ccba9eec4', '0x1934cbc8e8', '0x18a61d3222', '0x1bbab6cd8b', '0x1f3150c9ba', '0x1c839184cd', '0x1a6ed0bfd0', '0x1833415d03', '0x19017de80a', '0x198fcc406d', '0x18f6255de7', '0x18ea05ecbd', '0x171edeadb7', '0x195511d151', '0x1c7ece26d7', '0x1cbc4bad3e', '0x1f383f96e2', '0x1c34be9246', '0x1b6dff8b58', '0x1eb88e87f3', '0x1c12efc83c', '0x1ca1b37032', '0x195a1b24d0', '0x1740921471', '0x1644695134', '0x18926a5998', '0x1ba3f31a4f', '0x1f174aad14', '0x1b47ef0ff1', '0x185be62727', '0x1b67082eee', '0x1be38d5889', '0x1d0ab2b6d6', '0x207ae13c9e', '0x1dcee1637e', '0x1a51182b83', '0x1d9a711239', '0x20967cb810', '0x1e9bcd2fd0', '0x209e2bca91', '0x236b03fdda', '0x20f90ab21f', '0x1d240caeb2', '0x203155e767', '0x1d9ddab6a2', '0x207c7b5191', '0x1dfe6b96e3', '0x1e2102cae6', '0x1b305d21ee', '0x1aa3d95450', '0x183aceb8f1', '0x17ba1fb27d', '0x18c80b29f3', '0x1993101d50', '0x19563a773e', '0x1728974c10', '0x1a0d5bd4ea', '0x180058d023', '0x15684815c3', '0x1814c50fa0', '0x15122c6dac', '0x165bd4cd77', '0x1926cc1010', '0x1bc718b9cf', '0x1b2b7d91b2', '0x1c3fed2f6d', '0x18b7ef8980', '0x1b29a33ff3', '0x1a0d8feefe', '0x195dc3eed7', '0x1c88b924ef', '0x201960cdb1', '0x1d7ab4e3cb', '0x1af2f61d06', '0x1e507b9c42', '0x21a2cbcca2', '0x226f20ed80', '0x2012a7d7db', '0x200f41c85c', '0x209964973a', '0x1c9e006215', '0x2030f12715', '0x1d3125f192', '0x1d6a856dfd', '0x1b997a4243', '0x1dbadcef22', '0x1c72dde16c', '0x1ae17b74f5', '0x1e3d7c004c', '0x1bd9597552', '0x1f5455ac9f', '0x20ffa4595f', '0x1f0c04b62a', '0x20ac2e1e49', '0x1cffcd9433', '0x1a2f3ae3a5', '0x1aadfd19a2', '0x1b78a44ccd', '0x1af684365d', '0x1e544784f1', '0x221d9d54ba', '0x25eef02c5d', '0x239f18f579', '0x23a36a66e7', '0x22c6aaa6da', '0x223ef319ae', '0x21d95fe82f', '0x23faddebc7', '0x208bb4cd40', '0x249c31394c', '0x2447a43a6d', '0x203297b252', '0x214af0cb5f', '0x1ee660ca6d', '0x20e2fc885a', '0x1cc69cf74f', '0x205ea7c680', '0x1f40887596', '0x1f6d9d233f', '0x1c04a4b348', '0x1db11e2f84', '0x1af8e87634', '0x1e57ce83fb', '0x21a81419a7', '0x1eab10946e', '0x1cfd9c9893', '0x1bb58447e3', '0x19659c526d', '0x1c9207b5bf', '0x196cacad5a', '0x1c7604e964', '0x1adcdd1e32', '0x188ca122fb', '0x188473589e', '0x186dc9c054', '0x1b7a3060ca', '0x1c84366e83', '0x1fd9b8cb9f', '0x1d5535c00b', '0x1ce79027b7', '0x1b00132ece', '0x1a79ac8173', '0x1838747d0c', '0x18b0a4e6c5', '0x16f521969a', '0x18ae220f76', '0x16824dbbb7', '0x15a7e240bd', '0x1641f05926', '0x13ea04a69b', '0x1666908533', '0x18a5cd7e20', '0x1b509c71d0', '0x1c44e6427b', '0x1bc859912d', '0x187c3c3e63', '0x1b7976815b', '0x1ee814b316', '0x22514879f3', '0x1e62c42a24', '0x1e3e0ad582', '0x1d38624fd1', '0x20dd800b2c', '0x1e8b8b6a93', '0x1c4172e15e', '0x19635e3bad', '0x1c8ef3c744', '0x1b2c374d0e', '0x1e909d3097', '0x1af3d4bfc9', '0x1d902eac09', '0x1bc4ff8b67', '0x19323d9c58', '0x1b84b8d9a8', '0x187d6eae4f', '0x19f0627573', '0x1a5dbd6cca', '0x1a7de82452', '0x176c3340d1', '0x1a58d5253c', '0x18fcfae4e3', '0x17e49ae41c', '0x1a325fd36f', '0x1bd193c66c', '0x1ab2c9b5e0', '0x19088a3a5b', '0x1bbba0ed18', '0x1f14715911', '0x1c55ed0f1b', '0x19f9cca6c3', '0x1c1fdccdcd', '0x1a801ddd0c', '0x1877ab0db9', '0x17743b5c4e', '0x18b4614304', '0x1af019f1e5', '0x17bad21041', '0x15bafead3a', '0x16490d3693', '0x15ee020874', '0x18ab28eeca', '0x1595c3d0f1', '0x17ea6f9365', '0x1a7b48acf4', '0x172bdf9756', '0x195c57eabe', '0x1773f8571a', '0x1a61e25387', '0x1dadd871d5', '0x1a72bc2d89', '0x1d03b26e20', '0x1fb25b68a5', '0x1ed5ccbe0a', '0x22b07079f8', '0x2199696b9c', '0x23288d7ea4', '0x20613a314f', '0x2233c7a39a', '0x1f5c8da19c', '0x2247b2e412', '0x21b242533b', '0x22730fdd35', '0x1e9778db50', '0x1d7b7da1df', '0x1dafae0503', '0x1a90eb50d4', '0x1de2d67ca0', '0x1b51f6ee45', '0x1afc9ce8f6', '0x1847537ad3', '0x1b4f417821', '0x1c4a6f7b7e', '0x1e263ae4c2', '0x1d06e02fb9', '0x19e7a9504a', '0x1c646bdfb6', '0x1d4254e3fc', '0x199a0a477d', '0x1acb175c43', '0x18fed0b080', '0x1632ed1b83', '0x16509edaaf', '0x1919b9c32c', '0x1c1c63beca', '0x1c74cf52e9', '0x19bfa828e2', '0x1cf718cb95', '0x1fbc51c62b', '0x1c28174fb1', '0x1995ce0ea0', '0x1bffe0b2f1', '0x1da5afe81b', '0x1a374b3a9a', '0x1d7e1fdb9b', '0x212ce6c195', '0x1ec2cd0abe', '0x21646c80b1', '0x1f277faffc', '0x209973d65e', '0x21cf97ed9a', '0x24b4839a51', '0x253fb49ac4', '0x25b3912880', '0x219af40f00', '0x1ea57b714e', '0x1dac9f08ad', '0x209b5bb508', '0x1f3207419d', '0x1fd9ce82aa', '0x1c37c54866', '0x1c064459a0', '0x19fbc1ab31', '0x1b26d9fea8', '0x1936f96e8b', '0x1877a8267c', '0x179078469b', '0x17f7edf8ff', '0x1587b3a10e', '0x15f3c4ed25', '0x1695a7af2b', '0x143c359580', '0x16c2ee7d6f', '0x1826cf78d5', '0x18fa87009b', '0x18cd303ca7', '0x16f3a3f79e', '0x16b7230b1b', '0x145dfe17d4', '0x158cd02550', '0x1561cffd88', '0x17719da71e', '0x1a5ecafa0a', '0x1b74f641b9', '0x19a0fb0932', '0x189124dc0f', '0x16ae9056dc', '0x1814b57459', '0x16d5f9c851', '0x147b234e45', '0x1709faf579', '0x19eb166b28', '0x1c7273bdc2', '0x19d541d400', '0x1a72d31be4', '0x18f986028b', '0x1a60f825d8', '0x17696a752f', '0x1a55cc7924', '0x1b6a9dff4c', '0x1b44747106', '0x19d610c410', '0x1a08f84d58', '0x17ca0f558e', '0x194be5c3fe', '0x17acb94ec7', '0x14f9b5dc54', '0x159fc7da9b', '0x133a01d369', '0x15a06d940c', '0x13f4107304', '0x160aee635f', '0x13e1e7795d', '0x15eb670b7a', '0x142add6e31', '0x124090c8d5', '0x14889511d4', '0x1719639423', '0x19fc01895c', '0x1c641c52f1', '0x195fa1d274', '0x1a594d399b', '0x197041dcf2', '0x18f7a08d30', '0x1a044fe576', '0x18ce907497', '0x1aa3403c57', '0x17a3b4a0f1', '0x14af3e0cd3', '0x17449977de', '0x193bb8ef8e', '0x175cf02708', '0x18c2c6f0e2', '0x17a776ca71', '0x15f0fa3f8a', '0x1630ee90af', '0x18f6a5f8a1', '0x1c149882ae', '0x1b99b98b52', '0x1ba15fd4e9', '0x19d6888074', '0x1c867632af', '0x19aa735eaf', '0x17076366bc', '0x194d66d815', '0x169246b2e3', '0x1692689b63', '0x18606c5a42', '0x19692bfdfc', '0x1c95ee4ea6', '0x2027d8bac4', '0x1d5a944429', '0x1eca62ed08', '0x1ba5e8ea21', '0x1a150c9b38', '0x1cd368ce34', '0x1b4c80862b', '0x18a38f67ed', '0x180949abb3', '0x1b0a66a2c8', '0x19e893e66b', '0x19fe2d2473', '0x1a7340c9a1', '0x1b092421bb', '0x19b9beb113', '0x172a31c141', '0x18c870b903', '0x165cd0c307', '0x16531529d3', '0x162175b3c3', '0x18e51cdad0', '0x1715191e05', '0x15efe3535a', '0x155a0994c4', '0x13e3796e7a', '0x165f69f636', '0x15049d6072', '0x17a4a076bd', '0x1a98ae8e97', '0x1deb7624da', '0x1af6e9d2a5', '0x1854e336f0', '0x1b5ed1ecd6', '0x18ca3cb843', '0x198096b21d', '0x16fb6f5bb9', '0x19da859bfb', '0x179785f5a8', '0x16fe43824e', '0x1635b92b61', '0x17dd6f3ef4', '0x179e93e35a', '0x1a91acc72c', '0x173f772e47', '0x152e1601c4', '0x17d3545bbd', '0x1acd1cb5a0', '0x1c6b6fbae8', '0x198a85acec', '0x1cbb413929', '0x19f1f2a971', '0x1a6513780f', '0x17e2c3cc78', '0x1ade83f911', '0x1e39c8bbbc', '0x203f48f5e6', '0x1da7a0aa4f', '0x1b1a1ade1d', '0x1e7d5c8620', '0x20c69baf14', '0x1eb510271a', '0x1cd942e6e0', '0x1ad02d87be', '0x1c090b46af', '0x1b94bc55b0', '0x1b9a57b952', '0x1ad00c4330', '0x1aa30b8f7d', '0x177811d056', '0x1a667c1647', '0x1719ac937f', '0x1745743f3e', '0x14d616050f', '0x1770b9c083', '0x1545bed7a4', '0x12fcfb05a1', '0x155c3e0dd7', '0x158634a2fb', '0x1739df8605', '0x179e919342', '0x178a87ba38', '0x178dfb327e', '0x1537bc27ff', '0x13e49af749', '0x163dc09cbc', '0x1904a9e761', '0x1a175c4e12', '0x1d599a337a', '0x1b050e00bb', '0x191e82c7cf', '0x198f3dae9f', '0x1cc0b132ba', '0x1de15bd292', '0x1ada089965', '0x1e35465861', '0x1caa695779', '0x1b9f70349f', '0x192a0f194a', '0x1b8cf00d58', '0x188ff6a32a', '0x16facb9146', '0x19d93cf9cd', '0x1ba860bbad', '0x1a8d26e328', '0x19d6fdcbf6', '0x19b1278843', '0x19c57be9c2', '0x17a8c25a5f', '0x1562ab82e5', '0x180e21b1ce', '0x150c5d7b95', '0x17add91ce3', '0x1aa383c2cb', '0x1d3334f9b4', '0x1ab5240849', '0x1bfe4ae6f0', '0x19f60d863c', '0x1b687ac445', '0x1e171e2131', '0x21d97f855c', '0x1f175386d5', '0x22a2f6a482', '0x210ee04353', '0x22d1e2f649', '0x1f105b6c91', '0x1edfc56db9', '0x1dca53bdbe', '0x1e23cee443', '0x1c5276be9b', '0x1efa8333bb', '0x1c8dd3786b', '0x201ef7a0db', '0x1e39cf2caf', '0x1dd91b808b', '0x1ccbafa90e', '0x1aa3bf4a22', '0x1df7dd2be8', '0x1d39e8d3e2', '0x1da1f34d7d', '0x1b4704db98', '0x1d2980a818', '0x1d6bdc4252', '0x2118e509a5', '0x20aabd918a', '0x1d3a28d7bc', '0x1d813218fd', '0x1cda537eaa', '0x1da5645f1f', '0x1c5807fb1c', '0x1adfc9f2a1', '0x1e3abd09fb', '0x1c59fc192f', '0x1ab0556c1a', '0x181d2f46fb', '0x1b20abad7d', '0x1b4fee098e', '0x19ea78b8e9', '0x1c804e5ee0', '0x1c991cd0ef', '0x1de9fe5c6d', '0x1aa190af50', '0x1df4c5be8d', '0x21b2762a83', '0x20d204ed1f', '0x1da0d0bad6', '0x1cc878d14f', '0x19950e18c3', '0x1cc757de07', '0x1e837ae0ec', '0x1d5f97f02e', '0x1b16e38ffd', '0x1b962d4adc', '0x1bd5067eb1', '0x19234ba9a2', '0x1937f264bc', '0x176efbac29', '0x1a5c143451', '0x1da689a7f6', '0x1ce4d9332a', '0x1aec63d67a', '0x1946e4d033', '0x177167e27d', '0x176c56188f', '0x15d9019c59', '0x166e71bcf1', '0x16fd592dca', '0x145a02af4a', '0x1457d7841f', '0x16e2ae6a21', '0x179fb93c02', '0x1620688795', '0x18e3d11db2', '0x1c00230946', '0x1ca5880bca', '0x1ae5e66213', '0x1b2de4bdf6', '0x18931ee0dd', '0x192f0f408d', '0x17a594d801', '0x19d1954232', '0x192176b884', '0x19f2ae277f', '0x1795a14761', '0x17114461ef', '0x167ffbd28b', '0x14ce11de48', '0x13f43e24a6', '0x12029aea7d', '0x14425acf0a', '0x159a6e1a4d', '0x12fa827440', '0x1559c1f54b', '0x1804aadc55', '0x18ae8d7eca', '0x167367fd7b', '0x17fd675bb7', '0x17c0ae6ba8', '0x15be33903c', '0x18753cefca', '0x1b830459f2', '0x1ab4459624', '0x19c6e6e986', '0x190ab1b093', '0x162a372b5f', '0x179c051478', '0x15a3bd9659', '0x179fdae345', '0x1a93a5bff1', '0x193fa79587', '0x1c668b7749', '0x1cf4dd7a75', '0x1f226b993f', '0x1bf3a9aeaf', '0x1a5d6a6b12', '0x198065410e', '0x1825bc5768', '0x163c45adf1', '0x18745846c3', '0x15e14662f2', '0x164b8e65ab', '0x1914a76b47', '0x1b12cc4767', '0x18320b87e8', '0x16f004ce41', '0x1439678aaa', '0x1691b4480a', '0x15482d993c', '0x1334c186a9', '0x1199e7192a', '0x128f5849a9', '0x13df720b0f', '0x15d940e8ee', '0x131e18cbd1', '0x111bc43f95', '0x133ecb86ba', '0x15a6a2e4fb', '0x185ae49947', '0x181b302092', '0x17db8f1583', '0x1ad6954b42', '0x1c1fcac44b', '0x19f4d8d98d', '0x1d3254ec58', '0x1b51372d7d', '0x1c266b1eab', '0x1bb0baa633', '0x1f25d23432', '0x21d395ea08', '0x1e647c8965', '0x1c882d776a', '0x18f727c87d', '0x1bf1525fe2', '0x1f6e621c03', '0x1fe92e8d4f', '0x2316e63907', '0x220ff30630', '0x20eee930a1', '0x1d92b792cb', '0x208a01ab44', '0x1f51336e78', '0x222ce325fb', '0x1ef6e76afe', '0x1bec17ffc7', '0x1d700d9e71', '0x1e237a7438', '0x1ed7d6b518', '0x1c874ef220', '0x1fcf1e9d66', '0x231973cd5a', '0x1eb64553af', '0x1fe3731f42', '0x1c68f97a31', '0x1be6d565b1', '0x1e1a155cbe', '0x21dc4116dc', '0x214e9ecefc', '0x23f2c858f7', '0x207e500de9', '0x1d6c4e4ea5', '0x1f390fd935', '0x1dfda488a1', '0x1e936dd4c4', '0x21aad38293', '0x241fa81638', '0x216436d986', '0x1f13f5d12b', '0x22f5d23895', '0x269c7cf392', '0x234fd9100a', '0x22b11dd884', '0x23a0946ffb', '0x215c0d5c66', '0x20dd363bba', '0x22b8a12102', '0x1f688afc09', '0x2308b87db3', '0x24319e0cf6', '0x20e78bf72e', '0x236e746152', '0x1fe2c387c3', '0x1e513e19ce', '0x1c2df8a7f6', '0x1f487fb5e5', '0x1bebc2b413', '0x19bf78fe7a', '0x1bd95f102f', '0x1efc5e6778', '0x1f7c7cdb9e', '0x1c828e49c3', '0x1f6dea6905', '0x1bfad529cd', '0x19d9bc98be', '0x1b84bc1c84', '0x1a874945d5', '0x1b8b399710', '0x18f1971bd2', '0x18a20183f8', '0x1bb5f4e70f', '0x1da4b932a2', '0x1bb2991eca', '0x1a518a1a19', '0x187772299a', '0x1b374da35a', '0x18b0ce498a', '0x163b6271da', '0x138bbfe97a', '0x15fd11cd98', '0x18bc8ac86a', '0x185a1556b5', '0x1a4f44254d', '0x1d9835b3f4', '0x1d1d2bf108', '0x1d998830da', '0x1a31468b15'], 'gasUsedRatio': [0.20964873865422806, 0.4146947511677008, 0.2949483455185905, 0.46844606666666666, 0.6553839666666667, 0.1019761, 0.634002063651511, 0.41876996666666666, 0.069183, 0.9994876997387949, 0.93288365107915, 0.34460066900059244, 0.9997185503193922, 0.9998567264830819, 0.2508590452410677, 0.13282950448684017, 0.9996301102234796, 0.8400818000422091, 0.2784125253071889, 0.3634653066400053, 0, 0.9996200637751286, 0.9993173831182657, 0.15159877274854758, 0.4389775706090325, 0.929408118476934, 0.43532658326900964, 0.5761575, 0.0710015, 0.046297366666666666, 0.9993221666666666, 0.5569712490914044, 0.5200816674202489, 0.33914330127221687, 0.5547380218479364, 0.5584992876530159, 0.9755172298160588, 0.365904, 0.21497038142254088, 0.042773874681412194, 0.7825217222327584, 0.17681963595730832, 0.44049234437640455, 0.9993361647858002, 0.999811450251272, 0.4560900666666667, 0.24360393333333333, 0.7818752321691201, 0, 0.822188294985405, 0.999373365476061, 0.7908997496483893, 0.0694610245265574, 0.9993538338330616, 0.19567212596144623, 0.999552828289333, 0.3895002899513821, 0.45491923041016047, 0.6957172322548906, 0.9996153333333333, 0.48824696017672076, 0.15792635266214092, 0.23926276666666665, 0.39343263333333334, 0.1970207, 0.9207149781761891, 0.5454474424176129, 0.2104001406361334, 0.9520871756323004, 0.9999271333333334, 0.12098013333333334, 0.2352246, 0.756708840483934, 0.23577059457824143, 0.2521119563828167, 0.09976132620523066, 0.9994517333333334, 0.3192332666666667, 0.2703873332309, 0.0588617216042735, 0.9260326017994188, 0.999580565883723, 0.43451958614576547, 0.22880490732040717, 0.2598359907190445, 0.4274980349920047, 0.8565597569777734, 0.3954414252413653, 0.9999340973775018, 0.9996523, 0.16036673333333334, 0.31980025161236614, 0.8480798915412321, 0.41025396990209584, 0.19557967160137604, 0.08402287796979731, 0.06263436687357166, 0.9926743325140532, 0.2904456781041177, 0.5411551031363494, 0.22729839103227695, 0.2858097651225147, 0.276449618311145, 0.8375352666666667, 0.9997058666666667, 0.9998177779398417, 0.2558349403876472, 0.9463861354453352, 0.43805754691125737, 0.9995344537059, 0.3982757883331195, 0.22916053983271215, 0.12870337747952657, 0.9993887426140707, 0.4268291351053526, 0.0842501856136322, 0.26764611369001323, 0.6914259609937714, 0.9999819652078802, 0.5022740701114563, 0.725513638056601, 0.08366467493022917, 0.4928097109518002, 0.08037627722996121, 0.7932342216239849, 0.7134700195234147, 0.8696196748314492, 0.02613768227352287, 0.9999036809410465, 0.33139347071266106, 0.35061936232753826, 0.1872288208533301, 0.7186684555725673, 0.6282146641228704, 0.15693022732744677, 0.1561058384155872, 0.9996545632535201, 0.19452157228332942, 0.9993992209830772, 0.9995756802000024, 0.6340183758597148, 0.17383500866400928, 0.2215937013502507, 0.10678643333333333, 0.8294403818662257, 0.3533778170574172, 0.5415905867455242, 0.7963000672413245, 0.06962541265164046, 0.7483318432807574, 0.1565980677451823, 0.30962667813869393, 0.28404641682087556, 0.9995076241459593, 0.9998993743726987, 0.8478593029111178, 0.11967247756263902, 0.48417587071978424, 0.6320955663320542, 0.17086423333333334, 0.5184284120109954, 0.3941888345762456, 0.13137113333333333, 0.9995454561379187, 0.31511415717575086, 0.9995936207279905, 0.9996080442177956, 0.3013672838418716, 0.31904806355594334, 0.6658735651804168, 0.4374224357098302, 0.4742238501908689, 0.0767438362718105, 0.9998214891227094, 0.9998258947640157, 0.5502367988332008, 0, 0.6401528831226792, 0.05922613333333333, 0.6057160183081222, 0.9359213, 0.13961186666666667, 0.31142173665918105, 0.17210912730185216, 0.3278602, 0.20049338487633492, 0.9995689333333333, 0.7360815830008663, 0.34611061140234023, 0.3339983831412765, 0.058067858203998984, 0.7458698739933842, 0.12599171823350305, 0.9996950968740104, 0.5701119997589325, 0.18079142983867086, 0.4050143206759995, 0.9993479268089801, 0.9996364645945148, 0.6237306333333333, 0.12393011775999263, 0.999606499632733, 0.7242595365381379, 0.9999578665866132, 0.21775198187239728, 0.9997688326783593, 0.1416353749104957, 0, 0.5331142666666666, 0.6768682048646164, 0.22686368596822976, 0.7839956333333333, 0, 0.9377699731776408, 0.12342426218476335, 0.999799924081602, 0.13672118941949807, 0.9998972333333334, 0.2799434981592859, 0.5512288144802269, 0.16883693333333333, 0.4440102426686326, 0.15619437911475384, 0.17639121064899535, 0.999565150739394, 0.9999222075875316, 0.06275513988589931, 0.2984364326840057, 0.9996774447047946, 0.9997210569321331, 0.9999202795366153, 0.07377014955260919, 0.6687584819966672, 0, 0.7929547081702809, 0.05213448907384339, 0.24642182544454969, 0.999513669568634, 0.18365086666666666, 0, 0.6957134, 0.1198004, 0.882909427722838, 0.21037282968130772, 0.6843660221622622, 0.9997364661747369, 0.8163001333333333, 0.11107223333333334, 0.1251615, 0.6299300266710443, 0.07380854586877224, 0.9999822480459478, 0.34413459486376896, 0.22986513337983216, 0.8524529486166877, 0.9994854666666667, 0.5007794778267645, 0.3123194350251314, 0.4781457398653392, 0.3798298410128314, 0.12781158118507743, 0.9693399255919449, 0.5815769577005747, 0.20521140110134636, 0.07057287657526055, 0, 0.9998744101003375, 0.999969699828299, 0.9997623333333333, 0.4279412487039739, 0.01672561869858359, 0.4008392013311281, 0.91824300860315, 0.9252205666430892, 0.5286958489281003, 0.5635857333333333, 0.011824546669823082, 0.11590452001670729, 0.7405662572462073, 0.27826855849474025, 0.3109018059506883, 0.7762321815008306, 0.42191836490311235, 0.5540947573142119, 0.11423473424257372, 0.3750158288189603, 0.4072772399440092, 0.19062386666666667, 0.9998894, 0.9294069659022035, 0.5648104142493089, 0.9996100855382775, 0.32045724220209354, 0.08402190703384191, 0.6757527146326915, 0.22538472677575572, 0.9994232725555188, 0.5435351608515161, 0.4966108172912018, 0.6871489182528725, 0.08941434299508841, 0.17281203598174127, 0.9272229862550573, 0.5453177048568251, 0.13541717947668028, 0.38796250683505995, 0.16772625981803208, 0.9998638992604948, 0.9085431168711453, 0.312543054955056, 0.5025607231144613, 0.7248698963229167, 0.0014054952521868418, 0.41155338717190887, 0.9998958953203041, 0.999584288114688, 0.15649590212504333, 0.20806327882883338, 0.1621393819841718, 0.6331576845653458, 0.5889205258477813, 0.406077848175345, 0.49241153684058936, 0.21204036416661573, 0.8826404255941123, 0.9994461, 0.5337173082848735, 0.8458005590780242, 0.113873874583276, 0.3899026408150176, 0.9799537200530333, 0.15535495841023497, 0.5794576348256271, 0.04181219221966377, 0.1687047, 0.3305543863582789, 0.9140080379572951, 0.9995118045479771, 0.9993489952543985, 0.009826802279687345, 0.07156821714265962, 0.9997726067943231, 0.5710018903857103, 0.6653582325893532, 0.973553447233949, 0.17095163333333332, 0.03148996666666667, 0.9995312333333334, 0.9032731128613758, 0.25705773992055725, 0.7625740319446237, 0.8433915436848164, 0.2238457106432934, 0.0351321470442529, 0.9189173061306606, 0.1799153630587268, 0.8875713112547384, 0.19310991628283397, 0.5180196462341935, 0.10967402973355046, 0.4192485423476395, 0.1380908501013233, 0.4170158263650292, 0.6777506022081611, 0.6280062481929706, 0.4628324543156835, 0.15610993333333334, 0.9997934333333334, 0.18512006974810902, 0.06769020245453809, 0.9996007430729957, 0, 0.7444546325609854, 0.9996414656388681, 0.9176552876668981, 0.4124714007246561, 0.6589742666666667, 0, 0.8955172656666901, 0.33658886666666665, 0.39456766666666665, 0.9995300921983017, 0.9997614997694497, 0.17353502470214552, 0.15667395612544485, 0.9995078926233739, 0.93827849035115, 0.5949192097174842, 0.22571109101501646, 0.49834424516504444, 0.5673237993273229, 0.011399190329634885, 0.999557913793958, 0.12732717021444104, 0.5307088565446072, 0.2529819660346116, 0.8087607, 0.3276167510907735, 0.2795458942428346, 0.9998935038940511, 0.1837118490525132, 0.9998970666666667, 0.7131119666666667, 0.2634257685963677, 0.7094417621456447, 0.050283666666666664, 0.11174993333333333, 0.5756403127654154, 0.6186843107720233, 0.42598777465053594, 0.999390576462498, 0.9993819286122876, 0.9476146849082739, 0.2562168884060457, 0.5018940904677408, 0.4032165, 0.43902186666666665, 0.4536555, 0.7518031642101488, 0.1182072142669738, 0.9995308243631396, 0.4639142, 0.04991847872781104, 0.636048475694454, 0.21251118927047224, 0.7571853386521434, 0, 0.9995740343439736, 0.3618876540387771, 0.5225388856477655, 0.06598937879790993, 0.7389492889916108, 0.13362764955866885, 0.9998755326197204, 0.9368140388249101, 0.14484364411774167, 0.2812000827863777, 0.3231678, 0.166227, 0.9998266, 0.05955576666666667, 0.9777284, 0.2753750296169124, 0.1555207, 0.49479436666666665, 0.4855571201388511, 0.9991539991821992, 0.6512746659434708, 0.9676626385590132, 0.18381953333333334, 0.4415934, 0.23647731323695745, 0.4222224247893757, 0.15934104830993595, 0.577535653617297, 0.2193242132883958, 0.8001476937567221, 0.14810528271037712, 0.34838019051139063, 0.6111531666666666, 0.07885073333333334, 0.9994461333333333, 0.901242763558615, 0.9328556297129083, 0.6397408415295431, 0.4311585955756101, 0.025268266437961064, 0.9883209033963902, 0.9996786923624964, 0.9414526123786056, 0.04172593726963876, 0.481115798352805, 0.3648117490522262, 0.9989669708419405, 0.2176178385714631, 0.20018926314721422, 0.09406325575057359, 0.9994849647095325, 0.3059151552934008, 0.9993507969119869, 0.0272441714696862, 0.8874594935239835, 0.2573081149183421, 0.12933874308098076, 0.8686568537360003, 0.05978974550083734, 0.736673585030815, 0.5658728744053054, 0.5190625618630246, 0.03658661545906738, 0.9994045333333333, 0.2937072333333333, 0.3246828805005246, 0.8856840666666667, 0.7476467103459862, 0.3389180907076006, 0.2505420813993461, 0.9313547984897373, 0.9827374137056878, 0.14681867295319484, 0.1668691677739479, 0.830875, 0.26902566666666666, 0.19313706501064956, 0.3343230876219105, 0.7132816041615127, 0.8615984016784781, 0.023626034244520925, 0.16298544970207438, 0.6021440857647679, 0.4361662614244587, 0.9995731482238706, 0, 0.9319191301144393, 0.9291416443697026, 0, 0.8779379236548935, 0.1991081249998335, 0.9996120887258878, 0.9998376572992542, 0.06455528420509188, 0.8881184929862078, 0.869783567284437, 0.39127551795151627, 0.999956699548232, 0.3743181270368436, 0.6856164661275598, 0.18387478624219622, 0.7251367744056477, 0.1677730055016418, 0.8722441752080723, 0.4318847587432341, 0.5894027607166611, 0.05206579566326271, 0.354953773689202, 0.5276589829729346, 0.07958198938507761, 0.9998845666666667, 0.15657446162844685, 0.4511855442614346, 0.09859564061885023, 0.9993653321274644, 0.6437108, 0.7627815333333333, 0.35107759393714627, 0.06978726272265214, 0.8840726571103351, 0.6221229051250491, 0, 0.6861758875723079, 0.23158189340268936, 0.05248653347909024, 0.5209007103883915, 0.9993190493516555, 0.9797366333333334, 0.5491469753547673, 0.11939817319395281, 0.9996861932643761, 0.8825830102410528, 0.04889593978748808, 0.13469598163861465, 0.8774602927800627, 0.7353887032974491, 0.037059561586237605, 0.9999515997725189, 0.9994762423210457, 0.20888608368780756, 0.8421662809823048, 0.23191546397539556, 0.6855450927139805, 0.648651486507865, 0.8424008333333334, 0.5592523432465135, 0.5486011393307162, 0.06541205256868239, 0.14780877647642773, 0.3731188394586411, 0.895300450452331, 0.3268530588063993, 0.5840359333333334, 0.04375369214704826, 0.47258847441590945, 0.2086752, 0.6798592507749516, 0.21463800748340722, 0.38144491635757566, 0.3523629028228487, 0.5686019201186441, 0.09306709702344157, 0.5784277333333333, 0.6152259014260759, 0.0838937449674953, 0.999379238927144, 0.7442992808353003, 0.6369713127323774, 0.47163890297689176, 0.20166396290767424, 0.4588105287025606, 0.08649685953807183, 0.7323137329516693, 0.46882212389537026, 0.8856934248938323, 0.9993168957216445, 0.6648215433162373, 0.2336839577188737, 0.33427073333333335, 0.1930710004986536, 0.7467173302695083, 0.293188538917556, 0.08751946336966496, 0.999580489564974, 0.9999048664002926, 0.8902673388048916, 0.13243426108790807, 0.5953040034943586, 0.2771017931417013, 0.7248812029509322, 0.05009214885243853, 0.9994700128152529, 0.664240095176625, 0.4782508, 0.29004843333333336, 0.5307855666666667, 0.15496616666666665, 0.7534212333333333, 0.2435575993375802, 0.04393997580864328, 0.6237089333333333, 0.05650443333333333, 0.9993254586895897, 0.19051251749543358, 0.9188412064417425, 0.107986, 0.9098295485541631, 0.18026705998556247, 0.1201338584256591, 0.9999538097905208, 0.9997975018758353, 0.9996234655998192, 0.8704775, 0.07486694090112328, 0.6537461101630362, 0.3618034333333333, 0.4259058, 0.6681480465674732, 0.3139739930423935, 0.7952094201966369, 0.04977732791025636, 0, 0.9995858622611647, 0.8378591569316076, 0.20352638722661656, 0.739319659779694, 0.3212190783477401, 0.21035316693523043, 0.5455436133435265, 0.9997182824839401, 0.9994468949444393, 0.43163004723406856, 0.5043305002148644, 0.24052489787594783, 0.9160102783075532, 0.09903326718908313, 0.08903130896380801, 0.8948940263082773, 0.06826789737966449, 0.5000916909586357, 0.8198213362714462, 0.6696991030574041, 0.9997617333162188, 0.9995486982850534, 0.1514670498156009, 0.6957832933742553, 0.09175987117759517, 0.2734582162632255, 0.920760773873406, 0.2881091408687167, 0.11025016829671357, 0.4021666570237393, 0.9999688763198104, 0.3325302395872036, 0.5130257668619953, 0.5703779, 0.5885437666666666, 0.3061613, 0.10183666666666667, 0.7794147666666666, 0.1093431, 0.49319956666666664, 0.4652688016514793, 0.9996261329843907, 0.20876736666666668, 0.3015195328428456, 0.3932667, 0.2258979, 0.9996113333333333, 0.2577970333333333, 0.9995801333333333, 0.9996541666666666, 0.9998204666666667, 0.10490792407880371, 0.10942530577779558, 0.9995643, 0.12289150355321972, 0.6149351739394957, 0.1047209, 0.9997671392781718, 0.1500737539726716, 0.3984955828156829, 0.3637231244072697, 0.7980878333333333, 0.45884603333333335, 0.9995204, 0, 0.14420220125538785, 0.9996184270378677, 0.9995844992243985, 0.741549327973313, 0.09484806873619475, 0.9996435509175319, 0.11208311127423, 0.5693339501900565, 0.11976972643581074, 0.9996108276890365, 0.9996825800788941, 0.7675189071654374, 0.1784327055593324, 0.15566137770923658, 0.9999961333187688, 0.7999203686066662, 0.24755343016778847, 0.25789444484516616, 0.2177711340364262, 0.6823182333333333, 0.4351775666666667, 0.5031764333333333, 0.3854882626217835, 0.47377480885648826, 0.0242879, 0.9996047859265428, 0, 0.5296127, 0.08145337255163, 0.9999091332485244, 0.13005798968104723, 0.07047943156160558, 0.9997031666666667, 0.530695924570343, 0.8162622650254807, 0.5677414483410385, 0.4867438914800605, 0.5022905744313569, 0.10315215893111697, 0.2502605333333333, 0.9721724735795496, 0.9994325333333334, 0.6715605333333333, 0.9995938, 0.1824172304255105, 0.21864103521013253, 0.5701220085926657, 0.999722499472749, 0.6568692152628048, 0.0945672710928438, 0.9999924333333333, 0.2957588084764773, 0.3544790308470955, 0.14398793861079615, 0.879306508038815, 0.06615282171567256, 0.24225788909810508, 0.9993836964333738, 0.7799594761131871, 0.33999386152007843, 0.3928018469480134, 0.4771204558508335, 0.5123637568747978, 0.17216299956600684, 0.11557710516741834, 0.9993628164129666, 0, 0.9999534101639251, 0.9999574927984659, 0.8845975694777842, 0.15856935368924283, 0.6925669266310573, 0.20961845996845985, 0.72294540073414, 0.8914430756000117, 0.9997355475713418, 0.17403057289028354, 0.9561376561971631, 0.31771102459877304, 0.7131712868288796, 0.068525157836152, 0.4755615, 0.3595889946800283, 0.5469326953682722, 0.25875796061456874, 0.8751752294996027, 0.18693753333333332, 0.9996787470368519, 0.2639985551986034, 0.4500107371618845, 0.35896218202814584, 0.20050871105623075, 0.999793696890601, 0.40096044712150186, 0.5556226367556134, 0.18207995382863737, 0.7763753302374828, 0.5355543585263409, 0.9997619075689046, 0.44799690985323604, 0.07880746606995996, 0.537976282961296, 0.4116297, 0.6099685666666667, 0.32430164722518207, 0.2925905730845349, 0.9994045808710549, 0.25150797786515794, 0.2654163833895083, 0.11410022328396598, 0.9998949356310073, 0.5272204226593353, 0.2955023648497107, 0.8990277186987925, 0.5135994446817513, 0.6840599991419951, 0.06101899952800307, 0.99942006281975, 0.9995267, 0.39592843333333333, 0.11094880817785234, 0.3859070935132873, 0.05517676494261374, 0.9997900662747904, 0.7411380621400363, 0.35053459318134733, 0.18897010610668746, 0.5734189165712473, 0.5355971912787099, 0.1127846376067726, 0.5128362666666667, 0.21687266666666666, 0.99948183931724, 0.9993769666666666, 0.3979311797970718, 0.22720357872334015, 0.2553845880758716, 0.2097847582648821, 0.49662113333333335, 0.23094903333333333, 0.606874879986974, 0.5995423262395045, 0.04100397865553721, 0.4983350302253898, 0.9998918666666666, 0.6290681333333333, 0.24647303333333334, 0.9995462569198823, 0.9999013741424176, 0.5922943146160601, 0.2558439527701769, 0.5418208747088421, 0.11668116781934774, 0.5991485861536594, 0.25587124455836197, 0.8673868949526853, 0.39341578192787274, 0.6300801629582218, 0.13565893533110399, 0.41230804337774457, 0.4015905937024635, 0.19867005396292836, 0.3364069007041389, 0.11032579253997155, 0.9995002292888459, 0.7653697139085811, 0.014019349416739102, 0.9999459290719676, 0.999773183707984, 0.610518425128477, 0.1384320713598487, 0.7742089333333333, 0.46045046666666667, 0.1615643, 0.9994692183083219, 0.9994405, 0.38258145745987626, 0.3611115370374346, 0.38591561359123416, 0.04046873333333333, 0.7606910518545307, 0.16626232895130677, 0.8668868230079283, 0.9998747, 0.30011143333333334, 0.9993399, 0.5782996763005742, 0.8008581141342399, 0.0911094, 0.2729087287069156, 0.36901374441282814, 0.28759876666666667, 0.1832840769010939, 0.8991886725760944, 0.07889227860952223, 0.5758979286546626, 0.9997569622118281, 0.8178143171405652, 0.07479474899084504, 0.2920413666891479, 0.026831, 0.9637842979663692, 0.27186362946817516, 0.10983496001224664, 0.1657525869941525, 0.7178849692500799, 0.7829519777956697, 0.8976911688076913, 0, 0.07963213004374856, 0.9995959647542332, 0.9999933935174992, 0.9995865643238645, 0.45913003333333335, 0.45875730984639834, 0.9997245330762309, 0.6916628209633036, 0.19168832448487239, 0.9993250245202684, 0.2425235, 0.6219484007200302, 0.4346752535194117, 0.9994362166561114, 0.8440079650820659, 0.09393015879824053, 0.25512643333333335, 0, 0.9770132, 0.9993828, 0.5610453666666667, 0.8984327529165563, 0.3829108573834669, 0.36741278817291984, 0.09188570485331572, 0.901171709695042, 0.3497933395325573, 0.8650582804092808, 0.12418840110964419, 0.10700408023102327, 0.7170981333333334, 0.5952356, 0.5935057333333333, 0.19982653333333333, 0.9599620362617429, 0.9137641618949631, 0, 0.6532274082358649, 0.06367701767091255, 0.4284249031791401, 0.8154209366828266, 0.9994343760116382, 0.4346424758216468, 0.8172005676606278, 0.11556414320794527, 0.12203544856795133, 0.7446825609904048, 0.3421534952278016, 0.5780376407630636, 0.9044225103494498, 0.7918403529632622, 0.1974618052925235, 0.22286420719466368, 0.999681207624032, 0.9177365463505213, 0.15819567150030928, 0.4297637226859533, 0.6078527666666667, 0.2453988, 0.4405903666666667, 0.7260338, 0.11834993333333334, 0.9617488, 0.6324143, 0.13647510126972323, 0.8071902558587868, 0.09971540181476053, 0.30324250949410136, 0.21794657225963215, 0.9405492982230116, 0.07008756666666667, 0.18869246666666667, 0.8264209333747738, 0.9505291629613781, 0.5646056498692255, 0.1218928942188392, 0.9095932486482524, 0.06097824695505363, 0.19559753782835745, 0.7580931103970613, 0.35609189492819704, 0.6531013307623483, 0.12240053102443464, 0.45014753842207, 0.9998096993610601, 0.7789792813700157, 0.2374392109456167, 0.3008299571319996, 0.21853611176793566, 0.9495016212020848, 0.1288392, 0.1016829, 0.016718725835778638, 0.9998810332222977, 0.9998854783901319, 0.43780773183469046, 0.8215759632557827, 0.9994270471358686, 0.4350397300769797, 0.5667422433028408, 0.039556448601392735], 'oldestBlock': '0xd11f1e'}}), + (('0x400', '0xd11f1c', []), {'jsonrpc': '2.0', 'id': 14, 'result': {'baseFeePerGas': ['0x22d21c4e2b', '0x1e937d4d6c', '0x226548ee59', '0x20a953d2f3', '0x1dc99e40c0', '0x1c2a14fc29', '0x1de2422a66', '0x219de0c4e5', '0x212ab95619', '0x20d012483a', '0x1d3da1cb24', '0x1f6f08e9e5', '0x1eed647bb7', '0x210a67b48e', '0x24ed65248b', '0x2124566680', '0x1ebef012e0', '0x1ea798de81', '0x1bddd9b779', '0x1b290d5e59', '0x1ad892c43c', '0x1b522367e9', '0x1bdc18b813', '0x19fcf70d03', '0x1b2094997f', '0x18878f4f39', '0x1b403dabbf', '0x18a0b99089', '0x160b256abf', '0x15fa23ebe4', '0x13dab168f1', '0x152f006d6b', '0x14ca78f8d5', '0x147e1181ad', '0x1639a0eabc', '0x1900601e9a', '0x1a23b2e45a', '0x198ba0d63a', '0x19b08a8720', '0x192f078035', '0x1b76b5b984', '0x1b7240d548', '0x19cc3a2f2f', '0x1aa7981f8d', '0x1812a6dfd6', '0x188eff09de', '0x1b3f13bbbb', '0x1955cc89a3', '0x16a9a16244', '0x1915039de5', '0x17e20c919e', '0x1ade3a06e7', '0x1a7e18ef9d', '0x186de91ed4', '0x1805b1b6dd', '0x1591588a50', '0x14fbd30b80', '0x1748d61dd4', '0x15086043bd', '0x17a95fac11', '0x1a9d7e9501', '0x1ded990d95', '0x1cc2c851b4', '0x1c278b828b', '0x1c3da43f14', '0x1b576640b5', '0x1c0a855a89', '0x1b7e4771fd', '0x18bfb2bce9', '0x15a7bc654c', '0x185c58d695', '0x1b678f4bbe', '0x1c3fb4ca87', '0x1a430547ce', '0x1903fba04f', '0x1c23ea4588', '0x1e252741fc', '0x1a83c2ef08', '0x1743e88fea', '0x1a2c4a94db', '0x1aff49d8b1', '0x18f12dadbe', '0x1c067ca6b6', '0x1a7ee2e4c6', '0x192e1c1344', '0x17f2f1d345', '0x1af11b6313', '0x1df589fe59', '0x20e5f4540b', '0x1cec9ab207', '0x1b93991a85', '0x1ef5442555', '0x22a9436394', '0x2205928b38', '0x1e7f541c27', '0x224eb665b4', '0x24319d8027', '0x1ff36585bc', '0x203854c662', '0x1c71fefa44', '0x1ef14d6753', '0x20bfd87337', '0x1dba657c58', '0x1fd21ac22f', '0x1e985d894f', '0x1b6c09debe', '0x1b2c7b12c1', '0x1958377829', '0x185be1060f', '0x1b664dfe09', '0x1e750e2b3f', '0x1f7d6fc950', '0x1bf390cd51', '0x1de5dab66b', '0x1bc16ee837', '0x1b1f8a83bb', '0x19887a65d1', '0x16fd9726ea', '0x17b581c4ed', '0x14bed18c50', '0x1705f5b222', '0x1650205245', '0x18b02dc68a', '0x18871d9bf5', '0x1b0b7e43ad', '0x1b40458de5', '0x1b1f6fa631', '0x1a2545fb54', '0x1d698dd8b8', '0x2005bd5d65', '0x1dc9b479b4', '0x1c238c5ca0', '0x1b3a289be4', '0x1bc1beacee', '0x18949fa4df', '0x182f8f98fb', '0x18e35eab14', '0x1bff03cbe3', '0x1f143de3dd', '0x1b9b5114bb', '0x1838ba1ab0', '0x191ba0bdc1', '0x16d4810474', '0x19ae20ea7f', '0x1ce122a29f', '0x207ce8b33d', '0x1d62b5277c', '0x1f18bc1913', '0x1c7470fc65', '0x1dabd8fc5f', '0x1ab1580053', '0x1ca6d2a442', '0x19d55d7a51', '0x188306835b', '0x15b967a6a3', '0x1869d5fd5b', '0x17d4a4d514', '0x1ace89ac24', '0x1bf308e6a2', '0x191bf2eb2b', '0x19080c2bc0', '0x1aa3c125e6', '0x193dddde14', '0x18dc0dc117', '0x1b8821d9c0', '0x18d7534ea7', '0x18aebb92d3', '0x1bc3b07d4c', '0x1f3b538084', '0x22e7213fa2', '0x21707be5e7', '0x1efe9bd5ca', '0x1f2b9df72b', '0x1bafd0866b', '0x1f24c475a6', '0x1d4c9cef24', '0x20df1eaca4', '0x1dc57a993c', '0x1e1b1464d1', '0x1ce5ebf90a', '0x2081e8f123', '0x23908627d9', '0x252a944665', '0x20ca2b50c1', '0x1ed6884f89', '0x2159eabf8e', '0x21e294e1d4', '0x2402b8e9cc', '0x211e922dfd', '0x22204bb715', '0x1ee1ac93e9', '0x1cb11539e8', '0x1dc209c2ff', '0x1cbc097ec3', '0x19bf384878', '0x1cf6167461', '0x1a187b4db1', '0x18e4a3fa3b', '0x1796aeb315', '0x19472aaea8', '0x1a2824259d', '0x1c3c6143af', '0x1b71898646', '0x1b9a02583a', '0x192d7db80e', '0x1b062427e0', '0x1e65c7f6b6', '0x1e5286e96b', '0x1d3342259b', '0x1e49c86c2e', '0x1b52d156d7', '0x19cbe1d74a', '0x194873bfca', '0x17ef2b3510', '0x179e575f8d', '0x1796b84ecd', '0x15663ea375', '0x16f2d55ca1', '0x1992cbd2fc', '0x18b8c6f8f9', '0x179f636a92', '0x188fa2f470', '0x17cffdce37', '0x1606e3cc96', '0x18a20431eb', '0x1bb52bcf56', '0x190aecd1ec', '0x185206a671', '0x19fcdb4249', '0x16f95f6b03', '0x1633206933', '0x18f9717513', '0x18ec24c1f6', '0x1755ffdc68', '0x16c3e8a6c1', '0x15d1970bf9', '0x188ad6cde4', '0x1b9216c93d', '0x1f0428873d', '0x204fcf48f9', '0x1d0f75e3f9', '0x20b0af9a0b', '0x20e84a4a43', '0x1e3730e8a9', '0x1e5dafbf9d', '0x1e09196613', '0x1f87f516b5', '0x230d41957e', '0x222ee0cbe2', '0x240dee09db', '0x21ef0db7f1', '0x1de98d7674', '0x21a5d1250c', '0x25d9cc7c5a', '0x2975d2402a', '0x249fba3c87', '0x263cec77f0', '0x2423482ea2', '0x21a8585204', '0x1f1374c8d5', '0x1f9b7fedd1', '0x237242e3f1', '0x27e078dc1a', '0x2cd71b285e', '0x2e1bce8c09', '0x2a2b7674d1', '0x28b99ed749', '0x29cde783d3', '0x25506c9a7b', '0x29f61e407d', '0x26cd706bb9', '0x25cabde14b', '0x215d17aad3', '0x258846ba70', '0x2773624f24', '0x23c6fa8ea6', '0x2007c5d14e', '0x2407868a47', '0x28873e3577', '0x2d96e2ee22', '0x2a102fc86c', '0x2e0b4f6565', '0x2f9c07a556', '0x2b86eb365d', '0x2868f4b7bc', '0x28296860f3', '0x2d2e3a121c', '0x32d33d4a14', '0x2ed66b82a7', '0x3045e8e35c', '0x2b9483bb6b', '0x30ee963399', '0x311e061455', '0x31c4b65c01', '0x3025f69394', '0x3628c898bf', '0x3810f8da8d', '0x32e1558190', '0x2f0c751321', '0x2c80674d7a', '0x30703daf1c', '0x36514f0212', '0x3d19af561e', '0x35e9fc3aa3', '0x37188fdb1d', '0x321510d353', '0x3856043911', '0x3f608a3384', '0x38b7d39e62', '0x3f4c78530e', '0x3822755751', '0x341e1357a4', '0x3664e414d5', '0x3d30add38a', '0x3c04e979a2', '0x34ed4628e1', '0x305c4a0c55', '0x32596ebcae', '0x35a605f4f8', '0x2fe178402e', '0x317f9738ee', '0x30b24a5bca', '0x2ef49fb161', '0x2fe41d5619', '0x2e18107c52', '0x33d5adc147', '0x3277b04c54', '0x38c5edab6f', '0x3fdcb2ea57', '0x3c4c5a8695', '0x3a75f6d22d', '0x3a17d09429', '0x3e0ebb9b23', '0x39111dd237', '0x4032c88fd3', '0x39c8c12e54', '0x34f4803687', '0x3a244f48f4', '0x3411914446', '0x362cac2aba', '0x2fba2f5ae7', '0x35b14cd231', '0x355f6d96b8', '0x3ba2baddcb', '0x377ffddfcb', '0x34d8c17634', '0x3548095a3d', '0x325a35fa9c', '0x2f2cdcb8eb', '0x2eccd58b3d', '0x296a1b8e8c', '0x2e9693a8d7', '0x3467edc811', '0x3af304715e', '0x36453aaa7f', '0x34080efa40', '0x317f4d4e89', '0x36155c31bc', '0x36c36ce91b', '0x347f8dc5e5', '0x3b0d7a1704', '0x383d964cce', '0x350e1b0909', '0x2e927b8a72', '0x3463157b7a', '0x3109f473ce', '0x3689bd437c', '0x3d59bd4dbe', '0x3f8e4f8672', '0x3845689492', '0x35d3090ba9', '0x3bc15e7dc0', '0x38c4543e9d', '0x3912a9edbb', '0x36bde9e9ae', '0x35a662c811', '0x3518db24dd', '0x311495b833', '0x33fc38591f', '0x3320cd6896', '0x34f2736f57', '0x2e9cde71f3', '0x2e5d08974c', '0x2a35948280', '0x27e6689bea', '0x28ed02d87d', '0x2d73aba29f', '0x33111cca33', '0x2e001872d2', '0x323035976b', '0x35cc53b1f2', '0x2f780b8ece', '0x356091f494', '0x3541a3b43f', '0x30677e801a', '0x350a5ba30b', '0x2f15d1827c', '0x2e4d06a6cb', '0x2fb91179df', '0x2c10645430', '0x30e58576a8', '0x36b029b48d', '0x3761955e8e', '0x3b1d308e1a', '0x362ec5c0a8', '0x31c558fbbd', '0x2fe375ab17', '0x2c9a0d1e5c', '0x2acf39f3c5', '0x29dc9c6147', '0x29e3efa00a', '0x253809e8e1', '0x29dec47c41', '0x2ee25b304d', '0x30bb18cfdd', '0x313635efcf', '0x2e927fd61f', '0x2eeafcbb1f', '0x2b877007b0', '0x30f7c42314', '0x2b03277729', '0x2cde00f68c', '0x32795880ac', '0x33cd06393a', '0x2f26996ae3', '0x2941c63d87', '0x28e25a3b3e', '0x27f4340031', '0x28486a0ab0', '0x2d4ff54424', '0x32f9420574', '0x324ed5560c', '0x2ed7b488fb', '0x34b2a03806', '0x37b788de97', '0x330ed7d3fa', '0x2e4f9e71ce', '0x3375c1f1a0', '0x2d735cd8d4', '0x302bbd3e2d', '0x2aa8b82a55', '0x2b6ce48801', '0x2797ad6efe', '0x265c3e585d', '0x23ffc6eae4', '0x27bc5c9ae7', '0x27157a71b5', '0x2bf7b11337', '0x317627f5f0', '0x305012e2dc', '0x2b698c284b', '0x30a9fe2c40', '0x2a94be66b8', '0x2fe6188fd6', '0x2d7019a788', '0x2df0253f24', '0x2a895c9675', '0x2aadb612e9', '0x2af9e39ffb', '0x30578749b7', '0x2f12710a6f', '0x29584b08ee', '0x297b407c1c', '0x288e30f14c', '0x2aff30cf6d', '0x25d40a8405', '0x2a8dff5e1f', '0x2fde12b5c5', '0x3024b89d09', '0x2f404b02c0', '0x2cdfc12161', '0x2a3d87bb3a', '0x278ea4cd57', '0x2a05101287', '0x2f451f4d9c', '0x352c298bd8', '0x34725ae63d', '0x2ec09194d6', '0x3497a2be33', '0x2e853b01e4', '0x3454cedda5', '0x2e309d03a4', '0x30a7e4de2c', '0x2bbe651f6a', '0x2a88c20d86', '0x276f9e4c0f', '0x235c443bb9', '0x27c64729b8', '0x2b98c5e4d9', '0x28f17bbcad', '0x2b25dba54b', '0x2671b0fb4e', '0x2b3f02ab2b', '0x2b5c873538', '0x294ac2d2df', '0x2abdd98ffa', '0x26013f15f7', '0x231a9a8ba5', '0x277ccb398b', '0x2c6c1b68e6', '0x2b08b49604', '0x2620ecd165', '0x2ae3e6c4d0', '0x2cdafa2376', '0x273f9adf08', '0x25fd8dcf05', '0x2a3f08030d', '0x287f0240d0', '0x2668e29e04', '0x24b1bb6392', '0x21de917b82', '0x230e6ff32a', '0x2712287925', '0x2997e11e96', '0x2464e4fac4', '0x220baba24e', '0x1eec776943', '0x1b0ee87c1b', '0x1e6ffa3158', '0x223ccd587c', '0x2283037262', '0x26d28ddb09', '0x25d1ffb251', '0x225cdcdc9d', '0x21b217304e', '0x25e818f895', '0x2aa4cfe23a', '0x2da95552db', '0x294858cd94', '0x2e715fa357', '0x2ac7e69c04', '0x256ee9c884', '0x2a1bd8fead', '0x27706dcd3a', '0x2c5e664f97', '0x31e971718f', '0x2e448cfe9a', '0x2ed2f1de57', '0x2e8ec43cd3', '0x2950fa3767', '0x2adba15f8e', '0x2fe63ec7c0', '0x2adc9c6a52', '0x26f60b0cc7', '0x2b67fd348c', '0x30d3a9fc14', '0x303ebfc2d2', '0x2ba6cd7357', '0x277d609583', '0x2c6b6fee25', '0x2d76633d6a', '0x2ab1109b64', '0x26e455644c', '0x23e83f20d9', '0x2864eacffc', '0x23584d75fd', '0x275b03055c', '0x2c45ebccc9', '0x30ae2a867b', '0x2f62be1f07', '0x2d061eb1f3', '0x32a509d2fc', '0x354b4cd3bf', '0x3b57f38c92', '0x3851c55f4a', '0x339d827553', '0x31f9a59571', '0x2ed4923985', '0x2fe345c468', '0x2dc8fe215c', '0x2db519d4ba', '0x28cab93f09', '0x2de2f83102', '0x339ef1cbf6', '0x37dfbc5bbc', '0x3751be3fed', '0x333aa8148c', '0x2d41c44e8f', '0x30a8a02232', '0x2cc8914b6d', '0x3081cd23f6', '0x2c70b8d2d6', '0x2c8a1ff8ae', '0x2b786e50d2', '0x2618513c4b', '0x2adb23295a', '0x2ce93ec87c', '0x309afb0c26', '0x30d0f011e8', '0x2d25487336', '0x3283e6873f', '0x2c6996b4fc', '0x2d98843a1d', '0x2934d6abd2', '0x297c4266e9', '0x2eaa02949c', '0x347f0f800c', '0x31f65d6523', '0x34245dc877', '0x3150cf64b5', '0x35db25ebee', '0x2f3dd4faff', '0x33dbefd1e2', '0x3a55e4a8e0', '0x365340737c', '0x39bd327434', '0x37e169cb8f', '0x31a23bd754', '0x2db46e59ac', '0x2b7d578532', '0x30eb135c0d', '0x3682e0de3c', '0x373d0f51e2', '0x33cc4429a1', '0x309f04aaf4', '0x36b1d447a4', '0x3a666476e1', '0x35453b892c', '0x3a01f97727', '0x3513c03b64', '0x311fcd771f', '0x2d858d6ac0', '0x32b6e0f062', '0x381a2cba7c', '0x32522964cc', '0x2f372b621c', '0x2b68422cfa', '0x30d39319e4', '0x36ec3af312', '0x3dc7dd8918', '0x3970252d98', '0x3f09caaa39', '0x37289154f2', '0x3dcbec0071', '0x3e66b07184', '0x40a70a369d', '0x39e910b12b', '0x3576a02d52', '0x2ffa0172ba', '0x34132a8ba4', '0x3a8b1d92a3', '0x365109e0a4', '0x35b37de8cd', '0x308fc33d03', '0x2fc0ea2a07', '0x2c50b6f2f0', '0x2e73a7eb9c', '0x296a019305', '0x2be9e0fe38', '0x3165fa3501', '0x36fdf1fc1c', '0x311f3d3de8', '0x3742b98975', '0x36f295d0f7', '0x32ec2c3047', '0x384ad901f3', '0x34b39630ab', '0x32e2f9582c', '0x2fe58d56ab', '0x35e15ca19d', '0x34132dbe9a', '0x3108086ffb', '0x2c3770e0e0', '0x31ba9c129a', '0x2e3e8d42c9', '0x34051f1b6b', '0x3a843507b9', '0x3bbcac139f', '0x385139f95e', '0x35dbdd27ac', '0x3a3aa7fd90', '0x333b1f0020', '0x37db2c8770', '0x32879b91c9', '0x2e2ece09db', '0x31624a85e0', '0x30385040d7', '0x35a6e5d9d1', '0x3c5966b4da', '0x3b86ad07b6', '0x34383573dd', '0x3153d6a356', '0x377cfbc394', '0x3e29b3e9b9', '0x45ed97eb83', '0x3f15ba6fe5', '0x397d20459a', '0x36a47700c5', '0x3b0c43dc42', '0x354a3af7ef', '0x3652504f61', '0x32484c04b6', '0x2d261b1586', '0x32ca7f3faf', '0x3922b70095', '0x3d7fdf5da5', '0x37a08e8c83', '0x351b07b540', '0x384875a9a7', '0x350d7d94f2', '0x3b67ec23d8', '0x42ba8377b9', '0x3edd247008', '0x3fd7883460', '0x3e926ef6f4', '0x3bd490829d', '0x365c7e6eee', '0x35424cb06f', '0x32ed2135b8', '0x30ec4803e5', '0x2bf0f364bd', '0x2b6b6d265d', '0x2c0ef2da05', '0x277116f5bb', '0x25d4b2358b', '0x24e1ef1440', '0x297cf294d9', '0x2e656931a3', '0x2c282d7e8d', '0x294ac1eb69', '0x2e73341f99', '0x2ecad53cd8', '0x29efb06a48', '0x2ee267bc34', '0x2a976175f7', '0x2d45f1d750', '0x282ad2a311', '0x274c606336', '0x262f6ab49a', '0x2af470f523', '0x2d0b83c8e0', '0x2814acb1c5', '0x24fc3bc948', '0x218e762dc7', '0x25bf1a9932', '0x2a766d7a00', '0x2d13d5a105', '0x282cdf2175', '0x29beb6178f', '0x2b460b6463', '0x2acbee72f9', '0x290c1409dc', '0x258e5cf33f', '0x2852b45f8b', '0x2594dcff34', '0x217762541d', '0x25a4febbd0', '0x2793140a2e', '0x2c7f6db202', '0x31e08b75e9', '0x2d26a352fa', '0x2fdabaf3e1', '0x2a0c4d2c33', '0x2f4d177071', '0x3535e71658', '0x3b5a391a93', '0x36ecdc42b3', '0x336919f630', '0x301335adda', '0x30113a53b3', '0x2cc6ff2a36', '0x325efb435b', '0x2e8c04e196', '0x290f918ac4', '0x28b3be2d3b', '0x28584fb5ee', '0x269bb5cf85', '0x2b6f29be27', '0x282d87f80e', '0x2d036bd784', '0x32a1f71d36', '0x34aaa5eb8e', '0x2f3aa088ac', '0x352166aed9', '0x30a3624679', '0x2b3c89a995', '0x2c74937170', '0x2ad43835a1', '0x2824e9b6fd', '0x28749c4778', '0x23a9f284e0', '0x2614cccc7e', '0x22f62a2aae', '0x20d81bc423', '0x24edde577b', '0x23aae12375', '0x281fcb12ed', '0x2d223b7fac', '0x2aa5e22abd', '0x2ff9a2794a', '0x35f7ffa056', '0x3987cc7fbe', '0x3256d2efc7', '0x342e037597', '0x2e77f70438', '0x2f17379508', '0x297e541408', '0x2eac76d55b', '0x2bbec93ce3', '0x2646f01547', '0x27c9c15335', '0x2c4f9959df', '0x31d7ff3543', '0x2edb9af62e', '0x2d44f1cd1d', '0x32ecfad81e', '0x3275ea57f5', '0x2e90f68919', '0x2bc62efd97', '0x313dd317ea', '0x2f4fcf1d56', '0x3538ea369a', '0x2e91ccefc7', '0x3461fa795f', '0x3aedc809b5', '0x42498db0f4', '0x3d31dfef67', '0x3dc16f5cb3', '0x3e0ac2b80d', '0x3bb54a2af8', '0x36cfc69542', '0x38dfe99e30', '0x36cc232260', '0x37bf655991', '0x3e40085271', '0x4317bd196a', '0x3eaa8581fb', '0x3fc99e28f3', '0x3d05c3a69d', '0x3b534625e4', '0x33e8dd6128', '0x3a63feed4b', '0x3bdf636e16', '0x3743ad6585', '0x35f785d6b5', '0x30a1ee7e34', '0x2cccf2cb4b', '0x2aee88d577', '0x26f6023c6c', '0x2bd47c9b36', '0x30b4f4ad81', '0x317bf9ad41', '0x367bc5d46e', '0x338fb1d61d', '0x2f35bd8cdd', '0x2d43434f84', '0x2ce3c774be', '0x2cd5df4c4c', '0x2793de08c5', '0x260709f08d', '0x277314a9ca', '0x2c60e01ce2', '0x2d271777e4', '0x2b4360f5b6', '0x27a24d01b6', '0x286956c9aa', '0x281b16285c', '0x2a09f82cbd', '0x275ed42f80', '0x262fa43146', '0x253100d7b8', '0x2191e72b68', '0x25c3b2bec4', '0x210b3c66ec', '0x252c725c61', '0x22e694258b', '0x1fe05d8d5b', '0x1cde1c3d72', '0x1e9916679d', '0x1e48ac3abc', '0x1ba25f1cb8', '0x1f152b7bc5', '0x201ac7a6e9', '0x23c6241e97', '0x2686209188', '0x28fce3bddf', '0x23dd474624', '0x1fab4ca796', '0x23a030c8a8', '0x2813f2ff96', '0x29247d6dce', '0x24b680e23b', '0x23be793924', '0x25a81f2d9b', '0x221a39cc50', '0x1dd6f292c6', '0x2190fa7f04', '0x24ecb4860f', '0x24aacc9c09', '0x293fb68955', '0x27e4e65e6b', '0x23ae9b9b9b', '0x28237822f1', '0x2d2623c0c8', '0x28e735776b', '0x2df4e250ec', '0x295c200c38', '0x259d63972e', '0x23fa4f96e0', '0x24bcf88771', '0x231532e0be', '0x1f016b84e7', '0x22e0bc4753', '0x25bbd3e11c', '0x2a7252ac00', '0x29dea9f923', '0x2a57bc2f93', '0x2b022e981c', '0x2e8d9757a4', '0x2d2b1ccd05', '0x312cf97283', '0x34ffb30091', '0x2e5fbca07f', '0x2c274a27ec', '0x2890c25d68', '0x2da20a473f', '0x28aa11aa1c', '0x2ab1eee0b7', '0x26aea40c49', '0x2b839087cf', '0x30f2bf806a', '0x371071b9b3', '0x3df13b5e97', '0x3bb02d892c', '0x35e94f17b6', '0x38b97d2d6e', '0x347290a0da', '0x34a3def214', '0x307b7e8874', '0x30f17decf7', '0x2e92ee6ad9', '0x2ee86e0aa0', '0x296c2567c0', '0x2ade43e935', '0x2f099caafb', '0x2a783e15bd', '0x2853889824', '0x24cecb1bf5', '0x2967ff3834', '0x292f69931c', '0x2d1ad091da', '0x28179048a8', '0x2d195648aa', '0x32ba8d8702', '0x333b0d8e5e', '0x2cd3abdc93', '0x2a07f4065b', '0x2f47ca9ee0', '0x2c6dbd91bb', '0x2971001295', '0x2e8124d2d6', '0x2f00991f03', '0x29fb021cc8', '0x2e1269864f', '0x2b95216bb7', '0x2fa478aa7a', '0x35977b6252', '0x3c49898ec4', '0x3944cec195', '0x406b9ad596', '0x4876b2bbfb', '0x404e8fb894', '0x421cbfb92c', '0x41112cbcbb', '0x3fc6fbf908', '0x42718135f4', '0x4849fcdeb5', '0x42d1fa72a7', '0x46911c440a', '0x4037f0a98e', '0x46feedd17f', '0x480388783b', '0x4ecbeb76a1', '0x49f1cb1b53', '0x48aa0bf9c2', '0x43ac129d42', '0x44dc6556b3', '0x3cf93e960b', '0x40ae8fa3f0', '0x4824be8770', '0x5005bc1dda', '0x4ec136e121', '0x45fb0e9a0a', '0x44f57af2d7', '0x44220edf5b', '0x40c9aae74b', '0x3f20e968a7', '0x39ebcbe15b', '0x3bb583ff42', '0x400ee805d8', '0x3e0fc317e1', '0x39dc1602d3', '0x3df25d3278', '0x3a8ef07fc2', '0x393a75c9d2', '0x3cc07beb1d', '0x35a12e961f', '0x324be1479d', '0x3817304a99', '0x33dbf5a6d6', '0x3027c55dc3', '0x32375038d9', '0x2e42bc142e', '0x2aac742a73', '0x29fa63a16d', '0x2cb5772139', '0x2961880f5e', '0x27aa15f2a9', '0x2574a5d5ff', '0x2a227acade', '0x2f66a4111f', '0x31168b0b35', '0x2b3c2847b7', '0x262428924a', '0x2a3465cdc3', '0x2629de352e', '0x2489f25dd6', '0x28e3157fb9', '0x266380b67d', '0x24acc0c0ad', '0x23990dc42e', '0x27feb74d4e', '0x2860e49d30', '0x23b4a30c29', '0x22c57ff37f'], 'gasUsedRatio': [0.012404026017126223, 0.9996725264886994, 0.2983222680563394, 0.14804187950682066, 0.2820314569810398, 0.7442005201701616, 0.9996534692248241, 0.4464765666666667, 0.4572933530407557, 0.06455636240448366, 0.7999895333333333, 0.4355577112283189, 0.7733286416119117, 0.9705331458984046, 0.08996420726413404, 0.21080843333333332, 0.48813830038365796, 0.13619606044965643, 0.39862514792652115, 0.45370153333333335, 0.5707537, 0.5788993381296498, 0.23128152357213946, 0.6753296, 0.1169556, 0.9437769982387801, 0.11496969517629714, 0.08026482285551384, 0.48794582709707146, 0.113626905898064, 0.7678175754831306, 0.4258498308813319, 0.44257994847047083, 0.8382039, 0.9996789333333334, 0.6820664, 0.409099, 0.5225779359788499, 0.421228, 0.8621392333333333, 0.4974644740589185, 0.25974337576048406, 0.6328645666666667, 0.1125547, 0.5807083666666667, 0.9377803091385405, 0.2194135047859378, 0.078051323298436, 0.9270411446889107, 0.3087747355825582, 0.9999485995669806, 0.44409648515779787, 0.18848174328123302, 0.433343191886233, 0.09129783000585312, 0.3916775089632605, 0.938593604781716, 0.11316813875274971, 0.9999633617788874, 0.9993059876449785, 0.9978962560210566, 0.34399318672648616, 0.4156636577903312, 0.5122630361044715, 0.3726121164313709, 0.6023639184011875, 0.421854748991447, 0.10070870748390288, 0, 0.9997432154286421, 0.9997878855354067, 0.6232383085810046, 0.2186359143913265, 0.3101819228149296, 0.9996466516655047, 0.7849773870818826, 0.018272166666666666, 0.009792428973559347, 0.9999290332670977, 0.6259629370400942, 0.19550683161275234, 0.9944628826689739, 0.28167045534394164, 0.30139625735482756, 0.3044308550642032, 0.9998657437350782, 0.947974493850371, 0.8924174891498283, 0.016810431775386377, 0.3136261141661159, 0.9904914234297586, 0.9784682408339083, 0.4262094097576901, 0.08563114833495675, 0.9997273666666666, 0.7199332815160671, 0.031075427973766657, 0.5337113101843574, 0.03137907284088756, 0.8511709432781768, 0.7335692192628168, 0.13098123031641903, 0.7815664608115611, 0.34594394944369344, 0.0851435512069507, 0.4637849126833207, 0.2307465690380482, 0.3444332489113995, 0.9993205666666667, 0.9463739333333333, 0.6356313666666666, 0.05051632919545936, 0.778546093309687, 0.21338826666666666, 0.4088628787322513, 0.2655012233178492, 0.10168906433742102, 0.6249943874893362, 0, 0.9392100052367803, 0.37659671815693696, 0.9257977, 0.4740114, 0.9104893404923425, 0.5304923794759668, 0.481173, 0.3558853113268227, 0.9997738333333334, 0.8549669, 0.22088173333333333, 0.27856121502647335, 0.370402945709416, 0.5778095333333333, 0.0422739, 0.435758, 0.6161638173009277, 0.9995126995451863, 0.9404773205490153, 0.05309299910693167, 0.009522616610671327, 0.6463705315940327, 0.13711407647676477, 0.9993577605197669, 0.998321048177302, 0.9998007436210655, 0.1180305154761357, 0.7329092902324602, 0.16018543413340583, 0.6709979908331869, 0.09846279585395526, 0.7935482461798923, 0.10655754660978042, 0.2953600333333333, 0.04510427766046878, 0.9951489954723958, 0.40451458604021523, 0.9995498324930207, 0.670489085654152, 0.0935249, 0.48761573333333336, 0.7569936623553767, 0.2900875666666667, 0.43945219173189287, 0.9299640012997346, 0.10908405572553466, 0.4744672856722666, 0.9994398333333333, 0.9995360135839314, 0.9701765388314363, 0.33228183333333333, 0.20755146666666666, 0.5226896064006502, 0.052959749429099465, 0.9994221018097122, 0.2631164330604337, 0.9876970961722282, 0.12275478113854656, 0.5449260642589309, 0.3395460122899796, 0.9995933666666666, 0.8761704333333333, 0.6801544374748608, 0.02897128721740085, 0.26191247738289253, 0.8259899027141485, 0.5640271324900086, 0.7509127349472008, 0.17884863367529927, 0.6215887666666666, 0.11969161219263945, 0.2163600686027307, 0.6486465, 0.3624312140805497, 0.08411453050451351, 0.9993721196011728, 0.10420966466502952, 0.31567729199582206, 0.29038005962383634, 0.7864759149619165, 0.6390626951049081, 0.8179375575209712, 0.38775203535963404, 0.5230427666666667, 0.14873066883144725, 0.7933214162926978, 0.9993479292892826, 0.49010296452896596, 0.3519716, 0.6490380666666666, 0.1084671515067797, 0.2764427580132408, 0.4203922387205334, 0.2866135683453276, 0.44723337810858277, 0.49495802577122533, 0.12874564465731866, 0.7895736032901671, 0.9575194874612132, 0.3667935, 0.3221527488258952, 0.6589103816496895, 0.37808128982968514, 0.20006414678854556, 0.9732325440544362, 0.9993039313611388, 0.11526598382015454, 0.38463498212509933, 0.7742234, 0.036148866034349206, 0.36517016984955764, 0.9999477149406529, 0.4916792038817444, 0.24536990559571487, 0.402182326225808, 0.33368388706049296, 0.9993198924049994, 0.9935665975761729, 0.9998912569847599, 0.6670754564886409, 0.0975008, 0.9996197620309566, 0.5265772914721387, 0.1728037, 0.5199066666666666, 0.45647504788425897, 0.6991693192246979, 0.9466320639794504, 0.40087073333333334, 0.7189731, 0.26473222231823956, 0.025960791762098704, 0.9995143666666667, 0.9996538619962393, 0.8814413656418238, 0.03340318383208974, 0.6762833516050347, 0.2803060848067082, 0.22547070550033224, 0.19319296666666666, 0.568402611817106, 0.985824186769241, 0.9999682975944767, 0.9978743, 0.6131449360300333, 0.15829867623592428, 0.3629638183669931, 0.606001875195653, 0.070364267441504, 0.9981746332943027, 0.19887538649437453, 0.3958276367804755, 0.031295282446799036, 0.9997879448327289, 0.7044519399062245, 0.12753954503897103, 0.08108603690382454, 0.9994054290339162, 0.999469514111299, 0.9995134831659565, 0.1906148308838701, 0.8785682559433918, 0.6359834333333333, 0.1570041, 0.21355336819737808, 0.4754283344707759, 0.999861164292724, 0.9997351328300857, 0.18617303333333332, 0.6225944365327258, 0.11113321606691245, 0.9912186997844037, 0.5151476292854166, 0.5530263333333333, 0.3697877666666667, 0.9993753, 0.6408427333333333, 0.1300033, 0.1987788, 0.283451, 0.8538629666666666, 0.9854962666666667, 0.9994858666666666, 0.029539266666666668, 0.5876907666666666, 0.13600536666666665, 0.9994751, 0.9999365666666666, 0.0797198, 0.9640945949613535, 0.047282533333333335, 0.21375086104914784, 0.6747300513756219, 0.9997635021645824, 0.4234540198158343, 0.027328772715517285, 0.15489374402873288, 0.6645012666666666, 0.7621033, 0.06995746666666666, 0.6351407517226095, 0.43519352068707, 0.3570010335916968, 0.5796933, 0.3499034473830362, 0.9981716316268562, 0.39449929676263235, 0.999776666249777, 0.9994576666666667, 0.2767785, 0.3781086435762145, 0.4748364, 0.7729776, 0.17831866150629422, 0.9998705998792266, 0.10035278816024076, 0.16571370553357373, 0.8917851045281636, 0.0821795434839026, 0.6617771941783879, 0.023966682248550402, 0.9999482335154724, 0.4761745467144135, 0.9693702768257096, 0.22260248148866366, 0.30877353045780326, 0.5329019949658581, 0.28011035145001095, 0.2476073377538544, 0.4681943739194988, 0.03968930773545084, 0.9997002887534507, 0.9995069631734155, 0.9994327055945428, 0.1825162511789587, 0.33497840849289884, 0.30517906579770504, 0.8706195799707143, 0.5502884132711185, 0.33455195538943977, 0.9993984585228284, 0.3095211661386845, 0.27343938827645425, 0.011232477957647079, 0.9994266333333334, 0.24435204310342382, 0.9485548756876674, 0.9996512591174119, 0.6437872045367004, 0.041520215831667345, 0.3260727638868566, 0.9407663169712612, 0.2999551372188519, 0.5215615, 0.3366261487676049, 0.42021419219991274, 0.45878086201704493, 0.19740834174251598, 0.7367401, 0.4340504502646835, 0.6423043994841062, 0.0214614, 0.4786018213452103, 0.14160403216376335, 0.28116066666666667, 0.6028361, 0.9423625169978485, 0.9941501278734527, 0.1031497553425303, 0.8641661498239395, 0.7877031554339432, 0.029409431715925194, 0.997866777459618, 0.49094573226044924, 0.13556456666666666, 0.8831221, 0.05089133333333333, 0.43336801613224685, 0.6228521, 0.19332204564423827, 0.9386831387323481, 0.9737811996442923, 0.5506909995220666, 0.7696104325141127, 0.1663182723278014, 0.1743007925983145, 0.348716803010017, 0.2254664, 0.33926332396918923, 0.4114479404763392, 0.5027341391965934, 0.05393343379398077, 0.9998840865864524, 0.9790060731507431, 0.6575492818483328, 0.53947505000519, 0.285458, 0.529687673346356, 0.21108133034257498, 0.9997841772161805, 0.013516133333333333, 0.6724976666666667, 0.9998577333333334, 0.6051527, 0.14092516666666666, 0, 0.4638613939845593, 0.4089847817191296, 0.5329329, 0.9994151, 0.9997603666666667, 0.44775960391989444, 0.22446941259133912, 0.9999858194723402, 0.729169118754659, 0.16552706666666667, 0.12811146582029315, 0.9447304132393994, 0.032891083270861154, 0.7394000061920933, 0.04231278747798236, 0.5718536005076188, 0.14694622792294731, 0.3755154, 0.2537875666666667, 0.9151943539533021, 0.43437770089733163, 0.9998115491288885, 0.9998233216078776, 0.40709880269138604, 0.0942694660610344, 0.9838941959004167, 0, 0.9995446991584508, 0.29449003333333335, 0.5440316802691161, 0.20381869023077756, 0.5133523009840585, 0.527889418726915, 0.9994193986256353, 0.394925892198296, 0.0133295476810824, 0.5132115552789306, 0.41070529235455033, 0.7407967289459779, 0.019169012904038624, 0.9997733666666667, 0.9993853, 0.5230610691340094, 0.42586343080586875, 0.2987685666666667, 0.26523723749574796, 0.2459159295215342, 0.7490139778957946, 0.9997867996020259, 0.9994710333333333, 0.44539963274137195, 0.06569407254254121, 0.9996644386666487, 0.0381915392305912, 0.9996385189660824, 0.03057632098545349, 0.7135479917848877, 0.09617543213330877, 0.38939949777518074, 0.20863906117952496, 0.08661202282426335, 0.9993274839982706, 0.8843913786918638, 0.256543861572186, 0.7153796602360389, 0.06393911157454484, 0.9996372943099177, 0.5106648564233975, 0.3091020109153805, 0.6404208540760661, 0.0567098997915384, 0.1946761470529803, 0.999494633003838, 0.9998867944921823, 0.3749917886561735, 0.044045047657129556, 0.9995330997072922, 0.6832714676715717, 0, 0.3717899333333333, 0.9480885248887795, 0.3342963666666667, 0.29391409288829456, 0.3213532439748025, 0.19206543333333334, 0.6401841064466118, 0.9580658417274415, 0.7582327806019458, 0, 0.24187792809411154, 0.1332105485369058, 0, 0.9995412982569334, 0.999398143333243, 0.5320424040032431, 0.9996214952525748, 0.39674339403155406, 0.13431679710200684, 0.42234860743697344, 0.9998820506989139, 0.9998772595801569, 0.7830574256831098, 0.11640706776744947, 0.9999936604215479, 0.18460145986725074, 0, 0.9996118876749813, 0.24640876331484576, 0.9999671666666666, 0.9997336, 0.20795646949245938, 0.5480876115484374, 0.47724916666666667, 0.049688587572431143, 0.6492498059664855, 0.9705279852485243, 0.07931546092762631, 0.13597804246647885, 0.9563629415737659, 0.9995234666324376, 0.45234593948863766, 0.11914972726020305, 0.11863298541023419, 0.9993620916906362, 0.5939020694089013, 0.25621269689294085, 0.1439837, 0.19302475534025643, 0.9998432665203821, 0, 0.9538792595271899, 0.9998145185249248, 0.8981834448530938, 0.39362252098888845, 0.30063123733920777, 0.9993591559807791, 0.7092586643848451, 0.9540400451497258, 0.29616038521000293, 0.16589526666666668, 0.37289893333333335, 0.24828893333333332, 0.5903198, 0.3243681, 0.49321156666666666, 0.06982601844034032, 0.9995807329420174, 0.9998651, 0.8295635978134018, 0.46029214494907345, 0.20424923333333334, 0.03368516022562699, 0.8006650181597824, 0.1814360476887475, 0.8325842648220062, 0.16464937383408776, 0.5089315433040729, 0.4039849255177933, 0.005370126381278138, 0.9999098784045801, 0.6918152622313298, 0.8290302356231427, 0.5173454, 0.19923678805687087, 0.9757580107074767, 0.016757245757244656, 0.6065747656062291, 0.11493206666666667, 0.5270819666666666, 0.9993289333333333, 0.9999327666666666, 0.30692229038344054, 0.6745068333333334, 0.28317758958289435, 0.8682710437196408, 0.008726195941453041, 0.8909777631584912, 0.9995373, 0.22501706666666665, 0.7513638931583309, 0.3712462, 0.052846328893169155, 0.18336716666666666, 0.3061305, 0.999305121451097, 0.9573326268437851, 0.5533667, 0.25085499323422655, 0.2546812377024885, 0.9996573333333333, 0.7709826312060394, 0.14866209832674035, 0.8557149324959433, 0.16000652992455153, 0.2020998355426021, 0.20665882148421044, 0.9562818676851689, 0.9249584356876408, 0.08780252849116918, 0.25314943333333334, 0.17737327166644895, 0.9993822327567505, 0.9994267730421972, 0.9994612656610292, 0.21883418357687986, 0.8899978684942457, 0, 0.9813840959262312, 0.5391322666666667, 0.6443159411832321, 0.08287220540309387, 0.1928338604315296, 0.08949121094402952, 0.8416902676543729, 0.9968655226629829, 0.21119807986610734, 0.4546792338445997, 0.11717258298555956, 0.43344532171179073, 0.21199797112801186, 0.6928444200167857, 0.0662001, 0.7414156924236517, 0.9995956662892885, 0.9529401688190093, 0.0730325696607967, 0.9998665694560034, 0.477340469886649, 0.20698997194619356, 0.9218032747322257, 0.24484192593584714, 0.36225112577946733, 0.26497323234613934, 0.9997115289736227, 0.36596939692892444, 0.26621849317641105, 0.10720560801369299, 0.9986708216865691, 0.21971244662005493, 0.9995779, 0.9995330666666666, 0.5834341, 0.27101563333333334, 0.3253859393697946, 0.8245730696015316, 0.0192657309676388, 0.8611260124356201, 0.11856083325258766, 0.1558946750349126, 0.7772561261662254, 0.40572036154669516, 0.950599174016983, 0.9993129896556014, 0.4454411590327304, 0.009021095189145211, 0.27846833134418936, 0.9995771943129941, 0.981160527272427, 0.9996676585366636, 0.10855659249079162, 0.14516995358959797, 0.3019555710778638, 0.8224943236917508, 0.1099473672743407, 0.5774311410623402, 0.20257630904871532, 0.09162186666666666, 0.9998712409334382, 0.9996633428227462, 0.8055115472924212, 0.11805694132950292, 0.3186793593036987, 0.7393314333333333, 0.2704212330006918, 0.979014247079964, 0.9930564666666667, 0.2683312333333333, 0.5622351333333333, 0.4204337, 0.32473467007199197, 0.13436432144641816, 0.4188892502791729, 0.3248036504602692, 0.3426499, 0.09268543333333333, 0.45252023333333335, 0.5588451456180293, 0.08086201471018192, 0.33662874337569165, 0.3997336598287676, 0.999479710115324, 0.9732019374791029, 0.30695010517687943, 0.24047816467974095, 0.9996599757528779, 0.5294770160768483, 0.08488649365440959, 0.9719644886595619, 0.13373190971533602, 0.7518719666666667, 0.048877261979656465, 0.41346878530015824, 0.3867001865423389, 0.9996305992981387, 0.6946351666666667, 0.05917666666666667, 0.19107643333333332, 0.12917183629814513, 0.999457332826844, 0.9997664333333334, 0.7463221502463823, 0.0649979606647633, 0.656283773636478, 0.6464746984193463, 0.4559080662842168, 0.3364892297491099, 0.15979880796635193, 0.7947013712186884, 0.22803974854630651, 0.06200222425456432, 0.9993873854027798, 0.7050777132578926, 0.9976174034948222, 0.9835622423978516, 0.12097269342800851, 0.7395064984592779, 0.014664417968725474, 0.9997221676051699, 0.9997273718829514, 0.9617036, 0.20163326154656688, 0.24403871317069006, 0.24048016134170613, 0.49935585863711357, 0.22622007074036682, 0.9996894935809636, 0.19632762027701237, 0.028550419902141456, 0.46505728459508905, 0.4649006508163037, 0.3278126380502562, 0.9999955827586234, 0.20010982183288126, 0.9814102563032093, 0.9993461244082646, 0.6606802130544513, 0.0870185064015051, 0.9998165965726359, 0.16179448462847942, 0.055761461878430875, 0.6127658279899172, 0.3536606993458224, 0.24925470413585984, 0.5310200045566795, 0.026229887803455518, 0.7711308503660472, 0.17231441982575518, 0.25774468089654284, 0.9975007139885902, 0.36334097918750424, 0.9998045327736559, 0.9994022139957671, 0.27970012846947223, 0.9996393712903678, 0.9997262389060148, 0.763983871463266, 0, 0.6462546684518357, 0.0621958, 0.553548293424804, 0.024558147531661384, 0.9993766747412342, 0.24902946666666667, 0, 0.6579017473749642, 0.9546913805116914, 0.9994527311840024, 0.2603787545734747, 0.3643967324574086, 0.9997988625075385, 0.4634687, 0.19129619926142122, 0.260160484821802, 0.9995959666666666, 0.3432421333333333, 0.9997125526409872, 0, 0.9993131286061082, 0.9998674330814562, 0.9994828, 0.19270169346300003, 0.5366555187670015, 0.5185523676543031, 0.3495296974397585, 0.17196853280126523, 0.6505545315896573, 0.353907, 0.5693630666666667, 0.9665658515540425, 0.8111705904258844, 0.23608886112248983, 0.5715838336231561, 0.32660866666666666, 0.3887474452135844, 0, 0.9994049, 0.6015233333333333, 0.19212991486186262, 0.4060893134124019, 0.10462120026103751, 0.1848229376828619, 0.3331446190366491, 0.13003590623560035, 0.9998904487599231, 0.945067658504882, 0.5638447909874751, 0.9041048210239951, 0.28546306666666665, 0.1624303, 0.33501961331907276, 0.46703835667478627, 0.49515936844400843, 0.030921791289114015, 0.3433344965826063, 0.6495800460767005, 0.9997661709878655, 0.5697890508580283, 0.33261213333333334, 0.16445284513006383, 0.5784673, 0.469743861785633, 0.692803603043483, 0.24609086666666666, 0.3796735178568539, 0.3958071085296571, 0.11050311310962756, 0.999793932941806, 0, 0.9999084, 0.25542634284288057, 0.15338566666666667, 0.12244086666666666, 0.7397675496789281, 0.4589358616734709, 0.15002973333333333, 0.9991529333333333, 0.6315090647316229, 0.9571779333333333, 0.8074798958816716, 0.7558321624822484, 0, 0.032100462060893314, 0.9997428, 0.9998837, 0.6062542072333634, 0.06933773138188262, 0.39443853224922204, 0.7140427839748044, 0.12245455578992713, 0, 0.9995614270092829, 0.9001995840984057, 0.4721113, 0.9998141184867023, 0.36862781071929, 0.07767448830068137, 0.999577632544914, 0.999313561745026, 0.12383883950313315, 0.99418370390736, 0.09990804298696192, 0.13780701718748117, 0.325917042674002, 0.58454, 0.31976676666666665, 0.03512720171247223, 0.9995655853269305, 0.8275232564044267, 0.9995928482497568, 0.44564528216809635, 0.5451814306827398, 0.5628970560998511, 0.82966182460974, 0.3810233678279596, 0.8548739666666667, 0.8109783870616324, 0, 0.30847043333333335, 0.17495110642208783, 0.9996864663740352, 0.06446951465260528, 0.6997543395414338, 0.12404442759981607, 0.9996338989749172, 0.9995467746388674, 0.999793332554886, 0.9996402333333333, 0.3544376249925281, 0.11286604243717435, 0.7087280333333333, 0.19839896666666668, 0.5146890666666667, 0.184064461053781, 0.5380285, 0.3063574752587432, 0.5286837110609207, 0.032234021304416834, 0.639613, 0.8890362333333334, 0.11155716442893515, 0.2981248215206608, 0.1509954, 0.9997259333333334, 0.4786473333333333, 0.8806746, 0.05546143333333333, 0.9995432333333333, 0.9993239064613262, 0.5395794369408078, 0, 0.2505268, 0.9995703, 0.2587364227835148, 0.23105058231387682, 0.9886958333333333, 0.5428232666666667, 0.07263099082921139, 0.8898401971841841, 0.2838699639651116, 0.8726193923399065, 0.9994922134039614, 0.9997434654151902, 0.29972713277202806, 0.9995078314794986, 0.9994282561542969, 0.049744866666666665, 0.6123002666666667, 0.43676143087057845, 0.4207091259951843, 0.6672128666666667, 0.8519169, 0.19739318778120168, 0.7242799759946442, 0.14015268991087523, 0.9221399546612487, 0.5573546169451713, 0.8767477841187217, 0.2536919823480462, 0.43074479633568996, 0.22519709946293148, 0.5702659391260207, 0.04184115217282365, 0.7432703319631023, 0.9614369605825812, 0.9368440873306606, 0.4366348416516657, 0.05436070419183675, 0.4415962183102511, 0.4520950576006218, 0.30360332631162407, 0.3975607496449477, 0.1700395648411329, 0.623475988943973, 0.7913583427748985, 0.37532234238466416, 0.2291812158454372, 0.7825471232434947, 0.28120703085808946, 0.40915063333333335, 0.7462786666666666, 0.0310583, 0.25139028405428765, 0.9608022244801067, 0.19824783596109208, 0.2143141, 0.6711720333333333, 0.18493068185583444, 0.1898416, 0.4348014666666667, 0.7602087666666667, 0.20226326666666666, 0.33407014716795713, 0.2772569680150691, 0.9996875, 0.9999448127763427, 0.642370015762102, 0.02305553601793967, 0.028738587936650413, 0.9261459666666667, 0.11699681405559195, 0.32971264106513165, 0.9760074822467307, 0.2555838104231128, 0.3214196, 0.38254066666666664, 0.9940878333333333, 0.5383552, 0.03709257909651226, 0.39535209518441283], 'oldestBlock': '0xd11b1d'}}), + (('0x400', '0xd11b1b', []), {'jsonrpc': '2.0', 'id': 16, 'result': {'baseFeePerGas': ['0x187c1ef63a', '0x16000e99ad', '0x147a5d40d1', '0x1709896f9f', '0x14d3cfc49b', '0x123955cc08', '0x147d06e548', '0x16de3f7d8f', '0x1402778dde', '0x168261b882', '0x195208b45b', '0x196863b784', '0x181ff62e86', '0x1af8c42ae0', '0x1e57ac3c60', '0x1f0f72cd86', '0x1d8921e404', '0x1aded442a1', '0x1b9987b357', '0x18a0deefc8', '0x18f21fffd9', '0x17730a095b', '0x17d86fde9f', '0x1504f4c281', '0x16d70617fb', '0x14741a2a30', '0x141855dd8c', '0x156600df7c', '0x1462105d69', '0x16b437aa5b', '0x14150c19d1', '0x13a6f7071e', '0x1406559b13', '0x12dbee59e0', '0x13a68d2b2c', '0x15199d79fd', '0x14c1a40b9f', '0x1261f33e41', '0x140c382cd9', '0x1225a9b8c4', '0x13599d03c6', '0x12b71d6753', '0x12d4349bf6', '0x136ae63daf', '0x1397587e92', '0x118aaa496e', '0x13bbdc0f2f', '0x11f7930b55', '0x119cb41b70', '0x12d67b17e7', '0x1530d31e7f', '0x17d683ff93', '0x16629693eb', '0x13a353c725', '0x161718f210', '0x188d9117ad', '0x15a580f3ea', '0x183e144046', '0x1966071eba', '0x17bbeff5aa', '0x166edace16', '0x17903203cf', '0x15442459d2', '0x140e2aea8a', '0x15142c2814', '0x141b5f041d', '0x1225a5e966', '0x146a1a1c25', '0x16f68850e2', '0x19d4c461e8', '0x1845c42918', '0x1b4e47eeed', '0x18f9e670b3', '0x16d87cfbd7', '0x17dd111bc5', '0x152c4e61ad', '0x17b231301a', '0x171b95ba18', '0x14b015d306', '0x1744913951', '0x173b1e16bb', '0x161232a8d8', '0x1405065c0d', '0x1252a152e1', '0x146aef5d06', '0x13196f9acb', '0x12493056e3', '0x1490a1752b', '0x172232f9c9', '0x1a064401c0', '0x1765d19a5e', '0x16bcdf7b01', '0x17d505b360', '0x150fc0754f', '0x16dc8f8d25', '0x1546c5a7ac', '0x1350cb19f4', '0x15ba4cd106', '0x15d3168696', '0x14ea823630', '0x124d31ef6a', '0x14966733e3', '0x12922f21de', '0x14e3cd4d16', '0x1749f03923', '0x17b694400c', '0x1715061de4', '0x1670de3c4d', '0x193e9abe79', '0x1c24897dc4', '0x194b9cdee0', '0x17c8c7cf16', '0x1ac19fc0d1', '0x1de5f7b442', '0x1bf034045b', '0x1f5c15f44a', '0x1bc14f6b27', '0x1dce51ed03', '0x1b0e262a0d', '0x1b8845f2d4', '0x1aa56ff745', '0x1c19d4a6d1', '0x19753871b1', '0x1ca3759c7e', '0x1d0e5e3015', '0x1a07df49f2', '0x1961222b7d', '0x17c6deb6fa', '0x16c399fa6c', '0x156d88ebc7', '0x168a1e1c6f', '0x147fee608d', '0x168db25c24', '0x14df5b8b04', '0x172bbb8386', '0x1a1092223b', '0x16fb23ada9', '0x15516390ba', '0x16f4bd2882', '0x1716a21765', '0x19f8d1a643', '0x1c8d8443e9', '0x1925aa9b9a', '0x1901657111', '0x1730d2236f', '0x14d1fa802a', '0x14cdad0339', '0x12d9d13521', '0x15344be6a3', '0x1329d3a2fb', '0x158ed52a27', '0x18384dcbc4', '0x18ab8349fe', '0x1921c9c4ca', '0x16b483f795', '0x198a9df172', '0x188ceceac2', '0x16ccd3a8e0', '0x17445a7424', '0x1a2837e1fe', '0x175daca13e', '0x15d6d13b1f', '0x188c03f038', '0x15e195cea7', '0x15b56da375', '0x14ba3e7cf8', '0x162416753c', '0x174a64d5e7', '0x14802c2831', '0x170f127967', '0x194ad4ccc5', '0x17c8bb228c', '0x1ac1d23da3', '0x1b8e2ad6f2', '0x181c657c14', '0x162b136286', '0x1763b815b5', '0x18dde62947', '0x16392aadab', '0x144a7a710f', '0x156885e159', '0x13e5af4d93', '0x165cf570ed', '0x14bbdfc19b', '0x1276a62802', '0x13f634062c', '0x120368a00f', '0x12d61d8a9c', '0x1424968280', '0x15bb759d5a', '0x13f6a9e251', '0x144dbdf333', '0x151d47777d', '0x130497ae80', '0x13478d5c30', '0x155492f858', '0x12aa00994d', '0x137c77a26e', '0x11ae647d17', '0x10c6a54197', '0x12b1e19ece', '0x134fb38249', '0x157c461d2a', '0x14d07d70c9', '0x126d2387c2', '0x14ba99f5b5', '0x15280a362d', '0x15c6e98dd3', '0x1652612d86', '0x15a17b8ea8', '0x14273b29af', '0x1674e3c2ee', '0x1942a32bae', '0x1c3f3f5910', '0x1c36c66374', '0x194e802f60', '0x17fc15a327', '0x1adabd92b0', '0x1a2b664cda', '0x17ca2fa7b1', '0x17a55b1e29', '0x19d47f2b39', '0x19ad07a9a9', '0x16ac020fef', '0x15b90b5bf9', '0x1301e9f07a', '0x1562040640', '0x180d980110', '0x19fb20de86', '0x1a5d738ec4', '0x18d76839b0', '0x179079a8e5', '0x188a232c2d', '0x16b7ad3283', '0x17a5a31fec', '0x18f8ad1848', '0x1748165afc', '0x14d13ef50a', '0x162253c618', '0x16b3d1cfef', '0x197cf84fab', '0x1cab9f58b5', '0x1a1eabf9c8', '0x1d61a73bf4', '0x1ae6543e32', '0x1e4227df45', '0x1b587688e9', '0x1d0e38e000', '0x1d35a57e12', '0x1d799f5257', '0x1ad2da35e7', '0x191ecb46aa', '0x1c09b2399a', '0x18887bf267', '0x17c9eca173', '0x1a6a808507', '0x1bdb6d2a0f', '0x19eba457c5', '0x18e641c4f3', '0x18488cd852', '0x19e4db8b8b', '0x17810e6ae1', '0x1a4edf0276', '0x1cb7d1a11c', '0x1a8c37ca82', '0x1db8933445', '0x1d5ec5f8f5', '0x1b65b34090', '0x19e29f4455', '0x19b5866cca', '0x17d8ad165d', '0x1675555795', '0x18518c56e9', '0x1b5b9d236a', '0x193ff5b9a4', '0x1c2403e4d4', '0x1a2a2c671a', '0x18c11bb7cb', '0x171f16713c', '0x1a02317fde', '0x1b5ebf7249', '0x1951468ddc', '0x1c3938b966', '0x1fb7e6ee05', '0x1e70cbf1fc', '0x1b9468ee46', '0x1eb84d8ede', '0x1b90d559cd', '0x1ac50b0d2f', '0x1e1d92951b', '0x21e128fd41', '0x1efbc1e994', '0x2091c19158', '0x221a6a8d39', '0x1dd71d3b92', '0x1e37e4fe99', '0x1b8641a4ff', '0x1815797060', '0x190d38b6be', '0x19caad8860', '0x1cdbecb290', '0x2076d4537c', '0x201eb016cf', '0x2421565e24', '0x2167ded522', '0x20e30b4462', '0x1d8f45809e', '0x209d585031', '0x1da6033e65', '0x1a78e99bb3', '0x1b63d6866d', '0x19c3627920', '0x180e5ec698', '0x1b100e9ff7', '0x1e71867331', '0x223f0f2ad1', '0x1ebdf4b889', '0x1ea9e396a4', '0x1c307a1cb6', '0x1fb686adeb', '0x1cdf788897', '0x1ea1c36fe7', '0x1dacbebee7', '0x1b04a160df', '0x1ada258d87', '0x1a1629166c', '0x18eb3907d7', '0x1c08135122', '0x1f88e28e97', '0x2378b6c1ab', '0x20fe8a445e', '0x1cefa78aa0', '0x1f656df585', '0x1c9e70f4c9', '0x20312c726b', '0x1e9d35ae97', '0x1b46a015b0', '0x1af84ae3bf', '0x1c41451a97', '0x1a9c750076', '0x1b615efe08', '0x1ab25d6aa5', '0x1e07ee4e95', '0x1ff05a00e5', '0x1ce0634697', '0x1be2e88e7e', '0x19347611f6', '0x1760935a76', '0x147480ef28', '0x14b60fb254', '0x174c8efadd', '0x198a33adb0', '0x17dd970615', '0x178e927624', '0x1a80313100', '0x1d9d0b6e9d', '0x1c4caa06c4', '0x1fd5fb0b6e', '0x1feb044a82', '0x1ca020996b', '0x2033194c05', '0x1c74769299', '0x1ce8cf3fc4', '0x1ab66fcd1d', '0x1bf4041528', '0x18c3695e10', '0x1b54a17373', '0x18af75d6f2', '0x1b36918a64', '0x1a27047d8b', '0x1d2aae97b7', '0x20cf3ccfab', '0x1fc60c4986', '0x1cac8a9db8', '0x1c5362135f', '0x196fc5fd1b', '0x1c9be7a792', '0x1b2fd90221', '0x186238a41e', '0x1b6e767750', '0x1800a7a866', '0x17a5aecdb3', '0x16e5f5147a', '0x19c209ae58', '0x1a76cfd3bd', '0x180b810efd', '0x15e7f6ee24', '0x18a428b4d9', '0x1a03b2068d', '0x1d440f5adf', '0x1eaf344c5e', '0x226ee1e220', '0x1e847aa975', '0x1ba5556af0', '0x1a39822376', '0x1d7f99487e', '0x1ef2a9c621', '0x20b63fbc85', '0x1d53f50855', '0x1a82b60f0c', '0x1811a5073f', '0x1b13652773', '0x1c7ecff1a7', '0x1951afd139', '0x1b7d614a1d', '0x1eea2f410e', '0x22c769a570', '0x1eb62e4cb5', '0x1c877d7089', '0x1dc5e907c3', '0x1c3fb0a270', '0x1b164d897b', '0x18fd71e91c', '0x1c1c140bb0', '0x1d4a316a54', '0x20f23bbd47', '0x20551ababc', '0x1e7dfb9ade', '0x224db6d365', '0x259d59d926', '0x22cbbed49a', '0x209ec1e4c7', '0x1cf21267e3', '0x2031d470ab', '0x1d516e93bc', '0x1af770ca32', '0x1b6f409827', '0x1826e0e466', '0x18336f76e5', '0x16efa8c70b', '0x194d26cbf0', '0x1a1ad1862b', '0x189384e053', '0x16b72227d5', '0x1837b04e76', '0x1558e49294', '0x156f6dfed8', '0x134febfb3c', '0x15b9db55e2', '0x16cdad7d3f', '0x1865f19d42', '0x177cc1a95e', '0x1972a66fd0', '0x164451a1d6', '0x190c7aab81', '0x197731f71c', '0x16ebc6c2ce', '0x18ba6b620a', '0x1bd15358a3', '0x1d05da53ea', '0x1cd5af9068', '0x19aa657f7e', '0x1cdf31f682', '0x1b7929127d', '0x1860ffd9f2', '0x1b6ccb63b4', '0x1ed9d6a02e', '0x1bc74610e8', '0x1aa82aa058', '0x1cd05c75d9', '0x2069dac1e2', '0x1f2c6c7b5e', '0x22902f7a9f', '0x23c83fabb8', '0x1fe49fdee3', '0x22cb67a7ad', '0x242e275e84', '0x2105e72c57', '0x23ad086446', '0x242596c4bf', '0x2108f9ae70', '0x1dd322d67f', '0x218c7caad5', '0x1f9112bf3b', '0x1ee4b9037a', '0x229b15c903', '0x1f7da28386', '0x1cf32f6802', '0x1fdb429128', '0x208215193f', '0x1d6af95372', '0x1cad54f7b7', '0x2041e1faae', '0x244905d65d', '0x2140f04d8b', '0x20f2461cd9', '0x1faaefe7a4', '0x1c77e76b63', '0x1d3f4c815c', '0x1a504a1148', '0x1c7fd743a2', '0x1cf62729a1', '0x1d337d759d', '0x20d8c19fdb', '0x1f5b59c66f', '0x1d8647942b', '0x1b169863de', '0x19ba0a1d64', '0x1cf08ab14b', '0x208da0bf13', '0x1ed8fca281', '0x1bbdb18f64', '0x18e3e15b06', '0x1bff4d4dbc', '0x1bb3cee4ca', '0x1e54bc88d7', '0x1e322c80e4', '0x1ab1891df3', '0x1a0b1a894d', '0x178bc9ae40', '0x18b64047b0', '0x15df93a076', '0x189b802945', '0x1badfa4687', '0x1f0653c41a', '0x1d9bfa0eef', '0x21476e406f', '0x1d8827aa85', '0x1ac959955d', '0x1e226fa832', '0x21e625404c', '0x2027b60019', '0x1fc419d394', '0x1e24932104', '0x1b139a8edd', '0x1e74fa5698', '0x2242fee315', '0x1dfa9f06b3', '0x1f022a8d5e', '0x1b21e53bb3', '0x1d1b082c4b', '0x19e380a56d', '0x1a7a0fd39b', '0x17645af287', '0x19c813596a', '0x1d0103ebf2', '0x1af44ece1c', '0x1aa754bc46', '0x187be063bc', '0x16f3994613', '0x1972875e9b', '0x16a760d4aa', '0x1568c2b686', '0x12bbaa5fb6', '0x14f6cb590b', '0x14a5b1a78f', '0x154ef27bd3', '0x177ebd97eb', '0x17566b83b2', '0x17a95f8db9', '0x1707b2ef09', '0x1750149f34', '0x1a04ede720', '0x1987b2cd6a', '0x16cc04d419', '0x176908b653', '0x19ef53c5af', '0x17b3204910', '0x16fa8e4bf9', '0x17dd9d6a5b', '0x177bbd3e29', '0x1a6a4c88b5', '0x1a8214e260', '0x1d99e0d0f9', '0x214c2e9f71', '0x1d7a834685', '0x1c7ff24847', '0x200f0480f4', '0x1c0d23f0d6', '0x1f8ea483cf', '0x2043852c51', '0x1e25f8fa10', '0x1ba60ad108', '0x1c4bedc53f', '0x1a0700ad0c', '0x1b952dc2e0', '0x19ce28dda9', '0x1cc6c756ad', '0x1a4e9a25d2', '0x1704c6e118', '0x16e46b6bb0', '0x1985dc5aa0', '0x17baeb1c64', '0x1610fe1445', '0x137415f33c', '0x13f7b30ec0', '0x1671dc7585', '0x17094504b8', '0x19ea317a1b', '0x16edfe24f8', '0x171f2c5af5', '0x157592d7e6', '0x1822284a90', '0x159f5f244e', '0x141f086eee', '0x16a274fbc5', '0x1493a18143', '0x155125d522', '0x17bf3e77db', '0x1883a69513', '0x16ea624696', '0x16e9888403', '0x140c577383', '0x168d4c9aa8', '0x14fcfbde60', '0x12ac383143', '0x14c20ea51b', '0x12ebdacfcf', '0x14061374e9', '0x133450c55d', '0x14411b294b', '0x16c92da4bb', '0x19a1c8b5d5', '0x1746b4586e', '0x14c2be92ee', '0x175a81bdb2', '0x15d2493ed2', '0x140ad18993', '0x14b504f683', '0x174abfb4e1', '0x1a32aff881', '0x188f28d13b', '0x16552b1923', '0x166549161d', '0x17977d5a2b', '0x1522860ef5', '0x17c67ed6d3', '0x1abf19b78c', '0x1d20782ac7', '0x1af5322963', '0x1b97f8f589', '0x18b891bdb3', '0x17fdc75053', '0x18971a2408', '0x16b6542741', '0x198ce22c74', '0x1cbdc17482', '0x204b14f26c', '0x1c775d2e96', '0x1b01ae603c', '0x1b80c94b8c', '0x1ec96e19f2', '0x1f09da5167', '0x1b6504a18f', '0x1aba460e71', '0x1e10d66e4f', '0x1f51e3222a', '0x21c7263302', '0x1e2e4d071d', '0x1e1d715b75', '0x1ca91fc4dd', '0x1bc1b1128a', '0x19c1df2dc3', '0x16d61ff4c1', '0x19b0d9410f', '0x167abe18ee', '0x19493dc390', '0x19f68a1406', '0x1703bf831a', '0x15798ced58', '0x1827e61dd7', '0x16e0febf08', '0x19bd075102', '0x1cb7fb63a7', '0x1bd98caca8', '0x190e703e7d', '0x1c2fd0ce7d', '0x1d8245dba1', '0x1f1ecec27b', '0x1bd2eaa9e4', '0x1f4cd40ca9', '0x1f8ee2ded9', '0x237f8409cb', '0x231f49fc48', '0x1ff6e5cc0b', '0x20c690a155', '0x1e55613b5e', '0x1c97598503', '0x1c528b24fb', '0x1b426f396a', '0x1cd8032f3a', '0x20728c1568', '0x207df766e6', '0x1d5a48259a', '0x1a70ab60c0', '0x172f231676', '0x1a148e3c26', '0x1a0b8b50de', '0x17f2addd20', '0x17085f1814', '0x16981ff181', '0x16b36b4285', '0x15415bfbd6', '0x17e90b6b50', '0x18a828daca', '0x15b24e287a', '0x182545045b', '0x17cb494096', '0x15047f3a77', '0x12e8de846e', '0x138a256787', '0x15fa9cb106', '0x18b9209df7', '0x163570e5b8', '0x16931fa57a', '0x170c57e87a', '0x15d2e6e8e2', '0x16fe289780', '0x151c7e2765', '0x17bf5afc1c', '0x1ab69c1a71', '0x1ac7227737', '0x1ae3367a74', '0x1b97c5e06a', '0x1b87d88565', '0x1ef8911a28', '0x22d7a122ef', '0x2030362195', '0x203671761f', '0x223cf67724', '0x1e45ea2f49', '0x1ff15841d6', '0x1c84eb50ca', '0x1b1fd4b122', '0x1e8378a3e6', '0x1f1cda63f5', '0x1d1422b663', '0x1c24d20e57', '0x1c6373332f', '0x199ddb491d', '0x1891004c0f', '0x18017f43cd', '0x1824113e43', '0x15e86f28da', '0x18a54b2fd6', '0x1b4b9a1aef', '0x18971f9e9b', '0x18efa764c8', '0x164a6800fc', '0x158d68a4c5', '0x149cfcf032', '0x162d099ca8', '0x14aefad25d', '0x169ab47aa7', '0x145f23aa45', '0x131aa318a4', '0x12dee77b88', '0x112a24c3f3', '0x134ef6db2c', '0x14ac1a3873', '0x1283fc1248', '0x13de97f571', '0x12bdf18308', '0x1303a34406', '0x13d2d9b32b', '0x132942cd27', '0x1452718945', '0x13bbc4618c', '0x16329cff18', '0x164dbd3663', '0x13f468a36f', '0x144ac781c2', '0x13cae7bde0', '0x15f9d03074', '0x1643f56280', '0x16d9773068', '0x197c193cc3', '0x1cab87c977', '0x1a5efd9326', '0x1aae84cb51', '0x183f968098', '0x1b46f00ad5', '0x1d0b64ea67', '0x19c13f6114', '0x185b26ef6d', '0x165d7f35e2', '0x1928dae34e', '0x172e2bb3d4', '0x1a1364673e', '0x18c12585cf', '0x160643a391', '0x1461594758', '0x16a31d84ad', '0x17275b5d24', '0x16ed0f2606', '0x15f01af353', '0x18ab925828', '0x1b063cdca2', '0x1b4581295e', '0x1b120ec28b', '0x1b457af339', '0x189485cfaa', '0x1ba6401565', '0x19528aa34c', '0x1afc5597b6', '0x17ae87630f', '0x157bff3323', '0x182b5823e9', '0x1b3074dffe', '0x1b5236785e', '0x19d02d49c5', '0x169627a08d', '0x17e1b2caea', '0x1812c29735', '0x15ac4c4b0d', '0x1860ef6da7', '0x182533f22e', '0x163140340f', '0x180949d378', '0x17e327d10a', '0x15b1ec0a8f', '0x17a3a80bc3', '0x1666ad2b65', '0x17273cc39b', '0x14cb7baf7b', '0x138fd22666', '0x1571713bd4', '0x12d58eed2a', '0x152f938a02', '0x17d5617729', '0x1acf9981f7', '0x184d8d5ea6', '0x18d4154f80', '0x178ce6988d', '0x17cedcf8ac', '0x16afd86a98', '0x150ba06784', '0x17acc93f69', '0x16897ceb67', '0x13b84d4dfb', '0x162f3bf7d0', '0x18f51e0629', '0x1c13297c8e', '0x1b34d80b89', '0x1e9aecbf07', '0x1d0d969db5', '0x1ac29603f1', '0x1ae7be4555', '0x17daa45844', '0x1ad5cf1eb3', '0x1e2def3971', '0x1b180be5a1', '0x1bcfc1d317', '0x1c88e5934c', '0x1b5111560c', '0x1eba5c2b3a', '0x2259f13884', '0x2354e9b387', '0x1fb44631a5', '0x1f88c666dc', '0x2378d3cc19', '0x27bb763d5c', '0x28361960e1', '0x23f6bf8b98', '0x2874013d8f', '0x2b57e9af92', '0x27aadfca8e', '0x2c9eb7dd1d', '0x2c0dec433c', '0x2943470c9e', '0x28cf5035ab', '0x2de8d46f94', '0x2a91f12769', '0x253fb3027c', '0x2097bca22d', '0x247384a411', '0x266f69dda0', '0x226064d1e7', '0x1ea207b0bd', '0x1ef7e596e6', '0x1b6024a514', '0x1d676d6d9a', '0x1e91d8c635', '0x1dfdb7e745', '0x1bc677efec', '0x1938925cd0', '0x1c5ec06512', '0x1fe97d37f1', '0x2177d6dff6', '0x1ef9369bff', '0x1bf2d9b11c', '0x1ad6b3e742', '0x1bff43c806', '0x1f2cd6175f', '0x1ba9f9de7c', '0x1d1427b052', '0x1c67681320', '0x1ff3818ecf', '0x1cfdc5b809', '0x209c8f8b22', '0x217e05e74c', '0x25a43941fa', '0x229da502aa', '0x217ec99e84', '0x20d0f57e85', '0x1fa6e2d70f', '0x21705dea27', '0x1eef4b596b', '0x1e49631e0b', '0x1af91ab84c', '0x1e35999671', '0x21fbd50a11', '0x1f8b2d5d96', '0x237bb51b4c', '0x2603766945', '0x2163cdd7e0', '0x22b9522b52', '0x241b53b120', '0x21048515cb', '0x1e8b93ad4e', '0x224561744a', '0x1ecf0a38a1', '0x1d20512f23', '0x1cfbc2a424', '0x1c202e0f2e', '0x18b86fb88d', '0x1a919d91a6', '0x1de2f729de', '0x1b0addd527', '0x1adce0f602', '0x17ef351b6f', '0x181ef81486', '0x151b1911f6', '0x16c92ee9a8', '0x17c4742135', '0x16407b8c13', '0x14409ebae0', '0x16a4332b2b', '0x1547210c83', '0x17ef87675c', '0x14f1967a71', '0x178f1ec906', '0x1a80cc1115', '0x1d5fd0eb4b', '0x1cc1bfd2a9', '0x1cb4e4d79a', '0x1a92201017', '0x18d2640f85', '0x1926770cc3', '0x167ac39e27', '0x173ea50b58', '0x187e723886', '0x158fcb7efb', '0x1796635a6c', '0x1797e9cb36', '0x18044ef158', '0x18b5d27564', '0x15f1f50bb7', '0x18adc974c9', '0x16e9e46321', '0x1972ca09db', '0x1a061d7fe9', '0x199de62059', '0x1a28fe7d57', '0x175e733fd1', '0x1a2b06feae', '0x178525d50d', '0x164d3d2d96', '0x15d57c959c', '0x15a833630d', '0x135cf39edc', '0x1433df25f9', '0x127e068efa', '0x14cd8d0c71', '0x141c589dec', '0x1677347947', '0x1670d33676', '0x13dcc6ce28', '0x13702b1b1e', '0x13e12c94e0', '0x15ce036ef3', '0x16759decca', '0x1943f8fede', '0x1c140e461d', '0x1abc157429', '0x1d59b016da', '0x1a6bba15e0', '0x1954d03faf', '0x165780d4d4', '0x17050c962a', '0x14903c0feb', '0x17221e93be', '0x1a05e5ab74', '0x1bd1d0d12c', '0x1da44d90b2', '0x1bbf8766d0', '0x194cd60b82', '0x1b353713ca', '0x19621c8ea1', '0x1c8db1f26b', '0x1d14e54d70', '0x202c058784', '0x1d3de65347', '0x20e573ea67', '0x20e5f1ea77', '0x1f483a935e', '0x1dedf13769', '0x1f24996585', '0x1cff259be8', '0x1e1758192c', '0x1c5ce7b78f', '0x1b5d33b909', '0x1ec7aad716', '0x1c73813179', '0x19a7cb25b3', '0x1cdc37f7d2', '0x2025b8c3a4', '0x211d207078', '0x1d4c3a33ad', '0x1b4f4f27b2', '0x1d1e730cce', '0x1cea794e22', '0x194d2a245e', '0x1c76910586', '0x1a7ba7eace', '0x19b6c847f9', '0x1ba7f5494c', '0x1f1ced7aea', '0x1c49e38904', '0x1c560821e5', '0x19de937462', '0x1d112df20d', '0x1afc00c179', '0x1d11e218cb', '0x20b40224e0'], 'gasUsedRatio': [0.09409595136317281, 0.22323237501688334, 0.9999061582155835, 0.1162972542981165, 0, 0.9970204914587422, 0.9646085054165882, 0, 0.9996925657080025, 0.9995519666666667, 0.5137953544969996, 0.2980269351124685, 0.9720266240603608, 0.9998903218482652, 0.5946361450278986, 0.30365033333333336, 0.13904705388521443, 0.6085655333333333, 0.06936890540279249, 0.5515500814467427, 0.2600511694141585, 0.5675643, 0.02593112174037948, 0.8464571741677871, 0.08206320497990786, 0.42989685100526553, 0.7594449537413024, 0.31019398525915687, 0.9554589477917637, 0.038096995962016045, 0.4143502647725172, 0.5758259666666666, 0.26716044884496376, 0.6678734668655527, 0.7950481330484505, 0.4348532928879231, 0.04254293333333333, 0.8623236256871502, 0.12078280942952707, 0.7651508427771199, 0.36878386735601465, 0.524287163064211, 0.6250518251485654, 0.5357652, 0.08153990961159761, 0.9998764333333333, 0.14188615182725933, 0.4209745595762556, 0.7783747102451751, 0.9996132666666667, 0.9996961, 0.2562136926708931, 0.009117798550624055, 0.9994862311413997, 0.9459475973004349, 0.026494221946752702, 0.9797075826261988, 0.6907476213718817, 0.23787224814355445, 0.2807201551515677, 0.7015308724387299, 0.11005680718209505, 0.2722510787387252, 0.7041264200339902, 0.31557199612216874, 0.11011315997111093, 0.9997829261290877, 0.999363, 0.9996040333333334, 0.2586481666666667, 0.9998673295526918, 0.15873713333333334, 0.15879232737434773, 0.6782194663381685, 0.04902398434309642, 0.9766416812033902, 0.4006907358159223, 0.08110676313582889, 0.9988454666666666, 0.49365423333333336, 0.30029339683132755, 0.1282090906021209, 0.1609619, 0.9573414, 0.24172315733686056, 0.329635037457975, 0.9985416226956729, 0.9996121992502519, 0.9998592666666667, 0.09626533643436148, 0.38717802803282614, 0.6925135735081379, 0.03498253313347962, 0.8418621445889325, 0.2226590642006819, 0.13135690886608284, 0.9995206981946299, 0.5178256666666666, 0.33348795098413603, 0, 0.9996232333333334, 0.10821286986742554, 0.9994487661521817, 0.9593561066371641, 0.5728895360604673, 0.39354873333333334, 0.3888779, 0.999740846937034, 0.9592158532933521, 0.09529707591793961, 0.26105286110005066, 0.9998330821319152, 0.9697154171690829, 0.23777552001688054, 0.9898532907647399, 0.04022637003886665, 0.7955591112138093, 0.13085640363987877, 0.5705293074199064, 0.37126726666666665, 0.7183664484963767, 0.12378308632365011, 0.9997461333333333, 0.5583286333333334, 0.0835131, 0.3999148, 0.24741876666666668, 0.3296211333333333, 0.2652093102247678, 0.7075150603473896, 0.13800636666666666, 0.9007412, 0.20186231855406805, 0.940453311089757, 0.999576346635434, 0.026760233333333334, 0.2105284, 0.807363056691526, 0.5230701215321134, 0.9995646, 0.8974827252145053, 0.022895827515031174, 0.4774637715879348, 0.20970369843702702, 0.09113313333333334, 0.4967709365138276, 0.124567, 0.9993801, 0.11500276666666667, 0.9998186562511626, 0.993924172913806, 0.5743247165996522, 0.5749109589974888, 0.11374378692112362, 0.9996813657638697, 0.34480417822520854, 0.21481050911958435, 0.581912, 0.9968576351859076, 0.07316567072681504, 0.23863035321592346, 0.9959546993930714, 0.06560882719682361, 0.46846827627572535, 0.3192083219902799, 0.7727681769346956, 0.7076934421377757, 0.02084923271467594, 0.9991449333333333, 0.8874315102030466, 0.2614762524097874, 0.9999992659491564, 0.6193292767256258, 0, 0.1777130453668787, 0.7203623989214237, 0.7526370933542881, 0.07477657013837331, 0.1521891870288186, 0.7202682666666667, 0.2176633, 0.9957306643270487, 0.2085850051690904, 0.06199036017739473, 0.82458863338507, 0.10956971335736192, 0.6827699239404487, 0.7774488, 0.8156129666666667, 0.17445016666666666, 0.5681542666666667, 0.6597133333333334, 0.1028425924582021, 0.5550135846793457, 0.9255020666666667, 0, 0.6761949376899876, 0.12948556445418552, 0.2952037964442602, 0.9575332323536336, 0.6319045260372559, 0.9503287334802467, 0.37507247732083143, 0.041069825225155475, 0.9998475576274792, 0.5824923144304286, 0.6173347570910287, 0.600067764061502, 0.37617415310823815, 0.22677003220175918, 0.9571677718237219, 0.9993991414044274, 0.9729567899754965, 0.49531337976931716, 0.08781812430577643, 0.29105276566218213, 0.9785966357285787, 0.3979796203979842, 0.13625787338945552, 0.4758101004315626, 0.8694749074103945, 0.4761259030915146, 0.03201376741833794, 0.3325545400196831, 0, 0.9998870722950931, 0.999507517044616, 0.8206022389706021, 0.5591316028610234, 0.26884386951396855, 0.294363275819602, 0.6655454186202536, 0.20299226372938622, 0.6636684018246101, 0.7240233, 0.22932223333333332, 0.07662271125579205, 0.7530048612380326, 0.6027066256363387, 0.9908275825724069, 0.9994061189467776, 0.14415026481243468, 0.9994900005235127, 0.16213588278302124, 0.9994397507876972, 0.11493533151706985, 0.7501315354602819, 0.5212009192922044, 0.5363621693793219, 0.14017813637941418, 0.24599230414345985, 0.9645784884546186, 0, 0.3786336570092752, 0.941764203287454, 0.7182176661819819, 0.2219156771033863, 0.34243569904737137, 0.4010352050276611, 0.7652965846612423, 0.13082551064409348, 0.9771866679878835, 0.866419918818857, 0.19770695331440125, 0.9781230328257139, 0.45278922211045075, 0.23130024350997494, 0.27924458916428746, 0.47277826438710624, 0.21018937529343618, 0.2671668331930838, 0.8313182681854254, 0.9999177861491616, 0.19178542878462937, 0.9579578527497172, 0.21913342910286798, 0.28437991920204897, 0.23614424602220233, 0.9994727118912959, 0.7093988333333333, 0.20001931886487154, 0.95913552982993, 0.9953096486712545, 0.33886237618276416, 0.12406986075409049, 0.9554370573433824, 0.0892988539570319, 0.3844863014111199, 0.9999410272353545, 0.9999433892750831, 0.15807034776559573, 0.7047458738763436, 0.6883768666666666, 0, 0.5506762, 0.14340873863327538, 0, 0.6607319421506944, 0.6181660871284969, 0.9757140663578047, 0.9996828135616056, 0.4575774794871768, 0.9994228049747785, 0.1983710631532091, 0.43787257259684365, 0.09531152284326458, 0.9133978702859088, 0.13621946142167504, 0.07148944087995783, 0.6386622333333334, 0.2624284280266347, 0.234957419212798, 0.9999289638979114, 0.9996887254036709, 0.9996629702388473, 0.09069362665506307, 0.4898007278394884, 0.17723772126255355, 0.9999941609424439, 0.14177967353012425, 0.7436822420507911, 0.3750187617141731, 0.1418915169187969, 0.4754309721560332, 0.38595751515076143, 0.32094606882810356, 0.9996550262662981, 0.9998885738929266, 0.9993649263678631, 0.22065025087211995, 0.008018367623056532, 0.8400671671145664, 0.14616135541315056, 0.9994142697398241, 0.3039289333333333, 0.06383233227246406, 0.45512702478522316, 0.6905929666666667, 0.26729036666666667, 0.6156199528839912, 0.400130180788244, 0.9995729273445277, 0.7541233257341248, 0.11647256824107469, 0.36284303333333334, 0.11537693333333333, 0.20994905141795703, 0, 0.5500774333333334, 0.9998035, 0.8847013, 0.23777993333333333, 0.4482663666666667, 0.9998663305282391, 0.9698289375013063, 0.3225149666666667, 0.9998528333333333, 0.5103245, 0.08737598932023788, 0.9994298994679062, 0.03481783333333333, 0.5638874027154183, 0.19604793196639386, 0.6857612773173137, 0.04354246002283136, 0.9146877462348095, 0.11285916666666666, 0.9095971333333334, 0.34408336666666667, 0.9610380202934833, 0.9995822996101463, 0.3737078, 0.10978517188701434, 0.4514159213215266, 0.0920173, 0.9988696038318582, 0.30116769112876807, 0.08756198892544166, 0.9999767999559199, 0, 0.44077967864380435, 0.3733164666666667, 0.9995467426058454, 0.6096590666666667, 0.13434692310374413, 0.14419514520311283, 0.9994285747842324, 0.7229090068604463, 0.9999415236577098, 0.6938822224623711, 0.9886839177149155, 0.04513143967051874, 0.12360450695164826, 0.2943715279381609, 0.9993456825226326, 0.6965487758456976, 0.7279969655044776, 0.08621157737638854, 0.11574314645977529, 0.13159385456638117, 0.9997045666666666, 0.7097223666666667, 0.05413492942525042, 0.8429312580110547, 0.9983698732721278, 0.9999772332900766, 0.032210014277969566, 0.21575781131379873, 0.6743934893572439, 0.2952112786291495, 0.3355089333333333, 0.1903175784486885, 0.9993451884308295, 0.6679329838661149, 0.9993418145638432, 0.4254803900135893, 0.2723254049219806, 0.9999915333333333, 0.8860917018802194, 0.20024748689765443, 0.24988596666666665, 0.049413085211041916, 0.9489877874269098, 0.14260465629408736, 0.1791703009630313, 0.5694214440758485, 0.02137625241058093, 0.5081236573746689, 0.29095826876577646, 0.9124845723137306, 0.6270106889850323, 0.2657877895866014, 0.19712520338801287, 0.7645203466025202, 0.025914366666666667, 0.5164957, 0.10381606666666666, 0.9999553, 0.6983660666666667, 0.7797455666666666, 0.3506632, 0.8338859, 0, 0.9997336267801159, 0.566567681015425, 0.10030724699035817, 0.8153787619012852, 0.9997495398563759, 0.6732976416224978, 0.47406837159915693, 0.060377211036290845, 0.9996950756061687, 0.30623716666666667, 0.049470808244250514, 0.9997885873083316, 0.9996835573545289, 0.10163039309774688, 0.3385059, 0.8236701, 0.9997007411070243, 0.34698176487047816, 0.9349451777464078, 0.6410744397499797, 0.06524140102814598, 0.8639018098518549, 0.659305134805524, 0.15094478699559058, 0.8213330931697359, 0.5528000370943107, 0.15565203343927872, 0.11128455428429884, 0.9994545666666667, 0.2636772333333333, 0.4146892774127269, 0.980665424285901, 0.1399401201360957, 0.17726166460636505, 0.9015955735281547, 0.5818231908707433, 0.11975454905924837, 0.39927355925273644, 0.9993921203259428, 0.9994694666666667, 0.16580590947059803, 0.46303753216836335, 0.34475876484097995, 0.09588528218203615, 0.6094388, 0.09878212741408653, 0.8322609956141719, 0.5648655063820114, 0.5330918793246121, 0.9993739261168026, 0.3185673858591553, 0.2662635666666667, 0.16993317307684286, 0.2989467306146084, 0.9995428621097746, 0.9994700316384566, 0.2904196993785674, 0.09716622298863827, 0.08893563096125472, 0.9993324308188227, 0.4578676666666667, 0.8795524162678189, 0.48219508338207784, 0.036032048334712935, 0.4025793, 0.11643563272869291, 0.6980582515210347, 0.040533933333333334, 0.9999834505060858, 0.999390066097395, 0.983405146303502, 0.3175091954587309, 0.9957555445604135, 0.04960571329139142, 0.12815311834432142, 0.9999518331968608, 0.9996914004730727, 0.2942258180581086, 0.4515968983636284, 0.2956119, 0.0930987442571004, 0.9993788875470844, 0.9996898968845415, 0, 0.6373592134997953, 0, 0.7908978333333333, 0.0578978, 0.590869382714446, 0.033963199497759514, 0.9086065659646783, 0.9999577174207133, 0.21732987612846663, 0.45537773874951776, 0.17437928125541885, 0.24965824870134506, 0.9349718528787049, 0.06088885690355124, 0.2802401333333333, 0, 0.9763708409729687, 0.4395539612599541, 0.6280840036368204, 0.9104848939887522, 0.4731854629908414, 0.5555389666666667, 0.39323800308998264, 0.5491080666666667, 0.9643695401893282, 0.4247967631436456, 0.07177975993001426, 0.607618000886935, 0.9313629144300479, 0.15526560141035062, 0.3783145333333333, 0.6543948333333334, 0.43592023333333335, 0.9993960666666667, 0.51406775382828, 0.9667180022701355, 0.9995086197085238, 0.041225510287619206, 0.36718824473904454, 0.9994944455135705, 0, 0.9999218138205044, 0.589558377410709, 0.23773409194136852, 0.16834278355064602, 0.5937471312337437, 0.1792203909606552, 0.7390370443111591, 0.24224183333333332, 0.9605513784210281, 0.1567419462924832, 0, 0.4780359687901903, 0.9596538750076065, 0.2190375584241243, 0.21955118525520223, 0.02635323505618959, 0.6057119960765238, 0.9962433581300045, 0.6054034760959954, 0.9998405476432731, 0.0392353, 0.5335131666666667, 0.2123925, 0.9984615333333333, 0.08383336666666667, 0.2222671, 0.9996466, 0.1363241, 0.6439105213758765, 0.9559863241201133, 0.629231, 0.23913983333333333, 0.4994199836139991, 0, 0.999543978212988, 0.2226436, 0.05870750545425725, 0.9467056, 0.14606893631631288, 0.733055105770137, 0.33631885986319965, 0.7186927073234333, 0.9999490337963376, 0.9996286366581063, 0.13236854171086818, 0.06771808524481643, 0.9995629316870427, 0.2375795, 0.17386731856342283, 0.6326890466923979, 0.999322427661069, 0.9990574315110342, 0.2497853, 0.1373617670989054, 0.5112763105245565, 0.7136325705186211, 0.08343103333333333, 0.9997459333333333, 0.999863966170368, 0.8559865666666666, 0.20212526666666666, 0.5943468463621393, 0.08357527800359281, 0.3819380856828826, 0.5998561190004078, 0.1945095472551798, 0.9998373864431191, 0.99954853615074, 0.9943497333333333, 0.02596678990367427, 0.29488723955075236, 0.5735383175102496, 0.9775851659189227, 0.5326959552005066, 0.03040423003513897, 0.4026128529524742, 0.9995789109820958, 0.6668475248323109, 0.8139290451157604, 0.07403379863037393, 0.4912723462346109, 0.30682457423196374, 0.37382934872038504, 0.21188172406974207, 0.0463988459394879, 0.9999713781169506, 0, 0.9994132675280982, 0.6070858092892966, 0.04575382187208385, 0.23237308087353026, 0.9993848782103609, 0.2885451809441169, 0.9999378799198143, 0.9631659111575882, 0.378980931431588, 0.09879032412933031, 0.9997333457184772, 0.6876196666666666, 0.7184378211990675, 0.07629653592456047, 0.9997456556187776, 0.5329760689292855, 0.9993904035708537, 0.4576443966591239, 0.14036686595072106, 0.6015128307661982, 0.20195801277325495, 0.2702468458350703, 0.46239765332403, 0.3498821159986573, 0.7324750221659805, 0.9997471333333333, 0.5054988803433447, 0.11351870973475274, 0.10309586666666666, 0.007417290349307235, 0.9996807903916012, 0.4946011667418045, 0.17792336666666667, 0.3471244662919992, 0.4238537097252527, 0.5188752532279677, 0.24528790755662128, 0.9996437180685489, 0.6248904359117716, 0.019749605360926677, 0.9515159021209834, 0.44177022866956944, 0.03324198466447191, 0.09882681208403139, 0.6332627640398472, 0.9993584031355065, 0.9994233294888633, 0.09319105567290241, 0.5659105342533937, 0.5839018177788762, 0.28750972322093865, 0.7142557989028362, 0.17267903061226708, 0.9994826357343107, 0.9995624160532818, 0.5096656043455579, 0.5163837333333333, 0.6049278120084263, 0.4909809275025468, 0.9998525721792069, 0.9999958212068936, 0.195315591930901, 0.5030250311612894, 0.7515118248955276, 0.03677020665943099, 0.7206114428328598, 0.07129088510738678, 0.30435977234438183, 0.9998050135084199, 0.5785418428403676, 0.2384923476101967, 0.37140745395730534, 0.5347708515340667, 0.10944021790166217, 0.33601017268197114, 0.40872697992579393, 0.522501175935281, 0.13001494126243107, 0.9998610695842054, 0.9300375333333334, 0.10359593333333333, 0.556253281329218, 0.0756363805906717, 0.36751907097457526, 0.32570025216381243, 0.8032407907897087, 0.2308048206136584, 0.8714652333333334, 0.10491113333333334, 0.25110753333333335, 0.45114510986645123, 0.13836119026748148, 0.9995928353434537, 0.782533386813435, 0.08268549949270367, 0.7924979120774176, 0.27301101161169405, 0.558103520793379, 0.6702777541618601, 0.3663295, 0.7423377928547227, 0.38414952520622353, 0.9995053333333334, 0.5190939048019609, 0.07873355725357842, 0.5676301245591551, 0.40153646594866893, 0.9412223494056808, 0.5527179028819184, 0.6049179900127518, 0.9613296340569268, 0.9999506182544494, 0.17924929372994325, 0.5471208897290911, 0.1352073085219022, 0.9996142, 0.7591783333333333, 0.04695253333333333, 0.2827501666666667, 0.1730439440780589, 0.9997701513200535, 0.18533102156254333, 0.9996293326290653, 0.2973179, 0.05886621619344623, 0.2013864879607221, 0.942957945194231, 0.5912779658673389, 0.46065854165048414, 0.3276017282048966, 0.9981860902443793, 0.8817016544095649, 0.5365797176892797, 0.4705239, 0.5296809000655807, 0.10526561883901502, 0.9994674546065226, 0.16335817215339193, 0.7627319838270527, 0.010269509754563566, 0.12884664058002826, 0.9998892863115099, 0.9998023111148598, 0.5193988431460765, 0.27922555131727983, 0, 0.7293564193934379, 0.5320995120157191, 0.10117733765423188, 0.9993511482351753, 0.4617157529434667, 0.17646936311147987, 0.8323476229002275, 0.4752113850997956, 0.13289012402226763, 0.8584741666666666, 0.29048380922695655, 0.6343133395449738, 0.09255607513017468, 0.26281525514004483, 0.8846953744893761, 0.01333197509581463, 0.9994385133487865, 0.9998947662632707, 0.9997025750911144, 0.12582466643090998, 0.5864935398942469, 0.2940980430255119, 0.5437641333333333, 0.31163297626799236, 0.21058541009286194, 0.9997818868016191, 0.30774891805627763, 0, 0.9999164333333334, 0.9999850333333333, 0.9996275303832475, 0.3762692970603205, 0.9996987, 0.2971459963988168, 0.18430500899789784, 0.5216958069280786, 0.046381885368186916, 0.9998930954009768, 0.9984857077395898, 0.09104597297564469, 0.6059454375241486, 0.6040145883114137, 0.3292493, 0.9995188666666667, 0.9716703360831852, 0.6141561403964633, 0.08932110840609668, 0.47856197593442096, 0.9994824333333333, 0.980411938925027, 0.5482279783461131, 0.07748574082744011, 0.9993105132572582, 0.78578897006977, 0.16076206085124112, 0.9994031144809709, 0.4492956556333466, 0.24653298450247393, 0.4560877740183895, 0.9998477479483936, 0.20904443185474264, 0, 0, 0.9735437988529132, 0.717711803197683, 0.07760908716153478, 0.06439958902588581, 0.5437982475612602, 0.03594063636315757, 0.7963891, 0.6585770338068457, 0.42428760435621027, 0.20446956218138024, 0.1321498177513204, 0.9994476, 0.9993906382916251, 0.6950429034169969, 0.20184966798880347, 0.10936202100575827, 0.34114405337996206, 0.6726530949388722, 0.9540485065723843, 0.0494907, 0.7045638, 0.4071762923505197, 0.9995454666666667, 0.12944767231868587, 0.9994970661972618, 0.6080245333333333, 0.9955435850225588, 0.17847193333333333, 0.3705174769829405, 0.4189117576509738, 0.358076729464603, 0.7258359576252421, 0.2004462393270973, 0.41620104063235497, 0.062367887407706366, 0.9799322215631938, 0.9997580296890097, 0.21279677016588963, 0.9995705790243035, 0.7852381763019737, 0.0134715, 0.6598150333333334, 0.6592949333333333, 0.1577825, 0.20047132691740152, 0.9879055909071568, 0.09589545402879093, 0.2815541419058087, 0.48038881241406595, 0.38162398126794694, 0.01571015214233139, 0.7990811765390983, 0.9994989666666667, 0.11934270481792136, 0.47342847519991016, 0.06394676666666667, 0.5311800027273368, 0, 0.81839905779903, 0.6723040989821154, 0.24494272679532078, 0.14057640298568855, 0.9718415558917886, 0.2591036971209583, 0.9996392129751199, 0, 0.9995030790381267, 0.9998586325228265, 0.9333329, 0.41591985426231287, 0.49301503333333335, 0.20239403333333333, 0.23670911311562406, 0.5529235160619483, 0.0752398085635503, 0.6361519380683809, 0.7149692926225686, 0.021149692460745214, 0.8758061019693988, 0.5010103084189385, 0.5717858740852282, 0.6154878326518838, 0.052396583433990444, 0.9982805686354104, 0.21389044604623633, 0.94248821071165, 0.5904563542130945, 0.43742748504345363, 0.5848412812943405, 0.07321514883434228, 0.9791194965867375, 0.09523703124716631, 0.29279112132473833, 0.41609926344888376, 0.46759206666666664, 0.0763147, 0.6734291702514171, 0.16136355909158404, 0.9998074784833014, 0.36690216378077783, 0.9683902730431454, 0.4955627040943283, 0.040422233333333335, 0.4145620666666667, 0.5908375528703779, 0.8873628615386707, 0.6201025088622456, 0.9997590328835281, 0.9453222717999867, 0.30858693071007265, 0.8913476300674584, 0.10074947613137755, 0.3350533971750242, 0.027936939065424157, 0.6213713228753386, 0.07318221225979574, 0.9998902, 0.9996708786129656, 0.7761486910721117, 0.7620046754365942, 0.24446245632991848, 0.14710902656795988, 0.801615803839649, 0.2317506505461532, 0.999581143359834, 0.5739842472724574, 0.9250567995667319, 0.1356872638930498, 0.999901447343379, 0.500233761686371, 0.30350562967198785, 0.3270346217689112, 0.6621818077010027, 0.22432965409147496, 0.6509856598354326, 0.27026134012452685, 0.3591342984427577, 0.9993233868520243, 0.1973665662653514, 0.10694135201720126, 0.9996655730653686, 0.9555918836694252, 0.6202495, 0.03904222473245124, 0.22858521334619913, 0.7649805105132936, 0.4721102970095643, 0, 0.9998494662401544, 0.22172871014588796, 0.38384450153157834, 0.8021067574237206, 0.9999856945646498, 0.13688868070600196, 0.5067070666666667, 0.1518042368372716, 0.9944320643517522, 0.21339139214099934, 0.8091372382750187, 0.9999407264688344], 'oldestBlock': '0xd1171c'}}), + (('0x400', '0xd1171a', []), {'jsonrpc': '2.0', 'id': 17, 'result': {'baseFeePerGas': ['0x15b79bf133', '0x186e7f6c5a', '0x16dc485fa0', '0x17e903e1b6', '0x1976d163b7', '0x182723601c', '0x156aaf97d1', '0x1668f3a180', '0x1935360934', '0x1790c2177e', '0x1585a8f73d', '0x137e48a9b8', '0x13613a5de6', '0x15cd38eccd', '0x131391cf34', '0x157586696b', '0x178034224a', '0x1665be9069', '0x16f8fc1ec6', '0x14a788a2b6', '0x13293238be', '0x12e3795dd1', '0x10a9e58680', '0x129d55f0b9', '0x138642776f', '0x12df59a1b2', '0x12ff81dc4e', '0x118b30a531', '0x13bbe60c66', '0x162ae2442a', '0x14c4d509a2', '0x14ba8318e2', '0x1261c10e8c', '0x14ad50e7d9', '0x15269c624c', '0x15bac9876a', '0x153b6bb440', '0x136d217955', '0x12288361cf', '0x13d14dbb20', '0x12d0cfe2f1', '0x152a75167e', '0x17bf9f9d58', '0x153d2b6229', '0x14baa5b47a', '0x12f70ad83e', '0x1329bac526', '0x11f93503d5', '0x14382e31d4', '0x122b80c782', '0x13051ffe17', '0x1268f4db44', '0x129c52fa3c', '0x13e2013e60', '0x117921921d', '0x10adc2e7a3', '0x12306c18c1', '0x12190e9410', '0x112cd9f487', '0xfb7bac37e', '0x11ad7ef75d', '0x10c5d397ec', '0xee26524b3', '0x10bc92619a', '0x10214dfd5a', '0xfc3bd3776', '0x108903beec', '0xf59e30515', '0xfc5923618', '0x107b14be82', '0xff6f6895d', '0x10e1881844', '0x12b6a4f2dc', '0x13908ff171', '0x16022b9931', '0x13d2781159', '0x1360eb2bc3', '0x129b85bee0', '0x14ed1d516c', '0x1529b615b3', '0x14a486257b', '0x131e8b6cbf', '0x115ce66874', '0x13883ff800', '0x15077c1509', '0x14ce5a948c', '0x1412fde5f7', '0x133531ddaf', '0x12caf78f65', '0x11396612d7', '0x122095ca38', '0x136b821085', '0x15d8e62dc9', '0x1893742091', '0x1765d9350b', '0x17723d1945', '0x18ceb4bebc', '0x15d3e11fb3', '0x188d73c26d', '0x16b3a1dce6', '0x146ea02b52', '0x16fbe6635f', '0x14da05a7bb', '0x13eb0f1bdc', '0x1668623323', '0x18dd441c64', '0x17bb33c525', '0x16a255a43c', '0x14f4b2b32d', '0x1792d3b4d6', '0x1a84b06302', '0x1da5dfbcf0', '0x1a9685acaf', '0x186a4506d6', '0x18528e87c7', '0x16cdfb5190', '0x15d53024b0', '0x13d35cf965', '0x164d5f2712', '0x1702df8f36', '0x146bef90d5', '0x16f0db5f90', '0x163220ed4f', '0x18f7bc31e8', '0x1ae6fd83cf', '0x18f8ccf4a1', '0x162dfd87d1', '0x161be21f47', '0x156241d2cd', '0x1459a5b55f', '0x1355faaba3', '0x12d869f46b', '0x14ea333362', '0x134d98bd95', '0x133feeea94', '0x1194baf170', '0x11c5fc24ea', '0x133a9eb743', '0x12a1ad9936', '0x109d18cca5', '0x127b58f38c', '0x1100a332dd', '0x132040c9fd', '0x158399ac56', '0x1833d8b6d5', '0x16f18b38a0', '0x162f7690bb', '0x1491a64818', '0x16cc0b8a4e', '0x14e4083de1', '0x16c0883fb4', '0x148a4f11d6', '0x1292b6bc0b', '0x1125a43a90', '0x134a489344', '0x125ee9a51c', '0x10be202a2e', '0x10d127322b', '0xf730bf75d', '0xd84aa7872', '0xf34a70edc', '0x111ab7673c', '0x11cbc612a0', '0x1027adab5e', '0x122c688324', '0x1471b8f946', '0x1619e09616', '0x13fa5f89e5', '0x125de2ddc7', '0x1370878483', '0x1218de8c0a', '0x12456ac751', '0x119e37b0ea', '0x1202db75fe', '0x111da5aca2', '0x12e1cb81ef', '0x13fc7a5885', '0x133cad79ed', '0x1143e49e2c', '0x12aef1f26d', '0x110c7a277a', '0x116b53b26a', '0x1398727295', '0x1368a3b579', '0x15d548f19d', '0x188f2de9ef', '0x164466978b', '0x16c99f083a', '0x16742fe899', '0x18fb27c754', '0x1782b34c2c', '0x173d86da3a', '0x15a412f06b', '0x1846dce8ea', '0x154d54e34b', '0x17f6b69c4a', '0x1821c37fc6', '0x1711292c08', '0x1575fd6663', '0x17a2c039e3', '0x15564b465f', '0x18004caec1', '0x1b001a60d4', '0x186dd6386a', '0x17410d78ce', '0x14c5f9ecce', '0x162606fcdf', '0x172da0eaec', '0x1447eccd8f', '0x15fd6f2d25', '0x146278831b', '0x12e4363380', '0x12bfaf6d84', '0x11271ede39', '0x109dd573d1', '0x1080c1882e', '0x10b84656da', '0xfc6989c79', '0x1123473731', '0x10daf46570', '0x12f527f0f7', '0x14b75c90f2', '0x143e9e3ba0', '0x14dab93b81', '0x160edca879', '0x13865de7f8', '0x139d8b3af5', '0x11b001e30d', '0x1340111e4f', '0x14df744a02', '0x164e129ff7', '0x13c0351523', '0x15521efcda', '0x143583473d', '0x1348de4cb2', '0x13fb31fdb9', '0x11ee941b8d', '0x114f1f68bf', '0xfae10bfc8', '0x10f4442217', '0xfe43c5cf8', '0xdf58b382f', '0xfb3be2e48', '0x111c91b381', '0x12900638ba', '0x1462f38b4c', '0x127d0c1be5', '0x12f4ba569c', '0x12c941a687', '0x13786067c8', '0x1299e06f5c', '0x12debb7898', '0x10c4902542', '0xedae135c3', '0x10b5df4363', '0xffe0d90cd', '0xe75ee81d3', '0x10448081bc', '0x10a3862d4f', '0xf6d495cff', '0xe39b43f23', '0x1000e4fe6a', '0x1200cbb581', '0x1403885f2e', '0x120e0ba197', '0x10c17f0102', '0x12940d7b5a', '0x14d039b633', '0x1236327f6d', '0x108e80c322', '0x111f5b6547', '0x108502f9b0', '0xfb062c36d', '0xf38018e54', '0xedff6b406', '0xde1422f2d', '0xc2519e948', '0xda9a0d17b', '0xd0417452d', '0xea4290843', '0x104733bce0', '0x10f6952984', '0xf01535aeb', '0x1012decc85', '0xe4dc296ee', '0xd068e2b44', '0xea72550c2', '0x107b8b9d45', '0x10caecb3d4', '0x12e405014e', '0x120c0279d6', '0x144d67c79e', '0x147777b48a', '0x14e16e16f2', '0x1594e3bd40', '0x13299602f1', '0x13765699c0', '0x113ce0e35d', '0x11a5c4b9d5', '0x10868b9763', '0x100515c220', '0x1204e7791b', '0x10428d1657', '0x1073022cc5', '0xf6690f9f9', '0x11534cc11f', '0x104c6720bc', '0xe42da3ca5', '0xf9eb4aab0', '0xfa8530c7c', '0xe32e71cd4', '0xe11468eaf', '0xfd34d2de6', '0x11bdb711de', '0x100b9cbcaa', '0xebd2b017a', '0xe9864b232', '0xdb91800f0', '0xf701d2731', '0x11458319e7', '0xf8ebb8e1d', '0x11198d0c78', '0xfaf9ec014', '0x1145d495d5', '0x136e5f9fa4', '0x11b4bd9b10', '0x1195316d57', '0x13af6e54ce', '0x12168c95ac', '0x12277302ff', '0x10f5d2ed9f', '0x131416349d', '0x11974a7dbb', '0x10d1c7fee4', '0xf95694525', '0xfa9458837', '0x11114b0f3f', '0x11622e7556', '0xf476bb91d', '0x1130147485', '0x1352ce438d', '0x117396f52a', '0x11ab7ebb77', '0x10bc814f07', '0xf06684cbf', '0x101f6c76f1', '0xedbefacf4', '0xd0071b756', '0xea03c1432', '0x1074334d46', '0xfb0f5f5d9', '0x11a70a119a', '0x13db94eb07', '0x165664cca9', '0x16913da773', '0x13f441e411', '0x1672a9b537', '0x142cb920d8', '0x14b9e5f5d8', '0x1611a99e17', '0x14a6f09b75', '0x13d7a13484', '0x1652487b39', '0x140e3520cb', '0x15e7a7d174', '0x145ef163cc', '0x157bcc32fb', '0x1310151d14', '0x10bf61a76f', '0x12d717153a', '0x14804130ad', '0x1489299809', '0x13d6632a5d', '0x125057e00d', '0x108919a2f7', '0x10d7f45d32', '0x1116b25c38', '0xf2f4a90a0', '0xd5647512c', '0xf007dbc38', '0x10e064a8ab', '0x12fc2188b3', '0x155b5fc124', '0x13f19f351b', '0x12d37560b0', '0x12996286ec', '0x12d896d318', '0x123458ac80', '0x147aae5cab', '0x13b2fd7759', '0x11d7423b67', '0x118ffc877c', '0x1021d4c2b5', '0x12255c2e82', '0x1092317ec6', '0xf3f98479a', '0x1127283ae6', '0x10c415b1a3', '0xfda1670ca', '0xf25c22576', '0xd56ed7367', '0xf01c1f9ee', '0x10b9163581', '0x102a5b4cdd', '0xe9a566767', '0xda603b131', '0xdd73297e0', '0xc431745b1', '0xdcb7526ea', '0xe0a6a1b73', '0xd05b32e5b', '0xe793e7fcc', '0xef6307f3d', '0x10d46cb47b', '0x12b91e2183', '0x1115af596e', '0x1201655a01', '0x126c3bebb1', '0x1101469804', '0xee11dc504', '0xdc0493f45', '0xf77f308bf', '0x1166e5eec8', '0x1393914100', '0x11abcc5025', '0x124772a300', '0x106090b57e', '0x1263e7d9c7', '0x14af3bd06a', '0x1322a7966a', '0x128c627f21', '0x109893a835', '0x126faf7b04', '0x1021b98ba4', '0x10bb85d251', '0xed152c471', '0xf44235267', '0xda23eaeb5', '0xe9db51dad', '0xd493976e2', '0xef234ab4d', '0x10d072055a', '0x12ea3de437', '0x108cf627b1', '0x118b33c8a7', '0x13546261e8', '0x115fef5063', '0x12475cafed', '0x1061e35444', '0x1017d63890', '0xf8ed3f90f', '0xee954ff9d', '0x10c668a770', '0x12dee8f7aa', '0x13450079e7', '0x11ee4d5719', '0x142bc98ae8', '0x14652b7dbb', '0x1282452e24', '0x14d23666a7', '0x155862fd11', '0x13404a491c', '0x12998cf3f1', '0x122c01bdb1', '0x10ea795daa', '0x130162bc32', '0x1505f116dd', '0x1316eb8765', '0x14b78f4843', '0x1563d52960', '0x14384d25c7', '0x13febf6c3b', '0x167def7fdd', '0x194d286af7', '0x1652bf0c7f', '0x1645ce83d3', '0x14bf3b73e8', '0x12afcf8162', '0x15054a625e', '0x147f73bbc3', '0x1603e8c762', '0x1618098a44', '0x13f8383b3e', '0x1579d946fa', '0x18283c0da5', '0x19023e4e88', '0x16bc3ba143', '0x16f8ea5e5e', '0x1421c915e7', '0x154aa56e78', '0x155758a2ef', '0x138ea8f94b', '0x12ec5057ea', '0x12f3210ba4', '0x10cdf3c3cf', '0x110e9e38b0', '0x132f26a8b5', '0x11fddc075a', '0x11bc4f5e0a', '0x117a2b1881', '0x11c2118159', '0xfea5041f1', '0x11e773b4e2', '0x1243ec5441', '0x1458b2b533', '0x147cfb38dc', '0x124fa97667', '0x1050c48871', '0x125acabc2b', '0x10eb34dfd9', '0xf0b499282', '0x10eb7553f8', '0xf493a81d4', '0xe4e6e13da', '0x1017e9625b', '0xe6762b576', '0xf891c6ca9', '0xe97ed1a70', '0xd1189d097', '0xeb3596993', '0x103abe0b2a', '0xf8130528f', '0x1170ff5dca', '0x1341042dd1', '0x11bf43acaf', '0x116adb15e4', '0xf8dbd9a06', '0x117eef04ba', '0x105f3cb7d5', '0x1013ec28e6', '0x10ef6103be', '0x11a2ef62c5', '0x10f9803bbd', '0x1002e8ff79', '0x120339fab4', '0x11a39b8043', '0x1286900149', '0x12d2d882ef', '0x11223aefc9', '0xf4b6421e8', '0xe3015f535', '0xff5f06302', '0xeb2ca339a', '0xe7bb0bd69', '0xd602ff8a1', '0xf0bb1e94b', '0x10ae877f33', '0xfc4b1e242', '0xf9f96d989', '0xf7e2bca07', '0xe74a46d64', '0xfe3603b83', '0xeedf8fe75', '0xe00aed2fe', '0xfc026f3f2', '0xe97b73486', '0xcee335718', '0xd506596ee', '0xcf015d4f8', '0xd366da13a', '0xe760c07f2', '0xcc2a445d7', '0xd4ffe2502', '0xcc1affeb1', '0xe59c36ccc', '0xf4f1978ef', '0xddcf724ee', '0xcfa9fec46', '0xe674b7ba2', '0xea2d2f708', '0xf361f134f', '0xe2374fdf4', '0xfe76274ac', '0xec7ab3288', '0xf1b9acfe6', '0xd9585a0ce', '0xd45dc6722', '0xdb6bed870', '0xd245d4445', '0xc2103603f', '0xda4ce0333', '0xcea4c3ed5', '0xe8187e41a', '0xcf4713a78', '0xd9366552a', '0xc4657e39b', '0xc96581500', '0xe29149d22', '0xfc398cacb', '0x11673655af', '0xf7dec7fdb', '0xf3bc24c28', '0x11231b6f47', '0x13475d01da', '0x11471e3d9c', '0x1104cbb78e', '0xf26abf28c', '0xf28011bbc', '0xf2b3f5be1', '0xd5ee780ac', '0xf0abcda7c', '0xf7ec49494', '0xf9fad6288', '0xff0bb3b99', '0xe85507e9d', '0xcd6bd684d', '0xe71899755', '0xfaaf0a1e2', '0x109616394e', '0xf378be6b2', '0xf97bef890', '0xf480d4524', '0xeeff1d3c2', '0x1035e52ab3', '0x10d37bc147', '0x11e3f5f302', '0xfe3cd77a0', '0xfcd92e08e', '0xe47c78cff', '0x10104a9146', '0x1211f02ce5', '0x1421a02c45', '0x147a674b01', '0x132ea796f7', '0x12cdf7595e', '0x135c7f89dc', '0x1436fd6207', '0x1356b18a40', '0x1242ad0481', '0x11931fa3a3', '0x12d517ff0a', '0x131b62cc78', '0x1161c3a5e9', '0x11e6cf7ca5', '0x1260370e82', '0x10eec30fce', '0x130c0705a6', '0x156d1fa628', '0x146968d30c', '0x11f7fdd3a7', '0x1436a30e7f', '0x14bb3a6507', '0x12965af0cf', '0x10438f92b6', '0x124be8f818', '0x14956156aa', '0x1727a6d0f0', '0x158686fb12', '0x1510798a39', '0x143c6965a1', '0x1293e50516', '0x11c92aec20', '0xfca80f75c', '0xdfd336c89', '0xfbc4c3320', '0xf1aab0707', '0xf9654bd81', '0xe5857f7a8', '0xdc47c2af9', '0xdee951a44', '0xc30c276fc', '0xdb6c1a7df', '0xf6cbc5f37', '0x1159b59ca7', '0x10c7295f42', '0xf685530a9', '0xfe91707c3', '0xe0aa38967', '0xef0d88aa5', '0x10cea6f2fc', '0x1283953a00', '0x1088d6bbd4', '0x1299ee5ad6', '0x116b32f4ad', '0x10dea8518a', '0x1172747661', '0x1187fe7f94', '0x10a54fe57d', '0xf6100ab8f', '0xd74e0961e', '0xf23524037', '0x10adfe8233', '0xeea2d8d96', '0xe3b6661ee', '0xf25e2fa46', '0xd4fe34301', '0xee0ccc1ea', '0xee91b1ca5', '0xe5634bdf3', '0x1020d6eb1e', '0x122444765f', '0x146852a8b3', '0x14f009d913', '0x14281bccda', '0x11f8e5a816', '0x11fd8dc58f', '0x143cb7d76a', '0x1685febaf7', '0x15f12bad32', '0x18ae7dcc26', '0x189b266f5c', '0x168666c01f', '0x1745626118', '0x164d2e44c6', '0x141f49bebb', '0x16a27b3edb', '0x150d31a404', '0x17794d2be5', '0x16e1918674', '0x14784b0077', '0x1605925f78', '0x1396cfa239', '0x152b296ffc', '0x173d629b6f', '0x1a246a3dcb', '0x1a1e367ab4', '0x1a36fe5924', '0x18272894a0', '0x19a6183315', '0x180cab2809', '0x1a5025ff10', '0x196258bc92', '0x1a74ba4a16', '0x18f910acac', '0x1787387849', '0x16f27e6d5e', '0x14f1141594', '0x158bd08e82', '0x152b74cc35', '0x1353bb7a45', '0x12339de75c', '0x1365222f3b', '0x15d1b1151c', '0x188bd02fb7', '0x163f54040d', '0x17aab1d3af', '0x14dba327d7', '0x1492f2b49c', '0x14656aaac3', '0x1266bb0a70', '0x10c248d033', '0x12da3baa52', '0x153566b59b', '0x128eb9dee8', '0x107c6d7715', '0x128be63369', '0x135c3725df', '0x10f0b04124', '0xf742f67a3', '0x112e0116eb', '0x12313ca52c', '0x1045fd4599', '0xfae340f20', '0x10e26d7241', '0x1044295034', '0xfafa298b9', '0x1067432112', '0x1253e87510', '0x149e561d58', '0x12ece4a032', '0x12d45516c6', '0x10e444b068', '0x1071a7ecaa', '0x127f3548d9', '0x112ed1f97b', '0xf7641e737', '0xf6eefc561', '0x107c0c6f4b', '0x106bfa8612', '0x1190c333a2', '0x13c252f1ed', '0x1323d86674', '0x12f6c9053c', '0x11e375547f', '0x1243f49102', '0x11966e556f', '0x11460496b7', '0x120a182ce5', '0xffbbd9b17', '0x104be90027', '0xf1db537e7', '0xe9415a89b', '0x1053950b10', '0x121ec6bc47', '0x11b4d588e6', '0xf7e3ad7ca', '0x116db03bd3', '0x1177f3490c', '0x13a6c6267d', '0x1350b92d8e', '0x11e8d68df3', '0x109f3c7402', '0x105dcdf2a5', '0x10f08840dd', '0x117420d298', '0x13a2385d41', '0x118ea84bcc', '0x1219c02f14', '0x1251def6d8', '0x1073f3ed9b', '0xe65756fe8', '0x1031c69ef6', '0x10343a0352', '0x123a3ea52d', '0x120c26c8f4', '0x137e91a483', '0x11796ab23b', '0x10bac3f2a9', '0x10e0d16895', '0x12c9ae27a9', '0x1522ad7d54', '0x1442856a66', '0x12a0b99be5', '0x14bb6940e4', '0x14ff23400e', '0x136974d15c', '0x13968804c9', '0x11e0425792', '0x1152abc353', '0x10505ba577', '0x10c702cb77', '0xf427057d4', '0xf71911c10', '0xdd0a0b0a8', '0xf60baaa44', '0x114b768415', '0x118db5567a', '0x10e067d5a3', '0xfda7377f5', '0xf3924a958', '0xe20300ea0', '0xd86fe521d', '0xd82470a1c', '0xc062d1519', '0xd6dedaf6e', '0xf1b505779', '0xf8c6a93c0', '0xe5f93093c', '0x102b50f1de', '0xed72c58c1', '0xf0870a961', '0xd87a1bfe8', '0xf384089b5', '0xd8c7302fe', '0xdb6825d9e', '0xf6d1df259', '0xfd2a8e4c9', '0x1022bfe592', '0x1226f66bbc', '0x13c0c7332b', '0x12750a36cb', '0x140c6ae13b', '0x126ae5b3d5', '0x10e89fa81d', '0x100ca6fa3a', '0x104da0375f', '0x1256feda1a', '0x13f919e333', '0x120aa8b9a4', '0x1137042b74', '0x11b11f5528', '0x1287c49780', '0x144a87da80', '0x126d145b16', '0x1380f90762', '0x13854ac2c2', '0x15b6e2670c', '0x137ddafa6e', '0x14919567f1', '0x12f306e7da', '0x126c47ebd5', '0x1088be5810', '0x126a08e6b5', '0x114209c2f1', '0xf600e5474', '0xecb5668eb', '0x10a4a790bf', '0xe90129ea8', '0x1061fab737', '0x126dbdf2e3', '0x132a6b7452', '0x10c51e05c8', '0x12ddaa6126', '0x15391d4840', '0x17dfb70480', '0x1adb11c28b', '0x1e35d62a3d', '0x21fb97d1c8', '0x263830a781', '0x2afe62e57d', '0x305b74b244', '0x31cb67889a', '0x2bbf0dcfbf', '0x2b3656e67d', '0x289b0faeaa', '0x26eefa0327', '0x2300a1f609', '0x26ac995a60', '0x22a44773e1', '0x1f3994603d', '0x230aabed4b', '0x21363a46be', '0x1dfaca2ee6', '0x1c644ae968', '0x1d019f4915', '0x20a11ec370', '0x208fae4009', '0x1def377618', '0x1b7aa1189d', '0x1bf409d215', '0x1c746bdd80', '0x1cb8b9b1e0', '0x1a9eba5956', '0x19066db5dd', '0x16d631d649', '0x17aef4528a', '0x1a5e0a4998', '0x17cb56b540', '0x1777401b00', '0x183d0aa662', '0x163a5162f2', '0x172b5bc60f', '0x1692f1157d', '0x1897149d16', '0x17058901ec', '0x16fa40871e', '0x14e067d4e7', '0x177bc8e638', '0x19fb9162b1', '0x178ff309c6', '0x17b49c87f3', '0x1aaa8ce53e', '0x1dff9694f1', '0x1c8ec95549', '0x1b316557bd', '0x1a18f87555', '0x1b7024359c', '0x1891df79bf', '0x174012ac6e', '0x1a262afcdc', '0x1d69ea60d4', '0x1b08d4b9fb', '0x1e68ec338e', '0x1b9c42ff7c', '0x19f3665cad', '0x1b10b4e792', '0x1e067eee5d', '0x1adef2ed7d', '0x17f1a4e3f0', '0x1703ef808e', '0x19b61ee46a', '0x1ceca66d0b', '0x1c2d55e117', '0x1ad6a9cca0', '0x1d88403ba7', '0x1a4958eacb', '0x1d63dddb03', '0x1b500e953e', '0x194c2efb42', '0x19a66a35c3', '0x17701859e9', '0x1a5bd17ef4', '0x19eeb1b362', '0x1d2b8934c1', '0x20d0eb96c9', '0x21ae25ac83', '0x200bf6d059', '0x1dfc039e0d', '0x1f9b969a73', '0x1c69079029', '0x1dfe1bd475', '0x1b73d61aa4', '0x1c7f564864', '0x1a77183e70', '0x1dc52d6d00', '0x1c4faf81e6', '0x19298f3849', '0x1a3081217d', '0x17e20400ca', '0x15dd5925da', '0x18979e72e5', '0x1a556f78c8', '0x1774ee8b96', '0x1870f75f8d', '0x1771091974', '0x17aa0ecf8b', '0x1a9f117ef5', '0x1d60fda804', '0x20e4aee992', '0x1dfaa9b9f7', '0x1b9858aef5', '0x1c17e14e1c', '0x19a060e583', '0x191559348b', '0x187c300141', '0x17828fcf20', '0x19653403f7', '0x1a66dbb855', '0x186e89a27a', '0x19d063b713', '0x1790a93005', '0x19f8fcf593', '0x198949d789', '0x17d67ce1f2', '0x154d3359d5', '0x1579a52318', '0x1828ae98b6', '0x1b2db7f3e8', '0x1a6f52a309', '0x1944a61139', '0x18a0b2939a', '0x19099b78ca', '0x176d3a326e', '0x1a253a0177', '0x18e4f21ff7', '0x1bfcb1894f', '0x1d00314840', '0x1b858a0646', '0x1af9a2aab8', '0x1e58c5f50a', '0x1af9340148', '0x1922a0dd4f', '0x19c8a7e4ff', '0x192080e06a', '0x173f23691f'], 'gasUsedRatio': [0.9999549999159999, 0.2427674822790791, 0.68367701429564, 0.7599586608499036, 0.2940241643568803, 0.046862933333333336, 0.6855045333333334, 0.9994006480661699, 0.23938375675817297, 0.15316153333333332, 0.12293413333333333, 0.47671006666666665, 0.9998717, 0, 0.9995980329447651, 0.8805779333333333, 0.312201, 0.6027185333333334, 0.09635936666666667, 0.21076303333333332, 0.4431443, 0.0288342, 0.9683087, 0.6955152333333333, 0.3664258851231772, 0.5266237333333333, 0.19378703333333333, 0.9993852997452012, 0.9932681923961033, 0.24762361049180207, 0.4922359019148803, 0.047154168972255786, 0.9994411984167288, 0.5916588666666667, 0.6094640583470241, 0.40841533333333335, 0.15979452731074772, 0.23890285844469436, 0.8655279923818062, 0.29777154225226327, 0.9996211692084894, 0.9880843933918063, 0.0773066982883232, 0.40397783218495725, 0.1595930358404725, 0.5417604666666667, 0.25170054774845696, 0.9998456349574809, 0.09454473512606003, 0.6871411666666667, 0.37170713333333333, 0.5435969557606336, 0.7734328885373626, 0.0152274, 0.318141, 0.8622318666666666, 0.47992853333333335, 0.29606936666666667, 0.1605554156967612, 0.9988072988868123, 0.2952317817148184, 0.049649766666666664, 0.9977717, 0.35504533510306147, 0.4093643820734233, 0.6955285, 0.21355843333333333, 0.6096055202095154, 0.679820852714491, 0.37474239297091044, 0.7295774, 0.9342096442823583, 0.6819529333333333, 0.999630793863126, 0.10263799921673257, 0.4104928, 0.340839, 0.998447984456822, 0.5452458088960883, 0.4016652820729857, 0.2048139891465794, 0.13253407133539455, 0.9997635993301981, 0.8065725333333333, 0.45755099855008413, 0.35929433534137967, 0.32736146666666666, 0.4135867, 0.16612258129936117, 0.7097214666666667, 0.7852424333333333, 0.9999618333333333, 0.9996009563328077, 0.30824453333333335, 0.5082741333333334, 0.7322249333333334, 0.0195327, 0.9993470666666666, 0.19846566666666668, 0.10010778858889038, 0.9995764064504851, 0.12890064923342315, 0.32093511962195503, 0.9999546556350734, 0.9385218737906578, 0.3177208333083992, 0.31507268714218917, 0.20340926087671368, 0.9996582665267015, 0.9996743306343956, 0.9720705071174971, 0.08715951361862193, 0.17310616666666667, 0.48482439769101193, 0.25037564996043277, 0.3295344756321145, 0.1322722513172775, 0.9996753823941344, 0.6271604436212569, 0.04985453333333333, 0.9934422666666667, 0.370095031131233, 0.9995356936430374, 0.8099347175218871, 0.2129720379802055, 0.052740466666666666, 0.4872440333333333, 0.3688127122802083, 0.3066515195414182, 0.30062517439963066, 0.39853266763322104, 0.9392542842051069, 0.1917534945749048, 0.48894011233924606, 0.15323960084553573, 0.5437748445596804, 0.8275923333333334, 0.3757232, 0.06677894297114466, 0.9497904542861302, 0.17982907692839495, 0.9995734669667683, 0.999440819545871, 0.9998519995757321, 0.2919233666812154, 0.36782719774335143, 0.2085544125572966, 0.9332954842652922, 0.1655180785225823, 0.8563927894103182, 0.11114586747103004, 0.11691480886823216, 0.1928754889890748, 0.9999423662305711, 0.30935009371586225, 0.14550731788979265, 0.5177572635555527, 0.17470948101864364, 0, 0.9993104261387794, 0.999468, 0.6617435666666667, 0.13115347136478772, 0.9997775991921296, 0.999796467720648, 0.8241705659209291, 0.11575405762845227, 0.1773899867006798, 0.7336451013298921, 0.22377533322578996, 0.5384623665260329, 0.3570154793747212, 0.5892548554900946, 0.30115618247535075, 0.9127651259352372, 0.7339221789102774, 0.35005288811922897, 0.08999582110309506, 0.8285618577035457, 0.15003324826719916, 0.5869288785177954, 0.9997347152321818, 0.4618793360757498, 0.9996501831361753, 0.9994516296109867, 0.12668244805996928, 0.5934814565385114, 0.4414195244004574, 0.9502068052500318, 0.2645373839766369, 0.45402752611971897, 0.22471572036039353, 0.9872056976994259, 0.009864436584403688, 0.9997911587998026, 0.5280699970184162, 0.3234941499000914, 0.22148363333333335, 0.9053600492452454, 0.11098590390995675, 0.9994278914442997, 0.9998477, 0.11906456666666666, 0.3076162205727226, 0.07327684127929994, 0.7648007501955724, 0.6859612131504871, 0, 0.8370690216641296, 0.20798945597012525, 0.20699536666666668, 0.4697891824700153, 0.15950710182991212, 0.37494146201215556, 0.4726573103950896, 0.5525651931555662, 0.2741466250579567, 0.8453497284908974, 0.4340607, 0.9989172666666667, 0.8710621, 0.4089306, 0.6204838666666667, 0.7308704283065747, 0.04063327125771984, 0.5185476791198277, 0.10686473281416792, 0.853408846768717, 0.8371605107160967, 0.7744430454077011, 0.04195651940122681, 0.8179566531381844, 0.29142401747616287, 0.3170338254618831, 0.6444858619559912, 0.08975819776022573, 0.36105816355868176, 0.12352000187214582, 0.8250577000494261, 0.249296147711913, 0.013605412127667001, 0.9994471475830785, 0.85905406008386, 0.8391843804209393, 0.8930341901296396, 0.12758492147896816, 0.6011446333333333, 0.46416740719354216, 0.6456525666666667, 0.32144214507866403, 0.5578390344546434, 0.05437875171507688, 0.04369141780340775, 0.9996133434892135, 0.3281209666666667, 0.11688690673108958, 0.9998150723422168, 0.5912686796691651, 0.20866458860821852, 0.1884677968924796, 0.9999751514467552, 0.9997943982722769, 0.9467431349081645, 0.10848320741961097, 0.21220592266700544, 0.9350688682209934, 0.9812165158554658, 0, 0.13648532110125447, 0.6367030174978772, 0.3591532551935331, 0.29888839570347553, 0.38011140099473323, 0.4096075261191192, 0.2324500120235451, 0, 0.9998576162152899, 0.31068622750283187, 0.999469393566524, 0.9471973308549688, 0.6683437085962217, 0.038286685700149106, 0.7848440671297711, 0.059538786081635604, 0.14257104573766988, 0.9997252642663136, 0.9994736376633894, 0.5752491025368536, 0.9997481407217711, 0.3213324902393385, 0.9999086661430192, 0.5323716798763639, 0.5808955773613581, 0.6342900889937885, 0.05162642641078025, 0.5625835946536865, 0.04281722203463364, 0.5950762565107214, 0.24569464163511337, 0.37759470532635797, 0.9992036644103824, 0.10948413333333333, 0.5465650541086704, 0.24500912867518676, 0.9999114134125165, 0.2629048865768179, 0, 0.8811199887620553, 0.5096217931145152, 0.1273538890486156, 0.46299523253195113, 0.9998515914996295, 0.9842035120950265, 0.11767494792036304, 0.1743175919521047, 0.4610145666666667, 0.2609463808075252, 0.9998672332094176, 0.9750857055551839, 0.1030503, 0.8965300616051575, 0.1692846246656497, 0.9046302, 0.9998319973878841, 0.14487356666666668, 0.47216026666666666, 0.9783068500276147, 0.17545396960550394, 0.5145987917253788, 0.2369522, 0.9995714333333333, 0.1881335, 0.3245640701478327, 0.20609744929418553, 0.5199131123755525, 0.8591890265510393, 0.5740515894208055, 0.01574048183461903, 0.9997254301755343, 0.9970144428109929, 0.11250465710087508, 0.5500541666666666, 0.2886678824794255, 0.09099342129364059, 0.7922376525641264, 0.18649938768216992, 0, 0.9996814442192897, 0.9999320000698017, 0.3145960810320122, 0.9999586261064597, 0.9997011985757132, 0.9994998193755188, 0.5411633693366509, 0.036814566666666666, 0.9999008031342606, 0.09493725527477159, 0.609338, 0.7591563333333333, 0.24318983333333333, 0.343153, 0.9997635333333333, 0.09394689419115566, 0.8688576810531449, 0.2198739416534953, 0.7184911295409688, 0.04928147027906602, 0.01418770733809437, 0.9998003666666667, 0.8526075045615377, 0.5067891730032281, 0.36397596666666665, 0.19278113333333333, 0.11159573990668555, 0.574512202878056, 0.558203, 0.05434126424453479, 0.01327270921323151, 0.9993295780181936, 0.9998339996845994, 0.9997117333333333, 0.9997750136341471, 0.23533756127544708, 0.27580525711198506, 0.45180068179156163, 0.5530973983859429, 0.3638285905707179, 0.9998209760565923, 0.3476420783122772, 0.12265927650279701, 0.4375798064761183, 0.17423803333333332, 0.9993220713359929, 0.15284349402323294, 0.18073261077419916, 0.9996033920914212, 0.40975280214161536, 0.2819268654594521, 0.322251967334472, 0.022578978735290283, 0.999958074114642, 0.9574249970591526, 0.3666412333333333, 0.11335460922409267, 0.23857566443754452, 0.5563056719401667, 0.04379431800234814, 0.9999749666666666, 0.5713097493630803, 0.20986700287143611, 0.9458040252412058, 0.634884806281132, 0.9994376333333334, 0.9499956040406791, 0.149970839972784, 0.7155719238507692, 0.5927133730649631, 0.1921626, 0, 0.19669587352049275, 0.9995766996049197, 0.9999547, 0.9998266307048833, 0.11068523161780006, 0.6376274310421411, 0.08381197571196701, 0.9916707212142555, 0.9990142315889147, 0.20042566940634446, 0.37729700246037345, 0.07896590688749072, 0.9435449415288745, 0, 0.648966782433266, 0.04224645303161692, 0.6210702666666666, 0.07228416666666666, 0.7881891, 0.1360132164274919, 0.9997979666666666, 0.9999623, 0.9997590020012125, 0, 0.7400217312205368, 0.9071800800347414, 0.09546433333333333, 0.7081210468689342, 0.08500834195071058, 0.4293722637420657, 0.3669764839724143, 0.3337904583774918, 0.9999059829573653, 0.9997206819892738, 0.5845321538572784, 0.2221166594132359, 0.9997363152168575, 0.5444500014611522, 0.13004486549227456, 0.9997117, 0.6006895266771998, 0.1075706, 0.3646674, 0.40797636666666665, 0.22353203333333332, 0.9940905666666666, 0.9246783848904878, 0.13208689435066454, 0.8410243333333334, 0.6299300666666666, 0.2811976105333142, 0.4555253, 0.9994876003582501, 0.9996390333333334, 0.02916905024423016, 0.49094302017157626, 0.2259995069847607, 0.10278771449934103, 0.9995849622686741, 0.4005156876995452, 0.7961111048829497, 0.5142855028617871, 0.11540733065760139, 0.8017312333333333, 0.9993850333333333, 0.6410093789919189, 0.13637092727953212, 0.5417045666666667, 0.005430736447474292, 0.7304020817086095, 0.5093199930051631, 0.16563628766981917, 0.3702957974081842, 0.5056273992776313, 0.04717603439635216, 0.5601269588585392, 0.9988143376952426, 0.251348289715238, 0.44307296979039, 0.4417293511906351, 0.5642801359495296, 0.08491176324802954, 0.9998520333333333, 0.5807000333333333, 0.9557601664692239, 0.5278635915883533, 0.07496941343598656, 0.06405196228407287, 0.9999312660817766, 0.18708093629868405, 0.0567801752776611, 0.9987121156052005, 0.11377462926332592, 0.24364026194108354, 0.999648231219958, 0.08006276666666666, 0.8142881809246604, 0.25742708217951277, 0.08201760280615626, 0.9995439991335984, 0.9160050666666667, 0.3213573, 0.9996574988809906, 0.9156945635009247, 0.18695418902780644, 0.42568465267010025, 0.07198421081009518, 0.9994730166947069, 0.24306698220341255, 0.4281217666666667, 0.7132755802708011, 0.6656659212881932, 0.34989003333333335, 0.2730150992444122, 0.9999537096381276, 0.41705542444221144, 0.7010405653104074, 0.5643392495217321, 0.14089696587473666, 0.07062073333333334, 0.2105726, 0.9998265306071379, 0.1836475923434272, 0.44142701352482006, 0.194145973557891, 0.9993973770402754, 0.9349610468883344, 0.2809784966363916, 0.4632317, 0.466578347089266, 0.2322064491358097, 0.896399929622438, 0.258661810708495, 0.25165731770357735, 0.9993124742900085, 0.20592724694457512, 0.04438170425361517, 0.618658997292641, 0.3869714190275427, 0.5849530593207509, 0.8779755041073835, 0.029551833333333333, 0.6730842334206019, 0.3329746774430323, 0.9998346, 0.7671224, 0.12222536666666667, 0.2448938611445923, 0.9390145302417253, 0.5645776689979701, 0.6572503040172545, 0.21786766666666665, 0.999442388826022, 0.21732874018943246, 0.5887350355394052, 0.0965639926965361, 0.4083703298096968, 0.6328889476149832, 0.333219266614715, 0.19164916666666668, 0.999568278423881, 0.28641015838985423, 0.9926755072191231, 0.0722792706639476, 0.6917204333333333, 0.11666979472121193, 0.6018357902516238, 0.9999297945319969, 0.952973433606984, 0.9159140626928197, 0.06070472571020511, 0.433266629766252, 0.9998751592779584, 0.9998794166292191, 0.08483690068212929, 0.44002206372796593, 0.06103143213487793, 0.5013743298388277, 0.5033434666666666, 0.02581627626043498, 0.9999653666343422, 0.6205277244821663, 0.5331850952788445, 0.5810606333333334, 0.14377273333333335, 0.036682120090268146, 0.9999453666156755, 0.8390391381549372, 0.7345054710768794, 0.16977563615656105, 0.5987789432477078, 0.4201410666666667, 0.4099120333333333, 0.840957361530201, 0.6518961113357348, 0.7530269253853333, 0.05269648465775274, 0.47814162970856117, 0.11459682219056036, 0.999495973022645, 0.9996210985475444, 0.9562858121912181, 0.5689051117810329, 0.246872714632445, 0.4212419001916918, 0.6184320445685767, 0.6763273755158368, 0.3266305666666667, 0.27698666666666666, 0.349784431163698, 0.7862514338346716, 0.5583205210879955, 0.13885762586756828, 0.6195984666666666, 0.6059651666666667, 0.18585355266083997, 0.9994649995006663, 0.9996659333333333, 0.3106047, 0.021248649306047356, 0.9996925997130931, 0.6024930944867886, 0.0863205, 0, 0.9999078665806754, 0.9999841154963922, 0.9996955, 0.21852302106340174, 0.4143076533538098, 0.3426970301671864, 0.17221362146542674, 0.32949416666666664, 0.051377036342655266, 0.043547340645429256, 0.999381962555666, 0.33950581172770894, 0.6279271333333334, 0.18124208377186343, 0.3389490666666667, 0.547777062365267, 0, 0.9998742437441184, 0.9990141981269764, 0.9993735871176359, 0.3680257427396044, 0.17327996666666667, 0.6305743666666667, 0.030134466666666665, 0.7561671, 0.9996868333333333, 0.9061966656226861, 0.07233020325252981, 0.9999881115975329, 0.24570650186851745, 0.3739311125354267, 0.6368919989217049, 0.519289752829978, 0.2979658333333333, 0.19557781506974894, 0, 0.9998076453130387, 0.9073704580836527, 0.07675236373775982, 0.3168990417772531, 0.7574372333333333, 0.015201, 0.9705696, 0.5087230333333334, 0.34606149571723455, 0.9998449665219687, 0.9993440588612663, 0.9995883325648874, 0.6039105419887597, 0.3507996605990384, 0.06651183725928926, 0.5040484977415683, 0.9995397488157641, 0.9518886339161221, 0.39675715790714905, 0.9994120966489509, 0.4877557737209487, 0.16170117261777836, 0.6324798, 0.3333472802858658, 0.10912593518420617, 0.9994427103398827, 0.22022516666666667, 0.9602599271521974, 0.3990012436944411, 0.07847664163464314, 0.8032492726043721, 0.058135503417366854, 0.8225252205477676, 0.8913692430434996, 0.9995674666666666, 0.496293, 0.5148249599066822, 0.18539082859012984, 0.7477284129326947, 0.2505817427719779, 0.8764892237231574, 0.35879063160112756, 0.668892824669387, 0.27576977819839266, 0.26859641401787554, 0.40123107920147755, 0.15041045943683004, 0.6154515414071193, 0.43012206589312024, 0.15182934046795843, 0.26707266804237473, 0.7622676536532106, 0.9999327004371669, 0.9999355737460176, 0.12539622364003367, 0.7552031431225108, 0.025272452814223252, 0.44554740426996914, 0.46542102170105154, 0.10877587265007578, 0.14298853830251498, 0.9996858832422166, 0.9999080090331993, 0, 0.0535011238624365, 0.9999224141820864, 0.6755017646316716, 0, 0.14903790585917073, 0.9467122354236744, 0.7357729773088085, 0.07807810666286719, 0.3542617611525478, 0.8071335869839162, 0.35353957355722176, 0.35732902867509186, 0.6829121162479876, 0.9692689207604872, 0.9999486821985654, 0.17153035213673523, 0.47972239245682335, 0.08835696246034705, 0.3939821922219015, 0.9993778052037648, 0.2158410615066762, 0.09938096027528953, 0.49260195150295305, 0.7724538453202308, 0.4847679648655531, 0.7785778885079947, 0.9995251219513908, 0.37467888064374005, 0.46321508677081435, 0.27315007591239004, 0.5842868199902311, 0.35156029281371615, 0.428560297584479, 0.6773638087031423, 0.04409439094109231, 0.5783720355731226, 0.2102504414766821, 0.3577429775968821, 0.9796221019523115, 0.9394641266575504, 0.40864643333333334, 0, 0.9996770663544975, 0.5092000333333333, 0.9998478180610032, 0.4315805694751982, 0.2088733, 0.2124417839313244, 0.4384930238765897, 0.6400807666666667, 0.6213836, 0.9996203292515141, 0.07696818035259362, 0.6237854628304013, 0.5484447420450099, 0.09238272058715581, 0, 0.9996036118038265, 0.5023645589065052, 0.999508, 0.4604879666666667, 0.8206972, 0.08549644605376183, 0.3295250523651802, 0.5355401960207752, 0.9525645749581783, 0.9998231269415038, 0.33428579444234036, 0.17778315574992926, 0.9518491692849952, 0.551042983823978, 0.19810530750428096, 0.5362816198201962, 0.15039829561689488, 0.3762411, 0.2670059686715922, 0.6136424630818867, 0.1381177282188649, 0.5482567333333334, 0.07816406666666667, 0.9525231054791671, 0.99862083204611, 0.5598495333333333, 0.3457374207419788, 0.2574722488898406, 0.3410153644849385, 0.2116292857159795, 0.33054608397342905, 0.49455275608539084, 0.06035755157892689, 0.9674876524185534, 0.9995861353056341, 0.6169829883109866, 0.19767789100899416, 0.999777153945251, 0.17130516666666668, 0.5518711333333334, 0.10003716666666666, 0.9996145763661785, 0.06080579211226571, 0.5485058, 0.9997653375187537, 0.6028511055481036, 0.5790881893500082, 0.9998733891981649, 0.8527599251980021, 0.2375892492600308, 0.8448669861738446, 0.1746015057768224, 0.17229520070339074, 0.29672853880611344, 0.5632553793681195, 0.9996802829140524, 0.8562138504603198, 0.11319595809457564, 0.316706275105053, 0.6108288212827182, 0.6895691914642162, 0.8800883283199517, 0.13234317145050117, 0.733952575334099, 0.5034602587491702, 0.9495173042652473, 0.09054445750778176, 0.7210310418681922, 0.18508208752718786, 0.38889277778615616, 0.0898994, 0.9548267117160093, 0.24883796666666666, 0.06362336154588288, 0.3488655256078239, 0.9998941632182683, 0, 0.9998900591004906, 0.9995375986898629, 0.6599729334928673, 0, 0.9999148494954009, 0.9997851989832752, 0.9996033107552901, 0.9996008310713761, 0.9996413333333334, 0.9994967, 0.998688586070965, 0.999661699684253, 0.9990083, 0.618890046130046, 0.014144079867807876, 0.451169254314466, 0.25872076666666666, 0.3352738333333333, 0.0961287, 0.9195981876302209, 0.08292627762233731, 0.10547046052614896, 0.9889383629207296, 0.29112200695197393, 0.11071949301708531, 0.288139002686295, 0.5865840480370781, 0.9996203333333333, 0.4916488666666667, 0.17730816666666666, 0.17189372088511098, 0.5690350977660913, 0.5717620259295444, 0.5375069033462195, 0.2073208, 0.2603429666666667, 0.15020517535373293, 0.6483082384210225, 0.9533009547965834, 0.10966070469998211, 0.4447817333333333, 0.6317016233018209, 0.16819001812805384, 0.6694390917418311, 0.3972129054636984, 0.8572548540514104, 0.2448513340863853, 0.49234201695516017, 0.1342581285513866, 0.9994973636640686, 0.9256859981414259, 0.12738496572234068, 0.5243119292379893, 0.9995798, 0.9998353392087374, 0.30790545404509045, 0.30883556666666667, 0.3388683333333333, 0.7054616833337755, 0.08186007640273797, 0.28517847628200055, 0.9987136309321111, 0.9993885, 0.17644546666666666, 0.999415, 0.1317697731835137, 0.2595664242979913, 0.6717836127553479, 0.9374779590365971, 0.07975810465486448, 0.0642910914593783, 0.34487938042016514, 0.9685625382965494, 0.9998567571276521, 0.3966516267856752, 0.30997851054253867, 0.9014678361804788, 0.060383065973913096, 0.9722712004632911, 0.21726788968908878, 0.20488029033850705, 0.5557311763005064, 0.1550204155325771, 0.9984742450400702, 0.4353129, 0.9994004812365942, 0.99996909997116, 0.6053346, 0.30599586666666667, 0.2425878537058104, 0.7165572687867842, 0.09535323476343227, 0.7227842825306607, 0.1612330450368292, 0.652252092972527, 0.2147535, 0.999525230279299, 0.3039715666666667, 0.05509873333333333, 0.663280293206316, 0.14770623241275185, 0.16197835665714994, 0.999001082447353, 0.7832550700939133, 0.06299893114482595, 0.6678849709443773, 0.3363866802006803, 0.5380083132873859, 0.9998370813528487, 0.9143304019457493, 0.9784967107645847, 0.14562483333333334, 0.18190573333333335, 0.5722125655702793, 0.14876967499022592, 0.41523047394726764, 0.4045926495977527, 0.34070305361653624, 0.8207686161499321, 0.6585276378099763, 0.20153500108631905, 0.7263008775621446, 0.15151653229103657, 0.9086602874265032, 0.432801984830283, 0.23395658528149504, 0.0744114493035955, 0.5326006546509418, 0.9998772360300485, 0.9999685, 0.39054126666666666, 0.323461, 0.398618, 0.5665597333333333, 0.24264883333333334, 0.9642139882929014, 0.3085940880211488, 0.996943, 0.6448765219236584, 0.2959894762568445, 0.4205717333333333, 0.9999614043553137, 0.05536345351800507, 0.22740858867479477, 0.6032087333437796, 0.39809955877333814, 0.2006670152676776], 'oldestBlock': '0xd1131b'}}), + (('0x400', '0xd11319', []), {'jsonrpc': '2.0', 'id': 18, 'result': {'baseFeePerGas': ['0xec26d1671', '0xcea1f73a3', '0xe872d8fd7', '0x10576e32b1', '0x11ea78c673', '0x1290cbf97f', '0x108a1e54b2', '0x129b556283', '0x10f4ab2686', '0x12ede92bf9', '0x122f620d5b', '0x107441ec71', '0x102b8d77e8', '0x10f7f21ff0', '0xf034d5964', '0xe8546d3bc', '0x1055a56cf9', '0x113db0e46d', '0xf6665eb21', '0x1152c8aaa0', '0x10d75d6a6f', '0x102b234bee', '0xec14c5d9b', '0x109970a429', '0xf3e1f53a1', '0xf63b7c32f', '0xee8a2e111', '0x10c558132f', '0x11c5326a81', '0x106a4c8cb6', '0x114b3ca346', '0x1034a960c4', '0x123ac8339f', '0x12a0af106e', '0x109d567bbd', '0x12b077000b', '0x11c19e9227', '0x11c33e9cd6', '0x10dcaadc2c', '0x10a4be17b6', '0xf95161353', '0xf26395f1c', '0xe58c11959', '0xf239da87b', '0x10d9b35a9d', '0x10e93536f2', '0x111621590e', '0x13383bfa41', '0x12466580e3', '0x10642c1aa5', '0x126ffdfb0a', '0x1060610608', '0x126600a168', '0x12ab7e1dd4', '0x1092fac3ee', '0xf8c746cf1', '0xfa451b068', '0xe6f22968a', '0xec8b85496', '0xdea30b595', '0xfa6eb4bd6', '0xe413345ec', '0xff451d848', '0x10db5e358a', '0x10e9e41bf8', '0x10a17c4360', '0x11de8dd080', '0xfa2bc1670', '0xeb2cda901', '0xe901524de', '0xdca7a18ee', '0xf8399fa4c', '0x11737cfe4a', '0x13a1ace900', '0x11b115e9d4', '0xf8769e3db', '0x1178137964', '0x1038233872', '0x123efb05ff', '0x10b42329de', '0xf666ddeb3', '0xe915b318e', '0xe1b2d5011', '0xd51026c05', '0xdcc6885a1', '0xf857d6659', '0x11691203ac', '0xf876ef5c3', '0xf86d3c6d7', '0x117750cea0', '0x108231e679', '0xfa48ab9bd', '0xe7eb88cef', '0x104e3421a9', '0x10a24b0a46', '0x117ce0df65', '0x113735e4ce', '0xfddd08fd4', '0xf0275cac2', '0xf7e7195ee', '0xdcc6b3132', '0xf85a0474b', '0x1176053f8f', '0x13a402fcd1', '0x13d6e73528', '0x115c0a4e83', '0x11d48f04e4', '0x116d63d0b6', '0x12483cdcdf', '0x12e0cdc559', '0x127ccfb204', '0x11537f3c18', '0x1067448be5', '0xf9671e57b', '0x1110ac2f97', '0x12012404dd', '0x10d7c07263', '0xfeae60370', '0x10166db6f4', '0x1014bb1b0e', '0xf27b3344d', '0xed992d655', '0xf109b560a', '0xfc6c17216', '0x11493053af', '0x105604ecc1', '0xebe2598be', '0x10956c74ef', '0x121f7be7c0', '0xff394d155', '0x1136928a63', '0xf3def19cd', '0xdef0884e1', '0xfac5f79dc', '0x1169687330', '0xfab6d91af', '0x105e36b7a6', '0xf39330b78', '0x10b24fa3f8', '0x12362dfb10', '0x1100a1247f', '0xefe20637c', '0x10ddaf5891', '0x115c893326', '0xf7627f190', '0xe8f1cd0d6', '0xf4e65e3cd', '0xda86a75a7', '0xf5d5f748a', '0x1149007aeb', '0x1371fcdcd2', '0x11f3801164', '0xfb5100f38', '0x10f07b4812', '0xf9f17ca54', '0xe5cbb99c2', '0xf000d3017', '0xd5ee5f2b9', '0xed6ce1ec9', '0xf6f4e6208', '0xdd3f4ff31', '0xcb664aafe', '0xe4d2324cf', '0xe08f7240e', '0xe221859db', '0xcecd544e6', '0xe8a43273c', '0x103c60499c', '0xfa928e7f0', '0xe8bdb9457', '0xeb193034c', '0xe8a6faf23', '0xee4d2871b', '0xd350ebf50', '0xed0c6e56d', '0xd5fb702be', '0xc032b3c3b', '0xd832a973d', '0xf2e43fd50', '0x10efa61abc', '0xf32b06eb5', '0xe4a15d730', '0xf52985e21', '0xd9478f231', '0xeb666cfa3', '0xe800c8d15', '0xea179b8c2', '0xf5c60dbc6', '0xdd9e4f9f6', '0xf8e9fecfd', '0xe0434fdf2', '0xcd4a7d151', '0xddb3fc94c', '0xf3458f4f8', '0xf0641964e', '0xd8b98184e', '0xc9503ae3b', '0xd6413d6db', '0xef98b89c5', '0xe8e2710ad', '0xe617fcb1a', '0xdc58233d2', '0xf7dfbe1d2', '0x10651def12', '0x1254df72d1', '0x120d928dc9', '0x1041cdcb9d', '0xf04d0d015', '0x10e10bac12', '0x125cf7894a', '0x105c556679', '0xf86acab86', '0x1176eb4e1f', '0x112159d537', '0x10f5b8b87e', '0x112d173d63', '0x102f3962d4', '0xf029ca65e', '0xf06659f6f', '0xe8c105e42', '0xd80f7ac41', '0xf2967177b', '0xd9698c7b0', '0xe783f2c62', '0x104449d986', '0x124c59169e', '0x1060b9f6af', '0x1025926225', '0xfb5f981d5', '0xed0d30ec2', '0xece1cf8dc', '0x10a7ad9281', '0x10df5383b6', '0xf010c55f9', '0x10e0ae5def', '0x1048f53574', '0x115b141631', '0x10408dde3b', '0x1029ae2bfc', '0xf1eee5cef', '0xe8003e9da', '0xf859f4345', '0x1175b5cb39', '0x119ade175c', '0x10ab5ce819', '0x12424018b1', '0x148a047618', '0x128630afed', '0x1351df74ab', '0x128c30c56b', '0x104fb66702', '0x11f348d484', '0x1121082a13', '0x100baacd11', '0x1209d47d48', '0x113c873c84', '0xfc2236877', '0x10a558735c', '0xf7946fc89', '0x1032b04eb1', '0x12360b6183', '0x109174d751', '0x103aa718cf', '0x10e925c3b5', '0xfda5d9459', '0x1179f99a9e', '0x13a90b526f', '0x161e0621ab', '0x140a18d2d5', '0x12627b4db1', '0x14acee683a', '0x12850b2e5c', '0x10c3ba2121', '0x103cae8ab0', '0xfca5207cf', '0xf6ef87b15', '0xe6b8a4792', '0xf406b150a', '0x11257ef452', '0x116a13cd7c', '0x10b6849dc5', '0xf7e6be948', '0xea81286bf', '0xd4e0c7b4d', '0xef7c5af0f', '0x10d685997d', '0x12f0ebcfbb', '0x126f72fc88', '0x1114c774d2', '0xfc3a3a7a6', '0x11bb820abb', '0x123f201af4', '0x1039958516', '0x104440df58', '0xeadae1f47', '0x10830aa08b', '0xf34e23e5b', '0x111b238a9c', '0x12366651d8', '0x1193c524fb', '0xfe5354a91', '0x10994299ed', '0x12ac56f4bf', '0x11e3d46dac', '0x127c797884', '0x11f8531bbb', '0x1054c25f32', '0x11fa3c866b', '0x1055c7faab', '0xef098ee92', '0xf4b7042e0', '0xf20814cdb', '0x11046697f0', '0x1187644c82', '0x10552143bc', '0x10c342061f', '0xf0da50327', '0x10eee505bd', '0x104e32e251', '0xe446c8607', '0xf9cb9edab', '0xe9d198be8', '0x102e630d0a', '0xfb7de492f', '0xee7115b4f', '0xdb2e62afe', '0xf116cb91b', '0xef4f2aa0c', '0x10d36f493f', '0x11708dff20', '0x100c404853', '0xf7f0f1e84', '0xf1f305956', '0xe55803dbb', '0x101f7b41c8', '0xef806438f', '0xdf69c55ab', '0xdc8b2d93c', '0xea4d2990c', '0x1079320025', '0xfe7461893', '0xf01ec7fde', '0x10e1d6c3c1', '0xf77d09368', '0x1007ad0988', '0xe82d2dad7', '0xea802c8ef', '0x107c8d1708', '0x128beee812', '0x14dc91f996', '0x12f61f5ca6', '0x1237f519ba', '0x1092b7a8e1', '0x11cdc2d900', '0x104efdeb80', '0xf7c1cb007', '0x1077ac4da4', '0x1286259432', '0x13c768653f', '0x1296e6aa12', '0x110deb5884', '0x111269d836', '0xf2ce2b799', '0xe4fa6f9eb', '0xfc3b2b275', '0xe3a62f9de', '0xe216edfc9', '0xfe2ac2d18', '0xe6082af3f', '0xc94725958', '0xe13f94bc4', '0xd67f60a81', '0xcd351cd0c', '0xe6d2b2e80', '0x103ac70357', '0x10f3c6937f', '0xf907ad90f', '0xd9e6b7dee', '0xf450bf063', '0x112da86f4a', '0x12550bb5f8', '0x1099adf393', '0x114924c988', '0xfc34f65f7', '0x104146eb72', '0xe5645dace', '0x101f556efe', '0xfa62c2674', '0xdb166a1a6', '0xe5fbd140e', '0xfdd9f38ca', '0x10f84e122a', '0xfb6fafa84', '0xf69b529c5', '0x115678e756', '0x1380f72754', '0x1442dc6900', '0x15bec0f42d', '0x14e860f572', '0x150f11798d', '0x12b583eeea', '0x105ed3710d', '0x126a7e7f09', '0x13d29c9080', '0x11f218efa5', '0x10e36d07a4', '0xf64152724', '0xd77928240', '0xf2635901b', '0xef8a582cc', '0xe7a643ed5', '0xd25786ca4', '0xd9c850dfb', '0xcf3bfac42', '0xcc321d0c8', '0xcde44dbdf', '0xb95e1c94e', '0xd081d19f0', '0xe59245c3e', '0xd24dccd9b', '0xb8a11f126', '0xcfb40163a', '0xe9a8cea81', '0xdc8fd36bd', '0xf3ae81602', '0xf09d374ed', '0xdbd087555', '0xf08e6e9f2', '0xea6273a19', '0xe45414233', '0xcde9e1ade', '0xe69db8ae9', '0xdff195611', '0xc898af94b', '0xe1a441ad4', '0xf3816715f', '0xd5113a334', '0xde2fff5dd', '0xf5f8424c4', '0xd7393a02c', '0xf21cbf475', '0x1105afa671', '0x11cee12a0c', '0x11721cf8de', '0x10c5b143e1', '0xfc357104d', '0x1151456f67', '0x102136d467', '0x11b7d770d2', '0x13286bd01a', '0x10fd0c0086', '0x10b12bc14f', '0x12678cac9d', '0x14b43e6ab2', '0x132c03a3f0', '0x11b50ef5bb', '0x13844819cd', '0x1397ec2606', '0x11c40ed6a5', '0xfe4d0d2d8', '0xffabd3492', '0xe02939e95', '0xec56b1c61', '0xd678dead9', '0xdefb7890c', '0xcc510142f', '0xe5ca1b7e3', '0xfb6a04d0e', '0xf0f45b700', '0x10f0a7331d', '0x130e9a0d5a', '0x11dcef9d50', '0x13a51108b0', '0x148b89db9f', '0x171b0f5728', '0x1517c62dc6', '0x1357ee6122', '0x141dd95479', '0x11ac43311b', '0x11aaf747be', '0xfd25defc6', '0x11cc0ce7bc', '0x10193512e2', '0x11d8777cfa', '0x1413367a20', '0x150ca3bb9b', '0x174c0b8711', '0x15e0ada207', '0x150c200838', '0x14fbdcbe85', '0x1299eea23f', '0x14ed2849a8', '0x130cd4e1d9', '0x125473739d', '0x1161d8e3ce', '0x138d64416c', '0x13f7302d53', '0x146367cb26', '0x12b3d2b79e', '0x123bfefa30', '0x10bbc4adfb', '0x12bb0cd56f', '0x1234870d77', '0x1272a7d796', '0x111438a670', '0x109232467d', '0x12a452c947', '0x112409f37a', '0x101be198a0', '0x121f54250d', '0x13eee26688', '0x12f6594821', '0x12839fadf7', '0x133ab02163', '0x11e1269883', '0xfe028b4ba', '0x11ca78c256', '0x1167967258', '0xfb435ad10', '0xf59aa0d48', '0x10d54a6167', '0xfa04f0eba', '0x118bba0f51', '0x113db1c320', '0xffd3c2031', '0xfc2a0112d', '0xe94038263', '0x1065f949be', '0x11fa0804cc', '0x13baf87f63', '0x12070d0faf', '0x1447354876', '0x15718e59cc', '0x134af59467', '0x11dc6e644a', '0x139c65ef65', '0x1425e959d5', '0x1243d3c36e', '0x10a8498c7a', '0x1086c9886e', '0xf24d0b0ff', '0x11096073da', '0x118d612885', '0x1005f87285', '0x12062caf03', '0x1446978052', '0x13cf8bb59b', '0x139bb2171d', '0x1180bf2c3f', '0x13b0c6c307', '0x11c03c6f8b', '0x10d0cdbe2d', '0x12eabecbbb', '0x11d7e5c3b8', '0x106e61946c', '0xfe4f6530e', '0xf26503d8e', '0x10a46bb95c', '0xf186b7740', '0xe553336ea', '0xecb1ff5ed', '0xf814b3b73', '0xde98de795', '0xd6b2bb97e', '0xce9778435', '0xe8625fbac', '0x1056c37db5', '0x100cec35d2', '0x1138613e8e', '0xf34549984', '0x11142c6878', '0x1336a16007', '0x15622ac2b8', '0x13a73252f0', '0x1452b0631c', '0x161bb59a88', '0x13c9246765', '0x120757d73b', '0x13c4fa3354', '0x12724faaff', '0x1369ee6199', '0x15d6c095d4', '0x1771515f27', '0x1782cd5cd2', '0x1a212813d7', '0x18b57bd377', '0x1b5bc61a78', '0x1b8db5c097', '0x1a59bf2bc6', '0x171dfa71ec', '0x19a7ef4cdf', '0x18c7c8fcdb', '0x190ef21c37', '0x18ed4b7515', '0x165dc88473', '0x13920f73e5', '0x14ad9f6b0e', '0x16e1dc5e5c', '0x1724a9de5e', '0x14e6b958df', '0x1523cb848c', '0x14385ad776', '0x12f0f733ba', '0x1265049257', '0x11cb01af4b', '0x11db635b0d', '0x10109a357b', '0x11aabbe8fb', '0x1095a6cbe0', '0xe82f1f264', '0x1052b2214c', '0xee05b0306', '0x10bc4d20ee', '0x119e434839', '0x114cd46a42', '0x101665b587', '0x11afda6387', '0x1028295321', '0x105c7ebab2', '0x10d75a96f3', '0xfac9b7cae', '0xeeeb21a9b', '0x10c70973cd', '0xecbfe17dd', '0xcf27e54e2', '0xe3f2fc139', '0x1006849147', '0xeaf19faaa', '0xe661266c4', '0xe1b302f7c', '0xfde6a639a', '0x1145c105c9', '0x130ed264e6', '0x12ae2817fa', '0x120ef3aa62', '0x14507e2dc5', '0x1290ee7358', '0x1488444003', '0x171866755f', '0x168bbb681c', '0x16513551f0', '0x15ff9b4ba3', '0x186c1672d0', '0x15dbf8163c', '0x14ab096c11', '0x154ec1c825', '0x1438d0afd8', '0x12e6e0f44c', '0x11fa2b6113', '0x13df5f5936', '0x1604d9ed87', '0x17a4ff2952', '0x14b05f4428', '0x133a4fe8b1', '0x117af8d2bb', '0x13a7ee5abb', '0x117cc6392f', '0xff264fd22', '0xdf4185d7e', '0xfb21d13b8', '0x1100e36dee', '0x11e81a6da7', '0x100c929ef8', '0xf436f4aa6', '0x10d4e42e17', '0x128f6ffc71', '0x1069e825c9', '0xeaeffc136', '0x10845fee1d', '0x1294d539c9', '0x138e46860f', '0x120d3aaf2a', '0x1044dde872', '0x1064078dc5', '0xf349d498d', '0xdfcf889b1', '0xd6befbbbf', '0xc9804954b', '0xbcf6176ea', '0xd49014f23', '0xd6192df5e', '0xc63fb1096', '0xdf035e852', '0xfae1eb218', '0x110f4250f2', '0xf47a31b1f', '0xfc269965d', '0xee4a27774', '0x1009e65be5', '0xf2dbde83c', '0x1099dd6313', '0xefdf5e000', '0xd93314e91', '0xef15fee78', '0xdcdc18613', '0xc14095551', '0xd963a761f', '0xc6b025b59', '0xadda20fee', '0xc3727bc4a', '0xdbe03977a', '0xecb9e44a2', '0xfa6b51f48', '0xe1fcaa238', '0xe8751c7ce', '0xe1d10167b', '0xdb4111199', '0xbfd8eef66', '0xd7d2a2cc0', '0xc47728b7f', '0xc5da4e5ea', '0xb8020b7e4', '0xac423d8cd', '0xc1c9b41c9', '0xd55300f34', '0xbf9568d1f', '0xd510ff866', '0xe1aa6ac4c', '0xeedbb03e7', '0x10cb4211b2', '0x12967d5dc1', '0x10a09709f6', '0x1205287a82', '0x103b387a4a', '0xf1a37f7b5', '0xfcdf36409', '0xf693ff5c5', '0xdf41edffe', '0xfb29f9649', '0x1183451feb', '0xf9b385ee6', '0xde7d2151f', '0xc5bded38c', '0xde7475cbf', '0xf52abfcb9', '0x10fa0b7143', '0xf44c82d32', '0xe8cc9576a', '0x105dccc0ec', '0xfe20931ea', '0x100bf5db77', '0xe8896e6f2', '0x1056f670a2', '0xf6c29a8e2', '0xe3aaa590b', '0xda686af9b', '0xbf1b5d9a8', '0xd6fb566a2', '0xe3a317860', '0xd2b3f6d09', '0xbd834cd30', '0xd52cc80d4', '0xe73bf3c81', '0xec1aac378', '0xd70971e33', '0xf1e66a41d', '0x1101996cf5', '0xee1663f57', '0x10bd7db42e', '0x10d56ad60e', '0xf3613c14d', '0x1007a9a6d4', '0xe459c1b31', '0x100db1d0f3', '0xe773c4323', '0xe27ad2fe4', '0xe42b7c54d', '0xe3cf796ad', '0x10040b5ce6', '0x11ffc93231', '0x103d743bb5', '0x10ba012ab0', '0x10531250b2', '0xf78920f8e', '0xd897fcd9d', '0xed8485470', '0xd6ec52035', '0xd07c57152', '0xe66731df1', '0xcefe99aae', '0xe8d947aed', '0x105f38484a', '0x11312ec843', '0xf530a8fda', '0x113d295300', '0x10b28cf38f', '0x1187cc304f', '0x123ab810d0', '0x101f9c5a48', '0x12237f23c3', '0x11b1dc0543', '0x10f8eda4e4', '0x11b3fb2105', '0x13ca92aadf', '0x13733abdb1', '0x11b2bb64e0', '0x1117fa2460', '0x12ea036d43', '0x10dcbb395a', '0xec123d22f', '0x1098ee1f6a', '0x111e1b3f91', '0xfa5102012', '0x101f1da614', '0xe77de1d8d', '0xe419a1655', '0xd4736cd6f', '0xd3329bda3', '0xe4dd0163e', '0xe2ec46113', '0xff498112b', '0x11c81d6401', '0x1252689d25', '0x1012892ec2', '0xf335f9416', '0xf5e7a15e3', '0xde1bad4b9', '0xe3e53b367', '0xd50e19988', '0xd18f40f17', '0xbf8282045', '0xd76be0471', '0xc9ffd76dd', '0xe27156e6c', '0xccce085e9', '0xc55d3bfd0', '0xb1f97c187', '0x9bba4c957', '0xaf2ef8997', '0xc514c99c3', '0xdd1b0adee', '0xce4f4bcd9', '0xd2342c96f', '0xbbb1d665d', '0xd324ff89d', '0xe6e02ec68', '0xd734f2e01', '0xc42462f18', '0xb0b780f49', '0xc6063924f', '0xdec3b3317', '0xfa99eef07', '0x10e88089cd', '0xf4c4924f2', '0xe42f648ff', '0xc8729d4f0', '0xe1786e82b', '0xd3accd4d6', '0xe17001d83', '0xf888cbdb2', '0xee65c0cf8', '0xd726b7401', '0xce7abc530', '0xe84322922', '0xd5c8b5e3f', '0xc52ffafa5', '0xc85059f5e', '0xbe1d394f0', '0xd5d91defe', '0xc602e1ff0', '0xdebd9a589', '0xdf3e7acda', '0xd26928f28', '0xd32b7ed1a', '0xc39b2e52e', '0xb0fc671e1', '0xc71692d78', '0xbf40cab45', '0xc1257c76a', '0xd9478ce8d', '0xc675e664b', '0xb8a3aa237', '0xcfb79c037', '0xb5c0a8831', '0xcc7601fbc', '0xb2e741bc5', '0xc910bcab4', '0xe2310ff38', '0xfe6e91568', '0xf2dc2d989', '0x10991b010c', '0xea30a2ebf', '0xd1e90445e', '0xec2005586', '0x104f15603e', '0xe8b60f2b4', '0xe73d828f0', '0xdde02c939', '0xe5f938cbf', '0xe7af7068a', '0xeedcd5eda', '0xfd02116b4', '0x113daab721', '0xf8e3b9b05', '0xf723a0c7d', '0x11009c01bf', '0x12f4627570', '0x12317a1edb', '0x1177c5d1ca', '0x12e7e0757a', '0x13ae6dc082', '0x1138a00872', '0x10503c7aae', '0xed0aabc9a', '0xe8d1c81d9', '0xe33fdeb2b', '0xd735b244b', '0xf2134ee1c', '0xe7d65eefc', '0xf4dbb8dbf', '0xdea47a67d', '0xf65d78704', '0xf689ad953', '0xdc86d037e', '0xf813b7923', '0x1171430f6c', '0x139e690431', '0x133f5ccf71', '0x1135542885', '0x1184227c44', '0x1063b65180', '0x122458fb02', '0x116a1f0681', '0xf4ac0a7f2', '0x1133a72d22', '0x117faf6c64', '0x11d7d69520', '0xfdda3d72c', '0x11d8f6af5e', '0x13ca7281eb', '0x1639e8ca58', '0x1900d5d97f', '0x1c20b5fe24', '0x1fa45ba10e', '0x230f531219', '0x20adfda0d9', '0x1e0d8b6af4', '0x1ae1930c9a', '0x1b620334ab', '0x1822e8c557', '0x165ad19f59', '0x1926132d53', '0x165d7062b9', '0x13b689c717', '0x162cb7d954', '0x18f15be822', '0x1ab460814b', '0x18221349c4', '0x19ca3f6593', '0x173b53f941', '0x167848f0aa', '0x145b62f3a9', '0x132c015140', '0x13cbfd4e4f', '0x1196da70ad', '0x138c1ea6d1', '0x11b4ebce90', '0xff74b42e3', '0x10771742f7', '0x12851a9410', '0x14d50dab01', '0x176f80494a', '0x1a5cfc7038', '0x196c85e0b7', '0x16de9f99cb', '0x19b19c9b1e', '0x1841becb67', '0x16db8ec8a4', '0x174d9300de', '0x15ec777924', '0x18a9897d85', '0x18f16f6f83', '0x1791aa79db', '0x1819f10294', '0x1b1c7d9011', '0x180e22c429', '0x19bf8b04de', '0x170295eaae', '0x18cb13d078', '0x1810c3d53b', '0x15c8c5575a', '0x15261b4c79', '0x151cfaac72', '0x1600d92034', '0x18c0486a53', '0x17f5ef349c', '0x155ec2cc18', '0x14cd3b4afa', '0x156890e59e', '0x1384978878', '0x14464e228f', '0x13d1fc134c', '0x12ab294ef0', '0x13de5d1128', '0x15a3169285', '0x13af6f5029', '0x1201ee05a8', '0x1441ae2102', '0x16c972b086', '0x1871193fef', '0x1562f617f2', '0x17d5db79f1', '0x153e053022', '0x1296448a1e', '0x14e8ab8e5e', '0x1470b9d4c4', '0x15cc6d2664', '0x14de7041c4', '0x141a97a7e0', '0x1699c1257c', '0x196cf214d9', '0x1a03945a36', '0x191dd42ccb', '0x1ab96117e8', '0x17bd562b64', '0x1ab4e2346c', '0x19a2a0d4cd', '0x1692b3ac68', '0x171c1081e0', '0x182f7ac4f7', '0x158267475a', '0x134ed42abb', '0x15b7ed69f8', '0x143d0f9536', '0x134e9dff1a'], 'gasUsedRatio': [0, 0.9997456363236673, 0.9993065542187649, 0.8853691748666134, 0.6450570335849587, 0.06347530059539615, 0.9999529957676132, 0.1450679132175194, 0.9655893248270077, 0.34273105171735396, 0.1192575301831437, 0.4309587289177857, 0.6975026851323247, 0.038996406404620126, 0.36883624127171344, 0.9996878479731284, 0.7219650163800174, 0.07288095543057382, 0.9995798869308267, 0.3886809798875125, 0.34021113333333336, 0.15032372445025902, 0.9999781999796533, 0.17306973079053237, 0.5385384656233624, 0.37503513616517675, 0.9996104057891729, 0.738371667747608, 0.19498096449031627, 0.7141093178899569, 0.24830780353877668, 0.9995542666666667, 0.5873422269820188, 0.06772473213390773, 0.9994919666666666, 0.30031585843576253, 0.5014300916342094, 0.29717197570051473, 0.4481777182043313, 0.2449681, 0.38883456666666666, 0.2880784419318798, 0.7209367062075924, 0.9521446245608666, 0.5143795499276754, 0.541506341893943, 0.9993943838984203, 0.3033932733119417, 0.08770128182029849, 0.9993311, 0.05286949372729137, 0.9938708688607407, 0.5590149838527424, 0.05098741174847811, 0.2525090454815518, 0.5239814915268439, 0.19114949403658574, 0.5969760618366178, 0.26481242895744034, 0.9993880971036596, 0.14289886666666668, 0.9769477, 0.7262783666666667, 0.5134617, 0.43311086723814196, 0.7978927712963456, 0, 0.26023256666666666, 0.46309053333333333, 0.2879814666666667, 0.9997903, 0.9994325666666667, 0.9997771509454351, 0.10475773459914345, 0.01100772635225178, 0.9997340661613924, 0.21383448232417263, 0.9998321328577098, 0.16187553333333332, 0.18784147280180905, 0.2838155666666667, 0.3732443602155828, 0.2760646455514141, 0.6447914178122103, 0.9994683716035915, 0.9868068242959354, 0.06775469648861981, 0.49939006930053964, 0.9996326485067424, 0.2807171321400633, 0.29021031407672515, 0.20651225158695266, 0.9996147322417414, 0.5805801481584298, 0.7053266430545072, 0.4377531575745014, 0.18651751380969575, 0.2839836667154651, 0.6290668423076411, 0.06230315096261442, 0.9996093651822544, 0.9996890691091442, 0.9993186666666667, 0.5404863515889933, 0, 0.6084764117941013, 0.4095914654653872, 0.6962149433672572, 0.6303916861097774, 0.41723853333333333, 0.24872076666666668, 0.28696478778193574, 0.30108641434732003, 0.879133327552127, 0.7201749776599583, 0.24191374701295257, 0.2802718992730529, 0.5427299802273026, 0.4983511104558494, 0.2696902016483358, 0.4194510429982641, 0.5579057040271194, 0.6889213765620716, 0.8827249416625992, 0.28019510433869793, 0.10987996223290754, 0.9994790236100334, 0.871280085577883, 0.020720247292211728, 0.8163802083359426, 0.04192202949885106, 0.1566823416297504, 0.9993950333333333, 0.9436627, 0.09978534038488585, 0.6782763997246397, 0.22028696204939002, 0.8870591520790556, 0.8629764027791458, 0.2344159308451374, 0.027179651271812193, 0.9997838325191025, 0.6175175985846393, 0.06226709265533548, 0.26651403690634584, 0.7052907398045009, 0.06922992635166751, 0.9998913205716163, 0.9999566395207333, 0.9998740199136709, 0.1926569539531535, 0, 0.8137666405586059, 0.18879043333333334, 0.17756676060840076, 0.6776780727765981, 0.06547116254568298, 0.9392849214277124, 0.6605778647354527, 0.08358158508392065, 0.17732513890771287, 0.9999322330735602, 0.42551834982227577, 0.5279765693720347, 0.15809407104525003, 0.999788565454442, 0.9665053333333333, 0.3583224018253825, 0.21534977712159314, 0.5405134025581535, 0.45838125191832985, 0.597125754708781, 0.047039200892676734, 0.9870894016038626, 0.11077378161014016, 0.09278618757563803, 0.9994814873447844, 0.9938753076009568, 0.9625347605151547, 0.08948736666666667, 0.2608609974306577, 0.7892331356964218, 0.04507389155987005, 0.8335900291131924, 0.442276371277537, 0.5360194032556227, 0.6996039, 0.10687005861223485, 0.9926602055652771, 0.1038615347583929, 0.16161209508837426, 0.8197822416118598, 0.8891446924241737, 0.4526339279145352, 0.10620191766891489, 0.21556100855169463, 0.7571402615975668, 0.9731136610726602, 0.38794446584265324, 0.4520648666666667, 0.33051404696686315, 0.9997580331074976, 0.7331154333333333, 0.9724727863425301, 0.43922667661156484, 0.1020674, 0.19533574535533949, 0.9954514957547294, 0.8516939, 0.06380603993132627, 0.29594834288512, 0.9994066, 0.4234446, 0.46020446666666665, 0.5510113, 0.26905946343395676, 0.2097794, 0.5039400641392987, 0.37278169472020684, 0.213112910451254, 0.9911069986350008, 0.08488625270965112, 0.759472385171758, 0.9967722, 0.9995422666666667, 0.08020063333333333, 0.44356452590711837, 0.3920089666666667, 0.27210179259952655, 0.49714061390259345, 0.9997896610673713, 0.5522067491928234, 0.05708088126756552, 0.999481265196918, 0.35953763333333333, 0.7630111666666667, 0.24564995615115173, 0.47800886207523335, 0.24212676666666666, 0.3357854333333333, 0.7819027280139056, 0.9993811660890883, 0.5332526188847853, 0.287431403205286, 0.8813947272212891, 0.9995599321011432, 0.107588027622117, 0.6718047414043679, 0.3401233669283754, 0.01772954210511585, 0.901916542414132, 0.31698403995694063, 0.2469895706314432, 0.9967908268116191, 0.32216601280370294, 0.15698580810140064, 0.7252844652381524, 0.21833476666666668, 0.6872238407471563, 0.9971250973167575, 0.13913853197243425, 0.4181378471906481, 0.6679993816617051, 0.24980573278938514, 0.9096323362802525, 0.9998411561481154, 0.9998801491809037, 0.12421424235567398, 0.1697019001047971, 0.9984186723774858, 0.08292479322818114, 0.12091333564680107, 0.37413432813017816, 0.38994934802773457, 0.40960655500642146, 0.23735013702788038, 0.7306659294995528, 0.9969524854735141, 0.5624959585342444, 0.3388907861199724, 0.2082199872788382, 0.2838362279003166, 0.1311120061802563, 0.9999616248320001, 0.9997683720394822, 0.9996139966803714, 0.39319523333333334, 0.2061775343044184, 0.1916013, 0.9994189666666666, 0.6159750666666667, 0.056816566666666665, 0.5102748333333333, 0.10946349109905823, 0.9996288421417836, 0.1837904266486584, 0.9996348201370611, 0.7587365812043837, 0.3604756213475938, 0.11725873333333334, 0.6769896862380552, 0.9999265666666667, 0.3322212333333333, 0.6333191, 0.3883037880176674, 0.13518628384091763, 0.9032541787734671, 0.1345644, 0.15834292186319943, 0.5950072605063257, 0.45613932765480497, 0.9998269954496798, 0.6202745306098998, 0.22700235074007213, 0.6053571333333333, 0.09208853333333333, 0.9995271666666666, 0.35171877994471734, 0, 0.8770672228097404, 0.244164124648923, 0.929057923151283, 0.38555523255494184, 0.29243803333333335, 0.1768930694156177, 0.8998125941713288, 0.4704706693969799, 0.9998623997385595, 0.6459058333333333, 0.18077123333333334, 0.36252830889363463, 0.4033337343383441, 0.29160105241339657, 0.9992292280156478, 0.2136684865806038, 0.23130255748724482, 0.4486242737077179, 0.7495243078075167, 0.9997544145866903, 0.36159379267709835, 0.27466513236550644, 0.9996611990400639, 0.1649350597351673, 0.6453210973761334, 0.1209717512420175, 0.5400419654106824, 0.999508384276932, 0.9998229656634721, 0.9992799666666666, 0.1356586, 0.3432960047846611, 0.13872739795530858, 0.7970206797595386, 0.16407256666666667, 0.29795906666666666, 0.7538384333333333, 0.9995394333333333, 0.7709836, 0.2594452, 0.16968699935487003, 0.5041174705096392, 0.05562296666666667, 0.2722111857770887, 0.9062020426619746, 0.11016765187411856, 0.47259649793334607, 0.9967494333333333, 0.120169, 0, 0.9763651446074683, 0.3090855, 0.3267561106754079, 0.9993106993566527, 0.9999594937411658, 0.6781065754752365, 0.17252149503073808, 0, 0.9848833586295893, 0.9999800276606879, 0.7686773739426656, 0.12210787930565803, 0.6651552333333334, 0.14761953333333333, 0.6248646333333333, 0.028025500234312137, 0.9981219338897483, 0.3825767226605099, 0, 0.698936061845862, 0.9151200808005483, 0.7783941792468697, 0.20414177675938694, 0.4231686726264592, 0.9995449433183067, 0.9997153335428354, 0.6553349691948375, 0.7929654373839364, 0.3459604952757523, 0.5289138672778163, 0.05366701543737905, 0, 0.9998233324912182, 0.8055406959210836, 0.12124062844626976, 0.26433106666666667, 0.14533378510782446, 0, 0.9996407822099175, 0.4530064366710331, 0.3682320905517989, 0.13207214527348313, 0.6414950333333334, 0.30626193144272046, 0.44135064588414225, 0.5332241087922074, 0.10126266936869938, 0.9993208791061841, 0.9040969680452591, 0.16428793931983052, 0.011668099076659156, 0.9998936625232866, 0.9998721995143581, 0.27578331705237313, 0.9192900086849867, 0.4496468234396138, 0.15422544575170746, 0.8774419666666666, 0.3973746, 0.3966460085060272, 0.10732297041220473, 0.9798614458308771, 0.3842680333333333, 0.08297986316971856, 0.9994146327869906, 0.8166765333333333, 0, 0.6712171931360469, 0.9281478, 0, 0.9997362330783587, 0.9996539283932068, 0.6846791011070988, 0.4186059868548619, 0.34557423982370905, 0.25931918455683706, 0.8944461675974749, 0.22565896666666665, 0.8939028961781179, 0.8250374367016076, 0.04704194703376237, 0.4302137073704946, 0.9103543704575391, 0.999788280367208, 0.20399128114949752, 0.19441345003042237, 0.908751145017752, 0.5157243429751638, 0.12689655057133878, 0.0785082340984615, 0.5215525772092993, 0.007020678050900075, 0.7173011012229124, 0.12991237688969717, 0.6587182433960191, 0.165159391949083, 0.9986981296447006, 0.8764254793527795, 0.33358745651275284, 0.9994519294113376, 0.9998772933395567, 0.2493824690580554, 0.8989826626075237, 0.683311926237455, 0.9985391135554404, 0.15154314961788168, 0.16825059340892765, 0.6598711846337123, 0.0140933379125031, 0.4988536929634229, 0.0820450518517528, 0.9993952188624383, 0.11822802436412842, 0.9341052480258891, 0.9997265659833655, 0.6941361761680962, 0.927124804296769, 0.25629507351850156, 0.3481947231399479, 0.4879269, 0.045833389638315146, 0.9999862999872133, 0.14135770106227497, 0.34877018149779854, 0.2931965552517033, 0.9993828947935318, 0.5845460865577548, 0.5846904656802571, 0.1692478988506362, 0.39989011172698763, 0.17075573762866433, 0.977413140624263, 0.38778211332336343, 0.5533227725460058, 0.20318873878387406, 0.3810445246575323, 0.9998608380556518, 0.17790572307869365, 0.2592021, 0.9999634333333334, 0.8996747657420805, 0.30518028483493254, 0.4054662, 0.6544968504921611, 0.21922880089733995, 0.05169337139309366, 0.9825723666666667, 0.41315433333333335, 0.10913976666666667, 0.4099097666666667, 0.8864210568286599, 0.21319480380334438, 0.9913800409440214, 0.43051008463582746, 0.20957706666666667, 0.442725378667731, 0.19998545998594466, 0.9994194658805827, 0.8850024148379215, 0.8902097478839963, 0.15478344168560562, 0.9993722281950845, 0.7298870562061774, 0.0988041577158088, 0.20315359492701598, 0.8918851140700961, 0.6095636942368827, 0.1261399027821424, 0.1479425920900151, 0.4685761524965874, 0.16533695281523927, 0.9999583853933398, 0.6210652175366573, 0.1515682461180018, 0.9994712159710394, 0.9996925991290309, 0.4082601240592077, 0.4591051112660895, 0.07053260978403796, 0.9999431330641632, 0.10598106666666667, 0.28924298755598493, 0.9998524, 0.27298183342700816, 0.18342867120009312, 0.369323322259287, 0.3125824168205114, 0.8940963874355874, 0.1282047923067518, 0.2979311333333333, 0.6285563813602684, 0.6924087693284771, 0.0891062, 0.358058010313738, 0.3489694449545142, 0.9993927063907401, 0.9998350663532928, 0.4293855, 0.7915188818119107, 0.03175596403076523, 0.9931164048485259, 0.9999406998873298, 0.9517815897741017, 0.17631936623820435, 0.6363432588314824, 0.8513724068360657, 0.0797896, 0.14478858605428202, 0.8862197938051409, 0.23233142180939056, 0.7097447314605424, 0.9996617357088843, 0.7937461822808498, 0.5116536666666667, 0.9455067873778745, 0.28252991723376814, 0.9289253936080721, 0.5285195375204547, 0.3253610031663141, 0.00916125959561084, 0.9393098, 0.3634884868259478, 0.5448694933738436, 0.47901713333333334, 0.0891044, 0, 0.7263943702369939, 0.9263530792565373, 0.5456157700032963, 0.11250826666666666, 0.5456543666666667, 0.32598, 0.24701176666666666, 0.38455453333333334, 0.36917756856236783, 0.5143855134264792, 0.09855893333333333, 0.8989022780745398, 0.2549424980857633, 0, 0.9993352016488202, 0.14549675630375486, 0.9998963641691623, 0.7109669905306687, 0.42777975237859983, 0.2196257584768429, 0.8976845547082503, 0.15397140293153067, 0.5506107834941152, 0.6173297874061975, 0.22282813807351112, 0.3106850382118333, 0.9942493356191309, 0.027785785612643412, 0, 0.9015009365838945, 0.9993780976575012, 0.1651652726779638, 0.4222903514313184, 0.4187388, 0.9998104, 0.8538174527426031, 0.9134719915589893, 0.42074706623233993, 0.3668342969851643, 0.9997162765169066, 0.1557546, 0.9235997284681825, 0.9993153326943105, 0.40483176666666665, 0.4594411, 0.44286806666666667, 0.9407133267697427, 0.08022431103704399, 0.2820343327739013, 0.6237717, 0.2961839333333333, 0.23888466666666666, 0.30432716666666665, 0.9217167666666667, 0.93203346401094, 0.7953034756165772, 0, 0.2174972, 0.13647963333333332, 0.9978436276357197, 0.058692872399782534, 0.14762143874405761, 0, 0.9994473926623142, 0.8332656275859448, 0.7124702666666667, 0.08506126666666666, 0.304177237594156, 0.9109668806013179, 0.9108213308235023, 0.03737737101700493, 0.07837448289563657, 0.9994688, 0.9999161333333333, 0.7097551666666667, 0.19234913333333334, 0.10498613333333333, 0.5299291, 0.2107598, 0.17975913333333332, 0.33799433333333334, 0.25329163928576254, 0.2510718757061702, 0.9996054787009983, 0.5288957014194877, 0.2038825963987938, 0.9996623739496571, 0.9998688494995354, 0.8518969547526319, 0.08269302543459565, 0.6255487806140678, 0.28011388952928284, 0.8076772180402366, 0.28552031632337815, 0.8748298107285818, 0.11231298606790274, 0.12191601609572134, 0.903065000728888, 0.19506905114703085, 0, 0.999595507720973, 0.1558947519741109, 0, 0.9968623170478935, 0.9999544777617353, 0.8065413638300822, 0.7313741884582211, 0.1097384498672991, 0.6145286144559684, 0.3857246597944163, 0.3837593648840205, 0, 0.9998847870567518, 0.14123657323904582, 0.5282450304558006, 0.22009952103124067, 0.24459290970285327, 0.9999258664566216, 0.9032517666666666, 0.09234630950456454, 0.9485303519616618, 0.7365327, 0.7338408622686721, 0.9998024331489376, 0.9272659333333333, 0.07810166705545368, 0.8350739666666667, 0.10292927710576044, 0.22179384034091765, 0.6859513050038877, 0.40044278082652424, 0.12169266094288969, 0.9999862333333334, 0.9624933333333333, 0.06455906666666666, 0.06407953333333333, 0.0550896950872527, 0.9999045999109599, 0.9083895235332855, 0.931718880306572, 0.09755337287126992, 0.31171070433890724, 0.999371794786074, 0.38184265951685264, 0.5412435728565602, 0.12280948910477998, 0.9970967095327475, 0.27547020909983433, 0.19049166513318408, 0.33732867328693383, 0, 0.9997180253925871, 0.7354671843316438, 0.2024370015518142, 0.09772579650526818, 0.9994285387107217, 0.8388627308256528, 0.5842436088414259, 0.1430847541107979, 0.9996940297878719, 0.9993780771565584, 0, 0.9999125333333333, 0.5223323575471448, 0.11448137527663167, 0.7152864717406275, 0.06131588325332708, 0.9993251397166988, 0.10438987433478769, 0.4140655219700334, 0.5298496206851314, 0.493699089674244, 0.9994033638227009, 0.9953522333333333, 0.10906873895692477, 0.619833456228789, 0.4038459558307313, 0.2908616862064946, 0, 0.886418532264761, 0.11948879757628866, 0.38019115946001963, 0.9205065490434525, 0.0936066459368663, 0.9996115743625853, 0.9999380726837841, 0.7003835614575336, 0.06544273333333334, 0.9997348744382223, 0.3743659539665396, 0.6995503538191797, 0.6594736529999407, 0.0379123934857865, 0.9999365331535106, 0.4021106782362906, 0.33670031279452195, 0.6722032333333333, 0.9718395012729931, 0.4310433587057509, 0.13970533762143875, 0.363373167796707, 0.9259951603315351, 0.06606312051217478, 0, 0.9996269666666666, 0.6253739333333334, 0.1558336, 0.6218985333333333, 0.08978793333333333, 0.4413956, 0.2255724381525226, 0.4764051078642248, 0.8345796404458812, 0.4660870188986692, 0.9999790870484293, 0.9578382026392347, 0.6215205002569332, 0.0088933, 0.28304963333333333, 0.5443067488736084, 0.11291211197003966, 0.6042253100997789, 0.23952339717880344, 0.4343738874720929, 0.15547195368176236, 0.9994333116710069, 0.2507766529512812, 0.9840282095204596, 0.1177767890291024, 0.3546788345176844, 0.107028076726704, 0, 0.9997375437114342, 0.9999950999954267, 0.9876047666666666, 0.23232913333333333, 0.5754991749443331, 0.07167040540938614, 0.999744516940492, 0.8737949268770278, 0.22853129501904665, 0.14564885968352628, 0.10385210447810443, 0.9822970226195332, 0.9997395246249258, 0.9998436470242485, 0.8181161049318333, 0.11906786484672796, 0.22900478144725123, 0.013773477042811963, 0.999336671185492, 0.25525964603768325, 0.7600688535284184, 0.9098134439661242, 0.33685333548089696, 0.10995828844488624, 0.3387776255881736, 0.9994746333333333, 0.1817696981102046, 0.18946974350509393, 0.5634208666666667, 0.2963253, 0.9993622333333333, 0.20377381846706644, 0.9995549311960233, 0.5090405587018006, 0.2700582905080288, 0.5144312528711424, 0.20519040187224497, 0.11923028062128496, 0.9995250724665271, 0.34258060564776105, 0.5395985729716818, 0.9997879256418453, 0.1535531811137593, 0.22143113560890407, 0.9999565664610812, 0, 0.9997650666666666, 0, 0.9955084958079294, 0.9998627, 0.9994040333333334, 0.31807573333333333, 0.8740264132075029, 0.027368090330430684, 0.08529798896849493, 0.9995442324521827, 0.9204150647798828, 0.06723759274776588, 0.4747172333333333, 0.3380110333333333, 0.6459888080710814, 0.5297736200913262, 0.6239151562680801, 0.7368798667384134, 0.8611916333333334, 0.10900173333333334, 0.47186896666666667, 0.9029942071766414, 0.959287895335369, 0.3393304729152431, 0.34051081762682517, 0.8292690234792388, 0.6640966560627247, 0, 0.2891506987726553, 0.13261723333333333, 0.4287513666666667, 0.40430406959062193, 0.2880789022069754, 0.999339254164996, 0.3308289842141039, 0.7246558, 0.1370832, 0.9262012021405569, 0.5028037397535816, 0.07797644439392623, 0.9997202756484542, 0.9998745995401003, 0.9990956719449589, 0.4243011416567894, 0.07621645024658223, 0.5715551087948886, 0.24271733082736524, 0.9277084600932061, 0.33961029279023275, 0.012468497964895749, 0.999546706255457, 0.5690628572956854, 0.5787135349456075, 0.0567284239452985, 0.9996243991788232, 0.9355330336967423, 0.992228187829715, 0.9997802040718857, 0.9998569814323253, 0.9997545539772509, 0.9320631639329253, 0.22844044724793386, 0.17848583333333334, 0.07784338072794751, 0.5746562363458206, 0.025762180814267226, 0.2047437311736488, 0.9999327030442429, 0.05723664984381163, 0.02569519191050386, 0.9994948549421306, 0.999331360814337, 0.7825325631931616, 0.1148242627820006, 0.7746306808010872, 0.10321414343614142, 0.368819678926993, 0.1238723226461279, 0.2671396027206352, 0.6303864194281884, 0.0539563, 0.9452878068767485, 0.1233514484613519, 0.10676383333333334, 0.6250674666666667, 0.9991711666666667, 0.9994191661490779, 0.9998620332045643, 0.9996981611306064, 0.35748191254896716, 0.09812724102595313, 0.9939605495548904, 0.2762917817515954, 0.2692739142650771, 0.5779392345670049, 0.2632365038782349, 0.9996522333333333, 0.5455517686978665, 0.27964266666666665, 0.5903434333333333, 0.9995502724922447, 0.049106980803414774, 0.7815184666666667, 0.07463226666666667, 0.8099805539890297, 0.3825838, 0.12083013333333334, 0.3833273, 0.4932565316698423, 0.6686363226776215, 0.9995233007089996, 0.37226044062817054, 0.06753794418626273, 0.39359482830517445, 0.6166780150619352, 0.14677073333333332, 0.6550763333333334, 0.4103555121576219, 0.2675804497417531, 0.7571180666666667, 0.8560301, 0.13918006666666666, 0.15908474625471772, 0.9995741329358574, 0.9996588665648093, 0.7904975755954744, 0, 0.9580094666666666, 0.06482950601262133, 0, 0.9996796666666666, 0.4103668, 0.7657891666666666, 0.3294124045463729, 0.3533657631413789, 0.9967652224078596, 0.9999805333333334, 0.5925703666666666, 0.3620028708632687, 0.7560257666666667, 0.0532815, 0.9999209438649825, 0.33954362822550727, 0.022187533333333332, 0.595082, 0.6862150443425329, 0.05740715549358364, 0.09060416666666667, 0.9993890333333333, 0.22743058596719698, 0.31591129485054187], 'oldestBlock': '0xd10f1a'}}), + (('0x400', '0xd10f18', []), {'jsonrpc': '2.0', 'id': 19, 'result': {'baseFeePerGas': ['0x12f7ff3ee3', '0x1556938bca', '0x16036da87c', '0x18c24b10d3', '0x19fa5d091c', '0x180255c988', '0x16d4245483', '0x19adc05709', '0x177db9debd', '0x1a6c8477ad', '0x19280c760b', '0x1c4b5c0d27', '0x198384c582', '0x185b42e0d2', '0x16b355b352', '0x1710d1bac7', '0x14f5136c14', '0x1793231fe7', '0x1a005ae5ce', '0x1a9fea9070', '0x19b19cfea3', '0x172ac40343', '0x1a0f643158', '0x1b8021805c', '0x18101d5051', '0x197527b4d3', '0x16813054d5', '0x15ca7d4167', '0x1883c4e535', '0x1b9380091a', '0x1e09adf66b', '0x1ad4022db8', '0x1a78142f08', '0x1a35121e39', '0x1c57519c7d', '0x19287a41e5', '0x18d2cc2099', '0x19cd05c5d3', '0x1737a3d40d', '0x15e5927428', '0x171247f2ff', '0x16c4a17b08', '0x1778426c9e', '0x189c1450fb', '0x18cf129719', '0x16105d55eb', '0x1558e1b768', '0x179810b991', '0x158dde2ea0', '0x1523b6e2c7', '0x137dd45dd4', '0x1465fbd60d', '0x15270ac375', '0x1494a63d16', '0x1558a63668', '0x12ad916f9b', '0x129da69873', '0x1449cf4424', '0x148792ad5e', '0x13d64ce8be', '0x147e18adc9', '0x15fc0386b2', '0x14113f7fc6', '0x1428323e05', '0x16acd3b249', '0x16e316e7fd', '0x14f4ae9f5d', '0x13f64c4a84', '0x145c1f6c27', '0x148104b636', '0x171099c5df', '0x165d2ed083', '0x141c162a4c', '0x12167076ca', '0x14366e0536', '0x159139f1c8', '0x14f702004e', '0x132d90ac42', '0x13b649e5c0', '0x12485142da', '0x104ae907b0', '0x11e9ade178', '0x1426705fec', '0x152cac0721', '0x12addc9023', '0x11fda448dc', '0x143ca03114', '0x128647108f', '0x123e59e0dc', '0x11075484b6', '0x11457ddf7b', '0x11079adc02', '0x13280fa26b', '0x12fbfc58ba', '0x13a7ab9877', '0x1180efcd1c', '0x12aa03b11a', '0x131ca5fb88', '0x11cc788c86', '0x126c7b41a4', '0x10bae8ac23', '0xfa22178c3', '0xdaddd49ab', '0xf631e7d6c', '0x106bb217d6', '0xf99624d27', '0x115d99366b', '0x10849313b2', '0x12950b66d0', '0x125aed8b62', '0x11796dbfc2', '0x12d7ab8dd7', '0x15324fe8bc', '0x1414f66d1b', '0x16973b089f', '0x158e838389', '0x1375ef576d', '0x15e2d8d03a', '0x13e4f2191a', '0x153b32c469', '0x13173e5b6b', '0x121f7ef358', '0x115311cb0a', '0x134964bd3d', '0x11296f3cf5', '0xfc25baf6a', '0x11b96e218b', '0x1055166549', '0x112bea90d1', '0xfef11714c', '0x10d7c2393f', '0x1150aa108a', '0x1190b29166', '0x12042233ce', '0x104eff5fcc', '0x10b3117f66', '0x12c911e3b8', '0x1521edebc6', '0x165679e9e8', '0x14ebec5f79', '0x14e7132865', '0x149476dde8', '0x12a412fa14', '0x14f80c5c07', '0x1312a08808', '0x1193b05e96', '0x111491f2bf', '0xf2341e861', '0xedada7447', '0x10b5f54e1e', '0x12cc82ad55', '0x11cc00504d', '0x11a8d3cf7e', '0xf73b9558f', '0xde7f5ebc9', '0xfa4939556', '0x11990dbf3e', '0x103fd37fae', '0xe711dc637', '0xfff5ca80a', '0x11feea38ba', '0x14022c91a6', '0x148e797088', '0x154ed931e6', '0x137b0952f5', '0x12d9b2bf51', '0x1252dc0b63', '0x12d00b939d', '0x119cc5939c', '0x101bf4db7f', '0xfd3208b83', '0x10a9191073', '0xee8bf273b', '0x10c521278c', '0xf038a817c', '0x10e263dff3', '0xef77fa3d3', '0x10d63fe89a', '0x12f0f77687', '0x154efb8aa9', '0x132e7c763c', '0x1458c9d355', '0x13a4213673', '0x13e5eb63ef', '0x12cb3f7688', '0x122a9c087d', '0x1417fc70e5', '0x11a467a6a6', '0x13d841fe3a', '0x12c1f28807', '0x1233d8e9e4', '0x1141a61250', '0x11dcc725a2', '0x131ed61587', '0x1400aaea00', '0x1580de2861', '0x14a2628a1e', '0x1532f70853', '0x13c8961a1a', '0x1605bd3b92', '0x16a9402eae', '0x146ae94677', '0x14c17e24ee', '0x1294197b10', '0x12a0599bb5', '0x14b812fa42', '0x1607d8555a', '0x140da94c4b', '0x120123fa0d', '0x126fa0a2b0', '0x1051f9c3e9', '0x12377b925c', '0x1293076221', '0x12d7ceaa0a', '0x1532759fc6', '0x17a530320a', '0x14b08a2bc9', '0x1745f33ac9', '0x15863ad32e', '0x13f7b129c5', '0x12b802d1db', '0x150e5376d0', '0x17af568b53', '0x1a56c0fca2', '0x17933099d4', '0x17ed38410d', '0x15b3b86c0c', '0x1821fdef5f', '0x17feb98aa4', '0x16ad2e770b', '0x1601eb6aa5', '0x15923624c2', '0x154fd4dd5f', '0x17f964b1dc', '0x1af866cb63', '0x1d7766de7a', '0x1b2d2b60bf', '0x19c2a09e18', '0x1a862ed287', '0x173568f837', '0x1a1bdc3fba', '0x1d5e30854b', '0x1c3924ebcb', '0x1ce196507d', '0x1da2d35f50', '0x1a6cb68061', '0x1a95f7324e', '0x1976ec1a53', '0x18366d6792', '0x1a6ab34627', '0x180f70dd80', '0x17924e646c', '0x14e5b3973f', '0x1782123af9', '0x14f821adc2', '0x1796500e7b', '0x15b8ebf820', '0x13b38e62bf', '0x147fda5ffb', '0x12aa45ea27', '0x14fec0bf75', '0x179e6bec54', '0x17aa77ed21', '0x1537f8f1be', '0x1640f760c9', '0x15371d8b5c', '0x13e2dda5fd', '0x13234c0075', '0x1145047b47', '0x11dd3af1a8', '0x1107a893a4', '0xf18eb2d1b', '0x10fbeb62a0', '0x115191b3fd', '0x137b4d7483', '0x120dde86bd', '0xfedff6fba', '0x11e39da8fd', '0x12394d7bc8', '0x12b5ce1d61', '0x11e039eb29', '0x107125ea68', '0x11e34ca12c', '0x13df1bf0fe', '0x159887d9c5', '0x1338c9b5b1', '0x13a28ee8e0', '0x14221f02bc', '0x1369932d25', '0x125517f8fc', '0x149f027821', '0x13b56d2866', '0x131dc916bf', '0x13f397bbb9', '0x1218b62ff9', '0x144b2cc27d', '0x153ebe4107', '0x1577345df7', '0x14c5e47112', '0x129c8d989d', '0x1260f6e118', '0x11df633237', '0x141a94cd7f', '0x11cd590833', '0x12ddc9e6d7', '0x10cd9890c3', '0x10290c9d1e', '0x12163d33ba', '0x114971fee5', '0xfce68751e', '0x116b2d71bf', '0x13986d350f', '0x11dfc4c608', '0x1322a75a26', '0x11955243a0', '0xfdf4aa160', '0xe5a733ab1', '0xe93282402', '0x1015c2151f', '0x1218044fbc', '0x110fb77e24', '0x1331a9d279', '0x134bd1ae36', '0x12b278f1bd', '0x11487df90c', '0x1370f2aa67', '0x12d41ab671', '0x1079975fa3', '0x114fd6ff3a', '0xf78ed828a', '0x110afbdb44', '0x132bfac224', '0x1472d9ae9c', '0x1315022963', '0x11c87b2d51', '0x12ab122478', '0x129c558964', '0x124f9ede8b', '0x111469a7c7', '0x10b7ac9353', '0x107390c036', '0x10c87109ff', '0xfeb5aad95', '0xea5c42a5c', '0xfad449d1a', '0xe1a84b202', '0xf8b85f75a', '0xde267a153', '0xf9e95027e', '0xffbe473ac', '0xf0a68be85', '0xd291ba6b5', '0xecdc386e4', '0x10a74be326', '0x12bbcfd134', '0x11a8f3a56f', '0x113db01866', '0xfa00acd3e', '0x117970a999', '0x12599c6355', '0x10909dc81b', '0x11a1d4ddf5', '0x10cb28211c', '0x12e44fdb2f', '0x1313b33fd1', '0x1155c3f0d0', '0x13800c302c', '0x125844185c', '0x135d55b081', '0x129e0eddbe', '0x14f149335d', '0x161e35597f', '0x15e57b34e4', '0x14c0381eb4', '0x13abcb7564', '0x155e965d7c', '0x17dca3d570', '0x16af9dc0fc', '0x17cbf24574', '0x1558a71ef7', '0x13b02c3793', '0x1625d53591', '0x17eeec3ddd', '0x1983b66ed3', '0x17348b5e62', '0x1985eae8cd', '0x177f32526f', '0x1727c1387e', '0x1a0c92d76d', '0x1bbd6b1f78', '0x18cf450e8e', '0x1be88d96c4', '0x1a3aa8575b', '0x1b4c5c6a3d', '0x18892a40bb', '0x1713fc00f4', '0x155000c950', '0x12a600b026', '0x14fa83d46e', '0x1799260291', '0x16c6b8d74a', '0x1960158d80', '0x17955315f2', '0x1a87d9e6dd', '0x1a220cdfd8', '0x189bd36b76', '0x173ddab678', '0x1586043686', '0x17f8c55f7a', '0x16fa56314c', '0x19bc210f27', '0x16ce385bc6', '0x17534ae143', '0x15ccbc03dd', '0x188644bdf9', '0x19c686f3dc', '0x1772ea159b', '0x16e6097557', '0x15aa34de47', '0x14763e184c', '0x13edecbd15', '0x14fdd84819', '0x12d5fa9239', '0x14b6179541', '0x12b9738875', '0x1241ae2a0e', '0x11e84b5b6e', '0x1199b22c19', '0xf9789771d', '0x118a6c61db', '0x136a11c146', '0x138297a4ab', '0x11f73a58cb', '0x1216d86eee', '0x10df2605b3', '0x12f27c131e', '0x13b2adf1c7', '0x116c9e6b35', '0x10396461a5', '0xfa8d8dc3f', '0xeca2d7525', '0xef9ffe6b1', '0xd1abfe9db', '0xebdac9575', '0x10942c8efb', '0xf68df3493', '0xdfad63e76', '0xfb9f834b3', '0x10da41fc8d', '0x12f58960ff', '0x1096d834e0', '0xf87097c1c', '0xfa49922a1', '0x113c7bf371', '0x11562dec9a', '0x1380797f4f', '0x12f6db4cfc', '0x1114b93ec1', '0x10e93259ea', '0xf10e7f23c', '0xf7d42ee39', '0x116c3aa937', '0x133f5f9c42', '0x12bcf7246b', '0x115868dd0b', '0x1325e88490', '0x115c64119a', '0x11e9d9e715', '0x1426ebe939', '0x167551213e', '0x1442c2aedc', '0x16cb048345', '0x19a3759464', '0x192953c2f0', '0x165ac41d18', '0x14690280b4', '0x1484c1c556', '0x12fedc7b76', '0x155de1e874', '0x18090c0f79', '0x1a04e0ae5c', '0x1714fca8b6', '0x14f84e3777', '0x14f4995490', '0x12effbd09b', '0x1322593503', '0x11119927f0', '0xf3db186e0', '0x10fd5985b3', '0xf61102f12', '0xed933244b', '0xd60e3bb80', '0xf0ccd804a', '0x10ee1390ae', '0x1243c5dac3', '0x10bf6bdd75', '0x12d6fcfa81', '0x122345270f', '0x12e66ca628', '0x110f84d487', '0xf756e18ba', '0x10f9f2ff82', '0x1141a7979a', '0x10da3eafe7', '0x10be1be1b0', '0x12d58e04a5', '0x139b991a1f', '0x116bcd6486', '0x12c2165a09', '0x10ba78918e', '0x127296468e', '0x14c02a0f92', '0x15523f38b5', '0x13e278170c', '0x16350e3a6c', '0x1451d75056', '0x151a7319a6', '0x15528d98a9', '0x15d6e732ac', '0x17475ecd1a', '0x164c4c1afa', '0x15a7835f1c', '0x1425049c43', '0x16a92dfa22', '0x14def06006', '0x1290d33c73', '0x12e28d6b29', '0x11ee1dd646', '0x11cf01f6aa', '0x1408c54177', '0x124e30ba44', '0x106aa5e4dd', '0xf97f3efad', '0x1164d1766f', '0xfa9989649', '0xe1f2847c6', '0xfe28d660b', '0xe6e1a72ed', '0xf134cad7b', '0xde3ae68f5', '0xf4f74d6ae', '0x1138d534a7', '0xf11ba8e13', '0xe8e17f558', '0xe515866d7', '0xdf40f3e37', '0xcc883e06d', '0xe138e1db6', '0xfd5a05ac4', '0xe362d41f8', '0xfe37ac518', '0x1183d4fbb6', '0x1016dbc633', '0x121953b551', '0x11f22745c4', '0x101e18810a', '0x112de7cbb6', '0xf6d24535e', '0x115a563e7a', '0xfcca1f4ff', '0x118aa224f2', '0x105ea259b2', '0x114696985f', '0x12303c10dd', '0x14753b569f', '0x13fddf4cdd', '0x11f6db850a', '0xfd0e0ffdd', '0x10613f1d41', '0x1146f90817', '0x1112d80dcd', '0x116a005da1', '0xfcefbbeb4', '0xeb716e42e', '0xe8b85fa69', '0xd1aac52c2', '0xe1f0cb800', '0xfe25b9be1', '0x11de41151a', '0x1127edffab', '0x1026029c48', '0x10f70cdf4f', '0xf51588093', '0x107d974e96', '0xf0a95fa1e', '0xe72698356', '0x10405fedb4', '0x10c1e1a7b6', '0xefddf9188', '0x10b0421e1e', '0xed4cc83a8', '0xdb14dc64e', '0xf5af5735b', '0xe67cc5b4a', '0xcd997da2c', '0xd1337b3cf', '0xcc8dcbce4', '0xe06698947', '0xc743945cc', '0xe029710eb', '0xed36a327a', '0x103f21cc71', '0x11dc8fc146', '0x105ec22c9c', '0x111b2e8f05', '0x1242e28abf', '0x101b737727', '0x11b70ef9b2', '0x10278e5630', '0xe9b5f093d', '0x106e360843', '0xed46adfae', '0x10ae89468b', '0x107f277277', '0xf19e941da', '0x109a980ca1', '0x108932f35b', '0xf928e6d5f', '0x1120d56d13', '0xfbb5edf08', '0xe01c258f8', '0xee64a59f1', '0x1072b8881b', '0xeb243371c', '0x10881c2961', '0x1081485b5e', '0x11058fbbed', '0xf4f280221', '0xe5bbb7101', '0x10271419dc', '0xf1c362584', '0x10ffb23aff', '0x102e9e1d6e', '0xe465f863d', '0xe38a6244e', '0xfb242fdda', '0x11a861fee4', '0x13dcdebc3d', '0x11b7492040', '0x12b6db0abc', '0x128596ac3f', '0x14d5d6c43b', '0x1330b25c9d', '0x114a4ee51c', '0x13734d9b20', '0x1505b3b13d', '0x12c5d44d3d', '0x151dfb92a9', '0x13144d914f', '0x136d6f0767', '0x1171795fb3', '0x1259a3c891', '0x10dca7dd09', '0x10e161faab', '0x10a6d41229', '0xf1a084e4f', '0x10fd1e1fff', '0x111345add6', '0xf43300d77', '0xeaf201a29', '0xe29051405', '0xd4e0a8774', '0xef76bba19', '0xeeafdf39f', '0xd579c7923', '0xdb44bbf02', '0xd7f275f14', '0xf2ed3aefb', '0xe5ecc40a0', '0xca8a610f7', '0xc1c3cf4e0', '0xd518aa0ed', '0xbb2c556f1', '0xcdd070860', '0xe7892d82e', '0x1047460659', '0x124fbfa678', '0x119ddfa99c', '0x13d04f9628', '0x118ea3e933', '0xf5ccf6c0d', '0x10e9f216f0', '0x10a2f86dfe', '0xf7b5f02ed', '0x1038f5e812', '0x121fe8d12f', '0x12a660f048', '0x10f8e42d81', '0x11fe4ef258', '0x11176f9469', '0x11754d4b34', '0xfc788bf4b', '0x10ece32f53', '0xf35ee3a66', '0x10bee4845b', '0x12d6962f38', '0x133a35bd22', '0x124f1f66bc', '0x1498527c26', '0x1355785968', '0x1228af7e74', '0x142f9d0878', '0x135429b089', '0x153d93831f', '0x135d7e02a2', '0x139e3c4e2d', '0x11cd346821', '0x14062977c8', '0x14851c5f15', '0x1222b6f362', '0x138aa36a70', '0x11a1b303a2', '0x120638cdfb', '0x1174cc0281', '0x11bd6b67fb', '0xfdb7bf27c', '0x11d68c8269', '0x141094ed54', '0x169079e3b3', '0x13fc7114f8', '0x1283efe6a6', '0x14d43d921b', '0x133a76f891', '0x1482920564', '0x1686b8faaf', '0x1495771979', '0x124e1d5cae', '0x144ec8ac9f', '0x1341345a23', '0x117b6738e3', '0x110522fe84', '0x11f275847b', '0x1341da01e5', '0x148e7b8e85', '0x14d4ca3dea', '0x127638a21a', '0x1470197728', '0x14202404da', '0x13ef45a609', '0x13123c119a', '0x12e444162c', '0x15401b1b0e', '0x129817b7ad', '0x106bd5d4c1', '0x1242b69df1', '0x13ad859640', '0x11c5b9b372', '0x13fe3aa31a', '0x117e734eb7', '0x10f2350c7f', '0x106b7f8df3', '0xeb673df80', '0x108d1aa991', '0x1161cb5cd9', '0x105ca37ccb', '0x1268008eb3', '0x101b007cdd', '0x121e282202', '0x134fe4b1c1', '0x10e5e81b89', '0x13028741db', '0x12ecb20667', '0x154a44abcc', '0x1545ff5f9a', '0x13e41ce895', '0x1430d1a55f', '0x138de93390', '0x12b6a4c211', '0x11ece27d78', '0xfcbe3ffc1', '0x11b8a1ab37', '0x11cd99712c', '0x1189c15b89', '0x13baf0a66f', '0x16320f24a8', '0x15dd175a78', '0x13dfe21597', '0x1359cfa228', '0x1354153af9', '0x13b4b7831e', '0x123ea9917e', '0x13be84f5a1', '0x143a5439f4', '0x11f1d6bbda', '0x142f8b97da', '0x145751b7ac', '0x11df2b3be3', '0xff8cd3276', '0x10164781b7', '0xe9761505e', '0x106a173c03', '0x1277477987', '0x14c5ea4971', '0x14626c2dcd', '0x12015f713d', '0x12a4d42cc3', '0x14f8d6dcb0', '0x179740193b', '0x18c7d4c107', '0x164cb6c7df', '0x14f76c1915', '0x12587e95f3', '0x112b1449e4', '0x13177e1263', '0x157a3e351d', '0x1729574d4e', '0x1814c7c60a', '0x15d3b4e247', '0x17c72fc79f', '0x15f93e8dc2', '0x14c5aae8d1', '0x12dec277c8', '0x13c9f8148c', '0x1642d6fdaa', '0x151662802f', '0x17b90e6ad0', '0x161ca9ce32', '0x144dd099ab', '0x1414aed846', '0x136a279d88', '0x11d92c6e00', '0x131cdc8537', '0x11238bb0e0', '0x12f62893c5', '0x1427e47d74', '0x16a6e7c83d', '0x14dd4894e6', '0x124dbf5969', '0x14977138f3', '0x12ff461816', '0x12be17f49f', '0x106654f60c', '0x11a54a6dc7', '0x11c593ee07', '0xfccca2aa7', '0x100ef6e297', '0x11cb2da72b', '0x1404880e24', '0x15646a0e11', '0x1465494707', '0x12fe1c1daf', '0x155d68774f', '0x146dfa20c7', '0x14d5580a5b', '0x176fa0a6cb', '0x172be7a349', '0x179fb2ff91', '0x15706f2061', '0x140376c3b0', '0x12809ff11b', '0x11674c80be', '0x127747f5ef', '0x11e02b76a4', '0x13a6dd459e', '0x146ef803b2', '0x13909251a1', '0x1341506d9f', '0x13093553e7', '0x110cfc2afe', '0x12de22103a', '0x127b49de21', '0x11c2b0544f', '0xff187b537', '0x11ef83b6d5', '0x1049d7d87d', '0x1251c081a4', '0x12edba9846', '0x11431b28de', '0xfe40c4cab', '0x11819c882b', '0x130839bba4', '0x1195b7ea47', '0xf9b2b5dc7', '0x118e8a3f72', '0x11e7a556be', '0x100de87852', '0xf7b58ab76', '0x1013a18ab3', '0xe8934c955', '0xfbbce26bb', '0x118b5d2559', '0x105a795315', '0xec3930bdf', '0xf9542170b', '0xef56d8a23', '0x10d3173cbe', '0x10639a85d6', '0xfc1fcd8d5', '0xed08a0ff9', '0xf722330de', '0xe86beea1b', '0x105726162b', '0x1261729997', '0x14ad788054', '0x128488effd', '0x113ac4db74', '0x1361ef6297', '0x134c258e5e', '0x142444f1a0', '0x156aee9caf', '0x1817680e2c', '0x19f2a4d6ae', '0x16e835bed4', '0x1646621f63', '0x147745426f', '0x1506943d87', '0x138c66b5d2', '0x1386f99dd8', '0x133f72e8fe', '0x13b323a21f', '0x11cd1f5931', '0x1086ad28ea', '0x1296e80958', '0x1447dc0ec9', '0x1379bf8e57', '0x15e8c32ca0', '0x17d98ca452', '0x15b16ef86e', '0x18670a2ba6', '0x178dedddbe', '0x1846215e66', '0x17580092f1', '0x1600d878cd', '0x14648d45d1', '0x135cefe46e', '0x129dae3937', '0x11a6043057', '0x124c24c2dc', '0x109fd5d922', '0x12864a5708', '0x112a860453', '0xf6577ac95', '0x1151843718', '0xf59472152', '0xf2b15b149', '0xd8efc30c9', '0xf404b6333', '0xd6cdf2362', '0xe98e6c561', '0xcc5c9ecb5', '0xdebcef95a', '0xda9d9564c', '0xf5ebfe5d1', '0x114a598393', '0x1034acdb8d', '0xf39a61ce9', '0x111a420c5a', '0x105652cf52', '0xeb80c358c', '0x1083b9bd15', '0xf27dbe64e', '0xddec6fadd', '0xee2a51682', '0x10be84a979', '0x10d44bfdaa', '0xeb9c27df5', '0xed71372e1', '0xfea7d0b6c', '0x10117bae5a', '0xe5b2e0b67', '0xe5cbc7fa4', '0xf938c6b26', '0xf20a24486', '0xd79d24ece', '0xf0ea79e97', '0xdea4a29d8', '0xf8b0bc97b', '0xe006a4a46', '0xdb09d4b99', '0xd35e0d14d', '0xdc91075ba', '0xcacfed229', '0xc4d821892', '0xdd7148295', '0xd1e5ac770', '0xbc40562ea', '0xd3c7aa8ab', '0xee3c4bb85', '0x10bfdfb81f', '0x10093687f4', '0x1209e100d0', '0x105599739c', '0xfa5fc743a', '0x119a6d5c60', '0x10523bfe8e', '0x1080a4f1b8', '0xf30fbcae4', '0xe5b77559d', '0x1026d490aa', '0x1050d19b52', '0x10c1103e87', '0x12d9300ecd', '0x10c7424d09', '0x12e00aec79', '0x125ec7230e', '0x1066d7ca83', '0x1166dad9b0', '0xffbf0684e', '0x11005865c2', '0x10a88de398', '0xee843224d', '0x10c2d2ef9b', '0xf9ce79fc8', '0xdf2463d78', '0xf48752cfa', '0xfa827bd0e', '0xf4faf4383', '0x11396df109', '0x124a3f2124', '0x11555c9b67', '0x1306d047e0', '0x10fe08a151', '0x10463b0157', '0xf7da331a6', '0x10ed596f63', '0x130a8ab816', '0x12702edc50', '0x1265c74c9c', '0x111bf2d8ab', '0xfa624f161', '0xeb9eebfcf', '0xec82a8d66', '0xe2532f652', '0xefe9de259', '0x10de33875c'], 'gasUsedRatio': [0.9996537615634695, 0.6265717571530053, 0.9988901140876233, 0.6969427080043393, 0.19684164185471412, 0.30333438600400014, 0.9993783, 0.15923549345936308, 0.9993851660928217, 0.30813484793820306, 0.998947098034583, 0.10690012084823389, 0.31856752637536906, 0.22804573278764337, 0.5643462923710346, 0.13437093333333333, 0.9995726506399834, 0.9117340146762142, 0.5958850276260499, 0.3601491, 0.1066369, 0.9995143591049994, 0.7210870063478726, 0, 0.7318402333333334, 0.03601453485995741, 0.37315151663724366, 0.9999775447173764, 0.999528232436975, 0.857067435410782, 0.07258503333333333, 0.4464592, 0.460444323882271, 0.8256773039654837, 0.050762, 0.44678643333333334, 0.6575031666666666, 0.09946686272478408, 0.27248428765200183, 0.7145785862628329, 0.4474117351685723, 0.6232733333333333, 0.6942791302373434, 0.5323762635511793, 0.05742403333333333, 0.370063, 0.9210035333333333, 0.1541776211136842, 0.42304745015920747, 0.18816917511918213, 0.6861018903251384, 0.6478812036785561, 0.3918622059596314, 0.6488046626996705, 0, 0.48668441384140826, 0.8593707192316973, 0.5475668575194934, 0.3650784354444675, 0.6321670333333334, 0.7912011587351618, 0.15119791282464906, 0.5178681, 0.9996947, 0.5373913040582537, 0.16246812371918626, 0.31032679919649053, 0.5797016, 0.5283152666666666, 0.9995846277223042, 0.37845558655854744, 0.0968015, 0.09779443333333333, 0.9699255666666666, 0.7680848666666666, 0.38827225214577965, 0.1590706, 0.6113936, 0.2099086, 0.0646388, 0.8977730420422209, 0.9996073334887924, 0.7033429276002984, 0.02861164616534913, 0.3525930966361485, 0.9993736335007121, 0.1615481034460301, 0.43933167544458834, 0.233620928592631, 0.5570377, 0.44401276666666667, 0.9995462902857974, 0.4640499230531279, 0.6413045847513723, 0.06218628055626294, 0.7651924696472215, 0.5959678346165797, 0.2251570446376166, 0.6404688671150284, 0.13229148534308183, 0.23776875877212486, 0, 0.9994536, 0.7686657020580597, 0.2998792465539635, 0.9529637, 0.30472913333333335, 0.9999036726029634, 0.45113215439001075, 0.308042, 0.8131748986218376, 0.9997373330881776, 0.2896549, 0.9997258666666666, 0.3169072666666667, 0.11107005991350553, 0.9985307986287454, 0.1359699, 0.7688052333333333, 0.09673616286303575, 0.29722911074717, 0.3237512, 0.9530472160601839, 0.059314857337695426, 0.17307911239639706, 0.9987876656038465, 0.18586384117689084, 0.7055242952664563, 0.21168865138444448, 0.7281801071134855, 0.6121636322303274, 0.5577830502972305, 0.6026852005335354, 0.12088170916484263, 0.5958762666666667, 0.9996425666666666, 0.9997719, 0.7281337333333333, 0.24639894190009878, 0.49637896483128163, 0.4382475377939436, 0.12312342671904897, 0.9995514611495887, 0.13828849181739347, 0.1862851686084572, 0.3869976576911773, 0.04506146666666667, 0.4252652333333333, 0.9997351666666666, 0.9998199666666666, 0.2867979751106378, 0.4691186577799865, 0, 0.09980692629339083, 0.9995738830729948, 0.9999052481882933, 0.19347532306474294, 0.05506807776096475, 0.930871631155743, 0.9996412649566963, 0.9473789313660518, 0.609563046621731, 0.646223242009076, 0.1569569235983542, 0.3705939346231882, 0.38823279684368256, 0.6067486, 0.2447919, 0.1586074134725893, 0.4293597340690851, 0.7112703666666667, 0.07951613333333334, 0.9992553666666667, 0.08110886666666667, 0.9983416, 0.04572213333333333, 0.9998055333333333, 0.9999403915409936, 0.9999134666666667, 0.10073463333333334, 0.7429919649871433, 0.36126628253459303, 0.5523373580228887, 0.27803213936925947, 0.366447611224409, 0.9243543498158028, 0.011988407713567744, 0.9993820643185111, 0.28086906532682326, 0.3816312857757955, 0.2920973925604026, 0.6404631386553283, 0.7817179, 0.6845465930814774, 0.8001172488776257, 0.33833734681193045, 0.6094808697880584, 0.232905115461805, 0.9526749602055751, 0.6160121222725538, 0.1039891986252614, 0.5662582666666667, 0.08039410484337955, 0.5103029787680873, 0.9493999772668008, 0.7532173668507929, 0.14099458243278556, 0.09130861398811231, 0.5958850566282932, 0.040936788893131126, 0.9648251666666666, 0.5785216735857435, 0.5578574333333334, 0.9997315288287654, 0.9619798632472011, 0, 0.9995037323904249, 0.199413172514655, 0.21069246362864694, 0.24984327985206847, 0.9994270466000651, 0.9994221001514452, 0.948212376981058, 0.0802522097589583, 0.5596699674380353, 0.12809540365667482, 0.9480222116728292, 0.4771659384110501, 0.2801996473349525, 0.38199374898228877, 0.42068889465750126, 0.4519178022237217, 0.9996941974643199, 0.9998918333333333, 0.8701988, 0.1891416301351603, 0.29155773878722285, 0.6186150333333333, 0, 0.9998478514269183, 0.9993097660224483, 0.344087286579456, 0.5932537271820817, 0.6045438449020918, 0.06655770824964946, 0.5243928669583005, 0.33129896924776736, 0.3033448465792273, 0.8641394145358564, 0.1431843, 0.4187363372999599, 0.04619161131855761, 0.9997435333333333, 0.068008, 0.9993776, 0.1837587, 0.12785625162971642, 0.6620260189240076, 0.14207844959581709, 0.9993266850158359, 0.9998694178295143, 0.5079695979581456, 0.08636673454641354, 0.6951363733022201, 0.3133385996449669, 0.2494071994675725, 0.34948026216766964, 0.10951182385922546, 0.637717386216995, 0.31319834303060545, 0.04607467946638991, 0.9998819663322379, 0.5787960122827074, 0.9995825145697391, 0.20690903957720325, 0.029306073025614755, 0.9920238666666666, 0.5748419002177707, 0.6067476, 0.32163875309094003, 0.17914336666666666, 0.8517587757778804, 0.9435698779731287, 0.8470902691684365, 0.0602862478772043, 0.5859783545554303, 0.6015111042814622, 0.35677773333333335, 0.2774608333333333, 0.9993857333333334, 0.3230097857224246, 0.37977952112755303, 0.6747581333333333, 0.12809795431905924, 0.9856448778445444, 0.6875342751695024, 0.5415252955647283, 0.37093313333333333, 0.08379056666666666, 0.4499732677706886, 0.3898381435102054, 0.9993621, 0.0420389176697712, 0.7391223231808349, 0.06255417586996784, 0.34699010500841476, 0.976851751753916, 0.32308145706438857, 0.15740192086122745, 0.9080354487666422, 0.9998671364160665, 0.14862800846017366, 0.7822564666666667, 0.1755579, 0.11075445172210664, 0.11721534550210982, 0.5617307988045012, 0.9144573451635118, 0.9995521253007122, 0.27176242469627776, 0.999983518430607, 0.5212922170331992, 0.37582814358902084, 0.19749716955273372, 0.9994524307807516, 0.37394397603653357, 0, 0.703195130838213, 0.07497375652743697, 0.9060220881511523, 0.9996540872944327, 0.7663994523165114, 0.23268241473424356, 0.22771610313388654, 0.6990911775744102, 0.487665601326549, 0.43559348073454124, 0.23102953930125233, 0.41516024260871603, 0.43634215709653434, 0.5806124058588802, 0.29416700524857853, 0.1804322540460025, 0.7810860276465277, 0.09858182529701001, 0.9088110372404096, 0.07269404644737322, 0.9998611679865033, 0.5933433896316482, 0.2639398010268638, 0, 0.9994268666666667, 0.9998017666666666, 0.999627763488953, 0.27074993333333336, 0.40509619023690036, 0.12512466666666666, 0.9733929, 0.7004459855048455, 0.11087066025352557, 0.7577127055792803, 0.30976271023183977, 0.999777248079379, 0.5391937119861757, 0.13475661346157009, 0.9996047944613913, 0.2629977624753842, 0.7223627875664999, 0.3456617, 0.9995557, 0.7245151333333333, 0.4599257824734147, 0.29073193333333336, 0.2918576323112853, 0.8453616556708786, 0.9665331666666667, 0.3028865666666667, 0.6958326, 0.08811616666666666, 0.18929034201898154, 0.9997131330655908, 0.8224715666666667, 0.7642695666666667, 0.13797046148897732, 0.8995412979162858, 0.18244408635941187, 0.44185273839809147, 0.9998984339611209, 0.7596326189590871, 0.07746543114556856, 0.9996060985163044, 0.25931566666666667, 0.6630482999982816, 0.09521498886732294, 0.2623494, 0.19398610590092108, 0, 0.9998005333333333, 0.999492861887034, 0.36067123333333334, 0.9564526666666666, 0.2175162, 0.9999079100741874, 0.44004527737559224, 0.26668369887006554, 0.27778972332966284, 0.20430342380318237, 0.9549928241452857, 0.33415752941238885, 0.9799401904393903, 0.044690777035394466, 0.591173231553296, 0.23837618730038773, 0.9999585997640187, 0.7040426487299463, 0.13894199294661966, 0.4061273, 0.284491, 0.2778921716277388, 0.3959057, 0.7131902, 0.0892207, 0.8982707613985056, 0.11627160852016795, 0.4000545, 0.42349842045908836, 0.4314194170387698, 0.04354753333333333, 0.9999441212322834, 0.9272612296858553, 0.5197365463411593, 0.183366, 0.5274980981071983, 0.23076456040778187, 0.9920748978679665, 0.6584953397576568, 0.03829256672370136, 0.22449857689592043, 0.36079328629668533, 0.27782186666666664, 0.5505227521341256, 0, 0.9995001209986244, 0.9987181, 0.21791716666666666, 0.12884978848512238, 0.9997519331018042, 0.7864286, 0.9999969, 0, 0.2439910943916881, 0.5297467588069499, 0.9074176533436468, 0.5232931900571519, 0.9995698654479521, 0.3897396850649069, 0.10276229000072241, 0.46018321760822134, 0.06362283448141655, 0.6123754498705947, 0.9993039713444601, 0.9189420035971945, 0.39413582777359296, 0.20268221253482405, 0.915726165069006, 0.12666181502624288, 0.627315793889334, 0.9998595222016434, 0.9577665180096729, 0.10860989830236492, 0.9999322022327752, 0.9993586413043642, 0.4255684560319021, 0.053780700366403034, 0.15208691470956573, 0.5212417733103761, 0.20309255529247805, 0.999311958180831, 0.9995826642878531, 0.830132723027224, 0.04847348820747178, 0.13399383333333334, 0.49723815305645963, 0.11479670714359333, 0.5415552666666666, 0.06822165177629289, 0.07167247611821449, 0.9589353173621465, 0.12082931298158638, 0.36196467957583034, 0.10400903017800014, 0.9997686734464843, 0.9996608653779551, 0.8153579954429327, 0.1677755465990749, 0.999663369675884, 0.350948767074639, 0.6681179666666667, 0.11069513333333333, 0.12441942890565971, 0.8926984331852043, 0.5659975, 0.4063668, 0.47391343333333336, 0.9997034103802362, 0.6642982866784009, 0.0539119, 0.8069956666666667, 0.0671746, 0.9110860421868622, 0.9993680660768617, 0.6099986, 0.23047912953665922, 0.9672154690766689, 0.16001070513057497, 0.6542596241880266, 0.5415393050327291, 0.5969854125106333, 0.7636190915858743, 0.33147679460743645, 0.3845300959583117, 0.22111897358543295, 0.9996387792286111, 0.18403623777152545, 0.0582103179042716, 0.5687820594005015, 0.29775925914433155, 0.47289053684056104, 0.9999007691094705, 0.15482550484632002, 0.087261904865181, 0.299464378780553, 0.9617943666666666, 0.1018502, 0.1065053, 0.9994471333333333, 0.1336464, 0.6788755666666667, 0.1853126, 0.9092324988684785, 0.999432966137435, 0, 0.3635102010446534, 0.4347861058003654, 0.3981969989477266, 0.16456953333333332, 0.9046306384851475, 0.999585799613413, 0.09004648109884204, 0.9719977143957336, 0.9094450707423787, 0.17440932167943404, 0.99962236770057, 0.4661810226151852, 0.09247535050358699, 0.7635030551310258, 0.09183883333333333, 0.9995464571153732, 0.14189636576994138, 0.9410791, 0.23277783333333332, 0.7214023666666667, 0.7113209333333333, 0.9991133, 0.4088377, 0.09435113278550163, 0.021638933333333332, 0.6426248, 0.7191392394673398, 0.4528563056991451, 0.5797625986147259, 0.13120868262983032, 0.22335546431962366, 0.45374032680723714, 0.1037621545287403, 0.810464279764263, 0.9993659333333333, 0.9996081173265694, 0.3405645714143723, 0.2650968900401179, 0.7022637111032417, 0.11160516488015758, 0.8062676469822032, 0.1484688437188716, 0.34192151069912435, 0.9996334, 0.6245145, 0.07853553333333334, 0.9527350666666666, 0.05484021813968006, 0.19290438004408805, 0.9857267488485495, 0.25256873812831115, 0.06808364410126722, 0.5700687429858782, 0.41114371474007344, 0.8881006516939748, 0.05193052875296418, 0.9997972733533474, 0.7328950060510427, 0.883322729290304, 0.8976113425291352, 0.1660051079758769, 0.6798465618761396, 0.7700988819468322, 0.02817329104302814, 0.8992844110952501, 0.14763188761476745, 0.11680144415786542, 0.9993778561984304, 0.11029669523991213, 0.999543330146228, 0.45561949153363185, 0.16163400938144548, 0.8980254451189141, 0.48363058500726996, 0.2669444143887747, 0.8996203978760379, 0.17390954387988988, 0.06138983419611725, 0.754932084436158, 0.9157317317068825, 0.0739843240960165, 0.999537115602814, 0.49354708429117394, 0.625225984891732, 0.09756833474665853, 0.2515545980493852, 0.9998691654237382, 0.2418506, 0.9999568088428317, 0.3078187657257308, 0.028564267937817727, 0.48497783333333333, 0.9148850333333334, 0.9998391333333333, 0.9995039155735576, 0.0676708313074342, 0.7254058544674079, 0.4588657470864731, 0.9996218948940614, 0.18417328571124825, 0.10397429811247584, 0.9997347152321818, 0.8232571008216989, 0.0719773202907175, 0.9995211982334833, 0.11399824125108668, 0.5729935945868241, 0.09146165795131225, 0.70796507302745, 0.17559533085343743, 0.5043802563977655, 0.4458003617939376, 0.12766883919776317, 0.9998252916328854, 0.5203760770193072, 0.0753323436634139, 0.34842058536561277, 0.3573013034319794, 0.2583696451437957, 0.9995590299966604, 0.48702433333333334, 0.07750026666666666, 0.6085424, 0.4394097836537379, 0.9997439997610664, 0.2859137616410867, 0.023595281584935377, 0.32668829849791703, 0.8990704870961029, 0.013400076350263503, 0.8983698624641451, 0.9999000381077577, 0.9995985739113815, 0.9995832988193466, 0.3482214248487352, 0.9988495956668103, 0.04445173333333333, 0, 0.9039202459147085, 0.43443314099263847, 0.22237488382666604, 0.6913415901255151, 0.9690137178938394, 0.6159240077829407, 0.1401732018941872, 0.740666149597823, 0.2995162218479357, 0.5858118583221824, 0.1153602768021956, 0.7904822781340055, 0.09476735245150808, 0.903666226807622, 0.9998436470242485, 0.5826305406554226, 0.30895794978408686, 0.9994104808627212, 0.25505890573077206, 0.25691572307382987, 0.9465158029165357, 0.3301339182089287, 0.8956323867086616, 0.14683971501382267, 0.5522387830173591, 0.12962242789688136, 0.9993914523171148, 0.599059563327178, 0.03521165277044149, 0.8100976206531356, 0.10905503440067932, 0.5890822473773243, 0.37393325832016594, 0.565004200109387, 0.0755200473068007, 0.9996346088269111, 0.9993117211503435, 0.9983036370554054, 0.04295013807672633, 0.2056512058624909, 0.9998407222639147, 0.1926051782397231, 0.7666189812687665, 0.8932160526948075, 0.15508495598949942, 0.057184257727850615, 0.9376070343449074, 0.2925827350184491, 0.1317448026212627, 0.3942964244246173, 0.7178700125772904, 0.7919974124270365, 0.7698913311029775, 0.5534404528056918, 0.04502706091000591, 0.9281460617845092, 0.4388706, 0.46205953446874204, 0.32674847163190684, 0.462338, 0.9994265266633798, 0, 0.032565930848925846, 0.9480461662225881, 0.8104434, 0.11266952178802601, 0.9998135998260265, 0, 0.37473953284712797, 0.3757929666666667, 0.08411246666666666, 0.9998352941685777, 0.7007882774286682, 0.2652424, 0.9997934666666667, 0, 0.9997862, 0.7636707244624376, 0, 0.9998921333333334, 0.48205459297670844, 0.9999883666558089, 0.4968657, 0.24007726878630317, 0.5602547562377724, 0.37393019183383813, 0.3279894634220633, 0.3315392446636456, 0.02494417341671715, 0.9873929032301202, 0.5184876062950943, 0.4404563021108444, 0.9999691063313317, 0.9998032909648906, 0.4401851148626601, 0.13609091802085826, 0.3945949921281186, 0.49537476347443515, 0.5781182649714893, 0.20340894864869122, 0.8287387814265473, 0.5979793544477892, 0.048510566640057984, 0.9995442532314428, 0.5307874790607342, 0.014414, 0.0747765, 0.5288375666666667, 0.12809788758722893, 0.9997730997882265, 0.9999306, 0.9997681930261766, 0.4251642, 0.033154133333333335, 0.6418465965348497, 0.9995029328694041, 0.9994830666666666, 0.7017340766591911, 0.09953720325657038, 0.26086261784685805, 0, 0.24328493333333334, 0.9481495666666667, 0.9998477179632578, 0.8136260260509577, 0.6588300007456059, 0.12556733333333334, 0.8575564, 0.1964494, 0.2812882666666667, 0.1337432002350295, 0.6947597817757963, 0.9997036, 0.28911143333333333, 0.9999062333333333, 0.2283786, 0.17293693958817452, 0.4560339419903613, 0.3673108296949071, 0.17728876511924901, 0.783366653071322, 0.08689552149902001, 0.925397558070927, 0.7519357653398948, 0.9953691225630322, 0.18433913252786488, 0.009079747374677032, 0.9999798075505787, 0.19027946640136606, 0.44638983424823314, 0, 0.8038910380697196, 0.5285898031125562, 0.056189030126535734, 0.5654419007183163, 0.9322235488864629, 0.9999611907622659, 0.7746653274414631, 0.3136532232940084, 0.22483683473908073, 0.9996170168750708, 0.3248943909174183, 0.5790572074270699, 0.9997117370224048, 0.45484872399155335, 0.5780824045668129, 0.1300972619659325, 0.2340078, 0.1979862335570685, 0.26242497826331307, 0.7441876666666667, 0.37213679157697493, 0.8974455376158351, 0.6591014359424757, 0.3299379935488544, 0.4367026031602653, 0.45447165433635395, 0.08284296666666667, 0.9262539202864931, 0.4181434438786808, 0.343932782830791, 0.09077147972562012, 0.999797234941241, 0.13265161360129232, 0.9987322666666667, 0.6330363600055454, 0.14783601909834793, 0.182236144449422, 0.9066455493076404, 0.8486371550304411, 0.1958210579898039, 0.049906081486354954, 0.9999743916709679, 0.5793013762604515, 0.0865843154186857, 0.35735766677141767, 0.6536930082040104, 0.11665676694333466, 0.8295695421104673, 0.9603584417164993, 0.22846561010356228, 0.11122459097304806, 0.7219125669285694, 0.3397393515396981, 0.9989391579042666, 0.3964617447061734, 0.3459187889891081, 0.2605859052256819, 0.6704379297644427, 0.2618780676816477, 0.9995264695734178, 0.9994313216049829, 0.9998657684082962, 0.08217522652556135, 0.22174790121546273, 0.9998367657307902, 0.48243556666666665, 0.6749928666666667, 0.7534101666666667, 0.9993491310931791, 0.8082251426935473, 0.03125052654101002, 0.3896174228267807, 0.1751444279749974, 0.6094110266645756, 0.2189616, 0.4956629, 0.4427672955974843, 0.5939149876539884, 0.11451253333333333, 0.213463, 0.9994284, 0.8639098333333334, 0.3412042192534343, 0.9998360132202068, 0.854293476730388, 0.13828584352860615, 0.9995872961968422, 0.3609833948869424, 0.6221912741338868, 0.3467182957534671, 0.27031022745965294, 0.20722168775671165, 0.2980177, 0.34566556666666665, 0.2921269, 0.6470798, 0.1342484, 0.9572122489056103, 0.20666756644531423, 0.08761760995981539, 0.9993560987765877, 0.04506665988669981, 0.4529754500971086, 0.07549253235335138, 0.9993502642193286, 0.021119269182270407, 0.8491894062804501, 0, 0.8596803605401596, 0.4259673665393613, 0.9996220600944489, 0.9997523231673165, 0.24907138464014378, 0.25796963333333334, 0.993229744487841, 0.32099316666666666, 0.10378407848597489, 0.9879745554429185, 0.1708712, 0.16072816666666667, 0.7927444517095723, 0.9995199712934251, 0.5203229076594813, 0, 0.5311067257176633, 0.7899783904834498, 0.5382817858362621, 0.07378867841523423, 0.5016940245117377, 0.8381392192284866, 0.3847265164236689, 0.06328187929865801, 0.9693961666666666, 0.19661089053460704, 0.9679645701002654, 0.10329099339330906, 0.41094696710100526, 0.3599147, 0.674088, 0.1780235399867971, 0.3822960340114593, 0.9998519219252846, 0.29145205375890215, 0.08749613333333334, 0.9999408244515897, 0.9996806333333333, 0.9996163, 0.32960236666666665, 0.9995266955151628, 0.12209533333333333, 0.3320133, 0.9996931995905998, 0.2086890951310837, 0.5444302128438566, 0.18218791426384556, 0.2803874344064275, 0.9999248134358523, 0.540619248625237, 0.6074929834338382, 0.9999919236599075, 0.06069792892228007, 0.9998848119320852, 0.3929936666666667, 0.07137252860751858, 0.7438880942955547, 0.17413906666666668, 0.7545552899072611, 0.41931609964758537, 0.07951805958597664, 0.9974099415294718, 0.22600209464947488, 0.07303920937906688, 0.8833692090243448, 0.5978387682693821, 0.41170940285234786, 0.9997798366877177, 0.7474852067049566, 0.29079713294241144, 0.8907293345190257, 0.07232616281034795, 0.33098684144323726, 0.3074105366081812, 0.8708981285228101, 0.999560474940893, 0.3733347040077345, 0.49118292172294925, 0.219876506387806, 0.15862219581801115, 0.26415058896071114, 0.5151022217688911, 0.3277378424781571, 0.7401609629830962, 0.9997472603151891], 'oldestBlock': '0xd10b19'}}), + (('0x400', '0xd10b17', []), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0x16d60882d2', '0x192e89b406', '0x186fb21aec', '0x1665b16191', '0x19323fb45b', '0x173d931909', '0x17ec82d968', '0x16093c71e9', '0x182e6359e6', '0x19a862d278', '0x18bf901805', '0x16278f4b23', '0x169d99824d', '0x1408d8e2dd', '0x16893d02ad', '0x195a40b56c', '0x1c85259af5', '0x1a1d340bcc', '0x171b79b7ac', '0x19c57a1fb4', '0x1ac914351b', '0x18bcd15c3a', '0x17624870c5', '0x178772c271', '0x15d398791a', '0x14b3d0ce11', '0x151a669dcd', '0x1628961764', '0x13d139bf72', '0x1636832665', '0x163c0aad0e', '0x14e196cdc8', '0x12e47baa65', '0x14ade1a116', '0x1371641553', '0x15df36b29f', '0x16f7d62b7a', '0x19acdb723a', '0x170c44ac5d', '0x1959d2c571', '0x16f1c99762', '0x15ad28338a', '0x1413eb536f', '0x169528e4fe', '0x160144e003', '0x148c16826c', '0x13e9ab275d', '0x1406b267f3', '0x11cbdb9126', '0x12b64535f1', '0x14379cfba7', '0x122dd5d225', '0x147327eea2', '0x134b739dc4', '0x159bdc47cb', '0x1530e49cce', '0x17d694e815', '0x1621f45ac1', '0x14eb50aeb9', '0x12baf63563', '0x11a709535e', '0x13dbb746da', '0x1241a836f5', '0x148987898d', '0x171a6e479f', '0x184784a461', '0x15a59afbba', '0x1466e6e941', '0x16f2fa5e69', '0x14dff27c6e', '0x175cae6fed', '0x15d4364b47', '0x13c609a12b', '0x120087720d', '0x13de9d82f8', '0x125b45f6e8', '0x104a755e96', '0x114b214e9f', '0x11ab0a1e65', '0xfa0a38b66', '0x1162182926', '0x12ee45811c', '0x118d46b781', '0x104f41277f', '0x1225886e06', '0x1469efafee', '0x16f729ef84', '0x1564def485', '0x142c7eb8ec', '0x14f4c49745', '0x12fbd957b1', '0x155ad875f6', '0x1806039bab', '0x1ae5797ef6', '0x18735e7e24', '0x19d2d49ce3', '0x1852af47c2', '0x186fa76791', '0x19498ba42e', '0x1763ff6c73', '0x16a7ad0fb0', '0x152f1009c5', '0x16688cd6c0', '0x15e479ca2c', '0x14a31daaed', '0x17374b8c27', '0x1a1e16b6a0', '0x1b16dd1fc7', '0x1861c916f1', '0x17e32e6147', '0x15aec6fac9', '0x154350ead3', '0x130cba6cc9', '0x156dbcaca7', '0x1492da01be', '0x1725063f13', '0x1a0810f2a1', '0x193935c5fa', '0x1c35e70dd0', '0x1cb2189f72', '0x193c74a7d5', '0x1ad5e754b3', '0x1a6e65ec89', '0x1783d9429e', '0x16d985994d', '0x155204dedd', '0x156bca8f5c', '0x157c629070', '0x133e51a829', '0x13fbc53e41', '0x167a78785e', '0x19492b5b94', '0x162005f022', '0x18e3533373', '0x17148c0729', '0x15762fb78a', '0x14e07edf1e', '0x1336ebf08f', '0x129183148d', '0x120c214ac6', '0x1440702124', '0x16c83b9ec5', '0x13ef342aed', '0x166c79384b', '0x158d1e9474', '0x147568320b', '0x17034cf3e0', '0x19e383f5be', '0x17ef4e5635', '0x181428f959', '0x18d2723319', '0x163c381948', '0x168529a00c', '0x165035cb9d', '0x165e4e81a8', '0x14ae303e5c', '0x1583634250', '0x133e817220', '0x12ff1ea88d', '0x129233b059', '0x10f5d7c805', '0x131486bea7', '0x135f883094', '0x11a08b774e', '0x12aad3799a', '0x12cb813edb', '0x10c42a08f3', '0x12da13bb58', '0x131df129a6', '0x1336c4d02f', '0x159d81c4ee', '0x141088060a', '0x1269414ea4', '0x14352cfe2e', '0x13e7d274b9', '0x137bcee59a', '0x1511b4d7f0', '0x1508c354bd', '0x1267aaea26', '0x1490016553', '0x13798e5cf2', '0x13a73ab136', '0x13384ea744', '0x10d144d25c', '0x12c5309280', '0x150458e067', '0x143c561982', '0x15e307777b', '0x179ddac0a3', '0x14aa1f688f', '0x145e9a3f96', '0x16286d438b', '0x146099e3f4', '0x1479db1f7d', '0x154afd68f7', '0x152d100b92', '0x17d22487df', '0x17c0dd8382', '0x192f1c3afa', '0x1694ea9484', '0x196692bcb6', '0x18d1d3c375', '0x162669eaca', '0x141a8846f0', '0x1386b0fbd4', '0x1286b5c767', '0x14d741f844', '0x1771def138', '0x16f1484c79', '0x17d680eb28', '0x1a1cd2645f', '0x17c1f83cff', '0x190df2265f', '0x171b70b967', '0x154d13a92f', '0x15a19ba45c', '0x15385c2dfd', '0x14c389ef8d', '0x175bbdd153', '0x18e535cd7a', '0x164a23ca09', '0x14cf5dbcc9', '0x158e8727fc', '0x14bf138bea', '0x1349acae7b', '0x15b26fb4b9', '0x17c8bfaa59', '0x14f1cfc96f', '0x1364584377', '0x14f522840c', '0x135dccc427', '0x122d91da44', '0x130447f127', '0x11b321ad1f', '0x12bdda66e5', '0x146d6de642', '0x1480b5ce06', '0x127ae87e84', '0x10c9022017', '0x12e178682d', '0x116c8c6eb8', '0x10e4501362', '0xff3727646', '0x11b3645ca7', '0xf7cf7d113', '0x116c897add', '0x139987b622', '0x160ca4ed26', '0x14db572ca9', '0x1775d6164b', '0x14e0fb9e18', '0x177ceb4d50', '0x1a6bbe821e', '0x1db90bf8b9', '0x1b5a07d788', '0x1b5c463a4d', '0x17f97aa599', '0x17885d0916', '0x14f12dd1d8', '0x173265eda5', '0x187c8d5929', '0x162782cbf4', '0x1573a073be', '0x13b6e07d4a', '0x162d983c06', '0x167cdd1b49', '0x16a807e4a9', '0x146c0a27d9', '0x120db43497', '0x144ecad4b7', '0x12ad8998f4', '0x127a34ce2e', '0x138c85c691', '0x1186c2953f', '0x10f88b8226', '0x12d42738fc', '0x10a80ba014', '0x12bcbb0bf2', '0x12cf1e13ef', '0x11cdcab73d', '0x126cd24369', '0x12a9696a98', '0x13a333347e', '0x126373a8ba', '0x12a913ac87', '0x14fd7030d2', '0x179bc874b4', '0x1556054c72', '0x142712be6d', '0x16ab6f789a', '0x19805ddf55', '0x1cafd344cd', '0x1a646d9135', '0x1996567106', '0x1c7fd66833', '0x194062546e', '0x185a71c6a0', '0x162dd04736', '0x18f3152f50', '0x178c80da88', '0x185244a8bd', '0x15aa2635ab', '0x185f5a3e6a', '0x1abde03f49', '0x1797ddd680', '0x18197e1ef5', '0x1997e2d0b4', '0x16e8ba6259', '0x148a363371', '0x15186b60bf', '0x1554ccad39', '0x17ff653f69', '0x187cb2e289', '0x1b48c4d927', '0x1933669db9', '0x176d3aed95', '0x18f35d5a02', '0x17eacf2c79', '0x15dbb634ed', '0x13af400433', '0x15f155e77b', '0x168251b8e8', '0x1621212c96', '0x1696146a40', '0x15e74b9ce5', '0x1419e5a8a9', '0x12b7ab5016', '0x1133dad8b6', '0x1359c77f42', '0x15c47df05e', '0x1714c0209b', '0x14acfadec4', '0x1584d56d80', '0x154cfd58b8', '0x13089f6281', '0x1511b9f537', '0x139ac2f09f', '0x13c0fa50b2', '0x11a3310b6f', '0x10c5e535f0', '0x12de44ee6d', '0x14fc29380c', '0x1472f8c499', '0x121c3ba270', '0x114f558d2f', '0x1378fb8b4d', '0x15e807fdc5', '0x13f8d9b1a8', '0x129514c355', '0x11c80ac0e0', '0x1400f54832', '0x11ca4a7927', '0x1403265d21', '0x168328cc88', '0x15f8136eec', '0x13f05f7a66', '0x166df10a0a', '0x146c2d29c8', '0x126fdf7f71', '0x137d98d5a9', '0x12134c3702', '0x11c7ca4cca', '0x1400a76bad', '0x16807210ce', '0x183106caaf', '0x1b3674c354', '0x1c22558611', '0x1931bed1b7', '0x17ea0697c1', '0x17ac4a5c30', '0x17149169c2', '0x1716cf27b4', '0x14ab5cdaf9', '0x17308046c1', '0x1a15a16190', '0x1d5848a5b0', '0x1dd8f3d1eb', '0x1b502352ff', '0x1a60f9f579', '0x17a55c9b3f', '0x1979e583a3', '0x1ac6607103', '0x1853e94287', '0x1704d5067c', '0x19aa0c0711', '0x1c9a72b4e5', '0x1da650e908', '0x1cc6630abd', '0x205345d24d', '0x1fe7775da8', '0x2018122470', '0x1cbce1052d', '0x1d832f0a0d', '0x1e213c524a', '0x1dbfa761b3', '0x1e01964f34', '0x1a4163854e', '0x1a234170c4', '0x19a0396d6c', '0x1c02c8a01e', '0x1b9d36a707', '0x1adc5465e5', '0x1b5b9ca323', '0x1ec68bc636', '0x1ffe5c319d', '0x1caa564362', '0x1a73dc476a', '0x186670e443', '0x1823e37e0a', '0x15d2c7e96d', '0x188c6de2a1', '0x17c4020599', '0x174dee7dd7', '0x14d6eb8c31', '0x162003852e', '0x1587046e11', '0x1837e265ad', '0x199af41873', '0x1ccdcb0a40', '0x1a470cabc5', '0x192c82a53f', '0x17ed26707e', '0x18a9baf20f', '0x1b6b9544e7', '0x184dbd72e9', '0x1606415e01', '0x14c98eac3e', '0x1324eec748', '0x14d53420db', '0x1503a3a324', '0x1443893b14', '0x11fbf427e7', '0x1198b86112', '0x109dff42b5', '0x12ad2fa90c', '0x11e1f5a607', '0x141da0e482', '0x149aca1594', '0x13683f1d3b', '0x15d4f5bb16', '0x185e5b6555', '0x16f11304eb', '0x17ef5dce79', '0x151be31fd8', '0x14fe5b600e', '0x12ad634ef0', '0x13926add1e', '0x1603dd34b1', '0x14bb42a81a', '0x14bebf5abc', '0x138d079e9c', '0x12793ca48e', '0x1293c96b0e', '0x11e5efcd9f', '0x14220f51c1', '0x156120be48', '0x134247f9d1', '0x130b782fac', '0x144a3946e2', '0x1435dd819b', '0x1293d7c500', '0x11a8e99c02', '0x1123fc4226', '0xf80e67d67', '0xea2d1705b', '0x1076f5d0ae', '0x1285be86b7', '0x14d65f8fb1', '0x14745712c0', '0x1630b91070', '0x13ee4f3f06', '0x166c0ee417', '0x17ff52be7f', '0x159180cc5d', '0x170167e526', '0x14b2311734', '0x1301608038', '0x1470e4a6a9', '0x152fb3e046', '0x17cbfbc2a2', '0x15ad93886f', '0x1862cbe05b', '0x17964ed4a7', '0x1582a8271e', '0x1832cce09b', '0x15b702eb33', '0x16491a0884', '0x190b4fd611', '0x191b512cde', '0x17a1cc3a2f', '0x17b3a77153', '0x1aa9d9a836', '0x1b4eaea918', '0x199f20a375', '0x190c015f93', '0x1c2d18ab3c', '0x1f7f2dfe1b', '0x1e0fc72400', '0x1fbf2677dd', '0x1bd861eb10', '0x1c0b270e8e', '0x18cd5adb77', '0x15e94122a5', '0x18a6157447', '0x1bba7cf5f8', '0x188c2c2d30', '0x1905994b6f', '0x1bc2cda9fc', '0x1df54325ad', '0x1aa731d5af', '0x199d84cf72', '0x173dae2963', '0x19e33641ee', '0x1cd4cf4967', '0x1c956b0cb8', '0x1bc3b67a64', '0x1f3b2606e1', '0x1ca5573132', '0x19adb556b4', '0x18db2dcaae', '0x179cd79fe8', '0x1556596034', '0x18008fae5e', '0x1613a5e8a8', '0x16b223e4d0', '0x14773fee04', '0x1364d4c24c', '0x15d0d408cb', '0x152947cc85', '0x135e1da4b2', '0x151926b304', '0x17bc285ec8', '0x19c3977c0a', '0x16a5e8c904', '0x149c9f31a6', '0x172fdbc219', '0x1a15b93967', '0x1835f8c9bd', '0x186189c2d5', '0x1a8e881b83', '0x1c4a52cb55', '0x1d90cd3591', '0x1b64de6127', '0x198f2589d2', '0x175a63bdbf', '0x15ee79b271', '0x155b6d392a', '0x18061f584d', '0x17fc984804', '0x17ec8cf3fc', '0x1560ef50b0', '0x13ef532b9e', '0x12228b214b', '0x14661090d4', '0x1529e1b0e3', '0x17cef64018', '0x1617ca39ae', '0x13c51bb0dc', '0x147ec9fc7d', '0x1435ccb1c7', '0x1435284a72', '0x1221810c7d', '0x12bb00476d', '0x12a084cf99', '0x1112530a73', '0x110e5e160c', '0xf0168cc5b', '0x10e0eba1be', '0x12c4612ed8', '0x11b5aeeaba', '0x119e94662f', '0x11898af57e', '0x13ba4dfdb9', '0x1631183d3d', '0x1539bd009f', '0x13b5a1714c', '0x14604bcb5c', '0x13d6b18149', '0x11a51f9f5b', '0x13d98bbcf9', '0x1654378a2e', '0x184c56064b', '0x1542cb4582', '0x131a42c0a7', '0x157991739f', '0x161aa2625a', '0x13f307f3ad', '0x128a1061f0', '0x1441725609', '0x13ad67016f', '0x11a4b7043c', '0x13d8dce7ae', '0x14923b6988', '0x14f58e1f22', '0x177db2b038', '0x153c1db19c', '0x141b09ed26', '0x1268c559fd', '0x134a364ee6', '0x13315786f9', '0x1597611a62', '0x168ce539e4', '0x1704671bd5', '0x15df4e5541', '0x1599d0d81a', '0x184cd4985f', '0x1b5665967e', '0x18dccd5a71', '0x15c133af23', '0x15593acbca', '0x15601653b1', '0x149be95f20', '0x16498ed4e1', '0x143810350a', '0x16858f6366', '0x1955ea834a', '0x19847db4be', '0x1cb0788160', '0x197c79ef66', '0x16e4d09603', '0x1969c952bb', '0x167000c3ef', '0x1652d2e53b', '0x1513e4969f', '0x14703c9544', '0x1652612b71', '0x13c628cdd1', '0x12265e91cc', '0x13bbd75fa9', '0x15fe9c09b4', '0x16e97e4ad8', '0x14b230250b', '0x1747f364d1', '0x17dc4c4dc0', '0x154193e0c5', '0x17e920a01a', '0x18fd2505a6', '0x1806209e5b', '0x16c5492046', '0x19318d8958', '0x1c56e7dab1', '0x1b6be4231e', '0x1ace1c3481', '0x17cca633b5', '0x16e8109cb1', '0x1703d0c502', '0x14f499e9e7', '0x17762fd7a8', '0x1576fcac5c', '0x1391bd526f', '0x147b6fd190', '0x123aaa7bbe', '0x14813e7cdd', '0x155ccb7ee5', '0x1807ec4359', '0x175fb9ef34', '0x151061f0d8', '0x1589eb8b6c', '0x149a7fedbe', '0x143ad91899', '0x16171e1752', '0x18c82e668d', '0x17f70c08ca', '0x163e1fe987', '0x1609b13173', '0x16e74041c4', '0x19674a101e', '0x17467f2976', '0x153bdc40ae', '0x1424a8bc8a', '0x127f560928', '0x149a695fe6', '0x13e75825a5', '0x133ee60769', '0x13f135947a', '0x166f124018', '0x16c68af8ad', '0x13edb99998', '0x121f57c283', '0x120f3c36e3', '0x1093a81a87', '0x12a6079c08', '0x120dae53d8', '0x109951472a', '0x117e342961', '0x1195ad3cd0', '0x104eba9716', '0xee5e7e1a0', '0x10c2676582', '0x116b3157f9', '0xf69b5708d', '0x1156a8b10c', '0x1381085219', '0x15f0782a44', '0x16b7a48e34', '0x195bdab72d', '0x16b7cd204f', '0x15cd13e8a8', '0x165e285940', '0x13e9795b0e', '0x142b50be4a', '0x1203710e30', '0x14429f9d0b', '0x124ffc01a8', '0x11dbdfeebd', '0x11185dd9b5', '0xf94559598', '0x10cc45a78c', '0xfcb538473', '0x11c49e5d46', '0x120f5fc02b', '0x1006ba7e5d', '0xf5c6f62ed', '0x11478d72bd', '0x1370519fda', '0x1395d1f1ec', '0x1532cdbce6', '0x13ca02ea1d', '0x14c7e104a4', '0x1335db0097', '0x159c1a2b54', '0x184f03a39c', '0x15a5618bb5', '0x1435e9ede2', '0x12b727e97c', '0x12f4e2e842', '0x1099d886b1', '0x123496949a', '0x110409bc56', '0x13246a2ad8', '0x1178099e58', '0xfdf314916', '0x103af0a632', '0xec9572d10', '0x10a25ddf7e', '0xfeb373320', '0x10ca2ccce4', '0x12cc6e76fc', '0x1161d0ab39', '0x10ba1853f3', '0xedb7e10c0', '0x10b6745302', '0x12c91eb8e7', '0x11301e853a', '0x1076febc6a', '0x1234226dd6', '0x1386321063', '0x119fc8fe09', '0x10fc963280', '0x131b7885e3', '0x1405758e9a', '0x1196a96e4f', '0x109a38bbbc', '0xf1c7eb95e', '0xee4a30d11', '0x10c0eaa686', '0x12d8ed0430', '0x13b115ddf3', '0x13fef4823e', '0x122c8f878c', '0x10ec8d109a', '0x130988cc60', '0x156a8f1ab4', '0x154dee05b6', '0x14cf361d44', '0x12e37e17ac', '0x1315ae079a', '0x113b4a571c', '0x1362575035', '0x13274e6e0f', '0x137d1f54e9', '0x11891fac38', '0x1371ae2ac7', '0x1533b05725', '0x12abd0e2d5', '0x122419b563', '0xff9675d76', '0x113c5a71cf', '0x10a01ceddd', '0x103ed18e7d', '0x122f325500', '0x1474a8578b', '0x14202dfa1d', '0x15c33c44da', '0x13ba90707a', '0x116d70ece1', '0x123df773dc', '0x106b886319', '0xff2d97897', '0xeff63d505', '0xf97b14394', '0x11287b0437', '0xf036ba3b1', '0x10e3d62699', '0x12b897e259', '0x150ee09a51', '0x134308a4c7', '0x15ab111838', '0x14af4dbb50', '0x12f00f229a', '0x11e74a36ee', '0x12ceb0db8e', '0x115c8b9793', '0x1074beef33', '0xf9d68e359', '0xebc29151b', '0x1093a1c2b4', '0x12a5e1f796', '0x14fa9b8e0f', '0x14bbe7e41e', '0x131810d6d9', '0x143407b41a', '0x13a06b70b1', '0x1260caf0d3', '0x14ac3f92a3', '0x149863603a', '0x172a9e3bf0', '0x1844c02407', '0x16e751de57', '0x169f781d80', '0x160a3b8e6f', '0x189cccda9f', '0x17c77c68c8', '0x152b9eb848', '0x15313751a6', '0x12bfa1ff25', '0x1419b34084', '0x132210de59', '0x1585e06b13', '0x18360df942', '0x15482d3547', '0x14016eeb60', '0x131e9a2ac2', '0x12140e7bce', '0x11d9fd0207', '0x10f22ba44d', '0x131022ac12', '0x12f773fb6b', '0x13cdd7e998', '0x12803bf0db', '0x1072c4ce41', '0x127e9b5a20', '0x14cce6c66b', '0x12d6b2018c', '0x14d0e9f790', '0x1426e769a5', '0x12b9db06f0', '0x118eb59880', '0x12c01d0a71', '0x10e8dcc062', '0x12fd60fb92', '0x1557161ac2', '0x1801881e05', '0x1b0108d845', '0x1900c955f0', '0x169528a9c0', '0x1534d98691', '0x155e75bb64', '0x1809d90346', '0x1b0a6c55f3', '0x189a9af4ab', '0x1877d4e3f8', '0x157c22bf99', '0x182af091be', '0x1b2fa4a6aa', '0x1bf933f26e', '0x18be5a7ae9', '0x16a0b97e64', '0x1596e19fa8', '0x184967a88b', '0x1989337397', '0x177622be59', '0x18698a48c4', '0x158fc6377b', '0x17f671b574', '0x18c26c519a', '0x19d89c30cf', '0x19c24c0094', '0x16cf940943', '0x154d3dc224', '0x17eec56cea', '0x1a3e9ca750', '0x1b6ef42248', '0x18b2205637', '0x19e55b622a', '0x18cf7a24b5', '0x1be88ab481', '0x1f64c3d114', '0x1bfe53f0fd', '0x1e65f3ae9a', '0x21d3407be0', '0x1e13830584', '0x1ba225e5d6', '0x1b2d25aaca', '0x1c6b0aee66', '0x1f700f3cd9', '0x1fe5ba4f42', '0x23e11523f8', '0x244f511fff', '0x245cbee295', '0x2065005abe', '0x20b98de17f', '0x1cdf187daa', '0x1fbe482fc7', '0x1dee033931', '0x1d6d1d0ec0', '0x1baa4f4070', '0x1ab6587ff3', '0x193d2c0db1', '0x17e32d9aa0', '0x1a6d7e4a82', '0x1a80b10e33', '0x1db559c0f9', '0x1c031d9adb', '0x1c98e72922', '0x1ea39fd971', '0x1c174b8660', '0x195803b891', '0x19fa2d48a0', '0x192ddd6230', '0x160821b5ea', '0x18c89e1db6', '0x1be1566c5f', '0x1e340262a8', '0x1d7c0bc226', '0x212b510559', '0x2409933ac2', '0x20f6ebea2d', '0x201d0a6817', '0x20665a99cb', '0x1f843f757a', '0x1d4c371f54', '0x20f4c7e4b4', '0x243f7c2fe3', '0x2232eae8f9', '0x226861c143', '0x255848d941', '0x2222898bbf', '0x1f40cc2153', '0x23282dcb23', '0x21b3511f12', '0x1faba320d2', '0x1faa3be9f8', '0x1c2ab8d475', '0x1faf9060fd', '0x202778a292', '0x1dec8dd97a', '0x1ca2459990', '0x1980750d30', '0x1a0fc068a3', '0x1a067e66af', '0x1764ca2063', '0x16c3e7ac37', '0x18b2e7b6b4', '0x17ed3b30c6', '0x18585d6370', '0x1b633c9d3f', '0x1ecf87f39e', '0x1c8806ef71', '0x1ac9100ca6', '0x1ba7902ec6', '0x192aaeefd7', '0x18b5abce5b', '0x17d4c37649', '0x16b258bd72', '0x16cce04b6c', '0x19a64cfae4', '0x1cda5267a1', '0x1d75721510', '0x1b3dc3c7d5', '0x1e37dbffd7', '0x1c5e5b4dbe', '0x198aef2ed6', '0x1cbbdb2773', '0x1cc512f63b', '0x1dba60f1f1', '0x1a7a1a0e41', '0x1dc79d7938', '0x208bbc2bdd', '0x1cf8d69f21', '0x209746cb49', '0x24a973d3fa', '0x2060a29641', '0x1da00d81a2', '0x1afc9c8c2e', '0x1e59b2fd11', '0x1c235ce1f5', '0x1c05c035a9', '0x1acdcc4a1b', '0x18eef9429b', '0x1bda31b0bf', '0x19beb63d42', '0x1b1a2e86ba', '0x186f195d82', '0x166fa0d373', '0x15e2b87f83', '0x14a492045f', '0x17387692df', '0x18f0612e15', '0x198298e738', '0x1c663f3cb6', '0x1a921c1821', '0x18a57ee8dc', '0x1bb978faa4', '0x1a730fc02b', '0x1af04ca59c', '0x17bdf61b5b', '0x15e1c5b0c2', '0x189c28829a', '0x16128926d2', '0x14588a77fc', '0x16e38bd7e2', '0x16ed32ea5f', '0x163070ac9c', '0x1730bcf9d1', '0x14ddd7a6d9', '0x17012fbc5d', '0x161526a5b8', '0x160342968a', '0x164c4816bf', '0x141fbefebe', '0x12ef2ac850', '0x154cca60e5', '0x1473026e40', '0x156269e3d7'], 'gasUsedRatio': [0.9108800834880779, 0.3815847, 0.16622236666666668, 0.9998913727411849, 0.1895163165324393, 0.6176127981283326, 0.18436663333333334, 0.8893841169235092, 0.7442482946317417, 0.35821589882670984, 0.08077718411741035, 0.5832504, 0.043490068051452245, 0.9994425328130306, 0.999902661626739, 0.9997611664498844, 0.16254967908276594, 0.03944386666666667, 0.9611643102823241, 0.6573946448397034, 0.19417816141908653, 0.28111807222471097, 0.524833646472008, 0.2105626801104566, 0.2939865557433668, 0.5774254864292557, 0.7000484045809376, 0.0773633500712084, 0.9835477687924516, 0.5038894832208931, 0.2565354270164013, 0.11904590768983893, 0.878290000370724, 0.26086323654464144, 0.999717799058875, 0.7004730821191916, 0.9714556936634551, 0.09068701173391634, 0.899680180421858, 0.12030654163881085, 0.27892940004412914, 0.20500903691364217, 0.9990276533254641, 0.39767401229081684, 0.2350163020755919, 0.37648924470745343, 0.5227777297677489, 0.0546144203447523, 0.7058121101089188, 0.8217712839577163, 0.09674113543750945, 0.9996487563432062, 0.27406260920296227, 0.9797365289079373, 0.4226535423682452, 0.9996881202742482, 0.21380823370143703, 0.28069760833372337, 0.0814599913631322, 0.26982062583364896, 0.9998228872609449, 0.17735502936048414, 0.9997134398034718, 0.9997794504619545, 0.7036289638437622, 0.06630310218872973, 0.2699559, 0.9993974666666666, 0.13844576666666666, 0.9766021186355143, 0.2375086326849098, 0.12336828838962458, 0.14163953578178465, 0.9149577333333333, 0.19540296666666668, 0.04987523333333333, 0.7461807333333333, 0.5866560666666667, 0.03800918263350829, 0.9493837603925369, 0.8561067157777823, 0.20864589642720321, 0.21689100616042736, 0.9505386541789772, 0.999751756878962, 0.9999888999578198, 0.22629243447351438, 0.27185811823151174, 0.6551152038298754, 0.12352970703400162, 0.9996011322615133, 0.9998630323698162, 0.9783471961273327, 0.13627461098191435, 0.7245986139505559, 0.2675657581029813, 0.5186097333333334, 0.639324533740531, 0.1999803416255425, 0.3742005352164896, 0.24025212314570063, 0.7312254333333333, 0.4079067333333333, 0.2706405528334914, 0.999840766512741, 0.9999204, 0.6488314333333334, 0.1002354, 0.41886657678776673, 0.13081786666666667, 0.42256133113985805, 0.08364507806873953, 0.9995224333333333, 0.3403966973749867, 0.9998605332031644, 0.9989290865868662, 0.37583787804248364, 0.9736983906232239, 0.5687872080840548, 0.01776264563916002, 0.7535102349456657, 0.4397339461112249, 0.05867245433291132, 0.3868232, 0.23228385852117928, 0.5188876031939414, 0.5121038644573783, 0.0825266439531954, 0.6538280271360174, 0.999396998271395, 0.9995759180015601, 0, 0.9995048479357648, 0.2094619914534262, 0.21948393333333333, 0.3910187666666667, 0.18148615456326436, 0.3654911631164809, 0.3877613147812598, 0.988564566598567, 0.9997995038345517, 0, 0.9995056146998206, 0.34436540858855264, 0.297204, 0.9994025333333333, 0.9998657666666667, 0.19810136666666667, 0.5240588768265545, 0.6234789725196231, 0.08314103425628437, 0.55125834739086, 0.463260387296264, 0.5098711378743686, 0.198152230356003, 0.661081745443966, 0.078107, 0.44853479422656223, 0.4104131872356966, 0.15305721411330495, 0.9999567822624252, 0.5614230648364212, 0.13949243365540062, 0.7360364448304337, 0.5273529864068841, 0.06825094777381804, 0.997569853924715, 0.5562485541016708, 0.5202918299438803, 0.9999121807443069, 0.21303870385938445, 0.17037971128837062, 0.89032103030552, 0.44018864723912543, 0.4152137431056055, 0.8255123, 0.49336750670362944, 0, 0.968910678585995, 0.28841256974871926, 0.5366443862007921, 0.4118131668039726, 0, 0.9644735417468492, 0.9787802108903386, 0.35130264574320846, 0.8263825462520309, 0.816132807372799, 0, 0.4428972215421277, 0.8511863282450653, 0.17856743333333333, 0.5193649401359572, 0.6595877, 0.4780390666666667, 0.9995921, 0.4886671, 0.7409163381375247, 0.08667128813252055, 0.9993373522839458, 0.408500214535662, 0.0697626386557993, 0.13044572717183325, 0.3850946770882784, 0.29516137228288125, 0.9997544537815687, 0.9997795509793449, 0.4143010738530426, 0.6561111181550465, 0.8816913517568828, 0.13927106665507719, 0.7183346742855463, 0.18911145998578344, 0.18735139749562624, 0.5620062247627844, 0.42397589714800127, 0.4139811924296054, 0.9998196324795937, 0.763201113264833, 0.0813285, 0.23447993632448752, 0.6435319339631383, 0.349632642599298, 0.2187750343086715, 0.9996374786424371, 0.8847823735500584, 0.022439133333333333, 0.2034831346142842, 0.822934901405908, 0.19630961289262835, 0.25454424181591806, 0.6845562, 0.22298273333333332, 0.7354569333333333, 0.859807702221219, 0.5147479804314484, 0.1053872423369015, 0.1331360814337067, 0.9993818952463089, 0.19138382427984868, 0.3778304678992449, 0.27719865335488275, 0.9387909300820928, 0, 0.9999475333333333, 0.9994851972951587, 0.9999384999426, 0.28365068296588697, 0.9993094179599424, 0.05985919957419673, 0.9998603270837775, 0.9994745186944587, 0.9999021662948986, 0.1808976673166038, 0.5012817394002331, 0.004990697038290539, 0.42627874224282075, 0.05966505305527511, 0.9306658487172458, 0.7223858863026157, 0.11902448689130779, 0.37313139053893984, 0.17605238063143172, 0.9998875329097073, 0.5558469115324782, 0.5299934909694075, 0.10552543333333333, 0.03608940797355284, 0.9994594114016835, 0.17896019429124654, 0.45705880174505664, 0.7319698333333333, 0.08616433947749978, 0.3732135149992807, 0.9378900249734099, 0.03851441865964228, 0.9996994058987313, 0.5153327934429147, 0.2862352196918182, 0.6395671090361107, 0.5513824351551013, 0.7091410329628549, 0.24558543509558245, 0.5591615499433981, 0.9993525641316525, 0.9990061934740038, 0.11496808861857923, 0.2781425620073005, 0.9995952921484179, 0.9996566017351626, 0.9996401483483938, 0.18005923333333335, 0.37798857250772044, 0.9552436248940499, 0.044149152853637574, 0.35771905865488635, 0.14286739190029488, 0.9996776704904679, 0.2754346185641365, 0.6312198551229229, 0.06306479478903006, 0.9999527998222126, 0.8888374310390665, 0.029054036553971804, 0.5858469997428143, 0.7479252799790772, 0.08048236235713287, 0.08632943644094718, 0.6081795333333333, 0.5447224881763709, 0.9999970999972934, 0.5815856577518193, 0.9569179, 0.1945536149383206, 0.21840493717794138, 0.7602097666666666, 0.3343258, 0.15564987456415477, 0.10222276548200664, 0.9588662931726999, 0.6032401461562777, 0.43253435828281056, 0.5825754329768557, 0.3790854436607902, 0.1708585967783015, 0.22465215932247384, 0.17625951952714947, 0.9994936778194481, 0.9995883972879065, 0.7413703005491848, 0.0831467, 0.66312452556745, 0.45945124413620264, 0.07427607454674383, 0.9277809666666667, 0.221925143235703, 0.5304587575252732, 0.07145454443536742, 0.3039540657555561, 0.9996618024295572, 0.9487466175573738, 0.3978517126791075, 0.042508474802923225, 0.32321961457392956, 0.9997577574774577, 0.9999404590768984, 0.1468059253776145, 0.221666588675502, 0.3275925127183361, 0.9999216849591576, 0.057374062046107066, 0.9996245697902417, 0.9997000127210433, 0.40346721256398116, 0.13037273020082574, 0.9996254018780922, 0.14209656806417498, 0.11110464178729333, 0.728585785824358, 0.20955626666666666, 0.43472864585601173, 0.999903311257128, 0.999773336631876, 0.8003802092152641, 0.9995486917733644, 0.6354364004031344, 0.08203066870154839, 0.29675498444377474, 0.4596634927998753, 0.39985795551800063, 0.501517240457071, 0.08080427742046885, 0.9876916575177154, 0.9993710982181117, 0.9999698, 0.5685110666666666, 0.1603489140479011, 0.36318257230373413, 0.08559626666666667, 0.8096030106732558, 0.7039162581302876, 0.13441428548358403, 0.2847888020233116, 0.9596871844932837, 0.9580795795695402, 0.6463270099838317, 0.3819921744768415, 0.9935313938926197, 0.44788981502183856, 0.5238040019034544, 0.08170181485668315, 0.6078200483051451, 0.5836786443977927, 0.4493951282188975, 0.5346304141272985, 0, 0.4820673053903804, 0.4216701268921184, 0.8722795666666666, 0.4433422, 0.3908598079357826, 0.5740407691047178, 0.9997044882913726, 0.6583105, 0.08388976666666667, 0.1912235, 0.1896454112559086, 0.45738223333333333, 0.1161045761185798, 0.999499332866044, 0.37243306666666665, 0.42236938962436515, 0.07692340769262744, 0.7467468201251116, 0.3919519113752983, 0.9999926666666666, 0.7290811333333334, 0.9996768155895768, 0.14916637752749828, 0.33199816666666665, 0.3017784666666667, 0.6231513333333333, 0.9471858936918568, 0.04536157567080396, 0.12487362230756416, 0.27532197047500434, 0.18383346265986641, 0.8528070162865461, 0.5348275333333333, 0.3571628, 0.05001193665614473, 0.4137841008170683, 0.2773685319033705, 0.9957117249989229, 0.3299780838906119, 0.9994966652405515, 0.5972193666666666, 0.2675411539368193, 0.9997443997614398, 0.9647713329932454, 0.265782740358587, 0.6731918414559945, 0.027706243627137132, 0.4781414606749086, 0.05866793482258075, 0.6916008631524033, 0.9993169984179188, 0.2667766892006194, 0.5026281738582652, 0.26973657469654094, 0.2795874128741739, 0.522455972958272, 0.3537780769241144, 0.9994596333333333, 0.7476246221101572, 0.10326397816965237, 0.45553058618222664, 0.7615167724206177, 0.48432221635319367, 0.1768200266112155, 0.3024070008727044, 0.382389096158348, 0.1179704342495637, 0.2761775699001222, 0.9997755946433016, 0.9999183532950685, 0.9999249329780161, 0.42648945233361146, 0.8394605898154843, 0.09271848944577797, 0.9999685774415479, 0.7810180678627439, 0.0951246036380219, 0.7665235743045548, 0.09845587413232171, 0.17323583333333334, 0.8021481643491536, 0.645853902796976, 0.9928594666666667, 0.14385514121206025, 0.999656228935965, 0.3689763708453407, 0.1478145259226068, 0.99986293204863, 0.08946931329863865, 0.6051196196930506, 0.9951428797166597, 0.5099856198729384, 0.26505324213451614, 0.5118062195358416, 0.9998281978036438, 0.5965928283442876, 0.2530685807128864, 0.41027945119382725, 0.999744434213352, 0.971411029613335, 0.3177385194721144, 0.7242124618771403, 0.00842903564431904, 0.5284889722962278, 0.03766261576993597, 0.03374760836849843, 0.9997664712897655, 0.9997742324754167, 0.04113295597007079, 0.5772902026643845, 0.9378698003727791, 0.8165748878101938, 0.05872281087817788, 0.34425131686706856, 0.12922654692583435, 0.9555078866308773, 0.9548505626466793, 0.46564520508553203, 0.3853664758933474, 0.9994212357806742, 0.16889523338303436, 0.08565555195964385, 0.3718960629137864, 0.2998883284679378, 0.11455195538943976, 0.999574168350789, 0.17912229844091562, 0.6121740961881774, 0.10696956425806192, 0.2904901272184576, 0.9995111884134104, 0.37999787666065055, 0.16096296973502716, 0.8574223416022649, 0.9998982335717037, 0.8419490185586879, 0.016232991986154254, 0.14036176666666667, 0.9997413525692161, 0.9999209877206934, 0.21262559670023623, 0.5281164709283945, 0.8569591528088459, 0.7611103243730976, 0.6803167982892799, 0.2061976475632511, 0.23207993967805052, 0.15474897521520198, 0.2565135287032571, 0.39523598617845457, 0.9994640666666667, 0.49380329892139674, 0.48954873176097957, 0.07442378009758606, 0.2298634367405298, 0.13883827269934237, 0.9993135313883389, 0.6499919333333334, 0.9998856117001748, 0.21178033333333332, 0.07941735104329378, 0.6467511346649416, 0.4443549789049284, 0.4995034969963004, 0.08891388797881801, 0.6322821136345951, 0.47790841195231376, 0.16598062683086734, 0.49637843421747646, 0.019089354847021667, 0.9993074056710896, 0.9475520356242604, 0.274625343295456, 0.4796160573026927, 0.48134441489708124, 0.9996159905934545, 0.9996054954497213, 0.32583892191146085, 0.21429786644509133, 0.6352975850532547, 0.39448245197611675, 0.05770525070038312, 0.9998068561233422, 0.9995889978755214, 0.8527641059709303, 0, 0.09393409028287641, 0.9967484627702634, 0.6171908083918345, 0.11008029797178422, 0.21727834572918217, 0.8703132506852648, 0.3858001862713487, 0.08654288896843376, 0.9996090970161072, 0.645935186348058, 0.575441459294446, 0.9831878717057506, 0.11582240417358645, 0.2872913455097174, 0.16251050636031678, 0.6913449574730258, 0.47985486450007686, 0.9998938951755071, 0.677672703141519, 0.5828058333333334, 0.3010341068613166, 0.4503579821814169, 0.9998464164924977, 0.9999759333333333, 0.13786296666666667, 0, 0.42532343333333333, 0.5050190333333333, 0.356599052307912, 0.8257418698460641, 0.12878678478923866, 0.9555560661824566, 0.9997647364769936, 0.5287237595595127, 0.9971945189785543, 0.0534085713995237, 0.09312503333333333, 0.9401924666666667, 0.031627150579207265, 0.47968024770156453, 0.2767694, 0.3786808485152418, 0.8685941202957587, 0.04345337353989342, 0.17145248002682573, 0.8490655652208797, 0.9582631835839557, 0.6668620816454536, 0.1131235805945486, 0.9996143464586905, 0.5995627718078571, 0.06340020773276345, 0.9995240667759938, 0.6803701537520611, 0.3455453272599517, 0.29132675085158816, 0.9256214333333334, 0.9994781904529774, 0.3704244933058993, 0.41009491110650503, 0.051472692835774936, 0.3499277886614826, 0.5189292688620877, 0.14207006802121863, 0.9783845720896209, 0.15955113333333334, 0.1467708, 0.6865943333333333, 0.06000549536622512, 0.9993527698970236, 0.6673008977174889, 0.9996551993448788, 0.3906380335853933, 0.10469867772632131, 0.5901549447477211, 0.326315673332892, 0.42746103333333335, 0.8678574628124364, 0.9873912548985045, 0.3681410666666667, 0.21252226666666665, 0.4631673, 0.6570867785726094, 0.9366439742010426, 0.16491259106359193, 0.14914884507784415, 0.2945486333333333, 0.17318137828255958, 0.9553641250065167, 0.3641992137848605, 0.3677649531612459, 0.6447650833320293, 0.9997734326989449, 0.5609231787356025, 0, 0.13746991926385974, 0.486112171518389, 0.17159052888584708, 0.9999208117163124, 0.3723520660424625, 0.17772463372509478, 0.7154569666666667, 0.5209664, 0.2094879350314418, 0.15427878246948973, 0.9997481666666667, 0.6573640493275016, 0.03939286416370516, 0.9997329852033618, 0.9995865258182564, 0.9994454908015336, 0.6418495185736359, 0.9650984158424414, 0.08344531709220496, 0.33856152519648347, 0.6039798039659168, 0.06083390723517495, 0.5516658701109934, 0.07246556697739735, 0.9989171508154551, 0.11544222693565322, 0.4009299914045298, 0.3289470777852555, 0.14533840071128454, 0.8128501498520498, 0.2609957297088503, 0.9998778800497141, 0.5657390049266995, 0.049553607925913186, 0.3339706, 0.9995555333333334, 0.9998392666666667, 0.5301437520405342, 0.8294761741777625, 0.2340664510181068, 0.7004477077064841, 0.1977198157343812, 0.999605332215108, 0.9995656, 0.061863009228511644, 0.23474680808583742, 0.20408638764103954, 0.5515369812535977, 0.002942779215184136, 0.8865950786860562, 0.23861653370168578, 0.9998824, 0.15033396666666668, 0.1343098202060979, 0.5903206176325765, 0.1441830626648841, 0.9998505748393278, 0.3279612058930391, 0.7188442508407941, 0.9785812597735367, 0.19860026208060927, 0.34923410032894664, 0.05292670113694967, 0.9995008725536737, 0.9961283386453744, 0.15981236668470614, 0.3317098708888012, 0.9224341138242989, 0.7901728050724829, 0.11073116500538169, 0.3553136490107195, 0.9993659975907908, 0.6913439911812216, 0.013957799594967811, 0.2757413424546393, 0.1407466355891562, 0.4422430711444781, 0.9996852979124762, 0.9999017619444821, 0.6792024, 0.5617880193342132, 0.13555495985129587, 0.22487439973411344, 0.9994593989908781, 0.9998627657345692, 0.4791125081816896, 0.40706267640531746, 0.13078706666666667, 0.5415157333333334, 0.11160826666666666, 0.999673, 0.452413815424095, 0.5700066576628684, 0.09912896192264732, 0.9353246771168865, 0.8616210433621588, 0.022542363870030967, 0.3864261399997731, 0.02223543471799688, 0.8158890827344712, 0.35836102957554, 0.4085603, 0.9774221193662278, 0.9996231309932408, 0.435471825860718, 0.8253425348174828, 0.1261718131686709, 0.03341996817047283, 0.6869579503846751, 0.10048206907957931, 0.3851601520023463, 0.261480763558778, 0.6586735897269324, 0.9016222211371359, 0, 0.9999879999195994, 0.9336489302949327, 0.999340528299366, 0.1587987, 0.9997191257262718, 0.3184531417629307, 0.16215760365231668, 0.2815462016044497, 0.7019518333333333, 0.19248653333333332, 0.2913852333333333, 0.29553846666666667, 0.2746048, 0.9999484, 0.9998084537116173, 0.9999912666582245, 0.4533000240498719, 0.18361153333333333, 0.7323735372408843, 0.38583947297815724, 0.2455412, 0.9994529, 0.48498924133916566, 0.9993789135821576, 0.6902887306595473, 0.27502346999564947, 0.4509829917258554, 0.3969266194789876, 0.9668843454257299, 0.36457958994274303, 0.0611548147117299, 0.5041302286989988, 0.03875880344539866, 0.7884115666666667, 0.30750194231333566, 0.9996345532903262, 0.9995959050106177, 0.016055897172871297, 0.26010813194793686, 0.322837825468433, 0.28217176666666666, 0.4498119666666667, 0.29709546666666664, 0.9997175333333334, 0.4797691, 0.6766181843236587, 0.2367892951567657, 0.056216727622842855, 0.9976175136708658, 0.998706347242931, 0.12274897867759643, 0.919863634236198, 0.37238677136447484, 0.21695663704034696, 0.2503919575386319, 0.7717898382599742, 0.10730000578924666, 0.9920613815141646, 0.9950920527891445, 0.9996774888378943, 0.9995517570632162, 0.20360449348496332, 0.11278031659521803, 0.25623632534354174, 0.5306585617796628, 0.9996931033160217, 0.9995739027141557, 0.1395378474505306, 0.4779165603612169, 0.012313921246119325, 0.9994814824720348, 0.999570694900474, 0.6158448759599726, 0.038150508093106265, 0.1579737089189346, 0.3164295548033517, 0.999756361160846, 0.7057424738477095, 0.17505036666666668, 0.6621038666666667, 0.032915466666666664, 0.9454311468482306, 0.6330056574719469, 0.6755559442317569, 0.486510774820113, 0.042199186277214085, 0.2353664904312032, 0.9940400906653473, 0.8863964990292709, 0.6811932127727102, 0.10083613043767087, 0.6943843568929958, 0.33233375700602963, 0.9994521299001745, 0.9995271160262368, 0.06677243990847459, 0.8436203288290397, 0.9509408541548311, 0.05666373980302328, 0.1751151024062651, 0.43384311418083593, 0.6827735171602223, 0.9250239367214715, 0.5584827929741042, 0.9993332311337375, 0.5480058022102158, 0.5057786997063158, 0.0635312, 0.5407827256683848, 0.028999261365952655, 0.8978767666666667, 0.27147266666666664, 0.43270743881400187, 0.2606280967534024, 0.36221225040102534, 0.2793772641501352, 0.28580112782346245, 0.9253777219035454, 0.5113507161346679, 0.9838297554556068, 0.27161606522874376, 0.5835503621383807, 0.7856049, 0.1673326670160078, 0.10881566822795702, 0.5999765666666667, 0.37710876666666665, 0, 0.9996237666666666, 0.9997747666666666, 0.8332737, 0.404830216706614, 0.9998753665503421, 0.8458867979525454, 0.15892486332641154, 0.3967257045708018, 0.5356710177345503, 0.3909590666666667, 0.21838615407945858, 0.9994872661881151, 0.8995382720250197, 0.2738807779107854, 0.5244270486101252, 0.8414487347310822, 0.15618292180809074, 0.16230507801579386, 0.9996409480333255, 0.3342868378148044, 0.2590538666666667, 0.49930770730952106, 0.05811192090445951, 0.9997236, 0.5591290228241211, 0.22256860773070056, 0.32754132826485577, 0.0624639, 0.5877967501932304, 0.49444952815289295, 0.09552430197022242, 0.3925428361590186, 0.8397448396844807, 0.37494739568428775, 0.5699621495985068, 0.999888532913474, 0.9999370666666667, 0.2040879, 0.25522302528419, 0.6297934878072553, 0.14015866666666665, 0.4273518666666667, 0.3577810268273031, 0.30958653333333336, 0.5182636333333334, 0.999873209522432, 0.9995331328975907, 0.5840059268597769, 0.19890077128143974, 0.9371208811661036, 0.25516477495928547, 0.10154953497235242, 0.9997277683315515, 0.5050126043320785, 0.6332258608066056, 0.0625569, 0.9989676333333334, 0.8715401923311447, 0.06076535135019233, 0.9996404819163905, 0.9996482326649754, 0.03254577612068982, 0.15997665571938716, 0.1437570909029273, 0.9985590278576392, 0.20843846666666666, 0.4835565666666667, 0.32605872968286864, 0.2208752966373893, 0.9682585070820559, 0.1973534044439926, 0.7108845531429469, 0.10618923774248153, 0.17292549079483477, 0.40186862710078297, 0.27286011810711375, 0.9994864309024396, 0.7960176, 0.5916096333333334, 0.9530364734496569, 0.24243665960754895, 0.21031693333333334, 0.9995498, 0.31604096666666665, 0.5739841711235645, 0.025346566666666667, 0.1866126, 0.9986893333333333, 0.08755163333333334, 0.187112950870142, 0.9999522, 0.5065893333333333, 0.37135636282162865, 0.680477601779095, 0.09917666666666666, 0.9098541274445504, 0.3396821, 0.48734096666666665, 0.5518318304491002, 0.11001536934767805, 0.263514, 0.9997751195957147, 0.3402425, 0.6829254433621098], 'oldestBlock': '0xd10718'}}), + (('0x400', '0xd10716', []), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0x16f3d613ff', '0x19d1f5e210', '0x1d0c248b6b', '0x1a07047a95', '0x1c04d70a06', '0x1bd90ebbe0', '0x18bff65e5a', '0x16d6b27b96', '0x19b0b18052', '0x18a7d6ab7b', '0x1826502d79', '0x1680e48233', '0x14c834fdb3', '0x17267bc3cf', '0x18ecd2d93d', '0x186771b36c', '0x1717c43037', '0x14c98eb22d', '0x17620a0408', '0x16d9459fbb', '0x171d28b82d', '0x17f55fe19f', '0x1af2fc1714', '0x1b296bc6d6', '0x185ad3cab0', '0x1590159f67', '0x1725321cf2', '0x14b6b30b90', '0x13b0e9d9af', '0x122418d408', '0x11dfc92dbd', '0xfeef5ead1', '0x11ec45a01c', '0x11663c7c9b', '0x138f0bdfa1', '0x160074f995', '0x16720d37e3', '0x166b2b5eb0', '0x16af0ea7a6', '0x15278b0b1a', '0x17cc078167', '0x15de6e116a', '0x156f85459d', '0x13b34b9e90', '0x1629090472', '0x173a25d6d7', '0x15d344147c', '0x140da9ba30', '0x11cd1703b4', '0x13d0ab9b94', '0x1334b4b487', '0x13da127b91', '0x1200da8991', '0x14402b7c37', '0x15b550ca1a', '0x158227ac85', '0x12d1e2b6f5', '0x132ba40121', '0x155ce93b0e', '0x142f683d18', '0x120b0ae994', '0x144c5d7daa', '0x15361d5e43', '0x16d50e8490', '0x1797a59250', '0x157d320085', '0x12d827dc94', '0x12e182b397', '0x11d3cb7661', '0x10703ac63e', '0x105e114b1c', '0x110f3911c0', '0x101b29ef06', '0xe7eb0dc7c', '0x1005f7b368', '0xed166a963', '0xda9a06428', '0xf5eb2248c', '0x114a85f9f0', '0x132879a341', '0x1548a2a279', '0x15e417718e', '0x142f8c6ed2', '0x1561559f5b', '0x12ea23bf81', '0x11946e9483', '0x13771f17b6', '0x15dfbca960', '0x147b3d5298', '0x134812d5fc', '0x15b07ce81e', '0x17c706dbb6', '0x154336a98d', '0x14f70dea2d', '0x12db116496', '0x136fb74503', '0x11390e06e4', '0x135fdaa3d2', '0x14d7a13da6', '0x12a95be87e', '0x14a193e5b1', '0x156ec6d9ae', '0x13566c8d13', '0x13238ecd21', '0x11acfe64ef', '0x13e2369c03', '0x165e7bd07d', '0x180f8d1b8c', '0x167382fed0', '0x175fe0ae46', '0x152ecebfc4', '0x17d40a9273', '0x1acd8440f0', '0x19ed4dd151', '0x1b3c4d21f3', '0x196672d386', '0x1c92ecdd9f', '0x1aa4d1705d', '0x18cbe0b5c3', '0x179fcd5ae6', '0x1a92fd2f34', '0x17409d894e', '0x198088cdc8', '0x1cb090b64e', '0x202d19c2a4', '0x1e73d02f9d', '0x1d59dee89e', '0x1a3286f11c', '0x1d4d11018a', '0x1c043c12fd', '0x1b8a171369', '0x1866c94d2c', '0x1b4d5808e2', '0x18e6529bdd', '0x1614f694b2', '0x18d77f971c', '0x1bf2693090', '0x1c1f30fece', '0x1a13e8419d', '0x180cc9e35f', '0x15b6db92bc', '0x15e13b2925', '0x1562757997', '0x15166fe37f', '0x13a7745902', '0x15454e6845', '0x1589e5ee74', '0x13d32b9555', '0x11887a7b28', '0x1299f94483', '0x11e265b8f6', '0x117aaa1708', '0x13a917b31a', '0x161dd06f46', '0x138f45d716', '0x160054c828', '0x14732e3479', '0x17017bfa87', '0x14c62e8a18', '0x1238ea6912', '0x147f7677a8', '0x170e822bd6', '0x159b1c318f', '0x184e08bdc4', '0x162dfaa09d', '0x18b93b5a87', '0x16871c6b49', '0x146f9198f2', '0x16c5f12baf', '0x13f69f4dc7', '0x1627d6099a', '0x1726e4e4f6', '0x193b1d0495', '0x17380af02e', '0x15e68a41ae', '0x18a3587945', '0x15e8e94cf7', '0x157db15739', '0x135f4bda5f', '0x12a4963c10', '0x11aa8076c5', '0x12a433dffa', '0x114e64ddba', '0xf42989888', '0x10f8bfea74', '0x1139ae4b0c', '0xf749f771c', '0x110dcb37e1', '0x132f1a3faf', '0x11a1a445cf', '0x12c7a2a01f', '0x13e7a1a127', '0x151858dabe', '0x128224b053', '0x10c066a1fd', '0x12385c46d8', '0x141ff9b2bd', '0x16a326f458', '0x152207938f', '0x159290eeeb', '0x1844cadcd1', '0x1a9bc545e5', '0x1974a947ca', '0x1c8c8bd422', '0x1adb520a5f', '0x182669042e', '0x175d92ec10', '0x15933eb284', '0x1845676613', '0x1646cb4eef', '0x16f6e37b82', '0x19d582fa7d', '0x1d0feb1998', '0x1a2230835f', '0x1b6f3af8c1', '0x1828392e18', '0x1abf39a795', '0x1d9bf5da46', '0x1b4c8e8e86', '0x1a2fd3b850', '0x17a0721a97', '0x17cb177065', '0x1abd22f5ce', '0x1e143c4f5e', '0x1cdf524e29', '0x1b4a04ac97', '0x1eb25173b6', '0x203648376d', '0x1e8e41f9fb', '0x1d6425cf8c', '0x19b7a1159b', '0x1cee21fad8', '0x1c37e41c53', '0x1ac26c3d76', '0x193c227bcc', '0x1793428036', '0x1a84d5deb5', '0x1dd45a7e2d', '0x1b328119b0', '0x1d283ee8d6', '0x1be75d67fa', '0x19aa06e750', '0x18931d69e6', '0x1ba5638984', '0x1f196a8513', '0x1cc7e5e27d', '0x1c213555fa', '0x1b66f98b95', '0x1901ef72d8', '0x177e7c8c6f', '0x1a6e1fdae3', '0x17205bdf87', '0x1a041e91ed', '0x1926adadf8', '0x1647feb983', '0x1711c671ba', '0x1676e53e3a', '0x194585f38d', '0x1a627da614', '0x1d6f9eb76d', '0x1ded90dd05', '0x1a2fdec165', '0x1d74d2a2ac', '0x1d67b12832', '0x1be02e52fe', '0x195ac30e2b', '0x1c5b3dcc52', '0x1e6053dce4', '0x1b7d09c894', '0x1eeba9ffd0', '0x1e4cecb93f', '0x1b3229c28e', '0x1caa6608d9', '0x1fd0018b1c', '0x217cd4c4bc', '0x2581ef65d1', '0x2887bdb1fc', '0x2873323407', '0x24cf2130cf', '0x26ef981fc0', '0x27d22907a3', '0x22d7e3e6af', '0x20ddbb4185', '0x249f6aaa1b', '0x277a649b20', '0x24d76f22dc', '0x22e3244273', '0x1fa492b068', '0x1f69002065', '0x1ceb92d138', '0x207e884389', '0x1dfa5ae041', '0x1c86d9c449', '0x1a21b0f27e', '0x1c04923726', '0x19391fc80c', '0x16281cdbe8', '0x18ecc87281', '0x184b55a56a', '0x1650fe60bf', '0x16026b8ed6', '0x13e4c42b27', '0x1660b522d8', '0x16db8b3cb2', '0x149c0c0846', '0x13d3a7e8d9', '0x14e4cd35a4', '0x1295ae32a2', '0x128632f958', '0x11c9f17071', '0x1402a8f54a', '0x16821eb6ad', '0x1707a745a8', '0x1547cf2b6f', '0x12bbe7381b', '0x1510ac213e', '0x14da713025', '0x13d5ed8f13', '0x123e72c557', '0x13100f1937', '0x14e5e248e5', '0x151f4b3e3d', '0x1368f66539', '0x121221aa18', '0x11f46c64b3', '0x12fa4fc292', '0x1559896e7e', '0x1724abbb54', '0x155a5b7db1', '0x1560b506e1', '0x148065e9b5', '0x135fab8771', '0x12d6efe4aa', '0x1404ae5695', '0x15c90b5dc6', '0x16e59b5476', '0x158a333568', '0x151566ac41', '0x1767140b86', '0x164e0a347a', '0x13cd98d2ab', '0x13e3c9d92b', '0x11f951686a', '0x131a7c286a', '0x1444948135', '0x163b21bc12', '0x1901e638ae', '0x177b111a64', '0x17e9b40e80', '0x173acbb1a6', '0x173e1d77ef', '0x1682cb61e1', '0x149ea2325e', '0x16e07511f3', '0x1681c9d6ad', '0x13f3bafc6e', '0x14a6b148e7', '0x136a86806c', '0x119b6babd8', '0x13ce11d3fb', '0x16474194ea', '0x190ed08aa8', '0x1743a4e5c1', '0x1490ef2a3c', '0x1535010c00', '0x15186eba99', '0x1301322ec7', '0x15611182da', '0x180c65b6c6', '0x1561f1021d', '0x17f7fb0d48', '0x19511cff70', '0x18ce0fe5fa', '0x1801f8908f', '0x15a14b211a', '0x18550c7bef', '0x16df03336c', '0x1498cfc747', '0x13959bcc6d', '0x11ad9c5606', '0x13470f211f', '0x10fc078e77', '0x10e5e9afb4', '0x1302a4ec15', '0x138934dccc', '0x1295c1d3e1', '0x11143af2ce', '0x13368a3ff3', '0x115f9e8511', '0x1339c81c61', '0x12e5676d9b', '0x1137fa7345', '0x114f024665', '0x11a2edbfec', '0x13c1c5703c', '0x1554b18b53', '0x142e70d44a', '0x12b57c7d59', '0x1335e9f490', '0x121b3bfa4a', '0x10efe1f40b', '0x130d2cfc49', '0x15239ba765', '0x17c7d7bff0', '0x161e15fca4', '0x1857f4ebae', '0x169275576e', '0x15b20f9043', '0x13846e0cbc', '0x14a08c0ba2', '0x13d9ab0555', '0x119bdcbafd', '0xfdc19b23e', '0x1128f3e2ee', '0x12d0797904', '0x1529edd396', '0x165cc65f6a', '0x14a0370354', '0x146e9ca657', '0x16ccd67e9a', '0x1408a3bc66', '0x11bf444912', '0x13f66c2ea9', '0x1674c6f56d', '0x1588d2e90f', '0x183990f9d6', '0x172028a867', '0x14de391777', '0x170de23a3b', '0x15e5c54118', '0x18a1b16554', '0x18949c015e', '0x1682b423f7', '0x13b25d9f79', '0x16286e9794', '0x1874494aa3', '0x190956f49b', '0x1980e22e81', '0x18159655bc', '0x1595616a9e', '0x1713ca952e', '0x16a09d77a0', '0x1974749062', '0x1c52e34a42', '0x1ba40bc5a6', '0x1871a3dd6e', '0x1aeb4754a0', '0x181c131fda', '0x154483ea41', '0x1531749b56', '0x1352437a09', '0x14bd018ccd', '0x128ba63c1e', '0x12d56a602a', '0x11eefe3253', '0x1024e98dbc', '0xfdee1a0c1', '0x1166eca24e', '0xf7cab9717', '0xe096d5be3', '0xfba287ab1', '0x1075d173cf', '0x1036966e63', '0xe410f3309', '0x1008d3eb35', '0x1066a6f965', '0xe59d21a39', '0xfabe69807', '0xeada1807f', '0x10834333be', '0x12934fa295', '0x14e5b24314', '0x156d7a6165', '0x13cf1509cb', '0x14d3feffb9', '0x14587aa5db', '0x16a41aa779', '0x16f3d1979b', '0x176e64e62a', '0x16d9479917', '0x18a6ebe464', '0x16322e98db', '0x161441ab16', '0x189b3c5f8d', '0x162acba5c7', '0x18efd02a81', '0x1c0d4bfb39', '0x19d115cc49', '0x1b511756f3', '0x1dd4aea05a', '0x1a7a855732', '0x1d2f83fcef', '0x1e98bb2593', '0x1f095dfd92', '0x1c5a0140ee', '0x1ab5c1f48a', '0x1b34639bc4', '0x1c1bf0f70e', '0x19af85af38', '0x1c7e7be70e', '0x1c88d4c9f9', '0x19aa21c587', '0x1769d3a06f', '0x177dd6366e', '0x1a6cda9434', '0x1db9bffd67', '0x1c98ba8eb1', '0x1be9633205', '0x1f65ac6bba', '0x1c6c54a798', '0x19a7baae9d', '0x1c95b16538', '0x1a4a3757f5', '0x19938e175e', '0x1c7eaa4e2c', '0x2004dbc302', '0x1e807e08a6', '0x1d1ca24066', '0x1a7ccc250a', '0x1a0e65561d', '0x1cb71b54dd', '0x19dd5adf8f', '0x1843332472', '0x17f47d8885', '0x1576c344da', '0x16129dd92a', '0x18d4bbc789', '0x1be83da1cf', '0x196534fcf0', '0x1a48b1281d', '0x1ad26cef22', '0x1a7f0ce28e', '0x183809c658', '0x16d349803f', '0x155bb630f2', '0x1740a00257', '0x1655ed7ea5', '0x155c8a572f', '0x166b49ec6e', '0x14283347ad', '0x136dd06af6', '0x15db2a2aec', '0x1895b43169', '0x1aeb7e915c', '0x17980e10a9', '0x1a8a2dd2a2', '0x196bf9e2af', '0x17f652d721', '0x15b27af76d', '0x1868842ab4', '0x1a2afa178b', '0x1b947e1571', '0x1c5edcbb5c', '0x1fea143710', '0x2066fe6ed1', '0x246b9c5ce4', '0x286e08f9ca', '0x279ef69fd4', '0x2375d46fbe', '0x2243233ff0', '0x2106700e06', '0x1f882d93d2', '0x1d58c97848', '0x203c567775', '0x1c7f527985', '0x1e225e547c', '0x1cad5b6335', '0x1a05661cf8', '0x1a86549a10', '0x185363df2a', '0x1b5d083737', '0x1ec6702539', '0x1c4112784e', '0x1eabd1cbf9', '0x1bf6995be5', '0x19000f93c8', '0x1a38f19a73', '0x18b216b1d5', '0x19db0045e2', '0x180e7855a7', '0x1b1012cc3f', '0x1b64e4b3e8', '0x182edea929', '0x176b1d287e', '0x15d236de3b', '0x171793ef12', '0x19fa7515c0', '0x1d3996436c', '0x1bd392da15', '0x1f4e04dbc6', '0x1d2d80ce2b', '0x1aca211afd', '0x1908c70e28', '0x18d596de65', '0x1649f91c1d', '0x19124a7cf3', '0x1984e46f80', '0x168ceec981', '0x15e36165cd', '0x189fc7925e', '0x1bb383ea6a', '0x1ecfc512ba', '0x1e4e814f75', '0x1d82a8ffa5', '0x20e701d297', '0x24ba165705', '0x22b2698595', '0x212313f47b', '0x1fe988f592', '0x2017664e53', '0x2338119183', '0x231ff8905f', '0x223f8d5252', '0x1f3bcb20d6', '0x1f68119153', '0x21f25fbaf8', '0x243727792d', '0x22e46956ec', '0x20887031f9', '0x20d7a2557f', '0x1d77664b48', '0x1f7f3a8761', '0x1f0529c4c9', '0x1e1723c39d', '0x1aacb14f6d', '0x1e01f6652f', '0x21c0dd4540', '0x2048a7cbd2', '0x2450650bea', '0x240eda5674', '0x1facb9a8cf', '0x23a1b2417f', '0x212fce3b9a', '0x20b4839f91', '0x22523d5999', '0x1ebaee718d', '0x1cc7fcdd2d', '0x1f106e717e', '0x1ce475e63a', '0x1a5dcbb2f4', '0x1da94588fa', '0x1d23e018fb', '0x1a27747198', '0x1b8cd54ea2', '0x1ca2dcda7f', '0x1a56cf7cb7', '0x1742caef59', '0x17aa53706b', '0x1919fcb7d2', '0x18e7aea515', '0x169374e1a7', '0x19656afceb', '0x1c91760073', '0x2022a76ae4', '0x1e36d82fb1', '0x1f2c8f2b5c', '0x2289299624', '0x1e38046360', '0x1f87234aad', '0x237771c845', '0x230ff752f0', '0x1fff36047c', '0x1c85d87541', '0x1fdf765bb3', '0x1cac143da4', '0x1a65ae30b9', '0x1db1b4e005', '0x1cc69a3838', '0x1bff5dc41a', '0x1a5a08ec65', '0x18ed9888f6', '0x1ab189cfff', '0x1b1d1aa3fb', '0x18b37886f2', '0x169526e62d', '0x161929b7aa', '0x1816b5939c', '0x157c34dab6', '0x12dab2d5a4', '0x14f2f7ea95', '0x1685a1e954', '0x14613eb935', '0x16ecda20c4', '0x19c9f00c64', '0x1985c25cc6', '0x1cb64024f1', '0x19821a5590', '0x1b30899f9a', '0x1a5dc6aa49', '0x176162c6d6', '0x19716d9a3d', '0x16b591854f', '0x194f3223ae', '0x177c35b146', '0x1a6b2f41a1', '0x176ab14c61', '0x1a575d9dab', '0x1da210b45d', '0x2156097e2b', '0x1d2b484e66', '0x1f49e64e99', '0x1d2bc9b865', '0x1ab2feb01d', '0x1ceccc05ae', '0x1ac25c915b', '0x1920039172', '0x1c4370fc93', '0x1e09c12d63', '0x1b8ea0b2cd', '0x1ae446ed41', '0x19e3eb7b53', '0x1753ee805d', '0x173f932979', '0x154b87a4f1', '0x1444a8341f', '0x13eac4dd98', '0x1392d52961', '0x143cd7d033', '0x1648179baa', '0x1865eac4f0', '0x1b729fd06e', '0x186bed0f98', '0x1a57f40290', '0x17d5606fdd', '0x1769141b79', '0x1632510a7f', '0x18f7adc9f3', '0x1816bc1890', '0x181bfa5aca', '0x154b71aeab', '0x1453e2d85f', '0x13803dd210', '0x13ecc77eaf', '0x12c9113ac2', '0x12f23ee0ff', '0x119a0bee66', '0x13cd1754b3', '0x13e89efa5a', '0x1525ccd7d2', '0x139b013cf4', '0x13d6483c7b', '0x115b7f34ec', '0x138636c2ab', '0x15f6d9ccae', '0x16a901f051', '0x1885cd49e7', '0x17db590033', '0x15beb7eaad', '0x17a848bf84', '0x15dae2cc1e', '0x135edc7a61', '0x155b5e1168', '0x13c81c6c5f', '0x15d1932f3a', '0x134dbd8157', '0x1175a70872', '0x1196a0ac78', '0x113335520c', '0x11fc25f8fa', '0x123080594c', '0x1475d61514', '0x14f42e0dd9', '0x12fd2a5d26', '0x13d4c3e034', '0x11bc2352e2', '0x13f34e053e', '0x15ee553b18', '0x1385e31afd', '0x11644b9a43', '0x1390c069cb', '0x12ecd2a89c', '0x115fab1b83', '0x138b9238b9', '0x1566338632', '0x1318941e30', '0x157aed32a7', '0x1829b828e4', '0x1b2eb5f102', '0x196d6009b7', '0x1ac320dece', '0x1a590af6a6', '0x17e42683ef', '0x19b25294d2', '0x1a322852ab', '0x19f6d5a74a', '0x1a881d986a', '0x1c3dfa290d', '0x194fdd34ed', '0x179fa8cfe3', '0x1a939a94e8', '0x1de5db5d87', '0x1e1164005f', '0x1c702efbee', '0x1b1073b79f', '0x1bb8b6ed52', '0x18dd1c4002', '0x1a0a5bdbf1', '0x19b45dbaa4', '0x17234d79be', '0x1a06e96115', '0x1c58d47b52', '0x1f0f883bba', '0x1d5589d0fa', '0x19aad896db', '0x174fdab9c6', '0x19a830bad1', '0x198f58a981', '0x186e36979c', '0x16936295e8', '0x1963fb63a9', '0x1af073a675', '0x18d4a70a14', '0x1bc37f1776', '0x1a65e7e72f', '0x1d89dd2c3c', '0x1a21744025', '0x1d0a99de64', '0x20ab7b59c0', '0x23f0388fdc', '0x207d13f3a2', '0x1f69e94607', '0x231b2f66c4', '0x1ef7db4826', '0x21b485759f', '0x1f4c6e105c', '0x1fd94d249e', '0x1c193392d5', '0x1f9c156d07', '0x1d844bf2f3', '0x1b06870017', '0x1872f4513c', '0x1b7670dd4b', '0x1ee5398d84', '0x22be7bb32a', '0x1e8a4b78f3', '0x1cc3917c62', '0x205bc8a06a', '0x1ce59052ee', '0x2018a039d2', '0x1d10cc9172', '0x1b0e0ab037', '0x1a72eee96b', '0x1d3c9f658a', '0x20e40062be', '0x1de8e9a859', '0x1f44c37845', '0x1d1e774b20', '0x1dac616861', '0x1f7d1da4cd', '0x1c7ff30044', '0x1a231265b7', '0x1abc63a1eb', '0x19dd4d6dae', '0x1d1817a145', '0x1de590314b', '0x21a11a9ad5', '0x1faf10e7e5', '0x1be8c12986', '0x1f659cb0ea', '0x1bc548fd5f', '0x1a6b5a005c', '0x19c6191185', '0x19983762ff', '0x1cc5c6b76b', '0x1ad2b4cc95', '0x18138ee367', '0x1a46509300', '0x17d384c486', '0x17c1ea3cce', '0x150e153765', '0x128cd93ca3', '0x14ddaef31d', '0x1727f6d7e1', '0x16758fff6f', '0x14c445df8f', '0x170bc878ce', '0x16f0012902', '0x152a3c4147', '0x17cf432389', '0x199ea4bb99', '0x173e17f146', '0x15ce71124d', '0x146b9458a3', '0x156d582199', '0x12dcb4988d', '0x11efe26cf7', '0x1169de4690', '0x1018f00729', '0x10558554b3', '0xea4e895e7', '0x10795852bf', '0x1226887b70', '0x11272cbc49', '0x1070a08d19', '0xee9b8c72d', '0x10c6d29ba4', '0x120f9c7584', '0x1212b9801f', '0x10179fb276', '0x1124fc0b90', '0xf71386f3e', '0xfa9964000', '0xe3934ef44', '0xc720e515c', '0xdffe3ea07', '0xe357cbf4a', '0xe8aa5f41d', '0xd1cb29c0a', '0xb83990a3c', '0xcf401e9f5', '0xe92178a66', '0x105f2bc75d', '0xf121a107d', '0xe6f7c50a6', '0xe3c3f28c0', '0xe02255e1c', '0xcdc0f187b', '0xe77902ffa', '0x1033c88f04', '0xe71459d6a', '0xd55107995', '0xefea576b2', '0xd7d6c4d17', '0xd77b3b5bc', '0xc2fb26330', '0xdb58b75d4', '0xd8d9195f3', '0xc7c376d5c', '0xe0b7f69b6', '0xf88b16005', '0xdc5cd8b4f', '0xd9c36823b', '0xc4d84fd3f', '0xdd68c85ee', '0xf47300c3f', '0xe79fa794c', '0xcf96e36d6', '0xe8e2cdc7c', '0xf1481c1b6', '0xd597acf67', '0xbae4b757b', '0xd12c85c00', '0xeb51aba83', '0x108b581bcc', '0x118848a95b', '0x112befe303', '0x10e5aaf8d9', '0xf860b139b', '0x11765bf795', '0x11093b0d87', '0x117d745d50', '0x13ad1b53f7', '0x16224b109f', '0x14def83c22', '0x15ebdc6678', '0x13843e3fc8', '0x15f3f93097', '0x14f38b0410', '0x125519a38e', '0x14020889de', '0x1681ba87ad', '0x19519d0248', '0x18d7b380bc', '0x1bf1c8cf37', '0x195c89cb00', '0x1935673db3', '0x178061c66c', '0x167da0b991', '0x14bd3a6da7', '0x13e01c38fe', '0x14e74a307b', '0x1783056ae4', '0x1584305759', '0x17df26199c', '0x1721afcfdc', '0x174c35f4ec', '0x168196b3c4', '0x16750cb749', '0x19437a4358', '0x1a1664f5b0', '0x1794ae7915', '0x1a262ccf3d', '0x1919de313f', '0x16c6c4c1f4', '0x1629a72d43', '0x14d571e3a8', '0x13446e2dbd', '0x15acec97b3', '0x15ea5c584c', '0x13f51b9688', '0x12891e8654', '0x14b5e1e730', '0x124d34fec7', '0x148eb87d17', '0x12d673bb1c', '0x14fe979e68', '0x179e17ecbd', '0x168f88c824', '0x15bdbcc77d', '0x159e8aa340', '0x16489ac6af', '0x13f3925771', '0x15fcc124ed', '0x1805bcba1f', '0x15b694ab8a', '0x1376fbc7e9', '0x149763bff0', '0x13bdedfa3f', '0x1635368ea2', '0x18fb3f23af', '0x19386e5969', '0x18141a3efd', '0x18a90cbf19', '0x15ca9fd906', '0x180b2d964b', '0x1509c7e382', '0x131e0ae95f', '0x12fc35d7fc', '0x1415b754e5', '0x127baa99ba', '0x14cac07ab9', '0x1498fb558b', '0x172b2f773e', '0x16b4a4a2e4', '0x15aeca5267'], 'gasUsedRatio': [0.9997581333333333, 0.9999619704691702, 0.08412564798812638, 0.8060610311225546, 0.47558430361017684, 0.055007, 0.1911186273395971, 0.999424643532485, 0.33891308563061223, 0.41791592313120857, 0.22733792742819575, 0.1940157336096154, 0.9558292268706414, 0.8066507645709777, 0.41638729347891495, 0.2850783292435862, 0.10065474956706628, 0.9994640982609103, 0.4086092471931015, 0.5464243017899051, 0.6461616792697117, 0.9993076062583355, 0.5315618875428625, 0.0866243703541792, 0.041451390848618555, 0.7935543880332556, 0.07976317754570705, 0.3025263, 0.18512333960779367, 0.44116304508550874, 0.06569187609609219, 0.9994520989772514, 0.3831493, 0.9964353666666667, 0.9996242997954169, 0.580671509497974, 0.49520907856994806, 0.547315440388412, 0.23031841019920557, 0.9996626323774584, 0.1759048, 0.4207567976537578, 0.17619240365265687, 0.9994669456237824, 0.6925689101671868, 0.25857857329116546, 0.175259459351034, 0.05075111292410833, 0.9525523239352971, 0.37701587645539797, 0.6345342368665629, 0.12753891093227285, 0.9993138913253738, 0.7879116197078552, 0.46317602851010625, 0, 0.574518178570188, 0.9574665643073322, 0.2794779457786741, 0.07552053761633744, 0.9999499843012767, 0.6799330743476544, 0.805659833806253, 0.6331655327533429, 0.14338878450933065, 0.007714544567099712, 0.5077566678479015, 0.27679512659208466, 0.18836004915858498, 0.4827366337626315, 0.6691193495938873, 0.27646286647309715, 0.09984811777145529, 0.9217831155957938, 0.19910384727199468, 0.1881168195335846, 0.9998467828332176, 0.9999902999350095, 0.9318981422534636, 0.9438070043934669, 0.6141249333333333, 0.18841121644713937, 0.7366970666666667, 0.0387127696862653, 0.217721740685935, 0.9290161539438757, 0.994963255015646, 0.2453470175279811, 0.26566703736666736, 0.9995179504906916, 0.8850805909848274, 0.07692759528798265, 0.44403367065531235, 0.09755472720197907, 0.623178652118317, 0.04445863393691951, 0.9996982425626811, 0.8030539044269562, 0.08147709142622207, 0.9221735947205488, 0.6554073772744837, 0.10898519840016967, 0.458899512573465, 0.19420580069129628, 0.9996422860781319, 0.9999949902110393, 0.8025015545496487, 0.23242238758962921, 0.6644996798200693, 0.12494550602058067, 0.9995446540493541, 0.9993246974338502, 0.36929265091902924, 0.7018875889345876, 0.2304460880497974, 0.9997973988519269, 0.22980877718732748, 0.22264890281609193, 0.3109127916988525, 0.9994785294049215, 0, 0.8870023061862693, 0.999978, 0.9860929136031998, 0.2857074039229813, 0.3553364574412175, 0.0702116, 0.9738901666666666, 0.324647981246313, 0.43187922239541343, 0.044230618224234984, 0.9754813192638839, 0.148023497791022, 0.047334191009232036, 0.9999397076163061, 0.9999843666067386, 0.5250365775248335, 0.20925393077707002, 0.1889599534369759, 0.11153064688751772, 0.5304906989808956, 0.4094683237509062, 0.4444534533019531, 0.22808234102853653, 0.829011658006366, 0.5503860483071472, 0.18172939805797308, 0.03759832510403266, 0.7437309333333333, 0.3457981, 0.4093718333333333, 0.9991911, 0.9996701887273743, 0.037574802988976225, 0.9993204, 0.21794933333333333, 0.999928330014259, 0.11198470451905755, 0.008654533333333334, 0.9995134750915731, 0.9993237666666667, 0.24831150952238193, 0.9996638996863064, 0.1502397, 0.958792, 0.14474624470795733, 0.1285542130608423, 0.9575096783252318, 0.006465221548398312, 0.9392528132333964, 0.6798768729815928, 0.8591892966964482, 0.1810270414331664, 0.2728800561042907, 0.9999914583014966, 0.05706611494903297, 0.4235369666666667, 0.10565123333333333, 0.3494065, 0.2903987410372896, 0.7208519394618101, 0.2135003162081845, 0.027086818131621115, 0.9486295333333333, 0.5597789666666667, 0.08903336666666667, 0.9136566857536385, 0.9996192996446797, 0.1762756643768841, 0.7605377969841768, 0.7396156065761408, 0.7391975943931841, 0.009510213669253422, 0.12032181712028846, 0.8506757174057729, 0.918162303043112, 0.9993632418371067, 0.23417603480339838, 0.5832058666666666, 0.9999315666666667, 0.8856418333333334, 0.3267062333333333, 0.9860678619338451, 0.26289361920426135, 0.09687100915345578, 0.3700595409231016, 0.193506084048814, 0.9998213919165178, 0.17128501855007958, 0.6235144703607495, 0.9998380011761229, 0.9998293011880047, 0.096915544188224, 0.6991219252914644, 0.022153221726274885, 0.9288343516851967, 0.9280479012461297, 0.18791208222884465, 0.33703082810096024, 0.10895093743671756, 0.5282028249375337, 0.9951789, 0.9996826666666667, 0.33953005109489415, 0.28065992861593336, 0.9994547, 0.6974793666666667, 0.29431973333333333, 0.34755806666666667, 0, 0.9997264994420108, 0.4015725571221683, 0.2932038237539318, 0.2721086, 0.23692502395255635, 0.9994486994854529, 0.9993598743198226, 0.14703090779102787, 0.7882534333333333, 0.32804376807285646, 0.1789535960163303, 0.33019121757547276, 0.9999265665271431, 0.9996347092662128, 0.20180273844109226, 0.4095049120506334, 0.39655427357290624, 0.15043954255022865, 0.25791768747705407, 0.9998849784407838, 0, 0.9998079, 0.3670048, 0.04358123333333333, 0.6415009333333334, 0.3950995, 0.9998370924125924, 0.6761907458223546, 0.9625836009444919, 0.5668536292503499, 0, 0.9993847666666666, 0.493034815163674, 0.29196222973659447, 0.1382272124926378, 0.9735834831419513, 0.7849257447025463, 0.11972313333333333, 0.9994293093872834, 0.4197846917990457, 0.09016666666666667, 0.7161600636354734, 0.9391189431776803, 0.7106211848334291, 0.9801699719552286, 0.8223541246088506, 0.49207962755894474, 0.13996183333333334, 0.7311183666666666, 0.5909210322786466, 0, 0.2730201708635149, 0.9571979475401282, 0.8118693752519963, 0.23285864243142063, 0.28781912481428934, 0.12801233333333334, 0.4705835418380618, 0.18291159683683406, 0.9943335944341763, 0.19024473333333333, 0.30636583333333334, 0.16415336666666666, 0.7887307622560097, 0.10100946094216355, 0.013708333333333333, 0.9997575333333333, 0.3987908141033614, 0.17434400186586846, 0.4449861, 0.11546788772569748, 0.9994859328535374, 0.5857689666666667, 0.10660167013577908, 0.3480748031389764, 0.7152594333333333, 0.057941246293672435, 0.4869841254785425, 0.34120785263568965, 0.999537932455405, 0.9993187000828277, 0.5926974126426692, 0.196153, 0.021344433333333333, 0.9977324666666667, 0.45977486666666667, 0.30480133850705216, 0.1790189670843693, 0.6795208, 0.8850977312679165, 0.5429242910778033, 0.1757480225459846, 0.22402208179240723, 0.47431280097781003, 0.7279060040684162, 0.9999475486308774, 0.8360211435470122, 0.190572885266093, 0.5046464211135085, 0.3360525909159261, 0.279949571989135, 0.3897241537304607, 0.7502573767072654, 0.8530860869071782, 0.7040954581112381, 0.2629273076340564, 0.41527404367183934, 0.9399726666666667, 0.31236203333333334, 0.051356616402583787, 0.5175094830088508, 0.1146969, 0.7513775333333333, 0.7438163700186565, 0.8874290616004575, 0.9995614278563643, 0.2558021526907568, 0.5736218983319947, 0.3857130595203353, 0.5022327532763753, 0.3740725756733684, 0.16394020511840407, 0.9378585283049431, 0.4353405039471564, 0.045934026959486104, 0.64015, 0.26078266666666666, 0.12731922722538558, 0.9993091180189809, 0.9995485920971552, 0.9990541315361833, 0.21368121295651923, 0.03609727014550775, 0.6246509956968189, 0.478948953339356, 0.10356026666666666, 0.9997721225223569, 0.9994118994315028, 0.0565875, 0.9837751666666666, 0.7249893666666667, 0.4191180978441219, 0.37143989239189595, 0.10385267919882754, 0.9997063994421589, 0.25981163303509486, 0.10225473567835766, 0.3033663521907449, 0.11066134948343523, 0.8618944776693073, 0.024196512512231816, 0.47965359007099584, 0.9999928666395599, 0.6105996333333333, 0.3052875, 0.1758751087103223, 0.9997996331463243, 0.1170239, 0.9264415701932938, 0.43142510389781547, 0.14491227659617145, 0.5208989823792534, 0.5757568538391296, 0.9809311793050081, 0.818656, 0.28445756666666666, 0.20815152663242323, 0.6072579334407379, 0.2700817, 0.2416729, 0.9993613569682538, 0.9383129012014824, 0.9998401559332153, 0.22025763333333334, 0.9025871763777329, 0.2089207283260131, 0.34466613333333335, 0.09839768533973425, 0.7274561456257359, 0.3493496860912389, 0.0483327, 0.10268363723842999, 0.8279251985158496, 0.8856374990806427, 0.9994977190452955, 0.7265410883569404, 0.18937818014054467, 0.46242351312112556, 0.9635984976283234, 0.014669900575684838, 0.04344785365819445, 0.9993374851287833, 0.9996491323392083, 0.33582364996119535, 0.9997383656811774, 0.31849263333333333, 0.1095133064103764, 0.9190470410940182, 0.2993093787819017, 0.9994299533655897, 0.4917004797493868, 0.16315676227749312, 0, 0.9998179659810051, 0.9145342207454561, 0.5952373976157688, 0.5746060333333334, 0.2774221026832702, 0.08465807901420708, 0.7768394087327424, 0.42201739998216514, 0.9998365734367839, 0.9508171606486219, 0.4035473333333333, 0.03736542066661428, 0.905033544697975, 0.08254253333333333, 0.028483080394672063, 0.48599706533801085, 0.14670843593918267, 0.7933466324180001, 0.0770532581428756, 0.5621496403973364, 0.3088340877635212, 0.10088752832296902, 0.4322211851490151, 0.8859752995361169, 0.05980928882293723, 0.125448706342696, 0.9816915855946918, 0.6864408158198615, 0.43997788763594464, 0.01666771538546628, 0.9996010081101658, 0.5914283564747647, 0, 0.8680964, 0.24648436666666668, 0.9999230915655805, 0.9996600663493953, 0.9999758901873962, 0.6015248, 0.19782333333333332, 0.7058052855279847, 0.4073390195888387, 0.9512833893862704, 0.5550125394896233, 0.5834439749183935, 0.4005637349305823, 0.8156913666666666, 0.1014912, 0.4789337788350324, 0.9578555939985544, 0.10348184655989105, 0.9997660995555891, 0.9996911, 0.1812767, 0.732411, 0.8681296, 0.0505057, 0.9089356243628097, 0.6933827, 0.5575207333333333, 0.1539557, 0.2683951545350702, 0.5740777691392512, 0.6329920740323098, 0.15512832807715668, 0.9373564666666667, 0.5056739760290743, 0.0976913, 0.14913626666666666, 0.5133537899759115, 0.9995260662243285, 0.9995798333333333, 0.34807846666666664, 0.40419462938893164, 0.999503232869684, 0.12111283333333334, 0.11046219967131236, 0.9567567863641018, 0.17887323566972674, 0.3914381726862004, 0.9564208495598665, 0.9947139628646505, 0.3104805017532574, 0.3177069222591451, 0.13940997318819745, 0.434873975540898, 0.9081982144663673, 0.10291595826188174, 0.2522228, 0.4493113, 0.08403352540422389, 0.6134562725591878, 0.9998512333333334, 0.9955420468087087, 0.13997083063944193, 0.6399648, 0.5818783041640162, 0.45143022133487326, 0.15619470324277293, 0.2698394370336158, 0.24290126666666667, 0.8547468333333333, 0.34228986666666666, 0.32554005653187, 0.6980406848379725, 0.0964040285109342, 0.35552019761260406, 0.9996974706719721, 0.999387703593231, 0.8799292066673698, 0.005802710579001242, 0.9994153601914411, 0.331501113488641, 0.2703418, 0.1219024, 0.9998025738800606, 0.7883632691390512, 0.7158631666666667, 0.6146490666666666, 0.9996469114576283, 0.561157242452001, 0.9960181666666666, 0.9403548333333334, 0.41997256666666666, 0.07995173333333333, 0.3648610333333333, 0.3555717666666667, 0.3191436437681396, 0.2228053976565855, 0.8937557497868917, 0.036123884483859794, 0.729761623097426, 0.30658870766811686, 0.1295191176905328, 0.5774201134437682, 0.16838706666666667, 0.9994978333333333, 0.9987305729288682, 0.17233813326019548, 0.8421768, 0.1468485, 0.07615270355164848, 0.6955499390316078, 0.2671035982031662, 0.6878571666666666, 0.22169153333333333, 0.9998666, 0.5489717333333334, 0.031135833333333335, 0.3735196333333333, 0.22717810608726088, 0.7329760507776474, 0.9999541666666667, 0.9998932, 0.30858963333333334, 0.9999991992180364, 0.22821834633712323, 0.17260267427392448, 0.23791584410957567, 0.46805115898557953, 0.09002306573557627, 0.9993489266433058, 0.5714217275894117, 0.03468722507352845, 0.38251910902755937, 0.9999832339062784, 0.9998497528529524, 0.949130820812634, 0.43444803722582703, 0.39490501571390824, 0.9597675879417944, 0.9649551230165563, 0.27891075544101934, 0.32016855933880684, 0.35215604335354805, 0.5224564240628614, 0.8898381234234679, 0.4893090105192873, 0.40016919903558884, 0.14790236767189513, 0.5221492233937992, 0.8235322251022914, 0.7673211761419398, 0.35385090005468667, 0.2295363123932645, 0.5380363530599555, 0.08883342501238252, 0.7756470931159046, 0.4394458450965611, 0.3801065029682765, 0.045926923781445896, 0.9998144471539201, 0.9993004299987164, 0.32584664244868017, 0.9993501283094135, 0.4717990167208571, 0.01374909166061107, 0.9996943666666667, 0.2255375707711914, 0.4419518528134821, 0.6976589049909986, 0.0814781881418908, 0.24630836666666667, 0.8172880515509938, 0.22035174634002147, 0.1502841644279228, 0.9998526789437331, 0.42972924091173503, 0.09011619693260939, 0.7135050600173877, 0.6576838301041853, 0.17913614777078718, 0.032528590275309716, 0.5695461260673839, 0.7427477490060119, 0.46868652417373674, 0.12593766816239352, 0.9996742133456815, 0.9996097640781018, 0.9994587582656501, 0.2608702159469745, 0.6270689995130385, 0.9313497851564976, 0, 0.6732781666666666, 0.9997097666666667, 0.45441203333333335, 0.15028606666666666, 0.06569768712481071, 0.9698082384876893, 0.09831506666666667, 0.18261996666666666, 0.9995951286901674, 0.37628876666666666, 0.39181653333333333, 0.26486123333333333, 0.2839092, 0.7832786666666667, 0.5629634004271838, 0.14407203822341466, 0.15694861203664542, 0.4142115536686186, 0.860284, 0.06767683333333334, 0.010194466666666667, 0.9444195590327288, 0.8003292293442954, 0.11954740874960719, 0.9995794119248225, 0.9996449859876236, 0.4586918329601934, 0.99986006957892, 0.05367633333333333, 0.7636618333333334, 0.378882011617678, 0.04701300585496261, 0.8528877180548405, 0.07020501038528246, 0.957981993969016, 0.21170118574910132, 0.9996331744311968, 0.04548510972155893, 0.9995573043774781, 0.9998688216942146, 0.9998489912350395, 0, 0.7906637830870293, 0.2292791712608508, 0.1610546, 0.8334615752282103, 0.20049935379939687, 0.25572228481859116, 0.999642832666621, 0.7511599098171013, 0.16962437494824986, 0.40341052659536153, 0.3510477105781195, 0.10410613333333334, 0.48636500209120875, 0.16392425299596947, 0.3071199666666667, 0.43070418263434246, 0.43101366741303476, 0.6357142570589926, 0.9039876879545753, 0.8799551814828962, 0.9999791999410665, 0.05899264012556297, 0.8148003357479313, 0.11887252677558054, 0.42900082077195983, 0.2925860706409419, 0.9993472226670742, 0.3592268873411836, 0.5034009557796415, 0.03302887068276823, 0.318354216458637, 0.3373180173975836, 0.5869651763226915, 0.2712412491047908, 0.5342505470432166, 0.2161389, 0.9998124333333334, 0.521723696522988, 0.748932899004039, 0.20830446666666666, 0.5472422845757784, 0, 0.9993517663732376, 0.9998880331205963, 0.6267377, 0.8287665666666667, 0.3913924, 0.14591553333333335, 0.8517805, 0.19525983789837442, 0.045281392296522296, 0.9101798262916134, 0.20497214393042945, 0.9118897929734452, 0.03893041030282919, 0.1178773, 0.5295102666666667, 0.4116788043524502, 0.682539670370359, 0.5454833402662209, 0.9993748321663534, 0.5964853480483523, 0.12490861641079262, 0.6774057100601145, 0.07718969074783515, 0.9996912306570387, 0.897100349704977, 0.06080566666666667, 0.06334203333333334, 0.9999275666666667, 0.3690861459548583, 0.17209988377979707, 0.9999498532371407, 0.879433066111449, 0.06947716802377306, 0.9994073085871588, 0.9995831918058419, 0.9998553839567638, 0.24171331823253, 0.7100067940321584, 0.43806240810357816, 0.12704914309654466, 0.8022634164609813, 0.5777309989489597, 0.4646158459920563, 0.5874286782103318, 0.7578646226463255, 0.0849983558193578, 0.2332014, 0.9999913582279762, 0.9998839332250044, 0.5227512666666667, 0.283195559536113, 0.3067458, 0.5971429333333333, 0.0876378, 0.6893123333333333, 0.448402, 0.1005915276267275, 0.9994571737002077, 0.8565518508825093, 0.8829231775540374, 0.2776560253218416, 0, 0.13292905827576446, 0.9023797287984948, 0.4848700848108067, 0.32325063005298227, 0.1963146971913741, 0.9987360261708149, 0.7439820477011838, 0.18691189030471256, 0.9724775843970019, 0.3032552909164932, 0.9758622568717781, 0.03852126536459038, 0.9455651742998683, 0.9997608993225481, 0.9001869666666666, 0.116034, 0.36766183333333335, 0.9701737413250706, 0.028515959948229284, 0.8535204, 0.2143930548180298, 0.5703264323046702, 0.028976133333333334, 0.999851, 0.23515497117065187, 0.16239052364417286, 0.11866278892074374, 0.9930449498886308, 0.9999879215153413, 0.9982831617450637, 0.016019822613607012, 0.2673525898229312, 0.9998747105078679, 0.07206997686688973, 0.942882085427694, 0.12231368082108673, 0.22327846163104018, 0.4104201171554713, 0.9216195125310603, 0.9998936330319602, 0.1374875795028598, 0.6817185582762408, 0.2250149488209959, 0.5761500604436194, 0.7447140450481571, 0.12031728580852911, 0.16837633333333332, 0.5916548666666667, 0.3696235707501709, 0.9994726372193613, 0.6103482283816354, 0.9993964655199512, 0.26859943101664, 0.02346017373079752, 0.9998674034727144, 0.03800857776592884, 0.3053624, 0.4022652213446902, 0.4721849564454579, 0.9966624042781017, 0.22897900362671644, 0.0904015291969279, 0.8652153686565092, 0.12725733158864685, 0.4884557227984133, 0.04499060428938488, 0.024137710142677727, 0.9993503629268784, 0.9390232747842018, 0.37962023164573744, 0.19855824713661985, 0.9390370149972253, 0.48116638461582134, 0.19089318070887465, 0.9998135692340474, 0.8040927243214762, 0.12885619842589555, 0.2528429842292218, 0.24572974374270928, 0.6972344989793494, 0.021168569566262334, 0.3038223868521874, 0.38325820327098825, 0.19767553908076996, 0.558805253505174, 0.08616751693289026, 0.9998110469975462, 0.9070694900408529, 0.28017297782569356, 0.3337141147757508, 0.12847232636088743, 0.9998802160991167, 0.8062184446223475, 0.5026935163578741, 0.061589818248372404, 0.7615391565774621, 0.10285655809358127, 0.5570334666666666, 0.13250065355486298, 0, 0.9994694, 0.5598198974632062, 0.593648120738246, 0.1067847, 0.0124972, 0.9999456333333333, 0.9994976094155943, 0.9944425614797241, 0.18212301310377474, 0.33140288528538586, 0.44453892206338275, 0.4362274259751938, 0.17197431148494594, 0.9999962259626384, 0.9797760128509734, 0.0655399963014398, 0.19252184948198767, 0.9987681953191422, 0.09858423333333333, 0.49337344583652604, 0.11945067568231024, 0.9998536235886037, 0.45443729785729187, 0.18485744946877863, 0.9996922990600643, 0.9240805537471195, 0.04646739832429525, 0.452816441058556, 0.11576006666666666, 0.9991611333333333, 0.916241242907032, 0.2901309883646871, 0.08494319580913023, 0.9874341761249347, 0.6442032262024098, 0.0409648, 0, 0.9768598369641288, 0.9999688333042445, 0.9995768666666667, 0.7388846333333333, 0.4176997, 0.43605985421902177, 0.1748482690199934, 0.9995577, 0.4023536316546441, 0.6065973184053485, 0.9999735408036843, 0.9996411326514854, 0.27175656666666664, 0.7013047333333333, 0.0612024, 0.9993593589193486, 0.3174864088067386, 0, 0.8655862333333333, 0.9995635070980146, 0.9997699331186043, 0.42476431409398036, 0.999446846992928, 0.13026777436044165, 0.47588926421589073, 0.22912193333333333, 0.3279669597361824, 0.18848309823997098, 0.33340856242281625, 0.7068976613625632, 0.9991180370580588, 0.16052132682780357, 0.9378644333333334, 0.37598923333333334, 0.5287242325464149, 0.36410802981473367, 0.4912947559858519, 0.9998585570953405, 0.6304476318202503, 0.115648431074946, 0.9356655214300195, 0.33967727357780186, 0.12956016708714008, 0.39221623333333333, 0.260148768605877, 0.19924541929572467, 0.9999513141629465, 0.5442871666666667, 0.14262336666666667, 0.21502770789008802, 0.9693354741345422, 0.03474983347055635, 0.9930527985506628, 0.16536807040853035, 0.9579746391104633, 0.9997597307541629, 0.32100233535157463, 0.35469957164878635, 0.4775800666666667, 0.6229103, 0.08136768888152614, 0.9081648650275247, 0.8702295050180194, 0.11549155556388434, 0.08579554456278014, 0.7315127849313297, 0.3349884359672926, 0.9996377251221746, 0.999565073641691, 0.5382686811384241, 0.3188915666666667, 0.5966546333333334, 0.034662066666666665, 0.9134020037233025, 0, 0.13478781726511607, 0.4723481641281785, 0.731682, 0.1810016518869324, 0.9996847825909767, 0.4625982200164333, 0.9993027986520774, 0.4200549, 0.3198046666666667], 'oldestBlock': '0xd10317'}}), + (('0x400', '0xd10315', []), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0x1dacbbd575', '0x1bb1c0b90a', '0x1ae693b338', '0x1ca0955ddf', '0x190c82b224', '0x1c2dbea40a', '0x1a9a01210a', '0x18fdd0f987', '0x16c50757ea', '0x185770931f', '0x1b6228f03c', '0x1e9acbddc2', '0x1c1400cc67', '0x1ecd259d56', '0x1bfae0945c', '0x187b8481d1', '0x15ae65809b', '0x15ebc8d0a8', '0x153880b55c', '0x17df35ab86', '0x19343323ee', '0x187f82313e', '0x16bd03d50a', '0x168d4fe47a', '0x154399376d', '0x14bde50266', '0x168eb5940d', '0x1405050e06', '0x1184646c46', '0x13b446379f', '0x162a24e7cb', '0x1364e04ad2', '0x15ade86ba0', '0x18611b5cfb', '0x188ab76529', '0x15d694aaac', '0x13e981d5f7', '0x166629eb03', '0x147d6ce0d7', '0x170cce7e00', '0x14f8997cbd', '0x147dacd86e', '0x14d4bf01c2', '0x163629953f', '0x13d0532927', '0x12287428ca', '0x110ea4cf61', '0x133076fe6f', '0x159625666a', '0x14041c427e', '0x13ec93e077', '0x14e5eaa7d9', '0x12d5fe44e2', '0x1412e96089', '0x11b922eed6', '0x12d2c59c05', '0x1167f65fca', '0x1128dd33fe', '0x134d59039e', '0x13e8837bb4', '0x164c40574e', '0x1763e7deb6', '0x15d81c676e', '0x147bb1d758', '0x1326df13f3', '0x158b8c9dde', '0x143e5a5690', '0x14a8eff8c0', '0x13574519e3', '0x15c1df1497', '0x143677c54e', '0x15cfb8c088', '0x1717ae2d37', '0x15a050dee4', '0x185393eebe', '0x171cedfe41', '0x16e875131f', '0x18d1f14696', '0x1a152e029c', '0x1796e20c73', '0x153f332b17', '0x16b89aca17', '0x148398d801', '0x1713780e23', '0x155f4f4ea2', '0x13509bc9c1', '0x15ba1d6162', '0x1776768d3b', '0x19651f739b', '0x1c90abe5ec', '0x1ddfaf7d0c', '0x1c33def029', '0x1eb3d2c797', '0x1c118bba7c', '0x1a86157b35', '0x184bff5251', '0x18fc20939d', '0x166a1a8c2b', '0x17122dfe9e', '0x151b8c56b0', '0x17795c1a67', '0x184311f6c5', '0x1675db779b', '0x1499fb8873', '0x1375e6c263', '0x113772c13d', '0x135db77a7f', '0x11fe92efba', '0x12f85b8231', '0x155705c1db', '0x14deb567cc', '0x177a5f5bb1', '0x180be24da3', '0x15ec9ef18e', '0x18a9dba478', '0x1b8462ff4b', '0x1e0a29e96d', '0x1a48e4ac40', '0x17e8b59dd1', '0x17116a036d', '0x17ce14abcf', '0x15606062df', '0x12b4545684', '0x150a211fb8', '0x17ab40cdd8', '0x1a79eae65d', '0x1c77fbf3c1', '0x1900fe95e8', '0x1719811507', '0x199e341f94', '0x170fc47dc2', '0x171c9aad9e', '0x153ce174fc', '0x17e467507a', '0x14e7da666b', '0x178476f1fd', '0x15ef0d2df7', '0x145228a500', '0x14fbfe632c', '0x14ad65e485', '0x126913ca44', '0x12beab0a4e', '0x11bd6f74b9', '0x13f49f196e', '0x14032a57c9', '0x13c5ab1693', '0x163e3a3751', '0x1811923748', '0x16a34ebc15', '0x1611144d35', '0x144fedfec1', '0x16d9d09975', '0x17f0bd5e7c', '0x1aeeb5c3fc', '0x1e2c05bacf', '0x1b88770b97', '0x1a612d7489', '0x1a7c331acd', '0x17c9fc11ce', '0x1ac2336b42', '0x1aec8b2be7', '0x184e987bba', '0x19c3d4cd86', '0x180d129a0c', '0x154fee1a68', '0x12b3682744', '0x15095199d4', '0x14f2671c1d', '0x138cdf5e60', '0x1381ae1c7a', '0x11fdcd63a2', '0x13eddf2c1c', '0x11ecc824d7', '0x10f8d7b0dd', '0x12f98dfeda', '0x1558115720', '0x1712a57b4f', '0x19d406563d', '0x1813521f81', '0x1b14d5972f', '0x1892184461', '0x1af7323e8c', '0x1b6cf6437e', '0x1a45d47146', '0x17643ee62b', '0x1a5076467c', '0x1a28fa463e', '0x19e7b05a2b', '0x1a86667150', '0x1839096190', '0x17dac05925', '0x15a004730f', '0x1822566fc0', '0x160f98a7ff', '0x14016da86a', '0x13b3c3fa53', '0x15ff55dc20', '0x18beec8f51', '0x19331236d4', '0x1aa496abc1', '0x1a69a02e55', '0x174f1ac0d0', '0x1a388e4406', '0x17b88ea9f0', '0x170a18cf19', '0x14763adafb', '0x166f8d1cf1', '0x185d4f2068', '0x1767c24049', '0x16c501a4bb', '0x177ec7a2ab', '0x152cf5c3a2', '0x1573685bf7', '0x17c51d559a', '0x1701253a94', '0x186d1d5036', '0x17d526437e', '0x1aa6f9a406', '0x18253d758e', '0x18b2e6e4fa', '0x17a526189f', '0x14d6d9b89b', '0x1566b2b1ab', '0x14835183d7', '0x1643c32b86', '0x1508f83ee4', '0x1438765425', '0x149f44513a', '0x126ebb1537', '0x121f1e122f', '0x14327541cb', '0x13b3bf7d20', '0x12288ea01e', '0x146cd8a9f5', '0x126f11ca07', '0x1419bd905a', '0x1204489295', '0x14445382b9', '0x16ccc46255', '0x194b2e629b', '0x16a8a5ff83', '0x1524c04303', '0x175e329bc8', '0x154dc93942', '0x17db8dacd1', '0x1ad6ce2f69', '0x1a2fc4d94b', '0x19d35a0372', '0x18116721b8', '0x190abce999', '0x193a181edb', '0x1c4fccf16a', '0x1970b18c9d', '0x16f9058b72', '0x14362188a1', '0x16bc8b9f10', '0x19606da7b2', '0x169d9fba63', '0x14fa82b88b', '0x14ed031521', '0x13a80d74f7', '0x161c524603', '0x13c1f3e3bf', '0x1541029f72', '0x145c719630', '0x130cfa6bad', '0x12e4d6827d', '0x10b094aba0', '0x12a6413490', '0x14c990cc41', '0x16854886f6', '0x1934a4d6d1', '0x169dc0d388', '0x1971579e73', '0x1c9f546413', '0x1bdb6eafe0', '0x1b68c1e25b', '0x199737943f', '0x16ddd58504', '0x19b909e7de', '0x1cf01507c1', '0x206d965b0e', '0x1d29c33685', '0x1c4bc9799c', '0x1a6ed25617', '0x1dbbfc329d', '0x1e58279726', '0x1acf62ad2f', '0x1b395c700a', '0x1ab8083cca', '0x18b6376862', '0x19e3888dac', '0x18cd9e4b8c', '0x161e969f27', '0x17c7559ae1', '0x158c1eaf20', '0x183cabfc5d', '0x1985efb9fb', '0x173d5ecba3', '0x17daa378c5', '0x16f8013b42', '0x19d6594bb1', '0x1adc008ea9', '0x1b59386639', '0x18045bb6b0', '0x1b04d89e0e', '0x1acff95db6', '0x1ba689374c', '0x18e2b324a5', '0x16a1d1e1e5', '0x1549b3e2f9', '0x15bb037b9b', '0x154df870c1', '0x13c298ecb9', '0x114a45cf22', '0x137320634f', '0x15bbc25a6c', '0x14da227fa3', '0x149b064a3e', '0x129703abdd', '0x14a36bb985', '0x124c5629e9', '0x11a69e1136', '0x108aa0714a', '0x129b7f62be', '0x14b426e540', '0x1536e03d24', '0x13f1d2b629', '0x146687cf4f', '0x135ef1f2cd', '0x1586ec9554', '0x1509514774', '0x161369f4bd', '0x13f6b7894f', '0x1293a65623', '0x11a5e4c42f', '0x13da719101', '0x13868f7838', '0x15f329780f', '0x15697a8fd5', '0x181612cf37', '0x1752ebc57b', '0x15a6c2ed40', '0x13c559d00e', '0x1523b9064e', '0x17c8238b74', '0x14cf1f1a06', '0x1766925f4e', '0x1a53455866', '0x199fdded3e', '0x16cd0a3c00', '0x16a5e89bd0', '0x148b0cee90', '0x1476b38743', '0x1514a0d6b8', '0x162ba25fe5', '0x16d3d37ab5', '0x150d3c2030', '0x15c4e34241', '0x14f50d83f2', '0x132bfd0568', '0x156cccb4a8', '0x1819d78b16', '0x1719b684a0', '0x15a42fa89d', '0x17e9cb513c', '0x1a1723b6a8', '0x17908b5b4d', '0x19ca5dd215', '0x1a3273da5c', '0x1aee14a410', '0x1986870465', '0x179c3480b9', '0x17b760a576', '0x1512cf841e', '0x171289b6ab', '0x1430387fd6', '0x1212aac62e', '0x13ebc2e638', '0x1633cbb64e', '0x14b541fe44', '0x15144bd7ca', '0x145ce64a02', '0x120ef01ddb', '0x10ae49109e', '0x129746c3c2', '0x14e88b031c', '0x13b84d1a9d', '0x1258483ee9', '0x1421fe2860', '0x12285f4d9c', '0x11a398ee65', '0x11d60b405b', '0x106498cf70', '0x1271135ffb', '0x104f863f20', '0x115be1b28d', '0xf85c3ee5b', '0x10466f886f', '0xf9e85e3b3', '0xe26b62252', '0xfeb6fbc8d', '0x1045cbd055', '0xfd1884cd3', '0x1065c18bf4', '0x11ee3acae1', '0x100708ea79', '0x1207564058', '0x1447bc8f6d', '0x120e2d55be', '0x144f762a57', '0x16d94a4249', '0x158eca78e2', '0x15ecda0ed3', '0x13796d088e', '0x14b98aa212', '0x1561f08284', '0x13b8acf598', '0x162e95aeff', '0x18f40db1b4', '0x1c122e01e5', '0x19493f9bfd', '0x1b804e1aa7', '0x18e16cf586', '0x1bfd72771b', '0x1f7d0148b7', '0x1d167b8a3c', '0x1b1548acc9', '0x19dced1ad1', '0x1a41fdce44', '0x1849bb1f7e', '0x1a53299f5d', '0x18a384695b', '0x18ef7c6e36', '0x178a5127c7', '0x1a7b4415ea', '0x1d4d4be8c8', '0x1d499a15a8', '0x19de78fa13', '0x1d13b2fdc6', '0x20b5e2cb72', '0x1c9f267204', '0x1ba624a930', '0x183160140a', '0x18e2e50dd4', '0x165980b775', '0x138e50a087', '0x15cd8f3e5f', '0x1735a34714', '0x14a4ae7e36', '0x14807d6646', '0x1257d7a1f9', '0x14a2a7e928', '0x147ac6cf82', '0x12a2a972a5', '0x14f6cdb4bb', '0x16237f71ff', '0x1447a95ec3', '0x1623626657', '0x15a275a74f', '0x185650fba9', '0x17513cf177', '0x176018ca3f', '0x155090f09d', '0x15def00b07', '0x15f991d5cb', '0x14376e2453', '0x12f0ef58b3', '0x11a12d4c19', '0x13d4aad7c2', '0x136938a9be', '0x118348dc14', '0x13b31aa64a', '0x16289c0e07', '0x1363888c47', '0x15cfaaddf4', '0x1582149e25', '0x15c6c5b32b', '0x1386487f1e', '0x1383bb622f', '0x111343f5ea', '0x1176bbaa81', '0x10b6ccdfcb', '0xf51999906', '0x113b8a9f28', '0x132ae412da', '0x158fd9006b', '0x179aec91b6', '0x1a8dcefcae', '0x1b4bd16c0e', '0x181f8be714', '0x1a9a27a531', '0x1decd20c6e', '0x1bd295637b', '0x1f4c22f83a', '0x1c86be8a2a', '0x1c2b75e1f2', '0x1ab7c3735d', '0x17bbc95793', '0x19c4f7707a', '0x19a4b38758', '0x1ba413477f', '0x1f17b01aa3', '0x1c36dfaf43', '0x18b003b95b', '0x18b81954e5', '0x1642e5f2bb', '0x13dbc4f88d', '0x1656fb274b', '0x15d262f128', '0x1318169303', '0x1559976118', '0x172316b803', '0x16d058f517', '0x19a9e2738c', '0x1847f8b1d4', '0x153ef99b9a', '0x14b4efb68a', '0x174a2887e9', '0x1a336af97a', '0x1768d7032c', '0x191c442698', '0x1aa3f5a6b4', '0x1a0d896a23', '0x181f4387da', '0x16a06b6ca4', '0x16f1ca1e07', '0x19d000a518', '0x196b016d26', '0x17d2efca14', '0x17fcbc84b2', '0x1afc434179', '0x1d159a65d0', '0x19ab3dd058', '0x1881ebec44', '0x187e1b86f0', '0x15d39880ab', '0x17afb94145', '0x161c886d96', '0x167a64ab7d', '0x15995cdf2c', '0x136137bb62', '0x156b8ead85', '0x17d56c0251', '0x16bb1d9662', '0x1922d20b32', '0x1634baab7d', '0x15f50119d6', '0x14493138b7', '0x132006c061', '0x11e03b757e', '0x13f94241fd', '0x158cae4d45', '0x145ce1f04a', '0x12381e8745', '0x13df5ad5a2', '0x1329bd3bf0', '0x140e776ff2', '0x126b22459b', '0x14b7df575b', '0x1220e36c70', '0x13daf631bb', '0x140ac499d3', '0x130fc023ac', '0x1242209a87', '0x1489e5dc8d', '0x171ab9eac1', '0x1725fb8eae', '0x14413c1cd9', '0x16c90d416c', '0x161b1497bb', '0x18de57bab2', '0x1bf9f8f905', '0x19b9af8b0b', '0x180576ce0d', '0x168a5526a8', '0x1534b49537', '0x15701ac8e2', '0x17c41a7158', '0x16b1286224', '0x1986edeb60', '0x1cb7a4ca95', '0x196d18a92a', '0x16d102fad1', '0x19aa9cbe50', '0x1cdfdddc8a', '0x1af50df33c', '0x1a87d17156', '0x1da275f636', '0x1a2c9c0e97', '0x197955241f', '0x18257cb2f7', '0x17b52a9d82', '0x162d4a97e6', '0x172d748406', '0x16eadd2c95', '0x19c57a399b', '0x185775efaf', '0x15d95db7d4', '0x16547739a0', '0x191e3b3bef', '0x19daa76ee1', '0x192a095528', '0x16f6ac6491', '0x18a3599da1', '0x1bb72a43c5', '0x1d11f640c4', '0x1a467e299e', '0x1a2ed5d692', '0x1791b547cc', '0x167b85e750', '0x18ff6e5497', '0x1c1f2841e0', '0x1f58ab39fa', '0x1cf8174c55', '0x19da5ea1c7', '0x19adb209f1', '0x168a827dd4', '0x19104b13d0', '0x1c323c79fc', '0x1fb7dafe4b', '0x1c30ed27a5', '0x1a09d3d3fe', '0x1987c5a95f', '0x16af369530', '0x167a14ee7f', '0x1948ada1e1', '0x161f97eda5', '0x148a07d6c8', '0x171b38da3e', '0x147cbd8111', '0x11ed25d0ef', '0x12f98cf826', '0x135b52f4d5', '0x119ce52a8a', '0x12036b0513', '0x10e8d3f30c', '0x1011b3b433', '0x1213baae32', '0x1455757d8e', '0x16df0de5a7', '0x149c75302a', '0x136070af04', '0x15ca29561a', '0x153ec037b5', '0x1355e4dc71', '0x147988301d', '0x16b4fa4401', '0x198a7fb905', '0x18efeca9c0', '0x177a06daed', '0x18b32e18c3', '0x18c889acd9', '0x15af78773e', '0x132f67cb67', '0x1550137562', '0x14db7ca0ca', '0x1776156295', '0x19a63d1fa7', '0x18c77fb8cf', '0x1a8f69bffd', '0x1a05956088', '0x1d0b2d403c', '0x1af5942f55', '0x1a33e41cf7', '0x195e13aa31', '0x1b4c5772ed', '0x1eb561b253', '0x1d6cf38509', '0x1afb7d1d42', '0x1af35884d9', '0x1c7605f507', '0x1a7ca44cae', '0x1dcbe83354', '0x1c13f579c8', '0x18c9f111d3', '0x18971ed56f', '0x184d9e1b5e', '0x1ab8e30404', '0x182aa3fd44', '0x15b5e89f7b', '0x134b93ae33', '0x15b4b19326', '0x186a9762ca', '0x1942b6840e', '0x17cfb8264e', '0x195f44afd9', '0x16ebfb0de4', '0x159a865f93', '0x1704f501dd', '0x14d1b077ad', '0x151d6cfa1b', '0x13a0a7880f', '0x11c1a49aa4', '0x13f9561417', '0x13f81a6b61', '0x128321b30b', '0x10c14c7e15', '0x12d9617b5a', '0x1211d56136', '0x1453f89264', '0x16de20ed32', '0x16382ec5fe', '0x18ff048171', '0x1c1e12f2f0', '0x1941c24a2a', '0x17fc475580', '0x173d3adf24', '0x159509ec89', '0x1846ffd814', '0x170494108d', '0x146c5f1809', '0x14253196a5', '0x14880f1289', '0x150d8dc2d6', '0x17237a16e5', '0x16b290f9c2', '0x14bb3ba738', '0x13b5cc3943', '0x12084047d7', '0x130931ff65', '0x12035e4349', '0x105c1678ab', '0xeeff36732', '0x10cd87447d', '0xfcf3fc114', '0x11972b78d1', '0x128374c639', '0x146d91ee93', '0x1433bf7736', '0x1318fb0c08', '0x1165761500', '0x139203680a', '0x160377d5f3', '0x18c30d04a7', '0x169c8adbcc', '0x1447ae7ff9', '0x16cff22aef', '0x16b41d79c7', '0x193a52a9ec', '0x1c611328e0', '0x1fec16c6d0', '0x226738706e', '0x26b2b5dfff', '0x2742f9c4dd', '0x27dd45a07d', '0x2354a568a6', '0x27bd17db14', '0x291e2375da', '0x280d5ea0c1', '0x2709bab4bb', '0x2beaa4d5af', '0x2d9a2b6001', '0x2843c38b08', '0x278aa341dc', '0x27db868286', '0x25658ac00d', '0x241ef0591a', '0x21fa88c16b', '0x2638791788', '0x217169f497', '0x221bb87953', '0x1e2953c026', '0x21ee07c8c0', '0x262a454f15', '0x22ac6d769a', '0x2701e8a533', '0x2be0a077ef', '0x2dd3aede4d', '0x2874f2046d', '0x2d82289c2a', '0x28f0e6fd31', '0x2e0ea4eb35', '0x29b35ad97c', '0x2c52a9b2a6', '0x277e2ec5b6', '0x23a15a7e1a', '0x281559bdb5', '0x2d1744a1b5', '0x32b3e38e9e', '0x3908e2f938', '0x3a4a9c1496', '0x4192936944', '0x49c2bba5d0', '0x4fc2a6f0dc', '0x5481921774', '0x5913f22709', '0x64267ecf79', '0x70a7b817f4', '0x665bca5d7e', '0x5994ea71f6', '0x64c5a62f70', '0x65c47b60c8', '0x6d7be78ef5', '0x7b28706643', '0x6e762019ea', '0x65e69c664e', '0x5c547f423c', '0x5cb54e120e', '0x528c122c38', '0x5cdb9b2aea', '0x5f123fe04d', '0x5435261625', '0x4c73d791d8', '0x47385da544', '0x401fa9cee4', '0x3dd4e0c73c', '0x361a44ae55', '0x3a05f89cd4', '0x34492f9372', '0x2f4ed9b3a5', '0x32484603ac', '0x3891318c80', '0x33595235fa', '0x31163089e7', '0x2c9441628c', '0x2841dac80d', '0x2d4978c137', '0x32e2f83004', '0x31e4273bc8', '0x2f59faa895', '0x2d12c5baf7', '0x2a450e56a4', '0x2942ca3a09', '0x24785adb83', '0x29069a3308', '0x25bd1259bc', '0x24676ea2c0', '0x2457591081', '0x1feab1ca14', '0x23e04268ae', '0x224b8780d7', '0x1ff7359f96', '0x23850f8bcd', '0x209e82a377', '0x1ce8023ab9', '0x20814ef07a', '0x1d58ec1b4f', '0x1b4b095a9b', '0x1eb3efba94', '0x1e41a60299', '0x1b1dd8081b', '0x1dcff99f24', '0x1aacb97eaf', '0x1d184ce94b', '0x1abb690981', '0x18140efaf0', '0x1a38529ca9', '0x1a8748a47c', '0x1a51950c6a', '0x1be3edc4a3', '0x1e7ec57788', '0x1bd3f66570', '0x1f4dc64caa', '0x23376dc4ce', '0x276ece7001', '0x2931db6311', '0x2625df5293', '0x2651bb6231', '0x21c4f8d9aa', '0x204fa53125', '0x2459545203', '0x264b4ba8e9', '0x2181e233cc', '0x2227d1d708', '0x1e74d98cec', '0x1ed3fc5e49', '0x1de7c035bf', '0x1cc47f1a28', '0x1ac4490f54', '0x1e1bbc3803', '0x1c81f2f99f', '0x201105613d', '0x238fd4a087', '0x1fc69e88c5', '0x1c9c7d5301', '0x1c70c91190', '0x1ffe57fac7', '0x23fd19af5c', '0x244181b0cb', '0x20b3d370f4', '0x240d561eeb', '0x1fb13cf434', '0x1f29913bac', '0x1c60a6193b', '0x19aee03a90', '0x195f73a659', '0x18a29631f7', '0x17057e0b16', '0x190cc9bdfc', '0x1648d0b303', '0x165e128200', '0x157d975607', '0x13d5b62007', '0x145830a083', '0x1275b5ea94', '0x14c44947a2', '0x122bc01eae', '0x1470cb1539', '0x15c4becda7', '0x13f9acf5b8', '0x13ce718374', '0x1647cf73cc', '0x172f69cf25', '0x1a14d34b27', '0x1cdd1cd797', '0x1b6bfbb232', '0x18dc91d0f2', '0x1a4a0b7d2c', '0x1816849540', '0x1764228a4f', '0x17e75c4749', '0x16ea779c54', '0x167fc28c41', '0x15883985ca', '0x1670ad3220', '0x15788f8e24', '0x13b680499a', '0x149d194043', '0x13019c9728', '0x1533778b0e', '0x17d9d54dad', '0x19bdfe5167', '0x17de4ee5b1', '0x16b35cadbc', '0x19774127d2', '0x17cca021dc', '0x1556f61127', '0x143949924e', '0x12527204b3', '0x144f03c576', '0x148f9be710', '0x12af979984', '0x127245b684', '0x10f21ae0c2', '0x13101de0b2', '0x1308bb4725', '0x12d836e367', '0x1155754226', '0x11f22e6667', '0x143024aab3', '0x16b5e4ca9c', '0x193fbe1ce5', '0x1bd06e9cc9', '0x1877d20e10', '0x159bad647e', '0x184eb27467', '0x188f9343d2', '0x15ce975132', '0x17ff2b5f97', '0x157c3d1123', '0x156fde1d25', '0x1527356a52', '0x141763a97a', '0x1699d6a72c', '0x16ab329b49', '0x144bb9d892', '0x1698ef12e8', '0x16925f791a', '0x191d8c01cb', '0x18f2ec4585', '0x16480276e3', '0x154f225cb3', '0x17f8fde1f2', '0x189e96560c', '0x169866e9d3', '0x18f5073fed', '0x188b98af32', '0x17dc6163f7', '0x1ad722e9db', '0x1d07676019', '0x19667a7416', '0x1704dc0080', '0x16c37d11fd', '0x14b04777fa', '0x13d3e503e9', '0x15e6cf073c', '0x16f8298c09', '0x14464ef396', '0x16cda86795', '0x195f72320d', '0x17662eba30', '0x1a5287d4af', '0x1a0e69166e', '0x1782a26861', '0x1a30690017', '0x17fbaae4ad', '0x190494477a', '0x190bf8754b', '0x169c5f0a4f', '0x196fa52829', '0x1c9d77a18f', '0x1967a4beec', '0x1c947f5b5e', '0x1c8b12c5aa', '0x19dfa4c931', '0x1cad70f7f1', '0x19d5b9efad', '0x1b2216c2fa', '0x18bb07a4bc', '0x17dc2d5570', '0x159c960a96', '0x16c580594d', '0x15b23edcc9', '0x15406d3086', '0x17e820c90f', '0x17db4b0127', '0x1a09d91d52', '0x16f2745439', '0x162d9eb761', '0x15efc72af3', '0x135d3a5664', '0x12fbead0de', '0x11d1e67e54', '0x140c1d367f', '0x118e22fd85', '0x1355b1029d', '0x1188388bb3', '0x13b8f4418c', '0x15741e065e', '0x1483062acb', '0x14ec47aa84', '0x1788a7c1a8', '0x167d9093b4', '0x14f372d2c8'], 'gasUsedRatio': [0.23305321960455436, 0.38536927863555037, 0.7567350774160527, 0, 0.9997943666666667, 0.2761272048822342, 0.25789260736643355, 0.1443864, 0.7761427632583449, 0.9998652965394053, 0.9705378746187137, 0.16978427797178777, 0.8879485016552369, 0.13360496666666666, 0, 0.04232526666666667, 0.5442404, 0.37221056971200955, 0.9997379, 0.7231899333333334, 0.3879816307290736, 0.21267289849470525, 0.4672202099405362, 0.27156019038515555, 0.40175327288168844, 0.8501498695016817, 0.049975929553827535, 0, 0.9994050248173219, 0.9994731372119029, 0, 0.9713363988594637, 0.998169672396517, 0.5266680257693347, 0.059339868013720154, 0.14721120610755484, 0.9995826448036821, 0.15906907549427993, 0.9997736245554234, 0.13923098267596498, 0.40841232927908205, 0.5663944603399966, 0.7650913964188893, 0.06818849455219574, 0.16573820161032804, 0.2575021859871828, 0.9999913163495604, 0.999693132224443, 0.2089937923862748, 0.4816297901131825, 0.6955378137341645, 0.10528477563908997, 0.7628940725651491, 0.03159328990348435, 0.7482935476457515, 0.1988365272739157, 0.4433582971252128, 0.9994314666666667, 0.6256061333333334, 0.98012247706781, 0.6959650060995058, 0.2356038615879068, 0.25078014314893865, 0.24001286191743335, 0.9998522662480877, 0.2583585, 0.5822672506369136, 0.2446235882191096, 0.9997517735238465, 0.21604116172217674, 0.8163639972015286, 0.734939113195881, 0.24601841466189836, 0.9994382017405826, 0.3004693167378648, 0.46452732016793913, 0.8338656133617721, 0.7034876739256892, 0.11762495487019482, 0.10278539856729157, 0.7775443030421919, 0.1114519486083371, 0.9995599397261707, 0.20467272207264514, 0.11493589545552844, 0.99953898096609, 0.8195535108032279, 0.8294183333333334, 0.9993282440302956, 0.6832512377011551, 0.2762383666666667, 0.8545506666666667, 0.1568485, 0.279857, 0.16416523333333333, 0.6132668666666666, 0.08848626666666666, 0.617164794755412, 0.15958944895015234, 0.948454619288576, 0.6342641276831639, 0.20297364854879102, 0.16894848431898837, 0.27847392808269994, 0.038767955435011756, 0.999398671722099, 0.21668994998350774, 0.716893063266548, 0.9996872648840766, 0.41190673333333333, 0.9998691722466989, 0.5968402570509066, 0.14699586666666667, 0.9997572963332028, 0.9628097319557498, 0.8666902666666667, 0, 0.1384642770331896, 0.3593004116903136, 0.6277923127259458, 0.09192910727748317, 0, 0.999380798224955, 0.9998941963794609, 0.9744244348084214, 0.8010167089013848, 0.013176927743843572, 0.19536592466308067, 0.9360861885110318, 0.10084431181430586, 0.5086972718274585, 0.17567644414311726, 0.9999358077840577, 0, 0.999723358668242, 0.23064328267395912, 0.2058671919592297, 0.6305880428876913, 0.441477457358536, 0.061475852662124485, 0.5726411348029368, 0.2855798780193208, 0.9995654654354854, 0.5113877454651654, 0.4519850842099867, 0.9998819, 0.828293, 0.2622271314605379, 0.39907127246652097, 0.1819661264241712, 0.9999184331810753, 0.6907238812212575, 0.9999202664434127, 0.9811296202370982, 0.15015256157086282, 0.33242452912189674, 0.5160055428888547, 0.09280551079492648, 0.9993222497843689, 0.5247249879013713, 0.11120420219142409, 0.7399227631144955, 0.23391763333333335, 0.044496150490954414, 0.00987404145385402, 0.9995705802565147, 0.482978907238467, 0.23330593422991597, 0.4910547713213362, 0.18930503272912055, 0.9308213273857177, 0.09772414663840436, 0.28736031418755686, 0.9720190640033473, 0.9994389699089417, 0.8239920594158453, 0.977684487165631, 0.22855276442388056, 0.9994148906147039, 0.12916203477300145, 0.8898837735679669, 0.5682383614352989, 0.33185658332646384, 0.06134236520920241, 0.999789955855327, 0.476554811466171, 0.46100404568959225, 0.5957290130831318, 0.15282545017542323, 0.43918093840783823, 0.12616196666666665, 0.964102746331793, 0.15638567526382668, 0.12733316392329622, 0.439342834751386, 0.9659771333333333, 0.9997668056190203, 0.5733376351151261, 0.7291200333333333, 0.46542066666666665, 0.029982144230507757, 0.9997071663933553, 0.11862606666666667, 0.3850827666666667, 0.052488188048963144, 0.8858718141727194, 0.8438693910845741, 0.3425280572958989, 0.39134918193914187, 0.6274820390890075, 0.10509290331708443, 0.5519816687152249, 0.9324624735057936, 0.37118128371375964, 0.7472135115437848, 0.4027908171325265, 0.9732391465689585, 0.12377990882860894, 0.5916721270919558, 0.3293485357388936, 0.025339050114416638, 0.6078549616665978, 0.33399003203771, 0.8415858108211012, 0.27908365148668435, 0.345118914690327, 0.5794400798092006, 0.07529248935217069, 0.4325129310877477, 0.9581393545108685, 0.4019738434484926, 0.1865895186579389, 0.9993284551395543, 0.11002728253902792, 0.8616568867796416, 0.08532149151402273, 0.9995726650570383, 0.9999230082257985, 0.93751210422396, 0.0833118817287483, 0.23251445091522185, 0.9208186666666667, 0.14667723333333332, 0.9794961446519193, 0.9998741332158577, 0.4027558002777181, 0.4448564970654612, 0.227772, 0.6618690333333334, 0.5295481, 0.9891265179552168, 0.09430063969339376, 0.1120364713543115, 0.019205533333333333, 0.9997278675960408, 0.9644808335154447, 0.06480430855799486, 0.21043831937106502, 0.4899461423766891, 0.2573576667714177, 0.999413554672275, 0.07432191818100004, 0.8029348630165912, 0.3319675557849533, 0.24256565827202264, 0.46707774754113707, 0.03336688708954875, 0.9696683289130338, 0.9585519138591865, 0.8335241450619796, 0.9768963165531122, 0.0890734494774452, 0.9999100700514182, 0.9998891834681908, 0.3930593871396955, 0.43567911464423353, 0.23461231135209357, 0.07419634384933681, 0.9996415175079064, 0.9999475286776859, 0.9824488165703519, 0.0972698954667455, 0.3810701319194175, 0.2366209773938393, 0.9995926110472881, 0.5820650396789989, 0.0341137061132247, 0.561762889590036, 0.4257728761820565, 0.19952436531903506, 0.6905195488114694, 0.3322663515365908, 0.0671992, 0.8000366357748341, 0.12465374967683303, 0.9993016666666666, 0.7122688333333334, 0.1421354, 0.6057377362327646, 0.35154926144597737, 0.9995533333333333, 0.6582337652717879, 0.5728435679873302, 0.0127352, 0.999962963834184, 0.46942417146256005, 0.6250365315404787, 0.1000098200183307, 0.1377918, 0.26242465767822276, 0.5831685171567244, 0.4215941990224724, 0.2100291536036546, 0, 0.9996111401808754, 0.969666858338738, 0.33778993708045146, 0.4527099313968787, 0.10871444135758385, 0.9407689666666667, 0.046442166666666666, 0.3584908337008911, 0.2486038736504112, 0.9995678776147725, 0.9506388728805252, 0.5986567924724217, 0.26058900500218085, 0.5914308333333334, 0.2981167109682605, 0.9452390822231435, 0.4088307714904138, 0.6976458356055598, 0.11730146666666667, 0.2220999, 0.30002216666666665, 0.9998347, 0.433982, 0.9966242333333334, 0.4019901899128834, 0.9995693329170218, 0.37340242175385036, 0.2131701716899929, 0.15258428846783692, 0.7768999031808186, 0.9999635643161057, 0, 0.9981679333333333, 0.9999183, 0.3935172637253056, 0.05924293333333333, 0.47318409760464425, 0.12823966571011053, 0.4845225045974939, 0.6205848228451774, 0.7068002353554736, 0.6185360488362608, 0.18884000452884483, 0.6363108999178129, 0.35082423218888936, 0.15922837629746653, 0.9700999473904852, 0.9995933346657506, 0.33394775848431546, 0.24734871504912054, 0.9199194624013424, 0.8641712077346367, 0.11276739710450662, 0.8778320035680459, 0.5630598334792908, 0.6119089869685279, 0.29138438496666913, 0.1998575163311291, 0.5179824709642509, 0.05425804766895723, 0.879421908117758, 0, 0.08085875542571766, 0.9090151550118829, 0.9580876538423296, 0.2307869654387362, 0.5717101140915106, 0.3640573565381543, 0.04730636666666667, 0.19486715444298025, 0.9580405924391474, 0.9986191502654128, 0.2726375368640801, 0.22107925863025787, 0.8898493090338765, 0.10758926533720592, 0.38574503293618956, 0.5446864840142012, 0.17635261840037755, 0.9999086104107857, 0.03777374546239519, 0.7570764333333333, 0.07684176666666667, 0.6939422986786736, 0.3387949, 0.12404963220082256, 0.9998741791830157, 0.5886871160953451, 0.3883635, 0.646410580068563, 0.8739841781847055, 0.07545058376394313, 0.9994372008344697, 0.9995515207841617, 0.061179989017163275, 0.9995779644346109, 0.9999198320417756, 0.2739902362647584, 0.5681749921436738, 0.05286481769980142, 0.7568411440877367, 0.626960051047278, 0.18924473619341922, 0.9990687666666667, 0.9997504333333334, 0.9997617326680497, 0.10316536639318752, 0.8504000333333334, 0.118835, 0.9999015627906016, 0.9999313009024133, 0.19506410846006025, 0.22432692285300143, 0.31979234104416304, 0.5610580666666667, 0.19993386875617375, 0.8354481838848221, 0.24379881787364352, 0.548176689073761, 0.27619185482846464, 0.9997738715306798, 0.9260228559710448, 0.4980298724271828, 0.03311507241432852, 0.9960241395080962, 0.9998518661037579, 0, 0.3640634, 0, 0.6146511734005561, 0.09227582988118119, 0, 0.9596151874994494, 0.7580484681050617, 0.05772720276481443, 0.47260628043783726, 0.07881406405412773, 0.9998579659896378, 0.4698036, 0.13979796666666666, 0.9998397666666666, 0.7241142308797874, 0.16416486075251296, 0.8665283358973952, 0.4090057771109765, 0.9996745, 0.3323819956479165, 0.5099569, 0.14737825180378028, 0.6043671, 0.5190264666666666, 0.17993326666666667, 0.24765746666666666, 0.22302535092184184, 0.999417966123435, 0.4153413, 0.10884275161361737, 0.999472632841124, 0.9992999824461757, 0, 0.9997521, 0.4444186585132951, 0.5499024315723505, 0.08635865425415326, 0.4979583207329419, 0, 0.5910195, 0.32827623333333333, 0.16607433825797557, 0.9997363330872442, 0.9491395333333333, 0.9996701666666666, 0.879051326954104, 0.9996815663694619, 0.6118063333333333, 0.0350356543501937, 0.9110459666666667, 0.9996454, 0.21896641263139877, 0.9995675995820129, 0.14584113333333334, 0.45000026666666665, 0.2938298248239406, 0.0532143830000908, 0.8431193808360358, 0.4804362794955977, 0.8115901264463818, 0.9994930093571837, 0.12972711708089846, 0, 0.5051167, 0.10228136666666666, 0.0682472, 0.9997958, 0.40726, 0, 0.9725799401606088, 0.8348200718592322, 0.4441229, 0.9996531720108647, 0.284524, 0, 0.3984818508606988, 0.998947278350492, 0.9999931266148284, 0.07385808062673337, 0.790631013070889, 0.7437318854374781, 0.4117749613869926, 0.20356383014288484, 0.2520143733943625, 0.5561905887740478, 0.9999926857081175, 0.43886384195134576, 0.24915104034046293, 0.5274144329069744, 0.9999571830451538, 0.8111291045125401, 0.030266847640761964, 0.31901752462206057, 0.49756831759092174, 0.06459323135088704, 0.8408463490646557, 0.23403093333333333, 0.5663261174536935, 0.3435765843978502, 0.08899779237545392, 0.9211382168292787, 0.9507034666666667, 0.31492423333333336, 0.9232292, 0.033729770454181844, 0.4551606581499476, 0.19556184971148313, 0.27111118177791205, 0.23873170843686797, 0.9694049516286507, 0.8155889904453701, 0.27972385849252146, 0.07891756540809436, 0.8629714833068983, 0.3572023121557338, 0.6864977708777771, 0.17331938138953337, 0.9994458844790542, 0, 0.8810247413197976, 0.537620803551728, 0.3043042061145417, 0.3314477885162843, 0.999576032132091, 0.9996889286908313, 0.5076124453402108, 0, 0.9997396987765842, 0.38069960912313827, 0.9999131661775028, 0.9998975994289858, 0.17814071273999776, 0.2350486096214522, 0.2533889421966979, 0.26318368151540056, 0.5437667705586574, 0.934393046003879, 0.3192367674922811, 0.9997431, 0.9999070666666666, 0.041573329689775396, 0.08944550358603351, 0.9996399146952841, 0.9999560332497965, 0.23440421631744368, 0.4366842518281886, 0.9679999268617041, 0.03293045846907552, 0.3929786703238518, 0.2915484466626475, 0.42731803203029584, 0.2417272452067539, 0.6804830804822113, 0.4551079925761679, 0.9981288025537519, 0.278086839080669, 0.09040447246017842, 0.5880325978599764, 0.9994454229963441, 0.6172104753699326, 0.393260726976024, 0.15019567456918614, 0.7916825503236796, 0.9996171307808719, 0.6955116333333333, 0.1154406, 0.48593172100776927, 0.1006900640003952, 0.31557936831321387, 0.9475060669281938, 0.9998733666666667, 0.9586712091023551, 0.19664650041190407, 0.06973486350458027, 0.47299986536641087, 0.01127292943415838, 0.9476439849912908, 0.9999415902050037, 0.9996340806241582, 0.05519944083723096, 0.194552, 0.4219569590295077, 0.05410997092048707, 0.4634031347952361, 0.9995386, 0, 0.213565, 0.9999525203027423, 0.046605810983427046, 0, 0.7339457611636129, 0.5805125, 0.13963698885294823, 0.5909516515548748, 0.2548779, 0.30121550360593785, 0.999819633164991, 0.9993634666666666, 0.9991647, 0.10471995904000256, 0.2604320097365424, 0.9981181333333333, 0.40003113333333334, 0.14046386296218258, 0.7356721143453431, 0.9360905306240006, 0.9992424318939539, 0.4054373465665474, 0.265725485407637, 0.7084205367930505, 0.5135107513408551, 0, 0.03881400187282882, 0.9435964966011319, 0.41452525128228673, 0.9993713321388644, 0.8730585666666667, 0.3643120492838743, 0.787484327901517, 0.41891677718580655, 0.9645100992358552, 0.2129333, 0.3877429023891503, 0.3724998666666667, 0.8044403666666666, 0.9997122476568298, 0.3328892217929144, 0.16787916161520564, 0.49528456666666665, 0.7241820971512015, 0.22254742741480887, 0.9998141850387359, 0.2692954783280755, 0.031429033333333335, 0.4679661355980782, 0.4532953564089993, 0.8981403, 0.11744947725212997, 0.09349058917177798, 0.05498958915612523, 0.9997324994828324, 0.9995039834012432, 0.6383047177503481, 0.2705210540351247, 0.76218331377548, 0.11369563333333334, 0.2699680237752165, 0.7621321995289605, 0.11766717259178529, 0.556841110689176, 0.2182303165417044, 0.118671136234886, 0.9995493586719261, 0.4990354130333891, 0.20816585805178622, 0.12032466833047635, 0.9999250264334374, 0.3345852626498217, 0.9999206554037157, 0.999739631614902, 0.38661273333333335, 0.9998678333333333, 0.9994869333333334, 0.09304943333333333, 0.2986437077527128, 0.3755439666666667, 0.21479253333333334, 0.9995155, 0.29248846666666667, 0.049123066666666666, 0.44554497466776305, 0.5766813715692801, 0.6015931171658218, 0.8962652063617186, 0.4237538199456408, 0.15350482981352348, 0.30295926666666667, 0.1594816671813359, 0.7226431809988552, 0.2850879574220552, 0.1328374436426877, 0.15221646733699135, 0.9995645491435415, 0.2635451072932461, 0.9505981894204376, 0.7098844567290801, 0.9136456550442891, 0.45577293478847675, 0.2812984875904666, 0.14367263341334233, 0.9998826900060844, 0.9993637852169411, 0.9993960986649882, 0.1526240556506061, 0.08755711718867068, 0.9994638518661415, 0.4809376125061268, 0.9447315337401757, 0.9996664893136001, 0.9993831930115247, 0.8108784041294188, 0.999358447047083, 0.5582494913022902, 0.5614054906488902, 0.04508773333333333, 0.9990563666666666, 0.6388153333333333, 0.396346068064535, 0.3987102334940937, 0.9998792844287303, 0.6535316968279472, 0.03181916666666667, 0.4281604987270069, 0.5319630940905377, 0.25303303135371386, 0.3635392573912557, 0.2627735333333333, 0.9993663145394811, 0, 0.5795694333333333, 0.0371389, 0.9997602992655662, 0.9993030326828305, 0.13405593073523164, 0.9999674332725421, 0.9993908936553471, 0.6777166666666666, 0.03127349476569463, 0.9994574, 0.098544061609495, 0.9998584570320237, 0.12163582830096992, 0.7515355945842964, 0.0641079, 0.10877888925202127, 0.9999245193233538, 0.9997071429049017, 0.9978211684975299, 0.9995412903998175, 0.5881379358625137, 0.9996354323271132, 0.9994841582303965, 0.825359494090707, 0.7380016908404482, 0.7163998031268083, 0.9972033272843852, 0.9994401922756496, 0.13440300535064234, 0.0007020546800302218, 0.9996718925394629, 0.5395125590878115, 0.8032989193117044, 0.999578453818388, 0.08763405206284607, 0.190005694682763, 0.12431090221661541, 0.5163827758718705, 0.06158925323704269, 0.9996263663378959, 0.5953479356529043, 0.0429251, 0.1316197933949168, 0.22624421116126375, 0.10143351116159305, 0.35701819976730625, 0, 0.7898724666666667, 0.10447336666666666, 0.11918034627480402, 0.751484601385628, 0.9999645012980171, 0.1310048822426096, 0.3237756153954362, 0.13268604261045405, 0.11220608716136002, 0.999761366829348, 0.9945879273339975, 0.4217573274963449, 0.296377591214575, 0.30755394997323227, 0.25119835111780525, 0.404532030408997, 0.035563978035665106, 0.9996585336450504, 0.17949632591384118, 0.35855005649868615, 0.49309646231303617, 0.013012550063184922, 0.9961952359625015, 0.3237288029274509, 0.22831351700177088, 0.9447405140347619, 0.17335512541614326, 0.04469771717214385, 0.997999223862993, 0.11141395642117234, 0.22001001339007586, 0.9997253635946105, 0.44183771612892647, 0.08490003188801577, 0.8976644957392013, 0.0790078, 0.8629232887418768, 0.17515266666666668, 0.10291623333333333, 0.855781270410556, 0.5470543866330001, 0.4683703163719097, 0.7388670038473073, 0.873585, 0.15014531690195476, 0.999616399641973, 0.9999662002963764, 0.9789023963801304, 0.6787257986547371, 0.20415504548704683, 0.5179644426020152, 0.025059441088445735, 0.32726292828217224, 0.9998686767364312, 0.7140563325016299, 0, 0.5773785666666666, 0.0667935, 0.5488073895840712, 0.38026586759033865, 0.3478245522218225, 0.22179436666666666, 0.9993661143439903, 0.2873377348485525, 0.9993577666666666, 0.9360128, 0.07415230973045178, 0.10163852819595964, 0.47613258786246304, 0.9997033661129501, 0.9994938599676135, 0.5296995666666666, 0.10795991048074888, 0.909712485460493, 0.016282316057941608, 0.4331114, 0.1425384, 0.12020301157413547, 0.4516802215682068, 0.38369396666666666, 0.23799180100631734, 0.8524536333333333, 0.05839936030867476, 0.5149046472443374, 0.34318664206350763, 0.1918129913842506, 0.6027853, 0.12944566666666665, 0.9998830333333333, 0, 0.9996337, 0.7598627392982581, 0.17048937328928557, 0.4661830624293766, 0.9996540911065979, 0.662419815326188, 0.9996531893454583, 0.9267221382734201, 0.3001765505002264, 0.12654406666666668, 0.7296936124792527, 0.16506792359137862, 0.38428933001044085, 0.5876570165483315, 0.3346930303275391, 0.42724255103664055, 0.3280933532137389, 0.6686809672623968, 0.3272377694336138, 0.1724790886907513, 0.6827781333333334, 0.18809606666666667, 0.9618989610020852, 0.9999505332871644, 0.8171788, 0.20884023333333335, 0.30430043333333334, 0.9872471802048033, 0.2382344890188564, 0.0866056, 0.2908286, 0.12386325246603308, 0.9337066576428293, 0.5496973107980614, 0.13521848621085267, 0.4487248346828384, 0.17459113027177, 0.9997681545749387, 0.493946722096753, 0.4601725109514755, 0.17932074808550938, 0.6412729398629476, 0.9997295042797707, 0.9997930268052854, 0.9471006478961761, 0.9063834154625872, 0.018786757203485074, 0.0324622030122052, 0.9996819118102164, 0.5417042089886696, 0.051506490037374064, 0.9016617634276315, 0.08136861290099565, 0.4910033643583549, 0.44704026844987543, 0.2992178106164574, 0.9996309985977947, 0.5120011431547201, 0.08128483333333333, 0.9536096665060098, 0.4954634290992005, 0.9507662773183269, 0.4734824445475347, 0.07230527681617027, 0.3254733555078406, 0.9999748666666667, 0.6079326795949578, 0.17112855434665497, 0.9181080867178305, 0.43399189125126003, 0.3884613333333333, 0.9994815937763226, 0.826157071079933, 0, 0.12499285552341861, 0.4556270919186191, 0.1353768, 0.33355514993724705, 0.9183807238220089, 0.6950154327776299, 0.03072459171005758, 0.9988909142483069, 0.9507206587325551, 0.18885058730351884, 0.9997163655888559, 0.45956381560988957, 0.10915383333333334, 0.9557683077525203, 0.16306201885788427, 0.6725902333333333, 0.504616257775718, 0.11097806992436368, 0.9998116821898757, 0.9999180065334264, 0.05125114284579535, 0.9999375780316353, 0.49484772086797, 0.12588050748324486, 0.9334759666666667, 0.10350293728492539, 0.7010138209462329, 0.14580985274373348, 0.3591996705060516, 0.12306856666666667, 0.7146665051756373, 0.31112909038715103, 0.41803096666666667, 0.9997413666666667, 0.49161123333333334, 0.8658282479507906, 0.025105474226054206, 0.3659726260428694, 0.45643103388563105, 0.030928666666666667, 0.4214798, 0.25471442863956656, 0.9999791333138578, 0.00275662775318689, 0.9054658748535891, 0.12707124711639128, 0.99973765406019, 0.8510930371143474, 0.32440782193612927, 0.5801792970922963, 0.9991339625962908, 0.3226683309160158, 0.22619241509035218], 'oldestBlock': '0xd0ff16'}}), + (('0x400', '0xd0ff14', []), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0x1c3951214c', '0x1d43ae1772', '0x1b87b4cdf8', '0x1d74085c39', '0x1b0894ecfb', '0x1aab5b2e3e', '0x1e0009d939', '0x1cef2a1acc', '0x1a27b55ada', '0x1aba6fb66d', '0x17d59d3bde', '0x186987490a', '0x15c383c2e4', '0x16065cc0f3', '0x15732616fd', '0x131c863d38', '0x154ecad4fd', '0x169d6dd2d5', '0x159d9ef0c3', '0x163699c876', '0x14cb255d5a', '0x12a8134d61', '0x14ef87347b', '0x176b51f0ca', '0x155270d027', '0x136788c588', '0x1218d3ac0b', '0x11dca96b38', '0x1078bfdc95', '0x11f060006d', '0xfd0b346e2', '0xe523594ed', '0x101c2283d2', '0x11ec11f82c', '0x10e08e6058', '0x11fec5aa65', '0x1021ee519f', '0x107cf58740', '0xea0aefd68', '0x1043031ea6', '0x10b3d89037', '0x12ca2f4d73', '0x14f5490161', '0x130fd73e1f', '0x147a16b3cf', '0x12dfd25c59', '0x12ef1fbd2a', '0x10bd0aa81c', '0xf62f097e9', '0x114ead5ed6', '0x1372fe2107', '0x1356fa6cd5', '0x1162127104', '0xfcba148b5', '0x10198f5167', '0xe5f452be4', '0x102aaaa967', '0xf8c320f88', '0x117bb389e9', '0x10d8e960d9', '0xf88a7b5e7', '0x10a2e2d897', '0xef16b17b0', '0xfd0a53cff', '0xef78e41ed', '0xe03987ad4', '0xf62a9328c', '0xd76540c3b', '0xc3965936c', '0xda5c8a708', '0xf5a123d10', '0x11384b01f6', '0xf8ff2d485', '0xe16becd2b', '0xfd99359c9', '0x1165ec9013', '0x106e3a5c2c', '0xf47dd1de1', '0xe04f2457f', '0xfc5640687', '0x11bd71c36e', '0x13f475b542', '0x127b9e3c73', '0x10437c95c0', '0xe99827de0', '0x106c2f1b11', '0x12790b1843', '0x1354a3d552', '0x11cf1e1003', '0x11e448c006', '0xfe4f2ed81', '0xe764aed18', '0xd8543ff70', '0xf083b6d59', '0x10e8a31f41', '0x1305402ddc', '0x12c3b23ec3', '0x117e233d71', '0x120d5fc558', '0x107d8a84de', '0x12616bbde3', '0x10ffed1181', '0xf1aabcf6f', '0xd37565582', '0xeddcfae5c', '0xfa68a4d42', '0x119ad59dc9', '0x1098fb65fc', '0xf6fdd7410', '0xfe01b7a9a', '0x1165ea706f', '0x1162b0dff6', '0xf5602261d', '0x114057ce45', '0x133a5d9f7b', '0x145509e235', '0x12439e22f6', '0x148bfb3384', '0x13043f8a3e', '0x11ca38db28', '0x132333d603', '0x1494be5b75', '0x14b73b33cf', '0x1411655d05', '0x130fa2fdfc', '0x15466989bc', '0x17ef123f40', '0x1672d1a39e', '0x1702849fbb', '0x1455346988', '0x1386882b1c', '0x11c3e4df0c', '0x1124f72ca6', '0x133c4fdb99', '0x1286a9a281', '0x126e0e270a', '0x11f357badf', '0x1271a0cd3a', '0x10f2523ab5', '0xfd12b0a8c', '0xfb7f8bb9f', '0xe36722a58', '0xf57aec005', '0xe282aee94', '0xd1d944d2c', '0xe8d27cb0e', '0xeab295e6f', '0xd101fb777', '0xeb1f2c8ae', '0xd3e1d9488', '0xb9659e1f7', '0xd03e34787', '0xea404dce5', '0xf56cbfc1b', '0xef6c4ea79', '0x10d4f7aa43', '0x117c36f8d7', '0x1184510fb4', '0xf595cd717', '0x10703792ac', '0x127d7cc439', '0x10d00b7eeb', '0x12bcd4fe08', '0x1198cd3787', '0x1278d07d74', '0x10d616f023', '0xebb54121f', '0xe5574b09d', '0x101fccf46d', '0x116b20c359', '0x11cdb230c0', '0x1022489442', '0x10ef09a72b', '0xffaa89245', '0xe9aaa373f', '0xf2bbea97e', '0xea3575ac5', '0xe3c503b98', '0xdfcfd7e8d', '0xf90b12b0a', '0x118240126a', '0x1184266ebe', '0x11a6d1e228', '0x109c986e82', '0x1240f92d8b', '0x10f2e3d58d', '0xf825eae01', '0x117201afe4', '0x10cf41ea7b', '0x124464f541', '0x1096837e90', '0x12a9373f46', '0x14fe1960c8', '0x17574ec97e', '0x1527c383f7', '0x1723d4b433', '0x157ae07c50', '0x17e7f3541f', '0x18efd43979', '0x16a9989f4c', '0x17841d33d7', '0x1917f4f3c5', '0x196140c2c2', '0x168091501d', '0x15f30a108b', '0x13c4e7f606', '0x163d3c16ff', '0x18dde3804c', '0x18d31ef0cb', '0x1621256200', '0x18e4f32293', '0x1c015e7e4c', '0x1d1525a69e', '0x1c9280134c', '0x1d8b65a48d', '0x1a44a0dd70', '0x1a291a40e4', '0x17d00b207e', '0x1a9f698c65', '0x17d8ee1616', '0x1628f62ebb', '0x15aea68531', '0x14256044de', '0x167addb64e', '0x15306fda28', '0x153c853a9a', '0x13947cce87', '0x15dedc6b95', '0x14995b5ede', '0x147f5cd440', '0x129425171b', '0x1126e3c541', '0x134b9b0210', '0x120ea68655', '0x1156d3342b', '0x10fbcf7a3d', '0xfdaebb0a4', '0x105a3e9156', '0xe961b3a39', '0x1044a70683', '0x10dc45269c', '0xf743deb20', '0x116219aaff', '0x132f9799b8', '0x11821713f8', '0x114353fb38', '0x136b6b48ea', '0x1478288f32', '0x124be87d94', '0x1161785fa0', '0xfcec1eb6d', '0x11c74bc2d2', '0x1400180bb3', '0x142e88c202', '0x12bb1add61', '0x1512672728', '0x1547face77', '0x15a7867687', '0x148c74a94d', '0x12fe6d6a71', '0x14ca6cd7d3', '0x17630485b7', '0x15df30e458', '0x187c992736', '0x168b8f10f9', '0x147810af04', '0x17062c8a98', '0x1659f91677', '0x13c9d6c76e', '0x137058dab7', '0x118597e244', '0x1278a80f11', '0x14bfc17ff0', '0x13ce5fc3e6', '0x1647cc57aa', '0x18d54def34', '0x1665146ee2', '0x1476b2c3a2', '0x170565d356', '0x16aab8c387', '0x13f5828616', '0x13774e36ef', '0x15e6339f3c', '0x14e2c061f9', '0x12fc3f336a', '0x142e702329', '0x159d81651d', '0x13b54145c9', '0x123dc6a4bd', '0x144821fa64', '0x142d7fe7e7', '0x12d79f8a9b', '0x10ee4a0ae9', '0x130bfc5921', '0x120e503529', '0x119563014c', '0xf62b6a123', '0x11239e6fcc', '0xfd30829c7', '0xe88e03c49', '0x1026df52d2', '0x122b9a87cc', '0x147059cb1c', '0x12b9066d0a', '0x10a6ecffd5', '0xf62d576ce', '0x114efa9436', '0x1378219785', '0x15e7243dd2', '0x138308eeaa', '0x15f2c530e3', '0x18b0cedcf8', '0x16ef8aa2e2', '0x15a3748cca', '0x13f1674bc9', '0x15675264a9', '0x13185df4d0', '0x10c083184d', '0x1282dc4427', '0x14d26c2ea9', '0x1647d53b57', '0x1672c11d69', '0x1639d5e93e', '0x183d4182fe', '0x16bef1ba5f', '0x155e17f711', '0x13bcac532c', '0x148d3769bc', '0x121728d2a4', '0x14596b3927', '0x16e450989f', '0x15288e9895', '0x1361322711', '0x11ba4ce241', '0x13f18555ea', '0x1437312237', '0x125b34b606', '0x10faddfe1a', '0x131a31cb5f', '0x10ec8a67b8', '0x13099c9e29', '0x13ee4beb43', '0x141dd2da46', '0x11fb195b1f', '0x1045513378', '0x124dd46472', '0x142b16de19', '0x12d4a5d660', '0x1238bd6efb', '0x10f9d2165f', '0x10c424a852', '0x10b79dd4a2', '0x125fd4d9d4', '0x10656aab1a', '0xf17fe231f', '0xf0af58078', '0xeb35bd55a', '0xe52438aec', '0xcfb93a386', '0xe9af5d3a5', '0x106e452b21', '0xeca9abf2d', '0x105e6bc2e3', '0x1269f55293', '0x11d871d932', '0x12e34d390b', '0x10a8ba82fa', '0xfe76e3fbd', '0xf0265c338', '0xf503f6aaa', '0xe1aece137', '0xf0eadbf2a', '0x10ef556608', '0x130d3a733c', '0x1326c35f37', '0x1120abdd41', '0x12f4ab67aa', '0x1502a90d88', '0x1380260806', '0x136a34949d', '0x12326af1a0', '0x11a826070c', '0x11019befc1', '0x123fc3e662', '0x1151cd04a4', '0x137bc695b3', '0x15e9d87d66', '0x13752d507d', '0x110687a66e', '0x13275741bf', '0x158c0ad94e', '0x13deac0ad7', '0x14277e41f5', '0x11cbd710d7', '0x119b24c7b6', '0xfe3bfd463', '0x11dfd9e57f', '0x10722dd75a', '0x127fbad3c5', '0x14751e8775', '0x136b8f143f', '0x113be89551', '0xf146b82a7', '0x10f6da3076', '0xf23bdfbca', '0xf9141350d', '0xec2922344', '0x109a8686f2', '0x1025fedd9e', '0xe99baf659', '0xe0a747c2e', '0xe1613e15e', '0xfd74e1faf', '0xf3d5e1245', '0xdffb4f3d8', '0xc3fbe555d', '0xdc77c94d0', '0xf45a61601', '0x1112f39994', '0x1123488f8f', '0x110e0d4ec8', '0x115784bfec', '0x13823e0fb3', '0x12d1e02e6d', '0x124bf0b42d', '0x10aabc8625', '0x122d9c7ee7', '0x129a7492ae', '0x14ecfb2598', '0x175ed89d9f', '0x15bc858000', '0x1468dbb26e', '0x13326bba9e', '0x11c85aa550', '0x12c7b5bd46', '0x1093030b03', '0x112742f634', '0x10fcd9254b', '0x114e7dea24', '0xfcad9a735', '0x10fdabe040', '0xf1e0539d0', '0xef9190028', '0xeb1cb0275', '0x102d488d47', '0xe8028e649', '0xe0de3c12b', '0xdd72fee6e', '0xc87e474b7', '0xe09f57c52', '0xd711fb101', '0xf0fde400e', '0x10f13fc434', '0x12ca26dbd8', '0x13da38b6df', '0x11c413637a', '0xffa4c6090', '0x11f8dfdb58', '0x1205bf4f4f', '0x1275aa3b93', '0x11dcb8198c', '0x1417c39313', '0x15f3b49eae', '0x1390e368f4', '0x111ec6fbd6', '0x1341e1dfac', '0x158981551f', '0x16e0fcf0e8', '0x1558bae250', '0x1402e97414', '0x13296b9a58', '0x13aefb51b5', '0x138213918d', '0x133258098c', '0x145cfc7ce6', '0x1279b23f07', '0x1338e11a56', '0x121df3bb96', '0x1271211416', '0x11045e6325', '0x12e20eb99a', '0x11058cec21', '0x1325b068ec', '0x11c0e4a80a', '0x103582fdac', '0x123b54b1b8', '0x104fd69d68', '0xff8a59fe2', '0x11c51151cc', '0x111a2f23a2', '0x133cc8ad97', '0x12796acdc9', '0x123b9b51ad', '0x109c22b827', '0x12af2f2c82', '0x10927ebfaa', '0xe802ee7b5', '0x104fa1c130', '0x125926df75', '0x11c22a6c3f', '0x13fa3d009e', '0x1679395944', '0x148fd9dd04', '0x121b85b804', '0x145e9a5880', '0x142d55ea3b', '0x129af0844c', '0x11be999312', '0x12220597ed', '0x13b97369bb', '0x11bb5f77cc', '0x11d6fb2d87', '0x105de8de53', '0x125f2c38ce', '0x142a9d4db9', '0x16af8aecc2', '0x1450ef4fa2', '0x138f8f0e11', '0x13065c2745', '0x1566dc4031', '0x17e71c903e', '0x162c39e9b2', '0x14ff8da151', '0x14c896563e', '0x1441d509d4', '0x124c2fe23d', '0x1495387539', '0x165dc560f3', '0x146511dff3', '0x1463a90449', '0x1370daa6bc', '0x134e4c39c5', '0x12cf39dc7e', '0x13a827b8f6', '0x1543aec11d', '0x1414dd6ddb', '0x1696e7e208', '0x142f8819af', '0x165aebf484', '0x1478e747c4', '0x13bb2c8943', '0x127e5c11a9', '0x129b2e2a2e', '0x13106a0a61', '0x146d32384b', '0x16d9cd66d7', '0x19b4c89bb1', '0x1779cb91f7', '0x16ed91a755', '0x14a3b7d623', '0x1736b377fc', '0x1548f6c758', '0x12d431f4a5', '0x152e9adf57', '0x17d37747bb', '0x16bdc9e60a', '0x199527b9df', '0x1cc44a81d1', '0x19ad2658ae', '0x17f6b46f20', '0x1a7ae6c447', '0x175bd659f3', '0x16885dc5f1', '0x1958a05f07', '0x1a3ffbb401', '0x18374ea5bd', '0x172e927fe5', '0x14a6f6719c', '0x1722851dd4', '0x19d39a1517', '0x18c6fd6aee', '0x1a8fcc8713', '0x185a1bb126', '0x154ed83b02', '0x14fc802044', '0x155de33bb2', '0x1809220c70', '0x172a60b9b8', '0x172e3d1025', '0x15353b2e60', '0x141243903a', '0x16645067a0', '0x17bc889b73', '0x1865527677', '0x179390e776', '0x14cac38001', '0x1535decbd3', '0x17dc1ac2d3', '0x16e13ab0b9', '0x19bd3419cd', '0x169937c23f', '0x196bc2fa9d', '0x1b94a17c60', '0x18c8e9ca3b', '0x1be1333ee4', '0x19bf123609', '0x16b6c0b472', '0x152d31700f', '0x17c8394634', '0x1596675759', '0x1848b80335', '0x1b50c7dfff', '0x1882926762', '0x1b86a93685', '0x1856e42196', '0x1619a7b2d0', '0x14f934448c', '0x14e69e84e7', '0x161d3780d8', '0x13c9ae4786', '0x16425a9d52', '0x15082092b6', '0x1518df1b2c', '0x15d1dee679', '0x14997246ae', '0x154018aec5', '0x1424fb1bee', '0x12a323b1aa', '0x128a42465e', '0x11baa7e021', '0x13f1563967', '0x165f6da34d', '0x14219ad0f8', '0x122ecd1ff5', '0xffe8885b7', '0x11fdc9c1f9', '0x1076f15c78', '0x101adf5fbf', '0x121ded5b2a', '0x14615ea1d5', '0x13adcbbece', '0x14a42e7a49', '0x17389f436c', '0x1a1f48cefb', '0x1bc7f992b9', '0x18e88e3ea3', '0x187e6ac42d', '0x16151576e4', '0x188f3f555a', '0x19ec1d4499', '0x173857f799', '0x19dd1e5ad7', '0x1d13881954', '0x1a94069ea6', '0x185175aad3', '0x16592b44cd', '0x14d7c5e357', '0x1587e7707e', '0x150d5ac0dc', '0x13da2f42ca', '0x165566f2d5', '0x16f19ffaa9', '0x1421b2d259', '0x16125338cf', '0x13e4f2c08a', '0x140e14e4d5', '0x11ccf27a6a', '0x1405fea0e4', '0x14444250e7', '0x1500b972d0', '0x1344245b39', '0x15ac5c92ef', '0x174de0d997', '0x14b58a0edd', '0x121ed8cd02', '0x1419189e6a', '0x169c02ea8b', '0x15e56fecf3', '0x13a07a464d', '0x12ab7ec844', '0x13dede944d', '0x1284745e3e', '0x11dc2936dd', '0x11968bc078', '0x1375ef82c0', '0x11f551e50a', '0x1010498b07', '0x11c14a08bb', '0x11e3220dca', '0x10350a6c99', '0x10030bb9bb', '0xf0e0034bd', '0x10efad87a1', '0x1219a86c25', '0x10e7bd72f7', '0x10e8e451c0', '0xecbc7c788', '0x10524713a9', '0x125bde9433', '0x12c00c2f50', '0x12748529bc', '0x113c812770', '0x1205ac462c', '0x10c159ffe5', '0xfba5fb76d', '0xf9ed74a4e', '0xdce736a71', '0xf8817acb8', '0x11786e0b3b', '0x1047b2dd45', '0x103b1b8ab0', '0xfbed90349', '0xe98398174', '0x106b0c4775', '0x12783e73f4', '0x136b43358d', '0x12ea92f3b4', '0x1260af6aff', '0x10bc67e6cd', '0x12d34e1caa', '0x128a3dcb7d', '0x10e11255a7', '0x12fce383c3', '0x127cd91b18', '0x13ba002afe', '0x11f8b6f28d', '0x108d91b9f3', '0x1287256903', '0x14d804a854', '0x15eea5eb2a', '0x1545893851', '0x145d1c3382', '0x1409a531f5', '0x147deeacb2', '0x11ee30d71c', '0x133ed8a80c', '0x11ad3b59b2', '0x13933a3ed1', '0x142e156c14', '0x11a852be92', '0x126bb67f75', '0x107040743c', '0x113a09559f', '0x1360ef79a2', '0x15c679b8b2', '0x150b7f7061', '0x135b8438b5', '0x143f20c5fc', '0x12feb9e94e', '0x111ec2a1cf', '0x103682a957', '0x123cdbd04b', '0x124372acbd', '0xffb045726', '0x11fa5c814f', '0x143911ed52', '0x12b7801cea', '0x1119a7b35c', '0x125546a201', '0x1279f97113', '0x11a272593b', '0x1015f2937b', '0x1218847fba', '0x114caa3360', '0xfd54cfa99', '0xefa02945d', '0x10d91baca5', '0x12f3da2ca1', '0x1517e7b7df', '0x17baaac2f0', '0x16030ba686', '0x172a7199ac', '0x16208f73c1', '0x164a4b7423', '0x139a0ebdb2', '0x159d33c1a6', '0x17a1d48041', '0x16aa090da7', '0x153146224f', '0x16ba077d3f', '0x1404fd2fb6', '0x15388b6388', '0x17df552762', '0x1ab4f99b8c', '0x1a26ddbc3a', '0x186f7b707f', '0x16ec4ba0c8', '0x1943df1fce', '0x16b9edaf6d', '0x145d0cc95d', '0x15959beead', '0x182480f34c', '0x164afe1e70', '0x141136c8ec', '0x14a911dcfc', '0x154a1feead', '0x12d6c6bedf', '0x15319f1045', '0x17d2e62c07', '0x17b3a5d299', '0x1809a91d54', '0x186297d807', '0x1594a058fd', '0x149f062782', '0x170cfaedcd', '0x18f5f9c2ac', '0x186b31ac9a', '0x15e1d133a6', '0x14c5657cc9', '0x127c787d84', '0x1354f63784', '0x12183a043a', '0x10bba0b91f', '0x12d2c32767', '0x1336c36bd4', '0x12ba668f6d', '0x10cc24191e', '0xf8ccc9f7a', '0x117dd2c1d5', '0x12c329dbb8', '0x151b8dd6d7', '0x17be9e2a8e', '0x162a60ea5e', '0x16e25cc0fa', '0x150bf375ef', '0x17acc962a2', '0x17b962a425', '0x1a81655448', '0x183a218082', '0x18c37998bb', '0x16ca4663bf', '0x1556d0e4ca', '0x1458f3dbdd', '0x16e3e7afa8', '0x19c01c7843', '0x17e5ffd801', '0x171c7d89df', '0x19ff1d148f', '0x16bf3971fe', '0x199658ffa9', '0x1a3953abb0', '0x17c6b6615a', '0x19e2fb53af', '0x172306f3f0', '0x155afd9a6f', '0x18058e8828', '0x1b05e0fc11', '0x1a14635a3a', '0x16fea534ac', '0x19ae5c5f34', '0x1988557a4b', '0x1985929359', '0x19ed7a6796', '0x1755c715c9', '0x1833236532', '0x1638710369', '0x1468f23da0', '0x141dd5da3f', '0x150da0a953', '0x137e0c1228', '0x126a17ffb1', '0x14b6ab3ca8', '0x13adafa95c', '0x1149cf6ba8', '0xf20957e33', '0x11042fa675', '0xee3a9b1a7', '0xfa5343cb5', '0xdfaca78b4', '0xd886c2f98', '0xf073292cb', '0xd54fa32a7', '0xeff2e3fd5', '0x10df0baf43', '0x12fab79be1', '0x155995d089', '0x1477ec3445', '0x145fcd4bc3', '0x124dff4c1d', '0x1497b0581b', '0x125a3f9b21', '0x101db5cb6f', '0xe270cc015', '0xc622b2813', '0xdee1fa365', '0xfab7bd8af', '0x11a0db4e95', '0x13d481dcd4', '0x11f00f540b', '0x1117e16fb8', '0x1316e95524', '0x118a27bb85', '0x12b6b5c723', '0x1093d7ba6e', '0xe815cc321', '0x1051287d18', '0xe47036d75', '0x100fbfcc10', '0xe0dc7d28e', '0xfcf655693', '0x106e23d5ad', '0x127bbf4450', '0x14c9525221', '0x128a7a381d', '0x1183de07cf', '0x137d4940ce', '0x1289ff26e4', '0x10b52837cc', '0x12cba89e71', '0x11b80908bd', '0x12f67ceee8', '0x1444c89759', '0x14e4075c67', '0x12b283f7a7', '0x1365e2ec30', '0x116756d97d', '0x13941b2557', '0x160601f1b4', '0x15088495f9', '0x177c22044f', '0x18a4d25551', '0x16637c98b7', '0x192f8483ad', '0x1c52f82ce7', '0x1bf5aa3427', '0x19f888d9f9', '0x184c24ddaf', '0x17657717a4', '0x16379622bc', '0x15995f11d5', '0x142ac97959', '0x1473c362da', '0x13ff25d1d3', '0x122a751747', '0x14592d04e4', '0x12426e7a5c', '0x133d738c79', '0x11475c44dd', '0x11f666e4d4', '0xfd560c510', '0xe2e7c7937', '0xff3d11772', '0x11a1bfd8c7', '0x10622158e2', '0x11cace63b1', '0x11d1d85938', '0xf979d4e11', '0x1149b89e0f', '0x1256681439', '0x12aba89644', '0x11a308d1b9', '0x109698bfd4', '0x11ae9c6bcc', '0x13ade52c80', '0x15156d9f12', '0x161c8a8f29', '0x15ee8ca411', '0x186a0bf138', '0x18aac4fd2e', '0x16c86c8be8', '0x186b011ce0', '0x18547165a4', '0x1aa8ee6c19', '0x1c0d6ab08d', '0x1c1b9bd6cb', '0x1bb633fb7a', '0x187736540c', '0x160b90e674', '0x16d31cad29', '0x16863ae622', '0x1956de2833', '0x188e8b298d', '0x15cbd4a9ff', '0x15f435025d', '0x1410c1ec61', '0x1692ca67d3', '0x16c9571530', '0x168294ade8', '0x1952caf0a3', '0x1890b694d5', '0x1983e21b7b', '0x1728e5ca2b', '0x164e000166', '0x191521ab80', '0x18cc54e692', '0x1894557648', '0x169207ba46', '0x174a91c5de', '0x183d53e3bb', '0x16c2ce612e', '0x199688cc5e', '0x183315daac', '0x166ed75af3', '0x17091a3f00', '0x1791670563', '0x149f3a24b7', '0x17324393aa', '0x1a17a803b8', '0x1bb71966e7', '0x1b0cab8b29', '0x18ad869660', '0x198fa283a8', '0x17713dc9c0', '0x1a5eabb4ee', '0x178bd6549c', '0x194b608075', '0x1727789f03', '0x16ee3358d4', '0x15c6a18792', '0x174a3611c5', '0x14d6d6bbf9', '0x12ed80dec6', '0x154a9fe4cd', '0x143c71acb3', '0x11f7c6fd9e', '0x1435fe1001', '0x15c1b4edd2', '0x14c1f8c00b', '0x16f7b83703', '0x1491d5b498', '0x12dc4e0389', '0x11294e4685', '0x1156c4ee20', '0x13813f8975', '0x15f095b3ed', '0x18adf0bb1c', '0x163d2f0182', '0x16d258e3f4', '0x14f36c5f7b', '0x130f6304ed', '0x1570980889', '0x181dce1a16', '0x15f82a1ec4', '0x1772c7bfcb', '0x1a60e82119'], 'gasUsedRatio': [0.6474610091847197, 0.2629510116945331, 0.7794250331593805, 0.17138024761952794, 0.4461169041215822, 0.9995680756721574, 0.35787882528688036, 0.11580112673308905, 0.5876549280036185, 0.06692491060190699, 0.5969673, 0.06603844679004285, 0.547992407768301, 0.3955629151908009, 0.0639350236077123, 0.9596955666666667, 0.7453891057951423, 0.3232584683745705, 0.6105821, 0.24434303430633347, 0.08891184965105968, 0.9886461431109856, 0.9745133666666667, 0.14180100201179785, 0.14025886424160663, 0.23048404945940995, 0.44805326969943676, 0.18866069166787744, 0.8563176333333333, 0.026454433333333333, 0.12210984025901292, 0.9996174329762708, 0.9499710667196474, 0.2667742434307536, 0.7649806767807116, 0.08596502302329784, 0.588164343264675, 0.04865656822299931, 0.9468507164300853, 0.6084155021423506, 0.9998672367711235, 0.9616041912118751, 0.13808493333333333, 0.7969341604589785, 0.1869439, 0.5126679, 0.036151866666666664, 0.1769209299547675, 0.9993601660694883, 0.9950172609940828, 0.47749386666666666, 0.0953073, 0.13466476681145806, 0.5770889719497072, 0.0707551, 0.999442977266033, 0.3468385, 0.9979712522611663, 0.35451246421163324, 0.18813966064230048, 0.7838878299239492, 0.09288153886824406, 0.7334146099201433, 0.28551861789979655, 0.24531485735262937, 0.891421263884277, 0, 0.1321516672158722, 0.9657600404482278, 0.9995013666666667, 0.9867308426678651, 0.11495804062750459, 0.121277, 0.9999857, 0.890724407615963, 0.27754796829636935, 0.2200682093390219, 0.16980713900271027, 0.9998061326147859, 0.9993855666783895, 0.9994141601476217, 0.20492734729415066, 0.0197148741000353, 0.09074980679730806, 0.9994493935738538, 0.9993685636778681, 0.6857429666666667, 0.18514779682359825, 0.5185709173328562, 0.053446707259899404, 0.13955678773978913, 0.2395915615890414, 0.9471965619379383, 0.9993514333493313, 0.9995692452161862, 0.44614822542754456, 0.2289099096689645, 0.6279428724298555, 0.1539271601553881, 0.9584863830560463, 0.19949992930971142, 0.05398606588616016, 0, 0.999476087403916, 0.710971013661661, 0.9994774882694282, 0.27114543035263533, 0.2202935, 0.6136094333333333, 0.8836595602272286, 0.4971037972968775, 0.028448473152608466, 0.9995756992079718, 0.9583182866677328, 0.7297049098404143, 0.09314738590168019, 0.9999241330500968, 0.20210307483739143, 0.24198019820498265, 0.8029983019338575, 0.8017152829960942, 0.526182846613651, 0.37491753566800684, 0.2993074583858629, 0.9646047287512298, 0.9998953347539568, 0.25175586666666666, 0.6000199471882374, 0.0346329, 0.34117986666666666, 0.13938380828879401, 0.3602179360924482, 0.98790214141316, 0.3524469406232686, 0.4792459598424723, 0.3959634165525271, 0.609924717009789, 0.1752756299476182, 0.23339633948179916, 0.47510942291215963, 0.116771, 0.8179782109436802, 0.1908967, 0.20576593333333335, 0.9379060986386539, 0.5322200300720281, 0.062162433333333336, 0.9997715333333334, 0.10463803333333334, 0, 0.9929108774718512, 0.9995740662691285, 0.6907971333333334, 0.40218223094852124, 0.9993234660352349, 0.6552551, 0.5072399666666667, 0.004982334750116511, 0.7838673333333334, 0.9992806, 0.1371026807677697, 0.9579757941107412, 0.2564806333333333, 0.6989102333333334, 0.1458099, 0, 0.39195043960427356, 0.9996324329902708, 0.8210691403467463, 0.5884191492651816, 0.1248871896263304, 0.6982955118372836, 0.27450786666666666, 0.15580741260507552, 0.6552210448729752, 0.3595133670153664, 0.3900256868330516, 0.4304964310414643, 0.9509387609931561, 0.999469680640574, 0.5016954230527602, 0.5309264666666667, 0.2643416296013057, 0.8954083300875529, 0.2140292923957449, 0.1602632132862207, 0.9993355621723178, 0.3542329906921543, 0.8468412978635466, 0.13229728822134026, 0.9998944574763254, 0.9997750553292947, 0.9474860411770025, 0.12542914392981333, 0.8752505669485424, 0.21305461833176995, 0.9517821490896691, 0.6724710025346168, 0.13518269608318112, 0.6506605102047789, 0.7683289835178585, 0.5456392219077358, 0.0464635, 0.40172613333333335, 0.10268423782490269, 0.9997750331233642, 0.9725987504386371, 0.49323405403690085, 0.06572039864735661, 0.9997602649069438, 0.999874877463329, 0.6538645397888332, 0.4298083411167968, 0.636111415781079, 0.05640638267997673, 0.48362685658424237, 0.1410035035871651, 0.9720234284223755, 0.0830143545778523, 0.2169707870188085, 0.41375849987630464, 0.21659219315195807, 0.9634062021516304, 0.2703306128335886, 0.5089104030596776, 0.18801154712792773, 0.9679301342187959, 0.26744977285776406, 0.480282522706618, 0.12555076022954348, 0.19281410538842736, 0.9998675034425415, 0.24333575990045553, 0.3409350020939652, 0.4179832, 0.23422043333333334, 0.6254754666666666, 0.0679774, 0.9612038488917761, 0.6456233665196708, 0.16635243729570864, 0.9993206987093275, 0.9148148548539892, 0.15021359227184478, 0.4439885461161631, 0.9997058249171304, 0.7162274549960777, 0.07539430989055448, 0.2997928663350326, 0.13796794525399764, 0.9987088149771847, 0.99989980383595, 0.5362808046204361, 0.2124344762375716, 0.9999247926500998, 0.5397276749913382, 0.5701511666666667, 0.2957476333333333, 0.19734309446825174, 0.8784099495722009, 0.9994659210118556, 0.24088823333333334, 0.9782171043309541, 0.18283856666666667, 0.1316463526633758, 0.999313499359266, 0.38313815651910516, 0.041323233333333334, 0.4293369475292623, 0.10553089849550526, 0.7167500625306639, 0.9932474, 0.31822824988601367, 0.9997060330589642, 0.958295436569551, 0.10723943862363196, 0.15506740867898192, 0.9998947610367485, 0.43845586110664375, 0.022147083420680884, 0.40120043895967594, 0.999986299935153, 0.31488346666666667, 0.13603723333333334, 0.7519963577767023, 0.7841937985744039, 0.14705882549595148, 0.2023111640066595, 0.9474362634644058, 0.47948196160434664, 0.23526168002773915, 0.09421873361974525, 0.9999172666666667, 0.29190059240485, 0.39535406666666667, 0, 0.9558904921644593, 0.19314836666666665, 0.17400308598653416, 0.9450526666666667, 0.9998764, 0.9993951572955675, 0.16414663333333335, 0.05760772060583827, 0.19589718283737065, 0.9997875, 0.9993500346911242, 0.999995109555765, 0.06333781185327673, 0.9994843071481396, 0.9997803439071923, 0.21569045784691895, 0.2737655194314309, 0.1865744, 0.7929589, 0.06859271920969173, 0.009157208851968556, 0.9200508857391138, 0.9993285987243375, 0.7802106914738713, 0.5301000352834333, 0.4603819747505845, 0.8623446102428522, 0.2535562278368151, 0.2576135911691814, 0.19476173601406785, 0.6650954313774802, 0.02097998767859452, 0.9994510607426204, 0.9997839550866816, 0.19710990911399098, 0.16372652899215337, 0.15903738080902313, 0.999940924076649, 0.5545849, 0.1321017359881409, 0.20008656008367476, 0.9999714333333334, 0.04385956219581755, 0.9995416662388885, 0.6876922333333333, 0.5372593666666666, 0.07534499228170358, 0.11957641559053507, 0.9998538571502358, 0.9074067289218086, 0.23470028303863333, 0.3706332849679789, 0.22652767561748002, 0.4505939477950094, 0.488325955545086, 0.8964980399739906, 0.06935976042090902, 0.18225793887025157, 0.48650749852043634, 0.4090094, 0.3967997416143531, 0.1261184249066461, 0.9999235252484795, 0.9999356665444331, 0.10091416775506488, 0.926573660713913, 0.9997467519773282, 0.37652536412971704, 0.7336522993490519, 0.027993799170649408, 0.3187008532338882, 0.2749850908257278, 0.5810433705363903, 0.18438483294441732, 0.7700176444596296, 0.9987755686830662, 0.9999796999424831, 0.5209421, 0.07730625622587123, 0.9269402825609111, 0.9335682096268412, 0.21255905617106063, 0.482417857115369, 0.24907463253001597, 0.3812736626944495, 0.3526248156569606, 0.7923148107962811, 0.2962531333333333, 0.9997742128521835, 0.9988756322839235, 0.05173907149311308, 0, 0.9999951285672859, 0.9998237328397853, 0.18863883401014614, 0.5572642804533137, 0.03200589906158952, 0.4572448157173005, 0.1100463, 0.9996392666666667, 0.18034616666666667, 0.9993143362173504, 0.9234949593784607, 0.2971706666666667, 0.0497184, 0, 0.9998754998837999, 0.069766458728977, 0.6130236109774072, 0.2925514029842714, 0.9996118, 0.39033833333333334, 0.11657893333333333, 0.34667133333333333, 0.5129339466655856, 0.9983004317470696, 0.34816164510442427, 0.17430843333333335, 0, 0.9997132666666667, 0.9333534196142533, 0.9719634071658467, 0.5149458333333333, 0.4806427142771583, 0.5673070961532898, 0.9998054333333334, 0.3587439666666667, 0.38880123333333333, 0.1437155, 0.8626892506134426, 0.5935566333333333, 0.9993438333333333, 0.9673267333333333, 0.22031727315056485, 0.2558364765246078, 0.2623381429650778, 0.20530262268877786, 0.7243725594454948, 0.03017295695211921, 0.6397588918667312, 0.46136568652294213, 0.5750944651041416, 0.15002382660165595, 0.8035691823196375, 0.05890830707222249, 0.46183713182545, 0.425590570603804, 0.9035207666666667, 0.08551627330755149, 0.37686941841145716, 0.43918386666666664, 0.12147658855539101, 0.9813958493027927, 0.32989772943841755, 0.9821034, 0.9993748437983643, 0.9361314382603904, 0.7262462892033392, 0.0795966, 0.09738806611322623, 0.9993044993508661, 0.5111916666666667, 0.5970297333333333, 0.3705402666666667, 0.9995231656287635, 0.8701114978036749, 0.06523186414213387, 0, 0.999322660112876, 0.973539, 0.749193787733722, 0.23210938330209108, 0.24980056666666667, 0.33018126666666664, 0.6089092333333334, 0.46435367469667466, 0.4361383070624199, 0.7430781333333333, 0.12916456666666667, 0.6616873666666667, 0.2700189666666667, 0.5717360663978291, 0.19095485125635622, 0.93861192853975, 0.10570841873206435, 0.9994903346597757, 0.2088383986700762, 0.1520213, 0.9991615333333334, 0.07878066265041146, 0.4164801303130464, 0.9504381883144711, 0.3497419311763359, 0.9993848994769697, 0.3413195784494582, 0.44772253333333334, 0.1439536373935815, 0.9995594662555018, 0.04784166203519527, 0, 0.999381169799208, 0.9995842321553244, 0.37142324716672526, 0.9998256326765498, 0.9997700078797243, 0.15975738419303903, 0.02253307612095655, 0.9996895649178824, 0.4622082, 0.18838726666666666, 0.3149549201461894, 0.587546296206615, 0.8510789012566817, 0.09593394894116966, 0.5243278023217917, 0.1697411142664904, 0.9899992058889673, 0.8907504280117201, 0.9996911305486101, 0.08219308904728816, 0.35127596666666666, 0.3904065987103073, 0.9997580331074976, 0.9674338354118593, 0.210490421125792, 0.28811769110931323, 0.4590992875753012, 0.39869157984171716, 0.11306488701717989, 0.9995816666666667, 0.8465791333333333, 0.14741783333333333, 0.49892006666666666, 0.31392955220773083, 0.4722263506515619, 0.3971557424729709, 0.6802026691461758, 0.8271182661255274, 0.27749057242127206, 0.9995586077801372, 0.07434952398627687, 0.9299073958024339, 0.1630963734383101, 0.3551933103751917, 0.24911627479048418, 0.524350212534631, 0.5984500956333654, 0.7858625540322564, 0.9747239277435648, 0.9998331440449307, 0.1529358990745773, 0.40666819594951364, 0.10075375048328043, 0.9988781948723753, 0.16766823735947073, 0.03843054022963396, 0.9999049323319539, 0.9992883873940569, 0.3179006, 0.9997546666666667, 0.9978570740995248, 0.07028246271939244, 0.23319033705310876, 0.9200343003857958, 0.02849934140584778, 0.35854397202479255, 0.9994552084647487, 0.6426229309801685, 0.19007302969759476, 0.32918415865885187, 0.06350040796821695, 0.9808486926400617, 0.9653977695494426, 0.33749052361812487, 0.7880717324064836, 0.16723088193120342, 0, 0.43961758157429776, 0.5725078666666666, 0.9996412163143977, 0.35519235916457986, 0.5026040120015979, 0.15959753263448623, 0.2856291173248508, 0.9624520429791189, 0.7401958691992128, 0.6111084106150667, 0.36565555191527205, 0.027598666863050205, 0.5804894842447184, 0.9996319656239026, 0.3357099, 0.9998774530004784, 0.011937544872960044, 0.9995793436975782, 0.8398214, 0.09453052427637745, 0.9994784661625173, 0.19392533333333334, 0.028866633333333332, 0.22926818037813926, 0.9921651725611843, 0.13088081117403602, 0.9996487139383216, 0.9993386304411461, 0.08917123464775273, 0.9922019297565415, 0.03693253911256399, 0.1320038, 0.29606327245221625, 0.4861544058104357, 0.7321956258650316, 0.07921694158236439, 0.9995760386701895, 0.2794263210328896, 0.5124397281223563, 0.6370143286017077, 0.2762752989922652, 0.6264069175787805, 0.2918305116559307, 0.20072298259573018, 0.47914079530656706, 0.3250385176857037, 0.999426298374512, 0.9874048333333333, 0.09924524631636127, 0.1128508053274183, 0.018546166666666666, 0.9994511026649143, 0.16056163333333334, 0.4126249, 0.9997045884693597, 0.9997426333333334, 0.3623262, 0.6956297157507639, 0.999937833275311, 0.9997204333333334, 0.7540286423025417, 0.08637691349360041, 0.43341948643400635, 0.10619320176708336, 0.9487204280668206, 0.7219520702802587, 0.08302664686371676, 0.9554076916767152, 0.9968423711378388, 0.15634281190073673, 0.1598683, 0.1759817538173973, 0.23054735619577765, 0.6320378959753861, 0.4110655246718683, 0.27201730397630397, 0.9999562812840144, 0.6092963355346871, 0.009722594214016939, 0.8854525532004343, 0.10541963041394123, 0.5323061333333333, 0.0503504, 0.9994988105885397, 0.5485871787453895, 0.6453014273018066, 0.16925409221723667, 0.9997581633789888, 0.8010017962051491, 0.0545742, 0, 0.9365302551274653, 0.9998275665057288, 0.3738259566175299, 0.08543139280526657, 0.30496886666666667, 0.7572440488136666, 0.22760072512215346, 0.35799372831152504, 0.4390965559203268, 0.9258832165886643, 0.19119176201996033, 0.07798662096209273, 0.9211786666666667, 0.5297836337183259, 0.12430241601558828, 0.4518009719967287, 0.2608760576071735, 0.9999241780235818, 0.7749097692580285, 0.23591674540377358, 0.5010646082794072, 0, 0.9123757837634251, 0.9993366641459904, 0.5852603666666667, 0.4370611, 0.2358329241837988, 0.6823621368713277, 0.2188171792048608, 0.25476230888964324, 0.4726474333333333, 0.035475266666666665, 0.9998135512661447, 0.9993217660336483, 0.22745806666666665, 0.4879155171641559, 0.3803786527917334, 0.20763164840592507, 0.9997808, 0.9998239333333333, 0.7055888666666666, 0.39645406666666666, 0.38610287054691095, 0.14267163791591667, 0.9993917721442119, 0.4393574347791261, 0.14167876666666668, 0.9997067, 0.3946359953828247, 0.7680437501741668, 0.14412993333333332, 0.18427044008474275, 0.9772329238161507, 0.999982115852175, 0.7088672747498289, 0.3795207691045175, 0.32927237724748143, 0.43595770371440684, 0.5906783976005241, 0, 0.7933695333333334, 0.17393788367674368, 0.9295874342816053, 0.6236073666666667, 0, 0.6728988190301163, 0.06955724705005818, 0.6917990652643403, 0.9996774894524643, 0.9946970433256149, 0.36583299767158856, 0.1792712746019447, 0.6837237601357596, 0.2527347853010246, 0.1051877787399061, 0.28803322042280266, 0.9995513333333333, 0.505645304027284, 0, 0.9999680020564101, 0.9994902377506684, 0.2020943628352311, 0.15451710523986678, 0.7883925966498956, 0.5312774719528373, 0.31773456666666666, 0.1486842, 0.9998315333333333, 0.32398103252174254, 0.16096856666666667, 0.2835930285924205, 0.9998401331841243, 0.9996342235060216, 0.9518298084766361, 0.9998324, 0.2105214, 0.7096864755100022, 0.32066543262107045, 0.5294704995629763, 0.01755933336273339, 0.9106326666666666, 0.8734747814574265, 0.3361641804199017, 0.2402557, 0.7895745333333334, 0.023522336227993303, 0.7400438148628666, 0.9997938968046483, 0.9749487165771825, 0.41685862489441877, 0.23748005830396962, 0.2524176383142945, 0.9086884615641778, 0.09804822150994225, 0.0841279143627015, 0.739828251241341, 0.9740795728833052, 0.19354532735766286, 0.10064525511329825, 0.6182397889745339, 0.6218021045123883, 0.03957135444086564, 0.9999982649674336, 0.9963691528694476, 0.47950358686106026, 0.5567025869489978, 0.5578078916237874, 0.03995606108288151, 0.3221763416027222, 0.9712659788244766, 0.8314672334665094, 0.41312543589546963, 0.08447820272800213, 0.29690821805149736, 0.059990850982448544, 0.6829835683614107, 0.24399870401066667, 0.19897948604902005, 0.9997021376816614, 0.583009714055047, 0.39886666310164076, 0.08763594462666546, 0.20294768793749984, 0.9994212367660815, 0.7906235634375939, 0.9999959293313233, 0.9997183149301203, 0.2339926388225319, 0.6296943733919863, 0.178810367505672, 0.9995113287072451, 0.5083148481631272, 0.9689381054271287, 0.15616451876356777, 0.5885786463548951, 0.18123541564980175, 0.24532638856386357, 0.31411534424081144, 0.9998720501138724, 0.9998075450353959, 0.21231563489429886, 0.3682517, 0.9993657473189236, 0, 0.9994643225890262, 0.599523972428881, 0.12664447562161485, 0.8550483359468289, 0.07509791506141399, 0.19202469636051284, 0.9994090333333333, 0.9997576633582693, 0.36036716967602506, 0.026844305185365014, 0.9673055389703394, 0.47686348066736894, 0.49831016193512007, 0.5636133333333333, 0.10002853333333334, 0.6482214882833086, 0.17284229465280834, 0.1740793, 0.4424982328577189, 0.6862523405021844, 0.20344486666666667, 0.2787969452170044, 0.9994174327896039, 0.3001137, 0.014161128341825794, 0, 0.9995136579664183, 0, 0.7031042, 0.07414089858747067, 0.3721710140262798, 0.9419494594666648, 0.048533485897958716, 0.9995091197227367, 0.9999659999036664, 0.9998063219112324, 0.9996116985244544, 0.33484838520535015, 0.48158695320220307, 0.0936926374620536, 0.9999503997172784, 0.06489056885005787, 0.012551683259498955, 0.0126557, 0, 0.9996012, 0.9995454333333333, 0.9999376, 0.9995954, 0.11828290325502853, 0.3116929909134582, 0.967134142482, 0.17524989638096536, 0.7677456355600725, 0.043393464873864175, 0, 0.9995966053186438, 0, 0.9998458500906284, 0, 0.9998807333333334, 0.6568852, 0.9998474844018518, 0.9983989318390031, 0.06789369489384574, 0.2786905202223044, 0.9508775735887468, 0.3049504871946975, 0.10485468419222944, 0.9998661995004782, 0.2708703729968278, 0.7808203031887583, 0.7754527666666666, 0.6227611, 0.08002225826480441, 0.6498968666666667, 0.08875647069363234, 0.9998647693540972, 0.9995118228230822, 0.32015654163076246, 0.9662366993199479, 0.6973933092810429, 0.13395071573427578, 0.9997173808411397, 0.9984564868941023, 0.4485284952662748, 0.2154768811509836, 0.2422646668948464, 0.3516569254999748, 0.2983935281828096, 0.3887295322094016, 0.2348093701005072, 0.5565401742432854, 0.4109085043089153, 0.1337747054944723, 0.9805707680517078, 0.08938279681265231, 0.7148024005461611, 0.09224777318487844, 0.6582882354070837, 0.02590144869817761, 0.08267718271112914, 0.999470882277642, 0.9211086157442836, 0.2167595107256284, 0.8439816349611196, 0.5061815167700373, 0, 0.9350186545957837, 0.7428398780430727, 0.5726413302933251, 0.2785414247358424, 0.2621831894678425, 0.7637541203923482, 0.9518030713984411, 0.7854628635323467, 0.6949913900096993, 0.46750000493110777, 0.9527502982246661, 0.541422289603832, 0.1944651871352191, 0.7870712666666667, 0.48556301438312155, 0.8830738333333333, 0.7089312619560333, 0.5079048243079969, 0.4436291250009241, 0.03145359414361534, 0.104263, 0.6414325411235928, 0.4473691657901936, 0.9999021666666666, 0.37647399352134026, 0.05033294697741718, 0.5289444793973825, 0.1559204629155462, 0.9999520666666667, 0.5377584333333333, 0.45147933333333334, 0.9999232, 0.38024943333333333, 0.6546707666666667, 0.1307431707061946, 0.35231818191230496, 0.998165673673827, 0.45464979716794796, 0.46471652061234453, 0.1730601627724666, 0.6277523330432381, 0.6628548036174184, 0.2560022341902512, 0.9968266515403723, 0.28294961569289223, 0.20799811764988788, 0.6074459536638871, 0.5924521163474423, 0, 0.9993434333333333, 0.9994000192145703, 0.7487809904882908, 0.4039172652438458, 0.14928618861996468, 0.6431630666666667, 0.1684451466476319, 0.9995162333333333, 0.07169677857094119, 0.7969819619218022, 0.16154508862604555, 0.4613524212787574, 0.2985965926946196, 0.7781028810986822, 0.07910085302709, 0.13310200720636425, 0.9995321191096697, 0.30172506613894096, 0.05164713336926135, 0.999341673297183, 0.8059257062376154, 0.31633857232583024, 0.9258568935080183, 0.08237137177580484, 0.16764620372224082, 0.13962590861154522, 0.541393426690149, 0.9996690752745978, 0.999343529591452, 0.999489, 0.10445543406469751, 0.6048015462717589, 0.17210172369819085, 0.1390092563780148, 0.9994127921229061, 0.9993710376742823, 0.14388862556215465, 0.7692778535852356, 0.9998527022418946], 'oldestBlock': '0xd0fb15'}}), + (('0x400', '0xd0fb13', []), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0x16a9cf1687', '0x14a9e3c92c', '0x1712b5b3ac', '0x14f7232df2', '0x153af83f52', '0x14bc94d53e', '0x14b3d8321d', '0x13a29c2d8c', '0x11fc8a6e8e', '0x140e1636fe', '0x168ec18d7e', '0x1622335b71', '0x157c41ab48', '0x1427d73f77', '0x121c6a0df6', '0x1102458b85', '0x12ef0a3e76', '0x1207055580', '0x1059e5a8c5', '0x1236cd3d7d', '0x147d9c30b4', '0x14f0e62a99', '0x155ada5a88', '0x139686799a', '0x160910d77d', '0x15cdf76572', '0x135b9080f1', '0x114e34838b', '0xf246df31a', '0x1108caa9ec', '0x102d7c3139', '0x12330882da', '0x1431c68444', '0x158c7f7f4d', '0x132c784781', '0x140ae3dc51', '0x12ecf56f91', '0x1357899adb', '0x14eb955adb', '0x12b551cf44', '0x11b43d672c', '0x10ae11c593', '0xfc2bb40b8', '0x11ba9b9d1f', '0x11a5ed87b6', '0x1230391f44', '0x126be90c0f', '0x10fc2bbefd', '0x1086f135ce', '0xf1260c6ed', '0x10f3dc548c', '0x13121fa9f3', '0x1531003cb8', '0x138ccd0c90', '0x1169086ee9', '0x1395a27b96', '0x160505187c', '0x18c3bea821', '0x15eadc0199', '0x13d2692cf9', '0x154646250f', '0x13e019b2ba', '0x1164167c63', '0x13904dad5a', '0x1601c25414', '0x166a970e8f', '0x153bba525b', '0x1517d32ade', '0x12c0757341', '0x15186da0ad', '0x1429b5a403', '0x16ae93792e', '0x14750827bb', '0x1702ecda6a', '0x164d13566d', '0x1690ab271b', '0x16546082b2', '0x191ceffe48', '0x15f951fe7f', '0x15ceab47cc', '0x156fdf589a', '0x1584d6e0a7', '0x134ffcc253', '0x158fce7525', '0x1667b6dfac', '0x153243fd3d', '0x147c7df1d5', '0x14cc265738', '0x1764d7b921', '0x1a515cf187', '0x175fb57079', '0x189805af7d', '0x1697873d68', '0x155e61c5ac', '0x16a998d715', '0x1506b773b6', '0x170cae3688', '0x18ccf5d268', '0x167a08df5f', '0x1578d5d20d', '0x1714e3260d', '0x1515556dfd', '0x136ec413e6', '0x134f5ddb86', '0x15091bd0d1', '0x15cebfc078', '0x143b665591', '0x1533c66e61', '0x12f6d8f286', '0x125422b93e', '0x1388ceb8fc', '0x15f91f0434', '0x1873ec474a', '0x16b4656243', '0x19441bf03f', '0x161b987238', '0x1899844d0d', '0x16d86caaa7', '0x14fd07b027', '0x15edc237fc', '0x149f91c00c', '0x1732b73d6b', '0x1a18ebddcd', '0x1907a8d506', '0x1687dd5c98', '0x1957f2121f', '0x1c822291ef', '0x1a8a438254', '0x1d98c3863e', '0x1d66e01e95', '0x19ba041ac3', '0x1cf06d452c', '0x1e98e795c9', '0x1ac5caa310', '0x1bd97ccefc', '0x1bd6afdc04', '0x18a0f0b2d9', '0x1bb4a47b7a', '0x1a657e3c15', '0x17b5e41005', '0x16907f75a7', '0x150dcf9b43', '0x134889a83e', '0x1424cc2bd0', '0x12d9e2a989', '0x14db56c8f3', '0x12afe679b7', '0x1505b2f8a8', '0x162c536c8c', '0x1429f47557', '0x168c78f7ae', '0x1586af07b7', '0x13a5b7d7c0', '0x13b41146d8', '0x15ea057825', '0x14a5e51b3e', '0x173a86c755', '0x19db53f43a', '0x19651af7a6', '0x17fbd2b6b8', '0x17e6875c3f', '0x15b90941df', '0x16b294f1fd', '0x18929fb7d4', '0x1705959199', '0x14921b60a8', '0x1364efa8bf', '0x114c8dc318', '0x1375a3ad64', '0x15e3bd030a', '0x1378738bf3', '0x11c4daea08', '0x126a664b7b', '0x146a2ba3da', '0x16f714327a', '0x19d57f1593', '0x1829808bc1', '0x1818f4aecd', '0x19086e5f85', '0x18c29034cb', '0x16a7ddec24', '0x185f3f99e5', '0x1585f381f7', '0x183667b2d7', '0x199a3d6750', '0x18197f2eab', '0x15ddc5544b', '0x13f09499a7', '0x166e263aa4', '0x15ce5c1f1a', '0x1887a46791', '0x1835f45325', '0x16eb024d90', '0x16d48d3b31', '0x13f9fb93cb', '0x12dccab65c', '0x152f93efe8', '0x17d4f26036', '0x19f5c62704', '0x16b70d6224', '0x198da68ebd', '0x1cbed4381f', '0x1fe93dd9ac', '0x1bec161e77', '0x1f5ddb2656', '0x1d571acfee', '0x1d150bf5ff', '0x1af88da67e', '0x1e56d0cfd7', '0x1b87beac51', '0x1de3b8e713', '0x1e040b03c8', '0x1b0ce1a08f', '0x1cb9176858', '0x1a9c2a1b18', '0x1def403937', '0x1b077b24eb', '0x1acfd992ca', '0x1a217cf3fe', '0x1d64c3454b', '0x1ab5b323aa', '0x1b8e299814', '0x19e1c33e22', '0x182fa7a480', '0x185727b429', '0x185f264638', '0x16726aca34', '0x190fe669c6', '0x1bce77902a', '0x18a851ecf3', '0x1a973fa9fb', '0x17b05ba0f6', '0x15c088540a', '0x1308774989', '0x156957d787', '0x18167219b3', '0x1ae46ae25b', '0x182da281f6', '0x15df27eaed', '0x189a4ddc77', '0x16acd3ebcb', '0x172ec55e08', '0x15d7e21c38', '0x187b20dd5f', '0x173c383883', '0x16127b2503', '0x141cb4f8e2', '0x1538dbc8e1', '0x1781486338', '0x1935094a5d', '0x1a5d2986f8', '0x17a09b3f33', '0x153736c076', '0x17ddb68579', '0x16fb4300fa', '0x19d9b3dfb9', '0x17ef773118', '0x15d9f3a9d8', '0x16544c4aa1', '0x1791009834', '0x1736311f4a', '0x192b01a95e', '0x1770663deb', '0x1a0f66e92e', '0x1ac8fbe145', '0x17f9c5e6e1', '0x16b6b095c0', '0x14f50a31e7', '0x159d53a982', '0x1476fa8d78', '0x134da3455b', '0x1387896c11', '0x133b208e5c', '0x13e9136e1f', '0x11ef1e8b15', '0x13697b686f', '0x1243a754ea', '0x12a5b173ce', '0x124203631c', '0x143faab674', '0x167b84a05d', '0x194a84e866', '0x193a9fbae3', '0x16134bc387', '0x167e9b733f', '0x154670829c', '0x16cac59bdc', '0x147c320d0f', '0x1339ae56ae', '0x14bcb55d68', '0x133f6f6591', '0x116fef03ac', '0x10b957de96', '0x12d071b66b', '0x121d39bf66', '0x112c01c607', '0x1309e3a26c', '0x156918d8ad', '0x154ecea949', '0x13d0ca284f', '0x13fdb768b7', '0x167c99edd8', '0x14cc449fdb', '0x15ed68af20', '0x1437b49de2', '0x1259651023', '0x13484d5007', '0x11baaa2c07', '0x109625a1a8', '0x11d40380b0', '0x1058833dd0', '0xffa394222', '0x11f95a177f', '0x10d2d13bde', '0x12ea104037', '0x12cc2a17ae', '0x10e1adc294', '0x12cb5e21ec', '0x15248211dc', '0x132b933c1e', '0x10f65f734b', '0x13150ee54c', '0x1577306d72', '0x12c84a5fc4', '0x151e2583ea', '0x176c2d0263', '0x14cff001e4', '0x175241f3c1', '0x14a445c83d', '0x12e208c5ad', '0x149d696d02', '0x173047475c', '0x15e14e840c', '0x1605da5a2c', '0x162428e44e', '0x17c9a3d4fc', '0x14d06f5a5d', '0x162e9dbee4', '0x150d2d78fe', '0x13c44fe050', '0x15f135d246', '0x1469814a0a', '0x1249ea9674', '0x144bd270d6', '0x12e4cd1420', '0x126880cbbe', '0x14b55a8a97', '0x171a071e58', '0x171ac601fa', '0x19b05f747c', '0x1868bea016', '0x1872d6903b', '0x1aa3f02d29', '0x1c51b11d72', '0x192fa798ad', '0x19c33732ee', '0x1c54b68804', '0x1bd9abcccf', '0x189cbd080a', '0x17b35aecc2', '0x1aa8df5933', '0x1dfddebadc', '0x1b5ea0fd84', '0x17f2ccddd4', '0x182d8c3b87', '0x176ff551d2', '0x1807a5c84c', '0x16006c78e2', '0x18bfbf91c8', '0x18050f82b5', '0x16d065e441', '0x16ae6cf8bd', '0x145f7e6cab', '0x16eb4193cd', '0x199a0c4838', '0x16aefe918a', '0x14e6ff01b1', '0x169cb6e18c', '0x186564b9c4', '0x15bc2bed88', '0x170432adf5', '0x19e459e653', '0x1bf13c920f', '0x18f86e91a0', '0x1ac43bed7e', '0x17f84f9ebf', '0x15abe4652c', '0x14d382ff88', '0x14f4dd754f', '0x160414bf1e', '0x13ed8bf825', '0x129bbb25b6', '0x10f87affbc', '0x1317334edc', '0x136224ed26', '0x1118aad2b0', '0xef595785a', '0x10d3ec3e78', '0x12dba042ed', '0x15366bc09f', '0x145db90fdf', '0x156b46ea3f', '0x1478bc7fb7', '0x12fbb402c5', '0x14cd41a3a5', '0x145eecd29f', '0x12939fd7fb', '0x12df5b854e', '0x153b09ea3a', '0x17e2561036', '0x1754f4638d', '0x15c5d068f1', '0x1779db667d', '0x148a9ff9ae', '0x133b5e6af3', '0x130b3e3196', '0x156637b4ed', '0x1300458fcf', '0x12bd8db02e', '0x1125a6f666', '0x134a163c1e', '0x15b348e824', '0x1821f5effb', '0x17c4e50f08', '0x152da2e83e', '0x178d234e9f', '0x16fd02ecdd', '0x1990faefc2', '0x182a3bfedd', '0x163508bde9', '0x1662445e04', '0x15e38caec5', '0x179e72d424', '0x15cd84f312', '0x14820a325f', '0x17122e278d', '0x18888fb172', '0x19b29a3e34', '0x17921aafd7', '0x16234136dc', '0x150a306e25', '0x1336339c6d', '0x159cd26b75', '0x14bf29cddb', '0x1722a49d91', '0x1480978cbb', '0x16a008a63a', '0x15498e7534', '0x12f78135f4', '0x1554380db3', '0x13f5821573', '0x13550675bb', '0x11b394b408', '0x13e9afe652', '0x12ef8e9af4', '0x1149c89614', '0x1372914b3a', '0x15e07a58cb', '0x15711fb452', '0x13529dc657', '0x1443045484', '0x16cb3236b0', '0x18d9de98d3', '0x15bea2c5b9', '0x157439a990', '0x17a667266c', '0x159fb8dc7b', '0x134761c7c2', '0x15858951e6', '0x14fbc5ab6b', '0x129b27f344', '0x1047c2f4dc', '0x125063b318', '0x131333e18a', '0x10efc9ab1d', '0x11466bc25b', '0x136ea71189', '0x1206509ef0', '0x1026498b68', '0xe218059fb', '0xfca399d6c', '0x11c379e230', '0x10e1e80ec7', '0x108ac43cae', '0x11bbf80ef9', '0xfcec428fc', '0x10d9d34d25', '0x12f3a9af81', '0x1177f579a7', '0x11ecd4e24e', '0x121a56ebd8', '0x101dc2cf56', '0x10d5b20ec4', '0x1057efe1f9', '0x113031cde0', '0x12746fbd99', '0x111ed9f6c5', '0xfe71085a1', '0x1172848cda', '0xfe9760676', '0x11184e8de9', '0xfa2955d9b', '0x1196774a90', '0x118bbd9520', '0x112d124732', '0x1018e5b984', '0x1219f376e8', '0x10be12a2f3', '0x126f39d560', '0x11f6430640', '0x14347caa1e', '0x1348770ef4', '0x14521706b2', '0x1568ee3cde', '0x1504d5f224', '0x16cd844ef4', '0x17cd780b28', '0x1667beab44', '0x175f52a222', '0x166604d4a0', '0x19325de04b', '0x1a90b4c6df', '0x1980086839', '0x16e2f41c76', '0x171eefb9c2', '0x159e84f846', '0x14670a980c', '0x14e0dbb615', '0x12c14bdcd2', '0x14f60fb0a0', '0x12d16b1171', '0x1274ef1d5d', '0x1206355c68', '0x117008724f', '0x11d34e1b92', '0x107106a2a2', '0x1032c2b030', '0x1235da2d85', '0x147bea489d', '0x12daa5cea6', '0x131a7d8657', '0x11f72f7fa5', '0x1070cf6234', '0x1249191587', '0x1377bdc0e2', '0x12756e661b', '0x14c375b111', '0x15923e2ea5', '0x1843f97320', '0x15cc1ad357', '0x1458f04bde', '0x13f1aa7279', '0x12dc7b8e61', '0x1134e45df6', '0x1357f6cdae', '0x139bfd71fa', '0x1396dab410', '0x11d1b87b0f', '0x10b59d50b3', '0x112d962169', '0x101e1b70eb', '0x11bcf69bf6', '0x1020897ab5', '0xf9fe3fcf8', '0x11936f243a', '0xfc1379110', '0x11b95512dc', '0x10a6cdec55', '0x1232eb9ea6', '0x12049cb659', '0x14415c2280', '0x1305f46bad', '0x1115bf6b2b', '0x13045f703d', '0x130fd8b07c', '0x113fee0ca8', '0xf97c0c94e', '0xf7bfd71de', '0xe073e2e0b', '0xfc81e3106', '0x11c0b36fb2', '0x113d69cb8a', '0x13639cc5a7', '0x128a4bfcd1', '0x14db0c8257', '0x12c741ed63', '0x10be8b94ad', '0x12c199bd03', '0x111515c4ba', '0x1334cfcd0b', '0x125c4f685e', '0x10a5fb12b0', '0x12b9fbda0f', '0x15111d4e6a', '0x138ff0e340', '0x15935140fa', '0x1359870f30', '0x1152cf88b2', '0x120237f3be', '0x11d5f581b6', '0x10175428e7', '0x10e8284406', '0xef17e2814', '0x1051148208', '0xf08ec76b1', '0xe432d6d60', '0x100b477717', '0x112b4b0e11', '0xf05e1ac4f', '0x10d31d1dda', '0x10f6583e43', '0x131446a66b', '0x1576620383', '0x13c2880b40', '0x145c1819e7', '0x11d2a782d7', '0x133b7b7da2', '0x119ce8af13', '0xfd1d7117f', '0x11cc01cde9', '0x10863817d5', '0xfbf1703d8', '0x10c9b2a945', '0x12dd2a9391', '0x11008b8499', '0x1142af6753', '0x1001695875', '0x11d7b1c4e7', '0x117eee1d94', '0x13aec5962c', '0x152c0c3f60', '0x1411a715a7', '0x12a86a3b56', '0x11eafebe0c', '0x116d44af97', '0x10d3c29660', '0x10122f53f1', '0xfba7f363a', '0xed7464854', '0xf9cbbd57a', '0xf09ff5c38', '0xdc90d71f7', '0xf81f9a652', '0x10d81a24a8', '0xfc77321a0', '0xe799693f1', '0xe1ec737c9', '0xfe28167e5', '0x11aa0ac846', '0x11d0c0cff2', '0x107d3ae357', '0x128ca3d034', '0x13a3a67592', '0x13f4b67c88', '0x120e745ba7', '0x115b4e84d8', '0x1028af0872', '0x10bdbe3177', '0xf00138d6e', '0x10dfde4fe7', '0x10ed7dba23', '0x101a34734f', '0x11b63eeadc', '0xfbda3dd78', '0x1152a29b6d', '0x10c266566e', '0x12da1a5504', '0x11d7c603cb', '0x1148ddc12c', '0x12cefa9a61', '0x109ff96fd2', '0x12b35af174', '0x14c58545f1', '0x13ef211ee6', '0x166c7952cd', '0x1526f8b3b6', '0x17c9502a38', '0x152b15a663', '0x155b139ba8', '0x12afb12833', '0x13c40d54de', '0x12386468a3', '0x13b00835dd', '0x15b87d7333', '0x133741490c', '0x110058bc4c', '0x11ccd7aba8', '0xf933cb633', '0x10c213a3bf', '0xee7dbcb6b', '0x10c4c1d491', '0x12da36ba9e', '0x114cbdade1', '0x105fb0b91e', '0x12321b8c6b', '0x1141f8eb8a', '0x11762dbde5', '0x101aed3535', '0xf58c6a78c', '0x1081b83bb1', '0xe99c4ce07', '0xe91ba6766', '0xe0ebaa045', '0xf84f7784f', '0xee1bba161', '0x10a748ba7c', '0xfa2352ce4', '0xdf938d3d4', '0xfb83906b7', '0x10667f7473', '0x1197e04be8', '0x101fb21ba1', '0xe8efdeb98', '0xff238771e', '0xe54f5c950', '0xed5272817', '0xd2b813411', '0xed0e1cdb4', '0x10aad23323', '0x11b0503d64', '0xfb1952024', '0xf08f140ea', '0x10e9b4b00e', '0x1073541c75', '0x12811eaf65', '0x1239c7951e', '0x10fc9cfddb', '0xfbc243492', '0x1012dc0003', '0xf6ab80045', '0x1157deb983', '0x13828cbec0', '0x15f29d7084', '0x14922d1e68', '0x12f8222682', '0x1556bb3f08', '0x131ecd892a', '0x1206701d25', '0x128cdbe8eb', '0x123b879b8f', '0x100182a5f5', '0x1123620b9d', '0xf5c5c570a', '0x1147674740', '0x102ce61948', '0xf52d10bf8', '0x10cc42746f', '0xec10cf084', '0x10988fd72b', '0x12ab64bc4f', '0x150013dd3a', '0x12ca994e23', '0x132c60249e', '0x1253f91dcb', '0x149dc6071a', '0x13082498f2', '0x150a3dde25', '0x158172ef47', '0x13eedb190e', '0x13e6f35d65', '0x124f954653', '0x116af193b8', '0x139812a5bb', '0x15dc1090a9', '0x13f11bd432', '0x1214493602', '0x13d440d3a1', '0x132135df22', '0x1584993d50', '0x16603b6bc4', '0x13fdbd8cc7', '0x1234d4356a', '0x1400d1cf73', '0x1646fb9b70', '0x1649ce88ac', '0x168cb11e6a', '0x176279ab4a', '0x15d261103f', '0x188c8127e3', '0x1720b1fd93', '0x14995c3a0b', '0x172be713e4', '0x19f9f15580', '0x1854f2a9bb', '0x162c6f84be', '0x14337f0076', '0x1688627c25', '0x13b7562ca1', '0x158a65902d', '0x13b6268bab', '0x11778de105', '0x13a607e787', '0x12bbc85e24', '0x137637cbff', '0x1181541423', '0xff2524339', '0x11c5480c12', '0xf8c9f0a90', '0x117e2dbff2', '0x100918ea34', '0x120a33ce4d', '0x144b253cda', '0x1488677f99', '0x14a8c44d78', '0x12a50e8ba4', '0x1327cfd0d9', '0x11db22a78b', '0x14168620cc', '0x1208c4f202', '0x119fc836aa', '0x104d654690', '0xf2b6cd745', '0x111033d62b', '0x10a0850bdd', '0xecb86c720', '0x10a47abf0d', '0x1279f8c744', '0x127277a656', '0x127656b878', '0x1251bfab8b', '0x11d2b3d944', '0x12ce22ae3b', '0x10aa37d78b', '0x100739a97e', '0xec3214905', '0xffcf70ab5', '0xedfeccf04', '0xe13fc2fbd', '0xfd60bc7d4', '0xe9d4caa70', '0xd81555246', '0xf31147aaa', '0x1102cd8f27', '0x10acda8950', '0x12c1ff1bd4', '0x10a65e3de5', '0x126a242e63', '0x11be102bd3', '0x118d742c50', '0x103aa10d6e', '0x1241a8429e', '0x106594245b', '0xf19b228e0', '0xf39e793bd', '0xe4abc6c5c', '0x1013749b90', '0xf793f40a4', '0xeecac874f', '0x103f5ca1e2', '0x10b8844323', '0x12cf7ae75c', '0x1275f619ec', '0x107ee4687d', '0x127380b861', '0x10c3eb1f80', '0xf57a4ba32', '0xf398e3a4e', '0xd525c7305', '0xefc7da707', '0xfc3e4d3de', '0xdfd0b0f09', '0xd295c776b', '0xc0dbf34e3', '0xd83f5d4ae', '0xf34713b47', '0x10dd00add7', '0xf30e682bf', '0x1116960a6e', '0x11680550d1', '0xf5fade01f', '0x10f0d3407b', '0xf46585b87', '0xe0d422f3b', '0xc4b99e954', '0xdb0a33553', '0xf666f97f2', '0xe94765454', '0xde3a2a0a1', '0xf9d7b032f', '0xef01aa3ba', '0xd754d7e0e', '0xf23dc8d87', '0x11080e9422', '0x11f62591ff', '0xff53f890c', '0xf5fbbcdb5', '0xe060eff83', '0xfc6824732', '0xfc150e62b', '0xf4cd28411', '0xe0a83b6b7', '0xd97904079', '0xf4a78508d', '0x1031b01853', '0x1234b5f574', '0x11761544d0', '0xf47529c36', '0x10f283c439', '0x10bc06229e', '0x12d2d90bd0', '0x12b19717c8', '0x12ebcf9e7f', '0x10d4272d2a', '0x11a6bc6491', '0x13485434c9', '0x11256ab12f', '0x11abbd2098', '0xfb6366693', '0x11ac3a98d4', '0xfc8b5cd00', '0xe4d263301', '0xe7c1eedb1', '0xed2fb4253', '0xd5af3d3e2', '0xecdc47121', '0xff98edf32', '0xf028ca9ce', '0xdf0f8ece0', '0xf72d0845a', '0x1160855bc1', '0x107540f61e', '0xff9a9c6a7', '0x11ef06f63b', '0x1022c00b5e', '0x107281f0cb', '0xf3e3adc22', '0xea2127bb2', '0x102978e748', '0xe7ab659aa', '0xec27ef98c', '0xd2d88a6f8', '0xed2b128a1', '0x106e551643', '0x10f86a849d', '0xf3a2c2bee', '0x11211241e9', '0x1267b8ce19', '0x1099d46e7b', '0x12ad0c4e43', '0x12fe5fd256', '0x122012ef86', '0x110a245be3', '0x120710b99b', '0x1099e7ce38', '0x11331bda01', '0x1023281e87', '0x1082bc3fd1', '0xf008e0d8e', '0x10deeb5cdc', '0x118ff6fbbf', '0x128a3d6791', '0x11ef657c72', '0x11babb205f', '0x10b38ae82b', '0x10dea8f43d', '0xf0b789c71', '0x104aec6658', '0xff3a40b90', '0x11f20872a8', '0x10fc949051', '0xf6aaa2e21', '0xf827d0b07', '0xe20da606c', '0xfaabda376', '0xeaf6c5cfb', '0xd5ce8c415', '0xf084b39ea', '0x10e934626e', '0x12bf962901', '0x11187ecd4a', '0x10525f4ee8', '0x125c478c64', '0x14626f1497', '0x16a9745c25', '0x15d78d3157', '0x1505ca0506', '0x12b8544f40', '0x14d5fb1664', '0x16694bd049', '0x14e469c294', '0x12b2545b8f', '0x15080854ee', '0x12bea927de', '0x11fcad1734', '0x113909cf90', '0x100da48a23', '0x120f585ca0', '0x11beeb8230', '0xfff8a0ca3', '0x11e40c40c2', '0x10c7349e68', '0xf301c24a1', '0xf025fbc50', '0x10dc15c78d', '0x1276016008', '0x12b317f618', '0x14e180bcd1', '0x177d2b67f0', '0x14ead6e080', '0x127c3ad01f', '0x14cb4b35d0', '0x1340406d6e', '0x113af131f0', '0x12b3df8568', '0x1455c2f8ca', '0x1302eb30f5', '0x153441fec8', '0x140c8da5bf', '0x168d97eb6f', '0x180837397e', '0x17ec3d547f', '0x16b7788f66', '0x14cd5563d7', '0x13930ad4c2', '0x14ef268784', '0x15d1d81585', '0x16f30d1b94', '0x14a1e57ce2', '0x17353df64a', '0x1a1b06dc94', '0x197e3fe37d', '0x18245a8d50', '0x1aec01d13a', '0x1c9de2e318', '0x1ba1126078'], 'gasUsedRatio': [0.1470623871780353, 0.9664142423601025, 0.13460378195227266, 0.5505537804922442, 0.406981386090455, 0.49341678285708446, 0.2937792650969992, 0.16413203750962987, 0.960020710902771, 0.9991495264838801, 0.4248068867784998, 0.38285335759020905, 0.2524364862335572, 0.09423047670436747, 0.25658549161400535, 0.9526758033501291, 0.3085271080725826, 0.12806345217759363, 0.9557251178312544, 0.9999640943716256, 0.5879127245739196, 0.5790567811320085, 0.16903981994486458, 0.9997804710477449, 0.4580934535072646, 0.051124546238804386, 0.07594390002838979, 0, 0.9998023731240795, 0.298837864808581, 0.9998671779407733, 0.938496299168901, 0.7682689671772721, 0.059120158330045934, 0.6812542374014616, 0.2770902572724531, 0.5879914908746717, 0.8264003253557343, 0.07706654307006472, 0.2852891546113215, 0.2686173345269479, 0.2795464649307581, 0.9995389475692497, 0.4817741344111581, 0.6224413367103393, 0.5512751935437967, 0.18808613333333332, 0.3921581757919942, 0.14777189392172815, 0.999155474504479, 0.9997975996154392, 0.9447877803643084, 0.19017519599379867, 0.062205940911689274, 0.999526714852134, 0.9973519166092765, 0.9986498965813567, 0.040116908819812655, 0.11756407084734657, 0.793128145935679, 0.2369404334797219, 0, 0.9997346067582186, 0.9995349315815756, 0.5744305666666667, 0.2888943052891148, 0.4735800264502994, 0.05601072472101684, 0.9999267522950501, 0.32318535580799806, 0.9997309745933809, 0.10765573036659067, 0.9994380984079455, 0.37652216666666666, 0.5473583, 0.45825166666666667, 0.9986098241733614, 0, 0.46967196666666666, 0.4320779092549459, 0.5152823666666667, 0.08985768730168324, 0.965874247250015, 0.6564604675985087, 0.28419513333333335, 0.36600463333333333, 0.560755377626252, 0.999379566087595, 0.9999432666666667, 0.05255235070379559, 0.7087758443665932, 0.17440144823851136, 0.28342192301564956, 0.7421879233308536, 0.211196465056651, 0.8849089208031065, 0.8038833782828718, 0.12518234959063704, 0.32120412036616974, 0.799846736279195, 0.15370563766528011, 0.1868322, 0.4747531297645484, 0.8574422511036377, 0.6468051163070586, 0.21100310241306222, 0.6918178869999776, 0.07778083410141816, 0.36593867015956544, 0.7631397682130032, 0.999370235540124, 0.9514048621864013, 0.21403677977409094, 0.951251466313796, 0, 0.9508599696335084, 0.21474958401392116, 0.1748564, 0.6792125510561063, 0.2618783777531526, 0.9993941, 0.9999097785654358, 0.33639271396653303, 0.10060623588849861, 0.99937433216542, 0.9995044666666667, 0.22383556666666668, 0.9606827400289716, 0.4736624754183104, 0, 0.999489065594114, 0.7291864666666666, 0, 0.6609012722045632, 0.49842873282350625, 0.038777708303569386, 0.9997365234421374, 0.31098756666666666, 0.09298383333333334, 0.3066568333333333, 0.23223434350309743, 0.1636073193668314, 0.6784730955526964, 0.24331965419668783, 0.925582892782869, 0.0838895348906977, 0.9998422, 0.7189842, 0.13753246666666666, 0.9730902333333333, 0.31859500802533675, 0.15088500749267367, 0.5114116374481631, 0.9488075377740706, 0.2688947, 0.9999202554627927, 0.9525677090058267, 0.4285591497783513, 0.2777102681537042, 0.4861270600488852, 0.13553813700176354, 0.6794957755126779, 0.8304605950993796, 0.24753560073391948, 0.07412855334610428, 0.2712383905246755, 0.06786359775019751, 0.9995631527447276, 0.9995134474273734, 0.057947257872318116, 0.15043596896146944, 0.6455701940883323, 0.9342193486269816, 0.9997222575690323, 0.9996820357946591, 0.241138869274638, 0.4892999210560209, 0.6552777015460092, 0.45639005062028803, 0.16005140053087163, 0.803028691853403, 0.03244545593483996, 0.9997894504583414, 0.7296299005290666, 0.2651944022840179, 0.12932083024814128, 0.1475808931458539, 0.9996052655482524, 0.38869012386130153, 0.9996326485312804, 0.44796658219723057, 0.2864163711729007, 0.48468909007027233, 0, 0.2769324566912913, 0.9926996676941181, 0.9995734669810139, 0.8572083297116226, 0, 0.9998051965418793, 0.9996771695120571, 0.9405117300099751, 0, 0.9934297666666667, 0.24158873333333333, 0.4648211311679188, 0.20960912896852038, 0.9995325560227627, 0.12967017970667477, 0.8427919, 0.5168959178029321, 0.10481133465095684, 0.7473458, 0.20574174014258256, 0.9997450664287286, 0.1117732, 0.4678408465866919, 0.3983883384957826, 0.9994550316529538, 0.13477226666666667, 0.6266289666666667, 0.25707969501115496, 0.23792733125896437, 0.5255183726435405, 0.5051319, 0.18410286666666667, 0.9660175828363063, 0.9380161700984435, 0.047010884906299746, 0.8136270792247838, 0.06347076666666666, 0.17295769318739748, 0, 0.9998513117219944, 0.9999523333333333, 0.9657281333333333, 0.09631575233215235, 0.11840794384741425, 0.9994668666666666, 0.18659733333333334, 0.5895414128103906, 0.26889573333333333, 0.983018017093692, 0.29645621002579603, 0.2997797, 0.14479193333333334, 0.7207556845926714, 0.9302885682693304, 0.7896679477744196, 0.6835575759741418, 0.0848043, 0.09171252394630022, 0.9997034663899019, 0.35174343909548655, 0.9993426654396421, 0.20368143333333333, 0.15172303333333334, 0.587484612057007, 0.7216149738699925, 0.43979088092640956, 0.8371244653182487, 0.22521702651264086, 0.9473053012252608, 0.6112701112803213, 0.08045060839399884, 0.28944593333333335, 0.19068, 0.6254693041087955, 0.287218001403468, 0.2729779333333333, 0.5468662482247247, 0.43886663025336325, 0.641331898021543, 0.10294364894639231, 0.8296475016882744, 0.26349372496840756, 0.5838723664591705, 0.4164756186438978, 0.9361593262949566, 0.9412715881814109, 0.9996951379377257, 0.49017982629161344, 0, 0.5759551621077688, 0.28316442011247966, 0.7852009406002833, 0.09513316954398038, 0.2540026866311074, 0.8145489617653551, 0.2127185897393037, 0.12373812722914519, 0.33638608995660635, 0.9999374444957669, 0.35116105911666995, 0.29192847544578937, 0.9348330447108537, 0.9983353823350336, 0.48081421627295884, 0.21986721137194856, 0.5354256863654717, 0.9993514988397982, 0.19959133217544117, 0.7172248688882645, 0.18810154184914096, 0.1303416, 0.7034380405799596, 0.1777852992662793, 0.2421993, 0.7994400865778767, 0.16739712290398137, 0.4098685858847967, 0.9998535997267195, 0.24395819687605136, 0.9971152666666667, 0.47530056666666665, 0.09229516666666666, 0.9532395384092567, 0.9997667331156176, 0.1268399442561808, 0.03932256363344278, 0.9998975000167156, 0.9995895323727646, 0, 0.9973543236538938, 0.9365618052055664, 0.05422368578750783, 0.9822279163124296, 0.040398366666666664, 0.159186145270857, 0.8668799424212796, 0.9993861322022946, 0.2742883878146035, 0.5260983645339252, 0.5215023666666667, 0.7974370639596232, 0, 0.7628773283966859, 0.2961203527579918, 0.2559066371902724, 0.9402086049334664, 0.22106779906455054, 0.08389577451626852, 0.939055836748885, 0.2236079730380099, 0.39720645756580925, 0.9998197813663418, 0.9622774988131932, 0.5005043337363497, 0.9474216030658557, 0.3007240380796063, 0.5064611429450191, 0.8585969398234753, 0.75205722079954, 0.05747791870875429, 0.5915439520049323, 0.8987723403828538, 0.43214019697648454, 0.03493916953142821, 0.35183753784702954, 0.9994052316481563, 0.9999346666666666, 0.15029823289108482, 0, 0.538329414447328, 0.3774776379582575, 0.6011268883637044, 0.16238386666666665, 0.9994827333333334, 0.3821368900064246, 0.2992131840828754, 0.4767328571434291, 0.09291180986577208, 0.9998662333333334, 0.9682200668953233, 0.044065852815753204, 0.18589720832456366, 0.8272050383562396, 0.815565115575746, 0.06369642736251878, 0.7358132448083041, 0.999747740190632, 0.8167517074603384, 0.07456757508226507, 0.7877165670861772, 0.08207903178118009, 0.11643479170458586, 0.34399087033974424, 0.5250235666666667, 0.7022164333333333, 0.12063406666666666, 0.23512683333333334, 0.14796452068778496, 0.9996868663744086, 0.5613388379581816, 0.02804518568434661, 0, 0.9996250006095243, 0.9825557130535367, 0.9994545013077206, 0.34038216324184917, 0.7068035359433519, 0.3230688053398674, 0.2091758615349405, 0.8831947624923379, 0.41712600772976993, 0.14770293103936685, 0.5636998276323566, 0.9998025393941082, 0.999939366266484, 0.40750816666666667, 0.23270143294927498, 0.8129224788735931, 0, 0.24498573213955774, 0.4609000446036402, 0.9947237517172965, 0.05171851633366277, 0.44513606315653137, 0.15990892538622278, 0.9997522654940567, 0.9999490333333333, 0.9483485, 0.4397432666666667, 0.06399679286823583, 0.9482053183249638, 0.40438003333333333, 0.9485760178147294, 0.28075052870049344, 0.17592548877024033, 0.5318259560922481, 0.41154512241443697, 0.8161560124420353, 0.19242823333333334, 0.26244496666666667, 0.999912714765969, 0.7535520366485675, 0.6898182, 0.1689277, 0.25681593333333336, 0.30162136666666667, 0.15245366666666665, 0.9998740230165244, 0.3397500064790069, 0.9605241433473599, 0.04476335320914954, 0.9141619666666667, 0.2634839, 0.06396323333333333, 0.9981679666666666, 0.2430793, 0.37436526768389333, 0.16260478204153053, 0.9996986721287168, 0.3037305437546998, 0.15197025436353595, 0.9996032655425857, 0.9996701211919994, 0.4204681644456916, 0.1046673, 0.6943959776721969, 0.9998474021187627, 0.861032163572153, 0, 0.4465310192825994, 0.9094352433998563, 0.15731992283513285, 0.06620643333333333, 0.9653374, 0.39998123333333335, 0.046804237671419474, 0, 0.9996714538520037, 0.6662090666666667, 0.051593547766060226, 0.5799238079288874, 0.9994835618828364, 0.21026102582058154, 0.08387959833635901, 0, 0.969632060677021, 0.9999731998999463, 0.3015869666666667, 0.4193504623931936, 0.7882826469456811, 0.06545718221370783, 0.7639728644700722, 0.9987104048838185, 0.1869494359217163, 0.6045382312590875, 0.539668449173571, 0.0610347010185652, 0.6783278666961646, 0.38327853333333334, 0.706750225071884, 0.7947523666666667, 0.21079296666666666, 0.21544836666666667, 0.8885502, 0.14799715255280113, 0.797384277558659, 0.15841207057151227, 0.9995598737667999, 0.49047151065936245, 0.4156948872865951, 0.2487654659384913, 0.9980018924071912, 0.1997135, 0.9042423926964681, 0.3974712376398218, 0.9995149398751558, 0.3174789698767094, 0.7152348858122788, 0.7144066267350861, 0.4269504416258249, 0.8394871183421222, 0.675384224497028, 0.2651753875318497, 0.6726562071663067, 0.33333413489879066, 0.9997178074498031, 0.7172524273238969, 0.3396205847801489, 0.09002700977620237, 0.5409512506602657, 0.24021210089972383, 0.2748834125975521, 0.5932918809936628, 0.0932076146572877, 0.970510355589006, 0.09102736666666666, 0.4232085, 0.40626273333333335, 0.3698147574439774, 0.5889528496893264, 0.18945386666666666, 0.44082676666666665, 0.9968618333333333, 0.9994262730890048, 0.1817130159212794, 0.5529084788146642, 0.2617377645275791, 0.16048296862170253, 0.9488564532197565, 0.758608762913971, 0.2926778560143244, 0.9994493984399623, 0.6556088666666666, 0.9996024117550788, 0.09312799204901248, 0.23393608627917706, 0.42069566932555946, 0.2828426862617928, 0.14909010631095865, 0.9967858552808068, 0.5549486390211439, 0.49590779236465576, 0.13856681760506948, 0.2508781024705185, 0.6121858310129334, 0.2530652160254714, 0.902176779522169, 0.13670590587408285, 0.37535878987997284, 0.9995572333333334, 0.08553268933780503, 0.9999634332992045, 0.2579829537630739, 0.8716951895541935, 0.46024123333333333, 0.9966797333333334, 0.25669566666666666, 0.09243396176366221, 0.9523581222009141, 0.5094270643269087, 0.11972855682663941, 0.11577577115530598, 0.4721795887695152, 0.12386673333333334, 0.9999662003279536, 0.9995725329343641, 0.3844477, 0.9986608410220753, 0.3248730473772791, 0.9995490666666667, 0.1015834629182063, 0.06672819121112353, 0.9806250950095353, 0.1430227717432663, 0.9973392333333333, 0.32386834256348673, 0.12697828865657468, 0.9993012150213728, 0.9999021333333333, 0.2143220145527892, 0.9116473381561542, 0.08735681384952933, 0.08113333333333334, 0.6582100087402015, 0.46159873817683705, 0.10873038032241915, 0.7027791686137537, 0.0354471147904443, 0.8676256115240643, 0.18575519647656138, 0.2944919129987096, 0.9996763011494783, 0.7804913045513202, 0, 0.979715453599802, 0.5327188427033877, 0.9992061333333333, 0.9996497753277258, 0.18269306666666665, 0.6214287, 0.0015901194182786158, 0.8163316952429156, 0.1631868, 0.09274509892243109, 0.9999376999418533, 0.21397064203788257, 0.31170789885980654, 0.7645517707858702, 0.9946540181863849, 0.1052144066422383, 0.5607829746371181, 0.20916808080294447, 0.9591024397515482, 0.42226776666666666, 0.9999780118619165, 0.8026737727159263, 0.2915921215791062, 0.2187527156301597, 0.34137066666666666, 0.3903624, 0.36236361473645684, 0.3202543989041056, 0.4147457196245517, 0.2742728882841523, 0.7078914623464674, 0.3531438566186429, 0.16655045296317916, 0.9997631993290648, 0.8447144236589033, 0.2470816866559103, 0.1693989876677059, 0.4019750628938432, 0.9998672030285184, 0.9480865724905775, 0.5342421, 0.20222186666666667, 0.9997688590424784, 0.7350233438558991, 0.5644934333333333, 0.11927136666666667, 0.3449760333333333, 0.2239686387090327, 0.6441340258941471, 0.08404732012050713, 0.9997733907579299, 0.5126139919501904, 0.30497365184904635, 0.899825722646093, 0.05484929521049334, 0.9020161065236322, 0.36990097552468254, 0.9994435333333334, 0.2858898714594802, 0.374856083199011, 0.8526549, 0.035612041825509276, 0.9994211327930572, 0.9429713583046523, 0.3387284322930736, 0.9995715333333334, 0.27318776666666666, 0.9981312666666666, 0.05973453076929622, 0.5354244508897669, 0, 0.7310851336354945, 0.18722862406006785, 0.822134016534976, 0.9130592502296749, 0.03872049728150209, 0.039029062792192704, 0.6879407662761183, 0, 0.803808901964668, 0.057846466666666665, 0.9999121809113266, 0.9970759972709308, 0.1705717, 0.28589796666666667, 0.9450875112881062, 0.293791567392321, 0.547267235480441, 0.18927229295068995, 0.31163807335763977, 0.8023268732594743, 0.03811333333333333, 0.49139524745914387, 0.3595081171452086, 0.9159664933817309, 0.33565554647077567, 0.9762025491141383, 0.2550466978005337, 0.07524869606463584, 0.9998300677938659, 0.673226108410615, 0.7909405192530138, 0.16590517948219538, 0.11169244655637743, 0.8812497326025143, 0.09506306826695839, 0.6397593310854581, 0.05161326244628516, 0.9999279333333333, 0.999819409679781, 0.7451402, 0.04885550740297901, 0.33209791059467486, 0.9996317066722152, 0.3906371273309149, 0.9994065526846985, 0.43976065899434164, 0.2280914260760322, 0.20521928667393224, 0.5861121185802481, 0.3365527301515701, 0.9998088739711556, 0.9997261318124377, 0.9997969701493684, 0.24909207835613031, 0.1885460460223929, 0.9996551289114182, 0.08414316093675396, 0.2708876645649601, 0.6165221677937011, 0.4314957087347594, 0.011502308460655171, 0.7829743856808563, 0.08515380334194661, 0.9994889990487341, 0.2445364221213605, 0.28933826331730866, 0.8848693832387987, 0.013323292837036394, 0.9993434176947579, 0.9997753468660404, 0.9993805649116005, 0.07926295819038778, 0.5813010520934041, 0.32364637053703743, 0.9994064724726268, 0.1925744663879343, 0.9220719437127906, 0.5885272514663903, 0.20749479305601864, 0.4938032909355381, 0.18017940269679383, 0.3048978, 0.9997858, 0.9625067333333334, 0.14907053333333334, 0.12639563333333334, 0.8871560666666667, 0.3589173666666667, 0.9993766666666667, 0.6594841137629105, 0.07369626666666666, 0.14288028926913798, 0.8947715203257772, 0.9547422620697644, 0.5019806537632422, 0.546889143004182, 0.6481342660847875, 0.23266664645191085, 0.9998767858563281, 0.26844046269293054, 0.06266283747855252, 0.9995238784790761, 0.9841887039252848, 0.24676785016824487, 0.14519704334686181, 0.14418550486413842, 0.9616757339345245, 0, 0.8701437898229596, 0.1603464093163554, 0.04452698313490048, 0.9995816980200373, 0.31372026611578835, 0.6554993478296377, 0.0978582, 0.14384926881099394, 0.9575436937074474, 0, 0.9999797, 0.16675613736814, 0.9999686999707866, 0.9997122666666667, 0.5471661922133038, 0.524627096141709, 0.10995823207933221, 0.609577545183254, 0.22863850753705783, 0.9999970666582577, 0.09105324117596637, 0.40903835434574654, 0.1999975, 0.2220772, 0.9993296120328167, 0.39773113788239534, 0.059270699824364996, 0.9994848272008566, 0.9407882402497978, 0.4936537390857678, 0.5032791082795407, 0.4690330622603431, 0.39163924536763, 0.7204245469324602, 0.0447429, 0.3471781, 0.1840580672972842, 0.8321769666666666, 0.22143423613508076, 0.2857731666666667, 0.9995147333333333, 0.1914228, 0.19639833333333334, 0.9995141333333334, 0.9790057675346691, 0.42105330701819677, 0.9995653666666666, 0.05049664330552117, 0.9239645069819292, 0.3539898132427844, 0.4571918019977571, 0.19838373333333334, 0.9997107, 0.0925430015743707, 0.1837388705245219, 0.5333276723209928, 0.2545670360881468, 0.9993194007683784, 0.3501177517496604, 0.3580516311070399, 0.8545844642721495, 0.6165128569236917, 0.9999054900675979, 0.4256408432335017, 0.07420801545857543, 0.974187422342945, 0.13452176373289657, 0.1605014812109034, 0.4693578205548238, 0, 0.9998059543622028, 0.7079014774722255, 0.04919462465675849, 0.2635526975615301, 0.16330199717840882, 0.9850862858632933, 0.9999849706476749, 0.936291981198307, 0.10333383640659786, 0.9995608810875012, 0.5744615787762094, 0.03290921014920262, 0.9077018997772078, 0.10664307540067264, 0.17973505997893785, 0, 0.9537249687631366, 0.9996788929499301, 0.2869604456418519, 0.3104983250981205, 0.9970647674909098, 0.3265142698430592, 0.10377505415962447, 0.9998792129336905, 0.9997034870134293, 0.7184281664337628, 0.05382148421045593, 0.35360539132926605, 0.14868046897084108, 0.9996578990307139, 0.494856629592581, 0.3844685642629443, 0.1708476474481984, 0.3720817258509906, 0.9999552356563542, 0.7362699351834132, 0.9969239570662602, 0.33639601978872274, 0, 0.9368772606450199, 0.44976091977685845, 0.9993659, 0.4723936924406683, 0.5486634275882141, 0.05765575658019859, 0.6955203076782391, 0.8696546967453482, 0.05682680434813611, 0.6224053396273093, 0.056538252540545016, 0.9992440270227056, 0.07250727210393763, 0.12426313333333333, 0.5513189666666667, 0.5936977541430792, 0.10365653333333333, 0.9338344893788785, 0.8164212619931779, 0.25840066666666667, 0.21521292208508275, 0.9324406195854722, 0.9993472228722728, 0.28845357412694483, 0.38266496613421946, 0.990371929712061, 0.09897687230519674, 0.577232835493034, 0.2071349207991026, 0.339929747068714, 0.9179311644253246, 0.0835525225372146, 0.5774634402775196, 0.071298, 0.9993674333333333, 0.9339116981065344, 0.631310322556301, 0.0891337, 0.9996174666666666, 0.7979660333333334, 0.10787830983622174, 0.9999901474338007, 0.5680405073278961, 0.317126091160239, 0.260407310455667, 0.7319257619751939, 0.18350624276054825, 0.6441945307041983, 0.2529453919225965, 0.5925441653011981, 0.13453547704802254, 0.9982243164537052, 0.6639719136944355, 0.7226663844981035, 0.3695022283343677, 0.4541181114193779, 0.26805114033060873, 0.5403386196041255, 0.0672835164247364, 0.8317717185629944, 0.4162941860904816, 0.9999383528530912, 0.28628565930208766, 0.13030181325250573, 0.52414563644287, 0.1437361092991496, 0.9356137335681526, 0.2493555472349075, 0.13982342463053396, 0.9997321491642984, 0.999869044116569, 0.9346128001283757, 0.14739359302050237, 0.31892084166326784, 0.9996272720623377, 0.9409562653365516, 0.9468931740226396, 0.35527560660867474, 0.34994333415796897, 0.06188561857703546, 0.9520987088880123, 0.8024497844289898, 0.22887366332553102, 0.07962588632768809, 0.9995084614304531, 0.06510531735145406, 0.3383010270582071, 0.33005291238904444, 0.22838013455778142, 0.9999971666559, 0.43041816666666666, 0.10608533333333334, 0.9732061666666667, 0.25123200528017725, 0.1208837, 0.45294786666666664, 0.9931442, 0.8799000775742487, 0.5517039, 0.9665956666666666, 0.99961, 0.06207441766448397, 0.03491816708756152, 0.9996072333333333, 0.20315963333333334, 0.08012736666666667, 0.8418144666666667, 0.8491224333333334, 0.2396401, 0.9613506589184339, 0.2820998966265702, 0.9995877, 0.7623130653750053, 0.48181068302330415, 0.29833013114785495, 0.1628734706971453, 0.26392746666666667, 0.7778728595139821, 0.6692011245877163, 0.7071000333333334, 0.09615346666666667, 0.9993249, 0.9994139333333333, 0.4061639190669689, 0.28799716879735754, 0.9605906800170047, 0.7518158630471978, 0.3619610058772006], 'oldestBlock': '0xd0f714'}}), + (('0x400', '0xd0f712', []), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0x1503951062', '0x1504b837ff', '0x157a2a8830', '0x13f9d54e7f', '0x14199adf2e', '0x12184ca84b', '0x145aa84eec', '0x16e5e9da35', '0x16803653bf', '0x19062fbf1f', '0x19639bb9a7', '0x1644ba97d6', '0x14a96b34b3', '0x1645ce9d83', '0x1504d7bfe4', '0x12757cefd2', '0x14c410a11f', '0x175c46cf24', '0x1a475b0a35', '0x1ad7cf48e7', '0x1846df4434', '0x1b4f4a3678', '0x189d272bc3', '0x1bb00802f4', '0x19cd6da643', '0x1cdbbc1b31', '0x1a83b4fda6', '0x17851afc1c', '0x1784e9f401', '0x15ca16ff33', '0x1845b0f0c9', '0x16b22c1c55', '0x1548480d25', '0x162f34ba34', '0x15c3e2a18c', '0x15178c057d', '0x147e67b290', '0x16bd5161c1', '0x1994d56769', '0x1829ad4102', '0x185c64c308', '0x16721b343b', '0x159f6a9449', '0x16030b5eb7', '0x166ab2cec9', '0x1472fc4838', '0x1407f4edea', '0x13d07e2c93', '0x121d7cce0c', '0x13eef57c16', '0x124126cf96', '0x124757695d', '0x10713ea734', '0x127d5a31d9', '0x148a444528', '0x171b36b563', '0x1834b6710a', '0x18059bdebd', '0x1677c3e785', '0x1945cd4a6f', '0x179fb16c81', '0x15b84d36ad', '0x16932d9bf7', '0x1480f474fb', '0x142a41ac2c', '0x16ae498187', '0x168f8efe7f', '0x15f2862242', '0x18b026d6c1', '0x192c4bf845', '0x170cc74b27', '0x17fd6ecb6f', '0x14fdc0f202', '0x1795f02ce7', '0x16820623fe', '0x158c4907b6', '0x14f00f8ab3', '0x148fccb81f', '0x1569156956', '0x1556b5909e', '0x12e3851c33', '0x1396d4aa1d', '0x14139a6a1f', '0x1509c51975', '0x14baad288b', '0x1282b7da75', '0x14d1e14b83', '0x176acbad11', '0x15bd01e070', '0x159e05cc3b', '0x13a6033be3', '0x1263838ef2', '0x12af954967', '0x11b2409b6a', '0x13e82f3532', '0x1664631ea5', '0x19303d83b9', '0x169680035d', '0x140a97eaaa', '0x15d3697413', '0x1470d48825', '0x121eeb143c', '0x1405d8ae0f', '0x12d3b27c7f', '0x11f2fa097f', '0x10e4a78663', '0x13011da6a5', '0x1560ced2dc', '0x149fd63dd0', '0x12aa94ea40', '0x141e57ba5a', '0x122422d917', '0x120b754667', '0x1070e11630', '0x10ca1789d6', '0xf66d41197', '0x113a517d59', '0x1102383b81', '0xee1f13411', '0x10bd9b2881', '0xf86d653f4', '0x117757294d', '0x12f46cec64', '0x1199f82732', '0x113533ced6', '0xfc9f1a873', '0x117cafae20', '0x13ac153633', '0x125756ffeb', '0x14a219b824', '0x16b790276d', '0x150f793c66', '0x150731b32f', '0x14b274a318', '0x12ac34ad1e', '0x12bfad22e7', '0x15175e738f', '0x17b9996c62', '0x164dc2d2ea', '0x181773d9d0', '0x157132d308', '0x12d8d3014e', '0x1533b770ec', '0x15f95b342c', '0x1877e9d273', '0x1668f1d603', '0x155a102075', '0x16183b35ce', '0x185c882984', '0x17419ae59f', '0x1797380d0a', '0x16d556ce42', '0x18db8549f2', '0x19a910fb40', '0x19247fede9', '0x1876d17b94', '0x18b438e5d8', '0x15dfa62356', '0x189b854260', '0x178ceb7532', '0x16f554fba5', '0x19d37b25af', '0x19e6bf6262', '0x16e771591a', '0x1935f453d9', '0x1c5bab233c', '0x1a7b415f3d', '0x1dc98ebf00', '0x1c137d87ae', '0x1b7cc269ae', '0x1c6aa3b816', '0x1daf855d06', '0x1bb663279b', '0x1a0803a378', '0x1b4da96393', '0x1eaa1064ea', '0x206d22e95d', '0x24781fcba0', '0x263bf237dd', '0x282a936682', '0x2d0433d4de', '0x2985043108', '0x251a74868f', '0x24b7c9c2cd', '0x214f3ad717', '0x1f282bbbb7', '0x230cb84019', '0x20e672eefb', '0x21994224bc', '0x22ec10d449', '0x1ed37d7674', '0x2263f52d87', '0x2576b8a675', '0x21ec48563a', '0x1e5222355c', '0x1d87c3bf5a', '0x21379f0eaa', '0x1f4598bd76', '0x232dd1280e', '0x1ff032280a', '0x23ed889c3f', '0x284b34fab3', '0x24b6f563ae', '0x23a6640c68', '0x23e6232a84', '0x202c706d91', '0x2431f25fee', '0x2299458dcc', '0x2116b4fa53', '0x2334cfdcdd', '0x1f37e61821', '0x1e7c72aa9a', '0x1f2bf70bcc', '0x2167bf8ba0', '0x1f7235de99', '0x235fa670a7', '0x25531b788a', '0x20e40559bf', '0x24f5f890e2', '0x2057397ec6', '0x1d0738e689', '0x200ec289e6', '0x1ec30f45aa', '0x1d2aaf0017', '0x1d9e6f2ecb', '0x1c5ce628b6', '0x1ab909db62', '0x1dd4042e89', '0x1eda1c296c', '0x1f9eb5d695', '0x215ed0203d', '0x20f4d833c9', '0x24cefe84a2', '0x267b7cce82', '0x2294475e4d', '0x214bcd3885', '0x1e30e2430f', '0x1e3283bece', '0x1bc6915e23', '0x1cc2384914', '0x1d41a47529', '0x20e96ce465', '0x1fa5f263bd', '0x1fdfa60a29', '0x1c26492129', '0x19ff5d003a', '0x1892d23798', '0x1a55bb95d4', '0x1d9fbb29a1', '0x21528ae5bd', '0x1dab6d146b', '0x1a07702b23', '0x1cb5853e14', '0x1990da35ee', '0x18d08586c9', '0x16492f98cc', '0x1822251bbd', '0x1adde650aa', '0x1993915529', '0x1cc5213869', '0x1a028ca8b3', '0x193e68df1d', '0x167cec580b', '0x194c3380a4', '0x1a3733700d', '0x18712e131b', '0x1969c82db5', '0x1b6f1f5574', '0x18abb4524f', '0x17f7f72dac', '0x15fe5aa338', '0x18bc83a4bc', '0x1664345d46', '0x193037bb8b', '0x190a835dc5', '0x186dbb0468', '0x1605aea3a3', '0x14cfbf770b', '0x15ea665772', '0x185916c42f', '0x154df3ebaa', '0x16155b9c81', '0x18d73047a1', '0x1aefa14a17', '0x17ce837e77', '0x1850aa2cbe', '0x168b6180e6', '0x18454fe0de', '0x178597fe93', '0x1a7613af06', '0x1dc3fefa06', '0x1ae33b3e29', '0x1e3e790e88', '0x1dcca21335', '0x1eee87c378', '0x1e30f1c7a3', '0x1d830f3fd3', '0x1aaa668edc', '0x1c3a00bb48', '0x18b2c0a3df', '0x1b509202fc', '0x1aa9cf6d15', '0x18f9b862b5', '0x171ed34769', '0x192cda642f', '0x1709856ac2', '0x15033bccd8', '0x1262d4533d', '0x14aea7692e', '0x1744748b21', '0x1a2c9fcaec', '0x17cfbfc33b', '0x188d109d18', '0x16c9fa0e4f', '0x19a2288e29', '0x1773c727b6', '0x15b62e562d', '0x16ecbbf5fd', '0x183e6c8bcc', '0x162197caca', '0x14042feb57', '0x1683d67785', '0x16869a5fec', '0x195718c325', '0x1c81214280', '0x1bb896939b', '0x1a6661d7ec', '0x1db31d433a', '0x1e23fe472d', '0x21e7bd0b12', '0x22305c64fa', '0x20cebb9cab', '0x241468f272', '0x2009941717', '0x1d454dde28', '0x1f15c74ab0', '0x1c0fd406ff', '0x1f9159e758', '0x1dae531f41', '0x1ae4c9fec3', '0x1dc3373a11', '0x217a9df624', '0x220eb637ed', '0x1f6ee466b7', '0x235beef7f6', '0x27c68a8e10', '0x272f080705', '0x225d8308a8', '0x26a7587fca', '0x23a1f517ad', '0x230330e673', '0x1f1c0ac050', '0x212faf4f7f', '0x1e0c3459d7', '0x1b7807955b', '0x1a647414c8', '0x17d8540cba', '0x1ad252a10d', '0x18afccf88f', '0x1bc58a65d6', '0x1e9acc75ee', '0x1b6c5e8697', '0x1d29c02910', '0x20ce12b3d7', '0x1f024e2e97', '0x1ca1348c90', '0x1b9fb88b71', '0x19bd77be3e', '0x188dadbd02', '0x1b9f0b975a', '0x1943d7a197', '0x16844911a7', '0x161fb34894', '0x135bbcdf82', '0x15c68efa10', '0x183b9f0785', '0x1acb685a63', '0x1823dcdd36', '0x1648f627e8', '0x1912112525', '0x1c33d8271e', '0x1a1f99b091', '0x1cf476999f', '0x1a3ccb39b6', '0x1b97686737', '0x1a07e296e3', '0x18a9f81025', '0x16b31ebc05', '0x19879c7a78', '0x1b2a10dec0', '0x1dcfa543e1', '0x1d0624cb50', '0x1dfa4a0861', '0x21b85a8be0', '0x1e0dc05198', '0x203e4cc10e', '0x1e97d34519', '0x1b6f44aad2', '0x1edc0465a5', '0x1b13e117ad', '0x1b652fb00c', '0x1871bf5f00', '0x16edf7dd2d', '0x15a68c831c', '0x17baf7c0a5', '0x180fe18c85', '0x1b11ae5e71', '0x1b4c442678', '0x1a7dc100d5', '0x191f5ec8c7', '0x1b9f0c12f7', '0x18b8ac662f', '0x15a196d96a', '0x185531d49a', '0x16772d1a56', '0x171b716bf3', '0x1438033e75', '0x16beb68195', '0x19966dd992', '0x1cc917d5d4', '0x1c6aeb115e', '0x1b537ee658', '0x1d41b62c8d', '0x19997f66fc', '0x1885ac5ea9', '0x15ef865a14', '0x186570afef', '0x1b71193ece', '0x189aaedfe1', '0x1949925130', '0x185bdab2ba', '0x1b5fc2f9e9', '0x1aec7ede2b', '0x1bc28e98c9', '0x18ca9ff75e', '0x16d9e5bf8d', '0x18f53f3552', '0x16b8929d29', '0x15d48bf615', '0x15abbaa16e', '0x1728f237b4', '0x1979563cf6', '0x1c308cf6ec', '0x19d7118aee', '0x1a361a51e1', '0x17ea288f93', '0x1701d10780', '0x150ca771dc', '0x1730f39fa2', '0x1478035d9e', '0x146c7cbda3', '0x13d96c73ac', '0x144f1a20a5', '0x134c3200c7', '0x15b56bb246', '0x12febe3bfe', '0x1536c61e79', '0x17dd5652ae', '0x1ad8875bb8', '0x1915118932', '0x1760ed6b68', '0x1474cfbdfb', '0x1299ea0bcd', '0x1483fb2476', '0x1713a2d6bd', '0x14cba309bb', '0x1764989e90', '0x199febb0a7', '0x1a845276e3', '0x1965fb6216', '0x178bb2ffd8', '0x1713556f68', '0x1591be120a', '0x15ea95a481', '0x13f11c5ebf', '0x162edc5aad', '0x18ed6f3d61', '0x18b3ad496b', '0x1b80993e59', '0x1a16625439', '0x17a65108e4', '0x17d6eae0be', '0x168f341ab4', '0x1960831ff0', '0x1bac62b105', '0x1912e44987', '0x17f3ac4cb2', '0x15a6aef27b', '0x164eb18821', '0x17ca896c27', '0x15c06642b6', '0x15a5a6cf6e', '0x140fde6a8c', '0x1691193efa', '0x151ce90d40', '0x15b33e684a', '0x1530181510', '0x13dc616acf', '0x13e08a7c14', '0x11a8e7bf80', '0x139cd21606', '0x152386feb9', '0x1678944a8e', '0x1422651075', '0x16a6512683', '0x184cce5558', '0x162dedf1b2', '0x182729915a', '0x17dd7b5e1e', '0x1521b9bf21', '0x128a301df3', '0x127a0529f2', '0x12a7feeff7', '0x14fcb9b7db', '0x154d6ef106', '0x17f718577b', '0x18dc0e752e', '0x1bf6bfe76f', '0x1f7468932a', '0x1ba52f71b7', '0x1a16cc104b', '0x19cf7c911d', '0x18fe6e34ef', '0x1c1db94525', '0x1bbe027ea3', '0x18e37751c1', '0x1bafe1aa99', '0x1f24fbc905', '0x1be4026bdb', '0x19e41aa813', '0x1942a3abfc', '0x170802e5ea', '0x1712ea6d9c', '0x19f4d15975', '0x1782b37772', '0x1943432573', '0x161adac0c5', '0x17dc4c77b2', '0x17a5c6fa48', '0x1a99c68fdf', '0x1b7b154cdd', '0x1aa4d560ae', '0x181e39c20d', '0x1b21b32214', '0x1e854c12f6', '0x1aec9f78e8', '0x17fa0e8472', '0x16b8efcd7b', '0x13e1d1d3cc', '0x165e066fbf', '0x18deb47fbd', '0x17b947002a', '0x1a2bdde25e', '0x1a8732e946', '0x1a6f1149fe', '0x17635253ee', '0x179a497f91', '0x1a482c16f6', '0x1d90e5413d', '0x1be6f9181b', '0x1f50e6c017', '0x1e442b7d27', '0x1cf48e31bf', '0x1aff88858e', '0x193c388ba7', '0x17d1c37f2a', '0x15f8f3e24b', '0x1735ea054c', '0x14beeb5116', '0x175696cad4', '0x1a3b04a2c4', '0x19a4ff071f', '0x16ecdde9f3', '0x1660bb5556', '0x158b92dd78', '0x13b71dd04a', '0x121739c44a', '0x1456d8d122', '0x142633d92a', '0x1535b9c2c7', '0x13c1aba9a1', '0x114976346d', '0x132876f98e', '0x158d3cae0a', '0x136a6dccc1', '0x15d7467746', '0x17cc97f372', '0x164bc4132d', '0x13af5bc0bf', '0x1624d18e50', '0x168ef456e3', '0x1507ebf786', '0x15424fc732', '0x1471e60c67', '0x16ffd3f107', '0x1546f62668', '0x1797230827', '0x198edc62a3', '0x16ab572234', '0x168edd327c', '0x13eefe5165', '0x166cccc138', '0x1630e130d0', '0x14627a33a9', '0x12d5ee17fa', '0x153073a5f8', '0x17d5e6814a', '0x1ad09fffac', '0x18761f15cd', '0x1b846a27a7', '0x1a52986235', '0x1ab37cf5bb', '0x18efacdfce', '0x18dc728f86', '0x1931d195a8', '0x177736b4c2', '0x1a6618c05b', '0x19d9751809', '0x16fcb9fc69', '0x19dbdc91e8', '0x1d174615f0', '0x20b8e40268', '0x1cc96761da', '0x1d12881a2b', '0x19ab0be0e8', '0x167a0d7895', '0x19486e0a4b', '0x1c70d984bb', '0x1ac2d24b26', '0x1e1a8aff94', '0x21ac0c64f6', '0x1f651bf5ce', '0x20fc61dce7', '0x217d352f82', '0x2010eaa5d0', '0x1dbe73e545', '0x217573a2af', '0x2017338fc7', '0x23e135ffdf', '0x22ad0e54bf', '0x20548f3224', '0x245b7f45d0', '0x20c9fc23a5', '0x24e2423549', '0x296cb0ef40', '0x277d5098c0', '0x2c21d88895', '0x2feb14f679', '0x334b3538ce', '0x2ed9abb7c7', '0x30b3f06fb4', '0x3196f86622', '0x31d0df2422', '0x380aea47ba', '0x3c2321ec7c', '0x34bbbf2b20', '0x2e49734911', '0x33beaa8dde', '0x2eb55f026c', '0x2b04894013', '0x2dfcf87ba1', '0x29553a4b5b', '0x29af6bb10b', '0x29f2447098', '0x2972569326', '0x2a153a0386', '0x28c57f3eee', '0x29172b1aad', '0x2b5b81287c', '0x30c5cc5845', '0x36dd74c8e0', '0x310de08b3a', '0x372d8c7158', '0x35d57faa58', '0x31b6dead63', '0x37eb425e34', '0x30edda126e', '0x2cbecbefcc', '0x2b01867eed', '0x306050af44', '0x366c3ad9a8', '0x3d3795ac54', '0x4114f9c8c0', '0x4051adeb07', '0x4859dd65b4', '0x4882d6a64f', '0x3fd6ccfd69', '0x3db6420498', '0x364f91189f', '0x3ca384d078', '0x43b3ad8e91', '0x4c293a4c2a', '0x497aad833d', '0x4c5acf4472', '0x5060245522', '0x5054be23cf', '0x47eec1292d', '0x45968cc6b9', '0x3ce3bb2de2', '0x447f6e6b66', '0x4449bb3fea', '0x4985f87bcf', '0x42806cb7be', '0x4acf7a8dbe', '0x53d1f95a4e', '0x5d5882e556', '0x5237ce1548', '0x4fd6c2534c', '0x497d974718', '0x45afeaf1cc', '0x4e659672d8', '0x5832489ca0', '0x4e61993de3', '0x5675aff565', '0x4f6f53d93e', '0x4581695e17', '0x43bc88435d', '0x49f9d11209', '0x46036ed1d2', '0x4451cb3625', '0x3f889db51e', '0x475e2af6ec', '0x5040e9e3dc', '0x4dd94ed239', '0x4a58c8bd4e', '0x51f8b79080', '0x4866198ae0', '0x516fff1d10', '0x5b9daa025a', '0x5c31d03f67', '0x5289488a2c', '0x5cd9a166ed', '0x57b3de707e', '0x4ffed724bc', '0x59fe76aa03', '0x5077f1982a', '0x53c15af3a8', '0x4e2583adbb', '0x4d2ac0b42b', '0x4974a335d5', '0x52a0697bfe', '0x5cf4277cf4', '0x54132f160b', '0x5e375ce429', '0x5a0a8ee37b', '0x558861dee0', '0x587ade4e29', '0x500b5fca7e', '0x464a6e0297', '0x4f12e9a300', '0x527b1df4c9', '0x5150f15b33', '0x5668bae2d6', '0x4e54a8169f', '0x517a843d48', '0x5ba389ab96', '0x5dff8d5864', '0x699892b8ec', '0x606e74c850', '0x5ba3012ce0', '0x6716471ce4', '0x705b98715b', '0x77b59bbee1', '0x726ee263ee', '0x7b8292f983', '0x8a51452d81', '0x80c63dbacc', '0x895a56ae1b', '0x79e13d59bb', '0x88f3ca76b4', '0x884e49eb07', '0x793a8c3c5d', '0x76b661d3f1', '0x706bc7da8d', '0x6b896a12cc', '0x6614297ad2', '0x5bb08e8727', '0x572f75bb25', '0x504c6ff2f5', '0x476a88c507', '0x42b842e0e6', '0x40a552f37d', '0x3b650bacd8', '0x3814385265', '0x3294585928', '0x36e41709e0', '0x3953c8dd9b', '0x3624cf1440', '0x39c515e42f', '0x40fbb39635', '0x3f4951073f', '0x448fa439fa', '0x3dddb5b12b', '0x3e42753d84', '0x40ee03dbe1', '0x3becc19478', '0x41593fc9d0', '0x3a10f6bba3', '0x350d55de3a', '0x37447a2340', '0x37d544325c', '0x3350f25634', '0x2faa282550', '0x359e03f067', '0x32c43162d4', '0x3120115328', '0x2ff966c066', '0x2be76f396a', '0x2a66ed36c6', '0x2757fa699c', '0x291718ec66', '0x2a1c7ee3b3', '0x260bc82496', '0x269440cc22', '0x24a5f33f43', '0x21292bc31d', '0x213e521774', '0x1f80987abe', '0x1d79d2f6ba', '0x1fa46ec102', '0x1d5b97b5be', '0x1ab806e90e', '0x1e0ec37553', '0x1d4d208090', '0x1a863cd025', '0x19633d472c', '0x1c2a7cfb0a', '0x1faf23265b', '0x1fe2c9b253', '0x1d6505a674', '0x211145bb29', '0x24c2367a85', '0x2508e44c85', '0x23350b0a29', '0x228158067d', '0x1ed593b03d', '0x2086bfde61', '0x1ebbd58842', '0x1f811fd227', '0x214deb1b8d', '0x1db9ef3f3b', '0x1f3952cd4a', '0x1bdf1d3728', '0x1a57726e88', '0x1a8f8a1609', '0x1aa3d8e8a2', '0x1c04164fb3', '0x18b0b6f489', '0x1bc60970db', '0x1a5e66ea26', '0x18b2082736', '0x181b15cf3d', '0x1517b31556', '0x178dec001e', '0x1a7f2bb480', '0x1a953e287c', '0x1784a5d44b', '0x190525f486', '0x16cdb6a508', '0x190732657a', '0x1bbfb82645', '0x1950d4895c', '0x18bdb282bc', '0x17bb8b4da4', '0x157d377479', '0x1803d0aa1d', '0x16f2c30985', '0x18b8d8b281', '0x16ae7faab6', '0x1692c8045a', '0x16a272ba0f', '0x176346a7d9', '0x1a4f19f665', '0x1b1f19d53a', '0x1844c50021', '0x1b4ca55799', '0x1b172479d6', '0x1a4478c6b2', '0x180f17bf04', '0x19c47475df', '0x17d71a3c93', '0x1aad2e683e', '0x1b17e03e77', '0x1aa5addb29', '0x1804115e8c', '0x15dcc6495a', '0x18983a7a19', '0x1a1bda6612', '0x1d3efd7257', '0x20e67c1c9d', '0x1feca3c092', '0x1cf66b1e2b', '0x20702373c4', '0x247df769f6', '0x24015e17f4', '0x253be05e7d', '0x253dfa8bde', '0x22d63dfbbb', '0x272fae9c27', '0x2c1421c2ec', '0x30916764b4', '0x2b53fdfb74', '0x2c93dcbc3e', '0x2b097e429e', '0x274642f7b8', '0x28b6a61347', '0x25e626cbe8', '0x26ad0d6971', '0x243748a49b', '0x25c5a1327b', '0x2524a33569', '0x2264aa88db', '0x2008527b7d', '0x23e12dca99', '0x20ec25b1a2', '0x2036572f91', '0x1ce0968b78', '0x2058db514d', '0x1d525eac50', '0x1ebdfa86e6', '0x229560ca17', '0x22ae5ac1c8', '0x21253c4a8a', '0x1db57b631e', '0x1cb804bdb6', '0x204ebe6b1e', '0x1f954a4f97', '0x1c5cd801dc', '0x1fe7088d2f', '0x1c5d5c2bb7', '0x1a953a815b', '0x19db026240', '0x1b73b0f0cd', '0x1eb384e42e', '0x2288bab7e7', '0x26d8fc1bc3', '0x232a495e50', '0x252ccca432', '0x215b6af47e', '0x1edd497143', '0x22b86961a1', '0x2325c81595', '0x20a24bae8b', '0x24923487dd', '0x26a12d7bd1', '0x2432b10722', '0x1fac5ae63e', '0x212d962469', '0x1f213f3901', '0x1f2f0bbc40', '0x1d2bc692a3', '0x1c36d19175', '0x1baed5d8f6', '0x1b682bb16a', '0x1ead3d112d', '0x1b6dc7e0ca', '0x19cec5b4be', '0x17b6f2b90f', '0x1aadab5ca2', '0x1c3ea9b6f2', '0x1bc6bfc6dc', '0x19aa13cdff', '0x1b6c747226', '0x1c419aafa4', '0x191dd550af', '0x16ec0509c8', '0x198d7e6ddf', '0x173bea6c25', '0x16d771d545', '0x162cf434ee', '0x17548becf8', '0x182840426f', '0x15864633b7', '0x1836f8aa70', '0x15a507a6c8', '0x1743b06549', '0x16c3fa9c99', '0x16e184f28d', '0x1727019977', '0x16307adf96', '0x1839b26aac', '0x17d7454d1e', '0x15b1556860', '0x140a6e700d', '0x12757610d3', '0x14c377ab94', '0x172f2304b5', '0x1a14e6f820', '0x1aa2513fdf', '0x1801ac055f', '0x19551bab40', '0x169a74c610', '0x14dc535c22', '0x1415abbd10', '0x168f8f3e02', '0x193d39b6a9', '0x17d2a68c58', '0x1acce7e0c6', '0x1e26520263', '0x1b1940b496', '0x18c32bbdb5', '0x18c5eb2e14', '0x166d5dfaf1', '0x17175b65ec', '0x160ff9e2ea', '0x149473545d', '0x1448a0e60c', '0x12a82ef4f3', '0x14d8c11cf5', '0x12f2dd624c', '0x155126ffb2', '0x12c4f2a770', '0x12f0416b4e', '0x154e234f98', '0x16433a4646', '0x14796f5f22', '0x130e3dc5be', '0x1318926230', '0x1475e48929', '0x122da3ee6d', '0x137f217fb1', '0x15ee588bff', '0x18ab3374c4', '0x16fe0af875', '0x1757f1dbf2'], 'gasUsedRatio': [0.5008456424365059, 0.5873091666472399, 0.2203919257610339, 0.524851585975797, 0.10097556452484993, 0.9994133202945221, 0.9999415427469663, 0.4306019839742719, 0.9485767333333334, 0.5583322333333334, 0.008352266666666667, 0.21139823333333332, 0.81185905296811, 0.2748332666666667, 0.012823722364889314, 0.9999076665804888, 0.9997768843308763, 0.9996952660876722, 0.5858905577291039, 0.11760432851045902, 0.9997159656958616, 0.10514474857622796, 0.9995138062539901, 0.22765188514065252, 0.9737355, 0.1751221734690592, 0.04824120337840821, 0.4998727609470383, 0.2058094124491799, 0.955784228508769, 0.24023886574708647, 0.2508570571659785, 0.669539343960798, 0.4244114691658293, 0.3762800666666667, 0.3865520319408098, 0.9383289365356405, 0.999897599894716, 0.27818533333333334, 0.5327963, 0.1855315, 0.35333376666666666, 0.5719931846781716, 0.5735781628123539, 0.14890088325164982, 0.41822042511082436, 0.45673607221570395, 0.15696917864438567, 0.9014858208764925, 0.16309168779291186, 0.505298203289899, 0.09815139153640616, 0.9980538, 0.9435877865264569, 0.9997441666666667, 0.6903559, 0.46959433333333334, 0.24122346666666666, 0.9993504666666667, 0.23902826666666666, 0.17763479370939056, 0.6574565991119063, 0.13301131310970105, 0.4339309419840518, 0.9990302609596609, 0.4788308194601979, 0.39124194478476515, 0.9995103427690792, 0.5785709063928702, 0.16263610314422156, 0.6631339333333334, 0, 0.9943914666666667, 0.31721295845393027, 0.3294080598266523, 0.3867175600591063, 0.42816422730524667, 0.665115670905278, 0.48659068032162667, 0.04074855465083591, 0.6483280066327451, 0.5995227699734557, 0.6915842365322511, 0.44125740905321426, 0.07189157204742454, 0.9990056971828087, 0.9990097666666666, 0.21322573333333333, 0.47772890227306963, 0.13570079332074042, 0.24354041118257022, 0.5646364539880474, 0.28816649916389864, 0.9996913970103317, 0.9993561694753061, 0.9995147981724064, 0.08702516666666667, 0.04904859595394903, 0.8561525657423947, 0.2461567243715939, 0.04601093333333333, 0.9198634800215744, 0.2610937436874941, 0.3134982282451317, 0.26468013622559217, 0.9998886666666666, 0.9996321258957295, 0.3589601333333333, 0.1202494902939387, 0.8111893957798554, 0.1068560148593245, 0.4787447762817416, 0.14447876666666667, 0.5847852333333333, 0.16937556666666667, 0.9742686, 0.44912053333333335, 0, 0.9993922333333334, 0.20994173333333332, 0.9996463453437718, 0.8409134333333333, 0.2144058005976169, 0.41054801709924554, 0.1701550872219362, 0.9302308756962042, 0.9998309698841839, 0.22935868976538, 0.9998663723585496, 0.903977651734457, 0.2083071568702778, 0.4938573843317222, 0.43703474616421056, 0.10875403333333333, 0.5162926264163622, 0.999777566459062, 0.9994882331153213, 0.2603804527101784, 0.8206379181178225, 0.060107512739391925, 0.015867906740393553, 0.999825318684643, 0.6456521661366539, 0.9540562607983913, 0.1634891491563788, 0.3111317489673127, 0.6391629, 0.9103796476074446, 0.3185358, 0.5575207, 0.37158613333333335, 0.8545946783700951, 0.6292024872556548, 0.4192782498706986, 0.3920646689651556, 0.5392181043266064, 0.04171548486054044, 0.9999396, 0.3281769, 0.3994262333333333, 0.9996478227655973, 0.5116564207771184, 0.03712318667753774, 0.9028429154015393, 0.9993615086333802, 0.2352974666761556, 0.999348201301333, 0.27021103333333335, 0.41611483613748823, 0.6352213928733, 0.6786377898637391, 0.2341234370304158, 0.2573444438924229, 0.6954662473054924, 0.9923857, 0.7298439, 0.9987210333333333, 0.6935801, 0.7021382666666667, 0.983002168283996, 0.18928484333252044, 0.07453778905294665, 0.4584492224385486, 0.12869023333333332, 0.2415062, 0.999763031399838, 0.2546916410231621, 0.5849203906615633, 0.6575617666666667, 0.030842083961655224, 0.962507144780421, 0.8574590376273128, 0.12195179837508358, 0.07525613333333334, 0.3957147487855224, 0.9994106161500994, 0.2657352518370431, 0.999760565718181, 0.13151767689507415, 0.9996639767551136, 0.9860751958443034, 0.14469994541328662, 0.38400087670166005, 0.527939436082936, 0.08490361676353919, 0.9999770327826104, 0.32357978465276016, 0.3254249102372945, 0.7559904493475759, 0.04690582148297355, 0.406179547757682, 0.5899574755450954, 0.7866093767760312, 0.2654104011072405, 0.9995843215132487, 0.7206168051831694, 0.02482526012289935, 0.9949868901190756, 0, 0.09029867411959, 0.9174482318251416, 0.3383282740821471, 0.29257246068237935, 0.5620091697717047, 0.33037886940679667, 0.26870051403674666, 0.9648287103124565, 0.6372933843026479, 0.5995682555798716, 0.7214298576906947, 0.4503824082965547, 0.96754431302278, 0.6818926363187304, 0.09429122119748629, 0.3515739627928946, 0.1269656, 0.500844, 0.1792209425837664, 0.6415650778028764, 0.5692305038431565, 0.9997743995713592, 0.3464274446118082, 0.5284878307155204, 0.032645103771627014, 0.19419897290546623, 0.28090323610902435, 0.7867108014328291, 0.9995738511851029, 0.9993908413316511, 0.061520750730471176, 0.009184647067082996, 0.9118488407860552, 0.06205681962543711, 0.3824536987403065, 0.09239136539605913, 0.8315993802563072, 0.9530516645382152, 0.3078878852107167, 0.9994600120702398, 0.11625641895881048, 0.3821726586476421, 0.06332917672387856, 0.9997655421037286, 0.6451466625657758, 0.22939510864718796, 0.6589226899598567, 0.8180803845610896, 0.09709201878372886, 0.3861638545505188, 0.17039483237434883, 0.9988390612102543, 0.120808, 0.9996424333333334, 0.4766108666666667, 0.4021715538556734, 0.10596424927887566, 0.2800980870681528, 0.7122111379303429, 0.9439535039214768, 0, 0.6462462540015819, 0.9994063400081646, 0.8374276047900188, 0.03529038879598523, 0.5854218100322689, 0.20871756048927737, 0.8062914216086094, 0.37657578054591523, 0.9998564799646967, 0.9995036973876648, 0.11324673393781809, 0.9993244314192223, 0.4411868666666667, 0.6520047826702775, 0.4042317873977863, 0.41000846961209686, 0.11421405034002897, 0.7341510630406273, 0, 0.9237508, 0.4046072666666667, 0.24679049091437788, 0.20289913931321535, 0.855494717569934, 0.16029826786040696, 0.1484709022130887, 0, 0.9995503045051902, 0.999977, 0.9997394666666667, 0.13891416666666667, 0.6242280746184684, 0.21291426666666666, 0.9992694467186126, 0.15963608764821807, 0.2031223, 0.7234927, 0.7301618969076696, 0.15143787972328374, 0.11775880530689398, 0.9993186320387342, 0.5019190442595702, 0.9997698993480482, 0.9994734793222999, 0.3900709, 0.3093697996093185, 0.9999611332970577, 0.5593856288264693, 0.9996091326037142, 0.5334675647291628, 0.3383850666666667, 0.8989540047476972, 0.05184688345198734, 0.15456683333333332, 0.7479409643516894, 0.11097170357359, 0.9997463333333333, 0.2609179469581287, 0.1243721143675962, 0.9266952445657513, 0.9994746656510203, 0.5691174101112999, 0.19178033878197998, 0.9995922673332929, 0.9996093651692332, 0.44048249069738166, 0.008118572302480385, 0.9991564863089203, 0.1873729, 0.4303805666666667, 0.05411012812655109, 0.7670215747875223, 0.12169956666666666, 0.1567044552338692, 0.34324515369547676, 0.11392459229857325, 0.9993141653635809, 0.1816216653040001, 0.999851142470683, 0.9080477450244873, 0.08419892217891027, 0.7537652195425278, 0.9995197277365089, 0.2810127846350589, 0.1930830457853297, 0.35947485184541356, 0.22722162571211407, 0.3155911157388245, 0.9997815525226046, 0.15877578487204838, 0.06488927609779736, 0.4302011666666667, 0, 0.9994781429267654, 0.9513811530017813, 0.9228410463614501, 0.10372969708642446, 0.19261375329622502, 0.999989613037555, 0.9997002226516271, 0.20512162261552142, 0.9335563689218377, 0.12459473682384178, 0.7064163015128543, 0.27375073333333333, 0.2899626847716538, 0.18143717538926954, 0.9986929750464097, 0.7561074333333333, 0.8897459, 0.3943861514101854, 0.6314351226727811, 0.9993632212201516, 0.06507692364615493, 0.7914305690020449, 0.2952705488100232, 0.08704030333099169, 0.9993395422043887, 0.009804656073300066, 0.5469177132274541, 0.06913236831753879, 0.25212849539480725, 0.2768850907244217, 0.8842412, 0.5559102666666667, 0.9998798333333333, 0.5338169, 0.38179483333333336, 0.29333743333333334, 0.8978479485217314, 0.08004877471218973, 0, 0.9995714658667363, 0.19304637013365977, 0.6142492353893351, 0, 0.9997671250433775, 0.9999155193382654, 0.9999147005546071, 0.4488811600319362, 0.34636389165624726, 0.7825909334263149, 0, 0.33164753966802907, 0.07809304578950986, 0.9486956067534521, 0.9993457031230488, 0.08638843333333333, 0.6110635, 0.35311523333333333, 0.9951413221677635, 0.4342066385928627, 0.6242287, 0.07226423268988834, 0.18693444182607394, 0.8687924156265278, 0.14147624114817042, 0.34318875398318893, 0.4707847495829488, 0.7748635337014704, 0.8996600333333333, 0.9264240530878403, 0.16660963311114182, 0.5574653371181885, 0.14951691741547643, 0.348196075039819, 0.1596413856505927, 0.9070015, 0.030440166666666667, 0.49120162505353143, 0.38749049499112864, 0.5926341937487765, 0.30080657524144655, 0.9997578630932504, 0, 0.9672513333333334, 0.9997912333333333, 0.9996885707773027, 0.23723776266317056, 0.2283062283947149, 0, 0.13726228698010587, 0.9116552777796351, 0.9993582885912772, 0.10458009723926555, 0.9996278103652189, 0.8816082664991304, 0.639270847294358, 0.3312748425229815, 0.20822265400105056, 0.420125088592086, 0.2389067232404009, 0.5643580024057743, 0.13962847934956304, 0.9495494480512968, 0.9948695181230401, 0.46379646079592435, 0.9534840516925368, 0.2942137990518919, 0.12621643402899196, 0.5321099497081277, 0.2852083208853994, 0.9995900985561893, 0.861962412385386, 0.12424757070181135, 0.3210166301792705, 0.1157723, 0.6212482, 0.7660575552026554, 0.15708286956691928, 0.48078596692988146, 0.20710335582137054, 0.9994129151316186, 0.2423009136844257, 0.6112569204376228, 0.4055668975322147, 0.24947813056513782, 0.5032730986897318, 0.05379296741797661, 0.9423144068306577, 0.8112691753661567, 0.7520929252946958, 0.08405824379350231, 0.9997073284123894, 0.7914562941715508, 0.15092849429740052, 0.8559275666666667, 0.45233476666666667, 0.041855533333333333, 0.009374287324906104, 0.48637408728248144, 0.5388799, 0.9997739459248622, 0.5600871227479812, 0.9999872, 0.6492797666666666, 0.9994884333333334, 0.9993379666666666, 0.015562, 0.2748323928350632, 0.45729137538166287, 0.37344289464808866, 0.9996807660601221, 0.44680875768852246, 0.08854257590857283, 0.9497648785445404, 0.9995015932783393, 0.08210169425342967, 0.21321868175623956, 0.4025574849058244, 0.1470327215718966, 0.5073978245377835, 0.9996868548018257, 0.12309471742659979, 0.7981116395538423, 0, 0.8176926768989918, 0.46429680498311404, 0.9995217658754177, 0.63234358810569, 0.37818212599814743, 0.1208041796386483, 0.999803, 0.9996458, 0.028662889311412594, 0.06210212749300818, 0.2907350846811669, 0, 0.9999827497890603, 0.9475564604050829, 0.31564860238622366, 0.9126861682074392, 0.5545277333333334, 0.4857867, 0.03909374170544203, 0.5367212676065164, 0.9540565933829256, 0.9998226996690394, 0.27490903333333333, 0.9893919333333333, 0.365917514880053, 0.3267387333333333, 0.22963593333333332, 0.23880619424868385, 0.27557595720422673, 0.18984629543069714, 0.7253967207405454, 0.07522446666666667, 0.9998530435030193, 0.9957188333333333, 0.4106349816071273, 0.07585391730737863, 0.4044891739944626, 0.35116560690305165, 0.16026581028349138, 0.17039333333333334, 0.9971653680181303, 0.46263041387606674, 0.7105563666666667, 0.22591243333333333, 0, 0.9329518608254294, 0.9997668997824398, 0.10356379337043338, 0.9996320146579604, 0.8586432632354162, 0.24734723415049675, 0.03158029430155265, 0.999635131958997, 0.574891, 0.2291527, 0.5433809333333334, 0.34682023333333334, 0.9997645666666667, 0.20048963333333333, 0.9348665028599572, 0.8336397290906811, 0.04789164676885542, 0.48037246666666666, 0.034624110443848416, 0.9999468666170755, 0.4582496, 0.174415, 0.19604366997706593, 0.9998178664966754, 0.9995518, 0.9999915, 0.14892265630721732, 0.999698544872828, 0.3263478608223585, 0.5575151592788026, 0.23560756666666666, 0.48795188501571785, 0.5536550500780467, 0.22550856666666666, 0.9999875333333333, 0.4167580357780627, 0.057092188522448906, 0.9996902355189101, 0.9999573832305507, 0.9993058431687758, 0.018920866666666668, 0.5396926431994176, 0.03161892224414873, 0.002670515709309245, 0.9993887061430975, 0.9996082500451775, 0.26374832209643234, 0.9996314390436848, 0.974145389293042, 0.22949609189561448, 0.7026962911454189, 0.5610230446729129, 0.33003273736356986, 0.21033259594235518, 0.9995757511856611, 0.33643580057484884, 0.972299813096785, 0.3658038513659633, 0.22941631093149634, 0.9982446233861992, 0.1074079925500162, 0.9995356636020465, 0.9924383333333333, 0.31314822257267555, 0.970271634916132, 0.8431578253356714, 0.7817706574864263, 0.1534859090629575, 0.6581729031861591, 0.5728367696655438, 0.5182438494508815, 0.999979473258403, 0.792248848296013, 0.0075363564030729935, 0.011014110557919617, 0.9716559348333076, 0.11068088026249408, 0.1839322, 0.7762068326387384, 0.09509185541906506, 0.5340954426888656, 0.5250563350222985, 0.4523464424259362, 0.5614074239877013, 0.3753467, 0.5312991803162455, 0.7206775773428117, 0.9995875968897064, 0.9996581993505788, 0.07635293704694006, 0.999342798137928, 0.402573720530306, 0.19390008861656988, 0.9992238724955407, 0, 0.1579697, 0.34451184915403227, 0.9994910328582973, 0.9999596939368437, 0.9993758476972193, 0.7525312098690692, 0.4531128504864097, 0.9995082, 0.508848690746514, 0.02161675350896994, 0.36671980704690527, 0.020278471862429873, 0.966053653561311, 0.9659147318555547, 0.9997899853571452, 0.3591492184235813, 0.6565348921175975, 0.7106394455037355, 0.4977839985308292, 0.08181082228638686, 0.36962526533068935, 0, 0.9998033405480726, 0.48775054201923224, 0.8066604888269867, 0.11798984920358825, 0.9997652694476514, 0.9817372455237287, 0.9545699, 0.023159466666666666, 0.38425472473870737, 0.18194386981427849, 0.29298514010878035, 0.9999282998661597, 0.9999994661443601, 0.05484923842192722, 0.9122655453907861, 0.17500040829818211, 0, 0.3981916847739746, 0.8684510666666667, 0.2857443, 0.40322408501431684, 0.2197959458027476, 0.9932306498525425, 0.9980240295789895, 0.3801443999475754, 0.32005921837740214, 0.9102253777274336, 0.032875803337137216, 0.9993815270236589, 0.9999362663628697, 0.5252667333333333, 0.0809593, 0.9998460333333333, 0.2782445, 0.14848743131000755, 0.9999546999577199, 0.07661763333333334, 0.663381308152589, 0.23213615773161914, 0.4498615, 0.30761788886848007, 0.9994032994430795, 0.9999414761301522, 0.11792644367783615, 0.982489753344789, 0.3227474408435354, 0.299714029727001, 0.6378284435392844, 0.11864698821091922, 0.01258623571653038, 0.9998175436627734, 0.6723476039876706, 0.4435145505839571, 0.7505242462558701, 0.12603884236334992, 0.6607487467547879, 0.9987931345738528, 0.602988279029961, 0.9935299640197305, 0.1528459290857911, 0.3011133584290022, 0.9998120329002542, 0.8597260649500873, 0.7617215087733009, 0.3236975390054963, 0.8172826430417488, 0.9795530415971723, 0.2240237848978897, 0.766466225723284, 0.04939300210664337, 0.9946664, 0.48111771144522625, 0.05755040890153639, 0.41697437834729645, 0.288011686824368, 0.3262160030707377, 0.2969804414445841, 0.09289931272693057, 0.3034987096274507, 0.184038479588207, 0.05752973897409781, 0.23695703333333334, 0.3756606333333333, 0.1750856, 0.27669896666666666, 0.10773103333333334, 0.8409686333333334, 0.6775379, 0.2778719753172306, 0.7678852632261683, 0.999453734596586, 0.3955535494153415, 0.833386485337254, 0.10939680995762821, 0.5254451526194653, 0.6715490961682622, 0.19167182283219497, 0.8620402737687795, 0.054245295555606, 0.15458956645974883, 0.667035614868091, 0.5409342229906303, 0.176401535159567, 0.21537075241279552, 0.9995374474385739, 0.28731700785611725, 0.3706928276756641, 0.40627712589353676, 0.16063582752188071, 0.36315758008724375, 0.21148641691350017, 0.6775695600173806, 0.5993995191562091, 0.11385305591699177, 0.5560469666666666, 0.29980142275598787, 0.11936304473884175, 0.5099654906026981, 0.2905014089359633, 0.2426918416081013, 0.7939949565192116, 0.21120553357903396, 0.1404458529163377, 0.9998439428357392, 0.3993411313847623, 0.12091594272299981, 0.3285784847596949, 0.9377427863733497, 0.999632797576464, 0.5254714333333333, 0.18747647077371052, 0.9997993664794087, 0.9465020426465508, 0.5300435227479091, 0.3026140666666667, 0.42024923333333336, 0.07444566285644598, 0.7195063577106751, 0.27954644733405415, 0.6003021405740671, 0.7285366333333333, 0.07025915859829543, 0.7015201781361722, 0.07053692221448236, 0.28042839002095576, 0.5332722239995642, 0.5119466333333333, 0.706596891864906, 0.025174490162857485, 0.9995145333333333, 0.2976748127880208, 0.24616613270211002, 0.4044948468963463, 0, 0.9668573333333333, 0.9996740333333334, 0.5130157734305784, 0.03882907086810184, 0.7554545666666667, 0.1456383, 0.8902098767220475, 0.9348375666666666, 0.1492602860026149, 0.40918884857625865, 0.33696526107835334, 0.12187582348326281, 0.9701494373533207, 0.3223412854955503, 0.8091765217469719, 0.16986225540559208, 0.4809059581818902, 0.5108443869362729, 0.6331121180556447, 0.9996097841510772, 0.6235315972651738, 0.07924772453397941, 0.9995364973889352, 0.4693769666666667, 0.37849090363260274, 0.16368865781891045, 0.7840432396849127, 0.20083783333333333, 0.9758751754421526, 0.5624933916604988, 0.43414136666666664, 0.1050173160758147, 0.1413225710802534, 0.9998978334689548, 0.746258317890804, 0.9806430611710497, 0.9997974994262484, 0.3813437316532803, 0.12889775647814128, 0.9799944885971718, 0.9999087995683179, 0.4466498010064075, 0.6364853411822922, 0.5008821998300064, 0.24166646972091582, 0.9993988423151748, 0.9993976954425622, 0.9073940333333333, 0.06844906666666667, 0.6153517333333334, 0.3617687333333333, 0.1502901, 0.6465596, 0.22348786923764388, 0.5820027765359248, 0.2455750665892532, 0.6718622469683292, 0.43340297480388146, 0.2038602442706921, 0.22544378461306439, 0.9803989819698529, 0.17032470263933067, 0.41371452491541794, 0.0858757, 0.9806265818571835, 0.12589045083108744, 0.6937601333333333, 0.9998231606497078, 0.5112844771988454, 0.32288653599170436, 0.08527796666666666, 0.36669433333333334, 0.9998492527953546, 0.41030864983839455, 0.0921252198099772, 0.9992200100128885, 0.05642480325753371, 0.24873494601623639, 0.390543441036043, 0.7469746164280798, 0.9734573058548672, 0.9993741643093522, 0.9996218678217742, 0.12083473333333333, 0.7286142415264827, 0.08919735289077446, 0.20108926666666666, 0.999728568280259, 0.5492191126045051, 0.21393573333333332, 0.9825826666666667, 0.7251488666666667, 0.2482152, 0, 0.6900417107055966, 0.2530656666666667, 0.5069260466178557, 0.24181775902990843, 0.3687924850113724, 0.4246924, 0.4601149666666667, 0.9772220666666667, 0.07650196666666667, 0.2635879, 0.17559096666666665, 0.9999029666666667, 0.7348538666666666, 0.4336637059421859, 0.19585664946620618, 0.77419918374964, 0.6214447666666667, 0.05553499659083762, 0.15049570712932667, 0.9590810666666667, 0.13703816666666666, 0.4324327666666667, 0.3833742, 0.7082755333333334, 0.6417850333333334, 0.06406892997678901, 0.9999367332742843, 0.0754512, 0.7993372194614707, 0.4142264866113875, 0.5202748666666667, 0.5474514333333333, 0.3336250848954004, 0.8670231870626922, 0.436516580406795, 0.13957876519965387, 0.19538856817510253, 0.18426030516094097, 0.9994274576928477, 0.9663140792051403, 0.9999146332787935, 0.5847190224248738, 0.10538919363806232, 0.7209269158682479, 0.06907306426666825, 0.19160362661389, 0.35120400141476305, 0.9931382847132608, 0.9748740957757166, 0.27553801973183895, 0.9999500357047659, 0.9998841532101823, 0.09521369514537488, 0.1551477, 0.501733843097785, 0.1212177464698967, 0.6184316423683055, 0.3217797339888368, 0.23121301110296277, 0.44243317214621536, 0.17920286666666665, 0.9694718225680711, 0.13581642676199832, 0.9999418333333333, 0.021945196150707832, 0.5360525669823959, 0.9998765793645569, 0.6797458770311752, 0.17869850528423675, 0.22282876468149992, 0.5084706857090147, 0.7858265528075673, 0.0538263993526187, 0.7900873054244362, 0.9994579782901132, 0.9993316254580296, 0.22817451300667516, 0.5610949552632033], 'oldestBlock': '0xd0f313'}}), + (('0x1', 'latest', [55]), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0x110aed4e24', '0x1257071f07'], 'gasUsedRatio': [0.8044752714346831], 'oldestBlock': '0xd1b5d8', 'reward': [['0x77359400']]}}), + (('0x1', 'latest', [0]), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0xe737dc7c7', '0xf5d01f66d'], 'gasUsedRatio': [0.7524847799812623], 'oldestBlock': '0xd1b7c4', 'reward': [['0x0']]}}), + (('0x1', 'latest', [100]), {'jsonrpc': '2.0', 'id': 0, 'result': {'baseFeePerGas': ['0xe737dc7c7', '0xf5d01f66d'], 'gasUsedRatio': [0.7524847799812623], 'oldestBlock': '0xd1b7c4', 'reward': [['0xd5f895760']]}}), + ) +} diff --git a/tests/fixtures/pause_bot_fixtures.py b/tests/fixtures/pause_bot_fixtures.py new file mode 100644 index 00000000..0b0c7164 --- /dev/null +++ b/tests/fixtures/pause_bot_fixtures.py @@ -0,0 +1,24 @@ +from fixtures.common_fixtures import COMMON_FIXTURES, LIDO_LOCATOR_CALLS + + +PAUSE_BOT_FIXTURES = { + 'eth_call': ( + *LIDO_LOCATOR_CALLS, + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0xc7062e98'}, 'latest'), {'jsonrpc': '2.0', 'id': 11, 'result': '0x00000000000000000000000000000000000000000000000000000000000019f6'}), + (({'to': '0x0000000000000000000000000000000000000000', 'data': '0x6608b11b0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 16, 'result': '0x0000000000000000000000000000000000000000000000000000000000000001'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0xa50833d6'}, 'latest'), {'jsonrpc': '2.0', 'id': 0, 'result': '0xd225b544f236c424d88abf1dd1a58e20df146bb6c02d916809b75d7a72bccb10'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0x4acd54c30000000000000000000000000000000000000000000000000000000000d1731f0000000000000000000000000000000000000000000000000000000000000001baa668505cd496caaf7117dd074338197200175057909ab73a04463656bdb0fad4933925f5f97a9632b4b1bc621a1c2771d58eaf6eee27dcf915eac8af010537'}, 'latest'), {'jsonrpc': '2.0', 'id': 0, 'error': {'code': 3, 'data': '0x08c379a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000011696e76616c6964207369676e6174757265000000000000000000000000000000', 'message': 'execution reverted: invalid signature'}}), + ), + **COMMON_FIXTURES, +} + + +PAUSED_PROTOCOL_FIXTURES = { + 'eth_call': ( + *LIDO_LOCATOR_CALLS, + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0xc7062e98'}, 'latest'), {'jsonrpc': '2.0', 'id': 15, 'result': '0x00000000000000000000000000000000000000000000000000000000000019f6'}), + (({'to': '0x0000000000000000000000000000000000000000', 'data': '0x6608b11b0000000000000000000000000000000000000000000000000000000000000001'}, '0xd17320'), {'jsonrpc': '2.0', 'id': 14, 'result': '0x0000000000000000000000000000000000000000000000000000000000000000'}), + (({'to': '0x710B3303fB508a84F10793c1106e32bE873C24cd', 'data': '0xa50833d6'}, 'latest'), {'jsonrpc': '2.0', 'id': 0, 'result': '0xd225b544f236c424d88abf1dd1a58e20df146bb6c02d916809b75d7a72bccb10'}) + ), + **COMMON_FIXTURES, +} diff --git a/tests/fixtures/provider.py b/tests/fixtures/provider.py deleted file mode 100644 index 80ae4eb3..00000000 --- a/tests/fixtures/provider.py +++ /dev/null @@ -1,33 +0,0 @@ -from unittest.mock import Mock - -import pytest -from web3 import Web3 -from web3_multi_provider import FallbackProvider - -import variables -from blockchain.web3_extentions.lido_contracts import LidoContracts -from blockchain.web3_extentions.transaction import TransactionUtils - - -# -- Unit fixtures -- -@pytest.fixture -def web3_lido_unit(): - web3 = Web3() - web3.lido = Mock() - web3.transaction = Mock() - yield web3 - - -# -- Integration fixtures -- -@pytest.fixture -def web3_provider_integration(): - yield Web3(FallbackProvider(variables.WEB3_RPC_ENDPOINTS)) - - -@pytest.fixture -def web3_lido_integration(web3_provider_integration): - web3_provider_integration.attach_modules({ - 'lido': LidoContracts, - 'transaction': TransactionUtils, - }) - yield web3_provider_integration diff --git a/tests/fixtures/pytest_mocks.py b/tests/fixtures/pytest_mocks.py new file mode 100644 index 00000000..3e047b9d --- /dev/null +++ b/tests/fixtures/pytest_mocks.py @@ -0,0 +1,210 @@ +import json +from unittest.mock import Mock + +import pytest +from eth_account import Account +from web3 import Web3 + +from fixtures.depositor_fixtures import ( + DEPOSITOR_BASE_FIXTURES_SMALL_BALANCE, + DEPOSITOR_FIXTURES_WITH_DEPOSIT_PROHIBIT, + DEPOSITOR_FIXTURES_WITH_HIGH_GAS, + DEPOSITOR_FIXTURES_NOT_ENOUGH_BUFFERED_ETHER, + DEPOSITOR_BASE_FIXTURES, DEPOSITOR_FIXTURES_NO_FREE_KEYS, +) +from fixtures.pause_bot_fixtures import PAUSE_BOT_FIXTURES, PAUSED_PROTOCOL_FIXTURES +from metrics import healthcheck_pulse +from tests.utils.mock_provider import MockProvider + +from tests.fixtures.gas_fee_fixtures import GAS_FEE_FIXTURES +from transport.msg_providers.kafka import KafkaMessageProvider +from transport.msg_providers.rabbit import RabbitProvider +from transport.msg_storage import MessageStorage + + +class Message: + def __init__(self, result): + self._result = result + + def value(self): + return self._result + + def error(self): + pass + + +def send_message_to_store(monkeypatch, msgs): + monkeypatch.setattr(MessageStorage, 'messages', msgs) + + +@pytest.fixture(scope='function') +def web3_gas_fee(): + return Web3(MockProvider(GAS_FEE_FIXTURES)) + + +@pytest.fixture(scope='function') +def setup_web3_fixtures_for_pause(): + return Web3(MockProvider(PAUSE_BOT_FIXTURES)) + + +@pytest.fixture(scope='function') +def setup_web3_fixtures_paused(): + return Web3(MockProvider(PAUSED_PROTOCOL_FIXTURES)) + + +@pytest.fixture() +def setup_web3_deposit_fixtures_small_balance(): + return Web3(MockProvider(DEPOSITOR_BASE_FIXTURES_SMALL_BALANCE)) + + +@pytest.fixture() +def setup_web3_deposit_fixtures_prohibits_the_deposit(): + return Web3(MockProvider(DEPOSITOR_FIXTURES_WITH_DEPOSIT_PROHIBIT)) + + +@pytest.fixture() +def setup_web3_deposit_fixtures_with_high_gas(): + return Web3(MockProvider(DEPOSITOR_FIXTURES_WITH_HIGH_GAS)) + + +@pytest.fixture() +def setup_web3_deposit_fixtures_not_enough_buffered_ether(): + return Web3(MockProvider(DEPOSITOR_FIXTURES_NOT_ENOUGH_BUFFERED_ETHER)) + + +@pytest.fixture() +def setup_web3_deposit_fixtures(): + return Web3(MockProvider(DEPOSITOR_BASE_FIXTURES)) + + +@pytest.fixture() +def setup_web3_deposit_fixtures_no_free_keys(): + return Web3(MockProvider(DEPOSITOR_FIXTURES_NO_FREE_KEYS)) + + +@pytest.fixture() +def setup_pause_message_to_kafka(monkeypatch): + send_message_to_store(monkeypatch, [{ + "blockHash": "0xe41c0212516a899c455203e833903c802338daa3048bc637b623f6fba0a1685c", + "blockNumber": 13726495, + "guardianAddress": "0x3dc4cF780F2599B528F37dedB34449Fb65Ef7d4A", + "guardianIndex": 0, + "stakingModuleId": 1, + "signature": { + "_vs": "0xd4933925f5f97a9632b4b1bc621a1c2771d58eaf6eee27dcf915eac8af010537", + "r": "0xbaa668505cd496caaf7117dd074338197200175057909ab73a04463656bdb0fa", + "recoveryParam": 1, + "s": "0x54933925f5f97a9632b4b1bc621a1c2771d58eaf6eee27dcf915eac8af010537", + "v": 28 + }, + "type": "pause" + }]) + + +@pytest.fixture() +def setup_ping_message_to_kafka(monkeypatch): + send_message_to_store(monkeypatch, [{ + "type": "ping", + "blockNumber": 13726495, + "guardianIndex": 0, + "guardianAddress": "0x3dc4cF780F2599B528F37dedB34449Fb65Ef7d4A", + "app": { + "version": "1.1.1", + "name": "lido-council-daemon" + } + }]) + + +@pytest.fixture() +def remove_sleep(monkeypatch): + import time + monkeypatch.setattr(time, 'sleep', lambda x: x) + + monkeypatch.setattr(healthcheck_pulse, 'pulse', lambda: None) + + +@pytest.fixture() +def remove_transport(monkeypatch): + monkeypatch.setattr(KafkaMessageProvider, '__init__', lambda _, client, message_schema: None) + monkeypatch.setattr(KafkaMessageProvider, '_receive_message', lambda _: None) + monkeypatch.setattr(KafkaMessageProvider, '__del__', lambda _: None) + + monkeypatch.setattr(RabbitProvider, '__init__', lambda _, client, message_schema, routing_keys: None) + monkeypatch.setattr(RabbitProvider, '_receive_message', lambda _: None) + monkeypatch.setattr(RabbitProvider, '__del__', lambda _: None) + + +@pytest.fixture() +def setup_pause_message_to_store(monkeypatch): + send_message_to_store(monkeypatch, [{ + "blockHash": "0xe41c0212516a899c455203e833903c802338daa3048bc637b623f6fba0a1685c", + "blockNumber": 13726495, + "guardianAddress": "0x3dc4cF780F2599B528F37dedB34449Fb65Ef7d4A", + "guardianIndex": 0, + "stakingModuleId": 1, + "signature": { + "_vs": "0xd4933925f5f97a9632b4b1bc621a1c2771d58eaf6eee27dcf915eac8af010537", + "r": "0xbaa668505cd496caaf7117dd074338197200175057909ab73a04463656bdb0fa", + "recoveryParam": 1, + "s": "0x54933925f5f97a9632b4b1bc621a1c2771d58eaf6eee27dcf915eac8af010537", + "v": 28 + }, + "type": "pause" + }]) + + +@pytest.fixture(scope='function') +def setup_account(monkeypatch): + import variables + + monkeypatch.setenv('WALLET_PRIVATE_KEY', '0000000000000000000000000000000000000000000000000000000000000000') + monkeypatch.setattr(variables, 'WALLET_PRIVATE_KEY', '0000000000000000000000000000000000000000000000000000000000000000') + monkeypatch.setattr(variables, 'ACCOUNT', Account.from_key(variables.WALLET_PRIVATE_KEY)) + yield + monkeypatch.setenv('WALLET_PRIVATE_KEY', '') + monkeypatch.setattr(variables, 'WALLET_PRIVATE_KEY', None) + monkeypatch.setattr(variables, 'ACCOUNT', None) + + +@pytest.fixture +def setup_flashbots(monkeypatch): + import variables + monkeypatch.setattr(variables, 'FLASHBOT_SIGNATURE', '0000000000000000000000000000000000000000000000000000000000000000') + yield + monkeypatch.setattr(variables, 'FLASHBOT_SIGNATURE', None) + + +@pytest.fixture(scope='function') +def setup_create_txs(monkeypatch): + import variables + monkeypatch.setenv('CREATE_TRANSACTIONS', 'true') + monkeypatch.setattr(variables, 'CREATE_TRANSACTIONS', True) + yield + monkeypatch.setenv('CREATE_TRANSACTIONS', 'false') + monkeypatch.setattr(variables, 'CREATE_TRANSACTIONS', False) + + +@pytest.fixture() +def setup_deposit_message_to_kafka(monkeypatch): + send_message_to_store(monkeypatch, [{ + "type": "deposit", + "depositRoot": "0x4eff65af4dac60f23b625a5d9c80f9cc36b0754cd1db072cd47bd6d053e2f94e", + "nonce": 1, + "blockNumber": 13726495, + "blockHash": "0x432e218931e9b94f0702ecb1b0d084c467a86b384767ce38c4fe164463070532", + "guardianAddress": "0x43464Fe06c18848a2E2e913194D64c1970f4326a", + "guardianIndex": 8, + "stakingModuleId": 1, + "signature": { + "r": "0xc2235eb6983f80d19158f807d5d90d93abec52034ea7184bbf164ba211f00116", + "s": "0x75354ffc9fb6e7a4b4c01c622661a1d0382ace8c4ff8024626e39ac1a6a613d0", + "_vs": "0x75354ffc9fb6e7a4b4c01c622661a1d0382ace8c4ff8024626e39ac1a6a613d0", + "recoveryParam": 0, + "v": 27 + }, + "app": { + "version": "1.0.3", + "name": "lido-council-daemon" + } + }]) + diff --git a/tests/test_depositor_bot.py b/tests/test_depositor_bot.py new file mode 100644 index 00000000..3c6c0604 --- /dev/null +++ b/tests/test_depositor_bot.py @@ -0,0 +1,236 @@ +import logging +from unittest.mock import Mock + +from blockchain.contracts import contracts +from bots.depositor_bot import DepositorBot +from utils.logs import find_log_message +from fixtures.pytest_mocks import * + + +ISSUES_FOUND_LOG = 'Issues found.' +ISSUES_NOT_FOUND_LOG = 'No issues found.' + + +def test_deposit_issues__account_balance( + caplog, + setup_web3_deposit_fixtures_small_balance, + remove_sleep, + remove_transport, + setup_ping_message_to_kafka, + setup_deposit_message_to_kafka, + setup_account, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures_small_balance) + depositor_bot = DepositorBot(setup_web3_deposit_fixtures_small_balance) + depositor_bot._get_nonce = Mock(return_value=1) + depositor_bot.run_cycle() + + assert find_log_message(caplog, depositor_bot.NOT_ENOUGH_BALANCE_ON_ACCOUNT) + record = find_log_message(caplog, ISSUES_FOUND_LOG) + assert record + assert record.msg['value'] == [depositor_bot.NOT_ENOUGH_BALANCE_ON_ACCOUNT] + assert not find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + + +def test_deposit_issues__gas_strategy( + caplog, + setup_web3_deposit_fixtures_with_high_gas, + remove_sleep, + remove_transport, + setup_ping_message_to_kafka, + setup_deposit_message_to_kafka, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures_with_high_gas) + depositor_bot = DepositorBot(setup_web3_deposit_fixtures_with_high_gas) + depositor_bot._get_nonce = Mock(return_value=1) + depositor_bot.run_cycle() + + assert find_log_message(caplog, depositor_bot.GAS_FEE_HIGHER_THAN_RECOMMENDED) + record = find_log_message(caplog, ISSUES_FOUND_LOG) + assert record + assert record.msg['value'] == [depositor_bot.GAS_FEE_HIGHER_THAN_RECOMMENDED] + assert not find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + + +def test_deposit_issues__security_check( + caplog, + setup_web3_deposit_fixtures_prohibits_the_deposit, + remove_sleep, + remove_transport, + setup_ping_message_to_kafka, + setup_deposit_message_to_kafka, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures_prohibits_the_deposit) + depositor_bot = DepositorBot(setup_web3_deposit_fixtures_prohibits_the_deposit) + depositor_bot._get_nonce = Mock(return_value=1) + depositor_bot.run_cycle() + + assert find_log_message(caplog, depositor_bot.DEPOSIT_SECURITY_ISSUE) + record = find_log_message(caplog, ISSUES_FOUND_LOG) + assert record + assert record.msg['value'] == [depositor_bot.DEPOSIT_SECURITY_ISSUE] + assert not find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + + +def test_deposit_issues__buffered_ether( + caplog, + setup_web3_deposit_fixtures_not_enough_buffered_ether, + remove_sleep, + remove_transport, + setup_ping_message_to_kafka, + setup_deposit_message_to_kafka, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures_not_enough_buffered_ether) + depositor_bot = DepositorBot(setup_web3_deposit_fixtures_not_enough_buffered_ether) + depositor_bot._get_nonce = Mock(return_value=1) + depositor_bot.run_cycle() + + assert find_log_message(caplog, depositor_bot.LIDO_CONTRACT_HAS_NOT_ENOUGH_BUFFERED_ETHER) + record = find_log_message(caplog, ISSUES_FOUND_LOG) + assert record + assert record.msg['value'] == [depositor_bot.LIDO_CONTRACT_HAS_NOT_ENOUGH_BUFFERED_ETHER] + assert not find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + + +def test_deposit_issues__enough_signs( + caplog, + setup_web3_deposit_fixtures, + remove_sleep, + remove_transport, + setup_ping_message_to_kafka, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures) + depositor_bot = DepositorBot(setup_web3_deposit_fixtures) + depositor_bot._get_nonce = Mock(return_value=1) + depositor_bot.run_cycle() + + assert find_log_message(caplog, depositor_bot.QUORUM_IS_NOT_READY) + record = find_log_message(caplog, ISSUES_FOUND_LOG) + assert record + assert record.msg['value'] == [depositor_bot.QUORUM_IS_NOT_READY] + assert not find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + + +def test_deposit_issues__no_free_keys( + caplog, + setup_web3_deposit_fixtures_no_free_keys, + remove_sleep, + remove_transport, + setup_ping_message_to_kafka, + setup_deposit_message_to_kafka, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures_no_free_keys) + depositor_bot = DepositorBot(setup_web3_deposit_fixtures_no_free_keys) + depositor_bot._get_nonce = Mock(return_value=1) + depositor_bot.run_cycle() + + assert find_log_message(caplog, depositor_bot.DEPOSITOR_CAN_DEPOSIT_KEYS) + record = find_log_message(caplog, ISSUES_FOUND_LOG) + assert record + assert record.msg['value'] == [depositor_bot.DEPOSITOR_CAN_DEPOSIT_KEYS] + assert not find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + + +def test_depositor_bot__no_account( + caplog, + setup_web3_deposit_fixtures, + setup_deposit_message_to_kafka, + remove_sleep, + remove_transport, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures) + contracts.deposit_security_module.functions.depositBufferedEther = Mock() + depositor_bot = DepositorBot(setup_web3_deposit_fixtures) + depositor_bot._get_nonce = Mock(return_value=1) + depositor_bot.run_cycle() + + assert not find_log_message(caplog, ISSUES_FOUND_LOG) + assert find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + assert find_log_message(caplog, 'Deposit local call succeed.') + assert find_log_message(caplog, 'Account was not provided.') + + +def test_depositor_bot__no_create_tx( + caplog, + setup_web3_deposit_fixtures, + setup_deposit_message_to_kafka, + setup_account, + remove_sleep, + remove_transport, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures) + contracts.deposit_security_module.functions.depositBufferedEther = Mock() + depositor_bot = DepositorBot(setup_web3_deposit_fixtures) + depositor_bot._get_nonce = Mock(return_value=1) + depositor_bot.run_cycle() + + assert not find_log_message(caplog, ISSUES_FOUND_LOG) + assert find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + assert find_log_message(caplog, 'Deposit local call succeed.') + assert find_log_message(caplog, 'Run in dry mode.') + + +def test_depositor_bot__deposit( + caplog, + setup_web3_deposit_fixtures, + setup_ping_message_to_kafka, + setup_deposit_message_to_kafka, + setup_account, + setup_flashbots, + setup_create_txs, + remove_sleep, + remove_transport, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures) + depositor_bot = DepositorBot(setup_web3_deposit_fixtures) + depositor_bot.w3.eth.get_transaction_count = Mock(return_value=1) + depositor_bot.w3.flashbots = Mock(return_value=True) + depositor_bot._check_transaction = Mock(return_value=True) + depositor_bot._get_nonce = Mock(return_value=1) + + try: + depositor_bot.run_cycle() + except TypeError: + # Mining transaction error expected. Can't mock it correctly. Just check logs. + pass + + assert not find_log_message(caplog, ISSUES_FOUND_LOG) + assert find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + assert find_log_message(caplog, 'Sending deposit transaction.') + assert find_log_message(caplog, 'Try to deposit. Flashbots mode.') + + +def test_depositor_bot__deposit_classic( + caplog, + setup_web3_deposit_fixtures, + setup_ping_message_to_kafka, + setup_deposit_message_to_kafka, + setup_account, + setup_flashbots, + setup_create_txs, + remove_sleep, + remove_transport, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_deposit_fixtures) + depositor_bot = DepositorBot(setup_web3_deposit_fixtures) + depositor_bot.last_fb_deposit_failed = True + depositor_bot.w3.eth.get_transaction_count = Mock(return_value=1) + depositor_bot._check_transaction = Mock(return_value=True) + depositor_bot._get_nonce = Mock(return_value=1) + + depositor_bot.run_cycle() + + assert not find_log_message(caplog, ISSUES_FOUND_LOG) + assert find_log_message(caplog, ISSUES_NOT_FOUND_LOG) + assert find_log_message(caplog, 'Sending deposit transaction.') + assert find_log_message(caplog, 'Try to deposit. Classic mode.') diff --git a/tests/test_gas_srategy.py b/tests/test_gas_srategy.py new file mode 100644 index 00000000..92031d46 --- /dev/null +++ b/tests/test_gas_srategy.py @@ -0,0 +1,40 @@ +import logging + +from blockchain.gas_strategy import GasFeeStrategy +from utils.logs import find_log_message +from fixtures.pytest_mocks import * + + +def test_percentile_calculate(caplog, web3_gas_fee): + caplog.set_level(logging.INFO) + + gas_fee_strategy = GasFeeStrategy(web3_gas_fee) + percentile = gas_fee_strategy.get_gas_fee_percentile(1, 30) + + assert percentile == 83720913390 + + # Make sure cache works + caplog.clear() + + percentile = gas_fee_strategy.get_gas_fee_percentile(1, 20) + + record = find_log_message(caplog, 'Use cached gas history') + assert record + + assert percentile == 74903359976 + + percentile = gas_fee_strategy.get_gas_fee_percentile(1, 50) + + assert percentile == 101522350803 + + +def test_get_recommended_gas_fee(web3_gas_fee): + gas_fee_strategy = GasFeeStrategy(web3_gas_fee) + + fee = gas_fee_strategy.get_recommended_gas_fee([(1, 20), (2, 20)]) + + assert fee == gas_fee_strategy.get_gas_fee_percentile(1, 20) + + fee = gas_fee_strategy.get_recommended_gas_fee([(1, 99), (2, 99)]) + + assert fee == gas_fee_strategy.max_gas_fee diff --git a/tests/test_pause_bot.py b/tests/test_pause_bot.py new file mode 100644 index 00000000..5ef97cc2 --- /dev/null +++ b/tests/test_pause_bot.py @@ -0,0 +1,96 @@ +import logging + +from blockchain.contracts import contracts +from bots.pause_bot import PauserBot +from utils.logs import find_log_message +from fixtures.pytest_mocks import * + + +def test_no_pause_messages( + caplog, + setup_web3_fixtures_for_pause, + remove_sleep, + remove_transport, +): + """Just cycle with no pause msg and no pause tx""" + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_fixtures_for_pause) + pause_bot = PauserBot(setup_web3_fixtures_for_pause) + pause_bot.run_cycle() + + assert find_log_message(caplog, 'Fetch `latest` block.') + assert not find_log_message(caplog, 'Message pause protocol initiate.') + + +def test_no_pause_if_protocol_was_paused( + caplog, + setup_web3_fixtures_paused, + setup_pause_message_to_kafka, + remove_sleep, + remove_transport, +): + """Test no pause tx if protocol already paused""" + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_fixtures_paused) + pause_bot = PauserBot(setup_web3_fixtures_paused) + pause_bot.run_cycle() + + assert find_log_message(caplog, 'Fetch `latest` block.') + is_paused_log = find_log_message(caplog, 'Call `getStakingModuleIsActive()`.') + assert not is_paused_log.msg['value'] + assert not find_log_message(caplog, 'Message pause protocol initiate.') + + +def test_pause_msg_receive( + caplog, + setup_web3_fixtures_for_pause, + setup_pause_message_to_kafka, + remove_sleep, + remove_transport, +): + """Retry each time pause tx falls locally or in blockchain""" + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_fixtures_for_pause) + pause_bot = PauserBot(setup_web3_fixtures_for_pause) + pause_bot.run_cycle() + + assert find_log_message(caplog, 'Fetch `latest` block.') + assert find_log_message(caplog, 'Message pause protocol initiate.') + assert find_log_message(caplog, 'No account provided. Skip creating tx.') + + +def test_pause_with_account( + caplog, + setup_account, + setup_web3_fixtures_for_pause, + setup_pause_message_to_kafka, + remove_sleep, + remove_transport, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_fixtures_for_pause) + pause_bot = PauserBot(setup_web3_fixtures_for_pause) + pause_bot.run_cycle() + + assert find_log_message(caplog, 'Fetch `latest` block.') + assert find_log_message(caplog, 'Message pause protocol initiate.') + assert find_log_message(caplog, 'Running in DRY mode.') + + +def test_pause_with_account_in_prod( + caplog, + setup_account, + setup_create_txs, + setup_web3_fixtures_for_pause, + setup_pause_message_to_kafka, + remove_sleep, + remove_transport, +): + caplog.set_level(logging.INFO) + contracts.initialize(setup_web3_fixtures_for_pause) + pause_bot = PauserBot(setup_web3_fixtures_for_pause) + pause_bot.run_cycle() + + assert find_log_message(caplog, 'Fetch `latest` block.') + assert find_log_message(caplog, 'Message pause protocol initiate.') + assert find_log_message(caplog, 'Send pause transaction.') diff --git a/tests/test_reccomended_buffered_eth.py b/tests/test_reccomended_buffered_eth.py new file mode 100644 index 00000000..19d1bdc5 --- /dev/null +++ b/tests/test_reccomended_buffered_eth.py @@ -0,0 +1,15 @@ +from blockchain.buffered_eth import get_recommended_buffered_ether_to_deposit + + +def test_recommended_buffered_ether(): + buffered_ether = get_recommended_buffered_ether_to_deposit(10**9) + assert 1 < buffered_ether / 10**18 < 100 + + buffered_ether = get_recommended_buffered_ether_to_deposit(50 * 10**9) + assert 250 < buffered_ether / 10**18 < 300 + + buffered_ether = get_recommended_buffered_ether_to_deposit(70 * 10**9) + assert 300 < buffered_ether / 10**18 < 400 + + buffered_ether = get_recommended_buffered_ether_to_deposit(150 * 10**9) + assert 400 < buffered_ether / 10**18 < 500 diff --git a/tests/cryptography/test_verify_signature.py b/tests/test_signature_check.py similarity index 94% rename from tests/cryptography/test_verify_signature.py rename to tests/test_signature_check.py index 43e2eb99..96d5b38d 100644 --- a/tests/cryptography/test_verify_signature.py +++ b/tests/test_signature_check.py @@ -1,5 +1,5 @@ from cryptography.verify_signature import compute_vs, verify_message_with_signature -from tests.fixtures.signature_fixtures import ( +from fixtures.signature_fixtures import ( deposit_messages, deposit_prefix, ) diff --git a/tests/utils/contract_utils.py b/tests/utils/contract_utils.py deleted file mode 100644 index a1724154..00000000 --- a/tests/utils/contract_utils.py +++ /dev/null @@ -1,25 +0,0 @@ -import logging -from typing import Callable, Any, Optional - -from blockchain.contracts.base_interface import ContractInterface - - -def check_contract( - contract: ContractInterface, - functions_spec: list[tuple[str, Optional[tuple], Callable[[Any], None]]], - caplog, -): - caplog.set_level(logging.INFO) - - for function in functions_spec: - # get method - method = contract.__getattribute__(function[0]) - # call method with args - if function[1] is not None: - response = method(*function[1]) - else: - response = method() - # check response - function[2](response) - - assert len(functions_spec) == len(caplog.messages) diff --git a/tests/utils/logs.py b/tests/utils/logs.py new file mode 100644 index 00000000..47c0352e --- /dev/null +++ b/tests/utils/logs.py @@ -0,0 +1,2 @@ +def find_log_message(caplog, msg): + return next((log for log in caplog.records if msg in log.msg['msg']), None) diff --git a/tests/utils/mock_provider.py b/tests/utils/mock_provider.py new file mode 100644 index 00000000..1591446c --- /dev/null +++ b/tests/utils/mock_provider.py @@ -0,0 +1,24 @@ +from typing import Any + +from web3.providers import JSONBaseProvider +from web3.types import RPCEndpoint, RPCResponse + + +class MockProvider(JSONBaseProvider): + _current_provider_index = 0 + + def __init__(self, mock_object: dict): + self._mock_object = mock_object + super().__init__() + + def make_request(self, method: RPCEndpoint, params: Any) -> RPCResponse: + if method in self._mock_object: + result = next((x for x in self._mock_object[method] if x[0] == params), None) + if result is not None: + return result[1] + + result = next((x for x in self._mock_object[method] if x[0] == 'default'), None) + if result is not None: + return result[1] + + raise Exception('There is no mock for response') diff --git a/tests/utils/regrex.py b/tests/utils/regrex.py deleted file mode 100644 index d216ba46..00000000 --- a/tests/utils/regrex.py +++ /dev/null @@ -1,12 +0,0 @@ -import re - -HASH_REGREX = re.compile(r'^0x[0-9,A-F]{64}$', flags=re.IGNORECASE) -ADDRESS_REGREX = re.compile('^0x[0-9,A-F]{40}$', flags=re.IGNORECASE) - - -def check_value_re(regrex, value) -> None: - assert regrex.findall(value) - - -def check_value_type(value, _type) -> None: - assert isinstance(value, _type)