@alphafi/alphafi-sdk 0.0.32 → 0.0.34

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 (218) hide show
  1. package/dist/cjs/collectReward.d.ts +2 -0
  2. package/dist/cjs/collectReward.d.ts.map +1 -0
  3. package/dist/cjs/collectReward.js +7 -0
  4. package/dist/cjs/collectReward.js.map +1 -0
  5. package/dist/cjs/common/alphaTypes.d.ts +110 -0
  6. package/dist/cjs/common/cetus_mainnet_config.d.ts +3 -0
  7. package/dist/cjs/common/coins.d.ts +5 -0
  8. package/dist/cjs/common/constants.d.ts +998 -0
  9. package/dist/cjs/common/constants.d.ts.map +1 -1
  10. package/dist/cjs/common/constants.js +74 -1
  11. package/dist/cjs/common/constants.js.map +1 -1
  12. package/dist/cjs/common/maps.d.ts +76 -0
  13. package/dist/cjs/common/maps.d.ts.map +1 -1
  14. package/dist/cjs/common/maps.js +162 -23
  15. package/dist/cjs/common/maps.js.map +1 -1
  16. package/dist/cjs/common/pyth.d.ts +7 -0
  17. package/dist/cjs/common/types.d.ts +463 -0
  18. package/dist/cjs/common/types.d.ts.map +1 -1
  19. package/dist/cjs/common/types.js.map +1 -1
  20. package/dist/cjs/example.d.ts +3 -0
  21. package/dist/cjs/getAirdropShare.d.ts +2 -0
  22. package/dist/cjs/getAllVaults.d.ts +4 -0
  23. package/dist/cjs/getAlphaUnlocks.d.ts +14 -0
  24. package/dist/cjs/getAprs.d.ts +6 -0
  25. package/dist/cjs/getHoldersFromTransactions.d.ts +9 -0
  26. package/dist/cjs/getLastAutoCompoundTime.d.ts +3 -0
  27. package/dist/cjs/getLastAutoCompoundTime.js +1 -1
  28. package/dist/cjs/getLastAutoCompoundTime.js.map +1 -1
  29. package/dist/cjs/getRebalanceHistory.d.ts +4 -0
  30. package/dist/cjs/getVaultBalances.d.ts +9 -0
  31. package/dist/cjs/getVaults.d.ts +5 -0
  32. package/dist/cjs/graphql/client.d.ts +4 -0
  33. package/dist/cjs/graphql/executeMutations.d.ts +4 -0
  34. package/dist/cjs/graphql/fetchAutoCompoundingEventsGql.d.ts +27 -0
  35. package/dist/cjs/graphql/fetchData.d.ts +11 -0
  36. package/dist/cjs/graphql/fetchNftHolders.d.ts +3 -0
  37. package/dist/cjs/graphql/fetchReceipts.d.ts +3 -0
  38. package/dist/cjs/graphql/getMultiReceipts.d.ts +3 -0
  39. package/dist/cjs/graphql/getMultiReceipts.d.ts.map +1 -1
  40. package/dist/cjs/graphql/getMultiReceipts.js +9 -2
  41. package/dist/cjs/graphql/getMultiReceipts.js.map +1 -1
  42. package/dist/cjs/graphql/mutations.d.ts +4 -0
  43. package/dist/cjs/graphql/parseData.d.ts +2 -0
  44. package/dist/cjs/graphql/parseLockedTableId.d.ts +7 -0
  45. package/dist/cjs/graphql/queries/autoCompoundEvents.d.ts +2 -0
  46. package/dist/cjs/graphql/queries/cetusPools.d.ts +2 -0
  47. package/dist/cjs/graphql/queries/getMultiReceipts.d.ts +2 -0
  48. package/dist/cjs/graphql/queries/investors.d.ts +2 -0
  49. package/dist/cjs/graphql/queries/lockedTableData.d.ts +2 -0
  50. package/dist/cjs/graphql/queries/lockedTableDataFragment.d.ts +2 -0
  51. package/dist/cjs/graphql/queries/nftHolders.d.ts +2 -0
  52. package/dist/cjs/graphql/queries/pools.d.ts +2 -0
  53. package/dist/cjs/graphql/queries/receiptData.d.ts +2 -0
  54. package/dist/cjs/graphql/queries/userVaultBalances.d.ts +2 -0
  55. package/dist/cjs/graphql/queries/userVaults.d.ts +2 -0
  56. package/dist/cjs/graphql/queries.d.ts +15 -0
  57. package/dist/cjs/graphql/types.d.ts +112 -0
  58. package/dist/cjs/index.d.ts +29 -0
  59. package/dist/cjs/index.d.ts.map +1 -1
  60. package/dist/cjs/index.js +14 -3
  61. package/dist/cjs/index.js.map +1 -1
  62. package/dist/cjs/sui-sdk/client.d.ts +31 -0
  63. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.d.ts +8 -0
  64. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +1 -0
  65. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js +126 -0
  66. package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js.map +1 -0
  67. package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts +6 -0
  68. package/dist/cjs/sui-sdk/events/fetchEvents.d.ts +3 -0
  69. package/dist/cjs/sui-sdk/events/fetchEvents.d.ts.map +1 -1
  70. package/dist/cjs/sui-sdk/events/fetchEvents.js +64 -2
  71. package/dist/cjs/sui-sdk/events/fetchEvents.js.map +1 -1
  72. package/dist/cjs/sui-sdk/events/fetchLiquidityChangeEvents.d.ts +3 -0
  73. package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.d.ts +5 -0
  74. package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.d.ts +3 -0
  75. package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.js +1 -1
  76. package/dist/cjs/sui-sdk/events/fetchWithdrawV2Events.js.map +1 -1
  77. package/dist/cjs/sui-sdk/events/parseData.d.ts +4 -0
  78. package/dist/cjs/sui-sdk/events/types.d.ts +183 -0
  79. package/dist/cjs/sui-sdk/events/types.d.ts.map +1 -1
  80. package/dist/cjs/sui-sdk/events/types.js.map +1 -1
  81. package/dist/cjs/sui-sdk/functions/fetchTableData.d.ts +50 -0
  82. package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts +3 -0
  83. package/dist/cjs/sui-sdk/functions/fetchUserVaults.d.ts +3 -0
  84. package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts +33 -0
  85. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +29 -0
  86. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  87. package/dist/cjs/sui-sdk/functions/getReceipts.js +53 -0
  88. package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -1
  89. package/dist/cjs/sui-sdk/transactions/constants.d.ts +4 -0
  90. package/dist/cjs/sui-sdk/transactions/fetchTransactions.d.ts +4 -0
  91. package/dist/cjs/sui-sdk/transactions/types.d.ts +8 -0
  92. package/dist/cjs/types.d.ts +213 -0
  93. package/dist/cjs/utils/clmm/prices.d.ts +20 -0
  94. package/dist/cjs/utils/clmm/tokenAmountFromLiquidity.d.ts +11 -0
  95. package/dist/cjs/utils/clmm/types.d.ts +25 -0
  96. package/dist/cjs/utils/constants.d.ts +3 -0
  97. package/dist/cjs/utils/getHoldersFromTransactionsUtils.d.ts +6 -0
  98. package/dist/cjs/utils/getReceipts.d.ts +4 -0
  99. package/dist/cjs/utils/hop.d.ts +16 -0
  100. package/dist/cjs/utils/prices.d.ts +6 -0
  101. package/dist/cjs/utils/simpleCache.d.ts +10 -0
  102. package/dist/cjs/utils/types.d.ts +5 -0
  103. package/dist/cjs/utils/userHoldings.d.ts +6 -0
  104. package/dist/cjs/utils/userHoldings.d.ts.map +1 -1
  105. package/dist/cjs/utils/userHoldings.js +26 -7
  106. package/dist/cjs/utils/userHoldings.js.map +1 -1
  107. package/dist/cjs/vaultFunctions.d.ts +5 -0
  108. package/dist/esm/collectReward.d.ts +2 -0
  109. package/dist/esm/collectReward.d.ts.map +1 -0
  110. package/dist/esm/collectReward.js +4 -0
  111. package/dist/esm/collectReward.js.map +1 -0
  112. package/dist/esm/common/alphaTypes.d.ts +110 -0
  113. package/dist/esm/common/cetus_mainnet_config.d.ts +3 -0
  114. package/dist/esm/common/coins.d.ts +5 -0
  115. package/dist/esm/common/constants.d.ts +998 -0
  116. package/dist/esm/common/constants.d.ts.map +1 -1
  117. package/dist/esm/common/constants.js +72 -0
  118. package/dist/esm/common/constants.js.map +1 -1
  119. package/dist/esm/common/maps.d.ts +76 -0
  120. package/dist/esm/common/maps.d.ts.map +1 -1
  121. package/dist/esm/common/maps.js +161 -23
  122. package/dist/esm/common/maps.js.map +1 -1
  123. package/dist/esm/common/pyth.d.ts +7 -0
  124. package/dist/esm/common/types.d.ts +463 -0
  125. package/dist/esm/common/types.d.ts.map +1 -1
  126. package/dist/esm/common/types.js.map +1 -1
  127. package/dist/esm/example.d.ts +3 -0
  128. package/dist/esm/getAirdropShare.d.ts +2 -0
  129. package/dist/esm/getAllVaults.d.ts +4 -0
  130. package/dist/esm/getAlphaUnlocks.d.ts +14 -0
  131. package/dist/esm/getAprs.d.ts +6 -0
  132. package/dist/esm/getHoldersFromTransactions.d.ts +9 -0
  133. package/dist/esm/getLastAutoCompoundTime.d.ts +3 -0
  134. package/dist/esm/getLastAutoCompoundTime.js +1 -1
  135. package/dist/esm/getLastAutoCompoundTime.js.map +1 -1
  136. package/dist/esm/getRebalanceHistory.d.ts +4 -0
  137. package/dist/esm/getVaultBalances.d.ts +9 -0
  138. package/dist/esm/getVaults.d.ts +5 -0
  139. package/dist/esm/graphql/client.d.ts +4 -0
  140. package/dist/esm/graphql/executeMutations.d.ts +4 -0
  141. package/dist/esm/graphql/fetchAutoCompoundingEventsGql.d.ts +27 -0
  142. package/dist/esm/graphql/fetchData.d.ts +11 -0
  143. package/dist/esm/graphql/fetchNftHolders.d.ts +3 -0
  144. package/dist/esm/graphql/fetchReceipts.d.ts +3 -0
  145. package/dist/esm/graphql/getMultiReceipts.d.ts +3 -0
  146. package/dist/esm/graphql/getMultiReceipts.d.ts.map +1 -1
  147. package/dist/esm/graphql/getMultiReceipts.js +9 -2
  148. package/dist/esm/graphql/getMultiReceipts.js.map +1 -1
  149. package/dist/esm/graphql/mutations.d.ts +4 -0
  150. package/dist/esm/graphql/parseData.d.ts +2 -0
  151. package/dist/esm/graphql/parseLockedTableId.d.ts +7 -0
  152. package/dist/esm/graphql/queries/autoCompoundEvents.d.ts +2 -0
  153. package/dist/esm/graphql/queries/cetusPools.d.ts +2 -0
  154. package/dist/esm/graphql/queries/getMultiReceipts.d.ts +2 -0
  155. package/dist/esm/graphql/queries/investors.d.ts +2 -0
  156. package/dist/esm/graphql/queries/lockedTableData.d.ts +2 -0
  157. package/dist/esm/graphql/queries/lockedTableDataFragment.d.ts +2 -0
  158. package/dist/esm/graphql/queries/nftHolders.d.ts +2 -0
  159. package/dist/esm/graphql/queries/pools.d.ts +2 -0
  160. package/dist/esm/graphql/queries/receiptData.d.ts +2 -0
  161. package/dist/esm/graphql/queries/userVaultBalances.d.ts +2 -0
  162. package/dist/esm/graphql/queries/userVaults.d.ts +2 -0
  163. package/dist/esm/graphql/queries.d.ts +15 -0
  164. package/dist/esm/graphql/types.d.ts +112 -0
  165. package/dist/esm/index.d.ts +29 -0
  166. package/dist/esm/index.d.ts.map +1 -1
  167. package/dist/esm/index.js +5 -3
  168. package/dist/esm/index.js.map +1 -1
  169. package/dist/esm/sui-sdk/client.d.ts +31 -0
  170. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.d.ts +8 -0
  171. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +1 -0
  172. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js +123 -0
  173. package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js.map +1 -0
  174. package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts +6 -0
  175. package/dist/esm/sui-sdk/events/fetchEvents.d.ts +3 -0
  176. package/dist/esm/sui-sdk/events/fetchEvents.d.ts.map +1 -1
  177. package/dist/esm/sui-sdk/events/fetchEvents.js +64 -2
  178. package/dist/esm/sui-sdk/events/fetchEvents.js.map +1 -1
  179. package/dist/esm/sui-sdk/events/fetchLiquidityChangeEvents.d.ts +3 -0
  180. package/dist/esm/sui-sdk/events/fetchRebalanceEvents.d.ts +5 -0
  181. package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.d.ts +3 -0
  182. package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.js +1 -1
  183. package/dist/esm/sui-sdk/events/fetchWithdrawV2Events.js.map +1 -1
  184. package/dist/esm/sui-sdk/events/parseData.d.ts +4 -0
  185. package/dist/esm/sui-sdk/events/types.d.ts +183 -0
  186. package/dist/esm/sui-sdk/events/types.d.ts.map +1 -1
  187. package/dist/esm/sui-sdk/events/types.js.map +1 -1
  188. package/dist/esm/sui-sdk/functions/fetchTableData.d.ts +50 -0
  189. package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts +3 -0
  190. package/dist/esm/sui-sdk/functions/fetchUserVaults.d.ts +3 -0
  191. package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts +33 -0
  192. package/dist/esm/sui-sdk/functions/getReceipts.d.ts +29 -0
  193. package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  194. package/dist/esm/sui-sdk/functions/getReceipts.js +52 -0
  195. package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -1
  196. package/dist/esm/sui-sdk/transactions/constants.d.ts +4 -0
  197. package/dist/esm/sui-sdk/transactions/fetchTransactions.d.ts +4 -0
  198. package/dist/esm/sui-sdk/transactions/types.d.ts +8 -0
  199. package/dist/esm/types.d.ts +213 -0
  200. package/dist/esm/utils/clmm/prices.d.ts +20 -0
  201. package/dist/esm/utils/clmm/tokenAmountFromLiquidity.d.ts +11 -0
  202. package/dist/esm/utils/clmm/types.d.ts +25 -0
  203. package/dist/esm/utils/constants.d.ts +3 -0
  204. package/dist/esm/utils/getHoldersFromTransactionsUtils.d.ts +6 -0
  205. package/dist/esm/utils/getReceipts.d.ts +4 -0
  206. package/dist/esm/utils/hop.d.ts +16 -0
  207. package/dist/esm/utils/prices.d.ts +6 -0
  208. package/dist/esm/utils/simpleCache.d.ts +10 -0
  209. package/dist/esm/utils/types.d.ts +5 -0
  210. package/dist/esm/utils/userHoldings.d.ts +6 -0
  211. package/dist/esm/utils/userHoldings.d.ts.map +1 -1
  212. package/dist/esm/utils/userHoldings.js +27 -8
  213. package/dist/esm/utils/userHoldings.js.map +1 -1
  214. package/dist/esm/vaultFunctions.d.ts +5 -0
  215. package/package.json +3 -3
  216. package/dist/index.js +0 -3
  217. package/dist/index.js.LICENSE.txt +0 -48
  218. package/dist/index.js.map +0 -1
