UNPKG

@api3/contracts

Version:

Contracts through which API3 services are delivered

52 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.chainHttpRpcUrlName = chainHttpRpcUrlName; exports.chains = chains; const viem_1 = require("viem"); const chains_1 = require("./generated/chains"); const strings_1 = require("./utils/strings"); function chainHttpRpcUrlName(chain) { return `API3_CHAINS_HTTP_RPC_URL_${(0, strings_1.toUpperSnakeCase)(chain.alias)}`; } function chains() { return chains_1.CHAINS.map((chain) => { // All chains must have at least a default provider const defaultProvider = chain.providers.find((c) => c.alias === 'default'); const envRpcUrl = process.env[chainHttpRpcUrlName(chain)]; const environmentHttp = envRpcUrl ? [envRpcUrl] : []; const customRpcUrls = { environment: { http: environmentHttp } }; return (0, viem_1.defineChain)({ id: Number(chain.id), name: chain.alias, network: chain.alias, nativeCurrency: { name: buildName(chain), symbol: chain.symbol, decimals: chain.decimals, }, rpcUrls: { default: { http: [defaultProvider.rpcUrl], }, public: { http: [defaultProvider.rpcUrl], }, ...customRpcUrls, }, blockExplorers: { default: { name: 'Explorer', url: chain.explorer.browserUrl, }, }, }); }); } function buildName(chain) { if (chain.testnet) { const symbolWithoutPrefix = chain.symbol.replace(/^test\./, ''); return `Testnet ${symbolWithoutPrefix}`; } return chain.symbol; } //# sourceMappingURL=viem-config.js.map