@perena/bankineco-sdk 1.0.148 → 1.0.149
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/dist/configs/usdStarConfig.d.ts.map +1 -1
- package/dist/configs/usdStarConfig.js +4 -0
- package/dist/configs/usdStarConfig.js.map +1 -1
- package/dist/constants/accounts/generalAccounts.d.ts +2 -0
- package/dist/constants/accounts/generalAccounts.d.ts.map +1 -1
- package/dist/constants/accounts/generalAccounts.js +4 -1
- package/dist/constants/accounts/generalAccounts.js.map +1 -1
- package/dist/constants/general.d.ts +1 -0
- package/dist/constants/general.d.ts.map +1 -1
- package/dist/constants/general.js +2 -1
- package/dist/constants/general.js.map +1 -1
- package/dist/constants/usdStar/contractIndices.d.ts +1 -0
- package/dist/constants/usdStar/contractIndices.d.ts.map +1 -1
- package/dist/constants/usdStar/contractIndices.js +3 -1
- package/dist/constants/usdStar/contractIndices.js.map +1 -1
- package/dist/utils/hastraOperations.d.ts +61 -0
- package/dist/utils/hastraOperations.d.ts.map +1 -0
- package/dist/utils/hastraOperations.js +243 -0
- package/dist/utils/hastraOperations.js.map +1 -0
- package/dist/utils/hastraVaultStake.d.ts +32 -0
- package/dist/utils/hastraVaultStake.d.ts.map +1 -0
- package/dist/utils/hastraVaultStake.js +96 -0
- package/dist/utils/hastraVaultStake.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usdStarConfig.d.ts","sourceRoot":"","sources":["../../src/configs/usdStarConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usdStarConfig.d.ts","sourceRoot":"","sources":["../../src/configs/usdStarConfig.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAgB,MAAM,UAAU,CAAC;AAkEpD,eAAO,MAAM,eAAe,EAAE,UAkC7B,CAAC"}
|
|
@@ -94,6 +94,10 @@ const supportedVaults = [
|
|
|
94
94
|
yieldingMint: constants_1.USDT_MINT,
|
|
95
95
|
yieldingTokenIndex: index.GLOW_USDT_VAULT_CONTRACT_INDEX,
|
|
96
96
|
},
|
|
97
|
+
{
|
|
98
|
+
yieldingMint: constants_1.PRIME_MINT,
|
|
99
|
+
yieldingTokenIndex: index.HASTRA_PRIME_VAULT_CONTRACT_INDEX,
|
|
100
|
+
},
|
|
97
101
|
];
|
|
98
102
|
exports.USD_STAR_CONFIG = {
|
|
99
103
|
bankIndex: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usdStarConfig.js","sourceRoot":"","sources":["../../src/configs/usdStarConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"usdStarConfig.js","sourceRoot":"","sources":["../../src/configs/usdStarConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,4 +11,6 @@ export declare const CASH_MINT: PublicKey;
|
|
|
11
11
|
export declare const PYUSD_MINT: PublicKey;
|
|
12
12
|
export declare const USDS_MINT: PublicKey;
|
|
13
13
|
export declare const JUPUSD_MINT: PublicKey;
|
|
14
|
+
export declare const WYLDS_MINT: PublicKey;
|
|
15
|
+
export declare const PRIME_MINT: PublicKey;
|
|
14
16
|
//# sourceMappingURL=generalAccounts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generalAccounts.d.ts","sourceRoot":"","sources":["../../../src/constants/accounts/generalAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,eAAO,MAAM,gBAAgB,iDAAiD,CAAC;AAC/E,eAAO,MAAM,eAAe,iDAAiD,CAAC;AAC9E,eAAO,MAAM,eAAe,gDAAgD,CAAC;AAC7E,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAIlD,CAAC;AAGF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,UAAU,WAEtB,CAAC;AACF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,WAAW,WAEvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"generalAccounts.d.ts","sourceRoot":"","sources":["../../../src/constants/accounts/generalAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,eAAO,MAAM,gBAAgB,iDAAiD,CAAC;AAC/E,eAAO,MAAM,eAAe,iDAAiD,CAAC;AAC9E,eAAO,MAAM,eAAe,gDAAgD,CAAC;AAC7E,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAIlD,CAAC;AAGF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,UAAU,WAEtB,CAAC;AACF,eAAO,MAAM,SAAS,WAErB,CAAC;AACF,eAAO,MAAM,WAAW,WAEvB,CAAC;AAGF,eAAO,MAAM,UAAU,WAEtB,CAAC;AACF,eAAO,MAAM,UAAU,WAEtB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JUPUSD_MINT = exports.USDS_MINT = exports.PYUSD_MINT = exports.CASH_MINT = exports.ONYC_MINT = exports.USDT_MINT = exports.USDC_MINT = exports.PROGRAM_ID = exports.PROD_PROGRAM_ID = exports.TEST_PROGRAM_ID = exports.LOCAL_PROGRAM_ID = void 0;
|
|
3
|
+
exports.PRIME_MINT = exports.WYLDS_MINT = exports.JUPUSD_MINT = exports.USDS_MINT = exports.PYUSD_MINT = exports.CASH_MINT = exports.ONYC_MINT = exports.USDT_MINT = exports.USDC_MINT = exports.PROGRAM_ID = exports.PROD_PROGRAM_ID = exports.TEST_PROGRAM_ID = exports.LOCAL_PROGRAM_ID = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
// PROGRAMS
|
|
6
6
|
exports.LOCAL_PROGRAM_ID = "5emH1da51MCvjTBZLhmiSmz1do7iMc5FRcjiSQcpUe9m";
|
|
@@ -19,4 +19,7 @@ exports.CASH_MINT = new web3_js_1.PublicKey("CASHx9KJUStyftLFWGvEVf59SGeG9sh5Ffc
|
|
|
19
19
|
exports.PYUSD_MINT = new web3_js_1.PublicKey("2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo");
|
|
20
20
|
exports.USDS_MINT = new web3_js_1.PublicKey("USDSwr9ApdHk5bvJKMjzff41FfuX8bSxdKcR81vTwcA");
|
|
21
21
|
exports.JUPUSD_MINT = new web3_js_1.PublicKey("JuprjznTrTSp2UFa3ZBUFgwdAmtZCq4MQCwysN55USD");
|
|
22
|
+
// HASTRA
|
|
23
|
+
exports.WYLDS_MINT = new web3_js_1.PublicKey("8fr7WGTVFszfyNWRMXj6fRjZZAnDwmXwEpCrtzmUkdih");
|
|
24
|
+
exports.PRIME_MINT = new web3_js_1.PublicKey("3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7");
|
|
22
25
|
//# sourceMappingURL=generalAccounts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generalAccounts.js","sourceRoot":"","sources":["../../../src/constants/accounts/generalAccounts.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,WAAW;AACE,QAAA,gBAAgB,GAAG,8CAA8C,CAAC;AAClE,QAAA,eAAe,GAAG,8CAA8C,CAAC;AACjE,QAAA,eAAe,GAAG,6CAA6C,CAAC;AAChE,QAAA,UAAU,GAAgC;IACrD,KAAK,EAAE,wBAAgB;IACvB,IAAI,EAAE,uBAAe;IACrB,IAAI,EAAE,uBAAe;CACtB,CAAC;AAEF,QAAQ;AACK,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AACW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AACW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AACW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AACW,QAAA,UAAU,GAAG,IAAI,mBAAS,CACrC,8CAA8C,CAC/C,CAAC;AACW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,6CAA6C,CAC9C,CAAC;AACW,QAAA,WAAW,GAAG,IAAI,mBAAS,CACtC,6CAA6C,CAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"generalAccounts.js","sourceRoot":"","sources":["../../../src/constants/accounts/generalAccounts.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,WAAW;AACE,QAAA,gBAAgB,GAAG,8CAA8C,CAAC;AAClE,QAAA,eAAe,GAAG,8CAA8C,CAAC;AACjE,QAAA,eAAe,GAAG,6CAA6C,CAAC;AAChE,QAAA,UAAU,GAAgC;IACrD,KAAK,EAAE,wBAAgB;IACvB,IAAI,EAAE,uBAAe;IACrB,IAAI,EAAE,uBAAe;CACtB,CAAC;AAEF,QAAQ;AACK,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AACW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AACW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AACW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC;AACW,QAAA,UAAU,GAAG,IAAI,mBAAS,CACrC,8CAA8C,CAC/C,CAAC;AACW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,6CAA6C,CAC9C,CAAC;AACW,QAAA,WAAW,GAAG,IAAI,mBAAS,CACtC,6CAA6C,CAC9C,CAAC;AAEF,SAAS;AACI,QAAA,UAAU,GAAG,IAAI,mBAAS,CACrC,8CAA8C,CAC/C,CAAC;AACW,QAAA,UAAU,GAAG,IAAI,mBAAS,CACrC,8CAA8C,CAC/C,CAAC"}
|
|
@@ -6,6 +6,7 @@ export declare const BASIS_POINTS = 10000;
|
|
|
6
6
|
export declare const NORMALIZED_BASE_UNITS = 6;
|
|
7
7
|
export declare const ONYC_MINT_DECIMALS = 9;
|
|
8
8
|
export declare const CASH_MINT_DECIMALS = 6;
|
|
9
|
+
export declare const PRIME_MINT_DECIMALS = 6;
|
|
9
10
|
type SpecialFee = {
|
|
10
11
|
address: string;
|
|
11
12
|
bps: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../src/constants/general.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,YAAY,QAAS,CAAC;AACnC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,kBAAkB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../src/constants/general.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,YAAY,QAAS,CAAC;AACnC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,UAAU,EAKpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGtD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGjD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TOKEN_PROGRAMS = exports.PYTH_PRICE_FEED_IDS = exports.SPECIAL_FEES = exports.CASH_MINT_DECIMALS = exports.ONYC_MINT_DECIMALS = exports.NORMALIZED_BASE_UNITS = exports.BASIS_POINTS = exports.TEST_ALTERNATIVE_MINT_DECIMALS = exports.TEST_MINT_DECIMALS = exports.USDT_DECIMALS = exports.USDC_DECIMALS = void 0;
|
|
3
|
+
exports.TOKEN_PROGRAMS = exports.PYTH_PRICE_FEED_IDS = exports.SPECIAL_FEES = exports.PRIME_MINT_DECIMALS = exports.CASH_MINT_DECIMALS = exports.ONYC_MINT_DECIMALS = exports.NORMALIZED_BASE_UNITS = exports.BASIS_POINTS = exports.TEST_ALTERNATIVE_MINT_DECIMALS = exports.TEST_MINT_DECIMALS = exports.USDT_DECIMALS = exports.USDC_DECIMALS = void 0;
|
|
4
4
|
const generalAccounts_1 = require("./accounts/generalAccounts");
|
|
5
5
|
const spl_token_1 = require("@solana/spl-token");
|
|
6
6
|
const glow_1 = require("./glow");
|
|
@@ -13,6 +13,7 @@ exports.BASIS_POINTS = 10000;
|
|
|
13
13
|
exports.NORMALIZED_BASE_UNITS = 6;
|
|
14
14
|
exports.ONYC_MINT_DECIMALS = 9;
|
|
15
15
|
exports.CASH_MINT_DECIMALS = 6;
|
|
16
|
+
exports.PRIME_MINT_DECIMALS = 6;
|
|
16
17
|
exports.SPECIAL_FEES = [
|
|
17
18
|
{
|
|
18
19
|
address: "3DqXVtRefN2B65BT3Tjt6g2baxwzMbFLHNPRAhzjULK2",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/constants/general.ts"],"names":[],"mappings":";;;AAAA,gEAAkE;AAClE,iDAA0D;AAC1D,iCAA8C;AAE9C,iBAAiB;AACJ,QAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,8BAA8B,GAAG,CAAC,CAAC;AACnC,QAAA,YAAY,GAAG,KAAM,CAAC;AACtB,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAC1B,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,kBAAkB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/constants/general.ts"],"names":[],"mappings":";;;AAAA,gEAAkE;AAClE,iDAA0D;AAC1D,iCAA8C;AAE9C,iBAAiB;AACJ,QAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,8BAA8B,GAAG,CAAC,CAAC;AACnC,QAAA,YAAY,GAAG,KAAM,CAAC;AACtB,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAC1B,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,kBAAkB,GAAG,CAAC,CAAC;AACvB,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAOxB,QAAA,YAAY,GAAiB;IACxC;QACE,OAAO,EAAE,8CAA8C;QACvD,GAAG,EAAE,CAAC;KACP;CACF,CAAC;AAEW,QAAA,mBAAmB,GAA2B;IACzD,CAAC,2BAAS,CAAC,QAAQ,EAAE,CAAC,EACpB,oEAAoE;CACvE,CAAC;AAEW,QAAA,cAAc,GAA2B;IACpD,CAAC,2BAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,iCAAqB,CAAC,QAAQ,EAAE;IACxD,CAAC,2BAAoB,CAAC,QAAQ,EAAE,CAAC,EAAE,iCAAqB,CAAC,QAAQ,EAAE;CACpE,CAAC"}
|
|
@@ -12,5 +12,6 @@ export declare const KAMINO_USDS_VAULT_CONTRACT_INDEX = 0;
|
|
|
12
12
|
export declare const JUPLEND_JUPUSD_VAULT_CONTRACT_INDEX = 0;
|
|
13
13
|
export declare const NEST_RWA_VAULT_CONTRACT_INDEX = 0;
|
|
14
14
|
export declare const GLOW_USDT_VAULT_CONTRACT_INDEX = 0;
|
|
15
|
+
export declare const HASTRA_PRIME_VAULT_CONTRACT_INDEX = 0;
|
|
15
16
|
export declare const INSURED_USD_STAR_VAULT_CONTRACT_INDEX = 0;
|
|
16
17
|
//# sourceMappingURL=contractIndices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractIndices.d.ts","sourceRoot":"","sources":["../../../src/constants/usdStar/contractIndices.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,sCAAsC,IAAI,CAAC;AACxD,eAAO,MAAM,0CAA0C,IAAI,CAAC;AAE5D,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAGrD,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAG/C,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAGhD,eAAO,MAAM,qCAAqC,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"contractIndices.d.ts","sourceRoot":"","sources":["../../../src/constants/usdStar/contractIndices.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,sCAAsC,IAAI,CAAC;AACxD,eAAO,MAAM,0CAA0C,IAAI,CAAC;AAE5D,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,eAAO,MAAM,mCAAmC,IAAI,CAAC;AAGrD,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAG/C,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAGhD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAGnD,eAAO,MAAM,qCAAqC,IAAI,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.INSURED_USD_STAR_VAULT_CONTRACT_INDEX = exports.GLOW_USDT_VAULT_CONTRACT_INDEX = exports.NEST_RWA_VAULT_CONTRACT_INDEX = exports.JUPLEND_JUPUSD_VAULT_CONTRACT_INDEX = exports.KAMINO_USDS_VAULT_CONTRACT_INDEX = exports.KAMINO_PYUSD_VAULT_CONTRACT_INDEX = exports.KAMINO_CASH_VAULT_CONTRACT_INDEX = exports.ONRE_ONYC_CONTRACT_INDEX = exports.KAMINO_USDC_ELEMENTAL_VAULT_CONTRACT_INDEX = exports.KAMINO_USDC_ALLEZ_VAULT_CONTRACT_INDEX = exports.MARGINFI_USDC_CONTRACT_INDEX = exports.LITTLE_ENGINE_USDC_CONTRACT_INDEX = exports.DRIFT_USDC_CONTRACT_INDEX = exports.IDLE_USDC_CONTRACT_INDEX = exports.OLD_USD_STAR_CONTRACT_INDEX = void 0;
|
|
3
|
+
exports.INSURED_USD_STAR_VAULT_CONTRACT_INDEX = exports.HASTRA_PRIME_VAULT_CONTRACT_INDEX = exports.GLOW_USDT_VAULT_CONTRACT_INDEX = exports.NEST_RWA_VAULT_CONTRACT_INDEX = exports.JUPLEND_JUPUSD_VAULT_CONTRACT_INDEX = exports.KAMINO_USDS_VAULT_CONTRACT_INDEX = exports.KAMINO_PYUSD_VAULT_CONTRACT_INDEX = exports.KAMINO_CASH_VAULT_CONTRACT_INDEX = exports.ONRE_ONYC_CONTRACT_INDEX = exports.KAMINO_USDC_ELEMENTAL_VAULT_CONTRACT_INDEX = exports.KAMINO_USDC_ALLEZ_VAULT_CONTRACT_INDEX = exports.MARGINFI_USDC_CONTRACT_INDEX = exports.LITTLE_ENGINE_USDC_CONTRACT_INDEX = exports.DRIFT_USDC_CONTRACT_INDEX = exports.IDLE_USDC_CONTRACT_INDEX = exports.OLD_USD_STAR_CONTRACT_INDEX = void 0;
|
|
4
4
|
// OLD USD STAR
|
|
5
5
|
exports.OLD_USD_STAR_CONTRACT_INDEX = 1;
|
|
6
6
|
// // USDC
|
|
@@ -24,6 +24,8 @@ exports.JUPLEND_JUPUSD_VAULT_CONTRACT_INDEX = 0;
|
|
|
24
24
|
exports.NEST_RWA_VAULT_CONTRACT_INDEX = 0;
|
|
25
25
|
// Glow usdt share
|
|
26
26
|
exports.GLOW_USDT_VAULT_CONTRACT_INDEX = 0;
|
|
27
|
+
// PRIME (Hastra)
|
|
28
|
+
exports.HASTRA_PRIME_VAULT_CONTRACT_INDEX = 0;
|
|
27
29
|
// Insured USD*
|
|
28
30
|
exports.INSURED_USD_STAR_VAULT_CONTRACT_INDEX = 0;
|
|
29
31
|
//# sourceMappingURL=contractIndices.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractIndices.js","sourceRoot":"","sources":["../../../src/constants/usdStar/contractIndices.ts"],"names":[],"mappings":";;;AAAA,eAAe;AACF,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAC7C,UAAU;AACG,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAC7B,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAC9B,QAAA,iCAAiC,GAAG,CAAC,CAAC;AACtC,QAAA,4BAA4B,GAAG,CAAC,CAAC;AACjC,QAAA,sCAAsC,GAAG,CAAC,CAAC;AAC3C,QAAA,0CAA0C,GAAG,CAAC,CAAC;AAC5D,UAAU;AACG,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAC1C,UAAU;AACG,QAAA,gCAAgC,GAAG,CAAC,CAAC,CAAC,2BAA2B;AAC9E,WAAW;AACE,QAAA,iCAAiC,GAAG,CAAC,CAAC;AACnD,UAAU;AACG,QAAA,gCAAgC,GAAG,CAAC,CAAC;AAClD,YAAY;AACC,QAAA,mCAAmC,GAAG,CAAC,CAAC;AAErD,iBAAiB;AACJ,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAE/C,kBAAkB;AACL,QAAA,8BAA8B,GAAG,CAAC,CAAC;AAEhD,eAAe;AACF,QAAA,qCAAqC,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"contractIndices.js","sourceRoot":"","sources":["../../../src/constants/usdStar/contractIndices.ts"],"names":[],"mappings":";;;AAAA,eAAe;AACF,QAAA,2BAA2B,GAAG,CAAC,CAAC;AAC7C,UAAU;AACG,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAC7B,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAC9B,QAAA,iCAAiC,GAAG,CAAC,CAAC;AACtC,QAAA,4BAA4B,GAAG,CAAC,CAAC;AACjC,QAAA,sCAAsC,GAAG,CAAC,CAAC;AAC3C,QAAA,0CAA0C,GAAG,CAAC,CAAC;AAC5D,UAAU;AACG,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAC1C,UAAU;AACG,QAAA,gCAAgC,GAAG,CAAC,CAAC,CAAC,2BAA2B;AAC9E,WAAW;AACE,QAAA,iCAAiC,GAAG,CAAC,CAAC;AACnD,UAAU;AACG,QAAA,gCAAgC,GAAG,CAAC,CAAC;AAClD,YAAY;AACC,QAAA,mCAAmC,GAAG,CAAC,CAAC;AAErD,iBAAiB;AACJ,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAE/C,kBAAkB;AACL,QAAA,8BAA8B,GAAG,CAAC,CAAC;AAEhD,iBAAiB;AACJ,QAAA,iCAAiC,GAAG,CAAC,CAAC;AAEnD,eAAe;AACF,QAAA,qCAAqC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hastra Vault deposit (USDC → PRIME) and redeem (PRIME → USDC) transaction builders.
|
|
3
|
+
*
|
|
4
|
+
* Deposit flow: USDC → wYLDS (vault-mint, 1:1) → PRIME (vault-stake, oracle price)
|
|
5
|
+
* Redeem flow: PRIME → wYLDS (vault-stake, oracle price) → request USDC (vault-mint, admin completes)
|
|
6
|
+
*
|
|
7
|
+
* @see https://github.com/provenance-io/hastra-sol-vault
|
|
8
|
+
*/
|
|
9
|
+
import { Commitment, Connection, PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
10
|
+
export declare const HASTRA_VAULT_MINT_PROGRAM_ID: PublicKey;
|
|
11
|
+
export { HASTRA_VAULT_STAKE_PROGRAM_ID } from "./hastraVaultStake";
|
|
12
|
+
export declare function stakeTicketPda(user: PublicKey, programId?: PublicKey): PublicKey;
|
|
13
|
+
export interface HastraVaultAccounts {
|
|
14
|
+
mintConfig: PublicKey;
|
|
15
|
+
mintVtac: PublicKey;
|
|
16
|
+
mintVaultTokenAccount: PublicKey;
|
|
17
|
+
mintAuthority: PublicKey;
|
|
18
|
+
redeemVaultAuthority: PublicKey;
|
|
19
|
+
stakeConfig: PublicKey;
|
|
20
|
+
stakeVtac: PublicKey;
|
|
21
|
+
stakeVaultTokenAccount: PublicKey;
|
|
22
|
+
stakeVaultAuthority: PublicKey;
|
|
23
|
+
stakeMintAuthority: PublicKey;
|
|
24
|
+
}
|
|
25
|
+
export interface HastraProgramIds {
|
|
26
|
+
mintProgramId?: PublicKey;
|
|
27
|
+
stakeProgramId?: PublicKey;
|
|
28
|
+
}
|
|
29
|
+
export declare function fetchHastraVaultAccounts(connection: Connection, options?: HastraProgramIds & {
|
|
30
|
+
commitment?: Commitment;
|
|
31
|
+
}): Promise<HastraVaultAccounts>;
|
|
32
|
+
/** vault-mint deposit: USDC → wYLDS (1:1) */
|
|
33
|
+
export declare function buildVaultMintDepositIx(user: PublicKey, amount: bigint, accts: HastraVaultAccounts, userUsdcAta: PublicKey, userWyldsAta: PublicKey, programId?: PublicKey): TransactionInstruction;
|
|
34
|
+
/** vault-stake deposit: wYLDS → PRIME (at NAV-derived exchange rate) */
|
|
35
|
+
export declare function buildVaultStakeDepositIx(user: PublicKey, amount: bigint, accts: HastraVaultAccounts, userWyldsAta: PublicKey, userPrimeAta: PublicKey, programId?: PublicKey): TransactionInstruction;
|
|
36
|
+
/** vault-stake redeem: PRIME → wYLDS (at NAV-derived exchange rate) */
|
|
37
|
+
export declare function buildVaultStakeRedeemIx(user: PublicKey, amount: bigint, accts: HastraVaultAccounts, userWyldsAta: PublicKey, userPrimeAta: PublicKey, ticket: PublicKey, programId?: PublicKey): TransactionInstruction;
|
|
38
|
+
/** vault-mint request_redeem: creates a pending wYLDS → USDC request (admin completes later) */
|
|
39
|
+
export declare function buildVaultMintRequestRedeemIx(user: PublicKey, amount: bigint, userWyldsAta: PublicKey, programId?: PublicKey): TransactionInstruction;
|
|
40
|
+
export interface HastraIxResult {
|
|
41
|
+
instructions: TransactionInstruction[];
|
|
42
|
+
userUsdcAta: PublicKey;
|
|
43
|
+
userWyldsAta: PublicKey;
|
|
44
|
+
userPrimeAta: PublicKey;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Build instructions: USDC → wYLDS → PRIME (single transaction).
|
|
48
|
+
* @param amount Raw USDC lamports (e.g. 1_000_000n for 1 USDC)
|
|
49
|
+
*/
|
|
50
|
+
export declare function buildMintPrimeIxs(connection: Connection, user: PublicKey, amount: bigint, options?: HastraProgramIds & {
|
|
51
|
+
commitment?: Commitment;
|
|
52
|
+
}): Promise<HastraIxResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Build instructions: PRIME → wYLDS → request USDC (single transaction).
|
|
55
|
+
* The USDC is released when an admin calls complete_redeem.
|
|
56
|
+
* @param amount Raw PRIME lamports to redeem (e.g. 1_000_000n for 1 PRIME)
|
|
57
|
+
*/
|
|
58
|
+
export declare function buildRedeemPrimeIxs(connection: Connection, user: PublicKey, amount: bigint, options?: HastraProgramIds & {
|
|
59
|
+
commitment?: Commitment;
|
|
60
|
+
}): Promise<HastraIxResult>;
|
|
61
|
+
//# sourceMappingURL=hastraOperations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hastraOperations.d.ts","sourceRoot":"","sources":["../../src/utils/hastraOperations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EAET,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAUzB,eAAO,MAAM,4BAA4B,WAExC,CAAC;AAEF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AA0FnE,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,YAAgC,aAKxF;AAID,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,qBAAqB,EAAE,SAAS,CAAC;IACjC,aAAa,EAAE,SAAS,CAAC;IACzB,oBAAoB,EAAE,SAAS,CAAC;IAEhC,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB,EAAE,SAAS,CAAC;IAClC,mBAAmB,EAAE,SAAS,CAAC;IAC/B,kBAAkB,EAAE,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,GACvD,OAAO,CAAC,mBAAmB,CAAC,CA6B9B;AASD,6CAA6C;AAC7C,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,mBAAmB,EAC1B,WAAW,EAAE,SAAS,EACtB,YAAY,EAAE,SAAS,EACvB,SAAS,YAA+B,GACvC,sBAAsB,CAgBxB;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,mBAAmB,EAC1B,YAAY,EAAE,SAAS,EACvB,YAAY,EAAE,SAAS,EACvB,SAAS,YAAgC,GACxC,sBAAsB,CAkBxB;AAED,uEAAuE;AACvE,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,mBAAmB,EAC1B,YAAY,EAAE,SAAS,EACvB,YAAY,EAAE,SAAS,EACvB,MAAM,EAAE,SAAS,EACjB,SAAS,YAAgC,GACxC,sBAAsB,CAkBxB;AAED,gGAAgG;AAChG,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,SAAS,EACvB,SAAS,YAA+B,GACvC,sBAAsB,CAmBxB;AAID,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACvC,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,SAAS,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,GACvD,OAAO,CAAC,cAAc,CAAC,CAmBzB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GAAG;IAAE,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,GACvD,OAAO,CAAC,cAAc,CAAC,CAwBzB"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Hastra Vault deposit (USDC → PRIME) and redeem (PRIME → USDC) transaction builders.
|
|
4
|
+
*
|
|
5
|
+
* Deposit flow: USDC → wYLDS (vault-mint, 1:1) → PRIME (vault-stake, oracle price)
|
|
6
|
+
* Redeem flow: PRIME → wYLDS (vault-stake, oracle price) → request USDC (vault-mint, admin completes)
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/provenance-io/hastra-sol-vault
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.HASTRA_VAULT_STAKE_PROGRAM_ID = exports.HASTRA_VAULT_MINT_PROGRAM_ID = void 0;
|
|
12
|
+
exports.stakeTicketPda = stakeTicketPda;
|
|
13
|
+
exports.fetchHastraVaultAccounts = fetchHastraVaultAccounts;
|
|
14
|
+
exports.buildVaultMintDepositIx = buildVaultMintDepositIx;
|
|
15
|
+
exports.buildVaultStakeDepositIx = buildVaultStakeDepositIx;
|
|
16
|
+
exports.buildVaultStakeRedeemIx = buildVaultStakeRedeemIx;
|
|
17
|
+
exports.buildVaultMintRequestRedeemIx = buildVaultMintRequestRedeemIx;
|
|
18
|
+
exports.buildMintPrimeIxs = buildMintPrimeIxs;
|
|
19
|
+
exports.buildRedeemPrimeIxs = buildRedeemPrimeIxs;
|
|
20
|
+
const node_crypto_1 = require("node:crypto");
|
|
21
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
22
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
23
|
+
const constants_1 = require("../constants");
|
|
24
|
+
// ── Program IDs ──
|
|
25
|
+
exports.HASTRA_VAULT_MINT_PROGRAM_ID = new web3_js_1.PublicKey("9WUyNREiPDMgwMh5Gt81Fd3JpiCKxpjZ5Dpq9Bo1RhMV");
|
|
26
|
+
var hastraVaultStake_1 = require("./hastraVaultStake");
|
|
27
|
+
Object.defineProperty(exports, "HASTRA_VAULT_STAKE_PROGRAM_ID", { enumerable: true, get: function () { return hastraVaultStake_1.HASTRA_VAULT_STAKE_PROGRAM_ID; } });
|
|
28
|
+
const hastraVaultStake_2 = require("./hastraVaultStake");
|
|
29
|
+
// ── Helpers ──
|
|
30
|
+
const disc = (tag) => Buffer.from((0, node_crypto_1.createHash)("sha256").update(tag).digest().subarray(0, 8));
|
|
31
|
+
const MINT_VTAC_DISC = disc("account:VaultTokenAccountConfig");
|
|
32
|
+
const MINT_VTAC_LEN = 41; // 8 disc + 32 pubkey + 1 bump
|
|
33
|
+
const STAKE_VTAC_DISC = disc("account:StakeVaultTokenAccountConfig");
|
|
34
|
+
const STAKE_VTAC_LEN = 73; // 8 disc + 32 pubkey + 32 pubkey + 1 bump
|
|
35
|
+
function readPubkey(buf, offset) {
|
|
36
|
+
return new web3_js_1.PublicKey(buf.subarray(offset, offset + 32));
|
|
37
|
+
}
|
|
38
|
+
function parseMintVtac(data) {
|
|
39
|
+
if (data.length !== MINT_VTAC_LEN)
|
|
40
|
+
throw new Error(`VaultTokenAccountConfig: expected ${MINT_VTAC_LEN} bytes, got ${data.length}`);
|
|
41
|
+
if (!data.subarray(0, 8).equals(MINT_VTAC_DISC))
|
|
42
|
+
throw new Error("VaultTokenAccountConfig: bad discriminator");
|
|
43
|
+
return readPubkey(data, 8);
|
|
44
|
+
}
|
|
45
|
+
function parseStakeVtac(data) {
|
|
46
|
+
if (data.length !== STAKE_VTAC_LEN)
|
|
47
|
+
throw new Error(`StakeVaultTokenAccountConfig: expected ${STAKE_VTAC_LEN} bytes, got ${data.length}`);
|
|
48
|
+
if (!data.subarray(0, 8).equals(STAKE_VTAC_DISC))
|
|
49
|
+
throw new Error("StakeVaultTokenAccountConfig: bad discriminator");
|
|
50
|
+
return readPubkey(data, 8);
|
|
51
|
+
}
|
|
52
|
+
function amountIxData(discriminator, amount) {
|
|
53
|
+
const buf = Buffer.alloc(16);
|
|
54
|
+
discriminator.copy(buf, 0);
|
|
55
|
+
buf.writeBigUInt64LE(amount, 8);
|
|
56
|
+
return buf;
|
|
57
|
+
}
|
|
58
|
+
// ── PDA derivations: vault-mint ──
|
|
59
|
+
function mintConfigPda(programId) {
|
|
60
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("config")], programId)[0];
|
|
61
|
+
}
|
|
62
|
+
function mintVtacPda(config, programId) {
|
|
63
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("vault_token_account_config"), config.toBuffer()], programId)[0];
|
|
64
|
+
}
|
|
65
|
+
function mintMintAuthorityPda(programId) {
|
|
66
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("mint_authority")], programId)[0];
|
|
67
|
+
}
|
|
68
|
+
function mintRedeemVaultAuthorityPda(programId) {
|
|
69
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("redeem_vault_authority")], programId)[0];
|
|
70
|
+
}
|
|
71
|
+
function mintRedemptionRequestPda(user, programId) {
|
|
72
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("redemption_request"), user.toBuffer()], programId)[0];
|
|
73
|
+
}
|
|
74
|
+
// ── PDA derivations: vault-stake ──
|
|
75
|
+
function stakeConfigPda(programId) {
|
|
76
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake_config")], programId)[0];
|
|
77
|
+
}
|
|
78
|
+
function stakeVtacPda(stakeConfig, programId) {
|
|
79
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake_vault_token_account_config"), stakeConfig.toBuffer()], programId)[0];
|
|
80
|
+
}
|
|
81
|
+
function stakeVaultAuthorityPda(programId) {
|
|
82
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("vault_authority")], programId)[0];
|
|
83
|
+
}
|
|
84
|
+
function stakeMintAuthorityPda(programId) {
|
|
85
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("mint_authority")], programId)[0];
|
|
86
|
+
}
|
|
87
|
+
function stakeTicketPda(user, programId = hastraVaultStake_2.HASTRA_VAULT_STAKE_PROGRAM_ID) {
|
|
88
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("ticket"), user.toBuffer()], programId)[0];
|
|
89
|
+
}
|
|
90
|
+
async function fetchHastraVaultAccounts(connection, options) {
|
|
91
|
+
const mintPid = options?.mintProgramId ?? exports.HASTRA_VAULT_MINT_PROGRAM_ID;
|
|
92
|
+
const stakePid = options?.stakeProgramId ?? hastraVaultStake_2.HASTRA_VAULT_STAKE_PROGRAM_ID;
|
|
93
|
+
const commitment = options?.commitment ?? "confirmed";
|
|
94
|
+
const mConfig = mintConfigPda(mintPid);
|
|
95
|
+
const mVtac = mintVtacPda(mConfig, mintPid);
|
|
96
|
+
const sConfig = stakeConfigPda(stakePid);
|
|
97
|
+
const sVtac = stakeVtacPda(sConfig, stakePid);
|
|
98
|
+
const infos = await connection.getMultipleAccountsInfo([mVtac, sVtac], commitment);
|
|
99
|
+
if (!infos[0]?.data)
|
|
100
|
+
throw new Error(`VaultTokenAccountConfig missing at ${mVtac.toBase58()}`);
|
|
101
|
+
if (!infos[1]?.data)
|
|
102
|
+
throw new Error(`StakeVaultTokenAccountConfig missing at ${sVtac.toBase58()}`);
|
|
103
|
+
return {
|
|
104
|
+
mintConfig: mConfig,
|
|
105
|
+
mintVtac: mVtac,
|
|
106
|
+
mintVaultTokenAccount: parseMintVtac(infos[0].data),
|
|
107
|
+
mintAuthority: mintMintAuthorityPda(mintPid),
|
|
108
|
+
redeemVaultAuthority: mintRedeemVaultAuthorityPda(mintPid),
|
|
109
|
+
stakeConfig: sConfig,
|
|
110
|
+
stakeVtac: sVtac,
|
|
111
|
+
stakeVaultTokenAccount: parseStakeVtac(infos[1].data),
|
|
112
|
+
stakeVaultAuthority: stakeVaultAuthorityPda(stakePid),
|
|
113
|
+
stakeMintAuthority: stakeMintAuthorityPda(stakePid),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
// ── Instruction builders ──
|
|
117
|
+
const VM_DEPOSIT = disc("global:deposit");
|
|
118
|
+
const VS_DEPOSIT = disc("global:deposit");
|
|
119
|
+
const VS_REDEEM = disc("global:redeem");
|
|
120
|
+
const VM_REQUEST_REDEEM = disc("global:request_redeem");
|
|
121
|
+
/** vault-mint deposit: USDC → wYLDS (1:1) */
|
|
122
|
+
function buildVaultMintDepositIx(user, amount, accts, userUsdcAta, userWyldsAta, programId = exports.HASTRA_VAULT_MINT_PROGRAM_ID) {
|
|
123
|
+
return new web3_js_1.TransactionInstruction({
|
|
124
|
+
programId,
|
|
125
|
+
keys: [
|
|
126
|
+
{ pubkey: accts.mintConfig, isSigner: false, isWritable: false },
|
|
127
|
+
{ pubkey: accts.mintVtac, isSigner: false, isWritable: false },
|
|
128
|
+
{ pubkey: accts.mintVaultTokenAccount, isSigner: false, isWritable: true },
|
|
129
|
+
{ pubkey: constants_1.WYLDS_MINT, isSigner: false, isWritable: true },
|
|
130
|
+
{ pubkey: accts.mintAuthority, isSigner: false, isWritable: false },
|
|
131
|
+
{ pubkey: user, isSigner: true, isWritable: false },
|
|
132
|
+
{ pubkey: userUsdcAta, isSigner: false, isWritable: true },
|
|
133
|
+
{ pubkey: userWyldsAta, isSigner: false, isWritable: true },
|
|
134
|
+
{ pubkey: spl_token_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
|
|
135
|
+
],
|
|
136
|
+
data: amountIxData(VM_DEPOSIT, amount),
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/** vault-stake deposit: wYLDS → PRIME (at NAV-derived exchange rate) */
|
|
140
|
+
function buildVaultStakeDepositIx(user, amount, accts, userWyldsAta, userPrimeAta, programId = hastraVaultStake_2.HASTRA_VAULT_STAKE_PROGRAM_ID) {
|
|
141
|
+
return new web3_js_1.TransactionInstruction({
|
|
142
|
+
programId,
|
|
143
|
+
keys: [
|
|
144
|
+
{ pubkey: accts.stakeConfig, isSigner: false, isWritable: false },
|
|
145
|
+
{ pubkey: accts.stakeVtac, isSigner: false, isWritable: false },
|
|
146
|
+
{ pubkey: accts.stakeVaultTokenAccount, isSigner: false, isWritable: true },
|
|
147
|
+
{ pubkey: accts.stakeVaultAuthority, isSigner: false, isWritable: false },
|
|
148
|
+
{ pubkey: constants_1.PRIME_MINT, isSigner: false, isWritable: true },
|
|
149
|
+
{ pubkey: constants_1.WYLDS_MINT, isSigner: false, isWritable: true },
|
|
150
|
+
{ pubkey: accts.stakeMintAuthority, isSigner: false, isWritable: false },
|
|
151
|
+
{ pubkey: user, isSigner: true, isWritable: false },
|
|
152
|
+
{ pubkey: userWyldsAta, isSigner: false, isWritable: true },
|
|
153
|
+
{ pubkey: userPrimeAta, isSigner: false, isWritable: true },
|
|
154
|
+
{ pubkey: spl_token_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
|
|
155
|
+
],
|
|
156
|
+
data: amountIxData(VS_DEPOSIT, amount),
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/** vault-stake redeem: PRIME → wYLDS (at NAV-derived exchange rate) */
|
|
160
|
+
function buildVaultStakeRedeemIx(user, amount, accts, userWyldsAta, userPrimeAta, ticket, programId = hastraVaultStake_2.HASTRA_VAULT_STAKE_PROGRAM_ID) {
|
|
161
|
+
return new web3_js_1.TransactionInstruction({
|
|
162
|
+
programId,
|
|
163
|
+
keys: [
|
|
164
|
+
{ pubkey: accts.stakeConfig, isSigner: false, isWritable: false },
|
|
165
|
+
{ pubkey: accts.stakeVtac, isSigner: false, isWritable: false },
|
|
166
|
+
{ pubkey: accts.stakeVaultTokenAccount, isSigner: false, isWritable: true },
|
|
167
|
+
{ pubkey: accts.stakeVaultAuthority, isSigner: false, isWritable: false },
|
|
168
|
+
{ pubkey: user, isSigner: true, isWritable: true },
|
|
169
|
+
{ pubkey: ticket, isSigner: false, isWritable: true },
|
|
170
|
+
{ pubkey: userWyldsAta, isSigner: false, isWritable: true },
|
|
171
|
+
{ pubkey: userPrimeAta, isSigner: false, isWritable: true },
|
|
172
|
+
{ pubkey: constants_1.PRIME_MINT, isSigner: false, isWritable: true },
|
|
173
|
+
{ pubkey: constants_1.WYLDS_MINT, isSigner: false, isWritable: true },
|
|
174
|
+
{ pubkey: spl_token_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
|
|
175
|
+
],
|
|
176
|
+
data: amountIxData(VS_REDEEM, amount),
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
/** vault-mint request_redeem: creates a pending wYLDS → USDC request (admin completes later) */
|
|
180
|
+
function buildVaultMintRequestRedeemIx(user, amount, userWyldsAta, programId = exports.HASTRA_VAULT_MINT_PROGRAM_ID) {
|
|
181
|
+
const config = mintConfigPda(programId);
|
|
182
|
+
const redemptionRequest = mintRedemptionRequestPda(user, programId);
|
|
183
|
+
const redeemVaultAuth = mintRedeemVaultAuthorityPda(programId);
|
|
184
|
+
return new web3_js_1.TransactionInstruction({
|
|
185
|
+
programId,
|
|
186
|
+
keys: [
|
|
187
|
+
{ pubkey: user, isSigner: true, isWritable: true },
|
|
188
|
+
{ pubkey: userWyldsAta, isSigner: false, isWritable: true },
|
|
189
|
+
{ pubkey: redemptionRequest, isSigner: false, isWritable: true },
|
|
190
|
+
{ pubkey: redeemVaultAuth, isSigner: false, isWritable: false },
|
|
191
|
+
{ pubkey: constants_1.WYLDS_MINT, isSigner: false, isWritable: false },
|
|
192
|
+
{ pubkey: config, isSigner: false, isWritable: false },
|
|
193
|
+
{ pubkey: web3_js_1.SystemProgram.programId, isSigner: false, isWritable: false },
|
|
194
|
+
{ pubkey: spl_token_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
|
|
195
|
+
],
|
|
196
|
+
data: amountIxData(VM_REQUEST_REDEEM, amount),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Build instructions: USDC → wYLDS → PRIME (single transaction).
|
|
201
|
+
* @param amount Raw USDC lamports (e.g. 1_000_000n for 1 USDC)
|
|
202
|
+
*/
|
|
203
|
+
async function buildMintPrimeIxs(connection, user, amount, options) {
|
|
204
|
+
const mintPid = options?.mintProgramId ?? exports.HASTRA_VAULT_MINT_PROGRAM_ID;
|
|
205
|
+
const stakePid = options?.stakeProgramId ?? hastraVaultStake_2.HASTRA_VAULT_STAKE_PROGRAM_ID;
|
|
206
|
+
const [accts, userUsdcAta, userWyldsAta, userPrimeAta] = await Promise.all([
|
|
207
|
+
fetchHastraVaultAccounts(connection, options),
|
|
208
|
+
(0, spl_token_1.getAssociatedTokenAddress)(constants_1.USDC_MINT, user),
|
|
209
|
+
(0, spl_token_1.getAssociatedTokenAddress)(constants_1.WYLDS_MINT, user),
|
|
210
|
+
(0, spl_token_1.getAssociatedTokenAddress)(constants_1.PRIME_MINT, user),
|
|
211
|
+
]);
|
|
212
|
+
const instructions = [
|
|
213
|
+
(0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(user, userWyldsAta, user, constants_1.WYLDS_MINT),
|
|
214
|
+
(0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(user, userPrimeAta, user, constants_1.PRIME_MINT),
|
|
215
|
+
buildVaultMintDepositIx(user, amount, accts, userUsdcAta, userWyldsAta, mintPid),
|
|
216
|
+
buildVaultStakeDepositIx(user, amount, accts, userWyldsAta, userPrimeAta, stakePid),
|
|
217
|
+
];
|
|
218
|
+
return { instructions, userUsdcAta, userWyldsAta, userPrimeAta };
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Build instructions: PRIME → wYLDS → request USDC (single transaction).
|
|
222
|
+
* The USDC is released when an admin calls complete_redeem.
|
|
223
|
+
* @param amount Raw PRIME lamports to redeem (e.g. 1_000_000n for 1 PRIME)
|
|
224
|
+
*/
|
|
225
|
+
async function buildRedeemPrimeIxs(connection, user, amount, options) {
|
|
226
|
+
const mintPid = options?.mintProgramId ?? exports.HASTRA_VAULT_MINT_PROGRAM_ID;
|
|
227
|
+
const stakePid = options?.stakeProgramId ?? hastraVaultStake_2.HASTRA_VAULT_STAKE_PROGRAM_ID;
|
|
228
|
+
const ticket = stakeTicketPda(user, stakePid);
|
|
229
|
+
const [accts, userUsdcAta, userWyldsAta, userPrimeAta] = await Promise.all([
|
|
230
|
+
fetchHastraVaultAccounts(connection, options),
|
|
231
|
+
(0, spl_token_1.getAssociatedTokenAddress)(constants_1.USDC_MINT, user),
|
|
232
|
+
(0, spl_token_1.getAssociatedTokenAddress)(constants_1.WYLDS_MINT, user),
|
|
233
|
+
(0, spl_token_1.getAssociatedTokenAddress)(constants_1.PRIME_MINT, user),
|
|
234
|
+
]);
|
|
235
|
+
const U64_MAX = BigInt("18446744073709551615");
|
|
236
|
+
const instructions = [
|
|
237
|
+
(0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(user, userWyldsAta, user, constants_1.WYLDS_MINT),
|
|
238
|
+
buildVaultStakeRedeemIx(user, amount, accts, userWyldsAta, userPrimeAta, ticket, stakePid),
|
|
239
|
+
buildVaultMintRequestRedeemIx(user, U64_MAX, userWyldsAta, mintPid),
|
|
240
|
+
];
|
|
241
|
+
return { instructions, userUsdcAta, userWyldsAta, userPrimeAta };
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=hastraOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hastraOperations.js","sourceRoot":"","sources":["../../src/utils/hastraOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Commitment, Connection, PublicKey } from "@solana/web3.js";
|
|
2
|
+
/**
|
|
3
|
+
* PRIME NAV = vaulted wYLDS / PRIME supply (on-chain, no DEX).
|
|
4
|
+
* wYLDS/USDC = 1.00 (vault mint parity) → NAV is USDC per PRIME.
|
|
5
|
+
*
|
|
6
|
+
* @see https://hastra.io/proof-of-reserves
|
|
7
|
+
*/
|
|
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
|
+
/**
|
|
23
|
+
* PRIME price (NAV) from on-chain data: **vaulted wYLDS / PRIME supply**.
|
|
24
|
+
* With wYLDS/USDC = 1.00 this is dollars per PRIME.
|
|
25
|
+
*/
|
|
26
|
+
export declare function fetchHastraPrimeNav(connection: Connection, options?: {
|
|
27
|
+
stakeProgramId?: PublicKey;
|
|
28
|
+
commitment?: Commitment;
|
|
29
|
+
}): Promise<HastraPrimeNav>;
|
|
30
|
+
/** Returns the PRIME price in USDC (wYLDS/USDC = 1). */
|
|
31
|
+
export declare function getHastraPrimePrice(connection: Connection): Promise<number>;
|
|
32
|
+
//# sourceMappingURL=hastraVaultStake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hastraVaultStake.d.ts","sourceRoot":"","sources":["../../src/utils/hastraVaultStake.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGpE;;;;;GAKG;AAEH,eAAO,MAAM,6BAA6B,WAEzC,CAAC;AAWF,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,SAAS,CAAC;IAC1B,WAAW,EAAE,SAAS,CAAC;IACvB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,YAAY,EAAE,MAAM,CAAC;CACtB;AA2CD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE;IACR,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,GACA,OAAO,CAAC,cAAc,CAAC,CA0CzB;AAED,wDAAwD;AACxD,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,MAAM,CAAC,CAGjB"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HASTRA_VAULT_STAKE_PROGRAM_ID = void 0;
|
|
4
|
+
exports.fetchHastraPrimeNav = fetchHastraPrimeNav;
|
|
5
|
+
exports.getHastraPrimePrice = getHastraPrimePrice;
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
8
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
9
|
+
/**
|
|
10
|
+
* PRIME NAV = vaulted wYLDS / PRIME supply (on-chain, no DEX).
|
|
11
|
+
* wYLDS/USDC = 1.00 (vault mint parity) → NAV is USDC per PRIME.
|
|
12
|
+
*
|
|
13
|
+
* @see https://hastra.io/proof-of-reserves
|
|
14
|
+
*/
|
|
15
|
+
exports.HASTRA_VAULT_STAKE_PROGRAM_ID = new web3_js_1.PublicKey("97V7JsExNC6yFWu5KjK1FLfVkNVvtMpAFL5QkLWKEGxY");
|
|
16
|
+
const anchorDiscriminator = (tag) => (0, node_crypto_1.createHash)("sha256").update(tag).digest().subarray(0, 8);
|
|
17
|
+
const STAKE_CONFIG_DISCRIMINATOR = anchorDiscriminator("account:StakeConfig");
|
|
18
|
+
const STAKE_CONFIG_ACCOUNT_LEN = 410;
|
|
19
|
+
const VTAC_DISCRIMINATOR = anchorDiscriminator("account:StakeVaultTokenAccountConfig");
|
|
20
|
+
const VTAC_LEN = 73;
|
|
21
|
+
function readPubkey(data, offset) {
|
|
22
|
+
return new web3_js_1.PublicKey(data.subarray(offset, offset + 32));
|
|
23
|
+
}
|
|
24
|
+
function parseMintsFromStakeConfig(data) {
|
|
25
|
+
if (data.length !== STAKE_CONFIG_ACCOUNT_LEN) {
|
|
26
|
+
throw new Error(`StakeConfig: expected ${STAKE_CONFIG_ACCOUNT_LEN} bytes, got ${data.length}`);
|
|
27
|
+
}
|
|
28
|
+
if (!data.subarray(0, 8).equals(STAKE_CONFIG_DISCRIMINATOR)) {
|
|
29
|
+
throw new Error("StakeConfig: unexpected discriminator");
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
vaultMint: readPubkey(data, 8),
|
|
33
|
+
stakeMint: readPubkey(data, 40),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function parseVaultTokenAccount(data) {
|
|
37
|
+
if (data.length !== VTAC_LEN) {
|
|
38
|
+
throw new Error(`StakeVaultTokenAccountConfig: expected ${VTAC_LEN} bytes, got ${data.length}`);
|
|
39
|
+
}
|
|
40
|
+
if (!data.subarray(0, 8).equals(VTAC_DISCRIMINATOR)) {
|
|
41
|
+
throw new Error("StakeVaultTokenAccountConfig: unexpected discriminator");
|
|
42
|
+
}
|
|
43
|
+
return readPubkey(data, 8);
|
|
44
|
+
}
|
|
45
|
+
function stakeConfigPda(programId) {
|
|
46
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake_config")], programId)[0];
|
|
47
|
+
}
|
|
48
|
+
function vtacPda(stakeConfig, programId) {
|
|
49
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("stake_vault_token_account_config"), stakeConfig.toBuffer()], programId)[0];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* PRIME price (NAV) from on-chain data: **vaulted wYLDS / PRIME supply**.
|
|
53
|
+
* With wYLDS/USDC = 1.00 this is dollars per PRIME.
|
|
54
|
+
*/
|
|
55
|
+
async function fetchHastraPrimeNav(connection, options) {
|
|
56
|
+
const programId = options?.stakeProgramId ?? exports.HASTRA_VAULT_STAKE_PROGRAM_ID;
|
|
57
|
+
const commitment = options?.commitment ?? "confirmed";
|
|
58
|
+
const stakeConfigKey = stakeConfigPda(programId);
|
|
59
|
+
const vtacKey = vtacPda(stakeConfigKey, programId);
|
|
60
|
+
const [cfgInfo, vtacInfo] = await connection.getMultipleAccountsInfo([stakeConfigKey, vtacKey], commitment);
|
|
61
|
+
if (!cfgInfo?.data)
|
|
62
|
+
throw new Error(`StakeConfig missing at ${stakeConfigKey.toBase58()}`);
|
|
63
|
+
if (!vtacInfo?.data)
|
|
64
|
+
throw new Error(`StakeVaultTokenAccountConfig missing at ${vtacKey.toBase58()}`);
|
|
65
|
+
const { vaultMint, stakeMint } = parseMintsFromStakeConfig(cfgInfo.data);
|
|
66
|
+
const vaultTokenAccount = parseVaultTokenAccount(vtacInfo.data);
|
|
67
|
+
const [vaultAcct, stakeMintInfo, vaultMintInfo] = await Promise.all([
|
|
68
|
+
(0, spl_token_1.getAccount)(connection, vaultTokenAccount, commitment),
|
|
69
|
+
(0, spl_token_1.getMint)(connection, stakeMint, commitment),
|
|
70
|
+
(0, spl_token_1.getMint)(connection, vaultMint, commitment),
|
|
71
|
+
]);
|
|
72
|
+
const vaultedWyldsRaw = vaultAcct.amount;
|
|
73
|
+
const primeSupplyRaw = stakeMintInfo.supply;
|
|
74
|
+
const vaultedWyldsUi = Number(vaultedWyldsRaw) / 10 ** vaultMintInfo.decimals;
|
|
75
|
+
const primeSupplyUi = Number(primeSupplyRaw) / 10 ** stakeMintInfo.decimals;
|
|
76
|
+
if (primeSupplyUi <= 0)
|
|
77
|
+
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;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=hastraVaultStake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hastraVaultStake.js","sourceRoot":"","sources":["../../src/utils/hastraVaultStake.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -28,4 +28,6 @@ __exportStar(require("./accountUtils"), exports);
|
|
|
28
28
|
__exportStar(require("./apiUtils"), exports);
|
|
29
29
|
__exportStar(require("./glowUtils"), exports);
|
|
30
30
|
__exportStar(require("./nestUtils"), exports);
|
|
31
|
+
__exportStar(require("./hastraVaultStake"), exports);
|
|
32
|
+
__exportStar(require("./hastraOperations"), exports);
|
|
31
33
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,mDAAiC;AACjC,+CAA6B;AAC7B,8CAA4B;AAC5B,6CAA2B;AAC3B,+CAA6B;AAC7B,qDAAmC;AACnC,kDAAgC;AAChC,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,mDAAiC;AACjC,+CAA6B;AAC7B,8CAA4B;AAC5B,6CAA2B;AAC3B,+CAA6B;AAC7B,qDAAmC;AACnC,kDAAgC;AAChC,kDAAgC;AAChC,gDAA8B;AAC9B,iDAA+B;AAC/B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,qDAAmC;AACnC,qDAAmC"}
|