@augustdigital/sdk 4.0.8-alpha → 4.0.8-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 (246) hide show
  1. package/README.md +169 -11
  2. package/lib/abis/AddressResolver.d.ts +28 -0
  3. package/lib/abis/AddressResolver.js +23 -0
  4. package/lib/abis/AddressResolver.js.map +1 -0
  5. package/lib/abis/ChainlinkV3.d.ts +87 -0
  6. package/lib/abis/ChainlinkV3.js +117 -0
  7. package/lib/abis/ChainlinkV3.js.map +1 -0
  8. package/lib/abis/ERC20.d.ts +168 -0
  9. package/lib/abis/ERC20.js +226 -0
  10. package/lib/abis/ERC20.js.map +1 -0
  11. package/lib/abis/ERC20_Bytes32.d.ts +135 -0
  12. package/lib/abis/ERC20_Bytes32.js +192 -0
  13. package/lib/abis/ERC20_Bytes32.js.map +1 -0
  14. package/lib/abis/ERC4626.d.ts +363 -0
  15. package/lib/abis/ERC4626.js +506 -0
  16. package/lib/abis/ERC4626.js.map +1 -0
  17. package/lib/abis/ERC721.d.ts +230 -0
  18. package/lib/abis/ERC721.js +320 -0
  19. package/lib/abis/ERC721.js.map +1 -0
  20. package/lib/abis/FeeOracle.d.ts +120 -0
  21. package/lib/abis/FeeOracle.js +161 -0
  22. package/lib/abis/FeeOracle.js.map +1 -0
  23. package/lib/abis/LendingPool.d.ts +1393 -0
  24. package/lib/abis/LendingPool.js +1806 -0
  25. package/lib/abis/LendingPool.js.map +1 -0
  26. package/lib/abis/LendingPoolV2.d.ts +55 -0
  27. package/lib/abis/LendingPoolV2.js +1832 -0
  28. package/lib/abis/LendingPoolV2.js.map +1 -0
  29. package/lib/abis/LendingPoolV3.d.ts +35 -0
  30. package/lib/abis/LendingPoolV3.js +1160 -0
  31. package/lib/abis/LendingPoolV3.js.map +1 -0
  32. package/lib/abis/Loan.d.ts +837 -0
  33. package/lib/abis/Loan.js +1080 -0
  34. package/lib/abis/Loan.js.map +1 -0
  35. package/lib/abis/Multicall3.d.ts +30 -0
  36. package/lib/abis/Multicall3.js +94 -0
  37. package/lib/abis/Multicall3.js.map +1 -0
  38. package/lib/abis/PoolAdapter.d.ts +76 -0
  39. package/lib/abis/PoolAdapter.js +412 -0
  40. package/lib/abis/PoolAdapter.js.map +1 -0
  41. package/lib/abis/RewardDistributor.d.ts +46 -0
  42. package/lib/abis/RewardDistributor.js +352 -0
  43. package/lib/abis/RewardDistributor.js.map +1 -0
  44. package/lib/abis/SmartAccount.d.ts +16 -0
  45. package/lib/abis/SmartAccount.js +16 -0
  46. package/lib/abis/SmartAccount.js.map +1 -0
  47. package/lib/abis/TextResolver.d.ts +16 -0
  48. package/lib/abis/TextResolver.js +16 -0
  49. package/lib/abis/TextResolver.js.map +1 -0
  50. package/lib/abis/TokenizedVaultV2.d.ts +1354 -0
  51. package/lib/abis/TokenizedVaultV2.js +1028 -0
  52. package/lib/abis/TokenizedVaultV2.js.map +1 -0
  53. package/lib/abis/TokenizedVaultV2Receipt.d.ts +1568 -0
  54. package/lib/abis/TokenizedVaultV2Receipt.js +1061 -0
  55. package/lib/abis/TokenizedVaultV2Receipt.js.map +1 -0
  56. package/lib/abis/TokenizedVaultV2WhitelistedAssets.d.ts +274 -0
  57. package/lib/abis/TokenizedVaultV2WhitelistedAssets.js +167 -0
  58. package/lib/abis/TokenizedVaultV2WhitelistedAssets.js.map +1 -0
  59. package/lib/abis/UniversalResolverResolve.d.ts +69 -0
  60. package/lib/abis/UniversalResolverResolve.js +35 -0
  61. package/lib/abis/UniversalResolverResolve.js.map +1 -0
  62. package/lib/abis/UniversalSignatureValidator.d.ts +17 -0
  63. package/lib/abis/UniversalSignatureValidator.js +27 -0
  64. package/lib/abis/UniversalSignatureValidator.js.map +1 -0
  65. package/lib/abis/WrapperAdapter.d.ts +60 -0
  66. package/lib/abis/WrapperAdapter.js +150 -0
  67. package/lib/abis/WrapperAdapter.js.map +1 -0
  68. package/lib/abis/index.d.ts +22 -0
  69. package/lib/abis/index.js +39 -0
  70. package/lib/abis/index.js.map +1 -0
  71. package/lib/adapters/evm/getters.d.ts +4 -0
  72. package/lib/adapters/evm/getters.js +152 -0
  73. package/lib/adapters/evm/getters.js.map +1 -0
  74. package/lib/adapters/evm/index.d.ts +19 -0
  75. package/lib/adapters/evm/index.js +54 -0
  76. package/lib/adapters/evm/index.js.map +1 -0
  77. package/lib/adapters/evm/utils.d.ts +2 -0
  78. package/lib/adapters/evm/utils.js +43 -0
  79. package/lib/adapters/evm/utils.js.map +1 -0
  80. package/lib/adapters/solana/constants.d.ts +25 -0
  81. package/lib/adapters/solana/constants.js +32 -0
  82. package/lib/adapters/solana/constants.js.map +1 -0
  83. package/lib/adapters/solana/getters.d.ts +3 -0
  84. package/lib/adapters/solana/getters.js +133 -0
  85. package/lib/adapters/solana/getters.js.map +1 -0
  86. package/lib/adapters/solana/idl/vault-idl.d.ts +338 -0
  87. package/lib/adapters/solana/idl/vault-idl.js +1075 -0
  88. package/lib/adapters/solana/idl/vault-idl.js.map +1 -0
  89. package/lib/adapters/solana/index.d.ts +160 -0
  90. package/lib/adapters/solana/index.js +174 -0
  91. package/lib/adapters/solana/index.js.map +1 -0
  92. package/lib/adapters/solana/types.d.ts +58 -0
  93. package/lib/adapters/solana/types.js +3 -0
  94. package/lib/adapters/solana/types.js.map +1 -0
  95. package/lib/adapters/solana/utils.d.ts +116 -0
  96. package/lib/adapters/solana/utils.js +429 -0
  97. package/lib/adapters/solana/utils.js.map +1 -0
  98. package/lib/adapters/solana/vault.actions.d.ts +18 -0
  99. package/lib/adapters/solana/vault.actions.js +235 -0
  100. package/lib/adapters/solana/vault.actions.js.map +1 -0
  101. package/lib/adapters/sui/index.d.ts +0 -0
  102. package/lib/adapters/sui/index.js +1 -0
  103. package/lib/adapters/sui/index.js.map +1 -0
  104. package/lib/core/auth/index.d.ts +1 -0
  105. package/lib/core/auth/index.js +18 -0
  106. package/lib/core/auth/index.js.map +1 -0
  107. package/lib/{verify.js → core/auth/verify.js} +3 -2
  108. package/lib/core/auth/verify.js.map +1 -0
  109. package/lib/core/base.class.d.ts +33 -0
  110. package/lib/core/base.class.js +66 -0
  111. package/lib/core/base.class.js.map +1 -0
  112. package/lib/core/constants.core.d.ts +59 -0
  113. package/lib/core/constants.core.js +63 -0
  114. package/lib/core/constants.core.js.map +1 -0
  115. package/lib/core/constants.d.ts +88 -0
  116. package/lib/core/constants.js +148 -0
  117. package/lib/core/constants.js.map +1 -0
  118. package/lib/core/constants.vaults.d.ts +19 -0
  119. package/lib/core/constants.vaults.js +130 -0
  120. package/lib/core/constants.vaults.js.map +1 -0
  121. package/lib/core/constants.web3.d.ts +30 -0
  122. package/lib/core/constants.web3.js +89 -0
  123. package/lib/core/constants.web3.js.map +1 -0
  124. package/lib/core/core.helpers.d.ts +23 -0
  125. package/lib/core/core.helpers.js +210 -0
  126. package/lib/core/core.helpers.js.map +1 -0
  127. package/lib/core/fetcher.d.ts +22 -0
  128. package/lib/core/fetcher.js +372 -0
  129. package/lib/core/fetcher.js.map +1 -0
  130. package/lib/core/helpers.core.d.ts +23 -0
  131. package/lib/core/helpers.core.js +210 -0
  132. package/lib/core/helpers.core.js.map +1 -0
  133. package/lib/core/helpers.vaults.d.ts +15 -0
  134. package/lib/core/helpers.vaults.js +120 -0
  135. package/lib/core/helpers.vaults.js.map +1 -0
  136. package/lib/core/helpers.web3.d.ts +29 -0
  137. package/lib/core/helpers.web3.js +365 -0
  138. package/lib/core/helpers.web3.js.map +1 -0
  139. package/lib/core/index.d.ts +10 -0
  140. package/lib/core/index.js +27 -0
  141. package/lib/core/index.js.map +1 -0
  142. package/lib/core/logger/index.d.ts +21 -0
  143. package/lib/core/logger/index.js +80 -0
  144. package/lib/core/logger/index.js.map +1 -0
  145. package/lib/core/logger/slack.d.ts +12 -0
  146. package/lib/core/logger/slack.js +49 -0
  147. package/lib/core/logger/slack.js.map +1 -0
  148. package/lib/core/read.actions.d.ts +3 -0
  149. package/lib/core/read.actions.js +39 -0
  150. package/lib/core/read.actions.js.map +1 -0
  151. package/lib/core/vault.utils.d.ts +4 -0
  152. package/lib/core/vault.utils.js +35 -0
  153. package/lib/core/vault.utils.js.map +1 -0
  154. package/lib/core/web3.helpers.d.ts +29 -0
  155. package/lib/core/web3.helpers.js +365 -0
  156. package/lib/core/web3.helpers.js.map +1 -0
  157. package/lib/core/write.actions.d.ts +9 -0
  158. package/lib/core/write.actions.js +51 -0
  159. package/lib/core/write.actions.js.map +1 -0
  160. package/lib/index.d.ts +6 -6
  161. package/lib/index.js +14 -7
  162. package/lib/index.js.map +1 -1
  163. package/lib/main.d.ts +88 -14
  164. package/lib/main.js +54 -17
  165. package/lib/main.js.map +1 -1
  166. package/lib/modules/vaults/constants.d.ts +63 -0
  167. package/lib/modules/vaults/constants.js +186 -0
  168. package/lib/modules/vaults/constants.js.map +1 -0
  169. package/lib/modules/vaults/fetcher.d.ts +101 -0
  170. package/lib/modules/vaults/fetcher.js +257 -0
  171. package/lib/modules/vaults/fetcher.js.map +1 -0
  172. package/lib/modules/vaults/getters.d.ts +67 -0
  173. package/lib/modules/vaults/getters.js +932 -0
  174. package/lib/modules/vaults/getters.js.map +1 -0
  175. package/lib/modules/vaults/index.d.ts +3 -0
  176. package/lib/modules/vaults/index.js +20 -0
  177. package/lib/modules/vaults/index.js.map +1 -0
  178. package/lib/modules/vaults/main.d.ts +98 -0
  179. package/lib/modules/vaults/main.js +519 -0
  180. package/lib/modules/vaults/main.js.map +1 -0
  181. package/lib/modules/vaults/read.actions.d.ts +3 -0
  182. package/lib/modules/vaults/read.actions.js +39 -0
  183. package/lib/modules/vaults/read.actions.js.map +1 -0
  184. package/lib/modules/vaults/utils.d.ts +12 -0
  185. package/lib/modules/vaults/utils.js +170 -0
  186. package/lib/modules/vaults/utils.js.map +1 -0
  187. package/lib/modules/vaults/vault.actions.d.ts +10 -0
  188. package/lib/modules/vaults/vault.actions.js +95 -0
  189. package/lib/modules/vaults/vault.actions.js.map +1 -0
  190. package/lib/modules/vaults/write.actions.d.ts +17 -0
  191. package/lib/modules/vaults/write.actions.js +143 -0
  192. package/lib/modules/vaults/write.actions.js.map +1 -0
  193. package/lib/services/coingecko/fetcher.d.ts +1 -0
  194. package/lib/services/coingecko/fetcher.js +36 -0
  195. package/lib/services/coingecko/fetcher.js.map +1 -0
  196. package/lib/services/coingecko/index.d.ts +2 -0
  197. package/lib/services/coingecko/index.js +19 -0
  198. package/lib/services/coingecko/index.js.map +1 -0
  199. package/lib/services/coingecko/utils.d.ts +1 -0
  200. package/lib/services/coingecko/utils.js +24 -0
  201. package/lib/services/coingecko/utils.js.map +1 -0
  202. package/lib/services/debank/fetcher.d.ts +2 -0
  203. package/lib/services/debank/fetcher.js +16 -0
  204. package/lib/services/debank/fetcher.js.map +1 -0
  205. package/lib/services/debank/index.d.ts +2 -0
  206. package/lib/services/debank/index.js +19 -0
  207. package/lib/services/debank/index.js.map +1 -0
  208. package/lib/services/debank/utils.d.ts +32 -0
  209. package/lib/services/debank/utils.js +229 -0
  210. package/lib/services/debank/utils.js.map +1 -0
  211. package/lib/services/subgraph/fetcher.d.ts +2 -0
  212. package/lib/services/subgraph/fetcher.js +59 -0
  213. package/lib/services/subgraph/fetcher.js.map +1 -0
  214. package/lib/services/subgraph/index.d.ts +2 -0
  215. package/lib/services/subgraph/index.js +19 -0
  216. package/lib/services/subgraph/index.js.map +1 -0
  217. package/lib/services/subgraph/vaults.d.ts +10 -0
  218. package/lib/services/subgraph/vaults.js +471 -0
  219. package/lib/services/subgraph/vaults.js.map +1 -0
  220. package/lib/types/index.d.ts +8 -0
  221. package/lib/types/index.js +24 -0
  222. package/lib/types/index.js.map +1 -0
  223. package/lib/types/pools.d.ts +141 -0
  224. package/lib/types/pools.js +3 -0
  225. package/lib/types/pools.js.map +1 -0
  226. package/lib/types/staking.d.ts +28 -0
  227. package/lib/types/staking.js +3 -0
  228. package/lib/types/staking.js.map +1 -0
  229. package/lib/types/subgraph.d.ts +45 -0
  230. package/lib/types/subgraph.js +3 -0
  231. package/lib/types/subgraph.js.map +1 -0
  232. package/lib/types/user.d.ts +1 -0
  233. package/lib/types/user.js +3 -0
  234. package/lib/types/user.js.map +1 -0
  235. package/lib/types/vaults.d.ts +170 -0
  236. package/lib/types/vaults.js +3 -0
  237. package/lib/types/vaults.js.map +1 -0
  238. package/lib/types/web3.d.ts +24 -0
  239. package/lib/types/web3.js +3 -0
  240. package/lib/types/web3.js.map +1 -0
  241. package/lib/types/webserver.d.ts +489 -0
  242. package/lib/types/webserver.js +3 -0
  243. package/lib/types/webserver.js.map +1 -0
  244. package/package.json +16 -10
  245. package/lib/verify.js.map +0 -1
  246. /package/lib/{verify.d.ts → core/auth/verify.d.ts} +0 -0
