@0dotxyz/p0-ts-sdk 2.7.4 → 2.8.0-alpha.1

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.
@@ -1,7 +1,7 @@
1
1
  import * as _solana_web3_js from '@solana/web3.js';
2
2
  import { PublicKey, AccountMeta } from '@solana/web3.js';
3
3
  import BN from 'bn.js';
4
- import { M as MarginfiProgram, B as BankConfigCompactRaw, a as BankConfigOptRaw } from './types-DJqANTTA.cjs';
4
+ import { M as MarginfiProgram, B as BankConfigCompactRaw, a as BankConfigOptRaw } from './types-6tM8iZUV.cjs';
5
5
  import '@coral-xyz/anchor';
6
6
  import 'bignumber.js';
7
7
  import './dto-rate-model.types-DnQmHIO6.cjs';
@@ -1,7 +1,7 @@
1
1
  import * as _solana_web3_js from '@solana/web3.js';
2
2
  import { PublicKey, AccountMeta } from '@solana/web3.js';
3
3
  import BN from 'bn.js';
4
- import { M as MarginfiProgram, B as BankConfigCompactRaw, a as BankConfigOptRaw } from './types-sisv3J7l.js';
4
+ import { M as MarginfiProgram, B as BankConfigCompactRaw, a as BankConfigOptRaw } from './types-SY3xiGG8.js';
5
5
  import '@coral-xyz/anchor';
6
6
  import 'bignumber.js';
7
7
  import './dto-rate-model.types-DnQmHIO6.js';
@@ -12568,6 +12568,26 @@ type Marginfi = {
12568
12568
  "code": 6604;
12569
12569
  "name": "circuitBreakerPriceJump";
12570
12570
  "msg": "Oracle price deviates too far from the circuit breaker reference; action rejected";
12571
+ },
12572
+ {
12573
+ "code": 6700;
12574
+ "name": "scopeInvalidAccount";
12575
+ "msg": "Scope oracle account is not owned by the Scope program or is malformed";
12576
+ },
12577
+ {
12578
+ "code": 6701;
12579
+ "name": "scopeInvalidEntry";
12580
+ "msg": "Scope entry index is out of range or the entry has never been refreshed";
12581
+ },
12582
+ {
12583
+ "code": 6702;
12584
+ "name": "scopeStalePrice";
12585
+ "msg": "Scope price is stale";
12586
+ },
12587
+ {
12588
+ "code": 6703;
12589
+ "name": "useConfigureBankOracleScope";
12590
+ "msg": "Use lending_pool_configure_bank_oracle_scope; Scope requires an entry index";
12571
12591
  }
12572
12592
  ];
12573
12593
  "types": [
@@ -13657,13 +13677,13 @@ type Marginfi = {
13657
13677
  "type": "u16";
13658
13678
  },
13659
13679
  {
13660
- "name": "padding0";
13661
- "type": {
13662
- "array": [
13663
- "u8",
13664
- 2
13665
- ];
13666
- };
13680
+ "name": "scopeEntryIndex";
13681
+ "docs": [
13682
+ "Entry index into the Scope OraclePrices price list. Only read when",
13683
+ "oracle_setup == OracleSetup::Scope; ignored (and zero) for every other setup.",
13684
+ "Occupies what was previously _padding0, so the layout is unchanged."
13685
+ ];
13686
+ "type": "u16";
13667
13687
  },
13668
13688
  {
13669
13689
  "name": "oracleMaxConfidence";
@@ -18614,6 +18634,33 @@ type Marginfi = {
18614
18634
  },
18615
18635
  {
18616
18636
  "name": "fixedJuplend";
18637
+ },
18638
+ {
18639
+ "name": "scope";
18640
+ },
18641
+ {
18642
+ "name": "pythMsol";
18643
+ },
18644
+ {
18645
+ "name": "kaminoMsol";
18646
+ },
18647
+ {
18648
+ "name": "juplendMsol";
18649
+ },
18650
+ {
18651
+ "name": "pythLst";
18652
+ },
18653
+ {
18654
+ "name": "kaminoLst";
18655
+ },
18656
+ {
18657
+ "name": "juplendLst";
18658
+ },
18659
+ {
18660
+ "name": "ptPyth";
18661
+ },
18662
+ {
18663
+ "name": "ptFixed";
18617
18664
  }
18618
18665
  ];
18619
18666
  };
