Skip to content
Open
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
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,10 @@ coverage/
*.tgz
.cache/

# Documentation files
CONTRIBUTION_JUSTIFICATION.md
CONTRIBUTION_OPPORTUNITIES.md
MAINTAINER_ANALYSIS.md
PERSISTENT_NONCE_TRACKING.md

.github/workflows/integration-tests.yml
72 changes: 72 additions & 0 deletions apps/dashboard/src/components/network-card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,38 @@ export const SUPPORTED_NETWORKS: NetworkConfig[] = [
chainId: 196,
testnet: false,
},
{
v1Id: 'arbitrum',
v2Id: 'eip155:42161',
name: 'Arbitrum',
type: 'evm',
chainId: 42161,
testnet: false,
},
{
v1Id: 'optimism',
v2Id: 'eip155:10',
name: 'Optimism',
type: 'evm',
chainId: 10,
testnet: false,
},
{
v1Id: 'bnb',
v2Id: 'eip155:56',
name: 'BNB Chain',
type: 'evm',
chainId: 56,
testnet: false,
},
{
v1Id: 'linea',
v2Id: 'eip155:59144',
name: 'Linea',
type: 'evm',
chainId: 59144,
testnet: false,
},

// ============ EVM Testnets ============
{
Expand Down Expand Up @@ -134,6 +166,38 @@ export const SUPPORTED_NETWORKS: NetworkConfig[] = [
chainId: 195,
testnet: true,
},
{
v1Id: 'arbitrum-sepolia',
v2Id: 'eip155:421614',
name: 'Arbitrum Sepolia',
type: 'evm',
chainId: 421614,
testnet: true,
},
{
v1Id: 'optimism-sepolia',
v2Id: 'eip155:11155420',
name: 'Optimism Sepolia',
type: 'evm',
chainId: 11155420,
testnet: true,
},
{
v1Id: 'bnb-testnet',
v2Id: 'eip155:97',
name: 'BNB Chain Testnet',
type: 'evm',
chainId: 97,
testnet: true,
},
{
v1Id: 'linea-goerli',
v2Id: 'eip155:59140',
name: 'Linea Goerli',
type: 'evm',
chainId: 59140,
testnet: true,
},

// ============ Solana ============
{
Expand Down Expand Up @@ -168,12 +232,20 @@ const EXPLORER_URLS: Record<string, string> = {
iotex: 'https://iotexscan.io',
peaq: 'https://peaq.subscan.io',
xlayer: 'https://www.okx.com/explorer/xlayer',
arbitrum: 'https://arbiscan.io',
optimism: 'https://optimistic.etherscan.io',
bnb: 'https://bscscan.com',
linea: 'https://lineascan.build',
// EVM Testnets
'base-sepolia': 'https://sepolia.basescan.org',
'polygon-amoy': 'https://amoy.polygonscan.com',
'avalanche-fuji': 'https://testnet.snowtrace.io',
'sei-testnet': 'https://testnet.seitrace.com',
'xlayer-testnet': 'https://www.okx.com/explorer/xlayer-test',
'arbitrum-sepolia': 'https://sepolia.arbiscan.io',
'optimism-sepolia': 'https://sepolia-optimism.etherscan.io',
'bnb-testnet': 'https://testnet.bscscan.com',
'linea-goerli': 'https://goerli.lineascan.build',
// Solana
solana: 'https://solscan.io',
'solana-devnet': 'https://solscan.io',
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
"dev": "turbo dev",
"lint": "turbo lint",
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
"clean": "turbo clean && rm -rf node_modules"
"clean": "turbo clean && rm -rf node_modules",
"of:doctor": "pnpm -C packages/server run of:doctor"
},
"packageManager": "pnpm@9.14.2",
"engines": {
Expand Down
112 changes: 112 additions & 0 deletions packages/core/src/chains.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,42 @@ export const defaultChains: Record<string, ChainConfig> = {
blockExplorerUrl: 'https://www.okx.com/explorer/xlayer',
isEVM: true,
},
// Arbitrum One Mainnet
'42161': {
chainId: 42161,
name: 'Arbitrum One',
network: 'arbitrum',
rpcUrl: process.env.ARBITRUM_RPC_URL || 'https://arb1.arbitrum.io/rpc',
blockExplorerUrl: 'https://arbiscan.io',
isEVM: true,
},
// Optimism Mainnet
'10': {
chainId: 10,
name: 'Optimism',
network: 'optimism',
rpcUrl: process.env.OPTIMISM_RPC_URL || 'https://mainnet.optimism.io',
blockExplorerUrl: 'https://optimistic.etherscan.io',
isEVM: true,
},
// BNB Chain Mainnet
'56': {
chainId: 56,
name: 'BNB Chain',
network: 'bnb',
rpcUrl: process.env.BNB_RPC_URL || 'https://bsc-dataseed1.binance.org',
blockExplorerUrl: 'https://bscscan.com',
isEVM: true,
},
// Linea Mainnet
'59144': {
chainId: 59144,
name: 'Linea',
network: 'linea',
rpcUrl: process.env.LINEA_RPC_URL || 'https://rpc.linea.build',
blockExplorerUrl: 'https://lineascan.build',
isEVM: true,
},
// Solana Mainnet
solana: {
chainId: 'solana',
Expand Down Expand Up @@ -145,6 +181,42 @@ export const defaultChains: Record<string, ChainConfig> = {
blockExplorerUrl: 'https://www.okx.com/explorer/xlayer-test',
isEVM: true,
},
// Arbitrum Sepolia Testnet
'421614': {
chainId: 421614,
name: 'Arbitrum Sepolia',
network: 'arbitrum-sepolia',
rpcUrl: process.env.ARBITRUM_SEPOLIA_RPC_URL || 'https://sepolia-rollup.arbitrum.io/rpc',
blockExplorerUrl: 'https://sepolia.arbiscan.io',
isEVM: true,
},
// Optimism Sepolia Testnet
'11155420': {
chainId: 11155420,
name: 'Optimism Sepolia',
network: 'optimism-sepolia',
rpcUrl: process.env.OPTIMISM_SEPOLIA_RPC_URL || 'https://sepolia.optimism.io',
blockExplorerUrl: 'https://sepolia-optimism.etherscan.io',
isEVM: true,
},
// BNB Chain Testnet
'97': {
chainId: 97,
name: 'BNB Chain Testnet',
network: 'bnb-testnet',
rpcUrl: process.env.BNB_TESTNET_RPC_URL || 'https://data-seed-prebsc-1-s1.binance.org:8545',
blockExplorerUrl: 'https://testnet.bscscan.com',
isEVM: true,
},
// Linea Goerli Testnet
'59140': {
chainId: 59140,
name: 'Linea Goerli',
network: 'linea-goerli',
rpcUrl: process.env.LINEA_GOERLI_RPC_URL || 'https://rpc.goerli.linea.build',
blockExplorerUrl: 'https://goerli.lineascan.build',
isEVM: true,
},
// Solana Devnet
'solana-devnet': {
chainId: 'solana-devnet',
Expand Down Expand Up @@ -191,6 +263,10 @@ export const networkToChainId: Record<string, number | string> = {
polygon: 137,
sei: 1329,
xlayer: 196,
arbitrum: 42161,
optimism: 10,
bnb: 56,
linea: 59144,
solana: 'solana',
'solana-mainnet': 'solana', // Alias for compatibility
// Testnets
Expand All @@ -200,6 +276,10 @@ export const networkToChainId: Record<string, number | string> = {
'sei-testnet': 1328,
sepolia: 11155111,
'xlayer-testnet': 195,
'arbitrum-sepolia': 421614,
'optimism-sepolia': 11155420,
'bnb-testnet': 97,
'linea-goerli': 59140,
'solana-devnet': 'solana-devnet',
};

Expand All @@ -216,6 +296,10 @@ export const chainIdToNetwork: Record<string | number, string> = {
137: 'polygon',
1329: 'sei',
196: 'xlayer',
42161: 'arbitrum',
10: 'optimism',
56: 'bnb',
59144: 'linea',
solana: 'solana',
'solana-mainnet': 'solana', // Alias
// Testnets
Expand All @@ -225,6 +309,10 @@ export const chainIdToNetwork: Record<string | number, string> = {
1328: 'sei-testnet',
11155111: 'sepolia',
195: 'xlayer-testnet',
421614: 'arbitrum-sepolia',
11155420: 'optimism-sepolia',
97: 'bnb-testnet',
59140: 'linea-goerli',
'solana-devnet': 'solana-devnet',
};

Expand Down Expand Up @@ -279,6 +367,10 @@ export const productionChains = [
137, // Polygon
1329, // Sei
196, // XLayer
42161, // Arbitrum
10, // Optimism
56, // BNB Chain
59144, // Linea
'solana',
] as const;

Expand All @@ -292,6 +384,10 @@ export const testChains = [
1328, // Sei Testnet
11155111, // Sepolia
195, // XLayer Testnet
421614, // Arbitrum Sepolia
11155420, // Optimism Sepolia
97, // BNB Chain Testnet
59140, // Linea Goerli
'solana-devnet',
] as const;

Expand Down Expand Up @@ -320,6 +416,10 @@ export const networkToCaip2: Record<string, string> = {
polygon: 'eip155:137',
sei: 'eip155:1329',
xlayer: 'eip155:196',
arbitrum: 'eip155:42161',
optimism: 'eip155:10',
bnb: 'eip155:56',
linea: 'eip155:59144',
// Solana
solana: `solana:${solanaGenesisHashes.mainnet}`,
// EVM Testnets
Expand All @@ -329,6 +429,10 @@ export const networkToCaip2: Record<string, string> = {
'sei-testnet': 'eip155:1328',
sepolia: 'eip155:11155111',
'xlayer-testnet': 'eip155:195',
'arbitrum-sepolia': 'eip155:421614',
'optimism-sepolia': 'eip155:11155420',
'bnb-testnet': 'eip155:97',
'linea-goerli': 'eip155:59140',
'solana-devnet': `solana:${solanaGenesisHashes.devnet}`,
};

Expand All @@ -345,6 +449,10 @@ export const caip2ToNetwork: Record<string, string> = {
'eip155:137': 'polygon',
'eip155:1329': 'sei',
'eip155:196': 'xlayer',
'eip155:42161': 'arbitrum',
'eip155:10': 'optimism',
'eip155:56': 'bnb',
'eip155:59144': 'linea',
// Solana
[`solana:${solanaGenesisHashes.mainnet}`]: 'solana',
// EVM Testnets
Expand All @@ -354,6 +462,10 @@ export const caip2ToNetwork: Record<string, string> = {
'eip155:1328': 'sei-testnet',
'eip155:11155111': 'sepolia',
'eip155:195': 'xlayer-testnet',
'eip155:421614': 'arbitrum-sepolia',
'eip155:11155420': 'optimism-sepolia',
'eip155:97': 'bnb-testnet',
'eip155:59140': 'linea-goerli',
[`solana:${solanaGenesisHashes.devnet}`]: 'solana-devnet',
};

Expand Down
Loading