#[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
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
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
Implementations§
Source§impl NamedChain
impl NamedChain
Sourcepub const fn is_ethereum(&self) -> bool
pub const fn is_ethereum(&self) -> bool
Returns true
if this chain is Ethereum or an Ethereum testnet.
Sourcepub const fn is_optimism(self) -> bool
pub const fn is_optimism(self) -> bool
Returns true if the chain contains Optimism configuration.
Sourcepub const fn is_arbitrum(self) -> bool
pub const fn is_arbitrum(self) -> bool
Returns true if the chain contains Arbitrum configuration.
Sourcepub 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.
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)),);
Sourcepub 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).
§Examples
use alloy_chains::NamedChain;
assert!(!NamedChain::Mainnet.is_legacy());
assert!(NamedChain::Celo.is_legacy());
Sourcepub const fn supports_shanghai(self) -> bool
pub const fn supports_shanghai(self) -> bool
Returns whether the chain supports the Shanghai hardfork.
Sourcepub const fn is_testnet(self) -> bool
pub const fn is_testnet(self) -> bool
Returns whether the chain is a testnet.
Sourcepub const fn native_currency_symbol(self) -> Option<&'static str>
pub const fn native_currency_symbol(self) -> Option<&'static str>
Returns the symbol of the chain’s native currency.
Sourcepub 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.
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);
Sourcepub 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.
§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);
Sourcepub 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
.
§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"));
Sourcepub 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.
Sourcepub const fn wrapped_native_token(self) -> Option<Address>
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
impl AsRef<str> for NamedChain
Source§impl Clone for NamedChain
impl Clone for NamedChain
Source§fn clone(&self) -> NamedChain
fn clone(&self) -> NamedChain
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for NamedChain
impl Debug for NamedChain
Source§impl Default for NamedChain
impl Default for NamedChain
Source§impl Display for NamedChain
impl Display for NamedChain
Source§impl<'_derivative_strum> From<&'_derivative_strum NamedChain> for &'static str
impl<'_derivative_strum> From<&'_derivative_strum NamedChain> for &'static str
Source§fn from(x: &'_derivative_strum NamedChain) -> &'static str
fn from(x: &'_derivative_strum NamedChain) -> &'static str
Source§impl From<NamedChain> for &'static str
impl From<NamedChain> for &'static str
Source§fn from(x: NamedChain) -> &'static str
fn from(x: NamedChain) -> &'static str
Source§impl From<NamedChain> for Chain
impl From<NamedChain> for Chain
Source§fn from(id: NamedChain) -> Self
fn from(id: NamedChain) -> Self
Source§impl From<NamedChain> for i128
impl From<NamedChain> for i128
Source§fn from(chain: NamedChain) -> Self
fn from(chain: NamedChain) -> Self
Source§impl From<NamedChain> for i64
impl From<NamedChain> for i64
Source§fn from(chain: NamedChain) -> Self
fn from(chain: NamedChain) -> Self
Source§impl From<NamedChain> for u128
impl From<NamedChain> for u128
Source§fn from(chain: NamedChain) -> Self
fn from(chain: NamedChain) -> Self
Source§impl From<NamedChain> for u64
impl From<NamedChain> for u64
Source§fn from(chain: NamedChain) -> Self
fn from(chain: NamedChain) -> Self
Source§impl FromStr for NamedChain
impl FromStr for NamedChain
Source§impl Hash for NamedChain
impl Hash for NamedChain
Source§impl IntoEnumIterator for NamedChain
impl IntoEnumIterator for NamedChain
type Iterator = NamedChainIter
fn iter() -> NamedChainIter ⓘ
Source§impl Ord for NamedChain
impl Ord for NamedChain
Source§fn cmp(&self, other: &NamedChain) -> Ordering
fn cmp(&self, other: &NamedChain) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq<u64> for NamedChain
impl PartialEq<u64> for NamedChain
Source§impl PartialEq for NamedChain
impl PartialEq for NamedChain
Source§impl PartialOrd<u64> for NamedChain
impl PartialOrd<u64> for NamedChain
Source§impl PartialOrd for NamedChain
impl PartialOrd for NamedChain
Source§impl TryFrom<&str> for NamedChain
impl TryFrom<&str> for NamedChain
Source§impl TryFrom<Chain> for NamedChain
impl TryFrom<Chain> for NamedChain
Source§impl TryFrom<i16> for NamedChain
impl TryFrom<i16> for NamedChain
Source§impl TryFrom<i32> for NamedChain
impl TryFrom<i32> for NamedChain
Source§impl TryFrom<i8> for NamedChain
impl TryFrom<i8> for NamedChain
Source§impl TryFrom<isize> for NamedChain
impl TryFrom<isize> for NamedChain
Source§impl TryFrom<u16> for NamedChain
impl TryFrom<u16> for NamedChain
Source§impl TryFrom<u32> for NamedChain
impl TryFrom<u32> for NamedChain
Source§impl TryFrom<u64> for NamedChain
impl TryFrom<u64> for NamedChain
Source§type Error = TryFromPrimitiveError<NamedChain>
type Error = TryFromPrimitiveError<NamedChain>
Source§impl TryFrom<u8> for NamedChain
impl TryFrom<u8> for NamedChain
Source§impl TryFrom<usize> for NamedChain
impl TryFrom<usize> for NamedChain
Source§impl TryFromPrimitive for NamedChain
impl TryFromPrimitive for NamedChain
const NAME: &'static str = "NamedChain"
type Primitive = u64
type Error = TryFromPrimitiveError<NamedChain>
fn try_from_primitive( number: Self::Primitive, ) -> Result<Self, TryFromPrimitiveError<Self>>
Source§impl VariantArray for NamedChain
impl VariantArray for NamedChain
Source§impl VariantNames for NamedChain
impl VariantNames for NamedChain
impl Copy for NamedChain
impl Eq for NamedChain
impl StructuralPartialEq for NamedChain
Auto Trait Implementations§
impl Freeze for NamedChain
impl RefUnwindSafe for NamedChain
impl Send for NamedChain
impl Sync for NamedChain
impl Unpin for NamedChain
impl UnwindSafe for NamedChain
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,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)