@alphafi/alphafi-sdk 0.0.105 → 0.0.107

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 (717) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/adminFunctions.d.ts +13 -0
  3. package/dist/cjs/adminFunctions.d.ts.map +1 -1
  4. package/dist/cjs/adminFunctions.js +26 -0
  5. package/dist/cjs/adminFunctions.js.map +1 -1
  6. package/dist/cjs/common/coins.d.ts +1 -0
  7. package/dist/cjs/common/coins.d.ts.map +1 -1
  8. package/dist/cjs/common/coins.js +7 -0
  9. package/dist/cjs/common/coins.js.map +1 -1
  10. package/dist/cjs/common/constants.d.ts +94 -0
  11. package/dist/cjs/common/constants.d.ts.map +1 -1
  12. package/dist/cjs/common/constants.js +107 -39
  13. package/dist/cjs/common/constants.js.map +1 -1
  14. package/dist/cjs/common/maps.d.ts +2 -0
  15. package/dist/cjs/common/maps.d.ts.map +1 -1
  16. package/dist/cjs/common/maps.js +117 -1
  17. package/dist/cjs/common/maps.js.map +1 -1
  18. package/dist/cjs/common/pyth.d.ts +1 -1
  19. package/dist/cjs/common/pyth.d.ts.map +1 -1
  20. package/dist/cjs/common/pyth.js.map +1 -1
  21. package/dist/cjs/common/types.d.ts +4 -4
  22. package/dist/cjs/common/types.d.ts.map +1 -1
  23. package/dist/cjs/common/types.js.map +1 -1
  24. package/dist/cjs/getAirdropShare.d.ts +1 -0
  25. package/dist/cjs/getAirdropShare.d.ts.map +1 -1
  26. package/dist/cjs/getAirdropShare.js +1 -0
  27. package/dist/cjs/getAirdropShare.js.map +1 -1
  28. package/dist/cjs/getAllVaults.d.ts +3 -0
  29. package/dist/cjs/getAllVaults.d.ts.map +1 -1
  30. package/dist/cjs/getAllVaults.js +3 -0
  31. package/dist/cjs/getAllVaults.js.map +1 -1
  32. package/dist/cjs/getAlphaUnlocks.d.ts +1 -0
  33. package/dist/cjs/getAlphaUnlocks.d.ts.map +1 -1
  34. package/dist/cjs/getAlphaUnlocks.js +1 -0
  35. package/dist/cjs/getAlphaUnlocks.js.map +1 -1
  36. package/dist/cjs/getAprs.d.ts +6 -0
  37. package/dist/cjs/getAprs.d.ts.map +1 -1
  38. package/dist/cjs/getAprs.js +6 -0
  39. package/dist/cjs/getAprs.js.map +1 -1
  40. package/dist/cjs/getLastAutoCompoundTime.d.ts +1 -0
  41. package/dist/cjs/getLastAutoCompoundTime.d.ts.map +1 -1
  42. package/dist/cjs/getLastAutoCompoundTime.js +1 -0
  43. package/dist/cjs/getLastAutoCompoundTime.js.map +1 -1
  44. package/dist/cjs/getRebalanceHistory.d.ts +2 -0
  45. package/dist/cjs/getRebalanceHistory.d.ts.map +1 -1
  46. package/dist/cjs/getRebalanceHistory.js +2 -0
  47. package/dist/cjs/getRebalanceHistory.js.map +1 -1
  48. package/dist/cjs/getTvls.d.ts +4 -0
  49. package/dist/cjs/getTvls.d.ts.map +1 -1
  50. package/dist/cjs/getTvls.js +4 -0
  51. package/dist/cjs/getTvls.js.map +1 -1
  52. package/dist/cjs/getVaultBalances.d.ts +5 -0
  53. package/dist/cjs/getVaultBalances.d.ts.map +1 -1
  54. package/dist/cjs/getVaultBalances.js +5 -0
  55. package/dist/cjs/getVaultBalances.js.map +1 -1
  56. package/dist/cjs/getVaults.d.ts +3 -0
  57. package/dist/cjs/getVaults.d.ts.map +1 -1
  58. package/dist/cjs/getVaults.js +3 -0
  59. package/dist/cjs/getVaults.js.map +1 -1
  60. package/dist/cjs/graphql/executeMutations.d.ts +3 -0
  61. package/dist/cjs/graphql/executeMutations.d.ts.map +1 -1
  62. package/dist/cjs/graphql/executeMutations.js +3 -0
  63. package/dist/cjs/graphql/executeMutations.js.map +1 -1
  64. package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.d.ts +1 -0
  65. package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.d.ts.map +1 -1
  66. package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.js +1 -0
  67. package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.js.map +1 -1
  68. package/dist/cjs/graphql/fetchData.d.ts +8 -0
  69. package/dist/cjs/graphql/fetchData.d.ts.map +1 -1
  70. package/dist/cjs/graphql/fetchData.js +8 -0
  71. package/dist/cjs/graphql/fetchData.js.map +1 -1
  72. package/dist/cjs/graphql/fetchNftHolders.d.ts +1 -0
  73. package/dist/cjs/graphql/fetchNftHolders.d.ts.map +1 -1
  74. package/dist/cjs/graphql/fetchNftHolders.js +1 -0
  75. package/dist/cjs/graphql/fetchNftHolders.js.map +1 -1
  76. package/dist/cjs/graphql/fetchReceipts.d.ts +1 -0
  77. package/dist/cjs/graphql/fetchReceipts.d.ts.map +1 -1
  78. package/dist/cjs/graphql/fetchReceipts.js +1 -0
  79. package/dist/cjs/graphql/fetchReceipts.js.map +1 -1
  80. package/dist/cjs/graphql/getMultiReceipts.d.ts +1 -0
  81. package/dist/cjs/graphql/getMultiReceipts.d.ts.map +1 -1
  82. package/dist/cjs/graphql/getMultiReceipts.js +1 -0
  83. package/dist/cjs/graphql/getMultiReceipts.js.map +1 -1
  84. package/dist/cjs/graphql/parseData.d.ts +1 -0
  85. package/dist/cjs/graphql/parseData.d.ts.map +1 -1
  86. package/dist/cjs/graphql/parseData.js +1 -0
  87. package/dist/cjs/graphql/parseData.js.map +1 -1
  88. package/dist/cjs/graphql/parseLockedTableId.d.ts +1 -0
  89. package/dist/cjs/graphql/parseLockedTableId.d.ts.map +1 -1
  90. package/dist/cjs/graphql/parseLockedTableId.js +1 -0
  91. package/dist/cjs/graphql/parseLockedTableId.js.map +1 -1
  92. package/dist/cjs/graphql/queries/getMultiReceipts.d.ts +1 -0
  93. package/dist/cjs/graphql/queries/getMultiReceipts.d.ts.map +1 -1
  94. package/dist/cjs/graphql/queries/getMultiReceipts.js +1 -0
  95. package/dist/cjs/graphql/queries/getMultiReceipts.js.map +1 -1
  96. package/dist/cjs/index.d.ts +3 -2
  97. package/dist/cjs/index.d.ts.map +1 -1
  98. package/dist/cjs/index.js +10 -6
  99. package/dist/cjs/index.js.map +1 -1
  100. package/dist/cjs/sui-sdk/client.d.ts +5 -0
  101. package/dist/cjs/sui-sdk/client.d.ts.map +1 -1
  102. package/dist/cjs/sui-sdk/client.js +5 -0
  103. package/dist/cjs/sui-sdk/client.js.map +1 -1
  104. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.d.ts +1 -0
  105. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +1 -1
  106. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js +1 -0
  107. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js.map +1 -1
  108. package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.d.ts +1 -0
  109. package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.d.ts.map +1 -1
  110. package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.js +1 -0
  111. package/dist/cjs/sui-sdk/events/fetchAirdropClaimEvent.js.map +1 -1
  112. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts +3 -0
  113. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -1
  114. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js +3 -0
  115. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -1
  116. package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.d.ts +1 -0
  117. package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.d.ts.map +1 -1
  118. package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.js +1 -0
  119. package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.js.map +1 -1
  120. package/dist/cjs/sui-sdk/events/fetchEvents.d.ts +1 -0
  121. package/dist/cjs/sui-sdk/events/fetchEvents.d.ts.map +1 -1
  122. package/dist/cjs/sui-sdk/events/fetchEvents.js +1 -0
  123. package/dist/cjs/sui-sdk/events/fetchEvents.js.map +1 -1
  124. package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.d.ts +1 -0
  125. package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.d.ts.map +1 -1
  126. package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.js +1 -0
  127. package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.js.map +1 -1
  128. package/dist/cjs/sui-sdk/events/fetchMultiCategoryEvents.d.ts +1 -0
  129. package/dist/cjs/sui-sdk/events/fetchMultiCategoryEvents.d.ts.map +1 -1
  130. package/dist/cjs/sui-sdk/events/fetchMultiCategoryEvents.js +1 -0
  131. package/dist/cjs/sui-sdk/events/fetchMultiCategoryEvents.js.map +1 -1
  132. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.d.ts +2 -0
  133. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -1
  134. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js +2 -0
  135. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js.map +1 -1
  136. package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.d.ts +1 -0
  137. package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.d.ts.map +1 -1
  138. package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.js +1 -0
  139. package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.js.map +1 -1
  140. package/dist/cjs/sui-sdk/events/parseData.d.ts +2 -0
  141. package/dist/cjs/sui-sdk/events/parseData.d.ts.map +1 -1
  142. package/dist/cjs/sui-sdk/events/parseData.js +2 -0
  143. package/dist/cjs/sui-sdk/events/parseData.js.map +1 -1
  144. package/dist/cjs/sui-sdk/functions/getPositionRange.d.ts +2 -0
  145. package/dist/cjs/sui-sdk/functions/getPositionRange.d.ts.map +1 -1
  146. package/dist/cjs/sui-sdk/functions/getPositionRange.js +2 -0
  147. package/dist/cjs/sui-sdk/functions/getPositionRange.js.map +1 -1
  148. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +19 -0
  149. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  150. package/dist/cjs/sui-sdk/functions/getReceipts.js +15 -0
  151. package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -1
  152. package/dist/cjs/sui-sdk/transactions/fetchTransactions.d.ts +1 -0
  153. package/dist/cjs/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -1
  154. package/dist/cjs/sui-sdk/transactions/fetchTransactions.js +1 -0
  155. package/dist/cjs/sui-sdk/transactions/fetchTransactions.js.map +1 -1
  156. package/dist/cjs/transactions/alpha.d.ts +2 -0
  157. package/dist/cjs/transactions/alpha.d.ts.map +1 -1
  158. package/dist/cjs/transactions/alpha.js +2 -0
  159. package/dist/cjs/transactions/alpha.js.map +1 -1
  160. package/dist/cjs/transactions/alphaVault.d.ts +8 -1
  161. package/dist/cjs/transactions/alphaVault.d.ts.map +1 -1
  162. package/dist/cjs/transactions/alphaVault.js +68 -4
  163. package/dist/cjs/transactions/alphaVault.js.map +1 -1
  164. package/dist/cjs/transactions/alphalend.d.ts +7 -0
  165. package/dist/cjs/transactions/alphalend.d.ts.map +1 -1
  166. package/dist/cjs/transactions/alphalend.js +7 -0
  167. package/dist/cjs/transactions/alphalend.js.map +1 -1
  168. package/dist/cjs/transactions/blueRewards.d.ts +4 -0
  169. package/dist/cjs/transactions/blueRewards.d.ts.map +1 -1
  170. package/dist/cjs/transactions/blueRewards.js +3 -0
  171. package/dist/cjs/transactions/blueRewards.js.map +1 -1
  172. package/dist/cjs/transactions/bluefin.d.ts +20 -0
  173. package/dist/cjs/transactions/bluefin.d.ts.map +1 -1
  174. package/dist/cjs/transactions/bluefin.js +173 -31
  175. package/dist/cjs/transactions/bluefin.js.map +1 -1
  176. package/dist/cjs/transactions/cetus.d.ts +6 -0
  177. package/dist/cjs/transactions/cetus.d.ts.map +1 -1
  178. package/dist/cjs/transactions/cetus.js +6 -0
  179. package/dist/cjs/transactions/cetus.js.map +1 -1
  180. package/dist/cjs/transactions/cetusSwap.d.ts +15 -0
  181. package/dist/cjs/transactions/cetusSwap.d.ts.map +1 -0
  182. package/dist/cjs/transactions/cetusSwap.js +74 -0
  183. package/dist/cjs/transactions/cetusSwap.js.map +1 -0
  184. package/dist/cjs/transactions/collect_rewards.d.ts +4 -0
  185. package/dist/cjs/transactions/collect_rewards.d.ts.map +1 -1
  186. package/dist/cjs/transactions/collect_rewards.js +351 -67
  187. package/dist/cjs/transactions/collect_rewards.js.map +1 -1
  188. package/dist/cjs/transactions/deposit.d.ts +6 -0
  189. package/dist/cjs/transactions/deposit.d.ts.map +1 -1
  190. package/dist/cjs/transactions/deposit.js +16 -5
  191. package/dist/cjs/transactions/deposit.js.map +1 -1
  192. package/dist/cjs/transactions/get_navi_rewards.d.ts +1 -0
  193. package/dist/cjs/transactions/get_navi_rewards.d.ts.map +1 -1
  194. package/dist/cjs/transactions/get_navi_rewards.js +1 -0
  195. package/dist/cjs/transactions/get_navi_rewards.js.map +1 -1
  196. package/dist/cjs/transactions/navi-looping.d.ts +13 -0
  197. package/dist/cjs/transactions/navi-looping.d.ts.map +1 -1
  198. package/dist/cjs/transactions/navi-looping.js +13 -0
  199. package/dist/cjs/transactions/navi-looping.js.map +1 -1
  200. package/dist/cjs/transactions/navi.d.ts.map +1 -1
  201. package/dist/cjs/transactions/navi.js +725 -729
  202. package/dist/cjs/transactions/navi.js.map +1 -1
  203. package/dist/cjs/transactions/naviOracle.d.ts +1 -0
  204. package/dist/cjs/transactions/naviOracle.d.ts.map +1 -1
  205. package/dist/cjs/transactions/naviOracle.js +1 -0
  206. package/dist/cjs/transactions/naviOracle.js.map +1 -1
  207. package/dist/cjs/transactions/newZapDeposit.d.ts +4 -0
  208. package/dist/cjs/transactions/newZapDeposit.d.ts.map +1 -1
  209. package/dist/cjs/transactions/newZapDeposit.js +192 -345
  210. package/dist/cjs/transactions/newZapDeposit.js.map +1 -1
  211. package/dist/cjs/transactions/slush.d.ts +4 -0
  212. package/dist/cjs/transactions/slush.d.ts.map +1 -1
  213. package/dist/cjs/transactions/slush.js +125 -49
  214. package/dist/cjs/transactions/slush.js.map +1 -1
  215. package/dist/cjs/transactions/withdraw.d.ts +3 -0
  216. package/dist/cjs/transactions/withdraw.d.ts.map +1 -1
  217. package/dist/cjs/transactions/withdraw.js +13 -5
  218. package/dist/cjs/transactions/withdraw.js.map +1 -1
  219. package/dist/cjs/transactions/zapDeposit.d.ts.map +1 -1
  220. package/dist/cjs/transactions/zapDeposit.js +32 -31
  221. package/dist/cjs/transactions/zapDeposit.js.map +1 -1
  222. package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.d.ts +5 -0
  223. package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.d.ts.map +1 -1
  224. package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.js +5 -0
  225. package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.js.map +1 -1
  226. package/dist/cjs/utils/prices.d.ts +4 -0
  227. package/dist/cjs/utils/prices.d.ts.map +1 -1
  228. package/dist/cjs/utils/prices.js +4 -0
  229. package/dist/cjs/utils/prices.js.map +1 -1
  230. package/dist/cjs/utils/simpleCache.d.ts +2 -0
  231. package/dist/cjs/utils/simpleCache.d.ts.map +1 -1
  232. package/dist/cjs/utils/simpleCache.js +2 -0
  233. package/dist/cjs/utils/simpleCache.js.map +1 -1
  234. package/dist/cjs/utils/userHoldings.d.ts +4 -0
  235. package/dist/cjs/utils/userHoldings.d.ts.map +1 -1
  236. package/dist/cjs/utils/userHoldings.js +4 -0
  237. package/dist/cjs/utils/userHoldings.js.map +1 -1
  238. package/dist/cjs/vaultFunctions.d.ts +3 -0
  239. package/dist/cjs/vaultFunctions.d.ts.map +1 -1
  240. package/dist/cjs/vaultFunctions.js +3 -0
  241. package/dist/cjs/vaultFunctions.js.map +1 -1
  242. package/dist/esm/adminFunctions.d.ts +13 -0
  243. package/dist/esm/adminFunctions.d.ts.map +1 -1
  244. package/dist/esm/adminFunctions.js +25 -0
  245. package/dist/esm/adminFunctions.js.map +1 -1
  246. package/dist/esm/common/coins.d.ts +1 -0
  247. package/dist/esm/common/coins.d.ts.map +1 -1
  248. package/dist/esm/common/coins.js +7 -0
  249. package/dist/esm/common/coins.js.map +1 -1
  250. package/dist/esm/common/constants.d.ts +94 -0
  251. package/dist/esm/common/constants.d.ts.map +1 -1
  252. package/dist/esm/common/constants.js +107 -39
  253. package/dist/esm/common/constants.js.map +1 -1
  254. package/dist/esm/common/maps.d.ts +2 -0
  255. package/dist/esm/common/maps.d.ts.map +1 -1
  256. package/dist/esm/common/maps.js +117 -1
  257. package/dist/esm/common/maps.js.map +1 -1
  258. package/dist/esm/common/pyth.d.ts +1 -1
  259. package/dist/esm/common/pyth.d.ts.map +1 -1
  260. package/dist/esm/common/pyth.js.map +1 -1
  261. package/dist/esm/common/types.d.ts +4 -4
  262. package/dist/esm/common/types.d.ts.map +1 -1
  263. package/dist/esm/common/types.js.map +1 -1
  264. package/dist/esm/getAirdropShare.d.ts +1 -0
  265. package/dist/esm/getAirdropShare.d.ts.map +1 -1
  266. package/dist/esm/getAirdropShare.js +1 -0
  267. package/dist/esm/getAirdropShare.js.map +1 -1
  268. package/dist/esm/getAllVaults.d.ts +3 -0
  269. package/dist/esm/getAllVaults.d.ts.map +1 -1
  270. package/dist/esm/getAllVaults.js +3 -0
  271. package/dist/esm/getAllVaults.js.map +1 -1
  272. package/dist/esm/getAlphaUnlocks.d.ts +1 -0
  273. package/dist/esm/getAlphaUnlocks.d.ts.map +1 -1
  274. package/dist/esm/getAlphaUnlocks.js +1 -0
  275. package/dist/esm/getAlphaUnlocks.js.map +1 -1
  276. package/dist/esm/getAprs.d.ts +6 -0
  277. package/dist/esm/getAprs.d.ts.map +1 -1
  278. package/dist/esm/getAprs.js +6 -0
  279. package/dist/esm/getAprs.js.map +1 -1
  280. package/dist/esm/getLastAutoCompoundTime.d.ts +1 -0
  281. package/dist/esm/getLastAutoCompoundTime.d.ts.map +1 -1
  282. package/dist/esm/getLastAutoCompoundTime.js +1 -0
  283. package/dist/esm/getLastAutoCompoundTime.js.map +1 -1
  284. package/dist/esm/getRebalanceHistory.d.ts +2 -0
  285. package/dist/esm/getRebalanceHistory.d.ts.map +1 -1
  286. package/dist/esm/getRebalanceHistory.js +2 -0
  287. package/dist/esm/getRebalanceHistory.js.map +1 -1
  288. package/dist/esm/getTvls.d.ts +4 -0
  289. package/dist/esm/getTvls.d.ts.map +1 -1
  290. package/dist/esm/getTvls.js +4 -0
  291. package/dist/esm/getTvls.js.map +1 -1
  292. package/dist/esm/getVaultBalances.d.ts +5 -0
  293. package/dist/esm/getVaultBalances.d.ts.map +1 -1
  294. package/dist/esm/getVaultBalances.js +5 -0
  295. package/dist/esm/getVaultBalances.js.map +1 -1
  296. package/dist/esm/getVaults.d.ts +3 -0
  297. package/dist/esm/getVaults.d.ts.map +1 -1
  298. package/dist/esm/getVaults.js +3 -0
  299. package/dist/esm/getVaults.js.map +1 -1
  300. package/dist/esm/graphql/executeMutations.d.ts +3 -0
  301. package/dist/esm/graphql/executeMutations.d.ts.map +1 -1
  302. package/dist/esm/graphql/executeMutations.js +3 -0
  303. package/dist/esm/graphql/executeMutations.js.map +1 -1
  304. package/dist/esm/graphql/fetchAutoCompoundingEventsGql.d.ts +1 -0
  305. package/dist/esm/graphql/fetchAutoCompoundingEventsGql.d.ts.map +1 -1
  306. package/dist/esm/graphql/fetchAutoCompoundingEventsGql.js +1 -0
  307. package/dist/esm/graphql/fetchAutoCompoundingEventsGql.js.map +1 -1
  308. package/dist/esm/graphql/fetchData.d.ts +8 -0
  309. package/dist/esm/graphql/fetchData.d.ts.map +1 -1
  310. package/dist/esm/graphql/fetchData.js +8 -0
  311. package/dist/esm/graphql/fetchData.js.map +1 -1
  312. package/dist/esm/graphql/fetchNftHolders.d.ts +1 -0
  313. package/dist/esm/graphql/fetchNftHolders.d.ts.map +1 -1
  314. package/dist/esm/graphql/fetchNftHolders.js +1 -0
  315. package/dist/esm/graphql/fetchNftHolders.js.map +1 -1
  316. package/dist/esm/graphql/fetchReceipts.d.ts +1 -0
  317. package/dist/esm/graphql/fetchReceipts.d.ts.map +1 -1
  318. package/dist/esm/graphql/fetchReceipts.js +1 -0
  319. package/dist/esm/graphql/fetchReceipts.js.map +1 -1
  320. package/dist/esm/graphql/getMultiReceipts.d.ts +1 -0
  321. package/dist/esm/graphql/getMultiReceipts.d.ts.map +1 -1
  322. package/dist/esm/graphql/getMultiReceipts.js +1 -0
  323. package/dist/esm/graphql/getMultiReceipts.js.map +1 -1
  324. package/dist/esm/graphql/parseData.d.ts +1 -0
  325. package/dist/esm/graphql/parseData.d.ts.map +1 -1
  326. package/dist/esm/graphql/parseData.js +1 -0
  327. package/dist/esm/graphql/parseData.js.map +1 -1
  328. package/dist/esm/graphql/parseLockedTableId.d.ts +1 -0
  329. package/dist/esm/graphql/parseLockedTableId.d.ts.map +1 -1
  330. package/dist/esm/graphql/parseLockedTableId.js +1 -0
  331. package/dist/esm/graphql/parseLockedTableId.js.map +1 -1
  332. package/dist/esm/graphql/queries/getMultiReceipts.d.ts +1 -0
  333. package/dist/esm/graphql/queries/getMultiReceipts.d.ts.map +1 -1
  334. package/dist/esm/graphql/queries/getMultiReceipts.js +1 -0
  335. package/dist/esm/graphql/queries/getMultiReceipts.js.map +1 -1
  336. package/dist/esm/index.d.ts +3 -2
  337. package/dist/esm/index.d.ts.map +1 -1
  338. package/dist/esm/index.js +4 -2
  339. package/dist/esm/index.js.map +1 -1
  340. package/dist/esm/sui-sdk/client.d.ts +5 -0
  341. package/dist/esm/sui-sdk/client.d.ts.map +1 -1
  342. package/dist/esm/sui-sdk/client.js +5 -0
  343. package/dist/esm/sui-sdk/client.js.map +1 -1
  344. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.d.ts +1 -0
  345. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +1 -1
  346. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js +1 -0
  347. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js.map +1 -1
  348. package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.d.ts +1 -0
  349. package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.d.ts.map +1 -1
  350. package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.js +1 -0
  351. package/dist/esm/sui-sdk/events/fetchAirdropClaimEvent.js.map +1 -1
  352. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts +3 -0
  353. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -1
  354. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js +3 -0
  355. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -1
  356. package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.d.ts +1 -0
  357. package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.d.ts.map +1 -1
  358. package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.js +1 -0
  359. package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.js.map +1 -1
  360. package/dist/esm/sui-sdk/events/fetchEvents.d.ts +1 -0
  361. package/dist/esm/sui-sdk/events/fetchEvents.d.ts.map +1 -1
  362. package/dist/esm/sui-sdk/events/fetchEvents.js +1 -0
  363. package/dist/esm/sui-sdk/events/fetchEvents.js.map +1 -1
  364. package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.d.ts +1 -0
  365. package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.d.ts.map +1 -1
  366. package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.js +1 -0
  367. package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.js.map +1 -1
  368. package/dist/esm/sui-sdk/events/fetchMultiCategoryEvents.d.ts +1 -0
  369. package/dist/esm/sui-sdk/events/fetchMultiCategoryEvents.d.ts.map +1 -1
  370. package/dist/esm/sui-sdk/events/fetchMultiCategoryEvents.js +1 -0
  371. package/dist/esm/sui-sdk/events/fetchMultiCategoryEvents.js.map +1 -1
  372. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.d.ts +2 -0
  373. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -1
  374. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js +2 -0
  375. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js.map +1 -1
  376. package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.d.ts +1 -0
  377. package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.d.ts.map +1 -1
  378. package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.js +1 -0
  379. package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.js.map +1 -1
  380. package/dist/esm/sui-sdk/events/parseData.d.ts +2 -0
  381. package/dist/esm/sui-sdk/events/parseData.d.ts.map +1 -1
  382. package/dist/esm/sui-sdk/events/parseData.js +2 -0
  383. package/dist/esm/sui-sdk/events/parseData.js.map +1 -1
  384. package/dist/esm/sui-sdk/functions/getPositionRange.d.ts +2 -0
  385. package/dist/esm/sui-sdk/functions/getPositionRange.d.ts.map +1 -1
  386. package/dist/esm/sui-sdk/functions/getPositionRange.js +2 -0
  387. package/dist/esm/sui-sdk/functions/getPositionRange.js.map +1 -1
  388. package/dist/esm/sui-sdk/functions/getReceipts.d.ts +19 -0
  389. package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  390. package/dist/esm/sui-sdk/functions/getReceipts.js +15 -0
  391. package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -1
  392. package/dist/esm/sui-sdk/transactions/fetchTransactions.d.ts +1 -0
  393. package/dist/esm/sui-sdk/transactions/fetchTransactions.d.ts.map +1 -1
  394. package/dist/esm/sui-sdk/transactions/fetchTransactions.js +1 -0
  395. package/dist/esm/sui-sdk/transactions/fetchTransactions.js.map +1 -1
  396. package/dist/esm/transactions/alpha.d.ts +2 -0
  397. package/dist/esm/transactions/alpha.d.ts.map +1 -1
  398. package/dist/esm/transactions/alpha.js +2 -0
  399. package/dist/esm/transactions/alpha.js.map +1 -1
  400. package/dist/esm/transactions/alphaVault.d.ts +8 -1
  401. package/dist/esm/transactions/alphaVault.d.ts.map +1 -1
  402. package/dist/esm/transactions/alphaVault.js +69 -5
  403. package/dist/esm/transactions/alphaVault.js.map +1 -1
  404. package/dist/esm/transactions/alphalend.d.ts +7 -0
  405. package/dist/esm/transactions/alphalend.d.ts.map +1 -1
  406. package/dist/esm/transactions/alphalend.js +7 -0
  407. package/dist/esm/transactions/alphalend.js.map +1 -1
  408. package/dist/esm/transactions/blueRewards.d.ts +4 -0
  409. package/dist/esm/transactions/blueRewards.d.ts.map +1 -1
  410. package/dist/esm/transactions/blueRewards.js +3 -0
  411. package/dist/esm/transactions/blueRewards.js.map +1 -1
  412. package/dist/esm/transactions/bluefin.d.ts +20 -0
  413. package/dist/esm/transactions/bluefin.d.ts.map +1 -1
  414. package/dist/esm/transactions/bluefin.js +170 -30
  415. package/dist/esm/transactions/bluefin.js.map +1 -1
  416. package/dist/esm/transactions/cetus.d.ts +6 -0
  417. package/dist/esm/transactions/cetus.d.ts.map +1 -1
  418. package/dist/esm/transactions/cetus.js +6 -0
  419. package/dist/esm/transactions/cetus.js.map +1 -1
  420. package/dist/esm/transactions/cetusSwap.d.ts +15 -0
  421. package/dist/esm/transactions/cetusSwap.d.ts.map +1 -0
  422. package/dist/esm/transactions/cetusSwap.js +72 -0
  423. package/dist/esm/transactions/cetusSwap.js.map +1 -0
  424. package/dist/esm/transactions/collect_rewards.d.ts +4 -0
  425. package/dist/esm/transactions/collect_rewards.d.ts.map +1 -1
  426. package/dist/esm/transactions/collect_rewards.js +351 -67
  427. package/dist/esm/transactions/collect_rewards.js.map +1 -1
  428. package/dist/esm/transactions/deposit.d.ts +6 -0
  429. package/dist/esm/transactions/deposit.d.ts.map +1 -1
  430. package/dist/esm/transactions/deposit.js +17 -6
  431. package/dist/esm/transactions/deposit.js.map +1 -1
  432. package/dist/esm/transactions/get_navi_rewards.d.ts +1 -0
  433. package/dist/esm/transactions/get_navi_rewards.d.ts.map +1 -1
  434. package/dist/esm/transactions/get_navi_rewards.js +1 -0
  435. package/dist/esm/transactions/get_navi_rewards.js.map +1 -1
  436. package/dist/esm/transactions/navi-looping.d.ts +13 -0
  437. package/dist/esm/transactions/navi-looping.d.ts.map +1 -1
  438. package/dist/esm/transactions/navi-looping.js +13 -0
  439. package/dist/esm/transactions/navi-looping.js.map +1 -1
  440. package/dist/esm/transactions/navi.d.ts.map +1 -1
  441. package/dist/esm/transactions/navi.js +725 -729
  442. package/dist/esm/transactions/navi.js.map +1 -1
  443. package/dist/esm/transactions/naviOracle.d.ts +1 -0
  444. package/dist/esm/transactions/naviOracle.d.ts.map +1 -1
  445. package/dist/esm/transactions/naviOracle.js +1 -0
  446. package/dist/esm/transactions/naviOracle.js.map +1 -1
  447. package/dist/esm/transactions/newZapDeposit.d.ts +4 -0
  448. package/dist/esm/transactions/newZapDeposit.d.ts.map +1 -1
  449. package/dist/esm/transactions/newZapDeposit.js +192 -346
  450. package/dist/esm/transactions/newZapDeposit.js.map +1 -1
  451. package/dist/esm/transactions/slush.d.ts +4 -0
  452. package/dist/esm/transactions/slush.d.ts.map +1 -1
  453. package/dist/esm/transactions/slush.js +126 -50
  454. package/dist/esm/transactions/slush.js.map +1 -1
  455. package/dist/esm/transactions/withdraw.d.ts +3 -0
  456. package/dist/esm/transactions/withdraw.d.ts.map +1 -1
  457. package/dist/esm/transactions/withdraw.js +14 -6
  458. package/dist/esm/transactions/withdraw.js.map +1 -1
  459. package/dist/esm/transactions/zapDeposit.d.ts.map +1 -1
  460. package/dist/esm/transactions/zapDeposit.js +32 -31
  461. package/dist/esm/transactions/zapDeposit.js.map +1 -1
  462. package/dist/esm/utils/clmm/tokenAmountFromLiquidity.d.ts +5 -0
  463. package/dist/esm/utils/clmm/tokenAmountFromLiquidity.d.ts.map +1 -1
  464. package/dist/esm/utils/clmm/tokenAmountFromLiquidity.js +5 -0
  465. package/dist/esm/utils/clmm/tokenAmountFromLiquidity.js.map +1 -1
  466. package/dist/esm/utils/prices.d.ts +4 -0
  467. package/dist/esm/utils/prices.d.ts.map +1 -1
  468. package/dist/esm/utils/prices.js +4 -0
  469. package/dist/esm/utils/prices.js.map +1 -1
  470. package/dist/esm/utils/simpleCache.d.ts +2 -0
  471. package/dist/esm/utils/simpleCache.d.ts.map +1 -1
  472. package/dist/esm/utils/simpleCache.js +2 -0
  473. package/dist/esm/utils/simpleCache.js.map +1 -1
  474. package/dist/esm/utils/userHoldings.d.ts +4 -0
  475. package/dist/esm/utils/userHoldings.d.ts.map +1 -1
  476. package/dist/esm/utils/userHoldings.js +4 -0
  477. package/dist/esm/utils/userHoldings.js.map +1 -1
  478. package/dist/esm/vaultFunctions.d.ts +3 -0
  479. package/dist/esm/vaultFunctions.d.ts.map +1 -1
  480. package/dist/esm/vaultFunctions.js +3 -0
  481. package/dist/esm/vaultFunctions.js.map +1 -1
  482. package/docs/assets/navigation.js +1 -1
  483. package/docs/assets/search.js +1 -1
  484. package/docs/functions/addAirdropCoin.html +1 -1
  485. package/docs/functions/alphaLpBreakdown.html +1 -1
  486. package/docs/functions/cetusLpBreakdown.html +1 -1
  487. package/docs/functions/claimAirdropTx.html +1 -1
  488. package/docs/functions/claimRewardTxb.html +1 -1
  489. package/docs/functions/claimRewardsTxb.html +1 -1
  490. package/docs/functions/claimWithdrawAlphaTx.html +1 -1
  491. package/docs/functions/coinAmountToXTokensDoubleAsset.html +1 -1
  492. package/docs/functions/coinAmountToXTokensSingleAsset.html +1 -1
  493. package/docs/functions/coinsInPool.html +1 -1
  494. package/docs/functions/collectAndSwapRewardsLyf.html +1 -1
  495. package/docs/functions/collectAndSwapRewardsSingleLoop.html +1 -1
  496. package/docs/functions/collectRewardTxb.html +1 -1
  497. package/docs/functions/collectRewards.html +1 -1
  498. package/docs/functions/collectRewardsAndSwapSlush.html +1 -1
  499. package/docs/functions/collectUnsuppliedBalance.html +1 -1
  500. package/docs/functions/deposit.html +1 -1
  501. package/docs/functions/depositAlphaTx.html +1 -1
  502. package/docs/functions/depositDoubleAssetTxb.html +1 -1
  503. package/docs/functions/depositSingleAssetTxb.html +1 -1
  504. package/docs/functions/fetchAfterTransactionEvents.html +1 -1
  505. package/docs/functions/fetchAirdropClaimEvents.html +1 -1
  506. package/docs/functions/fetchAutoCompoundingEvents.html +1 -1
  507. package/docs/functions/fetchAutoCompoundingEventsGql.html +1 -1
  508. package/docs/functions/fetchCetusPools.html +1 -1
  509. package/docs/functions/fetchChainIdentifier.html +1 -1
  510. package/docs/functions/fetchCheckRatioEvents.html +1 -1
  511. package/docs/functions/fetchEvents.html +1 -1
  512. package/docs/functions/fetchLiquidityChangeEvents.html +1 -1
  513. package/docs/functions/fetchMultiCategoryEvents.html +1 -1
  514. package/docs/functions/fetchMultiReceipts.html +1 -1
  515. package/docs/functions/fetchNftHolders.html +1 -1
  516. package/docs/functions/fetchPools.html +1 -1
  517. package/docs/functions/fetchPortfolioData.html +1 -1
  518. package/docs/functions/fetchProtocolData.html +1 -1
  519. package/docs/functions/fetchRequiredPrices.html +1 -1
  520. package/docs/functions/fetchTVL.html +1 -1
  521. package/docs/functions/fetchTransactions.html +1 -1
  522. package/docs/functions/fetchUserVaultBalances.html +1 -1
  523. package/docs/functions/fetchUserVaults.html +1 -1
  524. package/docs/functions/fetchUserWalletData.html +1 -1
  525. package/docs/functions/fetchVoloExchangeRate.html +1 -1
  526. package/docs/functions/fetchWithdrawV2Events.html +1 -1
  527. package/docs/functions/getAirdropShare.html +1 -1
  528. package/docs/functions/getAllDoubleAssetVaults.html +1 -1
  529. package/docs/functions/getAllSingleAssetVaults.html +1 -1
  530. package/docs/functions/getAllVaultBalances.html +1 -1
  531. package/docs/functions/getAllVaults.html +1 -1
  532. package/docs/functions/getAlphaUnlocks.html +1 -1
  533. package/docs/functions/getAlphaVaultBalance.html +1 -1
  534. package/docs/functions/getAmounts.html +1 -1
  535. package/docs/functions/getApr.html +1 -1
  536. package/docs/functions/getAprs.html +1 -1
  537. package/docs/functions/getApy.html +1 -1
  538. package/docs/functions/getApys.html +1 -1
  539. package/docs/functions/getCetusInvestorTicksMap.html +1 -1
  540. package/docs/functions/getCetusPool.html +1 -1
  541. package/docs/functions/getCetusSqrtPriceMap.html +1 -1
  542. package/docs/functions/getCoinAmountsFromLiquidity.html +1 -1
  543. package/docs/functions/getConf.html +1 -1
  544. package/docs/functions/getCurrentTick.html +1 -1
  545. package/docs/functions/getDistributor.html +1 -1
  546. package/docs/functions/getDoubleAssetVaultBalance.html +1 -1
  547. package/docs/functions/getDoubleAssetVaults.html +1 -1
  548. package/docs/functions/getInvestor.html +1 -1
  549. package/docs/functions/getInvestorPoolMap.html +1 -1
  550. package/docs/functions/getLastAutoCompoundTime.html +1 -1
  551. package/docs/functions/getLatestPrices.html +1 -1
  552. package/docs/functions/getLiquidity.html +1 -1
  553. package/docs/functions/getMultiCetusPool.html +1 -1
  554. package/docs/functions/getMultiInvestor.html +1 -1
  555. package/docs/functions/getMultiLatestPrices.html +1 -1
  556. package/docs/functions/getMultiParentPool.html +1 -1
  557. package/docs/functions/getMultiPool.html +1 -1
  558. package/docs/functions/getMultiReceipts.html +1 -1
  559. package/docs/functions/getParentPool.html +1 -1
  560. package/docs/functions/getPool.html +1 -1
  561. package/docs/functions/getPoolExchangeRate.html +1 -1
  562. package/docs/functions/getPoolExchangeRateMap.html +1 -1
  563. package/docs/functions/getPoolsWeightDistribution.html +1 -1
  564. package/docs/functions/getPositionRange.html +1 -1
  565. package/docs/functions/getPositionRanges.html +1 -1
  566. package/docs/functions/getPositionTicks.html +1 -1
  567. package/docs/functions/getPriceToTick.html +1 -1
  568. package/docs/functions/getRebalanceCap.html +1 -0
  569. package/docs/functions/getRebalanceHistories.html +1 -1
  570. package/docs/functions/getRebalanceHistory.html +1 -1
  571. package/docs/functions/getReceipts.html +1 -1
  572. package/docs/functions/getSingleAssetVaultBalance.html +1 -1
  573. package/docs/functions/getSingleAssetVaults.html +1 -1
  574. package/docs/functions/getSlushUserTotalXtokens.html +1 -1
  575. package/docs/functions/getSuiClient.html +2 -2
  576. package/docs/functions/getSuiNodeUrl.html +2 -2
  577. package/docs/functions/getTVLs-1.html +1 -1
  578. package/docs/functions/getTickSpacing.html +1 -1
  579. package/docs/functions/getTickToPrice.html +1 -1
  580. package/docs/functions/getTvls.html +1 -1
  581. package/docs/functions/getVaultBalance.html +1 -1
  582. package/docs/functions/getVaults.html +1 -1
  583. package/docs/functions/getWithdrawRequestsAndUnsuppliedAmount.html +1 -1
  584. package/docs/functions/initiateWithdrawAlpha.html +1 -1
  585. package/docs/functions/lastAutocompoundTime.html +1 -1
  586. package/docs/functions/liquidityToTokens.html +1 -1
  587. package/docs/functions/migrateBoostedToLoop.html +1 -1
  588. package/docs/functions/multiLiquidityToTokens.html +1 -1
  589. package/docs/functions/multiTokensToUsd.html +1 -1
  590. package/docs/functions/multiXTokensToLiquidity.html +1 -1
  591. package/docs/functions/parseUserWalletData.html +1 -1
  592. package/docs/functions/pendingRewardAmount.html +1 -1
  593. package/docs/functions/processWithdrawRequestsManual.html +1 -1
  594. package/docs/functions/setCustomSuiClient.html +2 -2
  595. package/docs/functions/setSuiClient.html +2 -2
  596. package/docs/functions/setSuiNodeUrl.html +2 -2
  597. package/docs/functions/setWeights.html +1 -1
  598. package/docs/functions/slushDeposit.html +1 -1
  599. package/docs/functions/slushWithdraw.html +1 -1
  600. package/docs/functions/updateSingleTokenPrice.html +1 -0
  601. package/docs/functions/withdraw.html +1 -1
  602. package/docs/functions/withdrawAlphaTxb.html +1 -1
  603. package/docs/functions/withdrawTxb.html +1 -1
  604. package/docs/functions/zapDepositQuoteTxb.html +1 -1
  605. package/docs/functions/zapDepositTxb.html +1 -1
  606. package/docs/hierarchy.html +1 -1
  607. package/docs/index.html +8 -2
  608. package/docs/interfaces/Coin.html +6 -6
  609. package/docs/interfaces/CoinPair.html +2 -2
  610. package/docs/interfaces/CommonEventAttributes.html +2 -2
  611. package/docs/interfaces/NaviVoloData.html +2 -2
  612. package/docs/interfaces/PoolData.html +2 -2
  613. package/docs/interfaces/PoolWeightDistribution.html +2 -2
  614. package/docs/interfaces/RebalanceHistoryType.html +2 -2
  615. package/docs/modules.html +1 -1
  616. package/docs/types/AfterTransactionEventNode.html +1 -1
  617. package/docs/types/AirdropClaimEventNode.html +1 -1
  618. package/docs/types/Allocator.html +2 -2
  619. package/docs/types/AlphaFiDoubleAssetVault.html +2 -2
  620. package/docs/types/AlphaFiMultiVaultBalance.html +1 -1
  621. package/docs/types/AlphaFiSingleAssetVault.html +2 -2
  622. package/docs/types/AlphaFiVault.html +1 -1
  623. package/docs/types/AlphaFiVaultBalance.html +1 -1
  624. package/docs/types/AlphaLendInvestor.html +1 -1
  625. package/docs/types/AlphaPoolType.html +2 -2
  626. package/docs/types/AlphaReceipt.html +2 -2
  627. package/docs/types/AlphaReceiptFields.html +2 -2
  628. package/docs/types/AlphaVaultBalance.html +2 -2
  629. package/docs/types/AutoBalancePoolNames.html +1 -1
  630. package/docs/types/AutoCompoundingEventNode.html +1 -1
  631. package/docs/types/Bag.html +2 -2
  632. package/docs/types/BluefinInvestor.html +1 -1
  633. package/docs/types/BluefinLyfInvestor.html +1 -1
  634. package/docs/types/BluefinPoolType.html +2 -2
  635. package/docs/types/BucketInvestor.html +2 -2
  636. package/docs/types/CetusInvestor.html +2 -2
  637. package/docs/types/CetusPoolType.html +2 -2
  638. package/docs/types/CetusSwapOptions.html +1 -1
  639. package/docs/types/CoinAmounts.html +2 -2
  640. package/docs/types/CoinName.html +1 -1
  641. package/docs/types/CoinType.html +1 -1
  642. package/docs/types/CommonInvestorFields.html +2 -2
  643. package/docs/types/CreatePoolOptions.html +2 -2
  644. package/docs/types/Distributor.html +2 -2
  645. package/docs/types/DoubleAssetMultiVaultBalance.html +2 -2
  646. package/docs/types/DoubleAssetPoolNames.html +1 -1
  647. package/docs/types/DoubleAssetTokenHoldings.html +2 -2
  648. package/docs/types/DoubleAssetVaultBalance.html +2 -2
  649. package/docs/types/EventCategory.html +1 -1
  650. package/docs/types/EventNode.html +1 -1
  651. package/docs/types/GetHoldersParams.html +2 -2
  652. package/docs/types/GetTokenHoldingsParams.html +2 -2
  653. package/docs/types/GetUserTokensFromTransactionsParams.html +2 -2
  654. package/docs/types/GetUserTokensInUsdFromTransactionsParams.html +2 -2
  655. package/docs/types/GetVaultBalanceParams.html +1 -1
  656. package/docs/types/HoldingsObj.html +2 -2
  657. package/docs/types/Icon.html +1 -1
  658. package/docs/types/Investor.html +1 -1
  659. package/docs/types/LiquidityChangeEventNode.html +1 -1
  660. package/docs/types/LiquidityToTokensParams.html +2 -2
  661. package/docs/types/LiquidityToUsdParams.html +2 -2
  662. package/docs/types/LoopingDebt.html +2 -2
  663. package/docs/types/LoopingPoolNames.html +1 -1
  664. package/docs/types/LpBreakdownType.html +2 -2
  665. package/docs/types/MemberPoolDataType.html +2 -2
  666. package/docs/types/MemberType.html +2 -2
  667. package/docs/types/MultiGetVaultBalancesParams.html +2 -2
  668. package/docs/types/NaviInvestor.html +2 -2
  669. package/docs/types/ObjectTable.html +1 -1
  670. package/docs/types/OtherReceiptFields.html +2 -2
  671. package/docs/types/PoolName.html +1 -1
  672. package/docs/types/PoolReceipt.html +1 -1
  673. package/docs/types/PoolType.html +2 -2
  674. package/docs/types/Receipt.html +2 -2
  675. package/docs/types/ReceiptGQL.html +2 -2
  676. package/docs/types/SingleAssetMultiVaultBalance.html +2 -2
  677. package/docs/types/SingleAssetPoolNames.html +1 -1
  678. package/docs/types/SingleAssetTokenHoldings.html +2 -2
  679. package/docs/types/SingleAssetVaultBalance.html +2 -2
  680. package/docs/types/SingleGetVaultBalancesParams.html +2 -2
  681. package/docs/types/StrategyType.html +1 -1
  682. package/docs/types/SuiNetwork.html +1 -1
  683. package/docs/types/SwapOptions.html +1 -1
  684. package/docs/types/TickSpacing.html +1 -1
  685. package/docs/types/TotalWeightType.html +2 -2
  686. package/docs/types/TransactionBlockType.html +2 -2
  687. package/docs/types/UserPoolLiquidity.html +2 -2
  688. package/docs/types/UserPoolTokenHoldings.html +1 -1
  689. package/docs/types/UserUsdHoldings.html +2 -2
  690. package/docs/types/VaultBalance.html +1 -1
  691. package/docs/types/VecMap.html +2 -2
  692. package/docs/types/VoteCastEvent.html +1 -1
  693. package/docs/types/WithdrawV2EventNode.html +1 -1
  694. package/docs/variables/AUTOBALANCE_SUI_FIRST_POOLS.html +1 -1
  695. package/docs/variables/AUTOBALANCE_SUI_SECOND_POOLS.html +1 -1
  696. package/docs/variables/AUTOBALANCE_TYPE_1_POOLS.html +1 -1
  697. package/docs/variables/alphalendMarketIdMap.html +1 -1
  698. package/docs/variables/bluefinPoolMap.html +1 -1
  699. package/docs/variables/cetusPoolMap.html +1 -1
  700. package/docs/variables/coinsList.html +1 -1
  701. package/docs/variables/defunctPoolsSet.html +1 -1
  702. package/docs/variables/doubleAssetPoolCoinMap.html +1 -1
  703. package/docs/variables/eventCategories.html +1 -1
  704. package/docs/variables/ignoredWalletsForDailyRevenue.html +1 -1
  705. package/docs/variables/loopingAccountAddresses.html +1 -1
  706. package/docs/variables/loopingPoolCoinMap.html +1 -1
  707. package/docs/variables/naviAssetMap.html +1 -1
  708. package/docs/variables/naviPriceFeedMap.html +1 -0
  709. package/docs/variables/poolIdPoolNameMap.html +1 -1
  710. package/docs/variables/poolInfo.html +1 -1
  711. package/docs/variables/singleAssetPoolCoinMap.html +1 -1
  712. package/docs/variables/stableCoins.html +1 -1
  713. package/package.json +2 -2
  714. package/scripts/testRun.ts +28 -14
  715. package/scripts/utils.ts +8 -4
  716. package/#package.json# +0 -98
  717. package/FETCH_OVERRIDE_FIX.md +0 -222
