Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion packages/arb-token-bridge-ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
"scripts": {
"predev": "yarn generateDenylist",
"dev": "next dev",
"prebuild": "yarn generateDenylist",
"prebuild": "yarn generateDenylist && yarn generateChainIdsEnum",
"postinstall": "patch-package",
"build": "next build",
"start": "next start",
Expand All @@ -68,6 +68,7 @@
"lint:fix": "tsc && eslint --quiet --fix",
"prettier:format": "prettier --config-precedence file-override --write \"src/**/*.{tsx,ts,scss,md,json}\"",
"generateDenylist": "ts-node --project ./scripts/tsconfig.json ./scripts/generateDenylist.ts",
"generateChainIdsEnum": "ts-node --project ./scripts/tsconfig.json ./scripts/generateChainIdsEnum.ts",
"generateOpenGraphImages": "ts-node --project ./scripts/tsconfig.json ./src/generateOpenGraphImages.tsx generate",
"generateOpenGraphImages:core": "yarn generateOpenGraphImages --core",
"generateOpenGraphImages:orbit": "yarn generateOpenGraphImages --orbit",
Expand Down
78 changes: 78 additions & 0 deletions packages/arb-token-bridge-ui/scripts/generateChainIdsEnum.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import fs from 'fs'
import path from 'path'

interface OrbitChainData {
chainId: number
name: string
isTestnet: boolean
}

interface OrbitChainsData {
mainnet: OrbitChainData[]
testnet: OrbitChainData[]
}

function toCamelCase(str: string): string {
return str
.replace(/[^a-zA-Z0-9]/g, ' ')
.split(' ')
.filter(word => word.length > 0)
.map((word, index) => {
if (index === 0) {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()
}
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()
})
.join('')
}

function generateChainIdsEnum(): void {
const orbitChainsDataPath = path.join(__dirname, '../src/util/orbitChainsData.json')
const chainIdTypesPath = path.join(__dirname, '../src/types/ChainId.ts')

const orbitChainsData: OrbitChainsData = JSON.parse(
fs.readFileSync(orbitChainsDataPath, 'utf8')
)

const defaultChains = ` // L1
Ethereum = 1,
// L1 Testnets
Local = 1337,
Sepolia = 11155111,
// L2
ArbitrumOne = 42161,
ArbitrumNova = 42170,
Base = 8453,
// L2 Testnets
ArbitrumSepolia = 421614,
ArbitrumLocal = 412346,
BaseSepolia = 84532,
// L3 Testnets
L3Local = 333333,`

const allChains = [...orbitChainsData.mainnet, ...orbitChainsData.testnet]

const orbitChainEntries = allChains.map(chain => {
const enumKey = toCamelCase(chain.name)
return ` ${enumKey} = ${chain.chainId},`
}).join('\n')

const newEnumContent = `export enum ChainId {
${defaultChains}
// Orbit Chains
${orbitChainEntries}
}`

const newContent = newEnumContent

fs.writeFileSync(chainIdTypesPath, newContent)

console.log('✅ ChainId enum updated with orbit chain IDs')
console.log(`Added ${allChains.length} orbit chains to the enum`)
}

if (require.main === module) {
generateChainIdsEnum()
}

export default generateChainIdsEnum
64 changes: 62 additions & 2 deletions packages/arb-token-bridge-ui/src/types/ChainId.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,65 @@ export enum ChainId {
ArbitrumLocal = 412346,
BaseSepolia = 84532,
// L3 Testnets
L3Local = 333333
}
L3Local = 333333,
// Orbit Chains
Xai = 660279,
RariMainnet = 1380012617,
Muster = 4078,
ProofOfPlayApex = 70700,
ProofOfPlayBoss = 70701,
Xchain = 94524,
Sanko = 1996,
Superposition = 55244,
MindNetwork = 228,
Sx = 4162,
Apechain = 33139,
GravityAlpha = 1625,
SpotlightMainnet = 10058111,
EduChain = 41923,
Cheesechain = 383353,
PlumeLegacy = 98865,
AlephZeroEvm = 41455,
ReAl = 111188,
UniteMainnet = 88899,
DataLakeMainnet = 140,
Chainbounty = 51828,
Conwai = 668668,
MiracleChain = 92278,
Birdlayer = 53456,
PlumeMainnet = 98866,
Hychain = 2911,
HumanityMainnet = 6985385,
GalacticaMainnet = 613419,
EarnmMainnet = 32766,
TRex = 1628,
Rcade = 101069,
Molten = 360,
Meerchain = 98215,
HppMainnet = 190415,
XaiTestnet = 37714555429,
DodochainTestnet = 53457,
RariTestnet = 1918988905,
XrSepolia = 2730,
SpotlightSepolia = 10058112,
SxToronto = 79479957,
XmtpSepolia = 241320161,
UniteTestnet = 888991,
PlumeDevnetLegacy = 98864,
StandardTestnet = 2426,
PivotalTestnet = 9116,
HumanityTestnet = 7080969,
XProtocolSepolia = 83868,
PlumeTestnet = 98867,
OpenlootSepolia = 905905,
AlterscopeSepolia = 2022091,
EarnmSepolia = 132766,
TRexTestnet = 1962,
WylerchainSepolia = 1712,
WorldmobileTestnet = 323432,
GalacticaCassiopeiaTestnet = 843843,
HppSepolia = 181228,
NexusDevnet = 393,
NexusTestnetIii = 3940,
JasmyChainTestnet = 681,
}
Loading