@augustdigital/sdk 4.1.0-alpha → 4.1.0

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