@alphafi/alphafi-sdk 0.0.39 → 0.0.41

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 (322) hide show
  1. package/dist/cjs/adminFunctions.d.ts.map +1 -1
  2. package/dist/cjs/adminFunctions.js +9 -1
  3. package/dist/cjs/adminFunctions.js.map +1 -1
  4. package/dist/cjs/common/coins.d.ts.map +1 -1
  5. package/dist/cjs/common/coins.js +18 -0
  6. package/dist/cjs/common/coins.js.map +1 -1
  7. package/dist/cjs/common/constants.d.ts +288 -0
  8. package/dist/cjs/common/constants.d.ts.map +1 -1
  9. package/dist/cjs/common/constants.js +214 -8
  10. package/dist/cjs/common/constants.js.map +1 -1
  11. package/dist/cjs/common/maps.d.ts +1 -0
  12. package/dist/cjs/common/maps.d.ts.map +1 -1
  13. package/dist/cjs/common/maps.js +207 -14
  14. package/dist/cjs/common/maps.js.map +1 -1
  15. package/dist/cjs/common/types.d.ts +58 -5
  16. package/dist/cjs/common/types.d.ts.map +1 -1
  17. package/dist/cjs/common/types.js.map +1 -1
  18. package/dist/cjs/graphql/getMultiReceipts.d.ts.map +1 -1
  19. package/dist/cjs/graphql/getMultiReceipts.js +49 -36
  20. package/dist/cjs/graphql/getMultiReceipts.js.map +1 -1
  21. package/dist/cjs/index.d.ts +5 -9
  22. package/dist/cjs/index.d.ts.map +1 -1
  23. package/dist/cjs/index.js +17 -8
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -1
  26. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js +2 -3
  27. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -1
  28. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
  29. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js +6 -12
  30. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
  31. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +6 -3
  32. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  33. package/dist/cjs/sui-sdk/functions/getReceipts.js +42 -26
  34. package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -1
  35. package/dist/cjs/transactions/7k.d.ts +13 -0
  36. package/dist/cjs/transactions/7k.d.ts.map +1 -0
  37. package/dist/cjs/transactions/7k.js +46 -0
  38. package/dist/cjs/transactions/7k.js.map +1 -0
  39. package/dist/cjs/transactions/alpha.d.ts.map +1 -1
  40. package/dist/cjs/transactions/alpha.js +1 -0
  41. package/dist/cjs/transactions/alpha.js.map +1 -1
  42. package/dist/cjs/transactions/bluefin.d.ts +12 -0
  43. package/dist/cjs/transactions/bluefin.d.ts.map +1 -1
  44. package/dist/cjs/transactions/bluefin.js +937 -91
  45. package/dist/cjs/transactions/bluefin.js.map +1 -1
  46. package/dist/cjs/transactions/cetus.d.ts +0 -3
  47. package/dist/cjs/transactions/cetus.d.ts.map +1 -1
  48. package/dist/cjs/transactions/cetus.js +4 -63
  49. package/dist/cjs/transactions/cetus.js.map +1 -1
  50. package/dist/cjs/transactions/deposit.d.ts +3 -0
  51. package/dist/cjs/transactions/deposit.d.ts.map +1 -1
  52. package/dist/cjs/transactions/deposit.js +77 -1
  53. package/dist/cjs/transactions/deposit.js.map +1 -1
  54. package/dist/cjs/transactions/deposit1.d.ts +1 -0
  55. package/dist/cjs/transactions/deposit1.d.ts.map +1 -0
  56. package/dist/cjs/transactions/deposit1.js +86 -0
  57. package/dist/cjs/transactions/deposit1.js.map +1 -0
  58. package/dist/cjs/transactions/types.d.ts +14 -0
  59. package/dist/cjs/transactions/types.d.ts.map +1 -0
  60. package/dist/cjs/transactions/types.js +3 -0
  61. package/dist/cjs/transactions/types.js.map +1 -0
  62. package/dist/cjs/transactions/withdraw.d.ts.map +1 -1
  63. package/dist/cjs/transactions/withdraw.js +17 -2
  64. package/dist/cjs/transactions/withdraw.js.map +1 -1
  65. package/dist/cjs/transactions/zapDeposit.d.ts +9 -0
  66. package/dist/cjs/transactions/zapDeposit.d.ts.map +1 -1
  67. package/dist/cjs/transactions/zapDeposit.js +1117 -725
  68. package/dist/cjs/transactions/zapDeposit.js.map +1 -1
  69. package/dist/esm/adminFunctions.d.ts.map +1 -1
  70. package/dist/esm/adminFunctions.js +10 -2
  71. package/dist/esm/adminFunctions.js.map +1 -1
  72. package/dist/esm/common/coins.d.ts.map +1 -1
  73. package/dist/esm/common/coins.js +18 -0
  74. package/dist/esm/common/coins.js.map +1 -1
  75. package/dist/esm/common/constants.d.ts +288 -0
  76. package/dist/esm/common/constants.d.ts.map +1 -1
  77. package/dist/esm/common/constants.js +214 -8
  78. package/dist/esm/common/constants.js.map +1 -1
  79. package/dist/esm/common/maps.d.ts +1 -0
  80. package/dist/esm/common/maps.d.ts.map +1 -1
  81. package/dist/esm/common/maps.js +206 -13
  82. package/dist/esm/common/maps.js.map +1 -1
  83. package/dist/esm/common/types.d.ts +58 -5
  84. package/dist/esm/common/types.d.ts.map +1 -1
  85. package/dist/esm/common/types.js.map +1 -1
  86. package/dist/esm/graphql/getMultiReceipts.d.ts.map +1 -1
  87. package/dist/esm/graphql/getMultiReceipts.js +49 -36
  88. package/dist/esm/graphql/getMultiReceipts.js.map +1 -1
  89. package/dist/esm/index.d.ts +5 -9
  90. package/dist/esm/index.d.ts.map +1 -1
  91. package/dist/esm/index.js +5 -9
  92. package/dist/esm/index.js.map +1 -1
  93. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -1
  94. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js +2 -3
  95. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -1
  96. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
  97. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js +7 -13
  98. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
  99. package/dist/esm/sui-sdk/functions/getReceipts.d.ts +6 -3
  100. package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  101. package/dist/esm/sui-sdk/functions/getReceipts.js +43 -26
  102. package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -1
  103. package/dist/esm/transactions/7k.d.ts +13 -0
  104. package/dist/esm/transactions/7k.d.ts.map +1 -0
  105. package/dist/esm/transactions/7k.js +42 -0
  106. package/dist/esm/transactions/7k.js.map +1 -0
  107. package/dist/esm/transactions/alpha.d.ts.map +1 -1
  108. package/dist/esm/transactions/alpha.js +1 -0
  109. package/dist/esm/transactions/alpha.js.map +1 -1
  110. package/dist/esm/transactions/bluefin.d.ts +12 -0
  111. package/dist/esm/transactions/bluefin.d.ts.map +1 -1
  112. package/dist/esm/transactions/bluefin.js +928 -86
  113. package/dist/esm/transactions/bluefin.js.map +1 -1
  114. package/dist/esm/transactions/cetus.d.ts +0 -3
  115. package/dist/esm/transactions/cetus.d.ts.map +1 -1
  116. package/dist/esm/transactions/cetus.js +2 -57
  117. package/dist/esm/transactions/cetus.js.map +1 -1
  118. package/dist/esm/transactions/deposit.d.ts +3 -0
  119. package/dist/esm/transactions/deposit.d.ts.map +1 -1
  120. package/dist/esm/transactions/deposit.js +74 -2
  121. package/dist/esm/transactions/deposit.js.map +1 -1
  122. package/dist/esm/transactions/deposit1.d.ts +2 -0
  123. package/dist/esm/transactions/deposit1.d.ts.map +1 -0
  124. package/dist/esm/transactions/deposit1.js +86 -0
  125. package/dist/esm/transactions/deposit1.js.map +1 -0
  126. package/dist/esm/transactions/types.d.ts +14 -0
  127. package/dist/esm/transactions/types.d.ts.map +1 -0
  128. package/dist/esm/transactions/types.js +2 -0
  129. package/dist/esm/transactions/types.js.map +1 -0
  130. package/dist/esm/transactions/withdraw.d.ts.map +1 -1
  131. package/dist/esm/transactions/withdraw.js +18 -3
  132. package/dist/esm/transactions/withdraw.js.map +1 -1
  133. package/dist/esm/transactions/zapDeposit.d.ts +9 -1
  134. package/dist/esm/transactions/zapDeposit.d.ts.map +1 -1
  135. package/dist/esm/transactions/zapDeposit.js +1113 -726
  136. package/dist/esm/transactions/zapDeposit.js.map +1 -1
  137. package/docs/assets/highlight.css +78 -0
  138. package/docs/assets/icons.js +18 -0
  139. package/docs/assets/icons.svg +1 -0
  140. package/docs/assets/main.js +60 -0
  141. package/docs/assets/navigation.js +1 -0
  142. package/docs/assets/search.js +1 -0
  143. package/docs/assets/style.css +1493 -0
  144. package/docs/functions/alphaLpBreakdown.html +1 -0
  145. package/docs/functions/cetusLpBreakdown.html +1 -0
  146. package/docs/functions/claimRewardTxb.html +1 -0
  147. package/docs/functions/coinAmountToXTokensDoubleAsset.html +1 -0
  148. package/docs/functions/coinAmountToXTokensSingleAsset.html +1 -0
  149. package/docs/functions/coinsInPool.html +1 -0
  150. package/docs/functions/collectRewards.html +1 -0
  151. package/docs/functions/deposit.html +1 -0
  152. package/docs/functions/depositDoubleAssetTxb.html +1 -0
  153. package/docs/functions/depositSingleAssetTxb.html +1 -0
  154. package/docs/functions/fetchAfterTransactionEvents.html +1 -0
  155. package/docs/functions/fetchAutoCompoundingEvents.html +1 -0
  156. package/docs/functions/fetchAutoCompoundingEventsGql.html +1 -0
  157. package/docs/functions/fetchCetusPools.html +1 -0
  158. package/docs/functions/fetchChainIdentifier.html +1 -0
  159. package/docs/functions/fetchCheckRatioEvents.html +1 -0
  160. package/docs/functions/fetchLiquidityChangeEvents.html +1 -0
  161. package/docs/functions/fetchMultiReceipts.html +1 -0
  162. package/docs/functions/fetchNftHolders.html +1 -0
  163. package/docs/functions/fetchPools.html +1 -0
  164. package/docs/functions/fetchPortfolioData.html +1 -0
  165. package/docs/functions/fetchProtocolData.html +1 -0
  166. package/docs/functions/fetchTVL.html +1 -0
  167. package/docs/functions/fetchUserVaultBalances.html +1 -0
  168. package/docs/functions/fetchUserVaults.html +1 -0
  169. package/docs/functions/fetchUserWalletData.html +1 -0
  170. package/docs/functions/fetchWithdrawV2Events.html +1 -0
  171. package/docs/functions/getAirdropShare.html +1 -0
  172. package/docs/functions/getAllDoubleAssetVaults.html +1 -0
  173. package/docs/functions/getAllSingleAssetVaults.html +1 -0
  174. package/docs/functions/getAllVaultBalances.html +1 -0
  175. package/docs/functions/getAllVaults.html +1 -0
  176. package/docs/functions/getAlphaUnlocks.html +1 -0
  177. package/docs/functions/getAlphaVaultBalance.html +1 -0
  178. package/docs/functions/getAmounts.html +1 -0
  179. package/docs/functions/getApr.html +1 -0
  180. package/docs/functions/getAprs.html +1 -0
  181. package/docs/functions/getApy.html +1 -0
  182. package/docs/functions/getApys.html +1 -0
  183. package/docs/functions/getCetusInvestorTicksMap.html +1 -0
  184. package/docs/functions/getCetusSqrtPriceMap.html +1 -0
  185. package/docs/functions/getCoinAmountsFromLiquidity.html +1 -0
  186. package/docs/functions/getConf.html +1 -0
  187. package/docs/functions/getCurrentTick.html +1 -0
  188. package/docs/functions/getDoubleAssetVaultBalance.html +1 -0
  189. package/docs/functions/getDoubleAssetVaults.html +1 -0
  190. package/docs/functions/getHoldersFromTransactions.html +1 -0
  191. package/docs/functions/getInvestor.html +1 -0
  192. package/docs/functions/getInvestorPoolMap.html +1 -0
  193. package/docs/functions/getLastAutoCompoundTime.html +1 -0
  194. package/docs/functions/getLatestPrices.html +1 -0
  195. package/docs/functions/getLiquidity.html +1 -0
  196. package/docs/functions/getMultiInvestor.html +1 -0
  197. package/docs/functions/getMultiLatestPrices.html +1 -0
  198. package/docs/functions/getMultiParentPool.html +1 -0
  199. package/docs/functions/getMultiPool.html +1 -0
  200. package/docs/functions/getMultiReceipts.html +1 -0
  201. package/docs/functions/getParentPool.html +1 -0
  202. package/docs/functions/getPool.html +1 -0
  203. package/docs/functions/getPoolExchangeRateMap.html +1 -0
  204. package/docs/functions/getPositionRange.html +1 -0
  205. package/docs/functions/getPositionTicks.html +1 -0
  206. package/docs/functions/getPriceToTick.html +1 -0
  207. package/docs/functions/getRebalanceHistories.html +1 -0
  208. package/docs/functions/getRebalanceHistory.html +1 -0
  209. package/docs/functions/getReceipts.html +1 -0
  210. package/docs/functions/getSingleAssetVaultBalance.html +1 -0
  211. package/docs/functions/getSingleAssetVaults.html +1 -0
  212. package/docs/functions/getSuiClient.html +3 -0
  213. package/docs/functions/getSuiNodeUrl.html +3 -0
  214. package/docs/functions/getTVLs.html +1 -0
  215. package/docs/functions/getTickToPrice.html +1 -0
  216. package/docs/functions/getUserTokensFromTransactions.html +1 -0
  217. package/docs/functions/getUserTokensInUsdFromTransactions.html +1 -0
  218. package/docs/functions/getVaultBalance.html +1 -0
  219. package/docs/functions/getVaultBalanceForActiveUsers.html +1 -0
  220. package/docs/functions/getVaults.html +1 -0
  221. package/docs/functions/getXTokenVaultBalanceForActiveUsers.html +1 -0
  222. package/docs/functions/getZapAmounts.html +1 -0
  223. package/docs/functions/lastAutocompoundTime.html +1 -0
  224. package/docs/functions/liquidityToTokens.html +1 -0
  225. package/docs/functions/multiLiquidityToTokens.html +1 -0
  226. package/docs/functions/multiTokensToUsd.html +1 -0
  227. package/docs/functions/multiXTokensToLiquidity.html +1 -0
  228. package/docs/functions/parseUserWalletData.html +1 -0
  229. package/docs/functions/setSuiClient.html +7 -0
  230. package/docs/functions/setSuiNodeUrl.html +5 -0
  231. package/docs/functions/withdraw.html +1 -0
  232. package/docs/functions/withdrawAlphaTxb.html +1 -0
  233. package/docs/functions/withdrawTxb.html +1 -0
  234. package/docs/functions/zapDepositTxb.html +1 -0
  235. package/docs/index.html +76 -0
  236. package/docs/interfaces/Coin.html +12 -0
  237. package/docs/interfaces/CoinPair.html +3 -0
  238. package/docs/interfaces/NaviVoloData.html +3 -0
  239. package/docs/interfaces/RebalanceHistoryType.html +9 -0
  240. package/docs/modules.html +177 -0
  241. package/docs/types/AfterTransactionEventNode.html +1 -0
  242. package/docs/types/Allocator.html +1 -0
  243. package/docs/types/AlphaFiDoubleAssetVault.html +1 -0
  244. package/docs/types/AlphaFiMultiVaultBalance.html +1 -0
  245. package/docs/types/AlphaFiSingleAssetVault.html +1 -0
  246. package/docs/types/AlphaFiVault.html +1 -0
  247. package/docs/types/AlphaFiVaultBalance.html +1 -0
  248. package/docs/types/AlphaPoolType.html +1 -0
  249. package/docs/types/AlphaReceipt.html +1 -0
  250. package/docs/types/AlphaReceiptFields.html +1 -0
  251. package/docs/types/AlphaVaultBalance.html +1 -0
  252. package/docs/types/AutoCompoundingEventNode.html +1 -0
  253. package/docs/types/BluefinInvestor.html +1 -0
  254. package/docs/types/BluefinPoolType.html +1 -0
  255. package/docs/types/BucketInvestor.html +1 -0
  256. package/docs/types/CetusInvestor.html +1 -0
  257. package/docs/types/CetusPoolType.html +1 -0
  258. package/docs/types/CetusSwapOptions.html +1 -0
  259. package/docs/types/CoinAmounts.html +1 -0
  260. package/docs/types/CoinName.html +1 -0
  261. package/docs/types/CoinType.html +1 -0
  262. package/docs/types/CommonInvestorFields.html +1 -0
  263. package/docs/types/CreatePoolOptions.html +1 -0
  264. package/docs/types/Distributor.html +1 -0
  265. package/docs/types/DoubleAssetMultiVaultBalance.html +1 -0
  266. package/docs/types/DoubleAssetPoolNames.html +1 -0
  267. package/docs/types/DoubleAssetTokenHoldings.html +1 -0
  268. package/docs/types/DoubleAssetVaultBalance.html +1 -0
  269. package/docs/types/GetHoldersParams.html +1 -0
  270. package/docs/types/GetTokenHoldingsParams.html +1 -0
  271. package/docs/types/GetUserTokensFromTransactionsParams.html +1 -0
  272. package/docs/types/GetUserTokensInUsdFromTransactionsParams.html +1 -0
  273. package/docs/types/GetVaultBalanceForActiveUsersParams.html +1 -0
  274. package/docs/types/GetVaultBalanceParams.html +1 -0
  275. package/docs/types/HoldingsObj.html +1 -0
  276. package/docs/types/Icon.html +1 -0
  277. package/docs/types/Investor.html +1 -0
  278. package/docs/types/LiquidityChangeEventNode.html +1 -0
  279. package/docs/types/LiquidityToTokensParams.html +1 -0
  280. package/docs/types/LiquidityToUsdParams.html +1 -0
  281. package/docs/types/LoopingDebt.html +1 -0
  282. package/docs/types/LpBreakdownType.html +1 -0
  283. package/docs/types/MemberPoolDataType.html +1 -0
  284. package/docs/types/MemberType.html +1 -0
  285. package/docs/types/MultiGetVaultBalancesParams.html +1 -0
  286. package/docs/types/NaviInvestor.html +1 -0
  287. package/docs/types/OtherReceiptFields.html +1 -0
  288. package/docs/types/PoolName.html +1 -0
  289. package/docs/types/PoolReceipt.html +1 -0
  290. package/docs/types/PoolType.html +1 -0
  291. package/docs/types/Receipt.html +1 -0
  292. package/docs/types/ReceiptGQL.html +1 -0
  293. package/docs/types/SingleAssetMultiVaultBalance.html +1 -0
  294. package/docs/types/SingleAssetPoolNames.html +1 -0
  295. package/docs/types/SingleAssetTokenHoldings.html +1 -0
  296. package/docs/types/SingleAssetVaultBalance.html +1 -0
  297. package/docs/types/SingleGetVaultBalancesParams.html +1 -0
  298. package/docs/types/StrategyType.html +1 -0
  299. package/docs/types/SuiNetwork.html +1 -0
  300. package/docs/types/SwapOptions.html +1 -0
  301. package/docs/types/TickSpacing.html +1 -0
  302. package/docs/types/TotalWeightType.html +1 -0
  303. package/docs/types/TransactionBlockType.html +1 -0
  304. package/docs/types/UserPoolLiquidity.html +1 -0
  305. package/docs/types/UserPoolTokenHoldings.html +1 -0
  306. package/docs/types/UserUsdHoldings.html +1 -0
  307. package/docs/types/VaultBalance.html +1 -0
  308. package/docs/types/WithdrawV2EventNode.html +1 -0
  309. package/docs/variables/bluefinPoolMap.html +1 -0
  310. package/docs/variables/cetusPoolMap.html +1 -0
  311. package/docs/variables/coinsList.html +1 -0
  312. package/docs/variables/defunctPoolsSet.html +1 -0
  313. package/docs/variables/doubleAssetPoolCoinMap.html +1 -0
  314. package/docs/variables/ignoredWalletsForDailyRevenue.html +1 -0
  315. package/docs/variables/loopingAccountAddresses.html +1 -0
  316. package/docs/variables/loopingPoolCoinMap.html +1 -0
  317. package/docs/variables/naviAssetMap.html +1 -0
  318. package/docs/variables/poolIdPoolNameMap.html +1 -0
  319. package/docs/variables/poolInfo.html +1 -0
  320. package/docs/variables/singleAssetPoolCoinMap.html +1 -0
  321. package/docs/variables/stableCoins.html +1 -0
  322. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"zapDeposit.js","sourceRoot":"","sources":["../../../src/transactions/zapDeposit.ts"],"names":[],"mappings":"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","sourcesContent":["// import {\n// Transaction,\n// TransactionObjectArgument,\n// } from \"@mysten/sui/transactions\";\n// import { CoinStruct } from \"@mysten/sui/client\";\n// import { coinsList } from \"../common/coins.js\";\n// import {\n// cetusPoolMap,\n// doubleAssetPoolCoinMap,\n// poolInfo,\n// } from \"../common/maps.js\";\n// import { CoinName, PoolName, Receipt, SwapOptions } from \"../common/types.js\";\n// import { getReceipts } from \"../sui-sdk/functions/getReceipts.js\";\n// import { getConf } from \"../common/constants.js\";\n// import { getSuiClient } from \"../sui-sdk/client.js\";\n// import BN from \"bn.js\";\n// import { PythPriceIdPair } from \"../common/pyth.js\";\n// import { getLatestPrices } from \"../utils/prices.js\";\n// import { getAmounts } from \"./cetus.js\";\n\n// export async function zapDepositTxb(\n// inputCoinName: CoinName,\n// inputCoinAmount: number,\n// poolName: PoolName,\n// slippage: number, // 0.01 --> 1%, 0.001 --> 0.1%\n// options: { address: string },\n// ): Promise<Transaction | undefined> {\n// let txb = new Transaction();\n// const suiClient = getSuiClient();\n// const address = options.address;\n// const coinTypeA = doubleAssetPoolCoinMap[poolName].coin1;\n// const coinTypeB = doubleAssetPoolCoinMap[poolName].coin2;\n// const swapObjectA = coinsList[coinTypeA];\n// const swapObjectB = coinsList[coinTypeB];\n// const inputObject = coinsList[inputCoinName];\n\n// let coin1, coin2;\n\n// const amounts = await getAmounts(poolName, true, \"100000001\");\n// if (amounts) {\n// const amount1 = Number(amounts[0]);\n// const amount2 = Number(amounts[1]);\n\n// const swapGateway = new SevenKGateway();\n// const swapOptions: SwapOptions = {\n// pair: {\n// coinA: swapObjectA,\n// coinB: swapObjectB,\n// },\n// senderAddress: address,\n// inAmount: new BN(amount1),\n// slippage: slippage,\n// };\n\n// const ratioQuote = await swapGateway.getQuote(swapOptions);\n// if (ratioQuote) {\n// const amount1InCoinType2 = Number(ratioQuote.returnAmountWithDecimal);\n// const totalAmount = amount2 + amount1InCoinType2;\n\n// const inputAmountToType1 = Math.floor(\n// (inputCoinAmount * amount1InCoinType2) / totalAmount,\n// );\n// const inputAmountToType2 = Math.floor(\n// (inputCoinAmount * amount2) / totalAmount,\n// );\n\n// let amountA, amountB;\n// const swapOptionsI2A = {\n// pair: {\n// coinA: inputObject,\n// coinB: swapObjectA,\n// },\n// senderAddress: address,\n// inAmount: new BN(inputAmountToType1),\n// slippage: slippage,\n// };\n// const swapOptionsI2B = {\n// pair: {\n// coinA: inputObject,\n// coinB: swapObjectB,\n// },\n// senderAddress: address,\n// inAmount: new BN(inputAmountToType2),\n// slippage: slippage,\n// };\n// if (inputCoinName === coinTypeA) {\n// const quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n// if (quoteResponse) {\n// amountB = quoteResponse.returnAmountWithDecimal;\n// const result = await swapGateway.getTransactionBlock(\n// swapOptionsI2B,\n// quoteResponse,\n// txb,\n// );\n// txb = result.tx;\n// if (result.coinOut) {\n// coin2 = result.coinOut;\n// }\n// }\n// amountA = inputAmountToType1.toString();\n// if (coinTypeA === \"SUI\") {\n// [coin1] = txb.splitCoins(txb.gas, [amountA]);\n// } else {\n// let currentCursor: string | null | undefined = null;\n// let coins1: CoinStruct[] = [];\n// do {\n// const response = await suiClient.getCoins({\n// owner: address,\n// coinType: coinsList[coinTypeA].type,\n// cursor: currentCursor,\n// });\n// coins1 = coins1.concat(response.data);\n// if (response.hasNextPage && response.nextCursor) {\n// currentCursor = response.nextCursor;\n// } else break;\n// } while (true);\n// [coin1] = txb.splitCoins(txb.object(coins1[0].coinObjectId), [0]);\n// txb.mergeCoins(\n// coin1,\n// coins1.map((c) => c.coinObjectId),\n// );\n// }\n// } else if (inputCoinName === coinTypeB) {\n// const quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n// if (quoteResponse) {\n// amountA = quoteResponse.returnAmountWithDecimal;\n// const result = await swapGateway.getTransactionBlock(\n// swapOptionsI2A,\n// quoteResponse,\n// txb,\n// );\n// txb = result.tx;\n// if (result.coinOut) {\n// coin1 = result.coinOut;\n// }\n// }\n// amountB = inputAmountToType2.toString();\n// if (coinTypeB === \"SUI\") {\n// [coin2] = txb.splitCoins(txb.gas, [amountB]);\n// } else {\n// let currentCursor: string | null | undefined = null;\n// let coins2: CoinStruct[] = [];\n// do {\n// const response = await suiClient.getCoins({\n// owner: address,\n// coinType: coinsList[coinTypeB].type,\n// cursor: currentCursor,\n// });\n// coins2 = coins2.concat(response.data);\n// if (response.hasNextPage && response.nextCursor) {\n// currentCursor = response.nextCursor;\n// } else break;\n// } while (true);\n// [coin2] = txb.splitCoins(txb.object(coins2[0].coinObjectId), [0]);\n// txb.mergeCoins(\n// coin2,\n// coins2.map((c) => c.coinObjectId),\n// );\n// }\n// } else {\n// let quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n// if (quoteResponse) {\n// amountA = quoteResponse.returnAmountWithDecimal;\n// const result = await swapGateway.getTransactionBlock(\n// swapOptionsI2A,\n// quoteResponse,\n// txb,\n// );\n// txb = result.tx;\n// if (result.coinOut) {\n// coin1 = result.coinOut;\n// }\n// }\n// quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n// if (quoteResponse) {\n// amountB = quoteResponse.returnAmountWithDecimal;\n// const result = await swapGateway.getTransactionBlock(\n// swapOptionsI2B,\n// quoteResponse,\n// txb,\n// );\n// txb = result.tx;\n// if (result.coinOut) {\n// coin2 = result.coinOut;\n// }\n// }\n// }\n\n// if (amountA && amountB) {\n// if (coin1 && coin2) {\n// // fee charge\n// const fee_address = getConf().FEE_ADDRESS;\n// const feePercentage = 0.05;\n// const amountAFee = ((Number(amountA) * feePercentage) / 100).toFixed(\n// 0,\n// );\n// const amountBFee = ((Number(amountB) * feePercentage) / 100).toFixed(\n// 0,\n// );\n// const [feeCoinA] = txb.splitCoins(coin1, [amountAFee]);\n// const [feeCoinB] = txb.splitCoins(coin2, [amountBFee]);\n// txb.transferObjects([feeCoinA, feeCoinB], fee_address);\n\n// if (\n// poolName === \"ALPHA-SUI\" ||\n// poolName === \"WUSDC-SUI\" ||\n// poolName === \"NAVX-SUI\" ||\n// poolName === \"USDC-SUI\" ||\n// poolName === \"BUCK-SUI\" ||\n// poolName === \"DEEP-SUI\" ||\n// poolName === \"FUD-SUI\"\n// ) {\n// txb = await depositCetusAlphaSuiTxb(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// } else if (poolName === \"CETUS-SUI\") {\n// txb = await depositCetusSuiTxb(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// } else if (poolName === \"BLUEFIN-SUI-USDC\") {\n// txb = await depositBluefinSuiFirstTxb(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// } else if (poolName === \"BLUEFIN-USDT-USDC\") {\n// txb = await depositBluefinType1Txb(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// } else {\n// txb = await depositCetus(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// }\n// }\n// }\n// txb.setGasBudget(100000000);\n// return txb;\n// }\n// }\n// return undefined;\n// }\n\n// const depositCetus = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const poolinfo = poolInfo[poolName];\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg !== undefined && coin2Arg !== undefined) {\n// const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n// let someReceipt: any;\n\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolInfo[poolName].receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// if (\n// poolName == \"WUSDC-WBTC\" ||\n// poolName == \"USDC-USDT\" ||\n// poolName == \"USDC-WUSDC\" ||\n// poolName == \"USDC-ETH\"\n// ) {\n// txb.moveCall({\n// target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool_base_a::user_deposit`,\n// typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n// arguments: [\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n// txb.object(cetusPoolMap[`${pool1}-SUI`]),\n// txb.object(cetusPoolMap[\"CETUS-SUI\"]),\n// txb.object(cetusPoolMap[poolName]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// } else {\n// txb.moveCall({\n// target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool::user_deposit`,\n// typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n// arguments: [\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n// txb.object(cetusPoolMap[`${pool2}-SUI`]),\n// txb.object(cetusPoolMap[\"CETUS-SUI\"]),\n// txb.object(cetusPoolMap[poolName]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// }\n\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n// return txb;\n// };\n\n// const depositCetusAlphaSuiTxb = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg != undefined && coin2Arg !== undefined) {\n// const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n// const poolinfo = poolInfo[poolName];\n// let someReceipt: any;\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolinfo.receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// txb.moveCall({\n// target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_sui_pool::user_deposit`,\n// typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n// arguments: [\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n// txb.object(cetusPoolMap[\"CETUS-SUI\"]),\n// txb.object(poolinfo.parentPoolId),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n\n// return txb;\n// };\n\n// const depositCetusSuiTxb = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg && coin2Arg) {\n// const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n// const poolinfo = poolInfo[poolName];\n// let someReceipt: any;\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolinfo.receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// txb.moveCall({\n// target: `${poolinfo.packageId}::alphafi_cetus_sui_pool::user_deposit`,\n// typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n// arguments: [\n// txb.object(getConf().ALPHA_2_VERSION),\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n// txb.object(cetusPoolMap[poolName]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n\n// return txb;\n// };\n\n// const depositBluefinSuiFirstTxb = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg && coin2Arg) {\n// const [depositCoinA] = txb.splitCoins(txb.gas, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n// const poolinfo = poolInfo[poolName];\n// let someReceipt: any;\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolinfo.receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// txb.moveCall({\n// target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit`,\n// typeArguments: [\n// coinsList[pool1].type,\n// coinsList[pool2].type,\n// coinsList[\"DEEP\"].type,\n// coinsList[\"SUI\"].type,\n// ],\n// arguments: [\n// txb.object(getConf().ALPHA_4_VERSION),\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\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_DEEP_SUI_POOL),\n// txb.object(cetusPoolMap[\"USDC-SUI\"]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n\n// return txb;\n// };\n\n// const depositBluefinType1Txb = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg && coin2Arg) {\n// const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n// const poolinfo = poolInfo[poolName];\n// let someReceipt: any;\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolinfo.receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// txb.moveCall({\n// target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,\n// typeArguments: [\n// coinsList[pool1].type,\n// coinsList[pool2].type,\n// coinsList[\"DEEP\"].type,\n// coinsList[\"SUI\"].type,\n// ],\n// arguments: [\n// txb.object(getConf().ALPHA_4_VERSION),\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\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_DEEP_SUI_POOL),\n// txb.object(cetusPoolMap[\"USDC-USDT\"]),\n// txb.object(cetusPoolMap[\"USDC-SUI\"]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n\n// return txb;\n// };\n\n// export async function getZapAmounts(\n// inputCoinAmount: number,\n// inputCoinName: CoinName,\n// poolName: PoolName,\n// slippage: number,\n// options: { address: string },\n// ignoreCache: boolean,\n// ): Promise<[string, string, string, string] | undefined> {\n// const address = options.address;\n// const coinTypeA = doubleAssetPoolCoinMap[poolName].coin1;\n// const coinTypeB = doubleAssetPoolCoinMap[poolName].coin2;\n// const swapObjectA = coinsList[coinTypeA];\n// const swapObjectB = coinsList[coinTypeB];\n// const inputObject = coinsList[inputCoinName];\n\n// const amounts = await getAmounts(poolName, true, \"100000001\");\n// if (amounts) {\n// const amount1 = Number(amounts[0]);\n// const amount2 = Number(amounts[1]);\n\n// const swapGateway = new SevenKGateway();\n// const swapOptions: SwapOptions = {\n// pair: {\n// coinA: swapObjectA,\n// coinB: swapObjectB,\n// },\n// senderAddress: address,\n// inAmount: new BN(amount1),\n// slippage: slippage,\n// };\n\n// const ratioQuote = await swapGateway.getQuote(swapOptions);\n// if (ratioQuote) {\n// const amount1InCoinType2 = Number(ratioQuote.returnAmountWithDecimal);\n// const totalAmount = amount2 + amount1InCoinType2;\n\n// const inputAmountToType1 = Math.floor(\n// (inputCoinAmount * amount1InCoinType2) / totalAmount,\n// );\n// const inputAmountToType2 = Math.floor(\n// (inputCoinAmount * amount2) / totalAmount,\n// );\n\n// let amountA, amountB;\n// const swapOptionsI2A = {\n// pair: {\n// coinA: inputObject,\n// coinB: swapObjectA,\n// },\n// senderAddress: address,\n// inAmount: new BN(inputAmountToType1),\n// slippage: slippage,\n// };\n// const swapOptionsI2B = {\n// pair: {\n// coinA: inputObject,\n// coinB: swapObjectB,\n// },\n// senderAddress: address,\n// inAmount: new BN(inputAmountToType2),\n// slippage: slippage,\n// };\n// if (inputCoinName === coinTypeA) {\n// const quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n// if (quoteResponse) {\n// amountB = quoteResponse.returnAmountWithDecimal;\n// }\n// amountA = inputAmountToType1.toString();\n// } else if (inputCoinName === coinTypeB) {\n// const quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n// if (quoteResponse) {\n// amountA = quoteResponse.returnAmountWithDecimal;\n// }\n// amountB = inputAmountToType2.toString();\n// } else {\n// let quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n// if (quoteResponse) {\n// amountA = quoteResponse.returnAmountWithDecimal;\n// }\n// quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n// if (quoteResponse) {\n// amountB = quoteResponse.returnAmountWithDecimal;\n// }\n// }\n\n// if (amountA && amountB) {\n// const [coin1Price, coin2Price] = await getLatestPrices(\n// [\n// `${swapObjectA.name}/USD` as PythPriceIdPair,\n// `${swapObjectB.name}/USD` as PythPriceIdPair,\n// ],\n// ignoreCache,\n// );\n// const coin1InUSD = Number(amountA) * Number(coin1Price);\n// const coin2InUSD = Number(amountB) * Number(coin2Price);\n// return [\n// amountA.toString(),\n// coin1InUSD.toString(),\n// amountB.toString(),\n// coin2InUSD.toString(),\n// ];\n// }\n// }\n// }\n// }\n"]}
