@t2000/sdk 0.17.9 → 0.17.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4637,15 +4637,20 @@ To sell investment: t2000 invest sell ${params.amount} ${fromAsset}`,
4637
4637
  const usdcOutputs = [];
4638
4638
  for (const pos of stratPositions) {
4639
4639
  const assetInfo = SUPPORTED_ASSETS[pos.asset];
4640
- const coins = await this._fetchCoins(assetInfo.type);
4641
- if (coins.length === 0) {
4642
- throw new T2000Error("INSUFFICIENT_BALANCE", `No ${pos.asset} coins in wallet`);
4643
- }
4644
- const merged = this._mergeCoinsInTx(tx, coins);
4645
4640
  const gasReserve = pos.asset === "SUI" ? GAS_RESERVE_MIN : 0;
4646
4641
  const sellAmount = Math.max(0, pos.totalAmount - gasReserve);
4647
4642
  const rawAmount = BigInt(Math.floor(sellAmount * 10 ** assetInfo.decimals));
4648
- const [splitCoin] = tx.splitCoins(merged, [rawAmount]);
4643
+ let splitCoin;
4644
+ if (pos.asset === "SUI") {
4645
+ [splitCoin] = tx.splitCoins(tx.gas, [rawAmount]);
4646
+ } else {
4647
+ const coins = await this._fetchCoins(assetInfo.type);
4648
+ if (coins.length === 0) {
4649
+ throw new T2000Error("INSUFFICIENT_BALANCE", `No ${pos.asset} coins in wallet`);
4650
+ }
4651
+ const merged = this._mergeCoinsInTx(tx, coins);
4652
+ [splitCoin] = tx.splitCoins(merged, [rawAmount]);
4653
+ }
4649
4654
  const slippageBps = LOW_LIQUIDITY_ASSETS.has(pos.asset) ? 500 : 300;
4650
4655
  const { outputCoin, estimatedOut, toDecimals } = await swapAdapter.addSwapToTx(
4651
4656
  tx,
@@ -4772,13 +4777,18 @@ To sell investment: t2000 invest sell ${params.amount} ${fromAsset}`,
4772
4777
  const usdcCoins = [];
4773
4778
  for (const sell of sellOps) {
4774
4779
  const assetInfo = SUPPORTED_ASSETS[sell.asset];
4775
- const coins = await this._fetchCoins(assetInfo.type);
4776
- if (coins.length === 0) continue;
4777
- const merged = this._mergeCoinsInTx(tx, coins);
4778
4780
  const gasReserve = sell.asset === "SUI" ? GAS_RESERVE_MIN : 0;
4779
4781
  const sellAmount = Math.max(0, sell.assetAmount - gasReserve);
4780
4782
  const rawAmount = BigInt(Math.floor(sellAmount * 10 ** assetInfo.decimals));
4781
- const [splitCoin] = tx.splitCoins(merged, [rawAmount]);
4783
+ let splitCoin;
4784
+ if (sell.asset === "SUI") {
4785
+ [splitCoin] = tx.splitCoins(tx.gas, [rawAmount]);
4786
+ } else {
4787
+ const coins = await this._fetchCoins(assetInfo.type);
4788
+ if (coins.length === 0) continue;
4789
+ const merged = this._mergeCoinsInTx(tx, coins);
4790
+ [splitCoin] = tx.splitCoins(merged, [rawAmount]);
4791
+ }
4782
4792
  const slippageBps = LOW_LIQUIDITY_ASSETS.has(sell.asset) ? 500 : 300;
4783
4793
  const { outputCoin, estimatedOut, toDecimals } = await swapAdapter.addSwapToTx(
4784
4794
  tx,