@alphafi/alphafi-sdk 0.0.35 → 0.0.37

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 (208) hide show
  1. package/README.md +15 -0
  2. package/dist/cjs/common/coins.d.ts +1 -1
  3. package/dist/cjs/common/coins.d.ts.map +1 -1
  4. package/dist/cjs/common/coins.js +15 -11
  5. package/dist/cjs/common/coins.js.map +1 -1
  6. package/dist/cjs/common/constants.d.ts +436 -32
  7. package/dist/cjs/common/constants.d.ts.map +1 -1
  8. package/dist/cjs/common/constants.js +488 -56
  9. package/dist/cjs/common/constants.js.map +1 -1
  10. package/dist/cjs/common/maps.d.ts +46 -28
  11. package/dist/cjs/common/maps.d.ts.map +1 -1
  12. package/dist/cjs/common/maps.js +358 -227
  13. package/dist/cjs/common/maps.js.map +1 -1
  14. package/dist/cjs/common/types.d.ts +59 -47
  15. package/dist/cjs/common/types.d.ts.map +1 -1
  16. package/dist/cjs/common/types.js.map +1 -1
  17. package/dist/cjs/getAllVaults.d.ts.map +1 -1
  18. package/dist/cjs/getAllVaults.js +5 -2
  19. package/dist/cjs/getAllVaults.js.map +1 -1
  20. package/dist/cjs/getVaultBalances.d.ts +2 -1
  21. package/dist/cjs/getVaultBalances.d.ts.map +1 -1
  22. package/dist/cjs/getVaultBalances.js +15 -1
  23. package/dist/cjs/getVaultBalances.js.map +1 -1
  24. package/dist/cjs/graphql/getMultiReceipts.d.ts.map +1 -1
  25. package/dist/cjs/graphql/getMultiReceipts.js +4 -0
  26. package/dist/cjs/graphql/getMultiReceipts.js.map +1 -1
  27. package/dist/cjs/index.d.ts +7 -4
  28. package/dist/cjs/index.d.ts.map +1 -1
  29. package/dist/cjs/index.js +20 -5
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +1 -1
  32. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js +2 -2
  33. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js.map +1 -1
  34. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -1
  35. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js +2 -2
  36. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -1
  37. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -1
  38. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js +5 -7
  39. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js.map +1 -1
  40. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts +1 -1
  41. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -1
  42. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js +11 -20
  43. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -1
  44. package/dist/cjs/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -1
  45. package/dist/cjs/sui-sdk/functions/fetchUserVaults.js +12 -9
  46. package/dist/cjs/sui-sdk/functions/fetchUserVaults.js.map +1 -1
  47. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts +8 -23
  48. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
  49. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js +157 -141
  50. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
  51. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +15 -10
  52. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  53. package/dist/cjs/sui-sdk/functions/getReceipts.js +274 -190
  54. package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -1
  55. package/dist/cjs/transactions/alpha.d.ts +4 -0
  56. package/dist/cjs/transactions/alpha.d.ts.map +1 -0
  57. package/dist/cjs/transactions/alpha.js +104 -0
  58. package/dist/cjs/transactions/alpha.js.map +1 -0
  59. package/dist/cjs/transactions/bluefin.d.ts +15 -0
  60. package/dist/cjs/transactions/bluefin.d.ts.map +1 -0
  61. package/dist/cjs/transactions/bluefin.js +457 -0
  62. package/dist/cjs/transactions/bluefin.js.map +1 -0
  63. package/dist/cjs/transactions/bucket.d.ts +8 -0
  64. package/dist/cjs/transactions/bucket.d.ts.map +1 -0
  65. package/dist/cjs/transactions/bucket.js +131 -0
  66. package/dist/cjs/transactions/bucket.js.map +1 -0
  67. package/dist/cjs/transactions/cetus.d.ts +24 -0
  68. package/dist/cjs/transactions/cetus.d.ts.map +1 -0
  69. package/dist/cjs/transactions/cetus.js +554 -0
  70. package/dist/cjs/transactions/cetus.js.map +1 -0
  71. package/dist/cjs/transactions/collect_rewards.d.ts +3 -0
  72. package/dist/cjs/transactions/collect_rewards.d.ts.map +1 -0
  73. package/dist/cjs/transactions/collect_rewards.js +332 -0
  74. package/dist/cjs/transactions/collect_rewards.js.map +1 -0
  75. package/dist/cjs/transactions/deposit.d.ts +5 -0
  76. package/dist/cjs/transactions/deposit.d.ts.map +1 -0
  77. package/dist/cjs/transactions/deposit.js +57 -0
  78. package/dist/cjs/transactions/deposit.js.map +1 -0
  79. package/dist/cjs/transactions/navi.d.ts +9 -0
  80. package/dist/cjs/transactions/navi.d.ts.map +1 -0
  81. package/dist/cjs/transactions/navi.js +618 -0
  82. package/dist/cjs/transactions/navi.js.map +1 -0
  83. package/dist/cjs/transactions/withdraw.d.ts +5 -0
  84. package/dist/cjs/transactions/withdraw.d.ts.map +1 -0
  85. package/dist/cjs/transactions/withdraw.js +52 -0
  86. package/dist/cjs/transactions/withdraw.js.map +1 -0
  87. package/dist/cjs/transactions/zapDeposit.d.ts +1 -0
  88. package/dist/cjs/transactions/zapDeposit.d.ts.map +1 -0
  89. package/dist/cjs/transactions/zapDeposit.js +730 -0
  90. package/dist/cjs/transactions/zapDeposit.js.map +1 -0
  91. package/dist/cjs/utils/clmm/prices.js +9 -9
  92. package/dist/cjs/utils/clmm/prices.js.map +1 -1
  93. package/dist/cjs/utils/getHoldersFromTransactionsUtils.d.ts.map +1 -1
  94. package/dist/cjs/utils/getHoldersFromTransactionsUtils.js +7 -7
  95. package/dist/cjs/utils/getHoldersFromTransactionsUtils.js.map +1 -1
  96. package/dist/cjs/utils/hop.js +3 -3
  97. package/dist/cjs/utils/hop.js.map +1 -1
  98. package/dist/cjs/utils/prices.d.ts +2 -0
  99. package/dist/cjs/utils/prices.d.ts.map +1 -1
  100. package/dist/cjs/utils/prices.js +39 -0
  101. package/dist/cjs/utils/prices.js.map +1 -1
  102. package/dist/cjs/utils/userHoldings.d.ts.map +1 -1
  103. package/dist/cjs/utils/userHoldings.js +18 -18
  104. package/dist/cjs/utils/userHoldings.js.map +1 -1
  105. package/dist/esm/common/coins.d.ts +1 -1
  106. package/dist/esm/common/coins.d.ts.map +1 -1
  107. package/dist/esm/common/coins.js +14 -10
  108. package/dist/esm/common/coins.js.map +1 -1
  109. package/dist/esm/common/constants.d.ts +436 -32
  110. package/dist/esm/common/constants.d.ts.map +1 -1
  111. package/dist/esm/common/constants.js +488 -56
  112. package/dist/esm/common/constants.js.map +1 -1
  113. package/dist/esm/common/maps.d.ts +46 -28
  114. package/dist/esm/common/maps.d.ts.map +1 -1
  115. package/dist/esm/common/maps.js +355 -226
  116. package/dist/esm/common/maps.js.map +1 -1
  117. package/dist/esm/common/types.d.ts +59 -47
  118. package/dist/esm/common/types.d.ts.map +1 -1
  119. package/dist/esm/common/types.js.map +1 -1
  120. package/dist/esm/getAllVaults.d.ts.map +1 -1
  121. package/dist/esm/getAllVaults.js +5 -2
  122. package/dist/esm/getAllVaults.js.map +1 -1
  123. package/dist/esm/getVaultBalances.d.ts +2 -1
  124. package/dist/esm/getVaultBalances.d.ts.map +1 -1
  125. package/dist/esm/getVaultBalances.js +14 -1
  126. package/dist/esm/getVaultBalances.js.map +1 -1
  127. package/dist/esm/graphql/getMultiReceipts.d.ts.map +1 -1
  128. package/dist/esm/graphql/getMultiReceipts.js +4 -0
  129. package/dist/esm/graphql/getMultiReceipts.js.map +1 -1
  130. package/dist/esm/index.d.ts +7 -4
  131. package/dist/esm/index.d.ts.map +1 -1
  132. package/dist/esm/index.js +7 -4
  133. package/dist/esm/index.js.map +1 -1
  134. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +1 -1
  135. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js +4 -4
  136. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js.map +1 -1
  137. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -1
  138. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js +4 -4
  139. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -1
  140. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -1
  141. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js +7 -9
  142. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js.map +1 -1
  143. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts +1 -1
  144. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -1
  145. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js +11 -20
  146. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -1
  147. package/dist/esm/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -1
  148. package/dist/esm/sui-sdk/functions/fetchUserVaults.js +13 -10
  149. package/dist/esm/sui-sdk/functions/fetchUserVaults.js.map +1 -1
  150. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts +8 -23
  151. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
  152. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js +158 -144
  153. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
  154. package/dist/esm/sui-sdk/functions/getReceipts.d.ts +15 -10
  155. package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  156. package/dist/esm/sui-sdk/functions/getReceipts.js +266 -186
  157. package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -1
  158. package/dist/esm/transactions/alpha.d.ts +4 -0
  159. package/dist/esm/transactions/alpha.d.ts.map +1 -0
  160. package/dist/esm/transactions/alpha.js +99 -0
  161. package/dist/esm/transactions/alpha.js.map +1 -0
  162. package/dist/esm/transactions/bluefin.d.ts +15 -0
  163. package/dist/esm/transactions/bluefin.d.ts.map +1 -0
  164. package/dist/esm/transactions/bluefin.js +450 -0
  165. package/dist/esm/transactions/bluefin.js.map +1 -0
  166. package/dist/esm/transactions/bucket.d.ts +8 -0
  167. package/dist/esm/transactions/bucket.d.ts.map +1 -0
  168. package/dist/esm/transactions/bucket.js +127 -0
  169. package/dist/esm/transactions/bucket.js.map +1 -0
  170. package/dist/esm/transactions/cetus.d.ts +24 -0
  171. package/dist/esm/transactions/cetus.d.ts.map +1 -0
  172. package/dist/esm/transactions/cetus.js +541 -0
  173. package/dist/esm/transactions/cetus.js.map +1 -0
  174. package/dist/esm/transactions/collect_rewards.d.ts +3 -0
  175. package/dist/esm/transactions/collect_rewards.d.ts.map +1 -0
  176. package/dist/esm/transactions/collect_rewards.js +329 -0
  177. package/dist/esm/transactions/collect_rewards.js.map +1 -0
  178. package/dist/esm/transactions/deposit.d.ts +5 -0
  179. package/dist/esm/transactions/deposit.d.ts.map +1 -0
  180. package/dist/esm/transactions/deposit.js +53 -0
  181. package/dist/esm/transactions/deposit.js.map +1 -0
  182. package/dist/esm/transactions/navi.d.ts +9 -0
  183. package/dist/esm/transactions/navi.d.ts.map +1 -0
  184. package/dist/esm/transactions/navi.js +614 -0
  185. package/dist/esm/transactions/navi.js.map +1 -0
  186. package/dist/esm/transactions/withdraw.d.ts +5 -0
  187. package/dist/esm/transactions/withdraw.d.ts.map +1 -0
  188. package/dist/esm/transactions/withdraw.js +49 -0
  189. package/dist/esm/transactions/withdraw.js.map +1 -0
  190. package/dist/esm/transactions/zapDeposit.d.ts +2 -0
  191. package/dist/esm/transactions/zapDeposit.d.ts.map +1 -0
  192. package/dist/esm/transactions/zapDeposit.js +730 -0
  193. package/dist/esm/transactions/zapDeposit.js.map +1 -0
  194. package/dist/esm/utils/clmm/prices.js +10 -10
  195. package/dist/esm/utils/clmm/prices.js.map +1 -1
  196. package/dist/esm/utils/getHoldersFromTransactionsUtils.d.ts.map +1 -1
  197. package/dist/esm/utils/getHoldersFromTransactionsUtils.js +9 -9
  198. package/dist/esm/utils/getHoldersFromTransactionsUtils.js.map +1 -1
  199. package/dist/esm/utils/hop.js +4 -4
  200. package/dist/esm/utils/hop.js.map +1 -1
  201. package/dist/esm/utils/prices.d.ts +2 -0
  202. package/dist/esm/utils/prices.d.ts.map +1 -1
  203. package/dist/esm/utils/prices.js +37 -0
  204. package/dist/esm/utils/prices.js.map +1 -1
  205. package/dist/esm/utils/userHoldings.d.ts.map +1 -1
  206. package/dist/esm/utils/userHoldings.js +20 -20
  207. package/dist/esm/utils/userHoldings.js.map +1 -1
  208. package/package.json +2 -2
