@alphafi/alphafi-sdk 0.0.49 → 0.0.51

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 (325) hide show
  1. package/dist/cjs/adminFunctions.d.ts +4 -1
  2. package/dist/cjs/adminFunctions.d.ts.map +1 -1
  3. package/dist/cjs/adminFunctions.js +77 -0
  4. package/dist/cjs/adminFunctions.js.map +1 -1
  5. package/dist/cjs/common/coins.d.ts.map +1 -1
  6. package/dist/cjs/common/coins.js +6 -0
  7. package/dist/cjs/common/coins.js.map +1 -1
  8. package/dist/cjs/common/constants.d.ts +48 -0
  9. package/dist/cjs/common/constants.d.ts.map +1 -1
  10. package/dist/cjs/common/constants.js +34 -0
  11. package/dist/cjs/common/constants.js.map +1 -1
  12. package/dist/cjs/common/maps.d.ts +3 -0
  13. package/dist/cjs/common/maps.d.ts.map +1 -1
  14. package/dist/cjs/common/maps.js +144 -0
  15. package/dist/cjs/common/maps.js.map +1 -1
  16. package/dist/cjs/common/pyth.d.ts +1 -1
  17. package/dist/cjs/common/pyth.d.ts.map +1 -1
  18. package/dist/cjs/common/pyth.js.map +1 -1
  19. package/dist/cjs/common/types.d.ts +22 -6
  20. package/dist/cjs/common/types.d.ts.map +1 -1
  21. package/dist/cjs/common/types.js.map +1 -1
  22. package/dist/cjs/getVaultBalances.js +1 -1
  23. package/dist/cjs/getVaultBalances.js.map +1 -1
  24. package/dist/cjs/graphql/getMultiReceipts.d.ts.map +1 -1
  25. package/dist/cjs/graphql/getMultiReceipts.js +21 -4
  26. package/dist/cjs/graphql/getMultiReceipts.js.map +1 -1
  27. package/dist/cjs/index.d.ts +3 -2
  28. package/dist/cjs/index.d.ts.map +1 -1
  29. package/dist/cjs/index.js +11 -4
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/sui-sdk/client.d.ts +8 -0
  32. package/dist/cjs/sui-sdk/client.d.ts.map +1 -1
  33. package/dist/cjs/sui-sdk/client.js +12 -0
  34. package/dist/cjs/sui-sdk/client.js.map +1 -1
  35. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js +1 -1
  36. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
  37. package/dist/cjs/sui-sdk/functions/getPositionRange.d.ts +10 -0
  38. package/dist/cjs/sui-sdk/functions/getPositionRange.d.ts.map +1 -0
  39. package/dist/cjs/sui-sdk/functions/getPositionRange.js +86 -0
  40. package/dist/cjs/sui-sdk/functions/getPositionRange.js.map +1 -0
  41. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +9 -15
  42. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  43. package/dist/cjs/sui-sdk/functions/getReceipts.js +290 -200
  44. package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -1
  45. package/dist/cjs/transactions/blueRewards.d.ts.map +1 -1
  46. package/dist/cjs/transactions/blueRewards.js +27 -2
  47. package/dist/cjs/transactions/blueRewards.js.map +1 -1
  48. package/dist/cjs/transactions/bluefin.d.ts.map +1 -1
  49. package/dist/cjs/transactions/bluefin.js +110 -0
  50. package/dist/cjs/transactions/bluefin.js.map +1 -1
  51. package/dist/cjs/transactions/collect_rewards.d.ts.map +1 -1
  52. package/dist/cjs/transactions/collect_rewards.js +2 -1
  53. package/dist/cjs/transactions/collect_rewards.js.map +1 -1
  54. package/dist/cjs/transactions/deposit.d.ts.map +1 -1
  55. package/dist/cjs/transactions/deposit.js +10 -3
  56. package/dist/cjs/transactions/deposit.js.map +1 -1
  57. package/dist/cjs/transactions/zapDeposit.d.ts.map +1 -1
  58. package/dist/cjs/transactions/zapDeposit.js +58 -29
  59. package/dist/cjs/transactions/zapDeposit.js.map +1 -1
  60. package/dist/cjs/utils/prices.d.ts.map +1 -1
  61. package/dist/cjs/utils/prices.js +1 -0
  62. package/dist/cjs/utils/prices.js.map +1 -1
  63. package/dist/esm/adminFunctions.d.ts +4 -1
  64. package/dist/esm/adminFunctions.d.ts.map +1 -1
  65. package/dist/esm/adminFunctions.js +76 -2
  66. package/dist/esm/adminFunctions.js.map +1 -1
  67. package/dist/esm/common/coins.d.ts.map +1 -1
  68. package/dist/esm/common/coins.js +6 -0
  69. package/dist/esm/common/coins.js.map +1 -1
  70. package/dist/esm/common/constants.d.ts +48 -0
  71. package/dist/esm/common/constants.d.ts.map +1 -1
  72. package/dist/esm/common/constants.js +34 -0
  73. package/dist/esm/common/constants.js.map +1 -1
  74. package/dist/esm/common/maps.d.ts +3 -0
  75. package/dist/esm/common/maps.d.ts.map +1 -1
  76. package/dist/esm/common/maps.js +144 -0
  77. package/dist/esm/common/maps.js.map +1 -1
  78. package/dist/esm/common/pyth.d.ts +1 -1
  79. package/dist/esm/common/pyth.d.ts.map +1 -1
  80. package/dist/esm/common/pyth.js.map +1 -1
  81. package/dist/esm/common/types.d.ts +22 -6
  82. package/dist/esm/common/types.d.ts.map +1 -1
  83. package/dist/esm/common/types.js.map +1 -1
  84. package/dist/esm/getVaultBalances.js +1 -1
  85. package/dist/esm/getVaultBalances.js.map +1 -1
  86. package/dist/esm/graphql/getMultiReceipts.d.ts.map +1 -1
  87. package/dist/esm/graphql/getMultiReceipts.js +21 -3
  88. package/dist/esm/graphql/getMultiReceipts.js.map +1 -1
  89. package/dist/esm/index.d.ts +3 -2
  90. package/dist/esm/index.d.ts.map +1 -1
  91. package/dist/esm/index.js +3 -2
  92. package/dist/esm/index.js.map +1 -1
  93. package/dist/esm/sui-sdk/client.d.ts +8 -0
  94. package/dist/esm/sui-sdk/client.d.ts.map +1 -1
  95. package/dist/esm/sui-sdk/client.js +10 -0
  96. package/dist/esm/sui-sdk/client.js.map +1 -1
  97. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js +1 -1
  98. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
  99. package/dist/esm/sui-sdk/functions/getPositionRange.d.ts +10 -0
  100. package/dist/esm/sui-sdk/functions/getPositionRange.d.ts.map +1 -0
  101. package/dist/esm/sui-sdk/functions/getPositionRange.js +82 -0
  102. package/dist/esm/sui-sdk/functions/getPositionRange.js.map +1 -0
  103. package/dist/esm/sui-sdk/functions/getReceipts.d.ts +9 -15
  104. package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  105. package/dist/esm/sui-sdk/functions/getReceipts.js +288 -198
  106. package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -1
  107. package/dist/esm/transactions/blueRewards.d.ts.map +1 -1
  108. package/dist/esm/transactions/blueRewards.js +27 -2
  109. package/dist/esm/transactions/blueRewards.js.map +1 -1
  110. package/dist/esm/transactions/bluefin.d.ts.map +1 -1
  111. package/dist/esm/transactions/bluefin.js +110 -0
  112. package/dist/esm/transactions/bluefin.js.map +1 -1
  113. package/dist/esm/transactions/collect_rewards.d.ts.map +1 -1
  114. package/dist/esm/transactions/collect_rewards.js +2 -1
  115. package/dist/esm/transactions/collect_rewards.js.map +1 -1
  116. package/dist/esm/transactions/deposit.d.ts.map +1 -1
  117. package/dist/esm/transactions/deposit.js +10 -3
  118. package/dist/esm/transactions/deposit.js.map +1 -1
  119. package/dist/esm/transactions/zapDeposit.d.ts.map +1 -1
  120. package/dist/esm/transactions/zapDeposit.js +59 -30
  121. package/dist/esm/transactions/zapDeposit.js.map +1 -1
  122. package/dist/esm/utils/prices.d.ts.map +1 -1
  123. package/dist/esm/utils/prices.js +1 -0
  124. package/dist/esm/utils/prices.js.map +1 -1
  125. package/docs/assets/highlight.css +51 -74
  126. package/docs/assets/icons.js +17 -20
  127. package/docs/assets/main.js +5 -2163
  128. package/docs/assets/navigation.js +1 -2
  129. package/docs/assets/search.js +1 -2
  130. package/docs/assets/style.css +850 -846
  131. package/docs/functions/alphaLpBreakdown.html +1 -253
  132. package/docs/functions/cetusLpBreakdown.html +1 -253
  133. package/docs/functions/claimBlueRewardTxb.html +1 -0
  134. package/docs/functions/claimRewardTxb.html +1 -243
  135. package/docs/functions/coinAmountToXTokensDoubleAsset.html +1 -267
  136. package/docs/functions/coinAmountToXTokensSingleAsset.html +1 -260
  137. package/docs/functions/coinsInPool.html +1 -438
  138. package/docs/functions/collectRewards.html +1 -242
  139. package/docs/functions/deposit.html +1 -246
  140. package/docs/functions/depositDoubleAssetTxb.html +1 -270
  141. package/docs/functions/depositSingleAssetTxb.html +1 -263
  142. package/docs/functions/fetchAfterTransactionEvents.html +1 -306
  143. package/docs/functions/fetchAutoCompoundingEvents.html +1 -257
  144. package/docs/functions/fetchAutoCompoundingEventsGql.html +1 -251
  145. package/docs/functions/fetchCetusPools.html +1 -231
  146. package/docs/functions/fetchChainIdentifier.html +1 -233
  147. package/docs/functions/fetchCheckRatioEvents.html +1 -249
  148. package/docs/functions/fetchLiquidityChangeEvents.html +1 -257
  149. package/docs/functions/fetchMultiReceipts.html +1 -261
  150. package/docs/functions/fetchNftHolders.html +1 -233
  151. package/docs/functions/fetchPools.html +1 -230
  152. package/docs/functions/fetchPortfolioData.html +1 -243
  153. package/docs/functions/fetchProtocolData.html +1 -231
  154. package/docs/functions/fetchTVL.html +1 -253
  155. package/docs/functions/fetchUserVaultBalances.html +1 -245
  156. package/docs/functions/fetchUserVaults.html +1 -243
  157. package/docs/functions/fetchUserWalletData.html +1 -243
  158. package/docs/functions/fetchVoloExchangeRate.html +1 -0
  159. package/docs/functions/fetchWithdrawV2Events.html +1 -255
  160. package/docs/functions/getAirdropShare.html +1 -243
  161. package/docs/functions/getAllDoubleAssetVaults.html +1 -235
  162. package/docs/functions/getAllSingleAssetVaults.html +1 -235
  163. package/docs/functions/getAllVaultBalances.html +1 -265
  164. package/docs/functions/getAllVaults.html +1 -233
  165. package/docs/functions/getAlphaUnlocks.html +1 -245
  166. package/docs/functions/getAlphaVaultBalance.html +1 -255
  167. package/docs/functions/getAmounts.html +1 -272
  168. package/docs/functions/getApr.html +1 -243
  169. package/docs/functions/getAprs.html +1 -255
  170. package/docs/functions/getApy.html +1 -243
  171. package/docs/functions/getApys.html +1 -255
  172. package/docs/functions/getCetusInvestorTicksMap.html +1 -284
  173. package/docs/functions/getCetusPool.html +1 -0
  174. package/docs/functions/getCetusSqrtPriceMap.html +1 -249
  175. package/docs/functions/getCoinAmountsFromLiquidity.html +1 -273
  176. package/docs/functions/getConf.html +1 -11763
  177. package/docs/functions/getCurrentTick.html +1 -247
  178. package/docs/functions/getDistributor.html +1 -0
  179. package/docs/functions/getDoubleAssetVaultBalance.html +1 -268
  180. package/docs/functions/getDoubleAssetVaults.html +1 -253
  181. package/docs/functions/getHoldersFromTransactions.html +1 -299
  182. package/docs/functions/getInvestor.html +1 -259
  183. package/docs/functions/getInvestorPoolMap.html +1 -241
  184. package/docs/functions/getLastAutoCompoundTime.html +1 -249
  185. package/docs/functions/getLatestPrices.html +1 -253
  186. package/docs/functions/getLiquidity.html +1 -260
  187. package/docs/functions/getMultiCetusPool.html +1 -0
  188. package/docs/functions/getMultiInvestor.html +1 -231
  189. package/docs/functions/getMultiLatestPrices.html +1 -233
  190. package/docs/functions/getMultiParentPool.html +1 -231
  191. package/docs/functions/getMultiPool.html +1 -231
  192. package/docs/functions/getMultiReceipts.html +1 -243
  193. package/docs/functions/getParentPool.html +1 -266
  194. package/docs/functions/getPool.html +1 -262
  195. package/docs/functions/getPoolExchangeRate.html +1 -0
  196. package/docs/functions/getPoolExchangeRateMap.html +1 -249
  197. package/docs/functions/getPoolsWeightDistribution.html +1 -0
  198. package/docs/functions/getPositionRange.html +1 -283
  199. package/docs/functions/getPositionRanges.html +1 -289
  200. package/docs/functions/getPositionTicks.html +1 -249
  201. package/docs/functions/getPriceToTick.html +1 -254
  202. package/docs/functions/getRebalanceHistories.html +1 -269
  203. package/docs/functions/getRebalanceHistory.html +1 -255
  204. package/docs/functions/getReceipts.html +1 -268
  205. package/docs/functions/getSingleAssetVaultBalance.html +1 -268
  206. package/docs/functions/getSingleAssetVaults.html +1 -253
  207. package/docs/functions/getSuiClient.html +3 -247
  208. package/docs/functions/getSuiNodeUrl.html +3 -232
  209. package/docs/functions/getTVLs-1.html +1 -243
  210. package/docs/functions/getTickToPrice.html +1 -254
  211. package/docs/functions/getTvls.html +1 -259
  212. package/docs/functions/getUserTokensFromTransactions.html +1 -269
  213. package/docs/functions/getUserTokensInUsdFromTransactions.html +1 -263
  214. package/docs/functions/getVaultBalance.html +1 -277
  215. package/docs/functions/getVaultBalanceForActiveUsers.html +1 -261
  216. package/docs/functions/getVaults.html +1 -250
  217. package/docs/functions/getXTokenVaultBalanceForActiveUsers.html +1 -261
  218. package/docs/functions/getZapAmounts.html +1 -323
  219. package/docs/functions/lastAutocompoundTime.html +1 -249
  220. package/docs/functions/liquidityToTokens.html +1 -253
  221. package/docs/functions/multiLiquidityToTokens.html +1 -271
  222. package/docs/functions/multiTokensToUsd.html +1 -262
  223. package/docs/functions/multiXTokensToLiquidity.html +1 -257
  224. package/docs/functions/parseUserWalletData.html +1 -243
  225. package/docs/functions/pendingBlueRewardAmount.html +1 -0
  226. package/docs/functions/setCustomSuiClient.html +5 -0
  227. package/docs/functions/setSuiClient.html +7 -255
  228. package/docs/functions/setSuiNodeUrl.html +5 -249
  229. package/docs/functions/setWeights.html +1 -0
  230. package/docs/functions/withdraw.html +1 -249
  231. package/docs/functions/withdrawAlphaTxb.html +1 -257
  232. package/docs/functions/withdrawTxb.html +1 -260
  233. package/docs/functions/zapDepositTxb.html +1 -300
  234. package/docs/index.html +41 -587
  235. package/docs/interfaces/Coin.html +12 -474
  236. package/docs/interfaces/CoinPair.html +3 -358
  237. package/docs/interfaces/NaviVoloData.html +3 -514
  238. package/docs/interfaces/PoolData.html +8 -0
  239. package/docs/interfaces/PoolWeightDistribution.html +4 -0
  240. package/docs/interfaces/RebalanceHistoryType.html +9 -652
  241. package/docs/modules.html +193 -1315
  242. package/docs/types/AfterTransactionEventNode.html +1 -305
  243. package/docs/types/Allocator.html +1 -321
  244. package/docs/types/AlphaFiDoubleAssetVault.html +1 -258
  245. package/docs/types/AlphaFiMultiVaultBalance.html +1 -219
  246. package/docs/types/AlphaFiSingleAssetVault.html +1 -244
  247. package/docs/types/AlphaFiVault.html +1 -214
  248. package/docs/types/AlphaFiVaultBalance.html +1 -220
  249. package/docs/types/AlphaPoolType.html +1 -383
  250. package/docs/types/AlphaReceipt.html +1 -220
  251. package/docs/types/AlphaReceiptFields.html +1 -421
  252. package/docs/types/AlphaVaultBalance.html +1 -245
  253. package/docs/types/AutoBalancePoolNames.html +1 -0
  254. package/docs/types/AutoCompoundingEventNode.html +1 -225
  255. package/docs/types/BluefinInvestor.html +1 -209
  256. package/docs/types/BluefinPoolType.html +1 -440
  257. package/docs/types/BucketInvestor.html +1 -249
  258. package/docs/types/CetusInvestor.html +1 -240
  259. package/docs/types/CetusPoolType.html +1 -433
  260. package/docs/types/CetusSwapOptions.html +1 -209
  261. package/docs/types/CoinAmounts.html +1 -216
  262. package/docs/types/CoinName.html +1 -290
  263. package/docs/types/CoinType.html +1 -291
  264. package/docs/types/CommonInvestorFields.html +1 -276
  265. package/docs/types/CreatePoolOptions.html +1 -246
  266. package/docs/types/Distributor.html +1 -341
  267. package/docs/types/DoubleAssetMultiVaultBalance.html +1 -236
  268. package/docs/types/DoubleAssetPoolNames.html +1 -289
  269. package/docs/types/DoubleAssetTokenHoldings.html +1 -232
  270. package/docs/types/DoubleAssetVaultBalance.html +1 -229
  271. package/docs/types/GetHoldersParams.html +1 -221
  272. package/docs/types/GetTokenHoldingsParams.html +1 -227
  273. package/docs/types/GetUserTokensFromTransactionsParams.html +1 -233
  274. package/docs/types/GetUserTokensInUsdFromTransactionsParams.html +1 -244
  275. package/docs/types/GetVaultBalanceForActiveUsersParams.html +1 -231
  276. package/docs/types/GetVaultBalanceParams.html +1 -217
  277. package/docs/types/HoldingsObj.html +1 -223
  278. package/docs/types/Icon.html +1 -266
  279. package/docs/types/Investor.html +1 -245
  280. package/docs/types/LiquidityChangeEventNode.html +1 -220
  281. package/docs/types/LiquidityToTokensParams.html +1 -255
  282. package/docs/types/LiquidityToUsdParams.html +1 -267
  283. package/docs/types/LoopingDebt.html +1 -258
  284. package/docs/types/LoopingPoolNames.html +1 -0
  285. package/docs/types/LpBreakdownType.html +1 -238
  286. package/docs/types/MemberPoolDataType.html +1 -276
  287. package/docs/types/MemberType.html +1 -269
  288. package/docs/types/MultiGetVaultBalancesParams.html +1 -229
  289. package/docs/types/NaviInvestor.html +1 -235
  290. package/docs/types/OtherReceiptFields.html +1 -373
  291. package/docs/types/PoolName.html +1 -326
  292. package/docs/types/PoolReceipt.html +1 -253
  293. package/docs/types/PoolType.html +1 -388
  294. package/docs/types/Receipt.html +1 -475
  295. package/docs/types/ReceiptGQL.html +1 -374
  296. package/docs/types/SingleAssetMultiVaultBalance.html +1 -232
  297. package/docs/types/SingleAssetPoolNames.html +1 -247
  298. package/docs/types/SingleAssetTokenHoldings.html +1 -228
  299. package/docs/types/SingleAssetVaultBalance.html +1 -223
  300. package/docs/types/SingleGetVaultBalancesParams.html +1 -224
  301. package/docs/types/StrategyType.html +1 -217
  302. package/docs/types/SuiNetwork.html +1 -213
  303. package/docs/types/SwapOptions.html +1 -248
  304. package/docs/types/TickSpacing.html +1 -212
  305. package/docs/types/TotalWeightType.html +1 -246
  306. package/docs/types/TransactionBlockType.html +1 -358
  307. package/docs/types/UserPoolLiquidity.html +1 -221
  308. package/docs/types/UserPoolTokenHoldings.html +1 -217
  309. package/docs/types/UserUsdHoldings.html +1 -223
  310. package/docs/types/VaultBalance.html +1 -216
  311. package/docs/types/WithdrawV2EventNode.html +1 -208
  312. package/docs/variables/bluefinPoolMap.html +1 -214
  313. package/docs/variables/cetusPoolMap.html +1 -214
  314. package/docs/variables/coinsList.html +1 -220
  315. package/docs/variables/defunctPoolsSet.html +1 -209
  316. package/docs/variables/doubleAssetPoolCoinMap.html +1 -237
  317. package/docs/variables/ignoredWalletsForDailyRevenue.html +1 -218
  318. package/docs/variables/loopingAccountAddresses.html +1 -219
  319. package/docs/variables/loopingPoolCoinMap.html +1 -233
  320. package/docs/variables/naviAssetMap.html +1 -215
  321. package/docs/variables/poolIdPoolNameMap.html +1 -218
  322. package/docs/variables/poolInfo.html +1 -304
  323. package/docs/variables/singleAssetPoolCoinMap.html +1 -229
  324. package/docs/variables/stableCoins.html +1 -207
  325. package/package.json +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"getReceipts.js","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/getReceipts.ts"],"names":[],"mappings":";;AA8BA,gEAyEC;AAKD,4CA0BC;AAED,kCAoEC;AAED,kDAmCC;AAKD,oCAuBC;AAED,0BAmDC;AAOD,gDAuBC;AAED,sCAqDC;AAKD,4CAuBC;AAED,kCAwDC;AAED,sDAeC;AAED,oDA8BC;AAOD,wCA+CC;AAED,8CA0DC;AAED,4CAyDC;AA1sBD,6CAsBwB;AACxB,kDAAwE;AACxE,2CAAqC;AACrC,4CAA4C;AAC5C,+DAAyD;AACzD,0EAA6D;AAE7D,SAAgB,0BAA0B,CAAC,QAAsB;IAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACnC,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,OAAO;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,QAAQ,EAAE,YAAY,EAAE,2DAA2D;gBACnF,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;gBAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,MAAM,EAAE;oBACN,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE;oBACpC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS;oBAC1C,0BAA0B,EAAE;wBAC1B,IAAI,EAAE,SAAS,EAAE,uBAAuB;wBACxC,MAAM,EAAE;4BACN,QAAQ,EACN,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,GAAG,CAC3D,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gCACT,IAAI,EAAE,SAAS,EAAE,uBAAuB;gCACxC,MAAM,EAAE;oCACN,KAAK,EAAE,IAAI,CAAC,KAAK;oCACjB,GAAG,EAAE;wCACH,IAAI,EAAE,SAAS,EAAE,uBAAuB;wCACxC,MAAM,EAAE;4CACN,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;yCACpB;qCACF;iCACF;6BACF,CAAC,CACH;yBACJ;qBACF;oBACD,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc;wBAClD,CAAC,CAAC;4BACE,IAAI,EAAE,SAAS,EAAE,uBAAuB;4BACxC,MAAM,EAAE;gCACN,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;gCAC/C,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;gCACnD,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;gCAC/C,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;6BAChD;yBACF;wBACH,CAAC,CAAC,SAAS;oBACb,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;oBAChC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAClC,eAAe,EAAE;wBACf,IAAI,EAAE,SAAS,EAAE,uBAAuB;wBACxC,MAAM,EAAE;4BACN,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAC1D,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gCACT,IAAI,EAAE,SAAS,EAAE,uBAAuB;gCACxC,MAAM,EAAE;oCACN,GAAG,EAAE;wCACH,IAAI,EAAE,SAAS,EAAE,uBAAuB;wCACxC,MAAM,EAAE;4CACN,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;yCACpB;qCACF;oCACD,KAAK,EAAE,IAAI,CAAC,KAAK;iCAClB;6BACF,CAAC,CACH;yBACF;qBACF;oBACD,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;oBACtC,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa;oBAClD,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,SAAS;iBACtE;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,4BAAW,CAAY,OAAO,CAAC,CAAC;AAC1D,MAAM,oBAAoB,GAAG,IAAI,4BAAW,CAAqB,OAAO,CAAC,CAAC;AAEnE,KAAK,UAAU,gBAAgB,CAAC,OAAe;IACpD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAA,6BAAkB,EAAC,OAAO,CAAC,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAQ,CAAC,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,eAAe,kBAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;YACxE,IAAI,OAAO,GAAc,EAAE,CAAC;YAC5B,IAAI,UAAU,CAAC,GAAG,CAAC,kBAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/C,OAAO,GAAG,0BAA0B,CAClC,UAAU,CAAC,GAAG,CAAC,kBAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAiB,CAC3D,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAC9D,4BAA4B;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAQ,CAAC,CAAC;QACpC,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,OAAO,WAAW,CAAC,IAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACpD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,eAAe,kBAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;YAChF,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,QAAkB,EAClB,OAAe,EACf,WAAoB;IAEpB,MAAM,SAAS,GAAG,IAAA,wBAAY,GAAE,CAAC;IACjC,MAAM,gBAAgB,GAAG,eAAe,kBAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;IACpF,IAAI,WAAW,EAAE,CAAC;QAChB,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACvC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC3D,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,EAAE;IACF,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,IAAI,kBAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,CAAC,KAAK,IAAwB,EAAE;YAC9C,0DAA0D;YAC1D,IAAI,aAAa,GAA8B,IAAI,CAAC;YACpD,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,gBAAgB,GACpB,MAAM,SAAS,CAAC,eAAe,CAAC;oBAC9B,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,aAAa;oBACrB,MAAM,EAAE;wBACN,sDAAsD;wBACtD,UAAU,EAAE,kBAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW;qBAC3C;oBACD,OAAO,EAAE;wBACP,WAAW,EAAE,IAAI;qBAClB;iBACF,CAAC,CAAC;gBACL,yDAAyD;gBACzD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACpC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAe,CAAC;oBAC9B,IAAI,CAAC,EAAE,CAAC;wBACN,IAAI,kBAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;4BAC7D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACf,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,+BAA+B;gBAC/B,IAAI,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;oBAChE,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,0BAA0B;oBAC1B,8CAA8C;oBAC9C,MAAM;gBACR,CAAC;YACH,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC1C,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,gCAAgC;YAC/E,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,oCAAoC;QACpC,6CAA6C;QAC7C,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,QAAkB,EAClB,WAAoB;IAEpB,IAAI,IAA8B,CAAC;IACnC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,cAAc,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACxB,cAAc,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,kBAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,IAAI,OAAO,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,CAAC,MAAM,WAAW,CACjC,QAAQ,EACR,WAAW,CACZ,CAAyC,CAAC;YAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,cAAc,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACnE,CAAC;QAED,6BAA6B;QAC7B,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1D,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CACT,4CAA4C,QAAQ,gBAAgB,GAAG,EAAE,CAC1E,CAAC;QACF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,4BAAW,EAA4B,CAAC;AAC9D,MAAM,gBAAgB,GAAG,IAAI,4BAAW,EAAqC,CAAC;AAEvE,KAAK,UAAU,YAAY;IAChC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAQ,CAAC,CAAC;IAClC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,OAAO,kBAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,OAAO,kBAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAA,wBAAY,GAAE,CAAC,eAAe,CAAC;YAC7C,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAgC,CAAC;YACvD,MAAM,QAAQ,GAAG,QAAQ,kBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACrD,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,QAAgB,EAChB,WAAoB;IAEpB,MAAM,SAAS,GAAG,IAAA,wBAAY,GAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,QAAQ,kBAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAEnE,IAAI,WAAW,EAAE,CAAC;QAChB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3B,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,4CAA4C;IAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,mDAAmD;IACnD,IAAI,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,4CAA4C;IAC5C,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC;gBAClC,EAAE,EAAE,kBAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM;gBAC7B,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI;iBAClB;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GACZ,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,IAAsB,CAAC,CAAC,CAAE,CAAC,CAAC,IAAiB,CAAC;YAE1E,wBAAwB;YACxB,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAClC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;YAC3D,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,sDAAsD;YACtD,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,oBAAoB;IACpB,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,4BAAW,EAAmC,CAAC;AAC1E,MAAM,qBAAqB,GAAG,IAAI,4BAAW,EAE1C,CAAC;AAEG,KAAK,UAAU,kBAAkB;IACtC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAQ,CAAC,CAAC;IAClC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,OAAO,kBAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,OAAO,kBAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAA,wBAAY,GAAE,CAAC,eAAe,CAAC;YAC7C,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAqB,CAAC;YAC5C,MAAM,QAAQ,GAAG,QAAQ,kBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;YAC3D,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,WAAoB;IAEpB,MAAM,SAAS,GAAG,IAAA,wBAAY,GAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,QAAQ,QAAQ,EAAE,CAAC;IACpC,IAAI,WAAW,EAAE,CAAC;QAChB,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,4CAA4C;IAC5C,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,mDAAmD;IACnD,IAAI,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,4CAA4C;IAC5C,gBAAgB,GAAG,CAAC,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,kBAAQ,CAAC,QAAQ,CAAC;gBAC3B,CAAC,CAAC,kBAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY;gBACjC,CAAC,CAAC,uBAAY,CAAC,QAAQ,CAAC;oBACtB,CAAC,CAAC,uBAAY,CAAC,QAAQ,CAAC;oBACxB,CAAC,CAAC,yBAAc,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC;gBAClC,EAAE,EAAE,EAAE;gBACN,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI;iBAClB;aACF,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,CAAC,CAAC,IAAuC,CAAC;YAE5D,wBAAwB;YACxB,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;YAC/D,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,sDAAsD;YACtD,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,oBAAoB;IACpB,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACtD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,4BAAW,EAAY,CAAC;AAClD,MAAM,oBAAoB,GAAG,IAAI,4BAAW,EAAqB,CAAC;AAE3D,KAAK,UAAU,gBAAgB;IACpC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAQ,CAAC,CAAC;IAClC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,OAAO,kBAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,OAAO,kBAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAA,wBAAY,GAAE,CAAC,eAAe,CAAC;YAC7C,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAgB,CAAC;YAC3C,MAAM,QAAQ,GAAG,YAAY,kBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YAC7D,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,QAAkB,EAClB,WAAoB;IAEpB,MAAM,SAAS,GAAG,IAAA,wBAAY,GAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,YAAY,kBAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3E,IAAI,WAAW,EAAE,CAAC;QAChB,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IACD,gDAAgD;IAChD,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,mDAAmD;IACnD,IAAI,oBAAoB,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,4CAA4C;IAC5C,oBAAoB,GAAG,CAAC,KAAK,IAAI,EAAE;QACjC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC;gBAClC,EAAE,EAAE,kBAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU;gBAC/C,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI;iBAClB;aACF,CAAC,CAAC;YACH,IAAI,aAAuB,CAAC;YAC5B,IAAI,kBAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,IAAI,MAAM,EAAE,CAAC;gBACpD,aAAa,GAAG,CAAC,CAAC,IAA2C,CAAC;YAChE,CAAC;iBAAM,IAAI,kBAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,IAAI,QAAQ,EAAE,CAAC;gBAC7D,aAAa,GAAG,CAAC,CAAC,IAA6C,CAAC;YAClE,CAAC;iBAAM,IAAI,kBAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,IAAI,SAAS,EAAE,CAAC;gBAC9D,aAAa,GAAG,CAAC,CAAC,IAA8C,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,CAAC,CAAC,IAA4C,CAAC;YACjE,CAAC;YAED,4BAA4B;YAC5B,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC3C,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;YAC1D,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,sDAAsD;YACtD,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,oBAAoB;IACpB,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACzD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEM,KAAK,UAAU,qBAAqB;IACzC,MAAM,MAAM,GAAG,iDAAiD,CAAC;IACjE,MAAM,eAAe,GAAiB,MAAM,KAAK,CAAC,MAAM,CAAC;SACtD,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAC,CAAC,0BAA0B;QAChF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACL,OAAO,eAAe,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,SAAiC;IAC1E,MAAM,OAAO,GAIT,EAAE,CAAC;IACP,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,eAAe,CAAC,IAAI,CAAC,kBAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,wBAAY,GAAE,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC;YAC9C,GAAG,EAAE,eAAe;YACpB,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;SAC/B,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAA2C,CAAC;YACxE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS;QACT,OAAO,CAAC,KAAK,CACX,6CAA6C,EAC7C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CACrB,CAAC;QACF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,4BAAW,EAAe,CAAC;AACxD,MAAM,uBAAuB,GAAG,IAAI,4BAAW,EAE5C,CAAC;AAEG,KAAK,UAAU,cAAc,CAClC,WAAoB;IAEpB,MAAM,SAAS,GAAG,IAAA,wBAAY,GAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,eAAe,IAAA,kBAAO,GAAE,CAAC,iBAAiB,EAAE,CAAC;IAC9D,IAAI,WAAW,EAAE,CAAC;QAChB,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,mDAAmD;IACnD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,mDAAmD;IACnD,IAAI,kBAAkB,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,4CAA4C;IAC5C,kBAAkB,GAAG,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC;gBAClC,EAAE,EAAE,IAAA,kBAAO,GAAE,CAAC,iBAAiB;gBAC/B,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI;iBAClB;aACF,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,CAAC,CAAC,IAAmB,CAAC;YAE1C,+BAA+B;YAC/B,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC5C,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;gBAAS,CAAC;YACT,sDAAsD;YACtD,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,oBAAoB;IACpB,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC1D,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,YAAwB,EAAE;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwD,CAAC;IAE5E,0DAA0D;IAC1D,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC/B,IACE,QAAQ,IAAI,OAAO;YACnB,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAC5B,kBAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,kBAAkB,CACjD,EACD,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,QAAkB,CAAC;QACvB,IAAI,kBAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,kBAAkB,IAAI,OAAO,EAAE,CAAC;YAChE,QAAQ,GAAG,CAAC,MAAM,WAAW,CAC3B,QAAoB,EACpB,KAAK,CACN,CAAyC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,CAAC,MAAM,WAAW,CAC3B,QAAoB,EACpB,KAAK,CACN,CAA2C,CAAC;QAC/C,CAAC;QACD,MAAM,SAAS,GAAG,gCAAsB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QACzD,MAAM,KAAK,GAAG,oBAAS,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,gCAAsB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QACzD,MAAM,KAAK,GAAG,oBAAS,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,MAAM,CAAC;YAC1B,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;gBAC3B,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;gBAC3B,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,UAAU,GAAG,6BAAQ,CAAC,gBAAgB,CAC1C,SAAS,EACT,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,CACX,CAAC;YACF,MAAM,UAAU,GAAG,6BAAQ,CAAC,gBAAgB,CAC1C,SAAS,EACT,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,CACX,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChB,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;gBACjC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,WAAoB;IAEpB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwD,CAAC;IAC5E,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,cAA0B,CAAC;QAC5C,IACE,QAAQ,IAAI,OAAO;YACnB,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAC5B,kBAAQ,CAAC,cAAc,CAAC,CAAC,kBAAkB,CAC5C,EACD,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,QAAkB,CAAC;QACvB,IAAI,kBAAQ,CAAC,cAAc,CAAC,CAAC,kBAAkB,IAAI,OAAO,EAAE,CAAC;YAC3D,QAAQ,GAAG,CAAC,MAAM,WAAW,CAC3B,QAAoB,EACpB,WAAW,CACZ,CAAyC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,CAAC,MAAM,WAAW,CAC3B,QAAoB,EACpB,WAAW,CACZ,CAA2C,CAAC;QAC/C,CAAC;QACD,MAAM,SAAS,GAAG,gCAAsB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QACzD,MAAM,KAAK,GAAG,oBAAS,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,gCAAsB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;QACzD,MAAM,KAAK,GAAG,oBAAS,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,MAAM,CAAC;YAC1B,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;gBAC3B,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;gBAC3B,SAAS,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,UAAU,GAAG,6BAAQ,CAAC,gBAAgB,CAC1C,SAAS,EACT,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,CACX,CAAC;YACF,MAAM,UAAU,GAAG,6BAAQ,CAAC,gBAAgB,CAC1C,SAAS,EACT,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,CACX,CAAC;YACF,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChB,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;gBACjC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;EAGE;AACF,gFAAgF","sourcesContent":["import { PaginatedObjectsResponse } from \"@mysten/sui/client\";\nimport {\n AlphaPoolType,\n CetusInvestor,\n NaviInvestor,\n CommonInvestorFields,\n CetusPoolType,\n PoolName,\n PoolType,\n Receipt,\n NaviVoloData,\n Investor,\n BluefinInvestor,\n BucketInvestor,\n SingleAssetPoolNames,\n fetchMultiReceipts,\n ReceiptGQL,\n cetusPoolMap,\n bluefinPoolMap,\n Distributor,\n getConf,\n BluefinPoolType,\n coinsList,\n} from \"../../index.js\";\nimport { doubleAssetPoolCoinMap, poolInfo } from \"../../common/maps.js\";\nimport { Decimal } from \"decimal.js\";\nimport { getSuiClient } from \"../client.js\";\nimport { SimpleCache } from \"../../utils/simpleCache.js\";\nimport { TickMath } from \"@cetusprotocol/cetus-sui-clmm-sdk\";\n\nexport function convertReceiptGQLToReceipt(receipts: ReceiptGQL[]): Receipt[] {\n const res = receipts.map((receipt) => {\n return {\n objectId: receipt.address,\n version: receipt.version,\n digest: receipt.digest,\n content: {\n dataType: \"moveObject\", // Assuming a fixed value as it's not available in ReceiptA\n type: receipt.contents.type.repr,\n hasPublicTransfer: receipt.hasPublicTransfer,\n fields: {\n id: { id: receipt.contents.json.id },\n image_url: receipt.contents.json.image_url,\n last_acc_reward_per_xtoken: {\n type: \"unknown\", // Assuming fixed value\n fields: {\n contents:\n receipt.contents.json.last_acc_reward_per_xtoken.contents.map(\n (item) => ({\n type: \"unknown\", // Assuming fixed value\n fields: {\n value: item.value,\n key: {\n type: \"unknown\", // Assuming fixed value\n fields: {\n name: item.key.name,\n },\n },\n },\n }),\n ),\n },\n },\n locked_balance: receipt.contents.json.locked_balance\n ? {\n type: \"unknown\", // Assuming fixed value\n fields: {\n head: receipt.contents.json.locked_balance.head,\n id: { id: receipt.contents.json.locked_balance.id },\n size: receipt.contents.json.locked_balance.size,\n tail: receipt.contents.json.locked_balance.tail,\n },\n }\n : undefined,\n name: receipt.contents.json.name,\n owner: receipt.contents.json.owner,\n pending_rewards: {\n type: \"unknown\", // Assuming fixed value\n fields: {\n contents: receipt.contents.json.pending_rewards.contents.map(\n (item) => ({\n type: \"unknown\", // Assuming fixed value\n fields: {\n key: {\n type: \"unknown\", // Assuming fixed value\n fields: {\n name: item.key.name,\n },\n },\n value: item.value,\n },\n }),\n ),\n },\n },\n pool_id: receipt.contents.json.pool_id,\n xTokenBalance: receipt.contents.json.xTokenBalance,\n unlocked_xtokens: receipt.contents.json.unlocked_xtokens ?? undefined,\n },\n },\n };\n });\n return res;\n}\n\nconst receiptsCache = new SimpleCache<Receipt[]>(3600000);\nconst receiptsPromiseCache = new SimpleCache<Promise<Receipt[]>>(3600000);\n\nexport async function getMultiReceipts(address: string) {\n try {\n const receiptMap = await fetchMultiReceipts(address);\n for (const pool of Object.keys(poolInfo)) {\n const cacheKey = `getReceipts-${poolInfo[pool].receiptName}-${address}`;\n let receipt: Receipt[] = [];\n if (receiptMap.has(poolInfo[pool].receiptName)) {\n receipt = convertReceiptGQLToReceipt(\n receiptMap.get(poolInfo[pool].receiptName) as ReceiptGQL[],\n );\n }\n receiptsCache.set(cacheKey, receipt);\n }\n } catch (error) {\n console.error(\"Error fetching receipts from graphQL:\", error);\n // get receipts individually\n const pools = Object.keys(poolInfo);\n const receiptPromises = pools.map((pool) => {\n return getReceipts(pool as PoolName, address, true);\n });\n const receipts = await Promise.all(receiptPromises);\n receipts.forEach((receipt, index) => {\n const cacheKey = `getReceipts-${poolInfo[pools[index]].receiptName}-${address}`;\n receiptsCache.set(cacheKey, receipt);\n });\n }\n}\n\nexport async function getReceipts(\n poolName: PoolName,\n address: string,\n ignoreCache: boolean,\n): Promise<Receipt[]> {\n const suiClient = getSuiClient();\n const receiptsCacheKey = `getReceipts-${poolInfo[poolName].receiptName}-${address}`;\n if (ignoreCache) {\n receiptsCache.delete(receiptsCacheKey);\n receiptsPromiseCache.delete(receiptsCacheKey);\n }\n const cachedResponse = receiptsCache.get(receiptsCacheKey);\n if (cachedResponse) {\n return cachedResponse;\n }\n //\n const nfts: Receipt[] = [];\n if (poolInfo[poolName].receiptType == \"\") {\n return nfts;\n }\n let cachedPromise = receiptsPromiseCache.get(receiptsCacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<Receipt[]> => {\n // const first_package = getConf().ALPHA_FIRST_PACKAGE_ID;\n let currentCursor: string | null | undefined = null;\n while (true) {\n const paginatedObjects: PaginatedObjectsResponse =\n await suiClient.getOwnedObjects({\n owner: address,\n cursor: currentCursor,\n filter: {\n // StructType: `${first_package}::${module}::Receipt`,\n StructType: poolInfo[poolName].receiptType,\n },\n options: {\n showContent: true,\n },\n });\n // Traverse the current page data and push to coins array\n paginatedObjects.data.forEach((obj) => {\n const o = obj.data as Receipt;\n if (o) {\n if (poolInfo[poolName].receiptName === o.content.fields.name) {\n nfts.push(o);\n }\n }\n });\n // Check if there's a next page\n if (paginatedObjects.hasNextPage && paginatedObjects.nextCursor) {\n currentCursor = paginatedObjects.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n }\n receiptsCache.set(receiptsCacheKey, nfts);\n receiptsPromiseCache.delete(receiptsCacheKey);\n return nfts;\n })().catch((error) => {\n receiptsPromiseCache.delete(receiptsCacheKey); // Remove the promise from cache\n throw error;\n });\n // const data = await cachedPromise;\n // console.log(\"received cached data\", data);\n receiptsPromiseCache.set(receiptsCacheKey, cachedPromise);\n }\n return cachedPromise;\n}\n\nexport async function getPoolExchangeRate(\n poolName: PoolName,\n ignoreCache: boolean,\n): Promise<Decimal> {\n let pool: PoolType | AlphaPoolType;\n try {\n pool = await getPool(poolName, ignoreCache);\n const xTokenSupply = new Decimal(pool.content.fields.xTokenSupply);\n let tokensInvested = new Decimal(pool.content.fields.tokensInvested);\n if (poolName == \"ALPHA\") {\n tokensInvested = new Decimal(pool.content.fields.alpha_bal);\n } else if (poolInfo[poolName].parentProtocolName == \"CETUS\") {\n const investor = (await getInvestor(\n poolName,\n ignoreCache,\n )) as CetusInvestor & CommonInvestorFields;\n if (!investor) {\n throw new Error(`couldnt fetch investor object for pool: ${poolName}`);\n }\n tokensInvested = new Decimal(pool.content.fields.tokensInvested);\n }\n\n // Check for division by zero\n if (xTokenSupply.eq(0)) {\n console.error(\"Division by zero error: tokensInvested is zero.\");\n return new Decimal(0);\n }\n const poolExchangeRate = tokensInvested.div(xTokenSupply);\n return poolExchangeRate;\n } catch (err) {\n console.log(\n `getPoolExchangeRate failed for poolName: ${poolName}, with error ${err}`,\n );\n throw err;\n }\n}\n\nconst poolCache = new SimpleCache<PoolType | AlphaPoolType>();\nconst poolPromiseCache = new SimpleCache<Promise<PoolType | AlphaPoolType>>();\n\nexport async function getMultiPool() {\n let pools = Object.keys(poolInfo);\n pools = pools.filter((pool) => {\n return poolInfo[pool].poolId !== \"\";\n });\n const poolIds = pools.map((pool) => {\n return poolInfo[pool].poolId;\n });\n try {\n const o = await getSuiClient().multiGetObjects({\n ids: poolIds,\n options: {\n showContent: true,\n },\n });\n for (let i = 0; i < pools.length; i = i + 1) {\n const poolData = o[i].data as AlphaPoolType | PoolType;\n const cacheKey = `pool_${poolInfo[pools[i]].poolId}`;\n poolCache.set(cacheKey, poolData);\n }\n } catch (error) {\n console.error(`Error getting multiPools - ${error}`);\n }\n}\n\nexport async function getPool(\n poolName: string,\n ignoreCache: boolean,\n): Promise<PoolType | AlphaPoolType> {\n const suiClient = getSuiClient();\n const cacheKey = `pool_${poolInfo[poolName.toUpperCase()].poolId}`;\n\n if (ignoreCache) {\n poolCache.delete(cacheKey);\n poolPromiseCache.delete(cacheKey);\n }\n\n // Check if the pool is already in the cache\n const cachedPool = poolCache.get(cacheKey);\n if (cachedPool) {\n return cachedPool;\n }\n\n // Check if there is already a promise in the cache\n let poolPromise = poolPromiseCache.get(cacheKey);\n if (poolPromise) {\n return poolPromise;\n }\n // If not, create a new promise and cache it\n poolPromise = (async () => {\n try {\n const o = await suiClient.getObject({\n id: poolInfo[poolName].poolId,\n options: {\n showContent: true,\n },\n });\n\n const poolData =\n poolName === \"ALPHA\" ? (o.data as AlphaPoolType) : (o.data as PoolType);\n\n // Cache the pool object\n poolCache.set(cacheKey, poolData);\n return poolData;\n } catch (err) {\n console.error(`Error in getPool; poolName => ${poolName}`);\n throw err;\n } finally {\n // Remove the promise from the cache after it resolves\n poolPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n poolPromiseCache.set(cacheKey, poolPromise);\n return poolPromise;\n}\n\nconst cetusPoolCache = new SimpleCache<CetusPoolType | BluefinPoolType>();\nconst cetusPoolPromiseCache = new SimpleCache<\n Promise<CetusPoolType | BluefinPoolType>\n>();\n\nexport async function getMultiParentPool() {\n let pools = Object.keys(poolInfo);\n pools = pools.filter((pool) => {\n return poolInfo[pool].poolId !== \"\";\n });\n const poolIds = pools.map((pool) => {\n return poolInfo[pool].parentPoolId;\n });\n try {\n const o = await getSuiClient().multiGetObjects({\n ids: poolIds,\n options: {\n showContent: true,\n },\n });\n for (let i = 0; i < pools.length; i = i + 1) {\n const poolData = o[i].data as CetusPoolType;\n const cacheKey = `pool_${poolInfo[pools[i]].parentPoolId}`;\n cetusPoolCache.set(cacheKey, poolData);\n }\n } catch (e) {\n console.error(`[getMultiParentPool] Error getting multiPools`);\n }\n}\n\nexport async function getParentPool(\n poolName: string,\n ignoreCache: boolean,\n): Promise<CetusPoolType | BluefinPoolType> {\n const suiClient = getSuiClient();\n const cacheKey = `pool_${poolName}`;\n if (ignoreCache) {\n cetusPoolCache.delete(cacheKey);\n cetusPoolPromiseCache.delete(cacheKey);\n }\n\n // Check if the pool is already in the cache\n const cachedPool = cetusPoolCache.get(cacheKey);\n if (cachedPool) {\n return cachedPool;\n }\n\n // Check if there is already a promise in the cache\n let cetusPoolPromise = cetusPoolPromiseCache.get(cacheKey);\n if (cetusPoolPromise) {\n return cetusPoolPromise;\n }\n // If not, create a new promise and cache it\n cetusPoolPromise = (async () => {\n try {\n const id = poolInfo[poolName]\n ? poolInfo[poolName].parentPoolId\n : cetusPoolMap[poolName]\n ? cetusPoolMap[poolName]\n : bluefinPoolMap[poolName];\n const o = await suiClient.getObject({\n id: id,\n options: {\n showContent: true,\n },\n });\n const cetusPool = o.data as CetusPoolType | BluefinPoolType;\n\n // Cache the pool object\n cetusPoolCache.set(cacheKey, cetusPool);\n return cetusPool;\n } catch (err) {\n console.error(`getCetusPool failed for poolName: ${poolName}`);\n throw err;\n } finally {\n // Remove the promise from the cache after it resolves\n cetusPoolPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n cetusPoolPromiseCache.set(cacheKey, cetusPoolPromise);\n return cetusPoolPromise;\n}\n\nconst investorCache = new SimpleCache<Investor>();\nconst investorPromiseCache = new SimpleCache<Promise<Investor>>();\n\nexport async function getMultiInvestor() {\n let pools = Object.keys(poolInfo);\n pools = pools.filter((pool) => {\n return poolInfo[pool].investorId !== \"\";\n });\n const investorIds = pools.map((pool) => {\n return poolInfo[pool].investorId;\n });\n try {\n const o = await getSuiClient().multiGetObjects({\n ids: investorIds,\n options: {\n showContent: true,\n },\n });\n for (let i = 0; i < pools.length; i = i + 1) {\n const investorData = o[i].data as Investor;\n const cacheKey = `investor_${poolInfo[pools[i]].investorId}`;\n investorCache.set(cacheKey, investorData);\n }\n } catch (e) {\n console.error(`[getMultiInvestor] Error getting multiPools`);\n }\n}\n\nexport async function getInvestor(\n poolName: PoolName,\n ignoreCache: boolean,\n): Promise<Investor> {\n const suiClient = getSuiClient();\n const cacheKey = `investor_${poolInfo[poolName.toUpperCase()].investorId}`;\n if (ignoreCache) {\n investorCache.delete(cacheKey);\n investorPromiseCache.delete(cacheKey);\n }\n // Check if the investor is already in the cache\n const cachedInvestor = investorCache.get(cacheKey);\n if (cachedInvestor) {\n return cachedInvestor;\n }\n\n // Check if there is already a promise in the cache\n let cetusInvestorPromise = investorPromiseCache.get(cacheKey);\n if (cetusInvestorPromise) {\n return cetusInvestorPromise;\n }\n // If not, create a new promise and cache it\n cetusInvestorPromise = (async () => {\n try {\n const o = await suiClient.getObject({\n id: poolInfo[poolName.toUpperCase()].investorId,\n options: {\n showContent: true,\n },\n });\n let cetusInvestor: Investor;\n if (poolInfo[poolName].parentProtocolName == \"NAVI\") {\n cetusInvestor = o.data as NaviInvestor & CommonInvestorFields;\n } else if (poolInfo[poolName].parentProtocolName == \"BUCKET\") {\n cetusInvestor = o.data as BucketInvestor & CommonInvestorFields;\n } else if (poolInfo[poolName].parentProtocolName == \"BLUEFIN\") {\n cetusInvestor = o.data as BluefinInvestor & CommonInvestorFields;\n } else {\n cetusInvestor = o.data as CetusInvestor & CommonInvestorFields;\n }\n\n // Cache the investor object\n investorCache.set(cacheKey, cetusInvestor);\n return cetusInvestor;\n } catch (err) {\n console.error(`getInvestor failed for pool: ${poolName}`);\n throw err;\n } finally {\n // Remove the promise from the cache after it resolves\n investorPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n investorPromiseCache.set(cacheKey, cetusInvestorPromise);\n return cetusInvestorPromise;\n}\n\nexport async function fetchVoloExchangeRate(): Promise<NaviVoloData> {\n const apiUrl = \"https://open-api.naviprotocol.io/api/volo/stats\";\n const NaviVoloDetails: NaviVoloData = await fetch(apiUrl)\n .then(async (response) => {\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const data = (await response.json()) as NaviVoloData; // Parse the JSON response\n return data;\n })\n .catch((error) => {\n console.log(\"failed to fetch Navi-volo details\", error);\n throw error;\n });\n return NaviVoloDetails;\n}\n\nexport async function multiGetNaviInvestor(poolNames: SingleAssetPoolNames[]) {\n const results: {\n [poolName in SingleAssetPoolNames]?:\n | (NaviInvestor & CommonInvestorFields)\n | undefined;\n } = {};\n const poolInvestorIds: string[] = [];\n\n for (const poolName of poolNames) {\n poolInvestorIds.push(poolInfo[poolName.toUpperCase()].investorId);\n }\n try {\n const suiClient = getSuiClient();\n const objects = await suiClient.multiGetObjects({\n ids: poolInvestorIds,\n options: { showContent: true },\n });\n for (let i = 0; i < objects.length; i++) {\n const investor = objects[i].data as NaviInvestor & CommonInvestorFields;\n results[poolNames[i]] = investor;\n }\n return results;\n } catch (err) {\n //improve\n console.error(\n \"multiGetNaviInvestor failed for poolNames: \",\n poolNames.join(\", \"),\n );\n throw err;\n }\n}\n\nconst distributorCache = new SimpleCache<Distributor>();\nconst distributorPromiseCache = new SimpleCache<\n Promise<Distributor | undefined>\n>();\n\nexport async function getDistributor(\n ignoreCache: boolean,\n): Promise<Distributor | undefined> {\n const suiClient = getSuiClient();\n const cacheKey = `distributor_${getConf().ALPHA_DISTRIBUTOR}`;\n if (ignoreCache) {\n distributorCache.delete(cacheKey);\n distributorPromiseCache.delete(cacheKey);\n }\n // Check if the distributor is already in the cache\n const cachedDistributor = distributorCache.get(cacheKey);\n if (cachedDistributor) {\n return cachedDistributor;\n }\n\n // Check if there is already a promise in the cache\n let distributorPromise = distributorPromiseCache.get(cacheKey);\n if (distributorPromise) {\n return distributorPromise;\n }\n\n // If not, create a new promise and cache it\n distributorPromise = (async () => {\n try {\n const o = await suiClient.getObject({\n id: getConf().ALPHA_DISTRIBUTOR,\n options: {\n showContent: true,\n },\n });\n const distributor = o.data as Distributor;\n\n // Cache the distributor object\n distributorCache.set(cacheKey, distributor);\n return distributor;\n } catch (e) {\n console.error(`getDistributor failed`);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n distributorPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n distributorPromiseCache.set(cacheKey, distributorPromise);\n return distributorPromise;\n}\n\nexport async function getPositionRanges(poolNames: PoolName[] = []) {\n const res = new Map<PoolName, { lowerPrice: string; upperPrice: string }>();\n\n // Use Promise.all to handle multiple promises in parallel\n await Promise.all(\n poolNames.map(async (poolName) => {\n if (\n poolName == \"ALPHA\" ||\n ![\"CETUS\", \"BLUEFIN\"].includes(\n poolInfo[poolName.toString()].parentProtocolName,\n )\n ) {\n return;\n }\n let investor: Investor;\n if (poolInfo[poolName.toString()].parentProtocolName == \"CETUS\") {\n investor = (await getInvestor(\n poolName as PoolName,\n false,\n )) as CetusInvestor & CommonInvestorFields;\n } else {\n investor = (await getInvestor(\n poolName as PoolName,\n false,\n )) as BluefinInvestor & CommonInvestorFields;\n }\n const coinAName = doubleAssetPoolCoinMap[poolName].coin1;\n const coinA = coinsList[coinAName];\n const coinBName = doubleAssetPoolCoinMap[poolName].coin2;\n const coinB = coinsList[coinBName];\n if (investor) {\n const upperBound = 443636;\n let lowerTick = Number(investor.content.fields.lower_tick);\n let upperTick = Number(investor.content.fields.upper_tick);\n if (lowerTick > upperBound) {\n lowerTick = -~(lowerTick - 1);\n }\n if (upperTick > upperBound) {\n upperTick = -~(upperTick - 1);\n }\n const lowerPrice = TickMath.tickIndexToPrice(\n lowerTick,\n coinA.expo,\n coinB.expo,\n );\n const upperPrice = TickMath.tickIndexToPrice(\n upperTick,\n coinA.expo,\n coinB.expo,\n );\n res.set(poolName, {\n lowerPrice: lowerPrice.toString(),\n upperPrice: upperPrice.toString(),\n });\n }\n }),\n );\n return res;\n}\n\nexport async function getPositionRange(\n ignoreCache: boolean,\n): Promise<Map<PoolName, { lowerPrice: string; upperPrice: string }>> {\n const res = new Map<PoolName, { lowerPrice: string; upperPrice: string }>();\n for (const poolNameString of Object.keys(poolInfo)) {\n const poolName = poolNameString as PoolName;\n if (\n poolName == \"ALPHA\" ||\n ![\"CETUS\", \"BLUEFIN\"].includes(\n poolInfo[poolNameString].parentProtocolName,\n )\n ) {\n continue;\n }\n let investor: Investor;\n if (poolInfo[poolNameString].parentProtocolName == \"CETUS\") {\n investor = (await getInvestor(\n poolName as PoolName,\n ignoreCache,\n )) as CetusInvestor & CommonInvestorFields;\n } else {\n investor = (await getInvestor(\n poolName as PoolName,\n ignoreCache,\n )) as BluefinInvestor & CommonInvestorFields;\n }\n const coinAName = doubleAssetPoolCoinMap[poolName].coin1;\n const coinA = coinsList[coinAName];\n const coinBName = doubleAssetPoolCoinMap[poolName].coin2;\n const coinB = coinsList[coinBName];\n if (investor) {\n const upperBound = 443636;\n let lowerTick = Number(investor.content.fields.lower_tick);\n let upperTick = Number(investor.content.fields.upper_tick);\n if (lowerTick > upperBound) {\n lowerTick = -~(lowerTick - 1);\n }\n if (upperTick > upperBound) {\n upperTick = -~(upperTick - 1);\n }\n const lowerPrice = TickMath.tickIndexToPrice(\n lowerTick,\n coinA.expo,\n coinB.expo,\n );\n const upperPrice = TickMath.tickIndexToPrice(\n upperTick,\n coinA.expo,\n coinB.expo,\n );\n res.set(poolName, {\n lowerPrice: lowerPrice.toString(),\n upperPrice: upperPrice.toString(),\n });\n }\n }\n return res;\n}\n\n/*\nfor the missing pools, add a promise, each of those promises waits for there respective object from a map, that map is populated all at once, \nproblem with concurrency\n*/\n// ask how to deal with this kind of probem with high concurrency anf throughput\n"]}
