@emblemvault/primitives-stake 0.5.1 → 0.7.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/dist/client.d.ts +165 -30
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +343 -56
- package/dist/client.js.map +1 -1
- package/dist/codec.d.ts +52 -44
- package/dist/codec.d.ts.map +1 -1
- package/dist/codec.js +193 -68
- package/dist/codec.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/pda.d.ts +39 -3
- package/dist/pda.d.ts.map +1 -1
- package/dist/pda.js +51 -4
- package/dist/pda.js.map +1 -1
- package/dist/types.d.ts +63 -11
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/pda.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pda.d.ts","sourceRoot":"","sources":["../src/pda.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pda.d.ts","sourceRoot":"","sources":["../src/pda.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEtF,eAAO,MAAM,eAAe,qBAA4B,CAAC;AACzD,eAAO,MAAM,gBAAgB,qBAA6B,CAAC;AAC3D,eAAO,MAAM,gBAAgB,qBAA6B,CAAC;AAC3D,eAAO,MAAM,iBAAiB,qBAA8B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,qBAAiC,CAAC;AACnE,eAAO,MAAM,oBAAoB,qBAAiC,CAAC;AACnE,eAAO,MAAM,qBAAqB,qBAAkC,CAAC;AACrE,eAAO,MAAM,oBAAoB,qBAAiC,CAAC;AAEnE;;;;;;;GAOG;AACH,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAM5B,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,SAAS,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,UAAU,CAS3E;AAMD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,UAAU,CAS7E;AAMD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB;;mDAE+C;IAC/C,UAAU,EAAE,aAAa,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,UAAU,CAU7E;AAUD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,aAAa,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,UAAU,CAS/E;AAMD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,GAAG,UAAU,CAQrF;AAMD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,GAAG,UAAU,CAO5E;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,aAAa,GAAG,UAAU,CAO5E;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,aAAa,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,4BAA4B,GACjC,UAAU,CASZ;AAMD,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASlE"}
|
package/dist/pda.js
CHANGED
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PDA derivation for the stake program.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Bundle 9+232 (2026-05-06) seeds:
|
|
5
5
|
* StakePool: [b"stake-pool", asset_mint, pool_id_le_u32]
|
|
6
6
|
* StakeVault: [b"stake-vault", pool_pda, owner]
|
|
7
|
-
*
|
|
7
|
+
* PrincipalVault: [b"principal-vault", pool_pda]
|
|
8
|
+
* RewardVault: [b"reward-vault", pool_pda, reward_mint] (was [b"reward-vault", pool_pda])
|
|
9
|
+
* RewardDistribution: [b"reward-dist", pool_pda, reward_mint, period_id_le_u32]
|
|
10
|
+
* (was [b"reward-dist", pool_pda, period_id_le_u32])
|
|
11
|
+
* PlatformConfig: [b"platform-config"] (singleton)
|
|
12
|
+
* PlatformAccrual: [b"platform-accrual", pool_pda, reward_mint] (Bundle 9+232)
|
|
13
|
+
* VaultAuthority: [b"vault-authority"] (signer for transfers out of program-owned vaults)
|
|
8
14
|
*
|
|
9
|
-
*
|
|
15
|
+
* Pre-bundle reward-vault and reward-dist seeds are GONE — any caller
|
|
16
|
+
* that still passes the pre-bundle shape will hit `AccountNotInitialized`
|
|
17
|
+
* on chain. fauxnet bootstrap-mit12 wipes pre-bundle accounts.
|
|
10
18
|
*/
|
|
11
19
|
import { PublicKey } from '@solana/web3.js';
|
|
12
20
|
import { STAKE_PROGRAM_ID } from '@emblemvault/primitives-shared';
|
|
13
21
|
export const STAKE_POOL_SEED = Buffer.from('stake-pool');
|
|
14
22
|
export const STAKE_VAULT_SEED = Buffer.from('stake-vault');
|
|
15
23
|
export const REWARD_DIST_SEED = Buffer.from('reward-dist');
|
|
24
|
+
export const REWARD_VAULT_SEED = Buffer.from('reward-vault');
|
|
25
|
+
export const PRINCIPAL_VAULT_SEED = Buffer.from('principal-vault');
|
|
26
|
+
export const PLATFORM_CONFIG_SEED = Buffer.from('platform-config');
|
|
27
|
+
export const PLATFORM_ACCRUAL_SEED = Buffer.from('platform-accrual');
|
|
28
|
+
export const VAULT_AUTHORITY_SEED = Buffer.from('vault-authority');
|
|
16
29
|
/**
|
|
17
30
|
* Stake program id — derived from `keys/stake.json` and emitted by
|
|
18
31
|
* `scripts/derive-program-ids.mjs` into `shared/src/program-ids.generated.ts`.
|
|
@@ -38,9 +51,43 @@ export function deriveStakeVaultPda(args) {
|
|
|
38
51
|
}
|
|
39
52
|
export function deriveRewardDistPda(args) {
|
|
40
53
|
const poolKey = new PublicKey(args.poolPda);
|
|
54
|
+
const mintKey = new PublicKey(args.rewardMint);
|
|
41
55
|
const periodBytes = encodeU32(args.periodId, 'periodId');
|
|
42
56
|
const programKey = new PublicKey(args.programId);
|
|
43
|
-
const [pda, bump] = PublicKey.findProgramAddressSync([REWARD_DIST_SEED, poolKey.toBytes(), periodBytes], programKey);
|
|
57
|
+
const [pda, bump] = PublicKey.findProgramAddressSync([REWARD_DIST_SEED, poolKey.toBytes(), mintKey.toBytes(), periodBytes], programKey);
|
|
58
|
+
return { pda, bump };
|
|
59
|
+
}
|
|
60
|
+
export function deriveRewardVaultPda(args) {
|
|
61
|
+
const poolKey = new PublicKey(args.poolPda);
|
|
62
|
+
const mintKey = new PublicKey(args.rewardMint);
|
|
63
|
+
const programKey = new PublicKey(args.programId);
|
|
64
|
+
const [pda, bump] = PublicKey.findProgramAddressSync([REWARD_VAULT_SEED, poolKey.toBytes(), mintKey.toBytes()], programKey);
|
|
65
|
+
return { pda, bump };
|
|
66
|
+
}
|
|
67
|
+
export function derivePrincipalVaultPda(args) {
|
|
68
|
+
const poolKey = new PublicKey(args.poolPda);
|
|
69
|
+
const programKey = new PublicKey(args.programId);
|
|
70
|
+
const [pda, bump] = PublicKey.findProgramAddressSync([PRINCIPAL_VAULT_SEED, poolKey.toBytes()], programKey);
|
|
71
|
+
return { pda, bump };
|
|
72
|
+
}
|
|
73
|
+
// ============================================================================
|
|
74
|
+
// PlatformConfig + VaultAuthority + PlatformAccrual PDAs
|
|
75
|
+
// ============================================================================
|
|
76
|
+
export function derivePlatformConfigPda(programId) {
|
|
77
|
+
const programKey = new PublicKey(programId);
|
|
78
|
+
const [pda, bump] = PublicKey.findProgramAddressSync([PLATFORM_CONFIG_SEED], programKey);
|
|
79
|
+
return { pda, bump };
|
|
80
|
+
}
|
|
81
|
+
export function deriveVaultAuthorityPda(programId) {
|
|
82
|
+
const programKey = new PublicKey(programId);
|
|
83
|
+
const [pda, bump] = PublicKey.findProgramAddressSync([VAULT_AUTHORITY_SEED], programKey);
|
|
84
|
+
return { pda, bump };
|
|
85
|
+
}
|
|
86
|
+
export function derivePlatformAccrualPda(args) {
|
|
87
|
+
const poolKey = new PublicKey(args.poolPda);
|
|
88
|
+
const mintKey = new PublicKey(args.rewardMint);
|
|
89
|
+
const programKey = new PublicKey(args.programId);
|
|
90
|
+
const [pda, bump] = PublicKey.findProgramAddressSync([PLATFORM_ACCRUAL_SEED, poolKey.toBytes(), mintKey.toBytes()], programKey);
|
|
44
91
|
return { pda, bump };
|
|
45
92
|
}
|
|
46
93
|
// ============================================================================
|
package/dist/pda.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pda.js","sourceRoot":"","sources":["../src/pda.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pda.js","sourceRoot":"","sources":["../src/pda.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -58,8 +58,17 @@ export interface StakePoolAccount {
|
|
|
58
58
|
totalStaked: bigint;
|
|
59
59
|
/** Total weighted-stake (sum of stake × multiplier across all vaults). */
|
|
60
60
|
totalWeightedStake: bigint;
|
|
61
|
-
/**
|
|
62
|
-
|
|
61
|
+
/** Bundle 9+232 (2026-05-06) — registered reward token streams for
|
|
62
|
+
* this pool. Each entry has its own vault PDA at
|
|
63
|
+
* `[b"reward-vault", pool, mint]`, its own period counter (parallel
|
|
64
|
+
* index in `currentPeriods`), and its own last-distributed timestamp
|
|
65
|
+
* (parallel index in `lastDistributedAts`). Cap MAX_REWARD_MINTS = 4.
|
|
66
|
+
* Empty Vec is allowed (no streams yet); pool authority appends via
|
|
67
|
+
* `register_pool_reward_mint`. */
|
|
68
|
+
rewardMints: SolanaAddress[];
|
|
69
|
+
/** Bundle 9+232 — per-stream period counter, parallel-indexed with
|
|
70
|
+
* `rewardMints`. Increments on each `distribute_rewards(rewardMint)`. */
|
|
71
|
+
currentPeriods: number[];
|
|
63
72
|
/** Monotonic version, incremented on update. */
|
|
64
73
|
version: number;
|
|
65
74
|
/** Unix-seconds at creation. */
|
|
@@ -71,13 +80,10 @@ export interface StakePoolAccount {
|
|
|
71
80
|
/** ST-2 follow-on — set by `admin_pause_pool` (platform admin from
|
|
72
81
|
* stake's PlatformConfig); cleared by `admin_unpause_pool`. */
|
|
73
82
|
pausedByAdmin: boolean;
|
|
74
|
-
/**
|
|
75
|
-
* `
|
|
76
|
-
*
|
|
77
|
-
|
|
78
|
-
* to `0` at pool creation; first successful distribute always passes
|
|
79
|
-
* the floor (any cadence + `now > 0` clears 0). */
|
|
80
|
-
lastDistributedAt: number;
|
|
83
|
+
/** Bundle 9+232 (2026-05-06) — per-stream last-distributed timestamps,
|
|
84
|
+
* parallel-indexed with `rewardMints`. ST-3 grief-fix is per-stream:
|
|
85
|
+
* distributing one mint doesn't bump the floor for another. */
|
|
86
|
+
lastDistributedAts: number[];
|
|
81
87
|
/** ST-8 / X-2 (2026-05-04) — per-pool pending authority for the
|
|
82
88
|
* two-step rotation. Set by `propose_authority` (current authority
|
|
83
89
|
* signs); cleared by `accept_authority` (proposed authority signs).
|
|
@@ -124,10 +130,36 @@ export interface StakePlatformConfigAccount {
|
|
|
124
130
|
/** Audit doc 10 X-2 (2026-05-04) — set by `propose_admin`, cleared by
|
|
125
131
|
* `accept_admin`. `null` when no rotation is in flight. */
|
|
126
132
|
pendingAdmin: SolanaAddress | null;
|
|
133
|
+
/** Bundle 9+232 (2026-05-06) — Emblem's protocol fee on stake reward
|
|
134
|
+
* distributions, in basis points (0..3_000 = 0–30%). Capped at
|
|
135
|
+
* `STAKE_PLATFORM_FEE_BPS_MAX` by `set_platform_fee_bps`. Read by
|
|
136
|
+
* `distribute_rewards` to compute the bookkeeping split between the
|
|
137
|
+
* staker pool and `PlatformAccrual.pending`. Mainnet ships at 0.
|
|
138
|
+
* Never exposed to creators. */
|
|
139
|
+
feeBps: number;
|
|
127
140
|
}
|
|
128
141
|
export interface StakePlatformConfigView extends StakePlatformConfigAccount {
|
|
129
142
|
platformConfigPda: SolanaAddress;
|
|
130
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Bundle 9+232 (2026-05-06) — per-stream platform-fee accrual.
|
|
146
|
+
*
|
|
147
|
+
* One PDA per `(pool, rewardMint)`, seeds
|
|
148
|
+
* `[b"platform-accrual", pool, rewardMint]`. Init'd alongside the
|
|
149
|
+
* reward vault by `register_pool_reward_mint`. Mutated by
|
|
150
|
+
* `distribute_rewards` (increments `pending`) and
|
|
151
|
+
* `emblem_claim_platform_fee` (drains `pending` → admin treasury ATA,
|
|
152
|
+
* resets to 0).
|
|
153
|
+
*/
|
|
154
|
+
export interface PlatformAccrualAccount {
|
|
155
|
+
poolPda: SolanaAddress;
|
|
156
|
+
rewardMint: SolanaAddress;
|
|
157
|
+
/** Bookkept Emblem fee owed but not-yet-transferred. */
|
|
158
|
+
pending: bigint;
|
|
159
|
+
}
|
|
160
|
+
export interface PlatformAccrualView extends PlatformAccrualAccount {
|
|
161
|
+
accrualPda: SolanaAddress;
|
|
162
|
+
}
|
|
131
163
|
/**
|
|
132
164
|
* The on-chain StakeVaultAccount — one per (pool, owner).
|
|
133
165
|
*
|
|
@@ -146,8 +178,13 @@ export interface StakeVaultAccount {
|
|
|
146
178
|
lockEndsAt: number;
|
|
147
179
|
/** Accrued but-not-yet-claimed rewards (base units of asset OR reward token, depending on source). */
|
|
148
180
|
accruedRewards: bigint;
|
|
149
|
-
/**
|
|
150
|
-
|
|
181
|
+
/** Bundle 9+232 (2026-05-06) — last-claimed period per reward stream,
|
|
182
|
+
* parallel-indexed with `pool.rewardMints`. When the staker claims
|
|
183
|
+
* stream `i`, `lastClaimPeriods[i]` advances to the pool's
|
|
184
|
+
* `currentPeriods[i]`. Initialized at stake time to the pool's
|
|
185
|
+
* current per-mint counters (no historical claims). Cap MAX_REWARD_MINTS
|
|
186
|
+
* so vault size stays bounded. */
|
|
187
|
+
lastClaimPeriods: number[];
|
|
151
188
|
/** Unix-seconds at last claim. */
|
|
152
189
|
lastClaimAt: number;
|
|
153
190
|
/** Unix-seconds at which the stake was first created. */
|
|
@@ -205,6 +242,13 @@ export interface CreatePoolArgs {
|
|
|
205
242
|
config: StakePoolConfig;
|
|
206
243
|
/** Optional explicit pool id; if omitted, the SDK derives the next sequential value. */
|
|
207
244
|
poolId?: number;
|
|
245
|
+
/** Bundle 9+232 (2026-05-06) — optional initial reward token mints
|
|
246
|
+
* to register at pool create time. Each mint must be appended via
|
|
247
|
+
* `register_pool_reward_mint` to init its vault PDA + PlatformAccrual.
|
|
248
|
+
* The SDK chains those ixs after `create_pool` if this list is
|
|
249
|
+
* non-empty. Cap MAX_REWARD_MINTS = 4. Defaults to `[]` (caller
|
|
250
|
+
* registers streams later). */
|
|
251
|
+
initialRewardMints?: SolanaAddress[];
|
|
208
252
|
}
|
|
209
253
|
export interface StakeArgs {
|
|
210
254
|
poolPda: SolanaAddress;
|
|
@@ -215,11 +259,19 @@ export interface UnstakeArgs {
|
|
|
215
259
|
poolPda: SolanaAddress;
|
|
216
260
|
amount: bigint;
|
|
217
261
|
}
|
|
262
|
+
/** Bundle 9+232 (2026-05-06) — claim is per-reward-stream. Caller picks
|
|
263
|
+
* one mint to claim against; `claimAllRewards` (helper) loops if you
|
|
264
|
+
* want all streams in one call. */
|
|
218
265
|
export interface ClaimRewardsArgs {
|
|
219
266
|
poolPda: SolanaAddress;
|
|
267
|
+
rewardMint: SolanaAddress;
|
|
220
268
|
}
|
|
269
|
+
/** Bundle 9+232 (2026-05-06) — distribute is per-reward-stream. The
|
|
270
|
+
* caller specifies which mint to snapshot; each stream advances
|
|
271
|
+
* independently. */
|
|
221
272
|
export interface DistributeRewardsArgs {
|
|
222
273
|
poolPda: SolanaAddress;
|
|
274
|
+
rewardMint: SolanaAddress;
|
|
223
275
|
}
|
|
224
276
|
export interface GetVaultArgs {
|
|
225
277
|
poolPda: SolanaAddress;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,SAAS,EAAE,aAAa,CAAC;IACzB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,EAAE,aAAa,CAAC;IACrB,qEAAqE;IACrE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,+EAA+E;IAC/E,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,kBAAkB,EAAE,kBAAkB,CAAC;IACvC;;;;;;qDAMiD;IACjD,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,gDAAgD;IAChD,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C;;;mEAG+D;IAC/D,aAAa,EAAE,aAAa,CAAC;IAC7B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,kBAAkB,EAAE,MAAM,CAAC;IAC3B
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,SAAS,EAAE,aAAa,CAAC;IACzB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,EAAE,aAAa,CAAC;IACrB,qEAAqE;IACrE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,+EAA+E;IAC/E,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,kBAAkB,EAAE,kBAAkB,CAAC;IACvC;;;;;;qDAMiD;IACjD,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,gDAAgD;IAChD,aAAa,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C;;;mEAG+D;IAC/D,aAAa,EAAE,aAAa,CAAC;IAC7B,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;uCAMmC;IACnC,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B;8EAC0E;IAC1E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB;;gEAE4D;IAC5D,iBAAiB,EAAE,OAAO,CAAC;IAC3B;oEACgE;IAChE,aAAa,EAAE,OAAO,CAAC;IACvB;;oEAEgE;IAChE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B;;;gDAG4C;IAC5C,gBAAgB,EAAE,aAAa,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC;2EACuE;IACvE,KAAK,EAAE,aAAa,CAAC;IACrB;gEAC4D;IAC5D,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC;;;;;qCAKiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAwB,SAAQ,0BAA0B;IACzE,iBAAiB,EAAE,aAAa,CAAC;CAClC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,aAAa,CAAC;IAC1B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,uCAAuC;IACvC,KAAK,EAAE,aAAa,CAAC;IACrB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,sGAAsG;IACtG,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;uCAKmC;IACnC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;uBAGmB;IACnB,2BAA2B,EAAE,MAAM,CAAC;IACpC;2DACuD;IACvD,oBAAoB,EAAE,MAAM,CAAC;IAC7B;yDACqD;IACrD,0BAA0B,EAAE,MAAM,CAAC;IACnC;sEACkE;IAClE,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;wDAIoD;IACpD,4BAA4B,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,6CAA6C;IAC7C,OAAO,EAAE,aAAa,CAAC;IACvB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,uBAAuB,EAAE,MAAM,CAAC;IAChC,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAuB,SAAQ,yBAAyB;IACvE,eAAe,EAAE,aAAa,CAAC;CAChC;AAMD,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;oCAKgC;IAChC,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;oCAEoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED;;qBAEqB;AACrB,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,8EAA8E;AAC9E,MAAM,WAAW,yBAAyB;IACxC,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE;QACR,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,6EAA6E;QAC7E,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;CACH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emblemvault/primitives-stake",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "TypeScript SDK for the Emblem stake primitive — lock-up pools, reward vaults, multipliers, and early-exit penalties.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"emblem",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@solana/spl-token": "^0.4.6",
|
|
28
28
|
"@solana/web3.js": "^1.91.0",
|
|
29
|
-
"@emblemvault/primitives-shared": "^0.
|
|
29
|
+
"@emblemvault/primitives-shared": "^0.4.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/node": "^20.0.0",
|