// SPDX-License-Identifier: Apache-2.0
// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.

package chainadapter

// Package-local chain IDs resolved at init time from the default registry.
// These replace the brand-keyed Chain<Brand> const enum that previously sat
// at the top of adapter.go. The data lives in DefaultChainSeed; these vars
// are convenience bindings for in-package switch/compare paths.
//
// Adding a new chain is one row in DefaultChainSeed and (if it needs to be
// referenced by name from package code) one line here.
var (
	idBitcoin   = mustID("bitcoin")
	idEthereum  = mustID("ethereum")
	idSolana    = mustID("solana")
	idCosmos    = mustID("cosmos")
	idPolkadot  = mustID("polkadot")
	idPolygon   = mustID("polygon")
	idBSC       = mustID("bsc")
	idRipple    = mustID("ripple")
	idArbitrum  = mustID("arbitrum")
	idOptimism  = mustID("optimism")
	idBase      = mustID("base")
	idTron      = mustID("tron")
	idCardano   = mustID("cardano")
	idNear      = mustID("near")
	idAptos     = mustID("aptos")
	idSui       = mustID("sui")
	idTON       = mustID("ton")
	idStellar   = mustID("stellar")
	idAlgorand  = mustID("algorand")

	idFantom    = mustID("fantom")
	idCronos    = mustID("cronos")
	idGnosis    = mustID("gnosis")
	idCelo      = mustID("celo")
	idMoonbeam  = mustID("moonbeam")
	idMoonriver = mustID("moonriver")
	idAstar     = mustID("astar")
	idMetis     = mustID("metis")
	idBoba      = mustID("boba")
	idAurora    = mustID("aurora")
	idKlaytn    = mustID("klaytn")
	idFuse      = mustID("fuse")
	idEvmos     = mustID("evmos")
	idKava      = mustID("kava")
	idOKX       = mustID("okx")
	idPulse     = mustID("pulse")
	idCore      = mustID("core")
	idFlare     = mustID("flare")
	idSongbird  = mustID("songbird")
	idRON       = mustID("ronin")

	idZkSync     = mustID("zksync")
	idStarknet   = mustID("starknet")
	idScroll     = mustID("scroll")
	idLinea      = mustID("linea")
	idMantle     = mustID("mantle")
	idZora       = mustID("zora")
	idMode       = mustID("mode")
	idBlast      = mustID("blast")
	idManta      = mustID("manta")
	idPolygonZk  = mustID("polygon-zkevm")
	idLoopring   = mustID("loopring")
	idImmutableX = mustID("immutable-x")
	iddYdX       = mustID("dydx")
	idApechain   = mustID("apechain")
	idWorldchain = mustID("worldchain")
	idTaiko      = mustID("taiko")
	idFrax       = mustID("frax")
	idRedstone   = mustID("redstone")
	idLisk       = mustID("lisk")
	idBob        = mustID("bob")
	idCyber      = mustID("cyber")
	idMint       = mustID("mint")
	idKroma      = mustID("kroma")
	idOpBNB      = mustID("opbnb")
	idXLayer     = mustID("xlayer")
	idZircuit    = mustID("zircuit")

	idOsmosis     = mustID("osmosis")
	idInjective   = mustID("injective")
	idSei         = mustID("sei")
	idCelestia    = mustID("celestia")
	idThorchain   = mustID("thorchain")
	idAkash       = mustID("akash")
	idJuno        = mustID("juno")
	idStargaze    = mustID("stargaze")
	idSecret      = mustID("secret")
	idAxelar      = mustID("axelar")
	idStride      = mustID("stride")
	idNeutron     = mustID("neutron")
	idNoble       = mustID("noble")
	idMars        = mustID("mars")
	idPersistence = mustID("persistence")
	idFetchAI     = mustID("fetch-ai")
	idBand        = mustID("band")
	idRegen       = mustID("regen")
	idSommelier   = mustID("sommelier")
	idUmee        = mustID("umee")
	idCanto       = mustID("canto")
	idDymension   = mustID("dymension")
	idSaga        = mustID("saga")

	idHedera     = mustID("hedera")
	idIOTA       = mustID("iota")
	idKaspa      = mustID("kaspa")
	idFilecoin   = mustID("filecoin")
	idICP        = mustID("icp")
	idFlow       = mustID("flow")
	idMina       = mustID("mina")
	idMultiversX = mustID("multiversx")
	idHarmony    = mustID("harmony")
	idZilliqa    = mustID("zilliqa")
	idVechain    = mustID("vechain")
	idTheta      = mustID("theta")
	idEOS        = mustID("eos")
	idWAX        = mustID("wax")
	idTezos      = mustID("tezos")
	idNEO        = mustID("neo")
	idQtum       = mustID("qtum")
	idWaves      = mustID("waves")
	idOntology   = mustID("ontology")
	idRavencoin  = mustID("ravencoin")

	idLitecoin       = mustID("litecoin")
	idBitcoinCash    = mustID("bitcoin-cash")
	idDogecoin       = mustID("dogecoin")
	idZcash          = mustID("zcash")
	idMonero         = mustID("monero")
	idDash           = mustID("dash")
	idDecred         = mustID("decred")
	idDigiByte       = mustID("digibyte")
	idSiacoin        = mustID("siacoin")
	idHorizen        = mustID("horizen")
	idErgo           = mustID("ergo")
	idFiro           = mustID("firo")
	idKomodo         = mustID("komodo")
	idPivx           = mustID("pivx")
	idBSV            = mustID("bsv")
	idEtherClassic   = mustID("ethereum-classic")
	idFlux           = mustID("flux")
	idHandshake      = mustID("handshake")
	idNervos         = mustID("nervos")
	idConflux        = mustID("conflux")

	idAcala      = mustID("acala")
	idPhala      = mustID("phala")
	idBifrost    = mustID("bifrost")
	idParallel   = mustID("parallel")
	idClover     = mustID("clover")
	idCentrifuge = mustID("centrifuge")
	idInterlay   = mustID("interlay")
	idHydra      = mustID("hydra")
	idNodle      = mustID("nodle")
	idEfinity    = mustID("efinity")
	idMangata    = mustID("mangata")
	idZeitgeist  = mustID("zeitgeist")
	idKusama     = mustID("kusama")
	idPolimec    = mustID("polimec")

	idWemix    = mustID("wemix")
	idOasys    = mustID("oasys")
	idBeam     = mustID("beam")
	idXai      = mustID("xai")
	idSaakuru  = mustID("saakuru")
	idViction  = mustID("viction")
	idPlaydapp = mustID("playdapp")
	idTreasure = mustID("treasure")
	idSkale    = mustID("skale")
	idLoom     = mustID("loom")
	idEnjin    = mustID("enjin")

	idUnichain    = mustID("unichain")
	idSwell       = mustID("swell")
	idEtherfi     = mustID("etherfi")
	idInk         = mustID("ink")
	idMorph       = mustID("morph")
	idRari        = mustID("rari")
	idShape       = mustID("shape")
	idAbstract    = mustID("abstract")
	idSoneium     = mustID("soneium")
	idAILayer     = mustID("ailayer")
	idHyperliquid = mustID("hyperliquid")
	idBerachain   = mustID("berachain")
	idMonad       = mustID("monad")
	idMegaETH     = mustID("megaeth")

	idLux = mustID("lux")
)
