@perena/bankineco-sdk 1.0.150 → 1.0.151
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Connection, PublicKey } from "@solana/web3.js";
|
|
2
2
|
/**
|
|
3
3
|
* PRIME NAV = vaulted wYLDS / PRIME supply (on-chain, no DEX).
|
|
4
4
|
* wYLDS/USDC = 1.00 (vault mint parity) → NAV is USDC per PRIME.
|
|
@@ -6,27 +6,13 @@ import { Commitment, Connection, PublicKey } from "@solana/web3.js";
|
|
|
6
6
|
* @see https://hastra.io/proof-of-reserves
|
|
7
7
|
*/
|
|
8
8
|
export declare const HASTRA_VAULT_STAKE_PROGRAM_ID: PublicKey;
|
|
9
|
-
export interface HastraPrimeNav {
|
|
10
|
-
stakeProgramId: PublicKey;
|
|
11
|
-
stakeConfig: PublicKey;
|
|
12
|
-
vaultTokenAccount: PublicKey;
|
|
13
|
-
vaultMint: PublicKey;
|
|
14
|
-
stakeMint: PublicKey;
|
|
15
|
-
vaultedWyldsRaw: bigint;
|
|
16
|
-
primeSupplyRaw: bigint;
|
|
17
|
-
vaultedWyldsUi: number;
|
|
18
|
-
primeSupplyUi: number;
|
|
19
|
-
/** PRIME price in USDC (wYLDS/USDC = 1). Same as https://hastra.io/proof-of-reserves */
|
|
20
|
-
primeNavUsdc: number;
|
|
21
|
-
}
|
|
22
9
|
/**
|
|
23
10
|
* PRIME price (NAV) from on-chain data: **vaulted wYLDS / PRIME supply**.
|
|
24
11
|
* With wYLDS/USDC = 1.00 this is dollars per PRIME.
|
|
12
|
+
*
|
|
13
|
+
* @see https://hastra.io/proof-of-reserves
|
|
25
14
|
*/
|
|
26
|
-
export declare function
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}): Promise<HastraPrimeNav>;
|
|
30
|
-
/** Returns the PRIME price in USDC (wYLDS/USDC = 1). */
|
|
31
|
-
export declare function getHastraPrimePrice(connection: Connection): Promise<number>;
|
|
15
|
+
export declare function getHastraPrimePrice(connection: Connection): Promise<{
|
|
16
|
+
primeNavUsdc: number;
|
|
17
|
+
}>;
|
|
32
18
|
//# sourceMappingURL=hastraVaultStake.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hastraVaultStake.d.ts","sourceRoot":"","sources":["../../src/utils/hastraVaultStake.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"hastraVaultStake.d.ts","sourceRoot":"","sources":["../../src/utils/hastraVaultStake.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGxD;;;;;GAKG;AAEH,eAAO,MAAM,6BAA6B,WAEzC,CAAC;AAqDF;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CA2BnC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HASTRA_VAULT_STAKE_PROGRAM_ID = void 0;
|
|
4
|
-
exports.fetchHastraPrimeNav = fetchHastraPrimeNav;
|
|
5
4
|
exports.getHastraPrimePrice = getHastraPrimePrice;
|
|
6
5
|
const node_crypto_1 = require("node:crypto");
|
|
7
6
|
const web3_js_1 = require("@solana/web3.js");
|
|
@@ -51,13 +50,14 @@ function vtacPda(stakeConfig, programId) {
|
|
|
51
50
|
/**
|
|
52
51
|
* PRIME price (NAV) from on-chain data: **vaulted wYLDS / PRIME supply**.
|
|
53
52
|
* With wYLDS/USDC = 1.00 this is dollars per PRIME.
|
|
53
|
+
*
|
|
54
|
+
* @see https://hastra.io/proof-of-reserves
|
|
54
55
|
*/
|
|
55
|
-
async function
|
|
56
|
-
const programId =
|
|
57
|
-
const commitment = options?.commitment ?? "confirmed";
|
|
56
|
+
async function getHastraPrimePrice(connection) {
|
|
57
|
+
const programId = exports.HASTRA_VAULT_STAKE_PROGRAM_ID;
|
|
58
58
|
const stakeConfigKey = stakeConfigPda(programId);
|
|
59
59
|
const vtacKey = vtacPda(stakeConfigKey, programId);
|
|
60
|
-
const [cfgInfo, vtacInfo] = await connection.getMultipleAccountsInfo([stakeConfigKey, vtacKey],
|
|
60
|
+
const [cfgInfo, vtacInfo] = await connection.getMultipleAccountsInfo([stakeConfigKey, vtacKey], "confirmed");
|
|
61
61
|
if (!cfgInfo?.data)
|
|
62
62
|
throw new Error(`StakeConfig missing at ${stakeConfigKey.toBase58()}`);
|
|
63
63
|
if (!vtacInfo?.data)
|
|
@@ -65,32 +65,14 @@ async function fetchHastraPrimeNav(connection, options) {
|
|
|
65
65
|
const { vaultMint, stakeMint } = parseMintsFromStakeConfig(cfgInfo.data);
|
|
66
66
|
const vaultTokenAccount = parseVaultTokenAccount(vtacInfo.data);
|
|
67
67
|
const [vaultAcct, stakeMintInfo, vaultMintInfo] = await Promise.all([
|
|
68
|
-
(0, spl_token_1.getAccount)(connection, vaultTokenAccount,
|
|
69
|
-
(0, spl_token_1.getMint)(connection, stakeMint,
|
|
70
|
-
(0, spl_token_1.getMint)(connection, vaultMint,
|
|
68
|
+
(0, spl_token_1.getAccount)(connection, vaultTokenAccount, "confirmed"),
|
|
69
|
+
(0, spl_token_1.getMint)(connection, stakeMint, "confirmed"),
|
|
70
|
+
(0, spl_token_1.getMint)(connection, vaultMint, "confirmed"),
|
|
71
71
|
]);
|
|
72
|
-
const
|
|
73
|
-
const
|
|
74
|
-
const vaultedWyldsUi = Number(vaultedWyldsRaw) / 10 ** vaultMintInfo.decimals;
|
|
75
|
-
const primeSupplyUi = Number(primeSupplyRaw) / 10 ** stakeMintInfo.decimals;
|
|
72
|
+
const vaultedWyldsUi = Number(vaultAcct.amount) / 10 ** vaultMintInfo.decimals;
|
|
73
|
+
const primeSupplyUi = Number(stakeMintInfo.supply) / 10 ** stakeMintInfo.decimals;
|
|
76
74
|
if (primeSupplyUi <= 0)
|
|
77
75
|
throw new Error("PRIME supply is zero");
|
|
78
|
-
return {
|
|
79
|
-
stakeProgramId: programId,
|
|
80
|
-
stakeConfig: stakeConfigKey,
|
|
81
|
-
vaultTokenAccount,
|
|
82
|
-
vaultMint,
|
|
83
|
-
stakeMint,
|
|
84
|
-
vaultedWyldsRaw,
|
|
85
|
-
primeSupplyRaw,
|
|
86
|
-
vaultedWyldsUi,
|
|
87
|
-
primeSupplyUi,
|
|
88
|
-
primeNavUsdc: vaultedWyldsUi / primeSupplyUi,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
/** Returns the PRIME price in USDC (wYLDS/USDC = 1). */
|
|
92
|
-
async function getHastraPrimePrice(connection) {
|
|
93
|
-
const nav = await fetchHastraPrimeNav(connection);
|
|
94
|
-
return nav.primeNavUsdc;
|
|
76
|
+
return { primeNavUsdc: vaultedWyldsUi / primeSupplyUi };
|
|
95
77
|
}
|
|
96
78
|
//# sourceMappingURL=hastraVaultStake.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hastraVaultStake.js","sourceRoot":"","sources":["../../src/utils/hastraVaultStake.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"hastraVaultStake.js","sourceRoot":"","sources":["../../src/utils/hastraVaultStake.ts"],"names":[],"mappings":"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"}
|