@alphafi/alphafi-sdk 0.0.66 → 0.0.68

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.
Files changed (323) hide show
  1. package/dist/cjs/common/coins.d.ts.map +1 -1
  2. package/dist/cjs/common/coins.js +13 -1
  3. package/dist/cjs/common/coins.js.map +1 -1
  4. package/dist/cjs/common/constants.d.ts +235 -0
  5. package/dist/cjs/common/constants.d.ts.map +1 -1
  6. package/dist/cjs/common/constants.js +203 -20
  7. package/dist/cjs/common/constants.js.map +1 -1
  8. package/dist/cjs/common/maps.d.ts +7 -0
  9. package/dist/cjs/common/maps.d.ts.map +1 -1
  10. package/dist/cjs/common/maps.js +184 -1
  11. package/dist/cjs/common/maps.js.map +1 -1
  12. package/dist/cjs/common/pyth.d.ts +1 -1
  13. package/dist/cjs/common/pyth.d.ts.map +1 -1
  14. package/dist/cjs/common/pyth.js.map +1 -1
  15. package/dist/cjs/common/types.d.ts +17 -3
  16. package/dist/cjs/common/types.d.ts.map +1 -1
  17. package/dist/cjs/common/types.js.map +1 -1
  18. package/dist/cjs/index.d.ts +1 -0
  19. package/dist/cjs/index.d.ts.map +1 -1
  20. package/dist/cjs/index.js +3 -1
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
  23. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js +17 -2
  24. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
  25. package/dist/cjs/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -1
  26. package/dist/cjs/sui-sdk/transactions/fetchTransactions.js +21 -5
  27. package/dist/cjs/sui-sdk/transactions/fetchTransactions.js.map +1 -1
  28. package/dist/cjs/sui-sdk/transactions/types.d.ts +2 -1
  29. package/dist/cjs/sui-sdk/transactions/types.d.ts.map +1 -1
  30. package/dist/cjs/sui-sdk/transactions/types.js.map +1 -1
  31. package/dist/cjs/transactions/alpha.js +2 -2
  32. package/dist/cjs/transactions/alpha.js.map +1 -1
  33. package/dist/cjs/transactions/bluefin.d.ts +6 -0
  34. package/dist/cjs/transactions/bluefin.d.ts.map +1 -1
  35. package/dist/cjs/transactions/bluefin.js +153 -1
  36. package/dist/cjs/transactions/bluefin.js.map +1 -1
  37. package/dist/cjs/transactions/deposit.d.ts +3 -3
  38. package/dist/cjs/transactions/deposit.d.ts.map +1 -1
  39. package/dist/cjs/transactions/deposit.js +25 -21
  40. package/dist/cjs/transactions/deposit.js.map +1 -1
  41. package/dist/cjs/transactions/navi-looping.d.ts.map +1 -1
  42. package/dist/cjs/transactions/navi-looping.js +865 -73
  43. package/dist/cjs/transactions/navi-looping.js.map +1 -1
  44. package/dist/cjs/transactions/navi.d.ts.map +1 -1
  45. package/dist/cjs/transactions/navi.js +1556 -191
  46. package/dist/cjs/transactions/navi.js.map +1 -1
  47. package/dist/cjs/transactions/naviOracle.d.ts +3 -0
  48. package/dist/cjs/transactions/naviOracle.d.ts.map +1 -0
  49. package/dist/cjs/transactions/naviOracle.js +18 -0
  50. package/dist/cjs/transactions/naviOracle.js.map +1 -0
  51. package/dist/cjs/transactions/withdraw.d.ts.map +1 -1
  52. package/dist/cjs/transactions/withdraw.js +8 -3
  53. package/dist/cjs/transactions/withdraw.js.map +1 -1
  54. package/dist/cjs/transactions/zapDeposit.d.ts +2 -6
  55. package/dist/cjs/transactions/zapDeposit.d.ts.map +1 -1
  56. package/dist/cjs/transactions/zapDeposit.js +1207 -1497
  57. package/dist/cjs/transactions/zapDeposit.js.map +1 -1
  58. package/dist/cjs/utils/prices.d.ts.map +1 -1
  59. package/dist/cjs/utils/prices.js +1 -1
  60. package/dist/cjs/utils/prices.js.map +1 -1
  61. package/dist/esm/common/coins.d.ts.map +1 -1
  62. package/dist/esm/common/coins.js +13 -1
  63. package/dist/esm/common/coins.js.map +1 -1
  64. package/dist/esm/common/constants.d.ts +235 -0
  65. package/dist/esm/common/constants.d.ts.map +1 -1
  66. package/dist/esm/common/constants.js +203 -20
  67. package/dist/esm/common/constants.js.map +1 -1
  68. package/dist/esm/common/maps.d.ts +7 -0
  69. package/dist/esm/common/maps.d.ts.map +1 -1
  70. package/dist/esm/common/maps.js +183 -0
  71. package/dist/esm/common/maps.js.map +1 -1
  72. package/dist/esm/common/pyth.d.ts +1 -1
  73. package/dist/esm/common/pyth.d.ts.map +1 -1
  74. package/dist/esm/common/pyth.js.map +1 -1
  75. package/dist/esm/common/types.d.ts +17 -3
  76. package/dist/esm/common/types.d.ts.map +1 -1
  77. package/dist/esm/common/types.js.map +1 -1
  78. package/dist/esm/index.d.ts +1 -0
  79. package/dist/esm/index.d.ts.map +1 -1
  80. package/dist/esm/index.js +1 -0
  81. package/dist/esm/index.js.map +1 -1
  82. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
  83. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js +17 -2
  84. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
  85. package/dist/esm/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -1
  86. package/dist/esm/sui-sdk/transactions/fetchTransactions.js +21 -5
  87. package/dist/esm/sui-sdk/transactions/fetchTransactions.js.map +1 -1
  88. package/dist/esm/sui-sdk/transactions/types.d.ts +2 -1
  89. package/dist/esm/sui-sdk/transactions/types.d.ts.map +1 -1
  90. package/dist/esm/sui-sdk/transactions/types.js.map +1 -1
  91. package/dist/esm/transactions/alpha.js +2 -2
  92. package/dist/esm/transactions/alpha.js.map +1 -1
  93. package/dist/esm/transactions/bluefin.d.ts +6 -0
  94. package/dist/esm/transactions/bluefin.d.ts.map +1 -1
  95. package/dist/esm/transactions/bluefin.js +151 -1
  96. package/dist/esm/transactions/bluefin.js.map +1 -1
  97. package/dist/esm/transactions/deposit.d.ts +3 -3
  98. package/dist/esm/transactions/deposit.d.ts.map +1 -1
  99. package/dist/esm/transactions/deposit.js +26 -22
  100. package/dist/esm/transactions/deposit.js.map +1 -1
  101. package/dist/esm/transactions/navi-looping.d.ts.map +1 -1
  102. package/dist/esm/transactions/navi-looping.js +866 -74
  103. package/dist/esm/transactions/navi-looping.js.map +1 -1
  104. package/dist/esm/transactions/navi.d.ts.map +1 -1
  105. package/dist/esm/transactions/navi.js +1557 -192
  106. package/dist/esm/transactions/navi.js.map +1 -1
  107. package/dist/esm/transactions/naviOracle.d.ts +3 -0
  108. package/dist/esm/transactions/naviOracle.d.ts.map +1 -0
  109. package/dist/esm/transactions/naviOracle.js +15 -0
  110. package/dist/esm/transactions/naviOracle.js.map +1 -0
  111. package/dist/esm/transactions/withdraw.d.ts.map +1 -1
  112. package/dist/esm/transactions/withdraw.js +9 -4
  113. package/dist/esm/transactions/withdraw.js.map +1 -1
  114. package/dist/esm/transactions/zapDeposit.d.ts +2 -6
  115. package/dist/esm/transactions/zapDeposit.d.ts.map +1 -1
  116. package/dist/esm/transactions/zapDeposit.js +1208 -1498
  117. package/dist/esm/transactions/zapDeposit.js.map +1 -1
  118. package/dist/esm/utils/prices.d.ts.map +1 -1
  119. package/dist/esm/utils/prices.js +2 -2
  120. package/dist/esm/utils/prices.js.map +1 -1
  121. package/docs/assets/navigation.js +1 -1
  122. package/docs/assets/search.js +1 -1
  123. package/docs/functions/alphaLpBreakdown.html +1 -1
  124. package/docs/functions/cetusLpBreakdown.html +1 -1
  125. package/docs/functions/claimBlueRewardTxb.html +1 -1
  126. package/docs/functions/claimRewardTxb.html +1 -1
  127. package/docs/functions/coinAmountToXTokensDoubleAsset.html +1 -1
  128. package/docs/functions/coinAmountToXTokensSingleAsset.html +1 -1
  129. package/docs/functions/coinsInPool.html +1 -1
  130. package/docs/functions/collectRewards.html +1 -1
  131. package/docs/functions/deposit.html +1 -1
  132. package/docs/functions/depositDoubleAssetTxb.html +1 -1
  133. package/docs/functions/depositSingleAssetTxb.html +1 -1
  134. package/docs/functions/fetchAfterTransactionEvents.html +1 -1
  135. package/docs/functions/fetchAutoCompoundingEvents.html +1 -1
  136. package/docs/functions/fetchAutoCompoundingEventsGql.html +1 -1
  137. package/docs/functions/fetchCetusPools.html +1 -1
  138. package/docs/functions/fetchChainIdentifier.html +1 -1
  139. package/docs/functions/fetchCheckRatioEvents.html +1 -1
  140. package/docs/functions/fetchLiquidityChangeEvents.html +1 -1
  141. package/docs/functions/fetchMultiCategoryEvents.html +1 -1
  142. package/docs/functions/fetchMultiReceipts.html +1 -1
  143. package/docs/functions/fetchNftHolders.html +1 -1
  144. package/docs/functions/fetchPools.html +1 -1
  145. package/docs/functions/fetchPortfolioData.html +1 -1
  146. package/docs/functions/fetchProtocolData.html +1 -1
  147. package/docs/functions/fetchTVL.html +1 -1
  148. package/docs/functions/fetchTransactions.html +1 -0
  149. package/docs/functions/fetchUserVaultBalances.html +1 -1
  150. package/docs/functions/fetchUserVaults.html +1 -1
  151. package/docs/functions/fetchUserWalletData.html +1 -1
  152. package/docs/functions/fetchVoloExchangeRate.html +1 -1
  153. package/docs/functions/fetchWithdrawV2Events.html +1 -1
  154. package/docs/functions/getAirdropShare.html +1 -1
  155. package/docs/functions/getAllDoubleAssetVaults.html +1 -1
  156. package/docs/functions/getAllSingleAssetVaults.html +1 -1
  157. package/docs/functions/getAllVaultBalances.html +1 -1
  158. package/docs/functions/getAllVaults.html +1 -1
  159. package/docs/functions/getAlphaUnlocks.html +1 -1
  160. package/docs/functions/getAlphaVaultBalance.html +1 -1
  161. package/docs/functions/getAmounts.html +1 -1
  162. package/docs/functions/getApr.html +1 -1
  163. package/docs/functions/getAprs.html +1 -1
  164. package/docs/functions/getApy.html +1 -1
  165. package/docs/functions/getApys.html +1 -1
  166. package/docs/functions/getCetusInvestorTicksMap.html +1 -1
  167. package/docs/functions/getCetusPool.html +1 -1
  168. package/docs/functions/getCetusSqrtPriceMap.html +1 -1
  169. package/docs/functions/getCoinAmountsFromLiquidity.html +1 -1
  170. package/docs/functions/getConf.html +1 -1
  171. package/docs/functions/getCurrentTick.html +1 -1
  172. package/docs/functions/getDistributor.html +1 -1
  173. package/docs/functions/getDoubleAssetVaultBalance.html +1 -1
  174. package/docs/functions/getDoubleAssetVaults.html +1 -1
  175. package/docs/functions/getHoldersFromTransactions.html +1 -1
  176. package/docs/functions/getInvestor.html +1 -1
  177. package/docs/functions/getInvestorPoolMap.html +1 -1
  178. package/docs/functions/getLastAutoCompoundTime.html +1 -1
  179. package/docs/functions/getLatestPrices.html +1 -1
  180. package/docs/functions/getLiquidity.html +1 -1
  181. package/docs/functions/getMultiCetusPool.html +1 -1
  182. package/docs/functions/getMultiInvestor.html +1 -1
  183. package/docs/functions/getMultiLatestPrices.html +1 -1
  184. package/docs/functions/getMultiParentPool.html +1 -1
  185. package/docs/functions/getMultiPool.html +1 -1
  186. package/docs/functions/getMultiReceipts.html +1 -1
  187. package/docs/functions/getParentPool.html +1 -1
  188. package/docs/functions/getPool.html +1 -1
  189. package/docs/functions/getPoolExchangeRate.html +1 -1
  190. package/docs/functions/getPoolExchangeRateMap.html +1 -1
  191. package/docs/functions/getPoolsWeightDistribution.html +1 -1
  192. package/docs/functions/getPositionRange.html +1 -1
  193. package/docs/functions/getPositionRanges.html +1 -1
  194. package/docs/functions/getPositionTicks.html +1 -1
  195. package/docs/functions/getPriceToTick.html +1 -1
  196. package/docs/functions/getRebalanceHistories.html +1 -1
  197. package/docs/functions/getRebalanceHistory.html +1 -1
  198. package/docs/functions/getReceipts.html +1 -1
  199. package/docs/functions/getSingleAssetVaultBalance.html +1 -1
  200. package/docs/functions/getSingleAssetVaults.html +1 -1
  201. package/docs/functions/getSuiClient.html +2 -2
  202. package/docs/functions/getSuiNodeUrl.html +2 -2
  203. package/docs/functions/getTVLs-1.html +1 -1
  204. package/docs/functions/getTickSpacing.html +1 -1
  205. package/docs/functions/getTickToPrice.html +1 -1
  206. package/docs/functions/getTvls.html +1 -1
  207. package/docs/functions/getUserTokensFromTransactions.html +1 -1
  208. package/docs/functions/getUserTokensInUsdFromTransactions.html +1 -1
  209. package/docs/functions/getVaultBalance.html +1 -1
  210. package/docs/functions/getVaultBalanceForActiveUsers.html +1 -1
  211. package/docs/functions/getVaults.html +1 -1
  212. package/docs/functions/getXTokenVaultBalanceForActiveUsers.html +1 -1
  213. package/docs/functions/getZapAmounts.html +1 -1
  214. package/docs/functions/lastAutocompoundTime.html +1 -1
  215. package/docs/functions/liquidityToTokens.html +1 -1
  216. package/docs/functions/multiLiquidityToTokens.html +1 -1
  217. package/docs/functions/multiTokensToUsd.html +1 -1
  218. package/docs/functions/multiXTokensToLiquidity.html +1 -1
  219. package/docs/functions/parseUserWalletData.html +1 -1
  220. package/docs/functions/pendingBlueRewardAmount.html +1 -1
  221. package/docs/functions/setCustomSuiClient.html +2 -2
  222. package/docs/functions/setSuiClient.html +2 -2
  223. package/docs/functions/setSuiNodeUrl.html +2 -2
  224. package/docs/functions/setWeights.html +1 -1
  225. package/docs/functions/withdraw.html +1 -1
  226. package/docs/functions/withdrawAlphaTxb.html +1 -1
  227. package/docs/functions/withdrawTxb.html +1 -1
  228. package/docs/functions/zapDepositTxb.html +1 -1
  229. package/docs/index.html +2 -2
  230. package/docs/interfaces/Coin.html +6 -6
  231. package/docs/interfaces/CoinPair.html +2 -2
  232. package/docs/interfaces/NaviVoloData.html +2 -2
  233. package/docs/interfaces/PoolData.html +2 -2
  234. package/docs/interfaces/PoolWeightDistribution.html +2 -2
  235. package/docs/interfaces/RebalanceHistoryType.html +2 -2
  236. package/docs/modules.html +3 -2
  237. package/docs/types/AfterTransactionEventNode.html +1 -1
  238. package/docs/types/Allocator.html +1 -1
  239. package/docs/types/AlphaFiDoubleAssetVault.html +1 -1
  240. package/docs/types/AlphaFiMultiVaultBalance.html +1 -1
  241. package/docs/types/AlphaFiSingleAssetVault.html +1 -1
  242. package/docs/types/AlphaFiVault.html +1 -1
  243. package/docs/types/AlphaFiVaultBalance.html +1 -1
  244. package/docs/types/AlphaPoolType.html +1 -1
  245. package/docs/types/AlphaReceipt.html +1 -1
  246. package/docs/types/AlphaReceiptFields.html +1 -1
  247. package/docs/types/AlphaVaultBalance.html +1 -1
  248. package/docs/types/AutoBalancePoolNames.html +1 -1
  249. package/docs/types/AutoCompoundingEventNode.html +1 -1
  250. package/docs/types/BluefinInvestor.html +1 -1
  251. package/docs/types/BluefinPoolType.html +1 -1
  252. package/docs/types/BucketInvestor.html +1 -1
  253. package/docs/types/CetusInvestor.html +1 -1
  254. package/docs/types/CetusPoolType.html +1 -1
  255. package/docs/types/CetusSwapOptions.html +1 -1
  256. package/docs/types/CoinAmounts.html +1 -1
  257. package/docs/types/CoinName.html +1 -1
  258. package/docs/types/CoinType.html +1 -1
  259. package/docs/types/CommonInvestorFields.html +1 -1
  260. package/docs/types/CreatePoolOptions.html +1 -1
  261. package/docs/types/Distributor.html +1 -1
  262. package/docs/types/DoubleAssetMultiVaultBalance.html +1 -1
  263. package/docs/types/DoubleAssetPoolNames.html +1 -1
  264. package/docs/types/DoubleAssetTokenHoldings.html +1 -1
  265. package/docs/types/DoubleAssetVaultBalance.html +1 -1
  266. package/docs/types/EventCategory.html +1 -1
  267. package/docs/types/EventNode.html +1 -1
  268. package/docs/types/GetHoldersParams.html +1 -1
  269. package/docs/types/GetTokenHoldingsParams.html +1 -1
  270. package/docs/types/GetUserTokensFromTransactionsParams.html +1 -1
  271. package/docs/types/GetUserTokensInUsdFromTransactionsParams.html +1 -1
  272. package/docs/types/GetVaultBalanceForActiveUsersParams.html +1 -1
  273. package/docs/types/GetVaultBalanceParams.html +1 -1
  274. package/docs/types/HoldingsObj.html +1 -1
  275. package/docs/types/Icon.html +1 -1
  276. package/docs/types/Investor.html +1 -1
  277. package/docs/types/LiquidityChangeEventNode.html +1 -1
  278. package/docs/types/LiquidityToTokensParams.html +1 -1
  279. package/docs/types/LiquidityToUsdParams.html +1 -1
  280. package/docs/types/LoopingDebt.html +1 -1
  281. package/docs/types/LoopingPoolNames.html +1 -1
  282. package/docs/types/LpBreakdownType.html +1 -1
  283. package/docs/types/MemberPoolDataType.html +1 -1
  284. package/docs/types/MemberType.html +1 -1
  285. package/docs/types/MultiGetVaultBalancesParams.html +1 -1
  286. package/docs/types/NaviInvestor.html +1 -1
  287. package/docs/types/OtherReceiptFields.html +1 -1
  288. package/docs/types/PoolName.html +1 -1
  289. package/docs/types/PoolReceipt.html +1 -1
  290. package/docs/types/PoolType.html +1 -1
  291. package/docs/types/Receipt.html +1 -1
  292. package/docs/types/ReceiptGQL.html +1 -1
  293. package/docs/types/SingleAssetMultiVaultBalance.html +1 -1
  294. package/docs/types/SingleAssetPoolNames.html +1 -1
  295. package/docs/types/SingleAssetTokenHoldings.html +1 -1
  296. package/docs/types/SingleAssetVaultBalance.html +1 -1
  297. package/docs/types/SingleGetVaultBalancesParams.html +1 -1
  298. package/docs/types/StrategyType.html +1 -1
  299. package/docs/types/SuiNetwork.html +1 -1
  300. package/docs/types/SwapOptions.html +1 -1
  301. package/docs/types/TickSpacing.html +1 -1
  302. package/docs/types/TotalWeightType.html +1 -1
  303. package/docs/types/TransactionBlockType.html +1 -1
  304. package/docs/types/UserPoolLiquidity.html +1 -1
  305. package/docs/types/UserPoolTokenHoldings.html +1 -1
  306. package/docs/types/UserUsdHoldings.html +1 -1
  307. package/docs/types/VaultBalance.html +1 -1
  308. package/docs/types/WithdrawV2EventNode.html +1 -1
  309. package/docs/variables/bluefinPoolMap.html +1 -1
  310. package/docs/variables/cetusPoolMap.html +1 -1
  311. package/docs/variables/coinsList.html +1 -1
  312. package/docs/variables/defunctPoolsSet.html +1 -1
  313. package/docs/variables/doubleAssetPoolCoinMap.html +1 -1
  314. package/docs/variables/eventCategories.html +1 -1
  315. package/docs/variables/ignoredWalletsForDailyRevenue.html +1 -1
  316. package/docs/variables/loopingAccountAddresses.html +1 -1
  317. package/docs/variables/loopingPoolCoinMap.html +1 -1
  318. package/docs/variables/naviAssetMap.html +1 -1
  319. package/docs/variables/poolIdPoolNameMap.html +1 -1
  320. package/docs/variables/poolInfo.html +1 -1
  321. package/docs/variables/singleAssetPoolCoinMap.html +1 -1
  322. package/docs/variables/stableCoins.html +1 -1
  323. package/package.json +6 -4
