UNPKG

@bagsfm/bags-sdk

Version:

TypeScript SDK for Bags

38 lines 1.64 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TradeService = void 0; const web3_js_1 = require("@solana/web3.js"); const bs58_1 = __importDefault(require("bs58")); const base_1 = require("./base"); const validations_1 = require("../utils/validations"); class TradeService extends base_1.BaseService { constructor(apiKey, connection, commitment = 'processed') { super(apiKey, connection, commitment); } async getQuote(params) { const normalizedParams = (0, validations_1.validateAndNormalizeGetTradeQuoteParams)(params); const response = await this.bagsApiClient.get('/trade/quote', { params: normalizedParams, }); return response; } async createSwapTransaction(params) { const response = await this.bagsApiClient.post('/trade/swap', params); if (!response.swapTransaction) { throw new Error('Invalid swap transaction response from Bags API'); } const decodedTransaction = bs58_1.default.decode(response.swapTransaction); const transaction = web3_js_1.VersionedTransaction.deserialize(decodedTransaction); return { transaction, computeUnitLimit: response.computeUnitLimit, lastValidBlockHeight: response.lastValidBlockHeight, prioritizationFeeLamports: response.prioritizationFeeLamports, }; } } exports.TradeService = TradeService; //# sourceMappingURL=trade.js.map