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.
- package/LICENSE +21 -0
- package/README.md +349 -0
- package/lib/abis/AddressResolver.d.ts +28 -0
- package/lib/abis/AddressResolver.js +23 -0
- package/lib/abis/ChainlinkV3.d.ts +87 -0
- package/lib/abis/ChainlinkV3.js +117 -0
- package/lib/abis/ERC20.d.ts +168 -0
- package/lib/abis/ERC20.js +226 -0
- package/lib/abis/ERC20_Bytes32.d.ts +139 -0
- package/lib/abis/ERC20_Bytes32.js +196 -0
- package/lib/abis/ERC4626.d.ts +364 -0
- package/lib/abis/ERC4626.js +507 -0
- package/lib/abis/ERC721.d.ts +231 -0
- package/lib/abis/ERC721.js +321 -0
- package/lib/abis/FeeOracle.d.ts +120 -0
- package/lib/abis/FeeOracle.js +162 -0
- package/lib/abis/LendingPool.d.ts +1393 -0
- package/lib/abis/LendingPool.js +1807 -0
- package/lib/abis/LendingPoolV2.d.ts +1413 -0
- package/lib/abis/LendingPoolV2.js +1833 -0
- package/lib/abis/LendingPoolV3.d.ts +1677 -0
- package/lib/abis/LendingPoolV3.js +1160 -0
- package/lib/abis/Loan.d.ts +837 -0
- package/lib/abis/Loan.js +1080 -0
- package/lib/abis/MultiAssetNativeDepositWrapper.d.ts +137 -0
- package/lib/abis/MultiAssetNativeDepositWrapper.js +125 -0
- package/lib/abis/Multicall3.d.ts +30 -0
- package/lib/abis/Multicall3.js +97 -0
- package/lib/abis/OFT.d.ts +116 -0
- package/lib/abis/OFT.js +85 -0
- package/lib/abis/PoolAdapter.d.ts +36 -0
- package/lib/abis/PoolAdapter.js +51 -0
- package/lib/abis/RewardDistributor.d.ts +267 -0
- package/lib/abis/RewardDistributor.js +352 -0
- package/lib/abis/RwaRedeemSubaccount.d.ts +747 -0
- package/lib/abis/RwaRedeemSubaccount.js +548 -0
- package/lib/abis/SmartAccount.d.ts +17 -0
- package/lib/abis/SmartAccount.js +19 -0
- package/lib/abis/SwapRouter.d.ts +1043 -0
- package/lib/abis/SwapRouter.js +740 -0
- package/lib/abis/TextResolver.d.ts +16 -0
- package/lib/abis/TextResolver.js +16 -0
- package/lib/abis/TokenizedVaultV2.d.ts +1364 -0
- package/lib/abis/TokenizedVaultV2.js +1041 -0
- package/lib/abis/TokenizedVaultV2DepositWithPermit.d.ts +1456 -0
- package/lib/abis/TokenizedVaultV2DepositWithPermit.js +1878 -0
- package/lib/abis/TokenizedVaultV2Receipt.d.ts +1568 -0
- package/lib/abis/TokenizedVaultV2Receipt.js +1061 -0
- package/lib/abis/TokenizedVaultV2SenderAllocationWhitelist.d.ts +454 -0
- package/lib/abis/TokenizedVaultV2SenderAllocationWhitelist.js +327 -0
- package/lib/abis/TokenizedVaultV2WhitelistedAllocation.d.ts +1466 -0
- package/lib/abis/TokenizedVaultV2WhitelistedAllocation.js +1092 -0
- package/lib/abis/TokenizedVaultV2WhitelistedAssets.d.ts +274 -0
- package/lib/abis/TokenizedVaultV2WhitelistedAssets.js +167 -0
- package/lib/abis/UniversalResolverResolve.d.ts +69 -0
- package/lib/abis/UniversalResolverResolve.js +35 -0
- package/lib/abis/UniversalSignatureValidator.d.ts +17 -0
- package/lib/abis/UniversalSignatureValidator.js +30 -0
- package/lib/abis/WrapperAdapter.d.ts +71 -0
- package/lib/abis/WrapperAdapter.js +77 -0
- package/lib/abis/index.d.ts +34 -0
- package/lib/abis/index.js +51 -0
- package/lib/adapters/evm/getters.d.ts +19 -0
- package/lib/adapters/evm/getters.js +209 -0
- package/lib/adapters/evm/index.d.ts +353 -0
- package/lib/adapters/evm/index.js +434 -0
- package/lib/adapters/evm/utils.d.ts +8 -0
- package/lib/adapters/evm/utils.js +51 -0
- package/lib/adapters/solana/constants.d.ts +33 -0
- package/lib/adapters/solana/constants.js +52 -0
- package/lib/adapters/solana/getters.d.ts +11 -0
- package/lib/adapters/solana/getters.js +165 -0
- package/lib/adapters/solana/idl/vault-idl.d.ts +272 -0
- package/lib/adapters/solana/idl/vault-idl.js +1084 -0
- package/lib/adapters/solana/index.d.ts +233 -0
- package/lib/adapters/solana/index.js +291 -0
- package/lib/adapters/solana/types.d.ts +67 -0
- package/lib/adapters/solana/types.js +3 -0
- package/lib/adapters/solana/utils.d.ts +141 -0
- package/lib/adapters/solana/utils.js +595 -0
- package/lib/adapters/solana/vault.actions.d.ts +57 -0
- package/lib/adapters/solana/vault.actions.js +379 -0
- package/lib/adapters/stellar/actions.d.ts +28 -0
- package/lib/adapters/stellar/actions.js +77 -0
- package/lib/adapters/stellar/constants.d.ts +43 -0
- package/lib/adapters/stellar/constants.js +53 -0
- package/lib/adapters/stellar/getters.d.ts +68 -0
- package/lib/adapters/stellar/getters.js +290 -0
- package/lib/adapters/stellar/index.d.ts +114 -0
- package/lib/adapters/stellar/index.js +175 -0
- package/lib/adapters/stellar/soroban.d.ts +123 -0
- package/lib/adapters/stellar/soroban.js +613 -0
- package/lib/adapters/stellar/submit.d.ts +34 -0
- package/lib/adapters/stellar/submit.js +149 -0
- package/lib/adapters/stellar/types.d.ts +58 -0
- package/lib/adapters/stellar/types.js +6 -0
- package/lib/adapters/stellar/utils.d.ts +24 -0
- package/lib/adapters/stellar/utils.js +34 -0
- package/lib/adapters/sui/constants.d.ts +14 -0
- package/lib/adapters/sui/constants.js +29 -0
- package/lib/adapters/sui/getters.d.ts +9 -0
- package/lib/adapters/sui/getters.js +60 -0
- package/lib/adapters/sui/index.d.ts +45 -0
- package/lib/adapters/sui/index.js +101 -0
- package/lib/adapters/sui/transformer.d.ts +10 -0
- package/lib/adapters/sui/transformer.js +107 -0
- package/lib/adapters/sui/types.d.ts +66 -0
- package/lib/adapters/sui/types.js +3 -0
- package/lib/adapters/sui/utils.d.ts +10 -0
- package/lib/adapters/sui/utils.js +29 -0
- package/lib/core/analytics/chain-name.d.ts +9 -0
- package/lib/core/analytics/chain-name.js +34 -0
- package/lib/core/analytics/constants.d.ts +5 -0
- package/lib/core/analytics/constants.js +9 -0
- package/lib/core/analytics/env.d.ts +29 -0
- package/lib/core/analytics/env.js +59 -0
- package/lib/core/analytics/index.d.ts +36 -0
- package/lib/core/analytics/index.js +79 -0
- package/lib/core/analytics/instrumentation.d.ts +29 -0
- package/lib/core/analytics/instrumentation.js +277 -0
- package/lib/core/analytics/method-taxonomy.d.ts +19 -0
- package/lib/core/analytics/method-taxonomy.js +128 -0
- package/lib/core/analytics/metrics.d.ts +33 -0
- package/lib/core/analytics/metrics.js +116 -0
- package/lib/core/analytics/sanitize.d.ts +44 -0
- package/lib/core/analytics/sanitize.js +260 -0
- package/lib/core/analytics/sentry-runtime.d.ts +15 -0
- package/lib/core/analytics/sentry-runtime.js +97 -0
- package/lib/core/analytics/sentry.d.ts +67 -0
- package/lib/core/analytics/sentry.js +613 -0
- package/lib/core/analytics/types.d.ts +48 -0
- package/lib/core/analytics/types.js +3 -0
- package/lib/core/analytics/user-identity.d.ts +41 -0
- package/lib/core/analytics/user-identity.js +141 -0
- package/lib/core/analytics/version.d.ts +6 -0
- package/lib/core/analytics/version.js +10 -0
- package/lib/core/attribution.d.ts +111 -0
- package/lib/core/attribution.js +142 -0
- package/lib/core/auth/index.d.ts +1 -0
- package/lib/core/auth/index.js +18 -0
- package/lib/core/auth/verify.d.ts +2 -0
- package/lib/core/auth/verify.js +31 -0
- package/lib/core/base.class.d.ts +152 -0
- package/lib/core/base.class.js +172 -0
- package/lib/core/cache.d.ts +9 -0
- package/lib/core/cache.js +31 -0
- package/lib/core/constants/adapters.d.ts +103 -0
- package/lib/core/constants/adapters.js +180 -0
- package/lib/core/constants/core.d.ts +133 -0
- package/lib/core/constants/core.js +209 -0
- package/lib/core/constants/swap-router.d.ts +150 -0
- package/lib/core/constants/swap-router.js +169 -0
- package/lib/core/constants/vaults.d.ts +93 -0
- package/lib/core/constants/vaults.js +273 -0
- package/lib/core/constants/web3.d.ts +91 -0
- package/lib/core/constants/web3.js +229 -0
- package/lib/core/errors/index.d.ts +114 -0
- package/lib/core/errors/index.js +183 -0
- package/lib/core/fetcher.d.ts +198 -0
- package/lib/core/fetcher.js +903 -0
- package/lib/core/helpers/adapters.d.ts +13 -0
- package/lib/core/helpers/adapters.js +39 -0
- package/lib/core/helpers/chain-address.d.ts +13 -0
- package/lib/core/helpers/chain-address.js +47 -0
- package/lib/core/helpers/chain-error.d.ts +207 -0
- package/lib/core/helpers/chain-error.js +682 -0
- package/lib/core/helpers/chain-support.d.ts +80 -0
- package/lib/core/helpers/chain-support.js +115 -0
- package/lib/core/helpers/core.d.ts +68 -0
- package/lib/core/helpers/core.js +285 -0
- package/lib/core/helpers/explorer-link.d.ts +16 -0
- package/lib/core/helpers/explorer-link.js +26 -0
- package/lib/core/helpers/multicall.d.ts +68 -0
- package/lib/core/helpers/multicall.js +103 -0
- package/lib/core/helpers/revert-decode.d.ts +248 -0
- package/lib/core/helpers/revert-decode.js +515 -0
- package/lib/core/helpers/signer.d.ts +52 -0
- package/lib/core/helpers/signer.js +145 -0
- package/lib/core/helpers/swap-router.d.ts +211 -0
- package/lib/core/helpers/swap-router.js +480 -0
- package/lib/core/helpers/vault-version.d.ts +23 -0
- package/lib/core/helpers/vault-version.js +75 -0
- package/lib/core/helpers/vaults.d.ts +89 -0
- package/lib/core/helpers/vaults.js +235 -0
- package/lib/core/helpers/web3.d.ts +353 -0
- package/lib/core/helpers/web3.js +992 -0
- package/lib/core/index.d.ts +23 -0
- package/lib/core/index.js +40 -0
- package/lib/core/logger/index.d.ts +98 -0
- package/lib/core/logger/index.js +144 -0
- package/lib/core/logger/slack.d.ts +16 -0
- package/lib/core/logger/slack.js +57 -0
- package/lib/core/vault-metadata.d.ts +12 -0
- package/lib/core/vault-metadata.js +42 -0
- package/lib/core/version-check.d.ts +58 -0
- package/lib/core/version-check.js +182 -0
- package/lib/evm/index.d.ts +2 -0
- package/lib/evm/index.js +19 -0
- package/lib/evm/methods/crossChainVault.d.ts +128 -0
- package/lib/evm/methods/crossChainVault.js +853 -0
- package/lib/evm/methods/crossChainVaultRegistry.d.ts +93 -0
- package/lib/evm/methods/crossChainVaultRegistry.js +240 -0
- package/lib/evm/methods/index.d.ts +2 -0
- package/lib/evm/methods/index.js +19 -0
- package/lib/evm/types/crossChain.d.ts +363 -0
- package/lib/evm/types/crossChain.js +20 -0
- package/lib/evm/types/index.d.ts +1 -0
- package/lib/evm/types/index.js +18 -0
- package/lib/index.d.ts +30 -0
- package/lib/index.js +52 -0
- package/lib/main.d.ts +527 -0
- package/lib/main.js +601 -0
- package/lib/modules/api/fetcher.d.ts +82 -0
- package/lib/modules/api/fetcher.js +150 -0
- package/lib/modules/api/index.d.ts +1 -0
- package/lib/modules/api/index.js +6 -0
- package/lib/modules/api/main.d.ts +313 -0
- package/lib/modules/api/main.js +479 -0
- package/lib/modules/sub-accounts/fetcher.d.ts +53 -0
- package/lib/modules/sub-accounts/fetcher.js +120 -0
- package/lib/modules/sub-accounts/index.d.ts +2 -0
- package/lib/modules/sub-accounts/index.js +19 -0
- package/lib/modules/sub-accounts/main.d.ts +243 -0
- package/lib/modules/sub-accounts/main.js +205 -0
- package/lib/modules/sub-accounts/utils.d.ts +106 -0
- package/lib/modules/sub-accounts/utils.js +112 -0
- package/lib/modules/vaults/adapter.helpers.d.ts +64 -0
- package/lib/modules/vaults/adapter.helpers.js +184 -0
- package/lib/modules/vaults/fetcher.d.ts +147 -0
- package/lib/modules/vaults/fetcher.js +368 -0
- package/lib/modules/vaults/getters.d.ts +570 -0
- package/lib/modules/vaults/getters.js +3051 -0
- package/lib/modules/vaults/index.d.ts +20 -0
- package/lib/modules/vaults/index.js +44 -0
- package/lib/modules/vaults/main.d.ts +601 -0
- package/lib/modules/vaults/main.js +1623 -0
- package/lib/modules/vaults/prefetch.d.ts +65 -0
- package/lib/modules/vaults/prefetch.js +120 -0
- package/lib/modules/vaults/read.actions.d.ts +225 -0
- package/lib/modules/vaults/read.actions.js +596 -0
- package/lib/modules/vaults/types.d.ts +71 -0
- package/lib/modules/vaults/types.js +3 -0
- package/lib/modules/vaults/utils/call-data-decoder.d.ts +61 -0
- package/lib/modules/vaults/utils/call-data-decoder.js +194 -0
- package/lib/modules/vaults/utils/date-utils.d.ts +50 -0
- package/lib/modules/vaults/utils/date-utils.js +84 -0
- package/lib/modules/vaults/utils.d.ts +140 -0
- package/lib/modules/vaults/utils.js +799 -0
- package/lib/modules/vaults/write.actions.d.ts +529 -0
- package/lib/modules/vaults/write.actions.js +1749 -0
- package/lib/polyfills.d.ts +1 -0
- package/lib/polyfills.js +12 -0
- package/lib/sdk.d.ts +26721 -0
- package/lib/services/coingecko/fetcher.d.ts +15 -0
- package/lib/services/coingecko/fetcher.js +67 -0
- package/lib/services/coingecko/index.d.ts +2 -0
- package/lib/services/coingecko/index.js +19 -0
- package/lib/services/coingecko/utils.d.ts +1 -0
- package/lib/services/coingecko/utils.js +24 -0
- package/lib/services/debank/fetcher.d.ts +126 -0
- package/lib/services/debank/fetcher.js +47 -0
- package/lib/services/debank/index.d.ts +2 -0
- package/lib/services/debank/index.js +19 -0
- package/lib/services/debank/utils.d.ts +38 -0
- package/lib/services/debank/utils.js +297 -0
- package/lib/services/layerzero/deposits.d.ts +49 -0
- package/lib/services/layerzero/deposits.js +166 -0
- package/lib/services/layerzero/redeems.d.ts +20 -0
- package/lib/services/layerzero/redeems.js +92 -0
- package/lib/services/layerzero/utils.d.ts +9 -0
- package/lib/services/layerzero/utils.js +22 -0
- package/lib/services/octavfi/fetcher.d.ts +9 -0
- package/lib/services/octavfi/fetcher.js +103 -0
- package/lib/services/octavfi/index.d.ts +3 -0
- package/lib/services/octavfi/index.js +20 -0
- package/lib/services/octavfi/types.d.ts +34 -0
- package/lib/services/octavfi/types.js +3 -0
- package/lib/services/octavfi/utils.d.ts +16 -0
- package/lib/services/octavfi/utils.js +212 -0
- package/lib/services/subgraph/fetcher.d.ts +2 -0
- package/lib/services/subgraph/fetcher.js +61 -0
- package/lib/services/subgraph/index.d.ts +2 -0
- package/lib/services/subgraph/index.js +19 -0
- package/lib/services/subgraph/schema.d.ts +45 -0
- package/lib/services/subgraph/schema.js +75 -0
- package/lib/services/subgraph/vaults.d.ts +25 -0
- package/lib/services/subgraph/vaults.js +1106 -0
- package/lib/services/swap-quotes/index.d.ts +105 -0
- package/lib/services/swap-quotes/index.js +77 -0
- package/lib/services/swap-quotes/paraswap.d.ts +51 -0
- package/lib/services/swap-quotes/paraswap.js +138 -0
- package/lib/types/api.d.ts +280 -0
- package/lib/types/api.js +3 -0
- package/lib/types/index.d.ts +12 -0
- package/lib/types/index.js +28 -0
- package/lib/types/points.d.ts +28 -0
- package/lib/types/points.js +3 -0
- package/lib/types/pools.d.ts +144 -0
- package/lib/types/pools.js +3 -0
- package/lib/types/staking.d.ts +28 -0
- package/lib/types/staking.js +3 -0
- package/lib/types/sub-accounts.d.ts +140 -0
- package/lib/types/sub-accounts.js +3 -0
- package/lib/types/subgraph.d.ts +74 -0
- package/lib/types/subgraph.js +3 -0
- package/lib/types/typed-contract.d.ts +102 -0
- package/lib/types/typed-contract.js +3 -0
- package/lib/types/user.d.ts +1 -0
- package/lib/types/user.js +3 -0
- package/lib/types/vaults.d.ts +714 -0
- package/lib/types/vaults.js +24 -0
- package/lib/types/web3.d.ts +51 -0
- package/lib/types/web3.js +14 -0
- package/lib/types/webserver.d.ts +698 -0
- package/lib/types/webserver.js +3 -0
- 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
|
+
};
|