UNPKG

@broxus/js-core

Version:

MobX-based JavaScript Core library

48 lines (47 loc) 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTvmConnection = getTvmConnection; /* eslint-disable max-len */ const everscale_inpage_provider_1 = require("everscale-inpage-provider"); const adapters_1 = require("../adapters"); const connections = new Map(); function getTvmConnection(networks, chainId, network) { networks.forEach(value => { if (!connections.has(value.chainId.toString())) { connections.set(value.chainId, new everscale_inpage_provider_1.ProviderRpcClient({ provider: new adapters_1.StandaloneClientAdapter({ connection: value.connectionProperties || { data: { endpoint: value.rpcUrl, }, id: Number(value.chainId), type: process.env.NODE_ENV === 'production' ? 'proto' : 'jrpc', }, }), })); } }); if (connections.has(chainId)) { const connection = connections.get(chainId); if (!connection) { throw new Error('Cannot get TVM connection'); } return connection; } if (network?.rpcUrl) { const connection = new everscale_inpage_provider_1.ProviderRpcClient({ provider: new adapters_1.StandaloneClientAdapter({ connection: network.connectionProperties || { data: { endpoint: network.rpcUrl, }, id: Number(network.chainId), type: process.env.NODE_ENV === 'production' ? 'proto' : 'jrpc', }, }), }); connections.set(network.chainId, connection); return connection; } throw new Error('Cannot get TVM connection'); }