Skip to content

feat: Prepare Additional Conformity Test Scenarios (#3886) #3887

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 31 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
539c303
feat: enhance conformity tests to support wildcards in request/respon…
mwb-al Jul 1, 2025
ee7aaa3
feat: add test override for eth_getTransactionByBlockHashAndIndex wit…
mwb-al Jul 1, 2025
801bf46
feat: add test override for eth_getTransactionByBlockNumberAndIndex w…
mwb-al Jul 1, 2025
1e7d35b
feat: add test override for eth_getTransactionCount (#3886)
mwb-al Jul 1, 2025
accab0e
feat: add test overrides for eth_sendRawTransaction (#3886)
mwb-al Jul 1, 2025
f8e63ce
feat: refactor conformity tests to modularize helper utilities and en…
mwb-al Jul 3, 2025
ac9f8ae
feat: refactor conformity tests to extract processors into separate u…
mwb-al Jul 3, 2025
7738e66
feat: refactor conformity test utilities for improved modularity and …
mwb-al Jul 3, 2025
82b0cf8
feat: add test override for eth_blockNumber with wildcard validation …
mwb-al Jul 4, 2025
d86eaa4
feat: add test overrides for eth_call with updated expected results a…
mwb-al Jul 4, 2025
e53c568
feat: add test override for eth_chainId with updated chain ID validat…
mwb-al Jul 4, 2025
4bccaeb
feat: add test overrides for eth_createAccessList with updated unsupp…
mwb-al Jul 4, 2025
04e8b5c
feat: add test overrides for eth_estimateGas with updated expected re…
mwb-al Jul 4, 2025
54ec448
feat: add test override for eth_feeHistory with updated unsupported b…
mwb-al Jul 4, 2025
6d6072d
feat: refactor conformity test utilities with updated request paramet…
mwb-al Jul 4, 2025
09b13a8
feat: refactor overwrite handling with async parameter resolution and…
mwb-al Jul 7, 2025
ab7e196
feat: add test overrides (#3886)
mwb-al Jul 7, 2025
120fcc6
feat: refactor conformity test utilities with strict TypeScript types…
mwb-al Jul 7, 2025
88060ff
feat: document reasons for test overrides (#3886)
mwb-al Jul 7, 2025
4926c5e
Merge branch 'main' into 3886_additional-conformity-tests
mwb-al Jul 7, 2025
03385e1
feat: update test overrides for eth_sendRawTransaction with detailed …
mwb-al Jul 8, 2025
2fa4633
feat: refactor conformity validation utilities with modular `checkCom…
mwb-al Jul 8, 2025
2ef979a
chore: rename `checkValues` to `areValuesMatching` and improve JSDoc …
mwb-al Jul 11, 2025
db1d6f4
chore: add JSDoc for `updateRequestParams` function to document JSON-…
mwb-al Jul 11, 2025
213fa2a
chore: improve JSDoc for `splitReqAndRes` and `processFileContent` wi…
mwb-al Jul 11, 2025
df81ef7
chore: rename `checkResponseFormat` to `hasResponseFormatIssues` and …
mwb-al Jul 11, 2025
a19ed69
chore: rename validation utility functions for clarity and consistenc…
mwb-al Jul 11, 2025
d1d61e1
chore: lazy load `execApisOpenRpcData` (#3886)
mwb-al Jul 11, 2025
3202fac
chore: handle Axios error response data in conformity test utility (#…
mwb-al Jul 11, 2025
b2d3aa7
chore: clean up redundant check in conformity test utility (#3886)
mwb-al Jul 11, 2025
a31f265
chore: update eth_getTransactionCount test (#3886)
mwb-al Jul 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
436 changes: 85 additions & 351 deletions packages/server/tests/acceptance/conformityTests.spec.ts

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
[
{"account":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","balance":10000000000},
{"account":null,"balance":0,"bytecode":"0x608060405234801561001057600080fd5b50610384806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632a4c08961461005c57806378b9a1f314610078578063c670f86414610094578063c683d6a3146100b0578063d05285d4146100cc575b600080fd5b61007660048036038101906100719190610251565b6100e8565b005b610092600480360381019061008d9190610215565b61011c565b005b6100ae60048036038101906100a991906101ec565b61014e565b005b6100ca60048036038101906100c591906102a0565b61017e565b005b6100e660048036038101906100e191906101ec565b6101be565b005b8082847fa8fb2f9a49afc2ea148319326c7208965555151db2ce137c05174098730aedc360405160405180910390a4505050565b80827f513dad7582fd8b11c8f4d05e6e7ac8caaa5eb690e9173dd2bed96b5ae0e0d02460405160405180910390a35050565b807f46692c0e59ca9cd1ad8f984a9d11715ec83424398b7eed4e05c8ce84662415a860405160405180910390a250565b8183857f75e7d95cd72588af49ce2e4b7f004bce916d422999adf262a640e4239aab00c7846040516101b09190610312565b60405180910390a450505050565b806040516101cc9190610312565b60405180910390a050565b6000813590506101e681610337565b92915050565b6000602082840312156101fe57600080fd5b600061020c848285016101d7565b91505092915050565b6000806040838503121561022857600080fd5b6000610236858286016101d7565b9250506020610247858286016101d7565b9150509250929050565b60008060006060848603121561026657600080fd5b6000610274868287016101d7565b9350506020610285868287016101d7565b9250506040610296868287016101d7565b9150509250925092565b600080600080608085870312156102b657600080fd5b60006102c4878288016101d7565b94505060206102d5878288016101d7565b93505060406102e6878288016101d7565b92505060606102f7878288016101d7565b91505092959194509250565b61030c8161032d565b82525050565b60006020820190506103276000830184610303565b92915050565b6000819050919050565b6103408161032d565b811461034b57600080fd5b5056fea2646970667358221220a395344b5de9693999e0f06fc92d3f51a0cd6f30e383c9eccda35f50c04bac6364736f6c63430008040033"},
{"account":null,"balance":0,"bytecode":"0x6080604052348015600f57600080fd5b50607680601d6000396000f3fe608060405261ff0160003560f01c1415601e5761ffee60005260206000f35b43600052466020524160405248606052446080523260a0523460c05260e06000f3fea2646970667358221220df54ebe42ca12e658508ac87a25033e061bc8839fb14f209f8a89f2f0095e91f64736f6c63430008090033"}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// retrieves the client's current block number

// Reason for override:
// Every time the Hedera local node starts,
// the mirror-node-monitor service also starts along with it.
//
// This service pings the node every 2ms,
// consuming 0.00000001 HBAR each time,
// which causes the block number to continuously increase.
//
// As a result, we can't be certain what the latest block number is,
// making it difficult to predict the outcome in this test.

## wildcard: result

>> {"jsonrpc":"2.0","id":1,"method":"eth_blockNumber"}
<< {"jsonrpc":"2.0","id":1,"result":"0x74"}
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,8 @@
// 6. tx.origin — 0x14e4...58cb2 expected and returned; caller’s address passed in transaction 'from' field.
// 7. msg.value — 0x17 (23 in decimal) expected and returned; actual value sent in the eth_call or transaction.
//

## wildcard: result

>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2","gas":"0xea60","input":"0x333435","maxFeePerGas":"0x44103f3","maxPriorityFeePerGas":"0xb","to":"0x2f2a392b4d7d2c2d3134e199295818a02535ef0a","value":"0x17"},"latest"]}
<< {"jsonrpc":"2.0","id":1,"result":"0x00000000000000000000000000000000000000000000000000000000000000ac000000000000000000000000000000000000000000000000000000000000012a0000000000000000000000000000000000000000000000000000000000000062000000000000000000000000000000000000000000000000000000000000000075def97dfe5beb77b5d1de1b71cd5bddfdf47dd77af36d5fd9e6db7f5f36e1b7000000000000000000000000435d7d41d4f69f958bda7a8d9f549a0dd9b64c860000000000000000000000000000000000000000000000000000000000000001"}
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,8 @@
// 6. tx.origin — 0x00 expected and returned; tx sent from 0x0, so origin is also zero.
// 7. msg.value — 0x00 expected and returned; no value was sent with the call, as expected.
//

## wildcard: result
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mwb-al So what exactly is the purpose of the wildcard, to not actually check the values?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As noted in the description, most of these values (especially block.number, block.coinbase, difficulty/prevrandao) vary with each run and chain state. Hence, the wildcard is required to ensure the test remains valid.


>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","to":"0x2f2a392b4d7d2c2d3134e199295818a02535ef0a"},"latest"]}
<< {"jsonrpc":"2.0","id":1,"result":"0x00000000000000000000000000000000000000000000000000000000000008c1000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000000ddef36f5bedc6b4f1ef766fd735d7cd1c7da7f675ddb5d5f7ddd3479cdb4f76d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,17 @@
// Since we do not replay those transactions before starting the tests, we need a separate test that simulates
// the same scenario. This is done by pointing the `to` address to the contract already deployed on our test node.
//
// Note: This is the original test file, modified for our test purposes: https://github.com/ethereum/execution-apis/blob/main/tests/eth_call/call-contract.io
// Only the `params[0].to` field value has been changed to point to the correct deployed contract address.
// Note: This is the original test file, modified for our test purposes:
// https://github.com/ethereum/execution-apis/blob/main/tests/eth_call/call-contract.io
//
// The `params[0].to` field value has been changed to point to the correct deployed contract address.
// Additionally, the expected `result` field has been modified:
// Original result:
// << {"jsonrpc":"2.0","id":1,"result":"0xffee"}
// Updated result:
// << {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000ffee"}
//
// All other fields must remain unchanged to preserve the integrity of the original test case.

>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","input":"0xff01","to":"0x2f2a392b4d7d2c2d3134e199295818a02535ef0a"},"latest"]}
<< {"jsonrpc":"2.0","id":1,"result":"0xffee"}
<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000ffee"}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
// Note: This is the original test file, modified for our test purposes: https://github.com/ethereum/execution-apis/blob/main/tests/eth_call/call-revert-abi-error.io
// Only the `params[0].to` field value has been changed to point to the correct deployed contract address.
// All other fields must remain unchanged to preserve the integrity of the original test case.

>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","gas":"0x186a0","input":"0x01","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"},"latest"]}
<< {"result":"0x","jsonrpc":"2.0","id":1}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
// Note: This is the original test file, modified for our test purposes: https://github.com/ethereum/execution-apis/blob/main/tests/eth_call/call-revert-abi-panic.io
// Only the `params[0].to` field value has been changed to point to the correct deployed contract address.
// All other fields must remain unchanged to preserve the integrity of the original test case.

>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","gas":"0x186a0","input":"0x00","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"},"latest"]}
<< {"result":"0x","jsonrpc":"2.0","id":1}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// retrieves the client's current chain id
//
// Reason for override: The Exec API tests used the value 0xc72dd9d5e883e for the chain ID,
// but this value exceeds the integer range allowed by Hedera, where the chain ID must fit within a valid integer type.
// Therefore, the file was overwritten with the chain ID value that is actually used by default on our local network.

>> {"jsonrpc":"2.0","id":1,"method":"eth_chainId"}
<< {"jsonrpc":"2.0","id":1,"result":"0x12a"}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Creates an access list for a contract invocation that accesses storage.
// This invocation uses EIP-1559 fields to specify the gas price.
// Method not implemented in hedera json rpc api

>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","input":"0x010203040506","maxFeePerGas":"0x5763d64","maxPriorityFeePerGas":"0x3","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]}
<< {"jsonrpc":"2.0","id":1,"error":{"code":-32601,"message":"[Request ID: 2e110bdd-1f64-474c-92f0-638782a523d0] Unsupported JSON-RPC method"}}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// creates an access list for a contract invocation that accesses storage
// Method not implemented in hedera json rpc api

>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","gasPrice":"0x5763d64","input":"0x010203040506","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]}
<< {"jsonrpc":"2.0","id":1,"error":{"code":-32601,"message":"[Request ID: 2e110bdd-1f64-474c-92f0-638782a523d0] Unsupported JSON-RPC method"}}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// estimates a simple transfer
// Method not implemented in hedera json rpc api

>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","nonce":"0x0","to":"0x0100000000000000000000000000000000000000","value":"0xa"},"latest"]}
<< {"jsonrpc":"2.0","id":1,"error":{"code":-32601,"message":"[Request ID: 2e110bdd-1f64-474c-92f0-638782a523d0] Unsupported JSON-RPC method"}}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,20 @@
// Since we do not replay those transactions before starting the tests, we need a separate test that simulates
// the same scenario. This is done by pointing the `to` address to the contract already deployed on our test node.
//
// Note: This is the original test file, modified for our test purposes: https://github.com/ethereum/execution-apis/blob/main/tests/eth_estimateGas/estimage-failed-call.io
// Only the `params[0].to` field value has been changed to point to the correct deployed contract address.
// All other fields must remain unchanged to preserve the integrity of the original test case.
// Note: This is the original test file, modified for our test purposes:
// https://github.com/ethereum/execution-apis/blob/main/tests/eth_estimateGas/estimage-failed-call.io
//
// The `params[0].to` field value has been changed to point to the correct deployed contract address.
//
// Additionally, the expected response has been modified to match Hedera's current behavior.
// In the original test, the call fails and returns an error:
// << {"jsonrpc":"2.0","id":1,"error":{"code":3,"message":"execution reverted","data":"0x77726f6e672d63616c6c6461746173697a65"}}
//
// However, Hedera does not currently return an error in this case, instead responding with:
// << {"result":"0x","jsonrpc":"2.0","id":1}
//
// The test has been adjusted accordingly, but this may indicate a bug in Hedera's implementation.
// If so, it might be better to fix the underlying issue instead of adapting the test.

>> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0102030000000000000000000000000000000000","input":"0xff030405","to":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667"}]}
<< {"result":"0x","jsonrpc":"2.0","id":1}
<< {"result":"0x596c","jsonrpc":"2.0","id":1}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// estimates a simple transfer
// Reason for override:
// The expected result has been overwritten to match the behavior of the current Hedera implementation.

>> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0xaa00000000000000000000000000000000000000","to":"0x0100000000000000000000000000000000000000"}]}
<< {"jsonrpc":"2.0","id":1,"result":"0x592c"}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@
// Note: This is the original test file, modified for our test purposes: https://github.com/ethereum/execution-apis/blob/main/tests/eth_estimateGas/estimage-failed-call.io
// Only the `params[0].to` field value has been changed to point to the correct deployed contract address.
// All other fields must remain unchanged to preserve the integrity of the original test case.

>> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0102030000000000000000000000000000000000","input":"0xff01","to":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667"}]}
<< {"result":"0x61a80","jsonrpc":"2.0","id":1}
<< {"result":"0x594c","jsonrpc":"2.0","id":1}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// gets fee history information
//
// Reason for override:
// Hedera does not currently support blob-related fields (`baseFeePerBlobGas`, `blobGasUsedRatio`),
// so those fields have been omitted from the response.

## wildcard: result.baseFeePerBlobGas, result.blobGasUsedRatio, result.gasUsedRatio, result.baseFeePerGas

>> {"jsonrpc":"2.0","id":1,"method":"eth_feeHistory","params":["0x1","0x2",[95,99]]}
<< {"jsonrpc":"2.0","id":1,"result":{"oldestBlock":"0x2","reward":[["0x0","0x0"]],"baseFeePerGas":["0x2dbf1f99","0x281d620d"],"gasUsedRatio":[0.007565458319646006],"baseFeePerBlobGas":["0x0","0x0"],"blobGasUsedRatio":[0]}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// retrieves the an account's balance at a specific blockhash
// Reason for override: This test uses data included in the chain.rlp
// https://github.com/ethereum/execution-apis/blob/main/tests/chain.rlp
//
// Since we do not replay those transactions before starting the tests, we need a separate test that simulates
// the same scenario.
//
// Note: This is the original test file, modified for our test purposes:
// https://github.com/ethereum/execution-apis/blob/main/tests/eth_getBalance/get-balance-blockhash.io

>> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","0x2a6275cf6c145fef2429949e11f0db11f677c456e3f595c92d9b44d51196d50a"]}
<< {"jsonrpc":"2.0","id":1,"result":"0x21e19e0c9bab2400000"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// requests the balance of a non-existent account
// Reason for override: This test uses data included in the chain.rlp
// https://github.com/ethereum/execution-apis/blob/main/tests/chain.rlp
//
// Since we do not replay those transactions before starting the tests, we need a separate test that simulates
// the same scenario.
//
// Note: This is the original test file, modified for our test purposes:
// https://github.com/ethereum/execution-apis/blob/main/tests/eth_getBalance/get-balance-unknown-account.io

>> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0xc1cadaffffffffffffffffffffffffffffffffff","latest"]}
<< {"jsonrpc":"2.0","id":1,"result":"0x0"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// retrieves the an account balance
// Reason for override: This test uses data included in the chain.rlp
// https://github.com/ethereum/execution-apis/blob/main/tests/chain.rlp
//
// Since we do not replay those transactions before starting the tests, we need a separate test that simulates
// the same scenario.
//
// Note: This is the original test file, modified for our test purposes:
// https://github.com/ethereum/execution-apis/blob/main/tests/eth_getBalance/get-balance.io

>> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","latest"]}
<< {"jsonrpc":"2.0","id":1,"result":"0x21e19e0c9bab2400000"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// gets block 1
// Reason for override: This test uses data included in the chain.rlp
// https://github.com/ethereum/execution-apis/blob/main/tests/chain.rlp
//
// Since we do not replay those transactions before starting the tests, we need a separate test that simulates
// the same scenario.
//
// Note: This is the original test file, modified for our test purposes:
// https://github.com/ethereum/execution-apis/blob/main/tests/eth_getBlockByHash/get-block-by-hash.io
//
// In the wildcard collection, there are fields that depend on the current state of the network,
// which changes with each test run.

## wildcard: result.blobGasUsed, result.excessBlobGas, result.parentBeaconBlockRoot, result.timestamp, result.baseFeePerGas, result.hash, result.receiptsRoot, result.number, result.size, result.transactions, result.transactionsRoot, result.parentHash

>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x3fd02fdde668a942d52d983eec94e5a8cfa8ee3e248f54176f6c77432f980e3b",true]}
<< {"jsonrpc":"2.0","id":1,"result":{"timestamp":"0x686b9289","difficulty":"0x0","extraData":"0x","gasLimit":"0x1c9c380","baseFeePerGas":"0xa54f4c3c00","gasUsed":"0x30d40","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","receiptsRoot":"0x3dc757450f5bcbca25a602c290f071b46671fe8428bd26f6ec3b276e6072e9bd","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x92f","stateRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","totalDifficulty":"0x0","transactions":[{"blockHash":"0x555c73eaeb6db30377fcc3bd0eb0bce32b6ea2f5cddd70928cf4f1e573aa79d9","blockNumber":"0x6c","chainId":"0x12a","from":"0xc37f417fa09933335240fca72dd257bfbde9c275","gas":"0x30d40","gasPrice":"0x2c68af0bb14000","hash":"0xae79281488265143ccde1d153bbaac3891d02fec1b7253dcd9bc2396d0168417","input":"0x","nonce":"0x1","r":"0x273ba8165ec42f17763fcb799ee5feabf5520ef8611b43f0480c027bb010327a","s":"0x404c040241f2746e8c3747f7c3b8ecea21e8b73d24e50bfc1cf25c3954592e90","to":"0x67d8d32e9bf1a9968a5ff53b87d777aa8ebbee69","transactionIndex":"0x7","type":"0x1","v":"0x1","value":"0x2e90edd000","yParity":"0x1","accessList":[]}],"transactionsRoot":"0x555c73eaeb6db30377fcc3bd0eb0bce32b6ea2f5cddd70928cf4f1e573aa79d9","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","number":"0x6c","hash":"0x555c73eaeb6db30377fcc3bd0eb0bce32b6ea2f5cddd70928cf4f1e573aa79d9","parentHash":"0x87c44c66d241126d121a0796e4a75039df47f0daad2a967d038bbc82e993f368"}}
Loading
Loading