@exponent-labs/exponent-vaults-fetcher 0.9.24 → 0.9.26

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.
@@ -0,0 +1,3 @@
1
+ import type { Idl } from "@coral-xyz/anchor";
2
+ /** Creates a bounded structural preflight that avoids allocation proportional to untrusted collection lengths. */
3
+ export declare function createBorshAccountPreflight(idl: Idl, typeName: string): (data: Buffer) => boolean;
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBorshAccountPreflight = void 0;
4
+ const ACCOUNT_DISCRIMINATOR_BYTES = 8;
5
+ const MAX_TYPE_DEPTH = 64;
6
+ const PRIMITIVE_SPANS = {
7
+ bool: 1,
8
+ u8: 1,
9
+ i8: 1,
10
+ u16: 2,
11
+ i16: 2,
12
+ u32: 4,
13
+ i32: 4,
14
+ f32: 4,
15
+ u64: 8,
16
+ i64: 8,
17
+ f64: 8,
18
+ u128: 16,
19
+ i128: 16,
20
+ u256: 32,
21
+ i256: 32,
22
+ pubkey: 32,
23
+ };
24
+ class BorshCursor {
25
+ data;
26
+ offset;
27
+ constructor(data, offset) {
28
+ this.data = data;
29
+ this.offset = offset;
30
+ }
31
+ get remaining() {
32
+ return this.data.length - this.offset;
33
+ }
34
+ readU8() {
35
+ this.requireBytes(1);
36
+ return this.data[this.offset++];
37
+ }
38
+ readU32() {
39
+ this.requireBytes(4);
40
+ const value = this.data.readUInt32LE(this.offset);
41
+ this.offset += 4;
42
+ return value;
43
+ }
44
+ skip(length) {
45
+ this.requireBytes(length);
46
+ this.offset += length;
47
+ }
48
+ requireBytes(length) {
49
+ if (!Number.isSafeInteger(length) || length < 0 || length > this.remaining) {
50
+ throw new Error("Borsh value exceeds the account data");
51
+ }
52
+ }
53
+ }
54
+ function definedFields(fields) {
55
+ if (!fields)
56
+ return [];
57
+ return fields.map((field) => (typeof field === "object" && field !== null && "type" in field ? field.type : field));
58
+ }
59
+ function checkedSum(values) {
60
+ return values.reduce((sum, value) => {
61
+ const next = sum + value;
62
+ if (!Number.isSafeInteger(next))
63
+ throw new Error("Borsh span exceeds the safe integer range");
64
+ return next;
65
+ }, 0);
66
+ }
67
+ function checkedProduct(left, right) {
68
+ const product = left * right;
69
+ if (!Number.isSafeInteger(product))
70
+ throw new Error("Borsh span exceeds the safe integer range");
71
+ return product;
72
+ }
73
+ function minimumDefinitionSpan(definition, definitions, depth) {
74
+ if (definition.type.kind === "type") {
75
+ return minimumTypeSpan(definition.type.alias, definitions, depth + 1);
76
+ }
77
+ if (definition.type.kind === "struct") {
78
+ return checkedSum(definedFields(definition.type.fields).map((field) => minimumTypeSpan(field, definitions, depth + 1)));
79
+ }
80
+ const variantSpans = definition.type.variants.map((variant) => checkedSum(definedFields(variant.fields).map((field) => minimumTypeSpan(field, definitions, depth + 1))));
81
+ return 1 + (variantSpans.length === 0 ? 0 : Math.min(...variantSpans));
82
+ }
83
+ function minimumTypeSpan(type, definitions, depth) {
84
+ if (depth > MAX_TYPE_DEPTH)
85
+ throw new Error("Borsh type nesting is too deep");
86
+ if (typeof type === "string")
87
+ return PRIMITIVE_SPANS[type] ?? 4;
88
+ if ("option" in type)
89
+ return 1;
90
+ if ("coption" in type)
91
+ return 4;
92
+ if ("vec" in type)
93
+ return 4;
94
+ if ("array" in type) {
95
+ const [elementType, length] = type.array;
96
+ if (typeof length !== "number")
97
+ throw new Error("Generic Borsh array lengths are unsupported");
98
+ return checkedProduct(minimumTypeSpan(elementType, definitions, depth + 1), length);
99
+ }
100
+ if ("defined" in type) {
101
+ const definition = definitions.get(type.defined.name);
102
+ if (!definition)
103
+ throw new Error(`Borsh type is missing from the IDL: ${type.defined.name}`);
104
+ return minimumDefinitionSpan(definition, definitions, depth + 1);
105
+ }
106
+ throw new Error("Generic Borsh types are unsupported");
107
+ }
108
+ function validateFields(fields, cursor, definitions, depth) {
109
+ for (const field of definedFields(fields))
110
+ validateType(field, cursor, definitions, depth + 1);
111
+ }
112
+ function validateDefinition(definition, cursor, definitions, depth) {
113
+ if (definition.type.kind === "type") {
114
+ validateType(definition.type.alias, cursor, definitions, depth + 1);
115
+ return;
116
+ }
117
+ if (definition.type.kind === "struct") {
118
+ validateFields(definition.type.fields, cursor, definitions, depth + 1);
119
+ return;
120
+ }
121
+ const variant = definition.type.variants[cursor.readU8()];
122
+ if (!variant)
123
+ throw new Error("Borsh enum variant is out of range");
124
+ validateFields(variant.fields, cursor, definitions, depth + 1);
125
+ }
126
+ function validateCollection(elementType, length, cursor, definitions, depth) {
127
+ const minimumElementSpan = minimumTypeSpan(elementType, definitions, depth + 1);
128
+ if (minimumElementSpan === 0 || length > Math.floor(cursor.remaining / minimumElementSpan)) {
129
+ throw new Error("Borsh collection length exceeds the account data");
130
+ }
131
+ for (let index = 0; index < length; index++)
132
+ validateType(elementType, cursor, definitions, depth + 1);
133
+ }
134
+ function validateType(type, cursor, definitions, depth) {
135
+ if (depth > MAX_TYPE_DEPTH)
136
+ throw new Error("Borsh type nesting is too deep");
137
+ if (typeof type === "string") {
138
+ const primitiveSpan = PRIMITIVE_SPANS[type];
139
+ if (primitiveSpan !== undefined)
140
+ cursor.skip(primitiveSpan);
141
+ else
142
+ cursor.skip(cursor.readU32());
143
+ return;
144
+ }
145
+ if ("option" in type) {
146
+ const tag = cursor.readU8();
147
+ if (tag > 1)
148
+ throw new Error("Borsh option tag is out of range");
149
+ if (tag === 1)
150
+ validateType(type.option, cursor, definitions, depth + 1);
151
+ return;
152
+ }
153
+ if ("coption" in type) {
154
+ const tag = cursor.readU32();
155
+ if (tag > 1)
156
+ throw new Error("Borsh COption tag is out of range");
157
+ if (tag === 1)
158
+ validateType(type.coption, cursor, definitions, depth + 1);
159
+ return;
160
+ }
161
+ if ("vec" in type) {
162
+ validateCollection(type.vec, cursor.readU32(), cursor, definitions, depth + 1);
163
+ return;
164
+ }
165
+ if ("array" in type) {
166
+ const [elementType, length] = type.array;
167
+ if (typeof length !== "number")
168
+ throw new Error("Generic Borsh array lengths are unsupported");
169
+ validateCollection(elementType, length, cursor, definitions, depth + 1);
170
+ return;
171
+ }
172
+ if ("defined" in type) {
173
+ const definition = definitions.get(type.defined.name);
174
+ if (!definition)
175
+ throw new Error(`Borsh type is missing from the IDL: ${type.defined.name}`);
176
+ validateDefinition(definition, cursor, definitions, depth + 1);
177
+ return;
178
+ }
179
+ throw new Error("Generic Borsh types are unsupported");
180
+ }
181
+ /** Creates a bounded structural preflight that avoids allocation proportional to untrusted collection lengths. */
182
+ function createBorshAccountPreflight(idl, typeName) {
183
+ const idlTypes = (idl.types ?? []);
184
+ const definitions = new Map(idlTypes.map((definition) => [definition.name, definition]));
185
+ const rootDefinition = definitions.get(typeName);
186
+ if (!rootDefinition)
187
+ throw new Error(`Borsh account type is missing from the IDL: ${typeName}`);
188
+ return (data) => {
189
+ try {
190
+ validateDefinition(rootDefinition, new BorshCursor(data, ACCOUNT_DISCRIMINATOR_BYTES), definitions, 0);
191
+ return true;
192
+ }
193
+ catch {
194
+ return false;
195
+ }
196
+ };
197
+ }
198
+ exports.createBorshAccountPreflight = createBorshAccountPreflight;
199
+ //# sourceMappingURL=borshPreflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borshPreflight.js","sourceRoot":"","sources":["../src/borshPreflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { HurdleSettings, LockupPosition, LockupSettings, PerformanceFeeSettings } from "./types";
2
+ /** Decode PerformanceFeeSettings bytes from the canonical IDL layout. */
3
+ export declare function decodePerformanceFeeSettings(data: Buffer | Uint8Array): PerformanceFeeSettings;
4
+ /** Decode HurdleSettings bytes from the canonical IDL layout. */
5
+ export declare function decodeHurdleSettings(data: Buffer | Uint8Array): HurdleSettings;
6
+ /** Decode LockupSettings bytes from the canonical fixed ten-period IDL layout. */
7
+ export declare function decodeLockupSettings(data: Buffer | Uint8Array): LockupSettings;
8
+ /** Decode LockupPosition bytes from the canonical IDL layout. */
9
+ export declare function decodeLockupPosition(data: Buffer | Uint8Array): LockupPosition;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeLockupPosition = exports.decodeLockupSettings = exports.decodeHurdleSettings = exports.decodePerformanceFeeSettings = void 0;
4
+ const anchor_1 = require("@coral-xyz/anchor");
5
+ const exponent_vaults_idl_1 = require("@exponent-labs/exponent-vaults-idl");
6
+ const typeUtils_1 = require("./typeUtils");
7
+ const ACCOUNTS_CODER = new anchor_1.BorshAccountsCoder(exponent_vaults_idl_1.IDL);
8
+ function decodeAccount(accountName, data) {
9
+ const bytes = Buffer.isBuffer(data) ? data : Buffer.from(data);
10
+ const expectedSize = ACCOUNTS_CODER.size(accountName);
11
+ if (bytes.length !== expectedSize) {
12
+ throw new Error(`Invalid ${accountName} size: got ${bytes.length}, expected ${expectedSize}`);
13
+ }
14
+ return (0, typeUtils_1.transformAnchorData)((0, typeUtils_1.normalizeAnchorFieldNames)(ACCOUNTS_CODER.decode(accountName, bytes)));
15
+ }
16
+ function preciseNumber(value, fieldName) {
17
+ const limbs = Array.isArray(value)
18
+ ? value[0]
19
+ : value && typeof value === "object"
20
+ ? value[0]
21
+ : undefined;
22
+ if (!Array.isArray(limbs) || limbs.length !== 4 || limbs.some((limb) => typeof limb !== "bigint")) {
23
+ throw new Error(`Invalid ${fieldName}`);
24
+ }
25
+ return [[limbs[0], limbs[1], limbs[2], limbs[3]]];
26
+ }
27
+ function lockupPeriod(value) {
28
+ return {
29
+ ...value,
30
+ cumulativeRewardPerLockedLp: preciseNumber(value.cumulativeRewardPerLockedLp, "lockup reward index"),
31
+ };
32
+ }
33
+ /** Decode PerformanceFeeSettings bytes from the canonical IDL layout. */
34
+ function decodePerformanceFeeSettings(data) {
35
+ return decodeAccount("PerformanceFeeSettings", data);
36
+ }
37
+ exports.decodePerformanceFeeSettings = decodePerformanceFeeSettings;
38
+ /** Decode HurdleSettings bytes from the canonical IDL layout. */
39
+ function decodeHurdleSettings(data) {
40
+ const decoded = decodeAccount("HurdleSettings", data);
41
+ return {
42
+ ...decoded,
43
+ startSharePrice: preciseNumber(decoded.startSharePrice, "hurdle start share price"),
44
+ };
45
+ }
46
+ exports.decodeHurdleSettings = decodeHurdleSettings;
47
+ /** Decode LockupSettings bytes from the canonical fixed ten-period IDL layout. */
48
+ function decodeLockupSettings(data) {
49
+ const decoded = decodeAccount("LockupSettings", data);
50
+ return {
51
+ ...decoded,
52
+ periods: decoded.periods.map(lockupPeriod),
53
+ };
54
+ }
55
+ exports.decodeLockupSettings = decodeLockupSettings;
56
+ /** Decode LockupPosition bytes from the canonical IDL layout. */
57
+ function decodeLockupPosition(data) {
58
+ const decoded = decodeAccount("LockupPosition", data);
59
+ return {
60
+ ...decoded,
61
+ cumulativeRewardPerLockedLpCheckpoint: preciseNumber(decoded.cumulativeRewardPerLockedLpCheckpoint, "position reward index checkpoint"),
62
+ accruedRewardLp: preciseNumber(decoded.accruedRewardLp, "position accrued reward LP"),
63
+ };
64
+ }
65
+ exports.decodeLockupPosition = decodeLockupPosition;
66
+ //# sourceMappingURL=economicsAccounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"economicsAccounts.js","sourceRoot":"","sources":["../src/economicsAccounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const anchor_1 = require("@coral-xyz/anchor");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const node_test_1 = __importDefault(require("node:test"));
9
+ const exponent_vaults_idl_1 = require("@exponent-labs/exponent-vaults-idl");
10
+ const economicsAccounts_1 = require("./economicsAccounts");
11
+ const coder = new anchor_1.BorshAccountsCoder(exponent_vaults_idl_1.IDL);
12
+ function publicKey(fill) {
13
+ return new anchor_1.web3.PublicKey(Buffer.alloc(32, fill));
14
+ }
15
+ function preciseNumber(...limbs) {
16
+ return { 0: limbs.map((limb) => new anchor_1.BN(limb.toString())) };
17
+ }
18
+ function lockupPeriod(index) {
19
+ return {
20
+ status: index === 0 ? { Active: {} } : index === 1 ? { Retiring: {} } : { Vacant: {} },
21
+ reward_claim_mode: index % 2 === 0 ? { Anytime: {} } : { AtMaturity: {} },
22
+ duration_seconds: index + 100,
23
+ reward_share_bps: index + 200,
24
+ open_position_count: new anchor_1.BN(index + 300),
25
+ total_locked_lp: new anchor_1.BN(index + 400),
26
+ pending_reward_lp: new anchor_1.BN(index + 500),
27
+ cumulative_reward_per_locked_lp: preciseNumber(BigInt(index), 2n, 3n, 4n),
28
+ reward_entitlement_remainder: new anchor_1.BN(index + 600),
29
+ reward_distribution_remainder: new anchor_1.BN(index + 700),
30
+ force_exit_allowed_at: new anchor_1.BN(index + 800),
31
+ };
32
+ }
33
+ (0, node_test_1.default)("decodes performance fee and hurdle settings through the canonical IDL", async () => {
34
+ const fee = await coder.encode("PerformanceFeeSettings", {
35
+ vault: publicKey(1),
36
+ hurdle_settings: publicKey(2),
37
+ performance_fee_bps: 2_000,
38
+ performance_fee_lp_remainder: new anchor_1.BN("999999999999"),
39
+ });
40
+ strict_1.default.deepEqual((0, economicsAccounts_1.decodePerformanceFeeSettings)(fee), {
41
+ vault: publicKey(1),
42
+ hurdleSettings: publicKey(2),
43
+ performanceFeeBps: 2_000,
44
+ performanceFeeLpRemainder: 999999999999n,
45
+ });
46
+ const hurdle = await coder.encode("HurdleSettings", {
47
+ performance_fee_settings: publicKey(3),
48
+ start_share_price: preciseNumber(10n, 20n, 30n, 40n),
49
+ started_at: new anchor_1.BN("1700000000"),
50
+ duration_seconds: 31_536_000,
51
+ hurdle_rate_bps: 500,
52
+ });
53
+ strict_1.default.deepEqual((0, economicsAccounts_1.decodeHurdleSettings)(hurdle), {
54
+ performanceFeeSettings: publicKey(3),
55
+ startSharePrice: [[10n, 20n, 30n, 40n]],
56
+ startedAt: 1700000000n,
57
+ durationSeconds: 31_536_000,
58
+ hurdleRateBps: 500,
59
+ });
60
+ });
61
+ (0, node_test_1.default)("decodes fixed lockup settings and positions through the canonical IDL", async () => {
62
+ const settings = await coder.encode("LockupSettings", {
63
+ vault: publicKey(4),
64
+ lp_custody: publicKey(5),
65
+ periods: Array.from({ length: 10 }, (_, index) => lockupPeriod(index)),
66
+ });
67
+ const decodedSettings = (0, economicsAccounts_1.decodeLockupSettings)(settings);
68
+ (0, strict_1.default)(decodedSettings.vault.equals(publicKey(4)));
69
+ (0, strict_1.default)(decodedSettings.lpCustody.equals(publicKey(5)));
70
+ strict_1.default.equal(decodedSettings.periods.length, 10);
71
+ strict_1.default.deepEqual(decodedSettings.periods[0], {
72
+ status: "active",
73
+ rewardClaimMode: "anytime",
74
+ durationSeconds: 100,
75
+ rewardShareBps: 200,
76
+ openPositionCount: 300n,
77
+ totalLockedLp: 400n,
78
+ pendingRewardLp: 500n,
79
+ cumulativeRewardPerLockedLp: [[0n, 2n, 3n, 4n]],
80
+ rewardEntitlementRemainder: 600n,
81
+ rewardDistributionRemainder: 700n,
82
+ forceExitAllowedAt: 800n,
83
+ });
84
+ strict_1.default.equal(decodedSettings.periods[1].status, "retiring");
85
+ strict_1.default.equal(decodedSettings.periods[1].rewardClaimMode, "atMaturity");
86
+ const position = await coder.encode("LockupPosition", {
87
+ lockup_settings: publicKey(6),
88
+ owner: publicKey(7),
89
+ position_nonce: new anchor_1.BN(-42),
90
+ locked_at: new anchor_1.BN("1700000123"),
91
+ cumulative_reward_per_locked_lp_checkpoint: preciseNumber(1n, 2n, 3n, 4n),
92
+ accrued_reward_lp: preciseNumber(5n, 6n, 7n, 8n),
93
+ principal_lp: new anchor_1.BN("1000000"),
94
+ lockup_period_index: 9,
95
+ });
96
+ strict_1.default.deepEqual((0, economicsAccounts_1.decodeLockupPosition)(position), {
97
+ lockupSettings: publicKey(6),
98
+ owner: publicKey(7),
99
+ positionNonce: -42n,
100
+ lockedAt: 1700000123n,
101
+ cumulativeRewardPerLockedLpCheckpoint: [[1n, 2n, 3n, 4n]],
102
+ accruedRewardLp: [[5n, 6n, 7n, 8n]],
103
+ principalLp: 1000000n,
104
+ lockupPeriodIndex: 9,
105
+ });
106
+ });
107
+ (0, node_test_1.default)("rejects incorrect account sizes, discriminators, and enum variants", async () => {
108
+ strict_1.default.throws(() => (0, economicsAccounts_1.decodePerformanceFeeSettings)(Buffer.alloc(coder.size("PerformanceFeeSettings") - 1)), /Invalid PerformanceFeeSettings size/);
109
+ strict_1.default.throws(() => (0, economicsAccounts_1.decodeHurdleSettings)(Buffer.alloc(coder.size("HurdleSettings"))), /Invalid account discriminator/);
110
+ const settings = await coder.encode("LockupSettings", {
111
+ vault: publicKey(1),
112
+ lp_custody: publicKey(2),
113
+ periods: Array.from({ length: 10 }, (_, index) => lockupPeriod(index)),
114
+ });
115
+ settings.writeUInt8(3, 8 + 32 + 32);
116
+ strict_1.default.throws(() => (0, economicsAccounts_1.decodeLockupSettings)(settings));
117
+ });
118
+ //# sourceMappingURL=economicsAccounts.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"economicsAccounts.test.js","sourceRoot":"","sources":["../src/economicsAccounts.test.ts"],"names":[],"mappings":"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"}
package/build/fetcher.js CHANGED
@@ -5,12 +5,13 @@ const anchor_1 = require("@coral-xyz/anchor");
5
5
  const exponent_vaults_idl_1 = require("@exponent-labs/exponent-vaults-idl");
