@pooltogether/evm-chains-extended
Version:
Package to get chain data from ethereum-lists/chains with extra data such as blockExplorerUrls
53 lines • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const evm_chains_1 = require("evm-chains");
const chainsExtraData_1 = require("./chainsExtraData");
const additionalChains_1 = require("./additionalChains");
const extendChainDataArray = (chainsData, chainsExtraData) => {
return chainsData.map((chainData) => {
const extraData = chainsExtraData.find((existingArrayItem) => existingArrayItem.chainId === chainData.chainId);
if (extraData) {
const combinedRpcUrls = extraData.rpc ? [...extraData.rpc, ...chainData.rpc] : chainData.rpc;
return Object.assign(Object.assign({}, chainData), { blockExplorerUrls: extraData.blockExplorerUrls, rpc: combinedRpcUrls });
}
else {
return Object.assign(Object.assign({}, chainData), { blockExplorerUrls: [] });
}
});
};
function getAllChains() {
return extendChainDataArray(evm_chains_1.getAllChains().concat(additionalChains_1.additionalChains), chainsExtraData_1.chainsExtraData);
}
exports.getAllChains = getAllChains;
function getChain(chainId) {
let chain;
try {
const chains = getAllChains();
chain = chains.find((x) => x.chainId === chainId);
}
catch (e) {
console.warn(e);
}
return chain;
}
exports.getChain = getChain;
function getChainByChainId(chainId) {
return getChain(chainId);
}
exports.getChainByChainId = getChainByChainId;
function getNetworkForEip3085(chainId) {
return formatNetworkForAddEthereumChain(getChain(chainId));
}
exports.getNetworkForEip3085 = getNetworkForEip3085;
function formatNetworkForAddEthereumChain(network) {
let formattedNetwork = {
chainId: `0x${network.chainId.toString(16)}`,
chainName: network.name,
nativeCurrency: network.nativeCurrency,
rpcUrls: network.rpc,
blockExplorerUrls: network.blockExplorerUrls
};
return formattedNetwork;
}
exports.formatNetworkForAddEthereumChain = formatNetworkForAddEthereumChain;
//# sourceMappingURL=utils.js.map