@@ -8,245 +8,270 @@ import { SevenKGateway } from "./7k.js";
8
8
  import { getConf } from "../common/constants.js";
9
9
  import { getReceipts } from "../sui-sdk/functions/getReceipts.js";
10
10
  import { getLatestPrices } from "../utils/prices.js";
11
- import { mintTx, redeemTx, stSuiExchangeRate } from "@alphafi/stsui-sdk";
11
+ import { mintTx, redeemTx, stSuiExchangeRate, getConf as getStSuiConf, } from "@alphafi/stsui-sdk";
12
12
  import { Decimal } from "decimal.js";
13
- export async function zapDepositTxb(inputCoinName, inputCoinAmount, poolName, slippage, // 0.01 --> 1%, 0.001 --> 0.1%
14
- options) {
15
- let txb = new Transaction();
16
- const suiClient = getSuiClient();
17
- const address = options.address;
18
- const coinTypeA = doubleAssetPoolCoinMap[poolName].coin1;
19
- const coinTypeB = doubleAssetPoolCoinMap[poolName].coin2;
20
- const swapObjectA = coinsList[coinTypeA];
21
- const swapObjectB = coinsList[coinTypeB];
22
- const inputObject = coinsList[inputCoinName];
23
- const swapGateway = new SevenKGateway();
24
- let coin1, coin2;
25
- let amountA, amountB;
26
- const amounts = await getAmounts(poolName, true, "100000001");
27
- if (!amounts) {
28
- console.error("Error fetching amounts for zap");
13
+ // Case 1: When the first amount is zero
14
+ async function handleFirstAmountZero(params, coinDetails, suiClient) {
15
+ params.amountA = "0";
16
+ params.coinA = params.txb.moveCall({
17
+ target: "0x2::coin::zero",
18
+ typeArguments: [coinDetails.swapObjectA.type],
19
+ arguments: [],
20
+ });
21
+ if (coinDetails.inputObject.type === coinDetails.swapObjectB.type) {
22
+ params.amountB = coinDetails.inputCoinAmount.toString();
23
+ const res = await splitFromExisting(coinDetails.swapObjectB.name, params.amountB ?? "0", params.txb, suiClient, coinDetails.address);
24
+ params.txb = res.tx;
25
+ params.coinB = res.coinOut;
26
+ }
27
+ else {
28
+ const swapOptionsI2B = {
29
+ pair: { coinA: coinDetails.inputObject, coinB: coinDetails.swapObjectB },
30
+ senderAddress: coinDetails.address,
31
+ inAmount: new BN(coinDetails.inputCoinAmount),
32
+ slippage: coinDetails.slippage,
33
+ };
34
+ const result = await zapSwap(swapOptionsI2B, params.txb, coinDetails.poolName);
35
+ if (result) {
36
+ params.amountB = result.amountOut;
37
+ params.txb = result.tx;
38
+ if (result.coinOut)
39
+ params.coinB = result.coinOut;
40
+ }
41
+ }
42
+ return params;
43
+ }
44
+ // Case 2: When the second amount is zero
45
+ async function handleSecondAmountZero(params, coinDetails, suiClient) {
46
+ params.amountB = "0";
47
+ params.coinB = params.txb.moveCall({
48
+ target: "0x2::coin::zero",
49
+ typeArguments: [coinDetails.swapObjectB.type],
50
+ arguments: [],
51
+ });
52
+ if (coinDetails.inputObject.type === coinDetails.swapObjectA.type) {
53
+ params.amountA = coinDetails.inputCoinAmount.toString();
54
+ const res = await splitFromExisting(coinDetails.swapObjectA.name, params.amountA, params.txb, suiClient, coinDetails.address);
55
+ params.txb = res.tx;
56
+ params.coinA = res.coinOut;
57
+ }
58
+ else {
59
+ const swapOptionsI2A = {
60
+ pair: { coinA: coinDetails.inputObject, coinB: coinDetails.swapObjectA },
61
+ senderAddress: coinDetails.address,
62
+ inAmount: new BN(coinDetails.inputCoinAmount),
63
+ slippage: coinDetails.slippage,
64
+ };
65
+ const result = await zapSwap(swapOptionsI2A, params.txb, coinDetails.poolName);
66
+ if (result) {
67
+ params.amountA = result.amountOut;
68
+ params.txb = result.tx;
69
+ if (result.coinOut)
70
+ params.coinA = result.coinOut;
71
+ }
72
+ }
73
+ return params;
74
+ }
75
+ // Case 3: When both amounts are nonzero
76
+ async function handleNonZeroAmounts(params, coinDetails, amounts, suiClient) {
77
+ const amount1 = Number(amounts[0]);
78
+ const amount2 = Number(amounts[1]);
79
+ const swapOptions = {
80
+ pair: { coinA: coinDetails.swapObjectA, coinB: coinDetails.swapObjectB },
81
+ senderAddress: coinDetails.address,
82
+ inAmount: new BN(amount1),
83
+ slippage: coinDetails.slippage,
84
+ };
85
+ const ratioQuote = await zapGetQuote(coinDetails.swapGateway, swapOptions, coinDetails.poolName);
86
+ if (ratioQuote === undefined) {
87
+ console.error("Error fetching ratioQuote for Zap");
29
88
  return undefined;
30
89
  }
31
- if (Number(amounts[0]) === 0) {
32
- amountA = "0";
33
- coin1 = txb.moveCall({
34
- target: "0x2::coin::zero",
35
- typeArguments: [swapObjectA.type],
36
- arguments: [],
37
- });
38
- if (inputCoinName === coinTypeB) {
39
- amountB = inputCoinAmount.toString();
40
- const res = await splitFromExisting(coinTypeB, amountB, txb, suiClient, address);
41
- txb = res.tx;
42
- coin2 = res.coinOut;
90
+ const amount1InCoinType2 = Number(ratioQuote);
91
+ const totalAmount = amount2 + amount1InCoinType2;
92
+ const inputAmountToType1 = Math.floor((coinDetails.inputCoinAmount * amount1InCoinType2) / totalAmount);
93
+ const inputAmountToType2 = Math.floor((coinDetails.inputCoinAmount * amount2) / totalAmount);
94
+ const swapOptionsI2A = {
95
+ pair: { coinA: coinDetails.inputObject, coinB: coinDetails.swapObjectA },
96
+ senderAddress: coinDetails.address,
97
+ inAmount: new BN(inputAmountToType1),
98
+ slippage: coinDetails.slippage,
99
+ };
100
+ const swapOptionsI2B = {
101
+ pair: { coinA: coinDetails.inputObject, coinB: coinDetails.swapObjectB },
102
+ senderAddress: coinDetails.address,
103
+ inAmount: new BN(inputAmountToType2),
104
+ slippage: coinDetails.slippage,
105
+ };
106
+ let swapResult;
107
+ if (coinDetails.inputObject.type === coinDetails.swapObjectA.type) {
108
+ swapResult = await zapSwap(swapOptionsI2B, params.txb, coinDetails.poolName);
109
+ if (swapResult) {
110
+ params.amountB = swapResult.amountOut;
111
+ params.txb = swapResult.tx;
112
+ if (swapResult.coinOut)
113
+ params.coinB = swapResult.coinOut;
114
+ }
115
+ params.amountA = inputAmountToType1.toString();
116
+ if (swapResult && swapResult.remainingLSTCoin) {
117
+ params.coinA = swapResult.remainingLSTCoin;
43
118
  }
44
119
  else {
45
- const swapOptionsI2B = {
46
- pair: {
47
- coinA: inputObject,
48
- coinB: swapObjectB,
49
- },
50
- senderAddress: address,
51
- inAmount: new BN(inputCoinAmount),
52
- slippage: slippage,
53
- };
54
- const result = await zapSwap(swapOptionsI2B, txb, poolName);
55
- if (result) {
56
- amountB = result.amountOut;
57
- txb = result.tx;
58
- if (result.coinOut) {
59
- coin2 = result.coinOut;
60
- }
61
- }
120
+ const res = await splitFromExisting(coinDetails.swapObjectA.name, params.amountA, params.txb, suiClient, coinDetails.address);
121
+ params.txb = res.tx;
122
+ params.coinA = res.coinOut;
62
123
  }
63
124
  }
64
- else if (Number(amounts[1]) === 0) {
65
- amountB = "0";
66
- coin2 = txb.moveCall({
67
- target: "0x2::coin::zero",
68
- typeArguments: [swapObjectB.type],
69
- arguments: [],
70
- });
71
- if (inputCoinName === coinTypeA) {
72
- amountA = inputCoinAmount.toString();
73
- const res = await splitFromExisting(coinTypeA, amountA, txb, suiClient, address);
74
- txb = res.tx;
75
- coin1 = res.coinOut;
125
+ else if (coinDetails.inputObject.type === coinDetails.swapObjectB.type) {
126
+ swapResult = await zapSwap(swapOptionsI2A, params.txb, coinDetails.poolName);
127
+ if (swapResult) {
128
+ params.amountA = swapResult.amountOut;
129
+ params.txb = swapResult.tx;
130
+ if (swapResult.coinOut)
131
+ params.coinA = swapResult.coinOut;
132
+ }
133
+ if (swapResult && swapResult.remainingLSTCoin) {
134
+ params.coinB = swapResult.remainingLSTCoin;
76
135
  }
77
136
  else {
78
- const swapOptionsI2A = {
79
- pair: {
80
- coinA: inputObject,
81
- coinB: swapObjectA,
82
- },
83
- senderAddress: address,
84
- inAmount: new BN(inputCoinAmount),
85
- slippage: slippage,
86
- };
87
- const result = await zapSwap(swapOptionsI2A, txb, poolName);
88
- if (result) {
89
- amountA = result.amountOut;
90
- txb = result.tx;
91
- if (result.coinOut) {
92
- coin1 = result.coinOut;
93
- }
94
- }
137
+ params.amountB = inputAmountToType2.toString();
138
+ const res = await splitFromExisting(coinDetails.swapObjectB.name, params.amountB, params.txb, suiClient, coinDetails.address);
139
+ params.txb = res.tx;
140
+ params.coinB = res.coinOut;
95
141
  }
96
142
  }
97
143
  else {
98
- const amount1 = Number(amounts[0]);
99
- const amount2 = Number(amounts[1]);
100
- const swapOptions = {
101
- pair: {
102
- coinA: swapObjectA,
103
- coinB: swapObjectB,
104
- },
105
- senderAddress: address,
106
- inAmount: new BN(amount1),
107
- slippage: slippage,
108
- };
109
- const ratioQuote = await zapGetQuote(swapGateway, swapOptions, poolName);
110
- if (ratioQuote === undefined) {
111
- console.error("Error fetching ratioQuote for zap");
112
- return undefined;
113
- }
114
- const amount1InCoinType2 = Number(ratioQuote);
115
- const totalAmount = amount2 + amount1InCoinType2;
116
- const inputAmountToType1 = Math.floor((inputCoinAmount * amount1InCoinType2) / totalAmount);
117
- const inputAmountToType2 = Math.floor((inputCoinAmount * amount2) / totalAmount);
118
- const swapOptionsI2A = {
119
- pair: {
120
- coinA: inputObject,
121
- coinB: swapObjectA,
122
- },
123
- senderAddress: address,
124
- inAmount: new BN(inputAmountToType1),
125
- slippage: slippage,
126
- };
127
- const swapOptionsI2B = {
128
- pair: {
129
- coinA: inputObject,
130
- coinB: swapObjectB,
131
- },
132
- senderAddress: address,
133
- inAmount: new BN(inputAmountToType2),
134
- slippage: slippage,
135
- };
136
- if (inputCoinName === coinTypeA) {
137
- const result = await zapSwap(swapOptionsI2B, txb, poolName);
138
- if (result) {
139
- amountB = result.amountOut;
140
- txb = result.tx;
141
- if (result.coinOut) {
142
- coin2 = result.coinOut;
143
- }
144
- }
145
- amountA = inputAmountToType1.toString();
146
- if (result && result.remainingLSTCoin) {
147
- coin1 = result.remainingLSTCoin;
148
- }
149
- else {
150
- const res = await splitFromExisting(coinTypeA, amountA, txb, suiClient, address);
151
- txb = res.tx;
152
- coin1 = res.coinOut;
153
- }
144
+ swapResult = await zapSwap(swapOptionsI2A, params.txb, coinDetails.poolName);
145
+ if (swapResult) {
146
+ params.amountA = swapResult.amountOut;
147
+ params.txb = swapResult.tx;
148
+ if (swapResult.coinOut)
149
+ params.coinA = swapResult.coinOut;
154
150
  }
155
- else if (inputCoinName === coinTypeB) {
156
- const result = await zapSwap(swapOptionsI2A, txb, poolName);
157
- if (result) {
158
- amountA = result.amountOut;
159
- txb = result.tx;
160
- if (result.coinOut) {
161
- coin1 = result.coinOut;
162
- }
163
- }
164
- if (result && result.remainingLSTCoin) {
165
- coin2 = result.remainingLSTCoin;
166
- }
167
- else {
168
- amountB = inputAmountToType2.toString();
169
- const res = await splitFromExisting(coinTypeB, amountB, txb, suiClient, address);
170
- txb = res.tx;
171
- coin2 = res.coinOut;
172
- }
173
- }
174
- else {
175
- let result = await zapSwap(swapOptionsI2A, txb, poolName);
176
- if (result) {
177
- amountA = result.amountOut;
178
- txb = result.tx;
179
- if (result.coinOut) {
180
- coin1 = result.coinOut;
181
- }
182
- }
183
- result = await zapSwap(swapOptionsI2B, txb, poolName);
184
- if (result) {
185
- amountB = result.amountOut;
186
- txb = result.tx;
187
- if (result.coinOut) {
188
- coin2 = result.coinOut;
189
- }
190
- }
151
+ swapResult = await zapSwap(swapOptionsI2B, params.txb, coinDetails.poolName);
152
+ if (swapResult) {
153
+ params.amountB = swapResult.amountOut;
154
+ params.txb = swapResult.tx;
155
+ if (swapResult.coinOut)
156
+ params.coinB = swapResult.coinOut;
191
157
  }
192
158
  }
193
- if (amountA && amountB && coin1 && coin2) {
159
+ return params;
160
+ }
161
+ export async function zapDepositTxb(inputCoinName, inputCoinAmount, poolName, slippage, // 0.01 --> 1%, 0.001 --> 0.1%
162
+ address) {
163
+ const suiClient = getSuiClient();
164
+ let params = {
165
+ txb: new Transaction(),
166
+ coinA: undefined,
167
+ amountA: undefined,
168
+ coinB: undefined,
169
+ amountB: undefined,
170
+ };
171
+ const coinDetails = {
172
+ swapGateway: new SevenKGateway(),
173
+ inputObject: coinsList[inputCoinName],
174
+ inputCoinAmount: inputCoinAmount,
175
+ swapObjectA: coinsList[doubleAssetPoolCoinMap[poolName].coin1],
176
+ swapObjectB: coinsList[doubleAssetPoolCoinMap[poolName].coin2],
177
+ address: address,
178
+ slippage: slippage,
179
+ poolName: poolName,
180
+ };
181
+ const amounts = await getAmounts(poolName, true, "100000001", true);
182
+ if (Number(amounts[0]) === 0) {
183
+ params = await handleFirstAmountZero(params, coinDetails, suiClient);
184
+ }
185
+ else if (Number(amounts[1]) === 0) {
186
+ params = await handleSecondAmountZero(params, coinDetails, suiClient);
187
+ }
188
+ else {
189
+ const result = await handleNonZeroAmounts(params, coinDetails, amounts, suiClient);
190
+ if (!result)
191
+ return undefined;
192
+ params = result;
193
+ }
194
+ if (params.amountA && params.amountB && params.coinA && params.coinB) {
194
195
  // fee charge
195
- const fee_address = getConf().FEE_ADDRESS;
196
196
  const feePercentage = 0.05;
197
- const amountAFee = ((Number(amountA) * feePercentage) / 100).toFixed(0);
198
- const amountBFee = ((Number(amountB) * feePercentage) / 100).toFixed(0);
199
- const [feeCoinA] = txb.splitCoins(coin1, [amountAFee]);
200
- const [feeCoinB] = txb.splitCoins(coin2, [amountBFee]);
201
- txb.transferObjects([feeCoinA, feeCoinB], fee_address);
197
+ const amountAFee = ((Number(params.amountA) * feePercentage) / 100).toFixed(0);
198
+ const amountBFee = ((Number(params.amountB) * feePercentage) / 100).toFixed(0);
199
+ const [feeCoinA] = params.txb.splitCoins(params.coinA, [amountAFee]);
200
+ const [feeCoinB] = params.txb.splitCoins(params.coinB, [amountBFee]);
201
+ params.txb.transferObjects([feeCoinA, feeCoinB], getConf().FEE_ADDRESS);
202
+ // Removing fee amounts from amounts and some slippage
202
203
  const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
203
204
  const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
204
- amountA = (Number(amountA) * 0.995).toString();
205
- amountB = (Number(amountB) * 0.995).toString();
205
+ params.amountA = (Number(params.amountA) * 0.995).toString();
206
+ params.amountB = (Number(params.amountB) * 0.995).toString();
207
+ // Conditional deposit calls based on pool and protocol
208
+ const receipt = await getReceipts(poolName, address, true);
209
+ let amounts = await getAmounts(poolName, true, params.amountA, false);
210
+ if (amounts[0] > params.amountA || amounts[1] > params.amountB) {
211
+ amounts = await getAmounts(poolName, false, params.amountB, false);
212
+ }
213
+ const [depositCoinA] = params.txb.splitCoins(params.coinA, [amounts[0]]);
214
+ const [depositCoinB] = params.txb.splitCoins(params.coinB, [amounts[1]]);
215
+ let someReceipt;
216
+ if (receipt.length == 0) {
217
+ [someReceipt] = params.txb.moveCall({
218
+ target: `0x1::option::none`,
219
+ typeArguments: [poolInfo[poolName].receiptType],
220
+ arguments: [],
221
+ });
222
+ }
223
+ else {
224
+ [someReceipt] = params.txb.moveCall({
225
+ target: `0x1::option::some`,
226
+ typeArguments: [receipt[0].content.type],
227
+ arguments: [params.txb.object(receipt[0].objectId)],
228
+ });
229
+ }
206
230
  if (poolInfo[poolName].parentProtocolName === "CETUS") {
207
231
  if (pool1 === "CETUS" && pool2 === "SUI") {
208
- txb = await depositCetusSuiTxb(amountA, amountB, poolName, { address }, txb, coin1, coin2);
232
+ params.txb = await depositCetusSuiTxb(params.txb, someReceipt, coinDetails.poolName, depositCoinA, depositCoinB);
209
233
  }
210
234
  else if (pool2 === "SUI") {
211
- txb = await depositCetusAlphaSuiTxb(amountA, amountB, poolName, { address }, txb, coin1, coin2);
235
+ params.txb = await depositCetusAlphaSuiTxb(params.txb, someReceipt, coinDetails.poolName, depositCoinA, depositCoinB);
212
236
  }
213
237
  else {
214
- txb = await depositCetus(amountA, amountB, poolName, { address }, txb, coin1, coin2);
238
+ params.txb = await depositCetusTxb(params.txb, someReceipt, coinDetails.poolName, depositCoinA, depositCoinB);
215
239
  }
216
240
  }
217
241
  else if (poolInfo[poolName].parentProtocolName === "BLUEFIN") {
218
242
  if (poolName === "BLUEFIN-NAVX-VSUI" ||
219
243
  poolName === "BLUEFIN-ALPHA-USDC" ||
220
244
  poolName === "BLUEFIN-BLUE-USDC") {
221
- txb = await depositBluefinType2Txb(amountA, amountB, poolName, { address }, txb, coin1, coin2);
245
+ params.txb = await depositBluefinType2Txb(params.txb, someReceipt, coinDetails.poolName, depositCoinA, depositCoinB);
222
246
  }
223
247
  else if (pool1 === "SUI") {
224
- txb = await depositBluefinSuiFirstTxb(amountA, amountB, poolName, { address }, txb, coin1, coin2);
248
+ params.txb = await depositBluefinSuiFirstTxb(params.txb, someReceipt, coinDetails.poolName, depositCoinA, depositCoinB);
225
249
  }
226
250
  else if (pool2 === "SUI") {
227
- txb = await depositBluefinSuiSecondTxb(amountA, amountB, poolName, { address }, txb, coin1, coin2);
251
+ params.txb = await depositBluefinSuiSecondTxb(params.txb, someReceipt, coinDetails.poolName, depositCoinA, depositCoinB);
228
252
  }
229
253
  else if (pool1 === "STSUI" || pool2 === "STSUI") {
230
- txb = await depositBluefinStsuiTxb(amountA, amountB, poolName, { address }, txb, coin1, coin2);
254
+ params.txb = await depositBluefinStsuiTxb(params.txb, someReceipt, poolName, depositCoinA, depositCoinB);
231
255
  }
232
256
  else {
233
- txb = await depositBluefinType1Txb(amountA, amountB, poolName, { address }, txb, coin1, coin2);
257
+ params.txb = await depositBluefinType1Txb(params.txb, someReceipt, coinDetails.poolName, depositCoinA, depositCoinB);
234
258
  }
235
259
  }
260
+ params.txb.transferObjects([params.coinA, params.coinB], address);
236
261
  }
237
- txb.setGasBudget(100000000);
238
- return txb;
262
+ params.txb.setGasBudget(100000000);
263
+ return params.txb;
239
264
  }
240
265
  async function zapGetQuote(swapGateway, swapOptions, poolName) {
241
266
  if (swapOptions.pair.coinA.name === "SUI" &&
242
267
  swapOptions.pair.coinB.name === "STSUI") {
243
- const exchangeRate = new Decimal(await stSuiExchangeRate());
268
+ const exchangeRate = new Decimal(await stSuiExchangeRate(getStSuiConf().LST_INFO, true));
244
269
  const amount = new Decimal(swapOptions.inAmount ? swapOptions.inAmount.toString() : "0");
245
270
  return amount.div(exchangeRate).toString();
246
271
  }
247
272
  else if (swapOptions.pair.coinA.name === "STSUI" &&
248
273
  swapOptions.pair.coinB.name === "SUI") {
249
- const exchangeRate = new Decimal(await stSuiExchangeRate());
274
+ const exchangeRate = new Decimal(await stSuiExchangeRate(getStSuiConf().LST_INFO, true));
250
275
  const amount = new Decimal(swapOptions.inAmount ? swapOptions.inAmount.toString() : "0");
251
276
  return amount.mul(exchangeRate).toString();
252
277
  }
@@ -324,132 +349,16 @@ async function splitFromExisting(coinType, amount, txb, suiClient, address) {
324
349
  coinOut: coin,
325
350
  };
326
351
  }
327
- const depositCetus = async (amountA, amountB, poolName, options, transaction = undefined, coin1Arg, coin2Arg) => {
328
- const address = options.address;
329
- let txb;
330
- if (transaction)
331
- txb = transaction;
332
- else
333
- txb = new Transaction();
334
- poolName = poolName.toUpperCase();
352
+ const depositCetusTxb = async (txb, someReceipt, poolName, depositCoinA, depositCoinB) => {
335
353
  const poolinfo = poolInfo[poolName];
336
354
  const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
337
355
  const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
338
- const receipt = await getReceipts(poolName, address, true);
339
- amountA = (Number(amountA) * 0.999).toString();
340
- amountB = (Number(amountB) * 0.999).toString();
341
- let amounts = await getAmounts(poolName, true, amountA);
342
- if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {
343
- amounts = await getAmounts(poolName, false, amountB);
344
- }
345
- if (amounts && coin1Arg !== undefined && coin2Arg !== undefined) {
346
- const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);
347
- const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);
348
- let someReceipt;
349
- if (receipt.length == 0) {
350
- [someReceipt] = txb.moveCall({
351
- target: `0x1::option::none`,
352
- typeArguments: [poolInfo[poolName].receiptType],
353
- arguments: [],
354
- });
355
- }
356
- else {
357
- [someReceipt] = txb.moveCall({
358
- target: `0x1::option::some`,
359
- typeArguments: [receipt[0].content.type],
360
- arguments: [txb.object(receipt[0].objectId)],
361
- });
362
- }
363
- if (poolName == "WUSDC-WBTC" ||
364
- poolName == "USDC-USDT" ||
365
- poolName == "USDC-WUSDC" ||
366
- poolName == "USDC-ETH") {
367
- txb.moveCall({
368
- target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool_base_a::user_deposit`,
369
- typeArguments: [coinsList[pool1].type, coinsList[pool2].type],
370
- arguments: [
371
- txb.object(getConf().VERSION),
372
- someReceipt,
373
- txb.object(poolinfo.poolId),
374
- depositCoinA,
375
- depositCoinB,
376
- txb.object(getConf().ALPHA_DISTRIBUTOR),
377
- txb.object(poolinfo.investorId),
378
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
379
- txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),
380
- txb.object(cetusPoolMap[`${pool1}-SUI`]),
381
- txb.object(cetusPoolMap["CETUS-SUI"]),
382
- txb.object(cetusPoolMap[poolName]),
383
- txb.object(getConf().CLOCK_PACKAGE_ID),
384
- ],
385
- });
386
- }
387
- else {
388
- txb.moveCall({
389
- target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool::user_deposit`,
390
- typeArguments: [coinsList[pool1].type, coinsList[pool2].type],
391
- arguments: [
392
- txb.object(getConf().VERSION),
393
- someReceipt,
394
- txb.object(poolinfo.poolId),
395
- depositCoinA,
396
- depositCoinB,
397
- txb.object(getConf().ALPHA_DISTRIBUTOR),
398
- txb.object(poolinfo.investorId),
399
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
400
- txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),
401
- txb.object(cetusPoolMap[`${pool2}-SUI`]),
402
- txb.object(cetusPoolMap["CETUS-SUI"]),
403
- txb.object(cetusPoolMap[poolName]),
404
- txb.object(getConf().CLOCK_PACKAGE_ID),
405
- ],
406
- });
407
- }
408
- txb.transferObjects([coin1Arg, coin2Arg], address);
409
- }
410
- else {
411
- throw new Error(`No ${pool1} or ${pool2} Coins`);
412
- }
413
- return txb;
414
- };
415
- const depositCetusAlphaSuiTxb = async (amountA, amountB, poolName, options, transaction = undefined, coin1Arg, coin2Arg) => {
416
- const address = options.address;
417
- let txb;
418
- if (transaction)
419
- txb = transaction;
420
- else
421
- txb = new Transaction();
422
- poolName = poolName.toUpperCase();
423
- const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
424
- const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
425
- const receipt = await getReceipts(poolName, address, true);
426
- amountA = (Number(amountA) * 0.999).toString();
427
- amountB = (Number(amountB) * 0.999).toString();
428
- let amounts = await getAmounts(poolName, true, amountA);
429
- if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {
430
- amounts = await getAmounts(poolName, false, amountB);
431
- }
432
- if (amounts && coin1Arg != undefined && coin2Arg !== undefined) {
433
- const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);
434
- const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);
435
- const poolinfo = poolInfo[poolName];
436
- let someReceipt;
437
- if (receipt.length == 0) {
438
- [someReceipt] = txb.moveCall({
439
- target: `0x1::option::none`,
440
- typeArguments: [poolinfo.receiptType],
441
- arguments: [],
442
- });
443
- }
444
- else {
445
- [someReceipt] = txb.moveCall({
446
- target: `0x1::option::some`,
447
- typeArguments: [receipt[0].content.type],
448
- arguments: [txb.object(receipt[0].objectId)],
449
- });
450
- }
356
+ if (poolName == "WUSDC-WBTC" ||
357
+ poolName == "USDC-USDT" ||
358
+ poolName == "USDC-WUSDC" ||
359
+ poolName == "USDC-ETH") {
451
360
  txb.moveCall({
452
- target: `${poolinfo.packageId}::alphafi_cetus_sui_pool::user_deposit`,
361
+ target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool_base_a::user_deposit`,
453
362
  typeArguments: [coinsList[pool1].type, coinsList[pool2].type],
454
363
  arguments: [
455
364
  txb.object(getConf().VERSION),
@@ -461,59 +370,18 @@ const depositCetusAlphaSuiTxb = async (amountA, amountB, poolName, options, tran
461
370
  txb.object(poolinfo.investorId),
462
371
  txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
463
372
  txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),
373
+ txb.object(cetusPoolMap[`${pool1}-SUI`]),
464
374
  txb.object(cetusPoolMap["CETUS-SUI"]),
465
375
  txb.object(cetusPoolMap[poolName]),
466
376
  txb.object(getConf().CLOCK_PACKAGE_ID),
467
377
  ],
468
378
  });
469
- txb.transferObjects([coin1Arg, coin2Arg], address);
470
379
  }
471
380
  else {
472
- throw new Error(`No ${pool1} or ${pool2} Coins`);
473
- }
474
- return txb;
475
- };
476
- const depositCetusSuiTxb = async (amountA, amountB, poolName, options, transaction = undefined, coin1Arg, coin2Arg) => {
477
- const address = options.address;
478
- let txb;
479
- if (transaction)
480
- txb = transaction;
481
- else
482
- txb = new Transaction();
483
- poolName = poolName.toUpperCase();
484
- const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
485
- const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
486
- const receipt = await getReceipts(poolName, address, true);
487
- amountA = (Number(amountA) * 0.999).toString();
488
- amountB = (Number(amountB) * 0.999).toString();
489
- let amounts = await getAmounts(poolName, true, amountA);
490
- if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {
491
- amounts = await getAmounts(poolName, false, amountB);
492
- }
493
- if (amounts && coin1Arg && coin2Arg) {
494
- const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);
495
- const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);
496
- const poolinfo = poolInfo[poolName];
497
- let someReceipt;
498
- if (receipt.length == 0) {
499
- [someReceipt] = txb.moveCall({
500
- target: `0x1::option::none`,
501
- typeArguments: [poolinfo.receiptType],
502
- arguments: [],
503
- });
504
- }
505
- else {
506
- [someReceipt] = txb.moveCall({
507
- target: `0x1::option::some`,
508
- typeArguments: [receipt[0].content.type],
509
- arguments: [txb.object(receipt[0].objectId)],
510
- });
511
- }
512
381
  txb.moveCall({
513
- target: `${poolinfo.packageId}::alphafi_cetus_sui_pool::user_deposit`,
382
+ target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool::user_deposit`,
514
383
  typeArguments: [coinsList[pool1].type, coinsList[pool2].type],
515
384
  arguments: [
516
- txb.object(getConf().ALPHA_2_VERSION),
517
385
  txb.object(getConf().VERSION),
518
386
  someReceipt,
519
387
  txb.object(poolinfo.poolId),
@@ -523,1196 +391,1038 @@ const depositCetusSuiTxb = async (amountA, amountB, poolName, options, transacti
523
391
  txb.object(poolinfo.investorId),
524
392
  txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
525
393
  txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),
394
+ txb.object(cetusPoolMap[`${pool2}-SUI`]),
395
+ txb.object(cetusPoolMap["CETUS-SUI"]),
526
396
  txb.object(cetusPoolMap[poolName]),
527
397
  txb.object(getConf().CLOCK_PACKAGE_ID),
528
398
  ],
529
399
  });
530
- txb.transferObjects([coin1Arg, coin2Arg], address);
531
- }
532
- else {
533
- throw new Error(`No ${pool1} or ${pool2} Coins`);
534
400
  }
535
401
  return txb;
536
402
  };
537
- const depositBluefinSuiFirstTxb = async (amountA, amountB, poolName, options, transaction = undefined, coin1Arg, coin2Arg) => {
538
- const address = options.address;
539
- let txb;
540
- if (transaction)
541
- txb = transaction;
542
- else
543
- txb = new Transaction();
544
- poolName = poolName.toUpperCase();
403
+ const depositCetusAlphaSuiTxb = async (txb, someReceipt, poolName, depositCoinA, depositCoinB) => {
404
+ const poolinfo = poolInfo[poolName];
545
405
  const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
546
406
  const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
547
- const receipt = await getReceipts(poolName, address, true);
548
- amountA = (Number(amountA) * 0.999).toString();
549
- amountB = (Number(amountB) * 0.999).toString();
550
- let amounts = await getAmounts(poolName, true, amountA);
551
- if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {
552
- amounts = await getAmounts(poolName, false, amountB);
553
- }
554
- if (amounts && coin1Arg && coin2Arg) {
555
- const [depositCoinA] = txb.splitCoins(txb.gas, [amounts[0]]);
556
- const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);
557
- const poolinfo = poolInfo[poolName];
558
- let someReceipt;
559
- if (receipt.length == 0) {
560
- [someReceipt] = txb.moveCall({
561
- target: `0x1::option::none`,
562
- typeArguments: [poolinfo.receiptType],
563
- arguments: [],
564
- });
565
- }
566
- else {
567
- [someReceipt] = txb.moveCall({
568
- target: `0x1::option::some`,
569
- typeArguments: [receipt[0].content.type],
570
- arguments: [txb.object(receipt[0].objectId)],
571
- });
572
- }
573
- if (poolName === "BLUEFIN-SUI-USDC") {
574
- txb.moveCall({
575
- target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit_v2`,
576
- typeArguments: [
577
- coinsList[pool1].type,
578
- coinsList[pool2].type,
579
- coinsList["BLUE"].type,
580
- coinsList["SUI"].type,
581
- ],
582
- arguments: [
583
- txb.object(getConf().ALPHA_4_VERSION),
584
- txb.object(getConf().VERSION),
585
- someReceipt,
586
- txb.object(poolinfo.poolId),
587
- depositCoinA,
588
- depositCoinB,
589
- txb.object(getConf().ALPHA_DISTRIBUTOR),
590
- txb.object(poolinfo.investorId),
591
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
592
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
593
- txb.object(getConf().BLUEFIN_SUI_USDC_POOL),
594
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
595
- txb.object(cetusPoolMap["USDC-SUI"]),
596
- txb.object(getConf().LST_INFO),
597
- txb.object(getConf().SUI_SYSTEM_STATE),
598
- txb.object(getConf().CLOCK_PACKAGE_ID),
599
- ],
600
- });
601
- }
602
- else if (poolName === "BLUEFIN-SUI-BUCK") {
603
- txb.moveCall({
604
- target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit_v2`,
605
- typeArguments: [
606
- coinsList[pool1].type,
607
- coinsList[pool2].type,
608
- coinsList["BLUE"].type,
609
- coinsList["SUI"].type,
610
- ],
611
- arguments: [
612
- txb.object(getConf().ALPHA_4_VERSION),
613
- txb.object(getConf().VERSION),
614
- someReceipt,
615
- txb.object(poolinfo.poolId),
616
- depositCoinA,
617
- depositCoinB,
618
- txb.object(getConf().ALPHA_DISTRIBUTOR),
619
- txb.object(poolinfo.investorId),
620
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
621
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
622
- txb.object(getConf().BLUEFIN_SUI_BUCK_POOL),
623
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
624
- txb.object(cetusPoolMap["BUCK-SUI"]),
625
- txb.object(getConf().LST_INFO),
626
- txb.object(getConf().SUI_SYSTEM_STATE),
627
- txb.object(getConf().CLOCK_PACKAGE_ID),
628
- ],
629
- });
630
- }
631
- else if (poolName === "BLUEFIN-SUI-AUSD") {
632
- txb.moveCall({
633
- target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit_v2`,
634
- typeArguments: [
635
- coinsList[pool1].type,
636
- coinsList[pool2].type,
637
- coinsList["BLUE"].type,
638
- coinsList["SUI"].type,
639
- ],
640
- arguments: [
641
- txb.object(getConf().ALPHA_4_VERSION),
642
- txb.object(getConf().VERSION),
643
- someReceipt,
644
- txb.object(poolinfo.poolId),
645
- depositCoinA,
646
- depositCoinB,
647
- txb.object(getConf().ALPHA_DISTRIBUTOR),
648
- txb.object(poolinfo.investorId),
649
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
650
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
651
- txb.object(getConf().BLUEFIN_SUI_AUSD_POOL),
652
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
653
- txb.object(cetusPoolMap["AUSD-SUI"]),
654
- txb.object(getConf().LST_INFO),
655
- txb.object(getConf().SUI_SYSTEM_STATE),
656
- txb.object(getConf().CLOCK_PACKAGE_ID),
657
- ],
658
- });
659
- }
660
- else if (poolName === "BLUEFIN-AUTOBALANCE-SUI-USDC") {
661
- txb.moveCall({
662
- target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit_v2`,
663
- typeArguments: [
664
- coinsList[pool1].type,
665
- coinsList[pool2].type,
666
- coinsList["BLUE"].type,
667
- coinsList["SUI"].type,
668
- ],
669
- arguments: [
670
- txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
671
- someReceipt,
672
- txb.object(poolinfo.poolId),
673
- depositCoinA,
674
- depositCoinB,
675
- txb.object(getConf().ALPHA_DISTRIBUTOR),
676
- txb.object(poolinfo.investorId),
677
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
678
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
679
- txb.object(getConf().BLUEFIN_SUI_USDC_POOL),
680
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
681
- txb.object(cetusPoolMap["USDC-SUI"]),
682
- txb.object(getConf().LST_INFO),
683
- txb.object(getConf().SUI_SYSTEM_STATE),
684
- txb.object(getConf().CLOCK_PACKAGE_ID),
685
- ],
686
- });
687
- }
688
- txb.transferObjects([coin1Arg, coin2Arg], address);
689
- }
690
- else {
691
- throw new Error(`No ${pool1} or ${pool2} Coins`);
692
- }
407
+ txb.moveCall({
408
+ target: `${poolinfo.packageId}::alphafi_cetus_sui_pool::user_deposit`,
409
+ typeArguments: [coinsList[pool1].type, coinsList[pool2].type],
410
+ arguments: [
411
+ txb.object(getConf().VERSION),
412
+ someReceipt,
413
+ txb.object(poolinfo.poolId),
414
+ depositCoinA,
415
+ depositCoinB,
416
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
417
+ txb.object(poolinfo.investorId),
418
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
419
+ txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),
420
+ txb.object(cetusPoolMap["CETUS-SUI"]),
421
+ txb.object(cetusPoolMap[poolName]),
422
+ txb.object(getConf().CLOCK_PACKAGE_ID),
423
+ ],
424
+ });
425
+ return txb;
426
+ };
427
+ const depositCetusSuiTxb = async (txb, someReceipt, poolName, depositCoinA, depositCoinB) => {
428
+ const poolinfo = poolInfo[poolName];
429
+ const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
430
+ const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
431
+ txb.moveCall({
432
+ target: `${poolinfo.packageId}::alphafi_cetus_sui_pool::user_deposit`,
433
+ typeArguments: [coinsList[pool1].type, coinsList[pool2].type],
434
+ arguments: [
435
+ txb.object(getConf().ALPHA_2_VERSION),
436
+ txb.object(getConf().VERSION),
437
+ someReceipt,
438
+ txb.object(poolinfo.poolId),
439
+ depositCoinA,
440
+ depositCoinB,
441
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
442
+ txb.object(poolinfo.investorId),
443
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
444
+ txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),
445
+ txb.object(cetusPoolMap[poolName]),
446
+ txb.object(getConf().CLOCK_PACKAGE_ID),
447
+ ],
448
+ });
693
449
  return txb;
694
450
  };
695
- const depositBluefinType1Txb = async (amountA, amountB, poolName, options, transaction = undefined, coin1Arg, coin2Arg) => {
696
- const address = options.address;
697
- let txb;
698
- if (transaction)
699
- txb = transaction;
700
- else
701
- txb = new Transaction();
702
- poolName = poolName.toUpperCase();
451
+ const depositBluefinSuiFirstTxb = async (txb, someReceipt, poolName, depositCoinA, depositCoinB) => {
452
+ const poolinfo = poolInfo[poolName];
703
453
  const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
704
454
  const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
705
- const receipt = await getReceipts(poolName, address, true);
706
- amountA = (Number(amountA) * 0.999).toString();
707
- amountB = (Number(amountB) * 0.999).toString();
708
- let amounts = await getAmounts(poolName, true, amountA);
709
- if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {
710
- amounts = await getAmounts(poolName, false, amountB);
455
+ if (poolName === "BLUEFIN-SUI-USDC") {
456
+ txb.moveCall({
457
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit_v2`,
458
+ typeArguments: [
459
+ coinsList[pool1].type,
460
+ coinsList[pool2].type,
461
+ coinsList["BLUE"].type,
462
+ coinsList["SUI"].type,
463
+ ],
464
+ arguments: [
465
+ txb.object(getConf().ALPHA_4_VERSION),
466
+ txb.object(getConf().VERSION),
467
+ someReceipt,
468
+ txb.object(poolinfo.poolId),
469
+ depositCoinA,
470
+ depositCoinB,
471
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
472
+ txb.object(poolinfo.investorId),
473
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
474
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
475
+ txb.object(getConf().BLUEFIN_SUI_USDC_POOL),
476
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
477
+ txb.object(cetusPoolMap["USDC-SUI"]),
478
+ txb.object(getConf().LST_INFO),
479
+ txb.object(getConf().SUI_SYSTEM_STATE),
480
+ txb.object(getConf().CLOCK_PACKAGE_ID),
481
+ ],
482
+ });
711
483
  }
712
- if (amounts && coin1Arg && coin2Arg) {
713
- const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);
714
- const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);
715
- const poolinfo = poolInfo[poolName];
716
- let someReceipt;
717
- if (receipt.length == 0) {
718
- [someReceipt] = txb.moveCall({
719
- target: `0x1::option::none`,
720
- typeArguments: [poolinfo.receiptType],
721
- arguments: [],
722
- });
723
- }
724
- else {
725
- [someReceipt] = txb.moveCall({
726
- target: `0x1::option::some`,
727
- typeArguments: [receipt[0].content.type],
728
- arguments: [txb.object(receipt[0].objectId)],
729
- });
730
- }
731
- if (poolName === "BLUEFIN-USDT-USDC") {
732
- txb.moveCall({
733
- target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
734
- typeArguments: [
735
- coinsList[pool1].type,
736
- coinsList[pool2].type,
737
- coinsList["BLUE"].type,
738
- coinsList["SUI"].type,
739
- ],
740
- arguments: [
741
- txb.object(getConf().ALPHA_4_VERSION),
742
- txb.object(getConf().VERSION),
743
- someReceipt,
744
- txb.object(poolinfo.poolId),
745
- depositCoinA,
746
- depositCoinB,
747
- txb.object(getConf().ALPHA_DISTRIBUTOR),
748
- txb.object(poolinfo.investorId),
749
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
750
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
751
- txb.object(getConf().BLUEFIN_USDT_USDC_POOL),
752
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
753
- txb.object(cetusPoolMap["USDC-USDT"]),
754
- txb.object(cetusPoolMap["USDC-SUI"]),
755
- txb.object(getConf().LST_INFO),
756
- txb.object(getConf().SUI_SYSTEM_STATE),
757
- txb.object(getConf().CLOCK_PACKAGE_ID),
758
- ],
759
- });
760
- }
761
- else if (poolName === "BLUEFIN-AUSD-USDC") {
762
- txb.moveCall({
763
- target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
764
- typeArguments: [
765
- coinsList[pool1].type,
766
- coinsList[pool2].type,
767
- coinsList["BLUE"].type,
768
- coinsList["SUI"].type,
769
- ],
770
- arguments: [
771
- txb.object(getConf().ALPHA_4_VERSION),
772
- txb.object(getConf().VERSION),
773
- someReceipt,
774
- txb.object(poolinfo.poolId),
775
- depositCoinA,
776
- depositCoinB,
777
- txb.object(getConf().ALPHA_DISTRIBUTOR),
778
- txb.object(poolinfo.investorId),
779
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
780
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
781
- txb.object(getConf().BLUEFIN_AUSD_USDC_POOL),
782
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
783
- txb.object(cetusPoolMap["USDC-AUSD"]),
784
- txb.object(cetusPoolMap["USDC-SUI"]),
785
- txb.object(getConf().LST_INFO),
786
- txb.object(getConf().SUI_SYSTEM_STATE),
787
- txb.object(getConf().CLOCK_PACKAGE_ID),
788
- ],
789
- });
790
- }
791
- else if (poolName === "BLUEFIN-WBTC-USDC") {
792
- txb.moveCall({
793
- target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
794
- typeArguments: [
795
- coinsList[pool1].type,
796
- coinsList[pool2].type,
797
- coinsList["BLUE"].type,
798
- coinsList["SUI"].type,
799
- ],
800
- arguments: [
801
- txb.object(getConf().ALPHA_4_VERSION),
802
- txb.object(getConf().VERSION),
803
- someReceipt,
804
- txb.object(poolinfo.poolId),
805
- depositCoinA,
806
- depositCoinB,
807
- txb.object(getConf().ALPHA_DISTRIBUTOR),
808
- txb.object(poolinfo.investorId),
809
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
810
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
811
- txb.object(getConf().BLUEFIN_WBTC_USDC_POOL),
812
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
813
- txb.object(cetusPoolMap["USDC-WBTC"]),
814
- txb.object(cetusPoolMap["USDC-SUI"]),
815
- txb.object(getConf().LST_INFO),
816
- txb.object(getConf().SUI_SYSTEM_STATE),
817
- txb.object(getConf().CLOCK_PACKAGE_ID),
818
- ],
819
- });
820
- }
821
- else if (poolName === "BLUEFIN-SEND-USDC") {
822
- txb.moveCall({
823
- target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
824
- typeArguments: [
825
- coinsList[pool1].type,
826
- coinsList[pool2].type,
827
- coinsList["BLUE"].type,
828
- coinsList["SUI"].type,
829
- ],
830
- arguments: [
831
- txb.object(getConf().ALPHA_4_VERSION),
832
- txb.object(getConf().VERSION),
833
- someReceipt,
834
- txb.object(poolinfo.poolId),
835
- depositCoinA,
836
- depositCoinB,
837
- txb.object(getConf().ALPHA_DISTRIBUTOR),
838
- txb.object(poolinfo.investorId),
839
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
840
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
841
- txb.object(getConf().BLUEFIN_SEND_USDC_POOL),
842
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
843
- txb.object(cetusPoolMap["USDC-SEND"]),
844
- txb.object(cetusPoolMap["USDC-SUI"]),
845
- txb.object(getConf().LST_INFO),
846
- txb.object(getConf().SUI_SYSTEM_STATE),
847
- txb.object(getConf().CLOCK_PACKAGE_ID),
848
- ],
849
- });
850
- }
851
- else if (poolName === "BLUEFIN-STSUI-USDC") {
852
- txb.moveCall({
853
- target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,
854
- typeArguments: [
855
- coinsList[pool1].type,
856
- coinsList[pool2].type,
857
- coinsList["BLUE"].type,
858
- coinsList["SUI"].type,
859
- ],
860
- arguments: [
861
- txb.object(getConf().ALPHA_4_VERSION),
862
- txb.object(getConf().VERSION),
863
- someReceipt,
864
- txb.object(poolinfo.poolId),
865
- depositCoinA,
866
- depositCoinB,
867
- txb.object(getConf().ALPHA_DISTRIBUTOR),
868
- txb.object(poolinfo.investorId),
869
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
870
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
871
- txb.object(getConf().BLUEFIN_STSUI_USDC_POOL),
872
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
873
- txb.object(cetusPoolMap["USDC-STSUI"]),
874
- txb.object(cetusPoolMap["USDC-SUI"]),
875
- txb.object(getConf().CLOCK_PACKAGE_ID),
876
- ],
877
- });
878
- }
879
- else if (poolName === "BLUEFIN-AUTOBALANCE-USDT-USDC") {
880
- txb.moveCall({
881
- target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
882
- typeArguments: [
883
- coinsList["USDT"].type,
884
- coinsList["USDC"].type,
885
- coinsList["BLUE"].type,
886
- coinsList["SUI"].type,
887
- ],
888
- arguments: [
889
- txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
890
- someReceipt,
891
- txb.object(poolinfo.poolId),
892
- depositCoinA,
893
- depositCoinB,
894
- txb.object(getConf().ALPHA_DISTRIBUTOR),
895
- txb.object(poolinfo.investorId),
896
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
897
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
898
- txb.object(getConf().BLUEFIN_USDT_USDC_POOL),
899
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
900
- txb.object(cetusPoolMap["USDC-USDT"]),
901
- txb.object(cetusPoolMap["USDC-SUI"]),
902
- txb.object(getConf().LST_INFO),
903
- txb.object(getConf().SUI_SYSTEM_STATE),
904
- txb.object(getConf().CLOCK_PACKAGE_ID),
905
- ],
906
- });
907
- }
908
- else if (poolName === "BLUEFIN-SUIUSDT-USDC") {
909
- txb.moveCall({
910
- target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
911
- typeArguments: [
912
- coinsList[pool1].type,
913
- coinsList[pool2].type,
914
- coinsList["BLUE"].type,
915
- coinsList["SUI"].type,
916
- ],
917
- arguments: [
918
- txb.object(getConf().ALPHA_4_VERSION),
919
- txb.object(getConf().VERSION),
920
- someReceipt,
921
- txb.object(poolinfo.poolId),
922
- depositCoinA,
923
- depositCoinB,
924
- txb.object(getConf().ALPHA_DISTRIBUTOR),
925
- txb.object(poolinfo.investorId),
926
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
927
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
928
- txb.object(getConf().BLUEFIN_SUIUSDT_USDC_POOL),
929
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
930
- txb.object(cetusPoolMap["USDC-SUIUSDT"]),
931
- txb.object(cetusPoolMap["USDC-SUI"]),
932
- txb.object(getConf().LST_INFO),
933
- txb.object(getConf().SUI_SYSTEM_STATE),
934
- txb.object(getConf().CLOCK_PACKAGE_ID),
935
- ],
936
- });
937
- }
938
- else if (poolName === "BLUEFIN-AUTOBALANCE-SUIUSDT-USDC") {
939
- txb.moveCall({
940
- target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
941
- typeArguments: [
942
- coinsList["SUIUSDT"].type,
943
- coinsList["USDC"].type,
944
- coinsList["BLUE"].type,
945
- coinsList["SUI"].type,
946
- ],
947
- arguments: [
948
- txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
949
- someReceipt,
950
- txb.object(poolinfo.poolId),
951
- depositCoinA,
952
- depositCoinB,
953
- txb.object(getConf().ALPHA_DISTRIBUTOR),
954
- txb.object(poolinfo.investorId),
955
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
956
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
957
- txb.object(getConf().BLUEFIN_SUIUSDT_USDC_POOL),
958
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
959
- txb.object(cetusPoolMap["USDC-SUIUSDT"]),
960
- txb.object(cetusPoolMap["USDC-SUI"]),
961
- txb.object(getConf().LST_INFO),
962
- txb.object(getConf().SUI_SYSTEM_STATE),
963
- txb.object(getConf().CLOCK_PACKAGE_ID),
964
- ],
965
- });
966
- }
967
- else if (poolName === "BLUEFIN-AUTOBALANCE-DEEP-BLUE") {
968
- txb.moveCall({
969
- target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
970
- typeArguments: [
971
- coinsList["DEEP"].type,
972
- coinsList["BLUE"].type,
973
- coinsList["BLUE"].type,
974
- coinsList["SUI"].type,
975
- ],
976
- arguments: [
977
- txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
978
- someReceipt,
979
- txb.object(poolinfo.poolId),
980
- depositCoinA,
981
- depositCoinB,
982
- txb.object(getConf().ALPHA_DISTRIBUTOR),
983
- txb.object(poolinfo.investorId),
984
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
985
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
986
- txb.object(getConf().BLUEFIN_DEEP_BLUE_POOL),
987
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
988
- txb.object(cetusPoolMap["BLUE-DEEP"]),
989
- txb.object(cetusPoolMap["BLUE-SUI"]),
990
- txb.object(getConf().LST_INFO),
991
- txb.object(getConf().SUI_SYSTEM_STATE),
992
- txb.object(getConf().CLOCK_PACKAGE_ID),
993
- ],
994
- });
995
- }
996
- txb.transferObjects([coin1Arg, coin2Arg], address);
484
+ else if (poolName === "BLUEFIN-SUI-BUCK") {
485
+ txb.moveCall({
486
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit_v2`,
487
+ typeArguments: [
488
+ coinsList[pool1].type,
489
+ coinsList[pool2].type,
490
+ coinsList["BLUE"].type,
491
+ coinsList["SUI"].type,
492
+ ],
493
+ arguments: [
494
+ txb.object(getConf().ALPHA_4_VERSION),
495
+ txb.object(getConf().VERSION),
496
+ someReceipt,
497
+ txb.object(poolinfo.poolId),
498
+ depositCoinA,
499
+ depositCoinB,
500
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
501
+ txb.object(poolinfo.investorId),
502
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
503
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
504
+ txb.object(getConf().BLUEFIN_SUI_BUCK_POOL),
505
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
506
+ txb.object(cetusPoolMap["BUCK-SUI"]),
507
+ txb.object(getConf().LST_INFO),
508
+ txb.object(getConf().SUI_SYSTEM_STATE),
509
+ txb.object(getConf().CLOCK_PACKAGE_ID),
510
+ ],
511
+ });
997
512
  }
998
- else {
999
- throw new Error(`No ${pool1} or ${pool2} Coins`);
513
+ else if (poolName === "BLUEFIN-SUI-AUSD") {
514
+ txb.moveCall({
515
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit_v2`,
516
+ typeArguments: [
517
+ coinsList[pool1].type,
518
+ coinsList[pool2].type,
519
+ coinsList["BLUE"].type,
520
+ coinsList["SUI"].type,
521
+ ],
522
+ arguments: [
523
+ txb.object(getConf().ALPHA_4_VERSION),
524
+ txb.object(getConf().VERSION),
525
+ someReceipt,
526
+ txb.object(poolinfo.poolId),
527
+ depositCoinA,
528
+ depositCoinB,
529
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
530
+ txb.object(poolinfo.investorId),
531
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
532
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
533
+ txb.object(getConf().BLUEFIN_SUI_AUSD_POOL),
534
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
535
+ txb.object(cetusPoolMap["AUSD-SUI"]),
536
+ txb.object(getConf().LST_INFO),
537
+ txb.object(getConf().SUI_SYSTEM_STATE),
538
+ txb.object(getConf().CLOCK_PACKAGE_ID),
539
+ ],
540
+ });
541
+ }
542
+ else if (poolName === "BLUEFIN-AUTOBALANCE-SUI-USDC") {
543
+ txb.moveCall({
544
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit_v2`,
545
+ typeArguments: [
546
+ coinsList[pool1].type,
547
+ coinsList[pool2].type,
548
+ coinsList["BLUE"].type,
549
+ coinsList["SUI"].type,
550
+ ],
551
+ arguments: [
552
+ txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
553
+ someReceipt,
554
+ txb.object(poolinfo.poolId),
555
+ depositCoinA,
556
+ depositCoinB,
557
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
558
+ txb.object(poolinfo.investorId),
559
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
560
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
561
+ txb.object(getConf().BLUEFIN_SUI_USDC_POOL),
562
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
563
+ txb.object(cetusPoolMap["USDC-SUI"]),
564
+ txb.object(getConf().LST_INFO),
565
+ txb.object(getConf().SUI_SYSTEM_STATE),
566
+ txb.object(getConf().CLOCK_PACKAGE_ID),
567
+ ],
568
+ });
1000
569
  }
1001
570
  return txb;
1002
571
  };
1003
- const depositBluefinType2Txb = async (amountA, amountB, poolName, options, transaction = undefined, coin1Arg, coin2Arg) => {
1004
- const address = options.address;
1005
- let txb;
1006
- if (transaction)
1007
- txb = transaction;
1008
- else
1009
- txb = new Transaction();
1010
- poolName = poolName.toUpperCase();
572
+ const depositBluefinType1Txb = async (txb, someReceipt, poolName, depositCoinA, depositCoinB) => {
573
+ const poolinfo = poolInfo[poolName];
1011
574
  const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
1012
575
  const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
1013
- const receipt = await getReceipts(poolName, address, true);
1014
- amountA = (Number(amountA) * 0.999).toString();
1015
- amountB = (Number(amountB) * 0.999).toString();
1016
- let amounts = await getAmounts(poolName, true, amountA);
1017
- if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {
1018
- amounts = await getAmounts(poolName, false, amountB);
576
+ if (poolName === "BLUEFIN-USDT-USDC") {
577
+ txb.moveCall({
578
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
579
+ typeArguments: [
580
+ coinsList[pool1].type,
581
+ coinsList[pool2].type,
582
+ coinsList["BLUE"].type,
583
+ coinsList["SUI"].type,
584
+ ],
585
+ arguments: [
586
+ txb.object(getConf().ALPHA_4_VERSION),
587
+ txb.object(getConf().VERSION),
588
+ someReceipt,
589
+ txb.object(poolinfo.poolId),
590
+ depositCoinA,
591
+ depositCoinB,
592
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
593
+ txb.object(poolinfo.investorId),
594
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
595
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
596
+ txb.object(getConf().BLUEFIN_USDT_USDC_POOL),
597
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
598
+ txb.object(cetusPoolMap["USDC-USDT"]),
599
+ txb.object(cetusPoolMap["USDC-SUI"]),
600
+ txb.object(getConf().LST_INFO),
601
+ txb.object(getConf().SUI_SYSTEM_STATE),
602
+ txb.object(getConf().CLOCK_PACKAGE_ID),
603
+ ],
604
+ });
1019
605
  }
1020
- if (amounts && coin1Arg && coin2Arg) {
1021
- const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);
1022
- const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);
1023
- const poolinfo = poolInfo[poolName];
1024
- let someReceipt;
1025
- if (receipt.length == 0) {
1026
- [someReceipt] = txb.moveCall({
1027
- target: `0x1::option::none`,
1028
- typeArguments: [poolinfo.receiptType],
1029
- arguments: [],
1030
- });
1031
- }
1032
- else {
1033
- [someReceipt] = txb.moveCall({
1034
- target: `0x1::option::some`,
1035
- typeArguments: [receipt[0].content.type],
1036
- arguments: [txb.object(receipt[0].objectId)],
1037
- });
1038
- }
1039
- if (poolName === "BLUEFIN-ALPHA-USDC") {
1040
- txb.moveCall({
1041
- target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit_v2`,
1042
- typeArguments: [
1043
- coinsList[pool1].type,
1044
- coinsList[pool2].type,
1045
- coinsList["BLUE"].type,
1046
- coinsList["SUI"].type,
1047
- ],
1048
- arguments: [
1049
- txb.object(getConf().ALPHA_4_VERSION),
1050
- txb.object(getConf().VERSION),
1051
- someReceipt,
1052
- txb.object(poolinfo.poolId),
1053
- depositCoinA,
1054
- depositCoinB,
1055
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1056
- txb.object(poolinfo.investorId),
1057
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1058
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1059
- txb.object(getConf().BLUEFIN_ALPHA_USDC_POOL),
1060
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1061
- txb.object(cetusPoolMap["ALPHA-USDC"]),
1062
- txb.object(cetusPoolMap["USDC-SUI"]),
1063
- txb.object(getConf().LST_INFO),
1064
- txb.object(getConf().SUI_SYSTEM_STATE),
1065
- txb.object(getConf().CLOCK_PACKAGE_ID),
1066
- ],
1067
- });
1068
- }
1069
- else if (poolName === "BLUEFIN-NAVX-VSUI") {
1070
- txb.moveCall({
1071
- target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit_v2`,
1072
- typeArguments: [
1073
- coinsList[pool1].type,
1074
- coinsList[pool2].type,
1075
- coinsList["BLUE"].type,
1076
- coinsList["SUI"].type,
1077
- ],
1078
- arguments: [
1079
- txb.object(getConf().ALPHA_4_VERSION),
1080
- txb.object(getConf().VERSION),
1081
- someReceipt,
1082
- txb.object(poolinfo.poolId),
1083
- depositCoinA,
1084
- depositCoinB,
1085
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1086
- txb.object(poolinfo.investorId),
1087
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1088
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1089
- txb.object(getConf().BLUEFIN_NAVX_VSUI_POOL),
1090
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1091
- txb.object(cetusPoolMap["NAVX-VSUI"]),
1092
- txb.object(cetusPoolMap["VSUI-SUI"]),
1093
- txb.object(getConf().LST_INFO),
1094
- txb.object(getConf().SUI_SYSTEM_STATE),
1095
- txb.object(getConf().CLOCK_PACKAGE_ID),
1096
- ],
1097
- });
1098
- }
1099
- else if (poolName === "BLUEFIN-BLUE-USDC") {
1100
- txb.moveCall({
1101
- target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit_v2`,
1102
- typeArguments: [
1103
- coinsList[pool1].type,
1104
- coinsList[pool2].type,
1105
- coinsList["DEEP"].type,
1106
- coinsList["SUI"].type,
1107
- ],
1108
- arguments: [
1109
- txb.object(getConf().ALPHA_4_VERSION),
1110
- txb.object(getConf().VERSION),
1111
- someReceipt,
1112
- txb.object(poolinfo.poolId),
1113
- depositCoinA,
1114
- depositCoinB,
1115
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1116
- txb.object(poolinfo.investorId),
1117
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1118
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1119
- txb.object(getConf().BLUEFIN_BLUE_USDC_POOL),
1120
- txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
1121
- txb.object(cetusPoolMap["BLUE-USDC"]),
1122
- txb.object(cetusPoolMap["USDC-SUI"]),
1123
- txb.object(getConf().LST_INFO),
1124
- txb.object(getConf().SUI_SYSTEM_STATE),
1125
- txb.object(getConf().CLOCK_PACKAGE_ID),
1126
- ],
1127
- });
1128
- }
1129
- else if (poolName === "BLUEFIN-STSUI-ETH") {
1130
- txb.moveCall({
1131
- target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit`,
1132
- typeArguments: [
1133
- coinsList[pool1].type,
1134
- coinsList[pool2].type,
1135
- coinsList["BLUE"].type,
1136
- coinsList["SUI"].type,
1137
- ],
1138
- arguments: [
1139
- txb.object(getConf().ALPHA_4_VERSION),
1140
- txb.object(getConf().VERSION),
1141
- someReceipt,
1142
- txb.object(poolinfo.poolId),
1143
- depositCoinA,
1144
- depositCoinB,
1145
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1146
- txb.object(poolinfo.investorId),
1147
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1148
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1149
- txb.object(getConf().BLUEFIN_STSUI_ETH_POOL),
1150
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1151
- txb.object(cetusPoolMap["STSUI-ETH"]),
1152
- txb.object(cetusPoolMap["ETH-SUI"]),
1153
- txb.object(getConf().CLOCK_PACKAGE_ID),
1154
- ],
1155
- });
1156
- }
1157
- else if (poolName === "BLUEFIN-STSUI-WSOL") {
1158
- txb.moveCall({
1159
- target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit`,
1160
- typeArguments: [
1161
- coinsList[pool1].type,
1162
- coinsList[pool2].type,
1163
- coinsList["BLUE"].type,
1164
- coinsList["SUI"].type,
1165
- ],
1166
- arguments: [
1167
- txb.object(getConf().ALPHA_4_VERSION),
1168
- txb.object(getConf().VERSION),
1169
- someReceipt,
1170
- txb.object(poolinfo.poolId),
1171
- depositCoinA,
1172
- depositCoinB,
1173
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1174
- txb.object(poolinfo.investorId),
1175
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1176
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1177
- txb.object(getConf().BLUEFIN_STSUI_WSOL_POOL),
1178
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1179
- txb.object(cetusPoolMap["STSUI-WSOL"]),
1180
- txb.object(cetusPoolMap["WSOL-SUI"]),
1181
- txb.object(getConf().CLOCK_PACKAGE_ID),
1182
- ],
1183
- });
1184
- }
1185
- txb.transferObjects([coin1Arg, coin2Arg], address);
606
+ else if (poolName === "BLUEFIN-AUSD-USDC") {
607
+ txb.moveCall({
608
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
609
+ typeArguments: [
610
+ coinsList[pool1].type,
611
+ coinsList[pool2].type,
612
+ coinsList["BLUE"].type,
613
+ coinsList["SUI"].type,
614
+ ],
615
+ arguments: [
616
+ txb.object(getConf().ALPHA_4_VERSION),
617
+ txb.object(getConf().VERSION),
618
+ someReceipt,
619
+ txb.object(poolinfo.poolId),
620
+ depositCoinA,
621
+ depositCoinB,
622
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
623
+ txb.object(poolinfo.investorId),
624
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
625
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
626
+ txb.object(getConf().BLUEFIN_AUSD_USDC_POOL),
627
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
628
+ txb.object(cetusPoolMap["USDC-AUSD"]),
629
+ txb.object(cetusPoolMap["USDC-SUI"]),
630
+ txb.object(getConf().LST_INFO),
631
+ txb.object(getConf().SUI_SYSTEM_STATE),
632
+ txb.object(getConf().CLOCK_PACKAGE_ID),
633
+ ],
634
+ });
1186
635
  }
1187
- else {
1188
- throw new Error(`No ${pool1} or ${pool2} Coins`);
636
+ else if (poolName === "BLUEFIN-WBTC-USDC") {
637
+ txb.moveCall({
638
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
639
+ typeArguments: [
640
+ coinsList[pool1].type,
641
+ coinsList[pool2].type,
642
+ coinsList["BLUE"].type,
643
+ coinsList["SUI"].type,
644
+ ],
645
+ arguments: [
646
+ txb.object(getConf().ALPHA_4_VERSION),
647
+ txb.object(getConf().VERSION),
648
+ someReceipt,
649
+ txb.object(poolinfo.poolId),
650
+ depositCoinA,
651
+ depositCoinB,
652
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
653
+ txb.object(poolinfo.investorId),
654
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
655
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
656
+ txb.object(getConf().BLUEFIN_WBTC_USDC_POOL),
657
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
658
+ txb.object(cetusPoolMap["USDC-WBTC"]),
659
+ txb.object(cetusPoolMap["USDC-SUI"]),
660
+ txb.object(getConf().LST_INFO),
661
+ txb.object(getConf().SUI_SYSTEM_STATE),
662
+ txb.object(getConf().CLOCK_PACKAGE_ID),
663
+ ],
664
+ });
665
+ }
666
+ else if (poolName === "BLUEFIN-SEND-USDC") {
667
+ txb.moveCall({
668
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
669
+ typeArguments: [
670
+ coinsList[pool1].type,
671
+ coinsList[pool2].type,
672
+ coinsList["BLUE"].type,
673
+ coinsList["SUI"].type,
674
+ ],
675
+ arguments: [
676
+ txb.object(getConf().ALPHA_4_VERSION),
677
+ txb.object(getConf().VERSION),
678
+ someReceipt,
679
+ txb.object(poolinfo.poolId),
680
+ depositCoinA,
681
+ depositCoinB,
682
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
683
+ txb.object(poolinfo.investorId),
684
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
685
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
686
+ txb.object(getConf().BLUEFIN_SEND_USDC_POOL),
687
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
688
+ txb.object(cetusPoolMap["USDC-SEND"]),
689
+ txb.object(cetusPoolMap["USDC-SUI"]),
690
+ txb.object(getConf().LST_INFO),
691
+ txb.object(getConf().SUI_SYSTEM_STATE),
692
+ txb.object(getConf().CLOCK_PACKAGE_ID),
693
+ ],
694
+ });
695
+ }
696
+ else if (poolName === "BLUEFIN-STSUI-USDC") {
697
+ txb.moveCall({
698
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,
699
+ typeArguments: [
700
+ coinsList[pool1].type,
701
+ coinsList[pool2].type,
702
+ coinsList["BLUE"].type,
703
+ coinsList["SUI"].type,
704
+ ],
705
+ arguments: [
706
+ txb.object(getConf().ALPHA_4_VERSION),
707
+ txb.object(getConf().VERSION),
708
+ someReceipt,
709
+ txb.object(poolinfo.poolId),
710
+ depositCoinA,
711
+ depositCoinB,
712
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
713
+ txb.object(poolinfo.investorId),
714
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
715
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
716
+ txb.object(getConf().BLUEFIN_STSUI_USDC_POOL),
717
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
718
+ txb.object(cetusPoolMap["USDC-STSUI"]),
719
+ txb.object(cetusPoolMap["USDC-SUI"]),
720
+ txb.object(getConf().CLOCK_PACKAGE_ID),
721
+ ],
722
+ });
723
+ }
724
+ else if (poolName === "BLUEFIN-AUTOBALANCE-USDT-USDC") {
725
+ txb.moveCall({
726
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
727
+ typeArguments: [
728
+ coinsList["USDT"].type,
729
+ coinsList["USDC"].type,
730
+ coinsList["BLUE"].type,
731
+ coinsList["SUI"].type,
732
+ ],
733
+ arguments: [
734
+ txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
735
+ someReceipt,
736
+ txb.object(poolinfo.poolId),
737
+ depositCoinA,
738
+ depositCoinB,
739
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
740
+ txb.object(poolinfo.investorId),
741
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
742
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
743
+ txb.object(getConf().BLUEFIN_USDT_USDC_POOL),
744
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
745
+ txb.object(cetusPoolMap["USDC-USDT"]),
746
+ txb.object(cetusPoolMap["USDC-SUI"]),
747
+ txb.object(getConf().LST_INFO),
748
+ txb.object(getConf().SUI_SYSTEM_STATE),
749
+ txb.object(getConf().CLOCK_PACKAGE_ID),
750
+ ],
751
+ });
752
+ }
753
+ else if (poolName === "BLUEFIN-SUIUSDT-USDC") {
754
+ txb.moveCall({
755
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
756
+ typeArguments: [
757
+ coinsList[pool1].type,
758
+ coinsList[pool2].type,
759
+ coinsList["BLUE"].type,
760
+ coinsList["SUI"].type,
761
+ ],
762
+ arguments: [
763
+ txb.object(getConf().ALPHA_4_VERSION),
764
+ txb.object(getConf().VERSION),
765
+ someReceipt,
766
+ txb.object(poolinfo.poolId),
767
+ depositCoinA,
768
+ depositCoinB,
769
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
770
+ txb.object(poolinfo.investorId),
771
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
772
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
773
+ txb.object(getConf().BLUEFIN_SUIUSDT_USDC_POOL),
774
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
775
+ txb.object(cetusPoolMap["USDC-SUIUSDT"]),
776
+ txb.object(cetusPoolMap["USDC-SUI"]),
777
+ txb.object(getConf().LST_INFO),
778
+ txb.object(getConf().SUI_SYSTEM_STATE),
779
+ txb.object(getConf().CLOCK_PACKAGE_ID),
780
+ ],
781
+ });
782
+ }
783
+ else if (poolName === "BLUEFIN-AUTOBALANCE-SUIUSDT-USDC") {
784
+ txb.moveCall({
785
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
786
+ typeArguments: [
787
+ coinsList["SUIUSDT"].type,
788
+ coinsList["USDC"].type,
789
+ coinsList["BLUE"].type,
790
+ coinsList["SUI"].type,
791
+ ],
792
+ arguments: [
793
+ txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
794
+ someReceipt,
795
+ txb.object(poolinfo.poolId),
796
+ depositCoinA,
797
+ depositCoinB,
798
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
799
+ txb.object(poolinfo.investorId),
800
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
801
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
802
+ txb.object(getConf().BLUEFIN_SUIUSDT_USDC_POOL),
803
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
804
+ txb.object(cetusPoolMap["USDC-SUIUSDT"]),
805
+ txb.object(cetusPoolMap["USDC-SUI"]),
806
+ txb.object(getConf().LST_INFO),
807
+ txb.object(getConf().SUI_SYSTEM_STATE),
808
+ txb.object(getConf().CLOCK_PACKAGE_ID),
809
+ ],
810
+ });
811
+ }
812
+ else if (poolName === "BLUEFIN-AUTOBALANCE-DEEP-BLUE") {
813
+ txb.moveCall({
814
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit_v2`,
815
+ typeArguments: [
816
+ coinsList["DEEP"].type,
817
+ coinsList["BLUE"].type,
818
+ coinsList["BLUE"].type,
819
+ coinsList["SUI"].type,
820
+ ],
821
+ arguments: [
822
+ txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
823
+ someReceipt,
824
+ txb.object(poolinfo.poolId),
825
+ depositCoinA,
826
+ depositCoinB,
827
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
828
+ txb.object(poolinfo.investorId),
829
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
830
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
831
+ txb.object(getConf().BLUEFIN_DEEP_BLUE_POOL),
832
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
833
+ txb.object(cetusPoolMap["BLUE-DEEP"]),
834
+ txb.object(cetusPoolMap["BLUE-SUI"]),
835
+ txb.object(getConf().LST_INFO),
836
+ txb.object(getConf().SUI_SYSTEM_STATE),
837
+ txb.object(getConf().CLOCK_PACKAGE_ID),
838
+ ],
839
+ });
1189
840
  }
1190
841
  return txb;
1191
842
  };
1192
- const depositBluefinSuiSecondTxb = async (amountA, amountB, poolName, options, transaction = undefined, coin1Arg, coin2Arg) => {
1193
- const address = options.address;
1194
- let txb;
1195
- if (transaction)
1196
- txb = transaction;
1197
- else
1198
- txb = new Transaction();
1199
- poolName = poolName.toUpperCase();
843
+ const depositBluefinType2Txb = async (txb, someReceipt, poolName, depositCoinA, depositCoinB) => {
844
+ const poolinfo = poolInfo[poolName];
1200
845
  const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
1201
846
  const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
1202
- const receipt = await getReceipts(poolName, address, true);
1203
- amountA = (Number(amountA) * 0.999).toString();
1204
- amountB = (Number(amountB) * 0.999).toString();
1205
- let amounts = await getAmounts(poolName, true, amountA);
1206
- if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {
1207
- amounts = await getAmounts(poolName, false, amountB);
847
+ if (poolName === "BLUEFIN-ALPHA-USDC") {
848
+ txb.moveCall({
849
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit_v2`,
850
+ typeArguments: [
851
+ coinsList[pool1].type,
852
+ coinsList[pool2].type,
853
+ coinsList["BLUE"].type,
854
+ coinsList["SUI"].type,
855
+ ],
856
+ arguments: [
857
+ txb.object(getConf().ALPHA_4_VERSION),
858
+ txb.object(getConf().VERSION),
859
+ someReceipt,
860
+ txb.object(poolinfo.poolId),
861
+ depositCoinA,
862
+ depositCoinB,
863
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
864
+ txb.object(poolinfo.investorId),
865
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
866
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
867
+ txb.object(getConf().BLUEFIN_ALPHA_USDC_POOL),
868
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
869
+ txb.object(cetusPoolMap["ALPHA-USDC"]),
870
+ txb.object(cetusPoolMap["USDC-SUI"]),
871
+ txb.object(getConf().LST_INFO),
872
+ txb.object(getConf().SUI_SYSTEM_STATE),
873
+ txb.object(getConf().CLOCK_PACKAGE_ID),
874
+ ],
875
+ });
1208
876
  }
1209
- if (amounts && coin1Arg && coin2Arg) {
1210
- const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);
1211
- const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);
1212
- const poolinfo = poolInfo[poolName];
1213
- let someReceipt;
1214
- if (receipt.length == 0) {
1215
- [someReceipt] = txb.moveCall({
1216
- target: `0x1::option::none`,
1217
- typeArguments: [poolinfo.receiptType],
1218
- arguments: [],
1219
- });
1220
- }
1221
- else {
1222
- [someReceipt] = txb.moveCall({
1223
- target: `0x1::option::some`,
1224
- typeArguments: [receipt[0].content.type],
1225
- arguments: [txb.object(receipt[0].objectId)],
1226
- });
1227
- }
1228
- if (poolName === "BLUEFIN-BLUE-SUI") {
1229
- txb.moveCall({
1230
- target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1231
- typeArguments: [
1232
- coinsList[pool1].type,
1233
- coinsList[pool2].type,
1234
- coinsList["DEEP"].type,
1235
- coinsList["SUI"].type,
1236
- ],
1237
- arguments: [
1238
- txb.object(getConf().ALPHA_4_VERSION),
1239
- txb.object(getConf().VERSION),
1240
- someReceipt,
1241
- txb.object(poolinfo.poolId),
1242
- depositCoinA,
1243
- depositCoinB,
1244
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1245
- txb.object(poolinfo.investorId),
1246
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1247
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1248
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1249
- txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
1250
- txb.object(cetusPoolMap["BLUE-SUI"]),
1251
- txb.object(getConf().LST_INFO),
1252
- txb.object(getConf().SUI_SYSTEM_STATE),
1253
- txb.object(getConf().CLOCK_PACKAGE_ID),
1254
- ],
1255
- });
1256
- }
1257
- else if (poolName === "BLUEFIN-WBTC-SUI") {
1258
- txb.moveCall({
1259
- target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1260
- typeArguments: [
1261
- coinsList[pool1].type,
1262
- coinsList[pool2].type,
1263
- coinsList["BLUE"].type,
1264
- coinsList["SUI"].type,
1265
- ],
1266
- arguments: [
1267
- txb.object(getConf().ALPHA_4_VERSION),
1268
- txb.object(getConf().VERSION),
1269
- someReceipt,
1270
- txb.object(poolinfo.poolId),
1271
- depositCoinA,
1272
- depositCoinB,
1273
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1274
- txb.object(poolinfo.investorId),
1275
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1276
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1277
- txb.object(getConf().BLUEFIN_WBTC_SUI_POOL),
1278
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1279
- txb.object(cetusPoolMap["WBTC-SUI"]),
1280
- txb.object(getConf().LST_INFO),
1281
- txb.object(getConf().SUI_SYSTEM_STATE),
1282
- txb.object(getConf().CLOCK_PACKAGE_ID),
1283
- ],
1284
- });
1285
- }
1286
- else if (poolName === "BLUEFIN-DEEP-SUI") {
1287
- txb.moveCall({
1288
- target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1289
- typeArguments: [
1290
- coinsList[pool1].type,
1291
- coinsList[pool2].type,
1292
- coinsList["BLUE"].type,
1293
- coinsList["SUI"].type,
1294
- ],
1295
- arguments: [
1296
- txb.object(getConf().ALPHA_4_VERSION),
1297
- txb.object(getConf().VERSION),
1298
- someReceipt,
1299
- txb.object(poolinfo.poolId),
1300
- depositCoinA,
1301
- depositCoinB,
1302
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1303
- txb.object(poolinfo.investorId),
1304
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1305
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1306
- txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
1307
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1308
- txb.object(cetusPoolMap["DEEP-SUI"]),
1309
- txb.object(getConf().LST_INFO),
1310
- txb.object(getConf().SUI_SYSTEM_STATE),
1311
- txb.object(getConf().CLOCK_PACKAGE_ID),
1312
- ],
1313
- });
1314
- }
1315
- else if (poolName === "BLUEFIN-STSUI-SUI") {
1316
- txb.moveCall({
1317
- target: `${poolinfo.packageId}::alphafi_bluefin_stsui_sui_pool::user_deposit`,
1318
- typeArguments: [
1319
- coinsList[pool1].type,
1320
- coinsList[pool2].type,
1321
- coinsList["BLUE"].type,
1322
- ],
1323
- arguments: [
1324
- txb.object(getConf().ALPHA_4_VERSION),
1325
- txb.object(getConf().VERSION),
1326
- someReceipt,
1327
- txb.object(poolinfo.poolId),
1328
- depositCoinA,
1329
- depositCoinB,
1330
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1331
- txb.object(poolinfo.investorId),
1332
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1333
- txb.object(getConf().BLUEFIN_STSUI_SUI_POOL),
1334
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1335
- txb.object(getConf().LST_INFO),
1336
- txb.object(getConf().SUI_SYSTEM_STATE),
1337
- txb.object(getConf().CLOCK_PACKAGE_ID),
1338
- ],
1339
- });
1340
- }
1341
- else if (poolName === "BLUEFIN-AUTOBALANCE-DEEP-SUI") {
1342
- txb.moveCall({
1343
- target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1344
- typeArguments: [
1345
- coinsList[pool1].type,
1346
- coinsList[pool2].type,
1347
- coinsList["BLUE"].type,
1348
- ],
1349
- arguments: [
1350
- txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
1351
- someReceipt,
1352
- txb.object(poolinfo.poolId),
1353
- depositCoinA,
1354
- depositCoinB,
1355
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1356
- txb.object(poolinfo.investorId),
1357
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1358
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1359
- txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
1360
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1361
- txb.object(cetusPoolMap["DEEP-SUI"]),
1362
- txb.object(getConf().LST_INFO),
1363
- txb.object(getConf().SUI_SYSTEM_STATE),
1364
- txb.object(getConf().CLOCK_PACKAGE_ID),
1365
- ],
1366
- });
1367
- }
1368
- else if (poolName === "BLUEFIN-AUTOBALANCE-BLUE-SUI") {
1369
- txb.moveCall({
1370
- target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1371
- typeArguments: [
1372
- coinsList[pool1].type,
1373
- coinsList[pool2].type,
1374
- coinsList["DEEP"].type,
1375
- ],
1376
- arguments: [
1377
- txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
1378
- someReceipt,
1379
- txb.object(poolinfo.poolId),
1380
- depositCoinA,
1381
- depositCoinB,
1382
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1383
- txb.object(poolinfo.investorId),
1384
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1385
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1386
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1387
- txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
1388
- txb.object(cetusPoolMap["BLUE-SUI"]),
1389
- txb.object(getConf().LST_INFO),
1390
- txb.object(getConf().SUI_SYSTEM_STATE),
1391
- txb.object(getConf().CLOCK_PACKAGE_ID),
1392
- ],
1393
- });
1394
- }
1395
- txb.transferObjects([coin1Arg, coin2Arg], address);
877
+ else if (poolName === "BLUEFIN-NAVX-VSUI") {
878
+ txb.moveCall({
879
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit_v2`,
880
+ typeArguments: [
881
+ coinsList[pool1].type,
882
+ coinsList[pool2].type,
883
+ coinsList["BLUE"].type,
884
+ coinsList["SUI"].type,
885
+ ],
886
+ arguments: [
887
+ txb.object(getConf().ALPHA_4_VERSION),
888
+ txb.object(getConf().VERSION),
889
+ someReceipt,
890
+ txb.object(poolinfo.poolId),
891
+ depositCoinA,
892
+ depositCoinB,
893
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
894
+ txb.object(poolinfo.investorId),
895
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
896
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
897
+ txb.object(getConf().BLUEFIN_NAVX_VSUI_POOL),
898
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
899
+ txb.object(cetusPoolMap["NAVX-VSUI"]),
900
+ txb.object(cetusPoolMap["VSUI-SUI"]),
901
+ txb.object(getConf().LST_INFO),
902
+ txb.object(getConf().SUI_SYSTEM_STATE),
903
+ txb.object(getConf().CLOCK_PACKAGE_ID),
904
+ ],
905
+ });
1396
906
  }
1397
- else {
1398
- throw new Error(`No ${pool1} or ${pool2} Coins`);
907
+ else if (poolName === "BLUEFIN-BLUE-USDC") {
908
+ txb.moveCall({
909
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit_v2`,
910
+ typeArguments: [
911
+ coinsList[pool1].type,
912
+ coinsList[pool2].type,
913
+ coinsList["DEEP"].type,
914
+ coinsList["SUI"].type,
915
+ ],
916
+ arguments: [
917
+ txb.object(getConf().ALPHA_4_VERSION),
918
+ txb.object(getConf().VERSION),
919
+ someReceipt,
920
+ txb.object(poolinfo.poolId),
921
+ depositCoinA,
922
+ depositCoinB,
923
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
924
+ txb.object(poolinfo.investorId),
925
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
926
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
927
+ txb.object(getConf().BLUEFIN_BLUE_USDC_POOL),
928
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
929
+ txb.object(cetusPoolMap["BLUE-USDC"]),
930
+ txb.object(cetusPoolMap["USDC-SUI"]),
931
+ txb.object(getConf().LST_INFO),
932
+ txb.object(getConf().SUI_SYSTEM_STATE),
933
+ txb.object(getConf().CLOCK_PACKAGE_ID),
934
+ ],
935
+ });
936
+ }
937
+ else if (poolName === "BLUEFIN-STSUI-ETH") {
938
+ txb.moveCall({
939
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit`,
940
+ typeArguments: [
941
+ coinsList[pool1].type,
942
+ coinsList[pool2].type,
943
+ coinsList["BLUE"].type,
944
+ coinsList["SUI"].type,
945
+ ],
946
+ arguments: [
947
+ txb.object(getConf().ALPHA_4_VERSION),
948
+ txb.object(getConf().VERSION),
949
+ someReceipt,
950
+ txb.object(poolinfo.poolId),
951
+ depositCoinA,
952
+ depositCoinB,
953
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
954
+ txb.object(poolinfo.investorId),
955
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
956
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
957
+ txb.object(getConf().BLUEFIN_STSUI_ETH_POOL),
958
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
959
+ txb.object(cetusPoolMap["STSUI-ETH"]),
960
+ txb.object(cetusPoolMap["ETH-SUI"]),
961
+ txb.object(getConf().CLOCK_PACKAGE_ID),
962
+ ],
963
+ });
964
+ }
965
+ else if (poolName === "BLUEFIN-STSUI-WSOL") {
966
+ txb.moveCall({
967
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit`,
968
+ typeArguments: [
969
+ coinsList[pool1].type,
970
+ coinsList[pool2].type,
971
+ coinsList["BLUE"].type,
972
+ coinsList["SUI"].type,
973
+ ],
974
+ arguments: [
975
+ txb.object(getConf().ALPHA_4_VERSION),
976
+ txb.object(getConf().VERSION),
977
+ someReceipt,
978
+ txb.object(poolinfo.poolId),
979
+ depositCoinA,
980
+ depositCoinB,
981
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
982
+ txb.object(poolinfo.investorId),
983
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
984
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
985
+ txb.object(getConf().BLUEFIN_STSUI_WSOL_POOL),
986
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
987
+ txb.object(cetusPoolMap["STSUI-WSOL"]),
988
+ txb.object(cetusPoolMap["WSOL-SUI"]),
989
+ txb.object(getConf().CLOCK_PACKAGE_ID),
990
+ ],
991
+ });
1399
992
  }
1400
993
  return txb;
1401
994
  };
1402
- const depositBluefinStsuiTxb = async (amountA, amountB, poolName, options, transaction = undefined, coin1Arg, coin2Arg) => {
1403
- const address = options.address;
1404
- let txb;
1405
- if (transaction)
1406
- txb = transaction;
1407
- else
1408
- txb = new Transaction();
1409
- poolName = poolName.toUpperCase();
995
+ const depositBluefinSuiSecondTxb = async (txb, someReceipt, poolName, depositCoinA, depositCoinB) => {
996
+ const poolinfo = poolInfo[poolName];
1410
997
  const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
1411
998
  const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
1412
- const receipt = await getReceipts(poolName, address, true);
1413
- amountA = (Number(amountA) * 0.999).toString();
1414
- amountB = (Number(amountB) * 0.999).toString();
1415
- let amounts = await getAmounts(poolName, true, amountA);
1416
- if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {
1417
- amounts = await getAmounts(poolName, false, amountB);
999
+ if (poolName === "BLUEFIN-BLUE-SUI") {
1000
+ txb.moveCall({
1001
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1002
+ typeArguments: [
1003
+ coinsList[pool1].type,
1004
+ coinsList[pool2].type,
1005
+ coinsList["DEEP"].type,
1006
+ coinsList["SUI"].type,
1007
+ ],
1008
+ arguments: [
1009
+ txb.object(getConf().ALPHA_4_VERSION),
1010
+ txb.object(getConf().VERSION),
1011
+ someReceipt,
1012
+ txb.object(poolinfo.poolId),
1013
+ depositCoinA,
1014
+ depositCoinB,
1015
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1016
+ txb.object(poolinfo.investorId),
1017
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1018
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1019
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1020
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
1021
+ txb.object(cetusPoolMap["BLUE-SUI"]),
1022
+ txb.object(getConf().LST_INFO),
1023
+ txb.object(getConf().SUI_SYSTEM_STATE),
1024
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1025
+ ],
1026
+ });
1418
1027
  }
1419
- if (amounts && coin1Arg && coin2Arg) {
1420
- const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);
1421
- const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);
1422
- const poolinfo = poolInfo[poolName];
1423
- let someReceipt;
1424
- if (receipt.length == 0) {
1425
- [someReceipt] = txb.moveCall({
1426
- target: `0x1::option::none`,
1427
- typeArguments: [poolinfo.receiptType],
1428
- arguments: [],
1429
- });
1430
- }
1431
- else {
1432
- [someReceipt] = txb.moveCall({
1433
- target: `0x1::option::some`,
1434
- typeArguments: [receipt[0].content.type],
1435
- arguments: [txb.object(receipt[0].objectId)],
1436
- });
1437
- }
1438
- if (poolName === "BLUEFIN-STSUI-USDC") {
1439
- txb.moveCall({
1440
- target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1441
- typeArguments: [
1442
- coinsList[pool1].type,
1443
- coinsList[pool2].type,
1444
- coinsList["BLUE"].type,
1445
- ],
1446
- arguments: [
1447
- txb.object(getConf().ALPHA_STSUI_VERSION),
1448
- txb.object(getConf().VERSION),
1449
- someReceipt,
1450
- txb.object(poolinfo.poolId),
1451
- depositCoinA,
1452
- depositCoinB,
1453
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1454
- txb.object(poolinfo.investorId),
1455
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1456
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1457
- txb.object(getConf().BLUEFIN_STSUI_USDC_POOL),
1458
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1459
- txb.object(cetusPoolMap["USDC-SUI"]),
1460
- txb.object(bluefinPoolMap["SUI-USDC"]),
1461
- txb.object(getConf().LST_INFO),
1462
- txb.object(getConf().SUI_SYSTEM_STATE),
1463
- txb.pure.bool(true),
1464
- txb.object(getConf().CLOCK_PACKAGE_ID),
1465
- ],
1466
- });
1467
- }
1468
- else if (poolName === "BLUEFIN-ALPHA-STSUI") {
1469
- txb.moveCall({
1470
- target: `${poolinfo.packageId}::alphafi_bluefin_stsui_second_pool::user_deposit`,
1471
- typeArguments: [
1472
- coinsList[pool1].type,
1473
- coinsList[pool2].type,
1474
- coinsList["BLUE"].type,
1475
- ],
1476
- arguments: [
1477
- txb.object(getConf().ALPHA_STSUI_VERSION),
1478
- txb.object(getConf().VERSION),
1479
- someReceipt,
1480
- txb.object(poolinfo.poolId),
1481
- depositCoinA,
1482
- depositCoinB,
1483
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1484
- txb.object(poolinfo.investorId),
1485
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1486
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1487
- txb.object(getConf().BLUEFIN_ALPHA_STSUI_POOL),
1488
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1489
- txb.object(cetusPoolMap["ALPHA-SUI"]),
1490
- txb.object(bluefinPoolMap["SUI-ALPHA"]),
1491
- txb.object(getConf().LST_INFO),
1492
- txb.object(getConf().SUI_SYSTEM_STATE),
1493
- txb.pure.bool(false),
1494
- txb.object(getConf().CLOCK_PACKAGE_ID),
1495
- ],
1496
- });
1497
- }
1498
- else if (poolName === "BLUEFIN-STSUI-WSOL") {
1499
- txb.moveCall({
1500
- target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1501
- typeArguments: [
1502
- coinsList[pool1].type,
1503
- coinsList[pool2].type,
1504
- coinsList["BLUE"].type,
1505
- ],
1506
- arguments: [
1507
- txb.object(getConf().ALPHA_STSUI_VERSION),
1508
- txb.object(getConf().VERSION),
1509
- someReceipt,
1510
- txb.object(poolinfo.poolId),
1511
- depositCoinA,
1512
- depositCoinB,
1513
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1514
- txb.object(poolinfo.investorId),
1515
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1516
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1517
- txb.object(getConf().BLUEFIN_STSUI_WSOL_POOL),
1518
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1519
- txb.object(cetusPoolMap["WSOL-SUI"]),
1520
- txb.object(bluefinPoolMap["SUI-WSOL"]),
1521
- txb.object(getConf().LST_INFO),
1522
- txb.object(getConf().SUI_SYSTEM_STATE),
1523
- txb.pure.bool(false),
1524
- txb.object(getConf().CLOCK_PACKAGE_ID),
1525
- ],
1526
- });
1527
- }
1528
- else if (poolName === "BLUEFIN-STSUI-ETH") {
1529
- txb.moveCall({
1530
- target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1531
- typeArguments: [
1532
- coinsList[pool1].type,
1533
- coinsList[pool2].type,
1534
- coinsList["BLUE"].type,
1535
- ],
1536
- arguments: [
1537
- txb.object(getConf().ALPHA_STSUI_VERSION),
1538
- txb.object(getConf().VERSION),
1539
- someReceipt,
1540
- txb.object(poolinfo.poolId),
1541
- depositCoinA,
1542
- depositCoinB,
1543
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1544
- txb.object(poolinfo.investorId),
1545
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1546
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1547
- txb.object(getConf().BLUEFIN_STSUI_ETH_POOL),
1548
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1549
- txb.object(cetusPoolMap["ETH-SUI"]),
1550
- txb.object(bluefinPoolMap["SUI-ETH"]),
1551
- txb.object(getConf().LST_INFO),
1552
- txb.object(getConf().SUI_SYSTEM_STATE),
1553
- txb.pure.bool(false),
1554
- txb.object(getConf().CLOCK_PACKAGE_ID),
1555
- ],
1556
- });
1557
- }
1558
- else if (poolName === "BLUEFIN-STSUI-BUCK") {
1559
- txb.moveCall({
1560
- target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1561
- typeArguments: [
1562
- coinsList[pool1].type,
1563
- coinsList[pool2].type,
1564
- coinsList["BLUE"].type,
1565
- ],
1566
- arguments: [
1567
- txb.object(getConf().ALPHA_STSUI_VERSION),
1568
- txb.object(getConf().VERSION),
1569
- someReceipt,
1570
- txb.object(poolinfo.poolId),
1571
- depositCoinA,
1572
- depositCoinB,
1573
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1574
- txb.object(poolinfo.investorId),
1575
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1576
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1577
- txb.object(getConf().BLUEFIN_STSUI_BUCK_POOL),
1578
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1579
- txb.object(cetusPoolMap["BUCK-SUI"]),
1580
- txb.object(bluefinPoolMap["SUI-BUCK"]),
1581
- txb.object(getConf().LST_INFO),
1582
- txb.object(getConf().SUI_SYSTEM_STATE),
1583
- txb.pure.bool(false),
1584
- txb.object(getConf().CLOCK_PACKAGE_ID),
1585
- ],
1586
- });
1587
- }
1588
- else if (poolName === "BLUEFIN-STSUI-MUSD") {
1589
- txb.moveCall({
1590
- target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1591
- typeArguments: [
1592
- coinsList[pool1].type,
1593
- coinsList[pool2].type,
1594
- coinsList["BLUE"].type,
1595
- ],
1596
- arguments: [
1597
- txb.object(getConf().ALPHA_STSUI_VERSION),
1598
- txb.object(getConf().VERSION),
1599
- someReceipt,
1600
- txb.object(poolinfo.poolId),
1601
- depositCoinA,
1602
- depositCoinB,
1603
- txb.object(getConf().ALPHA_DISTRIBUTOR),
1604
- txb.object(poolinfo.investorId),
1605
- txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1606
- txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1607
- txb.object(getConf().BLUEFIN_STSUI_MUSD_POOL),
1608
- txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1609
- txb.object(cetusPoolMap["MUSD-SUI"]),
1610
- txb.object(bluefinPoolMap["SUI-MUSD"]),
1611
- txb.object(getConf().LST_INFO),
1612
- txb.object(getConf().SUI_SYSTEM_STATE),
1613
- txb.pure.bool(true),
1614
- txb.object(getConf().CLOCK_PACKAGE_ID),
1615
- ],
1616
- });
1617
- }
1618
- txb.transferObjects([coin1Arg, coin2Arg], address);
1028
+ else if (poolName === "BLUEFIN-WBTC-SUI") {
1029
+ txb.moveCall({
1030
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1031
+ typeArguments: [
1032
+ coinsList[pool1].type,
1033
+ coinsList[pool2].type,
1034
+ coinsList["BLUE"].type,
1035
+ coinsList["SUI"].type,
1036
+ ],
1037
+ arguments: [
1038
+ txb.object(getConf().ALPHA_4_VERSION),
1039
+ txb.object(getConf().VERSION),
1040
+ someReceipt,
1041
+ txb.object(poolinfo.poolId),
1042
+ depositCoinA,
1043
+ depositCoinB,
1044
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1045
+ txb.object(poolinfo.investorId),
1046
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1047
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1048
+ txb.object(getConf().BLUEFIN_WBTC_SUI_POOL),
1049
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1050
+ txb.object(cetusPoolMap["WBTC-SUI"]),
1051
+ txb.object(getConf().LST_INFO),
1052
+ txb.object(getConf().SUI_SYSTEM_STATE),
1053
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1054
+ ],
1055
+ });
1619
1056
  }
1620
- else {
1621
- throw new Error(`No ${pool1} or ${pool2} Coins`);
1057
+ else if (poolName === "BLUEFIN-DEEP-SUI") {
1058
+ txb.moveCall({
1059
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1060
+ typeArguments: [
1061
+ coinsList[pool1].type,
1062
+ coinsList[pool2].type,
1063
+ coinsList["BLUE"].type,
1064
+ coinsList["SUI"].type,
1065
+ ],
1066
+ arguments: [
1067
+ txb.object(getConf().ALPHA_4_VERSION),
1068
+ txb.object(getConf().VERSION),
1069
+ someReceipt,
1070
+ txb.object(poolinfo.poolId),
1071
+ depositCoinA,
1072
+ depositCoinB,
1073
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1074
+ txb.object(poolinfo.investorId),
1075
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1076
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1077
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
1078
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1079
+ txb.object(cetusPoolMap["DEEP-SUI"]),
1080
+ txb.object(getConf().LST_INFO),
1081
+ txb.object(getConf().SUI_SYSTEM_STATE),
1082
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1083
+ ],
1084
+ });
1085
+ }
1086
+ else if (poolName === "BLUEFIN-STSUI-SUI") {
1087
+ txb.moveCall({
1088
+ target: `${poolinfo.packageId}::alphafi_bluefin_stsui_sui_pool::user_deposit`,
1089
+ typeArguments: [
1090
+ coinsList[pool1].type,
1091
+ coinsList[pool2].type,
1092
+ coinsList["BLUE"].type,
1093
+ ],
1094
+ arguments: [
1095
+ txb.object(getConf().ALPHA_4_VERSION),
1096
+ txb.object(getConf().VERSION),
1097
+ someReceipt,
1098
+ txb.object(poolinfo.poolId),
1099
+ depositCoinA,
1100
+ depositCoinB,
1101
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1102
+ txb.object(poolinfo.investorId),
1103
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1104
+ txb.object(getConf().BLUEFIN_STSUI_SUI_POOL),
1105
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1106
+ txb.object(getConf().LST_INFO),
1107
+ txb.object(getConf().SUI_SYSTEM_STATE),
1108
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1109
+ ],
1110
+ });
1111
+ }
1112
+ else if (poolName === "BLUEFIN-AUTOBALANCE-DEEP-SUI") {
1113
+ txb.moveCall({
1114
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1115
+ typeArguments: [
1116
+ coinsList[pool1].type,
1117
+ coinsList[pool2].type,
1118
+ coinsList["BLUE"].type,
1119
+ ],
1120
+ arguments: [
1121
+ txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
1122
+ someReceipt,
1123
+ txb.object(poolinfo.poolId),
1124
+ depositCoinA,
1125
+ depositCoinB,
1126
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1127
+ txb.object(poolinfo.investorId),
1128
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1129
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1130
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
1131
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1132
+ txb.object(cetusPoolMap["DEEP-SUI"]),
1133
+ txb.object(getConf().LST_INFO),
1134
+ txb.object(getConf().SUI_SYSTEM_STATE),
1135
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1136
+ ],
1137
+ });
1138
+ }
1139
+ else if (poolName === "BLUEFIN-AUTOBALANCE-BLUE-SUI") {
1140
+ txb.moveCall({
1141
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit_v2`,
1142
+ typeArguments: [
1143
+ coinsList[pool1].type,
1144
+ coinsList[pool2].type,
1145
+ coinsList["DEEP"].type,
1146
+ ],
1147
+ arguments: [
1148
+ txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
1149
+ someReceipt,
1150
+ txb.object(poolinfo.poolId),
1151
+ depositCoinA,
1152
+ depositCoinB,
1153
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1154
+ txb.object(poolinfo.investorId),
1155
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1156
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1157
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1158
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
1159
+ txb.object(cetusPoolMap["BLUE-SUI"]),
1160
+ txb.object(getConf().LST_INFO),
1161
+ txb.object(getConf().SUI_SYSTEM_STATE),
1162
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1163
+ ],
1164
+ });
1165
+ }
1166
+ return txb;
1167
+ };
1168
+ const depositBluefinStsuiTxb = async (txb, someReceipt, poolName, depositCoinA, depositCoinB) => {
1169
+ const poolinfo = poolInfo[poolName];
1170
+ const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
1171
+ const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
1172
+ if (poolName === "BLUEFIN-STSUI-USDC") {
1173
+ txb.moveCall({
1174
+ target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1175
+ typeArguments: [
1176
+ coinsList[pool1].type,
1177
+ coinsList[pool2].type,
1178
+ coinsList["BLUE"].type,
1179
+ ],
1180
+ arguments: [
1181
+ txb.object(getConf().ALPHA_STSUI_VERSION),
1182
+ txb.object(getConf().VERSION),
1183
+ someReceipt,
1184
+ txb.object(poolinfo.poolId),
1185
+ depositCoinA,
1186
+ depositCoinB,
1187
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1188
+ txb.object(poolinfo.investorId),
1189
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1190
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1191
+ txb.object(getConf().BLUEFIN_STSUI_USDC_POOL),
1192
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1193
+ txb.object(cetusPoolMap["USDC-SUI"]),
1194
+ txb.object(bluefinPoolMap["SUI-USDC"]),
1195
+ txb.object(getConf().LST_INFO),
1196
+ txb.object(getConf().SUI_SYSTEM_STATE),
1197
+ txb.pure.bool(true),
1198
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1199
+ ],
1200
+ });
1201
+ }
1202
+ else if (poolName === "BLUEFIN-ALPHA-STSUI") {
1203
+ txb.moveCall({
1204
+ target: `${poolinfo.packageId}::alphafi_bluefin_stsui_second_pool::user_deposit`,
1205
+ typeArguments: [
1206
+ coinsList[pool1].type,
1207
+ coinsList[pool2].type,
1208
+ coinsList["BLUE"].type,
1209
+ ],
1210
+ arguments: [
1211
+ txb.object(getConf().ALPHA_STSUI_VERSION),
1212
+ txb.object(getConf().VERSION),
1213
+ someReceipt,
1214
+ txb.object(poolinfo.poolId),
1215
+ depositCoinA,
1216
+ depositCoinB,
1217
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1218
+ txb.object(poolinfo.investorId),
1219
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1220
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1221
+ txb.object(getConf().BLUEFIN_ALPHA_STSUI_POOL),
1222
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1223
+ txb.object(cetusPoolMap["ALPHA-SUI"]),
1224
+ txb.object(bluefinPoolMap["SUI-ALPHA"]),
1225
+ txb.object(getConf().LST_INFO),
1226
+ txb.object(getConf().SUI_SYSTEM_STATE),
1227
+ txb.pure.bool(false),
1228
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1229
+ ],
1230
+ });
1231
+ }
1232
+ else if (poolName === "BLUEFIN-STSUI-WSOL") {
1233
+ txb.moveCall({
1234
+ target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1235
+ typeArguments: [
1236
+ coinsList[pool1].type,
1237
+ coinsList[pool2].type,
1238
+ coinsList["BLUE"].type,
1239
+ ],
1240
+ arguments: [
1241
+ txb.object(getConf().ALPHA_STSUI_VERSION),
1242
+ txb.object(getConf().VERSION),
1243
+ someReceipt,
1244
+ txb.object(poolinfo.poolId),
1245
+ depositCoinA,
1246
+ depositCoinB,
1247
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1248
+ txb.object(poolinfo.investorId),
1249
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1250
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1251
+ txb.object(getConf().BLUEFIN_STSUI_WSOL_POOL),
1252
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1253
+ txb.object(cetusPoolMap["WSOL-SUI"]),
1254
+ txb.object(bluefinPoolMap["SUI-WSOL"]),
1255
+ txb.object(getConf().LST_INFO),
1256
+ txb.object(getConf().SUI_SYSTEM_STATE),
1257
+ txb.pure.bool(false),
1258
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1259
+ ],
1260
+ });
1261
+ }
1262
+ else if (poolName === "BLUEFIN-STSUI-ETH") {
1263
+ txb.moveCall({
1264
+ target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1265
+ typeArguments: [
1266
+ coinsList[pool1].type,
1267
+ coinsList[pool2].type,
1268
+ coinsList["BLUE"].type,
1269
+ ],
1270
+ arguments: [
1271
+ txb.object(getConf().ALPHA_STSUI_VERSION),
1272
+ txb.object(getConf().VERSION),
1273
+ someReceipt,
1274
+ txb.object(poolinfo.poolId),
1275
+ depositCoinA,
1276
+ depositCoinB,
1277
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1278
+ txb.object(poolinfo.investorId),
1279
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1280
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1281
+ txb.object(getConf().BLUEFIN_STSUI_ETH_POOL),
1282
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1283
+ txb.object(cetusPoolMap["ETH-SUI"]),
1284
+ txb.object(bluefinPoolMap["SUI-ETH"]),
1285
+ txb.object(getConf().LST_INFO),
1286
+ txb.object(getConf().SUI_SYSTEM_STATE),
1287
+ txb.pure.bool(false),
1288
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1289
+ ],
1290
+ });
1291
+ }
1292
+ else if (poolName === "BLUEFIN-STSUI-BUCK") {
1293
+ txb.moveCall({
1294
+ target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1295
+ typeArguments: [
1296
+ coinsList[pool1].type,
1297
+ coinsList[pool2].type,
1298
+ coinsList["BLUE"].type,
1299
+ ],
1300
+ arguments: [
1301
+ txb.object(getConf().ALPHA_STSUI_VERSION),
1302
+ txb.object(getConf().VERSION),
1303
+ someReceipt,
1304
+ txb.object(poolinfo.poolId),
1305
+ depositCoinA,
1306
+ depositCoinB,
1307
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1308
+ txb.object(poolinfo.investorId),
1309
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1310
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1311
+ txb.object(getConf().BLUEFIN_STSUI_BUCK_POOL),
1312
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1313
+ txb.object(cetusPoolMap["BUCK-SUI"]),
1314
+ txb.object(bluefinPoolMap["SUI-BUCK"]),
1315
+ txb.object(getConf().LST_INFO),
1316
+ txb.object(getConf().SUI_SYSTEM_STATE),
1317
+ txb.pure.bool(false),
1318
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1319
+ ],
1320
+ });
1321
+ }
1322
+ else if (poolName === "BLUEFIN-STSUI-MUSD") {
1323
+ txb.moveCall({
1324
+ target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,
1325
+ typeArguments: [
1326
+ coinsList[pool1].type,
1327
+ coinsList[pool2].type,
1328
+ coinsList["BLUE"].type,
1329
+ ],
1330
+ arguments: [
1331
+ txb.object(getConf().ALPHA_STSUI_VERSION),
1332
+ txb.object(getConf().VERSION),
1333
+ someReceipt,
1334
+ txb.object(poolinfo.poolId),
1335
+ depositCoinA,
1336
+ depositCoinB,
1337
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
1338
+ txb.object(poolinfo.investorId),
1339
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
1340
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
1341
+ txb.object(getConf().BLUEFIN_STSUI_MUSD_POOL),
1342
+ txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),
1343
+ txb.object(cetusPoolMap["MUSD-SUI"]),
1344
+ txb.object(bluefinPoolMap["SUI-MUSD"]),
1345
+ txb.object(getConf().LST_INFO),
1346
+ txb.object(getConf().SUI_SYSTEM_STATE),
1347
+ txb.pure.bool(true),
1348
+ txb.object(getConf().CLOCK_PACKAGE_ID),
1349
+ ],
1350
+ });
1622
1351
  }
1623
1352
  return txb;
1624
1353
  };
1625
- export async function getZapAmounts(inputCoinAmount, inputCoinName, poolName, slippage, options, ignoreCache) {
1626
- const address = options.address;
1354
+ export async function getZapAmounts(inputCoinAmount, inputCoinName, poolName, slippage, address, ignoreCache) {
1627
1355
  const coinTypeA = doubleAssetPoolCoinMap[poolName].coin1;
1628
1356
  const coinTypeB = doubleAssetPoolCoinMap[poolName].coin2;
1629
1357
  const swapObjectA = coinsList[coinTypeA];
1630
1358
  const swapObjectB = coinsList[coinTypeB];
1631
1359
  const inputObject = coinsList[inputCoinName];
1632
1360
  const amounts = await getAmounts(poolName, true, "100000001");
1633
- if (amounts) {
1634
- const amount1 = Number(amounts[0]);
1635
- const amount2 = Number(amounts[1]);
1636
- const swapGateway = new SevenKGateway();
1637
- const swapOptions = {
1638
- pair: {
1639
- coinA: swapObjectA,
1640
- coinB: swapObjectB,
1641
- },
1642
- senderAddress: address,
1643
- inAmount: new BN(amount1),
1644
- slippage: slippage,
1645
- };
1646
- const ratioQuote = await zapGetQuote(swapGateway, swapOptions, poolName);
1647
- if (ratioQuote) {
1648
- const amount1InCoinType2 = Number(ratioQuote);
1649
- const totalAmount = amount2 + amount1InCoinType2;
1650
- const inputAmountToType1 = Math.floor((inputCoinAmount * amount1InCoinType2) / totalAmount);
1651
- const inputAmountToType2 = Math.floor((inputCoinAmount * amount2) / totalAmount);
1652
- let amountA, amountB;
1653
- const swapOptionsI2A = {
1654
- pair: {
1655
- coinA: inputObject,
1656
- coinB: swapObjectA,
1657
- },
1658
- senderAddress: address,
1659
- inAmount: new BN(inputAmountToType1),
1660
- slippage: slippage,
1661
- };
1662
- const swapOptionsI2B = {
1663
- pair: {
1664
- coinA: inputObject,
1665
- coinB: swapObjectB,
1666
- },
1667
- senderAddress: address,
1668
- inAmount: new BN(inputAmountToType2),
1669
- slippage: slippage,
1670
- };
1671
- if (inputCoinName === coinTypeA) {
1672
- amountB = await zapGetQuote(swapGateway, swapOptionsI2B, poolName);
1673
- amountA = inputAmountToType1.toString();
1674
- }
1675
- else if (inputCoinName === coinTypeB) {
1676
- amountA = await zapGetQuote(swapGateway, swapOptionsI2A, poolName);
1677
- amountB = inputAmountToType2.toString();
1678
- }
1679
- else {
1680
- amountA = await zapGetQuote(swapGateway, swapOptionsI2A, poolName);
1681
- amountB = await zapGetQuote(swapGateway, swapOptionsI2B, poolName);
1682
- }
1683
- if (amountA && amountB) {
1684
- const [coin1Price, coin2Price] = await getLatestPrices([
1685
- `${swapObjectA.name}/USD`,
1686
- `${swapObjectB.name}/USD`,
1687
- ], ignoreCache);
1688
- const coin1InUSD = Number(amountA) * Number(coin1Price);
1689
- const coin2InUSD = Number(amountB) * Number(coin2Price);
1690
- return [
1691
- amountA.toString(),
1692
- coin1InUSD.toString(),
1693
- amountB.toString(),
1694
- coin2InUSD.toString(),
1695
- ];
1696
- }
1697
- }
1361
+ const amount1 = Number(amounts[0]);
1362
+ const amount2 = Number(amounts[1]);
1363
+ const swapGateway = new SevenKGateway();
1364
+ const swapOptions = {
1365
+ pair: {
1366
+ coinA: swapObjectA,
1367
+ coinB: swapObjectB,
1368
+ },
1369
+ senderAddress: address,
1370
+ inAmount: new BN(amount1),
1371
+ slippage: slippage,
1372
+ };
1373
+ const ratioQuote = await zapGetQuote(swapGateway, swapOptions, poolName);
1374
+ if (!ratioQuote) {
1375
+ console.error(`Error geting quote for zap`);
1376
+ return undefined;
1377
+ }
1378
+ const amount1InCoinType2 = Number(ratioQuote);
1379
+ const totalAmount = amount2 + amount1InCoinType2;
1380
+ const inputAmountToType1 = Math.floor((inputCoinAmount * amount1InCoinType2) / totalAmount);
1381
+ const inputAmountToType2 = Math.floor((inputCoinAmount * amount2) / totalAmount);
1382
+ let amountA, amountB;
1383
+ const swapOptionsI2A = {
1384
+ pair: {
1385
+ coinA: inputObject,
1386
+ coinB: swapObjectA,
1387
+ },
1388
+ senderAddress: address,
1389
+ inAmount: new BN(inputAmountToType1),
1390
+ slippage: slippage,
1391
+ };
1392
+ const swapOptionsI2B = {
1393
+ pair: {
1394
+ coinA: inputObject,
1395
+ coinB: swapObjectB,
1396
+ },
1397
+ senderAddress: address,
1398
+ inAmount: new BN(inputAmountToType2),
1399
+ slippage: slippage,
1400
+ };
1401
+ if (inputCoinName === coinTypeA) {
1402
+ amountA = inputAmountToType1.toString();
1403
+ amountB = await zapGetQuote(swapGateway, swapOptionsI2B, poolName);
1404
+ }
1405
+ else if (inputCoinName === coinTypeB) {
1406
+ amountA = await zapGetQuote(swapGateway, swapOptionsI2A, poolName);
1407
+ amountB = inputAmountToType2.toString();
1408
+ }
1409
+ else {
1410
+ amountA = await zapGetQuote(swapGateway, swapOptionsI2A, poolName);
1411
+ amountB = await zapGetQuote(swapGateway, swapOptionsI2B, poolName);
1412
+ }
1413
+ if (amountA && amountB) {
1414
+ const [coin1Price, coin2Price] = await getLatestPrices([
1415
+ `${swapObjectA.name}/USD`,
1416
+ `${swapObjectB.name}/USD`,
1417
+ ], ignoreCache);
1418
+ const coin1InUSD = Number(amountA) * Number(coin1Price);
1419
+ const coin2InUSD = Number(amountB) * Number(coin2Price);
1420
+ return [
1421
+ amountA.toString(),
1422
+ coin1InUSD.toString(),
1423
+ amountB.toString(),
1424
+ coin2InUSD.toString(),
1425
+ ];
1698
1426
  }
1699
1427
  }
1700
- // export async function zapWithdraw(
1701
- // amount: string,
1702
- // poolName: PoolName,
1703
- // outputCoinName: string,
1704
- // options: { suiClient: SuiClient; address: string },
1705
- // ) {
1706
- // const suiClient = options.suiClient;
1707
- // const address = options.address;
1708
- // const txb = new Transaction();
1709
- // const pool1 = doubleAssetPoolCoinMap[poolName].pool1;
1710
- // const pool2 = doubleAssetPoolCoinMap[poolName].pool2;
1711
- // }
1712
- //calculate ratio of both coins in terms of coin-type 2
1713
- //convert outputAmount in coinType2
1714
- //then calculate coinType1 and coinType2 based on previous ratio
1715
- //convert those amounts to liquidity
1716
- //pass that liquidity into cetusWithdrawTxb
1717
- //swap the amount withdrawn to outputAmountType.
1718
1428
  //# sourceMappingURL=zapDeposit.js.map