@bluefin-exchange/bluefin7k-aggregator-sdk
Version:
25 lines (24 loc) • 987 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.StSuiContract = void 0;
const utils_1 = require("@mysten/sui/utils");
const base_1 = require("../base");
class StSuiContract extends base_1.BaseContract {
async swap(tx) {
// coinX is always SUI
const coinY = this.swapInfo.pool.allTokens[1];
const isStake = this.swapInfo.swapXtoY;
const { package: PACKAGE_ID } = this.config.stsui;
const [coinOut] = tx.moveCall({
target: `${PACKAGE_ID}::liquid_staking::${isStake ? "mint" : "redeem"}`,
typeArguments: [coinY.address],
arguments: [
tx.object(this.swapInfo.poolId),
isStake ? tx.object(utils_1.SUI_SYSTEM_STATE_OBJECT_ID) : this.inputCoinObject,
isStake ? this.inputCoinObject : tx.object(utils_1.SUI_SYSTEM_STATE_OBJECT_ID),
],
});
return coinOut;
}
}
exports.StSuiContract = StSuiContract;
;