@compass-labs/api-sdk 2.1.18-rc.0 → 2.1.18-rc.2

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.
Files changed (143) hide show
  1. package/README.md +2 -2
  2. package/codeSamples_typescript.yaml +7 -7
  3. package/dist/commonjs/funcs/earnEarnListAaveMarkets.d.ts +28 -0
  4. package/dist/commonjs/funcs/earnEarnListAaveMarkets.d.ts.map +1 -0
  5. package/dist/commonjs/funcs/{earnEarnAaveTokenRates.js → earnEarnListAaveMarkets.js} +19 -10
  6. package/dist/commonjs/funcs/earnEarnListAaveMarkets.js.map +1 -0
  7. package/dist/commonjs/models/components/chainmarketinfo.d.ts +24 -0
  8. package/dist/commonjs/models/components/chainmarketinfo.d.ts.map +1 -0
  9. package/dist/commonjs/models/components/{chainratedata.js → chainmarketinfo.js} +11 -10
  10. package/dist/commonjs/models/components/chainmarketinfo.js.map +1 -0
  11. package/dist/commonjs/models/components/index.d.ts +4 -3
  12. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  13. package/dist/commonjs/models/components/index.js +4 -3
  14. package/dist/commonjs/models/components/index.js.map +1 -1
  15. package/dist/commonjs/models/components/listaavemarketsresponse.d.ts +19 -0
  16. package/dist/commonjs/models/components/listaavemarketsresponse.d.ts.map +1 -0
  17. package/dist/commonjs/models/components/{maxsupplyapydata.js → listaavemarketsresponse.js} +8 -9
  18. package/dist/commonjs/models/components/listaavemarketsresponse.js.map +1 -0
  19. package/dist/commonjs/models/components/maxsupplyapyinfo.d.ts +28 -0
  20. package/dist/commonjs/models/components/maxsupplyapyinfo.d.ts.map +1 -0
  21. package/dist/commonjs/models/components/maxsupplyapyinfo.js +59 -0
  22. package/dist/commonjs/models/components/maxsupplyapyinfo.js.map +1 -0
  23. package/dist/commonjs/models/components/tokenmarketdata.d.ts +24 -0
  24. package/dist/commonjs/models/components/tokenmarketdata.d.ts.map +1 -0
  25. package/dist/commonjs/models/components/{aaveusdcratesresponse.js → tokenmarketdata.js} +11 -13
  26. package/dist/commonjs/models/components/tokenmarketdata.js.map +1 -0
  27. package/dist/commonjs/models/operations/index.d.ts +1 -1
  28. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  29. package/dist/commonjs/models/operations/index.js +1 -1
  30. package/dist/commonjs/models/operations/index.js.map +1 -1
  31. package/dist/commonjs/models/operations/v2earnlistaavemarkets.d.ts +16 -0
  32. package/dist/commonjs/models/operations/v2earnlistaavemarkets.d.ts.map +1 -0
  33. package/dist/commonjs/models/operations/{v2earnaavetokenrates.js → v2earnlistaavemarkets.js} +8 -7
  34. package/dist/commonjs/models/operations/v2earnlistaavemarkets.js.map +1 -0
  35. package/dist/commonjs/models/operations/v2earnvaults.d.ts +6 -10
  36. package/dist/commonjs/models/operations/v2earnvaults.d.ts.map +1 -1
  37. package/dist/commonjs/models/operations/v2earnvaults.js +3 -9
  38. package/dist/commonjs/models/operations/v2earnvaults.js.map +1 -1
  39. package/dist/commonjs/sdk/earn.d.ts +12 -3
  40. package/dist/commonjs/sdk/earn.d.ts.map +1 -1
  41. package/dist/commonjs/sdk/earn.js +14 -5
  42. package/dist/commonjs/sdk/earn.js.map +1 -1
  43. package/dist/esm/funcs/earnEarnListAaveMarkets.d.ts +28 -0
  44. package/dist/esm/funcs/earnEarnListAaveMarkets.d.ts.map +1 -0
  45. package/dist/esm/funcs/{earnEarnAaveTokenRates.js → earnEarnListAaveMarkets.js} +18 -9
  46. package/dist/esm/funcs/earnEarnListAaveMarkets.js.map +1 -0
  47. package/dist/esm/models/components/chainmarketinfo.d.ts +24 -0
  48. package/dist/esm/models/components/chainmarketinfo.d.ts.map +1 -0
  49. package/dist/esm/models/components/chainmarketinfo.js +21 -0
  50. package/dist/esm/models/components/chainmarketinfo.js.map +1 -0
  51. package/dist/esm/models/components/index.d.ts +4 -3
  52. package/dist/esm/models/components/index.d.ts.map +1 -1
  53. package/dist/esm/models/components/index.js +4 -3
  54. package/dist/esm/models/components/index.js.map +1 -1
  55. package/dist/esm/models/components/listaavemarketsresponse.d.ts +19 -0
  56. package/dist/esm/models/components/listaavemarketsresponse.d.ts.map +1 -0
  57. package/dist/esm/models/components/listaavemarketsresponse.js +14 -0
  58. package/dist/esm/models/components/listaavemarketsresponse.js.map +1 -0
  59. package/dist/esm/models/components/maxsupplyapyinfo.d.ts +28 -0
  60. package/dist/esm/models/components/maxsupplyapyinfo.d.ts.map +1 -0
  61. package/dist/esm/models/components/maxsupplyapyinfo.js +22 -0
  62. package/dist/esm/models/components/maxsupplyapyinfo.js.map +1 -0
  63. package/dist/esm/models/components/tokenmarketdata.d.ts +24 -0
  64. package/dist/esm/models/components/tokenmarketdata.d.ts.map +1 -0
  65. package/dist/esm/models/components/tokenmarketdata.js +21 -0
  66. package/dist/esm/models/components/tokenmarketdata.js.map +1 -0
  67. package/dist/esm/models/operations/index.d.ts +1 -1
  68. package/dist/esm/models/operations/index.d.ts.map +1 -1
  69. package/dist/esm/models/operations/index.js +1 -1
  70. package/dist/esm/models/operations/index.js.map +1 -1
  71. package/dist/esm/models/operations/v2earnlistaavemarkets.d.ts +16 -0
  72. package/dist/esm/models/operations/v2earnlistaavemarkets.d.ts.map +1 -0
  73. package/dist/esm/models/operations/v2earnlistaavemarkets.js +13 -0
  74. package/dist/esm/models/operations/v2earnlistaavemarkets.js.map +1 -0
  75. package/dist/esm/models/operations/v2earnvaults.d.ts +6 -10
  76. package/dist/esm/models/operations/v2earnvaults.d.ts.map +1 -1
  77. package/dist/esm/models/operations/v2earnvaults.js +2 -8
  78. package/dist/esm/models/operations/v2earnvaults.js.map +1 -1
  79. package/dist/esm/sdk/earn.d.ts +12 -3
  80. package/dist/esm/sdk/earn.d.ts.map +1 -1
  81. package/dist/esm/sdk/earn.js +14 -5
  82. package/dist/esm/sdk/earn.js.map +1 -1
  83. package/docs/models/components/chainmarketinfo.md +23 -0
  84. package/docs/models/components/listaavemarketsresponse.md +35 -0
  85. package/docs/models/components/maxsupplyapyinfo.md +25 -0
  86. package/docs/models/components/tokenmarketdata.md +26 -0
  87. package/docs/models/operations/v2earnlistaavemarketsrequest.md +15 -0
  88. package/docs/models/operations/v2earnvaultsrequest.md +8 -9
  89. package/docs/sdks/earn/README.md +19 -16
  90. package/package.json +1 -1
  91. package/src/funcs/{earnEarnAaveTokenRates.ts → earnEarnListAaveMarkets.ts} +22 -13
  92. package/src/models/components/chainmarketinfo.ts +53 -0
  93. package/src/models/components/index.ts +4 -3
  94. package/src/models/components/listaavemarketsresponse.ts +41 -0
  95. package/src/models/components/maxsupplyapyinfo.ts +58 -0
  96. package/src/models/components/tokenmarketdata.ts +55 -0
  97. package/src/models/operations/index.ts +1 -1
  98. package/src/models/operations/v2earnlistaavemarkets.ts +37 -0
  99. package/src/models/operations/v2earnvaults.ts +7 -15
  100. package/src/sdk/earn.ts +16 -7
  101. package/dist/commonjs/funcs/earnEarnAaveTokenRates.d.ts +0 -19
  102. package/dist/commonjs/funcs/earnEarnAaveTokenRates.d.ts.map +0 -1
  103. package/dist/commonjs/funcs/earnEarnAaveTokenRates.js.map +0 -1
  104. package/dist/commonjs/models/components/aaveusdcratesresponse.d.ts +0 -30
  105. package/dist/commonjs/models/components/aaveusdcratesresponse.d.ts.map +0 -1
  106. package/dist/commonjs/models/components/aaveusdcratesresponse.js.map +0 -1
  107. package/dist/commonjs/models/components/chainratedata.d.ts +0 -20
  108. package/dist/commonjs/models/components/chainratedata.d.ts.map +0 -1
  109. package/dist/commonjs/models/components/chainratedata.js.map +0 -1
  110. package/dist/commonjs/models/components/maxsupplyapydata.d.ts +0 -21
  111. package/dist/commonjs/models/components/maxsupplyapydata.d.ts.map +0 -1
  112. package/dist/commonjs/models/components/maxsupplyapydata.js.map +0 -1
  113. package/dist/commonjs/models/operations/v2earnaavetokenrates.d.ts +0 -15
  114. package/dist/commonjs/models/operations/v2earnaavetokenrates.d.ts.map +0 -1
  115. package/dist/commonjs/models/operations/v2earnaavetokenrates.js.map +0 -1
  116. package/dist/esm/funcs/earnEarnAaveTokenRates.d.ts +0 -19
  117. package/dist/esm/funcs/earnEarnAaveTokenRates.d.ts.map +0 -1
  118. package/dist/esm/funcs/earnEarnAaveTokenRates.js.map +0 -1
  119. package/dist/esm/models/components/aaveusdcratesresponse.d.ts +0 -30
  120. package/dist/esm/models/components/aaveusdcratesresponse.d.ts.map +0 -1
  121. package/dist/esm/models/components/aaveusdcratesresponse.js +0 -23
  122. package/dist/esm/models/components/aaveusdcratesresponse.js.map +0 -1
  123. package/dist/esm/models/components/chainratedata.d.ts +0 -20
  124. package/dist/esm/models/components/chainratedata.d.ts.map +0 -1
  125. package/dist/esm/models/components/chainratedata.js +0 -20
  126. package/dist/esm/models/components/chainratedata.js.map +0 -1
  127. package/dist/esm/models/components/maxsupplyapydata.d.ts +0 -21
  128. package/dist/esm/models/components/maxsupplyapydata.d.ts.map +0 -1
  129. package/dist/esm/models/components/maxsupplyapydata.js +0 -15
  130. package/dist/esm/models/components/maxsupplyapydata.js.map +0 -1
  131. package/dist/esm/models/operations/v2earnaavetokenrates.d.ts +0 -15
  132. package/dist/esm/models/operations/v2earnaavetokenrates.d.ts.map +0 -1
  133. package/dist/esm/models/operations/v2earnaavetokenrates.js +0 -12
  134. package/dist/esm/models/operations/v2earnaavetokenrates.js.map +0 -1
  135. package/docs/models/components/aaveusdcratesresponse.md +0 -40
  136. package/docs/models/components/chainratedata.md +0 -21
  137. package/docs/models/components/maxsupplyapydata.md +0 -24
  138. package/docs/models/operations/v2earnaavetokenratesrequest.md +0 -17
  139. package/docs/models/operations/v2earnvaultschain.md +0 -15
  140. package/src/models/components/aaveusdcratesresponse.ts +0 -62
  141. package/src/models/components/chainratedata.ts +0 -48
  142. package/src/models/components/maxsupplyapydata.ts +0 -43
  143. package/src/models/operations/v2earnaavetokenrates.ts +0 -36
