UNPKG

@bluefin-exchange/bluefin7k-aggregator-sdk

Version:
31 lines (30 loc) 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SponsoredDeepBookV3Contract = void 0; const base_1 = require("../base"); const utils_1 = require("@mysten/sui/utils"); const sui_1 = require("../../../utils/sui"); class SponsoredDeepBookV3Contract extends base_1.BaseContract { async swap(tx) { const [coinX] = this.swapInfo.pool.allTokens; const swapXtoY = (0, utils_1.normalizeStructTag)(coinX.address) === (0, utils_1.normalizeStructTag)(this.swapInfo.assetIn); const config = this.config.deepbook_v3; const [base, quote] = tx.moveCall({ target: `${config.sponsor}::sponsored::${swapXtoY ? "swap_exact_base_for_quote" : "swap_exact_quote_for_base"}`, typeArguments: this.getTypeParams(), arguments: [ tx.object(config.sponsorFund), tx.object(this.swapInfo.poolId), this.inputCoinObject, tx.pure.u64(0), tx.object(utils_1.SUI_CLOCK_OBJECT_ID), ], }); const coinIn = swapXtoY ? base : quote; const coinOut = swapXtoY ? quote : base; sui_1.SuiUtils.collectDust(tx, this.swapInfo.assetIn, coinIn); return coinOut; } } exports.SponsoredDeepBookV3Contract = SponsoredDeepBookV3Contract;