@augustdigital/sdk 4.0.8-alpha → 4.1.0-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 (352) hide show
  1. package/lib/abis/AddressResolver.d.ts +28 -0
  2. package/lib/abis/AddressResolver.js +23 -0
  3. package/lib/abis/AddressResolver.js.map +1 -0
  4. package/lib/abis/ChainlinkV3.d.ts +87 -0
  5. package/lib/abis/ChainlinkV3.js +117 -0
  6. package/lib/abis/ChainlinkV3.js.map +1 -0
  7. package/lib/abis/ERC20.d.ts +168 -0
  8. package/lib/abis/ERC20.js +226 -0
  9. package/lib/abis/ERC20.js.map +1 -0
  10. package/lib/abis/ERC20_Bytes32.d.ts +135 -0
  11. package/lib/abis/ERC20_Bytes32.js +192 -0
  12. package/lib/abis/ERC20_Bytes32.js.map +1 -0
  13. package/lib/abis/ERC4626.d.ts +363 -0
  14. package/lib/abis/ERC4626.js +506 -0
  15. package/lib/abis/ERC4626.js.map +1 -0
  16. package/lib/abis/ERC721.d.ts +230 -0
  17. package/lib/abis/ERC721.js +320 -0
  18. package/lib/abis/ERC721.js.map +1 -0
  19. package/lib/abis/FeeOracle.d.ts +120 -0
  20. package/lib/abis/FeeOracle.js +161 -0
  21. package/lib/abis/FeeOracle.js.map +1 -0
  22. package/lib/abis/LendingPool.d.ts +1393 -0
  23. package/lib/abis/LendingPool.js +1806 -0
  24. package/lib/abis/LendingPool.js.map +1 -0
  25. package/lib/abis/LendingPoolV2.d.ts +55 -0
  26. package/lib/abis/LendingPoolV2.js +1832 -0
  27. package/lib/abis/LendingPoolV2.js.map +1 -0
  28. package/lib/abis/LendingPoolV3.d.ts +35 -0
  29. package/lib/abis/LendingPoolV3.js +1160 -0
  30. package/lib/abis/LendingPoolV3.js.map +1 -0
  31. package/lib/abis/Loan.d.ts +837 -0
  32. package/lib/abis/Loan.js +1080 -0
  33. package/lib/abis/Loan.js.map +1 -0
  34. package/lib/abis/Multicall3.d.ts +30 -0
  35. package/lib/abis/Multicall3.js +94 -0
  36. package/lib/abis/Multicall3.js.map +1 -0
  37. package/lib/abis/PoolAdapter.d.ts +76 -0
  38. package/lib/abis/PoolAdapter.js +412 -0
  39. package/lib/abis/PoolAdapter.js.map +1 -0
  40. package/lib/abis/RewardDistributor.d.ts +46 -0
  41. package/lib/abis/RewardDistributor.js +352 -0
  42. package/lib/abis/RewardDistributor.js.map +1 -0
  43. package/lib/abis/SmartAccount.d.ts +16 -0
  44. package/lib/abis/SmartAccount.js +16 -0
  45. package/lib/abis/SmartAccount.js.map +1 -0
  46. package/lib/abis/TextResolver.d.ts +16 -0
  47. package/lib/abis/TextResolver.js +16 -0
  48. package/lib/abis/TextResolver.js.map +1 -0
  49. package/lib/abis/TokenizedVaultV2.d.ts +1354 -0
  50. package/lib/abis/TokenizedVaultV2.js +1028 -0
  51. package/lib/abis/TokenizedVaultV2.js.map +1 -0
  52. package/lib/abis/TokenizedVaultV2Receipt.d.ts +1568 -0
  53. package/lib/abis/TokenizedVaultV2Receipt.js +1061 -0
  54. package/lib/abis/TokenizedVaultV2Receipt.js.map +1 -0
  55. package/lib/abis/TokenizedVaultV2WhitelistedAssets.d.ts +274 -0
  56. package/lib/abis/TokenizedVaultV2WhitelistedAssets.js +167 -0
  57. package/lib/abis/TokenizedVaultV2WhitelistedAssets.js.map +1 -0
  58. package/lib/abis/UniversalResolverResolve.d.ts +69 -0
  59. package/lib/abis/UniversalResolverResolve.js +35 -0
  60. package/lib/abis/UniversalResolverResolve.js.map +1 -0
  61. package/lib/abis/UniversalSignatureValidator.d.ts +17 -0
  62. package/lib/abis/UniversalSignatureValidator.js +27 -0
  63. package/lib/abis/UniversalSignatureValidator.js.map +1 -0
  64. package/lib/abis/WrapperAdapter.d.ts +60 -0
  65. package/lib/abis/WrapperAdapter.js +150 -0
  66. package/lib/abis/WrapperAdapter.js.map +1 -0
  67. package/lib/abis/index.d.ts +19 -0
  68. package/lib/abis/index.js +36 -0
  69. package/lib/abis/index.js.map +1 -0
  70. package/lib/adapters/evm/core.actions.d.ts +9 -0
  71. package/lib/adapters/evm/core.actions.js +51 -0
  72. package/lib/adapters/evm/core.actions.js.map +1 -0
  73. package/lib/adapters/evm/getters.d.ts +4 -0
  74. package/lib/adapters/evm/getters.js +163 -0
  75. package/lib/adapters/evm/getters.js.map +1 -0
  76. package/lib/adapters/evm/index.d.ts +19 -0
  77. package/lib/adapters/evm/index.js +55 -0
  78. package/lib/adapters/evm/index.js.map +1 -0
  79. package/lib/adapters/evm/read.actions.d.ts +3 -0
  80. package/lib/adapters/evm/read.actions.js +39 -0
  81. package/lib/adapters/evm/read.actions.js.map +1 -0
  82. package/lib/adapters/evm/utils.d.ts +28 -0
  83. package/lib/adapters/evm/utils.js +336 -0
  84. package/lib/adapters/evm/utils.js.map +1 -0
  85. package/lib/adapters/evm/vaults.actions.d.ts +10 -0
  86. package/lib/adapters/evm/vaults.actions.js +97 -0
  87. package/lib/adapters/evm/vaults.actions.js.map +1 -0
  88. package/lib/adapters/solana/actions.d.ts +20 -0
  89. package/lib/adapters/solana/actions.js +225 -0
  90. package/lib/adapters/solana/actions.js.map +1 -0
  91. package/lib/adapters/solana/class.d.ts +45 -0
  92. package/lib/adapters/solana/class.js +135 -0
  93. package/lib/adapters/solana/class.js.map +1 -0
  94. package/lib/adapters/solana/constants.d.ts +25 -0
  95. package/lib/adapters/solana/constants.js +32 -0
  96. package/lib/adapters/solana/constants.js.map +1 -0
  97. package/lib/adapters/solana/getters.d.ts +3 -0
  98. package/lib/adapters/solana/getters.js +126 -0
  99. package/lib/adapters/solana/getters.js.map +1 -0
  100. package/lib/adapters/solana/idl/vault-idl.d.ts +338 -0
  101. package/lib/adapters/solana/idl/vault-idl.js +1075 -0
  102. package/lib/adapters/solana/idl/vault-idl.js.map +1 -0
  103. package/lib/adapters/solana/index.d.ts +136 -0
  104. package/lib/adapters/solana/index.js +174 -0
  105. package/lib/adapters/solana/index.js.map +1 -0
  106. package/lib/adapters/solana/types.d.ts +58 -0
  107. package/lib/adapters/solana/types.js +3 -0
  108. package/lib/adapters/solana/types.js.map +1 -0
  109. package/lib/adapters/solana/utils.d.ts +104 -0
  110. package/lib/adapters/solana/utils.js +380 -0
  111. package/lib/adapters/solana/utils.js.map +1 -0
  112. package/lib/adapters/solana/vault-idl.d.ts +338 -0
  113. package/lib/adapters/solana/vault-idl.js +1075 -0
  114. package/lib/adapters/solana/vault-idl.js.map +1 -0
  115. package/lib/adapters/solana/vault.actions.d.ts +18 -0
  116. package/lib/adapters/solana/vault.actions.js +235 -0
  117. package/lib/adapters/solana/vault.actions.js.map +1 -0
  118. package/lib/adapters/sui/index.d.ts +0 -0
  119. package/lib/adapters/sui/index.js +1 -0
  120. package/lib/adapters/sui/index.js.map +1 -0
  121. package/lib/core/auth/index.d.ts +1 -0
  122. package/lib/core/auth/index.js +18 -0
  123. package/lib/core/auth/index.js.map +1 -0
  124. package/lib/core/auth/verify.d.ts +2 -0
  125. package/lib/core/auth/verify.js +21 -0
  126. package/lib/core/auth/verify.js.map +1 -0
  127. package/lib/core/base-class.d.ts +34 -0
  128. package/lib/core/base-class.js +55 -0
  129. package/lib/core/base-class.js.map +1 -0
  130. package/lib/core/base.class.d.ts +34 -0
  131. package/lib/core/base.class.js +61 -0
  132. package/lib/core/base.class.js.map +1 -0
  133. package/lib/core/constants.d.ts +86 -0
  134. package/lib/core/constants.js +146 -0
  135. package/lib/core/constants.js.map +1 -0
  136. package/lib/core/core.helpers.d.ts +23 -0
  137. package/lib/core/core.helpers.js +210 -0
  138. package/lib/core/core.helpers.js.map +1 -0
  139. package/lib/core/fetcher.d.ts +22 -0
  140. package/lib/core/fetcher.js +259 -0
  141. package/lib/core/fetcher.js.map +1 -0
  142. package/lib/core/helpers.core.d.ts +23 -0
  143. package/lib/core/helpers.core.js +210 -0
  144. package/lib/core/helpers.core.js.map +1 -0
  145. package/lib/core/helpers.d.ts +23 -0
  146. package/lib/core/helpers.js +210 -0
  147. package/lib/core/helpers.js.map +1 -0
  148. package/lib/core/helpers.web3.d.ts +26 -0
  149. package/lib/core/helpers.web3.js +315 -0
  150. package/lib/core/helpers.web3.js.map +1 -0
  151. package/lib/core/index.d.ts +9 -0
  152. package/lib/core/index.js +26 -0
  153. package/lib/core/index.js.map +1 -0
  154. package/lib/core/logger/index.d.ts +12 -0
  155. package/lib/core/logger/index.js +51 -0
  156. package/lib/core/logger/index.js.map +1 -0
  157. package/lib/core/logger/slack.d.ts +12 -0
  158. package/lib/core/logger/slack.js +49 -0
  159. package/lib/core/logger/slack.js.map +1 -0
  160. package/lib/core/read.actions.d.ts +3 -0
  161. package/lib/core/read.actions.js +39 -0
  162. package/lib/core/read.actions.js.map +1 -0
  163. package/lib/core/web3.helpers.d.ts +28 -0
  164. package/lib/core/web3.helpers.js +336 -0
  165. package/lib/core/web3.helpers.js.map +1 -0
  166. package/lib/core/write.actions.d.ts +9 -0
  167. package/lib/core/write.actions.js +51 -0
  168. package/lib/core/write.actions.js.map +1 -0
  169. package/lib/modules/vaults/admin-actions.d.ts +0 -0
  170. package/lib/modules/vaults/admin-actions.js +1 -0
  171. package/lib/modules/vaults/admin-actions.js.map +1 -0
  172. package/lib/modules/vaults/constants.d.ts +63 -0
  173. package/lib/modules/vaults/constants.js +190 -0
  174. package/lib/modules/vaults/constants.js.map +1 -0
  175. package/lib/modules/vaults/getters.d.ts +38 -0
  176. package/lib/modules/vaults/getters.js +636 -0
  177. package/lib/modules/vaults/getters.js.map +1 -0
  178. package/lib/modules/vaults/index.d.ts +84 -0
  179. package/lib/modules/vaults/index.js +498 -0
  180. package/lib/modules/vaults/index.js.map +1 -0
  181. package/lib/modules/vaults/main.d.ts +118 -0
  182. package/lib/modules/vaults/main.js +590 -0
  183. package/lib/modules/vaults/main.js.map +1 -0
  184. package/lib/modules/vaults/user-actions.d.ts +19 -0
  185. package/lib/modules/vaults/user-actions.js +172 -0
  186. package/lib/modules/vaults/user-actions.js.map +1 -0
  187. package/lib/modules/vaults/user.actions.d.ts +10 -0
  188. package/lib/modules/vaults/user.actions.js +95 -0
  189. package/lib/modules/vaults/user.actions.js.map +1 -0
  190. package/lib/modules/vaults/utils.d.ts +116 -0
  191. package/lib/modules/vaults/utils.js +395 -0
  192. package/lib/modules/vaults/utils.js.map +1 -0
  193. package/lib/modules/vaults/vault.actions.d.ts +10 -0
  194. package/lib/modules/vaults/vault.actions.js +95 -0
  195. package/lib/modules/vaults/vault.actions.js.map +1 -0
  196. package/lib/services/auth/index.d.ts +1 -0
  197. package/lib/services/auth/index.js +18 -0
  198. package/lib/services/auth/index.js.map +1 -0
  199. package/lib/services/auth/verify.d.ts +2 -0
  200. package/lib/services/auth/verify.js +20 -0
  201. package/lib/services/auth/verify.js.map +1 -0
  202. package/lib/services/coingecko/fetcher.d.ts +1 -0
  203. package/lib/services/coingecko/fetcher.js +36 -0
  204. package/lib/services/coingecko/fetcher.js.map +1 -0
  205. package/lib/services/coingecko/index.d.ts +2 -0
  206. package/lib/services/coingecko/index.js +19 -0
  207. package/lib/services/coingecko/index.js.map +1 -0
  208. package/lib/services/coingecko/utils.d.ts +1 -0
  209. package/lib/services/coingecko/utils.js +24 -0
  210. package/lib/services/coingecko/utils.js.map +1 -0
  211. package/lib/services/debank/fetcher.d.ts +2 -0
  212. package/lib/services/debank/fetcher.js +16 -0
  213. package/lib/services/debank/fetcher.js.map +1 -0
  214. package/lib/services/debank/index.d.ts +2 -0
  215. package/lib/services/debank/index.js +19 -0
  216. package/lib/services/debank/index.js.map +1 -0
  217. package/lib/services/debank/utils.d.ts +32 -0
  218. package/lib/services/debank/utils.js +229 -0
  219. package/lib/services/debank/utils.js.map +1 -0
  220. package/lib/services/index.d.ts +4 -0
  221. package/lib/services/index.js +21 -0
  222. package/lib/services/index.js.map +1 -0
  223. package/lib/services/logger/index.d.ts +12 -0
  224. package/lib/services/logger/index.js +51 -0
  225. package/lib/services/logger/index.js.map +1 -0
  226. package/lib/services/logger/slack.d.ts +12 -0
  227. package/lib/services/logger/slack.js +48 -0
  228. package/lib/services/logger/slack.js.map +1 -0
  229. package/lib/services/solana/actions.d.ts +20 -0
  230. package/lib/services/solana/actions.js +225 -0
  231. package/lib/services/solana/actions.js.map +1 -0
  232. package/lib/services/solana/class.d.ts +45 -0
  233. package/lib/services/solana/class.js +135 -0
  234. package/lib/services/solana/class.js.map +1 -0
  235. package/lib/services/solana/constants.d.ts +25 -0
  236. package/lib/services/solana/constants.js +32 -0
  237. package/lib/services/solana/constants.js.map +1 -0
  238. package/lib/services/solana/index.d.ts +84 -0
  239. package/lib/services/solana/index.js +50 -0
  240. package/lib/services/solana/index.js.map +1 -0
  241. package/lib/services/solana/types.d.ts +58 -0
  242. package/lib/services/solana/types.js +3 -0
  243. package/lib/services/solana/types.js.map +1 -0
  244. package/lib/services/solana/utils.d.ts +96 -0
  245. package/lib/services/solana/utils.js +355 -0
  246. package/lib/services/solana/utils.js.map +1 -0
  247. package/lib/services/solana/vault-idl.d.ts +338 -0
  248. package/lib/services/solana/vault-idl.js +1075 -0
  249. package/lib/services/solana/vault-idl.js.map +1 -0
  250. package/lib/services/subgraph/fetcher.d.ts +2 -0
  251. package/lib/services/subgraph/fetcher.js +58 -0
  252. package/lib/services/subgraph/fetcher.js.map +1 -0
  253. package/lib/services/subgraph/index.d.ts +2 -0
  254. package/lib/services/subgraph/index.js +19 -0
  255. package/lib/services/subgraph/index.js.map +1 -0
  256. package/lib/services/subgraph/vaults.d.ts +10 -0
  257. package/lib/services/subgraph/vaults.js +473 -0
  258. package/lib/services/subgraph/vaults.js.map +1 -0
  259. package/lib/types/index.d.ts +8 -0
  260. package/lib/types/index.js +24 -0
  261. package/lib/types/index.js.map +1 -0
  262. package/lib/types/pools.d.ts +141 -0
  263. package/lib/types/pools.js +3 -0
  264. package/lib/types/pools.js.map +1 -0
  265. package/lib/types/staking.d.ts +28 -0
  266. package/lib/types/staking.js +3 -0
  267. package/lib/types/staking.js.map +1 -0
  268. package/lib/types/subgraph.d.ts +45 -0
  269. package/lib/types/subgraph.js +3 -0
  270. package/lib/types/subgraph.js.map +1 -0
  271. package/lib/types/user.d.ts +1 -0
  272. package/lib/types/user.js +3 -0
  273. package/lib/types/user.js.map +1 -0
  274. package/lib/types/vaults.d.ts +164 -0
  275. package/lib/types/vaults.js +3 -0
  276. package/lib/types/vaults.js.map +1 -0
  277. package/lib/types/web3.d.ts +24 -0
  278. package/lib/types/web3.js +3 -0
  279. package/lib/types/web3.js.map +1 -0
  280. package/lib/types/webserver.d.ts +475 -0
  281. package/lib/types/webserver.js +3 -0
  282. package/lib/types/webserver.js.map +1 -0
  283. package/lib/utils/base-class.d.ts +34 -0
  284. package/lib/utils/base-class.js +55 -0
  285. package/lib/utils/base-class.js.map +1 -0
  286. package/lib/utils/constants/august.d.ts +57 -0
  287. package/lib/utils/constants/august.js +61 -0
  288. package/lib/utils/constants/august.js.map +1 -0
  289. package/lib/utils/constants/fallbacks.d.ts +3 -0
  290. package/lib/utils/constants/fallbacks.js +26 -0
  291. package/lib/utils/constants/fallbacks.js.map +1 -0
  292. package/lib/utils/constants/index.d.ts +3 -0
  293. package/lib/utils/constants/index.js +20 -0
  294. package/lib/utils/constants/index.js.map +1 -0
  295. package/lib/utils/constants/web3.d.ts +32 -0
  296. package/lib/utils/constants/web3.js +101 -0
  297. package/lib/utils/constants/web3.js.map +1 -0
  298. package/lib/utils/fetcher.d.ts +25 -0
  299. package/lib/utils/fetcher.js +334 -0
  300. package/lib/utils/fetcher.js.map +1 -0
  301. package/lib/utils/helpers/array.d.ts +6 -0
  302. package/lib/utils/helpers/array.js +40 -0
  303. package/lib/utils/helpers/array.js.map +1 -0
  304. package/lib/utils/helpers/datetime.d.ts +5 -0
  305. package/lib/utils/helpers/datetime.js +32 -0
  306. package/lib/utils/helpers/datetime.js.map +1 -0
  307. package/lib/utils/helpers/formatters.d.ts +8 -0
  308. package/lib/utils/helpers/formatters.js +113 -0
  309. package/lib/utils/helpers/formatters.js.map +1 -0
  310. package/lib/utils/helpers/index.d.ts +6 -0
  311. package/lib/utils/helpers/index.js +23 -0
  312. package/lib/utils/helpers/index.js.map +1 -0
  313. package/lib/utils/helpers/responses.d.ts +32 -0
  314. package/lib/utils/helpers/responses.js +229 -0
  315. package/lib/utils/helpers/responses.js.map +1 -0
  316. package/lib/utils/helpers/verify-keys.d.ts +2 -0
  317. package/lib/utils/helpers/verify-keys.js +21 -0
  318. package/lib/utils/helpers/verify-keys.js.map +1 -0
  319. package/lib/utils/helpers/web3.d.ts +27 -0
  320. package/lib/utils/helpers/web3.js +339 -0
  321. package/lib/utils/helpers/web3.js.map +1 -0
  322. package/lib/utils/index.d.ts +5 -0
  323. package/lib/utils/index.js +22 -0
  324. package/lib/utils/index.js.map +1 -0
  325. package/lib/utils/vaults.d.ts +53 -0
  326. package/lib/utils/vaults.js +156 -0
  327. package/lib/utils/vaults.js.map +1 -0
  328. package/lib/vaults/admin-actions.d.ts +0 -0
  329. package/lib/vaults/admin-actions.js +1 -0
  330. package/lib/vaults/admin-actions.js.map +1 -0
  331. package/lib/vaults/getters.d.ts +38 -0
  332. package/lib/vaults/getters.js +760 -0
  333. package/lib/vaults/getters.js.map +1 -0
  334. package/lib/vaults/index.d.ts +4 -0
  335. package/lib/vaults/index.js +21 -0
  336. package/lib/vaults/index.js.map +1 -0
  337. package/lib/vaults/main.d.ts +118 -0
  338. package/lib/vaults/main.js +591 -0
  339. package/lib/vaults/main.js.map +1 -0
  340. package/lib/vaults/rpc-config.d.ts +4 -0
  341. package/lib/vaults/rpc-config.js +27 -0
  342. package/lib/vaults/rpc-config.js.map +1 -0
  343. package/lib/vaults/subgraph.d.ts +10 -0
  344. package/lib/vaults/subgraph.js +470 -0
  345. package/lib/vaults/subgraph.js.map +1 -0
  346. package/lib/vaults/user-actions.d.ts +19 -0
  347. package/lib/vaults/user-actions.js +172 -0
  348. package/lib/vaults/user-actions.js.map +1 -0
  349. package/lib/vaults/utils.d.ts +121 -0
  350. package/lib/vaults/utils.js +414 -0
  351. package/lib/vaults/utils.js.map +1 -0
  352. package/package.json +7 -7
