@augustdigital/sdk 4.1.0-alpha → 4.2.1-alpha

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 (202) hide show
  1. package/README.md +169 -11
  2. package/lib/abis/Multicall3.js.map +1 -1
  3. package/lib/adapters/evm/getters.js +6 -16
  4. package/lib/adapters/evm/getters.js.map +1 -1
  5. package/lib/adapters/evm/index.d.ts +3 -3
  6. package/lib/adapters/evm/index.js +9 -10
  7. package/lib/adapters/evm/index.js.map +1 -1
  8. package/lib/adapters/evm/utils.d.ts +2 -28
  9. package/lib/adapters/evm/utils.js +29 -322
  10. package/lib/adapters/evm/utils.js.map +1 -1
  11. package/lib/adapters/solana/getters.js +26 -17
  12. package/lib/adapters/solana/getters.js.map +1 -1
  13. package/lib/core/base.class.d.ts +1 -2
  14. package/lib/core/base.class.js +11 -6
  15. package/lib/core/base.class.js.map +1 -1
  16. package/lib/core/constants.d.ts +2 -0
  17. package/lib/core/constants.js +3 -1
  18. package/lib/core/constants.js.map +1 -1
  19. package/lib/core/fetcher.js +147 -48
  20. package/lib/core/fetcher.js.map +1 -1
  21. package/lib/core/index.d.ts +1 -3
  22. package/lib/core/index.js +1 -3
  23. package/lib/core/index.js.map +1 -1
  24. package/lib/core/logger/index.d.ts +9 -0
  25. package/lib/core/logger/index.js +29 -0
  26. package/lib/core/logger/index.js.map +1 -1
  27. package/lib/core/web3.helpers.js.map +1 -1
  28. package/lib/index.d.ts +4 -5
  29. package/lib/index.js +6 -7
  30. package/lib/index.js.map +1 -1
  31. package/lib/main.d.ts +82 -14
  32. package/lib/main.js +51 -17
  33. package/lib/main.js.map +1 -1
  34. package/lib/modules/vaults/constants.js +2 -0
  35. package/lib/modules/vaults/constants.js.map +1 -1
  36. package/lib/{vaults/utils.d.ts → modules/vaults/fetcher.d.ts} +0 -20
  37. package/lib/{vaults/utils.js → modules/vaults/fetcher.js} +18 -175
  38. package/lib/modules/vaults/fetcher.js.map +1 -0
  39. package/lib/modules/vaults/getters.d.ts +12 -3
  40. package/lib/modules/vaults/getters.js +122 -23
  41. package/lib/modules/vaults/getters.js.map +1 -1
  42. package/lib/modules/vaults/index.d.ts +1 -82
  43. package/lib/modules/vaults/index.js +1 -479
  44. package/lib/modules/vaults/index.js.map +1 -1
  45. package/lib/modules/vaults/main.d.ts +24 -47
  46. package/lib/modules/vaults/main.js +103 -199
  47. package/lib/modules/vaults/main.js.map +1 -1
  48. package/lib/modules/vaults/read.actions.d.ts +3 -0
  49. package/lib/{adapters/evm → modules/vaults}/read.actions.js +12 -12
  50. package/lib/modules/vaults/read.actions.js.map +1 -0
  51. package/lib/modules/vaults/utils.d.ts +2 -103
  52. package/lib/modules/vaults/utils.js +97 -293
  53. package/lib/modules/vaults/utils.js.map +1 -1
  54. package/lib/modules/vaults/{user.actions.d.ts → write.actions.d.ts} +9 -2
  55. package/lib/modules/vaults/{user.actions.js → write.actions.js} +56 -8
  56. package/lib/modules/vaults/write.actions.js.map +1 -0
  57. package/lib/types/pools.d.ts +1 -1
  58. package/lib/types/vaults.d.ts +6 -0
  59. package/lib/types/webserver.d.ts +15 -1
  60. package/package.json +15 -10
  61. package/lib/adapters/evm/core.actions.d.ts +0 -9
  62. package/lib/adapters/evm/core.actions.js +0 -51
  63. package/lib/adapters/evm/core.actions.js.map +0 -1
  64. package/lib/adapters/evm/read.actions.d.ts +0 -3
  65. package/lib/adapters/evm/read.actions.js.map +0 -1
  66. package/lib/adapters/evm/vaults.actions.d.ts +0 -10
  67. package/lib/adapters/evm/vaults.actions.js +0 -97
  68. package/lib/adapters/evm/vaults.actions.js.map +0 -1
  69. package/lib/adapters/solana/actions.d.ts +0 -20
  70. package/lib/adapters/solana/actions.js +0 -225
  71. package/lib/adapters/solana/actions.js.map +0 -1
  72. package/lib/adapters/solana/class.d.ts +0 -45
  73. package/lib/adapters/solana/class.js +0 -135
  74. package/lib/adapters/solana/class.js.map +0 -1
  75. package/lib/adapters/solana/vault-idl.d.ts +0 -338
  76. package/lib/adapters/solana/vault-idl.js +0 -1075
  77. package/lib/adapters/solana/vault-idl.js.map +0 -1
  78. package/lib/core/base-class.d.ts +0 -34
  79. package/lib/core/base-class.js +0 -55
  80. package/lib/core/base-class.js.map +0 -1
  81. package/lib/core/helpers.core.d.ts +0 -23
  82. package/lib/core/helpers.core.js +0 -210
  83. package/lib/core/helpers.core.js.map +0 -1
  84. package/lib/core/helpers.d.ts +0 -23
  85. package/lib/core/helpers.js +0 -210
  86. package/lib/core/helpers.js.map +0 -1
  87. package/lib/core/helpers.web3.d.ts +0 -26
  88. package/lib/core/helpers.web3.js +0 -315
  89. package/lib/core/helpers.web3.js.map +0 -1
  90. package/lib/modules/vaults/admin-actions.d.ts +0 -0
  91. package/lib/modules/vaults/admin-actions.js +0 -1
  92. package/lib/modules/vaults/admin-actions.js.map +0 -1
  93. package/lib/modules/vaults/user-actions.d.ts +0 -19
  94. package/lib/modules/vaults/user-actions.js +0 -172
  95. package/lib/modules/vaults/user-actions.js.map +0 -1
  96. package/lib/modules/vaults/user.actions.js.map +0 -1
  97. package/lib/services/auth/index.d.ts +0 -1
  98. package/lib/services/auth/index.js +0 -18
  99. package/lib/services/auth/index.js.map +0 -1
  100. package/lib/services/auth/verify.d.ts +0 -2
  101. package/lib/services/auth/verify.js +0 -20
  102. package/lib/services/auth/verify.js.map +0 -1
  103. package/lib/services/index.d.ts +0 -4
  104. package/lib/services/index.js +0 -21
  105. package/lib/services/index.js.map +0 -1
  106. package/lib/services/logger/index.d.ts +0 -12
  107. package/lib/services/logger/index.js +0 -51
  108. package/lib/services/logger/index.js.map +0 -1
  109. package/lib/services/logger/slack.d.ts +0 -12
  110. package/lib/services/logger/slack.js +0 -48
  111. package/lib/services/logger/slack.js.map +0 -1
  112. package/lib/services/solana/actions.d.ts +0 -20
  113. package/lib/services/solana/actions.js +0 -225
  114. package/lib/services/solana/actions.js.map +0 -1
  115. package/lib/services/solana/class.d.ts +0 -45
  116. package/lib/services/solana/class.js +0 -135
  117. package/lib/services/solana/class.js.map +0 -1
  118. package/lib/services/solana/constants.d.ts +0 -25
  119. package/lib/services/solana/constants.js +0 -32
  120. package/lib/services/solana/constants.js.map +0 -1
  121. package/lib/services/solana/index.d.ts +0 -84
  122. package/lib/services/solana/index.js +0 -50
  123. package/lib/services/solana/index.js.map +0 -1
  124. package/lib/services/solana/types.d.ts +0 -58
  125. package/lib/services/solana/types.js +0 -3
  126. package/lib/services/solana/types.js.map +0 -1
  127. package/lib/services/solana/utils.d.ts +0 -96
  128. package/lib/services/solana/utils.js +0 -355
  129. package/lib/services/solana/utils.js.map +0 -1
  130. package/lib/services/solana/vault-idl.d.ts +0 -338
  131. package/lib/services/solana/vault-idl.js +0 -1075
  132. package/lib/services/solana/vault-idl.js.map +0 -1
  133. package/lib/utils/base-class.d.ts +0 -34
  134. package/lib/utils/base-class.js +0 -55
  135. package/lib/utils/base-class.js.map +0 -1
  136. package/lib/utils/constants/august.d.ts +0 -57
  137. package/lib/utils/constants/august.js +0 -61
  138. package/lib/utils/constants/august.js.map +0 -1
  139. package/lib/utils/constants/fallbacks.d.ts +0 -3
  140. package/lib/utils/constants/fallbacks.js +0 -26
  141. package/lib/utils/constants/fallbacks.js.map +0 -1
  142. package/lib/utils/constants/index.d.ts +0 -3
  143. package/lib/utils/constants/index.js +0 -20
  144. package/lib/utils/constants/index.js.map +0 -1
  145. package/lib/utils/constants/web3.d.ts +0 -32
  146. package/lib/utils/constants/web3.js +0 -101
  147. package/lib/utils/constants/web3.js.map +0 -1
  148. package/lib/utils/fetcher.d.ts +0 -25
  149. package/lib/utils/fetcher.js +0 -334
  150. package/lib/utils/fetcher.js.map +0 -1
  151. package/lib/utils/helpers/array.d.ts +0 -6
  152. package/lib/utils/helpers/array.js +0 -40
  153. package/lib/utils/helpers/array.js.map +0 -1
  154. package/lib/utils/helpers/datetime.d.ts +0 -5
  155. package/lib/utils/helpers/datetime.js +0 -32
  156. package/lib/utils/helpers/datetime.js.map +0 -1
  157. package/lib/utils/helpers/formatters.d.ts +0 -8
  158. package/lib/utils/helpers/formatters.js +0 -113
  159. package/lib/utils/helpers/formatters.js.map +0 -1
  160. package/lib/utils/helpers/index.d.ts +0 -6
  161. package/lib/utils/helpers/index.js +0 -23
  162. package/lib/utils/helpers/index.js.map +0 -1
  163. package/lib/utils/helpers/responses.d.ts +0 -32
  164. package/lib/utils/helpers/responses.js +0 -229
  165. package/lib/utils/helpers/responses.js.map +0 -1
  166. package/lib/utils/helpers/verify-keys.d.ts +0 -2
  167. package/lib/utils/helpers/verify-keys.js +0 -21
  168. package/lib/utils/helpers/verify-keys.js.map +0 -1
  169. package/lib/utils/helpers/web3.d.ts +0 -27
  170. package/lib/utils/helpers/web3.js +0 -339
  171. package/lib/utils/helpers/web3.js.map +0 -1
  172. package/lib/utils/index.d.ts +0 -5
  173. package/lib/utils/index.js +0 -22
  174. package/lib/utils/index.js.map +0 -1
  175. package/lib/utils/vaults.d.ts +0 -53
  176. package/lib/utils/vaults.js +0 -156
  177. package/lib/utils/vaults.js.map +0 -1
  178. package/lib/vaults/admin-actions.d.ts +0 -0
  179. package/lib/vaults/admin-actions.js +0 -1
  180. package/lib/vaults/admin-actions.js.map +0 -1
  181. package/lib/vaults/getters.d.ts +0 -38
  182. package/lib/vaults/getters.js +0 -760
  183. package/lib/vaults/getters.js.map +0 -1
  184. package/lib/vaults/index.d.ts +0 -4
  185. package/lib/vaults/index.js +0 -21
  186. package/lib/vaults/index.js.map +0 -1
  187. package/lib/vaults/main.d.ts +0 -118
  188. package/lib/vaults/main.js +0 -591
  189. package/lib/vaults/main.js.map +0 -1
  190. package/lib/vaults/rpc-config.d.ts +0 -4
  191. package/lib/vaults/rpc-config.js +0 -27
  192. package/lib/vaults/rpc-config.js.map +0 -1
  193. package/lib/vaults/subgraph.d.ts +0 -10
  194. package/lib/vaults/subgraph.js +0 -470
  195. package/lib/vaults/subgraph.js.map +0 -1
  196. package/lib/vaults/user-actions.d.ts +0 -19
  197. package/lib/vaults/user-actions.js +0 -172
  198. package/lib/vaults/user-actions.js.map +0 -1
  199. package/lib/vaults/utils.js.map +0 -1
  200. package/lib/verify.d.ts +0 -2
  201. package/lib/verify.js +0 -20
  202. package/lib/verify.js.map +0 -1
