UNPKG

@bluefin-exchange/bluefin7k-aggregator-sdk

Version:
35 lines (34 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SuiswapContract = void 0; const utils_1 = require("@mysten/sui/utils"); const base_1 = require("../base"); const sui_1 = require("../../../utils/sui"); class SuiswapContract extends base_1.BaseContract { async swap(tx) { const poolId = this.swapInfo.poolId; const swapXtoY = this.swapInfo.swapXtoY; const inputCoin = this.inputCoinObject; const typeArguments = [this.swapInfo.coinX.type, this.swapInfo.coinY.type]; const callFunc = swapXtoY ? "do_swap_x_to_y_direct" : "do_swap_y_to_x_direct"; const { package: PACKAGE_ID } = this.config.suiswap; const inputAmount = this.getInputCoinValue(tx); const [tokenIn, tokenOut] = tx.moveCall({ target: `${PACKAGE_ID}::pool::${callFunc}`, typeArguments, arguments: [ tx.object(poolId), tx.makeMoveVec({ elements: [inputCoin], }), inputAmount, tx.object(utils_1.SUI_CLOCK_OBJECT_ID), ], }); sui_1.SuiUtils.collectDust(tx, this.swapInfo.assetIn, tokenIn); return tokenOut; } } exports.SuiswapContract = SuiswapContract;