@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.
@@ -0,0 +1,141 @@
1
+ import { AnchorProvider, Program, web3 } from '@coral-xyz/anchor';
2
+ import type { CanClaimUnstakeInput, CanClaimUnstakeOutput, ClaimRewardsInput, ClaimUnstakeInput, DepositRewardsInput, GetActiveRewardMintOutput, GetAllStakersOutput, GetPendingRewardsInput, GetPendingRewardsOutput, GetRewardTokenInput, GetRewardTokenOutput, GetRewardTokenPDAInput, GetRewardVaultPDAInput, GetStakePoolOutput, GetStakeVaultPDAInput, GetTimeUntilClaimInput, GetTimeUntilClaimOutput, GetUnstakeStatusInput, GetUserPoolShareInput, GetUserPoolShareOutput, GetUserRewardInfoInput, GetUserRewardInfoOutput, GetUserRewardInfoPDAInput, GetUserStakeInput, GetUserStakeOutput, GetUserStakePDAInput, InitializeInput, IsPausedOutput, ListenerId, OnAuthorityUpdatedEventInput, OnClaimUnstakeEventInput, OnPauseEventInput, OnStakeEventInput, OnUnstakeEventInput, PDAWithBump, RemoveEventListenerInput, StakeInput, StakeProgram, StakingSDKInterface, SwitchPauseInput, TransactionOutput, UnstakeInput, UnstakeStatus, UpdateAuthorityInput } from './types';
3
+ export * from './types';
4
+ /**
5
+ * StakingSDK - Client SDK for the Staking program
6
+ *
7
+ * All methods use clear Input/Output types for type safety and discoverability.
8
+ */
9
+ export declare class StakingSDK implements StakingSDKInterface {
10
+ readonly program: Program<StakeProgram>;
11
+ readonly provider: AnchorProvider;
12
+ readonly programId: web3.PublicKey;
13
+ constructor(program: Program<StakeProgram>, provider: AnchorProvider);
14
+ /**
15
+ * Static factory method to create SDK instance
16
+ */
17
+ static create(provider: AnchorProvider, programId?: web3.PublicKey): Promise<StakingSDK>;
18
+ getStakePoolPDA(): PDAWithBump;
19
+ getUserStakePDA(input: GetUserStakePDAInput): PDAWithBump;
20
+ getStakeVaultPDA(input: GetStakeVaultPDAInput): PDAWithBump;
21
+ getRewardTokenPDA(input: GetRewardTokenPDAInput): PDAWithBump;
22
+ getRewardVaultPDA(input: GetRewardVaultPDAInput): PDAWithBump;
23
+ getUserRewardInfoPDA(input: GetUserRewardInfoPDAInput): PDAWithBump;
24
+ /**
25
+ * Initialize the staking pool
26
+ */
27
+ initialize(input: InitializeInput): Promise<TransactionOutput>;
28
+ /**
29
+ * Stake tokens
30
+ */
31
+ stake(input: StakeInput): Promise<TransactionOutput>;
32
+ /**
33
+ * Unstake tokens (starts 30-day unlock period)
34
+ */
35
+ unstake(input: UnstakeInput): Promise<TransactionOutput>;
36
+ /**
37
+ * Claim unstaked tokens after 30-day period
38
+ */
39
+ claimUnstake(input?: ClaimUnstakeInput): Promise<TransactionOutput>;
40
+ /**
41
+ * Deposit rewards into the pool (admin only)
42
+ */
43
+ depositRewards(input: DepositRewardsInput): Promise<TransactionOutput>;
44
+ /**
45
+ * Claim accumulated rewards
46
+ */
47
+ claimRewards(input: ClaimRewardsInput): Promise<TransactionOutput>;
48
+ /**
49
+ * Toggle pause on contract (admin only) - USE ONLY IN CASE OF EMERGENCY
50
+ */
51
+ switchPause(input?: SwitchPauseInput): Promise<TransactionOutput>;
52
+ /**
53
+ * Transfer pool authority to a new account (current authority only)
54
+ */
55
+ updateAuthority(input: UpdateAuthorityInput): Promise<TransactionOutput>;
56
+ /**
57
+ * Get stake pool data
58
+ */
59
+ getStakePool(): Promise<GetStakePoolOutput>;
60
+ /**
61
+ * Get user stake data
62
+ */
63
+ getUserStake(input?: GetUserStakeInput): Promise<GetUserStakeOutput>;
64
+ /**
65
+ * Get reward token config data
66
+ */
67
+ getRewardToken(input: GetRewardTokenInput): Promise<GetRewardTokenOutput>;
68
+ /**
69
+ * Get user reward info data
70
+ */
71
+ getUserRewardInfo(input: GetUserRewardInfoInput): Promise<GetUserRewardInfoOutput>;
72
+ /**
73
+ * Calculate user's proportional share of the pool
74
+ */
75
+ getUserPoolShare(input?: GetUserPoolShareInput): Promise<GetUserPoolShareOutput>;
76
+ /**
77
+ * Check if user can claim unstake
78
+ */
79
+ canClaimUnstake(input?: CanClaimUnstakeInput): Promise<CanClaimUnstakeOutput>;
80
+ /**
81
+ * Get time remaining until claim is available
82
+ */
83
+ getTimeUntilClaim(input?: GetTimeUntilClaimInput): Promise<GetTimeUntilClaimOutput>;
84
+ /**
85
+ * Get comprehensive unstake status for UI display.
86
+ * Single RPC call that returns all information needed to render unstake UI.
87
+ */
88
+ getUnstakeStatus(input?: GetUnstakeStatusInput): Promise<UnstakeStatus>;
89
+ /**
90
+ * Calculate pending rewards for a user (without claiming)
91
+ */
92
+ getPendingRewards(input: GetPendingRewardsInput): Promise<GetPendingRewardsOutput>;
93
+ /**
94
+ * Check if protocol is paused
95
+ */
96
+ isPaused(): Promise<IsPausedOutput>;
97
+ /**
98
+ * Check if rewards are active (reward mint has been set)
99
+ */
100
+ getActiveRewardMint(): Promise<GetActiveRewardMintOutput>;
101
+ /**
102
+ * Get all stakers and their staking positions.
103
+ * Useful for computing reward distributions or snapshots.
104
+ */
105
+ getAllStakers(): Promise<GetAllStakersOutput>;
106
+ /**
107
+ * Listen for stake events
108
+ */
109
+ onStakeEvent(input: OnStakeEventInput): ListenerId;
110
+ /**
111
+ * Listen for unstake events
112
+ */
113
+ onUnstakeEvent(input: OnUnstakeEventInput): ListenerId;
114
+ /**
115
+ * Listen for claim unstake events
116
+ */
117
+ onClaimUnstakeEvent(input: OnClaimUnstakeEventInput): ListenerId;
118
+ /**
119
+ * Listen for pause events
120
+ */
121
+ onPauseEvent(input: OnPauseEventInput): ListenerId;
122
+ /**
123
+ * Listen for authority updated events
124
+ */
125
+ onAuthorityUpdatedEvent(input: OnAuthorityUpdatedEventInput): ListenerId;
126
+ /**
127
+ * Remove event listener
128
+ */
129
+ removeEventListener(input: RemoveEventListenerInput): Promise<void>;
130
+ /**
131
+ * Format seconds into human-readable string (e.g., "5d 3h 22m")
132
+ * @internal
133
+ */
134
+ private formatTimeRemaining;
135
+ private get accounts();
136
+ private fetchStakePool;
137
+ private fetchUserStake;
138
+ private fetchRewardToken;
139
+ private fetchUserRewardInfo;
140
+ }
141
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}