From 31fcbe507c8a87640c225e8fa8960151ab4c836d Mon Sep 17 00:00:00 2001 From: KillariDev Date: Sat, 4 Nov 2023 10:51:32 +0200 Subject: [PATCH 01/31] eth_multicallv1 --- docs/multicall-notes.md | 225 +++++++++++ src/eth/execute.yaml | 16 + src/schemas/execute.yaml | 375 ++++++++++++++++++ ...ockStateCalls-than-fit-but-now-with-fit.io | 2 + ...re-non-defined-BlockStateCalls-than-fit.io | 2 + ...l-basefee-too-low-with-validation-38012.io | 2 + ...asefee-too-low-without-validation-38012.io | 2 + .../multicall-big-block-state-calls-array.io | 2 + .../multicall-block-num-order-38020.io | 2 + ...k-override-reflected-in-contract-simple.io | 2 + ...ll-block-override-reflected-in-contract.io | 2 + ...ulticall-block-timestamp-auto-increment.io | 2 + ...multicall-block-timestamp-non-increment.io | 2 + .../multicall-block-timestamp-order-38021.io | 2 + ...multicall-block-timestamps-incrementing.io | 2 + .../multicall-blockhash-complex.io | 2 + .../multicall-blockhash-simple.io | 2 + .../multicall-blockhash-start-before-head.io | 2 + .../multicall-check-invalid-nonce.io | 2 + ...k-that-balance-is-there-after-new-block.io | 2 + .../multicall-check-that-nonce-increases.io | 2 + .../multicall-contract-calls-itself.io | 2 + ...all-empty-calls-and-overrides-multicall.io | 2 + .../multicall-empty-multicall.io | 2 + ...send-should-not-produce-logs-by-default.io | 2 + ...-send-should-not-produce-logs-on-revert.io | 2 + .../multicall-eth-send-should-produce-logs.io | 2 + ...end-should-produce-more-logs-on-forward.io | 2 + ...hould-produce-no-logs-on-forward-revert.io | 2 + ...multicall-fee-recipient-receiving-funds.io | 2 + ...s-and-value-error-38014-with-validation.io | 2 + ...ulticall-gas-fees-and-value-error-38014.io | 2 + .../multicall-get-block-properties.io | 2 + .../multicall-instrict-gas-38013.io | 2 + tests/eth_multicallV1/multicall-logs.io | 2 + .../multicall-long-block-distances.io | 2 + .../multicall-move-account-twice.io | 2 + .../multicall-move-ecrecover-and-call.io | 2 + ...-move-to-address-itself-reference-38022.io | 2 + ...lticall-move-two-accounts-to-same-38023.io | 2 + ...ve-two-non-precompiles-accounts-to-same.io | 2 + .../multicall-no-fields-call.io | 2 + .../multicall-only-from-to-transaction.io | 2 + .../multicall-only-from-transaction.io | 2 + ...dress-twice-in-separate-BlockStateCalls.io | 2 + .../multicall-override-address-twice.io | 2 + ...lticall-override-all-in-BlockStateCalls.io | 2 + .../multicall-override-block-num.io | 2 + .../multicall-override-ecrecover.io | 2 + .../multicall-override-identity.io | 2 + .../multicall-override-sha256.io | 2 + .../multicall-override-storage-slots.io | 2 + ...icall-precompile-is-sending-transaction.io | 2 + .../multicall-run-gas-spending.io | 2 + ...multicall-run-out-of-gas-in-block-38015.io | 2 + ...lticall-self-destructing-state-override.io | 2 + ...self-destructive-contract-produces-logs.io | 2 + .../multicall-set-read-storage.io | 2 + ...l-simple-no-funds-with-balance-querying.io | 2 + ...no-funds-with-validation-without-nonces.io | 2 + ...lticall-simple-no-funds-with-validation.io | 2 + .../multicall-simple-no-funds.io | 2 + ...ll-simple-send-from-contract-no-balance.io | 2 + ...mple-send-from-contract-with-validation.io | 2 + .../multicall-simple-send-from-contract.io | 2 + .../multicall-simple-state-diff.io | 2 + ...lticall-simple-with-validation-no-funds.io | 2 + tests/eth_multicallV1/multicall-simple.io | 2 + .../multicall-transaction-too-high-nonce.io | 2 + ...lticall-transaction-too-low-nonce-38010.io | 2 + ...multicall-transfer-over-BlockStateCalls.io | 2 + .../multicall-try-to-move-non-precompile.io | 2 + wordlist.txt | 1 + 73 files changed, 755 insertions(+) create mode 100644 docs/multicall-notes.md create mode 100644 src/schemas/execute.yaml create mode 100644 tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io create mode 100644 tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit.io create mode 100644 tests/eth_multicallV1/multicall-basefee-too-low-with-validation-38012.io create mode 100644 tests/eth_multicallV1/multicall-basefee-too-low-without-validation-38012.io create mode 100644 tests/eth_multicallV1/multicall-big-block-state-calls-array.io create mode 100644 tests/eth_multicallV1/multicall-block-num-order-38020.io create mode 100644 tests/eth_multicallV1/multicall-block-override-reflected-in-contract-simple.io create mode 100644 tests/eth_multicallV1/multicall-block-override-reflected-in-contract.io create mode 100644 tests/eth_multicallV1/multicall-block-timestamp-auto-increment.io create mode 100644 tests/eth_multicallV1/multicall-block-timestamp-non-increment.io create mode 100644 tests/eth_multicallV1/multicall-block-timestamp-order-38021.io create mode 100644 tests/eth_multicallV1/multicall-block-timestamps-incrementing.io create mode 100644 tests/eth_multicallV1/multicall-blockhash-complex.io create mode 100644 tests/eth_multicallV1/multicall-blockhash-simple.io create mode 100644 tests/eth_multicallV1/multicall-blockhash-start-before-head.io create mode 100644 tests/eth_multicallV1/multicall-check-invalid-nonce.io create mode 100644 tests/eth_multicallV1/multicall-check-that-balance-is-there-after-new-block.io create mode 100644 tests/eth_multicallV1/multicall-check-that-nonce-increases.io create mode 100644 tests/eth_multicallV1/multicall-contract-calls-itself.io create mode 100644 tests/eth_multicallV1/multicall-empty-calls-and-overrides-multicall.io create mode 100644 tests/eth_multicallV1/multicall-empty-multicall.io create mode 100644 tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-by-default.io create mode 100644 tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-on-revert.io create mode 100644 tests/eth_multicallV1/multicall-eth-send-should-produce-logs.io create mode 100644 tests/eth_multicallV1/multicall-eth-send-should-produce-more-logs-on-forward.io create mode 100644 tests/eth_multicallV1/multicall-eth-send-should-produce-no-logs-on-forward-revert.io create mode 100644 tests/eth_multicallV1/multicall-fee-recipient-receiving-funds.io create mode 100644 tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014-with-validation.io create mode 100644 tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014.io create mode 100644 tests/eth_multicallV1/multicall-get-block-properties.io create mode 100644 tests/eth_multicallV1/multicall-instrict-gas-38013.io create mode 100644 tests/eth_multicallV1/multicall-logs.io create mode 100644 tests/eth_multicallV1/multicall-long-block-distances.io create mode 100644 tests/eth_multicallV1/multicall-move-account-twice.io create mode 100644 tests/eth_multicallV1/multicall-move-ecrecover-and-call.io create mode 100644 tests/eth_multicallV1/multicall-move-to-address-itself-reference-38022.io create mode 100644 tests/eth_multicallV1/multicall-move-two-accounts-to-same-38023.io create mode 100644 tests/eth_multicallV1/multicall-move-two-non-precompiles-accounts-to-same.io create mode 100644 tests/eth_multicallV1/multicall-no-fields-call.io create mode 100644 tests/eth_multicallV1/multicall-only-from-to-transaction.io create mode 100644 tests/eth_multicallV1/multicall-only-from-transaction.io create mode 100644 tests/eth_multicallV1/multicall-override-address-twice-in-separate-BlockStateCalls.io create mode 100644 tests/eth_multicallV1/multicall-override-address-twice.io create mode 100644 tests/eth_multicallV1/multicall-override-all-in-BlockStateCalls.io create mode 100644 tests/eth_multicallV1/multicall-override-block-num.io create mode 100644 tests/eth_multicallV1/multicall-override-ecrecover.io create mode 100644 tests/eth_multicallV1/multicall-override-identity.io create mode 100644 tests/eth_multicallV1/multicall-override-sha256.io create mode 100644 tests/eth_multicallV1/multicall-override-storage-slots.io create mode 100644 tests/eth_multicallV1/multicall-precompile-is-sending-transaction.io create mode 100644 tests/eth_multicallV1/multicall-run-gas-spending.io create mode 100644 tests/eth_multicallV1/multicall-run-out-of-gas-in-block-38015.io create mode 100644 tests/eth_multicallV1/multicall-self-destructing-state-override.io create mode 100644 tests/eth_multicallV1/multicall-self-destructive-contract-produces-logs.io create mode 100644 tests/eth_multicallV1/multicall-set-read-storage.io create mode 100644 tests/eth_multicallV1/multicall-simple-no-funds-with-balance-querying.io create mode 100644 tests/eth_multicallV1/multicall-simple-no-funds-with-validation-without-nonces.io create mode 100644 tests/eth_multicallV1/multicall-simple-no-funds-with-validation.io create mode 100644 tests/eth_multicallV1/multicall-simple-no-funds.io create mode 100644 tests/eth_multicallV1/multicall-simple-send-from-contract-no-balance.io create mode 100644 tests/eth_multicallV1/multicall-simple-send-from-contract-with-validation.io create mode 100644 tests/eth_multicallV1/multicall-simple-send-from-contract.io create mode 100644 tests/eth_multicallV1/multicall-simple-state-diff.io create mode 100644 tests/eth_multicallV1/multicall-simple-with-validation-no-funds.io create mode 100644 tests/eth_multicallV1/multicall-simple.io create mode 100644 tests/eth_multicallV1/multicall-transaction-too-high-nonce.io create mode 100644 tests/eth_multicallV1/multicall-transaction-too-low-nonce-38010.io create mode 100644 tests/eth_multicallV1/multicall-transfer-over-BlockStateCalls.io create mode 100644 tests/eth_multicallV1/multicall-try-to-move-non-precompile.io diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md new file mode 100644 index 000000000..9d33e0c5b --- /dev/null +++ b/docs/multicall-notes.md @@ -0,0 +1,225 @@ +# Multicall +This document contains some extra information that couldn't be fit to the specification document directly. + +## Default block values +Unlike `eth_call`, `eth_multicallV1`'s calls are conducted inside blocks. We don't require user to define all the fields of the blocks so here are the defaults that are assumed for blocks parameters: + +| parameter name | default value | +-----------------|----------------------- +| prevRandao | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| feeRecipient | 0x0000000000000000000000000000000000000000 | +| mixHash | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| nonce | 0x0 | +| extraData | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| difficulty | The same as the base block defined as the second parameter in the call | +| gasLimit | The same as the base block defined as the second parameter in the call | +| hash | Calculated normally, except for phantom blocks, see below Phantom block section | +| parentHash | Previous blocks hash (the real hash, or phantom blocks hash) | +| timestamp | The timestamp of previous block + 1 | +| baseFeePerGas | Calculated on what it should be according to ethereum's spec. Note: baseFeePerGas is not adjusted in the phantom blocks. | +| sha3Uncles | Empty trie root | +| withdrawals | Empty array | +| uncles | Empty array | +| number | Previous block number + 1 | +| logsBloom | Calculated normally. ETH logs are not part of the calculation | +| receiptsRoot | Calculated normally | +| transactionsRoot | Calculated normally | +| size | Calculated normally | +| withdrawalsRoot | Calculated normally | +| gasUsed | Calculated normally | +| stateRoot | Calculated normally | + +An interesting note here is that we decide timestamp as `previous block timestamp + 1`, while `previous block timestamp + 12` could also be an assumed default. The reasoning to use `+1` is that it's the minimum amount we have to increase the timestamp to keep them valid. While `+12` is what Mainnet uses, there are other chains that use some other values, and we didn't want to complicate the specification to consider all networks. + +### Phantom blocks +The multicall allows you to define on what block number your calls or transactions are being executed on. Eg, consider following call: +```json +{ + "jsonrpc": "2.0", + "id": 1, + "method": "eth_multicallV1", + "params": [ + { + "blockStateCalls": [ + { + "blockOverrides": { + "number": "0x64" + }, + }, + { + "blockOverrides": { + "number": "0xc8" + }, + } + ] + }, + "0xa" + ] +} +``` + +Here we want our calls to be executed in blocks 100 (0x64) and in 200 (0xc8). The block numbers can be anything as long as they are increasing and higher than the block we are building from 10 (0xa). Now we end up in a situation where there exists block ranges 13-99 and 101-199 that are not defined anywhere. These blocks are called "phantom blocks". What happens if you try to request block hash of any of such blocks in the EVM? How can we calculate the block hash of future blocks when we don't know the block hash of the previous block? + +Our solution to this problem is to define block hash of a phantom block to be: + +``` +keccak(rlp([hash_of_previous_non_phantom_block, phantom_block_number])) +``` + +So for example in our example, you could get block hash of block 142 as follows: +``` +keccac(rlp([hash of block 12, 142])) +``` + +The phantom blocks other properties are set to their default properties as defined by the multicall specification. We came to this definition by wanting phantom block hashes to be unique if things prior to the phantom block changes, so if tooling is storing block hashes somewhere, they should remain unique if things change in the simulation. + +One other approach to this problem would be to really calculate the real block hashes for all the phantom blocks, but this would make generating blocks far in future really expensive, as to generate 100 phantom blocks, you would need to calculate 100 block hashes that all depend on each other. And in most cases, no one really cares about these blocks. + +Base fee per gas is not adjusted in the phantom blocks, their base fee remains constant. + +## Default values for transactions +As multicall is an extension to `eth_call` we want to enable the nice user experience that the user does not need to provide all required values for a transaction. We are assuming following defaults if the variable is not provided by the user: +| parameter name | description | +-----------------|----------------------- +| type | 0x2 | +| nonce | Defaults to correct nonce | +| to | null | +| from | 0x0000000000000000000000000000000000000000 | +| gas limit | Remaining gas in the current block. This is calculated dynamically one by one for each transaction that is being processed. | +| value | 0x0 | +| input | no data | +| gasPrice | 0x0 | +| maxPriorityFeePerGas | 0x0 | +| maxFeePerGas | 0x0 | +| accessList | empty array | + +## Overriding default values +The default values of blocks and transactions can be overriden. For Transactions we allow overriding of variables `type`, `nonce`, `to`, `from`, `gas limit`, `value`, `input`, `gasPrice`, `maxPriorityFeePerGas`, `maxFeePerGas`, `accessList`, and for blocks we allow modifications of `number`, `time`, `gasLimit`, `feeRecipient`, `prevRandao` and `baseFeePerGas`: +```json +"blockOverrides": { + "number": "0x14", + "time": "0xc8", + "gasLimit": "0x2e631", + "feeRecipient": "0xc100000000000000000000000000000000000000", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000001234", + "baseFeePerGas": "0x14" +}, +``` +All the other fields are computed automatically (eg, `stateRoot` and `gasUsed`) or kept as their default values (eg. `uncles` or `withdrawals`). When overriding `number` and `time` variables for blocks, we automatically check that the block numbers and time fields are strictly increasing (we don't allow decreasing, or duplicated block numbers or times). If the block number is increased more than `1` compared to the previous block, phantom blocks are created to fill the gaps. + +An interesting note here is that an user can specify block numbers and times of some blocks, but not for others. When block numbers of times are left unspecified, the default values will be used. After the blocks have been constructed, and default values are calculated, the blocks are checked that their block numbers and times are still valid. + +## ETH transfer logs +When `traceTransfers` setting is enabled on `eth_multicallV1` The multical will return logs for ethereum transfers along with the normal logs sent by contracts. The ETH transfers are identical to ERC20 transfers, except the "sending contract" is address 0x0. + +For example, here's a query that will simply send ether from one address to another (with a state override that gives us the ETH initially): +```json +{ + "jsonrpc": "2.0", + "id": 1, + "method": "eth_multicallV1", + "params": [ + { + "blockStateCalls": [ + { + "stateOverrides": { + "0xc000000000000000000000000000000000000000": { + "balance": "0x7d0" + } + }, + "calls": [ + { + "from": "0xc000000000000000000000000000000000000000", + "to": "0xc100000000000000000000000000000000000000", + "value": "0x3e8" + } + ] + } + ], + "traceTransfers": true + }, + "latest" + ] +} +``` + +The output of this query is: +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": [ + { + "number": "0x4", + "hash": "0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5", + "timestamp": "0x1f", + "gasLimit": "0x4c4b40", + "gasUsed": "0x5208", + "feeRecipient": "0x0000000000000000000000000000000000000000", + "baseFeePerGas": "0x2310a91d", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "calls": [ + { + "returnData": "0x", + "logs": [ + { + "address": "0x0000000000000000000000000000000000000000", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c000000000000000000000000000000000000000", + "0x000000000000000000000000c100000000000000000000000000000000000000" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000003e8", + "blockNumber": "0x4", + "transactionHash": "0xa4d41019e71335f8567e17746b708ddda8b975a9a61f909bd3df55f4866cc913", + "transactionIndex": "0x0", + "blockHash": "0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5", + "logIndex": "0x0", + "removed": false + } + ], + "gasUsed": "0x5208", + "status": "0x1" + } + ] + } + ] +} +``` + +Here the interesting part is: +```json +"address": "0x0000000000000000000000000000000000000000", +"topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c000000000000000000000000000000000000000", + "0x000000000000000000000000c100000000000000000000000000000000000000" +], +"data": "0x00000000000000000000000000000000000000000000000000000000000003e8", +``` +As can be seen, the sending address is the zero address, `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef` corresponds to signature `Transfer(address,address,uint256)`, `"0x000000000000000000000000c000000000000000000000000000000000000000"` corresponds the sending address and `0x000000000000000000000000c100000000000000000000000000000000000000` is the receiving address. The amount of ETH moved is stored in the `data` field. + +The ETH logs will contain following types of ETH transfers: + - Transfering ETH from EOA + - Transfering ETH via contract + - Selfdestructing contract sending ETH + +But not following ones: + - Gas fees + - Multicalls eth balance override + +ETH logs are not part of the calculation for logs bloom filter. Also, similar to normal logs, if the transaction sends ETH but the execution reverts, no log gets issued. + +## Validation +The multicall has a feature to enable or disable validation with setting `Validation`, by default, the validation is off, and the multicall mimics `eth_call` with reduced number of checks. Validation enabled mode is intended to give as close as possible simulation of real EVM block creation, except there's no checks for transaction signatures and we also allow one to send a direct transaction from a contract. + +## Failures +It is possible that user defines a transaction that cannot be included in the Ethereum block as it breaks the rules of EVM. For example, if transactions nonce is too high or low, baseFeePerGas is too low etc. In these situations the execution of multicall ends and an error is returned. + +## Version number +The method name for multicall `eth_multicallV1` the intention is that after release of multicall, if new features are wanted the `eth_multicallV1` is kept as it is, and instead `eth_multicallV2` is published with the new wanted features. + +## Clients can set their own limits +Clients may introduce their own limits to prevent DOS attacks using the method. We have thought of two such standard limits +- How many blocks can be defined in `BlockStateCalls`. The suggested default for this is 256 blocks +- A global gas limit (similar to the same limit for `eth_call`). The multicall cannot exceed the global gas limit over its lifespan diff --git a/src/eth/execute.yaml b/src/eth/execute.yaml index ed4b4a3af..2553bf2db 100644 --- a/src/eth/execute.yaml +++ b/src/eth/execute.yaml @@ -55,3 +55,19 @@ gasUsed: title: Gas used $ref: '#/components/schemas/uint' +- name: eth_multicallV1 + summary: Executes a sequence of message calls building on each other's state without creating transactions on the block chain, optionally overriding block and state data + params: + - name: Payload + required: true + schema: + type: '#/components/schemas/MultiCallPayload' + - name: Block tag + required: false + description: "default: 'latest'" + schema: + type: '#/components/schemas/BlockNumberOrTagOrHash' + result: + name: Result of calls + schema: + $ref: '#/components/schemas/MultiCallResult' diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml new file mode 100644 index 000000000..a6e0c06e2 --- /dev/null +++ b/src/schemas/execute.yaml @@ -0,0 +1,375 @@ +MultiCallPayload: + title: Arguments for multi call + required: + - blockStateCalls + properties: + blockStateCalls: + title: Block State Calls + description: Definition of blocks that can contain calls and overrides + $ref: '#/components/schemas/BlockStateCalls' + traceTransfers: + title: Trace ETH Transfers + description: |- + Adds ETH transfers as ERC20 transfer events to the logs. These transfers have emitter contract parameter set as address(0x0). + Default: false. + type: boolean + validation: + title: Validation + description: |- + When true, the multicall does all validations that a normal EVM would do, except contract sender and signature checks. When false, multicall behaves like eth_call. + Default: false. + type: boolean +BlockStateCalls: + title: Array of block state calls to be executed at specific, optional block/state. + description: "The size of this array may be limited depending on the client as a DOS protection. 256 is a common/recommended limit as it is the same limit used by BLOCKHASH opcode." + type: array + properties: + blockOverrides: + title: Block overrides + description: |- + Block overrides can be used to replace fields in a block. + default: no block override. + $ref: '#/components/schemas/BlockOverrides' + stateOverrides: + title: State overrides + description: |- + State overrides can be used to replace existing blockchain state with new state. + Default: no state overrides + $ref: '#/components/schemas/StateOverrides' + calls: + type: array + title: calls + description: |- + List of transactions to execute at this block/state. + Default: [] + items: + $ref: '#/components/schemas/GenericCallTransaction' +StateOverrides: + title: Dictionary of addresses in the state to be overridden + type: object + patternProperties: + '^0x[a-fA-F0-9]{40}$': + $ref: '#/components/schemas/AccountOverride' + additionalProperties: false +AccountOverride: + title: Details of an account to be overridden + type: object + oneOf: + - $ref: '#/components/schemas/AccountOverrideState' + - $ref: '#/components/schemas/AccountOverrideStateDiff' +AccountOverrideState: + title: Account override with whole storage replacement + description: It is possible to override any kind of address (EOA's, contracts and precompiles) + required: + - state + properties: + nonce: + title: Nonce + $ref: '#/components/schemas/uint64' + balance: + title: Balance + $ref: '#/components/schemas/uint256' + code: + title: Code + $ref: '#/components/schemas/bytes' + movePrecompileToAddress: + title: MovePrecompileToAddress + description: Moves addresses precompile into the specified address. This move is done before the 'code' override is set. Can only move precompiles. + $ref: '#/components/schemas/address' + state: + title: Storage + description: Key-value mapping to override all slots in the account storage before executing the call. This functions similar to eth_call's state parameter. + $ref: '#/components/schemas/AccountStorage' +AccountOverrideStateDiff: + title: Account override with partial storage modification + required: + - stateDiff + properties: + nonce: + title: Nonce + $ref: '#/components/schemas/uint64' + balance: + title: Balance + $ref: '#/components/schemas/uint256' + code: + title: Code + $ref: '#/components/schemas/bytes' + movePrecompileToAddress: + title: MovePrecompileToAddress + $ref: '#/components/schemas/address' + description: Moves addresses precompile into the specified address. This move is done before the 'code' override is set. Can only move precompiles. + stateDiff: + title: Storage difference + description: Key-value mapping to override individual slots in the account storage before executing the call. This functions similar to eth_call's state parameter. + $ref: '#/components/schemas/AccountStorage' +AccountStorage: + title: Storage slots for an account + type: object + patternProperties: + '^0x[a-fA-F0-9]{64}$': + $ref: '#/components/schemas/hash32' + additionalProperties: false +BlockOverrides: + title: Context fields related to the block being executed + type: object + properties: + number: + title: Number + $ref: '#/components/schemas/uint64' + description: When overriding block numbers across multiple blocks, block number need to be increasing. Skipping over blocks numbers is possible. If block number is not specified, it's incremented by one for each block. + prevRandao: + title: The Previous value of randomness beacon + $ref: '#/components/schemas/uint256' + time: + title: Time + $ref: '#/components/schemas/uint64' + description: When overriding Time across multiple blocks, Time need to be increasing. If time is not specified, it's incremented by one for each block. + gasLimit: + title: Gas limit + $ref: '#/components/schemas/uint64' + feeRecipient: + title: Fee Recipient (also known as coinbase) + $ref: '#/components/schemas/address' + baseFeePerGas: + title: Base fee per unit of gas + $ref: '#/components/schemas/uint256' +MultiCallResult: + title: Full results of multi call + type: object + oneOf: + $ref: '#/components/schemas/MultiCallBlockResultInvalid' + $ref: '#/components/schemas/MultiCallBlockResultSuccess' +MultiCallBlockResultSuccess: + title: Full results of multi call + type: array + items: + $ref: '#/components/schemas/MultiCallBlockResultSingleSuccess' +MultiCallBlockResultSingleSuccess: + title: Result of multicall block-level, with array of calls + type: object + properties: + number: + title: Number + $ref: '#/components/schemas/uint64' + hash: + title: Block Hash + $ref: '#/components/schemas/hash32' + timestamp: + title: Timestamp + $ref: '#/components/schemas/uint64' + gasLimit: + title: Gas limit + $ref: '#/components/schemas/uint64' + gasUsed: + title: Gas used + $ref: '#/components/schemas/uint64' + feeRecipient: + title: Fee Recipient (also known as coinbase) + $ref: '#/components/schemas/address' + baseFeePerGas: + title: Base fee per unit of gas + $ref: '#/components/schemas/uint256' + calls: + $ref: '#/components/schemas/CallResults' + prevRandao: + title: The Previous value of randomness beacon + $ref: '#/components/schemas/uint256' +MultiCallBlockResultInvalid: + title: Result of multicall not being valid + description: The error messages are suggestions and a client might decide to return a different errror message than specified here. However, the error codes are enforced by this specification. + type: object + required: + - error + properties: + error: + oneOf: + - code: -32000 + message: Invalid request + - code: -32602 + message: Missing or invalid parameters + - code: -32005 + message: Transactions maxFeePerGas is too low + - code: -32015 + messagE: Execution error + - code: -32016 + message: Timeout + - code: -32603 + message: The Ethereum node encountered an internal error + - code: -38010 + message: Transactions nonce is too low + - code: -38011 + message: Transactions nonce is too high + - code: -38012 + message: Transactions baseFeePerGas is too low + - code: -38013 + message: Not enough gas provided to pay for intrinsic gas for a transaction + - code: -38014 + message: Insufficient funds to pay for gas fees and value fo a transaction + - code: -38015 + message: Block gas limit exceeded by the block's transactions + - code: -38020 + message: Block number in sequence did not increase + - code: -38021 + message: Block timestamp in sequence did not increase + - code: -38022 + message: MovePrecompileToAddress referenced itself in replacement + - code: -38023 + message: Multiple MovePrecompileToAddress referencing the same address to replace + - code: -38024 + message: Sender is not an EoA + - code: -38025 + message: Max init code size exceeded + - code: -38026 + message: Client adjustable limit exceeded +CallResults: + title: Results of multi call within block + type: array + items: + oneOf: + - $ref: '#/components/schemas/CallResultFailure' + - $ref: '#/components/schemas/CallResultSuccess' +CallResultFailure: + title: Result of call failure + description: The error messages are suggestions, and clients might implement different error messages. However, the error codes are enforced by the spec. + type: object + required: + - status + - returnData + - gasUsed + - error + properties: + status: + title: Call Status Failure + type: string + pattern: ^0x0$ + returnData: + title: Return data + $ref: '#/components/schemas/bytes' + gasUsed: + title: Return gasUsed + $ref: '#/components/schemas/uint64' + error: + oneOf: + - code: -32000 + message: 'Execution reverted' + - code: -32015 + message: 'VM execution error' +CallResultSuccess: + title: Result of call success + type: object + required: + - status + - returnData + - gasUsed + - logs + properties: + status: + title: Call Status Success + type: string + pattern: ^0x1$ + returnData: + title: Return data + $ref: '#/components/schemas/bytes' + gasUsed: + title: Return gasUsed + $ref: '#/components/schemas/uint64' + logs: + title: Return logs + type: array + items: + $ref: '#/components/schemas/CallResultLog' +CallResultLog: + title: log + type: object + required: + - logIndex + - blockhash + - blockNumber + - address + - data + - topics + properties: + logIndex: + title: log index + $ref: '#/components/schemas/uint256' + blockHash: + title: block hash + $ref: '#/components/schemas/hash32' + blockNumber: + title: block number + $ref: '#/components/schemas/uint64' + address: + title: address + description: When trace transfers is enabled, this field is address(0x0) for ETH transfers. + $ref: '#/components/schemas/address' + data: + title: data + $ref: '#/components/schemas/bytes' + topics: + title: topics + type: array + items: + $ref: '#/components/schemas/bytes32' +GenericCallTransaction: + type: object + title: Transaction object type for call + properties: + type: + title: type + $ref: '#/components/schemas/byte' + description: |- + Default: 0x2 + nonce: + title: nonce + description: |- + Default: Defaults to correct nonce + $ref: '#/components/schemas/uint64' + to: + title: to address + $ref: '#/components/schemas/address' + description: |- + Default: 0x0 + from: + title: from address + $ref: '#/components/schemas/address' + description: |- + Default: null + gas: + title: gas limit + description: |- + Default: Remaining gas in the current block + $ref: '#/components/schemas/uint64' + value: + title: value + description: |- + Default: 0 + $ref: '#/components/schemas/uint256' + input: + title: input data + description: |- + Default: no data + $ref: '#/components/schemas/bytes' + gasPrice: + title: gas price + description: |- + The gas price willing to be paid by the sender in wei + Default: 0 + $ref: '#/components/schemas/uint256' + maxPriorityFeePerGas: + title: max priority fee per gas + description: |- + Maximum fee per gas the sender is willing to pay to miners in wei + Default: 0 + $ref: '#/components/schemas/uint256' + maxFeePerGas: + title: max fee per gas + description: |- + The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei + Default: 0 + $ref: '#/components/schemas/uint256' + accessList: + title: accessList + description: |- + EIP-2930 access list + Default: [] + $ref: '#/components/schemas/AccessList' diff --git a/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io b/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io new file mode 100644 index 000000000..84af7893b --- /dev/null +++ b/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x9d4366c1ce44d58a665e29080293d5f167ba718ab66f1a31ed79d84b0f7db6ff","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000002310a91d00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000004bf8f6000000000000000000000000000000000000000000000000000000000000000040216dde23f0d4bc307cec4522dd13917453223832a495f7df029a6842e595bd","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0xb","hash":"0x04f398c8b09b55043b93eda9a644b458c2b95f94dce6f2aca90d7c6d4422a787","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000001eae93fa00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000004bf8f600000000000000000000000000000000000000000000000000000000000000009d4366c1ce44d58a665e29080293d5f167ba718ab66f1a31ed79d84b0f7db6ff","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x14","hash":"0xa65e25f229ce31030effb76bd8038de8506d06287c4b6e4c6150d1c2fedc4e60","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000001ad8c17b00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000a6e5d1a1af24a7ecdfc011d6d4112e1adbcbefa09bd1670a465828f8b5950a7a","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x15","hash":"0x0d44ed810f0c15899ec7ff00f09b7f509e122836cf5adbbc74bbf1d5f28cde63","timestamp":"0x22","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x177da94c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000177da94c00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000a65e25f229ce31030effb76bd8038de8506d06287c4b6e4c6150d1c2fedc4e60","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit.io b/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit.io new file mode 100644 index 000000000..3d96d7451 --- /dev/null +++ b/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0xb"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"block numbers must be in order"}} diff --git a/tests/eth_multicallV1/multicall-basefee-too-low-with-validation-38012.io b/tests/eth_multicallV1/multicall-basefee-too-low-with-validation-38012.io new file mode 100644 index 000000000..fb6fecc7e --- /dev/null +++ b/tests/eth_multicallV1/multicall-basefee-too-low-with-validation-38012.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0"}]}],"validation":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2321b6a949d929918bf58f1e35c0459f3ae4b75fd71fd8ba6d8f4edad9de63cd","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-basefee-too-low-without-validation-38012.io b/tests/eth_multicallV1/multicall-basefee-too-low-without-validation-38012.io new file mode 100644 index 000000000..b147e7724 --- /dev/null +++ b/tests/eth_multicallV1/multicall-basefee-too-low-without-validation-38012.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2321b6a949d929918bf58f1e35c0459f3ae4b75fd71fd8ba6d8f4edad9de63cd","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-big-block-state-calls-array.io b/tests/eth_multicallV1/multicall-big-block-state-calls-array.io new file mode 100644 index 000000000..b4eb6bf9b --- /dev/null +++ b/tests/eth_multicallV1/multicall-big-block-state-calls-array.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x5b17533dae2b90e26f77c833f1db070da4549c05eece301b5e1815f68a5597dc","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5","hash":"0xba4ce2acc965c09128b67756ce28e53845a8bd61629ca5e2247ed87a42619f46","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6","hash":"0x49e96f47b9526b78ca473431f3dcbcdf0a8d984442c026a165328e150ac4009d","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7","hash":"0xa754edbb216a5fcb6debb2a232279c90d38850b3d0d5341f9384eb29ec219c5d","timestamp":"0x22","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x177da94c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8","hash":"0x5c02dcc160b099ebc1b13dc0920f5eaa2ff29808429735c9b9c7e545758d7202","timestamp":"0x23","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x148df423","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9","hash":"0x346ec0969efdd997d9b30666c0b6829285dc72d4eb9477d258e27d5281a7f27d","timestamp":"0x24","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x11fc359f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa","hash":"0x550899b46bafcfb3ac389986d79ce1bba88e991acea0d60af10a3c546556bb5e","timestamp":"0x25","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xfbcaeec","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb","hash":"0x0d1b872dbaeff086e8cd527f38b9c2d340e61902ef731a02e28b4fb81e0b1096","timestamp":"0x26","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xdc5190f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc","hash":"0xa4d11cd172773e4ade99d555931515062a365f686fdf65f252945b29e9aab3f3","timestamp":"0x27","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc0c75ee","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd","hash":"0xd835c3298e5589811e9b5d41697fdd4806c129755a016069d5b0bb391463d692","timestamp":"0x28","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa8ae731","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe","hash":"0xfad9d878507c67eff9def04a5fd692f042f91099a89084f62f446525b74cc908","timestamp":"0x29","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x9398a4b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf","hash":"0xdc055025f9e9ac24544f6ebfc6fc7ba5f8d11a1116e2e9a4e0e4cbaf76bd6fc3","timestamp":"0x2a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8125902","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10","hash":"0xa707f98b06f2f490139320b19eeaf08c861ded280dbd3c7594de5cad50f3c3b9","timestamp":"0x2b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7100de2","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11","hash":"0x23a57b8adfaf2303920fbc973212362c1e0b6217ec9e90f08322ab079c3b4514","timestamp":"0x2c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x62e0c26","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12","hash":"0xa639aa60e5a6b3e80db25dd587ee67c7122705ea1a888b6416b3d081c668b168","timestamp":"0x2d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x5684aa2","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x13","hash":"0x51b69f93a32d80868fc279dab5229e8c296f10fe51bf35425f5fe87d05b125df","timestamp":"0x2e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4bb414e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x14","hash":"0x3f2252b9819776307120d8ee21ca9e5612e46c223c66619cc5dd37b5d6c83f98","timestamp":"0x2f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x423d925","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x15","hash":"0x8d50528b188112cd5413e58480ccd47e300d4eb5f5ad965a70a28eef8d4627b5","timestamp":"0x30","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x39f5e01","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x16","hash":"0x6ff5e70936d1496141831739cef95aaf3295a8d6bcb2f503d1da20cd49629e53","timestamp":"0x31","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x32b7241","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x17","hash":"0xe53385fc50688bf41d1ddc163f7ce6d876e7db479e3aac5cd9e9023ecf03b3e3","timestamp":"0x32","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2c603f9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x18","hash":"0xd8eed4ad05e308ae573ad45efa5882f5c62390f8490851d903e680279eb09215","timestamp":"0x33","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x26d437a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x19","hash":"0x05a3856418d8691f9375afde1887e405516b84e260d4277eb0c271b605534c12","timestamp":"0x34","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x21f9b0b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1a","hash":"0xdaeaaa2a9c2e221536d210c1072fa908813b56dd6d67d20c06e243d92b8dc549","timestamp":"0x35","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1dba7aa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1b","hash":"0x436df3f9dd084144d3e2c883b28b635f0d977f7e6f579dbe8af3ff66725f33c1","timestamp":"0x36","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1a032b5","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1c","hash":"0x7040e0b9a08012b06ff788a755f18aba45c84f7b67e191d627f7040a8e448c06","timestamp":"0x37","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x16c2c5f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1d","hash":"0x5ed8ac8edb1ea8bc12807608a1a68561d9e077e1d33e38c19b734d3afc1320a5","timestamp":"0x38","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x13ea6d4","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1e","hash":"0x85ba4e220423d5e06542eea96694eb65a568119056ad514205dd87d92680fc5d","timestamp":"0x39","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x116d1fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1f","hash":"0x9d370d72a6b008977c5d92eeea9e514414d14fb5646e49a83016c411ff3b5c2e","timestamp":"0x3a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xf3f7bb","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x20","hash":"0x54223ec592b5ca6356f33804aeaa985fa2950443fc518a9045e4d3fd7493bdcd","timestamp":"0x3b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xd578c4","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x21","hash":"0xaecd1b82be61dedfb5d67e86254d8d97ee44bb5880c51ec0fb0e4b9c06224881","timestamp":"0x3c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xbac9ac","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x22","hash":"0xae4f1b54f4108ba9840564a71da67709f47d442b228f3550248770f65e7d13ae","timestamp":"0x3d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa37077","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x23","hash":"0xcbcbf75b111610f13e8830e9969cb3a66598590714d77179db37ac14ef25ddbc","timestamp":"0x3e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8f0269","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x24","hash":"0x7502c3f4b94bea2ce634e03e81eedc01d092293118ddb0b86cd3e0c7e3ea0613","timestamp":"0x3f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7d221c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x25","hash":"0x2744c4c5174553269f834819a39c769311bb874135d730f9b898d8b953140f23","timestamp":"0x40","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x6d7dd9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x26","hash":"0x4f63db5e8c13bc464002cd2a4fb2179780c2c505d5e42d6449eeee6e49f48769","timestamp":"0x41","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x5fce1e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x27","hash":"0x031258bc21d99ec33e71f6f06dc58df0029330584bcf76dfb6e6e183f6da3aab","timestamp":"0x42","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x53d45b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x28","hash":"0x9a79d57c9873a21f808c7c2be1bc0e77ca0c4fcb75a15e48e87ee021fb16599f","timestamp":"0x43","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4959d0","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x29","hash":"0xf99dfea03c433e960b7a92b9c845e916991ea05915ed65088ddf186ca876bef9","timestamp":"0x44","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x402e96","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2a","hash":"0xcd27aa6da2b48df2a92f293ba61057953349c28273d6914bf7e6918cb0cc9526","timestamp":"0x45","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3828c4","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2b","hash":"0x5afccb2fed191d8212e4ecc6afa2b1d1b848e0be8a725c192a51d864bdf3ded7","timestamp":"0x46","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3123ac","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2c","hash":"0xb8850446fabd64e147ac3171c4e6981be6002fbc09222ef474c5d4753a606c97","timestamp":"0x47","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2aff37","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2d","hash":"0xd48ef93238e9d46a36d03c223495dab7691ff7dfa9e839f9dd5deedb82c88555","timestamp":"0x48","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x259f51","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2e","hash":"0x9286ad54e0c8b5bc77efac70adf4de5eb988e80e9afecfa25990e7f69e9f03d3","timestamp":"0x49","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x20eb67","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2f","hash":"0x914a3e825c3429ec19d11511c22dbff6d97a01c1d59cdbf7b6375d1f128047c0","timestamp":"0x4a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ccdfb","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x30","hash":"0x80794c9180306312ca3784ce3cc5d193a3d4523fb0ce2c4911b68b13d02ef5b2","timestamp":"0x4b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x19343c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x31","hash":"0x9b4fc77d0e143cd50cafab17bd0b29ad4f6a1c3bbba7d2817809fe0171a46055","timestamp":"0x4c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x160db5","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x32","hash":"0xed2a32a26e27716901798b288e4a5e9b199020ac1b66c27b3656c63708c40751","timestamp":"0x4d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x134bff","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x33","hash":"0x4d37ed6d57adc8a6d044702e75b6abe3e7c0c18fe2af61c89af9a9732754ed1b","timestamp":"0x4e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x10e280","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x34","hash":"0x3164a824af5af8d2c75bfb0fda4de3b36f430e4ffaada314205cda1791e4bd3c","timestamp":"0x4f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xec630","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x35","hash":"0x637d53fbff6d7c308428660c0f3d574b96164ce89095a85a024167a36a8a098a","timestamp":"0x50","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xced6a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x36","hash":"0xd261dc09e08abecc39fa15626fffe9ee19210dd7f9d51dbde9e620b901cef8b8","timestamp":"0x51","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xb4fbd","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x37","hash":"0xe1c3acbc7e3359c73ff5fe910e24789fa97357fd9731bb20431e290774b32526","timestamp":"0x52","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x9e5c6","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x38","hash":"0x04500fe46fdba77a09abaa80161580dd738c33f080c079eb1ecef4177f812235","timestamp":"0x53","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8a90e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x39","hash":"0xd51fab5f4c5fd6daa099f67c32bff001ff2adc49a7d721addea77fdaf2f20689","timestamp":"0x54","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x793ed","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3a","hash":"0x5e21bcadab6443a614b6d29d4278c3ab8491c42269a51b0c6822b34878720121","timestamp":"0x55","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x6a170","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3b","hash":"0xd050e3bd149adaf481b168da70457a5248db4f8fb8b67e790653b562582c6c99","timestamp":"0x56","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x5cd42","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3c","hash":"0x50eec373bcb9b704630946b15da17f0483051b101f1dc6facc65905f06595733","timestamp":"0x57","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x5139a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3d","hash":"0xb7169def51644f3086267cc0e6fa05ea8fad5b28e7061a62af37259e3dbd875c","timestamp":"0x58","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x47127","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3e","hash":"0xc3dc7853d2eb01ea63820989974390caed3b2d4ba337a82926f9f6528b922a60","timestamp":"0x59","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3e303","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3f","hash":"0x604dc87532bb820b367e1e53bb3c189df4405b8286a4402b788f557eeca9d4d3","timestamp":"0x5a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x366a3","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x40","hash":"0x4bb372d96bcbb4b27bdc9a728e5b3bbf1c74f2aabcfd7b35ccb8afd0f083bc44","timestamp":"0x5b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2f9cf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x41","hash":"0xd4734374c8e865fac8e2f0bc8910243bf7fbffe980913d5e8dc1fc5f7b38449d","timestamp":"0x5c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x29a96","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x42","hash":"0xfd4602483a7da1885016ef277ff640e2446f565f644921ba241d0cba8d735a48","timestamp":"0x5d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x24744","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x43","hash":"0x6a18b190c6834be23bdd8e3a0fabca25b8448eb724f29ee79e1521562e4e1230","timestamp":"0x5e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1fe5c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x44","hash":"0x7f5c074a9b6ccb40ce5465ea2f1fc9b3572645b9cda69481d6777bcb24621862","timestamp":"0x5f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1be91","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x45","hash":"0x8b54e9c97c75607fa9ef89f1eff2338a68537b64c45fdf285b857e53b653bf3c","timestamp":"0x60","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x186bf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x46","hash":"0xbf61fedb09e411b0a672636cee9259534613c8ead8d2dc0588798ab3bf549baf","timestamp":"0x61","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x155e8","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x47","hash":"0xf1c0b417191bafabff54e1abbfad41bb6a6ea14b208b36b403372a1971c3458b","timestamp":"0x62","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x12b2b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x48","hash":"0xbf509b3bee29146f40e33d799308f32dadbe9cc777d89e511915d26c31f42b99","timestamp":"0x63","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x105c6","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x49","hash":"0x5e7c4018563316fe1143653ac5f0a27bcd08577b3fbf55a3ac65f5ec6817bb68","timestamp":"0x64","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xe50e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4a","hash":"0xeae318111908f55b511153fc94d70415247d0b6271811452cbf5b7d8367ac355","timestamp":"0x65","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc86d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4b","hash":"0xd0d81a2c00c4c19afdd4a0e602d9266c14d0af2c48b265364aaeaf479e55d99f","timestamp":"0x66","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xaf60","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4c","hash":"0x6d91d5b01def5865d12af4810d37e1361af6b806726ed9d19be919544c442f74","timestamp":"0x67","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x9974","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4d","hash":"0xbc1325bba413f65dd81acb5250006b001d7f94c44b07ae9c28533a9518ee2a8c","timestamp":"0x68","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8646","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4e","hash":"0xf4ced16c6f296a11a8a10bc86d2dd497f1737da0a144343565d704b603e43cfa","timestamp":"0x69","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x757e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4f","hash":"0x9ec7973e70182114b4e226f7a58d184ea58e4982522fff84fe62cdf30467e784","timestamp":"0x6a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x66cf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x50","hash":"0x65558480b7200ee872a8969aee3f8f54fb99ce8629ca6e668e328196407a5fb7","timestamp":"0x6b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x59f6","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x51","hash":"0x8fce8f26a7616bbe1f2838a3a3ecfa7a15307d8e590bbddb5754d060a9777124","timestamp":"0x6c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4eb8","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x52","hash":"0x944cf20ad14670785c87cb4ede1a7cefa24e511f736cb59d08176fb0f1936d84","timestamp":"0x6d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x44e1","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x53","hash":"0xdc29ab5fe115791acad70d9d5a8c5d1853d99c2eeb30301ad76973d266449e23","timestamp":"0x6e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3c45","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x54","hash":"0x19aec87b4db1e5ed7bf4b825e4ef93de388f0c0b8f615dccc8cc93d038d64243","timestamp":"0x6f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x34bd","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x55","hash":"0xd4b1bfd32675552fa8f8056705e03f9b0eaef8f56953896a93fbe93ae6b1bf61","timestamp":"0x70","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2e26","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x56","hash":"0xb6acc03151a7268748655c3239c015acf2cea1cf3acc9cfed5057eaa7a50eab0","timestamp":"0x71","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2862","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x57","hash":"0x0da857fb01062ff45027edaa0aac7c91a016fa62454f349113c09d2ed327900b","timestamp":"0x72","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2356","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x58","hash":"0x2f901ccaa825ccf2830530d25ec1d69140dd92a4ec43a89010df053f53689d15","timestamp":"0x73","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eec","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x59","hash":"0x789a5016f3b5dfd6b94c619c98623db9d1c9f72befd28e9e8b23c1202961abbb","timestamp":"0x74","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1b0f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5a","hash":"0x7632b368566d589fb0e27547694b178e76df6c41c4791a7757bf96347ae1aeeb","timestamp":"0x75","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x17ae","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5b","hash":"0xbe52f38d0b04f1b8a243cc26aa3277997dcc6c352941239c5012978ca2b939cc","timestamp":"0x76","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x14b9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5c","hash":"0x7ca42c626cd2089e76fdfcb8793d98a6a724b1dc30db001adf4032517df0c224","timestamp":"0x77","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1222","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5d","hash":"0x17e28750141186ce37eecf6b33019e6657d215c323d00fc11295238e013f1f88","timestamp":"0x78","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xfde","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5e","hash":"0xf4114d1095c42227be626d508b4ace512f75d37cc65ecf412c64c12a54629b05","timestamp":"0x79","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xde3","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5f","hash":"0x87b5c91d9c4f99a31715fd9611dd3fb206ac2942ffea5eed2c24ca78a3e8cd8c","timestamp":"0x7a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc27","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x60","hash":"0x8ad82e603d7f8b73c5526cb13ab41ca0e5d33ed350a24b6aa5b1ab7b75e52c64","timestamp":"0x7b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xaa3","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x61","hash":"0xca2a4295e919e2696e5be7aaf3105755d202d245307e7f96b64d88d103c90d0f","timestamp":"0x7c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x94f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x62","hash":"0x3564f78599aecb32f4f1c32e9b94c9c4624ec7ef785779f9d9b8449c98f08f6c","timestamp":"0x7d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x826","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x63","hash":"0x9ab4f0d448f75e8b4a2f2e1b6c7557b8aa97c2f873436a6e52e1ea8aca3af632","timestamp":"0x7e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x722","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x64","hash":"0x69822d555b5e428139009a946fe5d962ab8ac017fe099d3f4af5e17c08ec5093","timestamp":"0x7f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x63e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x65","hash":"0x51c6f01be55b49ad73eadfe87d5784de332cd9902f6ea5190060323fef44be8f","timestamp":"0x80","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x577","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x66","hash":"0xb9473d25815ca8862a97a5d3d0c0a801436f4602085065ef7e3040c69ba93ea9","timestamp":"0x81","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4c9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x67","hash":"0xa865851092b75f68ee9375bf40d99bf9df2546fd4f5ad743428042eab34572f7","timestamp":"0x82","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x430","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x68","hash":"0x30bfda53bbb6a2d4920a87082af51194bd2fccc24dc4f08a142cd0feb485628f","timestamp":"0x83","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3aa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x69","hash":"0xf78ad2def8f12048f7634fac57ed06e505f3737195038f4e24e34d7fceb3c8be","timestamp":"0x84","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x335","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6a","hash":"0xaddca94507e58298d06bacd5137c9426be96aedd695c05427264aa4d861b92cd","timestamp":"0x85","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2cf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6b","hash":"0x0e23d5cccee2ef04f560f7200d52a524bfcb6438faa1193be4210dd97d5514b1","timestamp":"0x86","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x276","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6c","hash":"0xb48f627d24a6a52411d01d8dff6c98a31ad7011640fe535c9bc403ad7767e11b","timestamp":"0x87","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x228","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6d","hash":"0x3bf04850578fa99b2528909d22fb89e762666e6b853f2edbad7f4f419b1144c8","timestamp":"0x88","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1e3","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6e","hash":"0x765c4a1ace468213bab81df9b5a99aa43ec8acfe3b1d081f6a52ad43fc118390","timestamp":"0x89","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1a7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6f","hash":"0xbfcb721720755df38afa703396d990411483f29ec2545a675257449be8fd22bf","timestamp":"0x8a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x173","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x70","hash":"0xbe868cb2e5698b623b613cc07fe9ea54efc8803805077f68631732174914338d","timestamp":"0x8b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x145","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x71","hash":"0x8d2248ae0d730c9807ad53e89759e6ac74a8123eaba13d1e41c7051f7ca50d72","timestamp":"0x8c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x11d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x72","hash":"0x647c6d41b7c43f54f926779292491c4e1b4fa19818e41e19fdd193182f91e1c8","timestamp":"0x8d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xfa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x73","hash":"0x75a4dd33741897570cbaa2eb7ace095227f37dc42b20f59e62e937a04aa36d6a","timestamp":"0x8e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xdb","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x74","hash":"0x439b70ba41cf44361be2ec140b06bd2f91eb97b6b300d925b9d4bdf5216c739a","timestamp":"0x8f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc0","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x75","hash":"0xa60b280fab2e9243ac56a258f6ef373589f1fd89c2a5b702baaece1aaa943547","timestamp":"0x90","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa8","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x76","hash":"0x4fb21a979e59c716dfc2b20655cb4bd849037a2c2162405103dd5ce7b5a646a8","timestamp":"0x91","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x93","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x77","hash":"0x341027029fb6d14d781cb67aff49ef7c68473e2e66734e3545048e9c0811ee65","timestamp":"0x92","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x81","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x78","hash":"0x4c362321aff57162cf3d75b2d77eb516f521b34eac320dcb7b10638d675c627b","timestamp":"0x93","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x71","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x79","hash":"0x4c15a3ea625638f14475e24946accc7633564b6b9e365b52ce7d1240d8446528","timestamp":"0x94","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x63","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7a","hash":"0xe510f19ed359aac55435041b7217599205ef88ff1994868d1b71f25cf1eeae07","timestamp":"0x95","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x57","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7b","hash":"0xc00a503dc759976863556fb1af4352359af0324fccaa867e2e8c1135fd8acfc6","timestamp":"0x96","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7c","hash":"0x637ad787d5a36df0193713ea9bdf0f563f5b229f41f81e7d9b729b7180783d12","timestamp":"0x97","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x44","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7d","hash":"0xbee96f8bea136cbec41cce2f8406c81a058b661e8994d8a90e79928077cdc27e","timestamp":"0x98","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7e","hash":"0xd9a9434359b97f508b8b20ce90cf87ccab2f92747ba21243b800ce430d412181","timestamp":"0x99","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x35","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7f","hash":"0x94010591792f5a2247cf0fffa7e521dad598f2670475683efcada0bf16c14835","timestamp":"0x9a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x80","hash":"0xfb86fda1cff717c3aa251fcb87611919ba852392fe89996cabfdd56f6128339d","timestamp":"0x9b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x81","hash":"0x9e04164467a387e7d3b532eb2953e903b7668fe7ddaf0f82851b5daef6e56a3b","timestamp":"0x9c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x25","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x82","hash":"0x060ae18a6641d4304d00d54d47bace60875ff29fe3b28a79f4674534141935f0","timestamp":"0x9d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x21","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x83","hash":"0x5f1623bc2119b572c4d29d6939fdcd5ec84a7080496ddd17f45809abcdfd8534","timestamp":"0x9e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x84","hash":"0xa3590f9fcd315aa59dd33599e28433170b4e997c411122f4fbd519ec7ebf5cbe","timestamp":"0x9f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x85","hash":"0x54dd8e8cf3374b2767b755db2a14fd36f0949d1afac7ee117524987df3a16d4a","timestamp":"0xa0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x17","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x86","hash":"0xf90063d0be93b2f7a0aec2cf083f7a96be40e393f248024ada9d550c9948b531","timestamp":"0xa1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x15","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x87","hash":"0x82f1db3466f1027068cafbff0a7cc83f5ec0f56fd5c05414e12b09e4a7864120","timestamp":"0xa2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x13","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x88","hash":"0xa319642dc1aaea499d41297b8bb3ff7e3c384585405b991d36d5627ad3d3ece3","timestamp":"0xa3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x11","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x89","hash":"0x1be0924d3886374f6c2f0dcdd6db9aca4d56bc0f2511f9fa2043aa03f27b2365","timestamp":"0xa4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8a","hash":"0x071456a741a285adffef5badebd93fc7b5a0ccf117a4c00005665fe482f0d368","timestamp":"0xa5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xe","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8b","hash":"0x82f4533af6765e9db9c0455e8a929a5362106b0d2cd011fd35b875c7620649bc","timestamp":"0xa6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xd","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8c","hash":"0xbfa25768770ad64b028598bfc1686be598e4bb18f0d29cfa0e9620d0dae738a6","timestamp":"0xa7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8d","hash":"0x1aa83044b84a6d958afe243e6f0db39793d32d248d25ad505c686cca15cedd96","timestamp":"0xa8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xb","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8e","hash":"0xfcc685b0669fe8ea20212d550a217d16a1c8bf5a41b0a2c69b5620bce2b07838","timestamp":"0xa9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8f","hash":"0x8de3cdd7e274cac23921ccb341f0a5a607f1c295939650b9773d64218586580b","timestamp":"0xaa","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x90","hash":"0x15a77d768cfb0b298565fd71fceb08682705e88fa12aee7df3852b45087ea90a","timestamp":"0xab","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x91","hash":"0x872fae430bf5138fdec629f50d187f93ee4180f69cf603112cedb11e1d0e1481","timestamp":"0xac","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x92","hash":"0xf05cdc4db769c834af777e42a5cfde75b68820dea23c4f64e396202ee2f07cd0","timestamp":"0xad","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x93","hash":"0xf65ed524b9dc70d6ae86205c8aeaf74e6e27b47c3c96c55f03920fdbce4574ec","timestamp":"0xae","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x94","hash":"0x68a676483e17844f24cac210c1f67fee71a56f14a9452c8e2cbd2097866b4189","timestamp":"0xaf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x95","hash":"0x587726ef226f989636dda28cca5f158b24e7d3ee6133dab5324faee4e4cd2ef6","timestamp":"0xb0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x96","hash":"0x3aa7ff5173303fbaaa732854a4a1b4fa2ac4e00eb2333212dc2a1af528aff07a","timestamp":"0xb1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x97","hash":"0x169091e9491ae3c2a387481daaac3dcc413c4999a0f3a6c064e1335b2ccf9b32","timestamp":"0xb2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x98","hash":"0x20a062126f6d9d2349860f5fab883aa3d679b8f9652b83544286c57e07188127","timestamp":"0xb3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x99","hash":"0xdf5a6cabb4d46fb76bdf9f9e7bee7f810402c16877f772448bc9833f51cbbec1","timestamp":"0xb4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9a","hash":"0x3fd5b157f172adf4bce52d90768dca1ef071641eab49f9e851c5a06fb01f42ea","timestamp":"0xb5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9b","hash":"0xe5a5407a0c55db2afc4ec13f8aae0a09cce073ff1e90acb916b08e52ebbdbbec","timestamp":"0xb6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9c","hash":"0xa5442d9a18696fb0051121b76c3cf64c266d2df0bed47b403e2b4df69ca87e32","timestamp":"0xb7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9d","hash":"0xc2445a096e1e963286d8f0ae58019b9dc2d0989aa84baf247a8394555e462a1f","timestamp":"0xb8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9e","hash":"0xe072f3f345a757cce4eb62ca0e060195dd224956abb37d5b945859a5c85565eb","timestamp":"0xb9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9f","hash":"0x9a471c4bcc7ed1cd0212f92b24f5e7e2c1b14ae2de6b115886c620ee866fa58b","timestamp":"0xba","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa0","hash":"0x82a38b117c453a562b3b39a690f48b8f2ddf74b8918b6be6b714352e652af7c0","timestamp":"0xbb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa1","hash":"0xd82087e3ed6fc6d61bf9431d87a54e9ceda8392a7e6d8f8bc958d3b01852af79","timestamp":"0xbc","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa2","hash":"0xf21cc7579fdf6b1a8616d582b8859dc6044685b269910036767e770c6495c88d","timestamp":"0xbd","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa3","hash":"0x6309f778ca77215686b33a230fb35735e8edea3ca83048afec334b50e44ebc10","timestamp":"0xbe","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa4","hash":"0x350276f62b1abf40abfc56fdc0a2797e9122305317a9c9f7ac6bc093608f6080","timestamp":"0xbf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa5","hash":"0xbfd496167f97acaf6b450295cfee00401971fe29954e496ffbff788fb0be3d84","timestamp":"0xc0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa6","hash":"0x86287f66203eae50a2c214b04c866c65550cc74a8c1ae57402d18e2b3569ede3","timestamp":"0xc1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa7","hash":"0x94967fdd89c8a93a73691b40cf1638f102632f80982c569ae4cfb51064be4523","timestamp":"0xc2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa8","hash":"0x5da3d5e1fce642ff49f9258429088d9496e5f1215255a69fb76dc49e67f488f5","timestamp":"0xc3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa9","hash":"0xa6582bb937cddb225669b96877945a87d4c9e675ce8ec37938be69b0d9ec10d2","timestamp":"0xc4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xaa","hash":"0xe35fb5331109afb6cf556ccc1d64c2c8ebc4278e4122f99172a6890335f9e83e","timestamp":"0xc5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xab","hash":"0x381c7fa5d1512009f5c6a17a2ebaca4edefbf5eb6f725ea0256c82382175a805","timestamp":"0xc6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xac","hash":"0xdac3821ffd65f08c42621dddee35c0d84aaa5b9495e6d8f9e5d5855948532dd1","timestamp":"0xc7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xad","hash":"0xbaeb3faa4390b4133789b5eab1b7aaa9250ea82715669b8316d8c141b974f99b","timestamp":"0xc8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xae","hash":"0xa6a09559ccd3cfacd9e163237eb1488f1902e99b15c8f09e7a068897e6c78067","timestamp":"0xc9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xaf","hash":"0xa707c975d84aa1fb97687b77359acb931df71ab1020574fb105ba19c8c3baeb4","timestamp":"0xca","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb0","hash":"0xf02d9d8517728e8ab010e39927a55d2b22059429ba07c33c4ec86781ef78ea05","timestamp":"0xcb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb1","hash":"0x606db1280515f0c6fa3d793551378a11b16a4866354af851635e0aa0d87acd53","timestamp":"0xcc","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb2","hash":"0x3ebf35d32fe58de44c638fa319d57ac6114453a60e71e077cc4b1e62cee53bd0","timestamp":"0xcd","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb3","hash":"0x177c9564602345220ed4813ad415f4a013ff10939fa0cc2bd7e2b3d8ac3bc8eb","timestamp":"0xce","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb4","hash":"0x842ee3608a391f3dd0fb1c7d39206be29e2dcdc199e38367a76666674bcdc1f3","timestamp":"0xcf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb5","hash":"0x561e893306fdf8e869bcaf59f2778617f39f172908ea7fd1c6d091245c52f68a","timestamp":"0xd0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb6","hash":"0x87a5970927135ecc6ed177e9d40f149443ab956e3dd23a7309914e9b13d536f9","timestamp":"0xd1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb7","hash":"0x740152e269c77226a7689f11caf32815ca78438f4e590ff90f7bb2fee13a36e8","timestamp":"0xd2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb8","hash":"0x37f7181d0f4ed5ad7e77a86e5238de34d9719431a052ef5ed1cf9963aa829100","timestamp":"0xd3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb9","hash":"0x461b76f001137f69a6d8c3777e14bf3daa01a64b33dff05e2f741d4cd2262a3e","timestamp":"0xd4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xba","hash":"0x4a864d5feb5b6089a9ed27ea657357e1125d37deff9bc0cf6f15c959bec4ae0f","timestamp":"0xd5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbb","hash":"0xe6270a7e704c208880f33212d70f24b14e4a4b9a65a497e7349a489f34487850","timestamp":"0xd6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbc","hash":"0x68b87657a6baf024e7a2b54ae587b646949b3813e5ecb58d8a9bc5c4daecce68","timestamp":"0xd7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbd","hash":"0xa26a7897a462c191a58071c4daf6200da62fa6dd3bd42da191040b78e8c21df7","timestamp":"0xd8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbe","hash":"0x437ed46d1f5970dc0dc36db849e585fc8cb72084c80e8a0e2ca4d477a28343ce","timestamp":"0xd9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbf","hash":"0x92f4f2e67d2ce565f6cfb7f52077f219a2ba1e8a619d9e38d814dda464b93012","timestamp":"0xda","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc0","hash":"0x9bfc345c9871036efac34d3fb0038567e5924647453f5e740e590e0743747583","timestamp":"0xdb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc1","hash":"0xd7427a6e974bc3667aeb1b567ac9bf4265b663172ead55293f2254992ec4e639","timestamp":"0xdc","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc2","hash":"0x3f2023fe84024872022e5b9684e4f5826a8cb06ef8236950d787252cb6243f39","timestamp":"0xdd","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc3","hash":"0x3a8e29fa58039e425c0654b4b6d8065ba6dd32ac264b1d9a9043c763c6e3dd5f","timestamp":"0xde","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc4","hash":"0x586957aff91638d2974b52048feea228edf2dd148deaab9551bd90106d598a25","timestamp":"0xdf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc5","hash":"0xbfa7ac5fe1da85af46c6b5d94b3e8267952a713bf24733018f57280e0d049cbf","timestamp":"0xe0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc6","hash":"0xe843c8e1750b7a8e0ec135a8785ce4beb00fe557448eae33819eac5a84901b61","timestamp":"0xe1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc7","hash":"0x23d27294388aa2350eefe3042254e25e1c4bfe918036c756eb302012233d1f81","timestamp":"0xe2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc8","hash":"0xf320b3cae6dc28a03ad80ca6da5a31cf51af404d024ac9d50b3daa66a03da822","timestamp":"0xe3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc9","hash":"0x1f16c4ce335aa598773fa1d16f7d57d6ed40151a26ac32cc0d3378bc3050aa1f","timestamp":"0xe4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xca","hash":"0xee87f57b3f02dfeaa6ccbd076f1b17b4f5b2e1bf439e05f276c59ee66f98f191","timestamp":"0xe5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xcb","hash":"0xa9b965f895601e1f6acd54c7c1ef8ba9d583bb745c932f544c2b19623fee2aa4","timestamp":"0xe6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xcc","hash":"0x077275160e7431da638412abed9e152275dd9f70246fd21631f70dc173d76a67","timestamp":"0xe7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xcd","hash":"0x4e17d0939a97c7ebbb2427dd3507ee265e3e534c86cfb46f95fc59fc2e538609","timestamp":"0xe8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xce","hash":"0xa53977fd488114fd6343121b87b5787f04ab1246ed1356d9a01439ed89c8ce6f","timestamp":"0xe9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xcf","hash":"0x9a9477b7d6507c3e73aa62c7f687bde532d7dd5721d476f7a64f91c77d07a9a8","timestamp":"0xea","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd0","hash":"0xcb90f711ea107e2db96261c6981ccff8a491a78ab433c4aa92976cc6799e2629","timestamp":"0xeb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd1","hash":"0xd78673a42840fbb534811cf1c879f41ca0986cf52f16b261d6ca46acc911e0af","timestamp":"0xec","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd2","hash":"0x13eccb58b2d4d13dfd65282ba7072c0110cc141d8312702ad2ba111a665ff1d4","timestamp":"0xed","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd3","hash":"0x3c1433a507d8e6eb90e77278eba3fbe323892bb5cd8eb21604b2500567bf38c4","timestamp":"0xee","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd4","hash":"0x764bb93fedc1bd3c18e0ea2a5c9bf7f19e51e02de12565b6ecf7903f16e752a2","timestamp":"0xef","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd5","hash":"0xc4fd1c04657f2c9bef93804bd295833c5688eb54d71696382665bc9a8f31b4ae","timestamp":"0xf0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd6","hash":"0xc5c0704e717afce7474061fa7a095e26f02b387249b58b34930ea433d61bcd57","timestamp":"0xf1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd7","hash":"0xb2b3511502dfae3f529b495dc9df1f9d4018643807c6c20c56bc108ab87d36b0","timestamp":"0xf2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd8","hash":"0x25d92d10e8c183d46bb39cf3e0c99c57cc77a9781a1b81dc17ebebe5962492eb","timestamp":"0xf3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd9","hash":"0xcd32294c2cf0c0b0f166440aaddd09dffb3ed505b4f95210537e8361669c0b82","timestamp":"0xf4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xda","hash":"0xc5f028aab1e08f23cf596ad15b012f214bd07ed7015884af2dab33ea2b820803","timestamp":"0xf5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xdb","hash":"0xdc6694d42e2c7e4f764a67a106b267882939d9b6ecd8c66a3273a1791f8adf26","timestamp":"0xf6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xdc","hash":"0x67ef9081c336e03cd2280a2b6d8ab46c57f653b6868af88fcbe4fc61ea40afcc","timestamp":"0xf7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xdd","hash":"0x34e49c0a921a1e61d7076880a8ee141feb01a3f1a0d1b46caa6fb5a036316faf","timestamp":"0xf8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xde","hash":"0x440a403f81eb5f77bc6acbae2b367b55937c1e42f32eae9dd74d1a1e40a6b9f1","timestamp":"0xf9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xdf","hash":"0xddd8656d5bd790385e47425d0d26dd9cfd7323ae90e192449e963de6194811f2","timestamp":"0xfa","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe0","hash":"0xdf1a9caf6898c6d41d1bac28d5c4e7e53f16ea93cd1658aef48ccd527572ac33","timestamp":"0xfb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe1","hash":"0xdbe0d17ca485843f0512f53eff7ec3de4c4e26c407987b2362ec186795ee6325","timestamp":"0xfc","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe2","hash":"0xac582d2d8ea23ac962fdd68030e4f7e9e4ad115908f56e1ec838f71cd1bde4a1","timestamp":"0xfd","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe3","hash":"0x87457c2d6d851eaee05d3a1e2a20df5eaa0db19535bec57c4bf8b72c921341ce","timestamp":"0xfe","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe4","hash":"0x227ff0d1ed7657e2e2f0ac996849d690797283e7e501f9518e8a5a1ab798142b","timestamp":"0xff","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe5","hash":"0x083f37fd6d7709f098c4ca3a8839cad06b8f1793aa2e8bfdf47bb0a8c5a8f389","timestamp":"0x100","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe6","hash":"0x3c95c281f4ab08575ea1722500888a056b882f3a047dd676abd8b265c6b434de","timestamp":"0x101","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe7","hash":"0xdec7be224a5d9087bc0065360a052fd7443afc98117c6355df449602afe4f3ce","timestamp":"0x102","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe8","hash":"0xab58d362cf79c315f67ede4d914e016c0839fdf7f51bc53d7a1eaf8a7ae0a6f2","timestamp":"0x103","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe9","hash":"0x734de35ee9c069c395bb42875cecc20366d0b7ebcbeb2061f7c6d13588171e93","timestamp":"0x104","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xea","hash":"0xb92c53961379f1e0f95df34d99964011ef02c247c2383b46935f5053d88ee64c","timestamp":"0x105","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xeb","hash":"0xdc5cd1c9d408de35905506cb577ea45db21206808cb1ab9c21c121f38c03a3c4","timestamp":"0x106","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xec","hash":"0x597bfb5e3b00d9cdb26b3d817d0a6a56772448456674855cc3a664c70c34225e","timestamp":"0x107","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xed","hash":"0x3a7b6e4bc99091ddec9c7d255d32a0736b1ae5d2cf6cb6a3c0dc85b3e682396b","timestamp":"0x108","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xee","hash":"0x662bf5618dbd8a418c958cd593f43db27ec3ad5379dd84a316baa105f7df40e2","timestamp":"0x109","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xef","hash":"0xd5ed65d05a570bcc24c89816888fae3e6b53ab060e914c7350431bc12cac01e7","timestamp":"0x10a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf0","hash":"0xd792db77fc12727a2482369d1ea7f2fdf16adfd7e36cd28fa172d351cc5085bf","timestamp":"0x10b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf1","hash":"0xff5aa28968b501bf0e26b6a52d68f44978679ccab1259e23b6ad0af2250e0860","timestamp":"0x10c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf2","hash":"0xd9be043ffe9d33c8686a0e50d8ee8476533e7beb73d69428c4cdeacc4872912c","timestamp":"0x10d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf3","hash":"0x7b33908e3eb58af491f3d8fcd800dee7b0ec0ceca00ec296ff6ba3f39abfb9c0","timestamp":"0x10e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf4","hash":"0xbbb14971ff38671f05a5e80ddea4dc415fbfbcd5ec1633cffbe57c3681ae6fd7","timestamp":"0x10f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf5","hash":"0x0a8e107a987ec7fab409b44f36dd285708da8fcc9dea6a1123b7927feb2c663d","timestamp":"0x110","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf6","hash":"0xab5f1fbfd4061bad739e717c9bfaad0d97df6235fbf791e7960f1340d98ab00e","timestamp":"0x111","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf7","hash":"0x227fc2948e30496ba7ed222373c9edfdf3f4dc333dc5cde33d963c2ef76063b7","timestamp":"0x112","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf8","hash":"0x78709d5aca32d4205c4e5e200d8d60ad2ec56c0e70243b337451c733f1d2ad90","timestamp":"0x113","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf9","hash":"0x7a16642100fa663d20b53dba3e7f34d2576eaaa1bc2b6a8b546f02724f3bcc9d","timestamp":"0x114","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfa","hash":"0x4eba32ee1a6197b93923dce20b1367b3d71edc233e0c7b7208b06e6506583627","timestamp":"0x115","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfb","hash":"0x694f8f140f4e4c98f90808be6f42c023c7c4a768a9cc11971c27586d36844a1b","timestamp":"0x116","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfc","hash":"0x16f548b8d091c1602f223fda9f656789be27d9b971152b1dfb67e38bb4e11a81","timestamp":"0x117","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfd","hash":"0xa09b690a5e34da11a6b4342e041c8ceb7ba6d8b2bc5d55ebfc58ebfcfebf4cf3","timestamp":"0x118","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfe","hash":"0x207f995ddf5e1c73fbb95a7daa8d46a4df549b8cd0a8ae7eb3131ea894ecc309","timestamp":"0x119","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xff","hash":"0x255849d7a35a283164a91294122e9c38ec46503d405080827ecff4c2ab965105","timestamp":"0x11a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x100","hash":"0xe2e5de15adff1c024d9ed1368e420015464a570bf9f53fa55555ee5c72ad89f9","timestamp":"0x11b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x101","hash":"0xd6f1ea7566f7f298516c6d8a4befa0fadff1868300050447338a26d592cc93a5","timestamp":"0x11c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x102","hash":"0x9f69b73f125e492589453a0302f4a1fc5470112a55a07b910471cf14b9a3ca0f","timestamp":"0x11d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x103","hash":"0xc3e2838bc2873dea97b2ddb3cd1cf84791761b024c177e16e435b2aa1eeda3c2","timestamp":"0x11e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x104","hash":"0x50f067a05497221e872d2d3870a9bb386265895741f08923484d2a58d3fa12cf","timestamp":"0x11f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x105","hash":"0x95f398907dbfedcdb5c8c654c45f3a41ed880d6f9d874fe10eaca010a8c7e8a6","timestamp":"0x120","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x106","hash":"0x86b63760a8c673c38a03d721ddcfa86f3ed241137adb9c1d4152b69dec878f2f","timestamp":"0x121","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x107","hash":"0xc4af83d3609a5487260715aa6595afa7048ed24c82e638348d90b34eba249f9b","timestamp":"0x122","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x108","hash":"0x52c9fa009f0fe3ef58ff32ae1f333a0d0f88aea117e70febe1479cd54673a4ec","timestamp":"0x123","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x109","hash":"0x0b1d7fcc78f64dccd508f69646b5aa340cef1441e531658f832a4db02e9ee734","timestamp":"0x124","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10a","hash":"0xfe3cc19f807e5656e07dadaf683f007eac60560f7d3fe237e456fae7e554d9cd","timestamp":"0x125","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10b","hash":"0xe9dc5e083aa418b59eb2b881053b09c4b6e3650b9b300bb5656a0e85d2ba4893","timestamp":"0x126","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10c","hash":"0xc68c4a51aa73848e1debe8b1264fdea92f5fd17b7da27c83a99b9c9075f556ef","timestamp":"0x127","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10d","hash":"0xaeaa6744f42305a6095bb28606ee4d8f6a5d0ccdd26725eb2d239cb9d1993694","timestamp":"0x128","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10e","hash":"0x9ea8107130340d216273a67c59a0c98ee02c3cf66a8c402b033307868c897f73","timestamp":"0x129","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10f","hash":"0x9e8ca46837bcd9bd3bab113c90168747179630ec8836e9f1c51ac270c1b0cc09","timestamp":"0x12a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x110","hash":"0x907446a6b84db024c1405c30adf9bf20a80a848b34d792f3fac93f6e57064b72","timestamp":"0x12b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x111","hash":"0x8a3eb0803b5a5b93161cd9dac211d1e694639b02475f47f84e8c8af4e56f6b52","timestamp":"0x12c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x112","hash":"0x53db4c2bef0fd46826427aea99442e1377d9a1982cb4c69e01c359a8706528ff","timestamp":"0x12d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x113","hash":"0x2abfc0f55324c7f10f9f3a850801b57a80df4c464d2aa333609ae65ddf1091e2","timestamp":"0x12e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x114","hash":"0x5ef4f8451044d471fbf2fac7de06df0f1dc048b2bf9641d8336281467107f792","timestamp":"0x12f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x115","hash":"0xd584903af6d432258ea49d0ad26c669adc64818e1b3433143e7f031d5eda570b","timestamp":"0x130","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x116","hash":"0x9d81c50d24500aaa0f043dac8bc2f1d76b504772b9c01fe70ec4c51a009928a6","timestamp":"0x131","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x117","hash":"0x802b4f3fa478da6fe8316157d5f413a4b8a0861bea4ff7b1dddfef8cd1a40af7","timestamp":"0x132","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x118","hash":"0x8883d52946399f9eb4f99a99fe0c00fa9f7e6f988696d56ae9514a3ab8422cda","timestamp":"0x133","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x119","hash":"0x5960cd17b25b13d83a59774c3e47520361c1bf5bf53d0ee60fc681b6e73fe804","timestamp":"0x134","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11a","hash":"0x2ce28e077a298c38b3ee9b4c06705f741a6f790a0b558583a6c7dd95dade8d35","timestamp":"0x135","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11b","hash":"0x31900f68fee58f50a3e628efdb99cdf802df640b46869ee44049529954e0bf9b","timestamp":"0x136","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11c","hash":"0xc0e285598b9349d55050bf0a0c0f880c4a4a18f2ddff5e2c4e86ed12964ca47a","timestamp":"0x137","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11d","hash":"0xeaca05f0bf9e264b33510a7ec91f91ae45a106314716732a74017da1e5a8ea42","timestamp":"0x138","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11e","hash":"0xfe7d95242edc3af0e7b667fad8bdc0e947281ad80601cb097a391061266c3ede","timestamp":"0x139","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11f","hash":"0x8335cc0750f356efc4192dc271fcb03b51f77a5693fa58526bc8f56db74c8434","timestamp":"0x13a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x120","hash":"0x0b218cd8743746daabef28ba995f3359d1e19e32993c1c7b07b68bea1ca86d0c","timestamp":"0x13b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x121","hash":"0x0ba7853e15dcd6d12f725b20ff57886c8a3f086e9f4291028362df6d6815eaa3","timestamp":"0x13c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x122","hash":"0x80c994244703b88ab5a8d1234457ca1cd4c28ed7a277bd40db599d81683ba6ab","timestamp":"0x13d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x123","hash":"0xe65fd4b43004b26c37f715f7cae8ce51a4efa4505079fbda0d10cbfcb64a9a4f","timestamp":"0x13e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x124","hash":"0x83e265a6c123e5653f30a6dc8d84d8c9fcbfda84158cfbe5c3b57912ffdaae73","timestamp":"0x13f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x125","hash":"0x1c30bad6048b5eae6df6eda4975fd3c1968660c4acd3854df70e21dc4ba71286","timestamp":"0x140","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x126","hash":"0xf5cc51c85c064189bb49401ebfc0a4fe27ef7558a05a19b61dd0556c7b8f0f83","timestamp":"0x141","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x127","hash":"0x25212b3be4bf5b6c958eabcc49a974fca3a3180e11e0b36caa0a4384a4ccae95","timestamp":"0x142","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x128","hash":"0xbbb74d69d0e5e473122f2481989afb028f63b538b86a965f5339211433f1a722","timestamp":"0x143","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x129","hash":"0x3986365a3c3c5f4757b0b9f027778463fcbc8ce4553e7f34ad7caec5b3b0ab01","timestamp":"0x144","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12a","hash":"0xe6ed11b94a735f4170ac916384c96972cc47020e277129a3ed442215a05dcdc4","timestamp":"0x145","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12b","hash":"0xd0bc63b108a3886c73231e0fd777450d6df2fabae0c226167d512fbe5e8f1dc0","timestamp":"0x146","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12c","hash":"0x0b5473823f27eb11b22d3a780a9d481f9a8a9abeff38a805243192ac8770eb08","timestamp":"0x147","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12d","hash":"0xea9a2e690ee6bf8836727b7310da6940cd9fc8584ff451ddcec55ab0f1918871","timestamp":"0x148","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12e","hash":"0xe2dbe0a2de836dead48344f653333184d519149f093917f127cf08957b1eb4cc","timestamp":"0x149","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12f","hash":"0x9b48a0d4f5d7afc5345e9f708e026af64926849b210ee487728055da5bd13503","timestamp":"0x14a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]}]} diff --git a/tests/eth_multicallV1/multicall-block-num-order-38020.io b/tests/eth_multicallV1/multicall-block-num-order-38020.io new file mode 100644 index 000000000..d8d0d9b80 --- /dev/null +++ b/tests/eth_multicallV1/multicall-block-num-order-38020.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xc"},"calls":[{"from":"0xc100000000000000000000000000000000000000","input":"0x4360005260206000f3"}]},{"blockOverrides":{"number":"0xb"},"calls":[{"from":"0xc000000000000000000000000000000000000000","input":"0x4360005260206000f3"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"block numbers must be in order"}} diff --git a/tests/eth_multicallV1/multicall-block-override-reflected-in-contract-simple.io b/tests/eth_multicallV1/multicall-block-override-reflected-in-contract-simple.io new file mode 100644 index 000000000..efc047d13 --- /dev/null +++ b/tests/eth_multicallV1/multicall-block-override-reflected-in-contract-simple.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa","time":"0x64"}},{"blockOverrides":{"number":"0x14","time":"0x65"}},{"blockOverrides":{"number":"0x15","time":"0xc8"}}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x14e26461892c9ee4e59b799e850482a7e8f8669ad5d0e99beb6265a49ab36e7f","timestamp":"0x64","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x14","hash":"0x78a71d5ebd99dca095424e1648f133bef0657f70ca340975451ccc1a1cab3007","timestamp":"0x65","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x15","hash":"0x5aa75ea289dff8bee88e400ed192948f52f3f1c9b3e3b1eb7432f72467b82663","timestamp":"0xc8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]}]} diff --git a/tests/eth_multicallV1/multicall-block-override-reflected-in-contract.io b/tests/eth_multicallV1/multicall-block-override-reflected-in-contract.io new file mode 100644 index 000000000..11045e392 --- /dev/null +++ b/tests/eth_multicallV1/multicall-block-override-reflected-in-contract.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa","time":"0x64","gasLimit":"0x2e630","feeRecipient":"0xc000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000012","baseFeePerGas":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x14","time":"0xc8","gasLimit":"0x2e631","feeRecipient":"0xc100000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","baseFeePerGas":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x15","time":"0x12c","gasLimit":"0x2e632","feeRecipient":"0xc200000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","baseFeePerGas":"0x1e"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0xee9f71ade67fdbb769832cfeb88f1051a9ac9679e3bde337d963fb700fa639ac","timestamp":"0x64","gasLimit":"0x2e630","gasUsed":"0x57bc","feeRecipient":"0xc000000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000012","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000539000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000002e630000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000293e6000000000000000000000000000000000000000000000000000000000000000040216dde23f0d4bc307cec4522dd13917453223832a495f7df029a6842e595bd","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x14","hash":"0xddde3f24465e2ab6bceff78eca0570ebe4c5a9c7b5be20fe025c1aa029cca905","timestamp":"0xc8","gasLimit":"0x2e631","gasUsed":"0x57bc","feeRecipient":"0xc100000000000000000000000000000000000000","baseFeePerGas":"0x14","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000539000000000000000000000000c1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234000000000000000000000000000000000000000000000000000000000002e631000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000293e70000000000000000000000000000000000000000000000000000000000000000ed82d8113b4dfb96a42b0328ae00ab5253900fbb2eeead5d142cc38eb9f46044","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x15","hash":"0xb1f3bb2f1d7e51c76ab9c3e69fc996b6651472dd2314415d8dc3613f67fd6d83","timestamp":"0x12c","gasLimit":"0x2e632","gasUsed":"0x57bc","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0x1e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000539000000000000000000000000c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234000000000000000000000000000000000000000000000000000000000002e6320000000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000293e80000000000000000000000000000000000000000000000000000000000000000ddde3f24465e2ab6bceff78eca0570ebe4c5a9c7b5be20fe025c1aa029cca905","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-block-timestamp-auto-increment.io b/tests/eth_multicallV1/multicall-block-timestamp-auto-increment.io new file mode 100644 index 000000000..6fe4a5338 --- /dev/null +++ b/tests/eth_multicallV1/multicall-block-timestamp-auto-increment.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xb"}},{"blockOverrides":{}},{"blockOverrides":{"time":"0xc"}},{"blockOverrides":{}}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"timestamps must be in order"}} diff --git a/tests/eth_multicallV1/multicall-block-timestamp-non-increment.io b/tests/eth_multicallV1/multicall-block-timestamp-non-increment.io new file mode 100644 index 000000000..4971a7090 --- /dev/null +++ b/tests/eth_multicallV1/multicall-block-timestamp-non-increment.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xc"}},{"blockOverrides":{"time":"0xc"}}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"timestamps must be in order"}} diff --git a/tests/eth_multicallV1/multicall-block-timestamp-order-38021.io b/tests/eth_multicallV1/multicall-block-timestamp-order-38021.io new file mode 100644 index 000000000..97406580c --- /dev/null +++ b/tests/eth_multicallV1/multicall-block-timestamp-order-38021.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xc"}},{"blockOverrides":{"time":"0xb"}}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"timestamps must be in order"}} diff --git a/tests/eth_multicallV1/multicall-block-timestamps-incrementing.io b/tests/eth_multicallV1/multicall-block-timestamps-incrementing.io new file mode 100644 index 000000000..88440c4d9 --- /dev/null +++ b/tests/eth_multicallV1/multicall-block-timestamps-incrementing.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xb"}},{"blockOverrides":{"time":"0xc"}}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"timestamps must be in order"}} diff --git a/tests/eth_multicallV1/multicall-blockhash-complex.io b/tests/eth_multicallV1/multicall-blockhash-complex.io new file mode 100644 index 000000000..94f2667e6 --- /dev/null +++ b/tests/eth_multicallV1/multicall-blockhash-complex.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"}]},{"blockOverrides":{"number":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e000000000000000000000000000000000000000000000000000000000000000a"}]},{"blockOverrides":{"number":"0x1e"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e000000000000000000000000000000000000000000000000000000000000001d"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0xb9d30e9e963937d2cc63ff8738cf6758bd87b3ff7793a8e0b51cf651fef107fb","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2","logs":[],"gasUsed":"0x552c","status":"0x1"}]},{"number":"0x14","hash":"0x2a3d2acd8f48b9ddbf1eb5097d36f98a8b99998a1b85521f2a69b12a88871aa5","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0xb9d30e9e963937d2cc63ff8738cf6758bd87b3ff7793a8e0b51cf651fef107fb","logs":[],"gasUsed":"0x552c","status":"0x1"}]},{"number":"0x1e","hash":"0xff2a5abd442b5d8121e524616f2599aab7ef2c73cba5daba4f7181f96aeeffb3","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0xcd3d71f2a0f75b2e21ab038f9b1cc2a1960fae4c0ce1010cef667aeaf981ca51","logs":[],"gasUsed":"0x552c","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-blockhash-simple.io b/tests/eth_multicallV1/multicall-blockhash-simple.io new file mode 100644 index 000000000..94808c441 --- /dev/null +++ b/tests/eth_multicallV1/multicall-blockhash-simple.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xd79a45d2299074d9555b80ca4c7ea39f565defe1df77ff6f4ae94b5f0c8f2d4c","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2","logs":[],"gasUsed":"0x552c","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-blockhash-start-before-head.io b/tests/eth_multicallV1/multicall-blockhash-start-before-head.io new file mode 100644 index 000000000..764b9d833 --- /dev/null +++ b/tests/eth_multicallV1/multicall-blockhash-start-before-head.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000002"}]},{"blockOverrides":{"number":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000013"}]}]},"0x1"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x39793894c251644ceab60489f39f81addc4197561bb13a4080e27350de1b7237","timestamp":"0xb","gasLimit":"0x4c4b40","gasUsed":"0xaa58","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2db08786","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2","logs":[],"gasUsed":"0x552c","status":"0x1"},{"returnData":"0x0b72e4e30f06e8d0ccd1920adfb3c7a70a887aa7195065b695eb11246eed9051","logs":[],"gasUsed":"0x552c","status":"0x1"}]},{"number":"0x14","hash":"0xf4db9d4e4725517994cb16d3ac0a46d7cd9493d30e95e5eb46685d0046903f77","timestamp":"0xc","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x27fa7696","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x32d1420f0b3d9e230a3cd81666d9ee616d2a8b63537da8fef4a1e691908a2fba","logs":[],"gasUsed":"0x552c","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-check-invalid-nonce.io b/tests/eth_multicallV1/multicall-check-invalid-nonce.io new file mode 100644 index 000000000..cdaf670b3 --- /dev/null +++ b/tests/eth_multicallV1/multicall-check-invalid-nonce.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4e20"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x1"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x0"}]}],"validation":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x4aca804390f3931f667f0ae572fb204881c5fba4ebd1ea735b6ccbfd38475d19","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5","hash":"0x6b1d7313f0b0078c737064915bf75ac42e796cfedd6a9d88462df43529eeb098","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xa410","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xc100000000000000000000000000000000000000, tx: 1 state: 0 (supplied gas 4979000)","code":-38011}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-check-that-balance-is-there-after-new-block.io b/tests/eth_multicallV1/multicall-check-that-balance-is-there-after-new-block.io new file mode 100644 index 000000000..b12f3147e --- /dev/null +++ b/tests/eth_multicallV1/multicall-check-that-balance-is-there-after-new-block.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x2710"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xbaad63955be94a5ab426d8574afda7c295e68d3bf5b3f1b4b6294a9eae963862","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x10732","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000002710","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]},{"number":"0x5","hash":"0xa0a9cb7e4e1b6ccb5bf647ed2f490c78363b737ff41a7046729734cf98ead2e0","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x10732","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000002328","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x00000000000000000000000000000000000000000000000000000000000003e8","logs":[],"gasUsed":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-check-that-nonce-increases.io b/tests/eth_multicallV1/multicall-check-that-nonce-increases.io new file mode 100644 index 000000000..97f8f5014 --- /dev/null +++ b/tests/eth_multicallV1/multicall-check-that-nonce-increases.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4e20"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x1"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x2"}]}],"validation":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x4aca804390f3931f667f0ae572fb204881c5fba4ebd1ea735b6ccbfd38475d19","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5","hash":"0x1defc2e13eea98d99c93d2fe572a97a30517274cb3edf2d2c40f1dee6792e03d","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xc100000000000000000000000000000000000000, tx: 1 state: 0 (supplied gas 4979000)","code":-38011}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xc100000000000000000000000000000000000000, tx: 2 state: 0 (supplied gas 4979000)","code":-38011}}]}]} diff --git a/tests/eth_multicallV1/multicall-contract-calls-itself.io b/tests/eth_multicallV1/multicall-contract-calls-itself.io new file mode 100644 index 000000000..42a2acbda --- /dev/null +++ b/tests/eth_multicallV1/multicall-contract-calls-itself.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xfe3411689e0e084eb010c006a946d5930c275e091d33c4bf8efa6165d4ef45c0","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000002310a91d00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000004bf8f600000000000000000000000000000000000000000000000000000000000000000279dbea83debc0ad7c849d4e0f0b4dd12f5d1e44caa000eb81906226361c33e","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-empty-calls-and-overrides-multicall.io b/tests/eth_multicallV1/multicall-empty-calls-and-overrides-multicall.io new file mode 100644 index 000000000..e737f96e0 --- /dev/null +++ b/tests/eth_multicallV1/multicall-empty-calls-and-overrides-multicall.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{},"calls":[{}]},{"stateOverrides":{},"calls":[{}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"contract creation without any data provided"}} diff --git a/tests/eth_multicallV1/multicall-empty-multicall.io b/tests/eth_multicallV1/multicall-empty-multicall.io new file mode 100644 index 000000000..98e61d663 --- /dev/null +++ b/tests/eth_multicallV1/multicall-empty-multicall.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32603,"message":"method handler crashed"}} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-by-default.io b/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-by-default.io new file mode 100644 index 000000000..cf5ee0c7b --- /dev/null +++ b/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-by-default.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-on-revert.io b/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-on-revert.io new file mode 100644 index 000000000..5c15bd1ce --- /dev/null +++ b/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-on-revert.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xdc6bd2c667c2299bfb2f04bd9166c55982c54c054edd593a38a4a5e197d8ae22","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5355","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5355","status":"0x0","error":{"message":"execution reverted: Always reverting contract","code":-32015}}]}]} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-produce-logs.io b/tests/eth_multicallV1/multicall-eth-send-should-produce-logs.io new file mode 100644 index 000000000..68f450fe6 --- /dev/null +++ b/tests/eth_multicallV1/multicall-eth-send-should-produce-logs.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0xa4d41019e71335f8567e17746b708ddda8b975a9a61f909bd3df55f4866cc913","transactionIndex":"0x0","blockHash":"0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-produce-more-logs-on-forward.io b/tests/eth_multicallV1/multicall-eth-send-should-produce-more-logs-on-forward.io new file mode 100644 index 000000000..37433a231 --- /dev/null +++ b/tests/eth_multicallV1/multicall-eth-send-should-produce-more-logs-on-forward.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x4b64e4920000000000000000000000000000000000000000000000000000000000000100"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xb74dfb0c517970bc1378d8baed93ef35b4aec7fa11b15be250003cee97fc78e4","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xdad2","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0x7763dfb708d124419ec96043afa1bfff0d2ee7ecd8b92298a7672c3be1a9e7bb","transactionIndex":"0x0","blockHash":"0xb74dfb0c517970bc1378d8baed93ef35b4aec7fa11b15be250003cee97fc78e4","logIndex":"0x0","removed":false},{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c100000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000100"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0x7763dfb708d124419ec96043afa1bfff0d2ee7ecd8b92298a7672c3be1a9e7bb","transactionIndex":"0x0","blockHash":"0xb74dfb0c517970bc1378d8baed93ef35b4aec7fa11b15be250003cee97fc78e4","logIndex":"0x1","removed":false}],"gasUsed":"0xdad2","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-produce-no-logs-on-forward-revert.io b/tests/eth_multicallV1/multicall-eth-send-should-produce-no-logs-on-forward-revert.io new file mode 100644 index 000000000..89e901628 --- /dev/null +++ b/tests/eth_multicallV1/multicall-eth-send-should-produce-no-logs-on-forward-revert.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x4b64e492c200000000000000000000000000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x4aff1bcf79489aa882ae35149f6848c5a428c340ed332326b1353b0d480f4edf","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5423","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5423","status":"0x0","error":{"message":"execution reverted","code":-32000}}]}]} diff --git a/tests/eth_multicallV1/multicall-fee-recipient-receiving-funds.io b/tests/eth_multicallV1/multicall-fee-recipient-receiving-funds.io new file mode 100644 index 000000000..ad20c6397 --- /dev/null +++ b/tests/eth_multicallV1/multicall-fee-recipient-receiving-funds.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0xa","maxPriorityFeePerGas":"0xa","nonce":"0x0","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x1","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x2","input":"0xf8b2cb4f000000000000000000000000c200000000000000000000000000000000000000"}]}],"traceTransfers":true,"validation":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x64f7229ff555dad30a78123598b12000a398784ac78b2185d7eb0aac1a4c95f6","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 2000000 want 50000000 (supplied gas 5000000)","code":-38014}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xC000000000000000000000000000000000000000, tx: 1 state: 0 (supplied gas 5000000)","code":-38011}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xC000000000000000000000000000000000000000, tx: 2 state: 0 (supplied gas 5000000)","code":-38011}}]}]} diff --git a/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014-with-validation.io b/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014-with-validation.io new file mode 100644 index 000000000..86fa9ad47 --- /dev/null +++ b/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014-with-validation.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"validation":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x5adbd4e5255639460612b1f5b159c0b0b2de8f2e42c75029f2e8bcfef4df7dae","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014.io b/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014.io new file mode 100644 index 000000000..43edce80e --- /dev/null +++ b/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x5adbd4e5255639460612b1f5b159c0b0b2de8f2e42c75029f2e8bcfef4df7dae","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-get-block-properties.io b/tests/eth_multicallV1/multicall-get-block-properties.io new file mode 100644 index 000000000..edc03683e --- /dev/null +++ b/tests/eth_multicallV1/multicall-get-block-properties.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xdee3915d29ae25345c31d222f311a5916e06e156348d9a5266b11ac50ccec305","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000002310a91d00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000004bf8f600000000000000000000000000000000000000000000000000000000000000000279dbea83debc0ad7c849d4e0f0b4dd12f5d1e44caa000eb81906226361c33e","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-instrict-gas-38013.io b/tests/eth_multicallV1/multicall-instrict-gas-38013.io new file mode 100644 index 000000000..8380ab230 --- /dev/null +++ b/tests/eth_multicallV1/multicall-instrict-gas-38013.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x0"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x6886c0051d68a0ceef0f81f8e8f7bc22316cfc512dc8ba769c89ed0bdb5b50ec","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: intrinsic gas too low: have 0, want 21000 (supplied gas 0)","code":-38013}}]}]} diff --git a/tests/eth_multicallV1/multicall-logs.io b/tests/eth_multicallV1/multicall-logs.io new file mode 100644 index 000000000..b7fb986f0 --- /dev/null +++ b/tests/eth_multicallV1/multicall-logs.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80600080a1600080f3"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x6057361d0000000000000000000000000000000000000000000000000000000000000005"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x1d11445cb1808d772b07e436d486de9756256b76dd7182961edcbf01d005b61e","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x55d4","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0xc200000000000000000000000000000000000000","topics":["0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],"data":"0x","blockNumber":"0x4","transactionHash":"0xc3962215e99421932435eddf7397e4f443e539c6a356548afed312f39d511048","transactionIndex":"0x0","blockHash":"0x1d11445cb1808d772b07e436d486de9756256b76dd7182961edcbf01d005b61e","logIndex":"0x0","removed":false}],"gasUsed":"0x55d4","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-long-block-distances.io b/tests/eth_multicallV1/multicall-long-block-distances.io new file mode 100644 index 000000000..80b4242d5 --- /dev/null +++ b/tests/eth_multicallV1/multicall-long-block-distances.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x64"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x65"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x3e8"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x2710"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x2711"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x186a0"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x030f9b312173c05a8f0072e4ff33c165feb94ea9444cd0c1d1957ee6bbaee880","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000002310a91d00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000004bf8f6000000000000000000000000000000000000000000000000000000000000000040216dde23f0d4bc307cec4522dd13917453223832a495f7df029a6842e595bd","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x64","hash":"0xf928a8f7f71be2361c77449bc8c9f7ea2a9366bf3ffa668e2f7d0e5b5b775b71","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000001eae93fa00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000ee9fede764b6bd959f993811ad4db78055aecf4c35be2a39431803ef5f1c850f","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x65","hash":"0x94f39c90e7dd5f99122227d697580dd7098725cab40f7e0cff59c9294c193f66","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000001ad8c17b00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000065000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000f928a8f7f71be2361c77449bc8c9f7ea2a9366bf3ffa668e2f7d0e5b5b775b71","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x3e8","hash":"0x3ab78d52af800b44f10881ff979ae352caa68c6ead8b676ef70a914ad937447a","timestamp":"0x22","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x177da94c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000177da94c00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b4000000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000c3ddb73aea432654d67c1c68d4e4d1d3707d871b1e6c6b8c3f18e4a4639b4b17","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x2710","hash":"0x42ffca1829f7c9c8ef5538e857bf235f28a810c0399eaeed93d7a19209583dd1","timestamp":"0x23","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x148df423","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000148df42300000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000002300000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000d74b5421e46a646d7763fddc26b11863fb782e7d1f9b0ad32d4ae8e0c3fa785d","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x2711","hash":"0xc9ed75229e904a7f9bd0e432e50070c1cfd3fedf76e21672b0b69460cb52fe97","timestamp":"0x24","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x11fc359f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000011fc359f00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000004bf8f6000000000000000000000000000000000000000000000000000000000000000042ffca1829f7c9c8ef5538e857bf235f28a810c0399eaeed93d7a19209583dd1","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x186a0","hash":"0x243c17e5330efd3f2a119083d099fda18bce2cf8679bce30e82437037b864cd9","timestamp":"0x25","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xfbcaeec","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000fbcaeec00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b4000000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000002500000000000000000000000000000000000000000000000000000000004bf8f600000000000000000000000000000000000000000000000000000000000000005d102fbab6a2ed32b326fc1cbfb4f74c6e39864c243cc442736b9e70ce3bca02","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-move-account-twice.io b/tests/eth_multicallV1/multicall-move-account-twice.io new file mode 100644 index 000000000..e48d3fa79 --- /dev/null +++ b/tests/eth_multicallV1/multicall-move-account-twice.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"},"0xc200000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc300000000000000000000000000000000000000":{"balance":"0xbb8"},"0xc400000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}}},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xbb8","MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0xc200000000000000000000000000000000000000":{"balance":"0xfa0","MovePrecompileToAddress":"0xc300000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc400000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc400000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c200000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc400000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c300000000000000000000000000000000000000"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0xC000000000000000000000000000000000000000 is not a precompile"}} diff --git a/tests/eth_multicallV1/multicall-move-ecrecover-and-call.io b/tests/eth_multicallV1/multicall-move-ecrecover-and-call.io new file mode 100644 index 000000000..607dc8dc0 --- /dev/null +++ b/tests/eth_multicallV1/multicall-move-ecrecover-and-call.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]},{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x383db180bae4dcfb4e6b07fdcbe50e607aa738e80a6a3d10f7987c4d182cc07e","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xc484","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","status":"0x1"}]},{"number":"0x5","hash":"0xa9ec41fe03ed982e340dd18eaa50f73711354775229dbc70acaba3e59821241b","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xc484","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-move-to-address-itself-reference-38022.io b/tests/eth_multicallV1/multicall-move-to-address-itself-reference-38022.io new file mode 100644 index 000000000..eb9e15347 --- /dev/null +++ b/tests/eth_multicallV1/multicall-move-to-address-itself-reference-38022.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x30d40"},"0xc100000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc100000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x1"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0xc100000000000000000000000000000000000000 is not a precompile"}} diff --git a/tests/eth_multicallV1/multicall-move-two-accounts-to-same-38023.io b/tests/eth_multicallV1/multicall-move-two-accounts-to-same-38023.io new file mode 100644 index 000000000..9c32a4eed --- /dev/null +++ b/tests/eth_multicallV1/multicall-move-two-accounts-to-same-38023.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0x0000000000000000000000000000000000000002":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"}}}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x5b17533dae2b90e26f77c833f1db070da4549c05eece301b5e1815f68a5597dc","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]}]} diff --git a/tests/eth_multicallV1/multicall-move-two-non-precompiles-accounts-to-same.io b/tests/eth_multicallV1/multicall-move-two-non-precompiles-accounts-to-same.io new file mode 100644 index 000000000..ce37765d9 --- /dev/null +++ b/tests/eth_multicallV1/multicall-move-two-non-precompiles-accounts-to-same.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0100000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0x0200000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"}}}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0x0100000000000000000000000000000000000000 is not a precompile"}} diff --git a/tests/eth_multicallV1/multicall-no-fields-call.io b/tests/eth_multicallV1/multicall-no-fields-call.io new file mode 100644 index 000000000..646d1abc9 --- /dev/null +++ b/tests/eth_multicallV1/multicall-no-fields-call.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"contract creation without any data provided"}} diff --git a/tests/eth_multicallV1/multicall-only-from-to-transaction.io b/tests/eth_multicallV1/multicall-only-from-to-transaction.io new file mode 100644 index 000000000..82c35902f --- /dev/null +++ b/tests/eth_multicallV1/multicall-only-from-to-transaction.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x55b990b53fc551c31ae6d95a9bd4b47174c92ef3eb036bd196756be47449ad15","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-only-from-transaction.io b/tests/eth_multicallV1/multicall-only-from-transaction.io new file mode 100644 index 000000000..af8de58cd --- /dev/null +++ b/tests/eth_multicallV1/multicall-only-from-transaction.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"contract creation without any data provided"}} diff --git a/tests/eth_multicallV1/multicall-override-address-twice-in-separate-BlockStateCalls.io b/tests/eth_multicallV1/multicall-override-address-twice-in-separate-BlockStateCalls.io new file mode 100644 index 000000000..f19bc1aa8 --- /dev/null +++ b/tests/eth_multicallV1/multicall-override-address-twice-in-separate-BlockStateCalls.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0xa4d41019e71335f8567e17746b708ddda8b975a9a61f909bd3df55f4866cc913","transactionIndex":"0x0","blockHash":"0xd395d1e0584af699115b81b2a63208789173e445fbf31b898ee064dcef32574d","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","status":"0x1"}]},{"number":"0x5","hash":"0xd395d1e0584af699115b81b2a63208789173e445fbf31b898ee064dcef32574d","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x5","transactionHash":"0x1707e15a48809e5281db4574825c0fac7e2fd5e8ea7b934d1c48ac45a59d9145","transactionIndex":"0x0","blockHash":"0xd395d1e0584af699115b81b2a63208789173e445fbf31b898ee064dcef32574d","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-address-twice.io b/tests/eth_multicallV1/multicall-override-address-twice.io new file mode 100644 index 000000000..7a7f9b138 --- /dev/null +++ b/tests/eth_multicallV1/multicall-override-address-twice.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x43ff27727cb2206bc419eb28ad381374491b86443879ce85271475aaaf8adb9d","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-override-all-in-BlockStateCalls.io b/tests/eth_multicallV1/multicall-override-all-in-BlockStateCalls.io new file mode 100644 index 000000000..af25d451d --- /dev/null +++ b/tests/eth_multicallV1/multicall-override-all-in-BlockStateCalls.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x3e9","time":"0x3eb","gasLimit":"0x3ec","feeRecipient":"0xc200000000000000000000000000000000000000","prevRandao":"0xc300000000000000000000000000000000000000000000000000000000000000","baseFeePerGas":"0x3ef"}}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x3e9","hash":"0xdc64fbaa7105227bed07d91fe3dc2f12c43a4c3d47fa8b98d1fbfa9961c27a8a","timestamp":"0x3eb","gasLimit":"0x3ec","gasUsed":"0x0","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0x3ef","prevRandao":"0xc300000000000000000000000000000000000000000000000000000000000000","calls":[]}]} diff --git a/tests/eth_multicallV1/multicall-override-block-num.io b/tests/eth_multicallV1/multicall-override-block-num.io new file mode 100644 index 000000000..29c8e810c --- /dev/null +++ b/tests/eth_multicallV1/multicall-override-block-num.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xb"},"calls":[{"from":"0xc000000000000000000000000000000000000000","input":"0x4360005260206000f3"}]},{"blockOverrides":{"number":"0xc"},"calls":[{"from":"0xc100000000000000000000000000000000000000","input":"0x4360005260206000f3"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0xb","hash":"0xd092c900861c2de86ee8ae499ec1b86b332cd209841b1a1c16c8482b09493f77","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xe893","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000b","logs":[],"gasUsed":"0xe893","status":"0x1"}]},{"number":"0xc","hash":"0x31fbc62d3c161b7bc0405dae2641ca4147bcf62ed7cfcb249f706d166b152f7e","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xe893","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000c","logs":[],"gasUsed":"0xe893","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-ecrecover.io b/tests/eth_multicallV1/multicall-override-ecrecover.io new file mode 100644 index 000000000..b19a57877 --- /dev/null +++ b/tests/eth_multicallV1/multicall-override-ecrecover.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"code":"0x608060405234801561001057600080fd5b506004361061003a5760003560e01c806305fdbc81146101ee578063c00692601461020a5761003b565b5b600036606060008060008086868101906100559190610462565b93509350935093506000806000868686866040516020016100799493929190610520565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101bb576000806212345673ffffffffffffffffffffffffffffffffffffffff166127108b8b6040516101249291906105ad565b60006040518083038160008787f1925050503d8060008114610162576040519150601f19603f3d011682016040523d82523d6000602084013e610167565b606091505b5091509150816101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a39061066f565b60405180910390fd5b809750505050505050506101e3565b806040516020016101cc9190610709565b604051602081830303815290604052955050505050505b915050805190602001f35b6102086004803603810190610203919061093a565b610226565b005b610224600480360381019061021f9190610983565b6102ec565b005b60005b81518110156102e8576102d5828281518110610248576102476109fe565b5b602002602001015160000151838381518110610267576102666109fe565b5b602002602001015160200151848481518110610286576102856109fe565b5b6020026020010151604001518585815181106102a5576102a46109fe565b5b6020026020010151606001518686815181106102c4576102c36109fe565b5b6020026020010151608001516102ec565b80806102e090610a66565b915050610229565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610afa565b60405180910390fd5b80600080878787876040516020016103769493929190610520565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610406816103f3565b811461041157600080fd5b50565b600081359050610423816103fd565b92915050565b600060ff82169050919050565b61043f81610429565b811461044a57600080fd5b50565b60008135905061045c81610436565b92915050565b6000806000806080858703121561047c5761047b6103e9565b5b600061048a87828801610414565b945050602061049b8782880161044d565b93505060406104ac87828801610414565b92505060606104bd87828801610414565b91505092959194509250565b6000819050919050565b6104e46104df826103f3565b6104c9565b82525050565b60008160f81b9050919050565b6000610502826104ea565b9050919050565b61051a61051582610429565b6104f7565b82525050565b600061052c82876104d3565b60208201915061053c8286610509565b60018201915061054c82856104d3565b60208201915061055c82846104d3565b60208201915081905095945050505050565b600081905092915050565b82818337600083830152505050565b6000610594838561056e565b93506105a1838584610579565b82840190509392505050565b60006105ba828486610588565b91508190509392505050565b600082825260208201905092915050565b7f6661696c656420746f2063616c6c206d6f7665642065637265636f766572206160008201527f742061646472657373203078303030303030303030303030303030303030303060208201527f3030303030303030303030303030313233343536000000000000000000000000604082015250565b60006106596054836105c6565b9150610664826105d7565b606082019050919050565b600060208201905081810360008301526106888161064c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106ba8261068f565b9050919050565b60008160601b9050919050565b60006106d9826106c1565b9050919050565b60006106eb826106ce565b9050919050565b6107036106fe826106af565b6106e0565b82525050565b600061071582846106f2565b60148201915081905092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61077282610729565b810181811067ffffffffffffffff821117156107915761079061073a565b5b80604052505050565b60006107a46103df565b90506107b08282610769565b919050565b600067ffffffffffffffff8211156107d0576107cf61073a565b5b602082029050602081019050919050565b600080fd5b600080fd5b6107f4816106af565b81146107ff57600080fd5b50565b600081359050610811816107eb565b92915050565b600060a0828403121561082d5761082c6107e6565b5b61083760a061079a565b9050600061084784828501610414565b600083015250602061085b8482850161044d565b602083015250604061086f84828501610414565b604083015250606061088384828501610414565b606083015250608061089784828501610802565b60808301525092915050565b60006108b66108b1846107b5565b61079a565b90508083825260208201905060a084028301858111156108d9576108d86107e1565b5b835b8181101561090257806108ee8882610817565b84526020840193505060a0810190506108db565b5050509392505050565b600082601f83011261092157610920610724565b5b81356109318482602086016108a3565b91505092915050565b6000602082840312156109505761094f6103e9565b5b600082013567ffffffffffffffff81111561096e5761096d6103ee565b5b61097a8482850161090c565b91505092915050565b600080600080600060a0868803121561099f5761099e6103e9565b5b60006109ad88828901610414565b95505060206109be8882890161044d565b94505060406109cf88828901610414565b93505060606109e088828901610414565b92505060806109f188828901610802565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610a7182610a5c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aa357610aa2610a2d565b5b600182019050919050565b7f72657475726e20616464726573732063616e6e6f742062652030783000000000600082015250565b6000610ae4601c836105c6565b9150610aef82610aae565b602082019050919050565b60006020820190508181036000830152610b1381610ad7565b905091905056fea2646970667358221220154f5b68ccfa5be744e7245765a3530dac4035052284a68b5dded1945b45075e64736f6c63430008120033","MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"},"0xc100000000000000000000000000000000000000":{"balance":"0x30d40"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0xc00692604554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554490000000000000000000000000000000000000000000000000000000000"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x9a19680b1e4b0307f4199ecdafe36c9c328d3c331e682e66c52a5694cee5f20b","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x2dbc4","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xb4fe","status":"0x1"},{"returnData":"0xd8da6bf26964af9d7eed9e03e53415d37aa96045","logs":[],"gasUsed":"0x65f8","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x8052","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x7bf8","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-identity.io b/tests/eth_multicallV1/multicall-override-identity.io new file mode 100644 index 000000000..229bf486b --- /dev/null +++ b/tests/eth_multicallV1/multicall-override-identity.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000004":{"code":"0x","MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1234"},{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000004","input":"0x1234"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2ea8f298068a0cda48e553108a90ad14cdba70fd8d6e8848e77a1c3e3a1c40e5","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa462","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x1234","logs":[],"gasUsed":"0x523a","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5228","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-sha256.io b/tests/eth_multicallV1/multicall-override-sha256.io new file mode 100644 index 000000000..0850ed24d --- /dev/null +++ b/tests/eth_multicallV1/multicall-override-sha256.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000002":{"code":"0x","MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1234"},{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000002","input":"0x1234"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xe65f0d9c59ae2bb2eab70894d76633e8c49f8cf4320c8080a98b4d0652cc1089","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa498","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x3a103a4e5729ad68c02a678ae39accfbc0ae208096437401b7ceab63cca0622f","logs":[],"gasUsed":"0x5270","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5228","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-storage-slots.io b/tests/eth_multicallV1/multicall-override-storage-slots.io new file mode 100644 index 000000000..bac84e34b --- /dev/null +++ b/tests/eth_multicallV1/multicall-override-storage-slots.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ff4c916146100515780633033413b1461008157806344e12f871461009f5780637b8d56e3146100bd575b600080fd5b61006b600480360381019061006691906101f6565b6100d9565b6040516100789190610232565b60405180910390f35b61008961013f565b6040516100969190610232565b60405180910390f35b6100a7610145565b6040516100b49190610232565b60405180910390f35b6100d760048036038101906100d2919061024d565b61014b565b005b60006002821061011e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610115906102ea565b60405180910390fd5b6000820361012c5760005490505b6001820361013a5760015490505b919050565b60015481565b60005481565b6002821061018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610185906102ea565b60405180910390fd5b600082036101a257806000819055506101b7565b600182036101b657806001819055506101b7565b5b5050565b600080fd5b6000819050919050565b6101d3816101c0565b81146101de57600080fd5b50565b6000813590506101f0816101ca565b92915050565b60006020828403121561020c5761020b6101bb565b5b600061021a848285016101e1565b91505092915050565b61022c816101c0565b82525050565b60006020820190506102476000830184610223565b92915050565b60008060408385031215610264576102636101bb565b5b6000610272858286016101e1565b9250506020610283858286016101e1565b9150509250929050565b600082825260208201905092915050565b7f746f6f2062696720736c6f740000000000000000000000000000000000000000600082015250565b60006102d4600c8361028d565b91506102df8261029e565b602082019050919050565b60006020820190508181036000830152610303816102c7565b905091905056fea2646970667358221220ceea194bb66b5b9f52c83e5bf5a1989255de8cb7157838eff98f970c3a04cb3064736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"stateDiff":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"state":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x6cc3d377a1192a6a294b212426a97dbe7f101d410c2a9f43b5b1f275039a2c46","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x213f5","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xac5e","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xac81","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000001","logs":[],"gasUsed":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000002","logs":[],"gasUsed":"0x5d91","status":"0x1"}]},{"number":"0x5","hash":"0x8fe0ee7c5d7aae7e442a3a2340d1f7c52beea4c96062c74578e479b9ddeba69e","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xbb16","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x1200000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000002","logs":[],"gasUsed":"0x5d91","status":"0x1"}]},{"number":"0x6","hash":"0x629a0a584cf6d9ca6e8bc67d353764e83d9cdd2a5a8dc7af690f4330b9703266","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0xbb16","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x1200000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d91","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-precompile-is-sending-transaction.io b/tests/eth_multicallV1/multicall-precompile-is-sending-transaction.io new file mode 100644 index 000000000..785df788d --- /dev/null +++ b/tests/eth_multicallV1/multicall-precompile-is-sending-transaction.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0x0000000000000000000000000000000000000004","to":"0x0000000000000000000000000000000000000002","input":"0x1234"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xc53f1e8d6f15a1570dceb93028c7b370ebc04dbdd0c0ae712eeb94e65971a035","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5270","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x3a103a4e5729ad68c02a678ae39accfbc0ae208096437401b7ceab63cca0622f","logs":[],"gasUsed":"0x5270","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-run-gas-spending.io b/tests/eth_multicallV1/multicall-run-gas-spending.io new file mode 100644 index 000000000..2867e0751 --- /dev/null +++ b/tests/eth_multicallV1/multicall-run-gas-spending.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"gasLimit":"0x16e360"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063815b8ab414610030575b600080fd5b61004a600480360381019061004591906100b6565b61004c565b005b60005a90505b60011561007657815a826100669190610112565b106100715750610078565b610052565b505b50565b600080fd5b6000819050919050565b61009381610080565b811461009e57600080fd5b50565b6000813590506100b08161008a565b92915050565b6000602082840312156100cc576100cb61007b565b5b60006100da848285016100a1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011d82610080565b915061012883610080565b92508282039050818111156101405761013f6100e3565b5b9291505056fea2646970667358221220a659ba4db729a6ee4db02fcc5c1118db53246b0e5e686534fc9add6f2e93faec64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xd046a4ce3444604dc22e1653ce7ebf3597458ba14013c156e3257dc41eef4035","timestamp":"0x1f","gasLimit":"0x16e360","gasUsed":"0x5545","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5545","status":"0x1"}]},{"number":"0x5","hash":"0xbb5ad3057c01af29db968889fbd2dcd9072e19b055634c3b78e5d951bd269564","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xfed84","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5545","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xf983f","status":"0x1"}]},{"number":"0x6","hash":"0x6027b447e29d6241dcffdb56569e258fb4189d2f7e995ba20597b8dafee48f2a","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0xfed84","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5545","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xf983f","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-run-out-of-gas-in-block-38015.io b/tests/eth_multicallV1/multicall-run-out-of-gas-in-block-38015.io new file mode 100644 index 000000000..2ae095431 --- /dev/null +++ b/tests/eth_multicallV1/multicall-run-out-of-gas-in-block-38015.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"gasLimit":"0x16e360"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063815b8ab414610030575b600080fd5b61004a600480360381019061004591906100b6565b61004c565b005b60005a90505b60011561007657815a826100669190610112565b106100715750610078565b610052565b505b50565b600080fd5b6000819050919050565b61009381610080565b811461009e57600080fd5b50565b6000813590506100b08161008a565b92915050565b6000602082840312156100cc576100cb61007b565b5b60006100da848285016100a1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011d82610080565b915061012883610080565b92508282039050818111156101405761013f6100e3565b5b9291505056fea2646970667358221220a659ba4db729a6ee4db02fcc5c1118db53246b0e5e686534fc9add6f2e93faec64736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x209f6a6c2b7d7ffae78004072e4fe1591e4319335e4fdc7dbaa3bceee7735dd8","timestamp":"0x1f","gasLimit":"0x16e360","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5","hash":"0xa8d37e1e654e70de51d6096fbcef3b6671560e35d3c11d27e0b02379c3171972","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x1f307e","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xf983f","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xf983f","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-self-destructing-state-override.io b/tests/eth_multicallV1/multicall-self-destructing-state-override.io new file mode 100644 index 000000000..2ddaab7a9 --- /dev/null +++ b/tests/eth_multicallV1/multicall-self-destructing-state-override.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033"},"0xc300000000000000000000000000000000000000":{"code":"0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063dce4a4471461003a575b600080fd5b610054600480360381019061004f91906100f8565b61006a565b60405161006191906101b5565b60405180910390f35b6060813b6040519150601f19601f602083010116820160405280825280600060208401853c50919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100c58261009a565b9050919050565b6100d5816100ba565b81146100e057600080fd5b50565b6000813590506100f2816100cc565b92915050565b60006020828403121561010e5761010d610095565b5b600061011c848285016100e3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561015f578082015181840152602081019050610144565b60008484015250505050565b6000601f19601f8301169050919050565b600061018782610125565b6101918185610130565b93506101a1818560208601610141565b6101aa8161016b565b840191505092915050565b600060208201905081810360008301526101cf818461017c565b90509291505056fea26469706673582212206a5f0cd9f230619fa520fc4b9d4b518643258cad412f2fa33945ce528b4b895164736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x83197ef0"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]},{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]}]},"0x1"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x2","hash":"0xc7ea9a7ea61f6ba369d2191620966564552be4ea26684abc43b18874f0bae745","timestamp":"0xb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2db08786","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3","hash":"0x95292967d2af65bfb3e760c6e3ef8b2e2456e03e411c68ce6cea9c9bd1d60332","timestamp":"0xc","gasLimit":"0x4c4b40","gasUsed":"0x62c0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x27fa7696","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000856080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x62c0","status":"0x1"}]},{"number":"0x4","hash":"0xf341c4254d214d8265c8241e6616f8a6c78cf2107ca6b268d82686f1f739bb39","timestamp":"0xd","gasLimit":"0x4c4b40","gasUsed":"0x664a","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x22fb27c4","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x664a","status":"0x1"}]},{"number":"0x5","hash":"0x19fa5138b429fa822309dcbcff2f8f2a9578aff0bc7cf464333f99d7c4a18dc9","timestamp":"0xe","gasLimit":"0x4c4b40","gasUsed":"0x611c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1e9bc2cc","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x611c","status":"0x1"}]},{"number":"0x6","hash":"0x785304f1c46b949ff68640f2fe075b63daf38cdf2cd7ccc7aa14ad2418e83de7","timestamp":"0xf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ac84a73","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7","hash":"0xbc895f4d9ceb01e8a5eabcf8be05a2761ced964c382ce0e7f661c09fd1d8671d","timestamp":"0x10","gasLimit":"0x4c4b40","gasUsed":"0x62c0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x176f4125","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000856080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x62c0","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-self-destructive-contract-produces-logs.io b/tests/eth_multicallV1/multicall-self-destructive-contract-produces-logs.io new file mode 100644 index 000000000..4b1a6afb9 --- /dev/null +++ b/tests/eth_multicallV1/multicall-self-destructive-contract-produces-logs.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033","balance":"0x1e8480"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x83197ef0"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x9d4b4addf949f567ed0545dc5319d08bffc1c401d83b7ca13a0736dc6a6c6c48","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x664a","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c200000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000001e8480","blockNumber":"0x4","transactionHash":"0x2559c6062f8792b77468a0b65032a013f7fc82945665d9adffdf662765aca1a1","transactionIndex":"0x0","blockHash":"0x9d4b4addf949f567ed0545dc5319d08bffc1c401d83b7ca13a0736dc6a6c6c48","logIndex":"0x0","removed":false}],"gasUsed":"0x664a","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-set-read-storage.io b/tests/eth_multicallV1/multicall-set-read-storage.io new file mode 100644 index 000000000..d59e1eee8 --- /dev/null +++ b/tests/eth_multicallV1/multicall-set-read-storage.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea2646970667358221220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x6057361d0000000000000000000000000000000000000000000000000000000000000005"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x2e64cec1"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x37ea5223240b5aea5637fe45e04d33693c1385ed0dd33df756940de0ea4d5d9b","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x10683","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xaacc","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000005","logs":[],"gasUsed":"0x5bb7","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-no-funds-with-balance-querying.io b/tests/eth_multicallV1/multicall-simple-no-funds-with-balance-querying.io new file mode 100644 index 000000000..7339dca49 --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple-no-funds-with-balance-querying.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2bbbfa9aaeb3399afac81910fce3e4873c215a77da0f802199f18388124cfbd7","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x21f7e","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 4953622)","code":-38014}},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 4907244)","code":-38014}},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f77","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-no-funds-with-validation-without-nonces.io b/tests/eth_multicallV1/multicall-simple-no-funds-with-validation-without-nonces.io new file mode 100644 index 000000000..7cba19bef --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple-no-funds-with-validation-without-nonces.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}],"validation":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2bd63646753df027ae61d22f585ef89af6abf9ec82625115cb2a72c7653c6deb","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xc100000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-no-funds-with-validation.io b/tests/eth_multicallV1/multicall-simple-no-funds-with-validation.io new file mode 100644 index 000000000..81d4aeb1c --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple-no-funds-with-validation.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8","nonce":"0x1"}]}],"validation":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xeccc800ab5f86e2b3d6d55b2fa88758d3607891871d071bc464807d84b0a4a76","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xc100000000000000000000000000000000000000, tx: 1 state: 0 (supplied gas 5000000)","code":-38011}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-no-funds.io b/tests/eth_multicallV1/multicall-simple-no-funds.io new file mode 100644 index 000000000..c3dde26c3 --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple-no-funds.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2bd63646753df027ae61d22f585ef89af6abf9ec82625115cb2a72c7653c6deb","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xc100000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-send-from-contract-no-balance.io b/tests/eth_multicallV1/multicall-simple-send-from-contract-no-balance.io new file mode 100644 index 000000000..dfb98f1fd --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple-send-from-contract-no-balance.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x402d38fed51149f5aca6b1629153fb3b13cf9b06d179e20cf91c45f828c506e2","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-send-from-contract-with-validation.io b/tests/eth_multicallV1/multicall-simple-send-from-contract-with-validation.io new file mode 100644 index 000000000..befde0f16 --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple-send-from-contract-with-validation.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033","balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true,"validation":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x1827accb2edd8466cbacbe8353a6ab880dad99fd77bb9c0ca3616d2367faf2b9","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: sender not an eoa: address 0xC000000000000000000000000000000000000000, codehash: 0x3b4b17870a84d1ab8ac96e2596ba4a999f2dcd3c73a622b5c308a031fe89d005 (supplied gas 5000000)","code":-32603}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-send-from-contract.io b/tests/eth_multicallV1/multicall-simple-send-from-contract.io new file mode 100644 index 000000000..dc99fa701 --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple-send-from-contract.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033","balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x229797dce097bcf35000669c08a79b15097c90c3754176841e7f82a191e170e9","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0xa4d41019e71335f8567e17746b708ddda8b975a9a61f909bd3df55f4866cc913","transactionIndex":"0x0","blockHash":"0x229797dce097bcf35000669c08a79b15097c90c3754176841e7f82a191e170e9","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-state-diff.io b/tests/eth_multicallV1/multicall-simple-state-diff.io new file mode 100644 index 000000000..134d6d2b3 --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple-state-diff.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ff4c916146100515780633033413b1461008157806344e12f871461009f5780637b8d56e3146100bd575b600080fd5b61006b600480360381019061006691906101f6565b6100d9565b6040516100789190610232565b60405180910390f35b61008961013f565b6040516100969190610232565b60405180910390f35b6100a7610145565b6040516100b49190610232565b60405180910390f35b6100d760048036038101906100d2919061024d565b61014b565b005b60006002821061011e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610115906102ea565b60405180910390fd5b6000820361012c5760005490505b6001820361013a5760015490505b919050565b60015481565b60005481565b6002821061018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610185906102ea565b60405180910390fd5b600082036101a257806000819055506101b7565b600182036101b657806001819055506101b7565b5b5050565b600080fd5b6000819050919050565b6101d3816101c0565b81146101de57600080fd5b50565b6000813590506101f0816101ca565b92915050565b60006020828403121561020c5761020b6101bb565b5b600061021a848285016101e1565b91505092915050565b61022c816101c0565b82525050565b60006020820190506102476000830184610223565b92915050565b60008060408385031215610264576102636101bb565b5b6000610272858286016101e1565b9250506020610283858286016101e1565b9150509250929050565b600082825260208201905092915050565b7f746f6f2062696720736c6f740000000000000000000000000000000000000000600082015250565b60006102d4600c8361028d565b91506102df8261029e565b602082019050919050565b60006020820190508181036000830152610303816102c7565b905091905056fea2646970667358221220ceea194bb66b5b9f52c83e5bf5a1989255de8cb7157838eff98f970c3a04cb3064736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"state":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]}],"traceTransfers":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x6093bd45b013eaf05790f67641d02029efae7ff806f3f6681e81a0f4b26b2e3c","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x158df","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xac5e","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xac81","status":"0x1"}]},{"number":"0x5","hash":"0xcab90b9b7f7a82440d66d354174348d5130450bb873f8d2263a3e647a224049f","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xbb16","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x1200000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d91","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-with-validation-no-funds.io b/tests/eth_multicallV1/multicall-simple-with-validation-no-funds.io new file mode 100644 index 000000000..59ab57d74 --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple-with-validation-no-funds.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x43554dd08fc12190549d7946b63288982fec040efad79dc69c4ef96c7a734375","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa410","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple.io b/tests/eth_multicallV1/multicall-simple.io new file mode 100644 index 000000000..59ab57d74 --- /dev/null +++ b/tests/eth_multicallV1/multicall-simple.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x43554dd08fc12190549d7946b63288982fec040efad79dc69c4ef96c7a734375","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa410","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-transaction-too-high-nonce.io b/tests/eth_multicallV1/multicall-transaction-too-high-nonce.io new file mode 100644 index 000000000..e351360b0 --- /dev/null +++ b/tests/eth_multicallV1/multicall-transaction-too-high-nonce.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x64"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x10f947b1dd03385666a24ade5ade911dfe02a838794a884b6df70b5d8f724667","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-transaction-too-low-nonce-38010.io b/tests/eth_multicallV1/multicall-transaction-too-low-nonce-38010.io new file mode 100644 index 000000000..5ef26d257 --- /dev/null +++ b/tests/eth_multicallV1/multicall-transaction-too-low-nonce-38010.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0xa"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x0"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x3e644ffb24b50e368c943d9aa550f15c65ea482466af7aeafe3bc5b2b051d945","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-transfer-over-BlockStateCalls.io b/tests/eth_multicallV1/multicall-transfer-over-BlockStateCalls.io new file mode 100644 index 000000000..456614f95 --- /dev/null +++ b/tests/eth_multicallV1/multicall-transfer-over-BlockStateCalls.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","value":"0x3e8"}]},{"stateOverrides":{"0xc300000000000000000000000000000000000000":{"balance":"0x0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc300000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xb10866e38ca7ee1578f52a6396e4d0dae2b423c5940ddb8aa75bd44edd23bc6b","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa410","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]},{"number":"0x5","hash":"0x1426c7b42b561b117fc26a9e52c7aac1e25504814a1710d71e779f35d6b13688","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xc300000000000000000000000000000000000000 have 0 want 1000 (supplied gas 4979000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-try-to-move-non-precompile.io b/tests/eth_multicallV1/multicall-try-to-move-non-precompile.io new file mode 100644 index 000000000..dd4766905 --- /dev/null +++ b/tests/eth_multicallV1/multicall-try-to-move-non-precompile.io @@ -0,0 +1,2 @@ +>> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0x5"}}},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc100000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x5"}]}],"validation":true},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0xC000000000000000000000000000000000000000 is not a precompile"}} diff --git a/wordlist.txt b/wordlist.txt index fef7a4af8..005973623 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -57,3 +57,4 @@ randao src https forkchoiceupdatedresponsev +feeRecipient From 8b020cebad360577f26ef31067a508e47a4ba430 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Mon, 20 Nov 2023 20:45:18 +0200 Subject: [PATCH 02/31] fix some issues with the spec --- docs/multicall-notes.md | 2 +- src/schemas/execute.yaml | 8 ++++---- wordlist.txt | 5 +++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md index 9d33e0c5b..8373e8b99 100644 --- a/docs/multicall-notes.md +++ b/docs/multicall-notes.md @@ -32,7 +32,7 @@ Unlike `eth_call`, `eth_multicallV1`'s calls are conducted inside blocks. We don An interesting note here is that we decide timestamp as `previous block timestamp + 1`, while `previous block timestamp + 12` could also be an assumed default. The reasoning to use `+1` is that it's the minimum amount we have to increase the timestamp to keep them valid. While `+12` is what Mainnet uses, there are other chains that use some other values, and we didn't want to complicate the specification to consider all networks. ### Phantom blocks -The multicall allows you to define on what block number your calls or transactions are being executed on. Eg, consider following call: +The multicall allows you to define on what block number your calls or transactions are being executed on. E.g, consider following call: ```json { "jsonrpc": "2.0", diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index a6e0c06e2..174ce731b 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -137,8 +137,8 @@ MultiCallResult: title: Full results of multi call type: object oneOf: - $ref: '#/components/schemas/MultiCallBlockResultInvalid' - $ref: '#/components/schemas/MultiCallBlockResultSuccess' + - $ref: '#/components/schemas/MultiCallBlockResultInvalid' + - $ref: '#/components/schemas/MultiCallBlockResultSuccess' MultiCallBlockResultSuccess: title: Full results of multi call type: array @@ -204,7 +204,7 @@ MultiCallBlockResultInvalid: - code: -38013 message: Not enough gas provided to pay for intrinsic gas for a transaction - code: -38014 - message: Insufficient funds to pay for gas fees and value fo a transaction + message: Insufficient funds to pay for gas fees and value for a transaction - code: -38015 message: Block gas limit exceeded by the block's transactions - code: -38020 @@ -216,7 +216,7 @@ MultiCallBlockResultInvalid: - code: -38023 message: Multiple MovePrecompileToAddress referencing the same address to replace - code: -38024 - message: Sender is not an EoA + message: Sender is not an EOA - code: -38025 message: Max init code size exceeded - code: -38026 diff --git a/wordlist.txt b/wordlist.txt index 005973623..843969447 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -58,3 +58,8 @@ src https forkchoiceupdatedresponsev feeRecipient +multicallV +EOA +EVM +ERC +VM From 8ab65392d57189b253b119a1a3935315e4a824cf Mon Sep 17 00:00:00 2001 From: KillariDev Date: Mon, 20 Nov 2023 21:23:00 +0200 Subject: [PATCH 03/31] fix refs, fix styling --- docs/multicall-notes.md | 28 ++++++++++++++-------------- src/eth/execute.yaml | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md index 8373e8b99..3ebc3ef8e 100644 --- a/docs/multicall-notes.md +++ b/docs/multicall-notes.md @@ -6,11 +6,11 @@ Unlike `eth_call`, `eth_multicallV1`'s calls are conducted inside blocks. We don | parameter name | default value | -----------------|----------------------- -| prevRandao | 0x0000000000000000000000000000000000000000000000000000000000000000 | -| feeRecipient | 0x0000000000000000000000000000000000000000 | -| mixHash | 0x0000000000000000000000000000000000000000000000000000000000000000 | -| nonce | 0x0 | -| extraData | 0x0000000000000000000000000000000000000000000000000000000000000000 | +| prevRandao | `0x0000000000000000000000000000000000000000000000000000000000000000` | +| feeRecipient | `0x0000000000000000000000000000000000000000` | +| mixHash | `0x0000000000000000000000000000000000000000000000000000000000000000` | +| nonce | `0x0` | +| extraData | `0x0000000000000000000000000000000000000000000000000000000000000000` | | difficulty | The same as the base block defined as the second parameter in the call | | gasLimit | The same as the base block defined as the second parameter in the call | | hash | Calculated normally, except for phantom blocks, see below Phantom block section | @@ -58,7 +58,7 @@ The multicall allows you to define on what block number your calls or transactio } ``` -Here we want our calls to be executed in blocks 100 (0x64) and in 200 (0xc8). The block numbers can be anything as long as they are increasing and higher than the block we are building from 10 (0xa). Now we end up in a situation where there exists block ranges 13-99 and 101-199 that are not defined anywhere. These blocks are called "phantom blocks". What happens if you try to request block hash of any of such blocks in the EVM? How can we calculate the block hash of future blocks when we don't know the block hash of the previous block? +Here we want our calls to be executed in blocks 100 (`0x64`) and in 200 (`0xc8`). The block numbers can be anything as long as they are increasing and higher than the block we are building from 10 (`0xa`). Now we end up in a situation where there exists block ranges 13-99 and 101-199 that are not defined anywhere. These blocks are called "phantom blocks". What happens if you try to request block hash of any of such blocks in the EVM? How can we calculate the block hash of future blocks when we don't know the block hash of the previous block? Our solution to this problem is to define block hash of a phantom block to be: @@ -81,16 +81,16 @@ Base fee per gas is not adjusted in the phantom blocks, their base fee remains c As multicall is an extension to `eth_call` we want to enable the nice user experience that the user does not need to provide all required values for a transaction. We are assuming following defaults if the variable is not provided by the user: | parameter name | description | -----------------|----------------------- -| type | 0x2 | +| type | `0x2` | | nonce | Defaults to correct nonce | -| to | null | -| from | 0x0000000000000000000000000000000000000000 | +| to | `null` | +| from | `0x0000000000000000000000000000000000000000` | | gas limit | Remaining gas in the current block. This is calculated dynamically one by one for each transaction that is being processed. | -| value | 0x0 | +| value | `0x0` | | input | no data | -| gasPrice | 0x0 | -| maxPriorityFeePerGas | 0x0 | -| maxFeePerGas | 0x0 | +| gasPrice | `0x0` | +| maxPriorityFeePerGas | `0x0` | +| maxFeePerGas | `0x0` | | accessList | empty array | ## Overriding default values @@ -110,7 +110,7 @@ All the other fields are computed automatically (eg, `stateRoot` and `gasUsed`) An interesting note here is that an user can specify block numbers and times of some blocks, but not for others. When block numbers of times are left unspecified, the default values will be used. After the blocks have been constructed, and default values are calculated, the blocks are checked that their block numbers and times are still valid. ## ETH transfer logs -When `traceTransfers` setting is enabled on `eth_multicallV1` The multical will return logs for ethereum transfers along with the normal logs sent by contracts. The ETH transfers are identical to ERC20 transfers, except the "sending contract" is address 0x0. +When `traceTransfers` setting is enabled on `eth_multicallV1` The multical will return logs for ethereum transfers along with the normal logs sent by contracts. The ETH transfers are identical to ERC20 transfers, except the "sending contract" is address `0x0`. For example, here's a query that will simply send ether from one address to another (with a state override that gives us the ETH initially): ```json diff --git a/src/eth/execute.yaml b/src/eth/execute.yaml index 2553bf2db..b75bfedb3 100644 --- a/src/eth/execute.yaml +++ b/src/eth/execute.yaml @@ -61,12 +61,12 @@ - name: Payload required: true schema: - type: '#/components/schemas/MultiCallPayload' + $ref: '#/components/schemas/MultiCallPayload' - name: Block tag required: false description: "default: 'latest'" schema: - type: '#/components/schemas/BlockNumberOrTagOrHash' + $ref: '#/components/schemas/BlockNumberOrTagOrHash' result: name: Result of calls schema: From 61fb23152aec82ee09feffbb8e16a797064fe486 Mon Sep 17 00:00:00 2001 From: KillariDev <13102010+KillariDev@users.noreply.github.com> Date: Mon, 27 Nov 2023 16:11:31 +0200 Subject: [PATCH 04/31] Update docs/multicall-notes.md Co-authored-by: Jochem Brouwer --- docs/multicall-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md index 3ebc3ef8e..a87b4dc2d 100644 --- a/docs/multicall-notes.md +++ b/docs/multicall-notes.md @@ -68,7 +68,7 @@ keccak(rlp([hash_of_previous_non_phantom_block, phantom_block_number])) So for example in our example, you could get block hash of block 142 as follows: ``` -keccac(rlp([hash of block 12, 142])) +keccak(rlp([hash of block 12, 142])) ``` The phantom blocks other properties are set to their default properties as defined by the multicall specification. We came to this definition by wanting phantom block hashes to be unique if things prior to the phantom block changes, so if tooling is storing block hashes somewhere, they should remain unique if things change in the simulation. From 45313dd0e9a2bf2b5b7094ea42708355998b9624 Mon Sep 17 00:00:00 2001 From: KillariDev <13102010+KillariDev@users.noreply.github.com> Date: Mon, 27 Nov 2023 16:22:40 +0200 Subject: [PATCH 05/31] Update docs/multicall-notes.md Co-authored-by: Jochem Brouwer --- docs/multicall-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md index a87b4dc2d..af132c10a 100644 --- a/docs/multicall-notes.md +++ b/docs/multicall-notes.md @@ -58,7 +58,7 @@ The multicall allows you to define on what block number your calls or transactio } ``` -Here we want our calls to be executed in blocks 100 (`0x64`) and in 200 (`0xc8`). The block numbers can be anything as long as they are increasing and higher than the block we are building from 10 (`0xa`). Now we end up in a situation where there exists block ranges 13-99 and 101-199 that are not defined anywhere. These blocks are called "phantom blocks". What happens if you try to request block hash of any of such blocks in the EVM? How can we calculate the block hash of future blocks when we don't know the block hash of the previous block? +Here we want our calls to be executed in blocks 100 (`0x64`) and in 200 (`0xc8`). The block numbers can be anything as long as they are increasing and higher than the block we are building from 10 (`0xa`). Now we end up in a situation where there exists block ranges 11-99 and 101-199 that are not defined anywhere. These blocks are called "phantom blocks". What happens if you try to request block hash of any of such blocks in the EVM? How can we calculate the block hash of future blocks when we don't know the block hash of the previous block? Our solution to this problem is to define block hash of a phantom block to be: From d9411e0059aa8efe0c431574f28861ba93b95876 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Mon, 27 Nov 2023 16:52:09 +0200 Subject: [PATCH 06/31] feedback according to comments, and a 30mb limit --- docs/multicall-notes.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md index 3ebc3ef8e..52bbe21f9 100644 --- a/docs/multicall-notes.md +++ b/docs/multicall-notes.md @@ -197,7 +197,7 @@ Here the interesting part is: ], "data": "0x00000000000000000000000000000000000000000000000000000000000003e8", ``` -As can be seen, the sending address is the zero address, `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef` corresponds to signature `Transfer(address,address,uint256)`, `"0x000000000000000000000000c000000000000000000000000000000000000000"` corresponds the sending address and `0x000000000000000000000000c100000000000000000000000000000000000000` is the receiving address. The amount of ETH moved is stored in the `data` field. +In the observed event, the sender address is denoted as the zero address (`0x0`). The first topic (`0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`) aligns with the event signature `Transfer(address,address,uint256)`, while the second topic (`0x000000000000000000000000c000000000000000000000000000000000000000`) corresponds to the sending address, and the third topic (`0x000000000000000000000000c100000000000000000000000000000000000000`) represents the receiving address. The quantity of ETH transacted is stored in the data field. The ETH logs will contain following types of ETH transfers: - Transfering ETH from EOA @@ -220,6 +220,7 @@ It is possible that user defines a transaction that cannot be included in the Et The method name for multicall `eth_multicallV1` the intention is that after release of multicall, if new features are wanted the `eth_multicallV1` is kept as it is, and instead `eth_multicallV2` is published with the new wanted features. ## Clients can set their own limits -Clients may introduce their own limits to prevent DOS attacks using the method. We have thought of two such standard limits +Clients may introduce their own limits to prevent DOS attacks using the method. We have thought of three such standard limits - How many blocks can be defined in `BlockStateCalls`. The suggested default for this is 256 blocks - A global gas limit (similar to the same limit for `eth_call`). The multicall cannot exceed the global gas limit over its lifespan +- The clients can set their own limit on how big the input JSON payload can be. A suggested default for this is 30mb From b4ce098cd146fccc70a1882507dfbd921cdb583a Mon Sep 17 00:00:00 2001 From: KillariDev Date: Tue, 12 Dec 2023 09:21:43 +0200 Subject: [PATCH 07/31] use 0xee.. address instead of 0x0 address for eth transfer logs --- docs/multicall-notes.md | 6 +++--- src/schemas/execute.yaml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md index 059cf2106..60c8f9693 100644 --- a/docs/multicall-notes.md +++ b/docs/multicall-notes.md @@ -163,7 +163,7 @@ The output of this query is: "returnData": "0x", "logs": [ { - "address": "0x0000000000000000000000000000000000000000", + "address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x000000000000000000000000c000000000000000000000000000000000000000", @@ -189,7 +189,7 @@ The output of this query is: Here the interesting part is: ```json -"address": "0x0000000000000000000000000000000000000000", +"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x000000000000000000000000c000000000000000000000000000000000000000", @@ -197,7 +197,7 @@ Here the interesting part is: ], "data": "0x00000000000000000000000000000000000000000000000000000000000003e8", ``` -In the observed event, the sender address is denoted as the zero address (`0x0`). The first topic (`0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`) aligns with the event signature `Transfer(address,address,uint256)`, while the second topic (`0x000000000000000000000000c000000000000000000000000000000000000000`) corresponds to the sending address, and the third topic (`0x000000000000000000000000c100000000000000000000000000000000000000`) represents the receiving address. The quantity of ETH transacted is stored in the data field. +In the observed event, the sender address is denoted as the `0xee...` address. The first topic (`0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef`) aligns with the event signature `Transfer(address,address,uint256)`, while the second topic (`0x000000000000000000000000c000000000000000000000000000000000000000`) corresponds to the sending address, and the third topic (`0x000000000000000000000000c100000000000000000000000000000000000000`) represents the receiving address. The quantity of ETH transacted is stored in the data field. The ETH logs will contain following types of ETH transfers: - Transfering ETH from EOA diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index 174ce731b..da8412023 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -10,7 +10,7 @@ MultiCallPayload: traceTransfers: title: Trace ETH Transfers description: |- - Adds ETH transfers as ERC20 transfer events to the logs. These transfers have emitter contract parameter set as address(0x0). + Adds ETH transfers as ERC20 transfer events to the logs. These transfers have emitter contract parameter set as address(0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee). Default: false. type: boolean validation: @@ -300,7 +300,7 @@ CallResultLog: $ref: '#/components/schemas/uint64' address: title: address - description: When trace transfers is enabled, this field is address(0x0) for ETH transfers. + description: When trace transfers is enabled, this field is address(0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee) for ETH transfers. $ref: '#/components/schemas/address' data: title: data From 0043e12c6217a4f124cae90ed79ac9152c376f55 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Tue, 12 Dec 2023 09:56:14 +0200 Subject: [PATCH 08/31] add withdrawals to input and output --- src/schemas/execute.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index da8412023..b7c01356a 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -133,6 +133,31 @@ BlockOverrides: baseFeePerGas: title: Base fee per unit of gas $ref: '#/components/schemas/uint256' + withdrawals: + title: Withdrawals made by validators + $ref: '#/components/schemas/Withdrawals' +Withdrawals: + title: Withdrawals made by validators + description: This array can have a maximum length of 16. + type: array + items: + - $ref: '#/components/schemas/Withdrawal' +Withdrawal: + title: A withdrawal made by a validator + type: object + properties: + index: + title: index + $ref: '#/components/schemas/uint64' + validator_index: + title: Validator Index + $ref: '#/components/schemas/uint64' + address: + title: Address + $ref: '#/components/schemas/address' + amount: + title: Amount + $ref: '#/components/schemas/uint64' MultiCallResult: title: Full results of multi call type: object @@ -174,6 +199,9 @@ MultiCallBlockResultSingleSuccess: prevRandao: title: The Previous value of randomness beacon $ref: '#/components/schemas/uint256' + withdrawals: + title: Withdrawals made by validators + $ref: '#/components/schemas/Withdrawals' MultiCallBlockResultInvalid: title: Result of multicall not being valid description: The error messages are suggestions and a client might decide to return a different errror message than specified here. However, the error codes are enforced by this specification. From 3095c085a5c701f7b10ad912db8db6719ff4cf9b Mon Sep 17 00:00:00 2001 From: KillariDev Date: Tue, 19 Dec 2023 11:24:49 +0200 Subject: [PATCH 09/31] add support for EIP-4844 --- docs/multicall-notes.md | 9 ++++++--- src/schemas/execute.yaml | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md index 60c8f9693..9d64aca73 100644 --- a/docs/multicall-notes.md +++ b/docs/multicall-notes.md @@ -16,10 +16,11 @@ Unlike `eth_call`, `eth_multicallV1`'s calls are conducted inside blocks. We don | hash | Calculated normally, except for phantom blocks, see below Phantom block section | | parentHash | Previous blocks hash (the real hash, or phantom blocks hash) | | timestamp | The timestamp of previous block + 1 | -| baseFeePerGas | Calculated on what it should be according to ethereum's spec. Note: baseFeePerGas is not adjusted in the phantom blocks. | +| baseFeePerGas | Calculated on what it should be according to Ethereum's spec. Note: baseFeePerGas is not adjusted in the phantom blocks. | | sha3Uncles | Empty trie root | | withdrawals | Empty array | | uncles | Empty array | +| blobGasPrice | Calculated on what it should be according to EIP-4844 spec. Note: blobGasPrice is not adjusted in the phantom blocks. | | number | Previous block number + 1 | | logsBloom | Calculated normally. ETH logs are not part of the calculation | | receiptsRoot | Calculated normally | @@ -92,9 +93,10 @@ As multicall is an extension to `eth_call` we want to enable the nice user exper | maxPriorityFeePerGas | `0x0` | | maxFeePerGas | `0x0` | | accessList | empty array | +| blobVersionedHashes | empty array | ## Overriding default values -The default values of blocks and transactions can be overriden. For Transactions we allow overriding of variables `type`, `nonce`, `to`, `from`, `gas limit`, `value`, `input`, `gasPrice`, `maxPriorityFeePerGas`, `maxFeePerGas`, `accessList`, and for blocks we allow modifications of `number`, `time`, `gasLimit`, `feeRecipient`, `prevRandao` and `baseFeePerGas`: +The default values of blocks and transactions can be overriden. For Transactions we allow overriding of variables `type`, `nonce`, `to`, `from`, `gas limit`, `value`, `input`, `gasPrice`, `maxPriorityFeePerGas`, `maxFeePerGas`, `accessList`, and for blocks we allow modifications of `number`, `time`, `gasLimit`, `feeRecipient`, `prevRandao`, `baseFeePerGas` and `blobGasPrice`: ```json "blockOverrides": { "number": "0x14", @@ -102,7 +104,8 @@ The default values of blocks and transactions can be overriden. For Transactions "gasLimit": "0x2e631", "feeRecipient": "0xc100000000000000000000000000000000000000", "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000001234", - "baseFeePerGas": "0x14" + "baseFeePerGas": "0x14", + "blobGasPrice": "0x15" }, ``` All the other fields are computed automatically (eg, `stateRoot` and `gasUsed`) or kept as their default values (eg. `uncles` or `withdrawals`). When overriding `number` and `time` variables for blocks, we automatically check that the block numbers and time fields are strictly increasing (we don't allow decreasing, or duplicated block numbers or times). If the block number is increased more than `1` compared to the previous block, phantom blocks are created to fill the gaps. diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index b7c01356a..db50826f0 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -136,6 +136,9 @@ BlockOverrides: withdrawals: title: Withdrawals made by validators $ref: '#/components/schemas/Withdrawals' + blobGasPrice: + title: Blob gas price + $ref: '#/components/schemas/uint256' Withdrawals: title: Withdrawals made by validators description: This array can have a maximum length of 16. @@ -202,6 +205,15 @@ MultiCallBlockResultSingleSuccess: withdrawals: title: Withdrawals made by validators $ref: '#/components/schemas/Withdrawals' + blobGasUsed: + title: The total amount of blob gas consumed by the transactions within the block. + $ref: '#/components/schemas/uint256' + excessBlobGas: + title: The running total of blob gas consumed in excess of the target, prior to the block. + $ref: '#/components/schemas/uint256' + blobGasPrice: + title: Blob gas price + $ref: '#/components/schemas/uint256' MultiCallBlockResultInvalid: title: Result of multicall not being valid description: The error messages are suggestions and a client might decide to return a different errror message than specified here. However, the error codes are enforced by this specification. @@ -401,3 +413,9 @@ GenericCallTransaction: EIP-2930 access list Default: [] $ref: '#/components/schemas/AccessList' + blobVersionedHashes: + title: Blob versioned hashes + description: |- + EIP-4844 versioned hashes + Default: [] + $ref: '#/components/schemas/bytes32' From c7ec33650686736f78485872abadd19365c1bc4c Mon Sep 17 00:00:00 2001 From: KillariDev Date: Thu, 11 Jan 2024 09:59:11 +0200 Subject: [PATCH 10/31] rename eth_multicallV1 to eth_simulateV1 --- docs/multicall-notes.md | 10 +++++----- src/eth/execute.yaml | 2 +- ...efined-BlockStateCalls-than-fit-but-now-with-fit.io | 2 +- ...ll-add-more-non-defined-BlockStateCalls-than-fit.io | 2 +- .../multicall-basefee-too-low-with-validation-38012.io | 2 +- ...lticall-basefee-too-low-without-validation-38012.io | 2 +- .../multicall-big-block-state-calls-array.io | 2 +- .../eth_multicallV1/multicall-block-num-order-38020.io | 2 +- ...call-block-override-reflected-in-contract-simple.io | 2 +- .../multicall-block-override-reflected-in-contract.io | 2 +- .../multicall-block-timestamp-auto-increment.io | 2 +- .../multicall-block-timestamp-non-increment.io | 2 +- .../multicall-block-timestamp-order-38021.io | 2 +- .../multicall-block-timestamps-incrementing.io | 2 +- tests/eth_multicallV1/multicall-blockhash-complex.io | 2 +- tests/eth_multicallV1/multicall-blockhash-simple.io | 2 +- .../multicall-blockhash-start-before-head.io | 2 +- tests/eth_multicallV1/multicall-check-invalid-nonce.io | 2 +- ...call-check-that-balance-is-there-after-new-block.io | 2 +- .../multicall-check-that-nonce-increases.io | 2 +- .../eth_multicallV1/multicall-contract-calls-itself.io | 2 +- .../multicall-empty-calls-and-overrides-multicall.io | 2 +- tests/eth_multicallV1/multicall-empty-multicall.io | 2 +- ...call-eth-send-should-not-produce-logs-by-default.io | 2 +- ...icall-eth-send-should-not-produce-logs-on-revert.io | 2 +- .../multicall-eth-send-should-produce-logs.io | 2 +- ...all-eth-send-should-produce-more-logs-on-forward.io | 2 +- ...th-send-should-produce-no-logs-on-forward-revert.io | 2 +- .../multicall-fee-recipient-receiving-funds.io | 2 +- ...l-gas-fees-and-value-error-38014-with-validation.io | 2 +- .../multicall-gas-fees-and-value-error-38014.io | 2 +- .../eth_multicallV1/multicall-get-block-properties.io | 2 +- tests/eth_multicallV1/multicall-instrict-gas-38013.io | 2 +- tests/eth_multicallV1/multicall-logs.io | 2 +- .../eth_multicallV1/multicall-long-block-distances.io | 2 +- tests/eth_multicallV1/multicall-move-account-twice.io | 2 +- .../multicall-move-ecrecover-and-call.io | 2 +- ...multicall-move-to-address-itself-reference-38022.io | 2 +- .../multicall-move-two-accounts-to-same-38023.io | 2 +- ...ticall-move-two-non-precompiles-accounts-to-same.io | 2 +- tests/eth_multicallV1/multicall-no-fields-call.io | 2 +- .../multicall-only-from-to-transaction.io | 2 +- .../eth_multicallV1/multicall-only-from-transaction.io | 2 +- ...erride-address-twice-in-separate-BlockStateCalls.io | 2 +- .../multicall-override-address-twice.io | 2 +- .../multicall-override-all-in-BlockStateCalls.io | 2 +- tests/eth_multicallV1/multicall-override-block-num.io | 2 +- tests/eth_multicallV1/multicall-override-ecrecover.io | 2 +- tests/eth_multicallV1/multicall-override-identity.io | 2 +- tests/eth_multicallV1/multicall-override-sha256.io | 2 +- .../multicall-override-storage-slots.io | 2 +- .../multicall-precompile-is-sending-transaction.io | 2 +- tests/eth_multicallV1/multicall-run-gas-spending.io | 2 +- .../multicall-run-out-of-gas-in-block-38015.io | 2 +- .../multicall-self-destructing-state-override.io | 2 +- ...ulticall-self-destructive-contract-produces-logs.io | 2 +- tests/eth_multicallV1/multicall-set-read-storage.io | 2 +- .../multicall-simple-no-funds-with-balance-querying.io | 2 +- ...l-simple-no-funds-with-validation-without-nonces.io | 2 +- .../multicall-simple-no-funds-with-validation.io | 2 +- tests/eth_multicallV1/multicall-simple-no-funds.io | 2 +- .../multicall-simple-send-from-contract-no-balance.io | 2 +- ...ticall-simple-send-from-contract-with-validation.io | 2 +- .../multicall-simple-send-from-contract.io | 2 +- tests/eth_multicallV1/multicall-simple-state-diff.io | 2 +- .../multicall-simple-with-validation-no-funds.io | 2 +- tests/eth_multicallV1/multicall-simple.io | 2 +- .../multicall-transaction-too-high-nonce.io | 2 +- .../multicall-transaction-too-low-nonce-38010.io | 2 +- .../multicall-transfer-over-BlockStateCalls.io | 2 +- .../multicall-try-to-move-non-precompile.io | 2 +- 71 files changed, 75 insertions(+), 75 deletions(-) diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md index 9d64aca73..37a58f051 100644 --- a/docs/multicall-notes.md +++ b/docs/multicall-notes.md @@ -2,7 +2,7 @@ This document contains some extra information that couldn't be fit to the specification document directly. ## Default block values -Unlike `eth_call`, `eth_multicallV1`'s calls are conducted inside blocks. We don't require user to define all the fields of the blocks so here are the defaults that are assumed for blocks parameters: +Unlike `eth_call`, `eth_simulateV1`'s calls are conducted inside blocks. We don't require user to define all the fields of the blocks so here are the defaults that are assumed for blocks parameters: | parameter name | default value | -----------------|----------------------- @@ -38,7 +38,7 @@ The multicall allows you to define on what block number your calls or transactio { "jsonrpc": "2.0", "id": 1, - "method": "eth_multicallV1", + "method": "eth_simulateV1", "params": [ { "blockStateCalls": [ @@ -113,14 +113,14 @@ All the other fields are computed automatically (eg, `stateRoot` and `gasUsed`) An interesting note here is that an user can specify block numbers and times of some blocks, but not for others. When block numbers of times are left unspecified, the default values will be used. After the blocks have been constructed, and default values are calculated, the blocks are checked that their block numbers and times are still valid. ## ETH transfer logs -When `traceTransfers` setting is enabled on `eth_multicallV1` The multical will return logs for ethereum transfers along with the normal logs sent by contracts. The ETH transfers are identical to ERC20 transfers, except the "sending contract" is address `0x0`. +When `traceTransfers` setting is enabled on `eth_simulateV1` The multical will return logs for ethereum transfers along with the normal logs sent by contracts. The ETH transfers are identical to ERC20 transfers, except the "sending contract" is address `0x0`. For example, here's a query that will simply send ether from one address to another (with a state override that gives us the ETH initially): ```json { "jsonrpc": "2.0", "id": 1, - "method": "eth_multicallV1", + "method": "eth_simulateV1", "params": [ { "blockStateCalls": [ @@ -220,7 +220,7 @@ The multicall has a feature to enable or disable validation with setting `Valida It is possible that user defines a transaction that cannot be included in the Ethereum block as it breaks the rules of EVM. For example, if transactions nonce is too high or low, baseFeePerGas is too low etc. In these situations the execution of multicall ends and an error is returned. ## Version number -The method name for multicall `eth_multicallV1` the intention is that after release of multicall, if new features are wanted the `eth_multicallV1` is kept as it is, and instead `eth_multicallV2` is published with the new wanted features. +The method name for multicall `eth_simulateV1` the intention is that after release of multicall, if new features are wanted the `eth_simulateV1` is kept as it is, and instead `eth_simulateV2` is published with the new wanted features. ## Clients can set their own limits Clients may introduce their own limits to prevent DOS attacks using the method. We have thought of three such standard limits diff --git a/src/eth/execute.yaml b/src/eth/execute.yaml index b75bfedb3..9f2ae7cf3 100644 --- a/src/eth/execute.yaml +++ b/src/eth/execute.yaml @@ -55,7 +55,7 @@ gasUsed: title: Gas used $ref: '#/components/schemas/uint' -- name: eth_multicallV1 +- name: eth_simulateV1 summary: Executes a sequence of message calls building on each other's state without creating transactions on the block chain, optionally overriding block and state data params: - name: Payload diff --git a/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io b/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io index 84af7893b..a903a368a 100644 --- a/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io +++ b/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x9d4366c1ce44d58a665e29080293d5f167ba718ab66f1a31ed79d84b0f7db6ff","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000002310a91d00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000004bf8f6000000000000000000000000000000000000000000000000000000000000000040216dde23f0d4bc307cec4522dd13917453223832a495f7df029a6842e595bd","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0xb","hash":"0x04f398c8b09b55043b93eda9a644b458c2b95f94dce6f2aca90d7c6d4422a787","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000001eae93fa00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000004bf8f600000000000000000000000000000000000000000000000000000000000000009d4366c1ce44d58a665e29080293d5f167ba718ab66f1a31ed79d84b0f7db6ff","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x14","hash":"0xa65e25f229ce31030effb76bd8038de8506d06287c4b6e4c6150d1c2fedc4e60","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000001ad8c17b00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000a6e5d1a1af24a7ecdfc011d6d4112e1adbcbefa09bd1670a465828f8b5950a7a","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x15","hash":"0x0d44ed810f0c15899ec7ff00f09b7f509e122836cf5adbbc74bbf1d5f28cde63","timestamp":"0x22","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x177da94c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000177da94c00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000a65e25f229ce31030effb76bd8038de8506d06287c4b6e4c6150d1c2fedc4e60","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit.io b/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit.io index 3d96d7451..251541ae3 100644 --- a/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit.io +++ b/tests/eth_multicallV1/multicall-add-more-non-defined-BlockStateCalls-than-fit.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0xb"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0xb"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"block numbers must be in order"}} diff --git a/tests/eth_multicallV1/multicall-basefee-too-low-with-validation-38012.io b/tests/eth_multicallV1/multicall-basefee-too-low-with-validation-38012.io index fb6fecc7e..dcb547ed9 100644 --- a/tests/eth_multicallV1/multicall-basefee-too-low-with-validation-38012.io +++ b/tests/eth_multicallV1/multicall-basefee-too-low-with-validation-38012.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0"}]}],"validation":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0"}]}],"validation":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2321b6a949d929918bf58f1e35c0459f3ae4b75fd71fd8ba6d8f4edad9de63cd","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-basefee-too-low-without-validation-38012.io b/tests/eth_multicallV1/multicall-basefee-too-low-without-validation-38012.io index b147e7724..f6974f627 100644 --- a/tests/eth_multicallV1/multicall-basefee-too-low-without-validation-38012.io +++ b/tests/eth_multicallV1/multicall-basefee-too-low-without-validation-38012.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2321b6a949d929918bf58f1e35c0459f3ae4b75fd71fd8ba6d8f4edad9de63cd","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-big-block-state-calls-array.io b/tests/eth_multicallV1/multicall-big-block-state-calls-array.io index b4eb6bf9b..df457d62e 100644 --- a/tests/eth_multicallV1/multicall-big-block-state-calls-array.io +++ b/tests/eth_multicallV1/multicall-big-block-state-calls-array.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x5b17533dae2b90e26f77c833f1db070da4549c05eece301b5e1815f68a5597dc","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5","hash":"0xba4ce2acc965c09128b67756ce28e53845a8bd61629ca5e2247ed87a42619f46","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6","hash":"0x49e96f47b9526b78ca473431f3dcbcdf0a8d984442c026a165328e150ac4009d","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7","hash":"0xa754edbb216a5fcb6debb2a232279c90d38850b3d0d5341f9384eb29ec219c5d","timestamp":"0x22","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x177da94c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8","hash":"0x5c02dcc160b099ebc1b13dc0920f5eaa2ff29808429735c9b9c7e545758d7202","timestamp":"0x23","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x148df423","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9","hash":"0x346ec0969efdd997d9b30666c0b6829285dc72d4eb9477d258e27d5281a7f27d","timestamp":"0x24","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x11fc359f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa","hash":"0x550899b46bafcfb3ac389986d79ce1bba88e991acea0d60af10a3c546556bb5e","timestamp":"0x25","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xfbcaeec","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb","hash":"0x0d1b872dbaeff086e8cd527f38b9c2d340e61902ef731a02e28b4fb81e0b1096","timestamp":"0x26","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xdc5190f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc","hash":"0xa4d11cd172773e4ade99d555931515062a365f686fdf65f252945b29e9aab3f3","timestamp":"0x27","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc0c75ee","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd","hash":"0xd835c3298e5589811e9b5d41697fdd4806c129755a016069d5b0bb391463d692","timestamp":"0x28","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa8ae731","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe","hash":"0xfad9d878507c67eff9def04a5fd692f042f91099a89084f62f446525b74cc908","timestamp":"0x29","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x9398a4b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf","hash":"0xdc055025f9e9ac24544f6ebfc6fc7ba5f8d11a1116e2e9a4e0e4cbaf76bd6fc3","timestamp":"0x2a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8125902","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10","hash":"0xa707f98b06f2f490139320b19eeaf08c861ded280dbd3c7594de5cad50f3c3b9","timestamp":"0x2b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7100de2","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11","hash":"0x23a57b8adfaf2303920fbc973212362c1e0b6217ec9e90f08322ab079c3b4514","timestamp":"0x2c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x62e0c26","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12","hash":"0xa639aa60e5a6b3e80db25dd587ee67c7122705ea1a888b6416b3d081c668b168","timestamp":"0x2d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x5684aa2","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x13","hash":"0x51b69f93a32d80868fc279dab5229e8c296f10fe51bf35425f5fe87d05b125df","timestamp":"0x2e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4bb414e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x14","hash":"0x3f2252b9819776307120d8ee21ca9e5612e46c223c66619cc5dd37b5d6c83f98","timestamp":"0x2f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x423d925","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x15","hash":"0x8d50528b188112cd5413e58480ccd47e300d4eb5f5ad965a70a28eef8d4627b5","timestamp":"0x30","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x39f5e01","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x16","hash":"0x6ff5e70936d1496141831739cef95aaf3295a8d6bcb2f503d1da20cd49629e53","timestamp":"0x31","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x32b7241","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x17","hash":"0xe53385fc50688bf41d1ddc163f7ce6d876e7db479e3aac5cd9e9023ecf03b3e3","timestamp":"0x32","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2c603f9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x18","hash":"0xd8eed4ad05e308ae573ad45efa5882f5c62390f8490851d903e680279eb09215","timestamp":"0x33","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x26d437a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x19","hash":"0x05a3856418d8691f9375afde1887e405516b84e260d4277eb0c271b605534c12","timestamp":"0x34","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x21f9b0b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1a","hash":"0xdaeaaa2a9c2e221536d210c1072fa908813b56dd6d67d20c06e243d92b8dc549","timestamp":"0x35","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1dba7aa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1b","hash":"0x436df3f9dd084144d3e2c883b28b635f0d977f7e6f579dbe8af3ff66725f33c1","timestamp":"0x36","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1a032b5","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1c","hash":"0x7040e0b9a08012b06ff788a755f18aba45c84f7b67e191d627f7040a8e448c06","timestamp":"0x37","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x16c2c5f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1d","hash":"0x5ed8ac8edb1ea8bc12807608a1a68561d9e077e1d33e38c19b734d3afc1320a5","timestamp":"0x38","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x13ea6d4","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1e","hash":"0x85ba4e220423d5e06542eea96694eb65a568119056ad514205dd87d92680fc5d","timestamp":"0x39","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x116d1fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x1f","hash":"0x9d370d72a6b008977c5d92eeea9e514414d14fb5646e49a83016c411ff3b5c2e","timestamp":"0x3a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xf3f7bb","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x20","hash":"0x54223ec592b5ca6356f33804aeaa985fa2950443fc518a9045e4d3fd7493bdcd","timestamp":"0x3b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xd578c4","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x21","hash":"0xaecd1b82be61dedfb5d67e86254d8d97ee44bb5880c51ec0fb0e4b9c06224881","timestamp":"0x3c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xbac9ac","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x22","hash":"0xae4f1b54f4108ba9840564a71da67709f47d442b228f3550248770f65e7d13ae","timestamp":"0x3d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa37077","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x23","hash":"0xcbcbf75b111610f13e8830e9969cb3a66598590714d77179db37ac14ef25ddbc","timestamp":"0x3e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8f0269","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x24","hash":"0x7502c3f4b94bea2ce634e03e81eedc01d092293118ddb0b86cd3e0c7e3ea0613","timestamp":"0x3f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7d221c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x25","hash":"0x2744c4c5174553269f834819a39c769311bb874135d730f9b898d8b953140f23","timestamp":"0x40","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x6d7dd9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x26","hash":"0x4f63db5e8c13bc464002cd2a4fb2179780c2c505d5e42d6449eeee6e49f48769","timestamp":"0x41","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x5fce1e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x27","hash":"0x031258bc21d99ec33e71f6f06dc58df0029330584bcf76dfb6e6e183f6da3aab","timestamp":"0x42","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x53d45b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x28","hash":"0x9a79d57c9873a21f808c7c2be1bc0e77ca0c4fcb75a15e48e87ee021fb16599f","timestamp":"0x43","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4959d0","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x29","hash":"0xf99dfea03c433e960b7a92b9c845e916991ea05915ed65088ddf186ca876bef9","timestamp":"0x44","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x402e96","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2a","hash":"0xcd27aa6da2b48df2a92f293ba61057953349c28273d6914bf7e6918cb0cc9526","timestamp":"0x45","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3828c4","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2b","hash":"0x5afccb2fed191d8212e4ecc6afa2b1d1b848e0be8a725c192a51d864bdf3ded7","timestamp":"0x46","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3123ac","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2c","hash":"0xb8850446fabd64e147ac3171c4e6981be6002fbc09222ef474c5d4753a606c97","timestamp":"0x47","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2aff37","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2d","hash":"0xd48ef93238e9d46a36d03c223495dab7691ff7dfa9e839f9dd5deedb82c88555","timestamp":"0x48","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x259f51","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2e","hash":"0x9286ad54e0c8b5bc77efac70adf4de5eb988e80e9afecfa25990e7f69e9f03d3","timestamp":"0x49","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x20eb67","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x2f","hash":"0x914a3e825c3429ec19d11511c22dbff6d97a01c1d59cdbf7b6375d1f128047c0","timestamp":"0x4a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ccdfb","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x30","hash":"0x80794c9180306312ca3784ce3cc5d193a3d4523fb0ce2c4911b68b13d02ef5b2","timestamp":"0x4b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x19343c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x31","hash":"0x9b4fc77d0e143cd50cafab17bd0b29ad4f6a1c3bbba7d2817809fe0171a46055","timestamp":"0x4c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x160db5","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x32","hash":"0xed2a32a26e27716901798b288e4a5e9b199020ac1b66c27b3656c63708c40751","timestamp":"0x4d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x134bff","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x33","hash":"0x4d37ed6d57adc8a6d044702e75b6abe3e7c0c18fe2af61c89af9a9732754ed1b","timestamp":"0x4e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x10e280","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x34","hash":"0x3164a824af5af8d2c75bfb0fda4de3b36f430e4ffaada314205cda1791e4bd3c","timestamp":"0x4f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xec630","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x35","hash":"0x637d53fbff6d7c308428660c0f3d574b96164ce89095a85a024167a36a8a098a","timestamp":"0x50","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xced6a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x36","hash":"0xd261dc09e08abecc39fa15626fffe9ee19210dd7f9d51dbde9e620b901cef8b8","timestamp":"0x51","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xb4fbd","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x37","hash":"0xe1c3acbc7e3359c73ff5fe910e24789fa97357fd9731bb20431e290774b32526","timestamp":"0x52","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x9e5c6","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x38","hash":"0x04500fe46fdba77a09abaa80161580dd738c33f080c079eb1ecef4177f812235","timestamp":"0x53","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8a90e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x39","hash":"0xd51fab5f4c5fd6daa099f67c32bff001ff2adc49a7d721addea77fdaf2f20689","timestamp":"0x54","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x793ed","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3a","hash":"0x5e21bcadab6443a614b6d29d4278c3ab8491c42269a51b0c6822b34878720121","timestamp":"0x55","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x6a170","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3b","hash":"0xd050e3bd149adaf481b168da70457a5248db4f8fb8b67e790653b562582c6c99","timestamp":"0x56","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x5cd42","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3c","hash":"0x50eec373bcb9b704630946b15da17f0483051b101f1dc6facc65905f06595733","timestamp":"0x57","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x5139a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3d","hash":"0xb7169def51644f3086267cc0e6fa05ea8fad5b28e7061a62af37259e3dbd875c","timestamp":"0x58","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x47127","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3e","hash":"0xc3dc7853d2eb01ea63820989974390caed3b2d4ba337a82926f9f6528b922a60","timestamp":"0x59","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3e303","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3f","hash":"0x604dc87532bb820b367e1e53bb3c189df4405b8286a4402b788f557eeca9d4d3","timestamp":"0x5a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x366a3","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x40","hash":"0x4bb372d96bcbb4b27bdc9a728e5b3bbf1c74f2aabcfd7b35ccb8afd0f083bc44","timestamp":"0x5b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2f9cf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x41","hash":"0xd4734374c8e865fac8e2f0bc8910243bf7fbffe980913d5e8dc1fc5f7b38449d","timestamp":"0x5c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x29a96","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x42","hash":"0xfd4602483a7da1885016ef277ff640e2446f565f644921ba241d0cba8d735a48","timestamp":"0x5d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x24744","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x43","hash":"0x6a18b190c6834be23bdd8e3a0fabca25b8448eb724f29ee79e1521562e4e1230","timestamp":"0x5e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1fe5c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x44","hash":"0x7f5c074a9b6ccb40ce5465ea2f1fc9b3572645b9cda69481d6777bcb24621862","timestamp":"0x5f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1be91","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x45","hash":"0x8b54e9c97c75607fa9ef89f1eff2338a68537b64c45fdf285b857e53b653bf3c","timestamp":"0x60","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x186bf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x46","hash":"0xbf61fedb09e411b0a672636cee9259534613c8ead8d2dc0588798ab3bf549baf","timestamp":"0x61","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x155e8","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x47","hash":"0xf1c0b417191bafabff54e1abbfad41bb6a6ea14b208b36b403372a1971c3458b","timestamp":"0x62","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x12b2b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x48","hash":"0xbf509b3bee29146f40e33d799308f32dadbe9cc777d89e511915d26c31f42b99","timestamp":"0x63","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x105c6","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x49","hash":"0x5e7c4018563316fe1143653ac5f0a27bcd08577b3fbf55a3ac65f5ec6817bb68","timestamp":"0x64","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xe50e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4a","hash":"0xeae318111908f55b511153fc94d70415247d0b6271811452cbf5b7d8367ac355","timestamp":"0x65","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc86d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4b","hash":"0xd0d81a2c00c4c19afdd4a0e602d9266c14d0af2c48b265364aaeaf479e55d99f","timestamp":"0x66","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xaf60","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4c","hash":"0x6d91d5b01def5865d12af4810d37e1361af6b806726ed9d19be919544c442f74","timestamp":"0x67","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x9974","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4d","hash":"0xbc1325bba413f65dd81acb5250006b001d7f94c44b07ae9c28533a9518ee2a8c","timestamp":"0x68","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8646","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4e","hash":"0xf4ced16c6f296a11a8a10bc86d2dd497f1737da0a144343565d704b603e43cfa","timestamp":"0x69","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x757e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x4f","hash":"0x9ec7973e70182114b4e226f7a58d184ea58e4982522fff84fe62cdf30467e784","timestamp":"0x6a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x66cf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x50","hash":"0x65558480b7200ee872a8969aee3f8f54fb99ce8629ca6e668e328196407a5fb7","timestamp":"0x6b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x59f6","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x51","hash":"0x8fce8f26a7616bbe1f2838a3a3ecfa7a15307d8e590bbddb5754d060a9777124","timestamp":"0x6c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4eb8","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x52","hash":"0x944cf20ad14670785c87cb4ede1a7cefa24e511f736cb59d08176fb0f1936d84","timestamp":"0x6d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x44e1","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x53","hash":"0xdc29ab5fe115791acad70d9d5a8c5d1853d99c2eeb30301ad76973d266449e23","timestamp":"0x6e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3c45","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x54","hash":"0x19aec87b4db1e5ed7bf4b825e4ef93de388f0c0b8f615dccc8cc93d038d64243","timestamp":"0x6f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x34bd","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x55","hash":"0xd4b1bfd32675552fa8f8056705e03f9b0eaef8f56953896a93fbe93ae6b1bf61","timestamp":"0x70","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2e26","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x56","hash":"0xb6acc03151a7268748655c3239c015acf2cea1cf3acc9cfed5057eaa7a50eab0","timestamp":"0x71","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2862","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x57","hash":"0x0da857fb01062ff45027edaa0aac7c91a016fa62454f349113c09d2ed327900b","timestamp":"0x72","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2356","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x58","hash":"0x2f901ccaa825ccf2830530d25ec1d69140dd92a4ec43a89010df053f53689d15","timestamp":"0x73","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eec","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x59","hash":"0x789a5016f3b5dfd6b94c619c98623db9d1c9f72befd28e9e8b23c1202961abbb","timestamp":"0x74","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1b0f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5a","hash":"0x7632b368566d589fb0e27547694b178e76df6c41c4791a7757bf96347ae1aeeb","timestamp":"0x75","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x17ae","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5b","hash":"0xbe52f38d0b04f1b8a243cc26aa3277997dcc6c352941239c5012978ca2b939cc","timestamp":"0x76","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x14b9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5c","hash":"0x7ca42c626cd2089e76fdfcb8793d98a6a724b1dc30db001adf4032517df0c224","timestamp":"0x77","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1222","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5d","hash":"0x17e28750141186ce37eecf6b33019e6657d215c323d00fc11295238e013f1f88","timestamp":"0x78","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xfde","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5e","hash":"0xf4114d1095c42227be626d508b4ace512f75d37cc65ecf412c64c12a54629b05","timestamp":"0x79","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xde3","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5f","hash":"0x87b5c91d9c4f99a31715fd9611dd3fb206ac2942ffea5eed2c24ca78a3e8cd8c","timestamp":"0x7a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc27","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x60","hash":"0x8ad82e603d7f8b73c5526cb13ab41ca0e5d33ed350a24b6aa5b1ab7b75e52c64","timestamp":"0x7b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xaa3","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x61","hash":"0xca2a4295e919e2696e5be7aaf3105755d202d245307e7f96b64d88d103c90d0f","timestamp":"0x7c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x94f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x62","hash":"0x3564f78599aecb32f4f1c32e9b94c9c4624ec7ef785779f9d9b8449c98f08f6c","timestamp":"0x7d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x826","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x63","hash":"0x9ab4f0d448f75e8b4a2f2e1b6c7557b8aa97c2f873436a6e52e1ea8aca3af632","timestamp":"0x7e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x722","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x64","hash":"0x69822d555b5e428139009a946fe5d962ab8ac017fe099d3f4af5e17c08ec5093","timestamp":"0x7f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x63e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x65","hash":"0x51c6f01be55b49ad73eadfe87d5784de332cd9902f6ea5190060323fef44be8f","timestamp":"0x80","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x577","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x66","hash":"0xb9473d25815ca8862a97a5d3d0c0a801436f4602085065ef7e3040c69ba93ea9","timestamp":"0x81","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4c9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x67","hash":"0xa865851092b75f68ee9375bf40d99bf9df2546fd4f5ad743428042eab34572f7","timestamp":"0x82","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x430","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x68","hash":"0x30bfda53bbb6a2d4920a87082af51194bd2fccc24dc4f08a142cd0feb485628f","timestamp":"0x83","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3aa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x69","hash":"0xf78ad2def8f12048f7634fac57ed06e505f3737195038f4e24e34d7fceb3c8be","timestamp":"0x84","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x335","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6a","hash":"0xaddca94507e58298d06bacd5137c9426be96aedd695c05427264aa4d861b92cd","timestamp":"0x85","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2cf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6b","hash":"0x0e23d5cccee2ef04f560f7200d52a524bfcb6438faa1193be4210dd97d5514b1","timestamp":"0x86","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x276","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6c","hash":"0xb48f627d24a6a52411d01d8dff6c98a31ad7011640fe535c9bc403ad7767e11b","timestamp":"0x87","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x228","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6d","hash":"0x3bf04850578fa99b2528909d22fb89e762666e6b853f2edbad7f4f419b1144c8","timestamp":"0x88","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1e3","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6e","hash":"0x765c4a1ace468213bab81df9b5a99aa43ec8acfe3b1d081f6a52ad43fc118390","timestamp":"0x89","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1a7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x6f","hash":"0xbfcb721720755df38afa703396d990411483f29ec2545a675257449be8fd22bf","timestamp":"0x8a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x173","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x70","hash":"0xbe868cb2e5698b623b613cc07fe9ea54efc8803805077f68631732174914338d","timestamp":"0x8b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x145","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x71","hash":"0x8d2248ae0d730c9807ad53e89759e6ac74a8123eaba13d1e41c7051f7ca50d72","timestamp":"0x8c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x11d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x72","hash":"0x647c6d41b7c43f54f926779292491c4e1b4fa19818e41e19fdd193182f91e1c8","timestamp":"0x8d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xfa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x73","hash":"0x75a4dd33741897570cbaa2eb7ace095227f37dc42b20f59e62e937a04aa36d6a","timestamp":"0x8e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xdb","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x74","hash":"0x439b70ba41cf44361be2ec140b06bd2f91eb97b6b300d925b9d4bdf5216c739a","timestamp":"0x8f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc0","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x75","hash":"0xa60b280fab2e9243ac56a258f6ef373589f1fd89c2a5b702baaece1aaa943547","timestamp":"0x90","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa8","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x76","hash":"0x4fb21a979e59c716dfc2b20655cb4bd849037a2c2162405103dd5ce7b5a646a8","timestamp":"0x91","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x93","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x77","hash":"0x341027029fb6d14d781cb67aff49ef7c68473e2e66734e3545048e9c0811ee65","timestamp":"0x92","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x81","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x78","hash":"0x4c362321aff57162cf3d75b2d77eb516f521b34eac320dcb7b10638d675c627b","timestamp":"0x93","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x71","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x79","hash":"0x4c15a3ea625638f14475e24946accc7633564b6b9e365b52ce7d1240d8446528","timestamp":"0x94","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x63","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7a","hash":"0xe510f19ed359aac55435041b7217599205ef88ff1994868d1b71f25cf1eeae07","timestamp":"0x95","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x57","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7b","hash":"0xc00a503dc759976863556fb1af4352359af0324fccaa867e2e8c1135fd8acfc6","timestamp":"0x96","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x4d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7c","hash":"0x637ad787d5a36df0193713ea9bdf0f563f5b229f41f81e7d9b729b7180783d12","timestamp":"0x97","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x44","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7d","hash":"0xbee96f8bea136cbec41cce2f8406c81a058b661e8994d8a90e79928077cdc27e","timestamp":"0x98","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x3c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7e","hash":"0xd9a9434359b97f508b8b20ce90cf87ccab2f92747ba21243b800ce430d412181","timestamp":"0x99","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x35","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7f","hash":"0x94010591792f5a2247cf0fffa7e521dad598f2670475683efcada0bf16c14835","timestamp":"0x9a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x80","hash":"0xfb86fda1cff717c3aa251fcb87611919ba852392fe89996cabfdd56f6128339d","timestamp":"0x9b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x81","hash":"0x9e04164467a387e7d3b532eb2953e903b7668fe7ddaf0f82851b5daef6e56a3b","timestamp":"0x9c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x25","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x82","hash":"0x060ae18a6641d4304d00d54d47bace60875ff29fe3b28a79f4674534141935f0","timestamp":"0x9d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x21","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x83","hash":"0x5f1623bc2119b572c4d29d6939fdcd5ec84a7080496ddd17f45809abcdfd8534","timestamp":"0x9e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x84","hash":"0xa3590f9fcd315aa59dd33599e28433170b4e997c411122f4fbd519ec7ebf5cbe","timestamp":"0x9f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1a","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x85","hash":"0x54dd8e8cf3374b2767b755db2a14fd36f0949d1afac7ee117524987df3a16d4a","timestamp":"0xa0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x17","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x86","hash":"0xf90063d0be93b2f7a0aec2cf083f7a96be40e393f248024ada9d550c9948b531","timestamp":"0xa1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x15","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x87","hash":"0x82f1db3466f1027068cafbff0a7cc83f5ec0f56fd5c05414e12b09e4a7864120","timestamp":"0xa2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x13","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x88","hash":"0xa319642dc1aaea499d41297b8bb3ff7e3c384585405b991d36d5627ad3d3ece3","timestamp":"0xa3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x11","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x89","hash":"0x1be0924d3886374f6c2f0dcdd6db9aca4d56bc0f2511f9fa2043aa03f27b2365","timestamp":"0xa4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xf","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8a","hash":"0x071456a741a285adffef5badebd93fc7b5a0ccf117a4c00005665fe482f0d368","timestamp":"0xa5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xe","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8b","hash":"0x82f4533af6765e9db9c0455e8a929a5362106b0d2cd011fd35b875c7620649bc","timestamp":"0xa6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xd","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8c","hash":"0xbfa25768770ad64b028598bfc1686be598e4bb18f0d29cfa0e9620d0dae738a6","timestamp":"0xa7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xc","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8d","hash":"0x1aa83044b84a6d958afe243e6f0db39793d32d248d25ad505c686cca15cedd96","timestamp":"0xa8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xb","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8e","hash":"0xfcc685b0669fe8ea20212d550a217d16a1c8bf5a41b0a2c69b5620bce2b07838","timestamp":"0xa9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x8f","hash":"0x8de3cdd7e274cac23921ccb341f0a5a607f1c295939650b9773d64218586580b","timestamp":"0xaa","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x9","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x90","hash":"0x15a77d768cfb0b298565fd71fceb08682705e88fa12aee7df3852b45087ea90a","timestamp":"0xab","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x8","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x91","hash":"0x872fae430bf5138fdec629f50d187f93ee4180f69cf603112cedb11e1d0e1481","timestamp":"0xac","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x92","hash":"0xf05cdc4db769c834af777e42a5cfde75b68820dea23c4f64e396202ee2f07cd0","timestamp":"0xad","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x93","hash":"0xf65ed524b9dc70d6ae86205c8aeaf74e6e27b47c3c96c55f03920fdbce4574ec","timestamp":"0xae","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x94","hash":"0x68a676483e17844f24cac210c1f67fee71a56f14a9452c8e2cbd2097866b4189","timestamp":"0xaf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x95","hash":"0x587726ef226f989636dda28cca5f158b24e7d3ee6133dab5324faee4e4cd2ef6","timestamp":"0xb0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x96","hash":"0x3aa7ff5173303fbaaa732854a4a1b4fa2ac4e00eb2333212dc2a1af528aff07a","timestamp":"0xb1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x97","hash":"0x169091e9491ae3c2a387481daaac3dcc413c4999a0f3a6c064e1335b2ccf9b32","timestamp":"0xb2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x98","hash":"0x20a062126f6d9d2349860f5fab883aa3d679b8f9652b83544286c57e07188127","timestamp":"0xb3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x99","hash":"0xdf5a6cabb4d46fb76bdf9f9e7bee7f810402c16877f772448bc9833f51cbbec1","timestamp":"0xb4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9a","hash":"0x3fd5b157f172adf4bce52d90768dca1ef071641eab49f9e851c5a06fb01f42ea","timestamp":"0xb5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9b","hash":"0xe5a5407a0c55db2afc4ec13f8aae0a09cce073ff1e90acb916b08e52ebbdbbec","timestamp":"0xb6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9c","hash":"0xa5442d9a18696fb0051121b76c3cf64c266d2df0bed47b403e2b4df69ca87e32","timestamp":"0xb7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9d","hash":"0xc2445a096e1e963286d8f0ae58019b9dc2d0989aa84baf247a8394555e462a1f","timestamp":"0xb8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9e","hash":"0xe072f3f345a757cce4eb62ca0e060195dd224956abb37d5b945859a5c85565eb","timestamp":"0xb9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x9f","hash":"0x9a471c4bcc7ed1cd0212f92b24f5e7e2c1b14ae2de6b115886c620ee866fa58b","timestamp":"0xba","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa0","hash":"0x82a38b117c453a562b3b39a690f48b8f2ddf74b8918b6be6b714352e652af7c0","timestamp":"0xbb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa1","hash":"0xd82087e3ed6fc6d61bf9431d87a54e9ceda8392a7e6d8f8bc958d3b01852af79","timestamp":"0xbc","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa2","hash":"0xf21cc7579fdf6b1a8616d582b8859dc6044685b269910036767e770c6495c88d","timestamp":"0xbd","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa3","hash":"0x6309f778ca77215686b33a230fb35735e8edea3ca83048afec334b50e44ebc10","timestamp":"0xbe","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa4","hash":"0x350276f62b1abf40abfc56fdc0a2797e9122305317a9c9f7ac6bc093608f6080","timestamp":"0xbf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa5","hash":"0xbfd496167f97acaf6b450295cfee00401971fe29954e496ffbff788fb0be3d84","timestamp":"0xc0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa6","hash":"0x86287f66203eae50a2c214b04c866c65550cc74a8c1ae57402d18e2b3569ede3","timestamp":"0xc1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa7","hash":"0x94967fdd89c8a93a73691b40cf1638f102632f80982c569ae4cfb51064be4523","timestamp":"0xc2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa8","hash":"0x5da3d5e1fce642ff49f9258429088d9496e5f1215255a69fb76dc49e67f488f5","timestamp":"0xc3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xa9","hash":"0xa6582bb937cddb225669b96877945a87d4c9e675ce8ec37938be69b0d9ec10d2","timestamp":"0xc4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xaa","hash":"0xe35fb5331109afb6cf556ccc1d64c2c8ebc4278e4122f99172a6890335f9e83e","timestamp":"0xc5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xab","hash":"0x381c7fa5d1512009f5c6a17a2ebaca4edefbf5eb6f725ea0256c82382175a805","timestamp":"0xc6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xac","hash":"0xdac3821ffd65f08c42621dddee35c0d84aaa5b9495e6d8f9e5d5855948532dd1","timestamp":"0xc7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xad","hash":"0xbaeb3faa4390b4133789b5eab1b7aaa9250ea82715669b8316d8c141b974f99b","timestamp":"0xc8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xae","hash":"0xa6a09559ccd3cfacd9e163237eb1488f1902e99b15c8f09e7a068897e6c78067","timestamp":"0xc9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xaf","hash":"0xa707c975d84aa1fb97687b77359acb931df71ab1020574fb105ba19c8c3baeb4","timestamp":"0xca","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb0","hash":"0xf02d9d8517728e8ab010e39927a55d2b22059429ba07c33c4ec86781ef78ea05","timestamp":"0xcb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb1","hash":"0x606db1280515f0c6fa3d793551378a11b16a4866354af851635e0aa0d87acd53","timestamp":"0xcc","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb2","hash":"0x3ebf35d32fe58de44c638fa319d57ac6114453a60e71e077cc4b1e62cee53bd0","timestamp":"0xcd","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb3","hash":"0x177c9564602345220ed4813ad415f4a013ff10939fa0cc2bd7e2b3d8ac3bc8eb","timestamp":"0xce","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb4","hash":"0x842ee3608a391f3dd0fb1c7d39206be29e2dcdc199e38367a76666674bcdc1f3","timestamp":"0xcf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb5","hash":"0x561e893306fdf8e869bcaf59f2778617f39f172908ea7fd1c6d091245c52f68a","timestamp":"0xd0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb6","hash":"0x87a5970927135ecc6ed177e9d40f149443ab956e3dd23a7309914e9b13d536f9","timestamp":"0xd1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb7","hash":"0x740152e269c77226a7689f11caf32815ca78438f4e590ff90f7bb2fee13a36e8","timestamp":"0xd2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb8","hash":"0x37f7181d0f4ed5ad7e77a86e5238de34d9719431a052ef5ed1cf9963aa829100","timestamp":"0xd3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xb9","hash":"0x461b76f001137f69a6d8c3777e14bf3daa01a64b33dff05e2f741d4cd2262a3e","timestamp":"0xd4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xba","hash":"0x4a864d5feb5b6089a9ed27ea657357e1125d37deff9bc0cf6f15c959bec4ae0f","timestamp":"0xd5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbb","hash":"0xe6270a7e704c208880f33212d70f24b14e4a4b9a65a497e7349a489f34487850","timestamp":"0xd6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbc","hash":"0x68b87657a6baf024e7a2b54ae587b646949b3813e5ecb58d8a9bc5c4daecce68","timestamp":"0xd7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbd","hash":"0xa26a7897a462c191a58071c4daf6200da62fa6dd3bd42da191040b78e8c21df7","timestamp":"0xd8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbe","hash":"0x437ed46d1f5970dc0dc36db849e585fc8cb72084c80e8a0e2ca4d477a28343ce","timestamp":"0xd9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xbf","hash":"0x92f4f2e67d2ce565f6cfb7f52077f219a2ba1e8a619d9e38d814dda464b93012","timestamp":"0xda","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc0","hash":"0x9bfc345c9871036efac34d3fb0038567e5924647453f5e740e590e0743747583","timestamp":"0xdb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc1","hash":"0xd7427a6e974bc3667aeb1b567ac9bf4265b663172ead55293f2254992ec4e639","timestamp":"0xdc","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc2","hash":"0x3f2023fe84024872022e5b9684e4f5826a8cb06ef8236950d787252cb6243f39","timestamp":"0xdd","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc3","hash":"0x3a8e29fa58039e425c0654b4b6d8065ba6dd32ac264b1d9a9043c763c6e3dd5f","timestamp":"0xde","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc4","hash":"0x586957aff91638d2974b52048feea228edf2dd148deaab9551bd90106d598a25","timestamp":"0xdf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc5","hash":"0xbfa7ac5fe1da85af46c6b5d94b3e8267952a713bf24733018f57280e0d049cbf","timestamp":"0xe0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc6","hash":"0xe843c8e1750b7a8e0ec135a8785ce4beb00fe557448eae33819eac5a84901b61","timestamp":"0xe1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc7","hash":"0x23d27294388aa2350eefe3042254e25e1c4bfe918036c756eb302012233d1f81","timestamp":"0xe2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc8","hash":"0xf320b3cae6dc28a03ad80ca6da5a31cf51af404d024ac9d50b3daa66a03da822","timestamp":"0xe3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xc9","hash":"0x1f16c4ce335aa598773fa1d16f7d57d6ed40151a26ac32cc0d3378bc3050aa1f","timestamp":"0xe4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xca","hash":"0xee87f57b3f02dfeaa6ccbd076f1b17b4f5b2e1bf439e05f276c59ee66f98f191","timestamp":"0xe5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xcb","hash":"0xa9b965f895601e1f6acd54c7c1ef8ba9d583bb745c932f544c2b19623fee2aa4","timestamp":"0xe6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xcc","hash":"0x077275160e7431da638412abed9e152275dd9f70246fd21631f70dc173d76a67","timestamp":"0xe7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xcd","hash":"0x4e17d0939a97c7ebbb2427dd3507ee265e3e534c86cfb46f95fc59fc2e538609","timestamp":"0xe8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xce","hash":"0xa53977fd488114fd6343121b87b5787f04ab1246ed1356d9a01439ed89c8ce6f","timestamp":"0xe9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xcf","hash":"0x9a9477b7d6507c3e73aa62c7f687bde532d7dd5721d476f7a64f91c77d07a9a8","timestamp":"0xea","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd0","hash":"0xcb90f711ea107e2db96261c6981ccff8a491a78ab433c4aa92976cc6799e2629","timestamp":"0xeb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd1","hash":"0xd78673a42840fbb534811cf1c879f41ca0986cf52f16b261d6ca46acc911e0af","timestamp":"0xec","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd2","hash":"0x13eccb58b2d4d13dfd65282ba7072c0110cc141d8312702ad2ba111a665ff1d4","timestamp":"0xed","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd3","hash":"0x3c1433a507d8e6eb90e77278eba3fbe323892bb5cd8eb21604b2500567bf38c4","timestamp":"0xee","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd4","hash":"0x764bb93fedc1bd3c18e0ea2a5c9bf7f19e51e02de12565b6ecf7903f16e752a2","timestamp":"0xef","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd5","hash":"0xc4fd1c04657f2c9bef93804bd295833c5688eb54d71696382665bc9a8f31b4ae","timestamp":"0xf0","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd6","hash":"0xc5c0704e717afce7474061fa7a095e26f02b387249b58b34930ea433d61bcd57","timestamp":"0xf1","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd7","hash":"0xb2b3511502dfae3f529b495dc9df1f9d4018643807c6c20c56bc108ab87d36b0","timestamp":"0xf2","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd8","hash":"0x25d92d10e8c183d46bb39cf3e0c99c57cc77a9781a1b81dc17ebebe5962492eb","timestamp":"0xf3","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xd9","hash":"0xcd32294c2cf0c0b0f166440aaddd09dffb3ed505b4f95210537e8361669c0b82","timestamp":"0xf4","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xda","hash":"0xc5f028aab1e08f23cf596ad15b012f214bd07ed7015884af2dab33ea2b820803","timestamp":"0xf5","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xdb","hash":"0xdc6694d42e2c7e4f764a67a106b267882939d9b6ecd8c66a3273a1791f8adf26","timestamp":"0xf6","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xdc","hash":"0x67ef9081c336e03cd2280a2b6d8ab46c57f653b6868af88fcbe4fc61ea40afcc","timestamp":"0xf7","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xdd","hash":"0x34e49c0a921a1e61d7076880a8ee141feb01a3f1a0d1b46caa6fb5a036316faf","timestamp":"0xf8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xde","hash":"0x440a403f81eb5f77bc6acbae2b367b55937c1e42f32eae9dd74d1a1e40a6b9f1","timestamp":"0xf9","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xdf","hash":"0xddd8656d5bd790385e47425d0d26dd9cfd7323ae90e192449e963de6194811f2","timestamp":"0xfa","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe0","hash":"0xdf1a9caf6898c6d41d1bac28d5c4e7e53f16ea93cd1658aef48ccd527572ac33","timestamp":"0xfb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe1","hash":"0xdbe0d17ca485843f0512f53eff7ec3de4c4e26c407987b2362ec186795ee6325","timestamp":"0xfc","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe2","hash":"0xac582d2d8ea23ac962fdd68030e4f7e9e4ad115908f56e1ec838f71cd1bde4a1","timestamp":"0xfd","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe3","hash":"0x87457c2d6d851eaee05d3a1e2a20df5eaa0db19535bec57c4bf8b72c921341ce","timestamp":"0xfe","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe4","hash":"0x227ff0d1ed7657e2e2f0ac996849d690797283e7e501f9518e8a5a1ab798142b","timestamp":"0xff","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe5","hash":"0x083f37fd6d7709f098c4ca3a8839cad06b8f1793aa2e8bfdf47bb0a8c5a8f389","timestamp":"0x100","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe6","hash":"0x3c95c281f4ab08575ea1722500888a056b882f3a047dd676abd8b265c6b434de","timestamp":"0x101","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe7","hash":"0xdec7be224a5d9087bc0065360a052fd7443afc98117c6355df449602afe4f3ce","timestamp":"0x102","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe8","hash":"0xab58d362cf79c315f67ede4d914e016c0839fdf7f51bc53d7a1eaf8a7ae0a6f2","timestamp":"0x103","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xe9","hash":"0x734de35ee9c069c395bb42875cecc20366d0b7ebcbeb2061f7c6d13588171e93","timestamp":"0x104","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xea","hash":"0xb92c53961379f1e0f95df34d99964011ef02c247c2383b46935f5053d88ee64c","timestamp":"0x105","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xeb","hash":"0xdc5cd1c9d408de35905506cb577ea45db21206808cb1ab9c21c121f38c03a3c4","timestamp":"0x106","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xec","hash":"0x597bfb5e3b00d9cdb26b3d817d0a6a56772448456674855cc3a664c70c34225e","timestamp":"0x107","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xed","hash":"0x3a7b6e4bc99091ddec9c7d255d32a0736b1ae5d2cf6cb6a3c0dc85b3e682396b","timestamp":"0x108","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xee","hash":"0x662bf5618dbd8a418c958cd593f43db27ec3ad5379dd84a316baa105f7df40e2","timestamp":"0x109","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xef","hash":"0xd5ed65d05a570bcc24c89816888fae3e6b53ab060e914c7350431bc12cac01e7","timestamp":"0x10a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf0","hash":"0xd792db77fc12727a2482369d1ea7f2fdf16adfd7e36cd28fa172d351cc5085bf","timestamp":"0x10b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf1","hash":"0xff5aa28968b501bf0e26b6a52d68f44978679ccab1259e23b6ad0af2250e0860","timestamp":"0x10c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf2","hash":"0xd9be043ffe9d33c8686a0e50d8ee8476533e7beb73d69428c4cdeacc4872912c","timestamp":"0x10d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf3","hash":"0x7b33908e3eb58af491f3d8fcd800dee7b0ec0ceca00ec296ff6ba3f39abfb9c0","timestamp":"0x10e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf4","hash":"0xbbb14971ff38671f05a5e80ddea4dc415fbfbcd5ec1633cffbe57c3681ae6fd7","timestamp":"0x10f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf5","hash":"0x0a8e107a987ec7fab409b44f36dd285708da8fcc9dea6a1123b7927feb2c663d","timestamp":"0x110","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf6","hash":"0xab5f1fbfd4061bad739e717c9bfaad0d97df6235fbf791e7960f1340d98ab00e","timestamp":"0x111","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf7","hash":"0x227fc2948e30496ba7ed222373c9edfdf3f4dc333dc5cde33d963c2ef76063b7","timestamp":"0x112","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf8","hash":"0x78709d5aca32d4205c4e5e200d8d60ad2ec56c0e70243b337451c733f1d2ad90","timestamp":"0x113","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xf9","hash":"0x7a16642100fa663d20b53dba3e7f34d2576eaaa1bc2b6a8b546f02724f3bcc9d","timestamp":"0x114","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfa","hash":"0x4eba32ee1a6197b93923dce20b1367b3d71edc233e0c7b7208b06e6506583627","timestamp":"0x115","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfb","hash":"0x694f8f140f4e4c98f90808be6f42c023c7c4a768a9cc11971c27586d36844a1b","timestamp":"0x116","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfc","hash":"0x16f548b8d091c1602f223fda9f656789be27d9b971152b1dfb67e38bb4e11a81","timestamp":"0x117","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfd","hash":"0xa09b690a5e34da11a6b4342e041c8ceb7ba6d8b2bc5d55ebfc58ebfcfebf4cf3","timestamp":"0x118","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xfe","hash":"0x207f995ddf5e1c73fbb95a7daa8d46a4df549b8cd0a8ae7eb3131ea894ecc309","timestamp":"0x119","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0xff","hash":"0x255849d7a35a283164a91294122e9c38ec46503d405080827ecff4c2ab965105","timestamp":"0x11a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x100","hash":"0xe2e5de15adff1c024d9ed1368e420015464a570bf9f53fa55555ee5c72ad89f9","timestamp":"0x11b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x101","hash":"0xd6f1ea7566f7f298516c6d8a4befa0fadff1868300050447338a26d592cc93a5","timestamp":"0x11c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x102","hash":"0x9f69b73f125e492589453a0302f4a1fc5470112a55a07b910471cf14b9a3ca0f","timestamp":"0x11d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x103","hash":"0xc3e2838bc2873dea97b2ddb3cd1cf84791761b024c177e16e435b2aa1eeda3c2","timestamp":"0x11e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x104","hash":"0x50f067a05497221e872d2d3870a9bb386265895741f08923484d2a58d3fa12cf","timestamp":"0x11f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x105","hash":"0x95f398907dbfedcdb5c8c654c45f3a41ed880d6f9d874fe10eaca010a8c7e8a6","timestamp":"0x120","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x106","hash":"0x86b63760a8c673c38a03d721ddcfa86f3ed241137adb9c1d4152b69dec878f2f","timestamp":"0x121","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x107","hash":"0xc4af83d3609a5487260715aa6595afa7048ed24c82e638348d90b34eba249f9b","timestamp":"0x122","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x108","hash":"0x52c9fa009f0fe3ef58ff32ae1f333a0d0f88aea117e70febe1479cd54673a4ec","timestamp":"0x123","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x109","hash":"0x0b1d7fcc78f64dccd508f69646b5aa340cef1441e531658f832a4db02e9ee734","timestamp":"0x124","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10a","hash":"0xfe3cc19f807e5656e07dadaf683f007eac60560f7d3fe237e456fae7e554d9cd","timestamp":"0x125","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10b","hash":"0xe9dc5e083aa418b59eb2b881053b09c4b6e3650b9b300bb5656a0e85d2ba4893","timestamp":"0x126","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10c","hash":"0xc68c4a51aa73848e1debe8b1264fdea92f5fd17b7da27c83a99b9c9075f556ef","timestamp":"0x127","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10d","hash":"0xaeaa6744f42305a6095bb28606ee4d8f6a5d0ccdd26725eb2d239cb9d1993694","timestamp":"0x128","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10e","hash":"0x9ea8107130340d216273a67c59a0c98ee02c3cf66a8c402b033307868c897f73","timestamp":"0x129","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x10f","hash":"0x9e8ca46837bcd9bd3bab113c90168747179630ec8836e9f1c51ac270c1b0cc09","timestamp":"0x12a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x110","hash":"0x907446a6b84db024c1405c30adf9bf20a80a848b34d792f3fac93f6e57064b72","timestamp":"0x12b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x111","hash":"0x8a3eb0803b5a5b93161cd9dac211d1e694639b02475f47f84e8c8af4e56f6b52","timestamp":"0x12c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x112","hash":"0x53db4c2bef0fd46826427aea99442e1377d9a1982cb4c69e01c359a8706528ff","timestamp":"0x12d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x113","hash":"0x2abfc0f55324c7f10f9f3a850801b57a80df4c464d2aa333609ae65ddf1091e2","timestamp":"0x12e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x114","hash":"0x5ef4f8451044d471fbf2fac7de06df0f1dc048b2bf9641d8336281467107f792","timestamp":"0x12f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x115","hash":"0xd584903af6d432258ea49d0ad26c669adc64818e1b3433143e7f031d5eda570b","timestamp":"0x130","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x116","hash":"0x9d81c50d24500aaa0f043dac8bc2f1d76b504772b9c01fe70ec4c51a009928a6","timestamp":"0x131","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x117","hash":"0x802b4f3fa478da6fe8316157d5f413a4b8a0861bea4ff7b1dddfef8cd1a40af7","timestamp":"0x132","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x118","hash":"0x8883d52946399f9eb4f99a99fe0c00fa9f7e6f988696d56ae9514a3ab8422cda","timestamp":"0x133","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x119","hash":"0x5960cd17b25b13d83a59774c3e47520361c1bf5bf53d0ee60fc681b6e73fe804","timestamp":"0x134","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11a","hash":"0x2ce28e077a298c38b3ee9b4c06705f741a6f790a0b558583a6c7dd95dade8d35","timestamp":"0x135","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11b","hash":"0x31900f68fee58f50a3e628efdb99cdf802df640b46869ee44049529954e0bf9b","timestamp":"0x136","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11c","hash":"0xc0e285598b9349d55050bf0a0c0f880c4a4a18f2ddff5e2c4e86ed12964ca47a","timestamp":"0x137","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11d","hash":"0xeaca05f0bf9e264b33510a7ec91f91ae45a106314716732a74017da1e5a8ea42","timestamp":"0x138","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11e","hash":"0xfe7d95242edc3af0e7b667fad8bdc0e947281ad80601cb097a391061266c3ede","timestamp":"0x139","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x11f","hash":"0x8335cc0750f356efc4192dc271fcb03b51f77a5693fa58526bc8f56db74c8434","timestamp":"0x13a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x120","hash":"0x0b218cd8743746daabef28ba995f3359d1e19e32993c1c7b07b68bea1ca86d0c","timestamp":"0x13b","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x121","hash":"0x0ba7853e15dcd6d12f725b20ff57886c8a3f086e9f4291028362df6d6815eaa3","timestamp":"0x13c","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x122","hash":"0x80c994244703b88ab5a8d1234457ca1cd4c28ed7a277bd40db599d81683ba6ab","timestamp":"0x13d","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x123","hash":"0xe65fd4b43004b26c37f715f7cae8ce51a4efa4505079fbda0d10cbfcb64a9a4f","timestamp":"0x13e","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x124","hash":"0x83e265a6c123e5653f30a6dc8d84d8c9fcbfda84158cfbe5c3b57912ffdaae73","timestamp":"0x13f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x125","hash":"0x1c30bad6048b5eae6df6eda4975fd3c1968660c4acd3854df70e21dc4ba71286","timestamp":"0x140","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x126","hash":"0xf5cc51c85c064189bb49401ebfc0a4fe27ef7558a05a19b61dd0556c7b8f0f83","timestamp":"0x141","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x127","hash":"0x25212b3be4bf5b6c958eabcc49a974fca3a3180e11e0b36caa0a4384a4ccae95","timestamp":"0x142","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x128","hash":"0xbbb74d69d0e5e473122f2481989afb028f63b538b86a965f5339211433f1a722","timestamp":"0x143","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x129","hash":"0x3986365a3c3c5f4757b0b9f027778463fcbc8ce4553e7f34ad7caec5b3b0ab01","timestamp":"0x144","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12a","hash":"0xe6ed11b94a735f4170ac916384c96972cc47020e277129a3ed442215a05dcdc4","timestamp":"0x145","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12b","hash":"0xd0bc63b108a3886c73231e0fd777450d6df2fabae0c226167d512fbe5e8f1dc0","timestamp":"0x146","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12c","hash":"0x0b5473823f27eb11b22d3a780a9d481f9a8a9abeff38a805243192ac8770eb08","timestamp":"0x147","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12d","hash":"0xea9a2e690ee6bf8836727b7310da6940cd9fc8584ff451ddcec55ab0f1918871","timestamp":"0x148","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12e","hash":"0xe2dbe0a2de836dead48344f653333184d519149f093917f127cf08957b1eb4cc","timestamp":"0x149","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x12f","hash":"0x9b48a0d4f5d7afc5345e9f708e026af64926849b210ee487728055da5bd13503","timestamp":"0x14a","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x7","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]}]} diff --git a/tests/eth_multicallV1/multicall-block-num-order-38020.io b/tests/eth_multicallV1/multicall-block-num-order-38020.io index d8d0d9b80..c48900d0c 100644 --- a/tests/eth_multicallV1/multicall-block-num-order-38020.io +++ b/tests/eth_multicallV1/multicall-block-num-order-38020.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xc"},"calls":[{"from":"0xc100000000000000000000000000000000000000","input":"0x4360005260206000f3"}]},{"blockOverrides":{"number":"0xb"},"calls":[{"from":"0xc000000000000000000000000000000000000000","input":"0x4360005260206000f3"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xc"},"calls":[{"from":"0xc100000000000000000000000000000000000000","input":"0x4360005260206000f3"}]},{"blockOverrides":{"number":"0xb"},"calls":[{"from":"0xc000000000000000000000000000000000000000","input":"0x4360005260206000f3"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"block numbers must be in order"}} diff --git a/tests/eth_multicallV1/multicall-block-override-reflected-in-contract-simple.io b/tests/eth_multicallV1/multicall-block-override-reflected-in-contract-simple.io index efc047d13..529015221 100644 --- a/tests/eth_multicallV1/multicall-block-override-reflected-in-contract-simple.io +++ b/tests/eth_multicallV1/multicall-block-override-reflected-in-contract-simple.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa","time":"0x64"}},{"blockOverrides":{"number":"0x14","time":"0x65"}},{"blockOverrides":{"number":"0x15","time":"0xc8"}}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa","time":"0x64"}},{"blockOverrides":{"number":"0x14","time":"0x65"}},{"blockOverrides":{"number":"0x15","time":"0xc8"}}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x14e26461892c9ee4e59b799e850482a7e8f8669ad5d0e99beb6265a49ab36e7f","timestamp":"0x64","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x14","hash":"0x78a71d5ebd99dca095424e1648f133bef0657f70ca340975451ccc1a1cab3007","timestamp":"0x65","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x15","hash":"0x5aa75ea289dff8bee88e400ed192948f52f3f1c9b3e3b1eb7432f72467b82663","timestamp":"0xc8","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]}]} diff --git a/tests/eth_multicallV1/multicall-block-override-reflected-in-contract.io b/tests/eth_multicallV1/multicall-block-override-reflected-in-contract.io index 11045e392..5aad931df 100644 --- a/tests/eth_multicallV1/multicall-block-override-reflected-in-contract.io +++ b/tests/eth_multicallV1/multicall-block-override-reflected-in-contract.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa","time":"0x64","gasLimit":"0x2e630","feeRecipient":"0xc000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000012","baseFeePerGas":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x14","time":"0xc8","gasLimit":"0x2e631","feeRecipient":"0xc100000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","baseFeePerGas":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x15","time":"0x12c","gasLimit":"0x2e632","feeRecipient":"0xc200000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","baseFeePerGas":"0x1e"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa","time":"0x64","gasLimit":"0x2e630","feeRecipient":"0xc000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000012","baseFeePerGas":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x14","time":"0xc8","gasLimit":"0x2e631","feeRecipient":"0xc100000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","baseFeePerGas":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x15","time":"0x12c","gasLimit":"0x2e632","feeRecipient":"0xc200000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","baseFeePerGas":"0x1e"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0xee9f71ade67fdbb769832cfeb88f1051a9ac9679e3bde337d963fb700fa639ac","timestamp":"0x64","gasLimit":"0x2e630","gasUsed":"0x57bc","feeRecipient":"0xc000000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000012","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000539000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000002e630000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000293e6000000000000000000000000000000000000000000000000000000000000000040216dde23f0d4bc307cec4522dd13917453223832a495f7df029a6842e595bd","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x14","hash":"0xddde3f24465e2ab6bceff78eca0570ebe4c5a9c7b5be20fe025c1aa029cca905","timestamp":"0xc8","gasLimit":"0x2e631","gasUsed":"0x57bc","feeRecipient":"0xc100000000000000000000000000000000000000","baseFeePerGas":"0x14","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000539000000000000000000000000c1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234000000000000000000000000000000000000000000000000000000000002e631000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000293e70000000000000000000000000000000000000000000000000000000000000000ed82d8113b4dfb96a42b0328ae00ab5253900fbb2eeead5d142cc38eb9f46044","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x15","hash":"0xb1f3bb2f1d7e51c76ab9c3e69fc996b6651472dd2314415d8dc3613f67fd6d83","timestamp":"0x12c","gasLimit":"0x2e632","gasUsed":"0x57bc","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0x1e","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000539000000000000000000000000c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001234000000000000000000000000000000000000000000000000000000000002e6320000000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000293e80000000000000000000000000000000000000000000000000000000000000000ddde3f24465e2ab6bceff78eca0570ebe4c5a9c7b5be20fe025c1aa029cca905","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-block-timestamp-auto-increment.io b/tests/eth_multicallV1/multicall-block-timestamp-auto-increment.io index 6fe4a5338..7dfc85ba0 100644 --- a/tests/eth_multicallV1/multicall-block-timestamp-auto-increment.io +++ b/tests/eth_multicallV1/multicall-block-timestamp-auto-increment.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xb"}},{"blockOverrides":{}},{"blockOverrides":{"time":"0xc"}},{"blockOverrides":{}}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xb"}},{"blockOverrides":{}},{"blockOverrides":{"time":"0xc"}},{"blockOverrides":{}}]},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"timestamps must be in order"}} diff --git a/tests/eth_multicallV1/multicall-block-timestamp-non-increment.io b/tests/eth_multicallV1/multicall-block-timestamp-non-increment.io index 4971a7090..3780774d6 100644 --- a/tests/eth_multicallV1/multicall-block-timestamp-non-increment.io +++ b/tests/eth_multicallV1/multicall-block-timestamp-non-increment.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xc"}},{"blockOverrides":{"time":"0xc"}}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xc"}},{"blockOverrides":{"time":"0xc"}}]},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"timestamps must be in order"}} diff --git a/tests/eth_multicallV1/multicall-block-timestamp-order-38021.io b/tests/eth_multicallV1/multicall-block-timestamp-order-38021.io index 97406580c..a4e7cd338 100644 --- a/tests/eth_multicallV1/multicall-block-timestamp-order-38021.io +++ b/tests/eth_multicallV1/multicall-block-timestamp-order-38021.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xc"}},{"blockOverrides":{"time":"0xb"}}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xc"}},{"blockOverrides":{"time":"0xb"}}]},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"timestamps must be in order"}} diff --git a/tests/eth_multicallV1/multicall-block-timestamps-incrementing.io b/tests/eth_multicallV1/multicall-block-timestamps-incrementing.io index 88440c4d9..8b55de916 100644 --- a/tests/eth_multicallV1/multicall-block-timestamps-incrementing.io +++ b/tests/eth_multicallV1/multicall-block-timestamps-incrementing.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xb"}},{"blockOverrides":{"time":"0xc"}}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0xb"}},{"blockOverrides":{"time":"0xc"}}]},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"timestamps must be in order"}} diff --git a/tests/eth_multicallV1/multicall-blockhash-complex.io b/tests/eth_multicallV1/multicall-blockhash-complex.io index 94f2667e6..a048fb897 100644 --- a/tests/eth_multicallV1/multicall-blockhash-complex.io +++ b/tests/eth_multicallV1/multicall-blockhash-complex.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"}]},{"blockOverrides":{"number":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e000000000000000000000000000000000000000000000000000000000000000a"}]},{"blockOverrides":{"number":"0x1e"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e000000000000000000000000000000000000000000000000000000000000001d"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"}]},{"blockOverrides":{"number":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e000000000000000000000000000000000000000000000000000000000000000a"}]},{"blockOverrides":{"number":"0x1e"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e000000000000000000000000000000000000000000000000000000000000001d"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0xb9d30e9e963937d2cc63ff8738cf6758bd87b3ff7793a8e0b51cf651fef107fb","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2","logs":[],"gasUsed":"0x552c","status":"0x1"}]},{"number":"0x14","hash":"0x2a3d2acd8f48b9ddbf1eb5097d36f98a8b99998a1b85521f2a69b12a88871aa5","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0xb9d30e9e963937d2cc63ff8738cf6758bd87b3ff7793a8e0b51cf651fef107fb","logs":[],"gasUsed":"0x552c","status":"0x1"}]},{"number":"0x1e","hash":"0xff2a5abd442b5d8121e524616f2599aab7ef2c73cba5daba4f7181f96aeeffb3","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0xcd3d71f2a0f75b2e21ab038f9b1cc2a1960fae4c0ce1010cef667aeaf981ca51","logs":[],"gasUsed":"0x552c","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-blockhash-simple.io b/tests/eth_multicallV1/multicall-blockhash-simple.io index 94808c441..0e0cca016 100644 --- a/tests/eth_multicallV1/multicall-blockhash-simple.io +++ b/tests/eth_multicallV1/multicall-blockhash-simple.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xd79a45d2299074d9555b80ca4c7ea39f565defe1df77ff6f4ae94b5f0c8f2d4c","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2","logs":[],"gasUsed":"0x552c","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-blockhash-start-before-head.io b/tests/eth_multicallV1/multicall-blockhash-start-before-head.io index 764b9d833..894250811 100644 --- a/tests/eth_multicallV1/multicall-blockhash-start-before-head.io +++ b/tests/eth_multicallV1/multicall-blockhash-start-before-head.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000002"}]},{"blockOverrides":{"number":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000013"}]}]},"0x1"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000002"}]},{"blockOverrides":{"number":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000013"}]}]},"0x1"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x39793894c251644ceab60489f39f81addc4197561bb13a4080e27350de1b7237","timestamp":"0xb","gasLimit":"0x4c4b40","gasUsed":"0xaa58","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2db08786","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x898753d8fdd8d92c1907ca21e68c7970abd290c647a202091181deec3f30a0b2","logs":[],"gasUsed":"0x552c","status":"0x1"},{"returnData":"0x0b72e4e30f06e8d0ccd1920adfb3c7a70a887aa7195065b695eb11246eed9051","logs":[],"gasUsed":"0x552c","status":"0x1"}]},{"number":"0x14","hash":"0xf4db9d4e4725517994cb16d3ac0a46d7cd9493d30e95e5eb46685d0046903f77","timestamp":"0xc","gasLimit":"0x4c4b40","gasUsed":"0x552c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x27fa7696","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x32d1420f0b3d9e230a3cd81666d9ee616d2a8b63537da8fef4a1e691908a2fba","logs":[],"gasUsed":"0x552c","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-check-invalid-nonce.io b/tests/eth_multicallV1/multicall-check-invalid-nonce.io index cdaf670b3..4f7fea88b 100644 --- a/tests/eth_multicallV1/multicall-check-invalid-nonce.io +++ b/tests/eth_multicallV1/multicall-check-invalid-nonce.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4e20"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x1"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x0"}]}],"validation":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4e20"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x1"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x0"}]}],"validation":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x4aca804390f3931f667f0ae572fb204881c5fba4ebd1ea735b6ccbfd38475d19","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5","hash":"0x6b1d7313f0b0078c737064915bf75ac42e796cfedd6a9d88462df43529eeb098","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xa410","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xc100000000000000000000000000000000000000, tx: 1 state: 0 (supplied gas 4979000)","code":-38011}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-check-that-balance-is-there-after-new-block.io b/tests/eth_multicallV1/multicall-check-that-balance-is-there-after-new-block.io index b12f3147e..3490d83cc 100644 --- a/tests/eth_multicallV1/multicall-check-that-balance-is-there-after-new-block.io +++ b/tests/eth_multicallV1/multicall-check-that-balance-is-there-after-new-block.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x2710"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x2710"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xbaad63955be94a5ab426d8574afda7c295e68d3bf5b3f1b4b6294a9eae963862","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x10732","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000002710","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]},{"number":"0x5","hash":"0xa0a9cb7e4e1b6ccb5bf647ed2f490c78363b737ff41a7046729734cf98ead2e0","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x10732","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000002328","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x00000000000000000000000000000000000000000000000000000000000003e8","logs":[],"gasUsed":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-check-that-nonce-increases.io b/tests/eth_multicallV1/multicall-check-that-nonce-increases.io index 97f8f5014..8000d0263 100644 --- a/tests/eth_multicallV1/multicall-check-that-nonce-increases.io +++ b/tests/eth_multicallV1/multicall-check-that-nonce-increases.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4e20"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x1"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x2"}]}],"validation":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4e20"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x1"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x2"}]}],"validation":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x4aca804390f3931f667f0ae572fb204881c5fba4ebd1ea735b6ccbfd38475d19","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5","hash":"0x1defc2e13eea98d99c93d2fe572a97a30517274cb3edf2d2c40f1dee6792e03d","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xc100000000000000000000000000000000000000, tx: 1 state: 0 (supplied gas 4979000)","code":-38011}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xc100000000000000000000000000000000000000, tx: 2 state: 0 (supplied gas 4979000)","code":-38011}}]}]} diff --git a/tests/eth_multicallV1/multicall-contract-calls-itself.io b/tests/eth_multicallV1/multicall-contract-calls-itself.io index 42a2acbda..3460b0d43 100644 --- a/tests/eth_multicallV1/multicall-contract-calls-itself.io +++ b/tests/eth_multicallV1/multicall-contract-calls-itself.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xfe3411689e0e084eb010c006a946d5930c275e091d33c4bf8efa6165d4ef45c0","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000002310a91d00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000004bf8f600000000000000000000000000000000000000000000000000000000000000000279dbea83debc0ad7c849d4e0f0b4dd12f5d1e44caa000eb81906226361c33e","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-empty-calls-and-overrides-multicall.io b/tests/eth_multicallV1/multicall-empty-calls-and-overrides-multicall.io index e737f96e0..9cc6219f3 100644 --- a/tests/eth_multicallV1/multicall-empty-calls-and-overrides-multicall.io +++ b/tests/eth_multicallV1/multicall-empty-calls-and-overrides-multicall.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{},"calls":[{}]},{"stateOverrides":{},"calls":[{}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{},"calls":[{}]},{"stateOverrides":{},"calls":[{}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"contract creation without any data provided"}} diff --git a/tests/eth_multicallV1/multicall-empty-multicall.io b/tests/eth_multicallV1/multicall-empty-multicall.io index 98e61d663..402147701 100644 --- a/tests/eth_multicallV1/multicall-empty-multicall.io +++ b/tests/eth_multicallV1/multicall-empty-multicall.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32603,"message":"method handler crashed"}} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-by-default.io b/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-by-default.io index cf5ee0c7b..15e009076 100644 --- a/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-by-default.io +++ b/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-by-default.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-on-revert.io b/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-on-revert.io index 5c15bd1ce..23bf1dfd5 100644 --- a/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-on-revert.io +++ b/tests/eth_multicallV1/multicall-eth-send-should-not-produce-logs-on-revert.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xdc6bd2c667c2299bfb2f04bd9166c55982c54c054edd593a38a4a5e197d8ae22","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5355","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5355","status":"0x0","error":{"message":"execution reverted: Always reverting contract","code":-32015}}]}]} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-produce-logs.io b/tests/eth_multicallV1/multicall-eth-send-should-produce-logs.io index 68f450fe6..cdf465016 100644 --- a/tests/eth_multicallV1/multicall-eth-send-should-produce-logs.io +++ b/tests/eth_multicallV1/multicall-eth-send-should-produce-logs.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0xa4d41019e71335f8567e17746b708ddda8b975a9a61f909bd3df55f4866cc913","transactionIndex":"0x0","blockHash":"0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-produce-more-logs-on-forward.io b/tests/eth_multicallV1/multicall-eth-send-should-produce-more-logs-on-forward.io index 37433a231..2d0ca8162 100644 --- a/tests/eth_multicallV1/multicall-eth-send-should-produce-more-logs-on-forward.io +++ b/tests/eth_multicallV1/multicall-eth-send-should-produce-more-logs-on-forward.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x4b64e4920000000000000000000000000000000000000000000000000000000000000100"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x4b64e4920000000000000000000000000000000000000000000000000000000000000100"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xb74dfb0c517970bc1378d8baed93ef35b4aec7fa11b15be250003cee97fc78e4","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xdad2","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0x7763dfb708d124419ec96043afa1bfff0d2ee7ecd8b92298a7672c3be1a9e7bb","transactionIndex":"0x0","blockHash":"0xb74dfb0c517970bc1378d8baed93ef35b4aec7fa11b15be250003cee97fc78e4","logIndex":"0x0","removed":false},{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c100000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000100"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0x7763dfb708d124419ec96043afa1bfff0d2ee7ecd8b92298a7672c3be1a9e7bb","transactionIndex":"0x0","blockHash":"0xb74dfb0c517970bc1378d8baed93ef35b4aec7fa11b15be250003cee97fc78e4","logIndex":"0x1","removed":false}],"gasUsed":"0xdad2","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-eth-send-should-produce-no-logs-on-forward-revert.io b/tests/eth_multicallV1/multicall-eth-send-should-produce-no-logs-on-forward-revert.io index 89e901628..55e1d72b1 100644 --- a/tests/eth_multicallV1/multicall-eth-send-should-produce-no-logs-on-forward-revert.io +++ b/tests/eth_multicallV1/multicall-eth-send-should-produce-no-logs-on-forward-revert.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x4b64e492c200000000000000000000000000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x4b64e492c200000000000000000000000000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x4aff1bcf79489aa882ae35149f6848c5a428c340ed332326b1353b0d480f4edf","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5423","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5423","status":"0x0","error":{"message":"execution reverted","code":-32000}}]}]} diff --git a/tests/eth_multicallV1/multicall-fee-recipient-receiving-funds.io b/tests/eth_multicallV1/multicall-fee-recipient-receiving-funds.io index ad20c6397..417f1246d 100644 --- a/tests/eth_multicallV1/multicall-fee-recipient-receiving-funds.io +++ b/tests/eth_multicallV1/multicall-fee-recipient-receiving-funds.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0xa","maxPriorityFeePerGas":"0xa","nonce":"0x0","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x1","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x2","input":"0xf8b2cb4f000000000000000000000000c200000000000000000000000000000000000000"}]}],"traceTransfers":true,"validation":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0xa","maxPriorityFeePerGas":"0xa","nonce":"0x0","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x1","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x2","input":"0xf8b2cb4f000000000000000000000000c200000000000000000000000000000000000000"}]}],"traceTransfers":true,"validation":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x64f7229ff555dad30a78123598b12000a398784ac78b2185d7eb0aac1a4c95f6","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0xa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 2000000 want 50000000 (supplied gas 5000000)","code":-38014}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xC000000000000000000000000000000000000000, tx: 1 state: 0 (supplied gas 5000000)","code":-38011}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xC000000000000000000000000000000000000000, tx: 2 state: 0 (supplied gas 5000000)","code":-38011}}]}]} diff --git a/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014-with-validation.io b/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014-with-validation.io index 86fa9ad47..cd91038ff 100644 --- a/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014-with-validation.io +++ b/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014-with-validation.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"validation":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"validation":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x5adbd4e5255639460612b1f5b159c0b0b2de8f2e42c75029f2e8bcfef4df7dae","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014.io b/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014.io index 43edce80e..2f1050577 100644 --- a/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014.io +++ b/tests/eth_multicallV1/multicall-gas-fees-and-value-error-38014.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x5adbd4e5255639460612b1f5b159c0b0b2de8f2e42c75029f2e8bcfef4df7dae","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-get-block-properties.io b/tests/eth_multicallV1/multicall-get-block-properties.io index edc03683e..414e969b3 100644 --- a/tests/eth_multicallV1/multicall-get-block-properties.io +++ b/tests/eth_multicallV1/multicall-get-block-properties.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xdee3915d29ae25345c31d222f311a5916e06e156348d9a5266b11ac50ccec305","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000002310a91d00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000004bf8f600000000000000000000000000000000000000000000000000000000000000000279dbea83debc0ad7c849d4e0f0b4dd12f5d1e44caa000eb81906226361c33e","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-instrict-gas-38013.io b/tests/eth_multicallV1/multicall-instrict-gas-38013.io index 8380ab230..dd43652a6 100644 --- a/tests/eth_multicallV1/multicall-instrict-gas-38013.io +++ b/tests/eth_multicallV1/multicall-instrict-gas-38013.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x0"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x0"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x6886c0051d68a0ceef0f81f8e8f7bc22316cfc512dc8ba769c89ed0bdb5b50ec","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: intrinsic gas too low: have 0, want 21000 (supplied gas 0)","code":-38013}}]}]} diff --git a/tests/eth_multicallV1/multicall-logs.io b/tests/eth_multicallV1/multicall-logs.io index b7fb986f0..1f572a918 100644 --- a/tests/eth_multicallV1/multicall-logs.io +++ b/tests/eth_multicallV1/multicall-logs.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80600080a1600080f3"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x6057361d0000000000000000000000000000000000000000000000000000000000000005"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80600080a1600080f3"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x6057361d0000000000000000000000000000000000000000000000000000000000000005"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x1d11445cb1808d772b07e436d486de9756256b76dd7182961edcbf01d005b61e","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x55d4","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0xc200000000000000000000000000000000000000","topics":["0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],"data":"0x","blockNumber":"0x4","transactionHash":"0xc3962215e99421932435eddf7397e4f443e539c6a356548afed312f39d511048","transactionIndex":"0x0","blockHash":"0x1d11445cb1808d772b07e436d486de9756256b76dd7182961edcbf01d005b61e","logIndex":"0x0","removed":false}],"gasUsed":"0x55d4","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-long-block-distances.io b/tests/eth_multicallV1/multicall-long-block-distances.io index 80b4242d5..e176a2a6c 100644 --- a/tests/eth_multicallV1/multicall-long-block-distances.io +++ b/tests/eth_multicallV1/multicall-long-block-distances.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x64"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x65"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x3e8"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x2710"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x2711"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x186a0"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x64"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x65"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x3e8"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x2710"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x2711"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x186a0"},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0xa","hash":"0x030f9b312173c05a8f0072e4ff33c165feb94ea9444cd0c1d1957ee6bbaee880","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000002310a91d00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000004bf8f6000000000000000000000000000000000000000000000000000000000000000040216dde23f0d4bc307cec4522dd13917453223832a495f7df029a6842e595bd","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x64","hash":"0xf928a8f7f71be2361c77449bc8c9f7ea2a9366bf3ffa668e2f7d0e5b5b775b71","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000001eae93fa00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000ee9fede764b6bd959f993811ad4db78055aecf4c35be2a39431803ef5f1c850f","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x65","hash":"0x94f39c90e7dd5f99122227d697580dd7098725cab40f7e0cff59c9294c193f66","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000001ad8c17b00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000000065000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000f928a8f7f71be2361c77449bc8c9f7ea2a9366bf3ffa668e2f7d0e5b5b775b71","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x3e8","hash":"0x3ab78d52af800b44f10881ff979ae352caa68c6ead8b676ef70a914ad937447a","timestamp":"0x22","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x177da94c","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000177da94c00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b4000000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000c3ddb73aea432654d67c1c68d4e4d1d3707d871b1e6c6b8c3f18e4a4639b4b17","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x2710","hash":"0x42ffca1829f7c9c8ef5538e857bf235f28a810c0399eaeed93d7a19209583dd1","timestamp":"0x23","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x148df423","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000148df42300000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000002300000000000000000000000000000000000000000000000000000000004bf8f60000000000000000000000000000000000000000000000000000000000000000d74b5421e46a646d7763fddc26b11863fb782e7d1f9b0ad32d4ae8e0c3fa785d","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x2711","hash":"0xc9ed75229e904a7f9bd0e432e50070c1cfd3fedf76e21672b0b69460cb52fe97","timestamp":"0x24","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x11fc359f","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000011fc359f00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b400000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000004bf8f6000000000000000000000000000000000000000000000000000000000000000042ffca1829f7c9c8ef5538e857bf235f28a810c0399eaeed93d7a19209583dd1","logs":[],"gasUsed":"0x57bc","status":"0x1"}]},{"number":"0x186a0","hash":"0x243c17e5330efd3f2a119083d099fda18bce2cf8679bce30e82437037b864cd9","timestamp":"0x25","gasLimit":"0x4c4b40","gasUsed":"0x57bc","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0xfbcaeec","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000fbcaeec00000000000000000000000000000000000000000000000000000000000005390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c4b4000000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000002500000000000000000000000000000000000000000000000000000000004bf8f600000000000000000000000000000000000000000000000000000000000000005d102fbab6a2ed32b326fc1cbfb4f74c6e39864c243cc442736b9e70ce3bca02","logs":[],"gasUsed":"0x57bc","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-move-account-twice.io b/tests/eth_multicallV1/multicall-move-account-twice.io index e48d3fa79..b3ff9bd06 100644 --- a/tests/eth_multicallV1/multicall-move-account-twice.io +++ b/tests/eth_multicallV1/multicall-move-account-twice.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"},"0xc200000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc300000000000000000000000000000000000000":{"balance":"0xbb8"},"0xc400000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}}},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xbb8","MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0xc200000000000000000000000000000000000000":{"balance":"0xfa0","MovePrecompileToAddress":"0xc300000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc400000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc400000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c200000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc400000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c300000000000000000000000000000000000000"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"},"0xc200000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc300000000000000000000000000000000000000":{"balance":"0xbb8"},"0xc400000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}}},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xbb8","MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0xc200000000000000000000000000000000000000":{"balance":"0xfa0","MovePrecompileToAddress":"0xc300000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc400000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc400000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c200000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc400000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c300000000000000000000000000000000000000"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0xC000000000000000000000000000000000000000 is not a precompile"}} diff --git a/tests/eth_multicallV1/multicall-move-ecrecover-and-call.io b/tests/eth_multicallV1/multicall-move-ecrecover-and-call.io index 607dc8dc0..0ae027195 100644 --- a/tests/eth_multicallV1/multicall-move-ecrecover-and-call.io +++ b/tests/eth_multicallV1/multicall-move-ecrecover-and-call.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]},{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]},{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x383db180bae4dcfb4e6b07fdcbe50e607aa738e80a6a3d10f7987c4d182cc07e","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xc484","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","status":"0x1"}]},{"number":"0x5","hash":"0xa9ec41fe03ed982e340dd18eaa50f73711354775229dbc70acaba3e59821241b","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xc484","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-move-to-address-itself-reference-38022.io b/tests/eth_multicallV1/multicall-move-to-address-itself-reference-38022.io index eb9e15347..95c4cfbeb 100644 --- a/tests/eth_multicallV1/multicall-move-to-address-itself-reference-38022.io +++ b/tests/eth_multicallV1/multicall-move-to-address-itself-reference-38022.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x30d40"},"0xc100000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc100000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x1"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x30d40"},"0xc100000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc100000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x1"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0xc100000000000000000000000000000000000000 is not a precompile"}} diff --git a/tests/eth_multicallV1/multicall-move-two-accounts-to-same-38023.io b/tests/eth_multicallV1/multicall-move-two-accounts-to-same-38023.io index 9c32a4eed..f7e872318 100644 --- a/tests/eth_multicallV1/multicall-move-two-accounts-to-same-38023.io +++ b/tests/eth_multicallV1/multicall-move-two-accounts-to-same-38023.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0x0000000000000000000000000000000000000002":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"}}}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0x0000000000000000000000000000000000000002":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"}}}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x5b17533dae2b90e26f77c833f1db070da4549c05eece301b5e1815f68a5597dc","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]}]} diff --git a/tests/eth_multicallV1/multicall-move-two-non-precompiles-accounts-to-same.io b/tests/eth_multicallV1/multicall-move-two-non-precompiles-accounts-to-same.io index ce37765d9..7240d7c4c 100644 --- a/tests/eth_multicallV1/multicall-move-two-non-precompiles-accounts-to-same.io +++ b/tests/eth_multicallV1/multicall-move-two-non-precompiles-accounts-to-same.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0100000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0x0200000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"}}}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0100000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0x0200000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc200000000000000000000000000000000000000"}}}]},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0x0100000000000000000000000000000000000000 is not a precompile"}} diff --git a/tests/eth_multicallV1/multicall-no-fields-call.io b/tests/eth_multicallV1/multicall-no-fields-call.io index 646d1abc9..fb72ec5a1 100644 --- a/tests/eth_multicallV1/multicall-no-fields-call.io +++ b/tests/eth_multicallV1/multicall-no-fields-call.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"contract creation without any data provided"}} diff --git a/tests/eth_multicallV1/multicall-only-from-to-transaction.io b/tests/eth_multicallV1/multicall-only-from-to-transaction.io index 82c35902f..5c611df46 100644 --- a/tests/eth_multicallV1/multicall-only-from-to-transaction.io +++ b/tests/eth_multicallV1/multicall-only-from-to-transaction.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x55b990b53fc551c31ae6d95a9bd4b47174c92ef3eb036bd196756be47449ad15","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-only-from-transaction.io b/tests/eth_multicallV1/multicall-only-from-transaction.io index af8de58cd..2e12dd7b9 100644 --- a/tests/eth_multicallV1/multicall-only-from-transaction.io +++ b/tests/eth_multicallV1/multicall-only-from-transaction.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"contract creation without any data provided"}} diff --git a/tests/eth_multicallV1/multicall-override-address-twice-in-separate-BlockStateCalls.io b/tests/eth_multicallV1/multicall-override-address-twice-in-separate-BlockStateCalls.io index f19bc1aa8..dc472f609 100644 --- a/tests/eth_multicallV1/multicall-override-address-twice-in-separate-BlockStateCalls.io +++ b/tests/eth_multicallV1/multicall-override-address-twice-in-separate-BlockStateCalls.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x859c932c5cf0dabf8d12eb2518e063966ac1a25e2fc49f1f02574a37f358d0b5","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0xa4d41019e71335f8567e17746b708ddda8b975a9a61f909bd3df55f4866cc913","transactionIndex":"0x0","blockHash":"0xd395d1e0584af699115b81b2a63208789173e445fbf31b898ee064dcef32574d","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","status":"0x1"}]},{"number":"0x5","hash":"0xd395d1e0584af699115b81b2a63208789173e445fbf31b898ee064dcef32574d","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x5","transactionHash":"0x1707e15a48809e5281db4574825c0fac7e2fd5e8ea7b934d1c48ac45a59d9145","transactionIndex":"0x0","blockHash":"0xd395d1e0584af699115b81b2a63208789173e445fbf31b898ee064dcef32574d","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-address-twice.io b/tests/eth_multicallV1/multicall-override-address-twice.io index 7a7f9b138..b1f767a50 100644 --- a/tests/eth_multicallV1/multicall-override-address-twice.io +++ b/tests/eth_multicallV1/multicall-override-address-twice.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x43ff27727cb2206bc419eb28ad381374491b86443879ce85271475aaaf8adb9d","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-override-all-in-BlockStateCalls.io b/tests/eth_multicallV1/multicall-override-all-in-BlockStateCalls.io index af25d451d..7f7bb911b 100644 --- a/tests/eth_multicallV1/multicall-override-all-in-BlockStateCalls.io +++ b/tests/eth_multicallV1/multicall-override-all-in-BlockStateCalls.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x3e9","time":"0x3eb","gasLimit":"0x3ec","feeRecipient":"0xc200000000000000000000000000000000000000","prevRandao":"0xc300000000000000000000000000000000000000000000000000000000000000","baseFeePerGas":"0x3ef"}}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x3e9","time":"0x3eb","gasLimit":"0x3ec","feeRecipient":"0xc200000000000000000000000000000000000000","prevRandao":"0xc300000000000000000000000000000000000000000000000000000000000000","baseFeePerGas":"0x3ef"}}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x3e9","hash":"0xdc64fbaa7105227bed07d91fe3dc2f12c43a4c3d47fa8b98d1fbfa9961c27a8a","timestamp":"0x3eb","gasLimit":"0x3ec","gasUsed":"0x0","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0x3ef","prevRandao":"0xc300000000000000000000000000000000000000000000000000000000000000","calls":[]}]} diff --git a/tests/eth_multicallV1/multicall-override-block-num.io b/tests/eth_multicallV1/multicall-override-block-num.io index 29c8e810c..56a2ea870 100644 --- a/tests/eth_multicallV1/multicall-override-block-num.io +++ b/tests/eth_multicallV1/multicall-override-block-num.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xb"},"calls":[{"from":"0xc000000000000000000000000000000000000000","input":"0x4360005260206000f3"}]},{"blockOverrides":{"number":"0xc"},"calls":[{"from":"0xc100000000000000000000000000000000000000","input":"0x4360005260206000f3"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0xb"},"calls":[{"from":"0xc000000000000000000000000000000000000000","input":"0x4360005260206000f3"}]},{"blockOverrides":{"number":"0xc"},"calls":[{"from":"0xc100000000000000000000000000000000000000","input":"0x4360005260206000f3"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0xb","hash":"0xd092c900861c2de86ee8ae499ec1b86b332cd209841b1a1c16c8482b09493f77","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xe893","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000b","logs":[],"gasUsed":"0xe893","status":"0x1"}]},{"number":"0xc","hash":"0x31fbc62d3c161b7bc0405dae2641ca4147bcf62ed7cfcb249f706d166b152f7e","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xe893","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000c","logs":[],"gasUsed":"0xe893","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-ecrecover.io b/tests/eth_multicallV1/multicall-override-ecrecover.io index b19a57877..7a8844500 100644 --- a/tests/eth_multicallV1/multicall-override-ecrecover.io +++ b/tests/eth_multicallV1/multicall-override-ecrecover.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"code":"0x608060405234801561001057600080fd5b506004361061003a5760003560e01c806305fdbc81146101ee578063c00692601461020a5761003b565b5b600036606060008060008086868101906100559190610462565b93509350935093506000806000868686866040516020016100799493929190610520565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101bb576000806212345673ffffffffffffffffffffffffffffffffffffffff166127108b8b6040516101249291906105ad565b60006040518083038160008787f1925050503d8060008114610162576040519150601f19603f3d011682016040523d82523d6000602084013e610167565b606091505b5091509150816101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a39061066f565b60405180910390fd5b809750505050505050506101e3565b806040516020016101cc9190610709565b604051602081830303815290604052955050505050505b915050805190602001f35b6102086004803603810190610203919061093a565b610226565b005b610224600480360381019061021f9190610983565b6102ec565b005b60005b81518110156102e8576102d5828281518110610248576102476109fe565b5b602002602001015160000151838381518110610267576102666109fe565b5b602002602001015160200151848481518110610286576102856109fe565b5b6020026020010151604001518585815181106102a5576102a46109fe565b5b6020026020010151606001518686815181106102c4576102c36109fe565b5b6020026020010151608001516102ec565b80806102e090610a66565b915050610229565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610afa565b60405180910390fd5b80600080878787876040516020016103769493929190610520565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610406816103f3565b811461041157600080fd5b50565b600081359050610423816103fd565b92915050565b600060ff82169050919050565b61043f81610429565b811461044a57600080fd5b50565b60008135905061045c81610436565b92915050565b6000806000806080858703121561047c5761047b6103e9565b5b600061048a87828801610414565b945050602061049b8782880161044d565b93505060406104ac87828801610414565b92505060606104bd87828801610414565b91505092959194509250565b6000819050919050565b6104e46104df826103f3565b6104c9565b82525050565b60008160f81b9050919050565b6000610502826104ea565b9050919050565b61051a61051582610429565b6104f7565b82525050565b600061052c82876104d3565b60208201915061053c8286610509565b60018201915061054c82856104d3565b60208201915061055c82846104d3565b60208201915081905095945050505050565b600081905092915050565b82818337600083830152505050565b6000610594838561056e565b93506105a1838584610579565b82840190509392505050565b60006105ba828486610588565b91508190509392505050565b600082825260208201905092915050565b7f6661696c656420746f2063616c6c206d6f7665642065637265636f766572206160008201527f742061646472657373203078303030303030303030303030303030303030303060208201527f3030303030303030303030303030313233343536000000000000000000000000604082015250565b60006106596054836105c6565b9150610664826105d7565b606082019050919050565b600060208201905081810360008301526106888161064c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106ba8261068f565b9050919050565b60008160601b9050919050565b60006106d9826106c1565b9050919050565b60006106eb826106ce565b9050919050565b6107036106fe826106af565b6106e0565b82525050565b600061071582846106f2565b60148201915081905092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61077282610729565b810181811067ffffffffffffffff821117156107915761079061073a565b5b80604052505050565b60006107a46103df565b90506107b08282610769565b919050565b600067ffffffffffffffff8211156107d0576107cf61073a565b5b602082029050602081019050919050565b600080fd5b600080fd5b6107f4816106af565b81146107ff57600080fd5b50565b600081359050610811816107eb565b92915050565b600060a0828403121561082d5761082c6107e6565b5b61083760a061079a565b9050600061084784828501610414565b600083015250602061085b8482850161044d565b602083015250604061086f84828501610414565b604083015250606061088384828501610414565b606083015250608061089784828501610802565b60808301525092915050565b60006108b66108b1846107b5565b61079a565b90508083825260208201905060a084028301858111156108d9576108d86107e1565b5b835b8181101561090257806108ee8882610817565b84526020840193505060a0810190506108db565b5050509392505050565b600082601f83011261092157610920610724565b5b81356109318482602086016108a3565b91505092915050565b6000602082840312156109505761094f6103e9565b5b600082013567ffffffffffffffff81111561096e5761096d6103ee565b5b61097a8482850161090c565b91505092915050565b600080600080600060a0868803121561099f5761099e6103e9565b5b60006109ad88828901610414565b95505060206109be8882890161044d565b94505060406109cf88828901610414565b93505060606109e088828901610414565b92505060806109f188828901610802565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610a7182610a5c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aa357610aa2610a2d565b5b600182019050919050565b7f72657475726e20616464726573732063616e6e6f742062652030783000000000600082015250565b6000610ae4601c836105c6565b9150610aef82610aae565b602082019050919050565b60006020820190508181036000830152610b1381610ad7565b905091905056fea2646970667358221220154f5b68ccfa5be744e7245765a3530dac4035052284a68b5dded1945b45075e64736f6c63430008120033","MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"},"0xc100000000000000000000000000000000000000":{"balance":"0x30d40"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0xc00692604554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554490000000000000000000000000000000000000000000000000000000000"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"code":"0x608060405234801561001057600080fd5b506004361061003a5760003560e01c806305fdbc81146101ee578063c00692601461020a5761003b565b5b600036606060008060008086868101906100559190610462565b93509350935093506000806000868686866040516020016100799493929190610520565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101bb576000806212345673ffffffffffffffffffffffffffffffffffffffff166127108b8b6040516101249291906105ad565b60006040518083038160008787f1925050503d8060008114610162576040519150601f19603f3d011682016040523d82523d6000602084013e610167565b606091505b5091509150816101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a39061066f565b60405180910390fd5b809750505050505050506101e3565b806040516020016101cc9190610709565b604051602081830303815290604052955050505050505b915050805190602001f35b6102086004803603810190610203919061093a565b610226565b005b610224600480360381019061021f9190610983565b6102ec565b005b60005b81518110156102e8576102d5828281518110610248576102476109fe565b5b602002602001015160000151838381518110610267576102666109fe565b5b602002602001015160200151848481518110610286576102856109fe565b5b6020026020010151604001518585815181106102a5576102a46109fe565b5b6020026020010151606001518686815181106102c4576102c36109fe565b5b6020026020010151608001516102ec565b80806102e090610a66565b915050610229565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610afa565b60405180910390fd5b80600080878787876040516020016103769493929190610520565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610406816103f3565b811461041157600080fd5b50565b600081359050610423816103fd565b92915050565b600060ff82169050919050565b61043f81610429565b811461044a57600080fd5b50565b60008135905061045c81610436565b92915050565b6000806000806080858703121561047c5761047b6103e9565b5b600061048a87828801610414565b945050602061049b8782880161044d565b93505060406104ac87828801610414565b92505060606104bd87828801610414565b91505092959194509250565b6000819050919050565b6104e46104df826103f3565b6104c9565b82525050565b60008160f81b9050919050565b6000610502826104ea565b9050919050565b61051a61051582610429565b6104f7565b82525050565b600061052c82876104d3565b60208201915061053c8286610509565b60018201915061054c82856104d3565b60208201915061055c82846104d3565b60208201915081905095945050505050565b600081905092915050565b82818337600083830152505050565b6000610594838561056e565b93506105a1838584610579565b82840190509392505050565b60006105ba828486610588565b91508190509392505050565b600082825260208201905092915050565b7f6661696c656420746f2063616c6c206d6f7665642065637265636f766572206160008201527f742061646472657373203078303030303030303030303030303030303030303060208201527f3030303030303030303030303030313233343536000000000000000000000000604082015250565b60006106596054836105c6565b9150610664826105d7565b606082019050919050565b600060208201905081810360008301526106888161064c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106ba8261068f565b9050919050565b60008160601b9050919050565b60006106d9826106c1565b9050919050565b60006106eb826106ce565b9050919050565b6107036106fe826106af565b6106e0565b82525050565b600061071582846106f2565b60148201915081905092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61077282610729565b810181811067ffffffffffffffff821117156107915761079061073a565b5b80604052505050565b60006107a46103df565b90506107b08282610769565b919050565b600067ffffffffffffffff8211156107d0576107cf61073a565b5b602082029050602081019050919050565b600080fd5b600080fd5b6107f4816106af565b81146107ff57600080fd5b50565b600081359050610811816107eb565b92915050565b600060a0828403121561082d5761082c6107e6565b5b61083760a061079a565b9050600061084784828501610414565b600083015250602061085b8482850161044d565b602083015250604061086f84828501610414565b604083015250606061088384828501610414565b606083015250608061089784828501610802565b60808301525092915050565b60006108b66108b1846107b5565b61079a565b90508083825260208201905060a084028301858111156108d9576108d86107e1565b5b835b8181101561090257806108ee8882610817565b84526020840193505060a0810190506108db565b5050509392505050565b600082601f83011261092157610920610724565b5b81356109318482602086016108a3565b91505092915050565b6000602082840312156109505761094f6103e9565b5b600082013567ffffffffffffffff81111561096e5761096d6103ee565b5b61097a8482850161090c565b91505092915050565b600080600080600060a0868803121561099f5761099e6103e9565b5b60006109ad88828901610414565b95505060206109be8882890161044d565b94505060406109cf88828901610414565b93505060606109e088828901610414565b92505060806109f188828901610802565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610a7182610a5c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aa357610aa2610a2d565b5b600182019050919050565b7f72657475726e20616464726573732063616e6e6f742062652030783000000000600082015250565b6000610ae4601c836105c6565b9150610aef82610aae565b602082019050919050565b60006020820190508181036000830152610b1381610ad7565b905091905056fea2646970667358221220154f5b68ccfa5be744e7245765a3530dac4035052284a68b5dded1945b45075e64736f6c63430008120033","MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"},"0xc100000000000000000000000000000000000000":{"balance":"0x30d40"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0xc00692604554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554490000000000000000000000000000000000000000000000000000000000"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x9a19680b1e4b0307f4199ecdafe36c9c328d3c331e682e66c52a5694cee5f20b","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x2dbc4","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xb4fe","status":"0x1"},{"returnData":"0xd8da6bf26964af9d7eed9e03e53415d37aa96045","logs":[],"gasUsed":"0x65f8","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x8052","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x7bf8","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-identity.io b/tests/eth_multicallV1/multicall-override-identity.io index 229bf486b..f89c351e2 100644 --- a/tests/eth_multicallV1/multicall-override-identity.io +++ b/tests/eth_multicallV1/multicall-override-identity.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000004":{"code":"0x","MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1234"},{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000004","input":"0x1234"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000004":{"code":"0x","MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1234"},{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000004","input":"0x1234"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2ea8f298068a0cda48e553108a90ad14cdba70fd8d6e8848e77a1c3e3a1c40e5","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa462","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x1234","logs":[],"gasUsed":"0x523a","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5228","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-sha256.io b/tests/eth_multicallV1/multicall-override-sha256.io index 0850ed24d..b25244108 100644 --- a/tests/eth_multicallV1/multicall-override-sha256.io +++ b/tests/eth_multicallV1/multicall-override-sha256.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000002":{"code":"0x","MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1234"},{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000002","input":"0x1234"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000002":{"code":"0x","MovePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1234"},{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000002","input":"0x1234"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xe65f0d9c59ae2bb2eab70894d76633e8c49f8cf4320c8080a98b4d0652cc1089","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa498","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x3a103a4e5729ad68c02a678ae39accfbc0ae208096437401b7ceab63cca0622f","logs":[],"gasUsed":"0x5270","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5228","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-override-storage-slots.io b/tests/eth_multicallV1/multicall-override-storage-slots.io index bac84e34b..b805df216 100644 --- a/tests/eth_multicallV1/multicall-override-storage-slots.io +++ b/tests/eth_multicallV1/multicall-override-storage-slots.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ff4c916146100515780633033413b1461008157806344e12f871461009f5780637b8d56e3146100bd575b600080fd5b61006b600480360381019061006691906101f6565b6100d9565b6040516100789190610232565b60405180910390f35b61008961013f565b6040516100969190610232565b60405180910390f35b6100a7610145565b6040516100b49190610232565b60405180910390f35b6100d760048036038101906100d2919061024d565b61014b565b005b60006002821061011e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610115906102ea565b60405180910390fd5b6000820361012c5760005490505b6001820361013a5760015490505b919050565b60015481565b60005481565b6002821061018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610185906102ea565b60405180910390fd5b600082036101a257806000819055506101b7565b600182036101b657806001819055506101b7565b5b5050565b600080fd5b6000819050919050565b6101d3816101c0565b81146101de57600080fd5b50565b6000813590506101f0816101ca565b92915050565b60006020828403121561020c5761020b6101bb565b5b600061021a848285016101e1565b91505092915050565b61022c816101c0565b82525050565b60006020820190506102476000830184610223565b92915050565b60008060408385031215610264576102636101bb565b5b6000610272858286016101e1565b9250506020610283858286016101e1565b9150509250929050565b600082825260208201905092915050565b7f746f6f2062696720736c6f740000000000000000000000000000000000000000600082015250565b60006102d4600c8361028d565b91506102df8261029e565b602082019050919050565b60006020820190508181036000830152610303816102c7565b905091905056fea2646970667358221220ceea194bb66b5b9f52c83e5bf5a1989255de8cb7157838eff98f970c3a04cb3064736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"stateDiff":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"state":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ff4c916146100515780633033413b1461008157806344e12f871461009f5780637b8d56e3146100bd575b600080fd5b61006b600480360381019061006691906101f6565b6100d9565b6040516100789190610232565b60405180910390f35b61008961013f565b6040516100969190610232565b60405180910390f35b6100a7610145565b6040516100b49190610232565b60405180910390f35b6100d760048036038101906100d2919061024d565b61014b565b005b60006002821061011e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610115906102ea565b60405180910390fd5b6000820361012c5760005490505b6001820361013a5760015490505b919050565b60015481565b60005481565b6002821061018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610185906102ea565b60405180910390fd5b600082036101a257806000819055506101b7565b600182036101b657806001819055506101b7565b5b5050565b600080fd5b6000819050919050565b6101d3816101c0565b81146101de57600080fd5b50565b6000813590506101f0816101ca565b92915050565b60006020828403121561020c5761020b6101bb565b5b600061021a848285016101e1565b91505092915050565b61022c816101c0565b82525050565b60006020820190506102476000830184610223565b92915050565b60008060408385031215610264576102636101bb565b5b6000610272858286016101e1565b9250506020610283858286016101e1565b9150509250929050565b600082825260208201905092915050565b7f746f6f2062696720736c6f740000000000000000000000000000000000000000600082015250565b60006102d4600c8361028d565b91506102df8261029e565b602082019050919050565b60006020820190508181036000830152610303816102c7565b905091905056fea2646970667358221220ceea194bb66b5b9f52c83e5bf5a1989255de8cb7157838eff98f970c3a04cb3064736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"stateDiff":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"state":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x6cc3d377a1192a6a294b212426a97dbe7f101d410c2a9f43b5b1f275039a2c46","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x213f5","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xac5e","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xac81","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000001","logs":[],"gasUsed":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000002","logs":[],"gasUsed":"0x5d91","status":"0x1"}]},{"number":"0x5","hash":"0x8fe0ee7c5d7aae7e442a3a2340d1f7c52beea4c96062c74578e479b9ddeba69e","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xbb16","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x1200000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000002","logs":[],"gasUsed":"0x5d91","status":"0x1"}]},{"number":"0x6","hash":"0x629a0a584cf6d9ca6e8bc67d353764e83d9cdd2a5a8dc7af690f4330b9703266","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0xbb16","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x1200000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d91","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-precompile-is-sending-transaction.io b/tests/eth_multicallV1/multicall-precompile-is-sending-transaction.io index 785df788d..8a7c209b9 100644 --- a/tests/eth_multicallV1/multicall-precompile-is-sending-transaction.io +++ b/tests/eth_multicallV1/multicall-precompile-is-sending-transaction.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0x0000000000000000000000000000000000000004","to":"0x0000000000000000000000000000000000000002","input":"0x1234"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0x0000000000000000000000000000000000000004","to":"0x0000000000000000000000000000000000000002","input":"0x1234"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xc53f1e8d6f15a1570dceb93028c7b370ebc04dbdd0c0ae712eeb94e65971a035","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5270","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x3a103a4e5729ad68c02a678ae39accfbc0ae208096437401b7ceab63cca0622f","logs":[],"gasUsed":"0x5270","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-run-gas-spending.io b/tests/eth_multicallV1/multicall-run-gas-spending.io index 2867e0751..f8a46813b 100644 --- a/tests/eth_multicallV1/multicall-run-gas-spending.io +++ b/tests/eth_multicallV1/multicall-run-gas-spending.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"gasLimit":"0x16e360"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063815b8ab414610030575b600080fd5b61004a600480360381019061004591906100b6565b61004c565b005b60005a90505b60011561007657815a826100669190610112565b106100715750610078565b610052565b505b50565b600080fd5b6000819050919050565b61009381610080565b811461009e57600080fd5b50565b6000813590506100b08161008a565b92915050565b6000602082840312156100cc576100cb61007b565b5b60006100da848285016100a1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011d82610080565b915061012883610080565b92508282039050818111156101405761013f6100e3565b5b9291505056fea2646970667358221220a659ba4db729a6ee4db02fcc5c1118db53246b0e5e686534fc9add6f2e93faec64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"gasLimit":"0x16e360"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063815b8ab414610030575b600080fd5b61004a600480360381019061004591906100b6565b61004c565b005b60005a90505b60011561007657815a826100669190610112565b106100715750610078565b610052565b505b50565b600080fd5b6000819050919050565b61009381610080565b811461009e57600080fd5b50565b6000813590506100b08161008a565b92915050565b6000602082840312156100cc576100cb61007b565b5b60006100da848285016100a1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011d82610080565b915061012883610080565b92508282039050818111156101405761013f6100e3565b5b9291505056fea2646970667358221220a659ba4db729a6ee4db02fcc5c1118db53246b0e5e686534fc9add6f2e93faec64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xd046a4ce3444604dc22e1653ce7ebf3597458ba14013c156e3257dc41eef4035","timestamp":"0x1f","gasLimit":"0x16e360","gasUsed":"0x5545","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5545","status":"0x1"}]},{"number":"0x5","hash":"0xbb5ad3057c01af29db968889fbd2dcd9072e19b055634c3b78e5d951bd269564","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xfed84","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5545","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xf983f","status":"0x1"}]},{"number":"0x6","hash":"0x6027b447e29d6241dcffdb56569e258fb4189d2f7e995ba20597b8dafee48f2a","timestamp":"0x21","gasLimit":"0x4c4b40","gasUsed":"0xfed84","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ad8c17b","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5545","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xf983f","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-run-out-of-gas-in-block-38015.io b/tests/eth_multicallV1/multicall-run-out-of-gas-in-block-38015.io index 2ae095431..a474e896a 100644 --- a/tests/eth_multicallV1/multicall-run-out-of-gas-in-block-38015.io +++ b/tests/eth_multicallV1/multicall-run-out-of-gas-in-block-38015.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"blockOverrides":{"gasLimit":"0x16e360"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063815b8ab414610030575b600080fd5b61004a600480360381019061004591906100b6565b61004c565b005b60005a90505b60011561007657815a826100669190610112565b106100715750610078565b610052565b505b50565b600080fd5b6000819050919050565b61009381610080565b811461009e57600080fd5b50565b6000813590506100b08161008a565b92915050565b6000602082840312156100cc576100cb61007b565b5b60006100da848285016100a1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011d82610080565b915061012883610080565b92508282039050818111156101405761013f6100e3565b5b9291505056fea2646970667358221220a659ba4db729a6ee4db02fcc5c1118db53246b0e5e686534fc9add6f2e93faec64736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"gasLimit":"0x16e360"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063815b8ab414610030575b600080fd5b61004a600480360381019061004591906100b6565b61004c565b005b60005a90505b60011561007657815a826100669190610112565b106100715750610078565b610052565b505b50565b600080fd5b6000819050919050565b61009381610080565b811461009e57600080fd5b50565b6000813590506100b08161008a565b92915050565b6000602082840312156100cc576100cb61007b565b5b60006100da848285016100a1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011d82610080565b915061012883610080565b92508282039050818111156101405761013f6100e3565b5b9291505056fea2646970667358221220a659ba4db729a6ee4db02fcc5c1118db53246b0e5e686534fc9add6f2e93faec64736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x209f6a6c2b7d7ffae78004072e4fe1591e4319335e4fdc7dbaa3bceee7735dd8","timestamp":"0x1f","gasLimit":"0x16e360","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x5","hash":"0xa8d37e1e654e70de51d6096fbcef3b6671560e35d3c11d27e0b02379c3171972","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x1f307e","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xf983f","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xf983f","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-self-destructing-state-override.io b/tests/eth_multicallV1/multicall-self-destructing-state-override.io index 2ddaab7a9..c08a99a3b 100644 --- a/tests/eth_multicallV1/multicall-self-destructing-state-override.io +++ b/tests/eth_multicallV1/multicall-self-destructing-state-override.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033"},"0xc300000000000000000000000000000000000000":{"code":"0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063dce4a4471461003a575b600080fd5b610054600480360381019061004f91906100f8565b61006a565b60405161006191906101b5565b60405180910390f35b6060813b6040519150601f19601f602083010116820160405280825280600060208401853c50919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100c58261009a565b9050919050565b6100d5816100ba565b81146100e057600080fd5b50565b6000813590506100f2816100cc565b92915050565b60006020828403121561010e5761010d610095565b5b600061011c848285016100e3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561015f578082015181840152602081019050610144565b60008484015250505050565b6000601f19601f8301169050919050565b600061018782610125565b6101918185610130565b93506101a1818560208601610141565b6101aa8161016b565b840191505092915050565b600060208201905081810360008301526101cf818461017c565b90509291505056fea26469706673582212206a5f0cd9f230619fa520fc4b9d4b518643258cad412f2fa33945ce528b4b895164736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x83197ef0"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]},{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]}]},"0x1"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033"},"0xc300000000000000000000000000000000000000":{"code":"0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063dce4a4471461003a575b600080fd5b610054600480360381019061004f91906100f8565b61006a565b60405161006191906101b5565b60405180910390f35b6060813b6040519150601f19601f602083010116820160405280825280600060208401853c50919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100c58261009a565b9050919050565b6100d5816100ba565b81146100e057600080fd5b50565b6000813590506100f2816100cc565b92915050565b60006020828403121561010e5761010d610095565b5b600061011c848285016100e3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561015f578082015181840152602081019050610144565b60008484015250505050565b6000601f19601f8301169050919050565b600061018782610125565b6101918185610130565b93506101a1818560208601610141565b6101aa8161016b565b840191505092915050565b600060208201905081810360008301526101cf818461017c565b90509291505056fea26469706673582212206a5f0cd9f230619fa520fc4b9d4b518643258cad412f2fa33945ce528b4b895164736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x83197ef0"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]},{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]}]},"0x1"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x2","hash":"0xc7ea9a7ea61f6ba369d2191620966564552be4ea26684abc43b18874f0bae745","timestamp":"0xb","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2db08786","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x3","hash":"0x95292967d2af65bfb3e760c6e3ef8b2e2456e03e411c68ce6cea9c9bd1d60332","timestamp":"0xc","gasLimit":"0x4c4b40","gasUsed":"0x62c0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x27fa7696","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000856080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x62c0","status":"0x1"}]},{"number":"0x4","hash":"0xf341c4254d214d8265c8241e6616f8a6c78cf2107ca6b268d82686f1f739bb39","timestamp":"0xd","gasLimit":"0x4c4b40","gasUsed":"0x664a","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x22fb27c4","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x664a","status":"0x1"}]},{"number":"0x5","hash":"0x19fa5138b429fa822309dcbcff2f8f2a9578aff0bc7cf464333f99d7c4a18dc9","timestamp":"0xe","gasLimit":"0x4c4b40","gasUsed":"0x611c","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1e9bc2cc","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x611c","status":"0x1"}]},{"number":"0x6","hash":"0x785304f1c46b949ff68640f2fe075b63daf38cdf2cd7ccc7aa14ad2418e83de7","timestamp":"0xf","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1ac84a73","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[]},{"number":"0x7","hash":"0xbc895f4d9ceb01e8a5eabcf8be05a2761ced964c382ce0e7f661c09fd1d8671d","timestamp":"0x10","gasLimit":"0x4c4b40","gasUsed":"0x62c0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x176f4125","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000856080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x62c0","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-self-destructive-contract-produces-logs.io b/tests/eth_multicallV1/multicall-self-destructive-contract-produces-logs.io index 4b1a6afb9..ca3ec09a3 100644 --- a/tests/eth_multicallV1/multicall-self-destructive-contract-produces-logs.io +++ b/tests/eth_multicallV1/multicall-self-destructive-contract-produces-logs.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033","balance":"0x1e8480"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x83197ef0"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033","balance":"0x1e8480"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x83197ef0"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x9d4b4addf949f567ed0545dc5319d08bffc1c401d83b7ca13a0736dc6a6c6c48","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x664a","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c200000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000001e8480","blockNumber":"0x4","transactionHash":"0x2559c6062f8792b77468a0b65032a013f7fc82945665d9adffdf662765aca1a1","transactionIndex":"0x0","blockHash":"0x9d4b4addf949f567ed0545dc5319d08bffc1c401d83b7ca13a0736dc6a6c6c48","logIndex":"0x0","removed":false}],"gasUsed":"0x664a","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-set-read-storage.io b/tests/eth_multicallV1/multicall-set-read-storage.io index d59e1eee8..4c2627827 100644 --- a/tests/eth_multicallV1/multicall-set-read-storage.io +++ b/tests/eth_multicallV1/multicall-set-read-storage.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea2646970667358221220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x6057361d0000000000000000000000000000000000000000000000000000000000000005"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x2e64cec1"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea2646970667358221220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x6057361d0000000000000000000000000000000000000000000000000000000000000005"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x2e64cec1"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x37ea5223240b5aea5637fe45e04d33693c1385ed0dd33df756940de0ea4d5d9b","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x10683","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xaacc","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000005","logs":[],"gasUsed":"0x5bb7","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-no-funds-with-balance-querying.io b/tests/eth_multicallV1/multicall-simple-no-funds-with-balance-querying.io index 7339dca49..af68ae881 100644 --- a/tests/eth_multicallV1/multicall-simple-no-funds-with-balance-querying.io +++ b/tests/eth_multicallV1/multicall-simple-no-funds-with-balance-querying.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2bbbfa9aaeb3399afac81910fce3e4873c215a77da0f802199f18388124cfbd7","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x21f7e","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 4953622)","code":-38014}},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 4907244)","code":-38014}},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f77","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-no-funds-with-validation-without-nonces.io b/tests/eth_multicallV1/multicall-simple-no-funds-with-validation-without-nonces.io index 7cba19bef..e5ed6f87a 100644 --- a/tests/eth_multicallV1/multicall-simple-no-funds-with-validation-without-nonces.io +++ b/tests/eth_multicallV1/multicall-simple-no-funds-with-validation-without-nonces.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}],"validation":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}],"validation":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2bd63646753df027ae61d22f585ef89af6abf9ec82625115cb2a72c7653c6deb","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xc100000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-no-funds-with-validation.io b/tests/eth_multicallV1/multicall-simple-no-funds-with-validation.io index 81d4aeb1c..28fab0cce 100644 --- a/tests/eth_multicallV1/multicall-simple-no-funds-with-validation.io +++ b/tests/eth_multicallV1/multicall-simple-no-funds-with-validation.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8","nonce":"0x1"}]}],"validation":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8","nonce":"0x1"}]}],"validation":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xeccc800ab5f86e2b3d6d55b2fa88758d3607891871d071bc464807d84b0a4a76","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: nonce too high: address 0xc100000000000000000000000000000000000000, tx: 1 state: 0 (supplied gas 5000000)","code":-38011}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-no-funds.io b/tests/eth_multicallV1/multicall-simple-no-funds.io index c3dde26c3..3c1e2940f 100644 --- a/tests/eth_multicallV1/multicall-simple-no-funds.io +++ b/tests/eth_multicallV1/multicall-simple-no-funds.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x2bd63646753df027ae61d22f585ef89af6abf9ec82625115cb2a72c7653c6deb","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xc100000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-send-from-contract-no-balance.io b/tests/eth_multicallV1/multicall-simple-send-from-contract-no-balance.io index dfb98f1fd..961f605a8 100644 --- a/tests/eth_multicallV1/multicall-simple-send-from-contract-no-balance.io +++ b/tests/eth_multicallV1/multicall-simple-send-from-contract-no-balance.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x402d38fed51149f5aca6b1629153fb3b13cf9b06d179e20cf91c45f828c506e2","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 5000000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-send-from-contract-with-validation.io b/tests/eth_multicallV1/multicall-simple-send-from-contract-with-validation.io index befde0f16..e289615c8 100644 --- a/tests/eth_multicallV1/multicall-simple-send-from-contract-with-validation.io +++ b/tests/eth_multicallV1/multicall-simple-send-from-contract-with-validation.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033","balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true,"validation":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033","balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true,"validation":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x1827accb2edd8466cbacbe8353a6ab880dad99fd77bb9c0ca3616d2367faf2b9","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x0","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: sender not an eoa: address 0xC000000000000000000000000000000000000000, codehash: 0x3b4b17870a84d1ab8ac96e2596ba4a999f2dcd3c73a622b5c308a031fe89d005 (supplied gas 5000000)","code":-32603}}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-send-from-contract.io b/tests/eth_multicallV1/multicall-simple-send-from-contract.io index dc99fa701..b01ac430e 100644 --- a/tests/eth_multicallV1/multicall-simple-send-from-contract.io +++ b/tests/eth_multicallV1/multicall-simple-send-from-contract.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033","balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033","balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x229797dce097bcf35000669c08a79b15097c90c3754176841e7f82a191e170e9","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[{"address":"0x0000000000000000000000000000000000000000","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4","transactionHash":"0xa4d41019e71335f8567e17746b708ddda8b975a9a61f909bd3df55f4866cc913","transactionIndex":"0x0","blockHash":"0x229797dce097bcf35000669c08a79b15097c90c3754176841e7f82a191e170e9","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-state-diff.io b/tests/eth_multicallV1/multicall-simple-state-diff.io index 134d6d2b3..821ff13d6 100644 --- a/tests/eth_multicallV1/multicall-simple-state-diff.io +++ b/tests/eth_multicallV1/multicall-simple-state-diff.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ff4c916146100515780633033413b1461008157806344e12f871461009f5780637b8d56e3146100bd575b600080fd5b61006b600480360381019061006691906101f6565b6100d9565b6040516100789190610232565b60405180910390f35b61008961013f565b6040516100969190610232565b60405180910390f35b6100a7610145565b6040516100b49190610232565b60405180910390f35b6100d760048036038101906100d2919061024d565b61014b565b005b60006002821061011e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610115906102ea565b60405180910390fd5b6000820361012c5760005490505b6001820361013a5760015490505b919050565b60015481565b60005481565b6002821061018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610185906102ea565b60405180910390fd5b600082036101a257806000819055506101b7565b600182036101b657806001819055506101b7565b5b5050565b600080fd5b6000819050919050565b6101d3816101c0565b81146101de57600080fd5b50565b6000813590506101f0816101ca565b92915050565b60006020828403121561020c5761020b6101bb565b5b600061021a848285016101e1565b91505092915050565b61022c816101c0565b82525050565b60006020820190506102476000830184610223565b92915050565b60008060408385031215610264576102636101bb565b5b6000610272858286016101e1565b9250506020610283858286016101e1565b9150509250929050565b600082825260208201905092915050565b7f746f6f2062696720736c6f740000000000000000000000000000000000000000600082015250565b60006102d4600c8361028d565b91506102df8261029e565b602082019050919050565b60006020820190508181036000830152610303816102c7565b905091905056fea2646970667358221220ceea194bb66b5b9f52c83e5bf5a1989255de8cb7157838eff98f970c3a04cb3064736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"state":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]}],"traceTransfers":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ff4c916146100515780633033413b1461008157806344e12f871461009f5780637b8d56e3146100bd575b600080fd5b61006b600480360381019061006691906101f6565b6100d9565b6040516100789190610232565b60405180910390f35b61008961013f565b6040516100969190610232565b60405180910390f35b6100a7610145565b6040516100b49190610232565b60405180910390f35b6100d760048036038101906100d2919061024d565b61014b565b005b60006002821061011e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610115906102ea565b60405180910390fd5b6000820361012c5760005490505b6001820361013a5760015490505b919050565b60015481565b60005481565b6002821061018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610185906102ea565b60405180910390fd5b600082036101a257806000819055506101b7565b600182036101b657806001819055506101b7565b5b5050565b600080fd5b6000819050919050565b6101d3816101c0565b81146101de57600080fd5b50565b6000813590506101f0816101ca565b92915050565b60006020828403121561020c5761020b6101bb565b5b600061021a848285016101e1565b91505092915050565b61022c816101c0565b82525050565b60006020820190506102476000830184610223565b92915050565b60008060408385031215610264576102636101bb565b5b6000610272858286016101e1565b9250506020610283858286016101e1565b9150509250929050565b600082825260208201905092915050565b7f746f6f2062696720736c6f740000000000000000000000000000000000000000600082015250565b60006102d4600c8361028d565b91506102df8261029e565b602082019050919050565b60006020820190508181036000830152610303816102c7565b905091905056fea2646970667358221220ceea194bb66b5b9f52c83e5bf5a1989255de8cb7157838eff98f970c3a04cb3064736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"state":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]}],"traceTransfers":true},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x6093bd45b013eaf05790f67641d02029efae7ff806f3f6681e81a0f4b26b2e3c","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x158df","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xac5e","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xac81","status":"0x1"}]},{"number":"0x5","hash":"0xcab90b9b7f7a82440d66d354174348d5130450bb873f8d2263a3e647a224049f","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0xbb16","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x1200000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d91","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple-with-validation-no-funds.io b/tests/eth_multicallV1/multicall-simple-with-validation-no-funds.io index 59ab57d74..ec4f2345f 100644 --- a/tests/eth_multicallV1/multicall-simple-with-validation-no-funds.io +++ b/tests/eth_multicallV1/multicall-simple-with-validation-no-funds.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x43554dd08fc12190549d7946b63288982fec040efad79dc69c4ef96c7a734375","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa410","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-simple.io b/tests/eth_multicallV1/multicall-simple.io index 59ab57d74..ec4f2345f 100644 --- a/tests/eth_multicallV1/multicall-simple.io +++ b/tests/eth_multicallV1/multicall-simple.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x43554dd08fc12190549d7946b63288982fec040efad79dc69c4ef96c7a734375","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa410","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-transaction-too-high-nonce.io b/tests/eth_multicallV1/multicall-transaction-too-high-nonce.io index e351360b0..e0fc7272e 100644 --- a/tests/eth_multicallV1/multicall-transaction-too-high-nonce.io +++ b/tests/eth_multicallV1/multicall-transaction-too-high-nonce.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x64"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x64"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x10f947b1dd03385666a24ade5ade911dfe02a838794a884b6df70b5d8f724667","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-transaction-too-low-nonce-38010.io b/tests/eth_multicallV1/multicall-transaction-too-low-nonce-38010.io index 5ef26d257..ce94a7206 100644 --- a/tests/eth_multicallV1/multicall-transaction-too-low-nonce-38010.io +++ b/tests/eth_multicallV1/multicall-transaction-too-low-nonce-38010.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0xa"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x0"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0xa"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x0"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0x3e644ffb24b50e368c943d9aa550f15c65ea482466af7aeafe3bc5b2b051d945","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]}]} diff --git a/tests/eth_multicallV1/multicall-transfer-over-BlockStateCalls.io b/tests/eth_multicallV1/multicall-transfer-over-BlockStateCalls.io index 456614f95..2906c2406 100644 --- a/tests/eth_multicallV1/multicall-transfer-over-BlockStateCalls.io +++ b/tests/eth_multicallV1/multicall-transfer-over-BlockStateCalls.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","value":"0x3e8"}]},{"stateOverrides":{"0xc300000000000000000000000000000000000000":{"balance":"0x0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc300000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","value":"0x3e8"}]},{"stateOverrides":{"0xc300000000000000000000000000000000000000":{"balance":"0x0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc300000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} << {"jsonrpc":"2.0","id":1,"result":[{"number":"0x4","hash":"0xb10866e38ca7ee1578f52a6396e4d0dae2b423c5940ddb8aa75bd44edd23bc6b","timestamp":"0x1f","gasLimit":"0x4c4b40","gasUsed":"0xa410","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x2310a91d","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"}]},{"number":"0x5","hash":"0x1426c7b42b561b117fc26a9e52c7aac1e25504814a1710d71e779f35d6b13688","timestamp":"0x20","gasLimit":"0x4c4b40","gasUsed":"0x5208","feeRecipient":"0x0000000000000000000000000000000000000000","baseFeePerGas":"0x1eae93fa","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x0","status":"0x0","error":{"message":"err: insufficient funds for gas * price + value: address 0xc300000000000000000000000000000000000000 have 0 want 1000 (supplied gas 4979000)","code":-38014}}]}]} diff --git a/tests/eth_multicallV1/multicall-try-to-move-non-precompile.io b/tests/eth_multicallV1/multicall-try-to-move-non-precompile.io index dd4766905..99d32c689 100644 --- a/tests/eth_multicallV1/multicall-try-to-move-non-precompile.io +++ b/tests/eth_multicallV1/multicall-try-to-move-non-precompile.io @@ -1,2 +1,2 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_multicallV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0x5"}}},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc100000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x5"}]}],"validation":true},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0x5"}}},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"MovePrecompileToAddress":"0xc100000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x5"}]}],"validation":true},"latest"]} << {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0xC000000000000000000000000000000000000000 is not a precompile"}} From c20052c08df49329833410626e28725dbdce7b1d Mon Sep 17 00:00:00 2001 From: KillariDev Date: Sun, 21 Jan 2024 21:00:18 +0200 Subject: [PATCH 11/31] update according to meeting (nonce calculation, blobBaseFee, gasLimit calculation when gasLimit is not defined) --- docs/multicall-notes.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/multicall-notes.md b/docs/multicall-notes.md index 37a58f051..46bbe43fe 100644 --- a/docs/multicall-notes.md +++ b/docs/multicall-notes.md @@ -20,7 +20,7 @@ Unlike `eth_call`, `eth_simulateV1`'s calls are conducted inside blocks. We don' | sha3Uncles | Empty trie root | | withdrawals | Empty array | | uncles | Empty array | -| blobGasPrice | Calculated on what it should be according to EIP-4844 spec. Note: blobGasPrice is not adjusted in the phantom blocks. | +| blobBaseFee | Calculated on what it should be according to EIP-4844 spec. Note: blobBaseFee is not adjusted in the phantom blocks. | | number | Previous block number + 1 | | logsBloom | Calculated normally. ETH logs are not part of the calculation | | receiptsRoot | Calculated normally | @@ -83,10 +83,10 @@ As multicall is an extension to `eth_call` we want to enable the nice user exper | parameter name | description | -----------------|----------------------- | type | `0x2` | -| nonce | Defaults to correct nonce | +| nonce | Take the correct nonce for the account prior multicall and increment by one for each transaction by the account | | to | `null` | | from | `0x0000000000000000000000000000000000000000` | -| gas limit | Remaining gas in the current block. This is calculated dynamically one by one for each transaction that is being processed. | +| gas limit | (blockGasLimit - SumOfGasLimitOfTransactionsWithDefinedGasLimit) / NumberOfTransactionsWithoutKnownGasLimit | | value | `0x0` | | input | no data | | gasPrice | `0x0` | @@ -96,7 +96,7 @@ As multicall is an extension to `eth_call` we want to enable the nice user exper | blobVersionedHashes | empty array | ## Overriding default values -The default values of blocks and transactions can be overriden. For Transactions we allow overriding of variables `type`, `nonce`, `to`, `from`, `gas limit`, `value`, `input`, `gasPrice`, `maxPriorityFeePerGas`, `maxFeePerGas`, `accessList`, and for blocks we allow modifications of `number`, `time`, `gasLimit`, `feeRecipient`, `prevRandao`, `baseFeePerGas` and `blobGasPrice`: +The default values of blocks and transactions can be overriden. For Transactions we allow overriding of variables `type`, `nonce`, `to`, `from`, `gas limit`, `value`, `input`, `gasPrice`, `maxPriorityFeePerGas`, `maxFeePerGas`, `accessList`, and for blocks we allow modifications of `number`, `time`, `gasLimit`, `feeRecipient`, `prevRandao`, `baseFeePerGas` and `blobBaseFee`: ```json "blockOverrides": { "number": "0x14", @@ -105,7 +105,7 @@ The default values of blocks and transactions can be overriden. For Transactions "feeRecipient": "0xc100000000000000000000000000000000000000", "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000001234", "baseFeePerGas": "0x14", - "blobGasPrice": "0x15" + "blobBaseFee": "0x15" }, ``` All the other fields are computed automatically (eg, `stateRoot` and `gasUsed`) or kept as their default values (eg. `uncles` or `withdrawals`). When overriding `number` and `time` variables for blocks, we automatically check that the block numbers and time fields are strictly increasing (we don't allow decreasing, or duplicated block numbers or times). If the block number is increased more than `1` compared to the previous block, phantom blocks are created to fill the gaps. From 7aee5b3e2312e3bae85a3942d5004e6b2aba5384 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Thu, 1 Feb 2024 16:32:12 +0200 Subject: [PATCH 12/31] add note that when targeting non-precompiles with MovePrecompileToAddress is an undefined behaviour --- src/schemas/execute.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index db50826f0..add6c9ed1 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -74,7 +74,7 @@ AccountOverrideState: $ref: '#/components/schemas/bytes' movePrecompileToAddress: title: MovePrecompileToAddress - description: Moves addresses precompile into the specified address. This move is done before the 'code' override is set. Can only move precompiles. + description: Moves addresses precompile into the specified address. This move is done before the 'code' override is set. When the specified address is not a precompile, the behaviour is undefined and different clients might behave differently. $ref: '#/components/schemas/address' state: title: Storage From 8996847c1f3421b0aea1c3a772fec9ab7cfb466e Mon Sep 17 00:00:00 2001 From: KillariDev Date: Mon, 26 Feb 2024 10:39:46 +0200 Subject: [PATCH 13/31] rename focument to be eth simulate related because of the name change --- docs/{multicall-notes.md => ethsimulatev1-notes.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{multicall-notes.md => ethsimulatev1-notes.md} (100%) diff --git a/docs/multicall-notes.md b/docs/ethsimulatev1-notes.md similarity index 100% rename from docs/multicall-notes.md rename to docs/ethsimulatev1-notes.md From e76cb57322486f4c7b81c63017e128d9e191ecac Mon Sep 17 00:00:00 2001 From: KillariDev Date: Mon, 26 Feb 2024 10:45:24 +0200 Subject: [PATCH 14/31] add transaction hash and index to the logs --- src/schemas/execute.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index add6c9ed1..a5642cea8 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -325,6 +325,8 @@ CallResultLog: - logIndex - blockhash - blockNumber + - transactionHash + - transactionIndex - address - data - topics @@ -338,6 +340,12 @@ CallResultLog: blockNumber: title: block number $ref: '#/components/schemas/uint64' + transactionHash: + title: transaction hash + $ref: '#/components/schemas/hash32' + transactionIndex: + title: transaction index + $ref: '#/components/schemas/uint256' address: title: address description: When trace transfers is enabled, this field is address(0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee) for ETH transfers. From dde3124a8a81102878113746c8498cb477076ab8 Mon Sep 17 00:00:00 2001 From: KillariDev <13102010+KillariDev@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:07:30 +0200 Subject: [PATCH 15/31] Update docs/ethsimulatev1-notes.md Co-authored-by: Ryan Schneider --- docs/ethsimulatev1-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ethsimulatev1-notes.md b/docs/ethsimulatev1-notes.md index 46bbe43fe..c68e57fc3 100644 --- a/docs/ethsimulatev1-notes.md +++ b/docs/ethsimulatev1-notes.md @@ -113,7 +113,7 @@ All the other fields are computed automatically (eg, `stateRoot` and `gasUsed`) An interesting note here is that an user can specify block numbers and times of some blocks, but not for others. When block numbers of times are left unspecified, the default values will be used. After the blocks have been constructed, and default values are calculated, the blocks are checked that their block numbers and times are still valid. ## ETH transfer logs -When `traceTransfers` setting is enabled on `eth_simulateV1` The multical will return logs for ethereum transfers along with the normal logs sent by contracts. The ETH transfers are identical to ERC20 transfers, except the "sending contract" is address `0x0`. +When `traceTransfers` setting is enabled on `eth_simulateV1` The multical will return logs for ethereum transfers along with the normal logs sent by contracts. The ETH transfers are identical to ERC20 transfers, except the "sending contract" is address `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee`. For example, here's a query that will simply send ether from one address to another (with a state override that gives us the ETH initially): ```json From db721c44af648cefde7ce9e757868c3069dc598e Mon Sep 17 00:00:00 2001 From: KillariDev Date: Thu, 7 Mar 2024 11:22:12 +0200 Subject: [PATCH 16/31] fix blobgasPrices --- src/schemas/execute.yaml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index a5642cea8..6f424ddfa 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -136,8 +136,8 @@ BlockOverrides: withdrawals: title: Withdrawals made by validators $ref: '#/components/schemas/Withdrawals' - blobGasPrice: - title: Blob gas price + baseFeePerBlobGas: + title: Base fee per unit of blob gas $ref: '#/components/schemas/uint256' Withdrawals: title: Withdrawals made by validators @@ -211,8 +211,8 @@ MultiCallBlockResultSingleSuccess: excessBlobGas: title: The running total of blob gas consumed in excess of the target, prior to the block. $ref: '#/components/schemas/uint256' - blobGasPrice: - title: Blob gas price + baseFeePerBlobGas: + title: Base fee per unit of blob gas $ref: '#/components/schemas/uint256' MultiCallBlockResultInvalid: title: Result of multicall not being valid @@ -415,6 +415,12 @@ GenericCallTransaction: The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei Default: 0 $ref: '#/components/schemas/uint256' + maxFeePerBlobGas: + title: max fee per blob gas + description: |- + The maximum total fee per blob gas the sender is willing to pay in wei + Default: 0 + $ref: '#/components/schemas/uint256' accessList: title: accessList description: |- From aef37eb678e16a91124cad997dea11692d4fb9ef Mon Sep 17 00:00:00 2001 From: KillariDev Date: Fri, 8 Mar 2024 10:21:00 +0200 Subject: [PATCH 17/31] use blobBaseFee for now --- src/schemas/execute.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index 6f424ddfa..49514d45d 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -136,7 +136,7 @@ BlockOverrides: withdrawals: title: Withdrawals made by validators $ref: '#/components/schemas/Withdrawals' - baseFeePerBlobGas: + blobBaseFee: title: Base fee per unit of blob gas $ref: '#/components/schemas/uint256' Withdrawals: @@ -211,7 +211,7 @@ MultiCallBlockResultSingleSuccess: excessBlobGas: title: The running total of blob gas consumed in excess of the target, prior to the block. $ref: '#/components/schemas/uint256' - baseFeePerBlobGas: + blobBaseFee: title: Base fee per unit of blob gas $ref: '#/components/schemas/uint256' MultiCallBlockResultInvalid: From 85ad1a44fe019c47fb0d6de7109dbe7ea53fc2ca Mon Sep 17 00:00:00 2001 From: KillariDev Date: Wed, 20 Mar 2024 13:08:50 +0200 Subject: [PATCH 18/31] remove blobBaseFee, not part of header --- src/schemas/execute.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index 49514d45d..ccada95e2 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -211,9 +211,6 @@ MultiCallBlockResultSingleSuccess: excessBlobGas: title: The running total of blob gas consumed in excess of the target, prior to the block. $ref: '#/components/schemas/uint256' - blobBaseFee: - title: Base fee per unit of blob gas - $ref: '#/components/schemas/uint256' MultiCallBlockResultInvalid: title: Result of multicall not being valid description: The error messages are suggestions and a client might decide to return a different errror message than specified here. However, the error codes are enforced by this specification. From 21c6dfaf4efbaac606f609b4728031ba79ef0c4f Mon Sep 17 00:00:00 2001 From: KillariDev Date: Wed, 20 Mar 2024 13:10:27 +0200 Subject: [PATCH 19/31] blobBaseFee to uint64 and validator_index -> `validatorIndex` --- src/schemas/execute.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index ccada95e2..d6f722838 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -138,7 +138,7 @@ BlockOverrides: $ref: '#/components/schemas/Withdrawals' blobBaseFee: title: Base fee per unit of blob gas - $ref: '#/components/schemas/uint256' + $ref: '#/components/schemas/uint64' Withdrawals: title: Withdrawals made by validators description: This array can have a maximum length of 16. @@ -152,7 +152,7 @@ Withdrawal: index: title: index $ref: '#/components/schemas/uint64' - validator_index: + validatorIndex: title: Validator Index $ref: '#/components/schemas/uint64' address: @@ -207,7 +207,7 @@ MultiCallBlockResultSingleSuccess: $ref: '#/components/schemas/Withdrawals' blobGasUsed: title: The total amount of blob gas consumed by the transactions within the block. - $ref: '#/components/schemas/uint256' + $ref: '#/components/schemas/uint64' excessBlobGas: title: The running total of blob gas consumed in excess of the target, prior to the block. $ref: '#/components/schemas/uint256' From 1ccfd371fe2e98f1c1e85eed312a4ec00a845612 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Wed, 24 Apr 2024 15:20:03 +0300 Subject: [PATCH 20/31] remove phantom blocks :( --- docs/ethsimulatev1-notes.md | 56 ++++--------------------------------- 1 file changed, 5 insertions(+), 51 deletions(-) diff --git a/docs/ethsimulatev1-notes.md b/docs/ethsimulatev1-notes.md index c68e57fc3..014b14f89 100644 --- a/docs/ethsimulatev1-notes.md +++ b/docs/ethsimulatev1-notes.md @@ -13,14 +13,14 @@ Unlike `eth_call`, `eth_simulateV1`'s calls are conducted inside blocks. We don' | extraData | `0x0000000000000000000000000000000000000000000000000000000000000000` | | difficulty | The same as the base block defined as the second parameter in the call | | gasLimit | The same as the base block defined as the second parameter in the call | -| hash | Calculated normally, except for phantom blocks, see below Phantom block section | -| parentHash | Previous blocks hash (the real hash, or phantom blocks hash) | +| hash | Calculated normally | +| parentHash | Previous blocks hash | | timestamp | The timestamp of previous block + 1 | -| baseFeePerGas | Calculated on what it should be according to Ethereum's spec. Note: baseFeePerGas is not adjusted in the phantom blocks. | +| baseFeePerGas | Calculated on what it should be according to Ethereum's spec. | | sha3Uncles | Empty trie root | | withdrawals | Empty array | | uncles | Empty array | -| blobBaseFee | Calculated on what it should be according to EIP-4844 spec. Note: blobBaseFee is not adjusted in the phantom blocks. | +| blobBaseFee | Calculated on what it should be according to EIP-4844 spec. | | number | Previous block number + 1 | | logsBloom | Calculated normally. ETH logs are not part of the calculation | | receiptsRoot | Calculated normally | @@ -32,52 +32,6 @@ Unlike `eth_call`, `eth_simulateV1`'s calls are conducted inside blocks. We don' An interesting note here is that we decide timestamp as `previous block timestamp + 1`, while `previous block timestamp + 12` could also be an assumed default. The reasoning to use `+1` is that it's the minimum amount we have to increase the timestamp to keep them valid. While `+12` is what Mainnet uses, there are other chains that use some other values, and we didn't want to complicate the specification to consider all networks. -### Phantom blocks -The multicall allows you to define on what block number your calls or transactions are being executed on. E.g, consider following call: -```json -{ - "jsonrpc": "2.0", - "id": 1, - "method": "eth_simulateV1", - "params": [ - { - "blockStateCalls": [ - { - "blockOverrides": { - "number": "0x64" - }, - }, - { - "blockOverrides": { - "number": "0xc8" - }, - } - ] - }, - "0xa" - ] -} -``` - -Here we want our calls to be executed in blocks 100 (`0x64`) and in 200 (`0xc8`). The block numbers can be anything as long as they are increasing and higher than the block we are building from 10 (`0xa`). Now we end up in a situation where there exists block ranges 11-99 and 101-199 that are not defined anywhere. These blocks are called "phantom blocks". What happens if you try to request block hash of any of such blocks in the EVM? How can we calculate the block hash of future blocks when we don't know the block hash of the previous block? - -Our solution to this problem is to define block hash of a phantom block to be: - -``` -keccak(rlp([hash_of_previous_non_phantom_block, phantom_block_number])) -``` - -So for example in our example, you could get block hash of block 142 as follows: -``` -keccak(rlp([hash of block 12, 142])) -``` - -The phantom blocks other properties are set to their default properties as defined by the multicall specification. We came to this definition by wanting phantom block hashes to be unique if things prior to the phantom block changes, so if tooling is storing block hashes somewhere, they should remain unique if things change in the simulation. - -One other approach to this problem would be to really calculate the real block hashes for all the phantom blocks, but this would make generating blocks far in future really expensive, as to generate 100 phantom blocks, you would need to calculate 100 block hashes that all depend on each other. And in most cases, no one really cares about these blocks. - -Base fee per gas is not adjusted in the phantom blocks, their base fee remains constant. - ## Default values for transactions As multicall is an extension to `eth_call` we want to enable the nice user experience that the user does not need to provide all required values for a transaction. We are assuming following defaults if the variable is not provided by the user: | parameter name | description | @@ -108,7 +62,7 @@ The default values of blocks and transactions can be overriden. For Transactions "blobBaseFee": "0x15" }, ``` -All the other fields are computed automatically (eg, `stateRoot` and `gasUsed`) or kept as their default values (eg. `uncles` or `withdrawals`). When overriding `number` and `time` variables for blocks, we automatically check that the block numbers and time fields are strictly increasing (we don't allow decreasing, or duplicated block numbers or times). If the block number is increased more than `1` compared to the previous block, phantom blocks are created to fill the gaps. +All the other fields are computed automatically (eg, `stateRoot` and `gasUsed`) or kept as their default values (eg. `uncles` or `withdrawals`). When overriding `number` and `time` variables for blocks, we automatically check that the block numbers and time fields are strictly increasing (we don't allow decreasing, or duplicated block numbers or times). If the block number is increased more than `1` compared to the previous block, new empty blocks are generated in between. An interesting note here is that an user can specify block numbers and times of some blocks, but not for others. When block numbers of times are left unspecified, the default values will be used. After the blocks have been constructed, and default values are calculated, the blocks are checked that their block numbers and times are still valid. From f297b4fb9908a6af71878bd645a792fe479ece98 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Wed, 29 May 2024 13:24:46 +0300 Subject: [PATCH 21/31] rename multicall stuff to ethsimulate stuff. Add `returnFullTransactions`, add more fields to block to return --- src/schemas/execute.yaml | 112 ++++++++++++++++++++++++++++++--------- 1 file changed, 87 insertions(+), 25 deletions(-) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index d6f722838..1f45a9f62 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -1,4 +1,4 @@ -MultiCallPayload: +EthSimulatePayload: title: Arguments for multi call required: - blockStateCalls @@ -16,9 +16,14 @@ MultiCallPayload: validation: title: Validation description: |- - When true, the multicall does all validations that a normal EVM would do, except contract sender and signature checks. When false, multicall behaves like eth_call. + When true, the eth_simulateV1 does all validations that a normal EVM would do, except contract sender and signature checks. When false, eth_simulateV1 behaves like eth_call. Default: false. type: boolean + returnFullTransactions: + title: Return Full Transactions + description: |- + When true, the method returns full transaction objects, otherwise, just hashes are returned. + type: boolean BlockStateCalls: title: Array of block state calls to be executed at specific, optional block/state. description: "The size of this array may be limited depending on the client as a DOS protection. 256 is a common/recommended limit as it is the same limit used by BLOCKHASH opcode." @@ -161,47 +166,39 @@ Withdrawal: amount: title: Amount $ref: '#/components/schemas/uint64' -MultiCallResult: +EthSimulateResult: title: Full results of multi call type: object oneOf: - - $ref: '#/components/schemas/MultiCallBlockResultInvalid' - - $ref: '#/components/schemas/MultiCallBlockResultSuccess' -MultiCallBlockResultSuccess: + - $ref: '#/components/schemas/EthSimulateBlockResultInvalid' + - $ref: '#/components/schemas/EthSimulateBlockResultSuccess' +EthSimulateBlockResultSuccess: title: Full results of multi call type: array items: - $ref: '#/components/schemas/MultiCallBlockResultSingleSuccess' -MultiCallBlockResultSingleSuccess: - title: Result of multicall block-level, with array of calls + $ref: '#/components/schemas/EthSimulateBlockResultSingleSuccess' +EthSimulateBlockResultSingleSuccess: + title: Result of eth_simulate block-level, with array of calls type: object properties: + baseFeePerGas: + title: Base fee per unit of gas + $ref: '#/components/schemas/uint256' number: title: Number $ref: '#/components/schemas/uint64' hash: title: Block Hash $ref: '#/components/schemas/hash32' - timestamp: - title: Timestamp - $ref: '#/components/schemas/uint64' gasLimit: title: Gas limit $ref: '#/components/schemas/uint64' + timestamp: + title: Timestamp + $ref: '#/components/schemas/uint64' gasUsed: title: Gas used $ref: '#/components/schemas/uint64' - feeRecipient: - title: Fee Recipient (also known as coinbase) - $ref: '#/components/schemas/address' - baseFeePerGas: - title: Base fee per unit of gas - $ref: '#/components/schemas/uint256' - calls: - $ref: '#/components/schemas/CallResults' - prevRandao: - title: The Previous value of randomness beacon - $ref: '#/components/schemas/uint256' withdrawals: title: Withdrawals made by validators $ref: '#/components/schemas/Withdrawals' @@ -211,8 +208,73 @@ MultiCallBlockResultSingleSuccess: excessBlobGas: title: The running total of blob gas consumed in excess of the target, prior to the block. $ref: '#/components/schemas/uint256' -MultiCallBlockResultInvalid: - title: Result of multicall not being valid + miner: + title: Fee Recipient (also known as coinbase) + $ref: '#/components/schemas/address' + mixHash: + title: The Previous value of randomness beacon + $ref: '#/components/schemas/uint256' + parentHash: + title: Parent block hash + $ref: '#/components/schemas/hash32' + sha3Uncles: + title: Ommers hash + $ref: '#/components/schemas/hash32' + stateRoot: + title: State root + $ref: '#/components/schemas/hash32' + transactionsRoot: + title: Transactions root + $ref: '#/components/schemas/hash32' + receiptsRoot: + title: Receipts root + $ref: '#/components/schemas/hash32' + logsBloom: + title: Bloom filter + $ref: '#/components/schemas/bytes256' + difficulty: + title: Difficulty + $ref: '#/components/schemas/uint' + extraData: + title: Extra data + $ref: '#/components/schemas/bytes' + mixHash: + title: Mix hash + $ref: '#/components/schemas/hash32' + nonce: + title: Nonce + $ref: '#/components/schemas/bytes8' + size: + title: Block size + $ref: '#/components/schemas/uint' + totalDifficulty: + title: Total difficulty + $ref: '#/components/schemas/uint' + parentBeaconBlockRoot: + title: Parent Beacon Block Root + $ref: '#/components/schemas/hash32' + withdrawalsRoot: + title: Withdrawals root + $ref: '#/components/schemas/hash32' + transactions: + anyOf: + - title: Transaction hashes + type: array + items: + $ref: '#/components/schemas/hash32' + - title: Full transactions + type: array + items: + $ref: '#/components/schemas/TransactionInfo' + uncles: + title: Uncles + type: array + items: + $ref: '#/components/schemas/hash32' + calls: + $ref: '#/components/schemas/CallResults' +EthSimulateBlockResultInvalid: + title: Result of eth_simulate not being valid description: The error messages are suggestions and a client might decide to return a different errror message than specified here. However, the error codes are enforced by this specification. type: object required: From e3332ea61436424f7160b0c5bc074a88edf670fa Mon Sep 17 00:00:00 2001 From: KillariDev Date: Wed, 29 May 2024 15:03:10 +0300 Subject: [PATCH 22/31] use `allOf` --- src/schemas/execute.yaml | 102 ++++----------------------------------- 1 file changed, 9 insertions(+), 93 deletions(-) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index 1f45a9f62..616098390 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -180,99 +180,15 @@ EthSimulateBlockResultSuccess: EthSimulateBlockResultSingleSuccess: title: Result of eth_simulate block-level, with array of calls type: object - properties: - baseFeePerGas: - title: Base fee per unit of gas - $ref: '#/components/schemas/uint256' - number: - title: Number - $ref: '#/components/schemas/uint64' - hash: - title: Block Hash - $ref: '#/components/schemas/hash32' - gasLimit: - title: Gas limit - $ref: '#/components/schemas/uint64' - timestamp: - title: Timestamp - $ref: '#/components/schemas/uint64' - gasUsed: - title: Gas used - $ref: '#/components/schemas/uint64' - withdrawals: - title: Withdrawals made by validators - $ref: '#/components/schemas/Withdrawals' - blobGasUsed: - title: The total amount of blob gas consumed by the transactions within the block. - $ref: '#/components/schemas/uint64' - excessBlobGas: - title: The running total of blob gas consumed in excess of the target, prior to the block. - $ref: '#/components/schemas/uint256' - miner: - title: Fee Recipient (also known as coinbase) - $ref: '#/components/schemas/address' - mixHash: - title: The Previous value of randomness beacon - $ref: '#/components/schemas/uint256' - parentHash: - title: Parent block hash - $ref: '#/components/schemas/hash32' - sha3Uncles: - title: Ommers hash - $ref: '#/components/schemas/hash32' - stateRoot: - title: State root - $ref: '#/components/schemas/hash32' - transactionsRoot: - title: Transactions root - $ref: '#/components/schemas/hash32' - receiptsRoot: - title: Receipts root - $ref: '#/components/schemas/hash32' - logsBloom: - title: Bloom filter - $ref: '#/components/schemas/bytes256' - difficulty: - title: Difficulty - $ref: '#/components/schemas/uint' - extraData: - title: Extra data - $ref: '#/components/schemas/bytes' - mixHash: - title: Mix hash - $ref: '#/components/schemas/hash32' - nonce: - title: Nonce - $ref: '#/components/schemas/bytes8' - size: - title: Block size - $ref: '#/components/schemas/uint' - totalDifficulty: - title: Total difficulty - $ref: '#/components/schemas/uint' - parentBeaconBlockRoot: - title: Parent Beacon Block Root - $ref: '#/components/schemas/hash32' - withdrawalsRoot: - title: Withdrawals root - $ref: '#/components/schemas/hash32' - transactions: - anyOf: - - title: Transaction hashes - type: array - items: - $ref: '#/components/schemas/hash32' - - title: Full transactions - type: array - items: - $ref: '#/components/schemas/TransactionInfo' - uncles: - title: Uncles - type: array - items: - $ref: '#/components/schemas/hash32' - calls: - $ref: '#/components/schemas/CallResults' + allOf: + - $ref: '#/components/schemas/Block' + - title: Eth Simulate call results + required: + - calls + properties: + calls: + title: Call Results + $ref: '#/components/schemas/CallResults' EthSimulateBlockResultInvalid: title: Result of eth_simulate not being valid description: The error messages are suggestions and a client might decide to return a different errror message than specified here. However, the error codes are enforced by this specification. From e91346626be8d7e44ca014cfa9f0c6078fd88176 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Tue, 4 Jun 2024 16:39:34 +0300 Subject: [PATCH 23/31] when validation mode is false, baseFeePerGas and blobBaseFee are set to zero by default --- docs/ethsimulatev1-notes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ethsimulatev1-notes.md b/docs/ethsimulatev1-notes.md index 014b14f89..28f51e0e5 100644 --- a/docs/ethsimulatev1-notes.md +++ b/docs/ethsimulatev1-notes.md @@ -16,11 +16,11 @@ Unlike `eth_call`, `eth_simulateV1`'s calls are conducted inside blocks. We don' | hash | Calculated normally | | parentHash | Previous blocks hash | | timestamp | The timestamp of previous block + 1 | -| baseFeePerGas | Calculated on what it should be according to Ethereum's spec. | +| baseFeePerGas | When validation mode is true, baseFeePerGas is calculated on what it should be according to Ethereum's spec. When validation mode is false, the baseFeePerGas is set to zero | | sha3Uncles | Empty trie root | | withdrawals | Empty array | | uncles | Empty array | -| blobBaseFee | Calculated on what it should be according to EIP-4844 spec. | +| blobBaseFee | When validation mode is true, blobBaseFee is calculated on what it should be according to EIP-4844 spec. When validation mode is false, the blobBaseFee is set to zero | | number | Previous block number + 1 | | logsBloom | Calculated normally. ETH logs are not part of the calculation | | receiptsRoot | Calculated normally | From 8141886b518610e025fd4332b34cfc7ed8c79ab4 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Wed, 12 Jun 2024 15:54:41 +0300 Subject: [PATCH 24/31] multicall -> eth_simulate, add chain id, add default rsv values, add zero basefee reasoning --- docs/ethsimulatev1-notes.md | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/docs/ethsimulatev1-notes.md b/docs/ethsimulatev1-notes.md index 28f51e0e5..914d218e8 100644 --- a/docs/ethsimulatev1-notes.md +++ b/docs/ethsimulatev1-notes.md @@ -1,4 +1,4 @@ -# Multicall +# eth_simulate This document contains some extra information that couldn't be fit to the specification document directly. ## Default block values @@ -33,14 +33,14 @@ Unlike `eth_call`, `eth_simulateV1`'s calls are conducted inside blocks. We don' An interesting note here is that we decide timestamp as `previous block timestamp + 1`, while `previous block timestamp + 12` could also be an assumed default. The reasoning to use `+1` is that it's the minimum amount we have to increase the timestamp to keep them valid. While `+12` is what Mainnet uses, there are other chains that use some other values, and we didn't want to complicate the specification to consider all networks. ## Default values for transactions -As multicall is an extension to `eth_call` we want to enable the nice user experience that the user does not need to provide all required values for a transaction. We are assuming following defaults if the variable is not provided by the user: +As eth_simulate is an extension to `eth_call` we want to enable the nice user experience that the user does not need to provide all required values for a transaction. We are assuming following defaults if the variable is not provided by the user: | parameter name | description | -----------------|----------------------- | type | `0x2` | -| nonce | Take the correct nonce for the account prior multicall and increment by one for each transaction by the account | +| nonce | Take the correct nonce for the account prior eth_simulate and increment by one for each transaction by the account | | to | `null` | | from | `0x0000000000000000000000000000000000000000` | -| gas limit | (blockGasLimit - SumOfGasLimitOfTransactionsWithDefinedGasLimit) / NumberOfTransactionsWithoutKnownGasLimit | +| gasLimit | (blockGasLimit - SumOfGasLimitOfTransactionsWithDefinedGasLimit) / NumberOfTransactionsWithoutKnownGasLimit | | value | `0x0` | | input | no data | | gasPrice | `0x0` | @@ -48,6 +48,11 @@ As multicall is an extension to `eth_call` we want to enable the nice user exper | maxFeePerGas | `0x0` | | accessList | empty array | | blobVersionedHashes | empty array | +| chainId | The chain id of the current chain | +| r | `0x0` | +| s | `0x0` | +| yParity | even | +| v | `0x0` | ## Overriding default values The default values of blocks and transactions can be overriden. For Transactions we allow overriding of variables `type`, `nonce`, `to`, `from`, `gas limit`, `value`, `input`, `gasPrice`, `maxPriorityFeePerGas`, `maxFeePerGas`, `accessList`, and for blocks we allow modifications of `number`, `time`, `gasLimit`, `feeRecipient`, `prevRandao`, `baseFeePerGas` and `blobBaseFee`: @@ -67,7 +72,7 @@ All the other fields are computed automatically (eg, `stateRoot` and `gasUsed`) An interesting note here is that an user can specify block numbers and times of some blocks, but not for others. When block numbers of times are left unspecified, the default values will be used. After the blocks have been constructed, and default values are calculated, the blocks are checked that their block numbers and times are still valid. ## ETH transfer logs -When `traceTransfers` setting is enabled on `eth_simulateV1` The multical will return logs for ethereum transfers along with the normal logs sent by contracts. The ETH transfers are identical to ERC20 transfers, except the "sending contract" is address `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee`. +When `traceTransfers` setting is enabled on `eth_simulateV1`, eth_simulate will return logs for ethereum transfers along with the normal logs sent by contracts. The ETH transfers are identical to ERC20 transfers, except the "sending contract" is address `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee`. For example, here's a query that will simply send ether from one address to another (with a state override that gives us the ETH initially): ```json @@ -163,21 +168,26 @@ The ETH logs will contain following types of ETH transfers: But not following ones: - Gas fees - - Multicalls eth balance override + - eth_simulates eth balance override ETH logs are not part of the calculation for logs bloom filter. Also, similar to normal logs, if the transaction sends ETH but the execution reverts, no log gets issued. -## Validation -The multicall has a feature to enable or disable validation with setting `Validation`, by default, the validation is off, and the multicall mimics `eth_call` with reduced number of checks. Validation enabled mode is intended to give as close as possible simulation of real EVM block creation, except there's no checks for transaction signatures and we also allow one to send a direct transaction from a contract. +## Validation Mode +The `eth_simulate` includes a feature to enable or disable validation using the `Validation` setting. By default, validation is off, and `eth_simulate` behaves similarly to `eth_call`. When validation is enabled, the simulation closely approximates real EVM block creation, except it skips transaction signature checks and allows direct transactions from contracts. + +### Zero Base Fee +When validation mode is disabled, the block's `baseFee` is set to zero. This affects the BASEFEE opcode and the `baseFee` returned by `eth_simulate`. Additionally, the base fee does not auto-adjust based on the parent block, even if the user overrides the previous block's `baseFee`. + +This behavior is intentional to enable free transactions in `eth_simulate`, allowing users to avoid adding boilerplate code to give themselves ETH using a balance override. While similar results could be achieved by skipping balance validation, it would be inconsistent with EVM operations. ## Failures -It is possible that user defines a transaction that cannot be included in the Ethereum block as it breaks the rules of EVM. For example, if transactions nonce is too high or low, baseFeePerGas is too low etc. In these situations the execution of multicall ends and an error is returned. +It is possible that user defines a transaction that cannot be included in the Ethereum block as it breaks the rules of EVM. For example, if transactions nonce is too high or low, baseFeePerGas is too low etc. In these situations the execution of eth_simulate ends and an error is returned. ## Version number -The method name for multicall `eth_simulateV1` the intention is that after release of multicall, if new features are wanted the `eth_simulateV1` is kept as it is, and instead `eth_simulateV2` is published with the new wanted features. +The method name for eth_simulate `eth_simulateV1` the intention is that after release of eth_simulate, if new features are wanted the `eth_simulateV1` is kept as it is, and instead `eth_simulateV2` is published with the new wanted features. ## Clients can set their own limits Clients may introduce their own limits to prevent DOS attacks using the method. We have thought of three such standard limits - How many blocks can be defined in `BlockStateCalls`. The suggested default for this is 256 blocks -- A global gas limit (similar to the same limit for `eth_call`). The multicall cannot exceed the global gas limit over its lifespan +- A global gas limit (similar to the same limit for `eth_call`). The eth_simulate cannot exceed the global gas limit over its lifespan - The clients can set their own limit on how big the input JSON payload can be. A suggested default for this is 30mb From 2ee9fc20c2308029c7cbfdb9aa2755bd17ba8981 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Tue, 17 Sep 2024 14:42:00 +0200 Subject: [PATCH 25/31] add rationale for pre-computed calls --- docs/ethsimulatev1-notes.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/ethsimulatev1-notes.md b/docs/ethsimulatev1-notes.md index 914d218e8..29fd2250a 100644 --- a/docs/ethsimulatev1-notes.md +++ b/docs/ethsimulatev1-notes.md @@ -191,3 +191,14 @@ Clients may introduce their own limits to prevent DOS attacks using the method. - How many blocks can be defined in `BlockStateCalls`. The suggested default for this is 256 blocks - A global gas limit (similar to the same limit for `eth_call`). The eth_simulate cannot exceed the global gas limit over its lifespan - The clients can set their own limit on how big the input JSON payload can be. A suggested default for this is 30mb + +## Rationale + +### Pre-computed calls + +When it comes to contract override behavior, specifically precompile override, there were two approaches: + +1. As specified above to allow replacement of precompiles by EVM code and to allow those same precompiles to be relocated to another access for fallback behavior. +2. Allow users to pass in a set of pre-computed calls for an address, i.e. direct mapping of input to output. + +The second approach has better UX for simple use-cases such as faking a signature via ecrecover. It also allows for getting the same gas usage as a real precompile execution. Nevertheless it imposes changes to the EVM interpreter code, which has been otherwise avoided, without enabling new features. Hence the spec proposes the first alternative. From 42d1249d61f4a1446a69b194526d3192a8a27ba5 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Tue, 17 Sep 2024 15:06:02 +0200 Subject: [PATCH 26/31] update with flexibility --- docs/ethsimulatev1-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ethsimulatev1-notes.md b/docs/ethsimulatev1-notes.md index 29fd2250a..1ad429c16 100644 --- a/docs/ethsimulatev1-notes.md +++ b/docs/ethsimulatev1-notes.md @@ -201,4 +201,4 @@ When it comes to contract override behavior, specifically precompile override, t 1. As specified above to allow replacement of precompiles by EVM code and to allow those same precompiles to be relocated to another access for fallback behavior. 2. Allow users to pass in a set of pre-computed calls for an address, i.e. direct mapping of input to output. -The second approach has better UX for simple use-cases such as faking a signature via ecrecover. It also allows for getting the same gas usage as a real precompile execution. Nevertheless it imposes changes to the EVM interpreter code, which has been otherwise avoided, without enabling new features. Hence the spec proposes the first alternative. +The second approach has better UX for simple use-cases such as faking a signature via ecrecover. It also allows for getting the same gas usage as a real precompile execution. The simpler UX comes at cost of flexibility. Overriding with EVM code is general. It also imposes changes to the EVM interpreter code, which has been otherwise avoided, without enabling new features. Hence the spec proposes the first alternative. From 0256a4b6072576cd099a9349ad5e20123c1adc43 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Wed, 25 Sep 2024 13:15:42 +0300 Subject: [PATCH 27/31] added removed field to logs which should have been there --- src/schemas/execute.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index 616098390..78715fa58 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -305,6 +305,7 @@ CallResultLog: - address - data - topics + - removed properties: logIndex: title: log index @@ -333,6 +334,10 @@ CallResultLog: type: array items: $ref: '#/components/schemas/bytes32' + removed: + title: removed + type: boolean + description: Always false. A flag indicating if a log was removed in a chain reorganization, which cannot happen in eth_simulateV1. GenericCallTransaction: type: object title: Transaction object type for call From de3e3f592da45525c6541cc6861ee4e0e9d8703f Mon Sep 17 00:00:00 2001 From: KillariDev Date: Mon, 7 Oct 2024 10:37:21 +0300 Subject: [PATCH 28/31] make "removed" an optional field --- src/schemas/execute.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index 78715fa58..c202a3be1 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -305,7 +305,6 @@ CallResultLog: - address - data - topics - - removed properties: logIndex: title: log index @@ -337,7 +336,8 @@ CallResultLog: removed: title: removed type: boolean - description: Always false. A flag indicating if a log was removed in a chain reorganization, which cannot happen in eth_simulateV1. + description: |- + Default: False. The flag is always False if present. A flag indicating if a log was removed in a chain reorganization, which cannot happen in eth_simulateV1. GenericCallTransaction: type: object title: Transaction object type for call From d7b461656ccda810261d7b6fa376c35cd994ba9b Mon Sep 17 00:00:00 2001 From: KillariDev Date: Mon, 7 Oct 2024 11:55:35 +0300 Subject: [PATCH 29/31] relax time requirement so that time can stay still --- src/schemas/execute.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index c202a3be1..14444b48e 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -128,7 +128,7 @@ BlockOverrides: time: title: Time $ref: '#/components/schemas/uint64' - description: When overriding Time across multiple blocks, Time need to be increasing. If time is not specified, it's incremented by one for each block. + description: Time must either increase or remain constant relative to the previous block. If time is not specified, it's incremented by one for each block. gasLimit: title: Gas limit $ref: '#/components/schemas/uint64' From 3324ce9301134913a7e156e1721aac34c8301e97 Mon Sep 17 00:00:00 2001 From: KillariDev Date: Mon, 23 Dec 2024 10:43:29 +0200 Subject: [PATCH 30/31] increase timestamp by +12 (on mainnet) instead of +1 --- docs/ethsimulatev1-notes.md | 4 +--- src/schemas/execute.yaml | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/ethsimulatev1-notes.md b/docs/ethsimulatev1-notes.md index 1ad429c16..b4fc6b8df 100644 --- a/docs/ethsimulatev1-notes.md +++ b/docs/ethsimulatev1-notes.md @@ -15,7 +15,7 @@ Unlike `eth_call`, `eth_simulateV1`'s calls are conducted inside blocks. We don' | gasLimit | The same as the base block defined as the second parameter in the call | | hash | Calculated normally | | parentHash | Previous blocks hash | -| timestamp | The timestamp of previous block + 1 | +| timestamp | The timestamp of previous block + `network block time` (12s on mainnet) | | baseFeePerGas | When validation mode is true, baseFeePerGas is calculated on what it should be according to Ethereum's spec. When validation mode is false, the baseFeePerGas is set to zero | | sha3Uncles | Empty trie root | | withdrawals | Empty array | @@ -30,8 +30,6 @@ Unlike `eth_call`, `eth_simulateV1`'s calls are conducted inside blocks. We don' | gasUsed | Calculated normally | | stateRoot | Calculated normally | -An interesting note here is that we decide timestamp as `previous block timestamp + 1`, while `previous block timestamp + 12` could also be an assumed default. The reasoning to use `+1` is that it's the minimum amount we have to increase the timestamp to keep them valid. While `+12` is what Mainnet uses, there are other chains that use some other values, and we didn't want to complicate the specification to consider all networks. - ## Default values for transactions As eth_simulate is an extension to `eth_call` we want to enable the nice user experience that the user does not need to provide all required values for a transaction. We are assuming following defaults if the variable is not provided by the user: | parameter name | description | diff --git a/src/schemas/execute.yaml b/src/schemas/execute.yaml index 14444b48e..460584b8d 100644 --- a/src/schemas/execute.yaml +++ b/src/schemas/execute.yaml @@ -225,7 +225,7 @@ EthSimulateBlockResultInvalid: - code: -38020 message: Block number in sequence did not increase - code: -38021 - message: Block timestamp in sequence did not increase + message: Block timestamp in sequence did not increase or stay the same - code: -38022 message: MovePrecompileToAddress referenced itself in replacement - code: -38023 From e56d3208789259d0b09fa68e9d8594aa4d73c725 Mon Sep 17 00:00:00 2001 From: KillariDev <13102010+KillariDev@users.noreply.github.com> Date: Mon, 23 Dec 2024 11:06:32 +0200 Subject: [PATCH 31/31] Update docs/ethsimulatev1-notes.md Co-authored-by: Micah Zoltu --- docs/ethsimulatev1-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ethsimulatev1-notes.md b/docs/ethsimulatev1-notes.md index b4fc6b8df..1fad37da1 100644 --- a/docs/ethsimulatev1-notes.md +++ b/docs/ethsimulatev1-notes.md @@ -15,7 +15,7 @@ Unlike `eth_call`, `eth_simulateV1`'s calls are conducted inside blocks. We don' | gasLimit | The same as the base block defined as the second parameter in the call | | hash | Calculated normally | | parentHash | Previous blocks hash | -| timestamp | The timestamp of previous block + `network block time` (12s on mainnet) | +| timestamp | The timestamp of previous block + `network block time` (12s on Ethereum Mainnet) | | baseFeePerGas | When validation mode is true, baseFeePerGas is calculated on what it should be according to Ethereum's spec. When validation mode is false, the baseFeePerGas is set to zero | | sha3Uncles | Empty trie root | | withdrawals | Empty array |