You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.7 KiB
109 lines
2.7 KiB
// NOTE: this file defines some examples of CAIP-2 and CAIP-10 identifiers.
|
|
// The following listing does not pretend to be exhaustive or even accurate. It SHOULD NOT be used in production.
|
|
|
|
const { ethers } = require('hardhat');
|
|
const { mapValues } = require('./iterate');
|
|
|
|
// EVM (https://axelarscan.io/resources/chains?type=evm)
|
|
const ethereum = {
|
|
Ethereum: '1',
|
|
optimism: '10',
|
|
binance: '56',
|
|
Polygon: '137',
|
|
Fantom: '250',
|
|
fraxtal: '252',
|
|
filecoin: '314',
|
|
Moonbeam: '1284',
|
|
centrifuge: '2031',
|
|
kava: '2222',
|
|
mantle: '5000',
|
|
base: '8453',
|
|
immutable: '13371',
|
|
arbitrum: '42161',
|
|
celo: '42220',
|
|
Avalanche: '43114',
|
|
linea: '59144',
|
|
blast: '81457',
|
|
scroll: '534352',
|
|
aurora: '1313161554',
|
|
};
|
|
|
|
// Cosmos (https://axelarscan.io/resources/chains?type=cosmos)
|
|
const cosmos = {
|
|
Axelarnet: 'axelar-dojo-1',
|
|
osmosis: 'osmosis-1',
|
|
cosmoshub: 'cosmoshub-4',
|
|
juno: 'juno-1',
|
|
'e-money': 'emoney-3',
|
|
injective: 'injective-1',
|
|
crescent: 'crescent-1',
|
|
kujira: 'kaiyo-1',
|
|
'secret-snip': 'secret-4',
|
|
secret: 'secret-4',
|
|
sei: 'pacific-1',
|
|
stargaze: 'stargaze-1',
|
|
assetmantle: 'mantle-1',
|
|
fetch: 'fetchhub-4',
|
|
ki: 'kichain-2',
|
|
evmos: 'evmos_9001-2',
|
|
aura: 'xstaxy-1',
|
|
comdex: 'comdex-1',
|
|
persistence: 'core-1',
|
|
regen: 'regen-1',
|
|
umee: 'umee-1',
|
|
agoric: 'agoric-3',
|
|
xpla: 'dimension_37-1',
|
|
acre: 'acre_9052-1',
|
|
stride: 'stride-1',
|
|
carbon: 'carbon-1',
|
|
sommelier: 'sommelier-3',
|
|
neutron: 'neutron-1',
|
|
rebus: 'reb_1111-1',
|
|
archway: 'archway-1',
|
|
provenance: 'pio-mainnet-1',
|
|
ixo: 'ixo-5',
|
|
migaloo: 'migaloo-1',
|
|
teritori: 'teritori-1',
|
|
haqq: 'haqq_11235-1',
|
|
celestia: 'celestia',
|
|
ojo: 'agamotto',
|
|
chihuahua: 'chihuahua-1',
|
|
saga: 'ssc-1',
|
|
dymension: 'dymension_1100-1',
|
|
fxcore: 'fxcore',
|
|
c4e: 'perun-1',
|
|
bitsong: 'bitsong-2b',
|
|
nolus: 'pirin-1',
|
|
lava: 'lava-mainnet-1',
|
|
'terra-2': 'phoenix-1',
|
|
terra: 'columbus-5',
|
|
};
|
|
|
|
const makeCAIP = ({ namespace, reference, account }) => ({
|
|
namespace,
|
|
reference,
|
|
account,
|
|
caip2: `${namespace}:${reference}`,
|
|
caip10: `${namespace}:${reference}:${account}`,
|
|
toCaip10: other => `${namespace}:${reference}:${ethers.getAddress(other.target ?? other.address ?? other)}`,
|
|
});
|
|
|
|
module.exports = {
|
|
CHAINS: mapValues(
|
|
Object.assign(
|
|
mapValues(ethereum, reference => ({
|
|
namespace: 'eip155',
|
|
reference,
|
|
account: ethers.Wallet.createRandom().address,
|
|
})),
|
|
mapValues(cosmos, reference => ({
|
|
namespace: 'cosmos',
|
|
reference,
|
|
account: ethers.encodeBase58(ethers.randomBytes(32)),
|
|
})),
|
|
),
|
|
makeCAIP,
|
|
),
|
|
getLocalCAIP: account =>
|
|
ethers.provider.getNetwork().then(({ chainId }) => makeCAIP({ namespace: 'eip155', reference: chainId, account })),
|
|
};
|
|
|