@@ -0,0 +1,380 @@
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 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, }) {
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
+ return {
277
+ address: data?.result?.id,
278
+ symbol: data.result?.content?.metadata?.symbol || 'N/A',
279
+ decimals: data.result?.token_info?.decimals,
280
+ name: data.result?.content?.metadata?.name || 'Unknown',
281
+ image: data.result?.content.metadata?.image,
282
+ program: data.result?.token_info?.token_program,
283
+ mintAuthority: data.result?.token_info?.mint_authority,
284
+ freezeAuthority: data.result?.token_info?.freeze_authority,
285
+ supply: data.result?.token_info?.supply,
286
+ };
287
+ }
288
+ catch (error) {
289
+ console.error('Error fetching token symbol:', error);
290
+ return null;
291
+ }
292
+ }
293
+ async function getTokenSymbol({ endpoint, mintAddress, }) {
294
+ try {
295
+ const tokenMetadata = await getToken({ endpoint, mintAddress });
296
+ if (tokenMetadata) {
297
+ return tokenMetadata.symbol;
298
+ }
299
+ return null;
300
+ }
301
+ catch (error) {
302
+ console.error('Error fetching token symbol:', error);
303
+ return null;
304
+ }
305
+ }
306
+ async function fetchUserTokenBalance({ connection, publicKey, depositMint, }) {
307
+ if (!publicKey || !depositMint)
308
+ return '0';
309
+ try {
310
+ const _publicKey = new web3_js_1.PublicKey(publicKey);
311
+ const _depositMint = new web3_js_1.PublicKey(depositMint);
312
+ const tokenAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
313
+ mint: _depositMint,
314
+ });
315
+ if (tokenAccounts.value.length > 0) {
316
+ const balance = tokenAccounts?.value?.[0]?.account.data.parsed.info.tokenAmount
317
+ .uiAmount;
318
+ return balance?.toString() || '0';
319
+ }
320
+ return '0';
321
+ }
322
+ catch (e) {
323
+ const error = e;
324
+ console.error('Error fetching user token balance:', error);
325
+ return '0';
326
+ }
327
+ }
328
+ async function fetchUserShareBalance({ connection, publicKey, shareMint, network, }) {
329
+ if (!publicKey || !shareMint)
330
+ return 0;
331
+ try {
332
+ const _publicKey = new web3_js_1.PublicKey(publicKey);
333
+ const _shareMint = new web3_js_1.PublicKey(shareMint);
334
+ const shareMintPda = deriveShareMintPda(new web3_js_1.PublicKey(constants_1.programIds[network].vault));
335
+ const shareMintInfo = await connection.getParsedAccountInfo(shareMintPda);
336
+ if (!shareMintInfo.value) {
337
+ console.error('#fetchUserShareBalance:Could not fetch share mint info');
338
+ return 0;
339
+ }
340
+ const parsedData = shareMintInfo.value.data;
341
+ const shareDecimals = parsedData.parsed.info.decimals || constants_1.fallbackDecimals + 2;
342
+ const shareAccounts = await connection.getParsedTokenAccountsByOwner(_publicKey, {
343
+ mint: _shareMint,
344
+ });
345
+ if (shareAccounts.value.length > 0) {
346
+ const rawBalance = shareAccounts?.value?.[0]?.account.data.parsed.info.tokenAmount.amount;
347
+ const balance = Number(rawBalance) / 10 ** shareDecimals;
348
+ return balance;
349
+ }
350
+ return 0;
351
+ }
352
+ catch (e) {
353
+ const error = e;
354
+ console.error('Error fetching user share balance:', error);
355
+ return 0;
356
+ }
357
+ }
358
+ exports.SolanaUtils = {
359
+ getExplorerLink,
360
+ isSolanaAddress,
361
+ isSolana,
362
+ getProgram,
363
+ getProvider,
364
+ getReadOnlyProvider,
365
+ deriveShareMintPda,
366
+ deriveVaultStatePda,
367
+ deriveVaultTokenAtaPda,
368
+ getVaultState,
369
+ getVaultStateReadOnly,
370
+ getToken,
371
+ getTokenSymbol,
372
+ fetchUserTokenBalance,
373
+ fetchUserShareBalance,
374
+ getBestRpcEndpoint,
375
+ fallbackDecimals: constants_1.fallbackDecimals,
376
+ fallbackNetwork: constants_1.fallbackNetwork,
377
+ programIds: constants_1.programIds,
378
+ getVaultMints,
379
+ };
380
+ //# 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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"}