Transaction struct and protocol implementation for Ethereum Improvement Proposal (EIP) 7702
transactions. EIP-7702 introduced "set code transactions" which let externally-owned
accounts designate contract code to execute in their place via signed authorizations
(see Ethers.Authorization).
Two constraints set this type apart from EIP-1559 transactions:
tois required — contract creation is not allowed in type-4 transactions.authorization_listmust contain at least oneEthers.Authorization.Signed.
Summary
Types
@type t() :: %Ethers.Transaction.Eip7702{ access_list: [{binary(), [binary()]}], authorization_list: [Ethers.Authorization.Signed.t()], chain_id: non_neg_integer(), gas: non_neg_integer(), input: binary(), max_fee_per_gas: non_neg_integer(), max_priority_fee_per_gas: non_neg_integer(), nonce: non_neg_integer(), to: Ethers.Types.t_address(), value: non_neg_integer() }
A transaction type following EIP-7702 (Type-4) and incorporating the following fields:
chain_id- chain ID of network where the transaction is to be executednonce- sequence number for the transaction from this sendermax_priority_fee_per_gas- maximum fee per gas (in wei) to give to validators as priority fee (introduced in EIP-1559)max_fee_per_gas- maximum total fee per gas (in wei) willing to pay (introduced in EIP-1559)gas- maximum amount of gas allowed for transaction executionto- destination address for transaction. Required — type-4 transactions cannot create contractsvalue- amount of ether (in wei) to transferinput- data payload of the transactionaccess_list- list of addresses and storage keys to warm up (introduced in EIP-2930)authorization_list- list of signed authorizations setting code on their authorities (introduced in EIP-7702)