across-bridge-v3-sdk
Version:
Light-weighted SDK for interacting with Across V3 API
92 lines • 3.84 kB
JavaScript
;
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