1
+ {"version":3,"file":"zapDeposit.js","sourceRoot":"","sources":["../../../src/transactions/zapDeposit.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Transaction,\n TransactionObjectArgument,\n} from \"@mysten/sui/transactions\";\nimport BN from \"bn.js\";\nimport { CoinStruct } from \"@mysten/sui/client\";\nimport { CoinName, PoolName, SwapOptions } from \"../common/types.js\";\nimport { getSuiClient } from \"../sui-sdk/client.js\";\nimport {\n bluefinPoolMap,\n cetusPoolMap,\n doubleAssetPoolCoinMap,\n poolInfo,\n} from \"../common/maps.js\";\nimport { coinsList } from \"../common/coins.js\";\nimport { getAmounts } from \"./deposit.js\";\nimport { SevenKGateway } from \"./7k.js\";\nimport { getConf } from \"../common/constants.js\";\nimport { getReceipts } from \"../sui-sdk/functions/getReceipts.js\";\nimport { getLatestPrices } from \"../utils/prices.js\";\nimport { PythPriceIdPair } from \"../common/pyth.js\";\n\nexport async function zapDepositTxb(\n inputCoinName: CoinName,\n inputCoinAmount: number,\n poolName: PoolName,\n slippage: number, // 0.01 --> 1%, 0.001 --> 0.1%\n options: { address: string },\n): Promise<Transaction | undefined> {\n let txb = new Transaction();\n const suiClient = getSuiClient();\n const address = options.address;\n const coinTypeA = doubleAssetPoolCoinMap[poolName].coin1;\n const coinTypeB = doubleAssetPoolCoinMap[poolName].coin2;\n const swapObjectA = coinsList[coinTypeA];\n const swapObjectB = coinsList[coinTypeB];\n const inputObject = coinsList[inputCoinName];\n\n let coin1, coin2;\n\n const amounts = await getAmounts(poolName, true, \"100000001\");\n if (amounts) {\n const amount1 = Number(amounts[0]);\n const amount2 = Number(amounts[1]);\n\n const swapGateway = new SevenKGateway();\n const swapOptions: SwapOptions = {\n pair: {\n coinA: swapObjectA,\n coinB: swapObjectB,\n },\n senderAddress: address,\n inAmount: new BN(amount1),\n slippage: slippage,\n };\n\n const ratioQuote = await swapGateway.getQuote(swapOptions);\n if (ratioQuote) {\n const amount1InCoinType2 = Number(ratioQuote.returnAmountWithDecimal);\n const totalAmount = amount2 + amount1InCoinType2;\n\n const inputAmountToType1 = Math.floor(\n (inputCoinAmount * amount1InCoinType2) / totalAmount,\n );\n const inputAmountToType2 = Math.floor(\n (inputCoinAmount * amount2) / totalAmount,\n );\n\n let amountA, amountB;\n const swapOptionsI2A = {\n pair: {\n coinA: inputObject,\n coinB: swapObjectA,\n },\n senderAddress: address,\n inAmount: new BN(inputAmountToType1),\n slippage: slippage,\n };\n const swapOptionsI2B = {\n pair: {\n coinA: inputObject,\n coinB: swapObjectB,\n },\n senderAddress: address,\n inAmount: new BN(inputAmountToType2),\n slippage: slippage,\n };\n if (inputCoinName === coinTypeA) {\n const quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n if (quoteResponse) {\n amountB = quoteResponse.returnAmountWithDecimal;\n const result = await swapGateway.getTransactionBlock(\n swapOptionsI2B,\n quoteResponse,\n txb,\n );\n txb = result.tx;\n if (result.coinOut) {\n coin2 = result.coinOut;\n }\n }\n amountA = inputAmountToType1.toString();\n if (coinTypeA === \"SUI\") {\n [coin1] = txb.splitCoins(txb.gas, [amountA]);\n } else {\n let currentCursor: string | null | undefined = null;\n let coins1: CoinStruct[] = [];\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType: coinsList[coinTypeA].type,\n cursor: currentCursor,\n });\n coins1 = coins1.concat(response.data);\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else break;\n } while (true);\n [coin1] = txb.splitCoins(txb.object(coins1[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin1,\n coins1.map((c) => c.coinObjectId),\n );\n }\n } else if (inputCoinName === coinTypeB) {\n const quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n if (quoteResponse) {\n amountA = quoteResponse.returnAmountWithDecimal;\n const result = await swapGateway.getTransactionBlock(\n swapOptionsI2A,\n quoteResponse,\n txb,\n );\n txb = result.tx;\n if (result.coinOut) {\n coin1 = result.coinOut;\n }\n }\n amountB = inputAmountToType2.toString();\n if (coinTypeB === \"SUI\") {\n [coin2] = txb.splitCoins(txb.gas, [amountB]);\n } else {\n let currentCursor: string | null | undefined = null;\n let coins2: CoinStruct[] = [];\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType: coinsList[coinTypeB].type,\n cursor: currentCursor,\n });\n coins2 = coins2.concat(response.data);\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else break;\n } while (true);\n [coin2] = txb.splitCoins(txb.object(coins2[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin2,\n coins2.map((c) => c.coinObjectId),\n );\n }\n } else {\n let quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n if (quoteResponse) {\n amountA = quoteResponse.returnAmountWithDecimal;\n const result = await swapGateway.getTransactionBlock(\n swapOptionsI2A,\n quoteResponse,\n txb,\n );\n txb = result.tx;\n if (result.coinOut) {\n coin1 = result.coinOut;\n }\n }\n quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n if (quoteResponse) {\n amountB = quoteResponse.returnAmountWithDecimal;\n const result = await swapGateway.getTransactionBlock(\n swapOptionsI2B,\n quoteResponse,\n txb,\n );\n txb = result.tx;\n if (result.coinOut) {\n coin2 = result.coinOut;\n }\n }\n }\n\n if (amountA && amountB) {\n if (coin1 && coin2) {\n // fee charge\n const fee_address = getConf().FEE_ADDRESS;\n const feePercentage = 0.05;\n const amountAFee = ((Number(amountA) * feePercentage) / 100).toFixed(\n 0,\n );\n const amountBFee = ((Number(amountB) * feePercentage) / 100).toFixed(\n 0,\n );\n const [feeCoinA] = txb.splitCoins(coin1, [amountAFee]);\n const [feeCoinB] = txb.splitCoins(coin2, [amountBFee]);\n txb.transferObjects([feeCoinA, feeCoinB], fee_address);\n\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n if (poolInfo[poolName].parentProtocolName === \"CETUS\") {\n if (pool1 === \"CETUS\" && pool2 === \"SUI\") {\n txb = await depositCetusSuiTxb(\n amountA,\n amountB,\n poolName,\n { address },\n txb,\n coin1,\n coin2,\n );\n } else if (pool2 === \"SUI\") {\n txb = await depositCetusAlphaSuiTxb(\n amountA,\n amountB,\n poolName,\n { address },\n txb,\n coin1,\n coin2,\n );\n } else {\n txb = await depositCetus(\n amountA,\n amountB,\n poolName,\n { address },\n txb,\n coin1,\n coin2,\n );\n }\n } else if (poolInfo[poolName].parentProtocolName === \"BLUEFIN\") {\n if (\n poolName === \"BLUEFIN-NAVX-VSUI\" ||\n poolName === \"BLUEFIN-ALPHA-USDC\" ||\n poolName === \"BLUEFIN-BLUE-USDC\"\n ) {\n txb = await depositBluefinType2Txb(\n amountA,\n amountB,\n poolName,\n { address },\n txb,\n coin1,\n coin2,\n );\n } else if (pool1 === \"SUI\") {\n txb = await depositBluefinSuiFirstTxb(\n amountA,\n amountB,\n poolName,\n { address },\n txb,\n coin1,\n coin2,\n );\n } else if (pool2 === \"SUI\") {\n txb = await depositBluefinSuiSecondTxb(\n amountA,\n amountB,\n poolName,\n { address },\n txb,\n coin1,\n coin2,\n );\n } else if (pool1 === \"STSUI\") {\n txb = await depositBluefinStsuiTxb(\n amountA,\n amountB,\n poolName,\n { address },\n txb,\n coin1,\n coin2,\n );\n } else {\n txb = await depositBluefinType1Txb(\n amountA,\n amountB,\n poolName,\n { address },\n txb,\n coin1,\n coin2,\n );\n }\n }\n }\n }\n txb.setGasBudget(100000000);\n return txb;\n }\n }\n return undefined;\n}\n\nconst depositCetus = async (\n amountA: string,\n amountB: string,\n poolName: PoolName,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n coin1Arg: TransactionObjectArgument | undefined,\n coin2Arg: TransactionObjectArgument | undefined,\n): Promise<Transaction> => {\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const poolinfo = poolInfo[poolName];\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt = await getReceipts(poolName, address, true);\n\n amountA = (Number(amountA) * 0.999).toString();\n amountB = (Number(amountB) * 0.999).toString();\n let amounts = await getAmounts(poolName, true, amountA);\n if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n amounts = await getAmounts(poolName, false, amountB);\n }\n\n if (amounts && coin1Arg !== undefined && coin2Arg !== undefined) {\n const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n let someReceipt: any;\n\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolInfo[poolName].receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n if (\n poolName == \"WUSDC-WBTC\" ||\n poolName == \"USDC-USDT\" ||\n poolName == \"USDC-WUSDC\" ||\n poolName == \"USDC-ETH\"\n ) {\n txb.moveCall({\n target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool_base_a::user_deposit`,\n typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n arguments: [\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n txb.object(cetusPoolMap[`${pool1}-SUI`]),\n txb.object(cetusPoolMap[\"CETUS-SUI\"]),\n txb.object(cetusPoolMap[poolName]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else {\n txb.moveCall({\n target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool::user_deposit`,\n typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n arguments: [\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n txb.object(cetusPoolMap[`${pool2}-SUI`]),\n txb.object(cetusPoolMap[\"CETUS-SUI\"]),\n txb.object(cetusPoolMap[poolName]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n txb.transferObjects([coin1Arg, coin2Arg], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n return txb;\n};\n\nconst depositCetusAlphaSuiTxb = async (\n amountA: string,\n amountB: string,\n poolName: PoolName,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n coin1Arg: TransactionObjectArgument | undefined,\n coin2Arg: TransactionObjectArgument | undefined,\n): Promise<Transaction> => {\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt = await getReceipts(poolName, address, true);\n\n amountA = (Number(amountA) * 0.999).toString();\n amountB = (Number(amountB) * 0.999).toString();\n let amounts = await getAmounts(poolName, true, amountA);\n if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n amounts = await getAmounts(poolName, false, amountB);\n }\n\n if (amounts && coin1Arg != undefined && coin2Arg !== undefined) {\n const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n const poolinfo = poolInfo[poolName];\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolinfo.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n txb.moveCall({\n target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_sui_pool::user_deposit`,\n typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n arguments: [\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n txb.object(cetusPoolMap[\"CETUS-SUI\"]),\n txb.object(poolinfo.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin1Arg, coin2Arg], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n\n return txb;\n};\n\nconst depositCetusSuiTxb = async (\n amountA: string,\n amountB: string,\n poolName: PoolName,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n coin1Arg: TransactionObjectArgument | undefined,\n coin2Arg: TransactionObjectArgument | undefined,\n): Promise<Transaction> => {\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt = await getReceipts(poolName, address, true);\n\n amountA = (Number(amountA) * 0.999).toString();\n amountB = (Number(amountB) * 0.999).toString();\n let amounts = await getAmounts(poolName, true, amountA);\n if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n amounts = await getAmounts(poolName, false, amountB);\n }\n\n if (amounts && coin1Arg && coin2Arg) {\n const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n const poolinfo = poolInfo[poolName];\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolinfo.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_cetus_sui_pool::user_deposit`,\n typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n arguments: [\n txb.object(getConf().ALPHA_2_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n txb.object(cetusPoolMap[poolName]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n txb.transferObjects([coin1Arg, coin2Arg], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n\n return txb;\n};\n\nconst depositBluefinSuiFirstTxb = async (\n amountA: string,\n amountB: string,\n poolName: PoolName,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n coin1Arg: TransactionObjectArgument | undefined,\n coin2Arg: TransactionObjectArgument | undefined,\n): Promise<Transaction> => {\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt = await getReceipts(poolName, address, true);\n\n amountA = (Number(amountA) * 0.999).toString();\n amountB = (Number(amountB) * 0.999).toString();\n let amounts = await getAmounts(poolName, true, amountA);\n if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n amounts = await getAmounts(poolName, false, amountB);\n }\n\n if (amounts && coin1Arg && coin2Arg) {\n const [depositCoinA] = txb.splitCoins(txb.gas, [amounts[0]]);\n const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n const poolinfo = poolInfo[poolName];\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolinfo.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n if (poolName === \"BLUEFIN-SUI-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\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-SUI-BUCK\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SUI_BUCK_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"BUCK-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-SUI-AUSD\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SUI_AUSD_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"AUSD-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n txb.transferObjects([coin1Arg, coin2Arg], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n\n return txb;\n};\n\nconst depositBluefinType1Txb = async (\n amountA: string,\n amountB: string,\n poolName: PoolName,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n coin1Arg: TransactionObjectArgument | undefined,\n coin2Arg: TransactionObjectArgument | undefined,\n): Promise<Transaction> => {\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt = await getReceipts(poolName, address, true);\n\n amountA = (Number(amountA) * 0.999).toString();\n amountB = (Number(amountB) * 0.999).toString();\n let amounts = await getAmounts(poolName, true, amountA);\n if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n amounts = await getAmounts(poolName, false, amountB);\n }\n\n if (amounts && coin1Arg && coin2Arg) {\n const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n const poolinfo = poolInfo[poolName];\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolinfo.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n if (poolName === \"BLUEFIN-USDT-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\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-AUSD-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_AUSD_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"USDC-AUSD\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-WBTC-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_WBTC_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"USDC-WBTC\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-SEND-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SEND_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"USDC-SEND\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n txb.transferObjects([coin1Arg, coin2Arg], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n\n return txb;\n};\n\nconst depositBluefinType2Txb = async (\n amountA: string,\n amountB: string,\n poolName: PoolName,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n coin1Arg: TransactionObjectArgument | undefined,\n coin2Arg: TransactionObjectArgument | undefined,\n): Promise<Transaction> => {\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt = await getReceipts(poolName, address, true);\n\n amountA = (Number(amountA) * 0.999).toString();\n amountB = (Number(amountB) * 0.999).toString();\n let amounts = await getAmounts(poolName, true, amountA);\n if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n amounts = await getAmounts(poolName, false, amountB);\n }\n if (amounts && coin1Arg && coin2Arg) {\n const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n const poolinfo = poolInfo[poolName];\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolinfo.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n if (poolName === \"BLUEFIN-ALPHA-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_ALPHA_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"ALPHA-USDC\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-NAVX-VSUI\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_NAVX_VSUI_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"NAVX-VSUI\"]),\n txb.object(cetusPoolMap[\"VSUI-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-BLUE-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_2_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_BLUE_USDC_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"BLUE-USDC\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n txb.transferObjects([coin1Arg, coin2Arg], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n\n return txb;\n};\n\nconst depositBluefinSuiSecondTxb = async (\n amountA: string,\n amountB: string,\n poolName: PoolName,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n coin1Arg: TransactionObjectArgument | undefined,\n coin2Arg: TransactionObjectArgument | undefined,\n): Promise<Transaction> => {\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt = await getReceipts(poolName, address, true);\n\n amountA = (Number(amountA) * 0.999).toString();\n amountB = (Number(amountB) * 0.999).toString();\n let amounts = await getAmounts(poolName, true, amountA);\n if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n amounts = await getAmounts(poolName, false, amountB);\n }\n if (amounts && coin1Arg && coin2Arg) {\n const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n const poolinfo = poolInfo[poolName];\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolinfo.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n if (poolName === \"BLUEFIN-BLUE-SUI\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"BLUE-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-WBTC-SUI\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_WBTC_SUI_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),\n txb.object(cetusPoolMap[\"WBTC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-DEEP-SUI\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_second_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL),\n txb.object(cetusPoolMap[\"DEEP-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n txb.transferObjects([coin1Arg, coin2Arg], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n return txb;\n};\n\nconst depositBluefinStsuiTxb = async (\n amountA: string,\n amountB: string,\n poolName: PoolName,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n coin1Arg: TransactionObjectArgument | undefined,\n coin2Arg: TransactionObjectArgument | undefined,\n): Promise<Transaction> => {\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt = await getReceipts(poolName, address, true);\n\n amountA = (Number(amountA) * 0.999).toString();\n amountB = (Number(amountB) * 0.999).toString();\n let amounts = await getAmounts(poolName, true, amountA);\n if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n amounts = await getAmounts(poolName, false, amountB);\n }\n if (amounts && coin1Arg && coin2Arg) {\n const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n const poolinfo = poolInfo[poolName];\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolinfo.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n if (poolName === \"BLUEFIN-STSUI-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_stsui_first_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"BLUE\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_STSUI_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_STSUI_USDC_POOL),\n txb.object(getConf().BLUEFIN_BLUE_SUI_POOL_AUTOCOMPOUND),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(bluefinPoolMap[\"SUI-USDC\"]),\n txb.object(getConf().LST_INFO),\n txb.object(getConf().SUI_SYSTEM_STATE),\n txb.pure.bool(true),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n txb.transferObjects([coin1Arg, coin2Arg], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n\n return txb;\n};\n\nexport async function getZapAmounts(\n inputCoinAmount: number,\n inputCoinName: CoinName,\n poolName: PoolName,\n slippage: number,\n options: { address: string },\n ignoreCache: boolean,\n): Promise<[string, string, string, string] | undefined> {\n const address = options.address;\n const coinTypeA = doubleAssetPoolCoinMap[poolName].coin1;\n const coinTypeB = doubleAssetPoolCoinMap[poolName].coin2;\n const swapObjectA = coinsList[coinTypeA];\n const swapObjectB = coinsList[coinTypeB];\n const inputObject = coinsList[inputCoinName];\n\n const amounts = await getAmounts(poolName, true, \"100000001\");\n if (amounts) {\n const amount1 = Number(amounts[0]);\n const amount2 = Number(amounts[1]);\n\n const swapGateway = new SevenKGateway();\n const swapOptions: SwapOptions = {\n pair: {\n coinA: swapObjectA,\n coinB: swapObjectB,\n },\n senderAddress: address,\n inAmount: new BN(amount1),\n slippage: slippage,\n };\n\n const ratioQuote = await swapGateway.getQuote(swapOptions);\n if (ratioQuote) {\n const amount1InCoinType2 = Number(ratioQuote.returnAmountWithDecimal);\n const totalAmount = amount2 + amount1InCoinType2;\n\n const inputAmountToType1 = Math.floor(\n (inputCoinAmount * amount1InCoinType2) / totalAmount,\n );\n const inputAmountToType2 = Math.floor(\n (inputCoinAmount * amount2) / totalAmount,\n );\n\n let amountA, amountB;\n const swapOptionsI2A = {\n pair: {\n coinA: inputObject,\n coinB: swapObjectA,\n },\n senderAddress: address,\n inAmount: new BN(inputAmountToType1),\n slippage: slippage,\n };\n const swapOptionsI2B = {\n pair: {\n coinA: inputObject,\n coinB: swapObjectB,\n },\n senderAddress: address,\n inAmount: new BN(inputAmountToType2),\n slippage: slippage,\n };\n if (inputCoinName === coinTypeA) {\n const quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n if (quoteResponse) {\n amountB = quoteResponse.returnAmountWithDecimal;\n }\n amountA = inputAmountToType1.toString();\n } else if (inputCoinName === coinTypeB) {\n const quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n if (quoteResponse) {\n amountA = quoteResponse.returnAmountWithDecimal;\n }\n amountB = inputAmountToType2.toString();\n } else {\n let quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n if (quoteResponse) {\n amountA = quoteResponse.returnAmountWithDecimal;\n }\n quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n if (quoteResponse) {\n amountB = quoteResponse.returnAmountWithDecimal;\n }\n }\n\n if (amountA && amountB) {\n const [coin1Price, coin2Price] = await getLatestPrices(\n [\n `${swapObjectA.name}/USD` as PythPriceIdPair,\n `${swapObjectB.name}/USD` as PythPriceIdPair,\n ],\n ignoreCache,\n );\n const coin1InUSD = Number(amountA) * Number(coin1Price);\n const coin2InUSD = Number(amountB) * Number(coin2Price);\n return [\n amountA.toString(),\n coin1InUSD.toString(),\n amountB.toString(),\n coin2InUSD.toString(),\n ];\n }\n }\n }\n}\n\n// export async function zapWithdraw(\n// amount: string,\n// poolName: PoolName,\n// outputCoinName: string,\n// options: { suiClient: SuiClient; address: string },\n// ) {\n// const suiClient = options.suiClient;\n// const address = options.address;\n// const txb = new Transaction();\n\n// const pool1 = doubleAssetPoolCoinMap[poolName].pool1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].pool2;\n// }\n\n//calculate ratio of both coins in terms of coin-type 2\n//convert outputAmount in coinType2\n//then calculate coinType1 and coinType2 based on previous ratio\n//convert those amounts to liquidity\n//pass that liquidity into cetusWithdrawTxb\n//swap the amount withdrawn to outputAmountType.\n"]}
@@ -0,0 +1,78 @@
1
+ :root {
2
+ --light-hl-0: #795E26;
3
+ --dark-hl-0: #DCDCAA;
4
+ --light-hl-1: #000000;
5
+ --dark-hl-1: #D4D4D4;
6
+ --light-hl-2: #A31515;
7
+ --dark-hl-2: #CE9178;
8
+ --light-hl-3: #AF00DB;
9
+ --dark-hl-3: #C586C0;
10
+ --light-hl-4: #001080;
11
+ --dark-hl-4: #9CDCFE;
12
+ --light-hl-5: #0000FF;
13
+ --dark-hl-5: #569CD6;
14
+ --light-hl-6: #0070C1;
15
+ --dark-hl-6: #4FC1FF;
16
+ --light-hl-7: #267F99;
17
+ --dark-hl-7: #4EC9B0;
18
+ --light-code-background: #FFFFFF;
19
+ --dark-code-background: #1E1E1E;
20
+ }
21
+
22
+ @media (prefers-color-scheme: light) { :root {
23
+ --hl-0: var(--light-hl-0);
24
+ --hl-1: var(--light-hl-1);
25
+ --hl-2: var(--light-hl-2);
26
+ --hl-3: var(--light-hl-3);
27
+ --hl-4: var(--light-hl-4);
28
+ --hl-5: var(--light-hl-5);
29
+ --hl-6: var(--light-hl-6);
30
+ --hl-7: var(--light-hl-7);
31
+ --code-background: var(--light-code-background);
32
+ } }
33
+
34
+ @media (prefers-color-scheme: dark) { :root {
35
+ --hl-0: var(--dark-hl-0);
36
+ --hl-1: var(--dark-hl-1);
37
+ --hl-2: var(--dark-hl-2);
38
+ --hl-3: var(--dark-hl-3);
39
+ --hl-4: var(--dark-hl-4);
40
+ --hl-5: var(--dark-hl-5);
41
+ --hl-6: var(--dark-hl-6);
42
+ --hl-7: var(--dark-hl-7);
43
+ --code-background: var(--dark-code-background);
44
+ } }
45
+
46
+ :root[data-theme='light'] {
47
+ --hl-0: var(--light-hl-0);
48
+ --hl-1: var(--light-hl-1);
49
+ --hl-2: var(--light-hl-2);
50
+ --hl-3: var(--light-hl-3);
51
+ --hl-4: var(--light-hl-4);
52
+ --hl-5: var(--light-hl-5);
53
+ --hl-6: var(--light-hl-6);
54
+ --hl-7: var(--light-hl-7);
55
+ --code-background: var(--light-code-background);
56
+ }
57
+
58
+ :root[data-theme='dark'] {
59
+ --hl-0: var(--dark-hl-0);
60
+ --hl-1: var(--dark-hl-1);
61
+ --hl-2: var(--dark-hl-2);
62
+ --hl-3: var(--dark-hl-3);
63
+ --hl-4: var(--dark-hl-4);
64
+ --hl-5: var(--dark-hl-5);
65
+ --hl-6: var(--dark-hl-6);
66
+ --hl-7: var(--dark-hl-7);
67
+ --code-background: var(--dark-code-background);
68
+ }
69
+
70
+ .hl-0 { color: var(--hl-0); }
71
+ .hl-1 { color: var(--hl-1); }
72
+ .hl-2 { color: var(--hl-2); }
73
+ .hl-3 { color: var(--hl-3); }
74
+ .hl-4 { color: var(--hl-4); }
75
+ .hl-5 { color: var(--hl-5); }
76
+ .hl-6 { color: var(--hl-6); }
77
+ .hl-7 { color: var(--hl-7); }
78
+ pre, code { background: var(--code-background); }
@@ -0,0 +1,18 @@
1
+ (function() {
2
+ addIcons();
3
+ function addIcons() {
4
+ if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons);
5
+ const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg"));
6
+ svg.innerHTML = `<g id="icon-1" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-2" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">N</text></g><g id="icon-8" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">E</text></g><g id="icon-16" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-32" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">V</text></g><g id="icon-64" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-128" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-256" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">I</text></g><g id="icon-512" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-1024" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-2048" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-method)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4096" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-8192" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-16384" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-32768" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-65536" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-131072" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-262144" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-524288" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-1048576" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-2097152" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-4194304" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-reference)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">R</text></g><g id="icon-8388608" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="6,5 6,19 18,19, 18,10 13,5"></polygon><line x1="9" y1="9" x2="13" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-folder" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="5,5 10,5 12,8 19,8 19,18 5,18"></polygon></g></g><g id="icon-chevronDown" class="tsd-no-select"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-icon-text)"></path></g><g id="icon-chevronSmall" class="tsd-no-select"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-icon-text)"></path></g><g id="icon-checkbox" class="tsd-no-select"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu" class="tsd-no-select"><rect x="1" y="3" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-icon-text)"></rect></g><g id="icon-search" class="tsd-no-select"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-icon-text)"></path></g><g id="icon-anchor" class="tsd-no-select"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g>`;
7
+ svg.style.display = "none";
8
+ if (location.protocol === "file:") updateUseElements();
9
+ }
10
+
11
+ function updateUseElements() {
12
+ document.querySelectorAll("use").forEach(el => {
13
+ if (el.getAttribute("href").includes("#icon-")) {
14
+ el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#"));
15
+ }
16
+ });
17
+ }
18
+ })()
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg"><g id="icon-1" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-2" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">N</text></g><g id="icon-8" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">E</text></g><g id="icon-16" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-32" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">V</text></g><g id="icon-64" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-128" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-256" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">I</text></g><g id="icon-512" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-1024" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-2048" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-method)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4096" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-8192" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-16384" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-32768" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-65536" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-131072" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-262144" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-524288" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-1048576" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-2097152" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-4194304" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-reference)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">R</text></g><g id="icon-8388608" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="6,5 6,19 18,19, 18,10 13,5"></polygon><line x1="9" y1="9" x2="13" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-folder" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="5,5 10,5 12,8 19,8 19,18 5,18"></polygon></g></g><g id="icon-chevronDown" class="tsd-no-select"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-icon-text)"></path></g><g id="icon-chevronSmall" class="tsd-no-select"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-icon-text)"></path></g><g id="icon-checkbox" class="tsd-no-select"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu" class="tsd-no-select"><rect x="1" y="3" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-icon-text)"></rect></g><g id="icon-search" class="tsd-no-select"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-icon-text)"></path></g><g id="icon-anchor" class="tsd-no-select"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g></svg>