@@ -20052,7 +20099,17 @@ declare enum OracleSetup {
20052
20099
  FixedDrift = "FixedDrift",
20053
20100
  JuplendPythPull = "JuplendPythPull",
20054
20101
  JuplendSwitchboardPull = "JuplendSwitchboardPull",
20055
- FixedJuplend = "FixedJuplend"
20102
+ FixedJuplend = "FixedJuplend",
20103
+ Scope = "Scope",
20104
+ PythMSOL = "PythMSOL",
20105
+ KaminoMSOL = "KaminoMSOL",
20106
+ JuplendMSOL = "JuplendMSOL",
20107
+ PythLST = "PythLST",
20108
+ KaminoLST = "KaminoLST",
20109
+ JuplendLST = "JuplendLST",
20110
+ PTPyth = "PTPyth",
20111
+ PTFixed = "PTFixed",
20112
+ Unknown = "Unknown"
20056
20113
  }
20057
20114
  declare enum AssetTag {
20058
20115
  DEFAULT = 0,
@@ -20102,6 +20159,7 @@ interface BankConfigType {
20102
20159
  oracleMaxAge: number;
20103
20160
  oracleMaxConfidence: number;
20104
20161
  fixedPrice: BigNumber$1;
20162
+ scopeEntryIndex: number;
20105
20163
  }
20106
20164
  interface BankType {
20107
20165
  address: PublicKey;
@@ -20397,6 +20455,7 @@ interface BankConfigRaw {
20397
20455
  configFlags?: number;
20398
20456
  totalAssetValueInitLimit: BN;
20399
20457
  oracleMaxAge: number;
20458
+ scopeEntryIndex?: number;
20400
20459
  oracleMaxConfidence: number;
20401
20460
  fixedPrice: WrappedI80F48;
20402
20461
  }
@@ -20509,6 +20568,24 @@ type OracleSetupRaw = {
20509
20568
  juplendSwitchboardPull: {};
20510
20569
  } | {
20511
20570
  fixedJuplend: {};
20571
+ } | {
20572
+ scope: {};
20573
+ } | {
20574
+ pythMsol: {};
20575
+ } | {
20576
+ kaminoMsol: {};
20577
+ } | {
20578
+ juplendMsol: {};
20579
+ } | {
20580
+ pythLst: {};
20581
+ } | {
20582
+ kaminoLst: {};
20583
+ } | {
20584
+ juplendLst: {};
20585
+ } | {
20586
+ ptPyth: {};
20587
+ } | {
20588
+ ptFixed: {};
20512
20589
  };
20513
20590
  interface OracleConfigOptRaw {
20514
20591
  setup: OracleSetupRaw;
@@ -21095,7 +21172,8 @@ declare class BankConfig implements BankConfigType {
21095
21172
  readonly oracleMaxConfidence: number;
21096
21173
  readonly fixedPrice: BigNumber$1;
21097
21174
  readonly configFlags?: BankConfigFlag | undefined;
21098
- constructor(assetWeightInit: BigNumber$1, assetWeightMaint: BigNumber$1, liabilityWeightInit: BigNumber$1, liabilityWeightMaint: BigNumber$1, depositLimit: BigNumber$1, borrowLimit: BigNumber$1, riskTier: RiskTier, totalAssetValueInitLimit: BigNumber$1, assetTag: AssetTag, oracleSetup: OracleSetup, oracleKeys: PublicKey[], oracleMaxAge: number, interestRateConfig: InterestRateConfig, operationalState: OperationalState, oracleMaxConfidence: number, fixedPrice: BigNumber$1, configFlags?: BankConfigFlag | undefined);
21175
+ readonly scopeEntryIndex: number;
21176
+ constructor(assetWeightInit: BigNumber$1, assetWeightMaint: BigNumber$1, liabilityWeightInit: BigNumber$1, liabilityWeightMaint: BigNumber$1, depositLimit: BigNumber$1, borrowLimit: BigNumber$1, riskTier: RiskTier, totalAssetValueInitLimit: BigNumber$1, assetTag: AssetTag, oracleSetup: OracleSetup, oracleKeys: PublicKey[], oracleMaxAge: number, interestRateConfig: InterestRateConfig, operationalState: OperationalState, oracleMaxConfidence: number, fixedPrice: BigNumber$1, configFlags?: BankConfigFlag | undefined, scopeEntryIndex?: number);
21099
21177
  static fromAccountParsed(bankConfigRaw: BankConfigRaw): BankConfig;
21100
21178
  }
21101
21179
 
@@ -12568,6 +12568,26 @@ type Marginfi = {
12568
12568
  "code": 6604;
12569
12569
  "name": "circuitBreakerPriceJump";
12570
12570
  "msg": "Oracle price deviates too far from the circuit breaker reference; action rejected";
12571
+ },
12572
+ {
12573
+ "code": 6700;
12574
+ "name": "scopeInvalidAccount";
12575
+ "msg": "Scope oracle account is not owned by the Scope program or is malformed";
12576
+ },
12577
+ {
12578
+ "code": 6701;
12579
+ "name": "scopeInvalidEntry";
12580
+ "msg": "Scope entry index is out of range or the entry has never been refreshed";
12581
+ },
12582
+ {
12583
+ "code": 6702;
12584
+ "name": "scopeStalePrice";
12585
+ "msg": "Scope price is stale";
12586
+ },
12587
+ {
12588
+ "code": 6703;
12589
+ "name": "useConfigureBankOracleScope";
12590
+ "msg": "Use lending_pool_configure_bank_oracle_scope; Scope requires an entry index";
12571
12591
  }
12572
12592
  ];
12573
12593
  "types": [
@@ -13657,13 +13677,13 @@ type Marginfi = {
13657
13677
  "type": "u16";
13658
13678
  },
13659
13679
  {
13660
- "name": "padding0";
13661
- "type": {
13662
- "array": [
13663
- "u8",
13664
- 2
13665
- ];
13666
- };
13680
+ "name": "scopeEntryIndex";
13681
+ "docs": [
13682
+ "Entry index into the Scope OraclePrices price list. Only read when",
13683
+ "oracle_setup == OracleSetup::Scope; ignored (and zero) for every other setup.",
13684
+ "Occupies what was previously _padding0, so the layout is unchanged."
13685
+ ];
13686
+ "type": "u16";
13667
13687
  },
13668
13688
  {
13669
13689
  "name": "oracleMaxConfidence";
@@ -18614,6 +18634,33 @@ type Marginfi = {
18614
18634
  },
18615
18635
  {
18616
18636
  "name": "fixedJuplend";
18637
+ },
18638
+ {
18639
+ "name": "scope";
18640
+ },
18641
+ {
18642
+ "name": "pythMsol";
18643
+ },
18644
+ {
18645
+ "name": "kaminoMsol";
18646
+ },
18647
+ {
18648
+ "name": "juplendMsol";
18649
+ },
18650
+ {
18651
+ "name": "pythLst";
18652
+ },
18653
+ {
18654
+ "name": "kaminoLst";
18655
+ },
18656
+ {
18657
+ "name": "juplendLst";
18658
+ },
18659
+ {
18660
+ "name": "ptPyth";
18661
+ },
18662
+ {
18663
+ "name": "ptFixed";
18617
18664
  }
18618
18665
  ];
18619
18666
  };
@@ -20052,7 +20099,17 @@ declare enum OracleSetup {
20052
20099
  FixedDrift = "FixedDrift",
20053
20100
  JuplendPythPull = "JuplendPythPull",
20054
20101
  JuplendSwitchboardPull = "JuplendSwitchboardPull",
20055
- FixedJuplend = "FixedJuplend"
20102
+ FixedJuplend = "FixedJuplend",
20103
+ Scope = "Scope",
20104
+ PythMSOL = "PythMSOL",
20105
+ KaminoMSOL = "KaminoMSOL",
20106
+ JuplendMSOL = "JuplendMSOL",
20107
+ PythLST = "PythLST",
20108
+ KaminoLST = "KaminoLST",
20109
+ JuplendLST = "JuplendLST",
20110
+ PTPyth = "PTPyth",
20111
+ PTFixed = "PTFixed",
20112
+ Unknown = "Unknown"
20056
20113
  }
20057
20114
  declare enum AssetTag {
20058
20115
  DEFAULT = 0,
@@ -20102,6 +20159,7 @@ interface BankConfigType {
20102
20159
  oracleMaxAge: number;
20103
20160
  oracleMaxConfidence: number;
20104
20161
  fixedPrice: BigNumber$1;
20162
+ scopeEntryIndex: number;
20105
20163
  }
20106
20164
  interface BankType {
20107
20165
  address: PublicKey;
@@ -20397,6 +20455,7 @@ interface BankConfigRaw {
20397
20455
  configFlags?: number;
20398
20456
  totalAssetValueInitLimit: BN;
20399
20457
  oracleMaxAge: number;
20458
+ scopeEntryIndex?: number;
20400
20459
  oracleMaxConfidence: number;
20401
20460
  fixedPrice: WrappedI80F48;
20402
20461
  }
@@ -20509,6 +20568,24 @@ type OracleSetupRaw = {
20509
20568
  juplendSwitchboardPull: {};
20510
20569
  } | {
20511
20570
  fixedJuplend: {};
20571
+ } | {
20572
+ scope: {};
20573
+ } | {
20574
+ pythMsol: {};
20575
+ } | {
20576
+ kaminoMsol: {};
20577
+ } | {
20578
+ juplendMsol: {};
20579
+ } | {
20580
+ pythLst: {};
20581
+ } | {
20582
+ kaminoLst: {};
20583
+ } | {
20584
+ juplendLst: {};
20585
+ } | {
20586
+ ptPyth: {};
20587
+ } | {
20588
+ ptFixed: {};
20512
20589
  };
20513
20590
  interface OracleConfigOptRaw {
20514
20591
  setup: OracleSetupRaw;
@@ -21095,7 +21172,8 @@ declare class BankConfig implements BankConfigType {
21095
21172
  readonly oracleMaxConfidence: number;
21096
21173
  readonly fixedPrice: BigNumber$1;
21097
21174
  readonly configFlags?: BankConfigFlag | undefined;
21098
- constructor(assetWeightInit: BigNumber$1, assetWeightMaint: BigNumber$1, liabilityWeightInit: BigNumber$1, liabilityWeightMaint: BigNumber$1, depositLimit: BigNumber$1, borrowLimit: BigNumber$1, riskTier: RiskTier, totalAssetValueInitLimit: BigNumber$1, assetTag: AssetTag, oracleSetup: OracleSetup, oracleKeys: PublicKey[], oracleMaxAge: number, interestRateConfig: InterestRateConfig, operationalState: OperationalState, oracleMaxConfidence: number, fixedPrice: BigNumber$1, configFlags?: BankConfigFlag | undefined);
21175
+ readonly scopeEntryIndex: number;
21176
+ constructor(assetWeightInit: BigNumber$1, assetWeightMaint: BigNumber$1, liabilityWeightInit: BigNumber$1, liabilityWeightMaint: BigNumber$1, depositLimit: BigNumber$1, borrowLimit: BigNumber$1, riskTier: RiskTier, totalAssetValueInitLimit: BigNumber$1, assetTag: AssetTag, oracleSetup: OracleSetup, oracleKeys: PublicKey[], oracleMaxAge: number, interestRateConfig: InterestRateConfig, operationalState: OperationalState, oracleMaxConfidence: number, fixedPrice: BigNumber$1, configFlags?: BankConfigFlag | undefined, scopeEntryIndex?: number);
21099
21177
  static fromAccountParsed(bankConfigRaw: BankConfigRaw): BankConfig;
21100
21178
  }
21101
21179
 
@@ -0,0 +1,230 @@
1
+ import { BorshCoder, Provider, Program } from '@coral-xyz/anchor';
2
+ import BN from 'bn.js';
3
+ import { PublicKey, AccountMeta, Connection, AddressLookupTableAccount } from '@solana/web3.js';
4
+
5
+ declare const SWITCHBOARD_ONDEMANDE_PRICE_PRECISION = 18;
6
+ interface CurrentResult {
7
+ value: BN;
8
+ std_dev: BN;
9
+ mean: BN;
10
+ range: BN;
11
+ min_value: BN;
12
+ max_vaalue: BN;
13
+ slot: BN;
14
+ min_slot: BN;
15
+ max_slot: BN;
16
+ }
17
+ interface OracleSubmission {
18
+ oracle: PublicKey;
19
+ slot: BN;
20
+ value: BN;
21
+ }
22
+ interface PullFeedAccountData {
23
+ submissions: OracleSubmission[];
24
+ authority: PublicKey;
25
+ queue: PublicKey;
26
+ feed_hash: Buffer;
27
+ initialized_at: BN;
28
+ permissions: BN;
29
+ max_variance: BN;
30
+ min_responses: number;
31
+ name: Buffer;
32
+ sample_size: number;
33
+ last_update_timestamp: BN;
34
+ lut_slot: BN;
35
+ result: CurrentResult;
36
+ max_staleness: number;
37
+ min_sample_size: number;
38
+ }
39
+ type CrossbarSimulatePayload = FeedResponse[];
40
+ interface FeedResponse {
41
+ feedHash: string;
42
+ results: number[];
43
+ }
44
+ declare const switchboardAccountCoder: BorshCoder<string, string>;
45
+ declare function getSwitchboardProgram(provider: Provider): Program;
46
+ declare function decodeSwitchboardPullFeedData(data: Buffer): PullFeedAccountData;
47
+
48
+ /**
49
+ * An Exponent `CpiInterfaceContext` — one SY-program account a `trade_pt` CPI needs,
50
+ * referenced by its index into the **market's address lookup table** (not an inline
51
+ * pubkey). `resolveExponentTradePtContext` turns these into concrete {@link AccountMeta}s.
52
+ */
53
+ interface ExponentCpiInterfaceContext {
54
+ /** Index into the market's address lookup table. */
55
+ altIndex: number;
56
+ isSigner: boolean;
57
+ isWritable: boolean;
58
+ }
59
+ /**
60
+ * The SY-program CPI account lists that `trade_pt` appends as remaining accounts
61
+ * (order: `getSyState` ++ `depositSy` ++ `withdrawSy`). Pricing PT reads the SY rate
62
+ * on-chain, so the trade must carry the flavor's SY-state/deposit/withdraw accounts.
63
+ */
64
+ interface ExponentMarketTwoCpiAccounts {
65
+ getSyState: ExponentCpiInterfaceContext[];
66
+ depositSy: ExponentCpiInterfaceContext[];
67
+ withdrawSy: ExponentCpiInterfaceContext[];
68
+ }
69
+ /** The subset of an Exponent `MarketTwo` account that `trade_pt` needs. */
70
+ interface ExponentMarketTwo {
71
+ /** The market's own address (`self_address`). */
72
+ selfAddress: PublicKey;
73
+ mintPt: PublicKey;
74
+ mintSy: PublicKey;
75
+ vault: PublicKey;
76
+ /** Market liquidity escrow for PT (`token_pt_escrow`). */
77
+ tokenPtEscrow: PublicKey;
78
+ /** Market pass-through SY escrow (`token_sy_escrow`). */
79
+ tokenSyEscrow: PublicKey;
80
+ /** SY account holding treasury fees from PT trading (`token_fee_treasury_sy`). */
81
+ tokenFeeTreasurySy: PublicKey;
82
+ addressLookupTable: PublicKey;
83
+ syProgram: PublicKey;
84
+ statusFlags: number;
85
+ /** SY-program CPI account lists, referenced by ALT index. */
86
+ cpiAccounts: ExponentMarketTwoCpiAccounts;
87
+ }
88
+ /**
89
+ * Accounts required by `trade_pt`. The first 12 are the fixed `#[derive(Accounts)]`
90
+ * accounts; `remainingAccounts` are the SY-program CPI accounts (already resolved from
91
+ * the market ALT by {@link ResolveExponentTradePtContextParams}).
92
+ */
93
+ interface ExponentTradePtAccounts {
94
+ /** Trader / signer (the marginfi account authority). */
95
+ trader: PublicKey;
96
+ /** The `MarketTwo` address. */
97
+ market: PublicKey;
98
+ /** Trader's SY token account (source of the SY spent buying PT). */
99
+ tokenSyTrader: PublicKey;
100
+ /** Trader's PT token account (destination of the bought PT). */
101
+ tokenPtTrader: PublicKey;
102
+ /** `MarketTwo.token_sy_escrow`. */
103
+ tokenSyEscrow: PublicKey;
104
+ /** `MarketTwo.token_pt_escrow`. */
105
+ tokenPtEscrow: PublicKey;
106
+ /** `MarketTwo.address_lookup_table`. */
107
+ addressLookupTable: PublicKey;
108
+ /** `MarketTwo.sy_program`. */
109
+ syProgram: PublicKey;
110
+ /** `MarketTwo.token_fee_treasury_sy`. */
111
+ tokenFeeTreasurySy: PublicKey;
112
+ /** SPL token program for the PT/SY mints (defaults to the classic Token program). */
113
+ tokenProgram?: PublicKey;
114
+ /**
115
+ * SY-program CPI accounts (`getSyState` ++ `depositSy` ++ `withdrawSy`), pubkeys
116
+ * already resolved from the market ALT. Appended after the 12 fixed accounts.
117
+ */
118
+ remainingAccounts: AccountMeta[];
119
+ }
120
+ interface ResolveExponentTradePtContextParams {
121
+ connection: Connection;
122
+ /** Trader / signer (the marginfi account authority). */
123
+ owner: PublicKey;
124
+ /** The successor maturity's `MarketTwo` address (where the new PT trades). */
125
+ market: PublicKey;
126
+ /** Token program for the PT mint (Exponent uses the classic Token program). */
127
+ ptTokenProgram?: PublicKey;
128
+ /** Token program for the SY mint. Defaults to classic Token. */
129
+ syTokenProgram?: PublicKey;
130
+ }
131
+ /**
132
+ * Resolved inputs for a native `trade_pt` (SY → PT) on an Exponent `MarketTwo`: the
133
+ * fully-resolved `trade_pt` accounts (including the ALT-derived SY-CPI remaining
134
+ * accounts), the market ALT to add to the transaction's lookup tables, and the SY/PT
135
+ * token info. Feed `tradePtAccounts` + `addressLookupTable` into `makeRollPtTx`.
136
+ */
137
+ interface ExponentTradePtContext {
138
+ marketAddress: PublicKey;
139
+ market: ExponentMarketTwo;
140
+ tradePtAccounts: ExponentTradePtAccounts;
141
+ /** The market's address lookup table account — must be carried by the transaction. */
142
+ addressLookupTable: AddressLookupTableAccount;
143
+ sy: {
144
+ mint: PublicKey;
145
+ decimals: number;
146
+ tokenProgram: PublicKey;
147
+ };
148
+ pt: {
149
+ mint: PublicKey;
150
+ decimals: number;
151
+ tokenProgram: PublicKey;
152
+ };
153
+ }
154
+
155
+ /** The subset of Exponent's `Vault` account that `merge` / the roll needs. */
156
+ interface ExponentVault {
157
+ /** Vault signer authority (`merge.authority`, via `has_one = authority`). */
158
+ authority: PublicKey;
159
+ syProgram: PublicKey;
160
+ mintSy: PublicKey;
161
+ mintYt: PublicKey;
162
+ mintPt: PublicKey;
163
+ escrowSy: PublicKey;
164
+ yieldPosition: PublicKey;
165
+ addressLookupTable: PublicKey;
166
+ /**
167
+ * SY-program CPI account lists (referenced by ALT index). `merge` appends
168
+ * `get_sy_state ++ withdraw_sy` as remaining accounts.
169
+ */
170
+ cpiAccounts: ExponentMarketTwoCpiAccounts;
171
+ /**
172
+ * Total SY backing all PT (native u64). The PT→SY redemption rate is
173
+ * `sy_for_pt / pt_supply` (Exponent's `Vault::pt_redemption_rate`).
174
+ */
175
+ syForPt: bigint;
176
+ /** Total PT supply (native u64). */
177
+ ptSupply: bigint;
178
+ /** Last-seen SY exchange rate (underlying per SY), scaled by 1e12 → BigNumber. Sizes `strip`. */
179
+ lastSeenSyExchangeRate: BigNumber;
180
+ /** Final (maturity) SY exchange rate, already scaled by 1e12 → BigNumber (informational). */
181
+ finalSyExchangeRate: BigNumber;
182
+ /** Raw status byte. */
183
+ status: number;
184
+ /** Vault start timestamp (unix seconds); maturity = `startTs + duration`. */
185
+ startTs: number;
186
+ /** Vault duration in seconds. */
187
+ duration: number;
188
+ }
189
+
190
+ /**
191
+ * Decoded Gamma `LpVault` account (raw on-chain representation).
192
+ * Pubkeys as {@link PublicKey}, u64/i64 numeric fields as {@link BN}.
193
+ */
194
+ interface GammaLpVaultRaw {
195
+ pubkey: PublicKey;
196
+ assetsAccount: PublicKey;
197
+ pendingSharesAccount: PublicKey;
198
+ sharesMint: PublicKey;
199
+ assetsMint: PublicKey;
200
+ fundAuthority: PublicKey;
201
+ nav: BN;
202
+ totalShares: BN;
203
+ navUpdatedAt: BN;
204
+ navMaxStaleness: BN;
205
+ bump: number;
206
+ vaultName: string;
207
+ pendingWithdrawalValue: BN;
208
+ feeRecipient: PublicKey;
209
+ performanceFeeBps: number;
210
+ assessmentIntervalSecs: BN;
211
+ lastAssessmentTimestamp: BN;
212
+ pricePerShareAtLastAssessment: BN;
213
+ keeperAuthority: PublicKey;
214
+ }
215
+ /**
216
+ * Decoded Gamma `WithdrawReceipt` account — tracks a user's queued withdrawal
217
+ * against a vault (pending → claimable).
218
+ */
219
+ interface GammaWithdrawReceiptRaw {
220
+ pubkey: PublicKey;
221
+ user: PublicKey;
222
+ lpVault: PublicKey;
223
+ pendingShares: BN;
224
+ claimableShares: BN;
225
+ claimableAssets: BN;
226
+ oldestPendingAt: BN;
227
+ bump: number;
228
+ }
229
+
230
+ export { type CurrentResult as C, type ExponentVault as E, type FeedResponse as F, type GammaLpVaultRaw as G, type OracleSubmission as O, type PullFeedAccountData as P, type ResolveExponentTradePtContextParams as R, SWITCHBOARD_ONDEMANDE_PRICE_PRECISION as S, type ExponentCpiInterfaceContext as a, type ExponentMarketTwo as b, type ExponentTradePtContext as c, type ExponentTradePtAccounts as d, type GammaWithdrawReceiptRaw as e, type CrossbarSimulatePayload as f, getSwitchboardProgram as g, decodeSwitchboardPullFeedData as h, type ExponentMarketTwoCpiAccounts as i, switchboardAccountCoder as s };