UNPKG

@lifi/sdk

Version:

LI.FI Any-to-Any Cross-Chain-Swap SDK

38 lines 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSuiClients = exports.ensureClients = void 0; exports.callSuiWithRetry = callSuiWithRetry; const types_1 = require("@lifi/types"); const client_1 = require("@mysten/sui/client"); const rpc_js_1 = require("../rpc.js"); const clients = new Map(); const ensureClients = async () => { const rpcUrls = await (0, rpc_js_1.getRpcUrls)(types_1.ChainId.SUI); for (const rpcUrl of rpcUrls) { if (!clients.get(rpcUrl)) { const client = new client_1.SuiClient({ url: rpcUrl }); clients.set(rpcUrl, client); } } }; exports.ensureClients = ensureClients; const getSuiClients = async () => { await (0, exports.ensureClients)(); return Array.from(clients.values()); }; exports.getSuiClients = getSuiClients; async function callSuiWithRetry(fn) { await (0, exports.ensureClients)(); let lastError = null; for (const client of clients.values()) { try { const result = await fn(client); return result; } catch (error) { lastError = error; } } throw lastError; } //# sourceMappingURL=suiClient.js.map