@perena/vault-sdk 1.0.23 → 1.0.25

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.
Files changed (3) hide show
  1. package/dist/index.d.ts +322 -157
  2. package/dist/index.js +1479 -284
  3. package/package.json +5 -1
package/dist/index.d.ts CHANGED
@@ -16,15 +16,15 @@ declare const VAULT_PROGRAM_PUBLIC_KEY: PublicKey;
16
16
  * vault's protocol performance fee (via `setProtocolFee`). Must match
17
17
  * `PROTOCOL_ADMIN` in the on-chain program constants.
18
18
  *
19
- * This is the `local`-feature dev wallet, matching the localnet program build.
20
- * TODO: replace with the real protocol admin wallet for production (in lockstep
21
- * with the non-`local` program constant).
19
+ * This is the production Squads vault, matching the non-local program build.
22
20
  */
23
21
  declare const PROTOCOL_ADMIN: Address;
22
+ /** Protocol admin compiled into the local-feature program for integration tests. */
23
+ declare const LOCAL_PROTOCOL_ADMIN: Address;
24
24
  /**
25
- * Hardcoded wallet that receives all protocol performance fees when accrued
26
- * fees are swept via `crankPerformanceFees`. Must match `PROTOCOL_FEE_RECIPIENT`
27
- * in the on-chain program constants.
25
+ * Hardcoded wallet that receives protocol fee shares when pending shares are
26
+ * minted via `crankPerformanceFees`. Must match `PROTOCOL_FEE_RECIPIENT` in the
27
+ * on-chain program constants.
28
28
  */
29
29
  declare const PROTOCOL_FEE_RECIPIENT: Address;
30
30
  declare const PROGRAM_FEE_EXEMPT_OWNER_WHITELIST: readonly Address[];
@@ -37,9 +37,7 @@ declare const PROGRAM_FEE_EXEMPT_OWNER_WHITELIST: readonly Address[];
37
37
  * every id and DoSing the protocol. Only enforced in non-`local` program builds
38
38
  * (production / staging); `local` test builds bypass it.
39
39
  *
40
- * TODO: replace the placeholder entry (the System Program id — a safe, unusable
41
- * placeholder) with the real curator wallet(s) for production, in lockstep with
42
- * the non-`local` program constant.
40
+ * Keep this list in lockstep with the non-`local` program constant.
43
41
  */
44
42
  declare const VAULT_CREATOR_WHITELIST: Address[];
45
43
  declare const TOKEN_PROGRAM_ID: Address;