@@ -1 +1 @@
1
- {"version":3,"file":"navi-looping.js","sourceRoot":"","sources":["../../../src/transactions/navi-looping.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction } from \"@mysten/sui/transactions\";\nimport { CoinStruct } from \"@mysten/sui/client\";\nimport { getConf } from \"../common/constants.js\";\nimport { getSuiClient } from \"../sui-sdk/client.js\";\nimport {\n bluefinPoolMap,\n cetusPoolMap,\n loopingAccountAddresses,\n loopingPoolCoinMap,\n naviPriceFeedMap,\n poolInfo,\n singleAssetPoolCoinMap,\n} from \"../common/maps.js\";\nimport { PoolName, Receipt } from \"../common/types.js\";\nimport { coinsList } from \"../common/coins.js\";\nimport { getReceipts } from \"../sui-sdk/functions/getReceipts.js\";\nimport { updateSingleTokenPrice } from \"./naviOracle.js\";\nimport { AlphalendClient } from \"@alphafi/alphalend-sdk\";\nimport { alphalendClient } from \"./alphalend.js\";\nimport { getAvailableRewards } from \"./get_navi_rewards.js\";\n\nexport async function loopingDeposit(\n poolName: PoolName,\n amount: string,\n options: { address: string },\n) {\n let txb = new Transaction();\n\n await updateSingleTokenPrice(\n getSuiClient(),\n naviPriceFeedMap[loopingPoolCoinMap[poolName].supplyCoin].pythPriceInfo,\n naviPriceFeedMap[loopingPoolCoinMap[poolName].supplyCoin].feedId,\n txb,\n );\n await updateSingleTokenPrice(\n getSuiClient(),\n naviPriceFeedMap[loopingPoolCoinMap[poolName].borrowCoin].pythPriceInfo,\n naviPriceFeedMap[loopingPoolCoinMap[poolName].borrowCoin].feedId,\n txb,\n );\n\n if (poolName === \"NAVI-LOOP-HASUI-SUI\") {\n txb = await naviHasuiSuiLoopDepositTx(txb, amount, options);\n } else if (poolName === \"NAVI-LOOP-SUI-VSUI\") {\n txb = await naviSuiVsuiLoopDepositTx(txb, amount, options);\n } else if (poolName === \"NAVI-LOOP-USDC-USDT\") {\n txb = await naviUsdcUsdtLoopDepositTx(txb, amount, options);\n } else if (poolName === \"NAVI-LOOP-USDT-USDC\") {\n txb = await naviUsdtUsdcLoopDepositTx(txb, amount, options);\n }\n return txb;\n}\n\nexport async function loopingWithdraw(\n poolName: PoolName,\n xTokens: string,\n options: { address: string },\n) {\n let txb = new Transaction();\n\n await updateSingleTokenPrice(\n getSuiClient(),\n naviPriceFeedMap[loopingPoolCoinMap[poolName].supplyCoin].pythPriceInfo,\n naviPriceFeedMap[loopingPoolCoinMap[poolName].supplyCoin].feedId,\n txb,\n );\n await updateSingleTokenPrice(\n getSuiClient(),\n naviPriceFeedMap[loopingPoolCoinMap[poolName].borrowCoin].pythPriceInfo,\n naviPriceFeedMap[loopingPoolCoinMap[poolName].borrowCoin].feedId,\n txb,\n );\n\n if (poolName === \"NAVI-LOOP-HASUI-SUI\") {\n txb = await naviHasuiSuiLoopWithdrawTx(txb, xTokens, options);\n } else if (poolName === \"NAVI-LOOP-SUI-VSUI\") {\n txb = await naviSuiVsuiLoopWithdrawTx(txb, xTokens, options);\n } else if (poolName === \"NAVI-LOOP-USDC-USDT\") {\n txb = await naviUsdcUsdtLoopWithdrawTx(txb, xTokens, options);\n } else if (poolName === \"NAVI-LOOP-USDT-USDC\") {\n txb = await naviUsdtUsdcLoopWithdrawTx(txb, xTokens, options);\n }\n return txb;\n}\n\nexport async function naviHasuiSuiLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const suiClient = getSuiClient();\n const address = options.address;\n const poolName = \"NAVI-LOOP-HASUI-SUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-HASUI-SUI\" as PoolName,\n address,\n true,\n );\n let coins: CoinStruct[] = [];\n\n let currentCursor: string | null | undefined = null;\n\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType:\n coinsList[singleAssetPoolCoinMap[\"NAVI-LOOP-HASUI-SUI\"].coin].type,\n cursor: currentCursor,\n });\n\n coins = coins.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n } while (true);\n\n if (coins.length >= 1) {\n const [coin] = txb.splitCoins(txb.object(coins[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin,\n coins.map((c) => c.coinObjectId),\n );\n const [depositCoin] = txb.splitCoins(coin, [amount]);\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_pool::user_deposit_v2`, // change package id for testing\n arguments: [\n txb.object(C.ALPHA_2_VERSION), // change version object id for testing\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_HASUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"HASUI-SUI\"]),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin], address);\n } else {\n throw new Error(\"No coin\");\n }\n return txb;\n}\n\nexport async function naviSuiVsuiLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-SUI-VSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const [depositCoin] = txb.splitCoins(txb.gas, [amount]);\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n rewardCoinSet.add(reward.reward_coin_type);\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_VSUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.KRIYA_VSUI_SUI_POOL),\n txb.object(C.KRIYA_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n\n return txb;\n}\n\nexport async function naviSuiStsuiLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-SUI-STSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const [depositCoin] = txb.splitCoins(txb.gas, [amount]);\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_bluefin`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(bluefinPoolMap[`NAVX-SUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"STSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_STSUI_REWARDS_POOL),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_bluefin`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(bluefinPoolMap[`NAVX-SUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_one_swap`,\n typeArguments: [coinsList[\"ALPHA\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(bluefinPoolMap[`ALPHA-STSUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap_v2`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n\n return txb;\n}\n\nexport async function naviUsdcUsdtLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const suiClient = getSuiClient();\n const address = options.address;\n const poolName = \"NAVI-LOOP-USDC-USDT\";\n const poolData = poolInfo[\"NAVI-LOOP-USDC-USDT\"];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-USDC-USDT\" as PoolName,\n address,\n true,\n );\n let coins: CoinStruct[] = [];\n\n let currentCursor: string | null | undefined = null;\n\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType:\n coinsList[singleAssetPoolCoinMap[\"NAVI-LOOP-USDC-USDT\"].coin].type,\n cursor: currentCursor,\n });\n\n coins = coins.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n } while (true);\n\n if (coins.length >= 1) {\n const [coin] = txb.splitCoins(txb.object(coins[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin,\n coins.map((c) => c.coinObjectId),\n );\n const [depositCoin] = txb.splitCoins(coin, [amount]);\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_USDC_POOL),\n txb.object(C.NAVI_USDT_POOL),\n txb.object(C.NAVI_INCENTIVE_V1),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.NAVI_VSUI_FUNDS_POOL),\n txb.object(C.NAVI_NAVX_FUNDS_POOL),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(cetusPoolMap[\"NAVX-SUI\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.BLUEFIN_USDT_USDC_POOL),\n txb.pure.bool(true),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin], address);\n } else {\n throw new Error(\"No coin\");\n }\n return txb;\n}\n\nexport async function naviUsdtUsdcLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const suiClient = getSuiClient();\n const address = options.address;\n\n const poolData = poolInfo[\"NAVI-LOOP-USDT-USDC\"];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-USDT-USDC\" as PoolName,\n address,\n true,\n );\n let coins: CoinStruct[] = [];\n\n let currentCursor: string | null | undefined = null;\n\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType:\n coinsList[singleAssetPoolCoinMap[\"NAVI-LOOP-USDT-USDC\"].coin].type,\n cursor: currentCursor,\n });\n\n coins = coins.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n } while (true);\n\n if (coins.length >= 1) {\n const [coin] = txb.splitCoins(txb.object(coins[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin,\n coins.map((c) => c.coinObjectId),\n );\n const [depositCoin] = txb.splitCoins(coin, [amount]);\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_pool::user_deposit_v3`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_USDT_POOL),\n txb.object(C.NAVI_USDC_POOL),\n txb.object(C.NAVI_INCENTIVE_V1),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.NAVI_VSUI_FUNDS_POOL),\n txb.object(C.NAVI_NAVX_FUNDS_POOL),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(cetusPoolMap[\"NAVX-SUI\"]),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin], address);\n } else {\n throw new Error(\"No coin\");\n }\n return txb;\n}\n\nexport async function naviHasuiSuiLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-HASUI-SUI\";\n const poolData = poolInfo[\"NAVI-LOOP-HASUI-SUI\"];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-HASUI-SUI\" as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n const [hasuiCoin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_pool::user_withdraw_v2`, // change package id for testing\n arguments: [\n txb.object(C.ALPHA_2_VERSION), // change version object id for testing\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_HASUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"HASUI-SUI\"]),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"HASUI\"].type}>`],\n arguments: [hasuiCoin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ${\"NAVI-LOOP-HASUI-SUI\"} Receipt`);\n }\n\n return txb;\n}\n\nexport async function naviSuiVsuiLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n\n const poolName = \"NAVI-LOOP-SUI-VSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n\n const [vsui_coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_VSUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.KRIYA_VSUI_SUI_POOL),\n txb.object(C.KRIYA_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"VSUI\"].type}>`],\n arguments: [vsui_coin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ${\"NAVI-LOOP-SUI-VSUI\"} Receipt`);\n }\n\n return txb;\n}\nexport async function migrateBoostedToLoop(\n txb: Transaction,\n options: {\n address: string;\n },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n\n let poolName = \"NAVI-LOOP-SUI-VSUI\";\n let poolData = poolInfo[poolName];\n\n let receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n\n const [vsui_coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(receipt[0].content.fields.xTokenBalance),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_VSUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.KRIYA_VSUI_SUI_POOL),\n txb.object(C.KRIYA_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n const [suiCoin] = txb.moveCall({\n target: `${C.VOLO_PACKAGE_ID}::stake_pool::unstake`,\n arguments: [\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n vsui_coin,\n ],\n });\n\n poolName = \"ALPHALEND-LOOP-SUI-STSUI\";\n poolData = poolInfo[poolName];\n\n await alphalendClient.updatePrices(txb, [\n coinsList[\"STSUI\"].type,\n \"0x2::sui::SUI\",\n ]);\n receipt = await getReceipts(poolName as PoolName, address, true);\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_one_swap`,\n typeArguments: [coinsList[\"ALPHA\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(bluefinPoolMap[`ALPHA-STSUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap_v2`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_v2`,\n typeArguments: [coinsList[\"BLUE\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`BLUE-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n suiCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n return txb;\n}\nexport async function naviSuiStsuiLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-SUI-STSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n const alphalendClient = new AlphalendClient(\"mainnet\", getSuiClient());\n await alphalendClient.updatePrices(txb, [\n coinsList[\"STSUI\"].type,\n \"0x2::sui::SUI\",\n ]);\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_bluefin`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(bluefinPoolMap[`NAVX-SUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"STSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_STSUI_REWARDS_POOL),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_bluefin`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(bluefinPoolMap[`NAVX-SUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n\n const [stsui_coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"SUI\"].type}>`],\n arguments: [stsui_coin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No NAVI-LOOP-SUI-STSUI Receipt`);\n }\n\n return txb;\n}\n\nexport async function naviUsdcUsdtLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-USDC-USDT\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n const [usdcCoin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_pool::user_withdraw_v4`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u256(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_USDC_POOL),\n txb.object(C.NAVI_USDT_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.BLUEFIN_USDT_USDC_POOL),\n txb.pure.bool(true),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"USDC\"].type}>`],\n arguments: [usdcCoin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ${\"NAVI-LOOP-USDC-USDT\"} Receipt`);\n }\n\n return txb;\n}\n\nexport async function naviUsdtUsdcLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-USDT-USDC\";\n const poolData = poolInfo[\"NAVI-LOOP-USDT-USDC\"];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-USDT-USDC\" as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"SUI\"].type,\n \"0x\" + reward.reward_coin_type,\n ],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(cetusPoolMap[`USDC-USDT`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"SUI\"].type,\n \"0x\" + reward.reward_coin_type,\n ],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(cetusPoolMap[`USDC-USDT`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"SUI\"].type,\n \"0x\" + reward.reward_coin_type,\n ],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(cetusPoolMap[`USDC-USDT`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"SUI\"].type,\n \"0x\" + reward.reward_coin_type,\n ],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(cetusPoolMap[`USDC-USDT`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n const [usdtCoin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u256(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_USDT_POOL),\n txb.object(C.NAVI_USDC_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"USDT\"].type}>`],\n arguments: [usdtCoin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ${\"NAVI-LOOP-USDT-USDC\"} Receipt`);\n }\n\n return txb;\n}\n"]}
1
+ {"version":3,"file":"navi-looping.js","sourceRoot":"","sources":["../../../src/transactions/navi-looping.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction } from \"@mysten/sui/transactions\";\nimport { CoinStruct } from \"@mysten/sui/client\";\nimport { getConf } from \"../common/constants.js\";\nimport { getSuiClient } from \"../sui-sdk/client.js\";\nimport {\n bluefinPoolMap,\n cetusPoolMap,\n loopingAccountAddresses,\n loopingPoolCoinMap,\n naviPriceFeedMap,\n poolInfo,\n singleAssetPoolCoinMap,\n} from \"../common/maps.js\";\nimport { PoolName, Receipt } from \"../common/types.js\";\nimport { coinsList } from \"../common/coins.js\";\nimport { getReceipts } from \"../sui-sdk/functions/getReceipts.js\";\nimport { updateSingleTokenPrice } from \"./naviOracle.js\";\nimport { AlphalendClient } from \"@alphafi/alphalend-sdk\";\nimport { alphalendClient } from \"./alphalend.js\";\nimport { getAvailableRewards } from \"./get_navi_rewards.js\";\n\n/** @deprecated */\nexport async function loopingDeposit(\n poolName: PoolName,\n amount: string,\n options: { address: string },\n) {\n let txb = new Transaction();\n\n await updateSingleTokenPrice(\n getSuiClient(),\n naviPriceFeedMap[loopingPoolCoinMap[poolName].supplyCoin].pythPriceInfo,\n naviPriceFeedMap[loopingPoolCoinMap[poolName].supplyCoin].feedId,\n txb,\n );\n await updateSingleTokenPrice(\n getSuiClient(),\n naviPriceFeedMap[loopingPoolCoinMap[poolName].borrowCoin].pythPriceInfo,\n naviPriceFeedMap[loopingPoolCoinMap[poolName].borrowCoin].feedId,\n txb,\n );\n\n if (poolName === \"NAVI-LOOP-HASUI-SUI\") {\n txb = await naviHasuiSuiLoopDepositTx(txb, amount, options);\n } else if (poolName === \"NAVI-LOOP-SUI-VSUI\") {\n txb = await naviSuiVsuiLoopDepositTx(txb, amount, options);\n } else if (poolName === \"NAVI-LOOP-USDC-USDT\") {\n txb = await naviUsdcUsdtLoopDepositTx(txb, amount, options);\n } else if (poolName === \"NAVI-LOOP-USDT-USDC\") {\n txb = await naviUsdtUsdcLoopDepositTx(txb, amount, options);\n }\n return txb;\n}\n\n/** @deprecated */\nexport async function loopingWithdraw(\n poolName: PoolName,\n xTokens: string,\n options: { address: string },\n) {\n let txb = new Transaction();\n\n await updateSingleTokenPrice(\n getSuiClient(),\n naviPriceFeedMap[loopingPoolCoinMap[poolName].supplyCoin].pythPriceInfo,\n naviPriceFeedMap[loopingPoolCoinMap[poolName].supplyCoin].feedId,\n txb,\n );\n await updateSingleTokenPrice(\n getSuiClient(),\n naviPriceFeedMap[loopingPoolCoinMap[poolName].borrowCoin].pythPriceInfo,\n naviPriceFeedMap[loopingPoolCoinMap[poolName].borrowCoin].feedId,\n txb,\n );\n\n if (poolName === \"NAVI-LOOP-HASUI-SUI\") {\n txb = await naviHasuiSuiLoopWithdrawTx(txb, xTokens, options);\n } else if (poolName === \"NAVI-LOOP-SUI-VSUI\") {\n txb = await naviSuiVsuiLoopWithdrawTx(txb, xTokens, options);\n } else if (poolName === \"NAVI-LOOP-USDC-USDT\") {\n txb = await naviUsdcUsdtLoopWithdrawTx(txb, xTokens, options);\n } else if (poolName === \"NAVI-LOOP-USDT-USDC\") {\n txb = await naviUsdtUsdcLoopWithdrawTx(txb, xTokens, options);\n }\n return txb;\n}\n\n/** @deprecated */\nexport async function naviHasuiSuiLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const suiClient = getSuiClient();\n const address = options.address;\n const poolName = \"NAVI-LOOP-HASUI-SUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-HASUI-SUI\" as PoolName,\n address,\n true,\n );\n let coins: CoinStruct[] = [];\n\n let currentCursor: string | null | undefined = null;\n\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType:\n coinsList[singleAssetPoolCoinMap[\"NAVI-LOOP-HASUI-SUI\"].coin].type,\n cursor: currentCursor,\n });\n\n coins = coins.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n } while (true);\n\n if (coins.length >= 1) {\n const [coin] = txb.splitCoins(txb.object(coins[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin,\n coins.map((c) => c.coinObjectId),\n );\n const [depositCoin] = txb.splitCoins(coin, [amount]);\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_pool::user_deposit_v2`, // change package id for testing\n arguments: [\n txb.object(C.ALPHA_2_VERSION), // change version object id for testing\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_HASUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"HASUI-SUI\"]),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin], address);\n } else {\n throw new Error(\"No coin\");\n }\n return txb;\n}\n\n/** @deprecated */\nexport async function naviSuiVsuiLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-SUI-VSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const [depositCoin] = txb.splitCoins(txb.gas, [amount]);\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n rewardCoinSet.add(reward.reward_coin_type);\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_VSUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.KRIYA_VSUI_SUI_POOL),\n txb.object(C.KRIYA_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n\n return txb;\n}\n\n/** @deprecated */\nexport async function naviSuiStsuiLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-SUI-STSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const [depositCoin] = txb.splitCoins(txb.gas, [amount]);\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_bluefin`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(bluefinPoolMap[`NAVX-SUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"STSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_STSUI_REWARDS_POOL),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_bluefin`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(bluefinPoolMap[`NAVX-SUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_one_swap`,\n typeArguments: [coinsList[\"ALPHA\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(bluefinPoolMap[`ALPHA-STSUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap_v2`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n\n return txb;\n}\n\n/** @deprecated */\nexport async function naviUsdcUsdtLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const suiClient = getSuiClient();\n const address = options.address;\n const poolName = \"NAVI-LOOP-USDC-USDT\";\n const poolData = poolInfo[\"NAVI-LOOP-USDC-USDT\"];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-USDC-USDT\" as PoolName,\n address,\n true,\n );\n let coins: CoinStruct[] = [];\n\n let currentCursor: string | null | undefined = null;\n\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType:\n coinsList[singleAssetPoolCoinMap[\"NAVI-LOOP-USDC-USDT\"].coin].type,\n cursor: currentCursor,\n });\n\n coins = coins.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n } while (true);\n\n if (coins.length >= 1) {\n const [coin] = txb.splitCoins(txb.object(coins[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin,\n coins.map((c) => c.coinObjectId),\n );\n const [depositCoin] = txb.splitCoins(coin, [amount]);\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_USDC_POOL),\n txb.object(C.NAVI_USDT_POOL),\n txb.object(C.NAVI_INCENTIVE_V1),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.NAVI_VSUI_FUNDS_POOL),\n txb.object(C.NAVI_NAVX_FUNDS_POOL),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(cetusPoolMap[\"NAVX-SUI\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.BLUEFIN_USDT_USDC_POOL),\n txb.pure.bool(true),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin], address);\n } else {\n throw new Error(\"No coin\");\n }\n return txb;\n}\n\n/** @deprecated */\nexport async function naviUsdtUsdcLoopDepositTx(\n txb: Transaction,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const suiClient = getSuiClient();\n const address = options.address;\n\n const poolData = poolInfo[\"NAVI-LOOP-USDT-USDC\"];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-USDT-USDC\" as PoolName,\n address,\n true,\n );\n let coins: CoinStruct[] = [];\n\n let currentCursor: string | null | undefined = null;\n\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType:\n coinsList[singleAssetPoolCoinMap[\"NAVI-LOOP-USDT-USDC\"].coin].type,\n cursor: currentCursor,\n });\n\n coins = coins.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n } while (true);\n\n if (coins.length >= 1) {\n const [coin] = txb.splitCoins(txb.object(coins[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin,\n coins.map((c) => c.coinObjectId),\n );\n const [depositCoin] = txb.splitCoins(coin, [amount]);\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_pool::user_deposit_v3`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_USDT_POOL),\n txb.object(C.NAVI_USDC_POOL),\n txb.object(C.NAVI_INCENTIVE_V1),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.NAVI_VSUI_FUNDS_POOL),\n txb.object(C.NAVI_NAVX_FUNDS_POOL),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(cetusPoolMap[\"NAVX-SUI\"]),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin], address);\n } else {\n throw new Error(\"No coin\");\n }\n return txb;\n}\n\n/** @deprecated */\nexport async function naviHasuiSuiLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-HASUI-SUI\";\n const poolData = poolInfo[\"NAVI-LOOP-HASUI-SUI\"];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-HASUI-SUI\" as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`HASUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n const [hasuiCoin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_hasui_sui_pool::user_withdraw_v2`, // change package id for testing\n arguments: [\n txb.object(C.ALPHA_2_VERSION), // change version object id for testing\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_HASUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"HASUI-SUI\"]),\n txb.object(C.HAEDEL_STAKING),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"HASUI\"].type}>`],\n arguments: [hasuiCoin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ${\"NAVI-LOOP-HASUI-SUI\"} Receipt`);\n }\n\n return txb;\n}\n\n/** @deprecated */\nexport async function naviSuiVsuiLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n\n const poolName = \"NAVI-LOOP-SUI-VSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n\n const [vsui_coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_VSUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.KRIYA_VSUI_SUI_POOL),\n txb.object(C.KRIYA_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"VSUI\"].type}>`],\n arguments: [vsui_coin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ${\"NAVI-LOOP-SUI-VSUI\"} Receipt`);\n }\n\n return txb;\n}\n/** @deprecated */\nexport async function migrateBoostedToLoop(\n txb: Transaction,\n options: {\n address: string;\n },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n\n let poolName = \"NAVI-LOOP-SUI-VSUI\";\n let poolData = poolInfo[poolName];\n\n let receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_two_swaps_v2`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_investor::collect_reward_with_no_swap`,\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n\n const [vsui_coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_vsui_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(receipt[0].content.fields.xTokenBalance),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_VSUI_POOL),\n txb.object(C.NAVI_SUI_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.KRIYA_VSUI_SUI_POOL),\n txb.object(C.KRIYA_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n const [suiCoin] = txb.moveCall({\n target: `${C.VOLO_PACKAGE_ID}::stake_pool::unstake`,\n arguments: [\n txb.object(C.VOLO_STAKE_POOL),\n txb.object(C.VOLO_METADATA),\n txb.object(C.SUI_SYSTEM_STATE),\n vsui_coin,\n ],\n });\n\n poolName = \"ALPHALEND-LOOP-SUI-STSUI\";\n poolData = poolInfo[poolName];\n\n await alphalendClient.updatePrices(txb, [\n coinsList[\"STSUI\"].type,\n \"0x2::sui::SUI\",\n ]);\n receipt = await getReceipts(poolName as PoolName, address, true);\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_one_swap`,\n typeArguments: [coinsList[\"ALPHA\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(bluefinPoolMap[`ALPHA-STSUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap_v2`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_v2`,\n typeArguments: [coinsList[\"BLUE\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`BLUE-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n suiCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n return txb;\n}\n/** @deprecated */\nexport async function naviSuiStsuiLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-SUI-STSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n const alphalendClient = new AlphalendClient(\"mainnet\", getSuiClient());\n await alphalendClient.updatePrices(txb, [\n coinsList[\"STSUI\"].type,\n \"0x2::sui::SUI\",\n ]);\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_bluefin`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(bluefinPoolMap[`NAVX-SUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"STSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_STSUI_REWARDS_POOL),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n ? claimableRewards[\n \"0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_bluefin`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(bluefinPoolMap[`NAVX-SUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n\n const [stsui_coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"SUI\"].type}>`],\n arguments: [stsui_coin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No NAVI-LOOP-SUI-STSUI Receipt`);\n }\n\n return txb;\n}\n\n/** @deprecated */\nexport async function naviUsdcUsdtLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = await getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-USDC-USDT\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"NAVX\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_investor::collect_reward_with_two_swaps`,\n typeArguments: [coinsList[\"VSUI\"].type],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n const [usdcCoin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_native_usdc_usdt_pool::user_withdraw_v4`,\n arguments: [\n txb.object(C.ALPHA_2_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u256(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_USDC_POOL),\n txb.object(C.NAVI_USDT_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.BLUEFIN_USDT_USDC_POOL),\n txb.pure.bool(true),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"USDC\"].type}>`],\n arguments: [usdcCoin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ${\"NAVI-LOOP-USDC-USDT\"} Receipt`);\n }\n\n return txb;\n}\n\n/** @deprecated */\nexport async function naviUsdtUsdcLoopWithdrawTx(\n txb: Transaction,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const poolName = \"NAVI-LOOP-USDT-USDC\";\n const poolData = poolInfo[\"NAVI-LOOP-USDT-USDC\"];\n\n const receipt: Receipt[] = await getReceipts(\n \"NAVI-LOOP-USDT-USDC\" as PoolName,\n address,\n true,\n );\n\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n const claimableRewards = await getAvailableRewards(\n loopingAccountAddresses[poolName],\n );\n\n const rewardCoinSet = new Set();\n if (claimableRewards) {\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].supplyCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"SUI\"].type,\n \"0x\" + reward.reward_coin_type,\n ],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(cetusPoolMap[`USDC-USDT`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"SUI\"].type,\n \"0x\" + reward.reward_coin_type,\n ],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(cetusPoolMap[`USDC-USDT`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n for (const reward of claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n ? claimableRewards[\n coinsList[loopingPoolCoinMap[poolName].borrowCoin].type\n ]\n : []) {\n if (rewardCoinSet.has(reward.reward_coin_type) === false) {\n if (reward.rewardCoinType === coinsList[\"NAVX\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"SUI\"].type,\n \"0x\" + reward.reward_coin_type,\n ],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_NAVX_REWARDS_POOL),\n txb.object(cetusPoolMap[`NAVX-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(cetusPoolMap[`USDC-USDT`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n } else if (reward.rewardCoinType === coinsList[\"VSUI\"].type) {\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_investor::collect_v3_rewards_with_three_swaps`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"SUI\"].type,\n \"0x\" + reward.reward_coin_type,\n ],\n arguments: [\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.CLOCK_PACKAGE_ID),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_VSUI_REWARDS_POOL),\n txb.object(cetusPoolMap[`VSUI-SUI`]),\n txb.object(cetusPoolMap[`USDC-SUI`]),\n txb.object(cetusPoolMap[`USDC-USDT`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n ],\n });\n }\n rewardCoinSet.add(reward.reward_coin_type);\n }\n }\n }\n const [usdtCoin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_usdt_usdc_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u256(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.PRICE_ORACLE),\n txb.object(C.NAVI_STORAGE),\n txb.object(C.NAVI_USDT_POOL),\n txb.object(C.NAVI_USDC_POOL),\n txb.object(C.NAVI_INCENTIVE_V3),\n txb.object(C.NAVI_INCENTIVE_V2),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"USDT\"].type}>`],\n arguments: [usdtCoin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ${\"NAVI-LOOP-USDT-USDC\"} Receipt`);\n }\n\n return txb;\n}\n"]}