@zcomb/programs-sdk 1.11.0 → 1.11.2

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/index.js CHANGED
@@ -1,137 +1 @@
1
- "use strict";
2
- /* Shared Types */
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.deriveStakingConfigPDA = exports.SVaultClient = exports.FUTARCHY_MIN_OPTIONS = exports.FUTARCHY_MAX_OPTIONS = exports.PROPOSAL_SEED = exports.MODERATOR_SEED = exports.DAO_SEED = exports.FUTARCHY_PROGRAM_ID = exports.getTimeRemaining = exports.isProposalExpired = exports.fetchProposalAccount = exports.fetchModeratorAccount = exports.fetchDAOAccount = exports.parseProposalState = exports.deriveProposalPDA = exports.deriveModeratorPDA = exports.deriveDAOPDA = exports.ProposalState = exports.FutarchyClient = exports.PRICE_SCALE = exports.MAX_FEE = exports.FEE_VAULT_SEED = exports.RESERVE_SEED = exports.POOL_SEED = exports.FEE_AUTHORITY = exports.AMM_PROGRAM_ID = exports.createSwapQuote = exports.calculatePriceImpact = exports.computeSwapInput = exports.computeSwapOutput = exports.calculateSpotPrice = exports.fetchPoolAccount = exports.parsePoolState = exports.deriveFeeVaultPDA = exports.deriveReservePDA = exports.derivePoolPDA = exports.PoolState = exports.AMMClient = exports.VAULT_MIN_OPTIONS = exports.VAULT_MAX_OPTIONS = exports.CONDITIONAL_MINT_SEED = exports.VAULT_SEED = exports.VAULT_PROGRAM_ID = exports.fetchVaultAccount = exports.parseVaultState = exports.deriveConditionalMint = exports.deriveVaultPDA = exports.VaultState = exports.VaultType = exports.VaultClient = void 0;
38
- exports.svault = exports.futarchy = exports.amm = exports.vault = exports.SECONDS_PER_DAY = exports.REWARD_VAULT_SEED = exports.STAKE_VAULT_SEED = exports.USER_STAKE_SEED = exports.STAKING_CONFIG_SEED = exports.SVAULT_PROGRAM_ID = exports.getTimeUntilWithdraw = exports.isWithdrawAvailable = exports.computeWithdrawAvailableAt = exports.fetchDelegateAccount = exports.fetchUserStakeAccount = exports.fetchStakingConfigAccount = exports.deriveRewardVaultPDA = exports.deriveStakeVaultPDA = exports.deriveDelegatePDA = exports.deriveUserStakePDA = void 0;
39
- /* Vault Sub-SDK */
40
- var vault_1 = require("./vault");
41
- // Client
42
- Object.defineProperty(exports, "VaultClient", { enumerable: true, get: function () { return vault_1.VaultClient; } });
43
- // Types
44
- Object.defineProperty(exports, "VaultType", { enumerable: true, get: function () { return vault_1.VaultType; } });
45
- Object.defineProperty(exports, "VaultState", { enumerable: true, get: function () { return vault_1.VaultState; } });
46
- // Utils
47
- Object.defineProperty(exports, "deriveVaultPDA", { enumerable: true, get: function () { return vault_1.deriveVaultPDA; } });
48
- Object.defineProperty(exports, "deriveConditionalMint", { enumerable: true, get: function () { return vault_1.deriveConditionalMint; } });
49
- Object.defineProperty(exports, "parseVaultState", { enumerable: true, get: function () { return vault_1.parseVaultState; } });
50
- Object.defineProperty(exports, "fetchVaultAccount", { enumerable: true, get: function () { return vault_1.fetchVaultAccount; } });
51
- // Constants
52
- Object.defineProperty(exports, "VAULT_PROGRAM_ID", { enumerable: true, get: function () { return vault_1.PROGRAM_ID; } });
53
- Object.defineProperty(exports, "VAULT_SEED", { enumerable: true, get: function () { return vault_1.VAULT_SEED; } });
54
- Object.defineProperty(exports, "CONDITIONAL_MINT_SEED", { enumerable: true, get: function () { return vault_1.CONDITIONAL_MINT_SEED; } });
55
- Object.defineProperty(exports, "VAULT_MAX_OPTIONS", { enumerable: true, get: function () { return vault_1.MAX_OPTIONS; } });
56
- Object.defineProperty(exports, "VAULT_MIN_OPTIONS", { enumerable: true, get: function () { return vault_1.MIN_OPTIONS; } });
57
- /* AMM Sub-SDK */
58
- var amm_1 = require("./amm");
59
- // Client
60
- Object.defineProperty(exports, "AMMClient", { enumerable: true, get: function () { return amm_1.AMMClient; } });
61
- // Types
62
- Object.defineProperty(exports, "PoolState", { enumerable: true, get: function () { return amm_1.PoolState; } });
63
- // Utils
64
- Object.defineProperty(exports, "derivePoolPDA", { enumerable: true, get: function () { return amm_1.derivePoolPDA; } });
65
- Object.defineProperty(exports, "deriveReservePDA", { enumerable: true, get: function () { return amm_1.deriveReservePDA; } });
66
- Object.defineProperty(exports, "deriveFeeVaultPDA", { enumerable: true, get: function () { return amm_1.deriveFeeVaultPDA; } });
67
- Object.defineProperty(exports, "parsePoolState", { enumerable: true, get: function () { return amm_1.parsePoolState; } });
68
- Object.defineProperty(exports, "fetchPoolAccount", { enumerable: true, get: function () { return amm_1.fetchPoolAccount; } });
69
- Object.defineProperty(exports, "calculateSpotPrice", { enumerable: true, get: function () { return amm_1.calculateSpotPrice; } });
70
- Object.defineProperty(exports, "computeSwapOutput", { enumerable: true, get: function () { return amm_1.computeSwapOutput; } });
71
- Object.defineProperty(exports, "computeSwapInput", { enumerable: true, get: function () { return amm_1.computeSwapInput; } });
72
- Object.defineProperty(exports, "calculatePriceImpact", { enumerable: true, get: function () { return amm_1.calculatePriceImpact; } });
73
- Object.defineProperty(exports, "createSwapQuote", { enumerable: true, get: function () { return amm_1.createSwapQuote; } });
74
- // Constants
75
- Object.defineProperty(exports, "AMM_PROGRAM_ID", { enumerable: true, get: function () { return amm_1.PROGRAM_ID; } });
76
- Object.defineProperty(exports, "FEE_AUTHORITY", { enumerable: true, get: function () { return amm_1.FEE_AUTHORITY; } });
77
- Object.defineProperty(exports, "POOL_SEED", { enumerable: true, get: function () { return amm_1.POOL_SEED; } });
78
- Object.defineProperty(exports, "RESERVE_SEED", { enumerable: true, get: function () { return amm_1.RESERVE_SEED; } });
79
- Object.defineProperty(exports, "FEE_VAULT_SEED", { enumerable: true, get: function () { return amm_1.FEE_VAULT_SEED; } });
80
- Object.defineProperty(exports, "MAX_FEE", { enumerable: true, get: function () { return amm_1.MAX_FEE; } });
81
- Object.defineProperty(exports, "PRICE_SCALE", { enumerable: true, get: function () { return amm_1.PRICE_SCALE; } });
82
- /* Futarchy Sub-SDK */
83
- var futarchy_1 = require("./futarchy");
84
- // Client
85
- Object.defineProperty(exports, "FutarchyClient", { enumerable: true, get: function () { return futarchy_1.FutarchyClient; } });
86
- // Types
87
- Object.defineProperty(exports, "ProposalState", { enumerable: true, get: function () { return futarchy_1.ProposalState; } });
88
- // Utils
89
- Object.defineProperty(exports, "deriveDAOPDA", { enumerable: true, get: function () { return futarchy_1.deriveDAOPDA; } });
90
- Object.defineProperty(exports, "deriveModeratorPDA", { enumerable: true, get: function () { return futarchy_1.deriveModeratorPDA; } });
91
- Object.defineProperty(exports, "deriveProposalPDA", { enumerable: true, get: function () { return futarchy_1.deriveProposalPDA; } });
92
- Object.defineProperty(exports, "parseProposalState", { enumerable: true, get: function () { return futarchy_1.parseProposalState; } });
93
- Object.defineProperty(exports, "fetchDAOAccount", { enumerable: true, get: function () { return futarchy_1.fetchDAOAccount; } });
94
- Object.defineProperty(exports, "fetchModeratorAccount", { enumerable: true, get: function () { return futarchy_1.fetchModeratorAccount; } });
95
- Object.defineProperty(exports, "fetchProposalAccount", { enumerable: true, get: function () { return futarchy_1.fetchProposalAccount; } });
96
- Object.defineProperty(exports, "isProposalExpired", { enumerable: true, get: function () { return futarchy_1.isProposalExpired; } });
97
- Object.defineProperty(exports, "getTimeRemaining", { enumerable: true, get: function () { return futarchy_1.getTimeRemaining; } });
98
- // Constants
99
- Object.defineProperty(exports, "FUTARCHY_PROGRAM_ID", { enumerable: true, get: function () { return futarchy_1.PROGRAM_ID; } });
100
- Object.defineProperty(exports, "DAO_SEED", { enumerable: true, get: function () { return futarchy_1.DAO_SEED; } });
101
- Object.defineProperty(exports, "MODERATOR_SEED", { enumerable: true, get: function () { return futarchy_1.MODERATOR_SEED; } });
102
- Object.defineProperty(exports, "PROPOSAL_SEED", { enumerable: true, get: function () { return futarchy_1.PROPOSAL_SEED; } });
103
- Object.defineProperty(exports, "FUTARCHY_MAX_OPTIONS", { enumerable: true, get: function () { return futarchy_1.MAX_OPTIONS; } });
104
- Object.defineProperty(exports, "FUTARCHY_MIN_OPTIONS", { enumerable: true, get: function () { return futarchy_1.MIN_OPTIONS; } });
105
- /* SVault Sub-SDK */
106
- var svault_1 = require("./svault");
107
- // Client
108
- Object.defineProperty(exports, "SVaultClient", { enumerable: true, get: function () { return svault_1.SVaultClient; } });
109
- // Utils
110
- Object.defineProperty(exports, "deriveStakingConfigPDA", { enumerable: true, get: function () { return svault_1.deriveStakingConfigPDA; } });
111
- Object.defineProperty(exports, "deriveUserStakePDA", { enumerable: true, get: function () { return svault_1.deriveUserStakePDA; } });
112
- Object.defineProperty(exports, "deriveDelegatePDA", { enumerable: true, get: function () { return svault_1.deriveDelegatePDA; } });
113
- Object.defineProperty(exports, "deriveStakeVaultPDA", { enumerable: true, get: function () { return svault_1.deriveStakeVaultPDA; } });
114
- Object.defineProperty(exports, "deriveRewardVaultPDA", { enumerable: true, get: function () { return svault_1.deriveRewardVaultPDA; } });
115
- Object.defineProperty(exports, "fetchStakingConfigAccount", { enumerable: true, get: function () { return svault_1.fetchStakingConfigAccount; } });
116
- Object.defineProperty(exports, "fetchUserStakeAccount", { enumerable: true, get: function () { return svault_1.fetchUserStakeAccount; } });
117
- Object.defineProperty(exports, "fetchDelegateAccount", { enumerable: true, get: function () { return svault_1.fetchDelegateAccount; } });
118
- Object.defineProperty(exports, "computeWithdrawAvailableAt", { enumerable: true, get: function () { return svault_1.computeWithdrawAvailableAt; } });
119
- Object.defineProperty(exports, "isWithdrawAvailable", { enumerable: true, get: function () { return svault_1.isWithdrawAvailable; } });
120
- Object.defineProperty(exports, "getTimeUntilWithdraw", { enumerable: true, get: function () { return svault_1.getTimeUntilWithdraw; } });
121
- // Constants
122
- Object.defineProperty(exports, "SVAULT_PROGRAM_ID", { enumerable: true, get: function () { return svault_1.PROGRAM_ID; } });
123
- Object.defineProperty(exports, "STAKING_CONFIG_SEED", { enumerable: true, get: function () { return svault_1.STAKING_CONFIG_SEED; } });
124
- Object.defineProperty(exports, "USER_STAKE_SEED", { enumerable: true, get: function () { return svault_1.USER_STAKE_SEED; } });
125
- Object.defineProperty(exports, "STAKE_VAULT_SEED", { enumerable: true, get: function () { return svault_1.STAKE_VAULT_SEED; } });
126
- Object.defineProperty(exports, "REWARD_VAULT_SEED", { enumerable: true, get: function () { return svault_1.REWARD_VAULT_SEED; } });
127
- Object.defineProperty(exports, "SECONDS_PER_DAY", { enumerable: true, get: function () { return svault_1.SECONDS_PER_DAY; } });
128
- /* Sub-SDK Namespaces */
129
- const vault = __importStar(require("./vault"));
130
- exports.vault = vault;
131
- const amm = __importStar(require("./amm"));
132
- exports.amm = amm;
133
- const futarchy = __importStar(require("./futarchy"));
134
- exports.futarchy = futarchy;
135
- const svault = __importStar(require("./svault"));
136
- exports.svault = svault;
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGtCQUFrQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlsQixtQkFBbUI7QUFFbkIsaUNBMkJpQjtBQTFCZixTQUFTO0FBQ1Qsb0dBQUEsV0FBVyxPQUFBO0FBQ1gsUUFBUTtBQUNSLGtHQUFBLFNBQVMsT0FBQTtBQUNULG1HQUFBLFVBQVUsT0FBQTtBQVdWLFFBQVE7QUFDUix1R0FBQSxjQUFjLE9BQUE7QUFDZCw4R0FBQSxxQkFBcUIsT0FBQTtBQUNyQix3R0FBQSxlQUFlLE9BQUE7QUFDZiwwR0FBQSxpQkFBaUIsT0FBQTtBQUNqQixZQUFZO0FBQ1oseUdBQUEsVUFBVSxPQUFvQjtBQUM5QixtR0FBQSxVQUFVLE9BQUE7QUFDViw4R0FBQSxxQkFBcUIsT0FBQTtBQUNyQiwwR0FBQSxXQUFXLE9BQXFCO0FBQ2hDLDBHQUFBLFdBQVcsT0FBcUI7QUFHbEMsaUJBQWlCO0FBRWpCLDZCQWtDZTtBQWpDYixTQUFTO0FBQ1QsZ0dBQUEsU0FBUyxPQUFBO0FBQ1QsUUFBUTtBQUNSLGdHQUFBLFNBQVMsT0FBQTtBQVdULFFBQVE7QUFDUixvR0FBQSxhQUFhLE9BQUE7QUFDYix1R0FBQSxnQkFBZ0IsT0FBQTtBQUNoQix3R0FBQSxpQkFBaUIsT0FBQTtBQUNqQixxR0FBQSxjQUFjLE9BQUE7QUFDZCx1R0FBQSxnQkFBZ0IsT0FBQTtBQUNoQix5R0FBQSxrQkFBa0IsT0FBQTtBQUNsQix3R0FBQSxpQkFBaUIsT0FBQTtBQUNqQix1R0FBQSxnQkFBZ0IsT0FBQTtBQUNoQiwyR0FBQSxvQkFBb0IsT0FBQTtBQUNwQixzR0FBQSxlQUFlLE9BQUE7QUFDZixZQUFZO0FBQ1oscUdBQUEsVUFBVSxPQUFrQjtBQUM1QixvR0FBQSxhQUFhLE9BQUE7QUFDYixnR0FBQSxTQUFTLE9BQUE7QUFDVCxtR0FBQSxZQUFZLE9BQUE7QUFDWixxR0FBQSxjQUFjLE9BQUE7QUFDZCw4RkFBQSxPQUFPLE9BQUE7QUFDUCxrR0FBQSxXQUFXLE9BQUE7QUFHYixzQkFBc0I7QUFFdEIsdUNBcUNvQjtBQXBDbEIsU0FBUztBQUNULDBHQUFBLGNBQWMsT0FBQTtBQUNkLFFBQVE7QUFDUix5R0FBQSxhQUFhLE9BQUE7QUFnQmIsUUFBUTtBQUNSLHdHQUFBLFlBQVksT0FBQTtBQUNaLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDZHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDJHQUFBLGVBQWUsT0FBQTtBQUNmLGlIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLGdIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDZHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDRHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLFlBQVk7QUFDWiwrR0FBQSxVQUFVLE9BQXVCO0FBQ2pDLG9HQUFBLFFBQVEsT0FBQTtBQUNSLDBHQUFBLGNBQWMsT0FBQTtBQUNkLHlHQUFBLGFBQWEsT0FBQTtBQUNiLGdIQUFBLFdBQVcsT0FBd0I7QUFDbkMsZ0hBQUEsV0FBVyxPQUF3QjtBQUdyQyxvQkFBb0I7QUFFcEIsbUNBcUNrQjtBQXBDaEIsU0FBUztBQUNULHNHQUFBLFlBQVksT0FBQTtBQWdCWixRQUFRO0FBQ1IsZ0hBQUEsc0JBQXNCLE9BQUE7QUFDdEIsNEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsMkdBQUEsaUJBQWlCLE9BQUE7QUFDakIsNkdBQUEsbUJBQW1CLE9BQUE7QUFDbkIsOEdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsbUhBQUEseUJBQXlCLE9BQUE7QUFDekIsK0dBQUEscUJBQXFCLE9BQUE7QUFDckIsOEdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsb0hBQUEsMEJBQTBCLE9BQUE7QUFDMUIsNkdBQUEsbUJBQW1CLE9BQUE7QUFDbkIsOEdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsWUFBWTtBQUNaLDJHQUFBLFVBQVUsT0FBcUI7QUFDL0IsNkdBQUEsbUJBQW1CLE9BQUE7QUFDbkIseUdBQUEsZUFBZSxPQUFBO0FBQ2YsMEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsMkdBQUEsaUJBQWlCLE9BQUE7QUFDakIseUdBQUEsZUFBZSxPQUFBO0FBR2pCLHdCQUF3QjtBQUV4QiwrQ0FBaUM7QUFLeEIsc0JBQUs7QUFKZCwyQ0FBNkI7QUFJYixrQkFBRztBQUhuQixxREFBdUM7QUFHbEIsNEJBQVE7QUFGN0IsaURBQW1DO0FBRUosd0JBQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBTaGFyZWQgVHlwZXMgKi9cblxuZXhwb3J0IHsgVHhPcHRpb25zIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuLyogVmF1bHQgU3ViLVNESyAqL1xuXG5leHBvcnQge1xuICAvLyBDbGllbnRcbiAgVmF1bHRDbGllbnQsXG4gIC8vIFR5cGVzXG4gIFZhdWx0VHlwZSxcbiAgVmF1bHRTdGF0ZSxcbiAgVmF1bHRBY2NvdW50LFxuICBWYXVsdEluaXRpYWxpemVkRXZlbnQsXG4gIFZhdWx0QWN0aXZhdGVkRXZlbnQsXG4gIFZhdWx0RGVwb3NpdEV2ZW50LFxuICBWYXVsdFdpdGhkcmF3YWxFdmVudCxcbiAgVmF1bHRGaW5hbGl6ZWRFdmVudCxcbiAgT3B0aW9uQWRkZWRFdmVudCBhcyBWYXVsdE9wdGlvbkFkZGVkRXZlbnQsXG4gIFdpbm5pbmdzUmVkZWVtZWRFdmVudCxcbiAgVmF1bHRFdmVudCxcbiAgVmF1bHRBY3Rpb25PcHRpb25zLFxuICAvLyBVdGlsc1xuICBkZXJpdmVWYXVsdFBEQSxcbiAgZGVyaXZlQ29uZGl0aW9uYWxNaW50LFxuICBwYXJzZVZhdWx0U3RhdGUsXG4gIGZldGNoVmF1bHRBY2NvdW50LFxuICAvLyBDb25zdGFudHNcbiAgUFJPR1JBTV9JRCBhcyBWQVVMVF9QUk9HUkFNX0lELFxuICBWQVVMVF9TRUVELFxuICBDT05ESVRJT05BTF9NSU5UX1NFRUQsXG4gIE1BWF9PUFRJT05TIGFzIFZBVUxUX01BWF9PUFRJT05TLFxuICBNSU5fT1BUSU9OUyBhcyBWQVVMVF9NSU5fT1BUSU9OUyxcbn0gZnJvbSBcIi4vdmF1bHRcIjtcblxuLyogQU1NIFN1Yi1TREsgKi9cblxuZXhwb3J0IHtcbiAgLy8gQ2xpZW50XG4gIEFNTUNsaWVudCxcbiAgLy8gVHlwZXNcbiAgUG9vbFN0YXRlLFxuICBUd2FwT3JhY2xlLFxuICBQb29sQnVtcHMsXG4gIFBvb2xBY2NvdW50LFxuICBTd2FwUXVvdGUsXG4gIFBvb2xDcmVhdGVkRXZlbnQsXG4gIExpcXVpZGl0eUFkZGVkRXZlbnQsXG4gIExpcXVpZGl0eVJlbW92ZWRFdmVudCxcbiAgQ29uZFN3YXBFdmVudCxcbiAgVFdBUFVwZGF0ZUV2ZW50LFxuICBBTU1FdmVudCxcbiAgLy8gVXRpbHNcbiAgZGVyaXZlUG9vbFBEQSxcbiAgZGVyaXZlUmVzZXJ2ZVBEQSxcbiAgZGVyaXZlRmVlVmF1bHRQREEsXG4gIHBhcnNlUG9vbFN0YXRlLFxuICBmZXRjaFBvb2xBY2NvdW50LFxuICBjYWxjdWxhdGVTcG90UHJpY2UsXG4gIGNvbXB1dGVTd2FwT3V0cHV0LFxuICBjb21wdXRlU3dhcElucHV0LFxuICBjYWxjdWxhdGVQcmljZUltcGFjdCxcbiAgY3JlYXRlU3dhcFF1b3RlLFxuICAvLyBDb25zdGFudHNcbiAgUFJPR1JBTV9JRCBhcyBBTU1fUFJPR1JBTV9JRCxcbiAgRkVFX0FVVEhPUklUWSxcbiAgUE9PTF9TRUVELFxuICBSRVNFUlZFX1NFRUQsXG4gIEZFRV9WQVVMVF9TRUVELFxuICBNQVhfRkVFLFxuICBQUklDRV9TQ0FMRSxcbn0gZnJvbSBcIi4vYW1tXCI7XG5cbi8qIEZ1dGFyY2h5IFN1Yi1TREsgKi9cblxuZXhwb3J0IHtcbiAgLy8gQ2xpZW50XG4gIEZ1dGFyY2h5Q2xpZW50LFxuICAvLyBUeXBlc1xuICBQcm9wb3NhbFN0YXRlLFxuICBEQU9BY2NvdW50LFxuICBNb2RlcmF0b3JBY2NvdW50LFxuICBQcm9wb3NhbEFjY291bnQsXG4gIFByb3Bvc2FsUGFyYW1zLFxuICBEQU9UeXBlLFxuICBQb29sVHlwZSxcbiAgREFPSW5pdGlhbGl6ZWRFdmVudCxcbiAgREFPVXBncmFkZWRFdmVudCxcbiAgTW9kZXJhdG9ySW5pdGlhbGl6ZWRFdmVudCxcbiAgUHJvcG9zYWxJbml0aWFsaXplZEV2ZW50LFxuICBQcm9wb3NhbExhdW5jaGVkRXZlbnQsXG4gIE9wdGlvbkFkZGVkRXZlbnQgYXMgRnV0YXJjaHlPcHRpb25BZGRlZEV2ZW50LFxuICBQcm9wb3NhbEZpbmFsaXplZEV2ZW50LFxuICBMaXF1aWRpdHlSZWRlZW1lZEV2ZW50LFxuICBGdXRhcmNoeUV2ZW50LFxuICAvLyBVdGlsc1xuICBkZXJpdmVEQU9QREEsXG4gIGRlcml2ZU1vZGVyYXRvclBEQSxcbiAgZGVyaXZlUHJvcG9zYWxQREEsXG4gIHBhcnNlUHJvcG9zYWxTdGF0ZSxcbiAgZmV0Y2hEQU9BY2NvdW50LFxuICBmZXRjaE1vZGVyYXRvckFjY291bnQsXG4gIGZldGNoUHJvcG9zYWxBY2NvdW50LFxuICBpc1Byb3Bvc2FsRXhwaXJlZCxcbiAgZ2V0VGltZVJlbWFpbmluZyxcbiAgLy8gQ29uc3RhbnRzXG4gIFBST0dSQU1fSUQgYXMgRlVUQVJDSFlfUFJPR1JBTV9JRCxcbiAgREFPX1NFRUQsXG4gIE1PREVSQVRPUl9TRUVELFxuICBQUk9QT1NBTF9TRUVELFxuICBNQVhfT1BUSU9OUyBhcyBGVVRBUkNIWV9NQVhfT1BUSU9OUyxcbiAgTUlOX09QVElPTlMgYXMgRlVUQVJDSFlfTUlOX09QVElPTlMsXG59IGZyb20gXCIuL2Z1dGFyY2h5XCI7XG5cbi8qIFNWYXVsdCBTdWItU0RLICovXG5cbmV4cG9ydCB7XG4gIC8vIENsaWVudFxuICBTVmF1bHRDbGllbnQsXG4gIC8vIFR5cGVzXG4gIFN0YWtpbmdDb25maWdBY2NvdW50LFxuICBVc2VyU3Rha2VBY2NvdW50LFxuICBEZWxlZ2F0ZUFjY291bnQsXG4gIFN0YWtpbmdWYXVsdEluaXRpYWxpemVkRXZlbnQsXG4gIFN0YWtlZEV2ZW50LFxuICBVbnN0YWtlSW5pdGlhdGVkRXZlbnQsXG4gIFdpdGhkcmF3bkV2ZW50LFxuICBSZXdhcmRzUG9zdGVkRXZlbnQsXG4gIFJld2FyZHNDbGFpbWVkRXZlbnQsXG4gIFNsYXNoZWRFdmVudCxcbiAgRGVsZWdhdGVBZGRlZEV2ZW50LFxuICBEZWxlZ2F0ZVJlbW92ZWRFdmVudCxcbiAgU1ZhdWx0RXZlbnQsXG4gIFNWYXVsdFR4T3B0aW9ucyxcbiAgLy8gVXRpbHNcbiAgZGVyaXZlU3Rha2luZ0NvbmZpZ1BEQSxcbiAgZGVyaXZlVXNlclN0YWtlUERBLFxuICBkZXJpdmVEZWxlZ2F0ZVBEQSxcbiAgZGVyaXZlU3Rha2VWYXVsdFBEQSxcbiAgZGVyaXZlUmV3YXJkVmF1bHRQREEsXG4gIGZldGNoU3Rha2luZ0NvbmZpZ0FjY291bnQsXG4gIGZldGNoVXNlclN0YWtlQWNjb3VudCxcbiAgZmV0Y2hEZWxlZ2F0ZUFjY291bnQsXG4gIGNvbXB1dGVXaXRoZHJhd0F2YWlsYWJsZUF0LFxuICBpc1dpdGhkcmF3QXZhaWxhYmxlLFxuICBnZXRUaW1lVW50aWxXaXRoZHJhdyxcbiAgLy8gQ29uc3RhbnRzXG4gIFBST0dSQU1fSUQgYXMgU1ZBVUxUX1BST0dSQU1fSUQsXG4gIFNUQUtJTkdfQ09ORklHX1NFRUQsXG4gIFVTRVJfU1RBS0VfU0VFRCxcbiAgU1RBS0VfVkFVTFRfU0VFRCxcbiAgUkVXQVJEX1ZBVUxUX1NFRUQsXG4gIFNFQ09ORFNfUEVSX0RBWSxcbn0gZnJvbSBcIi4vc3ZhdWx0XCI7XG5cbi8qIFN1Yi1TREsgTmFtZXNwYWNlcyAqL1xuXG5pbXBvcnQgKiBhcyB2YXVsdCBmcm9tIFwiLi92YXVsdFwiO1xuaW1wb3J0ICogYXMgYW1tIGZyb20gXCIuL2FtbVwiO1xuaW1wb3J0ICogYXMgZnV0YXJjaHkgZnJvbSBcIi4vZnV0YXJjaHlcIjtcbmltcG9ydCAqIGFzIHN2YXVsdCBmcm9tIFwiLi9zdmF1bHRcIjtcblxuZXhwb3J0IHsgdmF1bHQsIGFtbSwgZnV0YXJjaHksIHN2YXVsdCB9O1xuIl19
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var n=e(t),o=0;o<n.length;o++)"default"!==n[o]&&__createBinding(r,t,n[o]);return __setModuleDefault(r,t),r}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.deriveStakingConfigPDA=exports.SVaultClient=exports.FUTARCHY_MIN_OPTIONS=exports.FUTARCHY_MAX_OPTIONS=exports.PROPOSAL_SEED=exports.MODERATOR_SEED=exports.DAO_SEED=exports.FUTARCHY_PROGRAM_ID=exports.getTimeRemaining=exports.isProposalExpired=exports.fetchProposalAccount=exports.fetchModeratorAccount=exports.fetchDAOAccount=exports.parseProposalState=exports.deriveProposalPDA=exports.deriveModeratorPDA=exports.deriveDAOPDA=exports.ProposalState=exports.FutarchyClient=exports.PRICE_SCALE=exports.MAX_FEE=exports.FEE_VAULT_SEED=exports.RESERVE_SEED=exports.POOL_SEED=exports.FEE_AUTHORITY=exports.AMM_PROGRAM_ID=exports.createSwapQuote=exports.calculatePriceImpact=exports.computeSwapInput=exports.computeSwapOutput=exports.calculateSpotPrice=exports.fetchPoolAccount=exports.parsePoolState=exports.deriveFeeVaultPDA=exports.deriveReservePDA=exports.derivePoolPDA=exports.PoolState=exports.AMMClient=exports.VAULT_MIN_OPTIONS=exports.VAULT_MAX_OPTIONS=exports.CONDITIONAL_MINT_SEED=exports.VAULT_SEED=exports.VAULT_PROGRAM_ID=exports.fetchVaultAccount=exports.parseVaultState=exports.deriveConditionalMint=exports.deriveVaultPDA=exports.VaultState=exports.VaultType=exports.VaultClient=void 0,exports.svault=exports.futarchy=exports.amm=exports.vault=exports.SECONDS_PER_DAY=exports.REWARD_VAULT_SEED=exports.STAKE_VAULT_SEED=exports.USER_STAKE_SEED=exports.STAKING_CONFIG_SEED=exports.SVAULT_PROGRAM_ID=exports.getTimeUntilWithdraw=exports.isWithdrawAvailable=exports.computeWithdrawAvailableAt=exports.fetchDelegateAccount=exports.fetchUserStakeAccount=exports.fetchStakingConfigAccount=exports.deriveRewardVaultPDA=exports.deriveStakeVaultPDA=exports.deriveDelegatePDA=exports.deriveUserStakePDA=void 0;var vault_1=require("./vault");Object.defineProperty(exports,"VaultClient",{enumerable:!0,get:function(){return vault_1.VaultClient}}),Object.defineProperty(exports,"VaultType",{enumerable:!0,get:function(){return vault_1.VaultType}}),Object.defineProperty(exports,"VaultState",{enumerable:!0,get:function(){return vault_1.VaultState}}),Object.defineProperty(exports,"deriveVaultPDA",{enumerable:!0,get:function(){return vault_1.deriveVaultPDA}}),Object.defineProperty(exports,"deriveConditionalMint",{enumerable:!0,get:function(){return vault_1.deriveConditionalMint}}),Object.defineProperty(exports,"parseVaultState",{enumerable:!0,get:function(){return vault_1.parseVaultState}}),Object.defineProperty(exports,"fetchVaultAccount",{enumerable:!0,get:function(){return vault_1.fetchVaultAccount}}),Object.defineProperty(exports,"VAULT_PROGRAM_ID",{enumerable:!0,get:function(){return vault_1.PROGRAM_ID}}),Object.defineProperty(exports,"VAULT_SEED",{enumerable:!0,get:function(){return vault_1.VAULT_SEED}}),Object.defineProperty(exports,"CONDITIONAL_MINT_SEED",{enumerable:!0,get:function(){return vault_1.CONDITIONAL_MINT_SEED}}),Object.defineProperty(exports,"VAULT_MAX_OPTIONS",{enumerable:!0,get:function(){return vault_1.MAX_OPTIONS}}),Object.defineProperty(exports,"VAULT_MIN_OPTIONS",{enumerable:!0,get:function(){return vault_1.MIN_OPTIONS}});var amm_1=require("./amm");Object.defineProperty(exports,"AMMClient",{enumerable:!0,get:function(){return amm_1.AMMClient}}),Object.defineProperty(exports,"PoolState",{enumerable:!0,get:function(){return amm_1.PoolState}}),Object.defineProperty(exports,"derivePoolPDA",{enumerable:!0,get:function(){return amm_1.derivePoolPDA}}),Object.defineProperty(exports,"deriveReservePDA",{enumerable:!0,get:function(){return amm_1.deriveReservePDA}}),Object.defineProperty(exports,"deriveFeeVaultPDA",{enumerable:!0,get:function(){return amm_1.deriveFeeVaultPDA}}),Object.defineProperty(exports,"parsePoolState",{enumerable:!0,get:function(){return amm_1.parsePoolState}}),Object.defineProperty(exports,"fetchPoolAccount",{enumerable:!0,get:function(){return amm_1.fetchPoolAccount}}),Object.defineProperty(exports,"calculateSpotPrice",{enumerable:!0,get:function(){return amm_1.calculateSpotPrice}}),Object.defineProperty(exports,"computeSwapOutput",{enumerable:!0,get:function(){return amm_1.computeSwapOutput}}),Object.defineProperty(exports,"computeSwapInput",{enumerable:!0,get:function(){return amm_1.computeSwapInput}}),Object.defineProperty(exports,"calculatePriceImpact",{enumerable:!0,get:function(){return amm_1.calculatePriceImpact}}),Object.defineProperty(exports,"createSwapQuote",{enumerable:!0,get:function(){return amm_1.createSwapQuote}}),Object.defineProperty(exports,"AMM_PROGRAM_ID",{enumerable:!0,get:function(){return amm_1.PROGRAM_ID}}),Object.defineProperty(exports,"FEE_AUTHORITY",{enumerable:!0,get:function(){return amm_1.FEE_AUTHORITY}}),Object.defineProperty(exports,"POOL_SEED",{enumerable:!0,get:function(){return amm_1.POOL_SEED}}),Object.defineProperty(exports,"RESERVE_SEED",{enumerable:!0,get:function(){return amm_1.RESERVE_SEED}}),Object.defineProperty(exports,"FEE_VAULT_SEED",{enumerable:!0,get:function(){return amm_1.FEE_VAULT_SEED}}),Object.defineProperty(exports,"MAX_FEE",{enumerable:!0,get:function(){return amm_1.MAX_FEE}}),Object.defineProperty(exports,"PRICE_SCALE",{enumerable:!0,get:function(){return amm_1.PRICE_SCALE}});var futarchy_1=require("./futarchy");Object.defineProperty(exports,"FutarchyClient",{enumerable:!0,get:function(){return futarchy_1.FutarchyClient}}),Object.defineProperty(exports,"ProposalState",{enumerable:!0,get:function(){return futarchy_1.ProposalState}}),Object.defineProperty(exports,"deriveDAOPDA",{enumerable:!0,get:function(){return futarchy_1.deriveDAOPDA}}),Object.defineProperty(exports,"deriveModeratorPDA",{enumerable:!0,get:function(){return futarchy_1.deriveModeratorPDA}}),Object.defineProperty(exports,"deriveProposalPDA",{enumerable:!0,get:function(){return futarchy_1.deriveProposalPDA}}),Object.defineProperty(exports,"parseProposalState",{enumerable:!0,get:function(){return futarchy_1.parseProposalState}}),Object.defineProperty(exports,"fetchDAOAccount",{enumerable:!0,get:function(){return futarchy_1.fetchDAOAccount}}),Object.defineProperty(exports,"fetchModeratorAccount",{enumerable:!0,get:function(){return futarchy_1.fetchModeratorAccount}}),Object.defineProperty(exports,"fetchProposalAccount",{enumerable:!0,get:function(){return futarchy_1.fetchProposalAccount}}),Object.defineProperty(exports,"isProposalExpired",{enumerable:!0,get:function(){return futarchy_1.isProposalExpired}}),Object.defineProperty(exports,"getTimeRemaining",{enumerable:!0,get:function(){return futarchy_1.getTimeRemaining}}),Object.defineProperty(exports,"FUTARCHY_PROGRAM_ID",{enumerable:!0,get:function(){return futarchy_1.PROGRAM_ID}}),Object.defineProperty(exports,"DAO_SEED",{enumerable:!0,get:function(){return futarchy_1.DAO_SEED}}),Object.defineProperty(exports,"MODERATOR_SEED",{enumerable:!0,get:function(){return futarchy_1.MODERATOR_SEED}}),Object.defineProperty(exports,"PROPOSAL_SEED",{enumerable:!0,get:function(){return futarchy_1.PROPOSAL_SEED}}),Object.defineProperty(exports,"FUTARCHY_MAX_OPTIONS",{enumerable:!0,get:function(){return futarchy_1.MAX_OPTIONS}}),Object.defineProperty(exports,"FUTARCHY_MIN_OPTIONS",{enumerable:!0,get:function(){return futarchy_1.MIN_OPTIONS}});var svault_1=require("./svault");Object.defineProperty(exports,"SVaultClient",{enumerable:!0,get:function(){return svault_1.SVaultClient}}),Object.defineProperty(exports,"deriveStakingConfigPDA",{enumerable:!0,get:function(){return svault_1.deriveStakingConfigPDA}}),Object.defineProperty(exports,"deriveUserStakePDA",{enumerable:!0,get:function(){return svault_1.deriveUserStakePDA}}),Object.defineProperty(exports,"deriveDelegatePDA",{enumerable:!0,get:function(){return svault_1.deriveDelegatePDA}}),Object.defineProperty(exports,"deriveStakeVaultPDA",{enumerable:!0,get:function(){return svault_1.deriveStakeVaultPDA}}),Object.defineProperty(exports,"deriveRewardVaultPDA",{enumerable:!0,get:function(){return svault_1.deriveRewardVaultPDA}}),Object.defineProperty(exports,"fetchStakingConfigAccount",{enumerable:!0,get:function(){return svault_1.fetchStakingConfigAccount}}),Object.defineProperty(exports,"fetchUserStakeAccount",{enumerable:!0,get:function(){return svault_1.fetchUserStakeAccount}}),Object.defineProperty(exports,"fetchDelegateAccount",{enumerable:!0,get:function(){return svault_1.fetchDelegateAccount}}),Object.defineProperty(exports,"computeWithdrawAvailableAt",{enumerable:!0,get:function(){return svault_1.computeWithdrawAvailableAt}}),Object.defineProperty(exports,"isWithdrawAvailable",{enumerable:!0,get:function(){return svault_1.isWithdrawAvailable}}),Object.defineProperty(exports,"getTimeUntilWithdraw",{enumerable:!0,get:function(){return svault_1.getTimeUntilWithdraw}}),Object.defineProperty(exports,"SVAULT_PROGRAM_ID",{enumerable:!0,get:function(){return svault_1.PROGRAM_ID}}),Object.defineProperty(exports,"STAKING_CONFIG_SEED",{enumerable:!0,get:function(){return svault_1.STAKING_CONFIG_SEED}}),Object.defineProperty(exports,"USER_STAKE_SEED",{enumerable:!0,get:function(){return svault_1.USER_STAKE_SEED}}),Object.defineProperty(exports,"STAKE_VAULT_SEED",{enumerable:!0,get:function(){return svault_1.STAKE_VAULT_SEED}}),Object.defineProperty(exports,"REWARD_VAULT_SEED",{enumerable:!0,get:function(){return svault_1.REWARD_VAULT_SEED}}),Object.defineProperty(exports,"SECONDS_PER_DAY",{enumerable:!0,get:function(){return svault_1.SECONDS_PER_DAY}});const vault=__importStar(require("./vault"));exports.vault=vault;const amm=__importStar(require("./amm"));exports.amm=amm;const futarchy=__importStar(require("./futarchy"));exports.futarchy=futarchy;const svault=__importStar(require("./svault"));exports.svault=svault;
@@ -1,190 +1 @@
1
- "use strict";
2
- /*
3
- * High-level client for the SVault program.
4
- * Provides ergonomic methods for staking operations with automatic PDA derivation
5
- * and compute budget management.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.SVaultClient = void 0;
9
- const anchor_1 = require("@coral-xyz/anchor");
10
- const web3_js_1 = require("@solana/web3.js");
11
- const constants_1 = require("./constants");
12
- const utils_1 = require("./utils");
13
- const instructions_1 = require("./instructions");
14
- const idls_1 = require("../generated/idls");
15
- const DEFAULT_COMPUTE_UNITS = 200000;
16
- class SVaultClient {
17
- constructor(provider, programId, computeUnits) {
18
- this.programId = programId ?? constants_1.PROGRAM_ID;
19
- this.computeUnits = computeUnits ?? DEFAULT_COMPUTE_UNITS;
20
- this.program = new anchor_1.Program(idls_1.SvaultIDL, provider);
21
- }
22
- /* PDA Helpers */
23
- deriveStakingConfigPDA(tokenMint, nonce) {
24
- return (0, utils_1.deriveStakingConfigPDA)(tokenMint, nonce, this.programId);
25
- }
26
- deriveUserStakePDA(stakingConfig, user) {
27
- return (0, utils_1.deriveUserStakePDA)(stakingConfig, user, this.programId);
28
- }
29
- deriveDelegatePDA(stakingConfig, delegate) {
30
- return (0, utils_1.deriveDelegatePDA)(stakingConfig, delegate, this.programId);
31
- }
32
- deriveStakeVaultPDA(stakingConfig) {
33
- return (0, utils_1.deriveStakeVaultPDA)(stakingConfig, this.programId);
34
- }
35
- deriveRewardVaultPDA(stakingConfig) {
36
- return (0, utils_1.deriveRewardVaultPDA)(stakingConfig, this.programId);
37
- }
38
- /* State Fetching */
39
- async fetchStakingConfig(pda) {
40
- return (0, utils_1.fetchStakingConfigAccount)(this.program, pda);
41
- }
42
- async fetchUserStake(pda) {
43
- return (0, utils_1.fetchUserStakeAccount)(this.program, pda);
44
- }
45
- async fetchDelegate(pda) {
46
- return (0, utils_1.fetchDelegateAccount)(this.program, pda);
47
- }
48
- /**
49
- * Convenience method: Derive staking config PDA from mint + nonce, then fetch user stake.
50
- */
51
- async fetchUserStakeByMint(tokenMint, nonce, user) {
52
- const [configPda] = this.deriveStakingConfigPDA(tokenMint, nonce);
53
- const [userStakePda] = this.deriveUserStakePDA(configPda, user);
54
- return this.fetchUserStake(userStakePda);
55
- }
56
- /**
57
- * Convenience method: Derive staking config PDA from mint + nonce, then fetch config.
58
- */
59
- async fetchStakingConfigByMint(tokenMint, nonce) {
60
- const [configPda] = this.deriveStakingConfigPDA(tokenMint, nonce);
61
- return this.fetchStakingConfig(configPda);
62
- }
63
- /* Instruction Builders */
64
- initializeStakingVault(admin, tokenMint, unstakingPeriod, volumeWindow, nonce, options) {
65
- const { includeCuBudget = true, computeUnits } = options ?? {};
66
- let builder = (0, instructions_1.initializeStakingVault)(this.program, admin, tokenMint, unstakingPeriod, volumeWindow, nonce);
67
- if (includeCuBudget) {
68
- builder = builder.preInstructions([
69
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
70
- units: computeUnits ?? this.computeUnits,
71
- }),
72
- ]);
73
- }
74
- const [configPda] = this.deriveStakingConfigPDA(tokenMint, nonce);
75
- return { builder, configPda };
76
- }
77
- stake(user, tokenMint, nonce, amount, options) {
78
- const { includeCuBudget = true, computeUnits } = options ?? {};
79
- let builder = (0, instructions_1.stake)(this.program, user, tokenMint, nonce, amount);
80
- if (includeCuBudget) {
81
- builder = builder.preInstructions([
82
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
83
- units: computeUnits ?? this.computeUnits,
84
- }),
85
- ]);
86
- }
87
- return builder;
88
- }
89
- initiateUnstake(user, tokenMint, nonce, amount, options) {
90
- const { includeCuBudget = true, computeUnits } = options ?? {};
91
- let builder = (0, instructions_1.initiateUnstake)(this.program, user, tokenMint, nonce, amount);
92
- if (includeCuBudget) {
93
- builder = builder.preInstructions([
94
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
95
- units: computeUnits ?? this.computeUnits,
96
- }),
97
- ]);
98
- }
99
- return builder;
100
- }
101
- withdraw(user, tokenMint, nonce, options) {
102
- const { includeCuBudget = true, computeUnits } = options ?? {};
103
- let builder = (0, instructions_1.withdraw)(this.program, user, tokenMint, nonce);
104
- if (includeCuBudget) {
105
- builder = builder.preInstructions([
106
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
107
- units: computeUnits ?? this.computeUnits,
108
- }),
109
- ]);
110
- }
111
- return builder;
112
- }
113
- postRewards(admin, tokenMint, nonce, merkleRoot, totalAmount, options) {
114
- const { includeCuBudget = true, computeUnits } = options ?? {};
115
- let builder = (0, instructions_1.postRewards)(this.program, admin, tokenMint, nonce, merkleRoot, totalAmount);
116
- if (includeCuBudget) {
117
- builder = builder.preInstructions([
118
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
119
- units: computeUnits ?? this.computeUnits,
120
- }),
121
- ]);
122
- }
123
- return builder;
124
- }
125
- claimRewards(user, tokenMint, nonce, cumulativeAmount, proof, options) {
126
- const { includeCuBudget = true, computeUnits } = options ?? {};
127
- let builder = (0, instructions_1.claimRewards)(this.program, user, tokenMint, nonce, cumulativeAmount, proof);
128
- if (includeCuBudget) {
129
- builder = builder.preInstructions([
130
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
131
- units: computeUnits ?? this.computeUnits,
132
- }),
133
- ]);
134
- }
135
- return builder;
136
- }
137
- setConfig(admin, tokenMint, nonce, params, options) {
138
- const { includeCuBudget = true, computeUnits } = options ?? {};
139
- let builder = (0, instructions_1.setConfig)(this.program, admin, tokenMint, nonce, params.unstakingPeriod ?? null, params.volumeWindow ?? null);
140
- if (includeCuBudget) {
141
- builder = builder.preInstructions([
142
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
143
- units: computeUnits ?? this.computeUnits,
144
- }),
145
- ]);
146
- }
147
- return builder;
148
- }
149
- slash(admin, tokenMint, nonce, userToSlash, basisPoints, options) {
150
- const { includeCuBudget = true, computeUnits } = options ?? {};
151
- // Derive user stake PDA from user pubkey
152
- const [configPda] = this.deriveStakingConfigPDA(tokenMint, nonce);
153
- const [userStakePda] = this.deriveUserStakePDA(configPda, userToSlash);
154
- let builder = (0, instructions_1.slash)(this.program, admin, tokenMint, nonce, userStakePda, basisPoints);
155
- if (includeCuBudget) {
156
- builder = builder.preInstructions([
157
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
158
- units: computeUnits ?? this.computeUnits,
159
- }),
160
- ]);
161
- }
162
- return builder;
163
- }
164
- addDelegate(staker, delegateWallet, tokenMint, nonce, options) {
165
- const { includeCuBudget = true, computeUnits } = options ?? {};
166
- let builder = (0, instructions_1.addDelegate)(this.program, staker, delegateWallet, tokenMint, nonce);
167
- if (includeCuBudget) {
168
- builder = builder.preInstructions([
169
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
170
- units: computeUnits ?? this.computeUnits,
171
- }),
172
- ]);
173
- }
174
- return builder;
175
- }
176
- removeDelegate(staker, delegateWallet, tokenMint, nonce, options) {
177
- const { includeCuBudget = true, computeUnits } = options ?? {};
178
- let builder = (0, instructions_1.removeDelegate)(this.program, staker, delegateWallet, tokenMint, nonce);
179
- if (includeCuBudget) {
180
- builder = builder.preInstructions([
181
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
182
- units: computeUnits ?? this.computeUnits,
183
- }),
184
- ]);
185
- }
186
- return builder;
187
- }
188
- }
189
- exports.SVaultClient = SVaultClient;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N2YXVsdC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQUVILDhDQUFnRTtBQUNoRSw2Q0FBa0U7QUFDbEUsMkNBQXlDO0FBUXpDLG1DQVNpQjtBQUNqQixpREFXd0I7QUFFeEIsNENBQThDO0FBRTlDLE1BQU0scUJBQXFCLEdBQUcsTUFBTyxDQUFDO0FBRXRDLE1BQWEsWUFBWTtJQUt2QixZQUNFLFFBQXdCLEVBQ3hCLFNBQXFCLEVBQ3JCLFlBQXFCO1FBRXJCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLHNCQUFVLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLElBQUkscUJBQXFCLENBQUM7UUFDMUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFPLENBQUMsZ0JBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGlCQUFpQjtJQUVqQixzQkFBc0IsQ0FBQyxTQUFvQixFQUFFLEtBQWE7UUFDeEQsT0FBTyxJQUFBLDhCQUFzQixFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxrQkFBa0IsQ0FDaEIsYUFBd0IsRUFDeEIsSUFBZTtRQUVmLE9BQU8sSUFBQSwwQkFBa0IsRUFBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsaUJBQWlCLENBQ2YsYUFBd0IsRUFDeEIsUUFBbUI7UUFFbkIsT0FBTyxJQUFBLHlCQUFpQixFQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxhQUF3QjtRQUMxQyxPQUFPLElBQUEsMkJBQW1CLEVBQUMsYUFBYSxFQUFFLElB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LEdBQUcsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFL0QsSUFBSSxPQUFPLEdBQUcsSUFBQSw2QkFBYyxFQUMxQixJQUFJLENBQUMsT0FBTyxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsU0FBUyxFQUNULEtBQUssQ0FDTixDQUFDO1FBRUYsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixPQUFPLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQkFDaEMsOEJBQW9CLENBQUMsbUJBQW1CLENBQUM7b0JBQ3ZDLEtBQUssRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVk7aUJBQ3pDLENBQUM7YUFDSCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBcldELG9DQXFXQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBIaWdoLWxldmVsIGNsaWVudCBmb3IgdGhlIFNWYXVsdCBwcm9ncmFtLlxuICogUHJvdmlkZXMgZXJnb25vbWljIG1ldGhvZHMgZm9yIHN0YWtpbmcgb3BlcmF0aW9ucyB3aXRoIGF1dG9tYXRpYyBQREEgZGVyaXZhdGlvblxuICogYW5kIGNvbXB1dGUgYnVkZ2V0IG1hbmFnZW1lbnQuXG4gKi9cblxuaW1wb3J0IHsgUHJvZ3JhbSwgQW5jaG9yUHJvdmlkZXIsIEJOIH0gZnJvbSBcIkBjb3JhbC14eXovYW5jaG9yXCI7XG5pbXBvcnQgeyBQdWJsaWNLZXksIENvbXB1dGVCdWRnZXRQcm9ncmFtIH0gZnJvbSBcIkBzb2xhbmEvd2ViMy5qc1wiO1xuaW1wb3J0IHsgUFJPR1JBTV9JRCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgU3ZhdWx0LFxuICBTVmF1bHRUeE9wdGlvbnMsXG4gIFN0YWtpbmdDb25maWdBY2NvdW50LFxuICBVc2VyU3Rha2VBY2NvdW50LFxuICBEZWxlZ2F0ZUFjY291bnQsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQge1xuICBkZXJpdmVTdGFraW5nQ29uZmlnUERBLFxuICBkZXJpdmVVc2VyU3Rha2VQREEsXG4gIGRlcml2ZURlbGVnYXRlUERBLFxuICBkZXJpdmVTdGFrZVZhdWx0UERBLFxuICBkZXJpdmVSZXdhcmRWYXVsdFBEQSxcbiAgZmV0Y2hTdGFraW5nQ29uZmlnQWNjb3VudCxcbiAgZmV0Y2hVc2VyU3Rha2VBY2NvdW50LFxuICBmZXRjaERlbGVnYXRlQWNjb3VudCxcbn0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7XG4gIGluaXRpYWxpemVTdGFraW5nVmF1bHQsXG4gIHN0YWtlLFxuICBpbml0aWF0ZVVuc3Rha2UsXG4gIHdpdGhkcmF3LFxuICBwb3N0UmV3YXJkcyxcbiAgY2xhaW1SZXdhcmRzLFxuICBzZXRDb25maWcsXG4gIHNsYXNoLFxuICBhZGREZWxlZ2F0ZSxcbiAgcmVtb3ZlRGVsZWdhdGUsXG59IGZyb20gXCIuL2luc3RydWN0aW9uc1wiO1xuXG5pbXBvcnQgeyBTdmF1bHRJREwgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkL2lkbHNcIjtcblxuY29uc3QgREVGQVVMVF9DT01QVVRFX1VOSVRTID0gMjAwXzAwMDtcblxuZXhwb3J0IGNsYXNzIFNWYXVsdENsaWVudCB7XG4gIHB1YmxpYyBwcm9ncmFtOiBQcm9ncmFtPFN2YXVsdD47XG4gIHB1YmxpYyBwcm9ncmFtSWQ6IFB1YmxpY0tleTtcbiAgcHVibGljIGNvbXB1dGVVbml0czogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3ZpZGVyOiBBbmNob3JQcm92aWRlcixcbiAgICBwcm9ncmFtSWQ/OiBQdWJsaWNLZXksXG4gICAgY29tcHV0ZVVuaXRzPzogbnVtYmVyXG4gICkge1xuICAgIHRoaXMucHJvZ3JhbUlkID0gcHJvZ3JhbUlkID8/IFBST0dSQU1fSUQ7XG4gICAgdGhpcy5jb21wdXRlVW5pdHMgPSBjb21wdXRlVW5pdHMgPz8gREVGQVVMVF9DT01QVVRFX1VOSVRTO1xuICAgIHRoaXMucHJvZ3JhbSA9IG5ldyBQcm9ncmFtKFN2YXVsdElETCBhcyBTdmF1bHQsIHByb3ZpZGVyKTtcbiAgfVxuXG4gIC8qIFBEQSBIZWxwZXJzICovXG5cbiAgZGVyaXZlU3Rha2luZ0NvbmZpZ1BEQSh0b2tlbk1pbnQ6IFB1YmxpY0tleSwgbm9uY2U6IG51bWJlcik6IFtQdWJsaWNLZXksIG51bWJlcl0ge1xuICAgIHJldHVybiBkZXJpdmVTdGFraW5nQ29uZmlnUERBKHRva2VuTWludCwgbm9uY2UsIHRoaXMucHJvZ3JhbUlkKTtcbiAgfVxuXG4gIGRlcml2ZVVzZXJTdGFrZVBEQShcbiAgICBzdGFraW5nQ29uZmlnOiBQdWJsaWNLZXksXG4gICAgdXNlcjogUHVibGljS2V5XG4gICk6IFtQdWJsaWNLZXksIG51bWJlcl0ge1xuICAgIHJldHVybiBkZXJpdmVVc2VyU3Rha2VQREEoc3Rha2luZ0NvbmZpZywgdXNlciwgdGhpcy5wcm9ncmFtSWQpO1xuICB9XG5cbiAgZGVyaXZlRGVsZWdhdGVQREEoXG4gICAgc3Rha2luZ0NvbmZpZzogUHVibGljS2V5LFxuICAgIGRlbGVnYXRlOiBQdWJsaWNLZXlcbiAgKTogW1B1YmxpY0tleSwgbnVtYmVyXSB7XG4gICAgcmV0dXJuIGRlcml2ZURlbGVnYXRlUERBKHN0YWtpbmdDb25maWcsIGRlbGVnYXRlLCB0aGlzLnByb2dyYW1JZCk7XG4gIH1cblxuICBkZXJpdmVTdGFrZVZhdWx0UERBKHN0YWtpbmdDb25maWc6IFB1YmxpY0tleSk6IFtQdWJsaWNLZXksIG51bWJlcl0ge1xuICAgIHJldHVybiBkZXJpdmVTdGFrZVZhdWx0UERBKHN0YWtpbmdDb25maWcsIHRoaXMucHJvZ3JhbUlkKTtcbiAgfVxuXG4gIGRlcml2ZVJld2FyZFZhdWx0UERBKHN0YWtpbmdDb25maWc6IFB1YmxpY0tleSk6IFtQdWJsaWNLZXksIG51bWJlcl0ge1xuICAgIHJldHVybiBkZXJpdmVSZXdhcmRWYXVsdFBEQShzdGFraW5nQ29uZmlnLCB0aGlzLnByb2dyYW1JZCk7XG4gIH1cblxuICAvKiBTdGF0ZSBGZXRjaGluZyAqL1xuXG4gIGFzeW5jIGZldGNoU3Rha2luZ0NvbmZpZyhwZGE6IFB1YmxpY0tleSk6IFByb21pc2U8U3Rha2luZ0NvbmZpZ0FjY291bnQ+IHtcbiAgICByZXR1cm4gZmV0Y2hTdGFraW5nQ29uZmlnQWNjb3VudCh0aGlzLnByb2dyYW0sIHBkYSk7XG4gIH1cblxuICBhc3luYyBmZXRjaFVzZXJTdGFrZShwZGE6IFB1YmxpY0tleSk6IFByb21pc2U8VXNlclN0YWtlQWNjb3VudD4ge1xuICAgIHJldHVybiBmZXRjaFVzZXJTdGFrZUFjY291bnQodGhpcy5wcm9ncmFtLCBwZGEpO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEZWxlZ2F0ZShwZGE6IFB1YmxpY0tleSk6IFByb21pc2U8RGVsZWdhdGVBY2NvdW50PiB7XG4gICAgcmV0dXJuIGZldGNoRGVsZWdhdGVBY2NvdW50KHRoaXMucHJvZ3JhbSwgcGRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZW5pZW5jZSBtZXRob2Q6IERlcml2ZSBzdGFraW5nIGNvbmZpZyBQREEgZnJvbSBtaW50ICsgbm9uY2UsIHRoZW4gZmV0Y2ggdXNlciBzdGFrZS5cbiAgICovXG4gIGFzeW5jIGZldGNoVXNlclN0YWtlQnlNaW50KFxuICAgIHRva2VuTWludDogUHVibGljS2V5LFxuICAgIG5vbmNlOiBudW1iZXIsXG4gICAgdXNlcjogUHVibGljS2V5XG4gICk6IFByb21pc2U8VXNlclN0YWtlQWNjb3VudD4ge1xuICAgIGNvbnN0IFtjb25maWdQZGFdID0gdGhpcy5kZXJpdmVTdGFraW5nQ29uZmlnUERBKHRva2VuTWludCwgbm9uY2UpO1xuICAgIGNvbnN0IFt1c2VyU3Rha2VQZGFdID0gdGhpcy5kZXJpdmVVc2VyU3Rha2VQREEoY29uZmlnUGRhLCB1c2VyKTtcbiAgICByZXR1cm4gdGhpcy5mZXRjaFVzZXJTdGFrZSh1c2VyU3Rha2VQZGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZDogRGVyaXZlIHN0YWtpbmcgY29uZmlnIFBEQSBmcm9tIG1pbnQgKyBub25jZSwgdGhlbiBmZXRjaCBjb25maWcuXG4gICAqL1xuICBhc3luYyBmZXRjaFN0YWtpbmdDb25maWdCeU1pbnQoXG4gICAgdG9rZW5NaW50OiBQdWJsaWNLZXksXG4gICAgbm9uY2U6IG51bWJlclxuICApOiBQcm9taXNlPFN0YWtpbmdDb25maWdBY2NvdW50PiB7XG4gICAgY29uc3QgW2NvbmZpZ1BkYV0gPSB0aGlzLmRlcml2ZVN0YWtpbmdDb25maWdQREEodG9rZW5NaW50LCBub25jZSk7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hTdGFraW5nQ29uZmlnKGNvbmZpZ1BkYSk7XG4gIH1cblxuICAvKiBJbnN0cnVjdGlvbiBCdWlsZGVycyAqL1xuXG4gIGluaXRpYWxpemVTdGFraW5nVmF1bHQoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICB0b2tlbk1pbnQ6IFB1YmxpY0tleSxcbiAgICB1bnN0YWtpbmdQZXJpb2Q6IEJOIHwgbnVtYmVyLFxuICAgIHZvbHVtZVdpbmRvdzogQk4gfCBudW1iZXIsXG4gICAgbm9uY2U6IG51bWJlcixcbiAgICBvcHRpb25zPzogU1ZhdWx0VHhPcHRpb25zXG4gICkge1xuICAgIGNvbnN0IHsgaW5jbHVkZUN1QnVkZ2V0ID0gdHJ1ZSwgY29tcHV0ZVVuaXRzIH0gPSBvcHRpb25zID8/IHt9O1xuXG4gICAgbGV0IGJ1aWxkZXIgPSBpbml0aWFsaXplU3Rha2luZ1ZhdWx0KFxuICAgICAgdGhpcy5wcm9ncmFtLFxuICAgICAgYWRtaW4sXG4gICAgICB0b2tlbk1pbnQsXG4gICAgICB1bnN0YWtpbmdQZXJpb2QsXG4gICAgICB2b2x1bWVXaW5kb3csXG4gICAgICBub25jZVxuICAgICk7XG5cbiAgICBpZiAoaW5jbHVkZUN1QnVkZ2V0KSB7XG4gICAgICBidWlsZGVyID0gYnVpbGRlci5wcmVJbnN0cnVjdGlvbnMoW1xuICAgICAgICBDb21wdXRlQnVkZ2V0UHJvZ3JhbS5zZXRDb21wdXRlVW5pdExpbWl0KHtcbiAgICAgICAgICB1bml0czogY29tcHV0ZVVuaXRzID8/IHRoaXMuY29tcHV0ZVVuaXRzLFxuICAgICAgICB9KSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGNvbnN0IFtjb25maWdQZGFdID0gdGhpcy5kZXJpdmVTdGFraW5nQ29uZmlnUERBKHRva2VuTWludCwgbm9uY2UpO1xuICAgIHJldHVybiB7IGJ1aWxkZXIsIGNvbmZpZ1BkYSB9O1xuICB9XG5cbiAgc3Rha2UoXG4gICAgdXNlcjogUHVibGljS2V5LFxuICAgIHRva2VuTWludDogUHVibGljS2V5LFxuICAgIG5vbmNlOiBudW1iZXIsXG4gICAgYW1vdW50OiBCTiB8IG51bWJlcixcbiAgICBvcHRpb25zPzogU1ZhdWx0VHhPcHRpb25zXG4gICkge1xuICAgIGNvbnN0IHsgaW5jbHVkZUN1QnVkZ2V0ID0gdHJ1ZSwgY29tcHV0ZVVuaXRzIH0gPSBvcHRpb25zID8/IHt9O1xuXG4gICAgbGV0IGJ1aWxkZXIgPSBzdGFrZSh0aGlzLnByb2dyYW0sIHVzZXIsIHRva2VuTWludCwgbm9uY2UsIGFtb3VudCk7XG5cbiAgICBpZiAoaW5jbHVkZUN1QnVkZ2V0KSB7XG4gICAgICBidWlsZGVyID0gYnVpbGRlci5wcmVJbnN0cnVjdGlvbnMoW1xuICAgICAgICBDb21wdXRlQnVkZ2V0UHJvZ3JhbS5zZXRDb21wdXRlVW5pdExpbWl0KHtcbiAgICAgICAgICB1bml0czogY29tcHV0ZVVuaXRzID8/IHRoaXMuY29tcHV0ZVVuaXRzLFxuICAgICAgICB9KSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgaW5pdGlhdGVVbnN0YWtlKFxuICAgIHVzZXI6IFB1YmxpY0tleSxcbiAgICB0b2tlbk1pbnQ6IFB1YmxpY0tleSxcbiAgICBub25jZTogbnVtYmVyLFxuICAgIGFtb3VudDogQk4gfCBudW1iZXIsXG4gICAgb3B0aW9ucz86IFNWYXVsdFR4T3B0aW9uc1xuICApIHtcbiAgICBjb25zdCB7IGluY2x1ZGVDdUJ1ZGdldCA9IHRydWUsIGNvbXB1dGVVbml0cyB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICAgIGxldCBidWlsZGVyID0gaW5pdGlhdGVVbnN0YWtlKHRoaXMucHJvZ3JhbSwgdXNlciwgdG9rZW5NaW50LCBub25jZSwgYW1vdW50KTtcblxuICAgIGlmIChpbmNsdWRlQ3VCdWRnZXQpIHtcbiAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLnByZUluc3RydWN0aW9ucyhbXG4gICAgICAgIENvbXB1dGVCdWRnZXRQcm9ncmFtLnNldENvbXB1dGVVbml0TGltaXQoe1xuICAgICAgICAgIHVuaXRzOiBjb21wdXRlVW5pdHMgPz8gdGhpcy5jb21wdXRlVW5pdHMsXG4gICAgICAgIH0pLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICB3aXRoZHJhdyhcbiAgICB1c2VyOiBQdWJsaWNLZXksXG4gICAgdG9rZW5NaW50OiBQdWJsaWNLZXksXG4gICAgbm9uY2U6IG51bWJlcixcbiAgICBvcHRpb25zPzogU1ZhdWx0VHhPcHRpb25zXG4gICkge1xuICAgIGNvbnN0IHsgaW5jbHVkZUN1QnVkZ2V0ID0gdHJ1ZSwgY29tcHV0ZVVuaXRzIH0gPSBvcHRpb25zID8/IHt9O1xuXG4gICAgbGV0IGJ1aWxkZXIgPSB3aXRoZHJhdyh0aGlzLnByb2dyYW0sIHVzZXIsIHRva2VuTWludCwgbm9uY2UpO1xuXG4gICAgaWYgKGluY2x1ZGVDdUJ1ZGdldCkge1xuICAgICAgYnVpbGRlciA9IGJ1aWxkZXIucHJlSW5zdHJ1Y3Rpb25zKFtcbiAgICAgICAgQ29tcHV0ZUJ1ZGdldFByb2dyYW0uc2V0Q29tcHV0ZVVuaXRMaW1pdCh7XG4gICAgICAgICAgdW5pdHM6IGNvbXB1dGVVbml0cyA/PyB0aGlzLmNvbXB1dGVVbml0cyxcbiAgICAgICAgfSksXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIHBvc3RSZXdhcmRzKFxuICAgIGFkbWluOiBQdWJsaWNLZXksXG4gICAgdG9rZW5NaW50OiBQdWJsaWNLZXksXG4gICAgbm9uY2U6IG51bWJlcixcbiAgICBtZXJrbGVSb290OiBudW1iZXJbXSxcbiAgICB0b3RhbEFtb3VudDogQk4gfCBudW1iZXIsXG4gICAgb3B0aW9ucz86IFNWYXVsdFR4T3B0aW9uc1xuICApIHtcbiAgICBjb25zdCB7IGluY2x1ZGVDdUJ1ZGdldCA9IHRydWUsIGNvbXB1dGVVbml0cyB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICAgIGxldCBidWlsZGVyID0gcG9zdFJld2FyZHMoXG4gICAgICB0aGlzLnByb2dyYW0sXG4gICAgICBhZG1pbixcbiAgICAgIHRva2VuTWludCxcbiAgICAgIG5vbmNlLFxuICAgICAgbWVya2xlUm9vdCxcbiAgICAgIHRvdGFsQW1vdW50XG4gICAgKTtcblxuICAgIGlmIChpbmNsdWRlQ3VCdWRnZXQpIHtcbiAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLnByZUluc3RydWN0aW9ucyhbXG4gICAgICAgIENvbXB1dGVCdWRnZXRQcm9ncmFtLnNldENvbXB1dGVVbml0TGltaXQoe1xuICAgICAgICAgIHVuaXRzOiBjb21wdXRlVW5pdHMgPz8gdGhpcy5jb21wdXRlVW5pdHMsXG4gICAgICAgIH0pLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICBjbGFpbVJld2FyZHMoXG4gICAgdXNlcjogUHVibGljS2V5LFxuICAgIHRva2VuTWludDogUHVibGljS2V5LFxuICAgIG5vbmNlOiBudW1iZXIsXG4gICAgY3VtdWxhdGl2ZUFtb3VudDogQk4gfCBudW1iZXIsXG4gICAgcHJvb2Y6IG51bWJlcltdW10sXG4gICAgb3B0aW9ucz86IFNWYXVsdFR4T3B0aW9uc1xuICApIHtcbiAgICBjb25zdCB7IGluY2x1ZGVDdUJ1ZGdldCA9IHRydWUsIGNvbXB1dGVVbml0cyB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICAgIGxldCBidWlsZGVyID0gY2xhaW1SZXdhcmRzKFxuICAgICAgdGhpcy5wcm9ncmFtLFxuICAgICAgdXNlcixcbiAgICAgIHRva2VuTWludCxcbiAgICAgIG5vbmNlLFxuICAgICAgY3VtdWxhdGl2ZUFtb3VudCxcbiAgICAgIHByb29mXG4gICAgKTtcblxuICAgIGlmIChpbmNsdWRlQ3VCdWRnZXQpIHtcbiAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLnByZUluc3RydWN0aW9ucyhbXG4gICAgICAgIENvbXB1dGVCdWRnZXRQcm9ncmFtLnNldENvbXB1dGVVbml0TGltaXQoe1xuICAgICAgICAgIHVuaXRzOiBjb21wdXRlVW5pdHMgPz8gdGhpcy5jb21wdXRlVW5pdHMsXG4gICAgICAgIH0pLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICBzZXRDb25maWcoXG4gICAgYWRtaW46IFB1YmxpY0tleSxcbiAgICB0b2tlbk1pbnQ6IFB1YmxpY0tleSxcbiAgICBub25jZTogbnVtYmVyLFxuICAgIHBhcmFtczogeyB1bnN0YWtpbmdQZXJpb2Q/OiBCTiB8IG51bWJlcjsgdm9sdW1lV2luZG93PzogQk4gfCBudW1iZXIgfSxcbiAgICBvcHRpb25zPzogU1ZhdWx0VHhPcHRpb25zXG4gICkge1xuICAgIGNvbnN0IHsgaW5jbHVkZUN1QnVkZ2V0ID0gdHJ1ZSwgY29tcHV0ZVVuaXRzIH0gPSBvcHRpb25zID8/IHt9O1xuXG4gICAgbGV0IGJ1aWxkZXIgPSBzZXRDb25maWcoXG4gICAgICB0aGlzLnByb2dyYW0sXG4gICAgICBhZG1pbixcbiAgICAgIHRva2VuTWludCxcbiAgICAgIG5vbmNlLFxuICAgICAgcGFyYW1zLnVuc3Rha2luZ1BlcmlvZCA/PyBudWxsLFxuICAgICAgcGFyYW1zLnZvbHVtZVdpbmRvdyA/PyBudWxsXG4gICAgKTtcblxuICAgIGlmIChpbmNsdWRlQ3VCdWRnZXQpIHtcbiAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLnByZUluc3RydWN0aW9ucyhbXG4gICAgICAgIENvbXB1dGVCdWRnZXRQcm9ncmFtLnNldENvbXB1dGVVbml0TGltaXQoe1xuICAgICAgICAgIHVuaXRzOiBjb21wdXRlVW5pdHMgPz8gdGhpcy5jb21wdXRlVW5pdHMsXG4gICAgICAgIH0pLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICBzbGFzaChcbiAgICBhZG1pbjogUHVibGljS2V5LFxuICAgIHRva2VuTWludDogUHVibGljS2V5LFxuICAgIG5vbmNlOiBudW1iZXIsXG4gICAgdXNlclRvU2xhc2g6IFB1YmxpY0tleSxcbiAgICBiYXNpc1BvaW50czogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiBTVmF1bHRUeE9wdGlvbnNcbiAgKSB7XG4gICAgY29uc3QgeyBpbmNsdWRlQ3VCdWRnZXQgPSB0cnVlLCBjb21wdXRlVW5pdHMgfSA9IG9wdGlvbnMgPz8ge307XG5cbiAgICAvLyBEZXJpdmUgdXNlciBzdGFrZSBQREEgZnJvbSB1c2VyIHB1YmtleVxuICAgIGNvbnN0IFtjb25maWdQZGFdID0gdGhpcy5kZXJpdmVTdGFraW5nQ29uZmlnUERBKHRva2VuTWludCwgbm9uY2UpO1xuICAgIGNvbnN0IFt1c2VyU3Rha2VQZGFdID0gdGhpcy5kZXJpdmVVc2VyU3Rha2VQREEoY29uZmlnUGRhLCB1c2VyVG9TbGFzaCk7XG5cbiAgICBsZXQgYnVpbGRlciA9IHNsYXNoKFxuICAgICAgdGhpcy5wcm9ncmFtLFxuICAgICAgYWRtaW4sXG4gICAgICB0b2tlbk1pbnQsXG4gICAgICBub25jZSxcbiAgICAgIHVzZXJTdGFrZVBkYSxcbiAgICAgIGJhc2lzUG9pbnRzXG4gICAgKTtcblxuICAgIGlmIChpbmNsdWRlQ3VCdWRnZXQpIHtcbiAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLnByZUluc3RydWN0aW9ucyhbXG4gICAgICAgIENvbXB1dGVCdWRnZXRQcm9ncmFtLnNldENvbXB1dGVVbml0TGltaXQoe1xuICAgICAgICAgIHVuaXRzOiBjb21wdXRlVW5pdHMgPz8gdGhpcy5jb21wdXRlVW5pdHMsXG4gICAgICAgIH0pLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICBhZGREZWxlZ2F0ZShcbiAgICBzdGFrZXI6IFB1YmxpY0tleSxcbiAgICBkZWxlZ2F0ZVdhbGxldDogUHVibGljS2V5LFxuICAgIHRva2VuTWludDogUHVibGljS2V5LFxuICAgIG5vbmNlOiBudW1iZXIsXG4gICAgb3B0aW9ucz86IFNWYXVsdFR4T3B0aW9uc1xuICApIHtcbiAgICBjb25zdCB7IGluY2x1ZGVDdUJ1ZGdldCA9IHRydWUsIGNvbXB1dGVVbml0cyB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICAgIGxldCBidWlsZGVyID0gYWRkRGVsZWdhdGUoXG4gICAgICB0aGlzLnByb2dyYW0sXG4gICAgICBzdGFrZXIsXG4gICAgICBkZWxlZ2F0ZVdhbGxldCxcbiAgICAgIHRva2VuTWludCxcbiAgICAgIG5vbmNlXG4gICAgKTtcblxuICAgIGlmIChpbmNsdWRlQ3VCdWRnZXQpIHtcbiAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLnByZUluc3RydWN0aW9ucyhbXG4gICAgICAgIENvbXB1dGVCdWRnZXRQcm9ncmFtLnNldENvbXB1dGVVbml0TGltaXQoe1xuICAgICAgICAgIHVuaXRzOiBjb21wdXRlVW5pdHMgPz8gdGhpcy5jb21wdXRlVW5pdHMsXG4gICAgICAgIH0pLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICByZW1vdmVEZWxlZ2F0ZShcbiAgICBzdGFrZXI6IFB1YmxpY0tleSxcbiAgICBkZWxlZ2F0ZVdhbGxldDogUHVibGljS2V5LFxuICAgIHRva2VuTWludDogUHVibGljS2V5LFxuICAgIG5vbmNlOiBudW1iZXIsXG4gICAgb3B0aW9ucz86IFNWYXVsdFR4T3B0aW9uc1xuICApIHtcbiAgICBjb25zdCB7IGluY2x1ZGVDdUJ1ZGdldCA9IHRydWUsIGNvbXB1dGVVbml0cyB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICAgIGxldCBidWlsZGVyID0gcmVtb3ZlRGVsZWdhdGUoXG4gICAgICB0aGlzLnByb2dyYW0sXG4gICAgICBzdGFrZXIsXG4gICAgICBkZWxlZ2F0ZVdhbGxldCxcbiAgICAgIHRva2VuTWludCxcbiAgICAgIG5vbmNlXG4gICAgKTtcblxuICAgIGlmIChpbmNsdWRlQ3VCdWRnZXQpIHtcbiAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLnByZUluc3RydWN0aW9ucyhbXG4gICAgICAgIENvbXB1dGVCdWRnZXRQcm9ncmFtLnNldENvbXB1dGVVbml0TGltaXQoe1xuICAgICAgICAgIHVuaXRzOiBjb21wdXRlVW5pdHMgPz8gdGhpcy5jb21wdXRlVW5pdHMsXG4gICAgICAgIH0pLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SVaultClient=void 0;const anchor_1=require("@coral-xyz/anchor"),web3_js_1=require("@solana/web3.js"),constants_1=require("./constants"),utils_1=require("./utils"),instructions_1=require("./instructions"),idls_1=require("../generated/idls"),DEFAULT_COMPUTE_UNITS=2e5;class SVaultClient{constructor(t,e,i){this.programId=e??constants_1.PROGRAM_ID,this.computeUnits=i??2e5,this.program=new anchor_1.Program(idls_1.SvaultIDL,t)}deriveStakingConfigPDA(t,e){return(0,utils_1.deriveStakingConfigPDA)(t,e,this.programId)}deriveUserStakePDA(t,e){return(0,utils_1.deriveUserStakePDA)(t,e,this.programId)}deriveDelegatePDA(t,e){return(0,utils_1.deriveDelegatePDA)(t,e,this.programId)}deriveStakeVaultPDA(t){return(0,utils_1.deriveStakeVaultPDA)(t,this.programId)}deriveRewardVaultPDA(t){return(0,utils_1.deriveRewardVaultPDA)(t,this.programId)}async fetchStakingConfig(t){return(0,utils_1.fetchStakingConfigAccount)(this.program,t)}async fetchUserStake(t){return(0,utils_1.fetchUserStakeAccount)(this.program,t)}async fetchDelegate(t){return(0,utils_1.fetchDelegateAccount)(this.program,t)}async fetchUserStakeByMint(t,e,i){const[s]=this.deriveStakingConfigPDA(t,e),[r]=this.deriveUserStakePDA(s,i);return this.fetchUserStake(r)}async fetchStakingConfigByMint(t,e){const[i]=this.deriveStakingConfigPDA(t,e);return this.fetchStakingConfig(i)}initializeStakingVault(t,e,i,s,r,n){const{includeCuBudget:u=!0,computeUnits:o}=n??{};let a=(0,instructions_1.initializeStakingVault)(this.program,t,e,i,s,r);u&&(a=a.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:o??this.computeUnits})]));const[c]=this.deriveStakingConfigPDA(e,r);return{builder:a,configPda:c}}stake(t,e,i,s,r){const{includeCuBudget:n=!0,computeUnits:u}=r??{};let o=(0,instructions_1.stake)(this.program,t,e,i,s);return n&&(o=o.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:u??this.computeUnits})])),o}initiateUnstake(t,e,i,s,r){const{includeCuBudget:n=!0,computeUnits:u}=r??{};let o=(0,instructions_1.initiateUnstake)(this.program,t,e,i,s);return n&&(o=o.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:u??this.computeUnits})])),o}withdraw(t,e,i,s){const{includeCuBudget:r=!0,computeUnits:n}=s??{};let u=(0,instructions_1.withdraw)(this.program,t,e,i);return r&&(u=u.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:n??this.computeUnits})])),u}postRewards(t,e,i,s,r,n){const{includeCuBudget:u=!0,computeUnits:o}=n??{};let a=(0,instructions_1.postRewards)(this.program,t,e,i,s,r);return u&&(a=a.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:o??this.computeUnits})])),a}claimRewards(t,e,i,s,r,n){const{includeCuBudget:u=!0,computeUnits:o}=n??{};let a=(0,instructions_1.claimRewards)(this.program,t,e,i,s,r);return u&&(a=a.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:o??this.computeUnits})])),a}setConfig(t,e,i,s,r){const{includeCuBudget:n=!0,computeUnits:u}=r??{};let o=(0,instructions_1.setConfig)(this.program,t,e,i,s.unstakingPeriod??null,s.volumeWindow??null);return n&&(o=o.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:u??this.computeUnits})])),o}slash(t,e,i,s,r,n){const{includeCuBudget:u=!0,computeUnits:o}=n??{},[a]=this.deriveStakingConfigPDA(e,i),[c]=this.deriveUserStakePDA(a,s);let m=(0,instructions_1.slash)(this.program,t,e,i,c,r);return u&&(m=m.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:o??this.computeUnits})])),m}addDelegate(t,e,i,s,r){const{includeCuBudget:n=!0,computeUnits:u}=r??{};let o=(0,instructions_1.addDelegate)(this.program,t,e,i,s);return n&&(o=o.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:u??this.computeUnits})])),o}removeDelegate(t,e,i,s,r){const{includeCuBudget:n=!0,computeUnits:u}=r??{};let o=(0,instructions_1.removeDelegate)(this.program,t,e,i,s);return n&&(o=o.preInstructions([web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({units:u??this.computeUnits})])),o}}exports.SVaultClient=SVaultClient;
@@ -1,20 +1 @@
1
- "use strict";
2
- /*
3
- * Constants for the SVault program.
4
- * Parsed from the generated IDL to stay in sync with the Rust program.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.SECONDS_PER_DAY = exports.REWARD_VAULT_SEED = exports.STAKE_VAULT_SEED = exports.USER_STAKE_SEED = exports.STAKING_CONFIG_SEED = exports.PROGRAM_ID = void 0;
8
- const web3_js_1 = require("@solana/web3.js");
9
- const idls_1 = require("../generated/idls");
10
- const utils_1 = require("../utils");
11
- /* Program ID */
12
- exports.PROGRAM_ID = new web3_js_1.PublicKey(idls_1.SvaultIDL.address);
13
- /* PDA Seeds */
14
- exports.STAKING_CONFIG_SEED = (0, utils_1.parseIdlBytes)((0, utils_1.getIdlConstant)(idls_1.SvaultIDL, "STAKING_CONFIG_SEED"));
15
- exports.USER_STAKE_SEED = (0, utils_1.parseIdlBytes)((0, utils_1.getIdlConstant)(idls_1.SvaultIDL, "USER_STAKE_SEED"));
16
- exports.STAKE_VAULT_SEED = (0, utils_1.parseIdlBytes)((0, utils_1.getIdlConstant)(idls_1.SvaultIDL, "STAKE_VAULT_SEED"));
17
- exports.REWARD_VAULT_SEED = (0, utils_1.parseIdlBytes)((0, utils_1.getIdlConstant)(idls_1.SvaultIDL, "REWARD_VAULT_SEED"));
18
- /* Time Constants */
19
- exports.SECONDS_PER_DAY = 86400;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N2YXVsdC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBRUgsNkNBQTRDO0FBQzVDLDRDQUE4QztBQUM5QyxvQ0FBeUQ7QUFFekQsZ0JBQWdCO0FBRUgsUUFBQSxVQUFVLEdBQUcsSUFBSSxtQkFBUyxDQUFDLGdCQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFM0QsZUFBZTtBQUVGLFFBQUEsbUJBQW1CLEdBQUcsSUFBQSxxQkFBYSxFQUFDLElBQUEsc0JBQWMsRUFBQyxnQkFBUyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQztBQUN0RixRQUFBLGVBQWUsR0FBRyxJQUFBLHFCQUFhLEVBQUMsSUFBQSxzQkFBYyxFQUFDLGdCQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0FBQzlFLFFBQUEsZ0JBQWdCLEdBQUcsSUFBQSxxQkFBYSxFQUFDLElBQUEsc0JBQWMsRUFBQyxnQkFBUyxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQztBQUNoRixRQUFBLGlCQUFpQixHQUFHLElBQUEscUJBQWEsRUFBQyxJQUFBLHNCQUFjLEVBQUMsZ0JBQVMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7QUFFL0Ysb0JBQW9CO0FBRVAsUUFBQSxlQUFlLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvbnN0YW50cyBmb3IgdGhlIFNWYXVsdCBwcm9ncmFtLlxuICogUGFyc2VkIGZyb20gdGhlIGdlbmVyYXRlZCBJREwgdG8gc3RheSBpbiBzeW5jIHdpdGggdGhlIFJ1c3QgcHJvZ3JhbS5cbiAqL1xuXG5pbXBvcnQgeyBQdWJsaWNLZXkgfSBmcm9tIFwiQHNvbGFuYS93ZWIzLmpzXCI7XG5pbXBvcnQgeyBTdmF1bHRJREwgfSBmcm9tIFwiLi4vZ2VuZXJhdGVkL2lkbHNcIjtcbmltcG9ydCB7IHBhcnNlSWRsQnl0ZXMsIGdldElkbENvbnN0YW50IH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbi8qIFByb2dyYW0gSUQgKi9cblxuZXhwb3J0IGNvbnN0IFBST0dSQU1fSUQgPSBuZXcgUHVibGljS2V5KFN2YXVsdElETC5hZGRyZXNzKTtcblxuLyogUERBIFNlZWRzICovXG5cbmV4cG9ydCBjb25zdCBTVEFLSU5HX0NPTkZJR19TRUVEID0gcGFyc2VJZGxCeXRlcyhnZXRJZGxDb25zdGFudChTdmF1bHRJREwsIFwiU1RBS0lOR19DT05GSUdfU0VFRFwiKSk7XG5leHBvcnQgY29uc3QgVVNFUl9TVEFLRV9TRUVEID0gcGFyc2VJZGxCeXRlcyhnZXRJZGxDb25zdGFudChTdmF1bHRJREwsIFwiVVNFUl9TVEFLRV9TRUVEXCIpKTtcbmV4cG9ydCBjb25zdCBTVEFLRV9WQVVMVF9TRUVEID0gcGFyc2VJZGxCeXRlcyhnZXRJZGxDb25zdGFudChTdmF1bHRJREwsIFwiU1RBS0VfVkFVTFRfU0VFRFwiKSk7XG5leHBvcnQgY29uc3QgUkVXQVJEX1ZBVUxUX1NFRUQgPSBwYXJzZUlkbEJ5dGVzKGdldElkbENvbnN0YW50KFN2YXVsdElETCwgXCJSRVdBUkRfVkFVTFRfU0VFRFwiKSk7XG5cbi8qIFRpbWUgQ29uc3RhbnRzICovXG5cbmV4cG9ydCBjb25zdCBTRUNPTkRTX1BFUl9EQVkgPSA4NjQwMDtcbiJdfQ==
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SECONDS_PER_DAY=exports.REWARD_VAULT_SEED=exports.STAKE_VAULT_SEED=exports.USER_STAKE_SEED=exports.STAKING_CONFIG_SEED=exports.PROGRAM_ID=void 0;const web3_js_1=require("@solana/web3.js"),idls_1=require("../generated/idls"),utils_1=require("../utils");exports.PROGRAM_ID=new web3_js_1.PublicKey(idls_1.SvaultIDL.address),exports.STAKING_CONFIG_SEED=(0,utils_1.parseIdlBytes)((0,utils_1.getIdlConstant)(idls_1.SvaultIDL,"STAKING_CONFIG_SEED")),exports.USER_STAKE_SEED=(0,utils_1.parseIdlBytes)((0,utils_1.getIdlConstant)(idls_1.SvaultIDL,"USER_STAKE_SEED")),exports.STAKE_VAULT_SEED=(0,utils_1.parseIdlBytes)((0,utils_1.getIdlConstant)(idls_1.SvaultIDL,"STAKE_VAULT_SEED")),exports.REWARD_VAULT_SEED=(0,utils_1.parseIdlBytes)((0,utils_1.getIdlConstant)(idls_1.SvaultIDL,"REWARD_VAULT_SEED")),exports.SECONDS_PER_DAY=86400;
@@ -1,22 +1 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./constants"), exports);
18
- __exportStar(require("./types"), exports);
19
- __exportStar(require("./utils"), exports);
20
- __exportStar(require("./instructions"), exports);
21
- __exportStar(require("./client"), exports);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3ZhdWx0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBNEI7QUFDNUIsMENBQXdCO0FBQ3hCLDBDQUF3QjtBQUN4QixpREFBK0I7QUFDL0IsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2luc3RydWN0aW9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2xpZW50XCI7XG4iXX0=
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,o)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./constants"),exports),__exportStar(require("./types"),exports),__exportStar(require("./utils"),exports),__exportStar(require("./instructions"),exports),__exportStar(require("./client"),exports);