pub struct TxEip4844 {
pub chain_id: ChainId,
pub nonce: u64,
pub gas_limit: u64,
pub max_fee_per_gas: u128,
pub max_priority_fee_per_gas: u128,
pub to: Address,
pub value: U256,
pub access_list: AccessList,
pub blob_versioned_hashes: Vec<B256>,
pub max_fee_per_blob_gas: u128,
pub input: Bytes,
}
Expand description
A transaction with blob hashes and max blob fee. It does not have the Blob sidecar.
Fields§
§chain_id: ChainId
Added as EIP-pub 155: Simple replay attack protection
nonce: u64
A scalar value equal to the number of transactions sent by the sender; formally Tn.
gas_limit: u64
A scalar value equal to the maximum amount of gas that should be used in executing this transaction. This is paid up-front, before any computation is done and may not be increased later; formally Tg.
max_fee_per_gas: u128
A scalar value equal to the maximum amount of gas that should be used in executing this transaction. This is paid up-front, before any computation is done and may not be increased later; formally Tg.
As ethereum circulation is around 120mil eth as of 2022 that is around 120000000000000000000000000 wei we are safe to use u128 as its max number is: 340282366920938463463374607431768211455
This is also known as GasFeeCap
max_priority_fee_per_gas: u128
Max Priority fee that transaction is paying
As ethereum circulation is around 120mil eth as of 2022 that is around 120000000000000000000000000 wei we are safe to use u128 as its max number is: 340282366920938463463374607431768211455
This is also known as GasTipCap
to: Address
The 160-bit address of the message call’s recipient.
value: U256
A scalar value equal to the number of Wei to be transferred to the message call’s recipient or, in the case of contract creation, as an endowment to the newly created account; formally Tv.
access_list: AccessList
The accessList specifies a list of addresses and storage keys;
these addresses and storage keys are added into the accessed_addresses
and accessed_storage_keys
global sets (introduced in EIP-2929).
A gas cost is charged, though at a discount relative to the cost of
accessing outside the list.
blob_versioned_hashes: Vec<B256>
It contains a vector of fixed size hash(32 bytes)
max_fee_per_blob_gas: u128
Max fee per data gas
aka BlobFeeCap or blobGasFeeCap
input: Bytes
Input has two uses depending if transaction is Create or Call (if to
field is None or
Some). pub init: An unlimited size byte array specifying the
EVM-code for the account initialisation procedure CREATE,
data: An unlimited size byte array specifying the
input data of the message call, formally Td.
Implementations§
Source§impl TxEip4844
impl TxEip4844
Sourcepub const fn effective_gas_price(&self, base_fee: Option<u64>) -> u128
pub const fn effective_gas_price(&self, base_fee: Option<u64>) -> u128
Returns the effective gas price for the given base_fee
.
Sourcepub fn validate_blob(
&self,
sidecar: &BlobTransactionSidecar,
proof_settings: &KzgSettings,
) -> Result<(), BlobTransactionValidationError>
Available on crate feature kzg
only.
pub fn validate_blob( &self, sidecar: &BlobTransactionSidecar, proof_settings: &KzgSettings, ) -> Result<(), BlobTransactionValidationError>
kzg
only.Verifies that the given blob data, commitments, and proofs are all valid for this transaction.
Takes as input the KzgSettings, which should contain the parameters derived from the KZG trusted setup.
This ensures that the blob transaction payload has the same number of blob data elements, commitments, and proofs. Each blob data element is verified against its commitment and proof.
Returns BlobTransactionValidationError::InvalidProof if any blob KZG proof in the response fails to verify, or if the versioned hashes in the transaction do not match the actual commitment versioned hashes.
Sourcepub fn size(&self) -> usize
pub fn size(&self) -> usize
Calculates a heuristic for the in-memory size of the TxEip4844Variant transaction.
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for TxEip4844
impl<'arbitrary> Arbitrary<'arbitrary> for TxEip4844
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Self
from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Self
from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Unstructured
this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Unstructured
this type
needs to construct itself. Read moreSource§impl<'de> Deserialize<'de> for TxEip4844
impl<'de> Deserialize<'de> for TxEip4844
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<TxEip4844> for TxEip4844Variant
impl From<TxEip4844> for TxEip4844Variant
Source§impl From<TxEip4844> for TypedTransaction
impl From<TxEip4844> for TypedTransaction
Source§impl From<TxEip4844Variant> for TxEip4844
impl From<TxEip4844Variant> for TxEip4844
Source§fn from(tx: TxEip4844Variant) -> Self
fn from(tx: TxEip4844Variant) -> Self
Source§impl From<TxEip4844WithSidecar> for TxEip4844
impl From<TxEip4844WithSidecar> for TxEip4844
Source§fn from(tx_with_sidecar: TxEip4844WithSidecar) -> Self
fn from(tx_with_sidecar: TxEip4844WithSidecar) -> Self
Consumes the TxEip4844WithSidecar and returns the inner TxEip4844.
Source§impl SignableTransaction<PrimitiveSignature> for TxEip4844
impl SignableTransaction<PrimitiveSignature> for TxEip4844
Source§fn set_chain_id(&mut self, chain_id: ChainId)
fn set_chain_id(&mut self, chain_id: ChainId)
chain_id
. Read moreSource§fn encode_for_signing(&self, out: &mut dyn BufMut)
fn encode_for_signing(&self, out: &mut dyn BufMut)
Source§fn payload_len_for_signature(&self) -> usize
fn payload_len_for_signature(&self) -> usize
Source§fn into_signed(self, signature: Signature) -> Signed<Self>
fn into_signed(self, signature: Signature) -> Signed<Self>
Source§fn set_chain_id_checked(&mut self, chain_id: ChainId) -> bool
fn set_chain_id_checked(&mut self, chain_id: ChainId) -> bool
chain_id
if it is not already set. Checks that the provided chain_id
matches the
existing chain_id
if it is already set, returning false
if they do not match.Source§fn encoded_for_signing(&self) -> Vec<u8> ⓘ
fn encoded_for_signing(&self) -> Vec<u8> ⓘ
signature_hash
. Read moreSource§fn signature_hash(&self) -> B256
fn signature_hash(&self) -> B256
Source§impl Transaction for TxEip4844
impl Transaction for TxEip4844
Source§fn max_fee_per_gas(&self) -> u128
fn max_fee_per_gas(&self) -> u128
Source§fn max_priority_fee_per_gas(&self) -> Option<u128>
fn max_priority_fee_per_gas(&self) -> Option<u128>
Source§fn max_fee_per_blob_gas(&self) -> Option<u128>
fn max_fee_per_blob_gas(&self) -> Option<u128>
Source§fn priority_fee_or_price(&self) -> u128
fn priority_fee_or_price(&self) -> u128
Source§fn access_list(&self) -> Option<&AccessList>
fn access_list(&self) -> Option<&AccessList>
access_list
for the particular transaction type. Returns None
for
older transaction types.Source§fn blob_versioned_hashes(&self) -> Option<&[B256]>
fn blob_versioned_hashes(&self) -> Option<&[B256]>
None
.SignedAuthorization
list of the transaction. Read moreimpl Eq for TxEip4844
impl StructuralPartialEq for TxEip4844
Auto Trait Implementations§
impl !Freeze for TxEip4844
impl RefUnwindSafe for TxEip4844
impl Send for TxEip4844
impl Sync for TxEip4844
impl Unpin for TxEip4844
impl UnwindSafe for TxEip4844
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)