@argent/x-shared 1.39.1 → 1.41.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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("async-retry"),c=require("url-join"),r=require("./types/backend.model.cjs"),d=require("../../utils/schemas.cjs");class u{constructor(s,e){this.apiBase=s,this.httpService=e,this.TOKENS_INFO_URL="/tokens/info",this.TOKENS_DEFI_DECOMPOSITION_URL="/tokens/defi/decomposition"}async fetchTokensInfoFromBackend(s){const e=c(this.apiBase,this.TOKENS_INFO_URL,s??"","?chain=starknet"),t=await this.httpService.get(e),n=r.apiTokensInfoResponseSchema.safeParse(t);if(n.success)return n.data.tokens;const o=r.apiTokenInfoResponseSchema.safeParse(t);if(o.success)return[o.data]}async fetchAddressTokenBalancesFromBackend(s,e,t){const n=c(this.apiBase,"activity","starknet",e,"account",s,"balance");return(await p(async a=>{let h;try{h=await this.httpService.get(n)}catch{return a(new Error("Error fetching")),[]}const i=r.apiAccountTokenBalancesSchema.safeParse(h);if(!i.success)return a(new Error("Error parsing response")),[];if(i.data.status!=="initialised")throw new Error("Not initialised yet");return i.data.balances},{retries:5,minTimeout:5e3,...t})).map(a=>({address:a.tokenAddress,balance:a.tokenBalance,networkId:e}))}async fetchDefiDecomposition(s){const e=c(this.apiBase,this.TOKENS_DEFI_DECOMPOSITION_URL,s,"?chain=starknet"),t=await this.httpService.get(e);return d.safeParseAndWarn(r.apiDefiPositionsSchema,t).success||console.error("Backend schema has changed. Make the changes to the models to prevent unknown/unhandled errors."),t.dapps}}exports.TokenServiceWeb=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("async-retry"),c=require("url-join"),o=require("./types/backend.model.cjs"),d=require("../../utils/schemas.cjs");class u{constructor(s,e){this.apiBase=s,this.httpService=e,this.TOKENS_INFO_URL="/tokens/info"}async fetchTokensInfoFromBackend(s){const e=c(this.apiBase,this.TOKENS_INFO_URL,s??"","?chain=starknet"),t=await this.httpService.get(e),n=o.apiTokensInfoResponseSchema.safeParse(t);if(n.success)return n.data.tokens;const r=o.apiTokenInfoResponseSchema.safeParse(t);if(r.success)return[r.data]}async fetchAddressTokenBalancesFromBackend(s,e,t){const n=c(this.apiBase,"activity","starknet",e,"account",s,"balance");return(await h(async a=>{let p;try{p=await this.httpService.get(n)}catch{return a(new Error("Error fetching")),[]}const i=o.apiAccountTokenBalancesSchema.safeParse(p);if(!i.success)return a(new Error("Error parsing response")),[];if(i.data.status!=="initialised")throw new Error("Not initialised yet");return i.data.balances},{retries:5,minTimeout:5e3,...t})).map(a=>({address:a.tokenAddress,balance:a.tokenBalance,networkId:e}))}async fetchDefiDecomposition(s,e){const t=c(this.apiBase,"tokens/defi",s,"investments","?chain=starknet",`&application=${e}`),n=await this.httpService.get(t);return d.safeParseAndWarn(o.apiDefiPositionsSchema,n).success||console.error("Backend schema has changed. Make the changes to the models to prevent unknown/unhandled errors."),n.dapps}}exports.TokenServiceWeb=u;
@@ -12,7 +12,6 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
12
12
  protected readonly apiBase: string;
13
13
  protected readonly httpService: IHttpService;
14
14
  private readonly TOKENS_INFO_URL;
15
- private readonly TOKENS_DEFI_DECOMPOSITION_URL;
16
15
  constructor(apiBase: string, httpService: IHttpService);
17
16
  /**
18
17
  * Fetch tokens info from backend
@@ -26,7 +25,7 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
26
25
  * @returns {Promise<WebBaseTokenWithBalance[]>} - The fetched balances for the account address.
27
26
  */
28
27
  fetchAddressTokenBalancesFromBackend(address: string, network: ArgentBackendNetworkId, opts?: retry.Options): Promise<WebBaseTokenWithBalance[]>;
