@funkit/chains
Version:
Funkit Chains SDK centralizes chain information across all funkit apps and packages.
490 lines (489 loc) • 13 kB
JavaScript
// 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