@@ -335,42 +335,116 @@ func lookupChainByConst(constName string) nodesv1alpha1.Chain {
335335 return nodesv1alpha1 .Chain (constName )
336336}
337337
338- // chainValueToConstName converts a chain string value to its Go constant name .
339- // e.g. "bitcoin" -> "ChainBitcoin", "bsc" -> "ChainBSC"
338+ // chainValueToConstName maps chain string values to their exact Go constant names .
339+ // Generated from api/v1alpha1/blockchainnode_types.go — update when new chains are added.
340340func chainValueToConstName (value string ) string {
341- specials := map [string ]string {
342- "bsc" : "ChainBSC" ,
343- "ton" : "ChainTON" ,
344- "tron" : "ChainTRON" ,
345- "xrp" : "ChainXRP" ,
346- "opbnb" : "ChainOpBNB" ,
347- "bittorrent" : "ChainBitTorrent" ,
348- "ethereum-archive" : "ChainEthereumArchive" ,
349- "ethereum-beacon" : "ChainEthereumBeacon" ,
350- "ethereum-classic" : "ChainEthereumClassic" ,
351- "polygon-zkevm" : "ChainPolygonZkEVM" ,
352- "cronos-zkevm" : "ChainCronosZkEVM" ,
353- "immutable-zkevm" : "ChainImmutableZkEVM" ,
354- "gnosis-beacon" : "ChainGnosisBeacon" ,
355- "zero-network" : "ChainZeroNetwork" ,
356- "gravity-alpha" : "ChainGravityAlpha" ,
357- "manta-pacific" : "ChainMantaPacific" ,
358- "boba-eth" : "ChainBobaEth" ,
359- "zksync" : "ChainZkSync" ,
360- "megaeth" : "ChainMegaETH" ,
361- }
362- if name , ok := specials [value ]; ok {
363- return name
364- }
365- parts := strings .FieldsFunc (value , func (r rune ) bool { return r == '-' || r == '_' })
366- var sb strings.Builder
367- sb .WriteString ("Chain" )
368- for _ , p := range parts {
369- if len (p ) > 0 {
370- sb .WriteString (strings .ToUpper (p [:1 ]) + p [1 :])
371- }
372- }
373- return sb .String ()
341+ return chainConstNames [value ]
342+ }
343+
344+ // chainConstNames is the authoritative map from chain runtime value to Go constant name.
345+ var chainConstNames = map [string ]string {
346+ "abstract" : "ChainAbstract" ,
347+ "aptos" : "ChainAptos" ,
348+ "arbitrum" : "ChainArbitrum" ,
349+ "aurora" : "ChainAurora" ,
350+ "avalanche" : "ChainAvalanche" ,
351+ "axelar" : "ChainAxelar" ,
352+ "base" : "ChainBase" ,
353+ "berachain" : "ChainBerachain" ,
354+ "bitcoin" : "ChainBitcoin" ,
355+ "bittorrent" : "ChainBitTorrent" ,
356+ "blast" : "ChainBlast" ,
357+ "bob" : "ChainBob" ,
358+ "boba-eth" : "ChainBobaEth" ,
359+ "bsc" : "ChainBSC" ,
360+ "cardano" : "ChainCardano" ,
361+ "celo" : "ChainCelo" ,
362+ "core" : "ChainCore" ,
363+ "cosmos" : "ChainCosmos" ,
364+ "cronos" : "ChainCronos" ,
365+ "cronos-zkevm" : "ChainCronosZkEVM" ,
366+ "dash" : "ChainDash" ,
367+ "dogecoin" : "ChainDogecoin" ,
368+ "doma" : "ChainDoma" ,
369+ "dymension" : "ChainDymension" ,
370+ "ethereum" : "ChainEthereum" ,
371+ "ethereum-archive" : "ChainEthereumArchive" ,
372+ "ethereum-beacon" : "ChainEthereumBeacon" ,
373+ "ethereum-classic" : "ChainEthereumClassic" ,
374+ "everclear" : "ChainEverclear" ,
375+ "evmos" : "ChainEvmos" ,
376+ "fantom" : "ChainFantom" ,
377+ "filecoin" : "ChainFilecoin" ,
378+ "fraxtal" : "ChainFraxtal" ,
379+ "fuse" : "ChainFuse" ,
380+ "gnosis" : "ChainGnosis" ,
381+ "gnosis-beacon" : "ChainGnosisBeacon" ,
382+ "goat" : "ChainGoat" ,
383+ "gravity-alpha" : "ChainGravityAlpha" ,
384+ "haqq" : "ChainHaqq" ,
385+ "harmony" : "ChainHarmony" ,
386+ "hashkey" : "ChainHashKey" ,
387+ "hemi" : "ChainHemi" ,
388+ "hyperliquid" : "ChainHyperliquid" ,
389+ "immutable-zkevm" : "ChainImmutableZkEVM" ,
390+ "ink" : "ChainInk" ,
391+ "katana" : "ChainKatana" ,
392+ "kava" : "ChainKava" ,
393+ "klaytn" : "ChainKlaytn" ,
394+ "kroma" : "ChainKroma" ,
395+ "kusama" : "ChainKusama" ,
396+ "lens" : "ChainLens" ,
397+ "linea" : "ChainLinea" ,
398+ "lisk" : "ChainLisk" ,
399+ "litecoin" : "ChainLitecoin" ,
400+ "manta-pacific" : "ChainMantaPacific" ,
401+ "mantle" : "ChainMantle" ,
402+ "megaeth" : "ChainMegaETH" ,
403+ "metis" : "ChainMetis" ,
404+ "mezo" : "ChainMezo" ,
405+ "moca" : "ChainMoca" ,
406+ "mode" : "ChainMode" ,
407+ "monad" : "ChainMonad" ,
408+ "moonbeam" : "ChainMoonbeam" ,
409+ "moonriver" : "ChainMoonriver" ,
410+ "morph" : "ChainMorph" ,
411+ "near" : "ChainNear" ,
412+ "opbnb" : "ChainOpBNB" ,
413+ "optimism" : "ChainOptimism" ,
414+ "osmosis" : "ChainOsmosis" ,
415+ "plasma" : "ChainPlasma" ,
416+ "playnance" : "ChainPlaynance" ,
417+ "plume" : "ChainPlume" ,
418+ "polkadot" : "ChainPolkadot" ,
419+ "polygon" : "ChainPolygon" ,
420+ "polygon-zkevm" : "ChainPolygonZkEVM" ,
421+ "ronin" : "ChainRonin" ,
422+ "rootstock" : "ChainRootstock" ,
423+ "scroll" : "ChainScroll" ,
424+ "sei" : "ChainSei" ,
425+ "shibarium" : "ChainShibarium" ,
426+ "solana" : "ChainSolana" ,
427+ "soneium" : "ChainSoneium" ,
428+ "sonic" : "ChainSonic" ,
429+ "starknet" : "ChainStarknet" ,
430+ "stellar" : "ChainStellar" ,
431+ "sui" : "ChainSui" ,
432+ "superseed" : "ChainSuperseed" ,
433+ "swell" : "ChainSwell" ,
434+ "taiko" : "ChainTaiko" ,
435+ "telos" : "ChainTelos" ,
436+ "thundercore" : "ChainThundercore" ,
437+ "ton" : "ChainTON" ,
438+ "tron" : "ChainTRON" ,
439+ "unichain" : "ChainUnichain" ,
440+ "viction" : "ChainViction" ,
441+ "wemix" : "ChainWemix" ,
442+ "worldchain" : "ChainWorldchain" ,
443+ "xrp" : "ChainXRP" ,
444+ "zero-network" : "ChainZeroNetwork" ,
445+ "zircuit" : "ChainZircuit" ,
446+ "zksync" : "ChainZkSync" ,
447+ "zora" : "ChainZora" ,
374448}
375449
376450// versionsGenTemplate is the template for regenerating versions_gen.go.
0 commit comments