alloy_network

Struct AnyNetwork

Source
pub struct AnyNetwork { /* private fields */ }
Expand description

Types for a catch-all network.

AnyNetwork’s associated types allow for many different types of transactions, using catch-all fields. This Network should be used only when the application needs to support multiple networks via the same codepaths without knowing the networks at compile time.

§Rough Edges

Supporting arbitrary unknown types is hard, and users of this network should be aware of the following:

  • The implementation of Decodable2718 for AnyTxEnvelope will not work for non-Ethereum transaction types. It will succesfully decode an Ethereum TxEnvelope, but will decode only the type for any unknown transaction type. It will also leave the buffer unconsumed, which will cause further deserialization to produce erroneous results.
  • The implementation of Encodable2718 for AnyTypedTransaction will not work for non-Ethereum transaction types. It will encode the type for any unknown transaction type, but will not encode any other fields. This is symmetric with the decoding behavior, but still erroneous.
  • The TransactionRequest will build ONLY Ethereum types. It will error when attempting to build any unknown type.
  • The Network::TransactionResponse may deserialize unknown metadata fields into the inner AnyTxEnvelope, rather than into the outer WithOtherFields.

Trait Implementations§

Source§

impl Clone for AnyNetwork

Source§

fn clone(&self) -> AnyNetwork

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AnyNetwork

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Network for AnyNetwork

Source§

type TxType = AnyTxType

The network transaction type enum. Read more
Source§

type TxEnvelope = AnyTxEnvelope

The network transaction envelope type.
Source§

type UnsignedTx = AnyTypedTransaction

An enum over the various transaction types.
Source§

type ReceiptEnvelope = AnyReceiptEnvelope

The network receipt envelope type.
Source§

type Header = AnyHeader

The network header type.
Source§

type TransactionRequest = WithOtherFields<TransactionRequest>

The JSON body of a transaction request.
Source§

type TransactionResponse = WithOtherFields<Transaction<AnyTxEnvelope>>

The JSON body of a transaction response.
Source§

type ReceiptResponse = WithOtherFields<TransactionReceipt<AnyReceiptEnvelope<Log>>>

The JSON body of a transaction receipt.
Source§

type HeaderResponse = Header<AnyHeader>

The JSON body of a header response.
Source§

type BlockResponse = WithOtherFields<Block<WithOtherFields<Transaction<AnyTxEnvelope>>, Header<AnyHeader>>>

The JSON body of a block response.
Source§

impl TransactionBuilder<AnyNetwork> for WithOtherFields<TransactionRequest>

Source§

fn access_list(&self) -> Option<&AccessList>

Get the EIP-2930 access list for the transaction.

Source§

fn set_access_list(&mut self, access_list: AccessList)

Sets the EIP-2930 access list.

Source§

fn chain_id(&self) -> Option<ChainId>

Get the chain ID for the transaction.
Source§

fn set_chain_id(&mut self, chain_id: ChainId)

Set the chain ID for the transaction.
Source§

fn nonce(&self) -> Option<u64>

Get the nonce for the transaction.
Source§

fn set_nonce(&mut self, nonce: u64)

Set the nonce for the transaction.
Source§

fn input(&self) -> Option<&Bytes>

Get the input data for the transaction.
Source§

fn set_input<T: Into<Bytes>>(&mut self, input: T)

Set the input data for the transaction.
Source§

fn from(&self) -> Option<Address>

Get the sender for the transaction.
Source§

fn set_from(&mut self, from: Address)

Set the sender for the transaction.
Source§

fn kind(&self) -> Option<TxKind>

Get the kind of transaction.
Source§

fn clear_kind(&mut self)

Clear the kind of transaction.
Source§

fn set_kind(&mut self, kind: TxKind)

Set the kind of transaction.
Source§

fn value(&self) -> Option<U256>

Get the value for the transaction.
Source§

fn set_value(&mut self, value: U256)

Set the value for the transaction.
Source§

fn gas_price(&self) -> Option<u128>

Get the legacy gas price for the transaction.
Source§

fn set_gas_price(&mut self, gas_price: u128)

Set the legacy gas price for the transaction.
Source§

fn max_fee_per_gas(&self) -> Option<u128>

Get the max fee per gas for the transaction.
Source§

fn set_max_fee_per_gas(&mut self, max_fee_per_gas: u128)

Set the max fee per gas for the transaction.
Source§

fn max_priority_fee_per_gas(&self) -> Option<u128>

Get the max priority fee per gas for the transaction.
Source§

fn set_max_priority_fee_per_gas(&mut self, max_priority_fee_per_gas: u128)

Set the max priority fee per gas for the transaction.
Source§

fn gas_limit(&self) -> Option<u64>

Get the gas limit for the transaction.
Source§