29
- fetchDefiDecomposition(address: Address): Promise<{
28
+ fetchDefiDecomposition(address: Address, application: "mobile" | "webwallet" | "argentx"): Promise<{
30
29
  dappId: string;
31
30
  products: import('zod').objectOutputType<{
32
31
  name: import('zod').ZodString;
@@ -42,7 +41,8 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
42
41
  name?: string | undefined;
43
42
  healthRatio?: string | undefined;
44
43
  }>>>;
45
- positions: import('zod').ZodArray<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<import("zod").objectUtil.extendShape<{
44
+ positions: import('zod').ZodArray<import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodUnion<[import('zod').ZodObject<import("zod").objectUtil.extendShape<{
45
+ id: import('zod').ZodString;
46
46
  tokenAddress: import('zod').ZodOptional<import('zod').ZodEffects<import('zod').ZodPipeline<import('zod').ZodString, import('zod').ZodEffects<import('zod').ZodString, string, string>>, `0x${string}`, string>>;
47
47
  totalBalances: import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodString>;
48
48
  }, {
@@ -154,6 +154,7 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
154
154
  };
155
155
  tickSpacingPercentage?: string | undefined;
156
156
  };
157
+ id: string;
157
158
  totalBalances: Record<string, string>;
158
159
  tokenId: string;
159
160
  tokenAddress?: `0x${string}` | undefined;
@@ -178,10 +179,12 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
178
179
  };
179
180
  tickSpacingPercentage?: string | undefined;
180
181
  };
182
+ id: string;
181
183
  totalBalances: Record<string, string>;
182
184
  tokenId: string;
183
185
  tokenAddress?: string | undefined;
184
186
  }>, import('zod').ZodObject<import("zod").objectUtil.extendShape<{
187
+ id: import('zod').ZodString;
185
188
  tokenAddress: import('zod').ZodOptional<import('zod').ZodEffects<import('zod').ZodPipeline<import('zod').ZodString, import('zod').ZodEffects<import('zod').ZodString, string, string>>, `0x${string}`, string>>;
186
189
  totalBalances: import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodString>;
187
190
  }, {
@@ -212,6 +215,7 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
212
215
  apy?: string | undefined;
213
216
  group?: number | undefined;
214
217
  };
218
+ id: string;
215
219
  totalBalances: Record<string, string>;
216
220
  tokenAddress?: `0x${string}` | undefined;
217
221
  }, {
@@ -222,6 +226,7 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
222
226
  apy?: string | undefined;
223
227
  group?: number | undefined;
224
228
  };
229
+ id: string;
225
230
  totalBalances: Record<string, string>;
226
231
  tokenAddress?: string | undefined;
227
232
  }>]>, import('zod').ZodObject<{
@@ -244,6 +249,7 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
244
249
  };
245
250
  totalBalances: Record<string, string>;
