go-pulse/internal/ethapi/testdata
Sina Mahmoodi e5d5e09faa
internal/ethapi: handle blobs in API methods (#28786)
EIP-4844 adds a new transaction type for blobs. Users can submit such transactions via `eth_sendRawTransaction`. In this PR we refrain from adding support to `eth_sendTransaction` and in fact it will fail if the user passes in a blob hash.

However since the chain can handle such transactions it makes sense to allow simulating them. E.g. an L2 operator should be able to simulate submitting a rollup blob and updating the L2 state. Most methods that take in a transaction object should recognize blobs. The change boils down to adding `blobVersionedHashes` and `maxFeePerBlobGas` to `TransactionArgs`. In summary:

- `eth_sendTransaction`: will fail for blob txes
- `eth_signTransaction`: will fail for blob txes

The methods that sign txes does not, as of this PR, add support the for new EIP-4844 transaction types. Resuming the summary:

- `eth_sendRawTransaction`: can send blob txes
- `eth_fillTransaction`: will fill in a blob tx. Note: here we simply fill in normal transaction fields + possibly `maxFeePerBlobGas` when blobs are present. One can imagine a more elaborate set-up where users can submit blobs themselves and we fill in proofs and commitments and such. Left for future PRs if desired.
- `eth_call`: can simulate blob messages
- `eth_estimateGas`: blobs have no effect here. They have a separate unit of gas which is not tunable in the transaction.
2024-01-17 15:06:14 +01:00
..
eth_getBlockByHash-hash-1.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockByHash-hash-empty-fullTx.json
eth_getBlockByHash-hash-genesis.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockByHash-hash-latest-1-fullTx.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockByHash-hash-latest.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockByHash-hash-pending-fullTx.json
eth_getBlockByHash-hash-pending.json
eth_getBlockByNumber-number-0.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockByNumber-number-1.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockByNumber-number-latest-1.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockByNumber-number-latest+1.json
eth_getBlockByNumber-tag-latest.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockByNumber-tag-pending-fullTx.json
eth_getBlockByNumber-tag-pending.json
eth_getBlockReceipts-block-notfound.json
eth_getBlockReceipts-block-with-blob-tx.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockReceipts-block-with-contract-create-tx.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockReceipts-block-with-dynamic-fee-tx.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockReceipts-block-with-legacy-contract-call-tx.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockReceipts-block-with-legacy-transfer-tx.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getBlockReceipts-hash-empty.json
eth_getBlockReceipts-hash-notfound.json
eth_getBlockReceipts-number-0.json
eth_getBlockReceipts-number-1.json
eth_getBlockReceipts-tag-earliest.json
eth_getBlockReceipts-tag-latest.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getHeaderByHash-hash-0.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getHeaderByHash-hash-1.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getHeaderByHash-hash-empty.json
eth_getHeaderByHash-hash-latest-1.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getHeaderByHash-hash-latest.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getHeaderByHash-hash-pending.json
eth_getHeaderByNumber-number-0.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getHeaderByNumber-number-1.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getHeaderByNumber-number-latest-1.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getHeaderByNumber-number-latest+1.json
eth_getHeaderByNumber-tag-latest.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getHeaderByNumber-tag-pending.json
eth_getTransactionReceipt-blob-tx.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getTransactionReceipt-create-contract-tx.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getTransactionReceipt-create-contract-with-access-list.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getTransactionReceipt-dynamic-tx-with-logs.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getTransactionReceipt-normal-transfer-tx.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
eth_getTransactionReceipt-txhash-empty.json
eth_getTransactionReceipt-txhash-notfound.json
eth_getTransactionReceipt-with-logs.json internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00