@perena/vault-sdk 1.0.27 → 1.0.28

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 +203 -289
  2. package/dist/index.js +523 -555
  3. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -4765,66 +4765,6 @@ type Bankineco = {
4765
4765
  };
4766
4766
  };
4767
4767
  },
4768
- {
4769
- "name": "feeCollector";
4770
- },
4771
- {
4772
- "name": "feeCollectorOutputAta";
4773
- "writable": true;
4774
- "pda": {
4775
- "seeds": [
4776
- {
4777
- "kind": "account";
4778
- "path": "feeCollector";
4779
- },
4780
- {
4781
- "kind": "account";
4782
- "path": "assetTokenProgram";
4783
- },
4784
- {
4785
- "kind": "account";
4786
- "path": "outputMint";
4787
- }
4788
- ];
4789
- "program": {
4790
- "kind": "const";
4791
- "value": [
4792
- 140,
4793
- 151,
4794
- 37,
4795
- 143,
4796
- 78,
4797
- 36,
4798
- 137,
4799
- 241,
4800
- 187,
4801
- 61,
4802
- 16,
4803
- 41,
4804
- 20,
4805
- 142,
4806
- 13,
4807
- 131,
4808
- 11,
4809
- 90,
4810
- 19,
4811
- 153,
4812
- 218,
4813
- 255,
4814
- 16,
4815
- 132,
4816
- 4,
4817
- 142,
4818
- 123,
4819
- 216,
4820
- 219,
4821
- 233,
4822
- 248,
4823
- 89
4824
- ];
4825
- };
4826
- };
4827
- },
4828
4768
  {
4829
4769
  "name": "queueInputAta";
4830
4770
  "writable": true;
@@ -4897,7 +4837,24 @@ type Bankineco = {
4897
4837
  "address": "11111111111111111111111111111111";
4898
4838
  }
4899
4839
  ];
4900
- "args": [];
4840
+ "args": [
4841
+ {
4842
+ "name": "externalWithdrawIxRefs";
4843
+ "type": {
4844
+ "option": {
4845
+ "defined": {
4846
+ "name": "instructionRefs";
4847
+ };
4848
+ };
4849
+ };
4850
+ },
4851
+ {
4852
+ "name": "externalLiquiditySource";
4853
+ "type": {
4854
+ "option": "u8";
4855
+ };
4856
+ }
4857
+ ];
4901
4858
  },
4902
4859
  {
4903
4860
  "name": "fulfillJuniorTrancheWithdrawFeeExempt";
@@ -5064,66 +5021,6 @@ type Bankineco = {
5064
5021
  };
5065
5022
  };
5066
5023
  },
5067
- {
5068
- "name": "feeCollector";
5069
- },
5070
- {
5071
- "name": "feeCollectorOutputAta";
5072
- "writable": true;
5073
- "pda": {
5074
- "seeds": [
5075
- {
5076
- "kind": "account";
5077
- "path": "feeCollector";
5078
- },
5079
- {
5080
- "kind": "account";
5081
- "path": "assetTokenProgram";
5082
- },
5083
- {
5084
- "kind": "account";
5085
- "path": "outputMint";
5086
- }
5087
- ];
5088
- "program": {
5089
- "kind": "const";
5090
- "value": [
5091
- 140,
5092
- 151,
5093
- 37,
5094
- 143,
5095
- 78,
5096
- 36,
5097
- 137,
5098
- 241,
5099
- 187,
5100
- 61,
5101
- 16,
5102
- 41,
5103
- 20,
5104
- 142,
5105
- 13,
5106
- 131,
5107
- 11,
5108
- 90,
5109
- 19,
5110
- 153,
5111
- 218,
5112
- 255,
5113
- 16,
5114
- 132,
5115
- 4,
5116
- 142,
5117
- 123,
5118
- 216,
5119
- 219,
5120
- 233,
5121
- 248,
5122
- 89
5123
- ];
5124
- };
5125
- };
5126
- },
5127
5024
  {
5128
5025
  "name": "queueInputAta";
5129
5026
  "writable": true;
@@ -5197,6 +5094,22 @@ type Bankineco = {
5197
5094
  }
5198
5095
  ];