246
251
  }>]>, import('zod').ZodObject<import("zod").objectUtil.extendShape<{
252
+ id: import('zod').ZodString;
247
253
  tokenAddress: import('zod').ZodOptional<import('zod').ZodEffects<import('zod').ZodPipeline<import('zod').ZodString, import('zod').ZodEffects<import('zod').ZodString, string, string>>, `0x${string}`, string>>;
248
254
  totalBalances: import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodString>;
249
255
  }, {
@@ -259,6 +265,7 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
259
265
  data: {
260
266
  apy: string;
261
267
  };
268
+ id: string;
262
269
  totalBalances: Record<string, string>;
263
270
  tokenAddress?: `0x${string}` | undefined;
264
271
  investmentId?: string | undefined;
@@ -266,9 +273,100 @@ export declare class TokenServiceWeb implements ITokenServiceWeb {
266
273
  data: {
267
274
  apy: string;
268
275
  };
276
+ id: string;
269
277
  totalBalances: Record<string, string>;
270
278
  tokenAddress?: string | undefined;
271
279
  investmentId?: string | undefined;
280
+ }>]>, import('zod').ZodObject<import("zod").objectUtil.extendShape<{
281
+ id: import('zod').ZodString;
282
+ tokenAddress: import('zod').ZodOptional<import('zod').ZodEffects<import('zod').ZodPipeline<import('zod').ZodString, import('zod').ZodEffects<import('zod').ZodString, string, string>>, `0x${string}`, string>>;
283
+ totalBalances: import('zod').ZodRecord<import('zod').ZodString, import('zod').ZodString>;
284
+ }, {
285
+ data: import('zod').ZodObject<{
286
+ stakerInfo: import('zod').ZodObject<{
287
+ name: import('zod').ZodOptional<import('zod').ZodString>;
288
+ iconUrl: import('zod').ZodOptional<import('zod').ZodString>;
289
+ address: import('zod').ZodEffects<import('zod').ZodPipeline<import('zod').ZodString, import('zod').ZodEffects<import('zod').ZodString, string, string>>, `0x${string}`, string>;
290
+ }, "strip", import('zod').ZodTypeAny, {
291
+ address: `0x${string}`;
292
+ name?: string | undefined;
293
+ iconUrl?: string | undefined;
294
+ }, {
295
+ address: string;
296
+ name?: string | undefined;
297
+ iconUrl?: string | undefined;
298
+ }>;
299
+ accruedReward: import('zod').ZodString;
300
+ pendingWithdrawal: import('zod').ZodOptional<import('zod').ZodObject<{
301
+ amount: import('zod').ZodString;
302
+ withdrawableAfter: import('zod').ZodNumber;
303
+ }, "strip", import('zod').ZodTypeAny, {
304
+ amount: string;
305
+ withdrawableAfter: number;
306
+ }, {
307
+ amount: string;
308
+ withdrawableAfter: number;
309
+ }>>;
310
+ apy: import('zod').ZodOptional<import('zod').ZodString>;
311
+ }, "strip", import('zod').ZodTypeAny, {
312
+ stakerInfo: {
313
+ address: `0x${string}`;
314
+ name?: string | undefined;
315
+ iconUrl?: string | undefined;
316
+ };
317
+ accruedReward: string;
318
+ apy?: string | undefined;
319
+ pendingWithdrawal?: {
320
+ amount: string;
321
+ withdrawableAfter: number;
322
+ } | undefined;
323
+ }, {
324
+ stakerInfo: {
325
+ address: string;
326
+ name?: string | undefined;
327
+ iconUrl?: string | undefined;
328
+ };
329
+ accruedReward: string;
330
+ apy?: string | undefined;
331
+ pendingWithdrawal?: {
332
+ amount: string;
333
+ withdrawableAfter: number;
334
+ } | undefined;
335
+ }>;
336
+ }>, "strip", import('zod').ZodTypeAny, {
337
+ data: {
338
+ stakerInfo: {
339
+ address: `0x${string}`;
340
+ name?: string | undefined;
341
+ iconUrl?: string | undefined;
342
+ };
343
+ accruedReward: string;
344
+ apy?: string | undefined;
345
+ pendingWithdrawal?: {
346
+ amount: string;
347
+ withdrawableAfter: number;
348
+ } | undefined;
349
+ };
350
+ id: string;
351
+ totalBalances: Record<string, string>;
352
+ tokenAddress?: `0x${string}` | undefined;
353
+ }, {
354
+ data: {
355
+ stakerInfo: {
356
+ address: string;
357
+ name?: string | undefined;
358
+ iconUrl?: string | undefined;
359
+ };
360
+ accruedReward: string;
361
+ apy?: string | undefined;
362
+ pendingWithdrawal?: {
363
+ amount: string;
364
+ withdrawableAfter: number;
365
+ } | undefined;
366
+ };
367
+ id: string;
368
+ totalBalances: Record<string, string>;
369
+ tokenAddress?: string | undefined;
272
370
  }>]>, "many">;
273
371
  }, import('zod').ZodTypeAny, "passthrough">[];
274
372
  }[]>;
@@ -2,9 +2,9 @@ import p from "async-retry";
2
2
  import i from "url-join";
3
3
  import { apiTokensInfoResponseSchema as h, apiTokenInfoResponseSchema as d, apiAccountTokenBalancesSchema as u, apiDefiPositionsSchema as f } from "./types/backend.model.js";
4
4
  import { safeParseAndWarn as k } from "../../utils/schemas.js";
