UNPKG

@reservoir0x/relay-sdk

Version:

Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.

91 lines 3.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertViemChainToRelayChain = exports.configureViemChain = void 0; const viem_1 = require("viem"); const viemChains = require("viem/chains"); const servers_js_1 = require("../constants/servers.js"); const viemChainMap = Object.values(viemChains).reduce((chains, chain) => { chains[chain.id] = chain; return chains; }, {}); const configureViemChain = (chain) => { let viemChain; const overriddenChains = [999]; const staticChain = overriddenChains.includes(chain.id) ? undefined : viemChainMap[chain.id]; if (staticChain) { viemChain = staticChain; } else { viemChain = { id: chain.id, name: chain.displayName, nativeCurrency: { name: chain.currency.name ?? 'Ethereum', decimals: chain.currency.decimals ?? 18, symbol: chain.currency.symbol ?? 'ETH' }, rpcUrls: { default: { http: [chain.httpRpcUrl], webSocket: [chain.wsRpcUrl] }, public: { http: [chain.httpRpcUrl], webSocket: [chain.wsRpcUrl] } }, blockExplorers: { etherscan: { name: chain.explorerName, url: chain.explorerUrl }, default: { name: chain.explorerName, url: chain.explorerUrl } } }; } return { ...chain, viemChain, icon: { dark: `${servers_js_1.ASSETS_RELAY_API}/icons/${chain.id}/dark.png`, light: chain.iconUrl ?? `${servers_js_1.ASSETS_RELAY_API}/icons/${chain.id}/light.png`, squaredDark: `${servers_js_1.ASSETS_RELAY_API}/icons/square/${chain.id}/dark.png`, squaredLight: `${servers_js_1.ASSETS_RELAY_API}/icons/square/${chain.id}/light.png` } }; }; exports.configureViemChain = configureViemChain; const convertViemChainToRelayChain = (chain) => { return { id: chain.id, name: chain.name.replace(' ', '-'), displayName: chain.name, httpRpcUrl: chain.rpcUrls.default && chain.rpcUrls.default && chain.rpcUrls.default ? chain.rpcUrls.default.http[0] ?? '' : '', wsRpcUrl: chain.rpcUrls && chain.rpcUrls.default.webSocket ? chain.rpcUrls.default.webSocket[0] ?? '' : '', icon: { dark: `${servers_js_1.ASSETS_RELAY_API}/icons/${chain.id}/dark.png`, light: `${servers_js_1.ASSETS_RELAY_API}/icons/${chain.id}/light.png`, squaredDark: `${servers_js_1.ASSETS_RELAY_API}/icons/square/${chain.id}/dark.png`, squaredLight: `${servers_js_1.ASSETS_RELAY_API}/icons/square/${chain.id}/light.png` }, currency: { address: viem_1.zeroAddress, ...chain.nativeCurrency }, explorerUrl: chain.blockExplorers?.default.url ?? '', vmType: 'evm', depositEnabled: true, viemChain: chain }; }; exports.convertViemChainToRelayChain = convertViemChainToRelayChain; //# sourceMappingURL=chain.js.map