@@ -0,0 +1,50 @@
1
+ export interface LockedAlphaObject {
2
+ name: {
3
+ type: string;
4
+ value: string;
5
+ };
6
+ bcsName: string;
7
+ type: string;
8
+ objectType: string;
9
+ objectId: string;
10
+ version: string;
11
+ digest: string;
12
+ }
13
+ export interface LockedAlphaItem {
14
+ objectId: string;
15
+ version: string;
16
+ digest: string;
17
+ type: string;
18
+ owner: {
19
+ ObjectOwner: string;
20
+ };
21
+ previousTransaction: string;
22
+ storageRebate: string;
23
+ content: {
24
+ dataType: string;
25
+ type: string;
26
+ hasPublicTransfer: boolean;
27
+ fields: {
28
+ id: {
29
+ id: string;
30
+ };
31
+ name: string;
32
+ value: {
33
+ type: string;
34
+ fields: {
35
+ next: string;
36
+ prev: string;
37
+ value: string;
38
+ };
39
+ };
40
+ };
41
+ };
42
+ }
43
+ export type AlphaUnlocks = {
44
+ address: string;
45
+ tokens: string;
46
+ timestampMs: number;
47
+ };
48
+ export declare function getTableDataXtokens(owner: string, table: string): Promise<AlphaUnlocks[] | undefined>;
49
+ export declare function getUnlocksData(owner_table: [string, string][]): Promise<AlphaUnlocks[]>;
50
+ //# sourceMappingURL=fetchTableData.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { AlphaFiVaultBalance, PoolName } from "../../common/types.js";
2
+ export declare function fetchUserVaultBalances(address: string, poolName: PoolName): Promise<AlphaFiVaultBalance | undefined>;
3
+ //# sourceMappingURL=fetchUserVaultBalances.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { AlphaFiVault } from "../../index.js";
2
+ export declare function fetchUserVaults(address: string): Promise<AlphaFiVault[]>;
3
+ //# sourceMappingURL=fetchUserVaults.d.ts.map
@@ -0,0 +1,33 @@
1
+ import { SuiClient } from "@mysten/sui/client";
2
+ import { PoolName, SingleAssetPoolNames } from "../../index.js";
3
+ export declare function getAlphaPortfolioAmount(poolName: PoolName, options: {
4
+ suiClient: SuiClient;
5
+ address: string;
6
+ isLocked?: boolean;
7
+ }): Promise<string | undefined>;
8
+ export declare function getAlphaPortfolioAmountInUSD(poolName: PoolName, options: {
9
+ suiClient: SuiClient;
10
+ address: string;
11
+ isLocked?: boolean;
12
+ }): Promise<string | undefined>;
13
+ export declare function getPortfolioAmount(poolName: PoolName, options: {
14
+ suiClient: SuiClient;
15
+ address: string;
16
+ isLocked?: boolean;
17
+ }, ignoreCache?: boolean): Promise<[number, number] | undefined>;
18
+ export declare function getDoubleAssetPortfolioAmountInUSD(poolName: PoolName, options: {
19
+ suiClient: SuiClient;
20
+ address: string;
21
+ isLocked?: boolean;
22
+ }, ignoreCache?: boolean): Promise<string | undefined>;
23
+ export declare function getSingleAssetPortfolioAmount(poolName: SingleAssetPoolNames, options: {
24
+ suiClient: SuiClient;
25
+ address: string;
26
+ isLocked?: boolean;
27
+ }, ignoreCache?: boolean): Promise<number>;
28
+ export declare function getSingleAssetPortfolioAmountInUSD(poolName: SingleAssetPoolNames, options: {
29
+ suiClient: SuiClient;
30
+ address: string;
31
+ isLocked?: boolean;
32
+ }, ignoreCache?: boolean): Promise<string | undefined>;
33
+ //# sourceMappingURL=getPortfolioAmounts.d.ts.map
@@ -0,0 +1,29 @@
1
+ import { AlphaPoolType, CetusInvestor, NaviInvestor, CommonInvestorFields, CetusPoolType, PoolName, PoolType, Receipt, SingleAssetPoolNames, NaviVoloData } from "../../index.js";
2
+ import { Decimal } from "decimal.js";
3
+ export declare function getReceipts(poolName: string, address: string, ignoreCache?: boolean): Promise<Receipt[]>;
4
+ export declare function getPoolExchangeRate(poolName: PoolName, ignoreCache?: boolean): Promise<Decimal | undefined>;
5
+ export declare function getCoinAmountsFromLiquidity(poolName: PoolName, liquidity: number): Promise<[number, number]>;
6
+ export declare function getPool(poolName: string, ignoreCache?: boolean): Promise<PoolType | AlphaPoolType | undefined>;
7
+ export declare function getCetusPool(poolName: string, ignoreCache?: boolean): Promise<CetusPoolType | undefined>;
8
+ export declare function getCetusInvestor(poolName: PoolName, ignoreCache?: boolean): Promise<CetusInvestor | undefined>;
9
+ export declare function getNaviInvestor(poolName: SingleAssetPoolNames, ignoreCache?: boolean): Promise<(NaviInvestor & CommonInvestorFields) | undefined>;
10
+ export declare function fetchVoloExchangeRate(ignoreCache?: boolean): Promise<NaviVoloData>;
11
+ export declare function multiGetNaviInvestor(poolNames: SingleAssetPoolNames[], ignoreCache?: boolean): Promise<{
12
+ ALPHA?: (NaviInvestor & CommonInvestorFields) | undefined;
13
+ "NAVI-SUI"?: (NaviInvestor & CommonInvestorFields) | undefined;
14
+ "NAVI-VSUI"?: (NaviInvestor & CommonInvestorFields) | undefined;
15
+ "NAVI-WETH"?: (NaviInvestor & CommonInvestorFields) | undefined;
16
+ "NAVI-USDT"?: (NaviInvestor & CommonInvestorFields) | undefined;
17
+ "NAVI-WUSDC"?: (NaviInvestor & CommonInvestorFields) | undefined;
18
+ "NAVI-HASUI"?: (NaviInvestor & CommonInvestorFields) | undefined;
19
+ "NAVI-LOOP-SUI-VSUI"?: (NaviInvestor & CommonInvestorFields) | undefined;
20
+ "NAVI-LOOP-USDC-USDT"?: (NaviInvestor & CommonInvestorFields) | undefined;
21
+ "NAVI-USDC"?: (NaviInvestor & CommonInvestorFields) | undefined;
22
+ "BUCKET-BUCK"?: (NaviInvestor & CommonInvestorFields) | undefined;
23
+ "NAVI-USDY"?: (NaviInvestor & CommonInvestorFields) | undefined;
24
+ "NAVI-AUSD"?: (NaviInvestor & CommonInvestorFields) | undefined;
25
+ "NAVI-ETH"?: (NaviInvestor & CommonInvestorFields) | undefined;
26
+ "NAVI-LOOP-HASUI-SUI"?: (NaviInvestor & CommonInvestorFields) | undefined;
27
+ "NAVI-LOOP-USDT-USDC"?: (NaviInvestor & CommonInvestorFields) | undefined;
28
+ }>;
29
+ //# sourceMappingURL=getReceipts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getReceipts.d.ts","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/getReceipts.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,aAAa,EAEb,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,oBAAoB,EACpB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,CAoEpB;AAID,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAiD9B;AAED,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA6B3B;AAOD,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC,CAkD/C;AAOD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAgDpC;AAOD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA8CpC;AASD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,CAAC,YAAY,GAAG,oBAAoB,CAAC,GAAG,SAAS,CAAC,CA8C5D;AAOD,wBAAsB,qBAAqB,CACzC,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,YAAY,CAAC,CAoCvB"}
1
+ {"version":3,"file":"getReceipts.d.ts","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/getReceipts.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,aAAa,EAEb,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,oBAAoB,EACpB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,OAAO,EAAE,CAAC,CAsEpB;AAID,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAiD9B;AAED,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA6B3B;AAOD,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC,CAkD/C;AAOD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAgDpC;AAOD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA8CpC;AASD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,CAAC,YAAY,GAAG,oBAAoB,CAAC,GAAG,SAAS,CAAC,CA8C5D;AAOD,wBAAsB,qBAAqB,CACzC,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,YAAY,CAAC,CAoCvB;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,oBAAoB,EAAE,EACjC,WAAW,GAAE,OAAe;;;;;;;;;;;;;;;;;GAuD7B"}
@@ -8,6 +8,7 @@ exports.getCetusPool = getCetusPool;
8
8
  exports.getCetusInvestor = getCetusInvestor;