5
- class O {
5
+ class R {
6
6
  constructor(s, e) {
7
- this.apiBase = s, this.httpService = e, this.TOKENS_INFO_URL = "/tokens/info", this.TOKENS_DEFI_DECOMPOSITION_URL = "/tokens/defi/decomposition";
7
+ this.apiBase = s, this.httpService = e, this.TOKENS_INFO_URL = "/tokens/info";
8
8
  }
9
9
  /**
10
10
  * Fetch tokens info from backend
@@ -12,41 +12,41 @@ class O {
12
12
  * @returns {Promise<ApiTokenInfo[]>} - The fetched tokens or undefined if there was an error or not default network
13
13
  */
14
14
  async fetchTokensInfoFromBackend(s) {
15
- const e = i(this.apiBase, this.TOKENS_INFO_URL, s ?? "", "?chain=starknet"), t = await this.httpService.get(e), n = h.safeParse(t);
16
- if (n.success)
17
- return n.data.tokens;
18
- const o = d.safeParse(t);
19
- if (o.success)
20
- return [o.data];
15
+ const e = i(this.apiBase, this.TOKENS_INFO_URL, s ?? "", "?chain=starknet"), n = await this.httpService.get(e), t = h.safeParse(n);
16
+ if (t.success)
17
+ return t.data.tokens;
18
+ const r = d.safeParse(n);
19
+ if (r.success)
20
+ return [r.data];
21
21
  }
22
22
  /**
23
23
  * Fetch list of tokens and balances for given account from backend
24
24
  * @param {Address} address - The account address.
25
25
  * @returns {Promise<WebBaseTokenWithBalance[]>} - The fetched balances for the account address.
26
26
  */
27
- async fetchAddressTokenBalancesFromBackend(s, e, t) {
28
- const n = i(this.apiBase, "activity", "starknet", e, "account", s, "balance");
27
+ async fetchAddressTokenBalancesFromBackend(s, e, n) {
28
+ const t = i(this.apiBase, "activity", "starknet", e, "account", s, "balance");
29
29
  return (await p(
30
30
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
31
  async (a) => {
32
32
  let c;
33
33
  try {
34
- c = await this.httpService.get(n);
34
+ c = await this.httpService.get(t);
35
35
  } catch {
36
36
  return a(new Error("Error fetching")), [];
37
37
  }
38
- const r = u.safeParse(c);
39
- if (!r.success)
38
+ const o = u.safeParse(c);
39
+ if (!o.success)
40
40
  return a(new Error("Error parsing response")), [];
41
- if (r.data.status !== "initialised")
41
+ if (o.data.status !== "initialised")
42
42
  throw new Error("Not initialised yet");
43
- return r.data.balances;
43
+ return o.data.balances;
44
44
  },
45
45
  {
46
46
  /** seems to take 5-10 sec for initialised state */
47
47
  retries: 5,
48
48
  minTimeout: 5e3,
49
- ...t
49
+ ...n
50
50
  }
51
51
  )).map((a) => ({
52
52
  address: a.tokenAddress,
@@ -54,11 +54,11 @@ class O {
54
54
  networkId: e
55
55
  }));
56
56
  }
57
- async fetchDefiDecomposition(s) {
58
- const e = i(this.apiBase, this.TOKENS_DEFI_DECOMPOSITION_URL, s, "?chain=starknet"), t = await this.httpService.get(e);
57
+ async fetchDefiDecomposition(s, e) {
58
+ const n = i(this.apiBase, "tokens/defi", s, "investments", "?chain=starknet", `&application=${e}`), t = await this.httpService.get(n);
59
59
  return k(f, t).success || console.error("Backend schema has changed. Make the changes to the models to prevent unknown/unhandled errors."), t.dapps;
60
60
  }
61
61
  }
62
62
  export {
63
- O as TokenServiceWeb
63
+ R as TokenServiceWeb
64
64
  };
@@ -5,7 +5,7 @@ import { ApiDefiDecompositionSchema, ApiTokenInfo } from './types/backend.model'
5
5
  import { WebBaseTokenWithBalance } from './types/webToken.model';
6
6
  export type SelectorFn<T> = (value: T) => boolean;
7
7
  export interface ITokenServiceDefiDecomposition {
8
- fetchDefiDecomposition: (address: Address) => Promise<ApiDefiDecompositionSchema[]>;
8
+ fetchDefiDecomposition: (address: Address, application: "mobile" | "webwallet" | "argentx") => Promise<ApiDefiDecompositionSchema[]>;
9
9
  }
10
10
  /**
11
11
  * ITokenService interface provides methods for managing tokens, including storage methods, fetch methods, and get methods.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("zod"),a=require("../../../chains/starknet/address.cjs"),g=require("./defiPositionType.model.cjs"),h=require("../../../utils/schemas.cjs"),S=e.z.object({status:e.z.literal("initialising")}).or(e.z.object({status:e.z.literal("initialised"),balances:e.z.array(e.z.object({tokenAddress:a.addressSchemaArgentBackend,tokenBalance:e.z.string()}))})),i=e.z.object({id:e.z.number(),address:a.addressSchema,brandColor:e.z.string().optional(),name:e.z.string(),symbol:e.z.string(),decimals:e.z.number(),iconUrl:e.z.string().optional(),sendable:e.z.boolean(),popular:e.z.boolean(),refundable:e.z.boolean(),listed:e.z.boolean(),tradable:e.z.boolean(),category:e.z.union([e.z.literal("tokens"),e.z.literal("currencies"),e.z.literal("savings")]),pricingId:e.z.number().optional(),dappId:e.z.string().optional(),marketData:e.z.object({marketCap:e.z.number(),marketCap24hChange:e.z.number(),dailyVolume:e.z.number(),rank:e.z.number()}).optional(),tags:e.z.array(e.z.string()).optional()}),b=e.z.object({tokens:e.z.array(i)}),u=i,p=e.z.object({pricingId:e.z.number(),ethValue:e.z.string(),ccyValue:e.z.string(),ethDayChange:e.z.string(),ccyDayChange:e.z.string()}),k=e.z.object({prices:e.z.array(p)}),o=e.z.object({tokenAddress:a.addressSchemaArgentBackend,principal:e.z.string(),accruedFees:e.z.string(),minPrice:e.z.string(),maxPrice:e.z.string(),currentPrice:e.z.string()}),t=e.z.object({tokenAddress:a.addressSchema.optional(),totalBalances:e.z.record(e.z.string())}),n=t.extend({tokenId:e.z.string(),data:e.z.object({poolFeePercentage:e.z.string(),tickSpacingPercentage:e.z.string().optional(),token0:o,token1:o})}),D=e.z.array(n),s=t.extend({data:e.z.object({apy:e.z.string()}),investmentId:e.z.string().optional()}),y=e.z.array(s),r=t.extend({data:e.z.object({apy:e.z.string().optional(),group:e.z.number().optional(),collateral:e.z.boolean(),debt:e.z.boolean(),lending:e.z.boolean()})}),P=e.z.array(r),c=e.z.object({data:e.z.object({delegatingTo:a.addressSchema}),totalBalances:e.z.record(e.z.string())}),j=e.z.array(c),z=e.z.array(n.or(r).or(c).or(s)),d=h.createSchemaWithWarnings({name:e.z.string(),manageUrl:e.z.string(),type:g.defiPositionTypeSchema,groups:e.z.record(e.z.object({name:e.z.string().optional(),healthRatio:e.z.string().optional()})).optional(),positions:z}),l=e.z.object({dappId:e.z.string(),products:e.z.array(d)}),f=e.z.object({dapps:e.z.array(l)}),m=e.z.object({name:e.z.string().optional(),tokenAddress:a.addressSchema,amount:e.z.string().optional(),claimUrl:e.z.string().optional(),claimStart:e.z.number(),claimEnd:e.z.number().optional()}),T=e.z.object({accountAddress:a.addressSchema,chain:e.z.string(),airdrops:e.z.array(m)});exports.apiAccountTokenBalancesSchema=S;exports.apiAirdropSchema=m;exports.apiCollateralizedDebtPositionSchema=r;exports.apiCollateralizedDebtPositionsSchema=P;exports.apiConcentratedLiquidityPositionSchema=n;exports.apiConcentratedLiquidityPositionsSchema=D;exports.apiDefiDecompositionProduct=d;exports.apiDefiDecompositionProducts=z;exports.apiDefiDecompositionSchema=l;exports.apiDefiDecompositionToken=o;exports.apiDefiPositionsSchema=f;exports.apiDelegatedTokensArraySchema=j;exports.apiDelegatedTokensSchema=c;exports.apiPriceDataResponseSchema=k;exports.apiPriceDetailsSchema=p;exports.apiStakingPositionSchema=s;exports.apiStakingPositionsSchema=y;exports.apiTokenInfoResponseSchema=u;exports.apiTokenInfoSchema=i;exports.apiTokensInfoResponseSchema=b;exports.apiUnclaimedRewardsSchema=T;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("zod"),a=require("../../../chains/starknet/address.cjs"),h=require("./defiPositionType.model.cjs"),b=require("../../../utils/schemas.cjs"),u=e.z.object({status:e.z.literal("initialising")}).or(e.z.object({status:e.z.literal("initialised"),balances:e.z.array(e.z.object({tokenAddress:a.addressSchemaArgentBackend,tokenBalance:e.z.string()}))})),t=e.z.object({id:e.z.number(),address:a.addressSchema,brandColor:e.z.string().optional(),name:e.z.string(),symbol:e.z.string(),decimals:e.z.number(),iconUrl:e.z.string().optional(),sendable:e.z.boolean(),popular:e.z.boolean(),refundable:e.z.boolean(),listed:e.z.boolean(),tradable:e.z.boolean(),category:e.z.union([e.z.literal("tokens"),e.z.literal("currencies"),e.z.literal("savings")]),pricingId:e.z.number().optional(),dappId:e.z.string().optional(),marketData:e.z.object({marketCap:e.z.number(),marketCap24hChange:e.z.number(),dailyVolume:e.z.number(),rank:e.z.number()}).optional(),tags:e.z.array(e.z.string()).optional()}),k=e.z.object({tokens:e.z.array(t)}),D=t,d=e.z.object({pricingId:e.z.number(),ethValue:e.z.string(),ccyValue:e.z.string(),ethDayChange:e.z.string(),ccyDayChange:e.z.string()}),y=e.z.object({prices:e.z.array(d)}),o=e.z.object({tokenAddress:a.addressSchemaArgentBackend,principal:e.z.string(),accruedFees:e.z.string(),minPrice:e.z.string(),maxPrice:e.z.string(),currentPrice:e.z.string()}),i=e.z.object({id:e.z.string(),tokenAddress:a.addressSchema.optional(),totalBalances:e.z.record(e.z.string())}),n=i.extend({tokenId:e.z.string(),data:e.z.object({poolFeePercentage:e.z.string(),tickSpacingPercentage:e.z.string().optional(),token0:o,token1:o})}),P=e.z.array(n),s=i.extend({data:e.z.object({apy:e.z.string()}),investmentId:e.z.string().optional()}),f=e.z.array(s),r=i.extend({data:e.z.object({apy:e.z.string().optional(),group:e.z.number().optional(),collateral:e.z.boolean(),debt:e.z.boolean(),lending:e.z.boolean()})}),j=e.z.array(r),c=e.z.object({data:e.z.object({delegatingTo:a.addressSchema}),totalBalances:e.z.record(e.z.string())}),T=e.z.array(c),p=i.extend({data:e.z.object({stakerInfo:e.z.object({name:e.z.string().optional(),iconUrl:e.z.string().optional(),address:a.addressSchema}),accruedReward:e.z.string(),pendingWithdrawal:e.z.object({amount:e.z.string(),withdrawableAfter:e.z.number()}).optional(),apy:e.z.string().optional()})}),A=e.z.array(p),z=n.or(r).or(c).or(s).or(p),l=e.z.array(z),m=b.createSchemaWithWarnings({name:e.z.string(),manageUrl:e.z.string(),type:h.defiPositionTypeSchema,groups:e.z.record(e.z.object({name:e.z.string().optional(),healthRatio:e.z.string().optional()})).optional(),positions:l}),g=e.z.object({dappId:e.z.string(),products:e.z.array(m)}),C=e.z.object({dapps:e.z.array(g)}),S=e.z.object({name:e.z.string().optional(),tokenAddress:a.addressSchema,amount:e.z.string().optional(),claimUrl:e.z.string().optional(),claimStart:e.z.number(),claimEnd:e.z.number().optional()}),I=e.z.object({accountAddress:a.addressSchema,chain:e.z.string(),airdrops:e.z.array(S)});exports.apiAccountTokenBalancesSchema=u;exports.apiAirdropSchema=S;exports.apiCollateralizedDebtPositionSchema=r;exports.apiCollateralizedDebtPositionsSchema=j;exports.apiConcentratedLiquidityPositionSchema=n;exports.apiConcentratedLiquidityPositionsSchema=P;exports.apiDefiDecompositionProduct=m;exports.apiDefiDecompositionProducts=l;exports.apiDefiDecompositionSchema=g;exports.apiDefiDecompositionToken=o;exports.apiDefiPositionSchema=z;exports.apiDefiPositionsSchema=C;exports.apiDelegatedTokensArraySchema=T;exports.apiDelegatedTokensSchema=c;exports.apiPriceDataResponseSchema=y;exports.apiPriceDetailsSchema=d;exports.apiStakingPositionSchema=s;exports.apiStakingPositionsSchema=f;exports.apiStrkDelegatedStakingPositionsSchema=A;exports.apiStrkDelegatedStakingSchema=p;exports.apiTokenInfoResponseSchema=D;exports.apiTokenInfoSchema=t;exports.apiTokensInfoResponseSchema=k;exports.apiUnclaimedRewardsSchema=I;