UNPKG

across-bridge-v3-sdk

Version:

Light-weighted SDK for interacting with Across V3 API

92 lines 3.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AcrossClient = void 0; exports.createAcrossClient = createAcrossClient; const http_1 = require("./http"); const ACROSS_API = 'https://app.across.to/api'; class AcrossClient { async getSuggestedFees(params) { const queryParams = new URLSearchParams({ originChainId: params.originChainId, destinationChainId: params.destinationChainId, inputToken: params.inputToken, outputToken: params.outputToken, amount: params.amount, }); if (params.recipient) queryParams.append('recipient', params.recipient); if (params.message) queryParams.append('message', params.message); if (params.relayer) queryParams.append('relayer', params.relayer); if (params.timestamp) queryParams.append('timestamp', params.timestamp); const url = `${ACROSS_API}/suggested-fees?${queryParams.toString()}`; const response = await (0, http_1.get)(url); return { exclusiveRelayer: response.exclusiveRelayer, exclusivityDeadline: response.exclusivityDeadline, totalRelayerFee: response.totalRelayFee.total, minDeposit: response.limits.minDeposit, maxDeposit: response.limits.maxDeposit, fillDeadline: response.fillDeadline, }; } async getLimits(params) { const queryParams = new URLSearchParams({ originChainId: params.originChainId, destinationChainId: params.destinationChainId, inputToken: params.inputToken, outputToken: params.outputToken, }); const url = `${ACROSS_API}/limits?${queryParams.toString()}`; const response = await (0, http_1.get)(url); return { minDeposit: response.minDeposit, maxDeposit: response.maxDeposit, }; } async getAvailableRoutes(params) { const queryParams = new URLSearchParams(); if (params?.originChainId) queryParams.append('originChainId', params.originChainId); if (params?.destinationChainId) queryParams.append('destinationChainId', params.destinationChainId); if (params?.originToken) queryParams.append('token', params.originToken); if (params?.destinationToken) queryParams.append('token', params.destinationToken); const url = `${ACROSS_API}/available-routes?${queryParams.toString()}`; const response = await (0, http_1.get)(url); return response.map((route) => ({ originChainId: route.originChainId, destinationChainId: route.destinationChainId, destinationToken: route.destinationToken, originTokenSymbol: route.originToken, destinationTokenSymbol: route.destinationTokenSymbol, isNative: route.isNative, })); } async getDepositStatus(params) { const queryParams = new URLSearchParams({ originChainId: params.originChainId, depositId: params.depositId, }); const url = `${ACROSS_API}/deposit/status/${queryParams.toString()}`; const response = await (0, http_1.get)(url); return { originChainId: response.originChainId, depositId: response.depositId, depositTxHash: response.depositTxHash, status: response.status, fillTx: response.fillTx, destinationChainId: response.destinationChainId, depositRefundTxHash: response.depositTimestamp, }; } } exports.AcrossClient = AcrossClient; function createAcrossClient() { return new AcrossClient(); } //# sourceMappingURL=client.js.map