fn set_gas_limit(&mut self, gas_limit: u64)

Set the gas limit for the transaction.
Source§

fn complete_type( &self, ty: <AnyNetwork as Network>::TxType, ) -> Result<(), Vec<&'static str>>

Check if all necessary keys are present to build the specified type, returning a list of missing keys.
Source§

fn can_submit(&self) -> bool

True if the builder contains all necessary information to be submitted to the eth_sendTransaction endpoint.
Source§

fn can_build(&self) -> bool

True if the builder contains all necessary information to be built into a valid transaction.
Source§

fn output_tx_type(&self) -> <AnyNetwork as Network>::TxType

Returns the transaction type that this builder will attempt to build. This does not imply that the builder is ready to build.
Source§

fn output_tx_type_checked(&self) -> Option<<AnyNetwork as Network>::TxType>

Returns the transaction type that this builder will build. None if the builder is not ready to build.
Source§

fn prep_for_submission(&mut self)

Trim any conflicting keys and populate any computed fields (like blob hashes). Read more
Source§

fn build_unsigned( self, ) -> BuildResult<<AnyNetwork as Network>::UnsignedTx, AnyNetwork>

Build an unsigned, but typed, transaction.
Source§

async fn build<W: NetworkWallet<AnyNetwork>>( self, wallet: &W, ) -> Result<<AnyNetwork as Network>::TxEnvelope, TransactionBuilderError<AnyNetwork>>

Build a signed transaction.
Source§

fn with_chain_id(self, chain_id: ChainId) -> Self

Builder-pattern method for setting the chain ID.
Source§

fn with_nonce(self, nonce: u64) -> Self

Builder-pattern method for setting the nonce.
Source§

fn with_input<T: Into<Bytes>>(self, input: T) -> Self

Builder-pattern method for setting the input data.
Source§

fn with_from(self, from: Address) -> Self

Builder-pattern method for setting the sender.
Source§

fn with_kind(self, kind: TxKind) -> Self

Builder-pattern method for setting the kind of transaction.
Source§

fn to(&self) -> Option<Address>

Get the recipient for the transaction.
Source§

fn set_to(&mut self, to: Address)

Set the recipient for the transaction.
Source§

fn with_to(self, to: Address) -> Self

Builder-pattern method for setting the recipient.
Source§

fn set_create(&mut self)

Set the to field to a create call.
Source§

fn into_create(self) -> Self

Set the to field to a create call.
Source§

fn set_deploy_code<T: Into<Bytes>>(&mut self, code: T)

Deploy the code by making a create call with data. This will set the to field to TxKind::Create.
Source§

fn with_deploy_code<T: Into<Bytes>>(self, code: T) -> Self

Deploy the code by making a create call with data. This will set the to field to TxKind::Create.
Source§

fn set_call<T: SolCall>(&mut self, t: &T)

Set the data field to a contract call. This will clear the to field if it is set to TxKind::Create.
Source§

fn with_call<T: SolCall>(self, t: &T) -> Self

Make a contract call with data.
Source§

fn calculate_create_address(&self) -> Option<Address>

Calculates the address that will be created by the transaction, if any. Read more
Source§

fn with_value(self, value: U256) -> Self

Builder-pattern method for setting the value.
Source§

fn with_gas_price(self, gas_price: u128) -> Self

Builder-pattern method for setting the legacy gas price.
Source§

fn with_max_fee_per_gas(self, max_fee_per_gas: u128) -> Self

Builder-pattern method for setting max fee per gas .
Source§

fn with_max_priority_fee_per_gas(self, max_priority_fee_per_gas: u128) -> Self

Builder-pattern method for setting max priority fee per gas.
Source§

fn with_gas_limit(self, gas_limit: u64) -> Self

Builder-pattern method for setting the gas limit.
Source§

fn with_access_list(self, access_list: AccessList) -> Self

Builder-pattern method for setting the access list.
Source§

fn complete_preferred(&self) -> Result<(), Vec<&'static str>>

Check if all necessary keys are present to build the currently-preferred transaction type, returning a list of missing keys.
Source§

fn assert_preferred(&self, ty: N::TxType)

Assert that the builder prefers a certain transaction type. This does not indicate that the builder is ready to build. This function uses a dbg_assert_eq! to check the builder status, and will have no affect in release builds.
Source§

fn assert_preferred_chained(self, ty: N::TxType) -> Self

Assert that the builder prefers a certain transaction type. This does not indicate that the builder is ready to build. This function uses a dbg_assert_eq! to check the builder status, and will have no affect in release builds.
Source§

fn apply<F>(self, f: F) -> Self
where F: FnOnce(Self) -> Self,

Apply a function to the builder, returning the modified builder.
Source§

impl Copy for AnyNetwork

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more