go-ethereum/internal
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
..
blocktest internal/blocktest: add package for shared test code (#27270) 2023-07-11 14:57:02 +02:00
build build: upgrade to golangci-lint v1.55.2 (#28712) 2023-12-20 15:36:10 +01:00
cmdtest all: make vendored copy of reexec (#28382) 2023-10-28 00:14:43 +02:00
debug cmd/geth, internal/debug: get rid of by-default log config (#28801) 2024-01-12 15:59:03 +02:00
ethapi internal/ethapi: handle blobs in API methods (#28786) 2024-01-17 15:06:14 +01:00
flags internal/flags: update copyright year to 2024 (#28760) 2024-01-04 15:03:58 +01:00
guide rpc, internal/guide: speed up tests a bit (#26193) 2022-11-17 15:30:53 +01:00
jsre internal/jsre/deps: fix typo in jsdoc (#28511) 2023-11-15 13:55:56 +01:00
reexec all: make vendored copy of reexec (#28382) 2023-10-28 00:14:43 +02:00
shutdowncheck eth, les: update unclean shutdown markers regularly (#24077) 2021-12-17 15:18:51 +01:00
syncx core: improve shutdown synchronization in BlockChain (#22853) 2021-10-07 15:47:50 +02:00
testlog log: remove lazy, remove unused interfaces, unexport methods (#28622) 2023-12-05 11:54:44 +01:00
utesting cmd/devp2p/internal/ethtest: skip large tx test on github build (#28794) 2024-01-12 15:14:03 +01:00
version README, go.mod, event, internal/version: bump min Go to 1.19 (#26803) 2023-03-03 12:24:09 +02:00
web3ext internal/ethapi: implement eth_getBlockReceipts (#27702) 2023-08-15 14:35:48 +02:00