@broxus/js-core
Version:
MobX-based JavaScript Core library
48 lines (47 loc) • 1.87 kB
JavaScript
;
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');
}