Struct alloy_consensus::transaction::legacy::TxLegacy
source · pub struct TxLegacy {
pub chain_id: Option<ChainId>,
pub nonce: u64,
pub gas_price: u128,
pub gas_limit: u128,
pub to: TxKind,
pub value: U256,
pub input: Bytes,
}
Expand description
Legacy transaction.
Fields§
§chain_id: Option<ChainId>
Added as EIP-155: Simple replay attack protection
nonce: u64
A scalar value equal to the number of transactions sent by the sender; formally Tn.
gas_price: u128
A scalar value equal to the number of Wei to be paid per unit of gas for all computation costs incurred as a result of the execution of this transaction; formally Tp.
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
gas_limit: 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.
to: TxKind
The 160-bit address of the message call’s recipient or, for a contract creation transaction, ∅, used here to denote the only member of B0 ; formally Tt.
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.
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 TxLegacy
impl TxLegacy
sourcepub fn size(&self) -> usize
pub fn size(&self) -> usize
Calculates a heuristic for the in-memory size of the TxLegacy transaction.
sourcepub(crate) fn encode_fields(&self, out: &mut dyn BufMut)
pub(crate) fn encode_fields(&self, out: &mut dyn BufMut)
Encodes only the transaction’s fields into the desired buffer, without a RLP header or eip155 fields.
sourcepub fn encode_with_signature_fields(
&self,
signature: &Signature,
out: &mut dyn BufMut,
)
pub fn encode_with_signature_fields( &self, signature: &Signature, out: &mut dyn BufMut, )
Encodes the transaction from RLP bytes, including the signature. This does not encode a tx type byte or string header.
This does encode a list header and include a signature.
sourcepub(crate) fn encoded_len_with_signature(&self, signature: &Signature) -> usize
pub(crate) fn encoded_len_with_signature(&self, signature: &Signature) -> usize
Returns what the encoded length should be, if the transaction were RLP encoded with the given signature.
sourcepub(crate) fn encode_eip155_signing_fields(&self, out: &mut dyn BufMut)
pub(crate) fn encode_eip155_signing_fields(&self, out: &mut dyn BufMut)
Encodes EIP-155 arguments into the desired buffer. Only encodes values for legacy transactions.
sourcepub(crate) fn eip155_fields_len(&self) -> usize
pub(crate) fn eip155_fields_len(&self) -> usize
Outputs the length of EIP-155 fields. Only outputs a non-zero value for EIP-155 legacy transactions.
sourcepub(crate) fn decode_fields(data: &mut &[u8]) -> Result<Self>
pub(crate) fn decode_fields(data: &mut &[u8]) -> Result<Self>
Decode the RLP fields of the transaction, without decoding an RLP header.
Trait Implementations§
source§impl<'de> Deserialize<'de> for TxLegacy
impl<'de> Deserialize<'de> for TxLegacy
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<TxLegacy> for TypedTransaction
impl From<TxLegacy> for TypedTransaction
source§impl PartialEq for TxLegacy
impl PartialEq for TxLegacy
source§impl SignableTransaction<Signature<Signature<Secp256k1>>> for TxLegacy
impl SignableTransaction<Signature<Signature<Secp256k1>>> for TxLegacy
source§fn use_eip155(&self) -> bool
fn use_eip155(&self) -> bool
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 TxLegacy
impl Transaction for TxLegacy
impl Eq for TxLegacy
impl StructuralPartialEq for TxLegacy
Auto Trait Implementations§
impl !Freeze for TxLegacy
impl RefUnwindSafe for TxLegacy
impl Send for TxLegacy
impl Sync for TxLegacy
impl Unpin for TxLegacy
impl UnwindSafe for TxLegacy
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> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreimpl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 144 bytes