@alphafi/alphafi-sdk 0.0.102 → 0.0.103

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 (359) hide show
  1. package/#package.json# +98 -0
  2. package/FETCH_OVERRIDE_FIX.md +222 -0
  3. package/dist/cjs/adminFunctions.d.ts +8 -0
  4. package/dist/cjs/adminFunctions.d.ts.map +1 -1
  5. package/dist/cjs/adminFunctions.js +97 -3
  6. package/dist/cjs/adminFunctions.js.map +1 -1
  7. package/dist/cjs/common/constants.d.ts +79 -10
  8. package/dist/cjs/common/constants.d.ts.map +1 -1
  9. package/dist/cjs/common/constants.js +108 -23
  10. package/dist/cjs/common/constants.js.map +1 -1
  11. package/dist/cjs/common/maps.d.ts.map +1 -1
  12. package/dist/cjs/common/maps.js +72 -4
  13. package/dist/cjs/common/maps.js.map +1 -1
  14. package/dist/cjs/common/types.d.ts +76 -26
  15. package/dist/cjs/common/types.d.ts.map +1 -1
  16. package/dist/cjs/common/types.js.map +1 -1
  17. package/dist/cjs/getAprs.d.ts.map +1 -1
  18. package/dist/cjs/getAprs.js +0 -27
  19. package/dist/cjs/getAprs.js.map +1 -1
  20. package/dist/cjs/graphql/getMultiReceipts.js +1 -1
  21. package/dist/cjs/graphql/getMultiReceipts.js.map +1 -1
  22. package/dist/cjs/index.d.ts +3 -1
  23. package/dist/cjs/index.d.ts.map +1 -1
  24. package/dist/cjs/index.js +13 -3
  25. package/dist/cjs/index.js.map +1 -1
  26. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +4 -0
  27. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  28. package/dist/cjs/sui-sdk/functions/getReceipts.js +31 -15
  29. package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -1
  30. package/dist/cjs/transactions/alphaVault.d.ts +26 -0
  31. package/dist/cjs/transactions/alphaVault.d.ts.map +1 -0
  32. package/dist/cjs/transactions/alphaVault.js +385 -0
  33. package/dist/cjs/transactions/alphaVault.js.map +1 -0
  34. package/dist/cjs/transactions/alphalend.d.ts.map +1 -1
  35. package/dist/cjs/transactions/alphalend.js +10 -32
  36. package/dist/cjs/transactions/alphalend.js.map +1 -1
  37. package/dist/cjs/transactions/bluefin.d.ts.map +1 -1
  38. package/dist/cjs/transactions/bluefin.js +30 -80
  39. package/dist/cjs/transactions/bluefin.js.map +1 -1
  40. package/dist/cjs/transactions/bucket.d.ts.map +1 -1
  41. package/dist/cjs/transactions/bucket.js +5 -16
  42. package/dist/cjs/transactions/bucket.js.map +1 -1
  43. package/dist/cjs/transactions/cetus.d.ts.map +1 -1
  44. package/dist/cjs/transactions/cetus.js +17 -50
  45. package/dist/cjs/transactions/cetus.js.map +1 -1
  46. package/dist/cjs/transactions/collect_rewards.d.ts +1 -0
  47. package/dist/cjs/transactions/collect_rewards.d.ts.map +1 -1
  48. package/dist/cjs/transactions/collect_rewards.js +143 -38
  49. package/dist/cjs/transactions/collect_rewards.js.map +1 -1
  50. package/dist/cjs/transactions/deposit.d.ts.map +1 -1
  51. package/dist/cjs/transactions/deposit.js +4 -0
  52. package/dist/cjs/transactions/deposit.js.map +1 -1
  53. package/dist/cjs/transactions/navi-looping.d.ts +11 -11
  54. package/dist/cjs/transactions/navi-looping.d.ts.map +1 -1
  55. package/dist/cjs/transactions/navi-looping.js +61 -134
  56. package/dist/cjs/transactions/navi-looping.js.map +1 -1
  57. package/dist/cjs/transactions/navi.d.ts.map +1 -1
  58. package/dist/cjs/transactions/navi.js +61 -106
  59. package/dist/cjs/transactions/navi.js.map +1 -1
  60. package/dist/cjs/transactions/slush.d.ts +12 -0
  61. package/dist/cjs/transactions/slush.d.ts.map +1 -0
  62. package/dist/cjs/transactions/slush.js +143 -0
  63. package/dist/cjs/transactions/slush.js.map +1 -0
  64. package/dist/cjs/transactions/withdraw.d.ts.map +1 -1
  65. package/dist/cjs/transactions/withdraw.js +4 -0
  66. package/dist/cjs/transactions/withdraw.js.map +1 -1
  67. package/dist/esm/adminFunctions.d.ts +8 -0
  68. package/dist/esm/adminFunctions.d.ts.map +1 -1
  69. package/dist/esm/adminFunctions.js +95 -5
  70. package/dist/esm/adminFunctions.js.map +1 -1
  71. package/dist/esm/common/constants.d.ts +79 -10
  72. package/dist/esm/common/constants.d.ts.map +1 -1
  73. package/dist/esm/common/constants.js +108 -23
  74. package/dist/esm/common/constants.js.map +1 -1
  75. package/dist/esm/common/maps.d.ts.map +1 -1
  76. package/dist/esm/common/maps.js +72 -4
  77. package/dist/esm/common/maps.js.map +1 -1
  78. package/dist/esm/common/types.d.ts +76 -26
  79. package/dist/esm/common/types.d.ts.map +1 -1
  80. package/dist/esm/common/types.js.map +1 -1
  81. package/dist/esm/getAprs.d.ts.map +1 -1
  82. package/dist/esm/getAprs.js +0 -27
  83. package/dist/esm/getAprs.js.map +1 -1
  84. package/dist/esm/graphql/getMultiReceipts.js +1 -1
  85. package/dist/esm/graphql/getMultiReceipts.js.map +1 -1
  86. package/dist/esm/index.d.ts +3 -1
  87. package/dist/esm/index.d.ts.map +1 -1
  88. package/dist/esm/index.js +3 -1
  89. package/dist/esm/index.js.map +1 -1
  90. package/dist/esm/sui-sdk/functions/getReceipts.d.ts +4 -0
  91. package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  92. package/dist/esm/sui-sdk/functions/getReceipts.js +31 -15
  93. package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -1
  94. package/dist/esm/transactions/alphaVault.d.ts +26 -0
  95. package/dist/esm/transactions/alphaVault.d.ts.map +1 -0
  96. package/dist/esm/transactions/alphaVault.js +377 -0
  97. package/dist/esm/transactions/alphaVault.js.map +1 -0
  98. package/dist/esm/transactions/alphalend.d.ts.map +1 -1
  99. package/dist/esm/transactions/alphalend.js +10 -32
  100. package/dist/esm/transactions/alphalend.js.map +1 -1
  101. package/dist/esm/transactions/bluefin.d.ts.map +1 -1
  102. package/dist/esm/transactions/bluefin.js +30 -80
  103. package/dist/esm/transactions/bluefin.js.map +1 -1
  104. package/dist/esm/transactions/bucket.d.ts.map +1 -1
  105. package/dist/esm/transactions/bucket.js +5 -16
  106. package/dist/esm/transactions/bucket.js.map +1 -1
  107. package/dist/esm/transactions/cetus.d.ts.map +1 -1
  108. package/dist/esm/transactions/cetus.js +17 -50
  109. package/dist/esm/transactions/cetus.js.map +1 -1
  110. package/dist/esm/transactions/collect_rewards.d.ts +1 -0
  111. package/dist/esm/transactions/collect_rewards.d.ts.map +1 -1
  112. package/dist/esm/transactions/collect_rewards.js +142 -38
  113. package/dist/esm/transactions/collect_rewards.js.map +1 -1
  114. package/dist/esm/transactions/deposit.d.ts.map +1 -1
  115. package/dist/esm/transactions/deposit.js +4 -0
  116. package/dist/esm/transactions/deposit.js.map +1 -1
  117. package/dist/esm/transactions/navi-looping.d.ts +11 -11
  118. package/dist/esm/transactions/navi-looping.d.ts.map +1 -1
  119. package/dist/esm/transactions/navi-looping.js +61 -134
  120. package/dist/esm/transactions/navi-looping.js.map +1 -1
  121. package/dist/esm/transactions/navi.d.ts.map +1 -1
  122. package/dist/esm/transactions/navi.js +61 -106
  123. package/dist/esm/transactions/navi.js.map +1 -1
  124. package/dist/esm/transactions/slush.d.ts +12 -0
  125. package/dist/esm/transactions/slush.d.ts.map +1 -0
  126. package/dist/esm/transactions/slush.js +137 -0
  127. package/dist/esm/transactions/slush.js.map +1 -0
  128. package/dist/esm/transactions/withdraw.d.ts.map +1 -1
  129. package/dist/esm/transactions/withdraw.js +4 -0
  130. package/dist/esm/transactions/withdraw.js.map +1 -1
  131. package/docs/assets/navigation.js +1 -1
  132. package/docs/assets/search.js +1 -1
  133. package/docs/functions/addAirdropCoin.html +1 -0
  134. package/docs/functions/alphaLpBreakdown.html +1 -1
  135. package/docs/functions/cetusLpBreakdown.html +1 -1
  136. package/docs/functions/claimAirdropTx.html +1 -0
  137. package/docs/functions/claimRewardTxb.html +1 -1
  138. package/docs/functions/claimRewardsTxb.html +1 -1
  139. package/docs/functions/claimWithdrawAlphaTx.html +1 -0
  140. package/docs/functions/coinAmountToXTokensDoubleAsset.html +1 -1
  141. package/docs/functions/coinAmountToXTokensSingleAsset.html +1 -1
  142. package/docs/functions/coinsInPool.html +1 -1
  143. package/docs/functions/collectAndSwapRewardsLyf.html +1 -1
  144. package/docs/functions/collectAndSwapRewardsSingleLoop.html +1 -1
  145. package/docs/functions/collectRewardTxb.html +1 -1
  146. package/docs/functions/collectRewards.html +1 -1
  147. package/docs/functions/collectRewardsAndSwapSlush.html +1 -0
  148. package/docs/functions/collectUnsuppliedBalance.html +1 -0
  149. package/docs/functions/deposit.html +1 -1
  150. package/docs/functions/depositAlphaTx.html +1 -0
  151. package/docs/functions/depositDoubleAssetTxb.html +1 -1
  152. package/docs/functions/depositSingleAssetTxb.html +1 -1
  153. package/docs/functions/fetchAfterTransactionEvents.html +1 -1
  154. package/docs/functions/fetchAirdropClaimEvents.html +1 -1
  155. package/docs/functions/fetchAutoCompoundingEvents.html +1 -1
  156. package/docs/functions/fetchAutoCompoundingEventsGql.html +1 -1
  157. package/docs/functions/fetchCetusPools.html +1 -1
  158. package/docs/functions/fetchChainIdentifier.html +1 -1
  159. package/docs/functions/fetchCheckRatioEvents.html +1 -1
  160. package/docs/functions/fetchEvents.html +1 -1
  161. package/docs/functions/fetchLiquidityChangeEvents.html +1 -1
  162. package/docs/functions/fetchMultiCategoryEvents.html +1 -1
  163. package/docs/functions/fetchMultiReceipts.html +1 -1
  164. package/docs/functions/fetchNftHolders.html +1 -1
  165. package/docs/functions/fetchPools.html +1 -1
  166. package/docs/functions/fetchPortfolioData.html +1 -1
  167. package/docs/functions/fetchProtocolData.html +1 -1
  168. package/docs/functions/fetchRequiredPrices.html +1 -1
  169. package/docs/functions/fetchTVL.html +1 -1
  170. package/docs/functions/fetchTransactions.html +1 -1
  171. package/docs/functions/fetchUserVaultBalances.html +1 -1
  172. package/docs/functions/fetchUserVaults.html +1 -1
  173. package/docs/functions/fetchUserWalletData.html +1 -1
  174. package/docs/functions/fetchVoloExchangeRate.html +1 -1
  175. package/docs/functions/fetchWithdrawV2Events.html +1 -1
  176. package/docs/functions/getAirdropShare.html +1 -1
  177. package/docs/functions/getAllDoubleAssetVaults.html +1 -1
  178. package/docs/functions/getAllSingleAssetVaults.html +1 -1
  179. package/docs/functions/getAllVaultBalances.html +1 -1
  180. package/docs/functions/getAllVaults.html +1 -1
  181. package/docs/functions/getAlphaUnlocks.html +1 -1
  182. package/docs/functions/getAlphaVaultBalance.html +1 -1
  183. package/docs/functions/getAmounts.html +1 -1
  184. package/docs/functions/getApr.html +1 -1
  185. package/docs/functions/getAprs.html +1 -1
  186. package/docs/functions/getApy.html +1 -1
  187. package/docs/functions/getApys.html +1 -1
  188. package/docs/functions/getCetusInvestorTicksMap.html +1 -1
  189. package/docs/functions/getCetusPool.html +1 -1
  190. package/docs/functions/getCetusSqrtPriceMap.html +1 -1
  191. package/docs/functions/getCoinAmountsFromLiquidity.html +1 -1
  192. package/docs/functions/getConf.html +1 -1
  193. package/docs/functions/getCurrentTick.html +1 -1
  194. package/docs/functions/getDistributor.html +1 -1
  195. package/docs/functions/getDoubleAssetVaultBalance.html +1 -1
  196. package/docs/functions/getDoubleAssetVaults.html +1 -1
  197. package/docs/functions/getInvestor.html +1 -1
  198. package/docs/functions/getInvestorPoolMap.html +1 -1
  199. package/docs/functions/getLastAutoCompoundTime.html +1 -1
  200. package/docs/functions/getLatestPrices.html +1 -1
  201. package/docs/functions/getLiquidity.html +1 -1
  202. package/docs/functions/getMultiCetusPool.html +1 -1
  203. package/docs/functions/getMultiInvestor.html +1 -1
  204. package/docs/functions/getMultiLatestPrices.html +1 -1
  205. package/docs/functions/getMultiParentPool.html +1 -1
  206. package/docs/functions/getMultiPool.html +1 -1
  207. package/docs/functions/getMultiReceipts.html +1 -1
  208. package/docs/functions/getParentPool.html +1 -1
  209. package/docs/functions/getPool.html +1 -1
  210. package/docs/functions/getPoolExchangeRate.html +1 -1
  211. package/docs/functions/getPoolExchangeRateMap.html +1 -1
  212. package/docs/functions/getPoolsWeightDistribution.html +1 -1
  213. package/docs/functions/getPositionRange.html +1 -1
  214. package/docs/functions/getPositionRanges.html +1 -1
  215. package/docs/functions/getPositionTicks.html +1 -1
  216. package/docs/functions/getPriceToTick.html +1 -1
  217. package/docs/functions/getRebalanceHistories.html +1 -1
  218. package/docs/functions/getRebalanceHistory.html +1 -1
  219. package/docs/functions/getReceipts.html +1 -1
  220. package/docs/functions/getSingleAssetVaultBalance.html +1 -1
  221. package/docs/functions/getSingleAssetVaults.html +1 -1
  222. package/docs/functions/getSlushUserTotalXtokens.html +1 -0
  223. package/docs/functions/getSuiClient.html +2 -2
  224. package/docs/functions/getSuiNodeUrl.html +2 -2
  225. package/docs/functions/getTVLs-1.html +1 -1
  226. package/docs/functions/getTickSpacing.html +1 -1
  227. package/docs/functions/getTickToPrice.html +1 -1
  228. package/docs/functions/getTvls.html +1 -1
  229. package/docs/functions/getVaultBalance.html +1 -1
  230. package/docs/functions/getVaults.html +1 -1
  231. package/docs/functions/getWithdrawRequestAndUnsuppliedAmounts.html +1 -0
  232. package/docs/functions/initiateWithdrawAlpha.html +1 -0
  233. package/docs/functions/lastAutocompoundTime.html +1 -1
  234. package/docs/functions/liquidityToTokens.html +1 -1
  235. package/docs/functions/migrateBoostedToLoop.html +1 -1
  236. package/docs/functions/multiLiquidityToTokens.html +1 -1
  237. package/docs/functions/multiTokensToUsd.html +1 -1
  238. package/docs/functions/multiXTokensToLiquidity.html +1 -1
  239. package/docs/functions/parseUserWalletData.html +1 -1
  240. package/docs/functions/pendingRewardAmount.html +1 -1
  241. package/docs/functions/processWithdrawRequestsManual.html +1 -0
  242. package/docs/functions/setCustomSuiClient.html +2 -2
  243. package/docs/functions/setSuiClient.html +2 -2
  244. package/docs/functions/setSuiNodeUrl.html +2 -2
  245. package/docs/functions/setWeights.html +1 -1
  246. package/docs/functions/slushDeposit.html +1 -0
  247. package/docs/functions/slushWithdraw.html +1 -0
  248. package/docs/functions/withdraw.html +1 -1
  249. package/docs/functions/withdrawAlphaTxb.html +1 -1
  250. package/docs/functions/withdrawTxb.html +1 -1
  251. package/docs/functions/zapDepositQuoteTxb.html +1 -1
  252. package/docs/functions/zapDepositTxb.html +1 -1
  253. package/docs/hierarchy.html +1 -1
  254. package/docs/index.html +2 -2
  255. package/docs/interfaces/Coin.html +6 -6
  256. package/docs/interfaces/CoinPair.html +2 -2
  257. package/docs/interfaces/CommonEventAttributes.html +2 -2
  258. package/docs/interfaces/NaviVoloData.html +2 -2
  259. package/docs/interfaces/PoolData.html +2 -2
  260. package/docs/interfaces/PoolWeightDistribution.html +2 -2
  261. package/docs/interfaces/RebalanceHistoryType.html +2 -2
  262. package/docs/modules.html +1 -1
  263. package/docs/types/AfterTransactionEventNode.html +1 -1
  264. package/docs/types/AirdropClaimEventNode.html +1 -1
  265. package/docs/types/Allocator.html +2 -2
  266. package/docs/types/AlphaFiDoubleAssetVault.html +2 -2
  267. package/docs/types/AlphaFiMultiVaultBalance.html +1 -1
  268. package/docs/types/AlphaFiSingleAssetVault.html +2 -2
  269. package/docs/types/AlphaFiVault.html +1 -1
  270. package/docs/types/AlphaFiVaultBalance.html +1 -1
  271. package/docs/types/AlphaLendInvestor.html +1 -1
  272. package/docs/types/AlphaPoolType.html +2 -2
  273. package/docs/types/AlphaReceipt.html +2 -2
  274. package/docs/types/AlphaReceiptFields.html +2 -2
  275. package/docs/types/AlphaVaultBalance.html +2 -2
  276. package/docs/types/AutoBalancePoolNames.html +1 -1
  277. package/docs/types/AutoCompoundingEventNode.html +1 -1
  278. package/docs/types/Bag.html +3 -0
  279. package/docs/types/BluefinInvestor.html +1 -1
  280. package/docs/types/BluefinLyfInvestor.html +1 -1
  281. package/docs/types/BluefinPoolType.html +2 -2
  282. package/docs/types/BucketInvestor.html +2 -2
  283. package/docs/types/CetusInvestor.html +2 -2
  284. package/docs/types/CetusPoolType.html +2 -2
  285. package/docs/types/CetusSwapOptions.html +1 -1
  286. package/docs/types/CoinAmounts.html +2 -2
  287. package/docs/types/CoinName.html +1 -1
  288. package/docs/types/CoinType.html +1 -1
  289. package/docs/types/CommonInvestorFields.html +2 -2
  290. package/docs/types/CreatePoolOptions.html +2 -2
  291. package/docs/types/Distributor.html +2 -2
  292. package/docs/types/DoubleAssetMultiVaultBalance.html +2 -2
  293. package/docs/types/DoubleAssetPoolNames.html +1 -1
  294. package/docs/types/DoubleAssetTokenHoldings.html +2 -2
  295. package/docs/types/DoubleAssetVaultBalance.html +2 -2
  296. package/docs/types/EventCategory.html +1 -1
  297. package/docs/types/EventNode.html +1 -1
  298. package/docs/types/GetHoldersParams.html +2 -2
  299. package/docs/types/GetTokenHoldingsParams.html +2 -2
  300. package/docs/types/GetUserTokensFromTransactionsParams.html +2 -2
  301. package/docs/types/GetUserTokensInUsdFromTransactionsParams.html +2 -2
  302. package/docs/types/GetVaultBalanceParams.html +1 -1
  303. package/docs/types/HoldingsObj.html +2 -2
  304. package/docs/types/Icon.html +1 -1
  305. package/docs/types/Investor.html +1 -1
  306. package/docs/types/LiquidityChangeEventNode.html +1 -1
  307. package/docs/types/LiquidityToTokensParams.html +2 -2
  308. package/docs/types/LiquidityToUsdParams.html +2 -2
  309. package/docs/types/LoopingDebt.html +2 -2
  310. package/docs/types/LoopingPoolNames.html +1 -1
  311. package/docs/types/LpBreakdownType.html +2 -2
  312. package/docs/types/MemberPoolDataType.html +2 -2
  313. package/docs/types/MemberType.html +2 -2
  314. package/docs/types/MultiGetVaultBalancesParams.html +2 -2
  315. package/docs/types/NaviInvestor.html +2 -2
  316. package/docs/types/ObjectTable.html +1 -0
  317. package/docs/types/OtherReceiptFields.html +2 -2
  318. package/docs/types/PoolName.html +1 -1
  319. package/docs/types/PoolReceipt.html +1 -1
  320. package/docs/types/PoolType.html +2 -2
  321. package/docs/types/Receipt.html +2 -2
  322. package/docs/types/ReceiptGQL.html +2 -2
  323. package/docs/types/SingleAssetMultiVaultBalance.html +2 -2
  324. package/docs/types/SingleAssetPoolNames.html +1 -1
  325. package/docs/types/SingleAssetTokenHoldings.html +2 -2
  326. package/docs/types/SingleAssetVaultBalance.html +2 -2
  327. package/docs/types/SingleGetVaultBalancesParams.html +2 -2
  328. package/docs/types/StrategyType.html +1 -1
  329. package/docs/types/SuiNetwork.html +1 -1
  330. package/docs/types/SwapOptions.html +1 -1
  331. package/docs/types/TickSpacing.html +1 -1
  332. package/docs/types/TotalWeightType.html +2 -2
  333. package/docs/types/TransactionBlockType.html +2 -2
  334. package/docs/types/UserPoolLiquidity.html +2 -2
  335. package/docs/types/UserPoolTokenHoldings.html +1 -1
  336. package/docs/types/UserUsdHoldings.html +2 -2
  337. package/docs/types/VaultBalance.html +1 -1
  338. package/docs/types/VecMap.html +3 -0
  339. package/docs/types/VoteCastEvent.html +1 -1
  340. package/docs/types/WithdrawV2EventNode.html +1 -1
  341. package/docs/variables/AUTOBALANCE_SUI_FIRST_POOLS.html +1 -1
  342. package/docs/variables/AUTOBALANCE_SUI_SECOND_POOLS.html +1 -1
  343. package/docs/variables/AUTOBALANCE_TYPE_1_POOLS.html +1 -1
  344. package/docs/variables/alphalendMarketIdMap.html +1 -1
  345. package/docs/variables/bluefinPoolMap.html +1 -1
  346. package/docs/variables/cetusPoolMap.html +1 -1
  347. package/docs/variables/coinsList.html +1 -1
  348. package/docs/variables/defunctPoolsSet.html +1 -1
  349. package/docs/variables/doubleAssetPoolCoinMap.html +1 -1
  350. package/docs/variables/eventCategories.html +1 -1
  351. package/docs/variables/ignoredWalletsForDailyRevenue.html +1 -1
  352. package/docs/variables/loopingAccountAddresses.html +1 -1
  353. package/docs/variables/loopingPoolCoinMap.html +1 -1
  354. package/docs/variables/naviAssetMap.html +1 -1
  355. package/docs/variables/poolIdPoolNameMap.html +1 -1
  356. package/docs/variables/poolInfo.html +1 -1
  357. package/docs/variables/singleAssetPoolCoinMap.html +1 -1
  358. package/docs/variables/stableCoins.html +1 -1
  359. package/package.json +2 -1
