@pear-protocol/core-sdk 2.2.0 → 2.3.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.
@@ -567,6 +567,7 @@ class Core {
567
567
  const file = await gzipJson(body);
568
568
  const formData = new FormData();
569
569
  formData.append("file", file, "payload.json.gz");
570
+ formData.append("executionsUpdatedAtEpochMs", String(body.meta.executionsUpdatedAtEpochMs));
570
571
  return await this.client.fetch(`/sync/fills/create/bulk`, {
571
572
  method: "POST",
572
573
  headers: {
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import { Core } from './core/index.js';
3
3
  import { External } from './external/index.js';
4
4
  import { SDKConfig } from './types.js';
5
5
  export { AuthErrorContext } from './types.js';
6
+ import { Vaults } from './vaults/index.js';
6
7
  export { ExternalTrigger, ExternalTriggerSource, HttpTypes, SearchTriggersParams, SearchTriggersResponse, TriggerOutcome } from '@pear-protocol/types';
7
8
  export * from '@pear-protocol/utils';
8
9
  export { FetchError } from './utils.js';
@@ -14,6 +15,7 @@ declare class PearSDK {
14
15
  auth: Auth;
15
16
  core: Core;
16
17
  external: External;
18
+ vaults: Vaults;
17
19
  constructor(config: SDKConfig);
18
20
  }
19
21
 
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ export { External } from './external';
7
7
  import { HttpClient } from './http';
8
8
  import { FetchError } from './utils';
9
9
  export { FetchError } from './utils';
10
+ import { Vaults } from './vaults';
10
11
 
11
12
  var __defProp = Object.defineProperty;
12
13
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
@@ -18,6 +19,7 @@ class PearSDK {
18
19
  auth;
19
20
  core;
20
21
  external;
22
+ vaults;
21
23
  constructor(config) {
22
24
  if (config.proxy) configureProxy(config.proxy);
23
25
  const authMode = config.auth?.type ?? "session";
@@ -32,6 +34,7 @@ class PearSDK {
32
34
  this.auth = new Auth(client);
33
35
  this.core = new Core(client, config.clientId);
34
36
  this.external = new External();
37
+ this.vaults = new Vaults(client);
35
38
  if (authMode === "session") {
36
39
  let refreshInFlight = null;
37
40
  const retried = /* @__PURE__ */ new WeakSet();
@@ -0,0 +1,419 @@
1
+ import { HttpTypes } from '@pear-protocol/types';
2
+ import { HttpClient } from '../http.js';
3
+ import { ClientHeaders } from '../types.js';
4
+ import '@pear-protocol/utils';
5
+
6
+ /** Typed vaults client over the gateway base URL — one method per public vault-service route. */
7
+
8
+ /** Typed client for all vault-service routes. */
9
+ declare class Vaults {
10
+ private readonly client;
11
+ /** Bind the shared HTTP client this surface dispatches through. */
12
+ constructor(client: HttpClient);
13
+ /** POST /vaults — create a vault from the leader-signed envelope. */
14
+ create: (body: HttpTypes.CreateVaultInput, headers?: ClientHeaders) => Promise<{
15
+ result: {
16
+ success: true;
17
+ vaultAddress: HttpTypes.EthereumAddress;
18
+ agentAddress: HttpTypes.EthereumAddress;
19
+ ownerAddress: HttpTypes.EthereumAddress;
20
+ status: "active" | "inactive" | "pending_activation";
21
+ maxWithdrawalPeriodDays: number;
22
+ txHash: string;
23
+ } | {
24
+ success: false;
25
+ status: "in_progress";
26
+ activityId: string;
27
+ };
28
+ }>;
29
+ /** GET /vaults — list vaults with optional filter params. */
30
+ list: (query?: HttpTypes.VaultListParamsInput, headers?: ClientHeaders) => Promise<{
31
+ vaults: {
32
+ id: string;
33
+ vaultAddress: HttpTypes.EthereumAddress;
34
+ ownerAddress: HttpTypes.EthereumAddress;
35
+ traderAddress: HttpTypes.EthereumAddress | null;
36
+ agentAddress: HttpTypes.EthereumAddress;
37
+ status: "active" | "inactive" | "pending_activation";
38
+ isApproved: boolean;
39
+ name: string | null;
40
+ about: string | null;
41
+ imageUrl: string | null;
42
+ transactionHash: string | null;
43
+ maxWithdrawalPeriodDays: number;
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ }[];
47
+ }>;
48
+ /** GET /vaults/:vaultAddress — fetch a single vault by its on-chain address. */
49
+ get: (vaultAddress: string, headers?: ClientHeaders) => Promise<{
50
+ vault: {
51
+ id: string;
52
+ vaultAddress: HttpTypes.EthereumAddress;
53
+ ownerAddress: HttpTypes.EthereumAddress;
54
+ traderAddress: HttpTypes.EthereumAddress | null;
55
+ agentAddress: HttpTypes.EthereumAddress;
56
+ status: "active" | "inactive" | "pending_activation";
57
+ isApproved: boolean;
58
+ name: string | null;
59
+ about: string | null;
60
+ imageUrl: string | null;
61
+ transactionHash: string | null;
62
+ maxWithdrawalPeriodDays: number;
63
+ createdAt: string;
64
+ updatedAt: string;
65
+ };
66
+ }>;
67
+ /** GET /vaults/overview — fetch aggregate overview stats across vaults. */
68
+ overview: (query?: HttpTypes.VaultsOverviewQueryParamsInput, headers?: ClientHeaders) => Promise<{
69
+ items: {
70
+ vaultAddress: HttpTypes.EthereumAddress;
71
+ agentAddress: HttpTypes.EthereumAddress;
72
+ leaderAddress: HttpTypes.EthereumAddress;
73
+ name: string | null;
74
+ imageUrl: string | null;
75
+ latest: {
76
+ tvl: string;
77
+ sharePrice: string;
78
+ accountValue: string | null;
79
+ openInterest: string | null;
80
+ unrealizedPnl: string | null;
81
+ cumulativeRealizedPnl: string | null;
82
+ investorCount: number;
83
+ createdAt: string;
84
+ } | null;
85
+ sparkline: {
86
+ timestamp: number;
87
+ createdAt: string;
88
+ tvl: string;
89
+ sharePrice: string;
90
+ }[];
91
+ }[];
92
+ page: number;
93
+ pageSize: number;
94
+ total: number;
95
+ }>;
96
+ /** GET /vaults/investments — list investor positions across all vaults. */
97
+ investments: (query: HttpTypes.VaultInvestmentsQueryParamsInput, headers?: ClientHeaders) => Promise<{
98
+ totals: {
99
+ totalInvested: number;
100
+ totalCurrentValue: number;
101
+ totalPnl: number;
102
+ totalUnrealizedPnl: number;
103
+ };
104
+ investments: {
105
+ vaultAddress: HttpTypes.EthereumAddress;
106
+ name: string | null;
107
+ imageUrl: string | null;
108
+ isLeader: boolean;
109
+ depositAmount: string;
110
+ currentValue: string;
111
+ allTimePnl: number;
112
+ unrealizedPnl: number;
113
+ shares: string;
114
+ }[];
115
+ partial: boolean;
116
+ failedVaults: {
117
+ vaultAddress: HttpTypes.EthereumAddress;
118
+ name: string | null;
119
+ reason: string;
120
+ }[];
121
+ }>;
122
+ /** GET /vaults/:vaultAddress/stats — fetch performance stats for a vault. */
123
+ stats: (vaultAddress: string, query?: HttpTypes.VaultStatsQueryParamsInput, headers?: ClientHeaders) => Promise<{
124
+ tvl: string;
125
+ totalSupply: string;
126
+ sharePrice: string;
127
+ withdrawalFeeBps: number;
128
+ leaderInvestment: {
129
+ depositAmount: string;
130
+ currentValue: string;
131
+ shares: string;
132
+ percentageOfTVL: number;
133
+ };
134
+ totalPnl: number;
135
+ totalPnlPercentage: number | null;
136
+ thirtyDayPnl: number;
137
+ apr: number | null;
138
+ maxDrawdown: number | null;
139
+ winRate: number | null;
140
+ profitFactor: number | null;
141
+ unrealizedPnl: number;
142
+ investors: {
143
+ address: string;
144
+ depositAmount: string;
145
+ shares: string;
146
+ currentValue: string;
147
+ }[];
148
+ tradedVolume?: number | undefined;
149
+ userStats?: {
150
+ allTimePnl: number;
151
+ depositAmount: string;
152
+ currentValue: string;
153
+ shares: string;
154
+ unrealizedPnl: number;
155
+ } | undefined;
156
+ }>;
157
+ snapshots: {
158
+ /** POST /vaults/snapshots/bulk — ingest a batch of vault snapshots. */
159
+ bulk: (body: HttpTypes.SnapshotsBulkInput, headers?: ClientHeaders) => Promise<{
160
+ snapshots: Record<string, {
161
+ timestamp: number;
162
+ createdAt: string;
163
+ tvl?: string | undefined;
164
+ sharePrice?: string | undefined;
165
+ accountValue?: null | undefined;
166
+ unrealizedPnl?: null | undefined;
167
+ cumulativeRealizedPnl?: null | undefined;
168
+ leaderSharePct?: null | undefined;
169
+ }[]>;
170
+ }>;
171
+ };
172
+ activity: {
173
+ /** GET /vaults/:vaultAddress/activity — list activity events for a vault. */
174
+ list: (vaultAddress: string, headers?: ClientHeaders) => Promise<{
175
+ vaultAddress: string;
176
+ activity: {
177
+ id: string;
178
+ type: "vault.create" | "vault.set_trader" | "vault.update_metadata" | "bridge.withdraw_to_evm";
179
+ status: "failed" | "pending" | "succeeded";
180
+ createdAt: string;
181
+ updatedAt: string;
182
+ vaultAddress?: string | undefined;
183
+ txHash?: string | undefined;
184
+ error?: string | undefined;
185
+ }[];
186
+ }>;
187
+ /** GET /vaults/activity/:id — fetch a single activity event by ID. */
188
+ get: (id: string, headers?: ClientHeaders) => Promise<{
189
+ activity: {
190
+ id: string;
191
+ type: "vault.create" | "vault.set_trader" | "vault.update_metadata" | "bridge.withdraw_to_evm";
192
+ status: "failed" | "pending" | "succeeded";
193
+ createdAt: string;
194
+ updatedAt: string;
195
+ vaultAddress?: string | undefined;
196
+ txHash?: string | undefined;
197
+ error?: string | undefined;
198
+ };
199
+ }>;
200
+ };
201
+ transactions: {
202
+ /** GET /vaults/:vaultAddress/transactions — list on-chain transactions for a vault. */
203
+ list: (vaultAddress: string, query?: HttpTypes.VaultEventListParamsInput, headers?: ClientHeaders) => Promise<{
204
+ events: {
205
+ id: string;
206
+ vaultAddress: HttpTypes.EthereumAddress;
207
+ eventType: "DEPOSIT" | "WITHDRAWAL";
208
+ userAddress: HttpTypes.EthereumAddress;
209
+ receiver: HttpTypes.EthereumAddress;
210
+ assets: string;
211
+ shares: string;
212
+ fee: string;
213
+ withdrawalId: string | null;
214
+ txHash: string;
215
+ blockNumber: string;
216
+ logIndex: number;
217
+ createdAt: string;
218
+ }[];
219
+ }>;
220
+ };
221
+ metadata: {
222
+ /** PATCH /vaults/:vaultAddress — update mutable metadata fields on a vault. */
223
+ update: (vaultAddress: string, body: HttpTypes.UpdateVaultMetadataInput, headers?: ClientHeaders) => Promise<{
224
+ vault: {
225
+ id: string;
226
+ vaultAddress: HttpTypes.EthereumAddress;
227
+ ownerAddress: HttpTypes.EthereumAddress;
228
+ traderAddress: HttpTypes.EthereumAddress | null;
229
+ agentAddress: HttpTypes.EthereumAddress;
230
+ status: "active" | "inactive" | "pending_activation";
231
+ isApproved: boolean;
232
+ name: string | null;
233
+ about: string | null;
234
+ imageUrl: string | null;
235
+ transactionHash: string | null;
236
+ maxWithdrawalPeriodDays: number;
237
+ createdAt: string;
238
+ updatedAt: string;
239
+ };
240
+ }>;
241
+ };
242
+ trader: {
243
+ /** POST /vaults/:vaultAddress/trader — assign a new trader to a vault. */
244
+ set: (vaultAddress: string, body: HttpTypes.SetTraderInput, headers?: ClientHeaders) => Promise<{
245
+ result: {
246
+ success: true;
247
+ vault: {
248
+ id: string;
249
+ vaultAddress: HttpTypes.EthereumAddress;
250
+ ownerAddress: HttpTypes.EthereumAddress;
251
+ traderAddress: HttpTypes.EthereumAddress | null;
252
+ agentAddress: HttpTypes.EthereumAddress;
253
+ status: "active" | "inactive" | "pending_activation";
254
+ isApproved: boolean;
255
+ name: string | null;
256
+ about: string | null;
257
+ imageUrl: string | null;
258
+ transactionHash: string | null;
259
+ maxWithdrawalPeriodDays: number;
260
+ createdAt: string;
261
+ updatedAt: string;
262
+ };
263
+ } | {
264
+ success: false;
265
+ status: "in_progress";
266
+ activityId: string;
267
+ };
268
+ }>;
269
+ };
270
+ /** POST /vaults/:vaultAddress/withdraw-to-evm — initiate an EVM-side withdrawal from a vault. */
271
+ withdrawToEvm: (vaultAddress: string, body: HttpTypes.WithdrawToEvmInput, headers?: ClientHeaders) => Promise<{
272
+ result: {
273
+ success: true;
274
+ amount: string;
275
+ token: string;
276
+ tokenId: string;
277
+ destination: string;
278
+ vaultAddress: string;
279
+ activityId: string;
280
+ bridgeStatus: string;
281
+ bridgeSettleMs: number;
282
+ transferTxHash: string;
283
+ } | {
284
+ success: false;
285
+ status: "in_progress";
286
+ amount: string;
287
+ token: string;
288
+ tokenId: string;
289
+ destination: string;
290
+ vaultAddress: string;
291
+ activityId: string;
292
+ };
293
+ }>;
294
+ agent: {
295
+ /** GET /vaults/:vaultAddress/balances — fetch agent balances for a vault. */
296
+ balances: (vaultAddress: string, headers?: ClientHeaders) => Promise<{
297
+ agentAddress: string;
298
+ spot: Record<string, string>;
299
+ perp: {
300
+ accountValue: string;
301
+ withdrawable: string;
302
+ };
303
+ }>;
304
+ /** POST /vaults/:vaultAddress/agent/approve — approve an agent action for a vault. */
305
+ approve: (vaultAddress: string, body: HttpTypes.AgentApproveInput, headers?: ClientHeaders) => Promise<{
306
+ result: {
307
+ success: true;
308
+ transactionHash: string;
309
+ tokenAddress: string;
310
+ spender: string;
311
+ amount: string;
312
+ } | {
313
+ success: false;
314
+ status: "already_approved";
315
+ tokenAddress: string;
316
+ spender: string;
317
+ allowance: string;
318
+ };
319
+ }>;
320
+ /** POST /vaults/:vaultAddress/set-unified-account — configure the unified account for a vault agent. */
321
+ setUnifiedAccount: (vaultAddress: string, body: HttpTypes.SetUnifiedAccountInput, headers?: ClientHeaders) => Promise<{
322
+ success: boolean;
323
+ agentAddress: string;
324
+ }>;
325
+ };
326
+ nav: {
327
+ /** GET /vaults/:vaultAddress/nav/latest — fetch the most recent NAV snapshot for a vault. */
328
+ latest: (vaultAddress: string, headers?: ClientHeaders) => Promise<{
329
+ snapshot: {
330
+ vaultAddress: HttpTypes.EthereumAddress;
331
+ takenAt: string;
332
+ totalAssets: string;
333
+ totalSupply: string;
334
+ sharePrice: string;
335
+ blockNumber: string;
336
+ };
337
+ }>;
338
+ /** GET /vaults/:vaultAddress/nav — fetch NAV snapshots over a time range for a vault. */
339
+ range: (vaultAddress: string, query: HttpTypes.NavRangeQueryParamsInput, headers?: ClientHeaders) => Promise<{
340
+ points: {
341
+ bucket: string;
342
+ totalAssets: string;
343
+ totalSupply: string;
344
+ sharePrice: string;
345
+ blockNumber: string;
346
+ }[];
347
+ }>;
348
+ /** GET /vaults/:vaultAddress/nav/stats — fetch NAV performance statistics for a vault. */
349
+ stats: (vaultAddress: string, query: HttpTypes.NavStatsQueryParams, headers?: ClientHeaders) => Promise<{
350
+ window: "24h" | "7d" | "30d";
351
+ samples: number;
352
+ returnPct: number | null;
353
+ sharePriceMin: string | null;
354
+ sharePriceMax: string | null;
355
+ sharePriceFirst: string | null;
356
+ sharePriceLast: string | null;
357
+ }>;
358
+ };
359
+ positions: {
360
+ /** GET /vaults/:vaultAddress/positions/open — list open positions held by a vault. */
361
+ open: (vaultAddress: string, query?: HttpTypes.VaultOpenPositionListParamsInput, headers?: ClientHeaders) => Promise<{
362
+ limit: number;
363
+ vaultAddress: HttpTypes.EthereumAddress;
364
+ positions: {
365
+ status: "OPEN";
366
+ connector: "hyperliquid" | "binance" | "bybit" | "okx" | "lighter" | "lighter_rhc";
367
+ updatedAt: string;
368
+ positionId: string;
369
+ openedAt: string;
370
+ realizedGrossPnl: `-${string}` | `+${string}`;
371
+ netCashflow: `-${string}` | `+${string}`;
372
+ legs: {
373
+ side: "LONG" | "SHORT";
374
+ asset: string;
375
+ realized: {
376
+ quantity: string;
377
+ unpricedQuantity: string;
378
+ grossPnl: `-${string}` | `+${string}`;
379
+ netPnl: `-${string}` | `+${string}`;
380
+ exitVwap?: string | undefined;
381
+ };
382
+ remaining: {
383
+ quantity: `-${string}` | `+${string}`;
384
+ entryVwap?: string | undefined;
385
+ };
386
+ }[];
387
+ }[];
388
+ nextCursor?: string | undefined;
389
+ }>;
390
+ /** GET /vaults/:vaultAddress/positions/closed — list closed positions held by a vault. */
391
+ closed: (vaultAddress: string, query?: HttpTypes.VaultClosedPositionListParamsInput, headers?: ClientHeaders) => Promise<{
392
+ limit: number;
393
+ vaultAddress: HttpTypes.EthereumAddress;
394
+ positions: {
395
+ status: "CLOSED";
396
+ connector: "hyperliquid" | "binance" | "bybit" | "okx" | "lighter" | "lighter_rhc";
397
+ closedAt: string;
398
+ grossPnl: `-${string}` | `+${string}`;
399
+ netPnl: `-${string}` | `+${string}`;
400
+ positionId: string;
401
+ openedAt: string;
402
+ hasProvisionalFills: boolean;
403
+ legs: {
404
+ side: "LONG" | "SHORT";
405
+ asset: string;
406
+ grossPnl: `-${string}` | `+${string}`;
407
+ netPnl: `-${string}` | `+${string}`;
408
+ entryNotional: string;
409
+ entryVwap?: string | undefined;
410
+ exitVwap?: string | undefined;
411
+ }[];
412
+ closedReason?: "USER" | "NETTED" | "LIQUIDATED" | undefined;
413
+ }[];
414
+ nextCursor?: string | undefined;
415
+ }>;
416
+ };
417
+ }
418
+
419
+ export { Vaults };
@@ -0,0 +1,193 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ class Vaults {
4
+ static {
5
+ __name(this, "Vaults");
6
+ }
7
+ client;
8
+ /** Bind the shared HTTP client this surface dispatches through. */
9
+ constructor(client) {
10
+ this.client = client;
11
+ }
12
+ /** POST /vaults — create a vault from the leader-signed envelope. */
13
+ create = /* @__PURE__ */ __name(async (body, headers) => {
14
+ return await this.client.fetch(`/vaults`, {
15
+ method: "POST",
16
+ headers,
17
+ body
18
+ });
19
+ }, "create");
20
+ /** GET /vaults — list vaults with optional filter params. */
21
+ list = /* @__PURE__ */ __name(async (query, headers) => {
22
+ return await this.client.fetch(`/vaults`, {
23
+ method: "GET",
24
+ headers,
25
+ query
26
+ });
27
+ }, "list");
28
+ /** GET /vaults/:vaultAddress — fetch a single vault by its on-chain address. */
29
+ get = /* @__PURE__ */ __name(async (vaultAddress, headers) => {
30
+ return await this.client.fetch(`/vaults/${vaultAddress}`, {
31
+ method: "GET",
32
+ headers
33
+ });
34
+ }, "get");
35
+ /** GET /vaults/overview — fetch aggregate overview stats across vaults. */
36
+ overview = /* @__PURE__ */ __name(async (query, headers) => {
37
+ return await this.client.fetch(`/vaults/overview`, {
38
+ method: "GET",
39
+ headers,
40
+ query
41
+ });
42
+ }, "overview");
43
+ /** GET /vaults/investments — list investor positions across all vaults. */
44
+ investments = /* @__PURE__ */ __name(async (query, headers) => {
45
+ return await this.client.fetch(`/vaults/investments`, {
46
+ method: "GET",
47
+ headers,
48
+ query
49
+ });
50
+ }, "investments");
51
+ /** GET /vaults/:vaultAddress/stats — fetch performance stats for a vault. */
52
+ stats = /* @__PURE__ */ __name(async (vaultAddress, query, headers) => {
53
+ return await this.client.fetch(`/vaults/${vaultAddress}/stats`, {
54
+ method: "GET",
55
+ headers,
56
+ query
57
+ });
58
+ }, "stats");
59
+ snapshots = {
60
+ /** POST /vaults/snapshots/bulk — ingest a batch of vault snapshots. */
61
+ bulk: /* @__PURE__ */ __name(async (body, headers) => {
62
+ return await this.client.fetch(`/vaults/snapshots/bulk`, {
63
+ method: "POST",
64
+ headers,
65
+ body
66
+ });
67
+ }, "bulk")
68
+ };
69
+ activity = {
70
+ /** GET /vaults/:vaultAddress/activity — list activity events for a vault. */
71
+ list: /* @__PURE__ */ __name(async (vaultAddress, headers) => {
72
+ return await this.client.fetch(`/vaults/${vaultAddress}/activity`, {
73
+ method: "GET",
74
+ headers
75
+ });
76
+ }, "list"),
77
+ /** GET /vaults/activity/:id — fetch a single activity event by ID. */
78
+ get: /* @__PURE__ */ __name(async (id, headers) => {
79
+ return await this.client.fetch(`/vaults/activity/${id}`, {
80
+ method: "GET",
81
+ headers
82
+ });
83
+ }, "get")
84
+ };
85
+ transactions = {
86
+ /** GET /vaults/:vaultAddress/transactions — list on-chain transactions for a vault. */
87
+ list: /* @__PURE__ */ __name(async (vaultAddress, query, headers) => {
88
+ return await this.client.fetch(`/vaults/${vaultAddress}/transactions`, {
89
+ method: "GET",
90
+ headers,
91
+ query
92
+ });
93
+ }, "list")
94
+ };
95
+ metadata = {
96
+ /** PATCH /vaults/:vaultAddress — update mutable metadata fields on a vault. */
97
+ update: /* @__PURE__ */ __name(async (vaultAddress, body, headers) => {
98
+ return await this.client.fetch(`/vaults/${vaultAddress}`, {
99
+ method: "PATCH",
100
+ headers,
101
+ body
102
+ });
103
+ }, "update")
104
+ };
105
+ trader = {
106
+ /** POST /vaults/:vaultAddress/trader — assign a new trader to a vault. */
107
+ set: /* @__PURE__ */ __name(async (vaultAddress, body, headers) => {
108
+ return await this.client.fetch(`/vaults/${vaultAddress}/trader`, {
109
+ method: "POST",
110
+ headers,
111
+ body
112
+ });
113
+ }, "set")
114
+ };
115
+ /** POST /vaults/:vaultAddress/withdraw-to-evm — initiate an EVM-side withdrawal from a vault. */
116
+ withdrawToEvm = /* @__PURE__ */ __name(async (vaultAddress, body, headers) => {
117
+ return await this.client.fetch(`/vaults/${vaultAddress}/withdraw-to-evm`, {
118
+ method: "POST",
119
+ headers,
120
+ body
121
+ });
122
+ }, "withdrawToEvm");
123
+ agent = {
124
+ /** GET /vaults/:vaultAddress/balances — fetch agent balances for a vault. */
125
+ balances: /* @__PURE__ */ __name(async (vaultAddress, headers) => {
126
+ return await this.client.fetch(`/vaults/${vaultAddress}/balances`, {
127
+ method: "GET",
128
+ headers
129
+ });
130
+ }, "balances"),
131
+ /** POST /vaults/:vaultAddress/agent/approve — approve an agent action for a vault. */
132
+ approve: /* @__PURE__ */ __name(async (vaultAddress, body, headers) => {
133
+ return await this.client.fetch(`/vaults/${vaultAddress}/agent/approve`, {
134
+ method: "POST",
135
+ headers,
136
+ body
137
+ });
138
+ }, "approve"),
139
+ /** POST /vaults/:vaultAddress/set-unified-account — configure the unified account for a vault agent. */
140
+ setUnifiedAccount: /* @__PURE__ */ __name(async (vaultAddress, body, headers) => {
141
+ return await this.client.fetch(`/vaults/${vaultAddress}/set-unified-account`, {
142
+ method: "POST",
143
+ headers,
144
+ body
145
+ });
146
+ }, "setUnifiedAccount")
147
+ };
148
+ nav = {
149
+ /** GET /vaults/:vaultAddress/nav/latest — fetch the most recent NAV snapshot for a vault. */
150
+ latest: /* @__PURE__ */ __name(async (vaultAddress, headers) => {
151
+ return await this.client.fetch(`/vaults/${vaultAddress}/nav/latest`, {
152
+ method: "GET",
153
+ headers
154
+ });
155
+ }, "latest"),
156
+ /** GET /vaults/:vaultAddress/nav — fetch NAV snapshots over a time range for a vault. */
157
+ range: /* @__PURE__ */ __name(async (vaultAddress, query, headers) => {
158
+ return await this.client.fetch(`/vaults/${vaultAddress}/nav`, {
159
+ method: "GET",
160
+ headers,
161
+ query
162
+ });
163
+ }, "range"),
164
+ /** GET /vaults/:vaultAddress/nav/stats — fetch NAV performance statistics for a vault. */
165
+ stats: /* @__PURE__ */ __name(async (vaultAddress, query, headers) => {
166
+ return await this.client.fetch(`/vaults/${vaultAddress}/nav/stats`, {
167
+ method: "GET",
168
+ headers,
169
+ query
170
+ });
171
+ }, "stats")
172
+ };
173
+ positions = {
174
+ /** GET /vaults/:vaultAddress/positions/open — list open positions held by a vault. */
175
+ open: /* @__PURE__ */ __name(async (vaultAddress, query, headers) => {
176
+ return await this.client.fetch(`/vaults/${vaultAddress}/positions/open`, {
177
+ method: "GET",
178
+ headers,
179
+ query
180
+ });
181
+ }, "open"),
182
+ /** GET /vaults/:vaultAddress/positions/closed — list closed positions held by a vault. */
183
+ closed: /* @__PURE__ */ __name(async (vaultAddress, query, headers) => {
184
+ return await this.client.fetch(`/vaults/${vaultAddress}/positions/closed`, {
185
+ method: "GET",
186
+ headers,
187
+ query
188
+ });
189
+ }, "closed")
190
+ };
191
+ }
192
+
193
+ export { Vaults };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pear-protocol/core-sdk",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Pear Protocol Core SDK",
5
5
  "private": false,
6
6
  "type": "module",
@@ -26,8 +26,8 @@
26
26
  "typecheck": "tsc --noEmit"
27
27
  },
28
28
  "dependencies": {
29
- "@pear-protocol/types": "^2.2.0",
30
- "@pear-protocol/utils": "^1.1.0",
29
+ "@pear-protocol/types": "^2.10.0",
30
+ "@pear-protocol/utils": "^1.2.0",
31
31
  "qs": "^6.14.0"
32
32
  },
33
33
  "devDependencies": {