@exponent-labs/exponent-types 0.1.7 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/generic.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFragmetricDataFromAdditionalData = exports.fromAdditionalDataGenericJson = exports.toAdditionalDataGenericJson = exports.fromInterfaceTypeGenericJson = exports.toInterfaceTypeGenericJson = exports.deserializeGenericSyMetaAccountRaw = void 0;
4
- const anchor_1 = require("@coral-xyz/anchor");
6
+ exports.getFragmetricDataFromAdditionalData = exports.fromAdditionalDataGenericJson = exports.toAdditionalDataGenericJson = exports.fromHookJson = exports.toHookJson = exports.fromInterfaceTypeGenericJson = exports.toInterfaceTypeGenericJson = exports.deserializeGenericSyMetaAccountRaw = void 0;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const bn_js_1 = __importDefault(require("bn.js"));
5
9
  function deserializeGenericSyMetaAccountRaw(raw) {
6
10
  return {
7
11
  mintSy: raw.mintSy,
@@ -73,8 +77,8 @@ function fromInterfaceTypeGenericJson(json) {
73
77
  if ("pyth" in json) {
74
78
  return {
75
79
  pyth: {
76
- lastSlot: new anchor_1.BN(json.pyth.lastSlot),
77
- maximumAgeSeconds: new anchor_1.BN(json.pyth.maximumAgeSeconds),
80
+ lastSlot: new bn_js_1.default(json.pyth.lastSlot),
81
+ maximumAgeSeconds: new bn_js_1.default(json.pyth.maximumAgeSeconds),
78
82
  },
79
83
  };
80
84
  }
@@ -82,8 +86,8 @@ function fromInterfaceTypeGenericJson(json) {
82
86
  return {
83
87
  jupiterPerps: {
84
88
  lastFeeUsdResetUnixTimestamp: parseInt(json.jupiterPerps.lastFeeUsdResetUnixTimestamp),
85
- lastRealizedFeeUsd: new anchor_1.BN(json.jupiterPerps.lastRealizedFeeUsd),
86
- lastAumUsd: new anchor_1.BN(json.jupiterPerps.lastAumUsd),
89
+ lastRealizedFeeUsd: new bn_js_1.default(json.jupiterPerps.lastRealizedFeeUsd),
90
+ lastAumUsd: new bn_js_1.default(json.jupiterPerps.lastAumUsd),
87
91
  lastRealizedFeeUsdUpdateUnixTimestamp: parseInt(json.jupiterPerps.lastRealizedFeeUsdUpdateUnixTimestamp),
88
92
  },
89
93
  };
@@ -91,7 +95,7 @@ function fromInterfaceTypeGenericJson(json) {
91
95
  if ("adrena" in json) {
92
96
  return {
93
97
  adrena: {
94
- previousTotalFees: new anchor_1.BN(json.adrena.previousTotalFees),
98
+ previousTotalFees: new bn_js_1.default(json.adrena.previousTotalFees),
95
99
  },
96
100
  };
97
101
  }
@@ -112,6 +116,28 @@ function fromInterfaceTypeGenericJson(json) {
112
116
  return json;
113
117
  }
114
118
  exports.fromInterfaceTypeGenericJson = fromInterfaceTypeGenericJson;
119
+ /** Convert Hook to HookJson */
120
+ function toHookJson(hook) {
121
+ return {
122
+ enabled: hook.enabled,
123
+ interfaceEmissionsAccountsUntil: hook.interfaceEmissionsAccountsUntil,
124
+ programId: hook.programId.toString(),
125
+ preMintHookDiscriminator: hook.preMintHookDiscriminator,
126
+ postRedeemHookDiscriminator: hook.postRedeemHookDiscriminator,
127
+ };
128
+ }
129
+ exports.toHookJson = toHookJson;
130
+ /** Convert HookJson to Hook */
131
+ function fromHookJson(json) {
132
+ return {
133
+ enabled: json.enabled,
134
+ interfaceEmissionsAccountsUntil: json.interfaceEmissionsAccountsUntil,
135
+ programId: new web3_js_1.PublicKey(json.programId),
136
+ preMintHookDiscriminator: json.preMintHookDiscriminator,
137
+ postRedeemHookDiscriminator: json.postRedeemHookDiscriminator,
138
+ };
139
+ }
140
+ exports.fromHookJson = fromHookJson;
115
141
  /** Convert AdditionalDataGeneric to AdditionalDataGenericJson */
116
142
  function toAdditionalDataGenericJson(additionalData) {
117
143
  const result = {};
@@ -121,6 +147,38 @@ function toAdditionalDataGenericJson(additionalData) {
121
147
  wrappedTokenMint: additionalData.fragmetricData.wrappedTokenMint.toString(),
122
148
  };
123
149
  }
150
+ if (additionalData.jupiterLendData) {
151
+ result.jupiterLendData = {
152
+ baseTokenMint: additionalData.jupiterLendData.baseTokenMint.toString(),
153
+ tokenReservesLiquidity: additionalData.jupiterLendData.tokenReservesLiquidity.toString(),
154
+ lendingSupplyPosition: additionalData.jupiterLendData.lendingSupplyPosition.toString(),
155
+ rewardsRateModel: additionalData.jupiterLendData.rewardsRateModel.toString(),
156
+ rateModel: additionalData.jupiterLendData.rateModel.toString(),
157
+ };
158
+ }
159
+ if (additionalData.kaminoVaultData) {
160
+ result.kaminoVaultData = {
161
+ vault: additionalData.kaminoVaultData.vault.toString(),
162
+ reserves: additionalData.kaminoVaultData.reserves.map((r) => ({
163
+ reserveAddress: r.reserveAddress.toString(),
164
+ marketAddress: r.marketAddress.toString(),
165
+ })),
166
+ tokenVault: additionalData.kaminoVaultData.tokenVault.toString(),
167
+ tokenMint: additionalData.kaminoVaultData.tokenMint.toString(),
168
+ baseVaultAuthority: additionalData.kaminoVaultData.baseVaultAuthority.toString(),
169
+ sharesMint: additionalData.kaminoVaultData.sharesMint.toString(),
170
+ };
171
+ }
172
+ if (additionalData.splStakePoolData) {
173
+ result.splStakePoolData = {
174
+ stakePoolAddress: additionalData.splStakePoolData.stakePoolAddress.toString(),
175
+ stakePoolProgramId: additionalData.splStakePoolData.stakePoolProgramId.toString(),
176
+ validatorList: additionalData.splStakePoolData.validatorList.toString(),
177
+ reserveStake: additionalData.splStakePoolData.reserveStake.toString(),
178
+ managerFeeAccount: additionalData.splStakePoolData.managerFeeAccount.toString(),
179
+ poolMint: additionalData.splStakePoolData.poolMint.toString(),
180
+ };
181
+ }
124
182
  return result;
125
183
  }
126
184
  exports.toAdditionalDataGenericJson = toAdditionalDataGenericJson;
@@ -129,8 +187,40 @@ function fromAdditionalDataGenericJson(json) {
129
187
  const result = {};
130
188
  if (json.fragmetricData) {
131
189
  result.fragmetricData = {
132
- receiptTokenMint: new anchor_1.web3.PublicKey(json.fragmetricData.receiptTokenMint),
133
- wrappedTokenMint: new anchor_1.web3.PublicKey(json.fragmetricData.wrappedTokenMint),
190
+ receiptTokenMint: new web3_js_1.PublicKey(json.fragmetricData.receiptTokenMint),
191
+ wrappedTokenMint: new web3_js_1.PublicKey(json.fragmetricData.wrappedTokenMint),
192
+ };
193
+ }
194
+ if (json.jupiterLendData) {
195
+ result.jupiterLendData = {
196
+ baseTokenMint: new web3_js_1.PublicKey(json.jupiterLendData.baseTokenMint),
197
+ tokenReservesLiquidity: new web3_js_1.PublicKey(json.jupiterLendData.tokenReservesLiquidity),
198
+ lendingSupplyPosition: new web3_js_1.PublicKey(json.jupiterLendData.lendingSupplyPosition),
199
+ rewardsRateModel: new web3_js_1.PublicKey(json.jupiterLendData.rewardsRateModel),
200
+ rateModel: new web3_js_1.PublicKey(json.jupiterLendData.rateModel),
201
+ };
202
+ }
203
+ if (json.kaminoVaultData) {
204
+ result.kaminoVaultData = {
205
+ vault: new web3_js_1.PublicKey(json.kaminoVaultData.vault),
206
+ reserves: json.kaminoVaultData.reserves.map((r) => ({
207
+ reserveAddress: new web3_js_1.PublicKey(r.reserveAddress),
208
+ marketAddress: new web3_js_1.PublicKey(r.marketAddress),
209
+ })),
210
+ tokenVault: new web3_js_1.PublicKey(json.kaminoVaultData.tokenVault),
211
+ tokenMint: new web3_js_1.PublicKey(json.kaminoVaultData.tokenMint),
212
+ baseVaultAuthority: new web3_js_1.PublicKey(json.kaminoVaultData.baseVaultAuthority),
213
+ sharesMint: new web3_js_1.PublicKey(json.kaminoVaultData.sharesMint),
214
+ };
215
+ }
216
+ if (json.splStakePoolData) {
217
+ result.splStakePoolData = {
218
+ stakePoolAddress: new web3_js_1.PublicKey(json.splStakePoolData.stakePoolAddress),
219
+ stakePoolProgramId: new web3_js_1.PublicKey(json.splStakePoolData.stakePoolProgramId),
220
+ validatorList: new web3_js_1.PublicKey(json.splStakePoolData.validatorList),
221
+ reserveStake: new web3_js_1.PublicKey(json.splStakePoolData.reserveStake),
222
+ managerFeeAccount: new web3_js_1.PublicKey(json.splStakePoolData.managerFeeAccount),
223
+ poolMint: new web3_js_1.PublicKey(json.splStakePoolData.poolMint),
134
224
  };
135
225
  }
136
226
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../src/generic.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
- export { SyEmissionRaw, SyEmissionJson } from "./common";
1
+ export { SyEmissionRaw, SyEmissionJson, AnchorizedPNum, AnchorizedPNumJson } from "./common";
2
2
  export * from "./flavor";
3
3
  export * from "./jito-restaking";
4
4
  export * from "./kamino";
5
5
  export * from "./marginfi";
6
6
  export * from "./perena";
7
7
  export * from "./vault";
8
+ export * from "./orderbook";
8
9
  export * from "./cpi";
9
10
  export * from "./trade";
10
11
  export * from "./liquidity";
package/build/index.js CHANGED
@@ -20,6 +20,7 @@ __exportStar(require("./kamino"), exports);
20
20
  __exportStar(require("./marginfi"), exports);
21
21
  __exportStar(require("./perena"), exports);
22
22
  __exportStar(require("./vault"), exports);
23
+ __exportStar(require("./orderbook"), exports);
23
24
  __exportStar(require("./cpi"), exports);
24
25
  __exportStar(require("./trade"), exports);
25
26
  __exportStar(require("./liquidity"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2CAAwB;AACxB,mDAAgC;AAChC,2CAAwB;AACxB,6CAA0B;AAC1B,2CAAwB;AACxB,0CAAuB;AACvB,wCAAqB;AACrB,0CAAuB;AACvB,8CAA2B;AAC3B,4CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2CAAwB;AACxB,mDAAgC;AAChC,2CAAwB;AACxB,6CAA0B;AAC1B,2CAAwB;AACxB,0CAAuB;AACvB,8CAA2B;AAC3B,wCAAqB;AACrB,0CAAuB;AACvB,8CAA2B;AAC3B,4CAAyB"}
@@ -1,34 +1,35 @@
1
- import { BN, web3 } from "@coral-xyz/anchor";
2
1
  import { SyEmissionRaw, SyEmissionJson } from "./common";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import BN from 'bn.js';
3
4
  export interface InterfaceType {
4
5
  splStakePool: {};
5
6
  }
6
7
  export interface JitoRestakingSyState {
7
- selfAddress: web3.PublicKey;
8
+ selfAddress: PublicKey;
8
9
  account: JitoRestakingSyMetaAccount;
9
10
  /** The value of SY tokens in terms of the base asset */
10
11
  syRate: string;
11
12
  underlyingExchangeRate: number;
12
- mintBase: web3.PublicKey;
13
- tokenProgramBase: web3.PublicKey;
13
+ mintBase: PublicKey;
14
+ tokenProgramBase: PublicKey;
14
15
  }
15
16
  export interface JitoRestakingSyMetaAccountRaw {
16
- jitoVault: web3.PublicKey;
17
- mintSy: web3.PublicKey;
18
- tokenSyEscrow: web3.PublicKey;
17
+ jitoVault: PublicKey;
18
+ mintSy: PublicKey;
19
+ tokenSyEscrow: PublicKey;
19
20
  maxSySupply: BN;
20
21
  minMintSize: BN;
21
22
  minRedeemSize: BN;
22
23
  selfAddressBump: number[];
23
24
  emissions: SyEmissionRaw[];
24
- interfaceAccounts: web3.PublicKey[];
25
+ interfaceAccounts: PublicKey[];
25
26
  interfaceType: InterfaceType;
26
27
  }
27
28
  export interface JitoRestakingSyMetaAccount {
28
- jitoVault: web3.PublicKey;
29
- mintSy: web3.PublicKey;
30
- tokenSyEscrow: web3.PublicKey;
31
- interfaceAccounts: web3.PublicKey[];
29
+ jitoVault: PublicKey;
30
+ mintSy: PublicKey;
31
+ tokenSyEscrow: PublicKey;
32
+ interfaceAccounts: PublicKey[];
32
33
  interfaceType: InterfaceType;
33
34
  maxSySupply: BN;
34
35
  minMintSize: BN;
package/build/kamino.d.ts CHANGED
@@ -1,16 +1,17 @@
1
- import { BN } from "@coral-xyz/anchor";
2
- import { web3 } from "@coral-xyz/anchor";
1
+ import BN from "bn.js";
3
2
  import { SyEmissionJson, SyEmissionRaw, SyEmissionRaw2 } from "./common";
3
+ import { PublicKey } from "@solana/web3.js";
4
4
  export interface KaminoSyState {
5
- selfAddress: web3.PublicKey;
5
+ selfAddress: PublicKey;
6
6
  account: KaminoSyMetaAccount;
7
- klendSyProgramId: web3.PublicKey;
7
+ klendSyProgramId: PublicKey;
8
8
  /** The value of SY tokens in terms of the base asset */
9
9
  syRate: string;
10
- mintBase: web3.PublicKey;
11
- tokenProgramBase: web3.PublicKey;
12
- klendProgramId: web3.PublicKey;
13
- klendMarketId: web3.PublicKey;
10
+ mintBase: PublicKey;
11
+ tokenProgramBase: PublicKey;
12
+ klendProgramId: PublicKey;
13
+ klendMarketId: PublicKey;
14
+ scopePriceFeed?: PublicKey;
14
15
  }
15
16
  export interface KaminoSyStateJson {
16
17
  selfAddress: string;
@@ -21,16 +22,17 @@ export interface KaminoSyStateJson {
21
22
  tokenProgramBase: string;
22
23
  klendProgramId: string;
23
24
  klendMarketId: string;
25
+ scopePriceFeed?: string;
24
26
  }
25
27
  export interface KaminoSyMetaAccount {
26
- kaminoReserve: web3.PublicKey;
27
- kaminoObligation: web3.PublicKey;
28
- kaminoFarm: web3.PublicKey;
29
- kaminoUserMetadata: web3.PublicKey;
30
- mintSy: web3.PublicKey;
28
+ kaminoReserve: PublicKey;
29
+ kaminoObligation: PublicKey;
30
+ kaminoFarm: PublicKey;
31
+ kaminoUserMetadata: PublicKey;
32
+ mintSy: PublicKey;
31
33
  /** Where deposited SY tokens reside */
32
- tokenSyEscrow: web3.PublicKey;
33
- userState: web3.PublicKey;
34
+ tokenSyEscrow: PublicKey;
35
+ userState: PublicKey;
34
36
  maxSySupply: string;
35
37
  minMintSize: string;
36
38
  minRedeemSize: string;
@@ -50,20 +52,20 @@ interface KaminoSyMetaAccountJson {
50
52
  emissions: SyEmissionJson[];
51
53
  }
52
54
  export interface KaminoSyMetaAccountRaw {
53
- kamino_reserve: web3.PublicKey;
54
- kamino_obligation: web3.PublicKey;
55
- kamino_farm: web3.PublicKey;
56
- kamino_user_metadata: web3.PublicKey;
57
- mint_sy: web3.PublicKey;
55
+ kamino_reserve: PublicKey;
56
+ kamino_obligation: PublicKey;
57
+ kamino_farm: PublicKey;
58
+ kamino_user_metadata: PublicKey;
59
+ mint_sy: PublicKey;
58
60
  /** Where deposited SY tokens reside */
59
- token_sy_escrow: web3.PublicKey;
61
+ token_sy_escrow: PublicKey;
60
62
  /** Robot authority over the Mfi Account */
61
- authority_klend_account: web3.PublicKey;
63
+ authority_klend_account: PublicKey;
62
64
  /** Authority over the SY token escrow account */
63
- authority_escrow: web3.PublicKey;
65
+ authority_escrow: PublicKey;
64
66
  /** Authority over the sy mint */
65
- mint_authority: web3.PublicKey;
66
- user_state: web3.PublicKey;
67
+ mint_authority: PublicKey;
68
+ user_state: PublicKey;
67
69
  max_sy_supply: BN;
68
70
  min_mint_size: BN;
69
71
  min_redeem_size: BN;
@@ -1,17 +1,18 @@
1
- import { BN, web3 } from "@coral-xyz/anchor";
1
+ import { PublicKey } from "@solana/web3.js";
2
2
  import { SyEmissionRaw, SyEmissionJson } from "./common";
3
+ import BN from 'bn.js';
3
4
  export interface MfiSyState {
4
- selfAddress: web3.PublicKey;
5
+ selfAddress: PublicKey;
5
6
  account: MarginfiSyMeta;
6
- marginfiSyProgramId: web3.PublicKey;
7
+ marginfiSyProgramId: PublicKey;
7
8
  /** The value of SY tokens in terms of the base asset taken directly from the bank */
8
9
  syRate: string;
9
- mintBase: web3.PublicKey;
10
- tokenProgramBase: web3.PublicKey;
11
- marginfiProgramId: web3.PublicKey;
12
- marginfiGroupId: web3.PublicKey;
13
- emissionsMint: web3.PublicKey | null;
14
- emissionsTokenProgram: web3.PublicKey | null;
10
+ mintBase: PublicKey;
11
+ tokenProgramBase: PublicKey;
12
+ marginfiProgramId: PublicKey;
13
+ marginfiGroupId: PublicKey;
14
+ emissionsMint: PublicKey | null;
15
+ emissionsTokenProgram: PublicKey | null;
15
16
  }
16
17
  export interface MfiSyStateJson {
17
18
  selfAddress: string;
@@ -38,11 +39,11 @@ export interface SyMetaJson {
38
39
  syRate: string;
39
40
  }
40
41
  export interface MarginfiSyMeta {
41
- marginfiBank: web3.PublicKey;
42
- marginfiAccount: web3.PublicKey;
43
- mintSy: web3.PublicKey;
42
+ marginfiBank: PublicKey;
43
+ marginfiAccount: PublicKey;
44
+ mintSy: PublicKey;
44
45
  /** Where the SY tokens get deposited */
45
- tokenSyEscrow: web3.PublicKey;
46
+ tokenSyEscrow: PublicKey;
46
47
  maxSySupply: bigint;
47
48
  minMintSize: bigint;
48
49
  minRedeemSize: bigint;
@@ -59,14 +60,14 @@ export interface MarginfiSyMetaJson {
59
60
  emissions: SyEmissionJson[];
60
61
  }
61
62
  export interface MarginfiSyMetaRaw {
62
- marginfiBank: web3.PublicKey;
63
- marginfiAccount: web3.PublicKey;
64
- mintSy: web3.PublicKey;
63
+ marginfiBank: PublicKey;
64
+ marginfiAccount: PublicKey;
65
+ mintSy: PublicKey;
65
66
  maxSySupply: BN;
66
67
  minMintSize: BN;
67
68
  minRedeemSize: BN;
68
69
  /** Where the SY tokens get deposited */
69
- tokenSyEscrow: web3.PublicKey;
70
+ tokenSyEscrow: PublicKey;
70
71
  emissions: SyEmissionRaw[];
71
72
  }
72
73
  export type AnchorizedPNum = {
@@ -0,0 +1,151 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import { CpiAccountsRaw, ExponentCoreCpiAccountsRaw } from "./cpi";
3
+ import { Flavor } from "./flavor";
4
+ export declare const MAX_PRICE_NODES = 1000;
5
+ export declare const MAX_OFFERS = 2500;
6
+ export declare const MAX_USER_ESCROWS = 1500;
7
+ export declare const PRICE_NODE_REGISTERS = 3;
8
+ export declare const OFFER_REGISTERS = 1;
9
+ export declare const ESCROW_REGISTERS = 0;
10
+ /** ─── Orderbook Financials ─────────────────────────────────────────────────── */
11
+ export interface OrderbookFinancials {
12
+ /** Expiration timestamp (unix seconds) */
13
+ expirationTs: number;
14
+ /** SY token balance */
15
+ syBalance: bigint;
16
+ /** YT token balance */
17
+ ytBalance: bigint;
18
+ /** PT token balance */
19
+ ptBalance: bigint;
20
+ ytFeeBalance: bigint;
21
+ syFeeBalance: bigint;
22
+ ptFeeBalance: bigint;
23
+ stagedSy: bigint;
24
+ }
25
+ /** ─── Configuration Options ─────────────────────────────────────────────────── */
26
+ export interface ConfigurationOptions {
27
+ priceDecimals: number;
28
+ thresholdAmount: bigint;
29
+ lnMakerFeeRate: number;
30
+ lnTakerFeeRate: number;
31
+ }
32
+ export interface PriceTreeNode {
33
+ /** The price tick (key into the tree) */
34
+ key: number;
35
+ /** Head indexes of the linked lists of offers at this price */
36
+ firstOfferSellYt: number;
37
+ firstOfferBuyYt: number;
38
+ lastOfferSellYt: number;
39
+ lastOfferBuyYt: number;
40
+ /** Index of this node’s parent in the price_nodes slab */
41
+ parent: number;
42
+ /** Index of this node’s left child */
43
+ left: number;
44
+ /** Index of this node’s right child */
45
+ right: number;
46
+ }
47
+ export interface OfferNode {
48
+ /** Actual NodeAllocator slot for this offer (0 is sentinel, live offers are 1-based) */
49
+ offerIndex: number;
50
+ /** Internal register 1 (the free‐list link when unused) */
51
+ nextOfferPointer: number;
52
+ /** Internal register 3 (the free‐list link when unused) */
53
+ pricePointer: number;
54
+ /** SY/PT/YT amount deposited */
55
+ amount: bigint;
56
+ /** Index of the user escrow that owns this offer */
57
+ userVaultPointer: number;
58
+ /** Expiry timestamp (unix seconds) */
59
+ expiryAt: number;
60
+ /** Creation timestamp (unix seconds) */
61
+ createdAt: number;
62
+ /** True if this is a PT order */
63
+ virtualOffer: boolean;
64
+ /** Offer‐type flag */
65
+ orderTypeFlag: number;
66
+ /** Fill‐or‐kill flag */
67
+ fillOrKill: boolean;
68
+ }
69
+ export interface UserEscrowNode {
70
+ /** The user’s Pubkey */
71
+ user: PublicKey;
72
+ /** Last seen SY exchange rate for this user escrow */
73
+ yieldIndex: number;
74
+ /** Token amounts held */
75
+ ptAmount: bigint;
76
+ syAmount: bigint;
77
+ ytAmount: bigint;
78
+ stakedYtAmount: bigint;
79
+ /** When unused, the free‐list link */
80
+ staged: bigint;
81
+ }
82
+ /** ─── Full On-chain Orderbook ───────────────────────────────────────────────── */
83
+ export interface Orderbook {
84
+ /** PDA link to vault */
85
+ vault: PublicKey;
86
+ /** PDA link to a vault-owned YT position */
87
+ yieldPosition: PublicKey;
88
+ /** Address Lookup Table key for the orderbook */
89
+ addressLookupTable: PublicKey;
90
+ /** Address of the Exponent Core program */
91
+ exponentCoreProgram: PublicKey;
92
+ /** Address of the Sy program */
93
+ syProgram: PublicKey;
94
+ /** Orderbook-owned escrow for SY tokens */
95
+ tokenEscrowSy: PublicKey;
96
+ /** Orderbook-owned escrow for YT tokens */
97
+ tokenEscrowYt: PublicKey;
98
+ /** Orderbook-owned escrow for PT tokens */
99
+ tokenEscrowPt: PublicKey;
100
+ admin: PublicKey;
101
+ /** CPI accounts storage key */
102
+ cpiAccountOrderbook: PublicKey;
103
+ /** How many price nodes are currently in use */
104
+ nodeCount: number;
105
+ financials: OrderbookFinancials;
106
+ /** All PriceNode entries (fixed capacity) */
107
+ prices: PriceTreeNode[];
108
+ /** All Offer entries (fixed capacity) */
109
+ offers: OfferNode[];
110
+ /** All UserEscrow entries (fixed capacity) */
111
+ userEscrows: UserEscrowNode[];
112
+ /** PDA bump seed for the orderbook authority */
113
+ signerBump: number;
114
+ }
115
+ export interface OrderbookState {
116
+ /** PDA link to vault */
117
+ vault: PublicKey;
118
+ /** PDA link to a vault-owned YT position */
119
+ yieldPosition: PublicKey;
120
+ /** Address Lookup Table key for the orderbook */
121
+ addressLookupTable: PublicKey;
122
+ /** Address of the Exponent Core program */
123
+ exponentCoreProgram: PublicKey;
124
+ /** Address of the Exponent Core program */
125
+ syProgram: PublicKey;
126
+ /** Orderbook-owned escrow for SY tokens */
127
+ tokenEscrowSy: PublicKey;
128
+ /** Orderbook-owned escrow for YT tokens */
129
+ tokenEscrowYt: PublicKey;
130
+ /** Orderbook-owned escrow for PT tokens */
131
+ tokenEscrowPt: PublicKey;
132
+ /** CPI accounts storage key */
133
+ cpiAccountOrderbook: PublicKey;
134
+ /** Admin key */
135
+ admin: PublicKey;
136
+ configurationOptions: ConfigurationOptions;
137
+ financials: OrderbookFinancials;
138
+ /** All PriceNode entries (fixed capacity) */
139
+ prices: PriceTreeNode[];
140
+ /** All Offer entries (fixed capacity) */
141
+ offers: OfferNode[];
142
+ /** All UserEscrow entries (fixed capacity) */
143
+ userEscrows: UserEscrowNode[];
144
+ syCpiAccounts: CpiAccountsRaw;
145
+ exponentCoreCpiAccounts: ExponentCoreCpiAccountsRaw;
146
+ flavor: Flavor;
147
+ /** Next offer index that will be allocated (from NodeAllocator free list) */
148
+ offersFreeListHead: number;
149
+ /** Bump index boundary for offers allocator */
150
+ offersBumpIndex: number;
151
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ESCROW_REGISTERS = exports.OFFER_REGISTERS = exports.PRICE_NODE_REGISTERS = exports.MAX_USER_ESCROWS = exports.MAX_OFFERS = exports.MAX_PRICE_NODES = void 0;
4
+ exports.MAX_PRICE_NODES = 1000;
5
+ exports.MAX_OFFERS = 2500;
6
+ exports.MAX_USER_ESCROWS = 1500;
7
+ // RedBlackTree uses 3 registers per node: parent, left, right
8
+ exports.PRICE_NODE_REGISTERS = 3;
9
+ // Offer allocator uses 1 register per node (free‐list pointer)
10
+ exports.OFFER_REGISTERS = 1;
11
+ // UserEscrow allocator uses 0 registers
12
+ exports.ESCROW_REGISTERS = 0;
13
+ //# sourceMappingURL=orderbook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderbook.js","sourceRoot":"","sources":["../src/orderbook.ts"],"names":[],"mappings":";;;AAKa,QAAA,eAAe,GAAG,IAAI,CAAA;AACtB,QAAA,UAAU,GAAG,IAAI,CAAA;AACjB,QAAA,gBAAgB,GAAG,IAAI,CAAA;AACpC,8DAA8D;AACjD,QAAA,oBAAoB,GAAG,CAAC,CAAA;AACrC,+DAA+D;AAClD,QAAA,eAAe,GAAG,CAAC,CAAA;AAChC,wCAAwC;AAC3B,QAAA,gBAAgB,GAAG,CAAC,CAAA"}
package/build/perena.d.ts CHANGED
@@ -1,29 +1,30 @@
1
- import { BN, web3 } from "@coral-xyz/anchor";
1
+ import { PublicKey } from "@solana/web3.js";
2
2
  import { SyEmissionRaw, SyEmissionJson } from "./common";
3
+ import BN from 'bn.js';
3
4
  export interface PerenaSyState {
4
- selfAddress: web3.PublicKey;
5
+ selfAddress: PublicKey;
5
6
  account: PerenaSyMetaAccount;
6
7
  /** The value of SY tokens in terms of the base asset */
7
8
  syRate: string;
8
- tokenProgramBase: web3.PublicKey;
9
- lpMint: web3.PublicKey;
9
+ tokenProgramBase: PublicKey;
10
+ lpMint: PublicKey;
10
11
  }
11
12
  export interface PerenaSyMetaAccountRaw {
12
- perenaStablePool: web3.PublicKey;
13
- mintSy: web3.PublicKey;
14
- tokenSyEscrow: web3.PublicKey;
13
+ perenaStablePool: PublicKey;
14
+ mintSy: PublicKey;
15
+ tokenSyEscrow: PublicKey;
15
16
  maxSySupply: BN;
16
17
  minMintSize: BN;
17
18
  minRedeemSize: BN;
18
19
  selfAddressBump: number[];
19
20
  emissions: SyEmissionRaw[];
20
- interfaceAccounts: web3.PublicKey[];
21
+ interfaceAccounts: PublicKey[];
21
22
  }
22
23
  export interface PerenaSyMetaAccount {
23
- perenaStablePool: web3.PublicKey;
24
- mintSy: web3.PublicKey;
25
- tokenSyEscrow: web3.PublicKey;
26
- interfaceAccounts: web3.PublicKey[];
24
+ perenaStablePool: PublicKey;
25
+ mintSy: PublicKey;
26
+ tokenSyEscrow: PublicKey;
27
+ interfaceAccounts: PublicKey[];
27
28
  maxSySupply: BN;
28
29
  minMintSize: BN;
29
30
  minRedeemSize: BN;