reth_chainspec

Struct Chain

pub struct Chain(/* private fields */);
Expand description

Either a known NamedChain or a EIP-155 chain ID.

Implementations§

§

impl Chain

pub const fn from_named(named: NamedChain) -> Chain

Creates a new Chain by wrapping a NamedChain.

pub fn from_id(id: u64) -> Chain

Creates a new Chain by wrapping a NamedChain.

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 mainnet() -> Chain

Returns the mainnet chain.

pub const fn goerli() -> Chain

Returns the goerli chain.

pub const fn holesky() -> Chain

Returns the holesky chain.

pub const fn sepolia() -> Chain

Returns the sepolia chain.

pub const fn optimism_mainnet() -> Chain

Returns the optimism mainnet chain.

pub const fn optimism_goerli() -> Chain

Returns the optimism goerli chain.

pub const fn optimism_sepolia() -> Chain

Returns the optimism sepolia chain.

pub const fn base_mainnet() -> Chain

Returns the base mainnet chain.

pub const fn base_goerli() -> Chain

Returns the base goerli chain.

pub const fn base_sepolia() -> Chain

Returns the base sepolia chain.

pub const fn syndr() -> Chain

Returns the syndr l3 mainnet chain.

pub const fn syndr_sepolia() -> Chain

Returns the syndr sepolia chain.

pub const fn fraxtal() -> Chain

Returns the fraxtal mainnet chain.

pub const fn fraxtal_testnet() -> Chain

Returns the fraxtal testnet chain.

pub const fn blast() -> Chain

Returns the blast chain.

pub const fn blast_sepolia() -> Chain

Returns the blast sepolia chain.

pub const fn linea() -> Chain

Returns the linea mainnet chain.

pub const fn linea_goerli() -> Chain

Returns the linea goerli chain.

pub const fn linea_sepolia() -> Chain

Returns the linea sepolia chain.

pub const fn mode() -> Chain

Returns the mode mainnet chain.

pub const fn mode_sepolia() -> Chain

Returns the mode sepolia chain.

pub const fn elastos() -> Chain

Returns the elastos mainnet chain.

pub const fn degen() -> Chain

Returns the degen l3 mainnet chain.

pub const fn dev() -> Chain

Returns the dev chain.

pub const fn bsc_mainnet() -> Chain

Returns the bsc mainnet chain.

pub const fn bsc_testnet() -> Chain

Returns the bsc testnet chain.

pub const fn opbnb_mainnet() -> Chain

Returns the opbnb mainnet chain.

pub const fn opbnb_testnet() -> Chain

Returns the opbnb testnet chain.

pub const fn ronin() -> Chain

Returns the ronin mainnet chain.

pub const fn ronin_testnet() -> Chain

Returns the ronin testnet chain.

pub const fn taiko() -> Chain

Returns the taiko mainnet chain.

pub const fn taiko_hekla() -> Chain

Returns the taiko hekla chain.

pub const fn shimmer() -> Chain

Returns the shimmer testnet chain.

pub const fn flare() -> Chain

Returns the flare mainnet chain.

pub const fn flare_coston2() -> Chain

Returns the flare testnet chain.

pub const fn darwinia() -> Chain

Returns the darwinia mainnet chain.

pub const fn crab() -> Chain

Returns the crab mainnet chain.

pub const fn koi() -> Chain

Returns the koi testnet chain.

pub const fn immutable() -> Chain

Returns the Immutable zkEVM mainnet chain.

pub const fn immutable_testnet() -> Chain

Returns the Immutable zkEVM testnet chain.

pub const fn ink_sepolia() -> Chain

Returns the koi testnet chain.

pub const fn scroll_mainnet() -> Chain

Returns the scroll mainnet chain

pub const fn scroll_sepolia() -> Chain

Returns the scroll sepolia chain

pub const fn kind(&self) -> &ChainKind

Returns the kind of this chain.

pub const fn into_kind(self) -> ChainKind

Returns the kind of this chain.

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

Returns true if the chain contains Optimism configuration.

pub const fn is_arbitrum(self) -> bool

Returns true if the chain contains Arbitrum configuration.

pub const fn named(self) -> Option<NamedChain>

Attempts to convert the chain into a named chain.

pub const fn id(self) -> u64

The ID of the chain.

§

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>

Returns the chain’s average blocktime, if applicable.

See NamedChain::average_blocktime_hint for more info.

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

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)>

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>

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.

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>

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.
§

fn arbitrary(u: &mut Unstructured<'a>) -> Result<Chain, Error>

Generate an arbitrary value of Self from the given unstructured data. Read more
§

fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>

Generate an arbitrary value of Self from the entirety of the given unstructured data. Read more
§

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
§

fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
§

impl Arbitrary for Chain

Available on crate feature arbitrary only.
§

type Parameters = ()

The type of parameters that 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>>))>

The type of Strategy used to generate values of type Self.
§

fn arbitrary_with(_: ()) -> <Chain as Arbitrary>::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more
§

impl Clone for Chain

§

fn clone(&self) -> Chain

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
§

impl Debug for Chain

§

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

Formats the value using the given formatter. Read more
§

impl Decodable for Chain

Available on crate feature rlp only.
§

fn decode(buf: &mut &[u8]) -> Result<Chain, Error>

Decodes the blob into the appropriate type. buf must be advanced past the decoded object.
§

impl Default for Chain

§

fn default() -> Chain

Returns the “default value” for a type. Read more
§

impl<'de> Deserialize<'de> for Chain

Available on crate feature serde only.
§

fn deserialize<D>( deserializer: D, ) -> Result<Chain, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Display for Chain

§

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

Formats the value using the given formatter. Read more
§

impl Encodable for Chain

Available on crate feature rlp only.
§

fn encode(&self, out: &mut dyn BufMut)

Encodes the type into the out buffer.
§

fn length(&self) -> usize

Returns the length of the encoding of this type in bytes. Read more
§

impl From<NamedChain> for Chain

§

fn from(id: NamedChain) -> Chain

Converts to this type from the input type.
§

impl From<u64> for Chain

§

fn from(id: u64) -> Chain

Converts to this type from the input type.
§

impl FromStr for Chain

§

type Err = ParseIntError

The associated error which can be returned from parsing.
§

fn from_str(s: &str) -> Result<Chain, <Chain as FromStr>::Err>

Parses a string s to return a value of this type. Read more
§

impl Hash for Chain

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq<u64> for Chain

§

fn eq(&self, other: &u64) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq for Chain

§

fn eq(&self, other: &Chain) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialOrd<u64> for Chain

§

fn partial_cmp(&self, other: &u64) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
§

impl Serialize for Chain

Available on crate feature serde only.
§

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl TryFrom<Chain> for NamedChain

§

type Error = <NamedChain as TryFrom<u64>>::Error

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

fn try_from( chain: Chain, ) -> Result<NamedChain, <NamedChain as TryFrom<Chain>>::Error>

Performs the conversion.
§

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> 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 u8)

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

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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
§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows 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) -> R
where R: 'a,

Mutably borrows 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
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<A> ArbInterop for A
where A: for<'a> Arbitrary<'a> + 'static + Debug + Clone,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeDebug for T
where T: Debug,

§

impl<T> MaybeSendSync for T

§

impl<T> MaybeSerde for T
where 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