@@ -0,0 +1,377 @@
1
+ import { Transaction } from "@mysten/sui/transactions";
2
+ import { getConf } from "../common/constants.js";
3
+ import { poolInfo } from "../common/maps.js";
4
+ import { coinsList } from "../common/coins.js";
5
+ import { getPool, getReceipts } from "../sui-sdk/functions/getReceipts.js";
6
+ import { Decimal } from "decimal.js";
7
+ export async function depositAlphaTx(amount, address, suiClient) {
8
+ const tx = new Transaction();
9
+ const poolinfo = poolInfo["ALPHA"];
10
+ // Fetch ALPHA coins from the user's wallet
11
+ const coin = await getCoinFromWallet(tx, suiClient, address, poolinfo.assetTypes[0]);
12
+ const [depositCoin] = tx.splitCoins(coin, [amount]);
13
+ // Transfer remaining coins back to user
14
+ tx.transferObjects([coin], address);
15
+ // Get receipts
16
+ const receipts = await getReceipts("ALPHA", address, true);
17
+ const receipt = receipts.length > 0 ? receipts[0] : undefined;
18
+ const alphafiReceipt = await getAlphaFiReceipt(address, suiClient);
19
+ if (alphafiReceipt.length === 0) {
20
+ // Create new AlphaFi receipt
21
+ const alphafiReceiptObj = createAlphaFiReceipt(tx);
22
+ // Convert alpha receipt to ember position if alpha receipt exists
23
+ if (receipt) {
24
+ tx.moveCall({
25
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,
26
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
27
+ arguments: [
28
+ tx.object(getConf().ALPHA_EMBER_VERSION),
29
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
30
+ alphafiReceiptObj,
31
+ tx.object(receipt.objectId),
32
+ tx.object(getConf().ALPHA_POOL),
33
+ ],
34
+ });
35
+ }
36
+ // Deposit to ember pool
37
+ tx.moveCall({
38
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_deposit`,
39
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
40
+ arguments: [
41
+ tx.object(getConf().ALPHA_EMBER_VERSION),
42
+ alphafiReceiptObj,
43
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
44
+ depositCoin,
45
+ tx.object(getConf().CLOCK_PACKAGE_ID),
46
+ ],
47
+ });
48
+ tx.moveCall({
49
+ target: `${getConf().ALPHAFI_RECEIPT_PACKAGE_ID}::alphafi_receipt::transfer_receipt_to_new_owner`,
50
+ arguments: [
51
+ alphafiReceiptObj,
52
+ tx.pure.address(address),
53
+ tx.object(getConf().ALPHAFI_RECEIPT_WHITELISTED_ADDRESSES),
54
+ ],
55
+ });
56
+ }
57
+ else {
58
+ const existingReceipt = alphafiReceipt[0];
59
+ // Convert alpha receipt to ember position if needed
60
+ if (receipt) {
61
+ const isPresent = isPositionPresent(existingReceipt, getConf().ALPHAFI_EMBER_POOL);
62
+ if (!isPresent) {
63
+ tx.moveCall({
64
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,
65
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
66
+ arguments: [
67
+ tx.object(getConf().ALPHA_EMBER_VERSION),
68
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
69
+ tx.object(existingReceipt.id),
70
+ tx.object(receipt.objectId),
71
+ tx.object(getConf().ALPHA_POOL),
72
+ ],
73
+ });
74
+ }
75
+ }
76
+ // Deposit to ember pool
77
+ tx.moveCall({
78
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_deposit`,
79
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
80
+ arguments: [
81
+ tx.object(getConf().ALPHA_EMBER_VERSION),
82
+ tx.object(existingReceipt.id),
83
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
84
+ depositCoin,
85
+ tx.object(getConf().CLOCK_PACKAGE_ID),
86
+ ],
87
+ });
88
+ }
89
+ return tx;
90
+ }
91
+ export async function initiateWithdrawAlpha(amount, withdrawMax, address, suiClient) {
92
+ let xtokens = 0;
93
+ const alphaPool = (await getPool("ALPHA", true));
94
+ if (withdrawMax) {
95
+ const alphafiReceipts = await getAlphaFiReceipt(address, suiClient);
96
+ const receipts = await getReceipts("ALPHA", address, true);
97
+ const receipt = receipts.length > 0 ? receipts[0] : undefined;
98
+ if (alphafiReceipts.length === 0 && !receipt) {
99
+ throw new Error(`No AlphaFi receipts or receit found for address ${address}`);
100
+ }
101
+ if (alphafiReceipts.length === 0 && receipt) {
102
+ xtokens = Number(receipt.content.fields.xTokenBalance);
103
+ }
104
+ else {
105
+ let positionUpdate = alphaPool.content.fields.recently_updated_alphafi_receipts.fields.contents.find((item) => item.fields.key === alphafiReceipts[0].id);
106
+ xtokens =
107
+ Number(await getAlphaTotalShares(suiClient, alphafiReceipts[0])) -
108
+ (positionUpdate
109
+ ? Number(positionUpdate.fields.value.fields.xtokens_to_remove) -
110
+ Number(positionUpdate.fields.value.fields.xtokens_to_add)
111
+ : 0);
112
+ }
113
+ }
114
+ else {
115
+ xtokens = new Decimal(amount)
116
+ .div(new Decimal(alphaPool.content.fields.current_exchange_rate.fields.value).div(1e18))
117
+ .ceil()
118
+ .toNumber();
119
+ }
120
+ return initiateWithdrawAlphaTx(xtokens.toString(), address, suiClient);
121
+ }
122
+ async function getAlphaTotalShares(suiClient, alphafiReceipt) {
123
+ let entry = alphafiReceipt.position_pool_map.find((item) => item.value.pool_id === poolInfo["ALPHA"].poolId);
124
+ if (!entry) {
125
+ console.error("no position for pool id found");
126
+ return "0";
127
+ }
128
+ const position = await suiClient.getObject({
129
+ id: entry.key,
130
+ options: {
131
+ showContent: true,
132
+ },
133
+ });
134
+ return (position.data?.content).fields.xtokens.toString();
135
+ }
136
+ async function initiateWithdrawAlphaTx(xTokens, address, suiClient) {
137
+ const tx = new Transaction();
138
+ const receipts = await getReceipts("ALPHA", address, true);
139
+ const receipt = receipts.length > 0 ? receipts[0] : undefined;
140
+ const alphafiReceipt = await getAlphaFiReceipt(address, suiClient);
141
+ if (alphafiReceipt.length === 0) {
142
+ // Create new AlphaFi receipt
143
+ const alphafiReceiptObj = createAlphaFiReceipt(tx);
144
+ if (!receipt) {
145
+ throw new Error("No alphafi receipt and no alpha receipt found");
146
+ }
147
+ // Convert alpha receipt to ember position
148
+ tx.moveCall({
149
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,
150
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
151
+ arguments: [
152
+ tx.object(getConf().ALPHA_EMBER_VERSION),
153
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
154
+ alphafiReceiptObj,
155
+ tx.object(receipt.objectId),
156
+ tx.object(getConf().ALPHA_POOL),
157
+ ],
158
+ });
159
+ // Initiate withdrawal
160
+ tx.moveCall({
161
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_initiate_withdraw`,
162
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
163
+ arguments: [
164
+ tx.object(getConf().ALPHA_EMBER_VERSION),
165
+ alphafiReceiptObj,
166
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
167
+ tx.pure.u64(xTokens),
168
+ tx.object(getConf().CLOCK_PACKAGE_ID),
169
+ ],
170
+ });
171
+ tx.moveCall({
172
+ target: `${getConf().ALPHAFI_RECEIPT_PACKAGE_ID}::alphafi_receipt::transfer_receipt_to_new_owner`,
173
+ arguments: [
174
+ alphafiReceiptObj,
175
+ tx.pure.address(address),
176
+ tx.object(getConf().ALPHAFI_RECEIPT_WHITELISTED_ADDRESSES),
177
+ ],
178
+ });
179
+ }
180
+ else {
181
+ const existingReceipt = alphafiReceipt[0];
182
+ const isPresent = isPositionPresent(existingReceipt, getConf().ALPHAFI_EMBER_POOL);
183
+ if (!isPresent && !receipt) {
184
+ throw new Error("No position or old alpha receipt found");
185
+ }
186
+ // Convert alpha receipt to ember position if needed
187
+ if (!isPresent && receipt) {
188
+ tx.moveCall({
189
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,
190
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
191
+ arguments: [
192
+ tx.object(getConf().ALPHA_EMBER_VERSION),
193
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
194
+ tx.object(existingReceipt.id),
195
+ tx.object(receipt.objectId),
196
+ tx.object(getConf().ALPHA_POOL),
197
+ ],
198
+ });
199
+ }
200
+ // Initiate withdrawal
201
+ tx.moveCall({
202
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_initiate_withdraw`,
203
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
204
+ arguments: [
205
+ tx.object(getConf().ALPHA_EMBER_VERSION),
206
+ tx.object(existingReceipt.id),
207
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
208
+ tx.pure.u64(xTokens),
209
+ tx.object(getConf().CLOCK_PACKAGE_ID),
210
+ ],
211
+ });
212
+ }
213
+ return tx;
214
+ }
215
+ export async function claimAirdropTx(address, suiClient) {
216
+ const tx = new Transaction();
217
+ let airdropCoin;
218
+ const receipts = await getReceipts("ALPHA", address, true);
219
+ const receipt = receipts.length > 0 ? receipts[0] : undefined;
220
+ const alphafiReceipt = await getAlphaFiReceipt(address, suiClient);
221
+ if (alphafiReceipt.length === 0) {
222
+ // Create new AlphaFi receipt
223
+ const alphafiReceiptObj = createAlphaFiReceipt(tx);
224
+ if (!receipt) {
225
+ throw new Error("No alphafi receipt and no alpha receipt found");
226
+ }
227
+ // Convert alpha receipt to ember position
228
+ tx.moveCall({
229
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,
230
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
231
+ arguments: [
232
+ tx.object(getConf().ALPHA_EMBER_VERSION),
233
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
234
+ alphafiReceiptObj,
235
+ tx.object(receipt.objectId),
236
+ tx.object(getConf().ALPHA_POOL),
237
+ ],
238
+ });
239
+ // Get user rewards
240
+ airdropCoin = tx.moveCall({
241
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::get_user_rewards`,
242
+ typeArguments: [getConf().ALPHA_COIN_TYPE, coinsList["SUI"].type],
243
+ arguments: [
244
+ tx.object(getConf().ALPHA_EMBER_VERSION),
245
+ alphafiReceiptObj,
246
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
247
+ ],
248
+ });
249
+ tx.moveCall({
250
+ target: `${getConf().ALPHAFI_RECEIPT_PACKAGE_ID}::alphafi_receipt::transfer_receipt_to_new_owner`,
251
+ arguments: [
252
+ alphafiReceiptObj,
253
+ tx.pure.address(address),
254
+ tx.object(getConf().ALPHAFI_RECEIPT_WHITELISTED_ADDRESSES),
255
+ ],
256
+ });
257
+ }
258
+ else {
259
+ const existingReceipt = alphafiReceipt[0];
260
+ const isPresent = isPositionPresent(existingReceipt, getConf().ALPHAFI_EMBER_POOL);
261
+ if (!isPresent && !receipt) {
262
+ throw new Error("No position or old alpha receipt found");
263
+ }
264
+ // Convert alpha receipt to ember position if needed
265
+ if (!isPresent && receipt) {
266
+ tx.moveCall({
267
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,
268
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
269
+ arguments: [
270
+ tx.object(getConf().ALPHA_EMBER_VERSION),
271
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
272
+ tx.object(existingReceipt.id),
273
+ tx.object(receipt.objectId),
274
+ tx.object(getConf().ALPHA_POOL),
275
+ ],
276
+ });
277
+ }
278
+ // Get user rewards
279
+ airdropCoin = tx.moveCall({
280
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::get_user_rewards`,
281
+ typeArguments: [getConf().ALPHA_COIN_TYPE, coinsList["SUI"].type],
282
+ arguments: [
283
+ tx.object(getConf().ALPHA_EMBER_VERSION),
284
+ tx.object(existingReceipt.id),
285
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
286
+ ],
287
+ });
288
+ }
289
+ tx.transferObjects([airdropCoin], address);
290
+ return tx;
291
+ }
292
+ export async function claimWithdrawAlphaTx(ticketId, address, suiClient) {
293
+ const tx = new Transaction();
294
+ const alphafiReceipt = await getAlphaFiReceipt(address, suiClient);
295
+ if (alphafiReceipt.length === 0) {
296
+ throw new Error("No Alphafi receipt found!");
297
+ }
298
+ let coin = tx.moveCall({
299
+ target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_claim_withdraw`,
300
+ typeArguments: [getConf().ALPHA_COIN_TYPE],
301
+ arguments: [
302
+ tx.object(getConf().ALPHA_EMBER_VERSION),
303
+ tx.object(alphafiReceipt[0].id),
304
+ tx.object(getConf().ALPHAFI_EMBER_POOL),
305
+ tx.pure.id(ticketId),
306
+ tx.object(getConf().CLOCK_PACKAGE_ID),
307
+ ],
308
+ });
309
+ tx.transferObjects([coin], address);
310
+ return tx;
311
+ }
312
+ export async function getCoinFromWallet(tx, suiClient, address, coinType) {
313
+ if (coinType === "0x2::sui::SUI" ||
314
+ coinType ===
315
+ "0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI") {
316
+ return tx.gas;
317
+ }
318
+ let coins = [];
319
+ let currentCursor = null;
320
+ do {
321
+ const response = await suiClient.getCoins({
322
+ owner: address,
323
+ coinType,
324
+ cursor: currentCursor,
325
+ });
326
+ coins = coins.concat(response.data);
327
+ // Check if there's a next page
328
+ if (response.hasNextPage && response.nextCursor) {
329
+ currentCursor = response.nextCursor;
330
+ }
331
+ else {
332
+ // No more pages available
333
+ break;
334
+ }
335
+ } while (true);
336
+ let coin;
337
+ [coin] = tx.splitCoins(tx.object(coins[0].coinObjectId), [0]);
338
+ tx.mergeCoins(coin, coins.map((c) => c.coinObjectId));
339
+ return coin;
340
+ }
341
+ function isPositionPresent(alphafiReceipt, poolId) {
342
+ return alphafiReceipt.position_pool_map.some((item) => `0x${item.value.pool_id}` === poolId ||
343
+ item.value.pool_id === poolId ||
344
+ item.value.pool_id === `0x${poolId}`);
345
+ }
346
+ function createAlphaFiReceipt(tx) {
347
+ return tx.moveCall({
348
+ target: `${getConf().ALPHAFI_RECEIPT_PACKAGE_ID}::alphafi_receipt::create_alphafi_receipt_v2`,
349
+ arguments: [tx.pure.string(getConf().ALPHAFI_RECEIPT_IMAGE_URL)],
350
+ });
351
+ }
352
+ async function getAlphaFiReceipt(address, suiClient) {
353
+ const receipts = await suiClient.getOwnedObjects({
354
+ owner: address,
355
+ filter: {
356
+ StructType: getConf().ALPHAFI_RECEIPT_TYPE,
357
+ },
358
+ options: {
359
+ showContent: true,
360
+ },
361
+ });
362
+ return receipts.data.map((receipt) => parseAlphaFiReceipt(receipt.data));
363
+ }
364
+ export function parseAlphaFiReceipt(query) {
365
+ return {
366
+ id: query.content.fields.id.id,
367
+ position_pool_map: query.content.fields.position_pool_map.fields.contents.map((item) => ({
368
+ key: item.fields.key,
369
+ value: {
370
+ pool_id: item.fields.value.fields.pool_id,
371
+ partner_cap_id: item.fields.value.fields.partner_cap_id,
372
+ },
373
+ })),
374
+ client_address: query.content.fields.client_address,
375
+ };
376
+ }
377
+ //# sourceMappingURL=alphaVault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alphaVault.js","sourceRoot":"","sources":["../../../src/transactions/alphaVault.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction } from \"@mysten/sui/transactions\";\nimport { getConf } from \"../common/constants.js\";\nimport { poolInfo } from \"../common/maps.js\";\nimport { coinsList } from \"../common/coins.js\";\nimport { CoinStruct, SuiClient } from \"@mysten/sui/client\";\nimport { getPool, getReceipts } from \"../sui-sdk/functions/getReceipts.js\";\nimport { Decimal } from \"decimal.js\";\nimport { AlphaPoolType } from \"../common/types.js\";\n\nexport async function depositAlphaTx(\n amount: string,\n address: string,\n suiClient: SuiClient,\n): Promise<Transaction> {\n const tx = new Transaction();\n const poolinfo = poolInfo[\"ALPHA\"];\n\n // Fetch ALPHA coins from the user's wallet\n const coin = await getCoinFromWallet(\n tx,\n suiClient,\n address,\n poolinfo.assetTypes[0],\n );\n const [depositCoin] = tx.splitCoins(coin, [amount]);\n\n // Transfer remaining coins back to user\n tx.transferObjects([coin], address);\n\n // Get receipts\n const receipts = await getReceipts(\"ALPHA\", address, true);\n const receipt = receipts.length > 0 ? receipts[0] : undefined;\n const alphafiReceipt = await getAlphaFiReceipt(address, suiClient);\n\n if (alphafiReceipt.length === 0) {\n // Create new AlphaFi receipt\n const alphafiReceiptObj = createAlphaFiReceipt(tx);\n\n // Convert alpha receipt to ember position if alpha receipt exists\n if (receipt) {\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n alphafiReceiptObj,\n tx.object(receipt.objectId),\n tx.object(getConf().ALPHA_POOL),\n ],\n });\n }\n\n // Deposit to ember pool\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_deposit`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n alphafiReceiptObj,\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n depositCoin,\n tx.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n\n tx.moveCall({\n target: `${getConf().ALPHAFI_RECEIPT_PACKAGE_ID}::alphafi_receipt::transfer_receipt_to_new_owner`,\n arguments: [\n alphafiReceiptObj,\n tx.pure.address(address),\n tx.object(getConf().ALPHAFI_RECEIPT_WHITELISTED_ADDRESSES),\n ],\n });\n } else {\n const existingReceipt = alphafiReceipt[0];\n\n // Convert alpha receipt to ember position if needed\n if (receipt) {\n const isPresent = isPositionPresent(\n existingReceipt,\n getConf().ALPHAFI_EMBER_POOL,\n );\n\n if (!isPresent) {\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n tx.object(existingReceipt.id),\n tx.object(receipt.objectId),\n tx.object(getConf().ALPHA_POOL),\n ],\n });\n }\n }\n\n // Deposit to ember pool\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_deposit`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(existingReceipt.id),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n depositCoin,\n tx.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n return tx;\n}\n\nexport async function initiateWithdrawAlpha(\n amount: string,\n withdrawMax: boolean,\n address: string,\n suiClient: SuiClient,\n): Promise<Transaction> {\n let xtokens = 0;\n const alphaPool = (await getPool(\"ALPHA\", true)) as AlphaPoolType;\n if (withdrawMax) {\n const alphafiReceipts = await getAlphaFiReceipt(address, suiClient);\n const receipts = await getReceipts(\"ALPHA\", address, true);\n const receipt = receipts.length > 0 ? receipts[0] : undefined;\n if (alphafiReceipts.length === 0 && !receipt) {\n throw new Error(\n `No AlphaFi receipts or receit found for address ${address}`,\n );\n }\n if (alphafiReceipts.length === 0 && receipt) {\n xtokens = Number(receipt.content.fields.xTokenBalance);\n } else {\n let positionUpdate =\n alphaPool.content.fields.recently_updated_alphafi_receipts.fields.contents.find(\n (item) => item.fields.key === alphafiReceipts[0].id,\n );\n xtokens =\n Number(await getAlphaTotalShares(suiClient, alphafiReceipts[0])) -\n (positionUpdate\n ? Number(positionUpdate.fields.value.fields.xtokens_to_remove) -\n Number(positionUpdate.fields.value.fields.xtokens_to_add)\n : 0);\n }\n } else {\n xtokens = new Decimal(amount)\n .div(\n new Decimal(\n alphaPool.content.fields.current_exchange_rate.fields.value,\n ).div(1e18),\n )\n .ceil()\n .toNumber();\n }\n return initiateWithdrawAlphaTx(xtokens.toString(), address, suiClient);\n}\n\nasync function getAlphaTotalShares(\n suiClient: SuiClient,\n alphafiReceipt: AlphaFiReceiptType,\n): Promise<string> {\n let entry = alphafiReceipt.position_pool_map.find(\n (item) => item.value.pool_id === poolInfo[\"ALPHA\"].poolId,\n );\n if (!entry) {\n console.error(\"no position for pool id found\");\n return \"0\";\n }\n const position = await suiClient.getObject({\n id: entry.key,\n options: {\n showContent: true,\n },\n });\n return (position.data?.content as any).fields.xtokens.toString();\n}\n\nasync function initiateWithdrawAlphaTx(\n xTokens: string,\n address: string,\n suiClient: SuiClient,\n): Promise<Transaction> {\n const tx = new Transaction();\n\n const receipts = await getReceipts(\"ALPHA\", address, true);\n const receipt = receipts.length > 0 ? receipts[0] : undefined;\n const alphafiReceipt = await getAlphaFiReceipt(address, suiClient);\n if (alphafiReceipt.length === 0) {\n // Create new AlphaFi receipt\n const alphafiReceiptObj = createAlphaFiReceipt(tx);\n\n if (!receipt) {\n throw new Error(\"No alphafi receipt and no alpha receipt found\");\n }\n\n // Convert alpha receipt to ember position\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n alphafiReceiptObj,\n tx.object(receipt.objectId),\n tx.object(getConf().ALPHA_POOL),\n ],\n });\n\n // Initiate withdrawal\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_initiate_withdraw`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n alphafiReceiptObj,\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n tx.pure.u64(xTokens),\n tx.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n\n tx.moveCall({\n target: `${getConf().ALPHAFI_RECEIPT_PACKAGE_ID}::alphafi_receipt::transfer_receipt_to_new_owner`,\n arguments: [\n alphafiReceiptObj,\n tx.pure.address(address),\n tx.object(getConf().ALPHAFI_RECEIPT_WHITELISTED_ADDRESSES),\n ],\n });\n } else {\n const existingReceipt = alphafiReceipt[0];\n const isPresent = isPositionPresent(\n existingReceipt,\n getConf().ALPHAFI_EMBER_POOL,\n );\n\n if (!isPresent && !receipt) {\n throw new Error(\"No position or old alpha receipt found\");\n }\n\n // Convert alpha receipt to ember position if needed\n if (!isPresent && receipt) {\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n tx.object(existingReceipt.id),\n tx.object(receipt.objectId),\n tx.object(getConf().ALPHA_POOL),\n ],\n });\n }\n\n // Initiate withdrawal\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_initiate_withdraw`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(existingReceipt.id),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n tx.pure.u64(xTokens),\n tx.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n return tx;\n}\n\nexport async function claimAirdropTx(\n address: string,\n suiClient: SuiClient,\n): Promise<Transaction> {\n const tx = new Transaction();\n let airdropCoin;\n const receipts = await getReceipts(\"ALPHA\", address, true);\n const receipt = receipts.length > 0 ? receipts[0] : undefined;\n const alphafiReceipt = await getAlphaFiReceipt(address, suiClient);\n if (alphafiReceipt.length === 0) {\n // Create new AlphaFi receipt\n const alphafiReceiptObj = createAlphaFiReceipt(tx);\n\n if (!receipt) {\n throw new Error(\"No alphafi receipt and no alpha receipt found\");\n }\n\n // Convert alpha receipt to ember position\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n alphafiReceiptObj,\n tx.object(receipt.objectId),\n tx.object(getConf().ALPHA_POOL),\n ],\n });\n\n // Get user rewards\n airdropCoin = tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::get_user_rewards`,\n typeArguments: [getConf().ALPHA_COIN_TYPE, coinsList[\"SUI\"].type],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n alphafiReceiptObj,\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n ],\n });\n\n tx.moveCall({\n target: `${getConf().ALPHAFI_RECEIPT_PACKAGE_ID}::alphafi_receipt::transfer_receipt_to_new_owner`,\n arguments: [\n alphafiReceiptObj,\n tx.pure.address(address),\n tx.object(getConf().ALPHAFI_RECEIPT_WHITELISTED_ADDRESSES),\n ],\n });\n } else {\n const existingReceipt = alphafiReceipt[0];\n const isPresent = isPositionPresent(\n existingReceipt,\n getConf().ALPHAFI_EMBER_POOL,\n );\n\n if (!isPresent && !receipt) {\n throw new Error(\"No position or old alpha receipt found\");\n }\n\n // Convert alpha receipt to ember position if needed\n if (!isPresent && receipt) {\n tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::migrate_alpha_receipt_to_new_alpha_strategy`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n tx.object(existingReceipt.id),\n tx.object(receipt.objectId),\n tx.object(getConf().ALPHA_POOL),\n ],\n });\n }\n\n // Get user rewards\n airdropCoin = tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::get_user_rewards`,\n typeArguments: [getConf().ALPHA_COIN_TYPE, coinsList[\"SUI\"].type],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(existingReceipt.id),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n ],\n });\n }\n tx.transferObjects([airdropCoin], address);\n return tx;\n}\n\nexport async function claimWithdrawAlphaTx(\n ticketId: string,\n address: string,\n suiClient: SuiClient,\n): Promise<Transaction> {\n const tx = new Transaction();\n const alphafiReceipt = await getAlphaFiReceipt(address, suiClient);\n\n if (alphafiReceipt.length === 0) {\n throw new Error(\"No Alphafi receipt found!\");\n }\n let coin = tx.moveCall({\n target: `${getConf().ALPHA_EMBER_LATEST_PACKAGE_ID}::alphafi_ember_pool::user_claim_withdraw`,\n typeArguments: [getConf().ALPHA_COIN_TYPE],\n arguments: [\n tx.object(getConf().ALPHA_EMBER_VERSION),\n tx.object(alphafiReceipt[0].id),\n tx.object(getConf().ALPHAFI_EMBER_POOL),\n tx.pure.id(ticketId),\n tx.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n tx.transferObjects([coin], address);\n return tx;\n}\n\nexport async function getCoinFromWallet(\n tx: Transaction,\n suiClient: SuiClient,\n address: string,\n coinType: string,\n) {\n if (\n coinType === \"0x2::sui::SUI\" ||\n coinType ===\n \"0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI\"\n ) {\n return tx.gas;\n }\n let coins: CoinStruct[] = [];\n let currentCursor: string | null | undefined = null;\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType,\n cursor: currentCursor,\n });\n coins = coins.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n break;\n }\n } while (true);\n\n let coin;\n [coin] = tx.splitCoins(tx.object(coins[0].coinObjectId), [0]);\n tx.mergeCoins(\n coin,\n coins.map((c) => c.coinObjectId),\n );\n\n return coin;\n}\n\nfunction isPositionPresent(\n alphafiReceipt: {\n position_pool_map: Array<{ key: string; value: { pool_id: string } }>;\n },\n poolId: string,\n): boolean {\n return alphafiReceipt.position_pool_map.some(\n (item) =>\n `0x${item.value.pool_id}` === poolId ||\n item.value.pool_id === poolId ||\n item.value.pool_id === `0x${poolId}`,\n );\n}\n\nfunction createAlphaFiReceipt(tx: Transaction) {\n return tx.moveCall({\n target: `${getConf().ALPHAFI_RECEIPT_PACKAGE_ID}::alphafi_receipt::create_alphafi_receipt_v2`,\n arguments: [tx.pure.string(getConf().ALPHAFI_RECEIPT_IMAGE_URL)],\n });\n}\n\nasync function getAlphaFiReceipt(\n address: string,\n suiClient: SuiClient,\n): Promise<AlphaFiReceiptType[]> {\n const receipts = await suiClient.getOwnedObjects({\n owner: address,\n filter: {\n StructType: getConf().ALPHAFI_RECEIPT_TYPE,\n },\n options: {\n showContent: true,\n },\n });\n return receipts.data.map((receipt) =>\n parseAlphaFiReceipt(receipt.data as any),\n );\n}\n\nexport function parseAlphaFiReceipt(query: any): AlphaFiReceiptType {\n return {\n id: query.content.fields.id.id,\n position_pool_map:\n query.content.fields.position_pool_map.fields.contents.map(\n (item: any) => ({\n key: item.fields.key,\n value: {\n pool_id: item.fields.value.fields.pool_id,\n partner_cap_id: item.fields.value.fields.partner_cap_id,\n },\n }),\n ),\n client_address: query.content.fields.client_address,\n };\n}\n\nexport type AlphaFiReceiptType = {\n id: string;\n position_pool_map: {\n key: string;\n value: {\n pool_id: string;\n partner_cap_id: string;\n };\n }[];\n client_address: string;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"alphalend.d.ts","sourceRoot":"","sources":["../../../src/transactions/alphalend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAYvD,OAAO,EAAE,QAAQ,EAAW,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,wBAQ7B;AACD,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,wBAQ7B;AACD,eAAO,MAAM,eAAe,iBAAiD,CAAC;AAC9E,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CAqFtB;AAED,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CAsDtB;AAED,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CAiGtB;AACD,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CAwDtB"}
1
+ {"version":3,"file":"alphalend.d.ts","sourceRoot":"","sources":["../../../src/transactions/alphalend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAYvD,OAAO,EAAE,QAAQ,EAAW,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,wBAQ7B;AACD,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,wBAQ7B;AACD,eAAO,MAAM,eAAe,iBAAiD,CAAC;AAC9E,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CAqFtB;AAED,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CAsDtB;AAED,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CAsFtB;AACD,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CA6CtB"}
@@ -154,27 +154,16 @@ export async function alphalendSuiStsuiLoopWithdrawTx(xTokens, options) {
154
154
  const poolName = "ALPHALEND-LOOP-SUI-STSUI";
155
155
  const poolData = poolInfo[poolName];
156
156
  const receipt = await getReceipts(poolName, address, true);
157
- const alphaReceipt = await getReceipts("ALPHA", address, true);
158
157
  await alphalendClient.updatePrices(txb, [
159
158
  coinsList["STSUI"].type,
160
159
  "0x2::sui::SUI",
161
160
  ]);
162
161
  if (receipt.length > 0) {
163
- let alpha_receipt;
164
- if (alphaReceipt.length == 0) {
165
- [alpha_receipt] = txb.moveCall({
166
- target: `0x1::option::none`,
167
- typeArguments: [C.ALPHA_POOL_RECEIPT],
168
- arguments: [],
169
- });
170
- }
171
- else {
172
- [alpha_receipt] = txb.moveCall({
173
- target: `0x1::option::some`,
174
- typeArguments: [alphaReceipt[0].content.type],
175
- arguments: [txb.object(alphaReceipt[0].objectId)],
176
- });
177
- }
162
+ let alpha_receipt = txb.moveCall({
163
+ target: `0x1::option::none`,
164
+ typeArguments: [C.ALPHA_POOL_RECEIPT],
165
+ arguments: [],
166
+ });
178
167
  txb.moveCall({
179
168
  target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_one_swap`,
180
169
  typeArguments: [coinsList["ALPHA"].type],
@@ -245,25 +234,14 @@ export async function alphalendSingleLoopWithdraw(poolName, xTokens, options) {
245
234
  const txb = new Transaction();
246
235
  const poolData = poolInfo[poolName];
247
236
  const receipt = await getReceipts(poolName, address, true);
248
- const alphaReceipt = await getReceipts("ALPHA", address, true);
249
237
  const coinName = loopingPoolCoinMap[poolName].supplyCoin;
250
238
  await alphalendClient.updatePrices(txb, [coinsList[coinName].type]);
251
239
  if (receipt.length > 0) {
252
- let alpha_receipt;
253
- if (alphaReceipt.length == 0) {
254
- [alpha_receipt] = txb.moveCall({
255
- target: `0x1::option::none`,
256
- typeArguments: [C.ALPHA_POOL_RECEIPT],
257
- arguments: [],
258
- });
259
- }
260
- else {
261
- [alpha_receipt] = txb.moveCall({
262
- target: `0x1::option::some`,
263
- typeArguments: [alphaReceipt[0].content.type],
264
- arguments: [txb.object(alphaReceipt[0].objectId)],
265
- });
266
- }
240
+ let alpha_receipt = txb.moveCall({
241
+ target: `0x1::option::none`,
242
+ typeArguments: [C.ALPHA_POOL_RECEIPT],
243
+ arguments: [],
244
+ });
267
245
  await collectAndSwapRewardsSingleLoop(poolName, txb);
268
246
  const [coin] = txb.moveCall({
269
247
  target: `${poolData.packageId}::alphafi_alphalend_single_loop_pool::user_withdraw`,
@@ -1 +1 @@
1
- {"version":3,"file":"alphalend.js","sourceRoot":"","sources":["../../../src/transactions/alphalend.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction } from \"@mysten/sui/transactions\";\nimport {\n bluefinPoolMap,\n cetusPoolMap,\n coinsList,\n collectAndSwapRewardsSingleLoop,\n getConf,\n getReceipts,\n getSuiClient,\n loopingPoolCoinMap,\n poolInfo,\n} from \"../index.js\";\nimport { PoolName, Receipt } from \"../common/types.js\";\nimport { AlphalendClient } from \"@alphafi/alphalend-sdk\";\nimport { getCoinObject } from \"./bluefin.js\";\n\nexport async function alphalendLoopingDeposit(\n poolName: PoolName,\n amount: string,\n options: { address: string },\n) {\n let txb = new Transaction();\n\n if (poolName === \"ALPHALEND-LOOP-SUI-STSUI\") {\n txb = await alphalendSuiStsuiLoopDepositTx(amount, options);\n }\n return txb;\n}\nexport async function alphalendLoopingWithdraw(\n poolName: PoolName,\n xTokens: string,\n options: { address: string },\n) {\n let txb = new Transaction();\n\n if (poolName === \"ALPHALEND-LOOP-SUI-STSUI\") {\n txb = await alphalendSuiStsuiLoopWithdrawTx(xTokens, options);\n }\n return txb;\n}\nexport const alphalendClient = new AlphalendClient(\"mainnet\", getSuiClient());\nexport async function alphalendSuiStsuiLoopDepositTx(\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const txb = new Transaction();\n const poolName = \"ALPHALEND-LOOP-SUI-STSUI\";\n const poolData = poolInfo[poolName];\n\n await alphalendClient.updatePrices(txb, [\n coinsList[\"STSUI\"].type,\n \"0x2::sui::SUI\",\n ]);\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const [depositCoin] = txb.splitCoins(txb.gas, [amount]);\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_one_swap`,\n typeArguments: [coinsList[\"ALPHA\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(bluefinPoolMap[`ALPHA-STSUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap_v2`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_v2`,\n typeArguments: [coinsList[\"BLUE\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`BLUE-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n\n return txb;\n}\n\nexport async function alphalendSingleLoopDeposit(\n poolName: PoolName,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const txb = new Transaction();\n const poolData = poolInfo[poolName];\n\n const coinName = loopingPoolCoinMap[poolName].supplyCoin;\n\n await alphalendClient.updatePrices(txb, [coinsList[coinName].type]);\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n let totalCoin: any;\n if (coinName === \"SUI\") {\n totalCoin = txb.gas;\n } else {\n totalCoin = await getCoinObject(coinsList[coinName].type, address, txb);\n }\n const [depositCoin] = txb.splitCoins(totalCoin, [amount]);\n await collectAndSwapRewardsSingleLoop(poolName, txb);\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_alphalend_single_loop_pool::user_deposit`,\n typeArguments: [coinsList[coinName].type],\n arguments: [\n txb.object(C.ALPHA_ALPHALEND_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([totalCoin], address);\n return txb;\n}\n\nexport async function alphalendSuiStsuiLoopWithdrawTx(\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const txb = new Transaction();\n const poolName = \"ALPHALEND-LOOP-SUI-STSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n const alphaReceipt: Receipt[] = await getReceipts(\"ALPHA\", address, true);\n\n await alphalendClient.updatePrices(txb, [\n coinsList[\"STSUI\"].type,\n \"0x2::sui::SUI\",\n ]);\n if (receipt.length > 0) {\n let alpha_receipt: any;\n if (alphaReceipt.length == 0) {\n [alpha_receipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n } else {\n [alpha_receipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [alphaReceipt[0].content.type],\n arguments: [txb.object(alphaReceipt[0].objectId)],\n });\n }\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_one_swap`,\n typeArguments: [coinsList[\"ALPHA\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(bluefinPoolMap[`ALPHA-STSUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap_v2`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_v2`,\n typeArguments: [coinsList[\"BLUE\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`BLUE-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n const [stsui_coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"SUI\"].type}>`],\n arguments: [stsui_coin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ALPHALEND-LOOP-SUI-STSUI Receipt`);\n }\n\n return txb;\n}\nexport async function alphalendSingleLoopWithdraw(\n poolName: PoolName,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const txb = new Transaction();\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n const alphaReceipt: Receipt[] = await getReceipts(\"ALPHA\", address, true);\n\n const coinName = loopingPoolCoinMap[poolName].supplyCoin;\n\n await alphalendClient.updatePrices(txb, [coinsList[coinName].type]);\n if (receipt.length > 0) {\n let alpha_receipt: any;\n if (alphaReceipt.length == 0) {\n [alpha_receipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n } else {\n [alpha_receipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [alphaReceipt[0].content.type],\n arguments: [txb.object(alphaReceipt[0].objectId)],\n });\n }\n await collectAndSwapRewardsSingleLoop(poolName, txb);\n const [coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_alphalend_single_loop_pool::user_withdraw`,\n typeArguments: [coinsList[coinName].type],\n arguments: [\n txb.object(C.ALPHA_ALPHALEND_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin], address);\n } else {\n throw new Error(`No ALPHALEND-LOOP-SUI-STSUI Receipt`);\n }\n\n return txb;\n}\n"]}
1
+ {"version":3,"file":"alphalend.js","sourceRoot":"","sources":["../../../src/transactions/alphalend.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction } from \"@mysten/sui/transactions\";\nimport {\n bluefinPoolMap,\n cetusPoolMap,\n coinsList,\n collectAndSwapRewardsSingleLoop,\n getConf,\n getReceipts,\n getSuiClient,\n loopingPoolCoinMap,\n poolInfo,\n} from \"../index.js\";\nimport { PoolName, Receipt } from \"../common/types.js\";\nimport { AlphalendClient } from \"@alphafi/alphalend-sdk\";\nimport { getCoinObject } from \"./bluefin.js\";\n\nexport async function alphalendLoopingDeposit(\n poolName: PoolName,\n amount: string,\n options: { address: string },\n) {\n let txb = new Transaction();\n\n if (poolName === \"ALPHALEND-LOOP-SUI-STSUI\") {\n txb = await alphalendSuiStsuiLoopDepositTx(amount, options);\n }\n return txb;\n}\nexport async function alphalendLoopingWithdraw(\n poolName: PoolName,\n xTokens: string,\n options: { address: string },\n) {\n let txb = new Transaction();\n\n if (poolName === \"ALPHALEND-LOOP-SUI-STSUI\") {\n txb = await alphalendSuiStsuiLoopWithdrawTx(xTokens, options);\n }\n return txb;\n}\nexport const alphalendClient = new AlphalendClient(\"mainnet\", getSuiClient());\nexport async function alphalendSuiStsuiLoopDepositTx(\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const txb = new Transaction();\n const poolName = \"ALPHALEND-LOOP-SUI-STSUI\";\n const poolData = poolInfo[poolName];\n\n await alphalendClient.updatePrices(txb, [\n coinsList[\"STSUI\"].type,\n \"0x2::sui::SUI\",\n ]);\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n const [depositCoin] = txb.splitCoins(txb.gas, [amount]);\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_one_swap`,\n typeArguments: [coinsList[\"ALPHA\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(bluefinPoolMap[`ALPHA-STSUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap_v2`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_v2`,\n typeArguments: [coinsList[\"BLUE\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`BLUE-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_deposit_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n\n return txb;\n}\n\nexport async function alphalendSingleLoopDeposit(\n poolName: PoolName,\n amount: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const txb = new Transaction();\n const poolData = poolInfo[poolName];\n\n const coinName = loopingPoolCoinMap[poolName].supplyCoin;\n\n await alphalendClient.updatePrices(txb, [coinsList[coinName].type]);\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolData.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n let totalCoin: any;\n if (coinName === \"SUI\") {\n totalCoin = txb.gas;\n } else {\n totalCoin = await getCoinObject(coinsList[coinName].type, address, txb);\n }\n const [depositCoin] = txb.splitCoins(totalCoin, [amount]);\n await collectAndSwapRewardsSingleLoop(poolName, txb);\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_alphalend_single_loop_pool::user_deposit`,\n typeArguments: [coinsList[coinName].type],\n arguments: [\n txb.object(C.ALPHA_ALPHALEND_VERSION),\n txb.object(C.VERSION),\n someReceipt,\n txb.object(poolData.poolId),\n depositCoin,\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([totalCoin], address);\n return txb;\n}\n\nexport async function alphalendSuiStsuiLoopWithdrawTx(\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const txb = new Transaction();\n const poolName = \"ALPHALEND-LOOP-SUI-STSUI\";\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n await alphalendClient.updatePrices(txb, [\n coinsList[\"STSUI\"].type,\n \"0x2::sui::SUI\",\n ]);\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_one_swap`,\n typeArguments: [coinsList[\"ALPHA\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(bluefinPoolMap[`ALPHA-STSUI`]),\n txb.object(C.BLUEFIN_GLOBAL_CONFIG),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_no_swap_v2`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::collect_v3_rewards_with_two_swaps_v2`,\n typeArguments: [coinsList[\"BLUE\"].type],\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(poolData.investorId),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(cetusPoolMap[`BLUE-SUI`]),\n txb.object(C.CETUS_GLOBAL_CONFIG_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n const [stsui_coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_navi_sui_stsui_pool::user_withdraw_v3`,\n arguments: [\n txb.object(C.ALPHA_5_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.LST_INFO),\n txb.object(C.SUI_SYSTEM_STATE),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `0x2::transfer::public_transfer`,\n typeArguments: [`0x2::coin::Coin<${coinsList[\"SUI\"].type}>`],\n arguments: [stsui_coin, txb.pure.address(address)],\n });\n } else {\n throw new Error(`No ALPHALEND-LOOP-SUI-STSUI Receipt`);\n }\n\n return txb;\n}\nexport async function alphalendSingleLoopWithdraw(\n poolName: PoolName,\n xTokens: string,\n options: { address: string },\n): Promise<Transaction> {\n const C = getConf();\n const address = options.address;\n const txb = new Transaction();\n const poolData = poolInfo[poolName];\n\n const receipt: Receipt[] = await getReceipts(\n poolName as PoolName,\n address,\n true,\n );\n\n const coinName = loopingPoolCoinMap[poolName].supplyCoin;\n\n await alphalendClient.updatePrices(txb, [coinsList[coinName].type]);\n if (receipt.length > 0) {\n let alpha_receipt = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [C.ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n await collectAndSwapRewardsSingleLoop(poolName, txb);\n const [coin] = txb.moveCall({\n target: `${poolData.packageId}::alphafi_alphalend_single_loop_pool::user_withdraw`,\n typeArguments: [coinsList[coinName].type],\n arguments: [\n txb.object(C.ALPHA_ALPHALEND_VERSION),\n txb.object(C.VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(C.ALPHA_POOL),\n txb.object(poolData.poolId),\n txb.pure.u64(xTokens),\n txb.object(poolData.investorId),\n txb.object(C.ALPHA_DISTRIBUTOR),\n txb.object(C.LENDING_PROTOCOL_ID),\n txb.object(C.CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin], address);\n } else {\n throw new Error(`No ALPHALEND-LOOP-SUI-STSUI Receipt`);\n }\n\n return txb;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bluefin.d.ts","sourceRoot":"","sources":["../../../src/transactions/bluefin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAalC,OAAO,EAAE,QAAQ,EAAW,MAAM,oBAAoB,CAAC;AASvD,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAmLrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CA8OrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAsiBrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAqPrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAqTrB,CAAC;AACF,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,KAAK,WAAW,KACf,OAAO,CAAC,MAAM,GAAG,yBAAyB,GAAG,SAAS,CAuCxD,CAAC;AACF,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAmFrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAqJ7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA2O7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAif7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAkL7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAkP7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAwC7B,CAAC"}
1
+ {"version":3,"file":"bluefin.d.ts","sourceRoot":"","sources":["../../../src/transactions/bluefin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,yBAAyB,EAC1B,MAAM,0BAA0B,CAAC;AAalC,OAAO,EAAE,QAAQ,EAAW,MAAM,oBAAoB,CAAC;AASvD,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAmLrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CA8OrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAsiBrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAqPrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAqTrB,CAAC;AACF,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,KAAK,WAAW,KACf,OAAO,CAAC,MAAM,GAAG,yBAAyB,GAAG,SAAS,CA8CxD,CAAC;AACF,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,WAAW,OAAO,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5B,cAAa,WAAW,GAAG,SAAqB,KAC/C,OAAO,CAAC,WAAW,CAmFrB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBA0I7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAiO7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAue7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAwK7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAwO7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,UAAU,QAAQ,EAClB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,yBAwC7B,CAAC"}