UNPKG

@celo-tools/celo-ethers-wrapper

Version:

A minimal wrapper to make Ethers.JS compatible with the Celo network.

70 lines 4.55 kB
import { assertArgument } from "ethers"; const networks = [ { name: "celo", chainId: 42220, }, { name: "alfajores", chainId: 44787, }, { name: "baklava", chainId: 62320, }, ]; export function getNetwork(network) { { if (network == null) { return null; } // Chain ID if (typeof network === "number" || typeof network === "bigint") { const matches = networks.filter((n) => n.chainId === Number(network)); if (matches.length) { return { name: matches[0].name, chainId: matches[0].chainId, }; } return { name: "unknown", chainId: Number(network), }; } // Chain name if (typeof network === "string") { const matches = networks.filter((n) => n.name === network); if (matches.length) { return { name: matches[0].name, chainId: matches[0].chainId, }; } return null; } if (typeof network.name === "string" && typeof network.chainId === "number") { const byName = getNetwork(network.name); const byChainId = getNetwork(network.chainId); // Nothing standard; valid custom network if (byName == null && byChainId == null) { return { name: network.name, chainId: network.chainId, }; } // Make sure if it is a standard chain the parameters match if (byName && byChainId && // @ts-expect-error byName.name === byChainId.name && // @ts-expect-error byName.chainId === byChainId.chainId) { return byName; } } assertArgument(false, "network chainId mismatch", "network", network); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL25ldHdvcmtzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxjQUFjLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFcEQsTUFBTSxRQUFRLEdBQUc7SUFDZjtRQUNFLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLEtBQUs7S0FDZjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFdBQVc7UUFDakIsT0FBTyxFQUFFLEtBQUs7S0FDZjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBb0I7SUFDN0M7UUFDRSxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELFdBQVc7UUFDWCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDOUQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN0RSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xCLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO29CQUNyQixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87aUJBQzVCLENBQUM7YUFDSDtZQUVELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDekIsQ0FBQztTQUNIO1FBRUQsYUFBYTtRQUNiLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQy9CLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUM7WUFDM0QsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNsQixPQUFPO29CQUNMLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtvQkFDckIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO2lCQUM1QixDQUFDO2FBQ0g7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFDRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUNoQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUNuQztZQUNBLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU5Qyx5Q0FBeUM7WUFDekMsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUU7Z0JBQ3ZDLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87aUJBQ3pCLENBQUM7YUFDSDtZQUVELDJEQUEyRDtZQUMzRCxJQUNFLE1BQU07Z0JBQ04sU0FBUztnQkFDVCxtQkFBbUI7Z0JBQ25CLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQzlCLG1CQUFtQjtnQkFDbkIsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsT0FBTyxFQUNwQztnQkFDQSxPQUFPLE1BQU0sQ0FBQzthQUNmO1NBQ0Y7UUFFRCxjQUFjLENBQUMsS0FBSyxFQUFFLDBCQUEwQixFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztLQUN2RTtBQUNILENBQUMifQ==