9
9
  exports.getNaviInvestor = getNaviInvestor;
10
10
  exports.fetchVoloExchangeRate = fetchVoloExchangeRate;
11
+ exports.multiGetNaviInvestor = multiGetNaviInvestor;
11
12
  const tslib_1 = require("tslib");
12
13
  const maps_js_1 = require("../../common/maps.js");
13
14
  const simpleCache_js_1 = require("../../utils/simpleCache.js");
@@ -29,6 +30,9 @@ async function getReceipts(poolName, address, ignoreCache = false) {
29
30
  return cachedResponse;
30
31
  }
31
32
  const nfts = [];
33
+ if (maps_js_1.poolInfo[poolName].receiptType === "") {
34
+ return nfts;
35
+ }
32
36
  let cachedPromise = receiptsPromiseCache.get(receiptsCacheKey);
33
37
  if (!cachedPromise) {
34
38
  cachedPromise = (async () => {
@@ -373,4 +377,53 @@ async function fetchVoloExchangeRate(ignoreCache = false) {
373
377
  }
374
378
  return NaviVoloDetails;
375
379
  }
380
+ async function multiGetNaviInvestor(poolNames, ignoreCache = false) {
381
+ const results = {};
382
+ const missingPoolInvestorIds = [];
383
+ const missingPoolNames = [];
384
+ for (const poolName of poolNames) {
385
+ const cacheKey = `investor_${maps_js_1.poolInfo[poolName.toUpperCase()].investorId}`;
386
+ if (ignoreCache) {
387
+ naviInvestorCache.delete(cacheKey);
388
+ naviInvestorPromiseCache.delete(cacheKey);
389
+ }
390
+ // Check if the investor is already cached
391
+ const cachedInvestor = naviInvestorCache.get(cacheKey);
392
+ if (cachedInvestor) {
393
+ results[poolName] = cachedInvestor;
394
+ continue;
395
+ }
396
+ else {
397
+ // Add to missing list if not in cache
398
+ if (maps_js_1.poolInfo[poolName.toUpperCase()].investorId) {
399
+ missingPoolNames.push(poolName);
400
+ missingPoolInvestorIds.push(maps_js_1.poolInfo[poolName.toUpperCase()].investorId);
401
+ }
402
+ }
403
+ }
404
+ try {
405
+ const suiClient = (0, client_js_1.getSuiClient)();
406
+ const objects = await suiClient.multiGetObjects({
407
+ ids: missingPoolInvestorIds,
408
+ options: { showContent: true },
409
+ });
410
+ for (let i = 0; i < objects.length; i++) {
411
+ const investor = objects[i].data;
412
+ const cacheKey = `investor_${missingPoolInvestorIds[i]}`;
413
+ naviInvestorCache.set(cacheKey, investor);
414
+ results[missingPoolNames[i]] = investor;
415
+ }
416
+ return results;
417
+ }
418
+ catch (err) {
419
+ //improve
420
+ console.error("multiGetNaviInvestor failed for poolNames: ", missingPoolNames.join(", "));
421
+ throw err;
422
+ }
423
+ }
424
+ /*
425
+ for the missing pools, add a promise, each of those promises waits for there respective object from a map, that map is populated all at once,
426
+ problem with concurrency
427
+ */
428
+ // ask how to deal with this kind of probem with high concurrency anf throughput
376
429
  //# sourceMappingURL=getReceipts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getReceipts.js","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/getReceipts.ts"],"names":[],"mappings":"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","sourcesContent":["import { PaginatedObjectsResponse } from \"@mysten/sui/client\";\nimport {\n AlphaPoolType,\n CetusInvestor,\n NaviInvestor,\n CommonInvestorFields,\n CetusPoolType,\n CoinAmounts,\n PoolName,\n PoolType,\n Receipt,\n SingleAssetPoolNames,\n NaviVoloData,\n} from \"../../index.js\";\nimport { cetusPoolMap, poolInfo } from \"../../common/maps.js\";\nimport { SimpleCache } from \"../../utils/simpleCache.js\";\nimport { ClmmPoolUtil, TickMath } from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport BN from \"bn.js\";\nimport { Decimal } from \"decimal.js\";\nimport { getSuiClient } from \"../client.js\";\n\nconst receiptsCache = new SimpleCache<Receipt[]>();\nconst receiptsPromiseCache = new SimpleCache<Promise<Receipt[]>>();\nexport async function getReceipts(\n poolName: string,\n address: string,\n ignoreCache: boolean = false,\n): Promise<Receipt[]> {\n const suiClient = getSuiClient();\n const receiptsCacheKey = `getReceipts-${poolName}-${address}`;\n if (ignoreCache) {\n receiptsCache.delete(receiptsCacheKey);\n receiptsPromiseCache.delete(receiptsCacheKey);\n }\n const cachedResponse = receiptsCache.get(receiptsCacheKey);\n if (cachedResponse) {\n return cachedResponse;\n }\n\n const nfts: Receipt[] = [];\n\n let cachedPromise = receiptsPromiseCache.get(receiptsCacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<Receipt[]> => {\n // const first_package = conf[CONF_ENV].ALPHA_FIRST_PACKAGE_ID;\n let currentCursor: string | null | undefined = null;\n /* eslint-disable-next-line no-constant-condition */\n while (true) {\n const paginatedObjects: PaginatedObjectsResponse =\n await suiClient.getOwnedObjects({\n owner: address,\n cursor: currentCursor,\n filter: {\n // StructType: `${first_package}::${module}::Receipt`,\n StructType: poolInfo[poolName].receiptType,\n },\n options: {\n showType: true,\n showContent: true,\n },\n });\n // Traverse the current page data and push to coins array\n\n paginatedObjects.data.forEach((obj) => {\n const o = obj.data as Receipt;\n if (o) {\n if (poolInfo[poolName].receiptName === o.content.fields.name) {\n nfts.push(o);\n }\n }\n });\n\n // Check if there's a next page\n if (paginatedObjects.hasNextPage && paginatedObjects.nextCursor) {\n currentCursor = paginatedObjects.nextCursor;\n } else {\n // No more pages available\n break;\n }\n }\n receiptsCache.set(receiptsCacheKey, nfts);\n receiptsPromiseCache.delete(receiptsCacheKey);\n return nfts;\n })().catch((error) => {\n // TODO: Jugaad\n if (poolInfo[poolName].parentProtocolName === \"NAVI\") {\n return nfts;\n } else {\n receiptsPromiseCache.delete(receiptsCacheKey); // Remove the promise from cache\n throw error;\n }\n });\n receiptsPromiseCache.set(receiptsCacheKey, cachedPromise);\n }\n return cachedPromise;\n}\n\nconst poolExchangeRateCache = new SimpleCache<Decimal>();\n\nexport async function getPoolExchangeRate(\n poolName: PoolName,\n ignoreCache: boolean = false,\n): Promise<Decimal | undefined> {\n const poolExchangeRateCacheKey = `getPoolExchangeRate-${poolName}`;\n if (ignoreCache) {\n poolExchangeRateCache.delete(poolExchangeRateCacheKey);\n }\n const cachedResponse = poolExchangeRateCache.get(poolExchangeRateCacheKey);\n if (cachedResponse) {\n return cachedResponse;\n }\n\n let pool: PoolType | AlphaPoolType | undefined;\n try {\n if (poolName === \"ALPHA\") {\n pool = await getPool(\"ALPHA\");\n } else if (\n poolName === \"ALPHA-SUI\" ||\n poolName === \"USDT-WUSDC\" ||\n poolName === \"USDY-WUSDC\" ||\n poolName === \"HASUI-SUI\" ||\n poolName === \"WUSDC-SUI\" ||\n poolName === \"WETH-WUSDC\"\n ) {\n pool = await getPool(poolName);\n } else {\n pool = await getPool(poolName);\n }\n if (pool) {\n const xTokenSupply = new Decimal(pool.content.fields.xTokenSupply);\n let tokensInvested = new Decimal(pool.content.fields.tokensInvested);\n if (poolName == \"ALPHA\") {\n tokensInvested = new Decimal(pool.content.fields.alpha_bal);\n }\n\n // Check for division by zero\n if (xTokenSupply.eq(0)) {\n console.error(\"Division by zero error: tokensInvested is zero.\");\n return undefined;\n }\n const poolExchangeRate = tokensInvested.div(xTokenSupply);\n\n poolExchangeRateCache.set(poolExchangeRateCacheKey, poolExchangeRate);\n\n return poolExchangeRate;\n }\n } catch (e) {\n console.error(`getPoolExchangeRate failed for poolName: ${poolName}`);\n }\n\n return undefined;\n}\n\nexport async function getCoinAmountsFromLiquidity(\n poolName: PoolName,\n liquidity: number,\n): Promise<[number, number]> {\n const cetus_pool = await getCetusPool(poolName);\n const cetusInvestor = await getCetusInvestor(poolName);\n\n const upper_bound = 443636;\n let lower_tick = Number(cetusInvestor!.content.fields.lower_tick);\n let upper_tick = Number(cetusInvestor!.content.fields.upper_tick);\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\n if (cetus_pool) {\n const liquidityInt = Math.floor(liquidity);\n const coin_amounts: CoinAmounts = ClmmPoolUtil.getCoinAmountFromLiquidity(\n new BN(`${liquidityInt}`),\n new BN(cetus_pool.content.fields.current_sqrt_price),\n TickMath.tickIndexToSqrtPriceX64(lower_tick),\n TickMath.tickIndexToSqrtPriceX64(upper_tick),\n true,\n );\n\n return [coin_amounts.coinA.toNumber(), coin_amounts.coinB.toNumber()];\n } else {\n return [0, 0];\n }\n}\n\nconst poolCache = new SimpleCache<PoolType | AlphaPoolType>();\nconst poolPromiseCache = new SimpleCache<\n Promise<PoolType | AlphaPoolType | undefined>\n>();\n\nexport async function getPool(\n poolName: string,\n ignoreCache: boolean = false,\n): Promise<PoolType | AlphaPoolType | undefined> {\n const cacheKey = `pool_${poolInfo[poolName.toUpperCase()].poolId}`;\n\n if (ignoreCache) {\n poolCache.delete(cacheKey);\n poolPromiseCache.delete(cacheKey);\n }\n\n // Check if the pool is already in the cache\n const cachedPool = poolCache.get(cacheKey);\n if (cachedPool) {\n return cachedPool;\n }\n\n // Check if there is already a promise in the cache\n let poolPromise = poolPromiseCache.get(cacheKey);\n if (poolPromise) {\n return poolPromise;\n }\n\n // If not, create a new promise and cache it\n poolPromise = (async () => {\n const suiClient = getSuiClient();\n\n try {\n const o = await suiClient.getObject({\n id: poolInfo[poolName].poolId,\n options: {\n showContent: true,\n },\n });\n\n const poolData =\n poolName === \"ALPHA\" ? (o.data as AlphaPoolType) : (o.data as PoolType);\n\n // Cache the pool object\n poolCache.set(cacheKey, poolData);\n return poolData;\n } catch (e) {\n console.error(`Error in getPool; poolName => ${poolName}`);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n poolPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n poolPromiseCache.set(cacheKey, poolPromise);\n return poolPromise;\n}\n\nconst cetusPoolCache = new SimpleCache<CetusPoolType>();\nconst cetusPoolPromiseCache = new SimpleCache<\n Promise<CetusPoolType | undefined>\n>();\n\nexport async function getCetusPool(\n poolName: string,\n ignoreCache: boolean = false,\n): Promise<CetusPoolType | undefined> {\n const cacheKey = `pool_${cetusPoolMap[poolName.toUpperCase()]}`;\n if (ignoreCache) {\n cetusPoolCache.delete(cacheKey);\n cetusPoolPromiseCache.delete(cacheKey);\n }\n\n // Check if the pool is already in the cache\n const cachedPool = cetusPoolCache.get(cacheKey);\n if (cachedPool) {\n return cachedPool;\n }\n\n // Check if there is already a promise in the cache\n let cetusPoolPromise = cetusPoolPromiseCache.get(cacheKey);\n if (cetusPoolPromise) {\n return cetusPoolPromise;\n }\n\n // If not, create a new promise and cache it\n cetusPoolPromise = (async () => {\n try {\n const suiClient = getSuiClient();\n\n const o = await suiClient.getObject({\n id: cetusPoolMap[poolName.toUpperCase()],\n options: {\n showContent: true,\n },\n });\n const cetusPool = o.data as CetusPoolType;\n\n // Cache the pool object\n cetusPoolCache.set(cacheKey, cetusPool);\n return cetusPool;\n } catch (e) {\n console.error(`getCetusPool failed for poolName: ${poolName}`);\n console.error(e);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n cetusPoolPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n cetusPoolPromiseCache.set(cacheKey, cetusPoolPromise);\n return cetusPoolPromise;\n}\n\nconst cetusInvestorCache = new SimpleCache<CetusInvestor>();\nconst cetusInvestorPromiseCache = new SimpleCache<\n Promise<CetusInvestor | undefined>\n>();\n\nexport async function getCetusInvestor(\n poolName: PoolName,\n ignoreCache: boolean = false,\n): Promise<CetusInvestor | undefined> {\n const cacheKey = `investor_${poolInfo[poolName.toUpperCase()].investorId}`;\n if (ignoreCache) {\n cetusInvestorCache.delete(cacheKey);\n cetusInvestorPromiseCache.delete(cacheKey);\n }\n // Check if the investor is already in the cache\n const cachedInvestor = cetusInvestorCache.get(cacheKey);\n if (cachedInvestor) {\n return cachedInvestor;\n }\n\n // Check if there is already a promise in the cache\n let cetusInvestorPromise = cetusInvestorPromiseCache.get(cacheKey);\n if (cetusInvestorPromise) {\n return cetusInvestorPromise;\n }\n\n // If not, create a new promise and cache it\n cetusInvestorPromise = (async () => {\n try {\n const suiClient = getSuiClient();\n\n const o = await suiClient.getObject({\n id: poolInfo[poolName.toUpperCase()].investorId,\n options: {\n showContent: true,\n },\n });\n const cetus_investor = o.data as CetusInvestor;\n\n // Cache the investor object\n cetusInvestorCache.set(cacheKey, cetus_investor);\n return cetus_investor;\n } catch (e) {\n console.error(`getCetusInvestor failed for pool: ${poolName}`);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n cetusInvestorPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n cetusInvestorPromiseCache.set(cacheKey, cetusInvestorPromise);\n return cetusInvestorPromise;\n}\n\nconst naviInvestorCache = new SimpleCache<\n NaviInvestor & CommonInvestorFields\n>();\nconst naviInvestorPromiseCache = new SimpleCache<\n Promise<(NaviInvestor & CommonInvestorFields) | undefined>\n>();\n\nexport async function getNaviInvestor(\n poolName: SingleAssetPoolNames,\n ignoreCache: boolean = false,\n): Promise<(NaviInvestor & CommonInvestorFields) | undefined> {\n const cacheKey = `investor_${poolInfo[poolName.toUpperCase()].investorId}`;\n if (ignoreCache) {\n naviInvestorCache.delete(cacheKey);\n naviInvestorPromiseCache.delete(cacheKey);\n }\n // Check if the investor is already in the cache\n const cachedInvestor = naviInvestorCache.get(cacheKey);\n if (cachedInvestor) {\n return cachedInvestor;\n }\n\n // Check if there is already a promise in the cache\n let naviInvestorPromise = naviInvestorPromiseCache.get(cacheKey);\n if (naviInvestorPromise) {\n return naviInvestorPromise;\n }\n\n // If not, create a new promise and cache it\n naviInvestorPromise = (async () => {\n try {\n const suiClient = getSuiClient();\n\n const o = await suiClient.getObject({\n id: poolInfo[poolName.toUpperCase()].investorId,\n options: {\n showContent: true,\n },\n });\n const navi_investor = o.data as NaviInvestor & CommonInvestorFields;\n\n // Cache the investor object\n naviInvestorCache.set(cacheKey, navi_investor);\n return navi_investor;\n } catch (e) {\n console.error(`getNaviInvestor failed for pool: ${poolName}`);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n naviInvestorPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n naviInvestorPromiseCache.set(cacheKey, naviInvestorPromise);\n return naviInvestorPromise;\n}\n\nconst naviVoloExchangeRateCache = new SimpleCache<NaviVoloData>();\nconst naviVoloExchangeRatePromiseCache = new SimpleCache<\n Promise<NaviVoloData>\n>();\n\nexport async function fetchVoloExchangeRate(\n ignoreCache: boolean = false,\n): Promise<NaviVoloData> {\n const apiUrl = \"https://open-api.naviprotocol.io/api/volo/stats\";\n let NaviVoloDetails: NaviVoloData;\n if (ignoreCache) {\n naviVoloExchangeRateCache.clear();\n naviVoloExchangeRatePromiseCache.delete(apiUrl);\n }\n\n const cachedResponse = naviVoloExchangeRateCache.get(apiUrl);\n if (cachedResponse) {\n NaviVoloDetails = cachedResponse;\n } else {\n let cachedPromise = naviVoloExchangeRatePromiseCache.get(apiUrl);\n\n if (!cachedPromise) {\n cachedPromise = fetch(apiUrl)\n .then(async (response) => {\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const data = (await response.json()) as NaviVoloData; // Parse the JSON response\n naviVoloExchangeRateCache.set(apiUrl, data); // Cache the response\n naviVoloExchangeRatePromiseCache.delete(apiUrl); // Remove the promise from the cache\n return data;\n })\n .catch((error) => {\n naviVoloExchangeRatePromiseCache.delete(apiUrl); // Ensure the promise is removed on error\n throw error;\n });\n naviVoloExchangeRatePromiseCache.set(apiUrl, cachedPromise);\n NaviVoloDetails = await cachedPromise;\n }\n return cachedPromise;\n }\n\n return NaviVoloDetails;\n}\n"]}
1
+ {"version":3,"file":"getReceipts.js","sourceRoot":"","sources":["../../../../src/sui-sdk/functions/getReceipts.ts"],"names":[],"mappings":"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","sourcesContent":["import { PaginatedObjectsResponse } from \"@mysten/sui/client\";\nimport {\n AlphaPoolType,\n CetusInvestor,\n NaviInvestor,\n CommonInvestorFields,\n CetusPoolType,\n CoinAmounts,\n PoolName,\n PoolType,\n Receipt,\n SingleAssetPoolNames,\n NaviVoloData,\n} from \"../../index.js\";\nimport { cetusPoolMap, poolInfo } from \"../../common/maps.js\";\nimport { SimpleCache } from \"../../utils/simpleCache.js\";\nimport { ClmmPoolUtil, TickMath } from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport BN from \"bn.js\";\nimport { Decimal } from \"decimal.js\";\nimport { getSuiClient } from \"../client.js\";\n\nconst receiptsCache = new SimpleCache<Receipt[]>();\nconst receiptsPromiseCache = new SimpleCache<Promise<Receipt[]>>();\nexport async function getReceipts(\n poolName: string,\n address: string,\n ignoreCache: boolean = false,\n): Promise<Receipt[]> {\n const suiClient = getSuiClient();\n const receiptsCacheKey = `getReceipts-${poolName}-${address}`;\n if (ignoreCache) {\n receiptsCache.delete(receiptsCacheKey);\n receiptsPromiseCache.delete(receiptsCacheKey);\n }\n const cachedResponse = receiptsCache.get(receiptsCacheKey);\n if (cachedResponse) {\n return cachedResponse;\n }\n\n const nfts: Receipt[] = [];\n if (poolInfo[poolName].receiptType === \"\") {\n return nfts;\n }\n let cachedPromise = receiptsPromiseCache.get(receiptsCacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<Receipt[]> => {\n // const first_package = conf[CONF_ENV].ALPHA_FIRST_PACKAGE_ID;\n let currentCursor: string | null | undefined = null;\n /* eslint-disable-next-line no-constant-condition */\n while (true) {\n const paginatedObjects: PaginatedObjectsResponse =\n await suiClient.getOwnedObjects({\n owner: address,\n cursor: currentCursor,\n filter: {\n // StructType: `${first_package}::${module}::Receipt`,\n StructType: poolInfo[poolName].receiptType,\n },\n options: {\n showType: true,\n showContent: true,\n },\n });\n // Traverse the current page data and push to coins array\n\n paginatedObjects.data.forEach((obj) => {\n const o = obj.data as Receipt;\n if (o) {\n if (poolInfo[poolName].receiptName === o.content.fields.name) {\n nfts.push(o);\n }\n }\n });\n\n // Check if there's a next page\n if (paginatedObjects.hasNextPage && paginatedObjects.nextCursor) {\n currentCursor = paginatedObjects.nextCursor;\n } else {\n // No more pages available\n break;\n }\n }\n receiptsCache.set(receiptsCacheKey, nfts);\n receiptsPromiseCache.delete(receiptsCacheKey);\n return nfts;\n })().catch((error) => {\n // TODO: Jugaad\n if (poolInfo[poolName].parentProtocolName === \"NAVI\") {\n return nfts;\n } else {\n receiptsPromiseCache.delete(receiptsCacheKey); // Remove the promise from cache\n throw error;\n }\n });\n receiptsPromiseCache.set(receiptsCacheKey, cachedPromise);\n }\n return cachedPromise;\n}\n\nconst poolExchangeRateCache = new SimpleCache<Decimal>();\n\nexport async function getPoolExchangeRate(\n poolName: PoolName,\n ignoreCache: boolean = false,\n): Promise<Decimal | undefined> {\n const poolExchangeRateCacheKey = `getPoolExchangeRate-${poolName}`;\n if (ignoreCache) {\n poolExchangeRateCache.delete(poolExchangeRateCacheKey);\n }\n const cachedResponse = poolExchangeRateCache.get(poolExchangeRateCacheKey);\n if (cachedResponse) {\n return cachedResponse;\n }\n\n let pool: PoolType | AlphaPoolType | undefined;\n try {\n if (poolName === \"ALPHA\") {\n pool = await getPool(\"ALPHA\");\n } else if (\n poolName === \"ALPHA-SUI\" ||\n poolName === \"USDT-WUSDC\" ||\n poolName === \"USDY-WUSDC\" ||\n poolName === \"HASUI-SUI\" ||\n poolName === \"WUSDC-SUI\" ||\n poolName === \"WETH-WUSDC\"\n ) {\n pool = await getPool(poolName);\n } else {\n pool = await getPool(poolName);\n }\n if (pool) {\n const xTokenSupply = new Decimal(pool.content.fields.xTokenSupply);\n let tokensInvested = new Decimal(pool.content.fields.tokensInvested);\n if (poolName == \"ALPHA\") {\n tokensInvested = new Decimal(pool.content.fields.alpha_bal);\n }\n\n // Check for division by zero\n if (xTokenSupply.eq(0)) {\n console.error(\"Division by zero error: tokensInvested is zero.\");\n return undefined;\n }\n const poolExchangeRate = tokensInvested.div(xTokenSupply);\n\n poolExchangeRateCache.set(poolExchangeRateCacheKey, poolExchangeRate);\n\n return poolExchangeRate;\n }\n } catch (e) {\n console.error(`getPoolExchangeRate failed for poolName: ${poolName}`);\n }\n\n return undefined;\n}\n\nexport async function getCoinAmountsFromLiquidity(\n poolName: PoolName,\n liquidity: number,\n): Promise<[number, number]> {\n const cetus_pool = await getCetusPool(poolName);\n const cetusInvestor = await getCetusInvestor(poolName);\n\n const upper_bound = 443636;\n let lower_tick = Number(cetusInvestor!.content.fields.lower_tick);\n let upper_tick = Number(cetusInvestor!.content.fields.upper_tick);\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\n if (cetus_pool) {\n const liquidityInt = Math.floor(liquidity);\n const coin_amounts: CoinAmounts = ClmmPoolUtil.getCoinAmountFromLiquidity(\n new BN(`${liquidityInt}`),\n new BN(cetus_pool.content.fields.current_sqrt_price),\n TickMath.tickIndexToSqrtPriceX64(lower_tick),\n TickMath.tickIndexToSqrtPriceX64(upper_tick),\n true,\n );\n\n return [coin_amounts.coinA.toNumber(), coin_amounts.coinB.toNumber()];\n } else {\n return [0, 0];\n }\n}\n\nconst poolCache = new SimpleCache<PoolType | AlphaPoolType>();\nconst poolPromiseCache = new SimpleCache<\n Promise<PoolType | AlphaPoolType | undefined>\n>();\n\nexport async function getPool(\n poolName: string,\n ignoreCache: boolean = false,\n): Promise<PoolType | AlphaPoolType | undefined> {\n const cacheKey = `pool_${poolInfo[poolName.toUpperCase()].poolId}`;\n\n if (ignoreCache) {\n poolCache.delete(cacheKey);\n poolPromiseCache.delete(cacheKey);\n }\n\n // Check if the pool is already in the cache\n const cachedPool = poolCache.get(cacheKey);\n if (cachedPool) {\n return cachedPool;\n }\n\n // Check if there is already a promise in the cache\n let poolPromise = poolPromiseCache.get(cacheKey);\n if (poolPromise) {\n return poolPromise;\n }\n\n // If not, create a new promise and cache it\n poolPromise = (async () => {\n const suiClient = getSuiClient();\n\n try {\n const o = await suiClient.getObject({\n id: poolInfo[poolName].poolId,\n options: {\n showContent: true,\n },\n });\n\n const poolData =\n poolName === \"ALPHA\" ? (o.data as AlphaPoolType) : (o.data as PoolType);\n\n // Cache the pool object\n poolCache.set(cacheKey, poolData);\n return poolData;\n } catch (e) {\n console.error(`Error in getPool; poolName => ${poolName}`);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n poolPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n poolPromiseCache.set(cacheKey, poolPromise);\n return poolPromise;\n}\n\nconst cetusPoolCache = new SimpleCache<CetusPoolType>();\nconst cetusPoolPromiseCache = new SimpleCache<\n Promise<CetusPoolType | undefined>\n>();\n\nexport async function getCetusPool(\n poolName: string,\n ignoreCache: boolean = false,\n): Promise<CetusPoolType | undefined> {\n const cacheKey = `pool_${cetusPoolMap[poolName.toUpperCase()]}`;\n if (ignoreCache) {\n cetusPoolCache.delete(cacheKey);\n cetusPoolPromiseCache.delete(cacheKey);\n }\n\n // Check if the pool is already in the cache\n const cachedPool = cetusPoolCache.get(cacheKey);\n if (cachedPool) {\n return cachedPool;\n }\n\n // Check if there is already a promise in the cache\n let cetusPoolPromise = cetusPoolPromiseCache.get(cacheKey);\n if (cetusPoolPromise) {\n return cetusPoolPromise;\n }\n\n // If not, create a new promise and cache it\n cetusPoolPromise = (async () => {\n try {\n const suiClient = getSuiClient();\n\n const o = await suiClient.getObject({\n id: cetusPoolMap[poolName.toUpperCase()],\n options: {\n showContent: true,\n },\n });\n const cetusPool = o.data as CetusPoolType;\n\n // Cache the pool object\n cetusPoolCache.set(cacheKey, cetusPool);\n return cetusPool;\n } catch (e) {\n console.error(`getCetusPool failed for poolName: ${poolName}`);\n console.error(e);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n cetusPoolPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n cetusPoolPromiseCache.set(cacheKey, cetusPoolPromise);\n return cetusPoolPromise;\n}\n\nconst cetusInvestorCache = new SimpleCache<CetusInvestor>();\nconst cetusInvestorPromiseCache = new SimpleCache<\n Promise<CetusInvestor | undefined>\n>();\n\nexport async function getCetusInvestor(\n poolName: PoolName,\n ignoreCache: boolean = false,\n): Promise<CetusInvestor | undefined> {\n const cacheKey = `investor_${poolInfo[poolName.toUpperCase()].investorId}`;\n if (ignoreCache) {\n cetusInvestorCache.delete(cacheKey);\n cetusInvestorPromiseCache.delete(cacheKey);\n }\n // Check if the investor is already in the cache\n const cachedInvestor = cetusInvestorCache.get(cacheKey);\n if (cachedInvestor) {\n return cachedInvestor;\n }\n\n // Check if there is already a promise in the cache\n let cetusInvestorPromise = cetusInvestorPromiseCache.get(cacheKey);\n if (cetusInvestorPromise) {\n return cetusInvestorPromise;\n }\n\n // If not, create a new promise and cache it\n cetusInvestorPromise = (async () => {\n try {\n const suiClient = getSuiClient();\n\n const o = await suiClient.getObject({\n id: poolInfo[poolName.toUpperCase()].investorId,\n options: {\n showContent: true,\n },\n });\n const cetus_investor = o.data as CetusInvestor;\n\n // Cache the investor object\n cetusInvestorCache.set(cacheKey, cetus_investor);\n return cetus_investor;\n } catch (e) {\n console.error(`getCetusInvestor failed for pool: ${poolName}`);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n cetusInvestorPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n cetusInvestorPromiseCache.set(cacheKey, cetusInvestorPromise);\n return cetusInvestorPromise;\n}\n\nconst naviInvestorCache = new SimpleCache<\n NaviInvestor & CommonInvestorFields\n>();\nconst naviInvestorPromiseCache = new SimpleCache<\n Promise<(NaviInvestor & CommonInvestorFields) | undefined>\n>();\n\nexport async function getNaviInvestor(\n poolName: SingleAssetPoolNames,\n ignoreCache: boolean = false,\n): Promise<(NaviInvestor & CommonInvestorFields) | undefined> {\n const cacheKey = `investor_${poolInfo[poolName.toUpperCase()].investorId}`;\n if (ignoreCache) {\n naviInvestorCache.delete(cacheKey);\n naviInvestorPromiseCache.delete(cacheKey);\n }\n // Check if the investor is already in the cache\n const cachedInvestor = naviInvestorCache.get(cacheKey);\n if (cachedInvestor) {\n return cachedInvestor;\n }\n\n // Check if there is already a promise in the cache\n let naviInvestorPromise = naviInvestorPromiseCache.get(cacheKey);\n if (naviInvestorPromise) {\n return naviInvestorPromise;\n }\n\n // If not, create a new promise and cache it\n naviInvestorPromise = (async () => {\n try {\n const suiClient = getSuiClient();\n\n const o = await suiClient.getObject({\n id: poolInfo[poolName.toUpperCase()].investorId,\n options: {\n showContent: true,\n },\n });\n const navi_investor = o.data as NaviInvestor & CommonInvestorFields;\n\n // Cache the investor object\n naviInvestorCache.set(cacheKey, navi_investor);\n return navi_investor;\n } catch (e) {\n console.error(`getNaviInvestor failed for pool: ${poolName}`);\n return undefined;\n } finally {\n // Remove the promise from the cache after it resolves\n naviInvestorPromiseCache.delete(cacheKey);\n }\n })();\n\n // Cache the promise\n naviInvestorPromiseCache.set(cacheKey, naviInvestorPromise);\n return naviInvestorPromise;\n}\n\nconst naviVoloExchangeRateCache = new SimpleCache<NaviVoloData>();\nconst naviVoloExchangeRatePromiseCache = new SimpleCache<\n Promise<NaviVoloData>\n>();\n\nexport async function fetchVoloExchangeRate(\n ignoreCache: boolean = false,\n): Promise<NaviVoloData> {\n const apiUrl = \"https://open-api.naviprotocol.io/api/volo/stats\";\n let NaviVoloDetails: NaviVoloData;\n if (ignoreCache) {\n naviVoloExchangeRateCache.clear();\n naviVoloExchangeRatePromiseCache.delete(apiUrl);\n }\n\n const cachedResponse = naviVoloExchangeRateCache.get(apiUrl);\n if (cachedResponse) {\n NaviVoloDetails = cachedResponse;\n } else {\n let cachedPromise = naviVoloExchangeRatePromiseCache.get(apiUrl);\n\n if (!cachedPromise) {\n cachedPromise = fetch(apiUrl)\n .then(async (response) => {\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const data = (await response.json()) as NaviVoloData; // Parse the JSON response\n naviVoloExchangeRateCache.set(apiUrl, data); // Cache the response\n naviVoloExchangeRatePromiseCache.delete(apiUrl); // Remove the promise from the cache\n return data;\n })\n .catch((error) => {\n naviVoloExchangeRatePromiseCache.delete(apiUrl); // Ensure the promise is removed on error\n throw error;\n });\n naviVoloExchangeRatePromiseCache.set(apiUrl, cachedPromise);\n NaviVoloDetails = await cachedPromise;\n }\n return cachedPromise;\n }\n\n return NaviVoloDetails;\n}\n\nexport async function multiGetNaviInvestor(\n poolNames: SingleAssetPoolNames[],\n ignoreCache: boolean = false,\n) {\n const results: {\n [poolName in SingleAssetPoolNames]?:\n | (NaviInvestor & CommonInvestorFields)\n | undefined;\n } = {};\n const missingPoolInvestorIds: string[] = [];\n const missingPoolNames: SingleAssetPoolNames[] = [];\n\n for (const poolName of poolNames) {\n const cacheKey = `investor_${poolInfo[poolName.toUpperCase()].investorId}`;\n\n if (ignoreCache) {\n naviInvestorCache.delete(cacheKey);\n naviInvestorPromiseCache.delete(cacheKey);\n }\n\n // Check if the investor is already cached\n const cachedInvestor = naviInvestorCache.get(cacheKey);\n if (cachedInvestor) {\n results[poolName] = cachedInvestor;\n continue;\n } else {\n // Add to missing list if not in cache\n if (poolInfo[poolName.toUpperCase()].investorId) {\n missingPoolNames.push(poolName);\n missingPoolInvestorIds.push(\n poolInfo[poolName.toUpperCase()].investorId,\n );\n }\n }\n }\n\n try {\n const suiClient = getSuiClient();\n const objects = await suiClient.multiGetObjects({\n ids: missingPoolInvestorIds,\n options: { showContent: true },\n });\n for (let i = 0; i < objects.length; i++) {\n const investor = objects[i].data as NaviInvestor & CommonInvestorFields;\n const cacheKey = `investor_${missingPoolInvestorIds[i]}`;\n naviInvestorCache.set(cacheKey, investor);\n results[missingPoolNames[i]] = investor;\n }\n return results;\n } catch (err) {\n //improve\n console.error(\n \"multiGetNaviInvestor failed for poolNames: \",\n missingPoolNames.join(\", \"),\n );\n throw err;\n }\n}\n\n/*\nfor the missing pools, add a promise, each of those promises waits for there respective object from a map, that map is populated all at once, \nproblem with concurrency\n*/\n// ask how to deal with this kind of probem with high concurrency anf throughput\n"]}
@@ -0,0 +1,4 @@
1
+ import { TransactionFilter } from "@mysten/sui/client";
2
+ export declare const nonAlphaDepositFilters: TransactionFilter[];
3
+ export declare const alphaDepositFilters: TransactionFilter[];
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { SuiTransactionBlockResponse } from "@mysten/sui/client";
2
+ import { FetchTransactionParams } from "./types.js";
3
+ export declare function fetchTransactions(params: FetchTransactionParams): Promise<SuiTransactionBlockResponse[]>;
4
+ //# sourceMappingURL=fetchTransactions.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { TransactionFilter } from "@mysten/sui/client";
2
+ export type FetchTransactionParams = {
3
+ startTime: number;
4
+ endTime: number;
5
+ filter: TransactionFilter[];
6
+ sort: "ascending" | "descending";
7
+ };
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,213 @@
1
+ import { CoinName, DoubleAssetPoolNames, PoolName, SingleAssetPoolNames, AlphaFiVaultBalance } from "./common/types.js";
2
+ export type GetUserTokensFromTransactionsParams = {
3
+ poolNames?: string[];
4
+ startTime?: number;
5
+ endTime?: number;
6
+ owners?: string[];
7
+ };
8
+ export type GetUserTokensInUsdFromTransactionsParams = {
9
+ poolNames?: string[];
10
+ startTime?: number;
11
+ endTime?: number;
12
+ owners?: string[];
13
+ userTokensHoldings?: [string, string, string][];
14
+ };
15
+ export type AlphaReceiptFields = {
16
+ id: {
17
+ id: string;
18
+ };
19
+ image_url: string;
20
+ last_acc_reward_per_xtoken: {
21
+ type: string;
22
+ fields: {
23
+ contents: [
24
+ {
25
+ type: string;
26
+ fields: {
27
+ key: {
28
+ type: string;
29
+ fields: {
30
+ name: string;
31
+ };
32
+ };
33
+ value: string;
34
+ };
35
+ }
36
+ ];
37
+ };
38
+ };
39
+ locked_balance: {
40
+ type: string;
41
+ fields: {
42
+ head: string;
43
+ id: {
44
+ id: string;
45
+ };
46
+ size: string;
47
+ tail: string;
48
+ };
49
+ };
50
+ name: string;
51
+ owner: string;
52
+ pending_rewards: {
53
+ type: string;
54
+ fields: {
55
+ contents: [
56
+ {
57
+ type: string;
58
+ fields: {
59
+ key: {
60
+ type: string;
61
+ fields: {
62
+ name: string;
63
+ };
64
+ };
65
+ value: string;
66
+ };
67
+ }
68
+ ];
69
+ };
70
+ };
71
+ pool_id: string;
72
+ unlocked_xtokens: string;
73
+ xTokenBalance: string;
74
+ };
75
+ export type OtherReceiptFields = {
76
+ id: {
77
+ id: string;
78
+ };
79
+ image_url: string;
80
+ last_acc_reward_per_xtoken: {
81
+ fields: {
82
+ contents: [
83
+ {
84
+ fields: {
85
+ key: {
86
+ fields: {
87
+ name: string;
88
+ };
89
+ type: string;
90
+ };
91
+ value: string;
92
+ };
93
+ type: string;
94
+ }
95
+ ];
96
+ };
97
+ type: string;
98
+ };
99
+ name: string;
100
+ owner: string;
101
+ pending_rewards: {
102
+ fields: {
103
+ contents: [
104
+ {
105
+ fields: {
106
+ key: {
107
+ fields: {
108
+ name: string;
109
+ };
110
+ type: string;
111
+ };
112
+ value: string;
113
+ };
114
+ type: string;
115
+ }
116
+ ];
117
+ };
118
+ type: string;
119
+ };
120
+ pool_id: string;
121
+ xTokenBalance: string;
122
+ };
123
+ export type GetHoldersParams = {
124
+ poolNames?: string[];
125
+ startTime?: number;
126
+ endTime?: number;
127
+ };
128
+ export type GetTokenHoldingsParams = {
129
+ poolNames?: PoolName[];
130
+ startTime?: number;
131
+ endTime?: number;
132
+ };
133
+ export type LiquidityToUsdParams = {
134
+ liquidity: string;
135
+ poolName: string;
136
+ ticksCetusMap: {
137
+ [pool: string]: {
138
+ lower: string;
139
+ upper: string;
140
+ };
141
+ };
142
+ sqrtPriceCetusMap: Map<PoolName, string>;
143
+ tokenPriceMap: Map<CoinName, string>;
144
+ };
145
+ export type LiquidityToTokensParams = {
146
+ liquidity: string;
147
+ poolName: string;
148
+ ticksCetusMap: {
149
+ [pool: string]: {
150
+ lower: string;
151
+ upper: string;
152
+ };
153
+ };
154
+ sqrtPriceCetusMap: Map<PoolName, string>;
155
+ };
156
+ export type UserUsdHoldings = {
157
+ user: string;
158
+ poolName: PoolName;
159
+ usdHoldings: string;
160
+ };
161
+ export type UserPoolLiquidity = {
162
+ user: string;
163
+ poolName: string;
164
+ liquidity: string;
165
+ };
166
+ export type UserPoolTokenHoldings = SingleAssetTokenHoldings | DoubleAssetTokenHoldings;
167
+ export type SingleAssetTokenHoldings = {
168
+ user: string;
169
+ poolName: SingleAssetPoolNames;
170
+ tokens: string;
171
+ };
172
+ export type DoubleAssetTokenHoldings = {
173
+ user: string;
174
+ poolName: DoubleAssetPoolNames;
175
+ tokenAmountA: string;
176
+ tokenAmountB: string;
177
+ };
178
+ export type MultiGetVaultBalancesParams = {
179
+ poolNames?: PoolName[];
180
+ startTime?: number;
181
+ endTime?: number;
182
+ };
183
+ export type SingleGetVaultBalancesParams = {
184
+ address?: string;
185
+ poolName?: PoolName;
186
+ };
187
+ export type GetVaultBalanceParams = SingleGetVaultBalancesParams | MultiGetVaultBalancesParams;
188
+ export type HoldingsObj = {
189
+ owner: string;
190
+ poolName: PoolName;
191
+ holding: string;
192
+ };
193
+ export type VaultBalance = AlphaFiVaultBalance | undefined | AlphaFiMultiVaultBalance[];
194
+ export type AlphaFiMultiVaultBalance = SingleAssetMultiVaultBalance | DoubleAssetMultiVaultBalance;
195
+ export type SingleAssetMultiVaultBalance = {
196
+ owner: string;
197
+ poolName: PoolName;
198
+ tokens: string;
199
+ tokensInUsd: string;
200
+ };
201
+ export type DoubleAssetMultiVaultBalance = {
202
+ owner: string;
203
+ poolName: PoolName;
204
+ tokenA: string;
205
+ tokenB: string;
206
+ tokensInUsd: string;
207
+ };
208
+ export type GetVaultBalanceForActiveUsersParams = {
209
+ poolNames?: PoolName[];
210
+ startTime?: number;
211
+ endTime?: number;
212
+ };
213
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,20 @@
1
+ import { SdkOptions, Pool, CalculateRatesResult } from "@cetusprotocol/cetus-sui-clmm-sdk";
2
+ import { Transaction } from "@mysten/sui/transactions";
3
+ import { Coin } from "../../common/types.js";
4
+ import { CetusSwapOptions, CreatePoolOptions } from "./types.js";
5
+ export declare function getAlphaPrice(ignoreCache?: boolean): Promise<number | undefined>;
6
+ export declare function getUSDYPrice(): Promise<number | undefined>;
7
+ export declare function getBUCKPrice(): Promise<number | undefined>;
8
+ export declare function getPriceFromCetus(coinType: string): Promise<string>;
9
+ export declare class CetusGateway {
10
+ private cetusSDK;
11
+ constructor(sdkOptions: SdkOptions);
12
+ getPools(pairs: {
13
+ coinA?: Coin;
14
+ coinB?: Coin;
15
+ }[]): Promise<Pool[]>;
16
+ getPrice(options: CetusSwapOptions): Promise<CalculateRatesResult>;
17
+ getTransaction(options: CetusSwapOptions): Promise<Transaction>;
18
+ createPoolTransactionBlock(options: CreatePoolOptions): Promise<Transaction>;
19
+ }
20
+ //# sourceMappingURL=prices.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { BigNumber } from "bignumber.js";
2
+ import BN from "bn.js";
3
+ export declare function signedShiftRight(n0: BN, shiftBy: number, bitWidth: number): BN;
4
+ export declare function tickIndexToSqrtPricePositive(tick: number): BigNumber;
5
+ export declare function tickIndexToSqrtPriceNegative(tickIndex: number): BigNumber;
6
+ export declare function tickIndexToSqrtPriceX64(tickIndex: number): BigNumber;
7
+ export declare function getTokenAmountsFromLiquidity(liquidity: BigNumber, tickCurrentIndex: number, tickLowerIndex: number, tickUpperIndex: number, roundUp: boolean): {
8
+ tokenAmountA: BigNumber;
9
+ tokenAmountB: BigNumber;
10
+ };
11
+ //# sourceMappingURL=tokenAmountFromLiquidity.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { CoinName, CoinPair } from "../../common/types.js";
2
+ import BN from "bn.js";
3
+ export type CetusSwapOptions = SwapOptions;
4
+ export type TickSpacing = 2 | 10 | 60 | 200;
5
+ export type CreatePoolOptions = {
6
+ tickSpacing: TickSpacing;
7
+ initializePrice: number;
8
+ imageUrl: string;
9
+ coinNameA: CoinName;
10
+ coinNameB: CoinName;
11
+ amount: number;
12
+ isAmountA: boolean;
13
+ };
14
+ export type SwapOptions = {
15
+ pair: CoinPair;
16
+ senderAddress: string;
17
+ slippage: number;
18
+ } & ({
19
+ inAmount: BN;
20
+ outAmount?: never;
21
+ } | {
22
+ outAmount: BN;
23
+ inAmount?: never;
24
+ });
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { PythPriceFeed } from "../common/pyth.js";
2
+ export declare const pythPriceFeed: PythPriceFeed;
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { SuiObjectResponse } from "@mysten/sui/client";
2
+ import { LiquidityToUsdParams } from "../types.js";
3
+ export declare function parseTokensFromReceipts(receipts: SuiObjectResponse[]): Promise<[string, string, string][]>;
4
+ export declare function liquidityToUsd(params: LiquidityToUsdParams): string | undefined;
5
+ export declare function mergeDuplicateHoldings(userTokens: [string, string, string][]): [string, string, string][];
6
+ //# sourceMappingURL=getHoldersFromTransactionsUtils.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { SuiObjectResponse } from "@mysten/sui/client";
2
+ import { GetReceiptParams } from "./types.js";
3
+ export declare function getReceipts(params: GetReceiptParams): Promise<SuiObjectResponse[]>;
4
+ //# sourceMappingURL=getReceipts.d.ts.map