@star-factory/sdk-staking 0.1.0
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/README.md +151 -0
- package/dist/cli/set-allowed-mint.d.ts +2 -0
- package/dist/cli/set-allowed-mint.d.ts.map +1 -0
- package/dist/cli/set-allowed-mint.js +78 -0
- package/dist/cli/set-allowed-mint.js.map +1 -0
- package/dist/idl/staking.json +1407 -0
- package/dist/index.d.ts +141 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +598 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +380 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +35 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import type { AnchorProvider, BN, Idl, Program } from '@coral-xyz/anchor';
|
|
2
|
+
import type { PublicKey } from '@solana/web3.js';
|
|
3
|
+
export interface StakeProgram extends Idl {
|
|
4
|
+
}
|
|
5
|
+
export type Address = PublicKey;
|
|
6
|
+
export type TransactionSignature = string;
|
|
7
|
+
export type Amount = BN;
|
|
8
|
+
export type PDABump = number;
|
|
9
|
+
export type PDAWithBump = readonly [Address, PDABump];
|
|
10
|
+
export type ListenerId = number;
|
|
11
|
+
export type Percentage = number;
|
|
12
|
+
export type UnixTimestamp = number;
|
|
13
|
+
export type Seconds = number;
|
|
14
|
+
/**
|
|
15
|
+
* StakePool account - the main pool configuration
|
|
16
|
+
*/
|
|
17
|
+
export interface StakePoolAccount {
|
|
18
|
+
readonly authority: Address;
|
|
19
|
+
readonly acceptedMint: Address;
|
|
20
|
+
/** The reward token mint. Pubkey.default() if no rewards deposited yet. */
|
|
21
|
+
readonly rewardMint: Address;
|
|
22
|
+
readonly totalStaked: Amount;
|
|
23
|
+
readonly bump: PDABump;
|
|
24
|
+
readonly vaultBump: PDABump;
|
|
25
|
+
readonly paused: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* RewardToken account - tracks a specific reward token's distribution
|
|
29
|
+
*/
|
|
30
|
+
export interface RewardTokenAccount {
|
|
31
|
+
readonly rewardMint: Address;
|
|
32
|
+
/** Scaled by 1e18 for precision */
|
|
33
|
+
readonly rewardPerTokenStored: BN;
|
|
34
|
+
readonly totalDeposited: Amount;
|
|
35
|
+
readonly totalClaimed: Amount;
|
|
36
|
+
readonly bump: PDABump;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* UserStake account - tracks a user's staking position
|
|
40
|
+
*/
|
|
41
|
+
export interface UserStakeAccount {
|
|
42
|
+
readonly user: Address;
|
|
43
|
+
readonly stakedAmount: Amount;
|
|
44
|
+
readonly pendingUnstake: Amount;
|
|
45
|
+
readonly unlockTimestamp: BN;
|
|
46
|
+
readonly bump: PDABump;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* UserRewardInfo account - tracks a user's reward state for a specific reward token
|
|
50
|
+
*/
|
|
51
|
+
export interface UserRewardInfoAccount {
|
|
52
|
+
readonly user: Address;
|
|
53
|
+
readonly rewardMint: Address;
|
|
54
|
+
/** User's checkpoint, scaled by 1e18 */
|
|
55
|
+
readonly rewardPerTokenPaid: BN;
|
|
56
|
+
readonly rewardsEarned: Amount;
|
|
57
|
+
readonly rewardsClaimed: Amount;
|
|
58
|
+
readonly bump: PDABump;
|
|
59
|
+
}
|
|
60
|
+
export interface StakeEvent {
|
|
61
|
+
readonly user: Address;
|
|
62
|
+
readonly amount: Amount;
|
|
63
|
+
readonly timestamp: BN;
|
|
64
|
+
}
|
|
65
|
+
export interface UnstakeEvent {
|
|
66
|
+
readonly user: Address;
|
|
67
|
+
readonly amount: Amount;
|
|
68
|
+
readonly unlockTimestamp: BN;
|
|
69
|
+
}
|
|
70
|
+
export interface ClaimUnstakeEvent {
|
|
71
|
+
readonly user: Address;
|
|
72
|
+
readonly amount: Amount;
|
|
73
|
+
readonly timestamp: BN;
|
|
74
|
+
}
|
|
75
|
+
export interface PauseEvent {
|
|
76
|
+
readonly paused: boolean;
|
|
77
|
+
readonly timestamp: BN;
|
|
78
|
+
}
|
|
79
|
+
export interface AuthorityUpdatedEvent {
|
|
80
|
+
readonly oldAuthority: Address;
|
|
81
|
+
readonly newAuthority: Address;
|
|
82
|
+
readonly timestamp: BN;
|
|
83
|
+
}
|
|
84
|
+
export type EventCallback<TEvent> = (event: TEvent, slot: number) => void;
|
|
85
|
+
/** Input for initialize() */
|
|
86
|
+
export interface InitializeInput {
|
|
87
|
+
/** The SPL token mint to accept for staking */
|
|
88
|
+
readonly acceptedMint: Address;
|
|
89
|
+
/** Pool authority (defaults to connected wallet) */
|
|
90
|
+
readonly authority?: Address;
|
|
91
|
+
}
|
|
92
|
+
/** Input for stake() */
|
|
93
|
+
export interface StakeInput {
|
|
94
|
+
/** Amount of tokens to stake (in base units) */
|
|
95
|
+
readonly amount: Amount;
|
|
96
|
+
/** User to stake for (defaults to connected wallet) */
|
|
97
|
+
readonly user?: Address;
|
|
98
|
+
/** REQUIRED if rewards are active. Call getActiveRewardMint() to check. */
|
|
99
|
+
readonly rewardMint?: Address;
|
|
100
|
+
}
|
|
101
|
+
/** Input for unstake() */
|
|
102
|
+
export interface UnstakeInput {
|
|
103
|
+
/** Amount of tokens to unstake (in base units) */
|
|
104
|
+
readonly amount: Amount;
|
|
105
|
+
/** User to unstake for (defaults to connected wallet) */
|
|
106
|
+
readonly user?: Address;
|
|
107
|
+
/** REQUIRED if rewards are active. Call getActiveRewardMint() to check. */
|
|
108
|
+
readonly rewardMint?: Address;
|
|
109
|
+
}
|
|
110
|
+
/** Input for claimUnstake() */
|
|
111
|
+
export interface ClaimUnstakeInput {
|
|
112
|
+
/** User to claim for (defaults to connected wallet) */
|
|
113
|
+
readonly user?: Address;
|
|
114
|
+
}
|
|
115
|
+
/** Input for depositRewards() */
|
|
116
|
+
export interface DepositRewardsInput {
|
|
117
|
+
/** Amount of reward tokens to deposit (in base units) */
|
|
118
|
+
readonly amount: Amount;
|
|
119
|
+
/** The reward token mint */
|
|
120
|
+
readonly rewardMint: Address;
|
|
121
|
+
/** Pool authority (defaults to connected wallet) */
|
|
122
|
+
readonly authority?: Address;
|
|
123
|
+
}
|
|
124
|
+
/** Input for claimRewards() */
|
|
125
|
+
export interface ClaimRewardsInput {
|
|
126
|
+
/** The reward token mint to claim */
|
|
127
|
+
readonly rewardMint: Address;
|
|
128
|
+
/** User to claim for (defaults to connected wallet) */
|
|
129
|
+
readonly user?: Address;
|
|
130
|
+
}
|
|
131
|
+
/** Input for switchPause() */
|
|
132
|
+
export interface SwitchPauseInput {
|
|
133
|
+
/** Pool authority (defaults to connected wallet) */
|
|
134
|
+
readonly authority?: Address;
|
|
135
|
+
}
|
|
136
|
+
/** Input for updateAuthority() */
|
|
137
|
+
export interface UpdateAuthorityInput {
|
|
138
|
+
/** The new authority public key */
|
|
139
|
+
readonly newAuthority: Address;
|
|
140
|
+
/** Current pool authority (defaults to connected wallet) */
|
|
141
|
+
readonly authority?: Address;
|
|
142
|
+
}
|
|
143
|
+
/** Output for all write methods */
|
|
144
|
+
export interface TransactionOutput {
|
|
145
|
+
/** The transaction signature */
|
|
146
|
+
readonly signature: TransactionSignature;
|
|
147
|
+
}
|
|
148
|
+
/** Input for getUserStake() */
|
|
149
|
+
export interface GetUserStakeInput {
|
|
150
|
+
/** User to query (defaults to connected wallet) */
|
|
151
|
+
readonly user?: Address;
|
|
152
|
+
}
|
|
153
|
+
/** Input for getRewardToken() */
|
|
154
|
+
export interface GetRewardTokenInput {
|
|
155
|
+
/** The reward token mint */
|
|
156
|
+
readonly rewardMint: Address;
|
|
157
|
+
}
|
|
158
|
+
/** Input for getUserRewardInfo() */
|
|
159
|
+
export interface GetUserRewardInfoInput {
|
|
160
|
+
/** The reward token mint */
|
|
161
|
+
readonly rewardMint: Address;
|
|
162
|
+
/** User to query (defaults to connected wallet) */
|
|
163
|
+
readonly user?: Address;
|
|
164
|
+
}
|
|
165
|
+
/** Input for getUserPoolShare() */
|
|
166
|
+
export interface GetUserPoolShareInput {
|
|
167
|
+
/** User to query (defaults to connected wallet) */
|
|
168
|
+
readonly user?: Address;
|
|
169
|
+
}
|
|
170
|
+
/** Input for canClaimUnstake() */
|
|
171
|
+
export interface CanClaimUnstakeInput {
|
|
172
|
+
/** User to query (defaults to connected wallet) */
|
|
173
|
+
readonly user?: Address;
|
|
174
|
+
}
|
|
175
|
+
/** Input for getTimeUntilClaim() */
|
|
176
|
+
export interface GetTimeUntilClaimInput {
|
|
177
|
+
/** User to query (defaults to connected wallet) */
|
|
178
|
+
readonly user?: Address;
|
|
179
|
+
}
|
|
180
|
+
/** Input for getUnstakeStatus() */
|
|
181
|
+
export interface GetUnstakeStatusInput {
|
|
182
|
+
/** User to query (defaults to connected wallet) */
|
|
183
|
+
readonly user?: Address;
|
|
184
|
+
}
|
|
185
|
+
/** Input for getPendingRewards() */
|
|
186
|
+
export interface GetPendingRewardsInput {
|
|
187
|
+
/** The reward token mint */
|
|
188
|
+
readonly rewardMint: Address;
|
|
189
|
+
/** User to query (defaults to connected wallet) */
|
|
190
|
+
readonly user?: Address;
|
|
191
|
+
}
|
|
192
|
+
/** Output for getStakePool() */
|
|
193
|
+
export type GetStakePoolOutput = StakePoolAccount;
|
|
194
|
+
/** Output for getUserStake() - null if account doesn't exist */
|
|
195
|
+
export type GetUserStakeOutput = UserStakeAccount | null;
|
|
196
|
+
/** Output for getRewardToken() - null if account doesn't exist */
|
|
197
|
+
export type GetRewardTokenOutput = RewardTokenAccount | null;
|
|
198
|
+
/** Output for getUserRewardInfo() - null if account doesn't exist */
|
|
199
|
+
export type GetUserRewardInfoOutput = UserRewardInfoAccount | null;
|
|
200
|
+
/** Output for getUserPoolShare() */
|
|
201
|
+
export interface GetUserPoolShareOutput {
|
|
202
|
+
/** Percentage of pool owned (0-100) */
|
|
203
|
+
readonly sharePercent: Percentage;
|
|
204
|
+
}
|
|
205
|
+
/** Output for canClaimUnstake() */
|
|
206
|
+
export interface CanClaimUnstakeOutput {
|
|
207
|
+
/** Whether the user can claim their unstaked tokens now */
|
|
208
|
+
readonly canClaim: boolean;
|
|
209
|
+
}
|
|
210
|
+
/** Output for getTimeUntilClaim() */
|
|
211
|
+
export interface GetTimeUntilClaimOutput {
|
|
212
|
+
/** Seconds remaining until claim, 0 if claimable now, null if no pending unstake */
|
|
213
|
+
readonly secondsRemaining: Seconds | null;
|
|
214
|
+
}
|
|
215
|
+
/** Output for getUnstakeStatus() - comprehensive UI helper */
|
|
216
|
+
export interface UnstakeStatus {
|
|
217
|
+
/** Whether there's a pending unstake */
|
|
218
|
+
readonly hasPendingUnstake: boolean;
|
|
219
|
+
/** Amount pending (BN(0) if none) */
|
|
220
|
+
readonly pendingAmount: Amount;
|
|
221
|
+
/** Unix timestamp when tokens unlock (0 if no pending) */
|
|
222
|
+
readonly unlockTimestamp: UnixTimestamp;
|
|
223
|
+
/** Unlock time as Date object (null if no pending) */
|
|
224
|
+
readonly unlockDate: Date | null;
|
|
225
|
+
/** Whether tokens can be claimed now */
|
|
226
|
+
readonly canClaim: boolean;
|
|
227
|
+
/** Seconds remaining until unlock (0 if claimable, null if no pending) */
|
|
228
|
+
readonly secondsRemaining: Seconds | null;
|
|
229
|
+
/** Progress through unlock period as percentage 0-100 (null if no pending) */
|
|
230
|
+
readonly progressPercent: Percentage | null;
|
|
231
|
+
/** Human-readable time remaining e.g. "5d 3h 22m" (null if no pending or already claimable) */
|
|
232
|
+
readonly timeRemainingFormatted: string | null;
|
|
233
|
+
}
|
|
234
|
+
/** Output for getPendingRewards() */
|
|
235
|
+
export interface GetPendingRewardsOutput {
|
|
236
|
+
/** Pending reward amount (in base units) */
|
|
237
|
+
readonly pendingAmount: Amount;
|
|
238
|
+
}
|
|
239
|
+
/** Output for isPaused() */
|
|
240
|
+
export interface IsPausedOutput {
|
|
241
|
+
/** Whether the protocol is currently paused */
|
|
242
|
+
readonly paused: boolean;
|
|
243
|
+
}
|
|
244
|
+
/** Output for getActiveRewardMint() */
|
|
245
|
+
export interface GetActiveRewardMintOutput {
|
|
246
|
+
/** The active reward mint, or null if no rewards have been deposited */
|
|
247
|
+
readonly rewardMint: Address | null;
|
|
248
|
+
/** Whether rewards are currently active */
|
|
249
|
+
readonly isActive: boolean;
|
|
250
|
+
}
|
|
251
|
+
/** A staker record with their stake info */
|
|
252
|
+
export interface StakerRecord {
|
|
253
|
+
/** Staker's wallet address */
|
|
254
|
+
readonly wallet: Address;
|
|
255
|
+
/** Amount currently staked */
|
|
256
|
+
readonly stakedAmount: Amount;
|
|
257
|
+
/** Amount pending unstake */
|
|
258
|
+
readonly pendingUnstake: Amount;
|
|
259
|
+
/** Unlock timestamp for pending unstake */
|
|
260
|
+
readonly unlockTimestamp: BN;
|
|
261
|
+
}
|
|
262
|
+
/** Output for getAllStakers() */
|
|
263
|
+
export interface GetAllStakersOutput {
|
|
264
|
+
/** All staker records */
|
|
265
|
+
readonly stakers: StakerRecord[];
|
|
266
|
+
/** Total staked across all stakers */
|
|
267
|
+
readonly totalStaked: Amount;
|
|
268
|
+
/** Number of stakers with non-zero stake */
|
|
269
|
+
readonly activeStakers: number;
|
|
270
|
+
}
|
|
271
|
+
/** Input for getUserStakePDA() */
|
|
272
|
+
export interface GetUserStakePDAInput {
|
|
273
|
+
readonly user: Address;
|
|
274
|
+
}
|
|
275
|
+
/** Input for getStakeVaultPDA() */
|
|
276
|
+
export interface GetStakeVaultPDAInput {
|
|
277
|
+
readonly stakePool: Address;
|
|
278
|
+
}
|
|
279
|
+
/** Input for getRewardTokenPDA() */
|
|
280
|
+
export interface GetRewardTokenPDAInput {
|
|
281
|
+
readonly rewardMint: Address;
|
|
282
|
+
}
|
|
283
|
+
/** Input for getRewardVaultPDA() */
|
|
284
|
+
export interface GetRewardVaultPDAInput {
|
|
285
|
+
readonly stakePool: Address;
|
|
286
|
+
readonly rewardMint: Address;
|
|
287
|
+
}
|
|
288
|
+
/** Input for getUserRewardInfoPDA() */
|
|
289
|
+
export interface GetUserRewardInfoPDAInput {
|
|
290
|
+
readonly user: Address;
|
|
291
|
+
readonly rewardMint: Address;
|
|
292
|
+
}
|
|
293
|
+
/** Input for onStakeEvent() */
|
|
294
|
+
export interface OnStakeEventInput {
|
|
295
|
+
readonly callback: EventCallback<StakeEvent>;
|
|
296
|
+
}
|
|
297
|
+
/** Input for onUnstakeEvent() */
|
|
298
|
+
export interface OnUnstakeEventInput {
|
|
299
|
+
readonly callback: EventCallback<UnstakeEvent>;
|
|
300
|
+
}
|
|
301
|
+
/** Input for onClaimUnstakeEvent() */
|
|
302
|
+
export interface OnClaimUnstakeEventInput {
|
|
303
|
+
readonly callback: EventCallback<ClaimUnstakeEvent>;
|
|
304
|
+
}
|
|
305
|
+
/** Input for onPauseEvent() */
|
|
306
|
+
export interface OnPauseEventInput {
|
|
307
|
+
readonly callback: EventCallback<PauseEvent>;
|
|
308
|
+
}
|
|
309
|
+
/** Input for onAuthorityUpdatedEvent() */
|
|
310
|
+
export interface OnAuthorityUpdatedEventInput {
|
|
311
|
+
readonly callback: EventCallback<AuthorityUpdatedEvent>;
|
|
312
|
+
}
|
|
313
|
+
/** Input for removeEventListener() */
|
|
314
|
+
export interface RemoveEventListenerInput {
|
|
315
|
+
readonly listenerId: ListenerId;
|
|
316
|
+
}
|
|
317
|
+
export interface StakingSDKInterface {
|
|
318
|
+
readonly program: Program<StakeProgram>;
|
|
319
|
+
readonly provider: AnchorProvider;
|
|
320
|
+
readonly programId: Address;
|
|
321
|
+
getStakePoolPDA(): PDAWithBump;
|
|
322
|
+
getUserStakePDA(input: GetUserStakePDAInput): PDAWithBump;
|
|
323
|
+
getStakeVaultPDA(input: GetStakeVaultPDAInput): PDAWithBump;
|
|
324
|
+
getRewardTokenPDA(input: GetRewardTokenPDAInput): PDAWithBump;
|
|
325
|
+
getRewardVaultPDA(input: GetRewardVaultPDAInput): PDAWithBump;
|
|
326
|
+
getUserRewardInfoPDA(input: GetUserRewardInfoPDAInput): PDAWithBump;
|
|
327
|
+
initialize(input: InitializeInput): Promise<TransactionOutput>;
|
|
328
|
+
stake(input: StakeInput): Promise<TransactionOutput>;
|
|
329
|
+
unstake(input: UnstakeInput): Promise<TransactionOutput>;
|
|
330
|
+
claimUnstake(input?: ClaimUnstakeInput): Promise<TransactionOutput>;
|
|
331
|
+
depositRewards(input: DepositRewardsInput): Promise<TransactionOutput>;
|
|
332
|
+
claimRewards(input: ClaimRewardsInput): Promise<TransactionOutput>;
|
|
333
|
+
switchPause(input?: SwitchPauseInput): Promise<TransactionOutput>;
|
|
334
|
+
updateAuthority(input: UpdateAuthorityInput): Promise<TransactionOutput>;
|
|
335
|
+
getStakePool(): Promise<GetStakePoolOutput>;
|
|
336
|
+
getUserStake(input?: GetUserStakeInput): Promise<GetUserStakeOutput>;
|
|
337
|
+
getRewardToken(input: GetRewardTokenInput): Promise<GetRewardTokenOutput>;
|
|
338
|
+
getUserRewardInfo(input: GetUserRewardInfoInput): Promise<GetUserRewardInfoOutput>;
|
|
339
|
+
getUserPoolShare(input?: GetUserPoolShareInput): Promise<GetUserPoolShareOutput>;
|
|
340
|
+
canClaimUnstake(input?: CanClaimUnstakeInput): Promise<CanClaimUnstakeOutput>;
|
|
341
|
+
getTimeUntilClaim(input?: GetTimeUntilClaimInput): Promise<GetTimeUntilClaimOutput>;
|
|
342
|
+
getUnstakeStatus(input?: GetUnstakeStatusInput): Promise<UnstakeStatus>;
|
|
343
|
+
getPendingRewards(input: GetPendingRewardsInput): Promise<GetPendingRewardsOutput>;
|
|
344
|
+
isPaused(): Promise<IsPausedOutput>;
|
|
345
|
+
getActiveRewardMint(): Promise<GetActiveRewardMintOutput>;
|
|
346
|
+
getAllStakers(): Promise<GetAllStakersOutput>;
|
|
347
|
+
onStakeEvent(input: OnStakeEventInput): ListenerId;
|
|
348
|
+
onUnstakeEvent(input: OnUnstakeEventInput): ListenerId;
|
|
349
|
+
onClaimUnstakeEvent(input: OnClaimUnstakeEventInput): ListenerId;
|
|
350
|
+
onPauseEvent(input: OnPauseEventInput): ListenerId;
|
|
351
|
+
onAuthorityUpdatedEvent(input: OnAuthorityUpdatedEventInput): ListenerId;
|
|
352
|
+
removeEventListener(input: RemoveEventListenerInput): Promise<void>;
|
|
353
|
+
}
|
|
354
|
+
export declare const StakeErrorCode: {
|
|
355
|
+
readonly InvalidAmount: 6000;
|
|
356
|
+
readonly InsufficientStake: 6001;
|
|
357
|
+
readonly UnstakePending: 6002;
|
|
358
|
+
readonly NoPendingUnstake: 6003;
|
|
359
|
+
readonly UnlockPeriodNotComplete: 6004;
|
|
360
|
+
readonly InvalidMint: 6005;
|
|
361
|
+
readonly InvalidOwner: 6006;
|
|
362
|
+
readonly NullStakeAmount: 6007;
|
|
363
|
+
readonly MathOverflow: 6008;
|
|
364
|
+
readonly ProtocolPaused: 6009;
|
|
365
|
+
readonly Unauthorized: 6010;
|
|
366
|
+
readonly NoStakers: 6011;
|
|
367
|
+
readonly RewardAccountsRequired: 6012;
|
|
368
|
+
readonly StakeBelowMinimum: 6013;
|
|
369
|
+
readonly UnstakeBelowMinimum: 6014;
|
|
370
|
+
};
|
|
371
|
+
export type StakeErrorCode = (typeof StakeErrorCode)[keyof typeof StakeErrorCode];
|
|
372
|
+
/** Unlock period in seconds (30 days) */
|
|
373
|
+
export declare const UNLOCK_PERIOD_SECONDS: number;
|
|
374
|
+
/** Precision scalar for reward calculations (1e18) */
|
|
375
|
+
export declare const REWARD_PRECISION: bigint;
|
|
376
|
+
/** Minimum stake amount in base units (100 tokens with 6 decimals) */
|
|
377
|
+
export declare const MIN_STAKE_AMOUNT = 100000000;
|
|
378
|
+
/** Minimum unstake amount in base units (100 tokens with 6 decimals) */
|
|
379
|
+
export declare const MIN_UNSTAKE_AMOUNT = 100000000;
|
|
380
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MIN_UNSTAKE_AMOUNT = exports.MIN_STAKE_AMOUNT = exports.REWARD_PRECISION = exports.UNLOCK_PERIOD_SECONDS = exports.StakeErrorCode = void 0;
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Error Codes
|
|
6
|
+
// ============================================================================
|
|
7
|
+
exports.StakeErrorCode = {
|
|
8
|
+
InvalidAmount: 6000,
|
|
9
|
+
InsufficientStake: 6001,
|
|
10
|
+
UnstakePending: 6002,
|
|
11
|
+
NoPendingUnstake: 6003,
|
|
12
|
+
UnlockPeriodNotComplete: 6004,
|
|
13
|
+
InvalidMint: 6005,
|
|
14
|
+
InvalidOwner: 6006,
|
|
15
|
+
NullStakeAmount: 6007,
|
|
16
|
+
MathOverflow: 6008,
|
|
17
|
+
ProtocolPaused: 6009,
|
|
18
|
+
Unauthorized: 6010,
|
|
19
|
+
NoStakers: 6011,
|
|
20
|
+
RewardAccountsRequired: 6012,
|
|
21
|
+
StakeBelowMinimum: 6013,
|
|
22
|
+
UnstakeBelowMinimum: 6014,
|
|
23
|
+
};
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// Constants
|
|
26
|
+
// ============================================================================
|
|
27
|
+
/** Unlock period in seconds (30 days) */
|
|
28
|
+
exports.UNLOCK_PERIOD_SECONDS = 30 * 24 * 60 * 60;
|
|
29
|
+
/** Precision scalar for reward calculations (1e18) */
|
|
30
|
+
exports.REWARD_PRECISION = BigInt('1000000000000000000');
|
|
31
|
+
/** Minimum stake amount in base units (100 tokens with 6 decimals) */
|
|
32
|
+
exports.MIN_STAKE_AMOUNT = 100_000_000;
|
|
33
|
+
/** Minimum unstake amount in base units (100 tokens with 6 decimals) */
|
|
34
|
+
exports.MIN_UNSTAKE_AMOUNT = 100_000_000;
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAucA,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAElE,QAAA,cAAc,GAAG;IAC5B,aAAa,EAAE,IAAI;IACnB,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,uBAAuB,EAAE,IAAI;IAC7B,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,sBAAsB,EAAE,IAAI;IAC5B,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI;CACjB,CAAC;AAIX,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,yCAAyC;AAC5B,QAAA,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEvD,sDAAsD;AACzC,QAAA,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAE9D,sEAAsE;AACzD,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAE5C,wEAAwE;AAC3D,QAAA,kBAAkB,GAAG,WAAW,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@star-factory/sdk-staking",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Staking SDK for the Star protocol",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Star Team",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/star-protocol/star-vault.git",
|
|
10
|
+
"directory": "sdks/sdk-staking"
|
|
11
|
+
},
|
|
12
|
+
"publishConfig": {
|
|
13
|
+
"access": "public"
|
|
14
|
+
},
|
|
15
|
+
"main": "dist/index.js",
|
|
16
|
+
"module": "dist/index.js",
|
|
17
|
+
"types": "dist/index.d.ts",
|
|
18
|
+
"type": "commonjs",
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "rm -rf dist && tsc -p ./tsconfig.json && mkdir -p dist/idl && cp src/idl/staking.json dist/idl/staking.json",
|
|
21
|
+
"prepublishOnly": "yarn build",
|
|
22
|
+
"clean": "rm -rf dist",
|
|
23
|
+
"snapshot": "ts-node scripts/staker-snapshot.ts"
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@coral-xyz/anchor": "0.31.1",
|
|
30
|
+
"@solana/spl-token": "^0.4.13",
|
|
31
|
+
"@solana/web3.js": "^1.98.4",
|
|
32
|
+
"bn.js": "^5.2.1"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/node": "^20.0.0",
|
|
36
|
+
"ts-node": "^10.9.2",
|
|
37
|
+
"typescript": "^5.8.2"
|
|
38
|
+
},
|
|
39
|
+
"exports": {
|
|
40
|
+
".": {
|
|
41
|
+
"types": "./dist/index.d.ts",
|
|
42
|
+
"import": "./dist/index.js",
|
|
43
|
+
"require": "./dist/index.js",
|
|
44
|
+
"default": "./dist/index.js"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|