Skip to content

BOB mainnet (chain 60808) missing from PRODUCTION_NETWORKS despite having MAINNET_CHAIN_IDs entry and token mappings #205

Description

@Nexory

Summary

MAINNET_CHAIN_IDs.BOB (chain ID 60808) is declared alongside every other production chain and has token-address entries in tokens.ts, but its corresponding PublicNetwork descriptor is absent from the PRODUCTION_NETWORKS map in src/networks.ts. Any consumer that iterates or looks up a chain via PRODUCTION_NETWORKS — such as a relayer enumerating supported chains or a UI building a network picker — will silently omit BOB while treating it as a valid mainnet chain everywhere else.

What I observed

src/networks.ts, line 34 — BOB declared in MAINNET_CHAIN_IDs:

BOB: 60808,

src/networks.ts, lines 137-468 — PRODUCTION_NETWORKS contains entries for every neighboring chain (BLAST at 81457, BOBA at 288, BSC at 56, …) but has no [CHAIN_IDs.BOB] key.

src/tokens.ts, line 132 — BOB mainnet referenced in WETH token map:

[CHAIN_IDs.BOB]: "0x4200000000000000000000000000000000000006",

For contrast, TEST_NETWORKS correctly includes [CHAIN_IDs.BOB_SEPOLIA] at line 501, showing the pattern is established for the testnet variant.

Impact

Any code path that uses PRODUCTION_NETWORKS as its source of truth for "which chains are live" will silently drop BOB. Concretely: network-metadata lookups (RPC URL, block explorer, CCTP domain, OFT EID) will return undefined for chain 60808, potentially causing downstream errors in relayers, UIs, or tooling that assume all MAINNET_CHAIN_IDs members have a corresponding PRODUCTION_NETWORKS entry.

Suggested fix

Add a [CHAIN_IDs.BOB] entry to PRODUCTION_NETWORKS in alphabetical order (between BLAST and BOBA). BOB is an OP Stack chain; its public RPC and explorer are already in use on the Sepolia side:

[CHAIN_IDs.BOB]: {
  name: "BOB",
  family: OP_STACK,
  nativeToken: "ETH",
  publicRPC: "https://rpc.gobob.xyz",
  blockExplorer: "https://explorer.gobob.xyz",
  cctpDomain: CCTP_NO_DOMAIN,
  oftEid: OFT_NO_EID,
  hypDomainId: HYPERLANE_NO_DOMAIN_ID,
},

Values for cctpDomain, oftEid, and hypDomainId should be confirmed against official BOB / LayerZero / Hyperlane registries before merging; the placeholders above match the pattern used for other chains without those integrations.

Notes

PR #200 ("feat: Missing Bob & Ink Sepolia") addresses a separate gap — BOB_SEPOLIA absent from TEST_NETWORKS — and is not a duplicate of this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions