intrepidshape/elm-web3/3.0.0

Web3.Chain

Chain definitions for EVM networks.

Each Chain bundles the chain ID, name, default RPC URL, block explorer URL, and native currency symbol. Pass Chain.chainId someChain wherever a Web3.Types.ChainId is needed (e.g. Wallet.update and Wallet.switchChain).

import Web3.Chain as Chain
import Web3.Wallet as Wallet


expectedChain : Web3.Types.ChainId
expectedChain =
    Chain.chainId Chain.pulsechain


-- Add a network to the wallet (EIP-3085):
addPulseChain : Web3.Wallet.WalletCmd
addPulseChain =
    Wallet.addChain
        { chainId = 369
        , chainName = Chain.name Chain.pulsechain
        , rpcUrls = [ Chain.rpcUrl Chain.pulsechain ]
        , nativeCurrency = { name = "Pulse", symbol = "PLS", decimals = 18 }
        , blockExplorerUrls = [ Chain.blockExplorer Chain.pulsechain ]
        }
type alias Chain =
{ chainId : ChainId
, name : String
, rpcUrl : String
, blockExplorer : String
, nativeCurrency : String
}

An EVM chain definition.

pulsechain : Chain

PulseChain mainnet (chain ID 369).

The block explorer URL points to scan.pulsechain.com served via Pinata's IPFS gateway. This is the proper decentralised access method -- the same explorer, but fetched from IPFS rather than a centralised host.

PulseChain testnet v4 (chain ID 943).

ethereum : Chain

Ethereum mainnet (chain ID 1).

sepolia : Chain

Sepolia testnet (chain ID 11155111).

bsc : Chain

BNB Smart Chain mainnet (chain ID 56).

polygon : Chain

Polygon PoS mainnet (chain ID 137).

arbitrum : Chain

Arbitrum One (chain ID 42161).

optimism : Chain

Optimism (chain ID 10).

base : Chain

Base mainnet (chain ID 8453).

avalanche : Chain

Avalanche C-Chain (chain ID 43114).

zksync : Chain

zkSync Era mainnet (chain ID 324).

fantom : Chain

Fantom Opera (chain ID 250).

gnosis : Chain

Gnosis Chain (chain ID 100).

linea : Chain

Linea mainnet (chain ID 59144).

scroll : Chain

Scroll mainnet (chain ID 534352).

{ chainId : Int
, name : String
, rpcUrl : String
, blockExplorer : String
, nativeCurrency : String
}
-> Chain

Define a custom EVM chain.

chainId : Chain -> ChainId

Get the chain ID.

name : Chain -> String

Get the chain name.

rpcUrl : Chain -> String

Get the RPC URL.

blockExplorer : Chain -> String

Get the block explorer URL.