alloy_chains

Enum NamedChain

Source
#[non_exhaustive]
#[repr(u64)]
pub enum NamedChain {
Show 129 variants Mainnet = 1, Morden = 2, Ropsten = 3, Rinkeby = 4, Goerli = 5, Kovan = 42, Holesky = 17_000, Sepolia = 11_155_111, Odyssey = 911_867, Optimism = 10, OptimismKovan = 69, OptimismGoerli = 420, OptimismSepolia = 11_155_420, Arbitrum = 42_161, ArbitrumTestnet = 421_611, ArbitrumGoerli = 421_613, ArbitrumSepolia = 421_614, ArbitrumNova = 42_170, Cronos = 25, CronosTestnet = 338, Rsk = 30, Crab = 44, Darwinia = 46, Koi = 701, BinanceSmartChain = 56, BinanceSmartChainTestnet = 97, Poa = 99, Sokol = 77, Scroll = 534_352, ScrollSepolia = 534_351, Metis = 1_088, CfxTestnet = 71, Cfx = 1_030, Gnosis = 100, Polygon = 137, PolygonMumbai = 80_001, PolygonAmoy = 80_002, PolygonZkEvm = 1_101, PolygonZkEvmTestnet = 1_442, Fantom = 250, FantomTestnet = 4_002, Moonbeam = 1_284, MoonbeamDev = 1_281, Moonriver = 1_285, Moonbase = 1_287, Dev = 1_337, AnvilHardhat = 31_337, GravityAlphaMainnet = 1_625, GravityAlphaTestnetSepolia = 13_505, Evmos = 9_001, EvmosTestnet = 9_000, Chiado = 10_200, Oasis = 26_863, Emerald = 42_262, EmeraldTestnet = 42_261, FilecoinMainnet = 314, FilecoinCalibrationTestnet = 314_159, Avalanche = 43_114, AvalancheFuji = 43_113, Celo = 42_220, CeloAlfajores = 44_787, CeloBaklava = 62_320, Aurora = 1_313_161_554, AuroraTestnet = 1_313_161_555, Canto = 7_700, CantoTestnet = 740, Boba = 288, Base = 8_453, BaseGoerli = 84_531, BaseSepolia = 84_532, Syndr = 404, SyndrSepolia = 444_444, Shimmer = 148, InkSepolia = 763_373, Fraxtal = 252, FraxtalTestnet = 2_522, Blast = 81_457, BlastSepolia = 168_587_773, Linea = 59_144, LineaGoerli = 59_140, LineaSepolia = 59_141, ZkSync = 324, ZkSyncTestnet = 300, Mantle = 5_000, MantleTestnet = 5_001, MantleSepolia = 5_003, Xai = 660_279, XaiSepolia = 37_714_555_429, Viction = 88, Zora = 7_777_777, ZoraGoerli = 999, ZoraSepolia = 999_999_999, Pgn = 424, PgnSepolia = 58_008, Mode = 34_443, ModeSepolia = 919, Elastos = 20, KakarotSepolia = 920_637_907_288_165, Etherlink = 42_793, EtherlinkTestnet = 128_123, Degen = 666_666_666, OpBNBMainnet = 204, OpBNBTestnet = 5_611, Ronin = 2_020, Taiko = 167_000, TaikoHekla = 167_009, AutonomysNovaTestnet = 490_000, Flare = 14, FlareCoston2 = 114, Acala = 787, AcalaMandalaTestnet = 595, AcalaTestnet = 597, Karura = 686, KaruraTestnet = 596, Pulsechain = 369, PulsechainTestnet = 943, Immutable = 13_371, ImmutableTestnet = 13_473, SoneiumMinatoTestnet = 1_946, World = 480, WorldSepolia = 4_801, Iotex = 4_689, Core = 1_116, Merlin = 4_200, Bitlayer = 200_901, UnichainSepolia = 1_301, ApeChain = 33_139, Curtis = 33_111, SonicTestnet = 64_165,
}
Expand description

An Ethereum EIP-155 chain.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Mainnet = 1

§

Morden = 2

§