1
+ {"version":3,"file":"getReceipts.js","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/getReceipts.ts"],"names":[],"mappings":"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","sourcesContent":["import { PaginatedObjectsResponse } from \"@mysten/sui/client\";\nimport {\n AlphaPoolType,\n CetusInvestor,\n NaviInvestor,\n CommonInvestorFields,\n CetusPoolType,\n PoolName,\n PoolType,\n Receipt,\n NaviVoloData,\n Investor,\n BluefinInvestor,\n BucketInvestor,\n SingleAssetPoolNames,\n fetchMultiReceipts,\n ReceiptGQL,\n cetusPoolMap,\n bluefinPoolMap,\n Distributor,\n getConf,\n BluefinPoolType,\n} from \"../../index.js\";\nimport { poolInfo } from \"../../common/maps.js\";\nimport { Decimal } from \"decimal.js\";\nimport { getSuiClient } from \"../client.js\";\nimport { SimpleCache } from \"../../utils/simpleCache.js\";\n\nexport function convertReceiptGQLToReceipt(receipts: ReceiptGQL[]): Receipt[] {\n const res = receipts.map((receipt) => {\n return {\n objectId: receipt.address,\n version: receipt.version,\n digest: receipt.digest,\n content: {\n dataType: \"moveObject\", // Assuming a fixed value as it's not available in ReceiptA\n type: receipt.contents.type.repr,\n hasPublicTransfer: receipt.hasPublicTransfer,\n fields: {\n id: { id: receipt.contents.json.id },\n image_url: receipt.contents.json.image_url,\n last_acc_reward_per_xtoken: {\n type: \"unknown\", // Assuming fixed value\n fields: {\n contents:\n receipt.contents.json.last_acc_reward_per_xtoken.contents.map(\n (item) => ({\n type: \"unknown\", // Assuming fixed value\n fields: {\n value: item.value,\n key: {\n type: \"unknown\", // Assuming fixed value\n fields: {\n name: item.key.name,\n },\n },\n },\n }),\n ),\n },\n },\n locked_balance: receipt.contents.json.locked_balance\n ? {\n type: \"unknown\", // Assuming fixed value\n fields: {\n head: receipt.contents.json.locked_balance.head,\n id: { id: receipt.contents.json.locked_balance.id },\n size: receipt.contents.json.locked_balance.size,\n tail: receipt.contents.json.locked_balance.tail,\n },\n }\n : undefined,\n name: receipt.contents.json.name,\n owner: receipt.contents.json.owner,\n pending_rewards: {\n type: \"unknown\", // Assuming fixed value\n fields: {\n contents: receipt.contents.json.pending_rewards.contents.map(\n (item) => ({\n type: \"unknown\", // Assuming fixed value\n fields: {\n key: {\n type: \"unknown\", // Assuming fixed value\n fields: {\n name: item.key.name,\n },\n },\n value: item.value,\n },\n }),\n ),\n },\n },\n pool_id: receipt.contents.json.pool_id,\n xTokenBalance: receipt.contents.json.xTokenBalance,\n unlocked_xtokens: receipt.contents.json.unlocked_xtokens ?? undefined,\n },\n },\n };\n });\n return res;\n}\n\nconst receiptsCache = new SimpleCache<Receipt[]>(3600000);\nconst receiptsPromiseCache = new SimpleCache<Promise<Receipt[]>>(3600000);\n\nexport async function getMultiReceipts(address: string) {\n try {\n const receiptMap = await fetchMultiReceipts(address);\n for (const pool of Object.keys(poolInfo)) {\n const cacheKey = `getReceipts-${poolInfo[pool].receiptName}-${address}`;\n let receipt: Receipt[] = [];\n if (receiptMap.has(poolInfo[pool].receiptName)) {\n receipt = convertReceiptGQLToReceipt(\n receiptMap.get(poolInfo[pool].receiptName) as ReceiptGQL[],\n );\n }\n receiptsCache.set(cacheKey, receipt);\n }\n } catch (error) {\n console.error(\"Error fetching receipts from graphQL:\", error);\n // get receipts individually\n const pools = Object.keys(poolInfo);\n const receiptPromises = pools.map((pool) => {\n return getReceipts(pool as PoolName, address, true);\n });\n const receipts = await Promise.all(receiptPromises);\n receipts.forEach((receipt, index) => {\n const cacheKey = `getReceipts-${poolInfo[pools[index]].receiptName}-${address}`;\n receiptsCache.set(cacheKey, receipt);\n });\n }\n}\n\nexport async function getReceipts(\n poolName: PoolName,\n address: string,\n ignoreCache: boolean,\n): Promise<Receipt[]> {\n const suiClient = getSuiClient();\n const receiptsCacheKey = `getReceipts-${poolInfo[poolName].receiptName}-${address}`;\n if (ignoreCache) {\n receiptsCache.delete(receiptsCacheKey);\n receiptsPromiseCache.delete(receiptsCacheKey);\n }\n const cachedResponse = receiptsCache.get(receiptsCacheKey);\n if (cachedResponse) {\n return cachedResponse;\n }\n //\n const nfts: Receipt[] = [];\n if (poolInfo[poolName].receiptType == \"\") {\n return nfts;\n }\n let cachedPromise = receiptsPromiseCache.get(receiptsCacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<Receipt[]> => {\n // const first_package = getConf().ALPHA_FIRST_PACKAGE_ID;\n let currentCursor: string | null | undefined = null;\n while (true) {\n const paginatedObjects: PaginatedObjectsResponse =\n await suiClient.getOwnedObjects({\n owner: address,\n cursor: currentCursor,\n filter: {\n // StructType: `${first_package}::${module}::Receipt`,\n StructType: poolInfo[poolName].receiptType,\n },\n options: {\n showContent: true,\n },\n });\n // Traverse the current page data and push to coins array\n paginatedObjects.data.forEach((obj) => {\n const o = obj.data as Receipt;\n if (o) {\n if (poolInfo[poolName].receiptName === o.content.fields.name) {\n nfts.push(o);\n }\n }\n });\n // Check if there's a next page\n if (paginatedObjects.hasNextPage && paginatedObjects.nextCursor) {\n currentCursor = paginatedObjects.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n }\n receiptsCache.set(receiptsCacheKey, nfts);\n receiptsPromiseCache.delete(receiptsCacheKey);\n return nfts;\n })().catch((error) => {\n receiptsPromiseCache.delete(receiptsCacheKey); // Remove the promise from cache\n throw error;\n });\n // const data = await cachedPromise;\n // console.log(\"received cached data\", data);\n receiptsPromiseCache.set(receiptsCacheKey, cachedPromise);\n }\n return cachedPromise;\n}\n\nconst poolCache = new SimpleCache<PoolType | AlphaPoolType>();\nconst poolPromiseCache = new SimpleCache<Promise<PoolType | AlphaPoolType>>();\n\nexport async function getMultiPool() {\n let pools = Object.keys(poolInfo);\n pools = pools.filter((pool) => {\n return poolInfo[pool].poolId !== \"\";\n });\n const poolIds = pools.map((pool) => {\n return poolInfo[pool].poolId;\n });\n const batchSize = 49; // Set the desired batch size\n\n // Create an array to hold the batches\n const batches: string[][] = [];\n //const batches = [];\n // Loop through the entries array and create batches\n for (let i = 0; i < poolIds.length; i += batchSize) {\n const batchEntries: string[] = poolIds.slice(i, i + batchSize);\n batches.push(batchEntries); // Convert to object before pushing\n }\n for (const poolIdsBatch of batches) {\n try {\n const o = await getSuiClient().multiGetObjects({\n ids: poolIdsBatch,\n options: {\n showContent: true,\n },\n });\n for (let i = 0; i < poolIdsBatch.length; i = i + 1) {\n const poolData = o[i].data as AlphaPoolType | PoolType;\n const cacheKey = `pool_${poolIdsBatch[i]}`;\n poolCache.set(cacheKey, poolData);\n }\n } catch (error) {\n console.error(`Error getting multiPools - ${error}`);\n }\n }\n}\n\nexport async function getPool(\n poolName: string,\n ignoreCache: boolean,\n): Promise<PoolType | AlphaPoolType> {\n const suiClient = getSuiClient();\n const cacheKey = `pool_${poolInfo[poolName].poolId}`;\n\n if (ignoreCache) {\n poolCache.delete(cacheKey);\n poolPromiseCache.delete(cacheKey);\n }\n\n // Check if the pool is already in the cache\n const cachedPool = poolCache.get(cacheKey);\n if (cachedPool) {\n return cachedPool;\n }\n\n // Check if there is already a promise in the cache\n let poolPromise = poolPromiseCache.get(cacheKey);\n if (poolPromise) {\n return poolPromise;\n }\n // If not, create a new promise and cache it\n poolPromise = (async () => {\n try {\n const o = await suiClient.getObject({\n id: poolInfo[poolName].poolId,\n options: {\n showContent: true,\n },\n });\n\n const poolData =\n poolName === \"ALPHA\" ? (o.data as AlphaPoolType) : (o.data as PoolType);\n\n // Cache the pool object\n poolCache.set(cacheKey, poolData);\n return poolData;\n } catch (err) {\n console.error(`Error in getPool; poolName => ${poolName}`);\n throw err;\n } finally {\n // Remove the promise from the cache after it resolves\n poolPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n poolPromiseCache.set(cacheKey, poolPromise);\n return poolPromise;\n}\n\nconst parentPoolCache = new SimpleCache<CetusPoolType | BluefinPoolType>();\nconst parentPoolPromiseCache = new SimpleCache<\n Promise<CetusPoolType | BluefinPoolType>\n>();\n\nexport async function getMultiParentPool() {\n let pools = Object.keys(poolInfo);\n pools = pools.filter((pool) => {\n return poolInfo[pool].parentPoolId !== \"\";\n });\n const parentPoolIds = pools.map((pool) => {\n return poolInfo[pool].parentPoolId;\n });\n const poolsSet = new Set(parentPoolIds);\n const poolIds = [...poolsSet];\n const batchSize = 49;\n // Create an array to hold the batches\n const batches: string[][] = [];\n //const batches = [];\n // Loop through the entries array and create batches\n for (let i = 0; i < poolIds.length; i += batchSize) {\n const batchEntries: string[] = poolIds.slice(i, i + batchSize);\n batches.push(batchEntries); // Convert to object before pushing\n }\n\n for (const parentPoolIdsBatch of batches) {\n try {\n const o = await getSuiClient().multiGetObjects({\n ids: parentPoolIdsBatch,\n options: {\n showContent: true,\n },\n });\n for (let i = 0; i < parentPoolIdsBatch.length; i = i + 1) {\n const parentPoolData = o[i].data as CetusPoolType;\n const cacheKey = `parentPool_${parentPoolIdsBatch[i]}`;\n parentPoolCache.set(cacheKey, parentPoolData);\n }\n } catch (error) {\n console.error(`Error getting multiParentPools - ${error}`);\n }\n }\n}\n\nexport async function getParentPool(\n poolName: string,\n ignoreCache: boolean,\n): Promise<CetusPoolType | BluefinPoolType> {\n const suiClient = getSuiClient();\n const cacheKey = `parentPool_${poolInfo[poolName].parentPoolId}`;\n if (ignoreCache) {\n parentPoolCache.delete(cacheKey);\n parentPoolPromiseCache.delete(cacheKey);\n }\n\n // Check if the pool is already in the cache\n const cachedPool = parentPoolCache.get(cacheKey);\n if (cachedPool) {\n return cachedPool;\n }\n\n // Check if there is already a promise in the cache\n let parentPoolPromise = parentPoolPromiseCache.get(cacheKey);\n if (parentPoolPromise) {\n return parentPoolPromise;\n }\n // If not, create a new promise and cache it\n parentPoolPromise = (async () => {\n try {\n const id = poolInfo[poolName]\n ? poolInfo[poolName].parentPoolId\n : cetusPoolMap[poolName]\n ? cetusPoolMap[poolName]\n : bluefinPoolMap[poolName];\n const o = await suiClient.getObject({\n id: id,\n options: {\n showContent: true,\n },\n });\n const parentPool = o.data as CetusPoolType | BluefinPoolType;\n\n // Cache the pool object\n parentPoolCache.set(cacheKey, parentPool);\n return parentPool;\n } catch (err) {\n console.error(`getParentPool failed for poolName: ${poolName}`);\n throw err;\n } finally {\n // Remove the promise from the cache after it resolves\n parentPoolPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n parentPoolPromiseCache.set(cacheKey, parentPoolPromise);\n return parentPoolPromise;\n}\n\nconst cetusPoolCache = new SimpleCache<CetusPoolType | BluefinPoolType>();\nconst cetusPoolPromiseCache = new SimpleCache<\n Promise<CetusPoolType | BluefinPoolType | undefined>\n>();\n\nexport async function getMultiCetusPool() {\n let pools = Object.keys(cetusPoolMap);\n pools = pools.filter((pool) => {\n return cetusPoolMap[pool] !== \"\";\n });\n const poolIds = pools.map((pool) => {\n return cetusPoolMap[pool];\n });\n const batchSize = 49;\n // Create an array to hold the batches\n const batches: string[][] = [];\n // Loop through the entries array and create batches\n for (let i = 0; i < poolIds.length; i += batchSize) {\n const batchEntries: string[] = poolIds.slice(i, i + batchSize);\n batches.push(batchEntries); // Convert to object before pushing\n }\n for (const cetusPoolIdsBatch of batches) {\n try {\n const o = await getSuiClient().multiGetObjects({\n ids: cetusPoolIdsBatch,\n options: {\n showContent: true,\n },\n });\n for (let i = 0; i < pools.length; i = i + 1) {\n const poolData = o[i].data as CetusPoolType;\n const cacheKey = `cetusPool_${cetusPoolMap[pools[i]]}`;\n cetusPoolCache.set(cacheKey, poolData);\n }\n } catch (e) {\n console.error(`Error getting multiCetusPools`, e);\n }\n }\n}\n\nexport async function getCetusPool(\n poolName: string,\n ignoreCache: boolean,\n): Promise<CetusPoolType | BluefinPoolType | undefined> {\n const suiClient = getSuiClient();\n const cacheKey = `cetusPool_${cetusPoolMap[poolName]}`;\n if (ignoreCache) {\n cetusPoolCache.delete(cacheKey);\n cetusPoolPromiseCache.delete(cacheKey);\n }\n\n // Check if the pool is already in the cache\n const cachedPool = cetusPoolCache.get(cacheKey);\n if (cachedPool) {\n return cachedPool;\n }\n\n // Check if there is already a promise in the cache\n let cetusPoolPromise = cetusPoolPromiseCache.get(cacheKey);\n if (cetusPoolPromise) {\n return cetusPoolPromise;\n }\n // If not, create a new promise and cache it\n cetusPoolPromise = (async () => {\n try {\n const o = await suiClient.getObject({\n id: cetusPoolMap[poolName],\n options: {\n showContent: true,\n },\n });\n const cetusPool = o.data as CetusPoolType;\n\n // Cache the pool object\n cetusPoolCache.set(cacheKey, cetusPool);\n return cetusPool;\n } catch (e) {\n console.error(`getCetusPool failed for poolName: ${poolName}`);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n cetusPoolPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n cetusPoolPromiseCache.set(cacheKey, cetusPoolPromise);\n return cetusPoolPromise;\n}\n\nconst investorCache = new SimpleCache<Investor>();\nconst investorPromiseCache = new SimpleCache<Promise<Investor>>();\n\nexport async function getMultiInvestor() {\n let pools = Object.keys(poolInfo);\n pools = pools.filter((pool) => {\n return poolInfo[pool].investorId !== \"\";\n });\n const investorIds = pools.map((pool) => {\n return poolInfo[pool].investorId;\n });\n const batchSize = 49;\n // Create an array to hold the batches\n const batches: string[][] = [];\n //const batches = [];\n // Loop through the entries array and create batches\n for (let i = 0; i < investorIds.length; i += batchSize) {\n const batchEntries: string[] = investorIds.slice(i, i + batchSize);\n batches.push(batchEntries); // Convert to object before pushing\n }\n for (const investorIdsBatch of batches) {\n try {\n const o = await getSuiClient().multiGetObjects({\n ids: investorIdsBatch,\n options: {\n showContent: true,\n },\n });\n for (let i = 0; i < investorIdsBatch.length; i = i + 1) {\n const investorData = o[i].data as Investor;\n const cacheKey = `investor_${investorIdsBatch[i]}`;\n investorCache.set(cacheKey, investorData);\n }\n } catch (error) {\n console.error(`Error getting multiInvestor - ${error}`);\n }\n }\n}\n\nexport async function getInvestor(\n poolName: PoolName,\n ignoreCache: boolean,\n): Promise<Investor> {\n const suiClient = getSuiClient();\n const cacheKey = `investor_${poolInfo[poolName].investorId}`;\n if (ignoreCache) {\n investorCache.delete(cacheKey);\n investorPromiseCache.delete(cacheKey);\n }\n // Check if the investor is already in the cache\n const cachedInvestor = investorCache.get(cacheKey);\n if (cachedInvestor) {\n return cachedInvestor;\n }\n\n // Check if there is already a promise in the cache\n let cetusInvestorPromise = investorPromiseCache.get(cacheKey);\n if (cetusInvestorPromise) {\n return cetusInvestorPromise;\n }\n // If not, create a new promise and cache it\n cetusInvestorPromise = (async () => {\n try {\n const o = await suiClient.getObject({\n id: poolInfo[poolName].investorId,\n options: {\n showContent: true,\n },\n });\n let cetusInvestor: Investor;\n if (poolInfo[poolName].parentProtocolName == \"NAVI\") {\n cetusInvestor = o.data as NaviInvestor & CommonInvestorFields;\n } else if (poolInfo[poolName].parentProtocolName == \"BUCKET\") {\n cetusInvestor = o.data as BucketInvestor & CommonInvestorFields;\n } else if (poolInfo[poolName].parentProtocolName == \"BLUEFIN\") {\n cetusInvestor = o.data as BluefinInvestor & CommonInvestorFields;\n } else {\n cetusInvestor = o.data as CetusInvestor & CommonInvestorFields;\n }\n\n // Cache the investor object\n investorCache.set(cacheKey, cetusInvestor);\n return cetusInvestor;\n } catch (err) {\n console.error(`getInvestor failed for pool: ${poolName}`);\n throw err;\n } finally {\n // Remove the promise from the cache after it resolves\n investorPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n investorPromiseCache.set(cacheKey, cetusInvestorPromise);\n return cetusInvestorPromise;\n}\n\nconst distributorCache = new SimpleCache<Distributor>();\nconst distributorPromiseCache = new SimpleCache<\n Promise<Distributor | undefined>\n>();\n\nexport async function getDistributor(\n ignoreCache: boolean,\n): Promise<Distributor | undefined> {\n const suiClient = getSuiClient();\n const cacheKey = `distributor_${getConf().ALPHA_DISTRIBUTOR}`;\n if (ignoreCache) {\n distributorCache.delete(cacheKey);\n distributorPromiseCache.delete(cacheKey);\n }\n // Check if the distributor is already in the cache\n const cachedDistributor = distributorCache.get(cacheKey);\n if (cachedDistributor) {\n return cachedDistributor;\n }\n\n // Check if there is already a promise in the cache\n let distributorPromise = distributorPromiseCache.get(cacheKey);\n if (distributorPromise) {\n return distributorPromise;\n }\n\n // If not, create a new promise and cache it\n distributorPromise = (async () => {\n try {\n const o = await suiClient.getObject({\n id: getConf().ALPHA_DISTRIBUTOR,\n options: {\n showContent: true,\n },\n });\n const distributor = o.data as Distributor;\n\n // Cache the distributor object\n distributorCache.set(cacheKey, distributor);\n return distributor;\n } catch (e) {\n console.error(`getDistributor failed`);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n distributorPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n distributorPromiseCache.set(cacheKey, distributorPromise);\n return distributorPromise;\n}\n\nexport async function getPoolExchangeRate(\n poolName: PoolName,\n ignoreCache: boolean,\n): Promise<Decimal> {\n let pool: PoolType | AlphaPoolType;\n try {\n pool = await getPool(poolName, ignoreCache);\n const xTokenSupply = new Decimal(pool.content.fields.xTokenSupply);\n let tokensInvested = new Decimal(pool.content.fields.tokensInvested);\n if (poolName == \"ALPHA\") {\n tokensInvested = new Decimal(pool.content.fields.alpha_bal);\n } else if (poolInfo[poolName].parentProtocolName == \"CETUS\") {\n const investor = (await getInvestor(\n poolName,\n ignoreCache,\n )) as CetusInvestor & CommonInvestorFields;\n if (!investor) {\n throw new Error(`couldnt fetch investor object for pool: ${poolName}`);\n }\n tokensInvested = new Decimal(pool.content.fields.tokensInvested);\n }\n\n // Check for division by zero\n if (xTokenSupply.eq(0)) {\n console.error(\"Division by zero error: tokensInvested is zero.\");\n return new Decimal(0);\n }\n const poolExchangeRate = tokensInvested.div(xTokenSupply);\n return poolExchangeRate;\n } catch (err) {\n console.log(\n `getPoolExchangeRate failed for poolName: ${poolName}, with error ${err}`,\n );\n throw err;\n }\n}\n\nconst naviVoloExchangeRateCache = new SimpleCache<NaviVoloData>();\nconst naviVoloExchangeRatePromiseCache = new SimpleCache<\n Promise<NaviVoloData>\n>();\n\nexport async function fetchVoloExchangeRate(\n ignoreCache: boolean,\n): Promise<NaviVoloData> {\n const apiUrl = \"https://open-api.naviprotocol.io/api/volo/stats\";\n let NaviVoloDetails: NaviVoloData;\n if (ignoreCache) {\n naviVoloExchangeRateCache.clear();\n naviVoloExchangeRatePromiseCache.delete(apiUrl);\n }\n\n const cachedResponse = naviVoloExchangeRateCache.get(apiUrl);\n if (cachedResponse) {\n NaviVoloDetails = cachedResponse;\n } else {\n const default_volo_data: NaviVoloData = {\n data: {\n operatorBalance: \"\",\n collectableFee: \"\",\n pendingStakes: \"\",\n poolTotalRewards: \"0\",\n unstakeTicketSupply: \"\",\n totalStaked: \"\",\n activeStake: \"\",\n calcTotalRewards: \"\",\n currentEpoch: \"\",\n validators: {},\n exchangeRate: (1 / 0.973).toString(),\n totalSupply: \"\",\n apy: \"\",\n sortedValidators: [\"\"],\n maxInstantUnstake: \"\",\n maxNoFeeUnstake: \"\",\n },\n code: 0,\n };\n try {\n let cachedPromise = naviVoloExchangeRatePromiseCache.get(apiUrl);\n\n if (!cachedPromise) {\n cachedPromise = fetch(apiUrl)\n .then(async (response) => {\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const data = (await response.json()) as NaviVoloData; // Parse the JSON response\n naviVoloExchangeRateCache.set(apiUrl, data); // Cache the response\n naviVoloExchangeRatePromiseCache.delete(apiUrl); // Remove the promise from the cache\n return data;\n })\n .catch((error) => {\n naviVoloExchangeRatePromiseCache.delete(apiUrl); // Ensure the promise is removed on error\n throw error;\n });\n naviVoloExchangeRatePromiseCache.set(apiUrl, cachedPromise);\n NaviVoloDetails = await cachedPromise;\n return cachedPromise;\n } else {\n NaviVoloDetails = default_volo_data;\n return Promise.resolve(default_volo_data);\n }\n } catch (error) {\n console.log(\"error in api\", error);\n\n NaviVoloDetails = default_volo_data;\n return Promise.resolve(default_volo_data);\n }\n }\n\n return NaviVoloDetails;\n}\n\nexport async function multiGetNaviInvestor(poolNames: SingleAssetPoolNames[]) {\n const results: {\n [poolName in SingleAssetPoolNames]?:\n | (NaviInvestor & CommonInvestorFields)\n | undefined;\n } = {};\n const poolInvestorIds: string[] = [];\n\n for (const poolName of poolNames) {\n poolInvestorIds.push(poolInfo[poolName].investorId);\n }\n try {\n const suiClient = getSuiClient();\n const objects = await suiClient.multiGetObjects({\n ids: poolInvestorIds,\n options: { showContent: true },\n });\n for (let i = 0; i < objects.length; i++) {\n const investor = objects[i].data as NaviInvestor & CommonInvestorFields;\n results[poolNames[i]] = investor;\n }\n return results;\n } catch (err) {\n //improve\n console.error(\n \"multiGetNaviInvestor failed for poolNames: \",\n poolNames.join(\", \"),\n );\n throw err;\n }\n}\n/*\nfor the missing pools, add a promise, each of those promises waits for there respective object from a map, that map is populated all at once, \nproblem with concurrency\n*/\n// ask how to deal with this kind of probem with high concurrency anf throughput\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"blueRewards.d.ts","sourceRoot":"","sources":["../../../src/transactions/blueRewards.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,QAAQ,EAGT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AACD,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAiE1C;AAED,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,CAAC,CAqDjB"}
1
+ {"version":3,"file":"blueRewards.d.ts","sourceRoot":"","sources":["../../../src/transactions/blueRewards.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,QAAQ,EAGT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AACD,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAyF1C;AAED,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,CAAC,CAqDjB"}
@@ -31,7 +31,7 @@ const transactions_1 = require("@mysten/sui/transactions");
31
31
  async function claimBlueRewardTxb(userAddress, poolName) {
32
32
  const { getReceipts } = await Promise.resolve().then(() => __importStar(require("../index.js")));
33
33
  try {
34
- const receipts = await getReceipts(poolName, userAddress, false);
34
+ const receipts = await getReceipts(poolName, userAddress, true);
35
35
  const txb = new transactions_1.Transaction();
36
36
  const pool = index_js_1.poolInfo[poolName];
37
37
  let blueBalance;
@@ -84,6 +84,31 @@ async function claimBlueRewardTxb(userAddress, poolName) {
84
84
  ],
85
85
  });
86
86
  }
87
+ else if (poolName === "BLUEFIN-AUTOBALANCE-SUIUSDT-USDC") {
88
+ blueBalance = txb.moveCall({
89
+ target: `${index_js_1.poolInfo[poolName].packageId}::alphafi_bluefin_type_1_pool::get_user_rewards`,
90
+ typeArguments: [
91
+ index_js_1.coinsList["SUIUSDT"].type,
92
+ index_js_1.coinsList["USDC"].type,
93
+ index_js_1.coinsList["BLUE"].type,
94
+ index_js_1.coinsList["SUI"].type,
95
+ ],
96
+ arguments: [
97
+ txb.object(receipts[0].objectId),
98
+ txb.object((0, index_js_1.getConf)().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
99
+ txb.object(pool.poolId),
100
+ txb.object(pool.investorId),
101
+ txb.object((0, index_js_1.getConf)().ALPHA_DISTRIBUTOR),
102
+ txb.object((0, index_js_1.getConf)().BLUEFIN_GLOBAL_CONFIG),
103
+ txb.object((0, index_js_1.getConf)().CETUS_GLOBAL_CONFIG_ID),
104
+ txb.object((0, index_js_1.getConf)().BLUEFIN_SUIUSDT_USDC_POOL),
105
+ txb.object((0, index_js_1.getConf)().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),
106
+ txb.object(index_js_1.cetusPoolMap["USDC-SUIUSDT"]),
107
+ txb.object(index_js_1.cetusPoolMap["USDC-SUI"]),
108
+ txb.object((0, index_js_1.getConf)().CLOCK_PACKAGE_ID),
109
+ ],
110
+ });
111
+ }
87
112
  const blueCoin = txb.moveCall({
88
113
  target: "0x2::coin::from_balance",
89
114
  typeArguments: [index_js_1.coinsList["BLUE"].type],
@@ -98,7 +123,7 @@ async function claimBlueRewardTxb(userAddress, poolName) {
98
123
  async function pendingBlueRewardAmount(userAddress, poolName) {
99
124
  const { getReceipts } = await Promise.resolve().then(() => __importStar(require("../index.js")));
100
125
  try {
101
- const receipts = await getReceipts(poolName, userAddress, false);
126
+ const receipts = await getReceipts(poolName, userAddress, true);
102
127
  const receipt = receipts[0];
103
128
  const userXtokenBalance = receipt.content.fields.xTokenBalance;
104
129
  let userBluePendingReward = new decimal_js_1.Decimal(0);
@@ -1 +1 @@
1
- {"version":3,"file":"blueRewards.js","sourceRoot":"","sources":["../../../src/transactions/blueRewards.ts"],"names":[],"mappings":"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","sourcesContent":["import { Decimal } from \"decimal.js\";\nimport {\n getConf,\n poolInfo,\n coinsList,\n PoolName,\n cetusPoolMap,\n getPool,\n} from \"../index.js\";\nimport { Transaction, TransactionResult } from \"@mysten/sui/transactions\";\nexport interface ClaimRewardResponse {\n txb: Transaction;\n coinOut: TransactionResult;\n}\nexport async function claimBlueRewardTxb(\n userAddress: string,\n poolName: PoolName,\n): Promise<ClaimRewardResponse | undefined> {\n const { getReceipts } = await import(\"../index.js\");\n try {\n const receipts = await getReceipts(poolName, userAddress, false);\n const txb = new Transaction();\n const pool = poolInfo[poolName];\n let blueBalance: TransactionResult;\n if (poolName === \"BLUEFIN-AUTOBALANCE-USDT-USDC\") {\n blueBalance = txb.moveCall({\n target: `${poolInfo[poolName].packageId}::alphafi_bluefin_type_1_pool::get_user_rewards`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_USDT_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-AUTOBALANCE-SUI-USDC\") {\n blueBalance = txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_first_pool::get_user_rewards`,\n typeArguments: [\n coinsList[\"SUI\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SUI_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n const blueCoin = txb.moveCall({\n target: \"0x2::coin::from_balance\",\n typeArguments: [coinsList[\"BLUE\"].type],\n arguments: [blueBalance!],\n });\n return { txb: txb, coinOut: blueCoin };\n } catch (e) {\n console.error(\"error in claim blue rewards\", e);\n }\n}\n\nexport async function pendingBlueRewardAmount(\n userAddress: string,\n poolName: PoolName,\n): Promise<string> {\n const { getReceipts } = await import(\"../index.js\");\n try {\n const receipts = await getReceipts(poolName, userAddress, false);\n const receipt = receipts[0];\n const userXtokenBalance = receipt.content.fields.xTokenBalance;\n let userBluePendingReward = new Decimal(0);\n let curAcc = new Decimal(0);\n let lastAcc = new Decimal(0);\n const userPendingRewardsAll =\n receipt.content.fields.pending_rewards.fields.contents;\n for (let i = 0; i < userPendingRewardsAll.length; i++) {\n if (\n userPendingRewardsAll[i].fields.key.fields.name ==\n coinsList[\"BLUE\"].type.substring(2)\n ) {\n userBluePendingReward = new Decimal(\n userPendingRewardsAll[i].fields.value,\n );\n break;\n }\n }\n const pool = await getPool(poolName, false);\n const currAccForAllRewards =\n pool!.content.fields.acc_rewards_per_xtoken.fields.contents;\n currAccForAllRewards?.forEach((reward) => {\n if (\n reward.fields.key.fields.name == coinsList[\"BLUE\"].type.substring(2)\n ) {\n curAcc = new Decimal(reward.fields.value);\n }\n });\n const lastAccAll =\n receipt.content.fields.last_acc_reward_per_xtoken.fields.contents;\n lastAccAll.forEach((reward) => {\n if (\n reward.fields.key.fields.name == coinsList[\"BLUE\"].type.substring(2)\n ) {\n lastAcc = new Decimal(reward.fields.value);\n }\n });\n\n return curAcc\n .minus(lastAcc)\n .mul(userXtokenBalance)\n .div(1e36)\n .plus(userBluePendingReward)\n .div(Math.pow(10, coinsList[\"BLUE\"].expo))\n .toString();\n } catch (e) {\n console.error(\"error in calculate pending blue rewards\", e);\n return \"0\";\n }\n}\n"]}
1
+ {"version":3,"file":"blueRewards.js","sourceRoot":"","sources":["../../../src/transactions/blueRewards.ts"],"names":[],"mappings":"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","sourcesContent":["import { Decimal } from \"decimal.js\";\nimport {\n getConf,\n poolInfo,\n coinsList,\n PoolName,\n cetusPoolMap,\n getPool,\n} from \"../index.js\";\nimport { Transaction, TransactionResult } from \"@mysten/sui/transactions\";\nexport interface ClaimRewardResponse {\n txb: Transaction;\n coinOut: TransactionResult;\n}\nexport async function claimBlueRewardTxb(\n userAddress: string,\n poolName: PoolName,\n): Promise<ClaimRewardResponse | undefined> {\n const { getReceipts } = await import(\"../index.js\");\n try {\n const receipts = await getReceipts(poolName, userAddress, true);\n const txb = new Transaction();\n const pool = poolInfo[poolName];\n let blueBalance: TransactionResult;\n if (poolName === \"BLUEFIN-AUTOBALANCE-USDT-USDC\") {\n blueBalance = txb.moveCall({\n target: `${poolInfo[poolName].packageId}::alphafi_bluefin_type_1_pool::get_user_rewards`,\n typeArguments: [\n coinsList[\"USDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_USDT_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-AUTOBALANCE-SUI-USDC\") {\n blueBalance = txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_first_pool::get_user_rewards`,\n typeArguments: [\n coinsList[\"SUI\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SUI_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-AUTOBALANCE-SUIUSDT-USDC\") {\n blueBalance = txb.moveCall({\n target: `${poolInfo[poolName].packageId}::alphafi_bluefin_type_1_pool::get_user_rewards`,\n typeArguments: [\n coinsList[\"SUIUSDT\"].type,\n coinsList[\"USDC\"].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SUIUSDT_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"USDC-SUIUSDT\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n const blueCoin = txb.moveCall({\n target: \"0x2::coin::from_balance\",\n typeArguments: [coinsList[\"BLUE\"].type],\n arguments: [blueBalance!],\n });\n return { txb: txb, coinOut: blueCoin };\n } catch (e) {\n console.error(\"error in claim blue rewards\", e);\n }\n}\n\nexport async function pendingBlueRewardAmount(\n userAddress: string,\n poolName: PoolName,\n): Promise<string> {\n const { getReceipts } = await import(\"../index.js\");\n try {\n const receipts = await getReceipts(poolName, userAddress, true);\n const receipt = receipts[0];\n const userXtokenBalance = receipt.content.fields.xTokenBalance;\n let userBluePendingReward = new Decimal(0);\n let curAcc = new Decimal(0);\n let lastAcc = new Decimal(0);\n const userPendingRewardsAll =\n receipt.content.fields.pending_rewards.fields.contents;\n for (let i = 0; i < userPendingRewardsAll.length; i++) {\n if (\n userPendingRewardsAll[i].fields.key.fields.name ==\n coinsList[\"BLUE\"].type.substring(2)\n ) {\n userBluePendingReward = new Decimal(\n userPendingRewardsAll[i].fields.value,\n );\n break;\n }\n }\n const pool = await getPool(poolName, false);\n const currAccForAllRewards =\n pool!.content.fields.acc_rewards_per_xtoken.fields.contents;\n currAccForAllRewards?.forEach((reward) => {\n if (\n reward.fields.key.fields.name == coinsList[\"BLUE\"].type.substring(2)\n ) {\n curAcc = new Decimal(reward.fields.value);\n }\n });\n const lastAccAll =\n receipt.content.fields.last_acc_reward_per_xtoken.fields.contents;\n lastAccAll.forEach((reward) => {\n if (\n reward.fields.key.fields.name == coinsList[\"BLUE\"].type.substring(2)\n ) {\n lastAcc = new Decimal(reward.fields.value);\n }\n });\n\n return curAcc\n .minus(lastAcc)\n .mul(userXtokenBalance)\n .div(1e36)\n .plus(userBluePendingReward)\n .div(Math.pow(10, coinsList[\"BLUE\"].expo))\n .toString();\n } catch (e) {\n console.error(\"error in calculate pending blue rewards\", e);\n return \"0\";\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bluefin.d.ts","sourceRoot":"","sources":["../../../src/transactions/bluefin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAUvD,OAAO,EAAE,QAAQ,EAAW,MAAM,oBAAoB,CAAC;AAKvD,eAAO,MAAM,yBAAyB,WAC5B,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CAmLrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAC7B,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CAmLrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,WACzB,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CAyQrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,WACzB,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CA+OrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,WACzB,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CAoKrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,YAC5B,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA6I7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,YAC7B,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA2I7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,YACzB,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAyM7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,YACzB,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA4K7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,YACzB,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA4F7B,CAAC"}
1
+ {"version":3,"file":"bluefin.d.ts","sourceRoot":"","sources":["../../../src/transactions/bluefin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAUvD,OAAO,EAAE,QAAQ,EAAW,MAAM,oBAAoB,CAAC;AAKvD,eAAO,MAAM,yBAAyB,WAC5B,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CAmLrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAC7B,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CAmLrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,WACzB,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CA+TrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,WACzB,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CA+OrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,WACzB,MAAM,YACJ,QAAQ,aACP,OAAO,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,gBACf,WAAW,GAAG,SAAS,KACnC,OAAO,CAAC,WAAW,CAoKrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,YAC5B,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA6I7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,YAC7B,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA2I7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,YACzB,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA8P7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,YACzB,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA4K7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,YACzB,MAAM,YACL,QAAQ,WACT;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA4F7B,CAAC"}
@@ -606,6 +606,61 @@ const depositBluefinType1Txb = async (amount, poolName, isAmountA, options, tran
606
606
  ],
607
607
  });
608
608
  }
609
+ if (poolName === "BLUEFIN-SUIUSDT-USDC") {
610
+ txb.moveCall({
611
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,
612
+ typeArguments: [
613
+ coins_js_1.coinsList[pool1].type,
614
+ coins_js_1.coinsList[pool2].type,
615
+ coins_js_1.coinsList["BLUE"].type,
616
+ coins_js_1.coinsList["SUI"].type,
617
+ ],
618
+ arguments: [
619
+ txb.object((0, constants_js_1.getConf)().ALPHA_4_VERSION),
620
+ txb.object((0, constants_js_1.getConf)().VERSION),
621
+ someReceipt,
622
+ txb.object(poolinfo.poolId),
623
+ depositCoinA,
624
+ depositCoinB,
625
+ txb.object((0, constants_js_1.getConf)().ALPHA_DISTRIBUTOR),
626
+ txb.object(poolinfo.investorId),
627
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_GLOBAL_CONFIG),
628
+ txb.object((0, constants_js_1.getConf)().CETUS_GLOBAL_CONFIG_ID),
629
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_SUIUSDT_USDC_POOL),
630
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),
631
+ txb.object(maps_js_1.cetusPoolMap["USDC-SUIUSDT"]),
632
+ txb.object(maps_js_1.cetusPoolMap["USDC-SUI"]),
633
+ txb.object((0, constants_js_1.getConf)().CLOCK_PACKAGE_ID),
634
+ ],
635
+ });
636
+ }
637
+ else if (poolName === "BLUEFIN-AUTOBALANCE-SUIUSDT-USDC") {
638
+ txb.moveCall({
639
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,
640
+ typeArguments: [
641
+ coins_js_1.coinsList["SUIUSDT"].type,
642
+ coins_js_1.coinsList["USDC"].type,
643
+ coins_js_1.coinsList["BLUE"].type,
644
+ coins_js_1.coinsList["SUI"].type,
645
+ ],
646
+ arguments: [
647
+ txb.object((0, constants_js_1.getConf)().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
648
+ someReceipt,
649
+ txb.object(poolinfo.poolId),
650
+ depositCoinA,
651
+ depositCoinB,
652
+ txb.object((0, constants_js_1.getConf)().ALPHA_DISTRIBUTOR),
653
+ txb.object(poolinfo.investorId),
654
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_GLOBAL_CONFIG),
655
+ txb.object((0, constants_js_1.getConf)().CETUS_GLOBAL_CONFIG_ID),
656
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_SUIUSDT_USDC_POOL),
657
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),
658
+ txb.object(maps_js_1.cetusPoolMap["USDC-SUIUSDT"]),
659
+ txb.object(maps_js_1.cetusPoolMap["USDC-SUI"]),
660
+ txb.object((0, constants_js_1.getConf)().CLOCK_PACKAGE_ID),
661
+ ],
662
+ });
663
+ }
609
664
  txb.transferObjects([coin1], address);
610
665
  txb.transferObjects([coin2], address);
611
666
  }
@@ -1321,6 +1376,32 @@ const withdrawBluefinType1Txb = async (xTokens, poolName, options) => {
1321
1376
  ],
1322
1377
  });
1323
1378
  }