@@ -6,7 +6,7 @@
6
6
 
7
7
  * [earnPositions](#earnpositions) - List earn positions
8
8
  * [earnVaults](#earnvaults) - List vaults
9
- * [earnAaveTokenRates](#earnaavetokenrates) - Get token rates on Aave
9
+ * [earnListAaveMarkets](#earnlistaavemarkets) - List aave markets
10
10
  * [earnCreateAccount](#earncreateaccount) - Create earn account
11
11
  * [earnTransfer](#earntransfer) - Transfer tokens to/from account
12
12
  * [earnManage](#earnmanage) - Manage earn position
@@ -117,7 +117,6 @@ async function run() {
117
117
  direction: "desc",
118
118
  offset: 0,
119
119
  limit: 50,
120
- chain: "ethereum",
121
120
  });
122
121
 
123
122
  console.log(result);
@@ -146,7 +145,6 @@ async function run() {
146
145
  direction: "desc",
147
146
  offset: 0,
148
147
  limit: 50,
149
- chain: "ethereum",
150
148
  });
151
149
  if (res.ok) {
152
150
  const { value: result } = res;
@@ -179,13 +177,22 @@ run();
179
177
  | errors.HTTPValidationError | 422 | application/json |
180
178
  | errors.APIError | 4XX, 5XX | \*/\* |
181
179
 
182
- ## earnAaveTokenRates
180
+ ## earnListAaveMarkets
181
+
182
+ List all aave markets with their supply and borrow rates.
183
+
184
+ Returns rates organized by token symbol, with chain-specific data for each token.
185
+ Each token includes rates for all chains where it's available, plus information
186
+ about which chain offers the highest supply APY.
187
+
188
+ APY values are returned in percentage format (e.g., 4.5 means 4.5%). Tokens with
189
+ zero APY on both supply and borrow are excluded.
183
190
 
184
- This endpoint fetches token rates on Aave across Ethereum, Base, and Arbitrum.
191
+ Optionally filter by chain.
185
192
 
186
193
  ### Example Usage
187
194
 
188
- <!-- UsageSnippet language="typescript" operationID="v2_earn_aave_token_rates" method="get" path="/v2/earn/aave_token_rates" -->
195
+ <!-- UsageSnippet language="typescript" operationID="v2_earn_list_aave_markets" method="get" path="/v2/earn/list_aave_markets" -->
189
196
  ```typescript
190
197
  import { CompassApiSDK } from "@compass-labs/api-sdk";
191
198
 
@@ -194,9 +201,7 @@ const compassApiSDK = new CompassApiSDK({
194
201
  });
195
202
 
196
203
  async function run() {
197
- const result = await compassApiSDK.earn.earnAaveTokenRates({
198
- token: "USDC",
199
- });
204
+ const result = await compassApiSDK.earn.earnListAaveMarkets({});
200
205
 
201
206
  console.log(result);
202
207
  }
@@ -210,7 +215,7 @@ The standalone function version of this method:
210
215
 
211
216
  ```typescript
212
217
  import { CompassApiSDKCore } from "@compass-labs/api-sdk/core.js";
213
- import { earnEarnAaveTokenRates } from "@compass-labs/api-sdk/funcs/earnEarnAaveTokenRates.js";
218
+ import { earnEarnListAaveMarkets } from "@compass-labs/api-sdk/funcs/earnEarnListAaveMarkets.js";
214
219
 
215
220
  // Use `CompassApiSDKCore` for best tree-shaking performance.
216
221
  // You can create one instance of it to use across an application.
@@ -219,14 +224,12 @@ const compassApiSDK = new CompassApiSDKCore({
219
224
  });
220
225
 
221
226
  async function run() {
222
- const res = await earnEarnAaveTokenRates(compassApiSDK, {
223
- token: "USDC",
224
- });
227
+ const res = await earnEarnListAaveMarkets(compassApiSDK, {});
225
228
  if (res.ok) {
226
229
  const { value: result } = res;
227
230
  console.log(result);
228
231
  } else {
229
- console.log("earnEarnAaveTokenRates failed:", res.error);
232
+ console.log("earnEarnListAaveMarkets failed:", res.error);
230
233
  }
231
234
  }
232
235
 
@@ -237,14 +240,14 @@ run();
237
240
 
238
241
  | Parameter | Type | Required | Description |
239
242
  | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
240
- | `request` | [operations.V2EarnAaveTokenRatesRequest](../../models/operations/v2earnaavetokenratesrequest.md) | :heavy_check_mark: | The request object to use for the request. |
243
+ | `request` | [operations.V2EarnListAaveMarketsRequest](../../models/operations/v2earnlistaavemarketsrequest.md) | :heavy_check_mark: | The request object to use for the request. |
241
244
  | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
242
245
  | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. |
243
246
  | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. |
244
247
 
245
248
  ### Response
246
249
 
247
- **Promise\<[components.AaveUsdcRatesResponse](../../models/components/aaveusdcratesresponse.md)\>**
250
+ **Promise\<[components.ListAaveMarketsResponse](../../models/components/listaavemarketsresponse.md)\>**
248
251
 
249
252
  ### Errors
250
253
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compass-labs/api-sdk",
3
- "version": "2.1.18-rc.0",
3
+ "version": "2.1.18-rc.2",
4
4
  "author": "royalnine",
5
5
  "type": "module",
6
6
  "tshy": {
@@ -27,18 +27,27 @@ import { APICall, APIPromise } from "../types/async.js";
27
27
  import { Result } from "../types/fp.js";
28
28
 
29
29
  /**
30
- * Get token rates on Aave
30
+ * List aave markets
31
31
  *
32
32
  * @remarks
33
- * This endpoint fetches token rates on Aave across Ethereum, Base, and Arbitrum.
33
+ * List all aave markets with their supply and borrow rates.
34
+ *
35
+ * Returns rates organized by token symbol, with chain-specific data for each token.
36
+ * Each token includes rates for all chains where it's available, plus information
37
+ * about which chain offers the highest supply APY.
38
+ *
39
+ * APY values are returned in percentage format (e.g., 4.5 means 4.5%). Tokens with
40
+ * zero APY on both supply and borrow are excluded.
41
+ *
42
+ * Optionally filter by chain.
34
43
  */
35
- export function earnEarnAaveTokenRates(
44
+ export function earnEarnListAaveMarkets(
36
45
  client: CompassApiSDKCore,
37
- request: operations.V2EarnAaveTokenRatesRequest,
46
+ request: operations.V2EarnListAaveMarketsRequest,
38
47
  options?: RequestOptions,
39
48
  ): APIPromise<
40
49
  Result<
41
- components.AaveUsdcRatesResponse,
50
+ components.ListAaveMarketsResponse,
42
51
  | errors.HTTPValidationError
43
52
  | CompassAPISDKError
44
53
  | ResponseValidationError
@@ -59,12 +68,12 @@ export function earnEarnAaveTokenRates(
59
68
 
60
69
  async function $do(
61
70
  client: CompassApiSDKCore,
62
- request: operations.V2EarnAaveTokenRatesRequest,
71
+ request: operations.V2EarnListAaveMarketsRequest,
63
72
  options?: RequestOptions,
64
73
  ): Promise<
65
74
  [
66
75
  Result<
67
- components.AaveUsdcRatesResponse,
76
+ components.ListAaveMarketsResponse,
68
77
  | errors.HTTPValidationError
69
78
  | CompassAPISDKError
70
79
  | ResponseValidationError
@@ -81,7 +90,7 @@ async function $do(
81
90
  const parsed = safeParse(
82
91
  request,
83
92
  (value) =>
84
- operations.V2EarnAaveTokenRatesRequest$outboundSchema.parse(value),
93
+ operations.V2EarnListAaveMarketsRequest$outboundSchema.parse(value),
85
94
  "Input validation failed",
86
95
  );
87
96
  if (!parsed.ok) {
@@ -90,10 +99,10 @@ async function $do(
90
99
  const payload = parsed.value;
91
100
  const body = null;
92
101
 
93
- const path = pathToFunc("/v2/earn/aave_token_rates")();
102
+ const path = pathToFunc("/v2/earn/list_aave_markets")();
94
103
 
95
104
  const query = encodeFormQuery({
96
- "token": payload.token,
105
+ "chain": payload.chain,
97
106
  });
98
107
 
99
108
  const headers = new Headers(compactMap({
@@ -107,7 +116,7 @@ async function $do(
107
116
  const context = {
108
117
  options: client._options,
109
118
  baseURL: options?.serverURL ?? client._baseURL ?? "",
110
- operationID: "v2_earn_aave_token_rates",
119
+ operationID: "v2_earn_list_aave_markets",
111
120
  oAuth2Scopes: null,
112
121
 
113
122
  resolvedSecurity: requestSecurity,
@@ -151,7 +160,7 @@ async function $do(
151
160
  };
152
161
 
153
162
  const [result] = await M.match<
154
- components.AaveUsdcRatesResponse,
163
+ components.ListAaveMarketsResponse,
155
164
  | errors.HTTPValidationError
156
165
  | CompassAPISDKError
157
166
  | ResponseValidationError
@@ -162,7 +171,7 @@ async function $do(
162
171
  | UnexpectedClientError
163
172
  | SDKValidationError
164
173
  >(
165
- M.json(200, components.AaveUsdcRatesResponse$inboundSchema),
174
+ M.json(200, components.ListAaveMarketsResponse$inboundSchema),
166
175
  M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
167
176
  M.fail("4XX"),
168
177
  M.fail("5XX"),
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
+
11
+ /**
12
+ * Rate information for a token on a specific chain.
13
+ */
14
+ export type ChainMarketInfo = {
15
+ /**
16
+ * Token contract address on this chain.
17
+ */
18
+ address: string;
19
+ /**
20
+ * Variable rate APY for deposits, in percentage (e.g., 4.5 means 4.5%).
21
+ */
22
+ supplyApy: string;
23
+ /**
24
+ * Variable rate APY for loans, in percentage (e.g., 6.2 means 6.2%).
25
+ */
26
+ borrowApy: string;
27
+ };
28
+
29
+ /** @internal */
30
+ export const ChainMarketInfo$inboundSchema: z.ZodType<
31
+ ChainMarketInfo,
32
+ z.ZodTypeDef,
33
+ unknown
34
+ > = z.object({
35
+ address: z.string(),
36
+ supply_apy: z.string(),
37
+ borrow_apy: z.string(),
38
+ }).transform((v) => {
39
+ return remap$(v, {
40
+ "supply_apy": "supplyApy",
41
+ "borrow_apy": "borrowApy",
42
+ });
43
+ });
44
+
45
+ export function chainMarketInfoFromJSON(
46
+ jsonString: string,
47
+ ): SafeParseResult<ChainMarketInfo, SDKValidationError> {
48
+ return safeParse(
49
+ jsonString,
50
+ (x) => ChainMarketInfo$inboundSchema.parse(JSON.parse(x)),
51
+ `Failed to parse 'ChainMarketInfo' from JSON`,
52
+ );
53
+ }
@@ -19,7 +19,6 @@ export * from "./aavesupplyrequest.js";
19
19
  export * from "./aavesupportedtokenmetadata.js";
20
20
  export * from "./aavesupportedtokensresponse.js";
21
21
  export * from "./aavetokenpriceresponse.js";
22
- export * from "./aaveusdcratesresponse.js";
23
22
  export * from "./aaveuserpositionpertokenresponse.js";
24
23
  export * from "./aaveuserpositionsummaryresponse.js";
25
24
  export * from "./aavevenue.js";
@@ -50,7 +49,7 @@ export * from "./borrow.js";
50
49
  export * from "./bundlertransactionresponse.js";
51
50
  export * from "./chain.js";
52
51
  export * from "./chaininfo.js";
53
- export * from "./chainratedata.js";
52
+ export * from "./chainmarketinfo.js";
54
53
  export * from "./compassapibackendv1modelsgenericreadresponseportfoliotokenbalance.js";
55
54
  export * from "./compassapibackendv1modelsmorphoreadresponsecheckuserpositionapydata.js";
56
55
  export * from "./compassapibackendv1modelsmorphoreadresponsecheckuserpositionasset.js";
@@ -106,11 +105,12 @@ export * from "./fee.js";
106
105
  export * from "./feeenum.js";
107
106
  export * from "./interestratemode.js";
108
107
  export * from "./liquidationcall.js";
108
+ export * from "./listaavemarketsresponse.js";
109
109
  export * from "./lpbalance.js";
110
110
  export * from "./market.js";
111
111
  export * from "./marketposition.js";
112
112
  export * from "./markettokens.js";
113
- export * from "./maxsupplyapydata.js";
113
+ export * from "./maxsupplyapyinfo.js";
114
114
  export * from "./mintpreparecompletedresponse.js";
115
115
  export * from "./mintpreparependingresponse.js";
116
116
  export * from "./mintpreparereadyresponse.js";
@@ -192,6 +192,7 @@ export * from "./syposition.js";
192
192
  export * from "./tokenbalanceresponse.js";
193
193
  export * from "./tokenconfig.js";
194
194
  export * from "./tokenlistresponse.js";
195
+ export * from "./tokenmarketdata.js";
195
196
  export * from "./tokenpermissions.js";
196
197
  export * from "./tokenpriceresponse.js";
197
198
  export * from "./tokentransferparams.js";
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { safeParse } from "../../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../../types/fp.js";
8
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
9
+ import {
10
+ TokenMarketData,
11
+ TokenMarketData$inboundSchema,
12
+ } from "./tokenmarketdata.js";
13
+
14
+ /**
15
+ * Response containing Aave market rates organized by token symbol.
16
+ */
17
+ export type ListAaveMarketsResponse = {
18
+ /**
19
+ * Market data keyed by token symbol. Each token contains chain-specific data and information about which chain has the highest supply APY.
20
+ */
21
+ markets: { [k: string]: TokenMarketData };
22
+ };
23
+
24
+ /** @internal */
25
+ export const ListAaveMarketsResponse$inboundSchema: z.ZodType<
26
+ ListAaveMarketsResponse,
27
+ z.ZodTypeDef,
28
+ unknown
29
+ > = z.object({
30
+ markets: z.record(TokenMarketData$inboundSchema),
31
+ });
32
+
33
+ export function listAaveMarketsResponseFromJSON(
34
+ jsonString: string,
35
+ ): SafeParseResult<ListAaveMarketsResponse, SDKValidationError> {
36
+ return safeParse(
37
+ jsonString,
38
+ (x) => ListAaveMarketsResponse$inboundSchema.parse(JSON.parse(x)),
39
+ `Failed to parse 'ListAaveMarketsResponse' from JSON`,
40
+ );
41
+ }
@@ -0,0 +1,58 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
+
11
+ /**
12
+ * Information about the chain with the highest supply APY for a token.
13
+ */
14
+ export type MaxSupplyApyInfo = {
15
+ /**
16
+ * Chain name with the highest supply APY for this token.
17
+ */
18
+ chain: string;
19
+ /**
20
+ * Token contract address on the chain with highest supply APY.
21
+ */
22
+ address: string;
23
+ /**
24
+ * The highest supply APY for this token across all chains, in percentage.
25
+ */
26
+ supplyApy: string;
27
+ /**
28
+ * Borrow APY on the chain with the highest supply APY, in percentage.
29
+ */
30
+ borrowApy: string;
31
+ };
32
+
33
+ /** @internal */
34
+ export const MaxSupplyApyInfo$inboundSchema: z.ZodType<
35
+ MaxSupplyApyInfo,
36
+ z.ZodTypeDef,
37
+ unknown
38
+ > = z.object({
39
+ chain: z.string(),
40
+ address: z.string(),
41
+ supply_apy: z.string(),
42
+ borrow_apy: z.string(),
43
+ }).transform((v) => {
44
+ return remap$(v, {
45
+ "supply_apy": "supplyApy",
46
+ "borrow_apy": "borrowApy",
47
+ });
48
+ });
49
+
50
+ export function maxSupplyApyInfoFromJSON(
51
+ jsonString: string,
52
+ ): SafeParseResult<MaxSupplyApyInfo, SDKValidationError> {
53
+ return safeParse(
54
+ jsonString,
55
+ (x) => MaxSupplyApyInfo$inboundSchema.parse(JSON.parse(x)),
56
+ `Failed to parse 'MaxSupplyApyInfo' from JSON`,
57
+ );
58
+ }
@@ -0,0 +1,55 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
+ import {
11
+ ChainMarketInfo,
12
+ ChainMarketInfo$inboundSchema,
13
+ } from "./chainmarketinfo.js";
14
+ import {
15
+ MaxSupplyApyInfo,
16
+ MaxSupplyApyInfo$inboundSchema,
17
+ } from "./maxsupplyapyinfo.js";
18
+
19
+ /**
20
+ * Market data for a single token across all chains.
21
+ */
22
+ export type TokenMarketData = {
23
+ /**
24
+ * Market data per chain. Keys are chain names (ethereum, base, arbitrum).
25
+ */
26
+ chains: { [k: string]: ChainMarketInfo };
27
+ /**
28
+ * Information about the chain with the highest supply APY for a token.
29
+ */
30
+ maxSupplyApy: MaxSupplyApyInfo;
31
+ };
32
+
33
+ /** @internal */
34
+ export const TokenMarketData$inboundSchema: z.ZodType<
35
+ TokenMarketData,
36
+ z.ZodTypeDef,
37
+ unknown
38
+ > = z.object({
39
+ chains: z.record(ChainMarketInfo$inboundSchema),
40
+ max_supply_apy: MaxSupplyApyInfo$inboundSchema,
41
+ }).transform((v) => {
42
+ return remap$(v, {
43
+ "max_supply_apy": "maxSupplyApy",
44
+ });
45
+ });
46
+
47
+ export function tokenMarketDataFromJSON(
48
+ jsonString: string,
49
+ ): SafeParseResult<TokenMarketData, SDKValidationError> {
50
+ return safeParse(
51
+ jsonString,
52
+ (x) => TokenMarketData$inboundSchema.parse(JSON.parse(x)),
53
+ `Failed to parse 'TokenMarketData' from JSON`,
54
+ );
55
+ }
@@ -41,6 +41,6 @@ export * from "./v1uniswapquotesellexactly.js";
41
41
  export * from "./v1vaultsvault.js";
42
42
  export * from "./v1wildcatmarket.js";
43
43
  export * from "./v2cctpmint.js";
44
- export * from "./v2earnaavetokenrates.js";
44
+ export * from "./v2earnlistaavemarkets.js";
45
45
  export * from "./v2earnpositions.js";
46
46
  export * from "./v2earnvaults.js";
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import * as components from "../components/index.js";
7
+
8
+ export type V2EarnListAaveMarketsRequest = {
9
+ /**
10
+ * Optional chain filter. If not provided, returns rates for all chains.
11
+ */
12
+ chain?: components.Chain | null | undefined;
13
+ };
14
+
15
+ /** @internal */
16
+ export type V2EarnListAaveMarketsRequest$Outbound = {
17
+ chain?: string | null | undefined;
18
+ };
19
+
20
+ /** @internal */
21
+ export const V2EarnListAaveMarketsRequest$outboundSchema: z.ZodType<
22
+ V2EarnListAaveMarketsRequest$Outbound,
23
+ z.ZodTypeDef,
24
+ V2EarnListAaveMarketsRequest
25
+ > = z.object({
26
+ chain: z.nullable(components.Chain$outboundSchema).optional(),
27
+ });
28
+
29
+ export function v2EarnListAaveMarketsRequestToJSON(
30
+ v2EarnListAaveMarketsRequest: V2EarnListAaveMarketsRequest,
31
+ ): string {
32
+ return JSON.stringify(
33
+ V2EarnListAaveMarketsRequest$outboundSchema.parse(
34
+ v2EarnListAaveMarketsRequest,
35
+ ),
36
+ );
37
+ }
@@ -5,6 +5,7 @@
5
5
  import * as z from "zod/v3";
6
6
  import { remap as remap$ } from "../../lib/primitives.js";
7
7
  import { ClosedEnum } from "../../types/enums.js";
8
+ import * as components from "../components/index.js";
8
9
 
9
10
  /**
10
11
  * The direction to order the results by.
@@ -18,13 +19,6 @@ export const Direction = {
18
19
  */
19
20
  export type Direction = ClosedEnum<typeof Direction>;
20
21
 
21
- export const V2EarnVaultsChain = {
22
- Arbitrum: "arbitrum",
23
- Base: "base",
24
- Ethereum: "ethereum",
25
- } as const;
26
- export type V2EarnVaultsChain = ClosedEnum<typeof V2EarnVaultsChain>;
27
-
28
22
  export type V2EarnVaultsRequest = {
29
23
  /**
30
24
  * The field to order the results by.
@@ -42,7 +36,10 @@ export type V2EarnVaultsRequest = {
42
36
  * The number of items to return.
43
37
  */
44
38
  limit?: number | undefined;
45
- chain: V2EarnVaultsChain;
39
+ /**
40
+ * Optional chain filter. If not provided, returns vaults for all chains.
41
+ */
42
+ chain?: components.Chain | null | undefined;
46
43
  /**
47
44
  * Filter vaults by underlying asset symbol (e.g., 'USDC', 'WETH').
48
45
  */
@@ -53,18 +50,13 @@ export type V2EarnVaultsRequest = {
53
50
  export const Direction$outboundSchema: z.ZodNativeEnum<typeof Direction> = z
54
51
  .nativeEnum(Direction);
55
52
 
56
- /** @internal */
57
- export const V2EarnVaultsChain$outboundSchema: z.ZodNativeEnum<
58
- typeof V2EarnVaultsChain
59
- > = z.nativeEnum(V2EarnVaultsChain);
60
-
61
53
  /** @internal */
62
54
  export type V2EarnVaultsRequest$Outbound = {
63
55
  order_by: string;
64
56
  direction?: string | undefined;
65
57
  offset?: number | undefined;
66
58
  limit?: number | undefined;
67
- chain: string;
59
+ chain?: string | null | undefined;
68
60
  asset_symbol?: string | null | undefined;
69
61
  };
70
62
 
@@ -78,7 +70,7 @@ export const V2EarnVaultsRequest$outboundSchema: z.ZodType<
78
70
  direction: Direction$outboundSchema.optional(),
79
71
  offset: z.number().int().optional(),
80
72
  limit: z.number().int().optional(),
81
- chain: V2EarnVaultsChain$outboundSchema,
73
+ chain: z.nullable(components.Chain$outboundSchema).optional(),
82
74
  assetSymbol: z.nullable(z.string()).optional(),
83
75
  }).transform((v) => {
84
76
  return remap$(v, {
package/src/sdk/earn.ts CHANGED
@@ -2,9 +2,9 @@
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
3
  */
4
4
 
5
- import { earnEarnAaveTokenRates } from "../funcs/earnEarnAaveTokenRates.js";
6
5
  import { earnEarnBundle } from "../funcs/earnEarnBundle.js";
7
6
  import { earnEarnCreateAccount } from "../funcs/earnEarnCreateAccount.js";
7
+ import { earnEarnListAaveMarkets } from "../funcs/earnEarnListAaveMarkets.js";
8
8
  import { earnEarnManage } from "../funcs/earnEarnManage.js";
9
9
  import { earnEarnPositions } from "../funcs/earnEarnPositions.js";
10
10
  import { earnEarnSwap } from "../funcs/earnEarnSwap.js";
@@ -53,16 +53,25 @@ export class Earn extends ClientSDK {
53
53
  }
54
54
 
55
55
  /**
56
- * Get token rates on Aave
56
+ * List aave markets
57
57
  *
58
58
  * @remarks
59
- * This endpoint fetches token rates on Aave across Ethereum, Base, and Arbitrum.
59
+ * List all aave markets with their supply and borrow rates.
60
+ *
61
+ * Returns rates organized by token symbol, with chain-specific data for each token.
62
+ * Each token includes rates for all chains where it's available, plus information
63
+ * about which chain offers the highest supply APY.
64
+ *
65
+ * APY values are returned in percentage format (e.g., 4.5 means 4.5%). Tokens with
66
+ * zero APY on both supply and borrow are excluded.
67
+ *
68
+ * Optionally filter by chain.
60
69
  */
61
- async earnAaveTokenRates(
62
- request: operations.V2EarnAaveTokenRatesRequest,
70
+ async earnListAaveMarkets(
71
+ request: operations.V2EarnListAaveMarketsRequest,
63
72
  options?: RequestOptions,
64
- ): Promise<components.AaveUsdcRatesResponse> {
65
- return unwrapAsync(earnEarnAaveTokenRates(
73
+ ): Promise<components.ListAaveMarketsResponse> {
74
+ return unwrapAsync(earnEarnListAaveMarkets(
66
75
  this,
67
76
  request,
68
77
  options,
@@ -1,19 +0,0 @@
1
- import { CompassApiSDKCore } from "../core.js";
2
- import { RequestOptions } from "../lib/sdks.js";
3
- import * as components from "../models/components/index.js";
4
- import { CompassAPISDKError } from "../models/errors/compassapisdkerror.js";
5
- import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
6
- import * as errors from "../models/errors/index.js";
7
- import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
8
- import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
9
- import * as operations from "../models/operations/index.js";
10
- import { APIPromise } from "../types/async.js";
11
- import { Result } from "../types/fp.js";
12
- /**
13
- * Get token rates on Aave
14
- *
15
- * @remarks
16
- * This endpoint fetches token rates on Aave across Ethereum, Base, and Arbitrum.
17
- */
18
- export declare function earnEarnAaveTokenRates(client: CompassApiSDKCore, request: operations.V2EarnAaveTokenRatesRequest, options?: RequestOptions): APIPromise<Result<components.AaveUsdcRatesResponse, errors.HTTPValidationError | CompassAPISDKError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
19
- //# sourceMappingURL=earnEarnAaveTokenRates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"earnEarnAaveTokenRates.d.ts","sourceRoot":"","sources":["../../../src/funcs/earnEarnAaveTokenRates.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAK/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAW,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,UAAU,CAAC,2BAA2B,EAC/C,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CACX,MAAM,CACJ,UAAU,CAAC,qBAAqB,EAC9B,MAAM,CAAC,mBAAmB,GAC1B,kBAAkB,GAClB,uBAAuB,GACvB,eAAe,GACf,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,kBAAkB,CACrB,CACF,CAMA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"earnEarnAaveTokenRates.js","sourceRoot":"","sources":["../../../src/funcs/earnEarnAaveTokenRates.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCH,wDAuBC;AApDD,sDAAsD;AACtD,sDAAwC;AACxC,wDAAkD;AAClD,kDAA8C;AAE9C,oDAA4E;AAC5E,0CAA2C;AAC3C,0EAA4D;AAS5D,kEAAoD;AAGpD,0EAA4D;AAC5D,gDAAwD;AAGxD;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,MAAyB,EACzB,OAA+C,EAC/C,OAAwB;IAexB,OAAO,IAAI,qBAAU,CAAC,GAAG,CACvB,MAAM,EACN,OAAO,EACP,OAAO,CACR,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,GAAG,CAChB,MAAyB,EACzB,OAA+C,EAC/C,OAAwB;IAkBxB,MAAM,MAAM,GAAG,IAAA,sBAAS,EACtB,OAAO,EACP,CAAC,KAAK,EAAE,EAAE,CACR,UAAU,CAAC,0CAA0C,CAAC,KAAK,CAAC,KAAK,CAAC,EACpE,yBAAyB,CAC1B,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC;IAElB,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,2BAA2B,CAAC,EAAE,CAAC;IAEvD,MAAM,KAAK,GAAG,IAAA,8BAAe,EAAC;QAC5B,OAAO,EAAE,OAAO,CAAC,KAAK;KACvB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAA,0BAAU,EAAC;QACrC,MAAM,EAAE,kBAAkB;KAC3B,CAAC,CAAC,CAAC;IAEJ,MAAM,SAAS,GAAG,MAAM,IAAA,6BAAe,EAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACzE,MAAM,eAAe,GAAG,IAAA,mCAAqB,EAAC,aAAa,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG;QACd,OAAO,EAAE,MAAM,CAAC,QAAQ;QACxB,OAAO,EAAE,OAAO,EAAE,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE;QACpD,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE,IAAI;QAElB,gBAAgB,EAAE,eAAe;QAEjC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;QAC1C,WAAW,EAAE,OAAO,EAAE,OAAO;eACxB,MAAM,CAAC,QAAQ,CAAC,WAAW;eAC3B,EAAE,QAAQ,EAAE,MAAM,EAAE;QACzB,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;KACvE,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE;QAChD,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,OAAO,EAAE,SAAS;QAC3B,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;QACpC,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;KACjE,EAAE,OAAO,CAAC,CAAC;IACZ,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC;IAE7B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;QACrC,OAAO;QACP,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QACjC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;IAEhC,MAAM,cAAc,GAAG;QACrB,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;KAC/C,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,CAY5B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,mCAAmC,CAAC,EAC3D,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,iCAAiC,CAAC,EACxD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EACb,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CACd,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClE,CAAC"}