upshift-config 0.5.14

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 (316) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +349 -0
  3. package/lib/abis/AddressResolver.d.ts +28 -0
  4. package/lib/abis/AddressResolver.js +23 -0
  5. package/lib/abis/ChainlinkV3.d.ts +87 -0
  6. package/lib/abis/ChainlinkV3.js +117 -0
  7. package/lib/abis/ERC20.d.ts +168 -0
  8. package/lib/abis/ERC20.js +226 -0
  9. package/lib/abis/ERC20_Bytes32.d.ts +139 -0
  10. package/lib/abis/ERC20_Bytes32.js +196 -0
  11. package/lib/abis/ERC4626.d.ts +364 -0
  12. package/lib/abis/ERC4626.js +507 -0
  13. package/lib/abis/ERC721.d.ts +231 -0
  14. package/lib/abis/ERC721.js +321 -0
  15. package/lib/abis/FeeOracle.d.ts +120 -0
  16. package/lib/abis/FeeOracle.js +162 -0
  17. package/lib/abis/LendingPool.d.ts +1393 -0
  18. package/lib/abis/LendingPool.js +1807 -0
  19. package/lib/abis/LendingPoolV2.d.ts +1413 -0
  20. package/lib/abis/LendingPoolV2.js +1833 -0
  21. package/lib/abis/LendingPoolV3.d.ts +1677 -0
  22. package/lib/abis/LendingPoolV3.js +1160 -0
  23. package/lib/abis/Loan.d.ts +837 -0
  24. package/lib/abis/Loan.js +1080 -0
  25. package/lib/abis/MultiAssetNativeDepositWrapper.d.ts +137 -0
  26. package/lib/abis/MultiAssetNativeDepositWrapper.js +125 -0
  27. package/lib/abis/Multicall3.d.ts +30 -0
  28. package/lib/abis/Multicall3.js +97 -0
  29. package/lib/abis/OFT.d.ts +116 -0
  30. package/lib/abis/OFT.js +85 -0
  31. package/lib/abis/PoolAdapter.d.ts +36 -0
  32. package/lib/abis/PoolAdapter.js +51 -0
  33. package/lib/abis/RewardDistributor.d.ts +267 -0
  34. package/lib/abis/RewardDistributor.js +352 -0
  35. package/lib/abis/RwaRedeemSubaccount.d.ts +747 -0
  36. package/lib/abis/RwaRedeemSubaccount.js +548 -0
  37. package/lib/abis/SmartAccount.d.ts +17 -0
  38. package/lib/abis/SmartAccount.js +19 -0
  39. package/lib/abis/SwapRouter.d.ts +1043 -0
  40. package/lib/abis/SwapRouter.js +740 -0
  41. package/lib/abis/TextResolver.d.ts +16 -0
  42. package/lib/abis/TextResolver.js +16 -0
  43. package/lib/abis/TokenizedVaultV2.d.ts +1364 -0
  44. package/lib/abis/TokenizedVaultV2.js +1041 -0
  45. package/lib/abis/TokenizedVaultV2DepositWithPermit.d.ts +1456 -0
  46. package/lib/abis/TokenizedVaultV2DepositWithPermit.js +1878 -0
  47. package/lib/abis/TokenizedVaultV2Receipt.d.ts +1568 -0
  48. package/lib/abis/TokenizedVaultV2Receipt.js +1061 -0
  49. package/lib/abis/TokenizedVaultV2SenderAllocationWhitelist.d.ts +454 -0
  50. package/lib/abis/TokenizedVaultV2SenderAllocationWhitelist.js +327 -0
  51. package/lib/abis/TokenizedVaultV2WhitelistedAllocation.d.ts +1466 -0
  52. package/lib/abis/TokenizedVaultV2WhitelistedAllocation.js +1092 -0
  53. package/lib/abis/TokenizedVaultV2WhitelistedAssets.d.ts +274 -0
  54. package/lib/abis/TokenizedVaultV2WhitelistedAssets.js +167 -0
  55. package/lib/abis/UniversalResolverResolve.d.ts +69 -0
  56. package/lib/abis/UniversalResolverResolve.js +35 -0
  57. package/lib/abis/UniversalSignatureValidator.d.ts +17 -0
  58. package/lib/abis/UniversalSignatureValidator.js +30 -0
  59. package/lib/abis/WrapperAdapter.d.ts +71 -0
  60. package/lib/abis/WrapperAdapter.js +77 -0
  61. package/lib/abis/index.d.ts +34 -0
  62. package/lib/abis/index.js +51 -0
  63. package/lib/adapters/evm/getters.d.ts +19 -0
  64. package/lib/adapters/evm/getters.js +209 -0
  65. package/lib/adapters/evm/index.d.ts +353 -0
  66. package/lib/adapters/evm/index.js +434 -0
  67. package/lib/adapters/evm/utils.d.ts +8 -0
  68. package/lib/adapters/evm/utils.js +51 -0
  69. package/lib/adapters/solana/constants.d.ts +33 -0
  70. package/lib/adapters/solana/constants.js +52 -0
  71. package/lib/adapters/solana/getters.d.ts +11 -0
  72. package/lib/adapters/solana/getters.js +165 -0
  73. package/lib/adapters/solana/idl/vault-idl.d.ts +272 -0
  74. package/lib/adapters/solana/idl/vault-idl.js +1084 -0
  75. package/lib/adapters/solana/index.d.ts +233 -0
  76. package/lib/adapters/solana/index.js +291 -0
  77. package/lib/adapters/solana/types.d.ts +67 -0
  78. package/lib/adapters/solana/types.js +3 -0
  79. package/lib/adapters/solana/utils.d.ts +141 -0
  80. package/lib/adapters/solana/utils.js +595 -0
  81. package/lib/adapters/solana/vault.actions.d.ts +57 -0
  82. package/lib/adapters/solana/vault.actions.js +379 -0
  83. package/lib/adapters/stellar/actions.d.ts +28 -0
  84. package/lib/adapters/stellar/actions.js +77 -0
  85. package/lib/adapters/stellar/constants.d.ts +43 -0
  86. package/lib/adapters/stellar/constants.js +53 -0
  87. package/lib/adapters/stellar/getters.d.ts +68 -0
  88. package/lib/adapters/stellar/getters.js +290 -0
  89. package/lib/adapters/stellar/index.d.ts +114 -0
  90. package/lib/adapters/stellar/index.js +175 -0
  91. package/lib/adapters/stellar/soroban.d.ts +123 -0
  92. package/lib/adapters/stellar/soroban.js +613 -0
  93. package/lib/adapters/stellar/submit.d.ts +34 -0
  94. package/lib/adapters/stellar/submit.js +149 -0
  95. package/lib/adapters/stellar/types.d.ts +58 -0
  96. package/lib/adapters/stellar/types.js +6 -0
  97. package/lib/adapters/stellar/utils.d.ts +24 -0
  98. package/lib/adapters/stellar/utils.js +34 -0
  99. package/lib/adapters/sui/constants.d.ts +14 -0
  100. package/lib/adapters/sui/constants.js +29 -0
  101. package/lib/adapters/sui/getters.d.ts +9 -0
  102. package/lib/adapters/sui/getters.js +60 -0
  103. package/lib/adapters/sui/index.d.ts +45 -0
  104. package/lib/adapters/sui/index.js +101 -0
  105. package/lib/adapters/sui/transformer.d.ts +10 -0
  106. package/lib/adapters/sui/transformer.js +107 -0
  107. package/lib/adapters/sui/types.d.ts +66 -0
  108. package/lib/adapters/sui/types.js +3 -0
  109. package/lib/adapters/sui/utils.d.ts +10 -0
  110. package/lib/adapters/sui/utils.js +29 -0
  111. package/lib/core/analytics/chain-name.d.ts +9 -0
  112. package/lib/core/analytics/chain-name.js +34 -0
  113. package/lib/core/analytics/constants.d.ts +5 -0
  114. package/lib/core/analytics/constants.js +9 -0
  115. package/lib/core/analytics/env.d.ts +29 -0
  116. package/lib/core/analytics/env.js +59 -0
  117. package/lib/core/analytics/index.d.ts +36 -0
  118. package/lib/core/analytics/index.js +79 -0
  119. package/lib/core/analytics/instrumentation.d.ts +29 -0
  120. package/lib/core/analytics/instrumentation.js +277 -0
  121. package/lib/core/analytics/method-taxonomy.d.ts +19 -0
  122. package/lib/core/analytics/method-taxonomy.js +128 -0
  123. package/lib/core/analytics/metrics.d.ts +33 -0
  124. package/lib/core/analytics/metrics.js +116 -0
  125. package/lib/core/analytics/sanitize.d.ts +44 -0
  126. package/lib/core/analytics/sanitize.js +260 -0
  127. package/lib/core/analytics/sentry-runtime.d.ts +15 -0
  128. package/lib/core/analytics/sentry-runtime.js +97 -0
  129. package/lib/core/analytics/sentry.d.ts +67 -0
  130. package/lib/core/analytics/sentry.js +613 -0
  131. package/lib/core/analytics/types.d.ts +48 -0
  132. package/lib/core/analytics/types.js +3 -0
  133. package/lib/core/analytics/user-identity.d.ts +41 -0
  134. package/lib/core/analytics/user-identity.js +141 -0
  135. package/lib/core/analytics/version.d.ts +6 -0
  136. package/lib/core/analytics/version.js +10 -0
  137. package/lib/core/attribution.d.ts +111 -0
  138. package/lib/core/attribution.js +142 -0
  139. package/lib/core/auth/index.d.ts +1 -0
  140. package/lib/core/auth/index.js +18 -0
  141. package/lib/core/auth/verify.d.ts +2 -0
  142. package/lib/core/auth/verify.js +31 -0
  143. package/lib/core/base.class.d.ts +152 -0
  144. package/lib/core/base.class.js +172 -0
  145. package/lib/core/cache.d.ts +9 -0
  146. package/lib/core/cache.js +31 -0
  147. package/lib/core/constants/adapters.d.ts +103 -0
  148. package/lib/core/constants/adapters.js +180 -0
  149. package/lib/core/constants/core.d.ts +133 -0
  150. package/lib/core/constants/core.js +209 -0
  151. package/lib/core/constants/swap-router.d.ts +150 -0
  152. package/lib/core/constants/swap-router.js +169 -0
  153. package/lib/core/constants/vaults.d.ts +93 -0
  154. package/lib/core/constants/vaults.js +273 -0
  155. package/lib/core/constants/web3.d.ts +91 -0
  156. package/lib/core/constants/web3.js +229 -0
  157. package/lib/core/errors/index.d.ts +114 -0
  158. package/lib/core/errors/index.js +183 -0
  159. package/lib/core/fetcher.d.ts +198 -0
  160. package/lib/core/fetcher.js +903 -0
  161. package/lib/core/helpers/adapters.d.ts +13 -0
  162. package/lib/core/helpers/adapters.js +39 -0
  163. package/lib/core/helpers/chain-address.d.ts +13 -0
  164. package/lib/core/helpers/chain-address.js +47 -0
  165. package/lib/core/helpers/chain-error.d.ts +207 -0
  166. package/lib/core/helpers/chain-error.js +682 -0
  167. package/lib/core/helpers/chain-support.d.ts +80 -0
  168. package/lib/core/helpers/chain-support.js +115 -0
  169. package/lib/core/helpers/core.d.ts +68 -0
  170. package/lib/core/helpers/core.js +285 -0
  171. package/lib/core/helpers/explorer-link.d.ts +16 -0
  172. package/lib/core/helpers/explorer-link.js +26 -0
  173. package/lib/core/helpers/multicall.d.ts +68 -0
  174. package/lib/core/helpers/multicall.js +103 -0
  175. package/lib/core/helpers/revert-decode.d.ts +248 -0
  176. package/lib/core/helpers/revert-decode.js +515 -0
  177. package/lib/core/helpers/signer.d.ts +52 -0
  178. package/lib/core/helpers/signer.js +145 -0
  179. package/lib/core/helpers/swap-router.d.ts +211 -0
  180. package/lib/core/helpers/swap-router.js +480 -0
  181. package/lib/core/helpers/vault-version.d.ts +23 -0
  182. package/lib/core/helpers/vault-version.js +75 -0
  183. package/lib/core/helpers/vaults.d.ts +89 -0
  184. package/lib/core/helpers/vaults.js +235 -0
  185. package/lib/core/helpers/web3.d.ts +353 -0
  186. package/lib/core/helpers/web3.js +992 -0
  187. package/lib/core/index.d.ts +23 -0
  188. package/lib/core/index.js +40 -0
  189. package/lib/core/logger/index.d.ts +98 -0
  190. package/lib/core/logger/index.js +144 -0
  191. package/lib/core/logger/slack.d.ts +16 -0
  192. package/lib/core/logger/slack.js +57 -0
  193. package/lib/core/vault-metadata.d.ts +12 -0
  194. package/lib/core/vault-metadata.js +42 -0
  195. package/lib/core/version-check.d.ts +58 -0
  196. package/lib/core/version-check.js +182 -0
  197. package/lib/evm/index.d.ts +2 -0
  198. package/lib/evm/index.js +19 -0
  199. package/lib/evm/methods/crossChainVault.d.ts +128 -0
  200. package/lib/evm/methods/crossChainVault.js +853 -0
  201. package/lib/evm/methods/crossChainVaultRegistry.d.ts +93 -0
  202. package/lib/evm/methods/crossChainVaultRegistry.js +240 -0
  203. package/lib/evm/methods/index.d.ts +2 -0
  204. package/lib/evm/methods/index.js +19 -0
  205. package/lib/evm/types/crossChain.d.ts +363 -0
  206. package/lib/evm/types/crossChain.js +20 -0
  207. package/lib/evm/types/index.d.ts +1 -0
  208. package/lib/evm/types/index.js +18 -0
  209. package/lib/index.d.ts +30 -0
  210. package/lib/index.js +52 -0
  211. package/lib/main.d.ts +527 -0
  212. package/lib/main.js +601 -0
  213. package/lib/modules/api/fetcher.d.ts +82 -0
  214. package/lib/modules/api/fetcher.js +150 -0
  215. package/lib/modules/api/index.d.ts +1 -0
  216. package/lib/modules/api/index.js +6 -0
  217. package/lib/modules/api/main.d.ts +313 -0
  218. package/lib/modules/api/main.js +479 -0
  219. package/lib/modules/sub-accounts/fetcher.d.ts +53 -0
  220. package/lib/modules/sub-accounts/fetcher.js +120 -0
  221. package/lib/modules/sub-accounts/index.d.ts +2 -0
  222. package/lib/modules/sub-accounts/index.js +19 -0
  223. package/lib/modules/sub-accounts/main.d.ts +243 -0
  224. package/lib/modules/sub-accounts/main.js +205 -0
  225. package/lib/modules/sub-accounts/utils.d.ts +106 -0
  226. package/lib/modules/sub-accounts/utils.js +112 -0
  227. package/lib/modules/vaults/adapter.helpers.d.ts +64 -0
  228. package/lib/modules/vaults/adapter.helpers.js +184 -0
  229. package/lib/modules/vaults/fetcher.d.ts +147 -0
  230. package/lib/modules/vaults/fetcher.js +368 -0
  231. package/lib/modules/vaults/getters.d.ts +570 -0
  232. package/lib/modules/vaults/getters.js +3051 -0
  233. package/lib/modules/vaults/index.d.ts +20 -0
  234. package/lib/modules/vaults/index.js +44 -0
  235. package/lib/modules/vaults/main.d.ts +601 -0
  236. package/lib/modules/vaults/main.js +1623 -0
  237. package/lib/modules/vaults/prefetch.d.ts +65 -0
  238. package/lib/modules/vaults/prefetch.js +120 -0
  239. package/lib/modules/vaults/read.actions.d.ts +225 -0
  240. package/lib/modules/vaults/read.actions.js +596 -0
  241. package/lib/modules/vaults/types.d.ts +71 -0
  242. package/lib/modules/vaults/types.js +3 -0
  243. package/lib/modules/vaults/utils/call-data-decoder.d.ts +61 -0
  244. package/lib/modules/vaults/utils/call-data-decoder.js +194 -0
  245. package/lib/modules/vaults/utils/date-utils.d.ts +50 -0
  246. package/lib/modules/vaults/utils/date-utils.js +84 -0
  247. package/lib/modules/vaults/utils.d.ts +140 -0
  248. package/lib/modules/vaults/utils.js +799 -0
  249. package/lib/modules/vaults/write.actions.d.ts +529 -0
  250. package/lib/modules/vaults/write.actions.js +1749 -0
  251. package/lib/polyfills.d.ts +1 -0
  252. package/lib/polyfills.js +12 -0
  253. package/lib/sdk.d.ts +26721 -0
  254. package/lib/services/coingecko/fetcher.d.ts +15 -0
  255. package/lib/services/coingecko/fetcher.js +67 -0
  256. package/lib/services/coingecko/index.d.ts +2 -0
  257. package/lib/services/coingecko/index.js +19 -0
  258. package/lib/services/coingecko/utils.d.ts +1 -0
  259. package/lib/services/coingecko/utils.js +24 -0
  260. package/lib/services/debank/fetcher.d.ts +126 -0
  261. package/lib/services/debank/fetcher.js +47 -0
  262. package/lib/services/debank/index.d.ts +2 -0
  263. package/lib/services/debank/index.js +19 -0
  264. package/lib/services/debank/utils.d.ts +38 -0
  265. package/lib/services/debank/utils.js +297 -0
  266. package/lib/services/layerzero/deposits.d.ts +49 -0
  267. package/lib/services/layerzero/deposits.js +166 -0
  268. package/lib/services/layerzero/redeems.d.ts +20 -0
  269. package/lib/services/layerzero/redeems.js +92 -0
  270. package/lib/services/layerzero/utils.d.ts +9 -0
  271. package/lib/services/layerzero/utils.js +22 -0
  272. package/lib/services/octavfi/fetcher.d.ts +9 -0
  273. package/lib/services/octavfi/fetcher.js +103 -0
  274. package/lib/services/octavfi/index.d.ts +3 -0
  275. package/lib/services/octavfi/index.js +20 -0
  276. package/lib/services/octavfi/types.d.ts +34 -0
  277. package/lib/services/octavfi/types.js +3 -0
  278. package/lib/services/octavfi/utils.d.ts +16 -0
  279. package/lib/services/octavfi/utils.js +212 -0
  280. package/lib/services/subgraph/fetcher.d.ts +2 -0
  281. package/lib/services/subgraph/fetcher.js +61 -0
  282. package/lib/services/subgraph/index.d.ts +2 -0
  283. package/lib/services/subgraph/index.js +19 -0
  284. package/lib/services/subgraph/schema.d.ts +45 -0
  285. package/lib/services/subgraph/schema.js +75 -0
  286. package/lib/services/subgraph/vaults.d.ts +25 -0
  287. package/lib/services/subgraph/vaults.js +1106 -0
  288. package/lib/services/swap-quotes/index.d.ts +105 -0
  289. package/lib/services/swap-quotes/index.js +77 -0
  290. package/lib/services/swap-quotes/paraswap.d.ts +51 -0
  291. package/lib/services/swap-quotes/paraswap.js +138 -0
  292. package/lib/types/api.d.ts +280 -0
  293. package/lib/types/api.js +3 -0
  294. package/lib/types/index.d.ts +12 -0
  295. package/lib/types/index.js +28 -0
  296. package/lib/types/points.d.ts +28 -0
  297. package/lib/types/points.js +3 -0
  298. package/lib/types/pools.d.ts +144 -0
  299. package/lib/types/pools.js +3 -0
  300. package/lib/types/staking.d.ts +28 -0
  301. package/lib/types/staking.js +3 -0
  302. package/lib/types/sub-accounts.d.ts +140 -0
  303. package/lib/types/sub-accounts.js +3 -0
  304. package/lib/types/subgraph.d.ts +74 -0
  305. package/lib/types/subgraph.js +3 -0
  306. package/lib/types/typed-contract.d.ts +102 -0
  307. package/lib/types/typed-contract.js +3 -0
  308. package/lib/types/user.d.ts +1 -0
  309. package/lib/types/user.js +3 -0
  310. package/lib/types/vaults.d.ts +714 -0
  311. package/lib/types/vaults.js +24 -0
  312. package/lib/types/web3.d.ts +51 -0
  313. package/lib/types/web3.js +14 -0
  314. package/lib/types/webserver.d.ts +698 -0
  315. package/lib/types/webserver.js +3 -0
  316. package/package.json +78 -0
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getSolanaVault = void 0;
37
+ const web3_js_1 = require("@solana/web3.js");
38
+ const utils_1 = require("./utils");
39
+ const SolanaConstants = __importStar(require("./constants"));
40
+ const core_1 = require("../../core");
41
+ const utils_2 = require("../../modules/vaults/utils");
42
+ /**
43
+ * Fetch Solana vault data from on-chain program state.
44
+ * Falls back to backend-only data when Solana RPC is unavailable,
45
+ * ensuring vaults always appear in the list even without on-chain access.
46
+ * @param tokenizedVault Vault metadata from backend
47
+ * @param options RPC configuration with Solana service
48
+ * @returns Formatted vault object with Solana-specific fields
49
+ */
50
+ const getSolanaVault = async (tokenizedVault, options) => {
51
+ const solanaRpcUrl = options.rpcUrl;
52
+ const solanaMetadata = tokenizedVault.solana_vault_metadata;
53
+ const programId = utils_1.SolanaUtils.resolveProgramId(tokenizedVault.address, solanaMetadata);
54
+ // Fallback decimals: prefer backend metadata, then the application default
55
+ const fallbackDecimals = solanaMetadata?.deposit_token_decimals ?? SolanaConstants.fallbackDecimals;
56
+ let vaultState = null;
57
+ let depositMint = null;
58
+ let onChainAvailable = false;
59
+ // Attempt to fetch on-chain data; gracefully degrade if RPC is unavailable
60
+ try {
61
+ vaultState = await utils_1.SolanaUtils.getVaultStateReadOnly({
62
+ idl: SolanaConstants.vaultIdl,
63
+ vaultProgramId: programId,
64
+ vaultAddress: solanaMetadata?.vault_state_pda ?? undefined,
65
+ endpoint: solanaRpcUrl,
66
+ connection: options?.solanaService?.connection,
67
+ });
68
+ onChainAvailable = true;
69
+ if (vaultState?.vaultState?.depositMint) {
70
+ try {
71
+ depositMint = await utils_1.SolanaUtils.getToken({
72
+ mintAddress: vaultState.vaultState.depositMint,
73
+ endpoint: solanaRpcUrl,
74
+ connection: options?.solanaService?.connection,
75
+ });
76
+ }
77
+ catch (tokenError) {
78
+ core_1.Logger.log.warn('getSolanaVault', 'Token fetch failed, using backend metadata', { vault: tokenizedVault.address, error: tokenError });
79
+ }
80
+ }
81
+ }
82
+ catch (error) {
83
+ // Only degrade gracefully for network/RPC issues; re-throw everything else
84
+ const isNetworkError = error instanceof Error &&
85
+ (/fetch failed|ETIMEDOUT|timeout|ECONNREFUSED|403|503|network/i.test(error.message) ||
86
+ error.name === 'AbortError');
87
+ if (!isNetworkError) {
88
+ throw error;
89
+ }
90
+ core_1.Logger.log.warn('getSolanaVault', 'RPC unavailable, using backend-only data', { vault: tokenizedVault.address, error });
91
+ }
92
+ const decimals = vaultState?.depositMintDecimals ?? fallbackDecimals;
93
+ // Fetch share mint supply to get totalSupply.
94
+ // Prefer vaultState.shareMint (correct for multi-vault programs like jitoSOL);
95
+ // fall back to deriveShareMintPda(programId) for legacy single-vault programs.
96
+ let totalSupply = (0, core_1.toNormalizedBn)(0, decimals);
97
+ if (onChainAvailable) {
98
+ try {
99
+ const shareMintFromState = vaultState?.vaultState?.shareMint;
100
+ const shareMintKey = shareMintFromState
101
+ ? new web3_js_1.PublicKey(String(shareMintFromState))
102
+ : utils_1.SolanaUtils.deriveShareMintPda(programId);
103
+ const shareMintAccountInfo = await options.solanaService?.connection.getParsedAccountInfo(shareMintKey);
104
+ if (shareMintAccountInfo?.value) {
105
+ const parsedData = shareMintAccountInfo.value.data;
106
+ const { supply, decimals: mintDecimals } = parsedData.parsed.info;
107
+ totalSupply = (0, core_1.toNormalizedBn)(BigInt(supply), mintDecimals);
108
+ }
109
+ }
110
+ catch (error) {
111
+ core_1.Logger.log.warn('getSolanaVault', 'Error fetching share mint info', {
112
+ vault: tokenizedVault.address,
113
+ error,
114
+ });
115
+ }
116
+ }
117
+ // Total assets must mirror the on-chain `VaultState::total_assets()` which
118
+ // is `local_aum + deployed_aum` (see solana-vaults/programs/august-vault/
119
+ // src/state/vault.rs). Reading deployed_aum alone makes the displayed share
120
+ // price drop below 1.0 the instant the operator deploys part of the vault,
121
+ // even though the vault has had no PnL.
122
+ let totalAssets;
123
+ if (onChainAvailable) {
124
+ const localAumRaw = vaultState?.vaultState?.localAum;
125
+ const deployedAumRaw = vaultState?.vaultState?.deployedAum;
126
+ const localAum = localAumRaw !== null && localAumRaw !== undefined
127
+ ? BigInt(localAumRaw.toString())
128
+ : BigInt(0);
129
+ const deployedAum = deployedAumRaw !== null && deployedAumRaw !== undefined
130
+ ? BigInt(deployedAumRaw.toString())
131
+ : BigInt(0);
132
+ totalAssets = (0, core_1.toNormalizedBn)(localAum + deployedAum, decimals);
133
+ }
134
+ else {
135
+ totalAssets = (0, utils_2.backendTvlToNormalizedBn)(tokenizedVault.latest_reported_tvl, decimals);
136
+ }
137
+ // Deposit asset: use on-chain data if available, otherwise backend metadata
138
+ const depositAsset = {
139
+ address: depositMint?.address ?? solanaMetadata?.deposit_mint,
140
+ symbol: depositMint?.symbol ?? solanaMetadata?.deposit_token_symbol,
141
+ decimals: depositMint?.decimals ?? fallbackDecimals,
142
+ };
143
+ if (!depositAsset.address) {
144
+ core_1.Logger.log.warn('getSolanaVault', 'Missing deposit asset address', {
145
+ vault: tokenizedVault.address,
146
+ });
147
+ }
148
+ // Build unified vault object combining on-chain and backend data
149
+ return (0, utils_2.buildBackendVault)(tokenizedVault, {
150
+ chainId: core_1.SPECIAL_CHAINS.solana.chainId,
151
+ version: 'sol-0',
152
+ name: tokenizedVault.vault_name || 'Solana Program',
153
+ totalAssets,
154
+ totalSupply,
155
+ depositAssets: [depositAsset],
156
+ receipt: {
157
+ address: tokenizedVault.address,
158
+ symbol: tokenizedVault.receipt_token_symbol || 'upSOL',
159
+ decimals: decimals,
160
+ },
161
+ programId,
162
+ });
163
+ };
164
+ exports.getSolanaVault = getSolanaVault;
165
+ //# sourceMappingURL=getters.js.map
@@ -0,0 +1,272 @@
1
+ /**
2
+ * august_vault program IDL (Anchor).
3
+ *
4
+ * GENERATED — do not edit by hand. The versioned multi-vault interface the SDK
5
+ * targets, generated from the devnet on-chain IDL of `C8B1…` — the only
6
+ * deployment that publishes one matching this file. Refresh with
7
+ * `anchor idl fetch C8B1… -u devnet`.
8
+ *
9
+ * At runtime the SDK targets the canonical `up12…` instead, whose own published
10
+ * IDL is STALE (an Anchor IDL upload is not refreshed by a program upgrade), so
11
+ * it can't be used as the generation source. The solana-idl-drift check (CI)
12
+ * therefore validates `up12…` by pinning its deployed binary and by decoding
13
+ * live VaultState accounts against this file — see
14
+ * tests/vaults/solana-idl-drift.test.ts.
15
+ *
16
+ * `address` is a build stamp (the mainnet id), NOT network-aware. Never rely on
17
+ * it: SolanaAdapter/getProgram resolve the real program id per network from
18
+ * programIds, or from an explicit `programId` override.
19
+ */
20
+ export declare const vaultIdl: {
21
+ accounts: {
22
+ discriminator: number[];
23
+ name: string;
24
+ }[];
25
+ address: string;
26
+ errors: {
27
+ code: number;
28
+ msg: string;
29
+ name: string;
30
+ }[];
31
+ events: {
32
+ discriminator: number[];
33
+ name: string;
34
+ }[];
35
+ instructions: ({
36
+ accounts: ({
37
+ name: string;
38
+ signer: boolean;
39
+ writable: boolean;
40
+ docs?: undefined;
41
+ pda?: undefined;
42
+ address?: undefined;
43
+ } | {
44
+ docs: string[];
45
+ name: string;
46
+ signer: boolean;
47
+ writable: boolean;
48
+ pda?: undefined;
49
+ address?: undefined;
50
+ } | {
51
+ docs: string[];
52
+ name: string;
53
+ writable: boolean;
54
+ signer?: undefined;
55
+ pda?: undefined;
56
+ address?: undefined;
57
+ } | {
58
+ docs: string[];
59
+ name: string;
60
+ signer?: undefined;
61
+ writable?: undefined;
62
+ pda?: undefined;
63
+ address?: undefined;
64
+ } | {
65
+ name: string;
66
+ pda: {
67
+ program: {
68
+ kind: string;
69
+ value: number[];
70
+ };
71
+ seeds: ({
72
+ kind: string;
73
+ value: number[];
74
+ path?: undefined;
75
+ } | {
76
+ kind: string;
77
+ path: string;
78
+ value?: undefined;
79
+ })[];
80
+ };
81
+ writable: boolean;
82
+ signer?: undefined;
83
+ docs?: undefined;
84
+ address?: undefined;
85
+ } | {
86
+ address: string;
87
+ name: string;
88
+ signer?: undefined;
89
+ writable?: undefined;
90
+ docs?: undefined;
91
+ pda?: undefined;
92
+ })[];
93
+ args: {
94
+ name: string;
95
+ type: string;
96
+ }[];
97
+ discriminator: number[];
98
+ docs: string[];
99
+ name: string;
100
+ } | {
101
+ accounts: ({
102
+ name: string;
103
+ writable: boolean;
104
+ signer?: undefined;
105
+ address?: undefined;
106
+ } | {
107
+ name: string;
108
+ writable?: undefined;
109
+ signer?: undefined;
110
+ address?: undefined;
111
+ } | {
112
+ name: string;
113
+ signer: boolean;
114
+ writable?: undefined;
115
+ address?: undefined;
116
+ } | {
117
+ name: string;
118
+ signer: boolean;
119
+ writable: boolean;
120
+ address?: undefined;
121
+ } | {
122
+ address: string;
123
+ name: string;
124
+ writable?: undefined;
125
+ signer?: undefined;
126
+ })[];
127
+ args: {
128
+ name: string;
129
+ type: string;
130
+ }[];
131
+ discriminator: number[];
132
+ docs: string[];
133
+ name: string;
134
+ } | {
135
+ accounts: ({
136
+ name: string;
137
+ writable: boolean;
138
+ pda?: undefined;
139
+ signer?: undefined;
140
+ } | {
141
+ name: string;
142
+ pda: {
143
+ program: {
144
+ kind: string;
145
+ value: number[];
146
+ };
147
+ seeds: ({
148
+ kind: string;
149
+ path: string;
150
+ value?: undefined;
151
+ } | {
152
+ kind: string;
153
+ value: number[];
154
+ path?: undefined;
155
+ })[];
156
+ };
157
+ writable: boolean;
158
+ signer?: undefined;
159
+ } | {
160
+ name: string;
161
+ signer: boolean;
162
+ writable?: undefined;
163
+ pda?: undefined;
164
+ } | {
165
+ name: string;
166
+ writable?: undefined;
167
+ pda?: undefined;
168
+ signer?: undefined;
169
+ })[];
170
+ args: {
171
+ name: string;
172
+ type: string;
173
+ }[];
174
+ discriminator: number[];
175
+ docs: string[];
176
+ name: string;
177
+ } | {
178
+ accounts: ({
179
+ docs: string[];
180
+ name: string;
181
+ signer: boolean;
182
+ writable?: undefined;
183
+ pda?: undefined;
184
+ address?: undefined;
185
+ } | {
186
+ docs: string[];
187
+ name: string;
188
+ writable: boolean;
189
+ signer?: undefined;
190
+ pda?: undefined;
191
+ address?: undefined;
192
+ } | {
193
+ docs: string[];
194
+ name: string;
195
+ signer?: undefined;
196
+ writable?: undefined;
197
+ pda?: undefined;
198
+ address?: undefined;
199
+ } | {
200
+ name: string;
201
+ pda: {
202
+ program: {
203
+ kind: string;
204
+ value: number[];
205
+ };
206
+ seeds: ({
207
+ kind: string;
208
+ value: number[];
209
+ path?: undefined;
210
+ } | {
211
+ kind: string;
212
+ path: string;
213
+ value?: undefined;
214
+ })[];
215
+ };
216
+ writable: boolean;
217
+ docs?: undefined;
218
+ signer?: undefined;
219
+ address?: undefined;
220
+ } | {
221
+ address: string;
222
+ name: string;
223
+ docs?: undefined;
224
+ signer?: undefined;
225
+ writable?: undefined;
226
+ pda?: undefined;
227
+ })[];
228
+ args: {
229
+ name: string;
230
+ type: string;
231
+ }[];
232
+ discriminator: number[];
233
+ docs: string[];
234
+ name: string;
235
+ })[];
236
+ metadata: {
237
+ description: string;
238
+ name: string;
239
+ spec: string;
240
+ version: string;
241
+ };
242
+ types: ({
243
+ name: string;
244
+ repr: {
245
+ kind: string;
246
+ };
247
+ serialization: string;
248
+ type: {
249
+ fields: {
250
+ name: string;
251
+ type: string;
252
+ }[];
253
+ kind: string;
254
+ };
255
+ } | {
256
+ name: string;
257
+ type: {
258
+ fields: ({
259
+ name: string;
260
+ type: string;
261
+ } | {
262
+ name: string;
263
+ type: {
264
+ array: (string | number)[];
265
+ };
266
+ })[];
267
+ kind: string;
268
+ };
269
+ repr?: undefined;
270
+ serialization?: undefined;
271
+ })[];
272
+ };