Ropsten = 3

§

Rinkeby = 4

§

Goerli = 5

§

Kovan = 42

§

Holesky = 17_000

§

Sepolia = 11_155_111

§

Odyssey = 911_867

§

Optimism = 10

§

OptimismKovan = 69

§

OptimismGoerli = 420

§

OptimismSepolia = 11_155_420

§

Arbitrum = 42_161

§

ArbitrumTestnet = 421_611

§

ArbitrumGoerli = 421_613

§

ArbitrumSepolia = 421_614

§

ArbitrumNova = 42_170

§

Cronos = 25

§

CronosTestnet = 338

§

Rsk = 30

§

Crab = 44

§

Darwinia = 46

§

Koi = 701

§

BinanceSmartChain = 56

Note the correct name for BSC should be BNB Smart Chain due to the rebranding: https://www.bnbchain.org/en/blog/bsc-is-now-bnb-chain-the-infrastructure-for-the-metafi-universe We keep Binance Smart Chain for backward compatibility, and the enum could be renamed in the future release.

§

BinanceSmartChainTestnet = 97

§

Poa = 99

§

Sokol = 77

§

Scroll = 534_352

§

ScrollSepolia = 534_351

§

Metis = 1_088

§

CfxTestnet = 71

§

Cfx = 1_030

§

Gnosis = 100

§

Polygon = 137

§

PolygonMumbai = 80_001

§

PolygonAmoy = 80_002

§

PolygonZkEvm = 1_101

§

PolygonZkEvmTestnet = 1_442

§

Fantom = 250

§

FantomTestnet = 4_002

§

Moonbeam = 1_284

§

MoonbeamDev = 1_281

§

Moonriver = 1_285

§

Moonbase = 1_287

§

Dev = 1_337

§

AnvilHardhat = 31_337

§

GravityAlphaMainnet = 1_625

§

GravityAlphaTestnetSepolia = 13_505

§

Evmos = 9_001

§

EvmosTestnet = 9_000

§

Chiado = 10_200

§

Oasis = 26_863

§

Emerald = 42_262

§

EmeraldTestnet = 42_261

§

FilecoinMainnet = 314

§

FilecoinCalibrationTestnet = 314_159

§

Avalanche = 43_114

§

AvalancheFuji = 43_113

§

Celo = 42_220

§

CeloAlfajores = 44_787

§

CeloBaklava = 62_320

§

Aurora = 1_313_161_554

§

AuroraTestnet = 1_313_161_555

§

Canto = 7_700

§

CantoTestnet = 740

§

Boba = 288

§

Base = 8_453

§

BaseGoerli = 84_531

§

BaseSepolia = 84_532

§

Syndr = 404

§

SyndrSepolia = 444_444

§

Shimmer = 148

§

InkSepolia = 763_373

§

Fraxtal = 252

§

FraxtalTestnet = 2_522

§

Blast = 81_457

§

BlastSepolia = 168_587_773

§

Linea = 59_144

§

LineaGoerli = 59_140

§

LineaSepolia = 59_141

§

ZkSync = 324

§

ZkSyncTestnet = 300

§

Mantle = 5_000

§

MantleTestnet = 5_001

§

MantleSepolia = 5_003

§

Xai = 660_279

§

XaiSepolia = 37_714_555_429

§

Viction = 88

§

Zora = 7_777_777

§

ZoraGoerli = 999

§

ZoraSepolia = 999_999_999

§

Pgn = 424

§

PgnSepolia = 58_008

§

Mode = 34_443

§

ModeSepolia = 919

§

Elastos = 20

§

KakarotSepolia = 920_637_907_288_165

§

EtherlinkTestnet = 128_123

§

Degen = 666_666_666

§

OpBNBMainnet = 204

§

OpBNBTestnet = 5_611

§

Ronin = 2_020

§

Taiko = 167_000

§

TaikoHekla = 167_009

§

AutonomysNovaTestnet = 490_000

§

Flare = 14

§

FlareCoston2 = 114

§

Acala = 787

§

AcalaMandalaTestnet = 595

§

AcalaTestnet = 597