5199
5096
  "args": [
5097
+ {
5098
+ "name": "externalWithdrawIxRefs";
5099
+ "type": {
5100
+ "option": {
5101
+ "defined": {
5102
+ "name": "instructionRefs";
5103
+ };
5104
+ };
5105
+ };
5106
+ },
5107
+ {
5108
+ "name": "externalLiquiditySource";
5109
+ "type": {
5110
+ "option": "u8";
5111
+ };
5112
+ },
5200
5113
  {
5201
5114
  "name": "signerSeeds";
5202
5115
  "type": {
@@ -9536,239 +9449,229 @@ type Bankineco = {
9536
9449
  ];
9537
9450
  "errors": [
9538
9451
  {
9539
- "code": 14001;
9540
- "name": "unauthorized";
9541
- "msg": "You are not authorized to perform this action.";
9452
+ "code": 6000;
9453
+ "name": "mintSupplyNonZero";
9454
+ "msg": "Supplied share mint already has non-zero supply";
9542
9455
  },
9543
9456
  {
9544
- "code": 14002;
9545
- "name": "invalidBankMint";
9546
- "msg": "Invalid mint";
9457
+ "code": 6001;
9458
+ "name": "invalidAssetMint";
9459
+ "msg": "Supplied mint is not accepted by this vault";
9547
9460
  },
9548
9461
  {
9549
- "code": 14003;
9550
- "name": "accountingIssue";
9551
- "msg": "Accounting issue";
9462
+ "code": 6002;
9463
+ "name": "zeroDepositAmount";
9464
+ "msg": "Deposit amount must be greater than zero";
9552
9465
  },
9553
9466
  {
9554
- "code": 14004;
9555
- "name": "vaultAccountingIssue";
9556
- "msg": "Vault accounting issue";
9467
+ "code": 6003;
9468
+ "name": "exceedsTvlLimit";
9469
+ "msg": "Deposit would exceed the vault's TVL limit";
9557
9470
  },
9558
9471
  {
9559
- "code": 14005;
9560
- "name": "bankAccountingIssue";
9561
- "msg": "Bank accounting issue";
9472
+ "code": 6004;
9473
+ "name": "zeroBurnAmount";
9474
+ "msg": "Burn amount must be greater than zero";
9562
9475
  },
9563
9476
  {
9564
- "code": 14006;
9565
- "name": "onchainAccountingIssue";
9566
- "msg": "Onchain accounting issue";
9477
+ "code": 6005;
9478
+ "name": "zeroAssetAmount";
9479
+ "msg": "Asset amount must be greater than zero";
9567
9480
  },
9568
9481
  {
9569
- "code": 14007;
9570
- "name": "externalAccountingIssue";
9571
- "msg": "External accounting issue";
9482
+ "code": 6006;
9483
+ "name": "insufficientVaultLiquidity";
9484
+ "msg": "Insufficient vault liquidity to satisfy withdrawal";
9572
9485
  },
9573
9486
  {
9574
- "code": 14008;
9575
- "name": "mintSlippage";
9576
- "msg": "Minting failed due to slippage.";
9487
+ "code": 6007;
9488
+ "name": "mintAuthorityNotCurator";
9489
+ "msg": "Mint authority is not the curator";
9577
9490
  },
9578
9491
  {
9579
- "code": 14009;
9580
- "name": "burningSlippage";
9581
- "msg": "Burning failed due to slippage.";
9492
+ "code": 6008;
9493
+ "name": "zeroTotalSupply";
9494
+ "msg": "Vault total supply is zero";
9582
9495
  },
9583
9496
  {
9584
- "code": 14010;
9585
- "name": "teamAccountAlreadyExists";
9586
- "msg": "Team account already exists";
9587
- },
9588
- {
9589
- "code": 14011;
9590
- "name": "oracleAccountAlreadyExists";
9591
- "msg": "Oracle account already exists";
9592
- },
9593
- {
9594
- "code": 14012;
9497
+ "code": 6009;
9595
9498
  "name": "staleOracle";
9596
- "msg": "Stale oracle";
9499
+ "msg": "Vault oracle is stale";
9597
9500
  },
9598
9501
  {
9599
- "code": 14013;
9600
- "name": "localSignificantPriceChange";
9601
- "msg": "Price change is too large locally";
9502
+ "code": 6010;
9503
+ "name": "invalidOracleUpdate";
9504
+ "msg": "Invalid oracle update";
9602
9505
  },
9603
9506
  {
9604
- "code": 14014;
9605
- "name": "significantPriceChange";
9606
- "msg": "Price change is too large";
9507
+ "code": 6011;
9508
+ "name": "invalidInitialMintSharePrice";
9509
+ "msg": "Initial mint share price must be greater than zero";
9607
9510
  },
9608
9511
  {
9609
- "code": 14015;
9610
- "name": "roundingImpact";
9611
- "msg": "Rounding impacts the protocol";
9512
+ "code": 6012;
9513
+ "name": "maxApyExceeded";
9514
+ "msg": "Oracle NAV update exceeds the vault's maximum acceptable APY";
9612
9515
  },
9613
9516
  {
9614
- "code": 14016;
9615
- "name": "bankIsHalted";
9616
- "msg": "Bank is halted";
9517
+ "code": 6013;
9518
+ "name": "invalidApyConfig";
9519
+ "msg": "Invalid APY configuration";
9617
9520
  },
9618
9521
  {
9619
- "code": 14017;
9620
- "name": "vaultIsHalted";
9621
- "msg": "Vault is halted";
9522
+ "code": 6014;
9523
+ "name": "invalidFeeConfig";
9524
+ "msg": "Invalid fee configuration";
9622
9525
  },
9623
9526
  {
9624
- "code": 14018;
9625
- "name": "conversionOverflow";
9626
- "msg": "Conversion Overflow";
9527
+ "code": 6015;
9528
+ "name": "vaultHasLiveAssets";
9529
+ "msg": "Vault has live supply, TVL, or holdings";
9627
9530
  },
9628
9531
  {
9629
- "code": 14019;
9630
- "name": "reserved8019";
9631
- "msg": "reserved";
9532
+ "code": 6016;
9533
+ "name": "depositMintsZeroShares";
9534
+ "msg": "Deposit would mint zero shares";
9632
9535
  },
9633
9536
  {
9634
- "code": 14020;
9635
- "name": "invalidArgument";
9636
- "msg": "Invalid argument";
9537
+ "code": 6017;
9538
+ "name": "insufficientAccruedApyBalance";
9539
+ "msg": "Insufficient accrued APY balance";
9637
9540
  },
9638
9541
  {
9639
- "code": 14021;
9640
- "name": "userSanityCheck";
9641
- "msg": "User Sanity Check";
9542
+ "code": 6018;
9543
+ "name": "invalidRole";
9544
+ "msg": "Invalid role configuration";
9642
9545
  },
9643
9546
  {
9644
- "code": 14022;
9645
- "name": "mathOverflow";
9646
- "msg": "Math overflow";
9547
+ "code": 6019;
9548
+ "name": "invalidProtocolInteraction";
9549
+ "msg": "Invalid protocol interaction CPI";
9647
9550
  },
9648
9551
  {
9649
- "code": 14023;
9650
- "name": "invalidMarginFiAccount";
9651
- "msg": "Invalid MarginFi account - must be correct PDA for this vault";
9552
+ "code": 6020;
9553
+ "name": "reserved7020";
9554
+ "msg": "reserved";
9652
9555
  },
9653
9556
  {
9654
- "code": 14024;
9655
- "name": "invalidStartMarker";
9656
- "msg": "Invalid start marker";
9557
+ "code": 6021;
9558
+ "name": "invalidExternalLiquidity";
9559
+ "msg": "Invalid external liquidity configuration";
9657
9560
  },
9658
9561
  {
9659
- "code": 14025;
9660
- "name": "oracleUpdateOnEmptyReserve";
9661
- "msg": "Unable to push oracle update on an empty vault reserve";
9562
+ "code": 6022;
9563
+ "name": "swapBalanceUnchanged";
9564
+ "msg": "Swap did not change both source and destination balances";
9662
9565
  },
9663
9566
  {
9664
- "code": 14026;
9665
- "name": "invalidRemainingAccountsLength";
9666
- "msg": "Invalid remaining accounts length";
9567
+ "code": 6023;
9568
+ "name": "protocolBalanceUnchanged";
9569
+ "msg": "Protocol interaction did not change the affected token balance";
9667
9570
  },
9668
9571
  {
9669
- "code": 14027;
9670
- "name": "withdrawalExceedsBalance";
9671
- "msg": "Specified withdrawal exceeds available balance";
9572
+ "code": 6024;
9573
+ "name": "excessiveSwapSlippage";
9574
+ "msg": "Swap TVL loss exceeds the allowed slippage";
9672
9575
  },
9673
9576
  {
9674
- "code": 14028;
9675
- "name": "insufficientPendingYield";
9676
- "msg": "Insufficient pending yield";
9577
+ "code": 6025;
9578
+ "name": "tranchingNotEnabled";
9579
+ "msg": "Vault tranching is not enabled";
9677
9580
  },
9678
9581
  {
9679
- "code": 14029;
9680
- "name": "notSupported";
9681
- "msg": "Not supported";
9582
+ "code": 6026;
9583
+ "name": "tranchingAlreadyEnabled";
9584
+ "msg": "Vault tranching is already enabled";
9682
9585
  },
9683
9586
  {
9684
- "code": 14030;
9685
- "name": "exceedsMaxYieldingTvl";
9686
- "msg": "Exceeds maximum yielding TVL";
9587
+ "code": 6027;
9588
+ "name": "trancheStateRequired";
9589
+ "msg": "Tranche state account is required";
9687
9590
  },
9688
9591
  {
9689
- "code": 14031;
9690
- "name": "tranchingNotEnabled";
9691
- "msg": "Tranching is not enabled for this bank";
9592
+ "code": 6028;
9593
+ "name": "invalidTrancheConfig";
9594
+ "msg": "Invalid tranche configuration";
9692
9595
  },
9693
9596
  {
9694
- "code": 14032;
9695
- "name": "invalidLeverageFactor";
9696
- "msg": "Invalid leverage factor - must be at least 10000 (1x)";
9597
+ "code": 6029;
9598
+ "name": "invalidTrancheMint";
9599
+ "msg": "Invalid tranche mint";
9697
9600
  },
9698
9601
  {
9699
- "code": 14033;
9700
- "name": "insufficientStakedAmount";
9701
- "msg": "Insufficient staked amount";
9602
+ "code": 6030;
9603
+ "name": "lossesDisabled";
9604
+ "msg": "Vault losses are not enabled";
9702
9605
  },
9703
9606
  {
9704
- "code": 14034;
9705
- "name": "juniorTrancheEmpty";
9706
- "msg": "Junior tranche has no value";
9607
+ "code": 6031;
9608
+ "name": "withdrawalQueueNotExpired";
9609
+ "msg": "Withdrawal queue is not yet expired";
9707
9610
  },
9708
9611
  {
9709
- "code": 14035;
9710
- "name": "invalidTrancheConfig";
9711
- "msg": "Invalid tranche config parameter";
9612
+ "code": 6032;
9613
+ "name": "invalidWithdrawalQueue";
9614
+ "msg": "Invalid withdrawal queue";
9712
9615
  },
9713
9616
  {
9714
- "code": 14036;
9715
- "name": "withdrawalQueueNotExpired";
9716
- "msg": "Withdrawal queue lockup period has not expired";
9617
+ "code": 6033;
9618
+ "name": "assetPriceNotSet";
9619
+ "msg": "Destination asset has no price set; a consensus oracle price is required before swapping";
9717
9620
  },
9718
9621
  {
9719
- "code": 14037;
9720
- "name": "invalidWithdrawalQueue";
9721
- "msg": "Withdrawal queue entry is not in a valid state";
9622
+ "code": 6034;
9623
+ "name": "assetHoldingNotEmpty";
9624
+ "msg": "Asset holding still has a balance and cannot be removed";
9722
9625
  },
9723
9626
  {
9724
- "code": 14038;
9725
- "name": "invalidAccount";
9726
- "msg": "Account does not belong to the expected parent";
9627
+ "code": 6035;
9628
+ "name": "cannotRemoveBaseHolding";
9629
+ "msg": "The base asset holding cannot be removed";
9727
9630
  },
9728
9631
  {
9729
- "code": 14039;
9730
- "name": "missingAccount";
9731
- "msg": "Required optional account is missing";
9632
+ "code": 6036;
9633
+ "name": "unauthorizedPriceUpdater";
9634
+ "msg": "Caller is not authorized to trigger an asset price update";
9732
9635
  },
9733
9636
  {
9734
- "code": 14040;
9735
- "name": "trancheWipedOut";
9736
- "msg": "Junior tranche is wiped out and cannot accept new stakes";
9637
+ "code": 6037;
9638
+ "name": "invalidStalenessConfig";
9639
+ "msg": "Invalid asset-price staleness threshold";
9737
9640
  },
9738
9641
  {
9739
- "code": 14041;
9740
- "name": "vaultLossNotAccepted";
9741
- "msg": "Vault does not accept losses — enable losses_accepted before retrying";
9642
+ "code": 6038;
9643
+ "name": "assetRebalanceRateLimitExceeded";
9644
+ "msg": "Asset was rebalanced too recently";
9742
9645
  },
9743
9646
  {
9744
- "code": 14042;
9745
- "name": "capitalLossExceedsReserve";
9746
- "msg": "Capital loss exceeds available yielding reserve";
9647
+ "code": 6039;
9648
+ "name": "invalidShareTokenProgram";
9649
+ "msg": "Share token program does not match the vault/tranche mint configuration";
9747
9650
  },
9748
9651
  {
9749
- "code": 14043;
9750
- "name": "rollingWithdrawalLimitExceeded";
9751
- "msg": "Rolling withdrawal limit exceeded";
9652
+ "code": 6040;
9653
+ "name": "unauthorizedVaultCreator";
9654
+ "msg": "Caller is not on the vault-creator whitelist";
9752
9655
  },
9753
9656
  {
9754
- "code": 14044;
9755
- "name": "vaultAlreadyMigrated";
9756
- "msg": "Legacy vault has already been migrated";
9657
+ "code": 6041;
9658
+ "name": "invalidShareMintDecimals";
9659
+ "msg": "Share mint decimals must match the vault accounting decimals";
9757
9660
  },
9758
9661
  {
9759
- "code": 14045;
9760
- "name": "invalidMigrationState";
9761
- "msg": "Legacy vault migration is incomplete or invalid";
9662
+ "code": 6042;
9663
+ "name": "invalidFeeExemption";
9664
+ "msg": "Invalid fee-exemption PDA signer or seeds";
9762
9665
  },
9763
9666
  {
9764
- "code": 14046;
9765
- "name": "invalidMigrationMintAuthority";
9766
- "msg": "Mint authority does not match the expected migration source";
9667
+ "code": 6043;
9668
+ "name": "exceedsJuniorDepositCap";
9669
+ "msg": "Deposit would exceed the junior tranche deposit cap";
9767
9670
  },
9768
9671
  {
9769
- "code": 14047;
9770
- "name": "bankMigrationIncomplete";
9771
- "msg": "Legacy bank or tranche migration is incomplete source accounting and escrow must be fully drained before mint authority transfer";
9672
+ "code": 6044;
9673
+ "name": "invalidShareSupply";
9674
+ "msg": "Physical share-mint supply does not match effective supply accounting";
9772
9675
  }
9773
9676
  ];
9774
9677
  "types": [
@@ -10149,9 +10052,7 @@ type Bankineco = {
10149
10052
  "Holdings are addressed by their slot index (1 byte) to keep instruction data",
10150
10053
  "small. To register a brand-new consensus holding, set `mint` to its mint",
10151
10054
  "(and pass the matching `asset_mint` account); the created slot's index is used",
10152
- "and `holding_index` is ignored. For existing holdings leave `mint` as `None`.",
10153
- "The price is authoritative only for ConsensusOracle holdings. Pyth and nested-vault",
10154
- "holdings use the report only for external_amount and retain their live-oracle price."
10055
+ "and `holding_index` is ignored. For existing holdings leave `mint` as `None`."
10155
10056
  ];
10156
10057
  "type": {
10157
10058
  "kind": "struct";
@@ -11896,7 +11797,8 @@ type Bankineco = {
11896
11797
  {
11897
11798
  "name": "lossesEnabled";
11898
11799
  "docs": [
11899
- "Allows consensus-oracle NAV losses beyond the protocol's small-loss tolerance. Losses inside that tolerance settle without this flag."
11800
+ "Allows consensus-oracle NAV losses beyond the protocol's small-loss",
11801
+ "tolerance. Losses inside that tolerance settle without this flag."
11900
11802
  ];
11901
11803
  "type": {
11902
11804
  "defined": {
@@ -14561,11 +14463,12 @@ interface FulfillJuniorTrancheWithdrawIxArgs {
14561
14463
  ownerInputAta: Address;
14562
14464
  ownerOutputAta: Address;
14563
14465
  vaultOutputAta: Address;
14564
- feeCollector: Address;
14565
- feeCollectorOutputAta: Address;
14566
14466
  queueInputAta: Address;
14567
14467
  assetTokenProgram: Address;
14568
14468
  shareTokenProgram: Address;
14469
+ externalWithdrawIxRefs: InstructionRefs | null;
14470
+ externalLiquiditySource: number | null;
14471
+ externalWithdrawAccounts: CustomAccountMeta[];
14569
14472
  /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14570
14473
  addressSeeds?: readonly Uint8Array[];
14571
14474
  }
@@ -14581,9 +14484,17 @@ interface FulfillJuniorTrancheWithdrawTxArgs {
14581
14484
  juniorShareMint: Address;
14582
14485
  ownerInputAta?: Address;
14583
14486
  queueId: number;
14584
- feeCollector?: Address;
14585
14487
  assetTokenProgram?: Address;
14586
14488
  shareTokenProgram?: Address;
14489
+ externalWithdrawIxRefs?: InstructionRefs;
14490
+ externalLiquiditySource?: number;
14491
+ externalWithdrawAccounts?: CustomAccountMeta[];
14492
+ /**
14493
+ * When true, skips the automatic detection of on-chain Marginfi external
14494
+ * liquidity and always fulfills from local vault liquidity only.
14495
+ */
14496
+ skipExternalLiquidity?: boolean;
14497
+ lookupTables?: Address[];
14587
14498
  /** PDA derivation seeds, including the bump, for the fee-exempt route. */
14588
14499
  addressSeeds?: readonly Uint8Array[];
14589
14500
  }
@@ -15134,19 +15045,19 @@ declare class ExecuteTrancheWithdrawBuilder extends VaultBuilderBase<ExecuteTran
15134
15045
 
15135
15046
  declare class ExecuteWithdrawBuilder extends VaultBuilderBase<ExecuteWithdrawIxArgs, ExecuteWithdrawTxArgs> {
15136
15047
  getIxAccounts(args: ExecuteWithdrawIxArgs): {
15137
- user: PublicKey;
15138
- vault: PublicKey;
15139
- vaultOracle: PublicKey;
15140
- vaultTrancheState: PublicKey | null;
15141
- assetMint: PublicKey;
15142
- shareMint: PublicKey;
15143
- userAssetAta: PublicKey;
15144
- vaultAssetAta: PublicKey;
15145
- feeVault: PublicKey;
15146
- feeVaultAta: PublicKey;
15147
- userShareAta: PublicKey;
15148
- assetTokenProgram: PublicKey;
15149
- shareTokenProgram: PublicKey;
15048
+ user: _solana_web3_js.PublicKey;
15049
+ vault: _solana_web3_js.PublicKey;
15050
+ vaultOracle: _solana_web3_js.PublicKey;
15051
+ vaultTrancheState: _solana_web3_js.PublicKey | null;
15052
+ assetMint: _solana_web3_js.PublicKey;
15053
+ shareMint: _solana_web3_js.PublicKey;
15054
+ userAssetAta: _solana_web3_js.PublicKey;
15055
+ vaultAssetAta: _solana_web3_js.PublicKey;
15056
+ feeVault: _solana_web3_js.PublicKey;
15057
+ feeVaultAta: _solana_web3_js.PublicKey;
15058
+ userShareAta: _solana_web3_js.PublicKey;
15059
+ assetTokenProgram: _solana_web3_js.PublicKey;
15060
+ shareTokenProgram: _solana_web3_js.PublicKey;
15150
15061
  };
15151
15062
  getIxData(args: ExecuteWithdrawIxArgs): {
15152
15063
  shareAmount: BN;
@@ -15168,12 +15079,13 @@ declare class ExecuteWithdrawBuilder extends VaultBuilderBase<ExecuteWithdrawIxA
15168
15079
  declare class FulfillJuniorTrancheWithdrawBuilder extends VaultBuilderBase<FulfillJuniorTrancheWithdrawIxArgs, FulfillJuniorTrancheWithdrawTxArgs> {
15169
15080
  getIx(args: FulfillJuniorTrancheWithdrawIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>>;
15170
15081
  protected deriveIxArgs(txArgs: FulfillJuniorTrancheWithdrawTxArgs): Promise<FulfillJuniorTrancheWithdrawIxArgs>;
15082
+ protected buildLookupTables(_args: FulfillJuniorTrancheWithdrawIxArgs, txArgs: FulfillJuniorTrancheWithdrawTxArgs): Promise<readonly Address[] | undefined>;
15171
15083
  protected buildPreambleInstructions(args: FulfillJuniorTrancheWithdrawIxArgs): Promise<_solana_kit.Instruction<string, readonly (_solana_kit.AccountLookupMeta<string, string> | _solana_kit.AccountMeta<string>)[]>[]>;
15172
15084
  protected buildPlanExtras(args: FulfillJuniorTrancheWithdrawIxArgs): Promise<{
15173
15085
  postSuccessCacheInvalidations: {
15174
- vaultPda: _solana_kit.Address;
15175
- vaultTrancheStatePda: _solana_kit.Address;
15176
- withdrawalQueuePda: _solana_kit.Address;
15086
+ vaultPda: Address;
15087
+ vaultTrancheStatePda: Address;
15088
+ withdrawalQueuePda: Address;
15177
15089
  }[];
15178
15090
  }>;
15179
15091
  }
@@ -15364,7 +15276,9 @@ declare function resolveKeypairPath(keypairPath: string): string;
15364
15276
  declare function loadKeypair(keypairPath: string): Keypair;
15365
15277
  /**
15366
15278
  * Default keypair location for a given role/env, e.g.
15367
- * `~/.config/solana/vault-fulfiller-prod.json`. Override per-invocation with
15279
+ * `~/.config/solana/vault-fulfiller-prod.json`. Roles in
15280
+ * {@link ENV_AGNOSTIC_ROLES} share one key across envs, e.g.
15281
+ * `~/.config/solana/fulfiller.json`. Override per-invocation with
15368
15282
  * the `--keypair` CLI flag or the `keypairPath` option.
15369
15283
  */
15370
15284
  declare function defaultKeypairPath(env: VaultEnv, role?: string): string;