@augustdigital/sdk 4.1.0-alpha → 4.1.0-beta

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 (251) hide show
  1. package/README.md +169 -11
  2. package/lib/__tests__/adapter.e2e.test.d.ts +1 -0
  3. package/lib/__tests__/adapter.e2e.test.js +94 -0
  4. package/lib/__tests__/adapter.e2e.test.js.map +1 -0
  5. package/lib/abis/Multicall3.js.map +1 -1
  6. package/lib/abis/PoolAdapter.d.ts +36 -76
  7. package/lib/abis/PoolAdapter.js +18 -379
  8. package/lib/abis/PoolAdapter.js.map +1 -1
  9. package/lib/abis/WrapperAdapter.d.ts +71 -60
  10. package/lib/abis/WrapperAdapter.js +41 -114
  11. package/lib/abis/WrapperAdapter.js.map +1 -1
  12. package/lib/abis/index.d.ts +3 -0
  13. package/lib/abis/index.js +3 -0
  14. package/lib/abis/index.js.map +1 -1
  15. package/lib/adapters/evm/getters.d.ts +1 -1
  16. package/lib/adapters/evm/getters.js +26 -37
  17. package/lib/adapters/evm/getters.js.map +1 -1
  18. package/lib/adapters/evm/index.d.ts +3 -3
  19. package/lib/adapters/evm/index.js +9 -10
  20. package/lib/adapters/evm/index.js.map +1 -1
  21. package/lib/adapters/evm/utils.d.ts +2 -28
  22. package/lib/adapters/evm/utils.js +29 -322
  23. package/lib/adapters/evm/utils.js.map +1 -1
  24. package/lib/adapters/solana/getters.js +33 -26
  25. package/lib/adapters/solana/getters.js.map +1 -1
  26. package/lib/adapters/solana/index.d.ts +25 -1
  27. package/lib/adapters/solana/utils.d.ts +13 -1
  28. package/lib/adapters/solana/utils.js +65 -16
  29. package/lib/adapters/solana/utils.js.map +1 -1
  30. package/lib/core/auth/verify.js +2 -2
  31. package/lib/core/auth/verify.js.map +1 -1
  32. package/lib/core/base.class.d.ts +1 -2
  33. package/lib/core/base.class.js +11 -6
  34. package/lib/core/base.class.js.map +1 -1
  35. package/lib/core/constants.adapters.d.ts +89 -0
  36. package/lib/core/constants.adapters.js +160 -0
  37. package/lib/core/constants.adapters.js.map +1 -0
  38. package/lib/{utils/constants/august.d.ts → core/constants.core.d.ts} +3 -1
  39. package/lib/{utils/constants/august.js → core/constants.core.js} +4 -2
  40. package/lib/core/constants.core.js.map +1 -0
  41. package/lib/core/constants.d.ts +2 -0
  42. package/lib/core/constants.js +3 -1
  43. package/lib/core/constants.js.map +1 -1
  44. package/lib/core/constants.vaults.d.ts +19 -0
  45. package/lib/{utils/vaults.js → core/constants.vaults.js} +49 -75
  46. package/lib/core/constants.vaults.js.map +1 -0
  47. package/lib/{utils/constants/web3.d.ts → core/constants.web3.d.ts} +4 -6
  48. package/lib/{utils/constants/web3.js → core/constants.web3.js} +15 -27
  49. package/lib/core/constants.web3.js.map +1 -0
  50. package/lib/core/fetcher.d.ts +1 -1
  51. package/lib/core/fetcher.js +177 -64
  52. package/lib/core/fetcher.js.map +1 -1
  53. package/lib/core/helpers.adapters.d.ts +4 -0
  54. package/lib/core/helpers.adapters.js +28 -0
  55. package/lib/core/helpers.adapters.js.map +1 -0
  56. package/lib/core/helpers.core.d.ts +1 -1
  57. package/lib/core/helpers.core.js +6 -6
  58. package/lib/core/helpers.core.js.map +1 -1
  59. package/lib/core/helpers.vaults.d.ts +15 -0
  60. package/lib/core/helpers.vaults.js +120 -0
  61. package/lib/core/helpers.vaults.js.map +1 -0
  62. package/lib/core/helpers.web3.d.ts +5 -2
  63. package/lib/core/helpers.web3.js +75 -25
  64. package/lib/core/helpers.web3.js.map +1 -1
  65. package/lib/core/index.d.ts +8 -5
  66. package/lib/core/index.js +8 -5
  67. package/lib/core/index.js.map +1 -1
  68. package/lib/core/logger/index.d.ts +9 -0
  69. package/lib/core/logger/index.js +29 -0
  70. package/lib/core/logger/index.js.map +1 -1
  71. package/lib/core/logger/slack.js +3 -3
  72. package/lib/core/vault.utils.d.ts +4 -0
  73. package/lib/core/vault.utils.js +35 -0
  74. package/lib/core/vault.utils.js.map +1 -0
  75. package/lib/core/web3.helpers.d.ts +1 -0
  76. package/lib/core/web3.helpers.js +32 -3
  77. package/lib/core/web3.helpers.js.map +1 -1
  78. package/lib/index.d.ts +6 -6
  79. package/lib/index.js +14 -7
  80. package/lib/index.js.map +1 -1
  81. package/lib/main.d.ts +88 -14
  82. package/lib/main.js +54 -17
  83. package/lib/main.js.map +1 -1
  84. package/lib/modules/vaults/adapter.helpers.d.ts +46 -0
  85. package/lib/modules/vaults/adapter.helpers.js +149 -0
  86. package/lib/modules/vaults/adapter.helpers.js.map +1 -0
  87. package/lib/modules/vaults/constants.d.ts +7 -7
  88. package/lib/modules/vaults/constants.js +11 -15
  89. package/lib/modules/vaults/constants.js.map +1 -1
  90. package/lib/{vaults/utils.d.ts → modules/vaults/fetcher.d.ts} +0 -20
  91. package/lib/{vaults/utils.js → modules/vaults/fetcher.js} +19 -176
  92. package/lib/modules/vaults/fetcher.js.map +1 -0
  93. package/lib/modules/vaults/getters.d.ts +32 -3
  94. package/lib/modules/vaults/getters.js +367 -71
  95. package/lib/modules/vaults/getters.js.map +1 -1
  96. package/lib/modules/vaults/index.d.ts +2 -83
  97. package/lib/modules/vaults/index.js +2 -480
  98. package/lib/modules/vaults/index.js.map +1 -1
  99. package/lib/modules/vaults/main.d.ts +27 -47
  100. package/lib/modules/vaults/main.js +127 -198
  101. package/lib/modules/vaults/main.js.map +1 -1
  102. package/lib/modules/vaults/read.actions.d.ts +3 -0
  103. package/lib/{adapters/evm → modules/vaults}/read.actions.js +12 -12
  104. package/lib/modules/vaults/read.actions.js.map +1 -0
  105. package/lib/modules/vaults/utils.d.ts +2 -106
  106. package/lib/modules/vaults/utils.js +132 -337
  107. package/lib/modules/vaults/utils.js.map +1 -1
  108. package/lib/modules/vaults/{user.actions.d.ts → write.actions.d.ts} +12 -2
  109. package/lib/modules/vaults/write.actions.js +291 -0
  110. package/lib/modules/vaults/write.actions.js.map +1 -0
  111. package/lib/services/debank/utils.js +4 -4
  112. package/lib/services/subgraph/fetcher.js +3 -2
  113. package/lib/services/subgraph/fetcher.js.map +1 -1
  114. package/lib/services/subgraph/vaults.js +25 -27
  115. package/lib/services/subgraph/vaults.js.map +1 -1
  116. package/lib/types/pools.d.ts +1 -1
  117. package/lib/types/vaults.d.ts +19 -0
  118. package/lib/types/webserver.d.ts +15 -1
  119. package/package.json +16 -10
  120. package/lib/adapters/evm/core.actions.d.ts +0 -9
  121. package/lib/adapters/evm/core.actions.js +0 -51
  122. package/lib/adapters/evm/core.actions.js.map +0 -1
  123. package/lib/adapters/evm/read.actions.d.ts +0 -3
  124. package/lib/adapters/evm/read.actions.js.map +0 -1
  125. package/lib/adapters/evm/vaults.actions.d.ts +0 -10
  126. package/lib/adapters/evm/vaults.actions.js +0 -97
  127. package/lib/adapters/evm/vaults.actions.js.map +0 -1
  128. package/lib/adapters/solana/actions.d.ts +0 -20
  129. package/lib/adapters/solana/actions.js +0 -225
  130. package/lib/adapters/solana/actions.js.map +0 -1
  131. package/lib/adapters/solana/class.d.ts +0 -45
  132. package/lib/adapters/solana/class.js +0 -135
  133. package/lib/adapters/solana/class.js.map +0 -1
  134. package/lib/adapters/solana/vault-idl.d.ts +0 -338
  135. package/lib/adapters/solana/vault-idl.js +0 -1075
  136. package/lib/adapters/solana/vault-idl.js.map +0 -1
  137. package/lib/core/base-class.d.ts +0 -34
  138. package/lib/core/base-class.js +0 -55
  139. package/lib/core/base-class.js.map +0 -1
  140. package/lib/core/helpers.d.ts +0 -23
  141. package/lib/core/helpers.js +0 -210
  142. package/lib/core/helpers.js.map +0 -1
  143. package/lib/modules/vaults/admin-actions.d.ts +0 -0
  144. package/lib/modules/vaults/admin-actions.js +0 -1
  145. package/lib/modules/vaults/admin-actions.js.map +0 -1
  146. package/lib/modules/vaults/user-actions.d.ts +0 -19
  147. package/lib/modules/vaults/user-actions.js +0 -172
  148. package/lib/modules/vaults/user-actions.js.map +0 -1
  149. package/lib/modules/vaults/user.actions.js +0 -95
  150. package/lib/modules/vaults/user.actions.js.map +0 -1
  151. package/lib/services/auth/index.d.ts +0 -1
  152. package/lib/services/auth/index.js +0 -18
  153. package/lib/services/auth/index.js.map +0 -1
  154. package/lib/services/auth/verify.d.ts +0 -2
  155. package/lib/services/auth/verify.js +0 -20
  156. package/lib/services/auth/verify.js.map +0 -1
  157. package/lib/services/index.d.ts +0 -4
  158. package/lib/services/index.js +0 -21
  159. package/lib/services/index.js.map +0 -1
  160. package/lib/services/logger/index.d.ts +0 -12
  161. package/lib/services/logger/index.js +0 -51
  162. package/lib/services/logger/index.js.map +0 -1
  163. package/lib/services/logger/slack.d.ts +0 -12
  164. package/lib/services/logger/slack.js +0 -48
  165. package/lib/services/logger/slack.js.map +0 -1
  166. package/lib/services/solana/actions.d.ts +0 -20
  167. package/lib/services/solana/actions.js +0 -225
  168. package/lib/services/solana/actions.js.map +0 -1
  169. package/lib/services/solana/class.d.ts +0 -45
  170. package/lib/services/solana/class.js +0 -135
  171. package/lib/services/solana/class.js.map +0 -1
  172. package/lib/services/solana/constants.d.ts +0 -25
  173. package/lib/services/solana/constants.js +0 -32
  174. package/lib/services/solana/constants.js.map +0 -1
  175. package/lib/services/solana/index.d.ts +0 -84
  176. package/lib/services/solana/index.js +0 -50
  177. package/lib/services/solana/index.js.map +0 -1
  178. package/lib/services/solana/types.d.ts +0 -58
  179. package/lib/services/solana/types.js +0 -3
  180. package/lib/services/solana/types.js.map +0 -1
  181. package/lib/services/solana/utils.d.ts +0 -96
  182. package/lib/services/solana/utils.js +0 -355
  183. package/lib/services/solana/utils.js.map +0 -1
  184. package/lib/services/solana/vault-idl.d.ts +0 -338
  185. package/lib/services/solana/vault-idl.js +0 -1075
  186. package/lib/services/solana/vault-idl.js.map +0 -1
  187. package/lib/utils/base-class.d.ts +0 -34
  188. package/lib/utils/base-class.js +0 -55
  189. package/lib/utils/base-class.js.map +0 -1
  190. package/lib/utils/constants/august.js.map +0 -1
  191. package/lib/utils/constants/fallbacks.d.ts +0 -3
  192. package/lib/utils/constants/fallbacks.js +0 -26
  193. package/lib/utils/constants/fallbacks.js.map +0 -1
  194. package/lib/utils/constants/index.d.ts +0 -3
  195. package/lib/utils/constants/index.js +0 -20
  196. package/lib/utils/constants/index.js.map +0 -1
  197. package/lib/utils/constants/web3.js.map +0 -1
  198. package/lib/utils/fetcher.d.ts +0 -25
  199. package/lib/utils/fetcher.js +0 -334
  200. package/lib/utils/fetcher.js.map +0 -1
  201. package/lib/utils/helpers/array.d.ts +0 -6
  202. package/lib/utils/helpers/array.js +0 -40
  203. package/lib/utils/helpers/array.js.map +0 -1
  204. package/lib/utils/helpers/datetime.d.ts +0 -5
  205. package/lib/utils/helpers/datetime.js +0 -32
  206. package/lib/utils/helpers/datetime.js.map +0 -1
  207. package/lib/utils/helpers/formatters.d.ts +0 -8
  208. package/lib/utils/helpers/formatters.js +0 -113
  209. package/lib/utils/helpers/formatters.js.map +0 -1
  210. package/lib/utils/helpers/index.d.ts +0 -6
  211. package/lib/utils/helpers/index.js +0 -23
  212. package/lib/utils/helpers/index.js.map +0 -1
  213. package/lib/utils/helpers/responses.d.ts +0 -32
  214. package/lib/utils/helpers/responses.js +0 -229
  215. package/lib/utils/helpers/responses.js.map +0 -1
  216. package/lib/utils/helpers/verify-keys.d.ts +0 -2
  217. package/lib/utils/helpers/verify-keys.js +0 -21
  218. package/lib/utils/helpers/verify-keys.js.map +0 -1
  219. package/lib/utils/helpers/web3.d.ts +0 -27
  220. package/lib/utils/helpers/web3.js +0 -339
  221. package/lib/utils/helpers/web3.js.map +0 -1
  222. package/lib/utils/index.d.ts +0 -5
  223. package/lib/utils/index.js +0 -22
  224. package/lib/utils/index.js.map +0 -1
  225. package/lib/utils/vaults.d.ts +0 -53
  226. package/lib/utils/vaults.js.map +0 -1
  227. package/lib/vaults/admin-actions.d.ts +0 -0
  228. package/lib/vaults/admin-actions.js +0 -1
  229. package/lib/vaults/admin-actions.js.map +0 -1
  230. package/lib/vaults/getters.d.ts +0 -38
  231. package/lib/vaults/getters.js +0 -760
  232. package/lib/vaults/getters.js.map +0 -1
  233. package/lib/vaults/index.d.ts +0 -4
  234. package/lib/vaults/index.js +0 -21
  235. package/lib/vaults/index.js.map +0 -1
  236. package/lib/vaults/main.d.ts +0 -118
  237. package/lib/vaults/main.js +0 -591
  238. package/lib/vaults/main.js.map +0 -1
  239. package/lib/vaults/rpc-config.d.ts +0 -4
  240. package/lib/vaults/rpc-config.js +0 -27
  241. package/lib/vaults/rpc-config.js.map +0 -1
  242. package/lib/vaults/subgraph.d.ts +0 -10
  243. package/lib/vaults/subgraph.js +0 -470
  244. package/lib/vaults/subgraph.js.map +0 -1
  245. package/lib/vaults/user-actions.d.ts +0 -19
  246. package/lib/vaults/user-actions.js +0 -172
  247. package/lib/vaults/user-actions.js.map +0 -1
  248. package/lib/vaults/utils.js.map +0 -1
  249. package/lib/verify.d.ts +0 -2
  250. package/lib/verify.js +0 -20
  251. 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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"}