UNPKG

@funkit/chains

Version:

Funkit Chains SDK centralizes chain information across all funkit apps and packages.

490 lines (489 loc) 13 kB
// src/const/index.ts import { arbitrum, arbitrumSepolia, base, bsc, goerli, mainnet, mantle, optimism, polygon, scroll, zkSync } from "viem/chains"; var DYDX_MAINNET_CHAIN_ID = 1511490300; var dydxChain = { id: DYDX_MAINNET_CHAIN_ID, name: "dYdX", nativeCurrency: { symbol: "DYDX", decimals: 18, name: "dYdX Staking Coin" }, rpcUrls: { default: { http: ["https://dydx-dao-rpc.polkachu.com:443"] } }, blockExplorers: { default: { name: "Mintscan", url: "https://www.mintscan.io/dydx", apiUrl: "" } }, contracts: { ensRegistry: { address: "0x" }, ensUniversalResolver: { address: "0x", blockCreated: -1 }, multicall3: { address: "0x", blockCreated: -1 } } }; var KATANA_CHAIN_ID = 747474; var katanaChain = { id: KATANA_CHAIN_ID, name: "Katana", nativeCurrency: { symbol: "ETH", decimals: 18, name: "Ether" }, rpcUrls: { default: { // TODO: Switch to public RPC when live // http: ['https://rpc.katana.network'], http: [ "https://rpc-katana.t.conduit.xyz/PBqCYqXwSLYow7zoxeFJuLcfEHMxZjbuK" ] } }, blockExplorers: { default: { name: "Katana Explorer", url: "https://explorer.katanarpc.com", apiUrl: "" } }, contracts: { multicall3: { address: "0xcA11bde05977b3631167028862bE2a173976CA11", blockCreated: 1898013 } } }; var SOLANA_MAINNET_CHAIN_ID = 1151111081099710; var solanaChain = { id: SOLANA_MAINNET_CHAIN_ID, name: "Solana", nativeCurrency: { symbol: "SOL", decimals: 9, name: "Solana" }, rpcUrls: { default: { http: ["https://api.mainnet-beta.solana.com"] } }, blockExplorers: { default: { name: "Solscan", url: "https://solscan.io", apiUrl: "" } }, contracts: { ensRegistry: { address: "0x" }, ensUniversalResolver: { address: "0x", blockCreated: -1 }, multicall3: { address: "0x", blockCreated: -1 } } }; var FUNKIT_CONNECT_SUPPORTED_CHAINS_ID_LIST = [ /** MAINNETS **/ mainnet.id, base.id, polygon.id, arbitrum.id, optimism.id, bsc.id, zkSync.id, mantle.id, dydxChain.id, solanaChain.id, katanaChain.id, scroll.id, /** TESTNETS **/ goerli.id, arbitrumSepolia.id ]; var FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO = { /** MAINNETS **/ [mainnet.id]: { name: mainnet.name, nativeCurrency: { symbol: mainnet.nativeCurrency.symbol, decimals: mainnet.nativeCurrency.decimals, name: mainnet.nativeCurrency.name }, chainInfo: mainnet, explorerInfo: mainnet.blockExplorers.default, isCheckoutSupported: true, checkoutAssetWhitelist: ["*"], isFunWalletSupported: true, isMainnet: true, moonpayChainName: "", pickPriority: 4, isStandardEvmAddress: true, fallbackRpcUrls: ["https://eth.llamarpc.com", "https://eth.merkle.io"] }, [base.id]: { name: base.name, nativeCurrency: { symbol: base.nativeCurrency.symbol, decimals: base.nativeCurrency.decimals, name: base.nativeCurrency.name }, chainInfo: base, explorerInfo: base.blockExplorers.default, isCheckoutSupported: true, checkoutAssetWhitelist: ["*"], isFunWalletSupported: true, isMainnet: true, moonpayChainName: "base", pickPriority: 2, isStandardEvmAddress: true, fallbackRpcUrls: [ "https://base.llamarpc.com", "https://base-rpc.publicnode.com" ] }, [polygon.id]: { name: polygon.name, nativeCurrency: { symbol: polygon.nativeCurrency.symbol, decimals: polygon.nativeCurrency.decimals, name: polygon.nativeCurrency.name }, coreToken: { symbol: "MATIC", decimals: 18, name: "MATIC" }, chainInfo: polygon, explorerInfo: polygon.blockExplorers.default, isCheckoutSupported: true, checkoutAssetWhitelist: ["*"], isFunWalletSupported: true, isMainnet: true, moonpayChainName: "polygon", pickPriority: 1, isStandardEvmAddress: true, fallbackRpcUrls: [ "https://polygon.llamarpc.com", "https://api.zan.top/polygon-mainnet" ] }, [arbitrum.id]: { name: "Arbitrum", // arbitrum.name returns 'Arbitrum One' which is too wordy for us. nativeCurrency: { symbol: arbitrum.nativeCurrency.symbol, decimals: arbitrum.nativeCurrency.decimals, name: arbitrum.nativeCurrency.name }, coreToken: { symbol: "ARB", decimals: 18, name: "Arbitrium" }, chainInfo: arbitrum, explorerInfo: arbitrum.blockExplorers.default, isCheckoutSupported: true, checkoutAssetWhitelist: ["*"], isFunWalletSupported: true, isMainnet: true, moonpayChainName: "arbitrum", pickPriority: 3, isStandardEvmAddress: true, fallbackRpcUrls: ["https://arbitrum.llamarpc.com"] }, [optimism.id]: { name: optimism.name, nativeCurrency: { symbol: optimism.nativeCurrency.symbol, decimals: optimism.nativeCurrency.decimals, name: optimism.nativeCurrency.name }, coreToken: { symbol: "OP", decimals: 18, name: "Optimism" }, chainInfo: optimism, explorerInfo: optimism.blockExplorers.default, isCheckoutSupported: true, checkoutAssetWhitelist: [], isFunWalletSupported: true, isMainnet: true, moonpayChainName: "optimism", pickPriority: Number.MAX_SAFE_INTEGER, isStandardEvmAddress: true, fallbackRpcUrls: [ "https://optimism.llamarpc.com", "https://optimism.gateway.tenderly.co" ] }, [bsc.id]: { name: bsc.name, nativeCurrency: { symbol: bsc.nativeCurrency.symbol, decimals: bsc.nativeCurrency.decimals, name: bsc.nativeCurrency.name }, chainInfo: bsc, explorerInfo: bsc.blockExplorers.default, isCheckoutSupported: true, checkoutAssetWhitelist: [], isFunWalletSupported: false, isMainnet: true, moonpayChainName: "bsc", pickPriority: Number.MAX_SAFE_INTEGER, isStandardEvmAddress: true, fallbackRpcUrls: [ "https://binance.llamarpc.com", "https://bsc.blockrazor.xyz" ] }, [zkSync.id]: { name: "zkSync", nativeCurrency: { symbol: zkSync.nativeCurrency.symbol, decimals: zkSync.nativeCurrency.decimals, name: zkSync.nativeCurrency.name }, coreToken: { symbol: "ZK", decimals: 18, name: "zkSync" }, chainInfo: zkSync, explorerInfo: zkSync.blockExplorers.default, isCheckoutSupported: false, checkoutAssetWhitelist: ["*"], isFunWalletSupported: false, isMainnet: true, moonpayChainName: "base", // default to base for zksync era on moonpay pickPriority: 5, isStandardEvmAddress: true, fallbackRpcUrls: [ "https://1rpc.io/zksync2-era", "https://zksync.meowrpc.com" ] }, [mantle.id]: { name: mantle.name, nativeCurrency: { symbol: mantle.nativeCurrency.symbol, decimals: mantle.nativeCurrency.decimals, name: mantle.nativeCurrency.name }, coreToken: { symbol: "MNT", decimals: 18, name: "Mantle" }, chainInfo: mantle, explorerInfo: mantle.blockExplorers.default, isCheckoutSupported: false, checkoutAssetWhitelist: [ // USDC.e "0x09Bc4E0D864854c6aFB6eB9A9cdF58aC190D0dF9".toLowerCase(), // USDe "0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34".toLowerCase() ], isFunWalletSupported: true, isMainnet: true, moonpayChainName: "base", // default to base for mantle on moonpay pickPriority: 6, isStandardEvmAddress: false, fallbackRpcUrls: [ "https://mantle.drpc.org", "https://mantle-rpc.publicnode.com" ] }, [dydxChain.id]: { name: dydxChain.name, nativeCurrency: { symbol: dydxChain.nativeCurrency.symbol, decimals: dydxChain.nativeCurrency.decimals, name: dydxChain.nativeCurrency.name }, chainInfo: dydxChain, explorerInfo: dydxChain.blockExplorers.default, // We cannot pay with dYdX / cosmos tokens yet isCheckoutSupported: false, checkoutAssetWhitelist: [ // USDC "0x8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5".toLowerCase() ], isFunWalletSupported: false, isMainnet: true, moonpayChainName: "base", // default to base for dydx on moonpay pickPriority: Number.MAX_SAFE_INTEGER, isStandardEvmAddress: false, fallbackRpcUrls: [] }, [solanaChain.id]: { name: solanaChain.name, nativeCurrency: { symbol: solanaChain.nativeCurrency.symbol, decimals: solanaChain.nativeCurrency.decimals, name: solanaChain.nativeCurrency.name }, chainInfo: solanaChain, explorerInfo: solanaChain.blockExplorers.default, // Solana payment not enabled for regular checkout isCheckoutSupported: false, checkoutAssetWhitelist: [], isFunWalletSupported: false, isMainnet: true, // TODO: This is undecided moonpayChainName: "base", // default to base for Solana on moonpay pickPriority: Number.MAX_SAFE_INTEGER, isStandardEvmAddress: false, fallbackRpcUrls: [] }, [scroll.id]: { name: scroll.name, nativeCurrency: { symbol: scroll.nativeCurrency.symbol, decimals: scroll.nativeCurrency.decimals, name: scroll.nativeCurrency.name }, chainInfo: scroll, explorerInfo: scroll.blockExplorers.default, isCheckoutSupported: false, checkoutAssetWhitelist: [ // USDC "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4".toLowerCase(), // USDT "0xf55bec9cafdbe8730f096aa55dad6d22d44099df".toLowerCase() ], isFunWalletSupported: true, isMainnet: true, moonpayChainName: "base", // default to base for scroll on moonpay pickPriority: 7, isStandardEvmAddress: false, fallbackRpcUrls: [ "https://scroll-rpc.publicnode.com", "https://scroll-mainnet.public.blastapi.io" ] }, /** TESTNETS **/ [goerli.id]: { name: goerli.name, nativeCurrency: { symbol: goerli.nativeCurrency.symbol, decimals: goerli.nativeCurrency.decimals, name: goerli.nativeCurrency.name }, chainInfo: goerli, explorerInfo: goerli.blockExplorers.default, isCheckoutSupported: true, checkoutAssetWhitelist: ["*"], isFunWalletSupported: true, // testnet has no fiat checkouts supported isMainnet: false, moonpayChainName: null, pickPriority: Number.MAX_SAFE_INTEGER, isStandardEvmAddress: true, fallbackRpcUrls: [] }, [arbitrumSepolia.id]: { name: arbitrumSepolia.name, nativeCurrency: { symbol: arbitrumSepolia.nativeCurrency.symbol, decimals: arbitrumSepolia.nativeCurrency.decimals, name: arbitrumSepolia.nativeCurrency.name }, chainInfo: arbitrumSepolia, explorerInfo: { name: "Arbiscan", url: "https://sepolia.arbiscan.io" }, isCheckoutSupported: true, checkoutAssetWhitelist: ["*"], isFunWalletSupported: true, // testnet has no fiat checkouts supported isMainnet: false, moonpayChainName: null, pickPriority: Number.MAX_SAFE_INTEGER, isStandardEvmAddress: false, fallbackRpcUrls: [] }, [katanaChain.id]: { name: "Katana", nativeCurrency: { symbol: katanaChain.nativeCurrency.symbol, decimals: katanaChain.nativeCurrency.decimals, name: katanaChain.nativeCurrency.name }, chainInfo: katanaChain, explorerInfo: katanaChain.blockExplorers.default, // Katana assets are supported as a target asset for relay checkouts isCheckoutSupported: true, checkoutAssetWhitelist: ["*"], isFunWalletSupported: false, isMainnet: true, moonpayChainName: "polygon", // default to polygon for Katana on moonpay pickPriority: Number.MAX_SAFE_INTEGER, isStandardEvmAddress: false, fallbackRpcUrls: [] } }; var FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO_LIST = Object.values( FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO ).map((item) => item?.chainInfo); var FUNKIT_CONNECT_SUPPORTED_CHECKOUT_CHAINS_INFO_LIST = FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO_LIST.filter( (chainInfo) => { const chainId = chainInfo?.id; return !!(chainId && FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO[chainId]?.isCheckoutSupported && FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO[chainId]?.isMainnet); } ); var FUNKIT_CONNECT_CHECKOUT_NATIVE_CURRENCY_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"; export { DYDX_MAINNET_CHAIN_ID, FUNKIT_CONNECT_CHECKOUT_NATIVE_CURRENCY_ADDRESS, FUNKIT_CONNECT_SUPPORTED_CHAINS_ID_LIST, FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO, FUNKIT_CONNECT_SUPPORTED_CHAINS_INFO_LIST, FUNKIT_CONNECT_SUPPORTED_CHECKOUT_CHAINS_INFO_LIST, KATANA_CHAIN_ID, SOLANA_MAINNET_CHAIN_ID, dydxChain, katanaChain, solanaChain }; //# sourceMappingURL=index.js.map