1379
+ else if (poolName === "BLUEFIN-AUTOBALANCE-SUIUSDT-USDC") {
1380
+ txb.moveCall({
1381
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_withdraw`,
1382
+ typeArguments: [
1383
+ coins_js_1.coinsList[pool1].type,
1384
+ coins_js_1.coinsList[pool2].type,
1385
+ coins_js_1.coinsList["BLUE"].type,
1386
+ coins_js_1.coinsList["SUI"].type,
1387
+ ],
1388
+ arguments: [
1389
+ txb.object((0, constants_js_1.getConf)().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
1390
+ txb.object(receipt[0].objectId),
1391
+ txb.object(poolinfo.poolId),
1392
+ txb.object((0, constants_js_1.getConf)().ALPHA_DISTRIBUTOR),
1393
+ txb.object(poolinfo.investorId),
1394
+ txb.pure.u128(xTokens),
1395
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_GLOBAL_CONFIG),
1396
+ txb.object((0, constants_js_1.getConf)().CETUS_GLOBAL_CONFIG_ID),
1397
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_SUIUSDT_USDC_POOL),
1398
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),
1399
+ txb.object(maps_js_1.cetusPoolMap["USDC-SUIUSDT"]),
1400
+ txb.object(maps_js_1.cetusPoolMap["USDC-SUI"]),
1401
+ txb.object((0, constants_js_1.getConf)().CLOCK_PACKAGE_ID),
1402
+ ],
1403
+ });
1404
+ }
1324
1405
  }
1325
1406
  else {
1326
1407
  let alpha_receipt;
@@ -1483,6 +1564,35 @@ const withdrawBluefinType1Txb = async (xTokens, poolName, options) => {
1483
1564
  ],
1484
1565
  });
1485
1566
  }
1567
+ else if (poolName === "BLUEFIN-SUIUSDT-USDC") {
1568
+ txb.moveCall({
1569
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_withdraw`,
1570
+ typeArguments: [
1571
+ coins_js_1.coinsList[pool1].type,
1572
+ coins_js_1.coinsList[pool2].type,
1573
+ coins_js_1.coinsList["BLUE"].type,
1574
+ coins_js_1.coinsList["SUI"].type,
1575
+ ],
1576
+ arguments: [
1577
+ txb.object((0, constants_js_1.getConf)().ALPHA_4_VERSION),
1578
+ txb.object((0, constants_js_1.getConf)().VERSION),
1579
+ txb.object(receipt[0].objectId),
1580
+ alpha_receipt,
1581
+ txb.object((0, constants_js_1.getConf)().ALPHA_POOL),
1582
+ txb.object(poolinfo.poolId),
1583
+ txb.object((0, constants_js_1.getConf)().ALPHA_DISTRIBUTOR),
1584
+ txb.object(poolinfo.investorId),
1585
+ txb.pure.u128(xTokens),
1586
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_GLOBAL_CONFIG),
1587
+ txb.object((0, constants_js_1.getConf)().CETUS_GLOBAL_CONFIG_ID),
1588
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_SUIUSDT_USDC_POOL),
1589
+ txb.object((0, constants_js_1.getConf)().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),
1590
+ txb.object(maps_js_1.cetusPoolMap["USDC-SUIUSDT"]),
1591
+ txb.object(maps_js_1.cetusPoolMap["USDC-SUI"]),
1592
+ txb.object((0, constants_js_1.getConf)().CLOCK_PACKAGE_ID),
1593
+ ],
1594
+ });
1595
+ }
1486
1596
  }
1487
1597
  }
1488
1598
  else {