UNPKG

@atomiqlabs/sdk

Version:

atomiq labs SDK for cross-chain swaps between smart chains and bitcoin

76 lines (75 loc) 2.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createApiEndpoint = exports.toApiLNURL = exports.toApiToken = exports.toApiAmount = void 0; const Token_1 = require("../types/Token"); const TokenAmount_1 = require("../types/TokenAmount"); const ApiParser_1 = require("./ApiParser"); /** * Converts a TokenAmount to the serializable ApiAmount format * * @category API */ function toApiAmount(tokenAmount) { return { amount: tokenAmount.amount, rawAmount: tokenAmount.rawAmount != null ? tokenAmount.rawAmount.toString() : "0", decimals: tokenAmount.token.decimals, symbol: tokenAmount.token.ticker, chain: tokenAmount.token.chainId }; } exports.toApiAmount = toApiAmount; /** * Converts a Token to the serializable ApiToken format * * @category API */ function toApiToken(token) { return { id: `${token.chainId}-${token.ticker}`, chainId: token.chainId, ticker: token.ticker, name: token.name, decimals: token.decimals, address: token.address }; } exports.toApiToken = toApiToken; /** * Converts LNURL data to the serializable API format * * @category API */ function toApiLNURL(lnurl, swapper) { if (lnurl.type === "pay") { return { type: "pay", min: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.min, Token_1.BitcoinTokens.BTCLN, swapper.prices)), max: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.max, Token_1.BitcoinTokens.BTCLN, swapper.prices)), commentMaxLength: lnurl.commentMaxLength, ...(lnurl.shortDescription != null ? { shortDescription: lnurl.shortDescription } : {}), ...(lnurl.longDescription != null ? { longDescription: lnurl.longDescription } : {}), ...(lnurl.icon != null ? { icon: lnurl.icon } : {}), params: lnurl.params }; } return { type: "withdraw", min: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.min, Token_1.BitcoinTokens.BTCLN, swapper.prices)), max: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.max, Token_1.BitcoinTokens.BTCLN, swapper.prices)), params: lnurl.params }; } exports.toApiLNURL = toApiLNURL; function createApiEndpoint(type, description, callback, inputSchema) { return { type, description, callback, inputSchema, callbackRaw: (input, abortSignal) => { return callback((0, ApiParser_1.parseApiInput)(inputSchema, input), abortSignal); } }; } exports.createApiEndpoint = createApiEndpoint;