6
6
  const exponent_vaults_pda_1 = require("@exponent-labs/exponent-vaults-pda");
7
7
  const constants_1 = require("./constants");
8
- const typeUtils_1 = require("./typeUtils");
9
8
  const priceInterfaceAccounts_1 = require("./priceInterfaceAccounts");
9
+ const typeUtils_1 = require("./typeUtils");
10
10
  const EXPONENT_PRICES_META_DISCRIMINATOR = Buffer.from([188, 97, 196, 52, 192, 41, 211, 196]);
11
11
  const MAX_PRICES = 1024;
12
12
  const MAX_PRICE_MANAGERS = 8;
13
13
  const MAX_AUTHORIZED_VAULT_CREATORS = 128;
14
+ const MAX_GET_MULTIPLE_ACCOUNTS_INFO_KEYS = 100;
14
15
  const PRICE_NODE_REGISTERS = 4;
15
16
  const PRICE_USAGE_AMOUNT_REGISTER = 1;
16
17
  const PUBKEY_BYTES = 32;
@@ -18,6 +19,10 @@ const U32_BYTES = 4;
18
19
  const U64_BYTES = 8;
19
20
  const ZERO_PUBKEY = new anchor_1.web3.PublicKey(new Uint8Array(PUBKEY_BYTES));
