Enum ethers_addressbook::Chain
source · #[repr(u64)]pub enum Chain {
Show 78 variants
Mainnet = 1,
Morden = 2,
Ropsten = 3,
Rinkeby = 4,
Goerli = 5,
Kovan = 42,
Holesky = 17_000,
Sepolia = 11_155_111,
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,
BinanceSmartChain = 56,
BinanceSmartChainTestnet = 97,
Poa = 99,
Sokol = 77,
ScrollSepolia = 534_351,
Scroll = 534_352,
ScrollAlphaTestnet = 534_353,
Metis = 1_088,
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,
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,
Blast = 81_457,
BlastSepolia = 168_587_773,
Linea = 59_144,
LineaTestnet = 59_140,
ZkSync = 324,
ZkSyncTestnet = 280,
Mantle = 5_000,
MantleTestnet = 5_001,
Viction = 88,
Zora = 7_777_777,
ZoraGoerli = 999,
ZoraSepolia = 999_999_999,
Mode = 34_443,
ModeSepolia = 919,
Elastos = 20,
}
Expand description
An Ethereum EIP-155 chain.
Variants§
Mainnet = 1
Morden = 2
Ropsten = 3
Rinkeby = 4
Goerli = 5
Kovan = 42
Holesky = 17_000
Sepolia = 11_155_111
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
BinanceSmartChain = 56
BinanceSmartChainTestnet = 97
Poa = 99
Sokol = 77
ScrollSepolia = 534_351
Scroll = 534_352
ScrollAlphaTestnet = 534_353
Metis = 1_088
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
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
Blast = 81_457
BlastSepolia = 168_587_773
Linea = 59_144
LineaTestnet = 59_140
ZkSync = 324
ZkSyncTestnet = 280
Mantle = 5_000
MantleTestnet = 5_001
Viction = 88
Zora = 7_777_777
ZoraGoerli = 999
ZoraSepolia = 999_999_999
Mode = 34_443
ModeSepolia = 919
Elastos = 20
Implementations§
source§impl Chain
impl Chain
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 ethers_core::types::Chain;
use std::time::Duration;
assert_eq!(
Chain::Mainnet.average_blocktime_hint(),
Some(Duration::from_millis(12_000)),
);
assert_eq!(
Chain::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 ethers_core::types::Chain;
assert!(!Chain::Mainnet.is_legacy());
assert!(Chain::Celo.is_legacy());
sourcepub const fn supports_push0(&self) -> bool
pub const fn supports_push0(&self) -> bool
Returns whether the chain supports the PUSH0
opcode or not.
For more information, see EIP-3855:
<https://eips.ethereum.org/EIPS/eip-3855>
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)
§Examples
use ethers_core::types::Chain;
assert_eq!(
Chain::Mainnet.etherscan_urls(),
Some(("https://api.etherscan.io/api", "https://etherscan.io"))
);
assert_eq!(
Chain::Avalanche.etherscan_urls(),
Some(("https://api.snowtrace.io/api", "https://snowtrace.io"))
);
assert_eq!(Chain::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 ethers_core::types::Chain;
assert_eq!(Chain::Mainnet.etherscan_api_key_name(), Some("ETHERSCAN_API_KEY"));
assert_eq!(Chain::AnvilHardhat.etherscan_api_key_name(), None);
sourcepub fn etherscan_api_key(&self) -> Option<String>
pub fn etherscan_api_key(&self) -> Option<String>
Returns the chain’s blockchain explorer’s API key, from the environment variable with the
name specified in etherscan_api_key_name
.
§Examples
use ethers_core::types::Chain;
let chain = Chain::Mainnet;
std::env::set_var(chain.etherscan_api_key_name().unwrap(), "KEY");
assert_eq!(chain.etherscan_api_key().as_deref(), Some("KEY"));
Trait Implementations§
source§impl<'de> Deserialize<'de> for Chain
impl<'de> Deserialize<'de> for Chain
source§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>,
source§impl Ord for Chain
impl Ord for Chain
source§impl PartialEq for Chain
impl PartialEq for Chain
source§impl PartialOrd for Chain
impl PartialOrd for Chain
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more