@@ -0,0 +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"]}
@@ -112,7 +112,7 @@ async function getAlphaPrice(ignoreCache = false) {
112
112
  cachedPromise = (async () => {
113
113
  const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
114
114
  const swapOption = {
115
- pair: { coinA: coins_js_1.coins.ALPHA, coinB: coins_js_1.coins.SUI },
115
+ pair: { coinA: coins_js_1.coinsList.ALPHA, coinB: coins_js_1.coinsList.SUI },
116
116
  senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
117
117
  slippage: 1,
118
118
  inAmount: new bn_js_1.default(1000000000),
@@ -137,7 +137,7 @@ async function getAlphaPrice(ignoreCache = false) {
137
137
  async function getUSDYPrice() {
138
138
  const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
139
139
  const swapOption = {
140
- pair: { coinA: coins_js_1.coins.USDY, coinB: coins_js_1.coins.USDC },
140
+ pair: { coinA: coins_js_1.coinsList.USDY, coinB: coins_js_1.coinsList.USDC },
141
141
  senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
142
142
  slippage: 1,
143
143
  inAmount: new bn_js_1.default(1000000),
@@ -154,7 +154,7 @@ async function getUSDYPrice() {
154
154
  async function getBUCKPrice() {
155
155
  const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
156
156
  const swapOption = {
157
- pair: { coinA: coins_js_1.coins.BUCK, coinB: coins_js_1.coins.USDC },
157
+ pair: { coinA: coins_js_1.coinsList.BUCK, coinB: coins_js_1.coinsList.USDC },
158
158
  senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
159
159
  slippage: 1,
160
160
  inAmount: new bn_js_1.default(1000000000),
@@ -268,8 +268,8 @@ class CetusGateway {
268
268
  return txb;
269
269
  }
270
270
  async createPoolTransactionBlock(options) {
271
- console.log((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coins[options.coinNameA].expo, coins_js_1.coins[options.coinNameB].expo);
272
- const initializeSqrtPrice = cetus_sui_clmm_sdk_1.TickMath.priceToSqrtPriceX64((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coins[options.coinNameA].expo, coins_js_1.coins[options.coinNameB].expo).toString();
271
+ console.log((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coinsList[options.coinNameA].expo, coins_js_1.coinsList[options.coinNameB].expo);
272
+ const initializeSqrtPrice = cetus_sui_clmm_sdk_1.TickMath.priceToSqrtPriceX64((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coinsList[options.coinNameA].expo, coins_js_1.coinsList[options.coinNameB].expo).toString();
273
273
  const current_tick_index = cetus_sui_clmm_sdk_1.TickMath.sqrtPriceX64ToTickIndex(new bn_js_1.default(Math.floor(parseFloat(initializeSqrtPrice)).toString()));
274
274
  // build tick range
275
275
  const lowerTick = cetus_sui_clmm_sdk_1.TickMath.getPrevInitializableTickIndex(new bn_js_1.default(Math.floor(current_tick_index).toString()).toNumber(), new bn_js_1.default(options.tickSpacing.toString()).toNumber());
@@ -286,8 +286,8 @@ class CetusGateway {
286
286
  ? liquidityInput.tokenMaxB.toNumber()
287
287
  : options.amount;
288
288
  console.log({
289
- coinTypeA: coins_js_1.coins[options.coinNameA].type,
290
- coinTypeB: coins_js_1.coins[options.coinNameB].type,
289
+ coinTypeA: coins_js_1.coinsList[options.coinNameA].type,
290
+ coinTypeB: coins_js_1.coinsList[options.coinNameB].type,
291
291
  tick_spacing: options.tickSpacing,
292
292
  initialize_sqrt_price: `${initializeSqrtPrice}`,
293
293
  uri: options.imageUrl,
@@ -299,8 +299,8 @@ class CetusGateway {
299
299
  });
300
300
  // build creatPoolPayload Payload
301
301
  const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({
302
- coinTypeA: coins_js_1.coins[options.coinNameA].type,
303
- coinTypeB: coins_js_1.coins[options.coinNameB].type,
302
+ coinTypeA: coins_js_1.coinsList[options.coinNameA].type,
303
+ coinTypeB: coins_js_1.coinsList[options.coinNameB].type,
304
304
  tick_spacing: options.tickSpacing,
305
305
  initialize_sqrt_price: `${initializeSqrtPrice}`,
306
306
  uri: options.imageUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../../src/utils/clmm/prices.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SdkOptions,\n Pool,\n Percentage,\n adjustForSlippage,\n CalculateRatesResult,\n ClmmPoolUtil,\n TickMath,\n d,\n CetusClmmSDK,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport BN from \"bn.js\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { Coin } from \"../../common/types.js\";\nimport { coins } from \"../../common/coins.js\";\nimport { CetusSwapOptions, CreatePoolOptions } from \"./types.js\";\nimport { cetusMainnetSDKOptions } from \"../../common/cetus_mainnet_config.js\";\nimport { getLatestPrices } from \"../prices.js\";\nimport { SimpleCache } from \"../simpleCache.js\";\n\ninterface PoolData {\n pair: string;\n id: string;\n a2b: boolean;\n}\n\nconst poolData: { [key: string]: PoolData } = {\n \"SUI/USDC\": {\n pair: \"SUI/USDC\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: false,\n },\n \"USDC/SUI\": {\n pair: \"USDC/SUI\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: true,\n },\n \"SUI/USDT\": {\n pair: \"SUI/USDT\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: false,\n },\n \"USDT/SUI\": {\n pair: \"USDT/SUI\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: true,\n },\n \"USDC/USDT\": {\n pair: \"USDC/USDT\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: false,\n },\n \"USDT/USDC\": {\n pair: \"USDT/USDC\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: true,\n },\n \"SUI/VSUI\": {\n pair: \"SUI/VSUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: false,\n },\n \"VSUI/SUI\": {\n pair: \"VSUI/SUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: true,\n },\n \"SUI/NAVX\": {\n pair: \"SUI/NAVX\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: false,\n },\n \"NAVX/SUI\": {\n pair: \"NAVX/SUI\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: true,\n },\n \"ALPHA/SUI\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: true,\n },\n \"SUI/ALPHA\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: false,\n },\n \"USDY/USDC\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: true,\n },\n \"USDC/USDY\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: false,\n },\n \"BUCK/USDC\": {\n pair: \"BUCK/USDC\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: true,\n },\n \"USDC/BUCK\": {\n pair: \"USDC/BUCK\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: false,\n },\n};\n\nconst alphaPricePromiseCache = new SimpleCache<Promise<number>>(60000);\nconst alphaPriceCache = new SimpleCache<number>(60000);\n\nexport async function getAlphaPrice(\n ignoreCache: boolean = false,\n): Promise<number | undefined> {\n const cacheKey = `getAlphaPrice`;\n if (ignoreCache) {\n alphaPriceCache.delete(cacheKey);\n alphaPricePromiseCache.delete(cacheKey);\n }\n const cachedResponse = alphaPriceCache.get(cacheKey);\n\n if (cachedResponse) {\n return cachedResponse;\n }\n let alphaPrice = 0;\n let cachedPromise = alphaPricePromiseCache.get(cacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<number> => {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.ALPHA, coinB: coins.SUI },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestSuiPrice] = await getLatestPrices([\"SUI/USD\"], false);\n if (latestSuiPrice) {\n alphaPrice =\n res.estimatedAmountOut.toNumber() * Number(latestSuiPrice) * 1e-9;\n alphaPriceCache.set(cacheKey, alphaPrice);\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n }\n return alphaPrice;\n })().catch((error) => {\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n throw error;\n });\n\n alphaPricePromiseCache.set(cacheKey, cachedPromise);\n }\n\n return cachedPromise;\n}\n\nexport async function getUSDYPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.USDY, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getBUCKPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.BUCK, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getPriceFromCetus(coinType: string): Promise<string> {\n return coinType;\n}\n\nexport class CetusGateway {\n private cetusSDK: CetusClmmSDK;\n\n constructor(sdkOptions: SdkOptions) {\n this.cetusSDK = new CetusClmmSDK(sdkOptions);\n this.cetusSDK.senderAddress = sdkOptions.simulationAccount.address;\n }\n\n async getPools(pairs: { coinA?: Coin; coinB?: Coin }[]) {\n const allPools = await this.cetusSDK.Pool.getPoolsWithPage([]);\n const matchedPools: Pool[] = [];\n\n pairs.forEach((pair) => {\n const filteredPools: Pool[] = allPools.filter((pool: Pool) => {\n if (pair.coinA && pair.coinB) {\n return (\n (pool.coinTypeA === pair.coinA.type &&\n pool.coinTypeB === pair.coinB.type) ||\n (pool.coinTypeA === pair.coinB.type &&\n pool.coinTypeB === pair.coinA.type)\n );\n } else if (pair.coinA && !pair.coinB) {\n return (\n pool.coinTypeA === pair.coinA.type ||\n pool.coinTypeB === pair.coinA.type\n );\n } else if (!pair.coinA && pair.coinB) {\n return (\n pool.coinTypeB === pair.coinB.type ||\n pool.coinTypeB === pair.coinB.type\n );\n } else {\n return undefined;\n }\n });\n matchedPools.push(...filteredPools);\n });\n\n console.log(matchedPools);\n console.log(`Matched pools for specified pairs: ${matchedPools.length}`);\n console.log(`Total pools: ${allPools.length}`);\n return matchedPools;\n }\n\n async getPrice(options: CetusSwapOptions): Promise<CalculateRatesResult> {\n const { pair, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n let amount: BN = new BN(0);\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n amount = inAmount;\n } else if (outAmount) {\n byAmountIn = false;\n amount = outAmount;\n }\n\n const pool = await this.cetusSDK.Pool.getPool(poolDatum.id);\n\n const swapTicks = await this.cetusSDK.Pool.fetchTicks({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n });\n\n const res = this.cetusSDK.Swap.calculateRates({\n decimalsA: pair.coinA.expo,\n decimalsB: pair.coinB.expo,\n a2b: poolDatum.a2b,\n byAmountIn,\n amount,\n swapTicks,\n currentPool: pool,\n });\n\n return res;\n }\n\n async getTransaction(options: CetusSwapOptions): Promise<Transaction> {\n const res = await this.getPrice(options);\n\n const { pair, senderAddress, slippage, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n const poolID = poolDatum.id;\n const pool = await this.cetusSDK.Pool.getPool(poolID);\n\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n } else if (outAmount) {\n byAmountIn = false;\n }\n\n const slippagePercentage = new Percentage(\n new BN(Math.floor(slippage * 100).toString()),\n new BN(100),\n );\n const toAmount = byAmountIn\n ? res.estimatedAmountOut\n : res.estimatedAmountIn;\n const amountLimit = adjustForSlippage(\n toAmount,\n slippagePercentage,\n !byAmountIn,\n );\n // TransactionBlock\n this.cetusSDK.senderAddress = senderAddress;\n const txb = this.cetusSDK.Swap.createSwapTransactionPayload({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n a2b: poolDatum.a2b,\n by_amount_in: byAmountIn,\n amount: res.amount.toString(),\n amount_limit: amountLimit.toString(),\n });\n\n return txb;\n }\n\n async createPoolTransactionBlock(\n options: CreatePoolOptions,\n ): Promise<Transaction> {\n console.log(\n d(options.initializePrice),\n coins[options.coinNameA].expo,\n coins[options.coinNameB].expo,\n );\n\n const initializeSqrtPrice = TickMath.priceToSqrtPriceX64(\n d(options.initializePrice),\n coins[options.coinNameA].expo,\n coins[options.coinNameB].expo,\n ).toString();\n\n const current_tick_index = TickMath.sqrtPriceX64ToTickIndex(\n new BN(Math.floor(parseFloat(initializeSqrtPrice)).toString()),\n );\n\n // build tick range\n const lowerTick = TickMath.getPrevInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n const upperTick = TickMath.getNextInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n\n // slippage value 0.05 means 5%\n const slippage = 0.01;\n // Estimate liquidity and token amount from one amounts\n const liquidityInput = ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(\n lowerTick,\n upperTick,\n new BN(options.amount.toString()),\n options.isAmountA,\n true,\n slippage,\n new BN(initializeSqrtPrice.toString()),\n );\n\n // Estimate token a and token b amount\n const amount_a = options.isAmountA\n ? options.amount\n : liquidityInput.tokenMaxA.toNumber();\n const amount_b = options.isAmountA\n ? liquidityInput.tokenMaxB.toNumber()\n : options.amount;\n\n console.log({\n coinTypeA: coins[options.coinNameA].type,\n coinTypeB: coins[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n // build creatPoolPayload Payload\n const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({\n coinTypeA: coins[options.coinNameA].type,\n coinTypeB: coins[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n return txb;\n }\n}\n"]}
1
+ {"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../../src/utils/clmm/prices.ts"],"names":[],"mappings":";;;AAgHA,sCA2CC;AAED,oCAgBC;AAED,oCAgBC;AAED,8CAEC;;AAnMD,0EAU2C;AAC3C,0DAAuB;AAGvB,oDAAkD;AAElD,kFAA8E;AAC9E,4CAA+C;AAC/C,sDAAgD;AAQhD,MAAM,QAAQ,GAAgC;IAC5C,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;CACF,CAAC;AAEF,MAAM,sBAAsB,GAAG,IAAI,4BAAW,CAAkB,KAAK,CAAC,CAAC;AACvE,MAAM,eAAe,GAAG,IAAI,4BAAW,CAAS,KAAK,CAAC,CAAC;AAEhD,KAAK,UAAU,aAAa,CACjC,cAAuB,KAAK;IAE5B,MAAM,QAAQ,GAAG,eAAe,CAAC;IACjC,IAAI,WAAW,EAAE,CAAC;QAChB,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAErD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,aAAa,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,CAAC,KAAK,IAAqB,EAAE;YAC3C,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,gDAAsB,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAqB;gBACnC,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAS,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAS,CAAC,GAAG,EAAE;gBACtD,aAAa,EACX,oEAAoE;gBACtE,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,IAAI,eAAE,CAAC,UAAa,CAAC;aAChC,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,cAAc,EAAE,CAAC;gBACnB,UAAU;oBACR,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;gBACpE,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC1C,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAgC;YAC3E,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAgC;YACzE,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,gDAAsB,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAqB;QACnC,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAS,CAAC,IAAI,EAAE;QACtD,aAAa,EACX,oEAAoE;QACtE,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,IAAI,eAAE,CAAC,OAAS,CAAC;KAC5B,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,gDAAsB,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAqB;QACnC,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAS,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAS,CAAC,IAAI,EAAE;QACtD,aAAa,EACX,oEAAoE;QACtE,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,IAAI,eAAE,CAAC,UAAa,CAAC;KAChC,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IACtD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAa,YAAY;IAGvB,YAAY,UAAsB;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,iCAAY,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAuC;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAW,EAAE,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,aAAa,GAAW,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAU,EAAE,EAAE;gBAC3D,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC7B,OAAO,CACL,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;wBACjC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACrC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;4BACjC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC,CAAC;gBACJ,CAAC;qBAAM,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrC,OAAO,CACL,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;wBAClC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CACnC,CAAC;gBACJ,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrC,OAAO,CACL,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;wBAClC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CACnC,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,sCAAsC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAyB;QACtC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,MAAM,GAAO,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,UAAU,GAAY,IAAI,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,UAAU,GAAG,KAAK,CAAC;YACnB,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YACpD,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YAC5C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC1B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC1B,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,UAAU;YACV,MAAM;YACN,SAAS;YACT,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAyB;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,UAAU,GAAY,IAAI,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,+BAAU,CACvC,IAAI,eAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAC7C,IAAI,eAAE,CAAC,GAAG,CAAC,CACZ,CAAC;QACF,MAAM,QAAQ,GAAG,UAAU;YACzB,CAAC,CAAC,GAAG,CAAC,kBAAkB;YACxB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAA,sCAAiB,EACnC,QAAQ,EACR,kBAAkB,EAClB,CAAC,UAAU,CACZ,CAAC;QACF,mBAAmB;QACnB,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,YAAY,EAAE,UAAU;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;SACrC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,OAA0B;QAE1B,OAAO,CAAC,GAAG,CACT,IAAA,sBAAC,EAAC,OAAO,CAAC,eAAe,CAAC,EAC1B,oBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EACjC,oBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAClC,CAAC;QAEF,MAAM,mBAAmB,GAAG,6BAAQ,CAAC,mBAAmB,CACtD,IAAA,sBAAC,EAAC,OAAO,CAAC,eAAe,CAAC,EAC1B,oBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EACjC,oBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAClC,CAAC,QAAQ,EAAE,CAAC;QAEb,MAAM,kBAAkB,GAAG,6BAAQ,CAAC,uBAAuB,CACzD,IAAI,eAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAC/D,CAAC;QAEF,mBAAmB;QACnB,MAAM,SAAS,GAAG,6BAAQ,CAAC,6BAA6B,CACtD,IAAI,eAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,EAC5D,IAAI,eAAE,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAClD,CAAC;QACF,MAAM,SAAS,GAAG,6BAAQ,CAAC,6BAA6B,CACtD,IAAI,eAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,EAC5D,IAAI,eAAE,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAClD,CAAC;QAEF,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC;QACtB,uDAAuD;QACvD,MAAM,cAAc,GAAG,iCAAY,CAAC,uCAAuC,CACzE,SAAS,EACT,SAAS,EACT,IAAI,eAAE,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EACjC,OAAO,CAAC,SAAS,EACjB,IAAI,EACJ,QAAQ,EACR,IAAI,eAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CACvC,CAAC;QAEF,uCAAuC;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS;YAChC,CAAC,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS;YAChC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE;YACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAEnB,OAAO,CAAC,GAAG,CAAC;YACV,SAAS,EAAE,oBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;YAC5C,SAAS,EAAE,oBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;YAC5C,YAAY,EAAE,OAAO,CAAC,WAAW;YACjC,qBAAqB,EAAE,GAAG,mBAAmB,EAAE;YAC/C,GAAG,EAAE,OAAO,CAAC,QAAQ;YACrB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,OAAO,CAAC,SAAS;YAC/B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,iCAAiC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC;YACzD,SAAS,EAAE,oBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;YAC5C,SAAS,EAAE,oBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;YAC5C,YAAY,EAAE,OAAO,CAAC,WAAW;YACjC,qBAAqB,EAAE,GAAG,mBAAmB,EAAE;YAC/C,GAAG,EAAE,OAAO,CAAC,QAAQ;YACrB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,OAAO,CAAC,SAAS;YAC/B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAvMD,oCAuMC","sourcesContent":["import {\n SdkOptions,\n Pool,\n Percentage,\n adjustForSlippage,\n CalculateRatesResult,\n ClmmPoolUtil,\n TickMath,\n d,\n CetusClmmSDK,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport BN from \"bn.js\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { Coin } from \"../../common/types.js\";\nimport { coinsList } from \"../../common/coins.js\";\nimport { CetusSwapOptions, CreatePoolOptions } from \"./types.js\";\nimport { cetusMainnetSDKOptions } from \"../../common/cetus_mainnet_config.js\";\nimport { getLatestPrices } from \"../prices.js\";\nimport { SimpleCache } from \"../simpleCache.js\";\n\ninterface PoolData {\n pair: string;\n id: string;\n a2b: boolean;\n}\n\nconst poolData: { [key: string]: PoolData } = {\n \"SUI/USDC\": {\n pair: \"SUI/USDC\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: false,\n },\n \"USDC/SUI\": {\n pair: \"USDC/SUI\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: true,\n },\n \"SUI/USDT\": {\n pair: \"SUI/USDT\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: false,\n },\n \"USDT/SUI\": {\n pair: \"USDT/SUI\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: true,\n },\n \"USDC/USDT\": {\n pair: \"USDC/USDT\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: false,\n },\n \"USDT/USDC\": {\n pair: \"USDT/USDC\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: true,\n },\n \"SUI/VSUI\": {\n pair: \"SUI/VSUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: false,\n },\n \"VSUI/SUI\": {\n pair: \"VSUI/SUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: true,\n },\n \"SUI/NAVX\": {\n pair: \"SUI/NAVX\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: false,\n },\n \"NAVX/SUI\": {\n pair: \"NAVX/SUI\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: true,\n },\n \"ALPHA/SUI\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: true,\n },\n \"SUI/ALPHA\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: false,\n },\n \"USDY/USDC\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: true,\n },\n \"USDC/USDY\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: false,\n },\n \"BUCK/USDC\": {\n pair: \"BUCK/USDC\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: true,\n },\n \"USDC/BUCK\": {\n pair: \"USDC/BUCK\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: false,\n },\n};\n\nconst alphaPricePromiseCache = new SimpleCache<Promise<number>>(60000);\nconst alphaPriceCache = new SimpleCache<number>(60000);\n\nexport async function getAlphaPrice(\n ignoreCache: boolean = false,\n): Promise<number | undefined> {\n const cacheKey = `getAlphaPrice`;\n if (ignoreCache) {\n alphaPriceCache.delete(cacheKey);\n alphaPricePromiseCache.delete(cacheKey);\n }\n const cachedResponse = alphaPriceCache.get(cacheKey);\n\n if (cachedResponse) {\n return cachedResponse;\n }\n let alphaPrice = 0;\n let cachedPromise = alphaPricePromiseCache.get(cacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<number> => {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coinsList.ALPHA, coinB: coinsList.SUI },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestSuiPrice] = await getLatestPrices([\"SUI/USD\"], false);\n if (latestSuiPrice) {\n alphaPrice =\n res.estimatedAmountOut.toNumber() * Number(latestSuiPrice) * 1e-9;\n alphaPriceCache.set(cacheKey, alphaPrice);\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n }\n return alphaPrice;\n })().catch((error) => {\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n throw error;\n });\n\n alphaPricePromiseCache.set(cacheKey, cachedPromise);\n }\n\n return cachedPromise;\n}\n\nexport async function getUSDYPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coinsList.USDY, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getBUCKPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coinsList.BUCK, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getPriceFromCetus(coinType: string): Promise<string> {\n return coinType;\n}\n\nexport class CetusGateway {\n private cetusSDK: CetusClmmSDK;\n\n constructor(sdkOptions: SdkOptions) {\n this.cetusSDK = new CetusClmmSDK(sdkOptions);\n this.cetusSDK.senderAddress = sdkOptions.simulationAccount.address;\n }\n\n async getPools(pairs: { coinA?: Coin; coinB?: Coin }[]) {\n const allPools = await this.cetusSDK.Pool.getPoolsWithPage([]);\n const matchedPools: Pool[] = [];\n\n pairs.forEach((pair) => {\n const filteredPools: Pool[] = allPools.filter((pool: Pool) => {\n if (pair.coinA && pair.coinB) {\n return (\n (pool.coinTypeA === pair.coinA.type &&\n pool.coinTypeB === pair.coinB.type) ||\n (pool.coinTypeA === pair.coinB.type &&\n pool.coinTypeB === pair.coinA.type)\n );\n } else if (pair.coinA && !pair.coinB) {\n return (\n pool.coinTypeA === pair.coinA.type ||\n pool.coinTypeB === pair.coinA.type\n );\n } else if (!pair.coinA && pair.coinB) {\n return (\n pool.coinTypeB === pair.coinB.type ||\n pool.coinTypeB === pair.coinB.type\n );\n } else {\n return undefined;\n }\n });\n matchedPools.push(...filteredPools);\n });\n\n console.log(matchedPools);\n console.log(`Matched pools for specified pairs: ${matchedPools.length}`);\n console.log(`Total pools: ${allPools.length}`);\n return matchedPools;\n }\n\n async getPrice(options: CetusSwapOptions): Promise<CalculateRatesResult> {\n const { pair, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n let amount: BN = new BN(0);\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n amount = inAmount;\n } else if (outAmount) {\n byAmountIn = false;\n amount = outAmount;\n }\n\n const pool = await this.cetusSDK.Pool.getPool(poolDatum.id);\n\n const swapTicks = await this.cetusSDK.Pool.fetchTicks({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n });\n\n const res = this.cetusSDK.Swap.calculateRates({\n decimalsA: pair.coinA.expo,\n decimalsB: pair.coinB.expo,\n a2b: poolDatum.a2b,\n byAmountIn,\n amount,\n swapTicks,\n currentPool: pool,\n });\n\n return res;\n }\n\n async getTransaction(options: CetusSwapOptions): Promise<Transaction> {\n const res = await this.getPrice(options);\n\n const { pair, senderAddress, slippage, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n const poolID = poolDatum.id;\n const pool = await this.cetusSDK.Pool.getPool(poolID);\n\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n } else if (outAmount) {\n byAmountIn = false;\n }\n\n const slippagePercentage = new Percentage(\n new BN(Math.floor(slippage * 100).toString()),\n new BN(100),\n );\n const toAmount = byAmountIn\n ? res.estimatedAmountOut\n : res.estimatedAmountIn;\n const amountLimit = adjustForSlippage(\n toAmount,\n slippagePercentage,\n !byAmountIn,\n );\n // TransactionBlock\n this.cetusSDK.senderAddress = senderAddress;\n const txb = this.cetusSDK.Swap.createSwapTransactionPayload({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n a2b: poolDatum.a2b,\n by_amount_in: byAmountIn,\n amount: res.amount.toString(),\n amount_limit: amountLimit.toString(),\n });\n\n return txb;\n }\n\n async createPoolTransactionBlock(\n options: CreatePoolOptions,\n ): Promise<Transaction> {\n console.log(\n d(options.initializePrice),\n coinsList[options.coinNameA].expo,\n coinsList[options.coinNameB].expo,\n );\n\n const initializeSqrtPrice = TickMath.priceToSqrtPriceX64(\n d(options.initializePrice),\n coinsList[options.coinNameA].expo,\n coinsList[options.coinNameB].expo,\n ).toString();\n\n const current_tick_index = TickMath.sqrtPriceX64ToTickIndex(\n new BN(Math.floor(parseFloat(initializeSqrtPrice)).toString()),\n );\n\n // build tick range\n const lowerTick = TickMath.getPrevInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n const upperTick = TickMath.getNextInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n\n // slippage value 0.05 means 5%\n const slippage = 0.01;\n // Estimate liquidity and token amount from one amounts\n const liquidityInput = ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(\n lowerTick,\n upperTick,\n new BN(options.amount.toString()),\n options.isAmountA,\n true,\n slippage,\n new BN(initializeSqrtPrice.toString()),\n );\n\n // Estimate token a and token b amount\n const amount_a = options.isAmountA\n ? options.amount\n : liquidityInput.tokenMaxA.toNumber();\n const amount_b = options.isAmountA\n ? liquidityInput.tokenMaxB.toNumber()\n : options.amount;\n\n console.log({\n coinTypeA: coinsList[options.coinNameA].type,\n coinTypeB: coinsList[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n // build creatPoolPayload Payload\n const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({\n coinTypeA: coinsList[options.coinNameA].type,\n coinTypeB: coinsList[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n return txb;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getHoldersFromTransactionsUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAGL,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAiBrB,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAuBrC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,MAAM,GAAG,SAAS,CAcpB;AA+FD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GACrC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAkB5B"}
1
+ {"version":3,"file":"getHoldersFromTransactionsUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAGL,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAiBrB,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAuBrC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,MAAM,GAAG,SAAS,CAcpB;AAqGD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GACrC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAkB5B"}
@@ -65,10 +65,10 @@ function doubleAssetliquidityToUSD(params) {
65
65
  coin_amounts.coinB.toNumber(),
66
66
  ];
67
67
  const ten = new decimal_js_1.Decimal(10);
68
- const coin1 = maps_js_1.poolCoinPairMap[pool].coinA;
69
- const coin2 = maps_js_1.poolCoinPairMap[pool].coinB;
70
- const amount1 = new decimal_js_1.Decimal(coinAmounts[0]).div(ten.pow(coins_js_1.coins[coin1].expo));
71
- const amount2 = new decimal_js_1.Decimal(coinAmounts[1]).div(ten.pow(coins_js_1.coins[coin2].expo));
68
+ const coin1 = maps_js_1.doubleAssetPoolCoinMap[pool].coin1;
69
+ const coin2 = maps_js_1.doubleAssetPoolCoinMap[pool].coin2;
70
+ const amount1 = new decimal_js_1.Decimal(coinAmounts[0]).div(ten.pow(coins_js_1.coinsList[coin1].expo));
71
+ const amount2 = new decimal_js_1.Decimal(coinAmounts[1]).div(ten.pow(coins_js_1.coinsList[coin2].expo));
72
72
  const priceOfCoin1 = tokenPriceMap.get(coin1);
73
73
  const priceOfCoin2 = tokenPriceMap.get(coin2);
74
74
  if (priceOfCoin1 && priceOfCoin2) {
@@ -98,9 +98,9 @@ function alphaLiquidityToUSD(liquidity, tokenPriceMap) {
98
98
  function singleAssetLiquidityToUSD(liquidity, pool, tokenPriceMap) {
99
99
  try {
100
100
  const singlePool = pool;
101
- const coin = maps_js_1.poolCoinMap[singlePool];
102
- let amount = new decimal_js_1.Decimal(liquidity).div(Math.pow(10, 9 - coins_js_1.coins[coin].expo));
103
- amount = amount.div(new decimal_js_1.Decimal(Math.pow(10, coins_js_1.coins[coin].expo)));
101
+ const coin = maps_js_1.singleAssetPoolCoinMap[singlePool].coin;
102
+ let amount = new decimal_js_1.Decimal(liquidity).div(Math.pow(10, 9 - coins_js_1.coinsList[coin].expo));
103
+ amount = amount.div(new decimal_js_1.Decimal(Math.pow(10, coins_js_1.coinsList[coin].expo)));
104
104
  const priceOfCoin = tokenPriceMap.get(coin);
105
105
  if (priceOfCoin) {
106
106
  const amountInUSD = amount.mul(priceOfCoin);
@@ -1 +1 @@
1
- {"version":3,"file":"getHoldersFromTransactionsUtils.js","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import { SuiObjectResponse } from \"@mysten/sui/client\";\nimport {\n AlphaReceiptFields,\n OtherReceiptFields,\n LiquidityToUsdParams,\n} from \"../types.js\";\nimport {\n poolIdPoolNameMap,\n poolCoinPairMap,\n getPoolExchangeRateMap,\n poolCoinMap,\n} from \"../common/maps.js\";\nimport { Decimal } from \"decimal.js\";\nimport { BN } from \"bn.js\";\nimport { PoolName, CoinName, DoubleAssetPoolNames } from \"../common/types.js\";\nimport {\n ClmmPoolUtil,\n TickMath,\n CoinAmounts,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport { coins } from \"../common/coins.js\";\n\nexport async function parseTokensFromReceipts(\n receipts: SuiObjectResponse[],\n): Promise<[string, string, string][]> {\n let userTokens: [string, string, string][] = [];\n\n for (const receipt of receipts) {\n const nftData = receipt.data?.content;\n if (nftData?.dataType === \"moveObject\") {\n const fields = nftData.fields as AlphaReceiptFields | OtherReceiptFields;\n const owner = fields.owner;\n const pool = poolIdPoolNameMap[fields.pool_id] as string;\n const xTokens = fields.xTokenBalance;\n userTokens.push([owner, pool, xTokens]);\n }\n }\n const conversionMap = await getPoolExchangeRateMap();\n userTokens = userTokens.map(([owner, pool, xTokens]) => {\n const conversion = new Decimal(\n conversionMap.get(pool as PoolName) as string,\n );\n const tokens = new Decimal(xTokens).mul(conversion).toFixed(4).toString();\n return [owner, pool, tokens];\n });\n\n return userTokens;\n}\n\nexport function liquidityToUsd(\n params: LiquidityToUsdParams,\n): string | undefined {\n let holdingUSD: string | undefined;\n if (params.poolName.slice(0, 4) === \"NAVI\") {\n holdingUSD = singleAssetLiquidityToUSD(\n params.liquidity,\n params.poolName,\n params.tokenPriceMap,\n );\n } else if (params.poolName === \"ALPHA\") {\n holdingUSD = alphaLiquidityToUSD(params.liquidity, params.tokenPriceMap);\n } else {\n holdingUSD = doubleAssetliquidityToUSD(params);\n }\n return holdingUSD;\n}\nfunction doubleAssetliquidityToUSD(params: {\n liquidity: string;\n poolName: string;\n ticksCetusMap: { [pool: string]: { lower: string; upper: string } };\n sqrtPriceCetusMap: Map<PoolName, string>;\n tokenPriceMap: Map<CoinName, string>;\n}): string | undefined {\n const pool = params.poolName;\n const liquidity = params.liquidity;\n const ticksCetusMap = params.ticksCetusMap;\n const sqrtPriceCetusMap = params.sqrtPriceCetusMap;\n const tokenPriceMap = params.tokenPriceMap;\n\n try {\n const upper_bound = 443636;\n let lower_tick = Number(ticksCetusMap[pool].lower);\n let upper_tick = Number(ticksCetusMap[pool].upper);\n\n if (lower_tick > upper_bound) {\n lower_tick = -~(lower_tick - 1);\n }\n if (upper_tick > upper_bound) {\n upper_tick = -~(upper_tick - 1);\n }\n const liquidityInt = Math.floor(Number(liquidity));\n const sqrtPrice = sqrtPriceCetusMap.get(pool as PoolName) as string;\n const coin_amounts: CoinAmounts = ClmmPoolUtil.getCoinAmountFromLiquidity(\n new BN(`${liquidityInt}`),\n new BN(sqrtPrice),\n TickMath.tickIndexToSqrtPriceX64(lower_tick),\n TickMath.tickIndexToSqrtPriceX64(upper_tick),\n true,\n );\n const coinAmounts = [\n coin_amounts.coinA.toNumber(),\n coin_amounts.coinB.toNumber(),\n ];\n const ten = new Decimal(10);\n const coin1 = poolCoinPairMap[pool as DoubleAssetPoolNames].coinA;\n const coin2 = poolCoinPairMap[pool as DoubleAssetPoolNames].coinB;\n\n const amount1 = new Decimal(coinAmounts[0]).div(ten.pow(coins[coin1].expo));\n const amount2 = new Decimal(coinAmounts[1]).div(ten.pow(coins[coin2].expo));\n const priceOfCoin1 = tokenPriceMap.get(coin1);\n const priceOfCoin2 = tokenPriceMap.get(coin2);\n if (priceOfCoin1 && priceOfCoin2) {\n const amount = amount1.mul(priceOfCoin1).add(amount2.mul(priceOfCoin2));\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\nfunction alphaLiquidityToUSD(\n liquidity: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const priceOfAlpha = tokenPriceMap.get(\"ALPHA\");\n if (priceOfAlpha) {\n let amount = new Decimal(liquidity).div(1e9);\n amount = amount.mul(priceOfAlpha);\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ALPHA:`, error);\n return undefined;\n }\n}\nfunction singleAssetLiquidityToUSD(\n liquidity: string,\n pool: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const singlePool = pool as Extract<\n PoolName,\n \"NAVI-VSUI\" | \"NAVI-SUI\" | \"NAVI-WETH\" | \"NAVI-USDC\" | \"NAVI-USDT\"\n >;\n const coin = poolCoinMap[singlePool];\n let amount = new Decimal(liquidity).div(Math.pow(10, 9 - coins[coin].expo));\n amount = amount.div(new Decimal(Math.pow(10, coins[coin].expo)));\n const priceOfCoin = tokenPriceMap.get(coin);\n if (priceOfCoin) {\n const amountInUSD = amount.mul(priceOfCoin);\n return amountInUSD.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\n\nexport function mergeDuplicateHoldings(\n userTokens: [string, string, string][],\n): [string, string, string][] {\n const address_poolValueMap = new Map<string, number>();\n userTokens.forEach(([address, pool, value]) => {\n const key = `${address}_${pool}`;\n const numericValue = parseFloat(value);\n if (address_poolValueMap.has(key)) {\n address_poolValueMap.set(\n key,\n address_poolValueMap.get(key)! + numericValue,\n );\n } else {\n address_poolValueMap.set(key, numericValue);\n }\n });\n return Array.from(address_poolValueMap.entries()).map(([key, value]) => {\n const [address, pool] = key.split(\"_\");\n return [address, pool, value.toFixed(2).toString()];\n });\n}\n"]}
1
+ {"version":3,"file":"getHoldersFromTransactionsUtils.js","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import { SuiObjectResponse } from \"@mysten/sui/client\";\nimport {\n AlphaReceiptFields,\n OtherReceiptFields,\n LiquidityToUsdParams,\n} from \"../types.js\";\nimport {\n poolIdPoolNameMap,\n doubleAssetPoolCoinMap,\n getPoolExchangeRateMap,\n singleAssetPoolCoinMap,\n} from \"../common/maps.js\";\nimport { Decimal } from \"decimal.js\";\nimport { BN } from \"bn.js\";\nimport { PoolName, CoinName } from \"../common/types.js\";\nimport {\n ClmmPoolUtil,\n TickMath,\n CoinAmounts,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport { coinsList } from \"../common/coins.js\";\n\nexport async function parseTokensFromReceipts(\n receipts: SuiObjectResponse[],\n): Promise<[string, string, string][]> {\n let userTokens: [string, string, string][] = [];\n\n for (const receipt of receipts) {\n const nftData = receipt.data?.content;\n if (nftData?.dataType === \"moveObject\") {\n const fields = nftData.fields as AlphaReceiptFields | OtherReceiptFields;\n const owner = fields.owner;\n const pool = poolIdPoolNameMap[fields.pool_id] as string;\n const xTokens = fields.xTokenBalance;\n userTokens.push([owner, pool, xTokens]);\n }\n }\n const conversionMap = await getPoolExchangeRateMap();\n userTokens = userTokens.map(([owner, pool, xTokens]) => {\n const conversion = new Decimal(\n conversionMap.get(pool as PoolName) as string,\n );\n const tokens = new Decimal(xTokens).mul(conversion).toFixed(4).toString();\n return [owner, pool, tokens];\n });\n\n return userTokens;\n}\n\nexport function liquidityToUsd(\n params: LiquidityToUsdParams,\n): string | undefined {\n let holdingUSD: string | undefined;\n if (params.poolName.slice(0, 4) === \"NAVI\") {\n holdingUSD = singleAssetLiquidityToUSD(\n params.liquidity,\n params.poolName,\n params.tokenPriceMap,\n );\n } else if (params.poolName === \"ALPHA\") {\n holdingUSD = alphaLiquidityToUSD(params.liquidity, params.tokenPriceMap);\n } else {\n holdingUSD = doubleAssetliquidityToUSD(params);\n }\n return holdingUSD;\n}\nfunction doubleAssetliquidityToUSD(params: {\n liquidity: string;\n poolName: string;\n ticksCetusMap: { [pool: string]: { lower: string; upper: string } };\n sqrtPriceCetusMap: Map<PoolName, string>;\n tokenPriceMap: Map<CoinName, string>;\n}): string | undefined {\n const pool = params.poolName;\n const liquidity = params.liquidity;\n const ticksCetusMap = params.ticksCetusMap;\n const sqrtPriceCetusMap = params.sqrtPriceCetusMap;\n const tokenPriceMap = params.tokenPriceMap;\n\n try {\n const upper_bound = 443636;\n let lower_tick = Number(ticksCetusMap[pool].lower);\n let upper_tick = Number(ticksCetusMap[pool].upper);\n\n if (lower_tick > upper_bound) {\n lower_tick = -~(lower_tick - 1);\n }\n if (upper_tick > upper_bound) {\n upper_tick = -~(upper_tick - 1);\n }\n const liquidityInt = Math.floor(Number(liquidity));\n const sqrtPrice = sqrtPriceCetusMap.get(pool as PoolName) as string;\n const coin_amounts: CoinAmounts = ClmmPoolUtil.getCoinAmountFromLiquidity(\n new BN(`${liquidityInt}`),\n new BN(sqrtPrice),\n TickMath.tickIndexToSqrtPriceX64(lower_tick),\n TickMath.tickIndexToSqrtPriceX64(upper_tick),\n true,\n );\n const coinAmounts = [\n coin_amounts.coinA.toNumber(),\n coin_amounts.coinB.toNumber(),\n ];\n const ten = new Decimal(10);\n const coin1 = doubleAssetPoolCoinMap[pool].coin1;\n const coin2 = doubleAssetPoolCoinMap[pool].coin2;\n\n const amount1 = new Decimal(coinAmounts[0]).div(\n ten.pow(coinsList[coin1].expo),\n );\n const amount2 = new Decimal(coinAmounts[1]).div(\n ten.pow(coinsList[coin2].expo),\n );\n const priceOfCoin1 = tokenPriceMap.get(coin1);\n const priceOfCoin2 = tokenPriceMap.get(coin2);\n if (priceOfCoin1 && priceOfCoin2) {\n const amount = amount1.mul(priceOfCoin1).add(amount2.mul(priceOfCoin2));\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\nfunction alphaLiquidityToUSD(\n liquidity: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const priceOfAlpha = tokenPriceMap.get(\"ALPHA\");\n if (priceOfAlpha) {\n let amount = new Decimal(liquidity).div(1e9);\n amount = amount.mul(priceOfAlpha);\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ALPHA:`, error);\n return undefined;\n }\n}\nfunction singleAssetLiquidityToUSD(\n liquidity: string,\n pool: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const singlePool = pool as Extract<\n PoolName,\n \"NAVI-VSUI\" | \"NAVI-SUI\" | \"NAVI-WETH\" | \"NAVI-USDC\" | \"NAVI-USDT\"\n >;\n const coin = singleAssetPoolCoinMap[singlePool].coin;\n let amount = new Decimal(liquidity).div(\n Math.pow(10, 9 - coinsList[coin].expo),\n );\n amount = amount.div(new Decimal(Math.pow(10, coinsList[coin].expo)));\n const priceOfCoin = tokenPriceMap.get(coin);\n if (priceOfCoin) {\n const amountInUSD = amount.mul(priceOfCoin);\n return amountInUSD.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\n\nexport function mergeDuplicateHoldings(\n userTokens: [string, string, string][],\n): [string, string, string][] {\n const address_poolValueMap = new Map<string, number>();\n userTokens.forEach(([address, pool, value]) => {\n const key = `${address}_${pool}`;\n const numericValue = parseFloat(value);\n if (address_poolValueMap.has(key)) {\n address_poolValueMap.set(\n key,\n address_poolValueMap.get(key)! + numericValue,\n );\n } else {\n address_poolValueMap.set(key, numericValue);\n }\n });\n return Array.from(address_poolValueMap.entries()).map(([key, value]) => {\n const [address, pool] = key.split(\"_\");\n return [address, pool, value.toFixed(2).toString()];\n });\n}\n"]}
@@ -79,7 +79,7 @@ async function getBlubPrice() {
79
79
  // return 1;
80
80
  const hopGateway = new HopGateway(exports.hopSDKOptions);
81
81
  const swapOptions = {
82
- pair: { coinA: coins_js_1.coins.BLUB, coinB: coins_js_1.coins.USDC },
82
+ pair: { coinA: coins_js_1.coinsList.BLUB, coinB: coins_js_1.coinsList.USDC },
83
83
  senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
84
84
  inAmount: new bn_js_1.default(1000000000),
85
85
  slippage: 1,
@@ -96,7 +96,7 @@ async function getBlubPrice() {
96
96
  async function getFudPrice() {
97
97
  const hopGateway = new HopGateway(exports.hopSDKOptions);
98
98
  const swapOptions = {
99
- pair: { coinA: coins_js_1.coins.FUD, coinB: coins_js_1.coins.USDC },
99
+ pair: { coinA: coins_js_1.coinsList.FUD, coinB: coins_js_1.coinsList.USDC },
100
100
  senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
101
101
  inAmount: new bn_js_1.default(1000000000000),
102
102
  slippage: 1,
@@ -113,7 +113,7 @@ async function getFudPrice() {
113
113
  async function getWsolPrice() {
114
114
  const hopGateway = new HopGateway(exports.hopSDKOptions);
115
115
  const swapOptions = {
116
- pair: { coinA: coins_js_1.coins.WSOL, coinB: coins_js_1.coins.USDC },
116
+ pair: { coinA: coins_js_1.coinsList.WSOL, coinB: coins_js_1.coinsList.USDC },
117
117
  senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
118
118
  inAmount: new bn_js_1.default(100000000),
119
119
  slippage: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"hop.js","sourceRoot":"","sources":["../../../src/utils/hop.ts"],"names":[],"mappings":";;;AA2FA,sCAGC;AACD,oCAqBC;AAED,kCAoBC;AACD,oCAkBC;;AA7JD,qCAMqB;AAErB,yDAAwD;AAExD,oDAAqD;AACrD,iDAA2C;AAC3C,2CAA8C;AAC9C,0DAAuB;AAIV,QAAA,aAAa,GAAkB;IAC1C,OAAO,EAAE,mBAAI,CAAC,uBAAQ,CAAC,CAAC,WAAW;IACnC,OAAO,EAAE,mBAAI,CAAC,uBAAQ,CAAC,CAAC,WAAW;IACnC,UAAU,EAAE,mBAAI,CAAC,uBAAQ,CAAC,CAAC,gBAAgB;CAC5C,CAAC;AAEF,MAAa,UAAU;IAGrB,YAAY,UAAyB;QACnC,MAAM,OAAO,GAAG,IAAA,yBAAa,GAAE,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAuB,EACvB,QAAiB,KAAK;QAEtB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAC9C,IAAI,MAAM,GAAO,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAmB;YAC7B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACzB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SACrC,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,OAAuB,EACvB,KAAuB,EACvB,QAAiB,KAAK,EACtB,cAAuC,SAAS;QAEhD,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAC5C,MAAM,YAAY,GAAG,QAAQ,GAAG,GAAG,CAAC;QAEpC,IAAI,MAAmB,CAAC;QACxB,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,GAAG;gBACP,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,aAAa;gBAC1B,gBAAgB,EAAE,YAAY;gBAC9B,gBAAgB,EAAE,WAAW;aAC9B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG;gBACP,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,aAAa;gBAC1B,gBAAgB,EAAE,YAAY;aAC/B,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;CACF;AAnED,gCAmEC;AACM,KAAK,UAAU,aAAa;IACjC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5B,CAAC;AACM,KAAK,UAAU,YAAY;IAChC,YAAY;IACZ,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,qBAAa,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAmB;QAClC,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAK,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAK,CAAC,IAAI,EAAE;QAC9C,aAAa,EACX,oEAAoE;QACtE,QAAQ,EAAE,IAAI,eAAE,CAAC,UAAa,CAAC;QAC/B,QAAQ,EAAE,CAAC;KACZ,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CACL,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,IAAI,CACxE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW;IAC/B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,qBAAa,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAmB;QAClC,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAK,CAAC,GAAG,EAAE,KAAK,EAAE,gBAAK,CAAC,IAAI,EAAE;QAC7C,aAAa,EACX,oEAAoE;QACtE,QAAQ,EAAE,IAAI,eAAE,CAAC,aAAiB,CAAC;QACnC,QAAQ,EAAE,CAAC;KACZ,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CACL,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,IAAI,CACxE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AACM,KAAK,UAAU,YAAY;IAChC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,qBAAa,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAmB;QAClC,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAK,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAK,CAAC,IAAI,EAAE;QAC9C,aAAa,EACX,oEAAoE;QACtE,QAAQ,EAAE,IAAI,eAAE,CAAC,SAAY,CAAC;QAC9B,QAAQ,EAAE,CAAC;KACZ,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["import {\n GetTxParams,\n HopApi,\n HopApiOptions,\n GetQuoteParams,\n GetQuoteResponse,\n} from \"@hop.ag/sdk\";\nimport { SwapOptions } from \"../common/types.js\";\nimport { conf, CONF_ENV } from \"../common/constants.js\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { getSuiNodeUrl } from \"../sui-sdk/client.js\";\nimport { coins } from \"../common/coins.js\";\nimport { getLatestPrices } from \"./prices.js\";\nimport BN from \"bn.js\";\n\nexport type HopSwapOptions = SwapOptions;\n\nexport const hopSDKOptions: HopApiOptions = {\n api_key: conf[CONF_ENV].HOP_API_KEY,\n fee_bps: conf[CONF_ENV].HOP_FEE_BPS,\n fee_wallet: conf[CONF_ENV].HOP_QUERY_WALLET,\n};\n\nexport class HopGateway {\n private hopAPI: HopApi;\n\n constructor(sdkOptions: HopApiOptions) {\n const rpc_url = getSuiNodeUrl();\n this.hopAPI = new HopApi(rpc_url, sdkOptions);\n }\n\n async getQuote(\n options: HopSwapOptions,\n debug: boolean = false,\n ): Promise<GetQuoteResponse> {\n const { pair, inAmount, outAmount } = options;\n let amount: BN = new BN(0);\n if (inAmount) {\n amount = inAmount;\n } else if (outAmount) {\n amount = outAmount;\n }\n\n const params: GetQuoteParams = {\n token_in: pair.coinA.type,\n token_out: pair.coinB.type,\n amount_in: BigInt(amount.toString()),\n };\n\n if (debug) {\n console.debug(\"fetchQuote Params:\");\n console.debug(params);\n }\n const quote = await this.hopAPI.fetchQuote(params);\n return quote;\n }\n\n async getTransactionBlock(\n options: HopSwapOptions,\n quote: GetQuoteResponse,\n debug: boolean = false,\n transaction: Transaction | undefined = undefined,\n ): Promise<Transaction> {\n const { senderAddress, slippage } = options;\n const splippageBPS = slippage * 100;\n\n let params: GetTxParams;\n if (transaction) {\n params = {\n trade: quote.trade,\n sui_address: senderAddress,\n max_slippage_bps: splippageBPS,\n base_transaction: transaction,\n };\n } else {\n params = {\n trade: quote.trade,\n sui_address: senderAddress,\n max_slippage_bps: splippageBPS,\n };\n }\n\n if (debug) {\n console.debug(\"fetchTx Params:\");\n console.debug(params);\n }\n const trade = await this.hopAPI.fetchTx(params);\n\n return trade.transaction;\n }\n}\nexport async function getWUSDCPrice(): Promise<number | undefined> {\n const [wusdcPrice] = await getLatestPrices([\"USDC/USD\"], false);\n return Number(wusdcPrice);\n}\nexport async function getBlubPrice(): Promise<number | undefined> {\n // return 1;\n const hopGateway = new HopGateway(hopSDKOptions);\n\n const swapOptions: HopSwapOptions = {\n pair: { coinA: coins.BLUB, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n inAmount: new BN(1_000_000_000),\n slippage: 1,\n };\n\n const res = await hopGateway.getQuote(swapOptions);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return (\n Number(res.amount_out_with_fee) * Number(latestUSDCPrice) * 1e-6 * 1e-7\n );\n } else {\n return undefined;\n }\n}\n\nexport async function getFudPrice(): Promise<number | undefined> {\n const hopGateway = new HopGateway(hopSDKOptions);\n\n const swapOptions: HopSwapOptions = {\n pair: { coinA: coins.FUD, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n inAmount: new BN(1_000_000_000_000),\n slippage: 1,\n };\n\n const res = await hopGateway.getQuote(swapOptions);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return (\n Number(res.amount_out_with_fee) * Number(latestUSDCPrice) * 1e-6 * 1e-7\n );\n } else {\n return undefined;\n }\n}\nexport async function getWsolPrice(): Promise<number | undefined> {\n const hopGateway = new HopGateway(hopSDKOptions);\n\n const swapOptions: HopSwapOptions = {\n pair: { coinA: coins.WSOL, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n inAmount: new BN(1_000_000_00),\n slippage: 1,\n };\n\n const res = await hopGateway.getQuote(swapOptions);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return Number(res.amount_out_with_fee) * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"hop.js","sourceRoot":"","sources":["../../../src/utils/hop.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GetTxParams,\n HopApi,\n HopApiOptions,\n GetQuoteParams,\n GetQuoteResponse,\n} from \"@hop.ag/sdk\";\nimport { SwapOptions } from \"../common/types.js\";\nimport { conf, CONF_ENV } from \"../common/constants.js\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { getSuiNodeUrl } from \"../sui-sdk/client.js\";\nimport { coinsList } from \"../common/coins.js\";\nimport { getLatestPrices } from \"./prices.js\";\nimport BN from \"bn.js\";\n\nexport type HopSwapOptions = SwapOptions;\n\nexport const hopSDKOptions: HopApiOptions = {\n api_key: conf[CONF_ENV].HOP_API_KEY,\n fee_bps: conf[CONF_ENV].HOP_FEE_BPS,\n fee_wallet: conf[CONF_ENV].HOP_QUERY_WALLET,\n};\n\nexport class HopGateway {\n private hopAPI: HopApi;\n\n constructor(sdkOptions: HopApiOptions) {\n const rpc_url = getSuiNodeUrl();\n this.hopAPI = new HopApi(rpc_url, sdkOptions);\n }\n\n async getQuote(\n options: HopSwapOptions,\n debug: boolean = false,\n ): Promise<GetQuoteResponse> {\n const { pair, inAmount, outAmount } = options;\n let amount: BN = new BN(0);\n if (inAmount) {\n amount = inAmount;\n } else if (outAmount) {\n amount = outAmount;\n }\n\n const params: GetQuoteParams = {\n token_in: pair.coinA.type,\n token_out: pair.coinB.type,\n amount_in: BigInt(amount.toString()),\n };\n\n if (debug) {\n console.debug(\"fetchQuote Params:\");\n console.debug(params);\n }\n const quote = await this.hopAPI.fetchQuote(params);\n return quote;\n }\n\n async getTransactionBlock(\n options: HopSwapOptions,\n quote: GetQuoteResponse,\n debug: boolean = false,\n transaction: Transaction | undefined = undefined,\n ): Promise<Transaction> {\n const { senderAddress, slippage } = options;\n const splippageBPS = slippage * 100;\n\n let params: GetTxParams;\n if (transaction) {\n params = {\n trade: quote.trade,\n sui_address: senderAddress,\n max_slippage_bps: splippageBPS,\n base_transaction: transaction,\n };\n } else {\n params = {\n trade: quote.trade,\n sui_address: senderAddress,\n max_slippage_bps: splippageBPS,\n };\n }\n\n if (debug) {\n console.debug(\"fetchTx Params:\");\n console.debug(params);\n }\n const trade = await this.hopAPI.fetchTx(params);\n\n return trade.transaction;\n }\n}\nexport async function getWUSDCPrice(): Promise<number | undefined> {\n const [wusdcPrice] = await getLatestPrices([\"USDC/USD\"], false);\n return Number(wusdcPrice);\n}\nexport async function getBlubPrice(): Promise<number | undefined> {\n // return 1;\n const hopGateway = new HopGateway(hopSDKOptions);\n\n const swapOptions: HopSwapOptions = {\n pair: { coinA: coinsList.BLUB, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n inAmount: new BN(1_000_000_000),\n slippage: 1,\n };\n\n const res = await hopGateway.getQuote(swapOptions);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return (\n Number(res.amount_out_with_fee) * Number(latestUSDCPrice) * 1e-6 * 1e-7\n );\n } else {\n return undefined;\n }\n}\n\nexport async function getFudPrice(): Promise<number | undefined> {\n const hopGateway = new HopGateway(hopSDKOptions);\n\n const swapOptions: HopSwapOptions = {\n pair: { coinA: coinsList.FUD, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n inAmount: new BN(1_000_000_000_000),\n slippage: 1,\n };\n\n const res = await hopGateway.getQuote(swapOptions);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return (\n Number(res.amount_out_with_fee) * Number(latestUSDCPrice) * 1e-6 * 1e-7\n );\n } else {\n return undefined;\n }\n}\nexport async function getWsolPrice(): Promise<number | undefined> {\n const hopGateway = new HopGateway(hopSDKOptions);\n\n const swapOptions: HopSwapOptions = {\n pair: { coinA: coinsList.WSOL, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n inAmount: new BN(1_000_000_00),\n slippage: 1,\n };\n\n const res = await hopGateway.getQuote(swapOptions);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return Number(res.amount_out_with_fee) * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n"]}
@@ -1,4 +1,6 @@
1
1
  import { PythPriceIdPair } from "../common/pyth.js";
2
+ export declare const coinsToGetFromPyth: PythPriceIdPair[];
3
+ export declare function getMultiLatestPrices(): Promise<void>;
2
4
  export declare function getLatestPrices(pairs: PythPriceIdPair[], ignoreCache: boolean): Promise<string[]>;
3
5
  export declare function getLatestTokenPricePairs(pairs: PythPriceIdPair[], ignoreCache: boolean): Promise<{
4
6
  [key: string]: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,wBAAsB,eAAe,CACnC,KAAK,EAAE,eAAe,EAAE,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,eAAe,EAAE,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC,CAWhD"}
1
+ {"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA2B/C,CAAC;AAEF,wBAAsB,oBAAoB,kBAQzC;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,eAAe,EAAE,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,eAAe,EAAE,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC,CAWhD"}
@@ -1,9 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.coinsToGetFromPyth = void 0;
4
+ exports.getMultiLatestPrices = getMultiLatestPrices;
3
5
  exports.getLatestPrices = getLatestPrices;
4
6
  exports.getLatestTokenPricePairs = getLatestTokenPricePairs;
5
7
  const simpleCache_js_1 = require("./simpleCache.js");
6
8
  const latestPriceCache = new simpleCache_js_1.SimpleCache(5000);
9
+ exports.coinsToGetFromPyth = [
10
+ "SUI/USD",
11
+ "USDC/USD",
12
+ "USDT/USD",
13
+ "HASUI/USD",
14
+ "CETUS/USD",
15
+ "VSUI/USD",
16
+ "NAVX/USD",
17
+ "SCA/USD",
18
+ "AFSUI/USD",
19
+ "WETH/USD",
20
+ "WBTC/USD",
21
+ "TURBOS/USD",
22
+ "CELO/USD",
23
+ "SLP/USD",
24
+ "SOL/USD",
25
+ "APT/USD",
26
+ "BUCK/USD",
27
+ "WSOL/USD",
28
+ "WUSDC/USD",
29
+ "ALPHA/USD",
30
+ "FUD/USD",
31
+ "BLUB/USD",
32
+ "ETH/USD",
33
+ "DEEP/USD",
34
+ "AUSD/USD",
35
+ "USDY/USD",
36
+ ];
37
+ async function getMultiLatestPrices() {
38
+ const pricesFromPyth = await getLatestPrices(exports.coinsToGetFromPyth, true);
39
+ pricesFromPyth.forEach((price, index) => {
40
+ if (price) {
41
+ const cacheKey = `getLatestPrice-${exports.coinsToGetFromPyth[index]}`;
42
+ latestPriceCache.set(cacheKey, price);
43
+ }
44
+ });
45
+ }
7
46
  async function getLatestPrices(pairs, ignoreCache) {
8
47
  const pairsToFetch = [];
9
48
  const pairsToFetchIndexes = [];
@@ -1 +1 @@
1
- {"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"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","sourcesContent":["import { PythPriceIdPair } from \"../common/pyth.js\";\nimport { SimpleCache } from \"./simpleCache.js\";\n\nconst latestPriceCache = new SimpleCache<string>(5000);\nexport async function getLatestPrices(\n pairs: PythPriceIdPair[],\n ignoreCache: boolean,\n): Promise<string[]> {\n const pairsToFetch: PythPriceIdPair[] = [];\n const pairsToFetchIndexes: number[] = [];\n\n const prices: string[] = pairs.map((pair, index) => {\n const cacheKey = `getLatestPrice-${pair}`;\n if (ignoreCache) {\n latestPriceCache.delete(cacheKey);\n }\n const cachedResponse = latestPriceCache.get(cacheKey);\n if (cachedResponse) {\n return cachedResponse;\n }\n pairsToFetch.push(pair);\n pairsToFetchIndexes.push(index);\n return \"\";\n });\n if (pairsToFetch.length > 0) {\n try {\n const fetchedPrices = await fetchPricesFromAlphaAPI(pairsToFetch);\n pairsToFetch.forEach((_pair, i) => {\n const price = fetchedPrices[i];\n prices[pairsToFetchIndexes[i]] = price.price;\n });\n } catch (error) {\n console.error(\n `Error in getLatestPrices for pairs ${pairsToFetch}:`,\n error,\n );\n }\n }\n prices.forEach((price, i) => {\n if (price) {\n const cacheKey = `getLatestPrice-${pairs[i]}`;\n latestPriceCache.set(cacheKey, price);\n }\n });\n return prices;\n}\n\nexport async function getLatestTokenPricePairs(\n pairs: PythPriceIdPair[],\n ignoreCache: boolean,\n): Promise<{ [key: string]: string | undefined }> {\n const priceMap: { [key: string]: string | undefined } = {};\n\n // Use getLatestPrices to fetch all prices at once\n const prices = await getLatestPrices(pairs, ignoreCache);\n\n pairs.forEach((pair, index) => {\n priceMap[pair] = prices[index];\n });\n\n return priceMap;\n}\n\ninterface PythPricePair {\n pair: PythPriceIdPair;\n price: string;\n}\n\nasync function fetchPricesFromAlphaAPI(\n pairs: PythPriceIdPair[],\n): Promise<PythPricePair[]> {\n const req_url = `https://api.alphafi.xyz/alpha/fetchPrices?pairs=${pairs.join(\",\")}`;\n let prices: PythPricePair[] = [];\n try {\n const res = await fetch(req_url);\n if (!res.ok) {\n throw new Error(`HTTP error! status: ${res.status}`);\n }\n const data = (await res.json()) as PythPricePair[];\n prices = data;\n } catch (error) {\n console.error(`Error fetching prices for pairs ${pairs}:`, error);\n throw error;\n }\n return prices;\n}\n"]}
1
+ {"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"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","sourcesContent":["import { PythPriceIdPair } from \"../common/pyth.js\";\nimport { SimpleCache } from \"./simpleCache.js\";\n\nconst latestPriceCache = new SimpleCache<string>(5000);\n\nexport const coinsToGetFromPyth: PythPriceIdPair[] = [\n \"SUI/USD\" as PythPriceIdPair,\n \"USDC/USD\" as PythPriceIdPair,\n \"USDT/USD\" as PythPriceIdPair,\n \"HASUI/USD\" as PythPriceIdPair,\n \"CETUS/USD\" as PythPriceIdPair,\n \"VSUI/USD\" as PythPriceIdPair,\n \"NAVX/USD\" as PythPriceIdPair,\n \"SCA/USD\" as PythPriceIdPair,\n \"AFSUI/USD\" as PythPriceIdPair,\n \"WETH/USD\" as PythPriceIdPair,\n \"WBTC/USD\" as PythPriceIdPair,\n \"TURBOS/USD\" as PythPriceIdPair,\n \"CELO/USD\" as PythPriceIdPair,\n \"SLP/USD\" as PythPriceIdPair,\n \"SOL/USD\" as PythPriceIdPair,\n \"APT/USD\" as PythPriceIdPair,\n \"BUCK/USD\" as PythPriceIdPair,\n \"WSOL/USD\" as PythPriceIdPair,\n \"WUSDC/USD\" as PythPriceIdPair,\n \"ALPHA/USD\" as PythPriceIdPair,\n \"FUD/USD\" as PythPriceIdPair,\n \"BLUB/USD\" as PythPriceIdPair,\n \"ETH/USD\" as PythPriceIdPair,\n \"DEEP/USD\" as PythPriceIdPair,\n \"AUSD/USD\" as PythPriceIdPair,\n \"USDY/USD\" as PythPriceIdPair,\n];\n\nexport async function getMultiLatestPrices() {\n const pricesFromPyth = await getLatestPrices(coinsToGetFromPyth, true);\n pricesFromPyth.forEach((price, index) => {\n if (price) {\n const cacheKey = `getLatestPrice-${coinsToGetFromPyth[index]}`;\n latestPriceCache.set(cacheKey, price);\n }\n });\n}\n\nexport async function getLatestPrices(\n pairs: PythPriceIdPair[],\n ignoreCache: boolean,\n): Promise<string[]> {\n const pairsToFetch: PythPriceIdPair[] = [];\n const pairsToFetchIndexes: number[] = [];\n\n const prices: string[] = pairs.map((pair, index) => {\n const cacheKey = `getLatestPrice-${pair}`;\n if (ignoreCache) {\n latestPriceCache.delete(cacheKey);\n }\n const cachedResponse = latestPriceCache.get(cacheKey);\n if (cachedResponse) {\n return cachedResponse;\n }\n pairsToFetch.push(pair);\n pairsToFetchIndexes.push(index);\n return \"\";\n });\n if (pairsToFetch.length > 0) {\n try {\n const fetchedPrices = await fetchPricesFromAlphaAPI(pairsToFetch);\n pairsToFetch.forEach((_pair, i) => {\n const price = fetchedPrices[i];\n prices[pairsToFetchIndexes[i]] = price.price;\n });\n } catch (error) {\n console.error(\n `Error in getLatestPrices for pairs ${pairsToFetch}:`,\n error,\n );\n }\n }\n prices.forEach((price, i) => {\n if (price) {\n const cacheKey = `getLatestPrice-${pairs[i]}`;\n latestPriceCache.set(cacheKey, price);\n }\n });\n return prices;\n}\n\nexport async function getLatestTokenPricePairs(\n pairs: PythPriceIdPair[],\n ignoreCache: boolean,\n): Promise<{ [key: string]: string | undefined }> {\n const priceMap: { [key: string]: string | undefined } = {};\n\n // Use getLatestPrices to fetch all prices at once\n const prices = await getLatestPrices(pairs, ignoreCache);\n\n pairs.forEach((pair, index) => {\n priceMap[pair] = prices[index];\n });\n\n return priceMap;\n}\n\ninterface PythPricePair {\n pair: PythPriceIdPair;\n price: string;\n}\n\nasync function fetchPricesFromAlphaAPI(\n pairs: PythPriceIdPair[],\n): Promise<PythPricePair[]> {\n const req_url = `https://api.alphafi.xyz/alpha/fetchPrices?pairs=${pairs.join(\",\")}`;\n let prices: PythPricePair[] = [];\n try {\n const res = await fetch(req_url);\n if (!res.ok) {\n throw new Error(`HTTP error! status: ${res.status}`);\n }\n const data = (await res.json()) as PythPricePair[];\n prices = data;\n } catch (error) {\n console.error(`Error fetching prices for pairs ${pairs}:`, error);\n throw error;\n }\n return prices;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"userHoldings.d.ts","sourceRoot":"","sources":["../../../src/utils/userHoldings.ts"],"names":[],"mappings":"AASA,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAiBrB,wBAAsB,uBAAuB,CAAC,eAAe,EAAE,WAAW,EAAE,0BAmB3E;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,oEA4BnE;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,uBAAuB,GAC9B,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA0B3B;AAkJD,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,EAAE,GACtE,OAAO,CAAC,WAAW,EAAE,CAAC,CAoDxB"}
1
+ {"version":3,"file":"userHoldings.d.ts","sourceRoot":"","sources":["../../../src/utils/userHoldings.ts"],"names":[],"mappings":"AASA,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAarB,wBAAsB,uBAAuB,CAAC,eAAe,EAAE,WAAW,EAAE,0BAmB3E;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,oEA4BnE;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,uBAAuB,GAC9B,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA4B3B;AA0JD,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,EAAE,GACtE,OAAO,CAAC,WAAW,EAAE,CAAC,CAoDxB"}