Struct Chain
pub struct Chain(/* private fields */);
Expand description
Either a known NamedChain
or a EIP-155 chain ID.
Implementations§
§impl Chain
impl Chain
pub const fn from_named(named: NamedChain) -> Chain
pub const fn from_named(named: NamedChain) -> Chain
Creates a new Chain
by wrapping a NamedChain
.
pub fn from_id(id: u64) -> Chain
pub fn from_id(id: u64) -> Chain
Creates a new Chain
by wrapping a NamedChain
.
pub const fn from_id_unchecked(id: u64) -> Chain
pub const fn from_id_unchecked(id: u64) -> Chain
Creates a new Chain
from the given ID, without checking if an associated NamedChain
exists.
This is discouraged, as other methods assume that the chain ID is not known, but it is not unsafe.
pub const fn optimism_mainnet() -> Chain
pub const fn optimism_mainnet() -> Chain
Returns the optimism mainnet chain.
pub const fn optimism_goerli() -> Chain
pub const fn optimism_goerli() -> Chain
Returns the optimism goerli chain.
pub const fn optimism_sepolia() -> Chain
pub const fn optimism_sepolia() -> Chain
Returns the optimism sepolia chain.
pub const fn base_mainnet() -> Chain
pub const fn base_mainnet() -> Chain
Returns the base mainnet chain.
pub const fn base_goerli() -> Chain
pub const fn base_goerli() -> Chain
Returns the base goerli chain.
pub const fn base_sepolia() -> Chain
pub const fn base_sepolia() -> Chain
Returns the base sepolia chain.
pub const fn syndr_sepolia() -> Chain
pub const fn syndr_sepolia() -> Chain
Returns the syndr sepolia chain.
pub const fn fraxtal_testnet() -> Chain
pub const fn fraxtal_testnet() -> Chain
Returns the fraxtal testnet chain.
pub const fn blast_sepolia() -> Chain
pub const fn blast_sepolia() -> Chain
Returns the blast sepolia chain.
pub const fn linea_goerli() -> Chain
pub const fn linea_goerli() -> Chain
Returns the linea goerli chain.
pub const fn linea_sepolia() -> Chain
pub const fn linea_sepolia() -> Chain
Returns the linea sepolia chain.
pub const fn mode_sepolia() -> Chain
pub const fn mode_sepolia() -> Chain
Returns the mode sepolia chain.
pub const fn bsc_mainnet() -> Chain
pub const fn bsc_mainnet() -> Chain
Returns the bsc mainnet chain.
pub const fn bsc_testnet() -> Chain
pub const fn bsc_testnet() -> Chain
Returns the bsc testnet chain.
pub const fn opbnb_mainnet() -> Chain
pub const fn opbnb_mainnet() -> Chain
Returns the opbnb mainnet chain.
pub const fn opbnb_testnet() -> Chain
pub const fn opbnb_testnet() -> Chain
Returns the opbnb testnet chain.
pub const fn ronin_testnet() -> Chain
pub const fn ronin_testnet() -> Chain
Returns the ronin testnet chain.
pub const fn taiko_hekla() -> Chain
pub const fn taiko_hekla() -> Chain
Returns the taiko hekla chain.
pub const fn flare_coston2() -> Chain
pub const fn flare_coston2() -> Chain
Returns the flare testnet chain.
pub const fn immutable_testnet() -> Chain
pub const fn immutable_testnet() -> Chain
Returns the Immutable zkEVM testnet chain.
pub const fn ink_sepolia() -> Chain
pub const fn ink_sepolia() -> Chain
Returns the koi testnet chain.
pub const fn scroll_mainnet() -> Chain
pub const fn scroll_mainnet() -> Chain
Returns the scroll mainnet chain
pub const fn scroll_sepolia() -> Chain
pub const fn scroll_sepolia() -> Chain
Returns the scroll sepolia chain
pub const fn is_ethereum(&self) -> bool
pub const fn is_ethereum(&self) -> bool
Returns true
if this chain is Ethereum or an Ethereum testnet.
pub const fn is_optimism(self) -> bool
pub const fn is_optimism(self) -> bool
Returns true if the chain contains Optimism configuration.
pub const fn is_arbitrum(self) -> bool
pub const fn is_arbitrum(self) -> bool
Returns true if the chain contains Arbitrum configuration.
pub const fn named(self) -> Option<NamedChain>
pub const fn named(self) -> Option<NamedChain>
Attempts to convert the chain into a named chain.
§impl Chain
Methods delegated to NamedChain
. Note that ChainKind::Id
won’t be converted because it was
already done at construction.
impl Chain
Methods delegated to NamedChain
. Note that ChainKind::Id
won’t be converted because it was
already done at construction.
pub const fn average_blocktime_hint(self) -> Option<Duration>
pub const fn average_blocktime_hint(self) -> Option<Duration>
Returns the chain’s average blocktime, if applicable.
See NamedChain::average_blocktime_hint
for more info.
pub const fn is_legacy(self) -> bool
pub const fn is_legacy(self) -> bool
Returns whether the chain implements EIP-1559 (with the type 2 EIP-2718 transaction type).
See NamedChain::is_legacy
for more info.
pub const fn supports_shanghai(self) -> bool
pub const fn supports_shanghai(self) -> bool
Returns whether the chain supports the Shanghai hardfork.
See NamedChain::supports_shanghai
for more info.
pub const fn etherscan_urls(self) -> Option<(&'static str, &'static str)>
pub const fn etherscan_urls(self) -> Option<(&'static str, &'static str)>
Returns the chain’s blockchain explorer and its API (Etherscan and Etherscan-like) URLs.
See NamedChain::etherscan_urls
for more info.
pub const fn etherscan_api_key_name(self) -> Option<&'static str>
pub const fn etherscan_api_key_name(self) -> Option<&'static str>
Returns the chain’s blockchain explorer’s API key environment variable’s default name.
See NamedChain::etherscan_api_key_name
for more info.
pub fn etherscan_api_key(self) -> Option<String>
Available on crate feature std
only.
pub fn etherscan_api_key(self) -> Option<String>
std
only.Returns the chain’s blockchain explorer’s API key, from the environment variable with the
name specified in etherscan_api_key_name
.
See NamedChain::etherscan_api_key
for more info.
pub fn public_dns_network_protocol(self) -> Option<String>
pub fn public_dns_network_protocol(self) -> Option<String>
Returns the address of the public DNS node list for the given chain.
See NamedChain::public_dns_network_protocol
for more info.
Trait Implementations§
§impl<'a> Arbitrary<'a> for Chain
Available on crate feature arbitrary
only.
impl<'a> Arbitrary<'a> for Chain
arbitrary
only.§fn arbitrary(u: &mut Unstructured<'a>) -> Result<Chain, Error>
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Chain, Error>
Self
from the given unstructured data. Read more§fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
Self
from the entirety of the given
unstructured data. Read more§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Unstructured
this type
needs to construct itself. Read more§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 more§impl Arbitrary for Chain
Available on crate feature arbitrary
only.
impl Arbitrary for Chain
arbitrary
only.§type Parameters = ()
type Parameters = ()
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = TupleUnion<((u32, Arc<Map<SelectorStrategy, fn(_: Selector) -> Chain>>), (u32, Arc<Map<Any, fn(_: u64) -> Chain>>))>
type Strategy = TupleUnion<((u32, Arc<Map<SelectorStrategy, fn(_: Selector) -> Chain>>), (u32, Arc<Map<Any, fn(_: u64) -> Chain>>))>
Strategy
used to generate values of type Self
.§fn arbitrary_with(_: ()) -> <Chain as Arbitrary>::Strategy
fn arbitrary_with(_: ()) -> <Chain as Arbitrary>::Strategy
§impl<'de> Deserialize<'de> for Chain
Available on crate feature serde
only.
impl<'de> Deserialize<'de> for Chain
serde
only.§fn deserialize<D>(
deserializer: D,
) -> Result<Chain, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Chain, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl From<NamedChain> for Chain
impl From<NamedChain> for Chain
§fn from(id: NamedChain) -> Chain
fn from(id: NamedChain) -> Chain
§impl PartialOrd<u64> for Chain
impl PartialOrd<u64> for Chain
§impl Serialize for Chain
Available on crate feature serde
only.
impl Serialize for Chain
serde
only.§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
§impl TryFrom<Chain> for NamedChain
impl TryFrom<Chain> for NamedChain
§type Error = <NamedChain as TryFrom<u64>>::Error
type Error = <NamedChain as TryFrom<u64>>::Error
§fn try_from(
chain: Chain,
) -> Result<NamedChain, <NamedChain as TryFrom<Chain>>::Error>
fn try_from( chain: Chain, ) -> Result<NamedChain, <NamedChain as TryFrom<Chain>>::Error>
impl Copy for Chain
impl Eq for Chain
impl StructuralPartialEq for Chain
Auto Trait Implementations§
impl Freeze for Chain
impl RefUnwindSafe for Chain
impl Send for Chain
impl Sync for Chain
impl Unpin for Chain
impl UnwindSafe for Chain
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,
§impl<T> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<A> ArbInterop for A
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSendSync for T
impl<T> MaybeSerde for Twhere
T: Serialize + 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: 16 bytes