@reservoir0x/relay-sdk
Version:
Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.
91 lines • 3.36 kB
JavaScript
;
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