§

Karura = 686

§

KaruraTestnet = 596

§

Pulsechain = 369

§

PulsechainTestnet = 943

§

Immutable = 13_371

§

ImmutableTestnet = 13_473

§

SoneiumMinatoTestnet = 1_946

§

World = 480

§

WorldSepolia = 4_801

§

Iotex = 4_689

§

Core = 1_116

§

Merlin = 4_200

§

Bitlayer = 200_901

§

UnichainSepolia = 1_301

§

ApeChain = 33_139

§

Curtis = 33_111

§

SonicTestnet = 64_165

Implementations§

Source§

impl NamedChain

Source

pub fn as_str(&self) -> &'static str

Returns the string representation of the chain.

Source

pub const fn is_ethereum(&self) -> bool

Returns true if this chain is Ethereum or an Ethereum testnet.

Source

pub const fn is_optimism(self) -> bool

Returns true if the chain contains Optimism configuration.

Source

pub const fn is_arbitrum(self) -> bool

Returns true if the chain contains Arbitrum configuration.

Source

pub const fn average_blocktime_hint(self) -> Option<Duration>

Returns the chain’s average blocktime, if applicable.

It can be beneficial to know the average blocktime to adjust the polling of an HTTP provider for example.

Note: this is not an accurate average, but is rather a sensible default derived from blocktime charts such as Etherscan’s or Polygonscan’s.

§Examples
use alloy_chains::NamedChain;
use std::time::Duration;

assert_eq!(NamedChain::Mainnet.average_blocktime_hint(), Some(Duration::from_millis(12_000)),);
assert_eq!(NamedChain::Optimism.average_blocktime_hint(), Some(Duration::from_millis(2_000)),);
Source

pub const fn is_legacy(self) -> bool

Returns whether the chain implements EIP-1559 (with the type 2 EIP-2718 transaction type).

§Examples
use alloy_chains::NamedChain;

assert!(!NamedChain::Mainnet.is_legacy());
assert!(NamedChain::Celo.is_legacy());
Source

pub const fn supports_shanghai(self) -> bool

Returns whether the chain supports the Shanghai hardfork.

Source

pub const fn is_testnet(self) -> bool

Returns whether the chain is a testnet.

Source

pub const fn native_currency_symbol(self) -> Option<&'static str>

Returns the symbol of the chain’s native currency.

Source

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.

Returns (API_URL, BASE_URL).

All URLs have no trailing /

§Examples
use alloy_chains::NamedChain;

assert_eq!(
    NamedChain::Mainnet.etherscan_urls(),
    Some(("https://api.etherscan.io/api", "https://etherscan.io"))
);
assert_eq!(
    NamedChain::Avalanche.etherscan_urls(),
    Some(("https://api.snowtrace.io/api", "https://snowtrace.io"))
);
assert_eq!(NamedChain::AnvilHardhat.etherscan_urls(), None);
Source

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.

§Examples
use alloy_chains::NamedChain;

assert_eq!(NamedChain::Mainnet.etherscan_api_key_name(), Some("ETHERSCAN_API_KEY"));
assert_eq!(NamedChain::AnvilHardhat.etherscan_api_key_name(), None);
Source

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.

§Examples
use alloy_chains::NamedChain;

let chain = NamedChain::Mainnet;
std::env::set_var(chain.etherscan_api_key_name().unwrap(), "KEY");
assert_eq!(chain.etherscan_api_key().as_deref(), Some("KEY"));
Source

pub fn public_dns_network_protocol(self) -> Option<String>

Returns the address of the public DNS node list for the given chain.

See also https://github.com/ethereum/discv4-dns-lists.

Source

pub const fn wrapped_native_token(self) -> Option<Address>

Returns the address of the most popular wrapped native token address for this chain, if it exists.

Example:

use alloy_chains::NamedChain;
use alloy_primitives::address;

