UNPKG

@okxweb3/coin-stellar

Version:

@ok/coin-stellar is a Stellar SDK for building Web3 wallets and applications. It supports Stellar and PI blockchains, enabling private key management, address generation, transaction signing, trustline creation, and asset transfers

38 lines 1.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLiquidityPoolId = exports.LiquidityPoolFeeV18 = void 0; const xdr_1 = __importDefault(require("./xdr")); const asset_1 = require("./asset"); const hashing_1 = require("./hashing"); exports.LiquidityPoolFeeV18 = 30; function getLiquidityPoolId(liquidityPoolType, liquidityPoolParameters = {}) { if (liquidityPoolType !== 'constant_product') { throw new Error('liquidityPoolType is invalid'); } const { assetA, assetB, fee } = liquidityPoolParameters; if (!assetA || !(assetA instanceof asset_1.Asset)) { throw new Error('assetA is invalid'); } if (!assetB || !(assetB instanceof asset_1.Asset)) { throw new Error('assetB is invalid'); } if (!fee || fee !== exports.LiquidityPoolFeeV18) { throw new Error('fee is invalid'); } if (asset_1.Asset.compare(assetA, assetB) !== -1) { throw new Error('Assets are not in lexicographic order'); } const lpTypeData = xdr_1.default.LiquidityPoolType.liquidityPoolConstantProduct().toXDR(); const lpParamsData = new xdr_1.default.LiquidityPoolConstantProductParameters({ assetA: assetA.toXDRObject(), assetB: assetB.toXDRObject(), fee }).toXDR(); const payload = Buffer.concat([lpTypeData, lpParamsData]); return (0, hashing_1.hash)(payload); } exports.getLiquidityPoolId = getLiquidityPoolId; //# sourceMappingURL=get_liquidity_pool_id.js.map