20
21
  const EXPONENT_PRICE_SIZE = 224;
22
+ const EXPONENT_PRICE_PRICE_DECIMALS_OFFSET = 160;
23
+ const EXPONENT_PRICE_UNDERLYING_DECIMALS_OFFSET = 161;
24
+ const EXPONENT_PRICE_SY_PRICE_ID_OFFSET = 168;
25
+ const EXPONENT_PRICE_IS_INVERSE_OFFSET = 192;
21
26
  const PRICE_NODE_SIZE = EXPONENT_PRICE_SIZE;
22
27
  const NODE_REGISTERS_SIZE = PRICE_NODE_REGISTERS * U32_BYTES;
23
28
  const PRICE_NODE_WRAPPED_SIZE = NODE_REGISTERS_SIZE + PRICE_NODE_SIZE;
@@ -289,6 +294,10 @@ class ExponentVaultsFetcher {
289
294
  const priceType = data.readUInt8(valueOffset + 120);
290
295
  const impliedApyBps = priceType === 3 || priceType === 16 || priceType === 17 ? data.readUInt32LE(valueOffset + 121) : null;
291
296
  const priceInterfaceAccounts = new anchor_1.web3.PublicKey(data.subarray(valueOffset + 128, valueOffset + 128 + PUBKEY_BYTES));
297
+ const priceDecimals = data.readUInt8(valueOffset + EXPONENT_PRICE_PRICE_DECIMALS_OFFSET);
298
+ const underlyingDecimals = data.readUInt8(valueOffset + EXPONENT_PRICE_UNDERLYING_DECIMALS_OFFSET);
299
+ const syPriceId = data.readBigUInt64LE(valueOffset + EXPONENT_PRICE_SY_PRICE_ID_OFFSET);
300
+ const isInverse = data.readUInt8(valueOffset + EXPONENT_PRICE_IS_INVERSE_OFFSET) !== 0;
292
301
  return {
293
302
  active,
294
303
  usageAmount,
@@ -301,9 +310,13 @@ class ExponentVaultsFetcher {
301
310
  lastUpdatedAt,
302
311
  lastUpdatedSlot,
303
312
  priceType,
313
+ priceDecimals,
314
+ underlyingDecimals,
315
+ syPriceId,
304
316
  impliedApyBps,
305
317
  impliedApy: impliedApyBps === null ? null : impliedApyBps / 1_000_000,
306
318
  priceInterfaceAccounts,
319
+ isInverse,
307
320
  interfaceAccounts: [],
308
321
  scopeConfig: null,
309
322
  },
@@ -334,14 +347,30 @@ class ExponentVaultsFetcher {
334
347
  throw new Error(`Corrupted ExponentPrices allocator: parsed ${activePrices} active entries, allocator has ${allocatorSize}`);
335
348
  }
336
349
  const activePriceEntries = prices.filter((entry) => entry !== null);
337
- const uniqueInterfaceAccounts = [
338
- ...new Map(activePriceEntries.map((entry) => [entry.priceInterfaceAccounts.toBase58(), entry.priceInterfaceAccounts])).values(),
339
- ].filter((pubkey) => !pubkey.equals(ZERO_PUBKEY));
340
- if (uniqueInterfaceAccounts.length > 0) {
341
- const infos = await Promise.all(uniqueInterfaceAccounts.map((pubkey) => this.program.provider.connection.getAccountInfo(pubkey)));
342
- for (let i = 0; i < uniqueInterfaceAccounts.length; i++) {
343
- const key = uniqueInterfaceAccounts[i];
344
- const info = infos[i];
350
+ const priceEntriesByInterfaceAccount = new Map();
351
+ for (const entry of activePriceEntries) {
352
+ const key = entry.priceInterfaceAccounts;
353
+ if (key.equals(ZERO_PUBKEY))
354
+ continue;
355
+ const keyString = key.toBase58();
356
+ const group = priceEntriesByInterfaceAccount.get(keyString);
357
+ if (group) {
358
+ group.entries.push(entry);
359
+ }
360
+ else {
361
+ priceEntriesByInterfaceAccount.set(keyString, { entries: [entry], key });
362
+ }
363
+ }
364
+ const priceInterfaceAccountGroups = [...priceEntriesByInterfaceAccount.values()];
365
+ for (let start = 0; start < priceInterfaceAccountGroups.length; start += MAX_GET_MULTIPLE_ACCOUNTS_INFO_KEYS) {
366
+ const groups = priceInterfaceAccountGroups.slice(start, start + MAX_GET_MULTIPLE_ACCOUNTS_INFO_KEYS);
367
+ const infos = await this.program.provider.connection.getMultipleAccountsInfo(groups.map((group) => group.key));
368
+ if (infos.length !== groups.length) {
369
+ throw new Error(`PriceInterfaceAccounts batch size mismatch: requested ${groups.length}, got ${infos.length}`);
370
+ }
371
+ for (let index = 0; index < groups.length; index++) {
372
+ const { entries, key } = groups[index];
373
+ const info = infos[index];
345
374
  if (!info) {
346
375
  throw new Error(`PriceInterfaceAccounts account not found: ${key.toBase58()}`);
347
376
  }
@@ -349,11 +378,9 @@ class ExponentVaultsFetcher {
349
378
  throw new Error(`PriceInterfaceAccounts owner mismatch: expected ${this.programId.toBase58()}, got ${info.owner.toBase58()}`);
350
379
  }
351
380
  const decoded = (0, priceInterfaceAccounts_1.decodePriceInterfaceAccounts)(info.data);
352
- for (const entry of activePriceEntries) {
353
- if (entry.priceInterfaceAccounts.equals(key)) {
354
- entry.interfaceAccounts = decoded.interfaceAccounts;
355
- entry.scopeConfig = decoded.scopeConfig;
356
- }
381
+ for (const entry of entries) {
382
+ entry.interfaceAccounts = decoded.interfaceAccounts;
383
+ entry.scopeConfig = decoded.scopeConfig;
357
384
  }
358
385
  }
359
386
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../src/fetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../src/fetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};