@@ -277,8 +275,7 @@ type Bankineco = {
277
275
  {
278
276
  "name": "feeAssetMint";
279
277
  "docs": [
280
- "Base-asset mint used to pay performance fees on settlement. Must match",
281
- "an `is_base` holding; choose a mint whose vault ATA has liquidity."
278
+ "Legacy fee-asset account retained in this instruction's account schema."
282
279
  ];
283
280
  },
284
281
  {
@@ -341,7 +338,7 @@ type Bankineco = {
341
338
  {
342
339
  "name": "feeVault";
343
340
  "docs": [
344
- "Per-vault fee-vault PDA: token authority + accounting for accrued fees."
341
+ "Legacy fee-vault account retained in this instruction's account schema."
345
342
  ];
346
343
  "writable": true;
347
344
  },
@@ -436,83 +433,17 @@ type Bankineco = {
436
433
  },
437
434
  {
438
435
  "name": "vault";
439
- },
440
- {
441
- "name": "feeAssetMint";
442
- "docs": [
443
- "Vault base asset whose fee-vault ATA should be swept. Must match an",
444
- "`is_base` holding with a fresh price."
445
- ];
446
- },
447
- {
448
- "name": "feeVault";
449
- "docs": [
450
- "Per-vault fee-vault PDA: token authority + accounting for accrued fees."
451
- ];
452
436
  "writable": true;
453
437
  },
454
438
  {
455
- "name": "feeVaultAta";
439
+ "name": "shareMint";
456
440
  "writable": true;
457
- "pda": {
458
- "seeds": [
459
- {
460
- "kind": "account";
461
- "path": "feeVault";
462
- },
463
- {
464
- "kind": "account";
465
- "path": "feeAssetTokenProgram";
466
- },
467
- {
468
- "kind": "account";
469
- "path": "feeAssetMint";
470
- }
471
- ];
472
- "program": {
473
- "kind": "const";
474
- "value": [
475
- 140,
476
- 151,
477
- 37,
478
- 143,
479
- 78,
480
- 36,
481
- 137,
482
- 241,
483
- 187,
484
- 61,
485
- 16,
486
- 41,
487
- 20,
488
- 142,
489
- 13,
490
- 131,
491
- 11,
492
- 90,
493
- 19,
494
- 153,
495
- 218,
496
- 255,
497
- 16,
498
- 132,
499
- 4,
500
- 142,
501
- 123,
502
- 216,
503
- 219,
504
- 233,
505
- 248,
506
- 89
507
- ];
508
- };
509
- };
510
441
  },
511
442
  {
512
443
  "name": "feeCollector";
513
444
  },
514
445
  {
515
- "name": "feeCollectorFeeAssetAta";
446
+ "name": "feeCollectorShareAta";
516
447
  "writable": true;
517
448
  "pda": {
518
449
  "seeds": [
@@ -522,11 +453,11 @@ type Bankineco = {
522
453
  },
523
454
  {
524
455
  "kind": "account";
525
- "path": "feeAssetTokenProgram";
456
+ "path": "shareTokenProgram";
526
457
  },
527
458
  {
528
459
  "kind": "account";
529
- "path": "feeAssetMint";
460
+ "path": "shareMint";
530
461
  }
531
462
  ];
532
463
  "program": {
@@ -572,7 +503,7 @@ type Bankineco = {
572
503
  "name": "protocolFeeCollector";
573
504
  },
574
505
  {
575
- "name": "protocolFeeCollectorFeeAssetAta";
506
+ "name": "protocolFeeCollectorShareAta";
576
507
  "writable": true;
577
508
  "pda": {
578
509
  "seeds": [
@@ -582,11 +513,11 @@ type Bankineco = {
582
513
  },
583
514
  {
584
515
  "kind": "account";
585
- "path": "feeAssetTokenProgram";
516
+ "path": "shareTokenProgram";
586
517
  },
587
518
  {
588
519
  "kind": "account";
589
- "path": "feeAssetMint";
520
+ "path": "shareMint";
590
521
  }
591
522
  ];
592
523
  "program": {
@@ -629,7 +560,7 @@ type Bankineco = {
629
560
  };
630
561
  },
631
562
  {
632
- "name": "feeAssetTokenProgram";
563
+ "name": "shareTokenProgram";
633
564
  },
634
565
  {
635
566
  "name": "associatedTokenProgram";
@@ -1512,7 +1443,9 @@ type Bankineco = {
1512
1443
  {
1513
1444
  "name": "shareMint";
1514
1445
  "docs": [
1515
- "Curator-supplied share mint. Its decimals must match `asset_mint`.",
1446
+ "Curator-supplied share mint. Its decimals define the vault accounting",
1447
+ "precision. `asset_mint` may use a different precision, which is stored",
1448
+ "on its holding and handled by holding-price conversion.",
1516
1449
  "Unless `for_migration`, it must have zero supply with mint authority on",
1517
1450
  "the curator; authority is transferred to the vault PDA on success.",
1518
1451
  "Migration uses the legacy bank mint and defers transfer."
@@ -1736,8 +1669,8 @@ type Bankineco = {
1736
1669
  {
1737
1670
  "name": "feeVault";
1738
1671
  "docs": [
1739
- "Per-vault fee-vault PDA: token authority + accounting. The mint fee",
1740
- "accrues here and is swept to the fee collector by the permissionless crank."
1672
+ "Legacy fee-vault account retained in this instruction's account schema.",
1673
+ "New fees accrue as pending vault shares."
1741
1674
  ];
1742
1675
  "writable": true;
1743
1676
  },
@@ -2031,8 +1964,8 @@ type Bankineco = {
2031
1964
  {
2032
1965
  "name": "feeVault";
2033
1966
  "docs": [
2034
- "Per-vault fee-vault PDA: token authority + accounting. The mint fee",
2035
- "accrues here and is swept to the fee collector by the permissionless crank."
1967
+ "Legacy fee-vault account retained in this instruction's account schema.",
1968
+ "New fees accrue as pending vault shares."
2036
1969
  ];
2037
1970
  "writable": true;
2038
1971
  },
@@ -2527,8 +2460,8 @@ type Bankineco = {
2527
2460
  {
2528
2461
  "name": "feeVault";
2529
2462
  "docs": [
2530
- "Per-vault fee-vault PDA: token authority + accounting. Mint fees",
2531
- "accrue here and are swept by the permissionless fee crank."
2463
+ "Legacy fee-vault account retained in this instruction's account schema.",
2464
+ "New fees accrue as pending vault shares."
2532
2465
  ];
2533
2466
  "writable": true;
2534
2467
  },
@@ -2829,8 +2762,8 @@ type Bankineco = {
2829
2762
  {
2830
2763
  "name": "feeVault";
2831
2764
  "docs": [
2832
- "Per-vault fee-vault PDA: token authority + accounting. Mint fees",
2833
- "accrue here and are swept by the permissionless fee crank."
2765
+ "Legacy fee-vault account retained in this instruction's account schema.",
2766
+ "New fees accrue as pending vault shares."
2834
2767
  ];
2835
2768
  "writable": true;
2836
2769
  },
@@ -3620,8 +3553,8 @@ type Bankineco = {
3620
3553
  {
3621
3554
  "name": "feeVault";
3622
3555
  "docs": [
3623
- "Per-vault fee-vault PDA: token authority + accounting. The burn fee accrues",
3624
- "here and is swept to the fee collector by the permissionless crank."
3556
+ "Legacy fee-vault account retained in this instruction's account schema.",
3557
+ "New fees accrue as pending vault shares."
3625
3558
  ];
3626
3559
  "writable": true;
3627
3560
  },
@@ -3909,8 +3842,8 @@ type Bankineco = {
3909
3842
  {
3910
3843
  "name": "feeVault";
3911
3844
  "docs": [
3912
- "Per-vault fee-vault PDA: token authority + accounting. The burn fee accrues",
3913
- "here and is swept to the fee collector by the permissionless crank."
3845
+ "Legacy fee-vault account retained in this instruction's account schema.",
3846
+ "New fees accrue as pending vault shares."
3914
3847
  ];
3915
3848
  "writable": true;
3916
3849
  },
@@ -4204,8 +4137,8 @@ type Bankineco = {
4204
4137
  {
4205
4138
  "name": "feeVault";
4206
4139
  "docs": [
4207
- "Per-vault fee-vault PDA: token authority + accounting. The burn fee accrues",
4208
- "here and is swept to the fee collector by the permissionless crank."
4140
+ "Legacy fee-vault account retained in this instruction's account schema.",
4141
+ "New fees accrue as pending vault shares."
4209
4142
  ];
4210
4143
  "writable": true;
4211
4144
  },
@@ -4509,8 +4442,8 @@ type Bankineco = {
4509
4442
  {
4510
4443
  "name": "feeVault";
4511
4444
  "docs": [
4512
- "Per-vault fee-vault PDA: token authority + accounting. The burn fee accrues",
4513
- "here and is swept to the fee collector by the permissionless crank."
4445
+ "Legacy fee-vault account retained in this instruction's account schema.",
4446
+ "New fees accrue as pending vault shares."
4514
4447
  ];
4515
4448
  "writable": true;
4516
4449
  },
@@ -5931,9 +5864,6 @@ type Bankineco = {
5931
5864
  },
5932
5865
  {
5933
5866
  "name": "idleBankTranche";
5934
- "docs": [
5935
- "path rejects initialized state because it cannot represent junior claims."
5936
- ];
5937
5867
  "pda": {
5938
5868
  "seeds": [
5939
5869
  {
@@ -6092,7 +6022,7 @@ type Bankineco = {
6092
6022
  {
6093
6023
  "name": "yieldingBankTranche";
6094
6024
  "docs": [
6095
- "state so an active senior-price regime cannot be hidden by omission."
6025
+ "tranche was already consumed by its regular vault migrations."
6096
6026
  ];
6097
6027
  "pda": {
6098
6028
  "seeds": [
@@ -6270,9 +6200,6 @@ type Bankineco = {
6270
6200
  },
6271
6201
  {
6272
6202
  "name": "vaultTrancheState";
6273
- "docs": [
6274
- "be initialized and consistent with destination.tranching_enabled."
6275
- ];
6276
6203
  "writable": true;
6277
6204
  "pda": {
6278
6205
  "seeds": [
@@ -8296,6 +8223,69 @@ type Bankineco = {
8296
8223
  }
8297
8224
  ];
8298
8225
  },
8226
+ {
8227
+ "name": "triggerBankCircuitBreaker";
8228
+ "discriminator": [
8229
+ 250,
8230
+ 236,
8231
+ 165,
8232
+ 211,
8233
+ 181,
8234
+ 241,
8235
+ 74,
8236
+ 84
8237
+ ];
8238
+ "accounts": [
8239
+ {
8240
+ "name": "bankState";
8241
+ "writable": true;
8242
+ "pda": {
8243
+ "seeds": [
8244
+ {
8245
+ "kind": "const";
8246
+ "value": [
8247
+ 66,
8248
+ 65,
8249
+ 78,
8250
+ 75
8251
+ ];
8252
+ },
8253
+ {
8254
+ "kind": "account";
8255
+ "path": "bankState";
8256
+ }
8257
+ ];
8258
+ };
8259
+ },
8260
+ {
8261
+ "name": "bankManager";
8262
+ "writable": true;
8263
+ "signer": true;
8264
+ },
8265
+ {
8266
+ "name": "systemProgram";
8267
+ "address": "11111111111111111111111111111111";
8268
+ },
8269
+ {
8270
+ "name": "tokenProgram";
8271
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
8272
+ }
8273
+ ];
8274
+ "args": [
8275
+ {
8276
+ "name": "isHalted";
8277
+ "type": "bool";
8278
+ },
8279
+ {
8280
+ "name": "isHaltedDeposit";
8281
+ "type": "bool";
8282
+ },
8283
+ {
8284
+ "name": "isHaltedWithdrawal";
8285
+ "type": "bool";
8286
+ }
8287
+ ];
8288
+ },
8299
8289
  {
8300
8290
  "name": "triggerVaultCircuitBreaker";
8301
8291
  "discriminator": [
@@ -8967,11 +8957,11 @@ type Bankineco = {
8967
8957
  "name": "vaultOracle";
8968
8958
  "docs": [
8969
8959
  "Required when enabling tranching organically (`for_migration == false`)",
8970
- "on a vault that still has main shareholders accruing fixed APY: that APY",
8971
- "is only folded into `mint_share_price` while tranching is off, so a fresh",
8972
- "NAV must have been settled just before the switch or the accrued APY owed",
8973
- "to those shareholders is forfeited. Not needed on the migration path,",
8974
- "whose accounting is reconstructed wholesale from the legacy state.",
8960
+ "on a vault that still has main shareholders accruing fixed APY. A fresh",
8961
+ "settlement establishes the regular sleeve's booked NAV and physical",
8962
+ "surplus immediately before the new tranche sleeve is introduced. Not",
8963
+ "needed on the migration path, whose accounting is reconstructed wholesale",
8964
+ "from the legacy state.",
8975
8965
  "",
8976
8966
  "Kept LAST (a trailing optional account) so legacy clients that predate it",
8977
8967
  "— e.g. the migration path building against the frozen bankineco IDL —",
@@ -9057,8 +9047,8 @@ type Bankineco = {
9057
9047
  {
9058
9048
  "name": "destinationFeeVault";
9059
9049
  "docs": [
9060
- "Destination vault's fee-vault PDA: the mint fee accrues here and is swept",
9061
- "to the fee collector by the permissionless crank."
9050
+ "Legacy fee-vault account retained in this instruction's account schema.",
9051
+ "New fees accrue as pending vault shares."
9062
9052
  ];
9063
9053
  "writable": true;
9064
9054
  },
@@ -10375,21 +10365,11 @@ type Bankineco = {
10375
10365
  {
10376
10366
  "name": "feeVault";
10377
10367
  "docs": [
10378
- "Per-vault fee custody + accounting account.",
10379
- "",
10380
- "The PDA is both the token authority over the fee-asset ATAs that physically",
10381
- "hold accrued fees and the ledger of what is owed to whom. All four fee types",
10382
- "— mint, burn, performance, and protocol — accrue here.",
10368
+ "Legacy per-vault fee custody account.",
10383
10369
  "",
10384
- "Ledger amounts (`*_owed` / `*_collected`) are denominated in the vault's",
10385
- "**accounting unit** (the same unit as TVL / holding prices), not raw token",
10386
- "units. Token custody may still be split across ATAs for different base-asset",
10387
- "mints; the permissionless fee crank converts each ATA's balance to accounting",
10388
- "value via that mint's fresh holding price, pays out, and reduces these",
10389
- "counters by the accounting value cleared.",
10390
- "",
10391
- "Mint/burn/performance go to `vault.roles.fee_collector`, protocol goes to the",
10392
- "hardcoded protocol fee recipient."
10370
+ "New fee accrual is denominated in canonical vault shares and stored on",
10371
+ "`VaultAccounting`. This account remains in existing instruction schemas for",
10372
+ "compatibility; its historical accounting-unit counters are no longer updated."
10393
10373
  ];
10394
10374
  "serialization": "bytemuck";
10395
10375
  "repr": {
@@ -10614,8 +10594,9 @@ type Bankineco = {
10614
10594
  {
10615
10595
  "name": "migrateAmount";
10616
10596
  "docs": [
10617
- "Reserved for partial migration; partial migration is unsupported, so this",
10618
- "must be `None` (a full vault migration). A `Some(_)` value is rejected."
10597
+ "Partial migration remains unsupported. `None` performs a regular full",
10598
+ "vault migration; `Some(0)` explicitly marks the final in-scope vault and",
10599
+ "permits bounded terminal source-accounting reconciliation."
10619
10600
  ];
10620
10601
  "type": {
10621
10602
  "option": "u64";
@@ -11921,8 +11902,7 @@ type Bankineco = {
11921
11902
  {
11922
11903
  "name": "paddingBool";
11923
11904
  "docs": [
11924
- "Reserved padding (previously `apy_settle_skip`). Kept as a field to",
11925
- "preserve the on-chain account layout for already-deployed vaults."
11905
+ "Reserved byte retained for on-chain account layout compatibility."
11926
11906
  ];
11927
11907
  "type": {
11928
11908
  "defined": {
@@ -12233,7 +12213,7 @@ type Bankineco = {
12233
12213
  {
12234
12214
  "name": "tvlLimit";
12235
12215
  "docs": [
12236
- "Maximum TVL in deposit-asset base units. `0` disables the cap."
12216
+ "Maximum TVL in vault accounting units. `0` disables the cap."
12237
12217
  ];
12238
12218
  "type": "u64";
12239
12219
  },
@@ -13293,7 +13273,7 @@ type Bankineco = {
13293
13273
  {
13294
13274
  "name": "totalMintSupply";
13295
13275
  "docs": [
13296
- "Total supply of the vault's share mint."
13276
+ "Effective share supply: physical mint supply plus unminted fee shares."
13297
13277
  ];
13298
13278
  "type": "u64";
13299
13279
  },
@@ -13347,12 +13327,26 @@ type Bankineco = {
13347
13327
  };
13348
13328
  };
13349
13329
  },
13330
+ {
13331
+ "name": "pendingCuratorFeeShares";
13332
+ "docs": [
13333
+ "Vault shares owed to the curator but not yet minted."
13334
+ ];
13335
+ "type": "u64";
13336
+ },
13337
+ {
13338
+ "name": "pendingProtocolFeeShares";
13339
+ "docs": [
13340
+ "Vault shares owed to the protocol but not yet minted."
13341
+ ];
13342
+ "type": "u64";
13343
+ },
13350
13344
  {
13351
13345
  "name": "padding1";
13352
13346
  "type": {
13353
13347
  "array": [
13354
13348
  "u64",
13355
- 32
13349
+ 30
13356
13350
  ];
13357
13351
  };
13358
13352
  },
@@ -13401,8 +13395,8 @@ type Bankineco = {
13401
13395
  {
13402
13396
  "name": "assetDecimals";
13403
13397
  "docs": [
13404
- "Decimals of the deposit asset, cached so deposit/withdraw paths don't",
13405
- "need to deserialize the mint account."
13398
+ "Vault accounting precision. This matches the vault share mint; each",
13399
+ "holding stores its own mint precision independently."
13406
13400
  ];
13407
13401
  "type": "u8";
13408
13402
  },
@@ -13434,7 +13428,7 @@ type Bankineco = {
13434
13428
  {
13435
13429
  "name": "tvlLimit";
13436
13430
  "docs": [
13437
- "Maximum TVL in deposit-asset base units. `0` disables the cap."
13431
+ "Maximum TVL in vault accounting units. `0` disables the cap."
13438
13432
  ];
13439
13433
  "type": "u64";
13440
13434
  },
@@ -13964,7 +13958,7 @@ interface CreateVaultTxArgs {
13964
13958
  lossesEnabled?: boolean;
13965
13959
  /** Base-asset oracle: 1 = ConsensusOracle (default), 2 = Pyth, 3 = PerenaVault. */
13966
13960
  basePriceOracleType?: number;
13967
- /** Initial base-asset price in the accounting unit. Defaults to 1.0, scaled by the deposit mint's decimals. */
13961
+ /** Initial base-asset price in the accounting unit. Defaults to 1.0, scaled by the share/accounting decimals. */
13968
13962
  basePrice?: bigint;
13969
13963
  /** Price-source account when basePriceOracleType is Pyth/PerenaVault. */
13970
13964
  basePriceOracleAccount?: Address;
@@ -13981,7 +13975,9 @@ type ConsensusAssetUpdate = {
13981
13975
  holdingIndex: number;
13982
13976
  /** Set only when registering a brand-new consensus holding. */
13983
13977
  mint?: Address | null;
13978
+ /** Price in vault accounting units, scaled by `vault.config.assetDecimals`. */
13984
13979
  price: bigint;
13980
+ /** External token balance in the holding mint's native base units. */
13985
13981
  externalAmount: bigint;
13986
13982
  };
13987
13983
  type TrancheKindArgs = {
@@ -14142,25 +14138,21 @@ interface UpdateAssetPriceTxArgs {
14142
14138
  interface CrankPerformanceFeesIxArgs {
14143
14139
  cranker: Address;
14144
14140
  vault: Address;
14145
- feeAssetMint: Address;
14146
- feeVault: Address;
14147
- feeVaultAta: Address;
14141
+ shareMint: Address;
14148
14142
  feeCollector: Address;
14149
- feeCollectorFeeAssetAta: Address;
14143
+ feeCollectorShareAta: Address;
14150
14144
  protocolFeeCollector: Address;
14151
- protocolFeeCollectorFeeAssetAta: Address;
14152
- feeAssetTokenProgram: Address;
14145
+ protocolFeeCollectorShareAta: Address;
14146
+ shareTokenProgram: Address;
14153
14147
  }
14154
14148
  interface CrankPerformanceFeesTxArgs {
14155
14149
  cranker: Address;
14156
14150
  vault: Address;
14157
- /** Base asset the accrued fees are denominated in (defaults to vault base). */
14158
- feeAssetMint?: Address;
14159
14151
  /** Override the curator fee collector (defaults to vault.roles.feeCollector). */
14160
14152
  feeCollector?: Address;
14161
14153
  /** Override the hardcoded protocol fee recipient (defaults to PROTOCOL_FEE_RECIPIENT). */
14162
14154
  protocolFeeCollector?: Address;
14163
- feeAssetTokenProgram?: Address;
14155
+ shareTokenProgram?: Address;
14164
14156
  }
14165
14157
  interface CreateTrancheStateIxArgs {
14166
14158
  curator: Address;
@@ -14938,7 +14930,6 @@ declare class CrankNavBuilder extends VaultBuilderBase<CrankNavIxArgs, CrankNavT
14938
14930
  declare class CrankPerformanceFeesBuilder extends VaultBuilderBase<CrankPerformanceFeesIxArgs, CrankPerformanceFeesTxArgs> {
14939
14931
  getIx(args: CrankPerformanceFeesIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
14940
14932
  protected deriveIxArgs(txArgs: CrankPerformanceFeesTxArgs): Promise<CrankPerformanceFeesIxArgs>;
14941
- protected buildPreambleInstructions(args: CrankPerformanceFeesIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>[]>;
14942
14933
  protected buildPlanExtras(args: CrankPerformanceFeesIxArgs): Promise<{
14943
14934
  postSuccessCacheInvalidations: {
14944
14935
  vaultPda: _solana_kit.Address;
@@ -15927,6 +15918,10 @@ interface VaultOracleResult {
15927
15918
  vault: Address;
15928
15919
  updates: HoldingUpdatePreview[];
15929
15920
  dryRun: boolean;
15921
+ /** Exact read-only projection of consensus aggregation + `crank_nav`. */
15922
+ settlementSimulation?: SettlementSimulation;
15923
+ /** Present when a dry run could source updates but could not build a projection. */
15924
+ settlementSimulationError?: string;
15930
15925
  /** `update_consensus_oracle` signature (absent on dry runs / no holdings). */
15931
15926
  updateSignature?: string;
15932
15927
  /** `crank_nav` signature (absent on dry runs / no holdings / skipped crank). */
@@ -15953,12 +15948,27 @@ interface DecodedHolding {
15953
15948
  mint: unknown;
15954
15949
  decimals: number;
15955
15950
  priceOracleType: unknown;
15951
+ /** Bound Pyth price-update or nested-vault account for live-priced holdings. */
15952
+ priceOracleAccount?: unknown;
15956
15953
  isBase: unknown;
15954
+ localAmount?: unknown;
15955
+ externalAmount?: unknown;
15956
+ price?: unknown;
15957
+ lastUpdateTs?: unknown;
15957
15958
  }
15958
15959
  /** Minimal shape of a decoded vault account the service relies on. */
15959
15960
  interface DecodedVault {
15961
+ /** Regular vault-share mint. Never a price-source target for this vault. */
15962
+ mint?: unknown;
15963
+ /** Whether this vault has a vault-scoped junior/senior tranche state. */
15964
+ tranchingEnabled?: unknown;
15965
+ lossesEnabled?: unknown;
15966
+ accounting?: Record<string, unknown>;
15960
15967
  config: {
15961
15968
  assetDecimals: number;
15969
+ priceStalenessThresholdSecs?: unknown;
15970
+ fees?: Record<string, unknown>;
15971
+ apy?: Record<string, unknown>;
15962
15972
  };
15963
15973
  roles: {
15964
15974
  manager: unknown;
@@ -15967,6 +15977,73 @@ interface DecodedVault {
15967
15977
  /** Raw on-chain ExternalLiquiditySlot array (byte buffers); parsed by the service. */
15968
15978
  externalLiquidity?: unknown;
15969
15979
  }
15980
+ /** Minimal decoded tranche-state shape used to exclude its receipt mints. */
15981
+ interface DecodedVaultTrancheState {
15982
+ config: {
15983
+ juniorMint: unknown;
15984
+ seniorMint: unknown;
15985
+ seniorFixedApyBps?: unknown;
15986
+ };
15987
+ junior?: Record<string, unknown>;
15988
+ senior?: Record<string, unknown>;
15989
+ lastSettledTs?: unknown;
15990
+ seniorApyAnchorSharePrice?: unknown;
15991
+ seniorApyAnchorTs?: unknown;
15992
+ }
15993
+ interface ConsensusHoldingSimulation {
15994
+ holdingIndex: number;
15995
+ mint: Address;
15996
+ reportCount: number;
15997
+ /** Aggregated values written by `update_consensus_oracle`, when consensus lands. */
15998
+ settledPrice?: bigint;
15999
+ settledExternalAmount?: bigint;
16000
+ wouldUpdateHolding: boolean;
16001
+ reason?: string;
16002
+ }
16003
+ interface SimulatedShareClass {
16004
+ value: bigint;
16005
+ totalSupply: bigint;
16006
+ sharePrice: bigint;
16007
+ }
16008
+ interface SettlementSimulationSnapshot {
16009
+ tvl: bigint;
16010
+ regular: SimulatedShareClass;
16011
+ junior?: SimulatedShareClass;
16012
+ senior?: SimulatedShareClass;
16013
+ }
16014
+ /**
16015
+ * Result of replaying the relevant on-chain consensus and NAV-settlement math.
16016
+ * All numbers remain in raw on-chain fixed-point/base units.
16017
+ */
16018
+ interface SettlementSimulation {
16019
+ nowTs: bigint;
16020
+ assetDecimals: number;
16021
+ /** True only when every holding in this signer's proposed batch would land. */
16022
+ allProposedUpdatesLand: boolean;
16023
+ proposedUpdatesLanded: number;
16024
+ proposedUpdatesTotal: number;
16025
+ /** Whether the subsequent `crank_nav` would succeed (possibly on unchanged slots). */
16026
+ canSettle: boolean;
16027
+ blockers: string[];
16028
+ warnings: string[];
16029
+ consensus: ConsensusHoldingSimulation[];
16030
+ grossNav?: bigint;
16031
+ settledAccountingNav?: bigint;
16032
+ current: SettlementSimulationSnapshot;
16033
+ /**
16034
+ * True when `projected` was calculated by replaying the otherwise-identical
16035
+ * settlement with the max-APY guard disabled. The real crank remains blocked
16036
+ * until the vault config is updated.
16037
+ */
16038
+ projectionRequiresMaxApyDisabled?: boolean;
16039
+ projected?: SettlementSimulationSnapshot;
16040
+ performanceFees?: {
16041
+ curator: bigint;
16042
+ protocol: bigint;
16043
+ total: bigint;
16044
+ mintedShares: bigint;
16045
+ };
16046
+ }
15970
16047
  /** A consensus-priced holding paired with its on-chain slot index. */
15971
16048
  interface ConsensusHoldingEntry {
15972
16049
  holding: DecodedHolding;
@@ -16006,6 +16083,47 @@ declare class JupiterPriceSource implements PriceSource {
16006
16083
  fetchUsdPrices(mints: Address[]): Promise<Record<string, number>>;
16007
16084
  }
16008
16085
 
16086
+ /** Nest's Perena vault-share price feed. */
16087
+
16088
+ declare const NEST_API_BASE_URL = "https://api.nest.credit/v1";
16089
+ declare const NEST_VAULT_SLUG = "nest-perena-vault";
16090
+ declare const NEST_RWA_SHARE_MINT: Address;
16091
+ interface FetchNestTokenPriceOptions {
16092
+ baseUrl?: string;
16093
+ fetchFn?: typeof fetch;
16094
+ }
16095
+ /**
16096
+ * Fetch the USD price of one Nest vault share. This is the price reader that
16097
+ * historically lived in bankineco-sdk's `nestUtils`; the vault SDK owns it now
16098
+ * because nested Nest shares are a consensus-oracle price source.
16099
+ */
16100
+ declare function fetchNestTokenPrice(nestVaultSlug?: string, opts?: FetchNestTokenPriceOptions): Promise<number>;
16101
+ interface NestPriceSourceOptions extends FetchNestTokenPriceOptions {
16102
+ nestVaultSlug?: string;
16103
+ shareMint?: Address;
16104
+ }
16105
+ /** PriceSource adapter for the canonical Nest Perena share mint. */
16106
+ declare class NestPriceSource implements PriceSource {
16107
+ readonly shareMint: Address;
16108
+ private readonly nestVaultSlug;
16109
+ private readonly options;
16110
+ constructor(opts?: NestPriceSourceOptions);
16111
+ fetchUsdPrices(mints: Address[]): Promise<Record<string, number>>;
16112
+ }
16113
+
16114
+ /** Routes known nested-vault shares to their native API and all other mints to Jupiter. */
16115
+
16116
+ interface LivePriceSourceOptions {
16117
+ jupiter?: PriceSource;
16118
+ nest?: NestPriceSource;
16119
+ }
16120
+ declare class LivePriceSource implements PriceSource {
16121
+ private readonly jupiter;
16122
+ private readonly nest;
16123
+ constructor(opts?: LivePriceSourceOptions);
16124
+ fetchUsdPrices(mints: Address[]): Promise<Record<string, number>>;
16125
+ }
16126
+
16009
16127
  /**
16010
16128
  * {@link WalletBalanceSource} backed by the Jupiter "portfolio" / Ultra balances
16011
16129
  * API, with an on-chain RPC fallback.
@@ -16159,6 +16277,38 @@ declare class MockYieldTracker implements YieldTracker {
16159
16277
  }): Promise<void>;
16160
16278
  }
16161
16279
 
16280
+ /**
16281
+ * Pure dry-run simulator for the two transactions emitted by the consensus
16282
+ * oracle service:
16283
+ *
16284
+ * 1. `update_consensus_oracle` overlays this signer's report and averages all
16285
+ * fresh, agreeing reports.
16286
+ * 2. `crank_nav` derives gross NAV and applies fixed APY, tranche allocation,
16287
+ * high-water-mark performance fees, and pending fee-share accrual.
16288
+ *
16289
+ * Keep this module side-effect free. The service owns account/RPC reads; this
16290
+ * file owns deterministic program-math parity and is straightforward to test.
16291
+ */
16292
+
16293
+ interface SimulateSettlementArgs {
16294
+ vault: DecodedVault;
16295
+ oracleData: readonly number[];
16296
+ trancheState?: DecodedVaultTrancheState;
16297
+ updates: readonly HoldingUpdatePreview[];
16298
+ signer: Address;
16299
+ nowTs: bigint;
16300
+ /** Canonical SPL mint supplies read immediately before simulation. */
16301
+ physicalShareSupply?: bigint;
16302
+ physicalJuniorSupply?: bigint;
16303
+ physicalSeniorSupply?: bigint;
16304
+ }
16305
+ /** Replay consensus aggregation and NAV settlement without sending a transaction. */
16306
+ declare function simulateConsensusOracleSettlement(args: SimulateSettlementArgs): SettlementSimulation;
16307
+ /** Exact bigint port of common::utils::number::apply_effective_apy. */
16308
+ declare function applyEffectiveApy(anchor: bigint, apyBps: number, elapsedSecs: bigint): bigint;
16309
+ /** Human-readable CLI lines for a raw settlement projection. */
16310
+ declare function formatSettlementSimulation(simulation: SettlementSimulation): string[];
16311
+
16162
16312
  declare class ConsensusOracleService {
16163
16313
  private readonly client;
16164
16314
  private readonly deps;
@@ -16167,6 +16317,8 @@ declare class ConsensusOracleService {
16167
16317
  constructor(client: VaultClient, deps: ConsensusOracleDeps);
16168
16318
  /** Drive one vault: source prices/balances, push consensus update, crank NAV. */
16169
16319
  runOnce(signer: Keypair, target: ConsensusOracleTarget, opts?: RunOptions): Promise<VaultOracleResult>;
16320
+ /** Read canonical supplies and replay the exact on-chain settlement path. */
16321
+ private simulateDryRunSettlement;
16170
16322
  /**
16171
16323
  * Fail closed while any configured yield account has an unsettled payment.
16172
16324
  * The payout must be confirmed only after it is visible in the same wallet
@@ -16190,6 +16342,18 @@ declare class ConsensusOracleService {
16190
16342
  log?: (msg: string) => void;
16191
16343
  }): Promise<ConsensusOracleTarget[]>;
16192
16344
  private fetchDecodedVault;
16345
+ /**
16346
+ * Keep active permissionless price sources warm so they cannot block the NAV
16347
+ * crank after the consensus report lands. Prices are refreshed at least once
16348
+ * per hour, or at the vault's shorter staleness interval when configured.
16349
+ */
16350
+ private refreshLiveOraclePrices;
16351
+ /**
16352
+ * Receipt mints issued by this vault are liabilities/shares, not underlying
16353
+ * assets for its own NAV. Exclude them even if they were registered as
16354
+ * consensus-priced holdings.
16355
+ */
16356
+ private fetchReceiptMints;
16193
16357
  /** Fetch every external input the per-holding updates draw on, in parallel-ish. */
16194
16358
  private gatherPricingInputs;
16195
16359
  /** Live-LP balances for the target, summed by mint (empty if no provider). */
@@ -16201,12 +16365,13 @@ declare class ConsensusOracleService {
16201
16365
  /** Push the consensus report for all holdings, then settle NAV. */
16202
16366
  private settleVault;
16203
16367
  /**
16204
- * Fetch the current settled NAV from the oracle account and log the APY
16205
- * implied by the prospective update, so MaxApyExceeded failures are diagnosable.
16368
+ * Fetch the current settlement timestamp and log the APY implied by the
16369
+ * prospective update, so MaxApyExceeded failures are diagnosable.
16206
16370
  *
16207
16371
  * NAV is expressed in the vault's accounting unit (scaled by assetDecimals).
16208
- * prospective NAV = Σ ((localAmount_i + externalAmount_i) * price_i)
16209
- * / 10^assetDecimals
16372
+ * Mirrors `gross_nav_from_holdings`: consensus updates overlay their target
16373
+ * slots, while live-priced and otherwise unchanged holdings retain their
16374
+ * current price/external amount.
16210
16375
  */
16211
16376
  private logProspectiveApy;
16212
16377
  }
@@ -16255,4 +16420,4 @@ declare class ExternalLiquidityIntegrityService {
16255
16420
  private depositIntoMarginfi;
16256
16421
  }
16257
16422
 
16258
- export { ASSET_DECIMALS, type AccountBalanceResponse, AccountClient, type AccountYieldResponse, ActivateCircuitBreakerBuilder, type ActivateCircuitBreakerIxArgs, type ActivateCircuitBreakerTxArgs, type AssetPriceOracleConfigIxArgs, type AssetPriceOracleConfigTxArgs, type AssetPriceRefreshTarget, type AssetRefreshResult, type Bankineco, type BasicAuthCredentials, type Bigintish, CancelJuniorTrancheWithdrawBuilder, type CancelJuniorTrancheWithdrawIxArgs, type CancelJuniorTrancheWithdrawTxArgs, type Clock, type ConsensusAssetUpdate, type ConsensusHoldingEntry, type ConsensusOracleDeps, type ConsensusOracleHoldingConfig, ConsensusOracleService, type ConsensusOracleTarget, CrankNavBuilder, type CrankNavIxArgs, type CrankNavTxArgs, CrankPerformanceFeesBuilder, type CrankPerformanceFeesIxArgs, type CrankPerformanceFeesTxArgs, type CreateAccountParams, CreateAssetHoldingBuilder, type CreateAssetHoldingIxArgs, type CreateAssetHoldingTxArgs, type CreateTokenMintIxs, CreateTrancheStateBuilder, type CreateTrancheStateIxArgs, type CreateTrancheStateTxArgs, CreateVaultBuilder, type CreateVaultClientOptions, type CreateVaultIxArgs, type CreateVaultParams, type CreateVaultTxArgs, type CreateYieldPaymentParams, DEFAULT_JUNIOR_EARLY_UNSTAKE_FEE_BPS, DEFAULT_JUNIOR_STANDARD_UNSTAKE_FEE_BPS, DEFAULT_JUNIOR_WITHDRAWAL_LOCKUP_SECS, DEFAULT_MAX_ACCEPTABLE_APY_BPS, DEFAULT_ORACLE_STALENESS_THRESHOLD_SECS, DEFAULT_PRICE_ORACLE_ACCOUNT, DEFAULT_PRICE_STALENESS_THRESHOLD_SECS, DEFAULT_VAULT_ID, type DecodedHolding, type DecodedVault, type DeleteAccountParams, DisableCircuitBreakerBuilder, type DisableCircuitBreakerIxArgs, type DisableCircuitBreakerTxArgs, ExecuteDepositBuilder, type ExecuteDepositIxArgs, type ExecuteDepositTxArgs, ExecuteShareSwapBuilder, type ExecuteShareSwapIxArgs, type ExecuteShareSwapTxArgs, ExecuteTrancheDepositBuilder, type ExecuteTrancheDepositIxArgs, type ExecuteTrancheDepositTxArgs, ExecuteTrancheWithdrawBuilder, type ExecuteTrancheWithdrawIxArgs, type ExecuteTrancheWithdrawTxArgs, ExecuteWithdrawBuilder, type ExecuteWithdrawIxArgs, type ExecuteWithdrawTxArgs, type ExternalLiquidityIntegrityResult, ExternalLiquidityIntegrityService, type ExternalLiquidityIntegritySummary, type ExternalLiquiditySlot, type ExternalLiquiditySourceArgs, type ExternalPosition, type ExternalPositionContext, type ExternalPositionProvider, type ExternalPositionRef, ExternalPositionRegistry, FEE_VAULT_CACHE_CATEGORY, type FeeVaultAccountData, FulfillJuniorTrancheWithdrawBuilder, type FulfillJuniorTrancheWithdrawIxArgs, type FulfillJuniorTrancheWithdrawTxArgs, type FulfillSummary, type HoldingUpdatePreview, IDL, InitializeVaultRolesBuilder, type InitializeVaultRolesIxArgs, type InitializeVaultRolesTxArgs, type JuniorWithdrawalMode, JupiterBalanceSource, type JupiterBalanceSourceOptions, JupiterPriceSource, type JupiterPriceSourceOptions, JupiterSwapBuilder, type JupiterSwapIxArgs, type JupiterSwapTxArgs, KaminoPositionProvider, type LiveConsensusOracleDepsOptions, MAX_PRICE_STALENESS_THRESHOLD_SECS, ManagerRedepositAssetBuilder, type ManagerRedepositAssetIxArgs, type ManagerRedepositAssetTxArgs, ManagerWithdrawAssetBuilder, type ManagerWithdrawAssetIxArgs, type ManagerWithdrawAssetTxArgs, MarginfiPositionProvider, type MockYieldAccountConfig, MockYieldTracker, type MockYieldTrackerOptions, type NavCrankBlocker, type NavCrankBlockerReason, type NavCrankReadiness, type NavCrankResult, OracleService, PROGRAM_FEE_EXEMPT_OWNER_WHITELIST, PROTOCOL_ADMIN, PROTOCOL_FEE_RECIPIENT, PdaClient, type PreparedDirectTransaction, type PreparedSquadsTransaction, type PreparedVaultTransaction, type PriceOracleTypeArgs, type PriceSource, ProtocolInteractionBuilder, type ProtocolInteractionIxArgs, type ProtocolInteractionTxArgs, type QuoteFeeUnit, RemoveAssetHoldingBuilder, type RemoveAssetHoldingIxArgs, type RemoveAssetHoldingTxArgs, RequestJuniorTrancheWithdrawBuilder, type RequestJuniorTrancheWithdrawIxArgs, type RequestJuniorTrancheWithdrawTxArgs, type ResolvedSquadsWalletRoute, type RollingLimitConfig, type RunLiveConsensusOracleOptions, type RunOptions, type RunSummary, SHARE_DECIMALS, SetAssetPriceOracleBuilder, type SetAssetPriceOracleIxArgs, type SetAssetPriceOracleTxArgs, SetExternalLiquidityBuilder, type SetExternalLiquidityIxArgs, type SetExternalLiquidityTxArgs, SetProtocolFeeBuilder, type SetProtocolFeeIxArgs, type SetProtocolFeeTxArgs, SetVaultConfigBuilder, type SetVaultConfigIxArgs, type SetVaultConfigTxArgs, type SquadsWalletRouteConfig, StaticPositionProvider, TOKEN_PROGRAM, TOKEN_PROGRAM_ID, type TrancheKindArgs, type TransactionBuilder, TransactionClient, USDC_MINT, USD_STAR_JUNIOR_MINT, USD_STAR_MINT, USD_STAR_PRINCIPAL_MINT, type UpdateAccountParams, UpdateAssetPriceBuilder, type UpdateAssetPriceIxArgs, type UpdateAssetPriceTxArgs, UpdateConsensusOracleBuilder, type UpdateConsensusOracleIxArgs, type UpdateConsensusOracleTxArgs, UpdateConsensusSignersBuilder, type UpdateConsensusSignersIxArgs, type UpdateConsensusSignersTxArgs, type UpdateDynamicAprParams, UpdateTrancheConfigBuilder, type UpdateTrancheConfigIxArgs, type UpdateTrancheConfigTxArgs, VAULT_CACHE_CATEGORY, VAULT_CREATOR_WHITELIST, VAULT_ENVIRONMENTS, VAULT_ORACLE_CACHE_CATEGORY, VAULT_PROGRAM_ID, VAULT_PROGRAM_IDS, VAULT_PROGRAM_PUBLIC_KEY, VAULT_ROLE_UPDATE_TIMELOCK_SECS, VAULT_TRANCHE_STATE_CACHE_CATEGORY, VAULT_TRANCHE_WITHDRAWAL_QUEUE_CACHE_CATEGORY, type Vault, type VaultAccountData, VaultBuilderBase, type VaultBuilderContext, type VaultCacheInvalidation, VaultClient, type VaultClientBundle, type VaultEnv, type VaultOracleAccountData, type VaultOracleResult, type VaultPricingInputs, type VaultQuote, type VaultQuoteArgs, VaultQuoteClient, type VaultQuoteDirection, type VaultQuoteShareClass, VaultReallocationBuilder, type VaultReallocationIxArgs, type VaultReallocationTxArgs, type VaultTrancheStateAccountData, type VaultTrancheWithdrawalQueueAccountData, type VaultTransactionPlan, type WalletBalanceSource, type WithdrawProtocolFeesIxArgs, type WithdrawProtocolFeesTxArgs, type WithdrawTrancheFeesIxArgs, type WithdrawTrancheFeesTxArgs, WithdrawalQueueService, type WithdrawalQueueSnapshot, type YieldAccount, type YieldAccountSnapshot, type YieldCalculationLog, type YieldPaymentResponse, type YieldPaymentSnapshot, type YieldTracker, addCashflowUpdate, confirmYieldPayment, createAccount, createLiveConsensusOracleDeps, createRpcFromConnection, createTokenMint, createTokenMintIxs, createVaultClient, createYieldPayment, dateToStr, defaultKeypairPath, deleteAccount, findSquadsWalletRoute, fromUiAmount, getAccounts, getBalance, getCashflows, getRpcUrl, getTotalOutstandingYield, getTotalYield, getVaultProgramId, getYield, getYieldPayments, isVaultEnv, keypairAddress, loadKeypair, makeProvider, mintTokensTo, prepareVaultTransaction, resolveKeypairPath, resolveSquadsWalletRoute, roundToNextUtcMidnight, runLiveConsensusOracle, systemClock, toUiAmount, updateAccount, updateDynamicApr, validateSquadsWalletRoutes, vaultAuthorityForWallet };
16423
+ export { ASSET_DECIMALS, type AccountBalanceResponse, AccountClient, type AccountYieldResponse, ActivateCircuitBreakerBuilder, type ActivateCircuitBreakerIxArgs, type ActivateCircuitBreakerTxArgs, type AssetPriceOracleConfigIxArgs, type AssetPriceOracleConfigTxArgs, type AssetPriceRefreshTarget, type AssetRefreshResult, type Bankineco, type BasicAuthCredentials, type Bigintish, CancelJuniorTrancheWithdrawBuilder, type CancelJuniorTrancheWithdrawIxArgs, type CancelJuniorTrancheWithdrawTxArgs, type Clock, type ConsensusAssetUpdate, type ConsensusHoldingEntry, type ConsensusHoldingSimulation, type ConsensusOracleDeps, type ConsensusOracleHoldingConfig, ConsensusOracleService, type ConsensusOracleTarget, CrankNavBuilder, type CrankNavIxArgs, type CrankNavTxArgs, CrankPerformanceFeesBuilder, type CrankPerformanceFeesIxArgs, type CrankPerformanceFeesTxArgs, type CreateAccountParams, CreateAssetHoldingBuilder, type CreateAssetHoldingIxArgs, type CreateAssetHoldingTxArgs, type CreateTokenMintIxs, CreateTrancheStateBuilder, type CreateTrancheStateIxArgs, type CreateTrancheStateTxArgs, CreateVaultBuilder, type CreateVaultClientOptions, type CreateVaultIxArgs, type CreateVaultParams, type CreateVaultTxArgs, type CreateYieldPaymentParams, DEFAULT_JUNIOR_EARLY_UNSTAKE_FEE_BPS, DEFAULT_JUNIOR_STANDARD_UNSTAKE_FEE_BPS, DEFAULT_JUNIOR_WITHDRAWAL_LOCKUP_SECS, DEFAULT_MAX_ACCEPTABLE_APY_BPS, DEFAULT_ORACLE_STALENESS_THRESHOLD_SECS, DEFAULT_PRICE_ORACLE_ACCOUNT, DEFAULT_PRICE_STALENESS_THRESHOLD_SECS, DEFAULT_VAULT_ID, type DecodedHolding, type DecodedVault, type DecodedVaultTrancheState, type DeleteAccountParams, DisableCircuitBreakerBuilder, type DisableCircuitBreakerIxArgs, type DisableCircuitBreakerTxArgs, ExecuteDepositBuilder, type ExecuteDepositIxArgs, type ExecuteDepositTxArgs, ExecuteShareSwapBuilder, type ExecuteShareSwapIxArgs, type ExecuteShareSwapTxArgs, ExecuteTrancheDepositBuilder, type ExecuteTrancheDepositIxArgs, type ExecuteTrancheDepositTxArgs, ExecuteTrancheWithdrawBuilder, type ExecuteTrancheWithdrawIxArgs, type ExecuteTrancheWithdrawTxArgs, ExecuteWithdrawBuilder, type ExecuteWithdrawIxArgs, type ExecuteWithdrawTxArgs, type ExternalLiquidityIntegrityResult, ExternalLiquidityIntegrityService, type ExternalLiquidityIntegritySummary, type ExternalLiquiditySlot, type ExternalLiquiditySourceArgs, type ExternalPosition, type ExternalPositionContext, type ExternalPositionProvider, type ExternalPositionRef, ExternalPositionRegistry, FEE_VAULT_CACHE_CATEGORY, type FeeVaultAccountData, type FetchNestTokenPriceOptions, FulfillJuniorTrancheWithdrawBuilder, type FulfillJuniorTrancheWithdrawIxArgs, type FulfillJuniorTrancheWithdrawTxArgs, type FulfillSummary, type HoldingUpdatePreview, IDL, InitializeVaultRolesBuilder, type InitializeVaultRolesIxArgs, type InitializeVaultRolesTxArgs, type JuniorWithdrawalMode, JupiterBalanceSource, type JupiterBalanceSourceOptions, JupiterPriceSource, type JupiterPriceSourceOptions, JupiterSwapBuilder, type JupiterSwapIxArgs, type JupiterSwapTxArgs, KaminoPositionProvider, LOCAL_PROTOCOL_ADMIN, type LiveConsensusOracleDepsOptions, LivePriceSource, type LivePriceSourceOptions, MAX_PRICE_STALENESS_THRESHOLD_SECS, ManagerRedepositAssetBuilder, type ManagerRedepositAssetIxArgs, type ManagerRedepositAssetTxArgs, ManagerWithdrawAssetBuilder, type ManagerWithdrawAssetIxArgs, type ManagerWithdrawAssetTxArgs, MarginfiPositionProvider, type MockYieldAccountConfig, MockYieldTracker, type MockYieldTrackerOptions, NEST_API_BASE_URL, NEST_RWA_SHARE_MINT, NEST_VAULT_SLUG, type NavCrankBlocker, type NavCrankBlockerReason, type NavCrankReadiness, type NavCrankResult, NestPriceSource, type NestPriceSourceOptions, OracleService, PROGRAM_FEE_EXEMPT_OWNER_WHITELIST, PROTOCOL_ADMIN, PROTOCOL_FEE_RECIPIENT, PdaClient, type PreparedDirectTransaction, type PreparedSquadsTransaction, type PreparedVaultTransaction, type PriceOracleTypeArgs, type PriceSource, ProtocolInteractionBuilder, type ProtocolInteractionIxArgs, type ProtocolInteractionTxArgs, type QuoteFeeUnit, RemoveAssetHoldingBuilder, type RemoveAssetHoldingIxArgs, type RemoveAssetHoldingTxArgs, RequestJuniorTrancheWithdrawBuilder, type RequestJuniorTrancheWithdrawIxArgs, type RequestJuniorTrancheWithdrawTxArgs, type ResolvedSquadsWalletRoute, type RollingLimitConfig, type RunLiveConsensusOracleOptions, type RunOptions, type RunSummary, SHARE_DECIMALS, SetAssetPriceOracleBuilder, type SetAssetPriceOracleIxArgs, type SetAssetPriceOracleTxArgs, SetExternalLiquidityBuilder, type SetExternalLiquidityIxArgs, type SetExternalLiquidityTxArgs, SetProtocolFeeBuilder, type SetProtocolFeeIxArgs, type SetProtocolFeeTxArgs, SetVaultConfigBuilder, type SetVaultConfigIxArgs, type SetVaultConfigTxArgs, type SettlementSimulation, type SettlementSimulationSnapshot, type SimulateSettlementArgs, type SimulatedShareClass, type SquadsWalletRouteConfig, StaticPositionProvider, TOKEN_PROGRAM, TOKEN_PROGRAM_ID, type TrancheKindArgs, type TransactionBuilder, TransactionClient, USDC_MINT, USD_STAR_JUNIOR_MINT, USD_STAR_MINT, USD_STAR_PRINCIPAL_MINT, type UpdateAccountParams, UpdateAssetPriceBuilder, type UpdateAssetPriceIxArgs, type UpdateAssetPriceTxArgs, UpdateConsensusOracleBuilder, type UpdateConsensusOracleIxArgs, type UpdateConsensusOracleTxArgs, UpdateConsensusSignersBuilder, type UpdateConsensusSignersIxArgs, type UpdateConsensusSignersTxArgs, type UpdateDynamicAprParams, UpdateTrancheConfigBuilder, type UpdateTrancheConfigIxArgs, type UpdateTrancheConfigTxArgs, VAULT_CACHE_CATEGORY, VAULT_CREATOR_WHITELIST, VAULT_ENVIRONMENTS, VAULT_ORACLE_CACHE_CATEGORY, VAULT_PROGRAM_ID, VAULT_PROGRAM_IDS, VAULT_PROGRAM_PUBLIC_KEY, VAULT_ROLE_UPDATE_TIMELOCK_SECS, VAULT_TRANCHE_STATE_CACHE_CATEGORY, VAULT_TRANCHE_WITHDRAWAL_QUEUE_CACHE_CATEGORY, type Vault, type VaultAccountData, VaultBuilderBase, type VaultBuilderContext, type VaultCacheInvalidation, VaultClient, type VaultClientBundle, type VaultEnv, type VaultOracleAccountData, type VaultOracleResult, type VaultPricingInputs, type VaultQuote, type VaultQuoteArgs, VaultQuoteClient, type VaultQuoteDirection, type VaultQuoteShareClass, VaultReallocationBuilder, type VaultReallocationIxArgs, type VaultReallocationTxArgs, type VaultTrancheStateAccountData, type VaultTrancheWithdrawalQueueAccountData, type VaultTransactionPlan, type WalletBalanceSource, type WithdrawProtocolFeesIxArgs, type WithdrawProtocolFeesTxArgs, type WithdrawTrancheFeesIxArgs, type WithdrawTrancheFeesTxArgs, WithdrawalQueueService, type WithdrawalQueueSnapshot, type YieldAccount, type YieldAccountSnapshot, type YieldCalculationLog, type YieldPaymentResponse, type YieldPaymentSnapshot, type YieldTracker, addCashflowUpdate, applyEffectiveApy, confirmYieldPayment, createAccount, createLiveConsensusOracleDeps, createRpcFromConnection, createTokenMint, createTokenMintIxs, createVaultClient, createYieldPayment, dateToStr, defaultKeypairPath, deleteAccount, fetchNestTokenPrice, findSquadsWalletRoute, formatSettlementSimulation, fromUiAmount, getAccounts, getBalance, getCashflows, getRpcUrl, getTotalOutstandingYield, getTotalYield, getVaultProgramId, getYield, getYieldPayments, isVaultEnv, keypairAddress, loadKeypair, makeProvider, mintTokensTo, prepareVaultTransaction, resolveKeypairPath, resolveSquadsWalletRoute, roundToNextUtcMidnight, runLiveConsensusOracle, simulateConsensusOracleSettlement, systemClock, toUiAmount, updateAccount, updateDynamicApr, validateSquadsWalletRoutes, vaultAuthorityForWallet };