UNPKG

@bluefin-exchange/bluefin7k-aggregator-sdk

Version:
37 lines (36 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TurbosContract = void 0; const utils_1 = require("@mysten/sui/utils"); const base_1 = require("../base"); const utils_2 = require("../utils"); const sui_1 = require("../../../utils/sui"); const ONE_MINUTE = 60 * 1000; class TurbosContract extends base_1.BaseContract { async swap(tx) { const a2b = this.swapInfo.swapXtoY; const { package: PACKAGE_ID, version: VERSION } = this.config.turbos; const inputAmount = this.getInputCoinValue(tx); const [tokenOut, tokenIn] = tx.moveCall({ target: `${PACKAGE_ID}::swap_router::swap_${a2b ? "a_b" : "b_a"}_with_return_`, typeArguments: this.getTypeParams(), arguments: [ tx.object(this.swapInfo.poolId), tx.makeMoveVec({ elements: [this.inputCoinObject], }), inputAmount, tx.pure.u64(0), tx.pure.u128((0, utils_2.getDefaultSqrtPriceLimit)(this.swapInfo.swapXtoY).toString()), tx.pure.bool(true), tx.pure.address(this.currentAccount), tx.pure.u64(Date.now() + ONE_MINUTE * 3), tx.object(utils_1.SUI_CLOCK_OBJECT_ID), tx.object(VERSION), ], }); sui_1.SuiUtils.collectDust(tx, this.swapInfo.assetIn, tokenIn); return tokenOut; } } exports.TurbosContract = TurbosContract;