@@ -1,355 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SolanaUtils = void 0;
4
- const anchor_1 = require("@coral-xyz/anchor");
5
- const web3_js_1 = require("@solana/web3.js");
6
- const ethers_1 = require("ethers");
7
- const constants_1 = require("./constants");
8
- function getExplorerLink({ signature, type = 'tx', network = constants_1.fallbackNetwork, }) {
9
- const baseUrl = 'https://solscan.io';
10
- return `${baseUrl}/${type}/${signature}?cluster=${network}`;
11
- }
12
- function isSolanaAddress(address) {
13
- if (!address)
14
- return false;
15
- if ((0, ethers_1.isAddress)(address))
16
- return false;
17
- return web3_js_1.PublicKey.isOnCurve(new web3_js_1.PublicKey(address).toBytes());
18
- }
19
- function isSolana(signature) {
20
- if (!signature || typeof signature !== 'string')
21
- return false;
22
- if ((0, ethers_1.isAddress)(signature))
23
- return false;
24
- try {
25
- const testKey = new web3_js_1.PublicKey(signature);
26
- if (web3_js_1.PublicKey.isOnCurve(testKey.toBytes())) {
27
- return false;
28
- }
29
- }
30
- catch (error) {
31
- }
32
- const base58Chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
33
- const isValidBase58 = signature
34
- .split('')
35
- .every((char) => base58Chars.includes(char));
36
- if (!isValidBase58)
37
- return false;
38
- return (signature.length >= 80 && signature.length <= 100);
39
- }
40
- function getProgram({ provider, idl, network, }) {
41
- if (!idl) {
42
- return new anchor_1.Program(constants_1.vaultIdl, provider);
43
- }
44
- return new anchor_1.Program(idl, provider);
45
- }
46
- async function testRpcEndpoint({ connection }) {
47
- try {
48
- const blockHeight = await connection.getBlockHeight();
49
- return { success: true, blockHeight };
50
- }
51
- catch (error) {
52
- return { success: false, error };
53
- }
54
- }
55
- async function getBestRpcEndpoint({ endpoint, network = constants_1.fallbackNetwork, connection, }) {
56
- const primaryEndpoint = endpoint;
57
- const fallbackEndpoint = constants_1.fallbackRpcEndpoints[network];
58
- const primaryTest = await testRpcEndpoint({ connection });
59
- if (primaryTest.success) {
60
- return primaryEndpoint;
61
- }
62
- console.warn('⚠️ Primary RPC endpoint failed, using fallback:', fallbackEndpoint);
63
- return fallbackEndpoint;
64
- }
65
- function getProvider({ connection, publicKey, signTransaction, }) {
66
- if (!publicKey || !signTransaction) {
67
- throw new Error('Wallet not connected');
68
- }
69
- return new anchor_1.AnchorProvider(connection, {
70
- publicKey,
71
- signTransaction,
72
- signAllTransactions: async (txs) => {
73
- const signedTransactions = await Promise.all(txs.map(async (tx) => signTransaction(tx)));
74
- return signedTransactions;
75
- },
76
- }, { commitment: 'confirmed' });
77
- }
78
- function getReadOnlyProvider({ connection }) {
79
- const dummyWallet = {
80
- publicKey: web3_js_1.PublicKey.default,
81
- signTransaction: async (_tx) => {
82
- throw new Error('Cannot sign transactions with read-only provider');
83
- },
84
- signAllTransactions: async (_txs) => {
85
- throw new Error('Cannot sign transactions with read-only provider');
86
- },
87
- };
88
- return new anchor_1.AnchorProvider(connection, dummyWallet, {
89
- commitment: 'confirmed',
90
- });
91
- }
92
- function deriveVaultStatePda(vaultProgramId) {
93
- if (!vaultProgramId)
94
- throw new Error('Vault program ID missing');
95
- const _vaultProgramId = new web3_js_1.PublicKey(vaultProgramId);
96
- const [pda] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('VAULT_STATE')], _vaultProgramId);
97
- return pda;
98
- }
99
- function deriveShareMintPda(vaultProgramId) {
100
- if (!vaultProgramId)
101
- throw new Error('Vault program ID missing');
102
- const _vaultProgramId = new web3_js_1.PublicKey(vaultProgramId);
103
- const [pda] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('mint')], _vaultProgramId);
104
- return pda;
105
- }
106
- function deriveVaultTokenAtaPda(vaultProgramId, depositMint) {
107
- if (!(vaultProgramId && depositMint))
108
- throw new Error('Vault program ID or deposit mint missing');
109
- const _vaultProgramId = new web3_js_1.PublicKey(vaultProgramId);
110
- const [pda] = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('token_vault'), depositMint.toBuffer()], _vaultProgramId);
111
- return pda;
112
- }
113
- async function getVaultState({ provider, connection, vaultProgramId, idl, }) {
114
- const returnObj = {
115
- vaultState: null,
116
- depositMintDecimals: null,
117
- vaultToken: {
118
- balance: 0,
119
- decimals: 0,
120
- rawAmount: '0',
121
- symbol: '',
122
- name: '',
123
- },
124
- };
125
- try {
126
- if (!vaultProgramId) {
127
- throw new Error('Please enter a vault program ID');
128
- }
129
- const vaultStatePda = deriveVaultStatePda(vaultProgramId);
130
- const program = getProgram({ provider, idl });
131
- const state = await program.account.vaultState.fetch(vaultStatePda);
132
- returnObj.vaultState = state;
133
- if (state.depositMint) {
134
- try {
135
- const mintInfo = await connection.getParsedAccountInfo(state.depositMint);
136
- if (mintInfo.value) {
137
- const parsedData = mintInfo.value.data;
138
- const { decimals } = parsedData.parsed.info;
139
- returnObj.depositMintDecimals = decimals;
140
- }
141
- const vaultTokenAtaPda = deriveVaultTokenAtaPda(vaultProgramId, state.depositMint);
142
- const tokenAccountInfo = await connection.getTokenAccountBalance(vaultTokenAtaPda);
143
- if (tokenAccountInfo.value) {
144
- returnObj.vaultToken = {
145
- balance: Number(tokenAccountInfo.value.uiAmount),
146
- decimals: Number(tokenAccountInfo.value.decimals),
147
- rawAmount: tokenAccountInfo.value.amount.toString(),
148
- symbol: '',
149
- name: '',
150
- };
151
- }
152
- }
153
- catch (balanceError) {
154
- console.error('Error fetching vault token balance:', balanceError);
155
- }
156
- }
157
- return returnObj;
158
- }
159
- catch (e) {
160
- const error = e;
161
- console.error('Error reading vault state:', error);
162
- return returnObj;
163
- }
164
- }
165
- async function getVaultStateReadOnly({ vaultProgramId, connection, idl, }) {
166
- const returnObj = {
167
- vaultState: null,
168
- depositMintDecimals: null,
169
- vaultToken: {
170
- balance: 0,
171
- decimals: 0,
172
- rawAmount: '0',
173
- symbol: '',
174
- name: '',
175
- },
176
- };
177
- try {
178
- if (!vaultProgramId) {
179
- throw new Error('Please enter a vault program ID');
180
- }
181
- const _vaultProgramId = new web3_js_1.PublicKey(vaultProgramId);
182
- const vaultStatePda = deriveVaultStatePda(_vaultProgramId);
183
- const accountInfo = await connection.getAccountInfo(vaultStatePda);
184
- if (!accountInfo) {
185
- console.warn('Vault state account not found');
186
- return returnObj;
187
- }
188
- try {
189
- const readOnlyProvider = getReadOnlyProvider({ connection });
190
- const program = getProgram({ provider: readOnlyProvider, idl });
191
- const state = await program.account.vaultState.fetch(vaultStatePda);
192
- returnObj.vaultState = state;
193
- if (state.depositMint) {
194
- try {
195
- const mintInfo = await connection.getParsedAccountInfo(state.depositMint);
196
- if (mintInfo.value) {
197
- const parsedData = mintInfo.value.data;
198
- const { decimals } = parsedData.parsed.info;
199
- returnObj.depositMintDecimals = decimals;
200
- }
201
- const vaultTokenAtaPda = deriveVaultTokenAtaPda(_vaultProgramId, state.depositMint);
202
- const tokenAccountInfo = await connection.getTokenAccountBalance(vaultTokenAtaPda);
203
- if (tokenAccountInfo.value) {
204
- returnObj.vaultToken = {
205
- balance: Number(tokenAccountInfo.value.uiAmount),
206
- decimals: Number(tokenAccountInfo.value.decimals),
207
- rawAmount: tokenAccountInfo.value.amount.toString(),
208
- symbol: '',
209
- name: '',
210
- };
211
- }
212
- }
213
- catch (balanceError) {
214
- console.error('Error fetching vault token balance:', balanceError);
215
- }
216
- }
217
- }
218
- catch (programError) {
219
- console.error('Error creating program with read-only provider:', programError);
220
- returnObj.vaultState = {
221
- address: vaultStatePda.toBase58(),
222
- data: accountInfo.data,
223
- owner: accountInfo.owner.toBase58(),
224
- lamports: accountInfo.lamports,
225
- executable: accountInfo.executable,
226
- rentEpoch: accountInfo.rentEpoch,
227
- };
228
- }
229
- return returnObj;
230
- }
231
- catch (e) {
232
- const error = e;
233
- console.error('Error reading vault state:', error);
234
- return returnObj;
235
- }
236
- }
237
- async function getToken({ mintAddress, endpoint, }) {
238
- try {
239
- const response = await fetch(endpoint, {
240
- method: 'POST',
241
- headers: {
242
- 'Content-Type': 'application/json',
243
- },
244
- body: JSON.stringify({
245
- jsonrpc: '2.0',
246
- id: 'text',
247
- method: 'getAsset',
248
- params: { id: mintAddress.toString() },
249
- }),
250
- });
251
- const data = (await response.json());
252
- return {
253
- address: data?.result?.id,
254
- symbol: data.result?.content?.metadata?.symbol || 'N/A',
255
- decimals: data.result?.token_info?.decimals,
256
- name: data.result?.content?.metadata?.name || 'Unknown',
257
- image: data.result?.content.metadata?.image,
258
- program: data.result?.token_info?.token_program,
259
- mintAuthority: data.result?.token_info?.mint_authority,
260
- freezeAuthority: data.result?.token_info?.freeze_authority,
261
- supply: data.result?.token_info?.supply,
262
- };
263
- }
264
- catch (error) {
265
- console.error('Error fetching token symbol:', error);
266
- return null;
267
- }
268
- }
269
- async function getTokenSymbol({ endpoint, mintAddress, }) {
270
- try {
271
- const tokenMetadata = await getToken({ endpoint, mintAddress });
272
- if (tokenMetadata) {
273
- return tokenMetadata.symbol;
274
- }
275
- return null;
276
- }
277
- catch (error) {
278
- console.error('Error fetching token symbol:', error);
279
- return null;
280
- }
281
- }
282
- async function fetchUserTokenBalance({ connection, publicKey, depositMint, }) {
283
- if (!publicKey || !depositMint)
284
- return '0';
285
- try {
286
- const _publicKey = new web3_js_1.PublicKey(publicKey);
287
- const _depositMint = new web3_js_1.PublicKey(depositMint);
288
- const tokenAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
289
- mint: _depositMint,
290
- });
291
- if (tokenAccounts.value.length > 0) {
292
- const balance = tokenAccounts?.value?.[0]?.account.data.parsed.info.tokenAmount
293
- .uiAmount;
294
- return balance?.toString() || '0';
295
- }
296
- return '0';
297
- }
298
- catch (e) {
299
- const error = e;
300
- console.error('Error fetching user token balance:', error);
301
- return '0';
302
- }
303
- }
304
- async function fetchUserShareBalance({ connection, publicKey, shareMint, network, }) {
305
- if (!publicKey || !shareMint)
306
- return 0;
307
- try {
308
- const _publicKey = new web3_js_1.PublicKey(publicKey);
309
- const _shareMint = new web3_js_1.PublicKey(shareMint);
310
- const shareMintPda = deriveShareMintPda(new web3_js_1.PublicKey(constants_1.programIds[network].vault));
311
- const shareMintInfo = await connection.getParsedAccountInfo(shareMintPda);
312
- if (!shareMintInfo.value) {
313
- console.error('#fetchUserShareBalance:Could not fetch share mint info');
314
- return 0;
315
- }
316
- const parsedData = shareMintInfo.value.data;
317
- const shareDecimals = parsedData.parsed.info.decimals || constants_1.fallbackDecimals + 2;
318
- const shareAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
319
- mint: _shareMint,
320
- });
321
- if (shareAccounts.value.length > 0) {
322
- const rawBalance = shareAccounts?.value?.[0]?.account.data.parsed.info.tokenAmount.amount;
323
- const balance = Number(rawBalance) / 10 ** shareDecimals;
324
- return balance;
325
- }
326
- return 0;
327
- }
328
- catch (e) {
329
- const error = e;
330
- console.error('Error fetching user share balance:', error);
331
- return 0;
332
- }
333
- }
334
- exports.SolanaUtils = {
335
- getExplorerLink,
336
- isSolanaAddress,
337
- isSolana,
338
- getProgram,
339
- getProvider,
340
- getReadOnlyProvider,
341
- deriveShareMintPda,
342
- deriveVaultStatePda,
343
- deriveVaultTokenAtaPda,
344
- getVaultState,
345
- getVaultStateReadOnly,
346
- getToken,
347
- getTokenSymbol,
348
- fetchUserTokenBalance,
349
- fetchUserShareBalance,
350
- getBestRpcEndpoint,
351
- fallbackDecimals: constants_1.fallbackDecimals,
352
- fallbackNetwork: constants_1.fallbackNetwork,
353
- programIds: constants_1.programIds,
354
- };
355
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src.ts/services/solana/utils.ts"],"names":[],"mappings":"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"}