@celo-tools/celo-ethers-wrapper
Version:
A minimal wrapper to make Ethers.JS compatible with the Celo network.
70 lines • 4.55 kB
JavaScript
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==