@snowballmoney/chain-agnostic-utils
Version:
Chain agnostic utilities for cross-chain applications
291 lines • 9.14 kB
TypeScript
import { CAIP2, NetworkMetadata } from "./types";
export interface CAIP2ManagerOptions {
networks?: Record<string, NetworkMetadata>;
defaultNetworks?: boolean;
}
export declare class CAIP2Manager {
private static instance;
private networks;
private initialized;
private constructor();
static getInstance(): CAIP2Manager;
/**
* Initialize the manager with options
* This should be called before using the manager
*/
init(options?: CAIP2ManagerOptions): void;
/**
* Get built-in networks object
*/
static get NETWORKS(): {
readonly ETHEREUM: {
readonly MAINNET: "eip155:1";
readonly GOERLI: "eip155:5";
readonly SEPOLIA: "eip155:11155111";
};
readonly BSC: {
readonly MAINNET: "eip155:56";
readonly TESTNET: "eip155:97";
};
readonly POLYGON: {
readonly MAINNET: "eip155:137";
readonly MUMBAI: "eip155:80001";
readonly AMOY: "eip155:80002";
};
readonly ARBITRUM: {
readonly MAINNET: "eip155:42161";
readonly GOERLI: "eip155:421613";
};
readonly OPTIMISM: {
readonly MAINNET: "eip155:10";
readonly GOERLI: "eip155:420";
};
readonly AVALANCHE: {
readonly MAINNET: "eip155:43114";
readonly TESTNET: "eip155:43113";
};
readonly GNOSIS: {
readonly MAINNET: "eip155:100";
};
readonly FANTOM: {
readonly MAINNET: "eip155:250";
readonly TESTNET: "eip155:4002";
};
readonly CELO: {
readonly MAINNET: "eip155:42220";
};
readonly MOONRIVER: {
readonly MAINNET: "eip155:1285";
};
readonly CRONOS: {
readonly MAINNET: "eip155:25";
};
readonly KLAYTN: {
readonly MAINNET: "eip155:8217";
};
readonly BASE: {
readonly MAINNET: "eip155:8453";
readonly GOERLI: "eip155:84531";
};
readonly LINEA: {
readonly MAINNET: "eip155:59144";
};
readonly METIS: {
readonly MAINNET: "eip155:1088";
};
readonly AURORA: {
readonly MAINNET: "eip155:1313161554";
};
readonly BITCOIN: {
readonly MAINNET: "bip122:000000000019d6689c085ae165831e93";
readonly TESTNET: "bip122:000000000933ea01ad0ee984209779ba";
};
readonly LITECOIN: {
readonly MAINNET: "bip122:12a765e31ffd4059bada1e25190f6e98";
};
readonly DOGECOIN: {
readonly MAINNET: "bip122:1a91e3dace36e2be3bf030a65679fe82";
};
readonly FEATHERCOIN: {
readonly MAINNET: "bip122:fdbe99b90c90bae7505796461471d89a";
};
readonly COSMOS: {
readonly MAINNET: "cosmos:cosmoshub-4";
readonly TESTNET: "cosmos:theta-testnet-001";
readonly COSMOSHUB2: "cosmos:cosmoshub-2";
readonly COSMOSHUB3: "cosmos:cosmoshub-3";
};
readonly OSMOSIS: {
readonly MAINNET: "cosmos:osmosis-1";
};
readonly EVMOS: {
readonly MAINNET: "cosmos:evmos_9001-2";
};
readonly STARGAZE: {
readonly MAINNET: "cosmos:stargaze-1";
};
readonly POLKADOT: {
readonly MAINNET: "polkadot:91b171bb158e2d3848fa23a9f1c25182";
};
readonly KUSAMA: {
readonly MAINNET: "kusama:b0a8d493285c2df73290dfb7e61f870f";
};
readonly ASTAR: {
readonly MAINNET: "polkadot:astar";
};
readonly MOVEMENT: {
readonly MAINNET: "move-mvmt:126";
readonly PORTO: "move-mvmt:177";
readonly BARDOCK: "move-mvmt:250";
};
readonly APTOS: {
readonly MAINNET: "move-aptos:1";
readonly TESTNET: "move-aptos:2";
readonly DEVNET: "move-aptos:165";
};
readonly SUI: {
readonly MAINNET: "move-sui:mainnet";
readonly TESTNET: "move-sui:testnet";
readonly DEVNET: "move-sui:devnet";
};
readonly SOLANA: {
readonly MAINNET: "solana:mainnet-beta";
readonly DEVNET: "solana:devnet";
readonly TESTNET: "solana:testnet";
};
readonly CARDANO: {
readonly MAINNET: "cardano:mainnet";
readonly TESTNET: "cardano:testnet";
};
readonly NEAR: {
readonly MAINNET: "near:mainnet";
readonly TESTNET: "near:testnet";
};
readonly ALGORAND: {
readonly MAINNET: "algo:mainnet-v1.0";
readonly TESTNET: "algo:testnet-v1.0";
};
readonly RIPPLE: {
readonly MAINNET: "xrp:mainnet";
};
readonly STELLAR: {
readonly MAINNET: "stellar:public";
readonly TESTNET: "stellar:testnet";
};
readonly TRON: {
readonly MAINNET: "tron:mainnet";
readonly TESTNET: "tron:testnet";
};
readonly HEDERA: {
readonly MAINNET: "hedera:mainnet";
readonly TESTNET: "hedera:testnet";
};
readonly FLOW: {
readonly MAINNET: "flow:mainnet";
readonly TESTNET: "flow:testnet";
};
readonly TEZOS: {
readonly MAINNET: "tezos:mainnet";
readonly TESTNET: "tezos:testnet";
};
readonly ELROND: {
readonly MAINNET: "egld:1";
};
readonly ZILLIQA: {
readonly MAINNET: "zil:1";
};
readonly VECHAIN: {
readonly MAINNET: "vechain:main";
};
readonly THETA: {
readonly MAINNET: "theta:mainnet";
};
readonly HARMONY: {
readonly MAINNET: "harmony:0";
};
readonly STARKNET: {
readonly MAINNET: "starknet:SN_MAIN";
readonly TESTNET: "starknet:SN_GOERLI";
};
readonly ZKSYNC: {
readonly ERA: "zksync:era-mainnet";
readonly TESTNET: "zksync:era-testnet";
};
readonly LISK: {
readonly MAINNET: "lip9:9ee11e9df416b18b";
};
};
/**
* Get built-in namespaces
*/
static get NAMESPACES(): {
readonly LISK: "lip9";
readonly EVM: "eip155";
readonly BITCOIN: "bip122";
readonly COSMOS: "cosmos";
readonly POLKADOT: "polkadot";
readonly KUSAMA: "kusama";
readonly CARDANO: "cardano";
readonly SOLANA: "solana";
readonly RIPPLE: "xrp";
readonly NEAR: "near";
readonly STELLAR: "stellar";
readonly HEDERA: "hedera";
readonly TEZOS: "tezos";
readonly ALGORAND: "algo";
readonly TRON: "tron";
readonly MOVEMENT: "move-mvmt";
readonly APTOS: "move-aptos";
readonly SUI: "move-sui";
readonly STARKNET: "starknet";
readonly FLOW: "flow";
readonly IOTA: "iota";
readonly ERGO: "ergo";
readonly AION: "aion";
readonly ONTOLOGY: "ontology";
readonly NEO: "neo";
readonly VECHAIN: "vechain";
readonly THETA: "theta";
readonly ZILLIQA: "zil";
readonly ELROND: "egld";
readonly WAVES: "waves";
readonly ICON: "icon";
readonly HARMONY: "harmony";
readonly THORCHAIN: "thor";
readonly KLAYTN: "klaytn";
readonly CONFLUX: "cfx";
readonly CELO: "celo";
readonly NERVOS: "nervos";
readonly KADENA: "kadena";
readonly TON: "ton";
readonly TELOS: "telos";
readonly WAX: "wax";
readonly FIRO: "firo";
readonly XDC: "xdc";
readonly ARBITRUM: "arbitrum";
readonly OPTIMISM: "optimism";
readonly METIS: "metis";
readonly ZKSYNC: "zksync";
readonly LINEA: "linea";
readonly BASE: "base";
readonly RONIN: "ronin";
};
/**
* Parse CAIP2 identifier into namespace and reference
*/
parse(chainId: string): CAIP2;
/**
* Format namespace and reference into CAIP2 identifier
*/
format(namespace: string, reference: string): string;
/**
* Validate CAIP2 identifier
*/
isValid(chainId: string): boolean;
/**
* Get network metadata
*/
getNetwork(caip2Id: string): NetworkMetadata;
/**
* Add or update network
*/
addNetwork(caip2Id: string, metadata: NetworkMetadata, merge?: boolean): void;
/**
* Remove custom network
*/
removeNetwork(caip2Id: string): boolean;
/**
* Get all registered networks
*/
getAllNetworks(): Map<string, NetworkMetadata>;
/**
* Check if network exists
*/
hasNetwork(caip2Id: string): boolean;
/**
* Reset to initial state
*/
reset(): void;
private checkInitialized;
}
//# sourceMappingURL=CAIP2Manager.d.ts.map