The eth1.0-apis repository is not versioned (yet!) and hence it can be hard to track the various changes introduced by EIP-1559. Here is a list to make this easier.
EIP-1559 introduces a new transaction type (0x02
) and adds a field to the block header (baseFeePerGas
). At a high level, anything which either returns a transaction or a block will be affected post-1559.
The following APIs calls are changed with the introduction of EIP-1559:
eth_call
eth_getBlockBy*
endpoints
baseFeePerGas
is added on post-London blockseth_getRawTransaction*
endpoints
eth_getTransactionBy*
endpoints
gasPrice
now interpreted as maxFeePerGas
before the tx is mined and effectiveGasPrice
after it's mined (for EIP-1559 txs). This field is deprecated (no EOL set yet) for EIP-1559 transactions.maxPriorityFeePerGas
and maxFeePerGas
eth_getTransactionReceipt
effectiveGasPrice
is added to the receipt. Pre-London, it is equal to the transaction's gasPrice
. Post-London, it is equal to the actual gas price paid for inclusion. This calculation differs depending if the transaction is an EIP-1559 transaction or not.eth_getUncleBy*
endpoints
baseFeePerGas
is added on post-London blockseth_sendTransaction
maxPriorityFeePergas
and maxFeePerGas
are now supported. Clients will calculate reasonable values for these fields if they're omitted. Legacy transactions can still be sent by specifying a gasPrice
eth_estimateGas
gasPrice
or maxFeePerGas
and maxPriorityFeePerGas
are now required. Before, it was okay to omit gasPrice
because it could be filled with 0
. Now the baseFeePerGas
must be taken into account, and the fee payment must be large enough to cover the base fee.eth_sendRawTransaction
Note:*
at the end of a name refers to all variations of this API call.
Additionally, the following JSON RPC endpoint was introduced:
eth_feeHistory
, which returns historical data about transaction fees. More information on it can be found here.