let chain = NamedChain::Mainnet;
assert_eq!(
    chain.wrapped_native_token(),
    Some(address!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"))
);

Trait Implementations§

Source§

impl AsRef<str> for NamedChain

Source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for NamedChain

Source§

fn clone(&self) -> NamedChain

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 NamedChain

Source§

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

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

impl Default for NamedChain

Source§

fn default() -> Self

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

impl Display for NamedChain

Source§

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

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

impl EnumCount for NamedChain

Source§

const COUNT: usize = 129usize

Source§

impl<'_derivative_strum> From<&'_derivative_strum NamedChain> for &'static str

Source§

fn from(x: &'_derivative_strum NamedChain) -> &'static str

Converts to this type from the input type.
Source§

impl From<NamedChain> for &'static str

Source§

fn from(x: NamedChain) -> &'static str

Converts to this type from the input type.
Source§

impl From<NamedChain> for Chain

Source§

fn from(id: NamedChain) -> Self

Converts to this type from the input type.
Source§

impl From<NamedChain> for i128

Source§

fn from(chain: NamedChain) -> Self

Converts to this type from the input type.
Source§

impl From<NamedChain> for i64

Source§

fn from(chain: NamedChain) -> Self

Converts to this type from the input type.
Source§

impl From<NamedChain> for u128

Source§

fn from(chain: NamedChain) -> Self

Converts to this type from the input type.
Source§

impl From<NamedChain> for u64

Source§

fn from(chain: NamedChain) -> Self

Converts to this type from the input type.
Source§

impl FromStr for NamedChain

Source§

type Err = ParseError

The associated error which can be returned from parsing.
Source§

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

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

impl Hash for NamedChain

Source§

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

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

impl IntoEnumIterator for NamedChain

Source§

impl Ord for NamedChain

Source§

fn cmp(&self, other: &NamedChain) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq<u64> for NamedChain

Source§

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

impl PartialEq for NamedChain

Source§

fn eq(&self, other: &NamedChain) -> 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.
Source§

impl PartialOrd<u64> for NamedChain

Source§

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

impl PartialOrd for NamedChain

Source§

fn partial_cmp(&self, other: &NamedChain) -> 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
Source§

impl TryFrom<&str> for NamedChain

Source§

type Error = ParseError

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

fn try_from(s: &str) -> Result<NamedChain, <Self as TryFrom<&str>>::Error>

Performs the conversion.
Source§

impl TryFrom<Chain> for NamedChain

Source§

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

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

fn try_from(chain: Chain) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<i16> for NamedChain

Source§

type Error = TryFromPrimitiveError<NamedChain>

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

fn try_from(value: i16) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<i32> for NamedChain

Source§

type Error = TryFromPrimitiveError<NamedChain>

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

fn try_from(value: i32) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<i8> for NamedChain

Source§

type Error = TryFromPrimitiveError<NamedChain>

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

fn try_from(value: i8) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<isize> for NamedChain

Source§

type Error = TryFromPrimitiveError<NamedChain>

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

fn try_from(value: isize) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<u16> for NamedChain

Source§

type Error = TryFromPrimitiveError<NamedChain>

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

fn try_from(value: u16) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<u32> for NamedChain

Source§

type Error = TryFromPrimitiveError<NamedChain>

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

fn try_from(value: u32) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<u64> for NamedChain

Source§

type Error = TryFromPrimitiveError<NamedChain>

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

fn try_from(number: u64) -> Result<Self, TryFromPrimitiveError<Self>>

Performs the conversion.
Source§

impl TryFrom<u8> for NamedChain

Source§

type Error = TryFromPrimitiveError<NamedChain>

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

fn try_from(value: u8) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<usize> for NamedChain

Source§

type Error = TryFromPrimitiveError<NamedChain>

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

fn try_from(value: usize) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFromPrimitive for NamedChain

Source§

impl VariantArray for NamedChain

Source§

const VARIANTS: &'static [Self] = _

Source§

impl VariantNames for NamedChain

Source§

const VARIANTS: &'static [&'static str] = _

Names of the variants of this enum
Source§

impl Copy for NamedChain

Source§

impl Eq for NamedChain

Source§

impl StructuralPartialEq for NamedChain

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

default fn to_string(&self) -> String

Converts the given value to a String. 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.