@wireio/stake 0.4.1 → 0.4.3

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/lib/stake.d.ts CHANGED
@@ -10,7 +10,7 @@ import { BN, AnchorProvider, Program } from '@coral-xyz/anchor';
10
10
 
11
11
  type StakerConfig = {
12
12
  network: ExternalNetwork;
13
- provider: BaseSignerWalletAdapter | ethers.providers.Web3Provider;
13
+ provider?: BaseSignerWalletAdapter | ethers.providers.Web3Provider;
14
14
  pubKey?: PublicKey;
15
15
  };
16
16
  interface IStakingClient {
@@ -24,6 +24,8 @@ interface IStakingClient {
24
24
  buy(amount: bigint): Promise<string>;
25
25
  /** Fetch the complete user portfolio */
26
26
  getPortfolio(): Promise<Portfolio>;
27
+ getSystemAPY(): Promise<number>;
28
+ getDepositFee(amount: bigint): Promise<bigint>;
27
29
  /**
28
30
  * Program-level prelaunch WIRE/tranche snapshot for this chain.
29
31
  *
@@ -36,6 +38,8 @@ interface IStakingClient {
36
38
  windowBefore?: number;
37
39
  windowAfter?: number;
38
40
  }): Promise<TrancheSnapshot | null>;
41
+ getSystemAPY(): Promise<number>;
42
+ getDepositFee(amount: bigint): Promise<bigint>;
39
43
  }
40
44
  /**
41
45
  * Cross-chain portfolio view for a single account/wallet.
@@ -98,9 +102,9 @@ interface BalanceView {
98
102
  ata?: PublicKey$1;
99
103
  }
100
104
  /**
101
- * SOL / Outpost yield view.
105
+ * Outpost yield view.
102
106
  *
103
- * All amounts are integers in base units (lamports for liqSOL).
107
+ * All amounts are integers in base units (lamports for liqSOL, wei for liqETH).
104
108
  *
105
109
  * Math matches capital-staking:
106
110
  * INDEX_SCALE = 1e12
@@ -123,19 +127,19 @@ interface YieldView {
123
127
  /** User’s staked shares in the Outpost pool. */
124
128
  userShares: bigint;
125
129
  /**
126
- * Total liqSOL (lamports) the user could claim right now if they fully
130
+ * Total liq (wei/lamports) the user could claim right now if they fully
127
131
  * unwound their stake:
128
- * estimatedClaimLiqsol = userShares * currentIndex / indexScale
132
+ * estimatedClaim = userShares * currentIndex / indexScale
129
133
  */
130
- estimatedClaimLiqsol: bigint;
134
+ estimatedClaim?: bigint;
131
135
  /**
132
- * Portion of estimatedClaimLiqsol that is “yield” above principal:
133
- * estimatedYieldLiqsol = max(0, estimatedClaimLiqsol - stakedLiqsol)
136
+ * Portion of estimatedClaim that is “yield” above principal:
137
+ * estimatedYield = max(0, estimatedClaim - staked)
134
138
  *
135
- * NOTE: stakedLiqsol principal itself is surfaced separately as
139
+ * NOTE: staked principal itself is surfaced separately as
136
140
  * Portfolio.staked.amount.
137
141
  */
138
- estimatedYieldLiqsol: bigint;
142
+ estimatedYield?: bigint;
139
143
  }
140
144
  interface TrancheLadderItem {
141
145
  /** On-chain tranche id, 0-based (0,1,2,...) */
@@ -330,9 +334,9 @@ declare namespace types$1 {
330
334
 
331
335
  declare class EthereumStakingClient implements IStakingClient {
332
336
  private config;
333
- readonly pubKey?: PublicKey;
334
337
  private readonly provider;
335
- private readonly signer;
338
+ readonly pubKey?: PublicKey;
339
+ private readonly signer?;
336
340
  private readonly contractService;
337
341
  private convertClient;
338
342
  private pretokenClient;
@@ -388,15 +392,6 @@ declare class EthereumStakingClient implements IStakingClient {
388
392
  */
389
393
  unstakePrelaunch(tokenId: bigint, recipient: string): Promise<string>;
390
394
  buy(amount: bigint): Promise<string>;
391
- getOPPMessages(address?: string): Promise<OPPAssertion[]>;
392
- getOPPStatus(): Promise<any>;
393
- /**
394
- * ETH Prelaunch function to list the Stake ReceiptNFTs owned by a specific user
395
- * @param address address to query the receipts for
396
- * @returns array of receipts
397
- */
398
- fetchPrelaunchReceipts(address?: string): Promise<preLaunchReceipt[]>;
399
- getEthStats(): Promise<any>;
400
395
  /**
401
396
  * Resolve the user's ETH + liqETH balances.
402
397
  *
@@ -405,8 +400,22 @@ declare class EthereumStakingClient implements IStakingClient {
405
400
  * tracked = liqETH tracked balance (protocol/accounting view)
406
401
  */
407
402
  getPortfolio(): Promise<Portfolio>;
403
+ /**
404
+ * ETH Prelaunch function to list the Stake ReceiptNFTs owned by a specific user
405
+ * @param address address to query the receipts for
406
+ * @returns array of receipts
407
+ */
408
+ fetchPrelaunchReceipts(address?: string): Promise<preLaunchReceipt[]>;
409
+ getOPPMessages(address?: string): Promise<OPPAssertion[]>;
410
+ private ensureUser;
411
+ getSystemAPY(): Promise<number>;
412
+ getDepositFee(amountWei: bigint): Promise<bigint>;
413
+ getOPPStatus(): Promise<any>;
414
+ getEthStats(): Promise<any>;
408
415
  /**
409
416
  * Program-level prelaunch WIRE / tranche snapshot for Ethereum
417
+ *
418
+ * SUPPORTS READ-ONLY ACcESS
410
419
  */
411
420
  getTrancheSnapshot(options?: {
412
421
  chainID?: ChainID;
@@ -1223,7 +1232,7 @@ declare class LeaderboardClient {
1223
1232
  * IDL can be found at `target/idl/liqsol_core.json`.
1224
1233
  */
1225
1234
  type LiqsolCore = {
1226
- "address": "2qSsCXBYUSwF7zrzTT9jFpRpCmWoDpEyHr9exfCMq56P";
1235
+ "address": "5nBtmutQLrRKBUxNfHJPDjiW5u8id6QM9Hhjg1D1g1XH";
1227
1236
  "metadata": {
1228
1237
  "name": "liqsolCore";
1229
1238
  "version": "0.1.0";
@@ -1237,7 +1246,8 @@ type LiqsolCore = {
1237
1246
  "Accumulate unstake requests to be processed in next allocation cycle",
1238
1247
  "Multiple requests can be accumulated before calculating allocations",
1239
1248
  "Returns the target epoch when this unstake request will be processed",
1240
- "We should not be able to"
1249
+ "We should not be able to call this without development feature enabled",
1250
+ ""
1241
1251
  ];
1242
1252
  "discriminator": [
1243
1253
  24,
@@ -1274,6 +1284,12 @@ type LiqsolCore = {
1274
1284
  "Maintenance ledger - to determine target processing epoch"
1275
1285
  ];
1276
1286
  },
1287
+ {
1288
+ "name": "globalConfig";
1289
+ "docs": [
1290
+ "Global config for min_unstake_request setting"
1291
+ ];
1292
+ },
1277
1293
  {
1278
1294
  "name": "clock";
1279
1295
  }
@@ -1325,6 +1341,12 @@ type LiqsolCore = {
1325
1341
  "name": "processingState";
1326
1342
  "writable": true;
1327
1343
  },
1344
+ {
1345
+ "name": "globalConfig";
1346
+ "docs": [
1347
+ "Global config for threshold parameters"
1348
+ ];
1349
+ },
1328
1350
  {
1329
1351
  "name": "authority";
1330
1352
  "signer": true;
@@ -1400,44 +1422,6 @@ type LiqsolCore = {
1400
1422
  }
1401
1423
  ];
1402
1424
  },
1403
- {
1404
- "name": "advanceServiceability";
1405
- "docs": [
1406
- "Advance the max servicable receipt ID"
1407
- ];
1408
- "discriminator": [
1409
- 139,
1410
- 89,
1411
- 79,
1412
- 2,
1413
- 90,
1414
- 211,
1415
- 173,
1416
- 240
1417
- ];
1418
- "accounts": [
1419
- {
1420
- "name": "authority";
1421
- "docs": [
1422
- "Authority that can update serviceable epoch"
1423
- ];
1424
- "signer": true;
1425
- },
1426
- {
1427
- "name": "global";
1428
- "writable": true;
1429
- },
1430
- {
1431
- "name": "runtimeProgram";
1432
- }
1433
- ];
1434
- "args": [
1435
- {
1436
- "name": "resolvedEpoch";
1437
- "type": "u64";
1438
- }
1439
- ];
1440
- },
1441
1425
  {
1442
1426
  "name": "aggregateStakeMetrics";
1443
1427
  "docs": [
@@ -1598,6 +1582,12 @@ type LiqsolCore = {
1598
1582
  "Maintenance ledger - to track last unstake allocation epoch"
1599
1583
  ];
1600
1584
  "writable": true;
1585
+ },
1586
+ {
1587
+ "name": "globalConfig";
1588
+ "docs": [
1589
+ "Global config for late epoch slot gate"
1590
+ ];
1601
1591
  }
1602
1592
  ];
1603
1593
  "args": [];
@@ -1661,6 +1651,12 @@ type LiqsolCore = {
1661
1651
  "docs": [
1662
1652
  "Global withdraw operator state - to read total_encumbered_funds"
1663
1653
  ];
1654
+ },
1655
+ {
1656
+ "name": "globalConfig";
1657
+ "docs": [
1658
+ "Global config for rebalancing thresholds"
1659
+ ];
1664
1660
  }
1665
1661
  ];
1666
1662
  "args": [];
@@ -1783,6 +1779,12 @@ type LiqsolCore = {
1783
1779
  {
1784
1780
  "name": "stakeHistory";
1785
1781
  },
1782
+ {
1783
+ "name": "globalConfig";
1784
+ "docs": [
1785
+ "Global config for claim_withdrawals_enabled check"
1786
+ ];
1787
+ },
1786
1788
  {
1787
1789
  "name": "tokenProgram";
1788
1790
  },
@@ -1834,6 +1836,12 @@ type LiqsolCore = {
1834
1836
  "Stake controller state - used to verify authority"
1835
1837
  ];
1836
1838
  },
1839
+ {
1840
+ "name": "globalConfig";
1841
+ "docs": [
1842
+ "Global config for cooldown_epochs"
1843
+ ];
1844
+ },
1837
1845
  {
1838
1846
  "name": "clock";
1839
1847
  },
@@ -2169,6 +2177,12 @@ type LiqsolCore = {
2169
2177
  "name": "controllerState";
2170
2178
  "writable": true;
2171
2179
  },
2180
+ {
2181
+ "name": "globalConfig";
2182
+ "docs": [
2183
+ "Global config for deposit settings"
2184
+ ];
2185
+ },
2172
2186
  {
2173
2187
  "name": "payoutState";
2174
2188
  "writable": true;
@@ -2305,47 +2319,6 @@ type LiqsolCore = {
2305
2319
  }
2306
2320
  ];
2307
2321
  },
2308
- {
2309
- "name": "forceValidatorUnstake";
2310
- "docs": [
2311
- "A function you can call to directly influence the amount to unstake from a particular validator",
2312
- "Tbh this is a bypass of the system and should not be called unless you know what you are doing"
2313
- ];
2314
- "discriminator": [
2315
- 7,
2316
- 208,
2317
- 146,
2318
- 241,
2319
- 10,
2320
- 219,
2321
- 109,
2322
- 30
2323
- ];
2324
- "accounts": [
2325
- {
2326
- "name": "admin";
2327
- "writable": true;
2328
- "signer": true;
2329
- },
2330
- {
2331
- "name": "validatorInfo";
2332
- "docs": [
2333
- "Validator info account to update"
2334
- ];
2335
- "writable": true;
2336
- }
2337
- ];
2338
- "args": [
2339
- {
2340
- "name": "voteAccount";
2341
- "type": "pubkey";
2342
- },
2343
- {
2344
- "name": "amount";
2345
- "type": "u64";
2346
- }
2347
- ];
2348
- },
2349
2322
  {
2350
2323
  "name": "getMinMaxResolvedEpochDeactivations";
2351
2324
  "docs": [
@@ -2584,6 +2557,37 @@ type LiqsolCore = {
2584
2557
  ];
2585
2558
  "args": [];
2586
2559
  },
2560
+ {
2561
+ "name": "initializeGlobalConfig";
2562
+ "discriminator": [
2563
+ 113,
2564
+ 216,
2565
+ 122,
2566
+ 131,
2567
+ 225,
2568
+ 209,
2569
+ 22,
2570
+ 55
2571
+ ];
2572
+ "accounts": [
2573
+ {
2574
+ "name": "globalConfig";
2575
+ "writable": true;
2576
+ },
2577
+ {
2578
+ "name": "controllerState";
2579
+ },
2580
+ {
2581
+ "name": "payer";
2582
+ "writable": true;
2583
+ "signer": true;
2584
+ },
2585
+ {
2586
+ "name": "systemProgram";
2587
+ }
2588
+ ];
2589
+ "args": [];
2590
+ },
2587
2591
  {
2588
2592
  "name": "initializeGraveyardList";
2589
2593
  "docs": [
@@ -3104,6 +3108,10 @@ type LiqsolCore = {
3104
3108
  ];
3105
3109
  "writable": true;
3106
3110
  },
3111
+ {
3112
+ "name": "withdrawGlobal";
3113
+ "writable": true;
3114
+ },
3107
3115
  {
3108
3116
  "name": "stakeProgram";
3109
3117
  },
@@ -3168,6 +3176,12 @@ type LiqsolCore = {
3168
3176
  "name": "processingState";
3169
3177
  "writable": true;
3170
3178
  },
3179
+ {
3180
+ "name": "globalConfig";
3181
+ "docs": [
3182
+ "Global config for late epoch slot gate"
3183
+ ];
3184
+ },
3171
3185
  {
3172
3186
  "name": "clock";
3173
3187
  },
@@ -3241,6 +3255,12 @@ type LiqsolCore = {
3241
3255
  },
3242
3256
  {
3243
3257
  "name": "instructions";
3258
+ },
3259
+ {
3260
+ "name": "globalConfig";
3261
+ "docs": [
3262
+ "Global config for process_pay_cycle_enabled check"
3263
+ ];
3244
3264
  }
3245
3265
  ];
3246
3266
  "args": [];
@@ -3312,6 +3332,12 @@ type LiqsolCore = {
3312
3332
  },
3313
3333
  {
3314
3334
  "name": "rent";
3335
+ },
3336
+ {
3337
+ "name": "globalConfig";
3338
+ "docs": [
3339
+ "Global config for process_stake_orders_enabled check"
3340
+ ];
3315
3341
  }
3316
3342
  ];
3317
3343
  "args": [];
@@ -3420,6 +3446,12 @@ type LiqsolCore = {
3420
3446
  },
3421
3447
  {
3422
3448
  "name": "stakeProgram";
3449
+ },
3450
+ {
3451
+ "name": "globalConfig";
3452
+ "docs": [
3453
+ "Global config for process_unstake_orders_enabled check"
3454
+ ];
3423
3455
  }
3424
3456
  ];
3425
3457
  "args": [];
@@ -3694,6 +3726,12 @@ type LiqsolCore = {
3694
3726
  },
3695
3727
  {
3696
3728
  "name": "activeList";
3729
+ },
3730
+ {
3731
+ "name": "globalConfig";
3732
+ "docs": [
3733
+ "Global config for late epoch slot gate"
3734
+ ];
3697
3735
  }
3698
3736
  ];
3699
3737
  "args": [];
@@ -3734,6 +3772,12 @@ type LiqsolCore = {
3734
3772
  },
3735
3773
  {
3736
3774
  "name": "activeList";
3775
+ },
3776
+ {
3777
+ "name": "globalConfig";
3778
+ "docs": [
3779
+ "Global config for late epoch slot gate"
3780
+ ];
3737
3781
  }
3738
3782
  ];
3739
3783
  "args": [];
@@ -3826,6 +3870,12 @@ type LiqsolCore = {
3826
3870
  {
3827
3871
  "name": "allocationState";
3828
3872
  },
3873
+ {
3874
+ "name": "globalConfig";
3875
+ "docs": [
3876
+ "Global config for late epoch slot gate"
3877
+ ];
3878
+ },
3829
3879
  {
3830
3880
  "name": "authority";
3831
3881
  "signer": true;
@@ -3956,6 +4006,12 @@ type LiqsolCore = {
3956
4006
  "Maintenance ledger - for accumulate_unstake_request"
3957
4007
  ];
3958
4008
  },
4009
+ {
4010
+ "name": "globalConfig";
4011
+ "docs": [
4012
+ "Global config for min_unstake_request setting"
4013
+ ];
4014
+ },
3959
4015
  {
3960
4016
  "name": "clock";
3961
4017
  },
@@ -4333,6 +4389,12 @@ type LiqsolCore = {
4333
4389
  "name": "allocationState";
4334
4390
  "writable": true;
4335
4391
  },
4392
+ {
4393
+ "name": "globalConfig";
4394
+ "docs": [
4395
+ "Global config for late epoch slot gate"
4396
+ ];
4397
+ },
4336
4398
  {
4337
4399
  "name": "systemProgram";
4338
4400
  "docs": [
@@ -4399,6 +4461,12 @@ type LiqsolCore = {
4399
4461
  "name": "maintenanceLedger";
4400
4462
  "writable": true;
4401
4463
  },
4464
+ {
4465
+ "name": "globalConfig";
4466
+ "docs": [
4467
+ "Global config for late epoch slot gate"
4468
+ ];
4469
+ },
4402
4470
  {
4403
4471
  "name": "authority";
4404
4472
  "signer": true;
@@ -4407,37 +4475,32 @@ type LiqsolCore = {
4407
4475
  "args": [];
4408
4476
  },
4409
4477
  {
4410
- "name": "syncDistributionIndex";
4478
+ "name": "syncLeaderboardScoresBatch";
4411
4479
  "discriminator": [
4412
- 82,
4413
- 159,
4414
- 232,
4415
- 125,
4416
- 12,
4417
- 29,
4418
- 9,
4419
- 226
4480
+ 52,
4481
+ 11,
4482
+ 210,
4483
+ 173,
4484
+ 90,
4485
+ 5,
4486
+ 48,
4487
+ 50
4420
4488
  ];
4421
4489
  "accounts": [
4422
4490
  {
4423
- "name": "authority";
4424
- "docs": [
4425
- "Admin or crank that triggers the index sync"
4426
- ];
4427
- "signer": true;
4491
+ "name": "leaderboardState";
4428
4492
  },
4429
4493
  {
4430
- "name": "distributionState";
4494
+ "name": "processingState";
4431
4495
  "writable": true;
4432
4496
  },
4433
4497
  {
4434
- "name": "bucketAuthority";
4435
- "docs": [
4436
- "The bucket's associated token account holding liqSOL"
4437
- ];
4498
+ "name": "maintenanceLedger";
4499
+ "writable": true;
4438
4500
  },
4439
4501
  {
4440
- "name": "bucketTokenAccount";
4502
+ "name": "authority";
4503
+ "signer": true;
4441
4504
  }
4442
4505
  ];
4443
4506
  "args": [];
@@ -4523,6 +4586,12 @@ type LiqsolCore = {
4523
4586
  "name": "maintenanceLedger";
4524
4587
  "writable": true;
4525
4588
  },
4589
+ {
4590
+ "name": "globalConfig";
4591
+ "docs": [
4592
+ "Global config for min_vpp_entry and min_vpp_exit"
4593
+ ];
4594
+ },
4526
4595
  {
4527
4596
  "name": "authority";
4528
4597
  "signer": true;
@@ -4652,39 +4721,211 @@ type LiqsolCore = {
4652
4721
  "args": [];
4653
4722
  },
4654
4723
  {
4655
- "name": "updateGrowthParameters";
4724
+ "name": "updateConfigBool";
4656
4725
  "discriminator": [
4657
- 172,
4658
- 187,
4659
- 237,
4660
- 233,
4661
- 250,
4662
- 160,
4663
- 115,
4664
- 239
4726
+ 79,
4727
+ 36,
4728
+ 65,
4729
+ 239,
4730
+ 188,
4731
+ 35,
4732
+ 13,
4733
+ 160
4665
4734
  ];
4666
4735
  "accounts": [
4667
4736
  {
4668
- "name": "admin";
4669
- "writable": true;
4670
- "signer": true;
4671
- },
4672
- {
4673
- "name": "trancheState";
4737
+ "name": "globalConfig";
4674
4738
  "writable": true;
4675
4739
  },
4676
4740
  {
4677
- "name": "priceHistory";
4678
- "writable": true;
4741
+ "name": "controllerState";
4679
4742
  },
4680
4743
  {
4681
- "name": "systemProgram";
4744
+ "name": "authority";
4745
+ "docs": [
4746
+ "Authority must match StakeControllerState.authority"
4747
+ ];
4748
+ "signer": true;
4682
4749
  }
4683
4750
  ];
4684
4751
  "args": [
4685
4752
  {
4686
- "name": "supplyGrowthBps";
4687
- "type": "u16";
4753
+ "name": "key";
4754
+ "type": {
4755
+ "defined": {
4756
+ "name": "configKeyBool";
4757
+ };
4758
+ };
4759
+ },
4760
+ {
4761
+ "name": "value";
4762
+ "type": "bool";
4763
+ }
4764
+ ];
4765
+ },
4766
+ {
4767
+ "name": "updateConfigU16";
4768
+ "discriminator": [
4769
+ 149,
4770
+ 9,
4771
+ 244,
4772
+ 25,
4773
+ 46,
4774
+ 136,
4775
+ 59,
4776
+ 173
4777
+ ];
4778
+ "accounts": [
4779
+ {
4780
+ "name": "globalConfig";
4781
+ "writable": true;
4782
+ },
4783
+ {
4784
+ "name": "controllerState";
4785
+ },
4786
+ {
4787
+ "name": "authority";
4788
+ "docs": [
4789
+ "Authority must match StakeControllerState.authority"
4790
+ ];
4791
+ "signer": true;
4792
+ }
4793
+ ];
4794
+ "args": [
4795
+ {
4796
+ "name": "key";
4797
+ "type": {
4798
+ "defined": {
4799
+ "name": "configKeyU16";
4800
+ };
4801
+ };
4802
+ },
4803
+ {
4804
+ "name": "value";
4805
+ "type": "u16";
4806
+ }
4807
+ ];
4808
+ },
4809
+ {
4810
+ "name": "updateConfigU64";
4811
+ "discriminator": [
4812
+ 120,
4813
+ 43,
4814
+ 124,
4815
+ 106,
4816
+ 97,
4817
+ 80,
4818
+ 208,
4819
+ 123
4820
+ ];
4821
+ "accounts": [
4822
+ {
4823
+ "name": "globalConfig";
4824
+ "writable": true;
4825
+ },
4826
+ {
4827
+ "name": "controllerState";
4828
+ },
4829
+ {
4830
+ "name": "authority";
4831
+ "docs": [
4832
+ "Authority must match StakeControllerState.authority"
4833
+ ];
4834
+ "signer": true;
4835
+ }
4836
+ ];
4837
+ "args": [
4838
+ {
4839
+ "name": "key";
4840
+ "type": {
4841
+ "defined": {
4842
+ "name": "configKeyU64";
4843
+ };
4844
+ };
4845
+ },
4846
+ {
4847
+ "name": "value";
4848
+ "type": "u64";
4849
+ }
4850
+ ];
4851
+ },
4852
+ {
4853
+ "name": "updateConfigU8";
4854
+ "discriminator": [
4855
+ 17,
4856
+ 160,
4857
+ 31,
4858
+ 134,
4859
+ 222,
4860
+ 250,
4861
+ 229,
4862
+ 253
4863
+ ];
4864
+ "accounts": [
4865
+ {
4866
+ "name": "globalConfig";
4867
+ "writable": true;
4868
+ },
4869
+ {
4870
+ "name": "controllerState";
4871
+ },
4872
+ {
4873
+ "name": "authority";
4874
+ "docs": [
4875
+ "Authority must match StakeControllerState.authority"
4876
+ ];
4877
+ "signer": true;
4878
+ }
4879
+ ];
4880
+ "args": [
4881
+ {
4882
+ "name": "key";
4883
+ "type": {
4884
+ "defined": {
4885
+ "name": "configKeyU8";
4886
+ };
4887
+ };
4888
+ },
4889
+ {
4890
+ "name": "value";
4891
+ "type": "u8";
4892
+ }
4893
+ ];
4894
+ },
4895
+ {
4896
+ "name": "updateGrowthParameters";
4897
+ "discriminator": [
4898
+ 172,
4899
+ 187,
4900
+ 237,
4901
+ 233,
4902
+ 250,
4903
+ 160,
4904
+ 115,
4905
+ 239
4906
+ ];
4907
+ "accounts": [
4908
+ {
4909
+ "name": "admin";
4910
+ "writable": true;
4911
+ "signer": true;
4912
+ },
4913
+ {
4914
+ "name": "trancheState";
4915
+ "writable": true;
4916
+ },
4917
+ {
4918
+ "name": "priceHistory";
4919
+ "writable": true;
4920
+ },
4921
+ {
4922
+ "name": "systemProgram";
4923
+ }
4924
+ ];
4925
+ "args": [
4926
+ {
4927
+ "name": "supplyGrowthBps";
4928
+ "type": "u16";
4688
4929
  },
4689
4930
  {
4690
4931
  "name": "priceGrowthBps";
@@ -4725,11 +4966,11 @@ type LiqsolCore = {
4725
4966
  "args": [
4726
4967
  {
4727
4968
  "name": "minPriceUsd";
4728
- "type": "i128";
4969
+ "type": "u64";
4729
4970
  },
4730
4971
  {
4731
4972
  "name": "maxPriceUsd";
4732
- "type": "i128";
4973
+ "type": "u64";
4733
4974
  },
4734
4975
  {
4735
4976
  "name": "maxStalenessSeconds";
@@ -4778,6 +5019,19 @@ type LiqsolCore = {
4778
5019
  127
4779
5020
  ];
4780
5021
  },
5022
+ {
5023
+ "name": "globalConfig";
5024
+ "discriminator": [
5025
+ 149,
5026
+ 8,
5027
+ 156,
5028
+ 202,
5029
+ 160,
5030
+ 252,
5031
+ 176,
5032
+ 217
5033
+ ];
5034
+ },
4781
5035
  {
4782
5036
  "name": "globalState";
4783
5037
  "discriminator": [
@@ -5339,6 +5593,13 @@ type LiqsolCore = {
5339
5593
  ];
5340
5594
  "type": "u16";
5341
5595
  },
5596
+ {
5597
+ "name": "leaderboardScoresNextIndex";
5598
+ "docs": [
5599
+ "Next leaderboard registry index to process for score sync"
5600
+ ];
5601
+ "type": "u16";
5602
+ },
5342
5603
  {
5343
5604
  "name": "removalNextIndex";
5344
5605
  "docs": [
@@ -5386,6 +5647,130 @@ type LiqsolCore = {
5386
5647
  ];
5387
5648
  };
5388
5649
  },
5650
+ {
5651
+ "name": "configKeyBool";
5652
+ "docs": [
5653
+ "Keys for bool config values (feature flags) - stored as bits in a u16",
5654
+ "Bit positions: 0=Deposits, 1=Withdrawals, 2=ClaimWithdrawals, 3=ProcessStake,",
5655
+ "4=ProcessUnstake, 5=ProcessPayCycle, 6=Rebalancing, 7-15=Reserved"
5656
+ ];
5657
+ "type": {
5658
+ "kind": "enum";
5659
+ "variants": [
5660
+ {
5661
+ "name": "depositsEnabled";
5662
+ },
5663
+ {
5664
+ "name": "withdrawalsEnabled";
5665
+ },
5666
+ {
5667
+ "name": "claimWithdrawalsEnabled";
5668
+ },
5669
+ {
5670
+ "name": "processStakeOrdersEnabled";
5671
+ },
5672
+ {
5673
+ "name": "processUnstakeOrdersEnabled";
5674
+ },
5675
+ {
5676
+ "name": "processPayCycleEnabled";
5677
+ },
5678
+ {
5679
+ "name": "rebalancingEnabled";
5680
+ }
5681
+ ];
5682
+ };
5683
+ },
5684
+ {
5685
+ "name": "configKeyU16";
5686
+ "docs": [
5687
+ "Keys for u16 config values (small counts, thresholds, ranks)"
5688
+ ];
5689
+ "type": {
5690
+ "kind": "enum";
5691
+ "variants": [
5692
+ {
5693
+ "name": "cooldownEpochs";
5694
+ },
5695
+ {
5696
+ "name": "depositFeeEpochsMultiplier";
5697
+ },
5698
+ {
5699
+ "name": "minVppEntry";
5700
+ },
5701
+ {
5702
+ "name": "minVppExit";
5703
+ },
5704
+ {
5705
+ "name": "tinyNetworkThreshold";
5706
+ },
5707
+ {
5708
+ "name": "smallNetworkThreshold";
5709
+ },
5710
+ {
5711
+ "name": "mediumNetworkThreshold";
5712
+ },
5713
+ {
5714
+ "name": "largeNetworkEntryRank";
5715
+ },
5716
+ {
5717
+ "name": "largeNetworkExitRank";
5718
+ }
5719
+ ];
5720
+ };
5721
+ },
5722
+ {
5723
+ "name": "configKeyU64";
5724
+ "docs": [
5725
+ "Keys for u64 config values (large amounts, rates)"
5726
+ ];
5727
+ "type": {
5728
+ "kind": "enum";
5729
+ "variants": [
5730
+ {
5731
+ "name": "minUserDeposit";
5732
+ },
5733
+ {
5734
+ "name": "minUnstakeRequest";
5735
+ },
5736
+ {
5737
+ "name": "minRebalanceStakeDelta";
5738
+ },
5739
+ {
5740
+ "name": "minRebalanceUnstakeDelta";
5741
+ },
5742
+ {
5743
+ "name": "transientThreshold";
5744
+ },
5745
+ {
5746
+ "name": "minLateEpochSlotGate";
5747
+ }
5748
+ ];
5749
+ };
5750
+ },
5751
+ {
5752
+ "name": "configKeyU8";
5753
+ "docs": [
5754
+ "Keys for u8 config values (percentages 0-100)"
5755
+ ];
5756
+ "type": {
5757
+ "kind": "enum";
5758
+ "variants": [
5759
+ {
5760
+ "name": "smallNetworkEntryPercent";
5761
+ },
5762
+ {
5763
+ "name": "smallNetworkExitPercent";
5764
+ },
5765
+ {
5766
+ "name": "mediumNetworkEntryPercent";
5767
+ },
5768
+ {
5769
+ "name": "mediumNetworkExitPercent";
5770
+ }
5771
+ ];
5772
+ };
5773
+ },
5389
5774
  {
5390
5775
  "name": "distributionState";
5391
5776
  "type": {
@@ -5524,6 +5909,213 @@ type LiqsolCore = {
5524
5909
  ];
5525
5910
  };
5526
5911
  },
5912
+ {
5913
+ "name": "globalConfig";
5914
+ "docs": [
5915
+ "Zero-copy global config PDA",
5916
+ "Authority is taken from StakeControllerState, not stored here"
5917
+ ];
5918
+ "serialization": "bytemuckunsafe";
5919
+ "repr": {
5920
+ "kind": "c";
5921
+ };
5922
+ "type": {
5923
+ "kind": "struct";
5924
+ "fields": [
5925
+ {
5926
+ "name": "bump";
5927
+ "type": "u8";
5928
+ },
5929
+ {
5930
+ "name": "padding";
5931
+ "type": {
5932
+ "array": [
5933
+ "u8",
5934
+ 7
5935
+ ];
5936
+ };
5937
+ },
5938
+ {
5939
+ "name": "minUserDeposit";
5940
+ "docs": [
5941
+ "Minimum SOL amount a user can deposit"
5942
+ ];
5943
+ "type": "u64";
5944
+ },
5945
+ {
5946
+ "name": "minUnstakeRequest";
5947
+ "docs": [
5948
+ "Minimum SOL amount for an unstake/withdrawal request"
5949
+ ];
5950
+ "type": "u64";
5951
+ },
5952
+ {
5953
+ "name": "minRebalanceStakeDelta";
5954
+ "docs": [
5955
+ "Minimum stake delta to trigger a stake rebalance order"
5956
+ ];
5957
+ "type": "u64";
5958
+ },
5959
+ {
5960
+ "name": "minRebalanceUnstakeDelta";
5961
+ "docs": [
5962
+ "Minimum unstake delta to trigger an unstake rebalance order"
5963
+ ];
5964
+ "type": "u64";
5965
+ },
5966
+ {
5967
+ "name": "transientThreshold";
5968
+ "docs": [
5969
+ "Minimum transient stake to include in effective stake calculations"
5970
+ ];
5971
+ "type": "u64";
5972
+ },
5973
+ {
5974
+ "name": "minLateEpochSlotGate";
5975
+ "docs": [
5976
+ "Minimum slots that must have elapsed in the epoch before late epoch operations can execute"
5977
+ ];
5978
+ "type": "u64";
5979
+ },
5980
+ {
5981
+ "name": "reservedU64";
5982
+ "type": {
5983
+ "array": [
5984
+ "u64",
5985
+ 2
5986
+ ];
5987
+ };
5988
+ },
5989
+ {
5990
+ "name": "cooldownEpochs";
5991
+ "docs": [
5992
+ "Epochs a validator must wait in the graveyard before it is booted. This begins after the last recorded state change"
5993
+ ];
5994
+ "type": "u16";
5995
+ },
5996
+ {
5997
+ "name": "depositFeeMultiplier";
5998
+ "docs": [
5999
+ "Multiplier for deposit fee calculation, this would be average \"pay rate x number of epochs we expect the stake to warm up\""
6000
+ ];
6001
+ "type": "u16";
6002
+ },
6003
+ {
6004
+ "name": "minVppEntry";
6005
+ "docs": [
6006
+ "Minimum VPP score required to enter the active validator set, this is a fall back for when the val set is really small"
6007
+ ];
6008
+ "type": "u16";
6009
+ },
6010
+ {
6011
+ "name": "minVppExit";
6012
+ "docs": [
6013
+ "VPP score threshold below which a validator is removed from active set, again a fall back"
6014
+ ];
6015
+ "type": "u16";
6016
+ },
6017
+ {
6018
+ "name": "tinyNetworkThreshold";
6019
+ "docs": [
6020
+ "Max validators for \"tiny\" network band (uses fixed VPP thresholds) as above"
6021
+ ];
6022
+ "type": "u16";
6023
+ },
6024
+ {
6025
+ "name": "smallNetworkThreshold";
6026
+ "docs": [
6027
+ "Max validators for \"small\" network band (uses percentile-based selection)"
6028
+ ];
6029
+ "type": "u16";
6030
+ },
6031
+ {
6032
+ "name": "mediumNetworkThreshold";
6033
+ "docs": [
6034
+ "Max validators for \"medium\" network band (uses percentile-based selection)"
6035
+ ];
6036
+ "type": "u16";
6037
+ },
6038
+ {
6039
+ "name": "largeNetworkEntryRank";
6040
+ "docs": [
6041
+ "Fixed rank threshold to enter active set in large networks (0-indexed)"
6042
+ ];
6043
+ "type": "u16";
6044
+ },
6045
+ {
6046
+ "name": "largeNetworkExitRank";
6047
+ "docs": [
6048
+ "Fixed rank threshold to exit active set in large networks (0-indexed)"
6049
+ ];
6050
+ "type": "u16";
6051
+ },
6052
+ {
6053
+ "name": "reservedU16";
6054
+ "type": {
6055
+ "array": [
6056
+ "u16",
6057
+ 3
6058
+ ];
6059
+ };
6060
+ },
6061
+ {
6062
+ "name": "smallNetworkEntryPercent";
6063
+ "docs": [
6064
+ "Percentile rank required to enter active set in small networks"
6065
+ ];
6066
+ "type": "u8";
6067
+ },
6068
+ {
6069
+ "name": "smallNetworkExitPercent";
6070
+ "docs": [
6071
+ "Percentile rank below which validators exit in small networks"
6072
+ ];
6073
+ "type": "u8";
6074
+ },
6075
+ {
6076
+ "name": "mediumNetworkEntryPercent";
6077
+ "docs": [
6078
+ "Percentile rank required to enter active set in medium networks"
6079
+ ];
6080
+ "type": "u8";
6081
+ },
6082
+ {
6083
+ "name": "mediumNetworkExitPercent";
6084
+ "docs": [
6085
+ "Percentile rank below which validators exit in medium networks"
6086
+ ];
6087
+ "type": "u8";
6088
+ },
6089
+ {
6090
+ "name": "reservedU8";
6091
+ "type": {
6092
+ "array": [
6093
+ "u8",
6094
+ 2
6095
+ ];
6096
+ };
6097
+ },
6098
+ {
6099
+ "name": "featureFlags";
6100
+ "docs": [
6101
+ "Bit 0: DepositsEnabled, Bit 1: WithdrawalsEnabled, Bit 2: ClaimWithdrawalsEnabled,",
6102
+ "Bit 3: ProcessStakeOrdersEnabled, Bit 4: ProcessUnstakeOrdersEnabled,",
6103
+ "Bit 5: ProcessPayCycleEnabled, Bit 6: RebalancingEnabled, Bits 7-15: Reserved"
6104
+ ];
6105
+ "type": "u16";
6106
+ },
6107
+ {
6108
+ "name": "reservedFlags";
6109
+ "type": {
6110
+ "array": [
6111
+ "u16",
6112
+ 1
6113
+ ];
6114
+ };
6115
+ }
6116
+ ];
6117
+ };
6118
+ },
5527
6119
  {
5528
6120
  "name": "globalState";
5529
6121
  "type": {
@@ -5790,6 +6382,10 @@ type LiqsolCore = {
5790
6382
  "name": "lastValidatorScoreSyncEpoch";
5791
6383
  "type": "u16";
5792
6384
  },
6385
+ {
6386
+ "name": "lastLeaderboardScoresSyncEpoch";
6387
+ "type": "u16";
6388
+ },
5793
6389
  {
5794
6390
  "name": "lastActiveInfosSyncedEpoch";
5795
6391
  "type": "u16";
@@ -6079,7 +6675,7 @@ type LiqsolCore = {
6079
6675
  },
6080
6676
  {
6081
6677
  "name": "pretokensPurchased";
6082
- "type": "i128";
6678
+ "type": "u64";
6083
6679
  }
6084
6680
  ];
6085
6681
  };
@@ -6107,7 +6703,7 @@ type LiqsolCore = {
6107
6703
  ];
6108
6704
  "type": {
6109
6705
  "array": [
6110
- "i128",
6706
+ "u64",
6111
6707
  10
6112
6708
  ];
6113
6709
  };
@@ -6283,6 +6879,30 @@ type LiqsolCore = {
6283
6879
  ];
6284
6880
  "type": "u64";
6285
6881
  },
6882
+ {
6883
+ "name": "isSmallDistributionMode";
6884
+ "docs": [
6885
+ "Whether we're in small distribution mode (not enough for VPP-based distribution)",
6886
+ "In this mode, we distribute evenly to first N validators instead of using VPP ratios"
6887
+ ];
6888
+ "type": "bool";
6889
+ },
6890
+ {
6891
+ "name": "validatorsToFundThisRebalance";
6892
+ "docs": [
6893
+ "Number of validators to fund in small distribution mode",
6894
+ "Calculated as floor(total_to_distribute / MIN_STAKE_DELEGATION)"
6895
+ ];
6896
+ "type": "u16";
6897
+ },
6898
+ {
6899
+ "name": "amountPerValidatorThisRebalance";
6900
+ "docs": [
6901
+ "Amount each validator gets in small distribution mode",
6902
+ "Calculated as total_to_distribute / validators_to_fund"
6903
+ ];
6904
+ "type": "u64";
6905
+ },
6286
6906
  {
6287
6907
  "name": "selectionEntryThresholdVpp";
6288
6908
  "docs": [
@@ -6459,8 +7079,7 @@ type LiqsolCore = {
6459
7079
  {
6460
7080
  "name": "trancheState";
6461
7081
  "docs": [
6462
- "All i128 values use 8-decimal precision (SCALE = 1e8 = 100,000,000)",
6463
- "This matches Chainlink SOL/USD's native format, avoiding conversion overhead",
7082
+ "All u64 values use 8-decimal precision (SCALE = 1e8 = 100,000,000)",
6464
7083
  "Example: $193.32 is stored as 19332000000"
6465
7084
  ];
6466
7085
  "type": {
@@ -6479,19 +7098,19 @@ type LiqsolCore = {
6479
7098
  },
6480
7099
  {
6481
7100
  "name": "currentTrancheSupply";
6482
- "type": "i128";
7101
+ "type": "u64";
6483
7102
  },
6484
7103
  {
6485
7104
  "name": "currentTranchePriceUsd";
6486
- "type": "i128";
7105
+ "type": "u64";
6487
7106
  },
6488
7107
  {
6489
7108
  "name": "totalPretokensSold";
6490
- "type": "i128";
7109
+ "type": "u64";
6491
7110
  },
6492
7111
  {
6493
7112
  "name": "initialTrancheSupply";
6494
- "type": "i128";
7113
+ "type": "u64";
6495
7114
  },
6496
7115
  {
6497
7116
  "name": "supplyGrowthBps";
@@ -6512,14 +7131,14 @@ type LiqsolCore = {
6512
7131
  "docs": [
6513
7132
  "Minimum valid SOL/USD price for validation (8-dec)"
6514
7133
  ];
6515
- "type": "i128";
7134
+ "type": "u64";
6516
7135
  },
6517
7136
  {
6518
7137
  "name": "maxPriceUsd";
6519
7138
  "docs": [
6520
7139
  "Maximum valid SOL/USD price for validation (8-dec)"
6521
7140
  ];
6522
- "type": "i128";
7141
+ "type": "u64";
6523
7142
  },
6524
7143
  {
6525
7144
  "name": "maxStalenessSeconds";
@@ -6564,7 +7183,7 @@ type LiqsolCore = {
6564
7183
  },
6565
7184
  {
6566
7185
  "name": "totalPretokensPurchased";
6567
- "type": "i128";
7186
+ "type": "u64";
6568
7187
  },
6569
7188
  {
6570
7189
  "name": "lastTrancheNumber";
@@ -6572,7 +7191,7 @@ type LiqsolCore = {
6572
7191
  },
6573
7192
  {
6574
7193
  "name": "lastTranchePriceUsd";
6575
- "type": "i128";
7194
+ "type": "u64";
6576
7195
  },
6577
7196
  {
6578
7197
  "name": "bump";
@@ -7432,6 +8051,13 @@ declare class SolanaStakingClient implements IStakingClient {
7432
8051
  * - extras: useful internal addresses and raw state for debugging/UX
7433
8052
  */
7434
8053
  getPortfolio(): Promise<Portfolio>;
8054
+ /**
8055
+ * Convenience helper to fetch the distribution userRecord for the current user.
8056
+ * Used by balance-correction flows and debugging.
8057
+ */
8058
+ getUserRecord(): Promise<DistributionUserRecord | null>;
8059
+ getSystemAPY(): Promise<number>;
8060
+ getDepositFee(amount: bigint): Promise<bigint>;
7435
8061
  /**
7436
8062
  * Unified, chain-agnostic tranche snapshot for Solana.
7437
8063
  *
@@ -7447,11 +8073,6 @@ declare class SolanaStakingClient implements IStakingClient {
7447
8073
  windowBefore?: number;
7448
8074
  windowAfter?: number;
7449
8075
  }): Promise<TrancheSnapshot>;
7450
- /**
7451
- * Convenience helper to fetch the distribution userRecord for the current user.
7452
- * Used by balance-correction flows and debugging.
7453
- */
7454
- getUserRecord(): Promise<DistributionUserRecord | null>;
7455
8076
  /**
7456
8077
  * Send a signed transaction over HTTP RPC and wait for confirmation.
7457
8078
  * Throws if the transaction fails.
@@ -7479,7 +8100,7 @@ declare class SolanaStakingClient implements IStakingClient {
7479
8100
  * Guard for all write operations (deposit/withdraw/stake/unstake/buy).
7480
8101
  * Ensures we have a Wire pubKey and an Anchor wallet pubKey, and that they match.
7481
8102
  */
7482
- ensureWriteAccess(): void;
8103
+ ensureUser(): void;
7483
8104
  }
7484
8105
 
7485
8106
  /**
@@ -7507,6 +8128,7 @@ declare const TRANSFER_HOOK: PublicKey$1;
7507
8128
  * ---------------------------------------------------------------------------
7508
8129
  */
7509
8130
  declare const PDA_SEEDS: {
8131
+ readonly GLOBAL_CONFIG: "global_config";
7510
8132
  readonly DEPOSIT_AUTHORITY: "deposit_authority";
7511
8133
  readonly VAULT: "vault";
7512
8134
  readonly RESERVE_POOL: "reserve_pool";
@@ -7540,6 +8162,7 @@ declare const PDA_SEEDS: {
7540
8162
  readonly LIQ_RECEIPT_DATA: "liq_receipt_data";
7541
8163
  readonly WITHDRAW_MINT: "mint";
7542
8164
  };
8165
+ declare const deriveGlobalConfigPda: () => PublicKey$1;
7543
8166
  /**
7544
8167
  * ---------------------------------------------------------------------------
7545
8168
  * CORE / DISTRIBUTION / DEPOSIT PDAS
@@ -7631,5 +8254,5 @@ declare const INDEX_SCALE: bigint;
7631
8254
  declare const lamportsToSol: (lamports: number | bigint) => number;
7632
8255
  declare const solToLamports: (sol: number) => bigint;
7633
8256
 
7634
- export { ADDRESSES, CHAINLINK_FEED, CHAINLINK_PROGRAM, CONTRACTS, DEFAULT_AVERAGE_PAY_RATE, DEFAULT_PAY_RATE_LOOKBACK, DepositClient, DistributionClient, EPHEMERAL_RENT_EXEMPTION, ERC1155Abi, ERC20Abi, ERC721Abi, types$1 as ETH, EthereumContractService, EthereumStakingClient, INDEX_SCALE, LAMPORTS_PER_SOL, LIQSOL_CORE, LIQSOL_TOKEN, LeaderboardClient, OutpostClient, PAY_RATE_SCALE_FACTOR, PDA_SEEDS, PROGRAM_IDS, PurchaseAsset, ReceiptNFTKind, types as SOL, SolanaStakingClient, Staker, TRANSFER_HOOK, TokenClient, VALIDATOR_LEADERBOARD, airdropSol, buildOutpostAccounts, buildSolanaTrancheLadder, buildSolanaTrancheSnapshot, calculateExpectedFee, deriveBarConfigPda, deriveBondLevelPda, deriveBondedActorPda, deriveBucketAuthorityPda, deriveDepositAuthorityPda, deriveDistributionStatePda, deriveEphemeralStakeAddress, deriveExtraAccountMetaListPda, deriveLeaderboardStatePda, deriveLiqReceiptDataPda, deriveLiqsolMintAuthorityPda, deriveLiqsolMintPda, deriveMaintenanceLedgerPda, deriveOutpostAccountPda, deriveOutpostGlobalStatePda, deriveOutpostPoolAuthorityPda, derivePayRateHistoryPda, derivePayoutStatePda, derivePriceHistoryPda, deriveReservePoolPda, deriveStakeAllocationStatePda, deriveStakeControllerStatePda, deriveStakeControllerVaultPda, deriveStakeMetricsPda, deriveTrancheStatePda, deriveUserPretokenRecordPda, deriveUserRecordPda, deriveValidatorRecordPda, deriveVaultPda, deriveWithdrawGlobalPda, deriveWithdrawMintAuthorityPda, deriveWithdrawMintMetadataPda, deriveWithdrawNftMintPda, generateRandomDepositAmount, generateTestKeypair, getAveragePayRate, getBucketLiqSolBalance, getEpochSnapshot, getErrorMessage, getLiqsolCoreProgram, getPayoutStateRaw, getReservePoolBalance, getStakeControllerStateRaw, getUserLiqSolBalance, getUserRecordRaw, lamportsToSol, msToEpochEnd, previewDepositEffects, scheduledInstruction, sleep, solToLamports, toBigint, tokensToShares, waitForConfirmation, waitUntilSafeToExecuteFunction };
8257
+ export { ADDRESSES, CHAINLINK_FEED, CHAINLINK_PROGRAM, CONTRACTS, DEFAULT_AVERAGE_PAY_RATE, DEFAULT_PAY_RATE_LOOKBACK, DepositClient, DistributionClient, EPHEMERAL_RENT_EXEMPTION, ERC1155Abi, ERC20Abi, ERC721Abi, types$1 as ETH, EthereumContractService, EthereumStakingClient, INDEX_SCALE, LAMPORTS_PER_SOL, LIQSOL_CORE, LIQSOL_TOKEN, LeaderboardClient, OutpostClient, PAY_RATE_SCALE_FACTOR, PDA_SEEDS, PROGRAM_IDS, PurchaseAsset, ReceiptNFTKind, types as SOL, SolanaStakingClient, Staker, TRANSFER_HOOK, TokenClient, VALIDATOR_LEADERBOARD, airdropSol, buildOutpostAccounts, buildSolanaTrancheLadder, buildSolanaTrancheSnapshot, calculateExpectedFee, deriveBarConfigPda, deriveBondLevelPda, deriveBondedActorPda, deriveBucketAuthorityPda, deriveDepositAuthorityPda, deriveDistributionStatePda, deriveEphemeralStakeAddress, deriveExtraAccountMetaListPda, deriveGlobalConfigPda, deriveLeaderboardStatePda, deriveLiqReceiptDataPda, deriveLiqsolMintAuthorityPda, deriveLiqsolMintPda, deriveMaintenanceLedgerPda, deriveOutpostAccountPda, deriveOutpostGlobalStatePda, deriveOutpostPoolAuthorityPda, derivePayRateHistoryPda, derivePayoutStatePda, derivePriceHistoryPda, deriveReservePoolPda, deriveStakeAllocationStatePda, deriveStakeControllerStatePda, deriveStakeControllerVaultPda, deriveStakeMetricsPda, deriveTrancheStatePda, deriveUserPretokenRecordPda, deriveUserRecordPda, deriveValidatorRecordPda, deriveVaultPda, deriveWithdrawGlobalPda, deriveWithdrawMintAuthorityPda, deriveWithdrawMintMetadataPda, deriveWithdrawNftMintPda, generateRandomDepositAmount, generateTestKeypair, getAveragePayRate, getBucketLiqSolBalance, getEpochSnapshot, getErrorMessage, getLiqsolCoreProgram, getPayoutStateRaw, getReservePoolBalance, getStakeControllerStateRaw, getUserLiqSolBalance, getUserRecordRaw, lamportsToSol, msToEpochEnd, previewDepositEffects, scheduledInstruction, sleep, solToLamports, toBigint, tokensToShares, waitForConfirmation, waitUntilSafeToExecuteFunction };
7635
8258
  export type { BalanceView, ContractConfig, ContractOptions, Contracts, EpochSnapshot, IStakingClient, OPPAssertion, OutpostAccounts, Portfolio, PurchaseQuote, ScheduleConfig, StakerConfig, TrancheLadderItem, TrancheSnapshot, YieldView };