@@ -0,0 +1,429 @@
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([new TextEncoder().encode('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([new TextEncoder().encode('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([new TextEncoder().encode('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 getVaultMints({ vaultProgramId, connection, idl, }) {
238
+ try {
239
+ if (!vaultProgramId) {
240
+ throw new Error('Please enter a vault program ID');
241
+ }
242
+ const _vaultProgramId = new web3_js_1.PublicKey(vaultProgramId);
243
+ const vaultStatePda = deriveVaultStatePda(_vaultProgramId);
244
+ const readOnlyProvider = getReadOnlyProvider({ connection });
245
+ const program = getProgram({ provider: readOnlyProvider, idl });
246
+ const state = await program.account.vaultState.fetch(vaultStatePda);
247
+ return {
248
+ depositMint: state.depositMint.toString(),
249
+ shareMint: state.shareMint.toString(),
250
+ };
251
+ }
252
+ catch (e) {
253
+ const error = e;
254
+ console.error('Error reading vault state:', error);
255
+ return {
256
+ depositMint: '',
257
+ shareMint: '',
258
+ };
259
+ }
260
+ }
261
+ async function getToken({ mintAddress, endpoint, connection, }) {
262
+ try {
263
+ const response = await fetch(endpoint, {
264
+ method: 'POST',
265
+ headers: {
266
+ 'Content-Type': 'application/json',
267
+ },
268
+ body: JSON.stringify({
269
+ jsonrpc: '2.0',
270
+ id: 'text',
271
+ method: 'getAsset',
272
+ params: { id: mintAddress.toString() },
273
+ }),
274
+ });
275
+ const data = (await response.json());
276
+ if (data.result?.token_info?.decimals !== undefined) {
277
+ return {
278
+ address: data?.result?.id,
279
+ symbol: data.result?.content?.metadata?.symbol || 'N/A',
280
+ decimals: data.result?.token_info?.decimals,
281
+ name: data.result?.content?.metadata?.name || 'Unknown',
282
+ image: data.result?.content.metadata?.image,
283
+ program: data.result?.token_info?.token_program,
284
+ mintAuthority: data.result?.token_info?.mint_authority,
285
+ freezeAuthority: data.result?.token_info?.freeze_authority,
286
+ supply: data.result?.token_info?.supply,
287
+ };
288
+ }
289
+ if (connection) {
290
+ try {
291
+ const vaultProgramId = new web3_js_1.PublicKey(mintAddress);
292
+ const vaultState = await getVaultStateReadOnly({
293
+ vaultProgramId,
294
+ connection,
295
+ idl: constants_1.vaultIdl,
296
+ });
297
+ if (vaultState.vaultState) {
298
+ const shareMintPda = deriveShareMintPda(vaultProgramId);
299
+ const shareMintInfo = await connection.getParsedAccountInfo(shareMintPda);
300
+ if (shareMintInfo.value) {
301
+ const parsedData = shareMintInfo.value.data;
302
+ const shareMintMetadata = await fetch(endpoint, {
303
+ method: 'POST',
304
+ headers: {
305
+ 'Content-Type': 'application/json',
306
+ },
307
+ body: JSON.stringify({
308
+ jsonrpc: '2.0',
309
+ id: 'text',
310
+ method: 'getAsset',
311
+ params: { id: shareMintPda.toString() },
312
+ }),
313
+ });
314
+ const shareMintData = (await shareMintMetadata.json());
315
+ return {
316
+ address: mintAddress.toString(),
317
+ symbol: shareMintData.result?.content?.metadata?.symbol || 'N/A',
318
+ decimals: parsedData.parsed.info.decimals,
319
+ name: shareMintData.result?.content?.metadata?.name ||
320
+ 'Vault Share Token',
321
+ image: shareMintData.result?.content?.metadata?.image,
322
+ program: shareMintData.result?.token_info?.token_program,
323
+ mintAuthority: shareMintData.result?.token_info?.mint_authority,
324
+ freezeAuthority: shareMintData.result?.token_info?.freeze_authority,
325
+ supply: parsedData.parsed.info.supply,
326
+ shareMintAddress: shareMintPda.toString(),
327
+ };
328
+ }
329
+ }
330
+ }
331
+ catch (vaultError) {
332
+ console.log('Not a vault program or error querying vault:', vaultError);
333
+ }
334
+ }
335
+ return null;
336
+ }
337
+ catch (error) {
338
+ console.error('Error fetching token metadata:', error);
339
+ return null;
340
+ }
341
+ }
342
+ async function getTokenSymbol({ endpoint, mintAddress, }) {
343
+ try {
344
+ const tokenMetadata = await getToken({ endpoint, mintAddress });
345
+ if (tokenMetadata) {
346
+ return tokenMetadata.symbol;
347
+ }
348
+ return null;
349
+ }
350
+ catch (error) {
351
+ console.error('Error fetching token symbol:', error);
352
+ return null;
353
+ }
354
+ }
355
+ async function fetchUserTokenBalance({ connection, publicKey, depositMint, }) {
356
+ if (!publicKey || !depositMint)
357
+ return '0';
358
+ try {
359
+ const _publicKey = new web3_js_1.PublicKey(publicKey);
360
+ const _depositMint = new web3_js_1.PublicKey(depositMint);
361
+ const tokenAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
362
+ mint: _depositMint,
363
+ });
364
+ if (tokenAccounts.value.length > 0) {
365
+ const balance = tokenAccounts?.value?.[0]?.account.data.parsed.info.tokenAmount
366
+ .uiAmount;
367
+ return balance?.toString() || '0';
368
+ }
369
+ return '0';
370
+ }
371
+ catch (e) {
372
+ const error = e;
373
+ console.error('Error fetching user token balance:', error);
374
+ return '0';
375
+ }
376
+ }
377
+ async function fetchUserShareBalance({ connection, publicKey, shareMint, network, }) {
378
+ if (!publicKey || !shareMint)
379
+ return 0;
380
+ try {
381
+ const _publicKey = new web3_js_1.PublicKey(publicKey);
382
+ const _shareMint = new web3_js_1.PublicKey(shareMint);
383
+ const shareMintPda = deriveShareMintPda(new web3_js_1.PublicKey(constants_1.programIds[network].vault));
384
+ const shareMintInfo = await connection.getParsedAccountInfo(shareMintPda);
385
+ if (!shareMintInfo.value) {
386
+ console.error('#fetchUserShareBalance:Could not fetch share mint info');
387
+ return 0;
388
+ }
389
+ const parsedData = shareMintInfo.value.data;
390
+ const shareDecimals = parsedData.parsed.info.decimals || constants_1.fallbackDecimals + 2;
391
+ const shareAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
392
+ mint: _shareMint,
393
+ });
394
+ if (shareAccounts.value.length > 0) {
395
+ const rawBalance = shareAccounts?.value?.[0]?.account.data.parsed.info.tokenAmount.amount;
396
+ const balance = Number(rawBalance) / 10 ** shareDecimals;
397
+ return balance;
398
+ }
399
+ return 0;
400
+ }
401
+ catch (e) {
402
+ const error = e;
403
+ console.error('Error fetching user share balance:', error);
404
+ return 0;
405
+ }
406
+ }
407
+ exports.SolanaUtils = {
408
+ getExplorerLink,
409
+ isSolanaAddress,
410
+ isSolana,
411
+ getProgram,
412
+ getProvider,
413
+ getReadOnlyProvider,
414
+ deriveShareMintPda,
415
+ deriveVaultStatePda,
416
+ deriveVaultTokenAtaPda,
417
+ getVaultState,
418
+ getVaultStateReadOnly,
419
+ getToken,
420
+ getTokenSymbol,
421
+ fetchUserTokenBalance,
422
+ fetchUserShareBalance,
423
+ getBestRpcEndpoint,
424
+ fallbackDecimals: constants_1.fallbackDecimals,
425
+ fallbackNetwork: constants_1.fallbackNetwork,
426
+ programIds: constants_1.programIds,
427
+ getVaultMints,
428
+ };
429
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src.ts/adapters/solana/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { web3 } from '@coral-xyz/anchor';
2
+ import { Connection, PublicKey, Transaction } from '@solana/web3.js';
3
+ import { ISolanaConnectionOptions } from './types';
4
+ import { SendTransactionOptions } from '@solana/wallet-adapter-base';
5
+ export declare function handleSolanaDeposit({ provider, connection, network, vaultProgramId, depositAmount, publicKey, sendTransaction, idl, }: {
6
+ vaultProgramId: PublicKey | string;
7
+ idl: any;
8
+ publicKey: PublicKey | string;
9
+ depositAmount: number;
10
+ sendTransaction: (transaction: Transaction | web3.VersionedTransaction, connection: Connection, options?: SendTransactionOptions) => Promise<web3.TransactionSignature>;
11
+ } & ISolanaConnectionOptions): Promise<any>;
12
+ export declare function handleSolanaRedeem({ provider, connection, vaultProgramId, publicKey, redeemShares, sendTransaction, idl, }: {
13
+ idl: any;
14
+ vaultProgramId: PublicKey | string;
15
+ publicKey: PublicKey | string;
16
+ redeemShares: number;
17
+ sendTransaction: (transaction: Transaction | web3.VersionedTransaction, connection: Connection, options?: SendTransactionOptions) => Promise<web3.TransactionSignature>;
18
+ } & ISolanaConnectionOptions): Promise<any>;