@compass-labs/api-sdk 2.2.75 → 2.2.76-rc.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.
Files changed (132) hide show
  1. package/README.md +5 -3
  2. package/codeSamples_typescript.yaml +6 -0
  3. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsRedemptions.d.ts +30 -0
  4. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsRedemptions.d.ts.map +1 -0
  5. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsRedemptions.js +136 -0
  6. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsRedemptions.js.map +1 -0
  7. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.d.ts +8 -6
  8. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.d.ts.map +1 -1
  9. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.js +3 -3
  10. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.js.map +1 -1
  11. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.d.ts +4 -2
  12. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.d.ts.map +1 -1
  13. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.js.map +1 -1
  14. package/dist/commonjs/models/components/index.d.ts +2 -0
  15. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  16. package/dist/commonjs/models/components/index.js +2 -0
  17. package/dist/commonjs/models/components/index.js.map +1 -1
  18. package/dist/commonjs/models/components/marketdetail.d.ts +8 -6
  19. package/dist/commonjs/models/components/marketdetail.d.ts.map +1 -1
  20. package/dist/commonjs/models/components/marketdetail.js +3 -3
  21. package/dist/commonjs/models/components/marketdetail.js.map +1 -1
  22. package/dist/commonjs/models/components/redemption.d.ts +52 -0
  23. package/dist/commonjs/models/components/redemption.d.ts.map +1 -0
  24. package/dist/commonjs/models/components/redemption.js +73 -0
  25. package/dist/commonjs/models/components/redemption.js.map +1 -0
  26. package/dist/commonjs/models/components/redemptionsresponse.d.ts +17 -0
  27. package/dist/commonjs/models/components/redemptionsresponse.d.ts.map +1 -0
  28. package/dist/commonjs/models/components/redemptionsresponse.js +51 -0
  29. package/dist/commonjs/models/components/redemptionsresponse.js.map +1 -0
  30. package/dist/commonjs/models/components/tokenizedassetclass.d.ts +9 -4
  31. package/dist/commonjs/models/components/tokenizedassetclass.d.ts.map +1 -1
  32. package/dist/commonjs/models/components/tokenizedassetclass.js +5 -2
  33. package/dist/commonjs/models/components/tokenizedassetclass.js.map +1 -1
  34. package/dist/commonjs/models/components/tokenizedassetprovider.d.ts +1 -0
  35. package/dist/commonjs/models/components/tokenizedassetprovider.d.ts.map +1 -1
  36. package/dist/commonjs/models/components/tokenizedassetprovider.js +1 -0
  37. package/dist/commonjs/models/components/tokenizedassetprovider.js.map +1 -1
  38. package/dist/commonjs/models/components/tokenizedassetstraderesponse.d.ts +22 -0
  39. package/dist/commonjs/models/components/tokenizedassetstraderesponse.d.ts.map +1 -1
  40. package/dist/commonjs/models/components/tokenizedassetstraderesponse.js +14 -1
  41. package/dist/commonjs/models/components/tokenizedassetstraderesponse.js.map +1 -1
  42. package/dist/commonjs/models/operations/index.d.ts +1 -0
  43. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  44. package/dist/commonjs/models/operations/index.js +1 -0
  45. package/dist/commonjs/models/operations/index.js.map +1 -1
  46. package/dist/commonjs/models/operations/v2tokenizedassetsredemptions.d.ts +43 -0
  47. package/dist/commonjs/models/operations/v2tokenizedassetsredemptions.d.ts.map +1 -0
  48. package/dist/commonjs/models/operations/v2tokenizedassetsredemptions.js +64 -0
  49. package/dist/commonjs/models/operations/v2tokenizedassetsredemptions.js.map +1 -0
  50. package/dist/commonjs/sdk/tokenizedassets.d.ts +18 -0
  51. package/dist/commonjs/sdk/tokenizedassets.d.ts.map +1 -1
  52. package/dist/commonjs/sdk/tokenizedassets.js +21 -0
  53. package/dist/commonjs/sdk/tokenizedassets.js.map +1 -1
  54. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsRedemptions.d.ts +30 -0
  55. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsRedemptions.d.ts.map +1 -0
  56. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsRedemptions.js +100 -0
  57. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsRedemptions.js.map +1 -0
  58. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.d.ts +8 -6
  59. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.d.ts.map +1 -1
  60. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.js +3 -3
  61. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.js.map +1 -1
  62. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.d.ts +4 -2
  63. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.d.ts.map +1 -1
  64. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.js.map +1 -1
  65. package/dist/esm/models/components/index.d.ts +2 -0
  66. package/dist/esm/models/components/index.d.ts.map +1 -1
  67. package/dist/esm/models/components/index.js +2 -0
  68. package/dist/esm/models/components/index.js.map +1 -1
  69. package/dist/esm/models/components/marketdetail.d.ts +8 -6
  70. package/dist/esm/models/components/marketdetail.d.ts.map +1 -1
  71. package/dist/esm/models/components/marketdetail.js +3 -3
  72. package/dist/esm/models/components/marketdetail.js.map +1 -1
  73. package/dist/esm/models/components/redemption.d.ts +52 -0
  74. package/dist/esm/models/components/redemption.d.ts.map +1 -0
  75. package/dist/esm/models/components/redemption.js +36 -0
  76. package/dist/esm/models/components/redemption.js.map +1 -0
  77. package/dist/esm/models/components/redemptionsresponse.d.ts +17 -0
  78. package/dist/esm/models/components/redemptionsresponse.d.ts.map +1 -0
  79. package/dist/esm/models/components/redemptionsresponse.js +14 -0
  80. package/dist/esm/models/components/redemptionsresponse.js.map +1 -0
  81. package/dist/esm/models/components/tokenizedassetclass.d.ts +9 -4
  82. package/dist/esm/models/components/tokenizedassetclass.d.ts.map +1 -1
  83. package/dist/esm/models/components/tokenizedassetclass.js +5 -2
  84. package/dist/esm/models/components/tokenizedassetclass.js.map +1 -1
  85. package/dist/esm/models/components/tokenizedassetprovider.d.ts +1 -0
  86. package/dist/esm/models/components/tokenizedassetprovider.d.ts.map +1 -1
  87. package/dist/esm/models/components/tokenizedassetprovider.js +1 -0
  88. package/dist/esm/models/components/tokenizedassetprovider.js.map +1 -1
  89. package/dist/esm/models/components/tokenizedassetstraderesponse.d.ts +22 -0
  90. package/dist/esm/models/components/tokenizedassetstraderesponse.d.ts.map +1 -1
  91. package/dist/esm/models/components/tokenizedassetstraderesponse.js +13 -0
  92. package/dist/esm/models/components/tokenizedassetstraderesponse.js.map +1 -1
  93. package/dist/esm/models/operations/index.d.ts +1 -0
  94. package/dist/esm/models/operations/index.d.ts.map +1 -1
  95. package/dist/esm/models/operations/index.js +1 -0
  96. package/dist/esm/models/operations/index.js.map +1 -1
  97. package/dist/esm/models/operations/v2tokenizedassetsredemptions.d.ts +43 -0
  98. package/dist/esm/models/operations/v2tokenizedassetsredemptions.d.ts.map +1 -0
  99. package/dist/esm/models/operations/v2tokenizedassetsredemptions.js +27 -0
  100. package/dist/esm/models/operations/v2tokenizedassetsredemptions.js.map +1 -0
  101. package/dist/esm/sdk/tokenizedassets.d.ts +18 -0
  102. package/dist/esm/sdk/tokenizedassets.d.ts.map +1 -1
  103. package/dist/esm/sdk/tokenizedassets.js +21 -0
  104. package/dist/esm/sdk/tokenizedassets.js.map +1 -1
  105. package/docs/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.md +21 -18
  106. package/docs/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.md +15 -15
  107. package/docs/models/components/marketdetail.md +32 -29
  108. package/docs/models/components/redemption.md +27 -0
  109. package/docs/models/components/redemptionsresponse.md +19 -0
  110. package/docs/models/components/redemptionstatus.md +17 -0
  111. package/docs/models/components/settlement.md +17 -0
  112. package/docs/models/components/tokenizedassetclass.md +6 -4
  113. package/docs/models/components/tokenizedassetprovider.md +2 -2
  114. package/docs/models/components/tokenizedassetstraderesponse.md +9 -6
  115. package/docs/models/operations/v2tokenizedassetsredemptionschain.md +17 -0
  116. package/docs/models/operations/v2tokenizedassetsredemptionsrequest.md +21 -0
  117. package/docs/sdks/tokenizedassets/README.md +90 -0
  118. package/openapi_prepped_for_speakeasy.json +201 -19
  119. package/package.json +1 -1
  120. package/src/funcs/tokenizedAssetsTokenizedAssetsRedemptions.ts +192 -0
  121. package/src/models/components/compassapibackendv2modelstokenizedassetsmarketmarket.ts +11 -9
  122. package/src/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.ts +4 -2
  123. package/src/models/components/index.ts +2 -0
  124. package/src/models/components/marketdetail.ts +11 -9
  125. package/src/models/components/redemption.ts +89 -0
  126. package/src/models/components/redemptionsresponse.ts +38 -0
  127. package/src/models/components/tokenizedassetclass.ts +9 -4
  128. package/src/models/components/tokenizedassetprovider.ts +1 -0
  129. package/src/models/components/tokenizedassetstraderesponse.ts +28 -0
  130. package/src/models/operations/index.ts +1 -0
  131. package/src/models/operations/v2tokenizedassetsredemptions.ts +72 -0
  132. package/src/sdk/tokenizedassets.ts +29 -0
@@ -0,0 +1,192 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CompassApiSDKCore } from "../core.js";
6
+ import { encodeFormQuery } from "../lib/encodings.js";
7
+ import { matchStatusCode } from "../lib/http.js";
8
+ import * as M from "../lib/matchers.js";
9
+ import { compactMap } from "../lib/primitives.js";
10
+ import { safeParse } from "../lib/schemas.js";
11
+ import { RequestOptions } from "../lib/sdks.js";
12
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
13
+ import { pathToFunc } from "../lib/url.js";
14
+ import * as components from "../models/components/index.js";
15
+ import { CompassAPISDKError } from "../models/errors/compassapisdkerror.js";
16
+ import {
17
+ ConnectionError,
18
+ InvalidRequestError,
19
+ RequestAbortedError,
20
+ RequestTimeoutError,
21
+ UnexpectedClientError,
22
+ } from "../models/errors/httpclienterrors.js";
23
+ import * as errors from "../models/errors/index.js";
24
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
25
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
26
+ import * as operations from "../models/operations/index.js";
27
+ import { APICall, APIPromise } from "../types/async.js";
28
+ import { Result } from "../types/fp.js";
29
+
30
+ /**
31
+ * Get IXS vault redemption requests for an owner
32
+ *
33
+ * @remarks
34
+ * Get an owner's IXS vault redemption requests (async redemption status).
35
+ *
36
+ * IXS managed-vault **sells** are asynchronous: `/transact/sell` returns a
37
+ * `requestRedeem` transaction, and the vault operator settles it off-chain
38
+ * later. This endpoint reconstructs the owner's requests directly from the
39
+ * vault on every call (Compass persists no async state) — each entry carries
40
+ * its `status` (`pending` | `finalized` | `rejected`), the `shares` requested,
41
+ * and, while `pending`, the `expected_net_assets` it would settle for at the
42
+ * current NAV (a preview, not a guarantee).
43
+ *
44
+ * IXS vaults live on BNB Smart Chain — pass `chain=bsc` (the default) and the
45
+ * `vault` handle (default `ixv1`).
46
+ */
47
+ export function tokenizedAssetsTokenizedAssetsRedemptions(
48
+ client: CompassApiSDKCore,
49
+ request: operations.V2TokenizedAssetsRedemptionsRequest,
50
+ options?: RequestOptions,
51
+ ): APIPromise<
52
+ Result<
53
+ components.RedemptionsResponse,
54
+ | errors.TokenizedAssetsErrorResponse
55
+ | CompassAPISDKError
56
+ | ResponseValidationError
57
+ | ConnectionError
58
+ | RequestAbortedError
59
+ | RequestTimeoutError
60
+ | InvalidRequestError
61
+ | UnexpectedClientError
62
+ | SDKValidationError
63
+ >
64
+ > {
65
+ return new APIPromise($do(
66
+ client,
67
+ request,
68
+ options,
69
+ ));
70
+ }
71
+
72
+ async function $do(
73
+ client: CompassApiSDKCore,
74
+ request: operations.V2TokenizedAssetsRedemptionsRequest,
75
+ options?: RequestOptions,
76
+ ): Promise<
77
+ [
78
+ Result<
79
+ components.RedemptionsResponse,
80
+ | errors.TokenizedAssetsErrorResponse
81
+ | CompassAPISDKError
82
+ | ResponseValidationError
83
+ | ConnectionError
84
+ | RequestAbortedError
85
+ | RequestTimeoutError
86
+ | InvalidRequestError
87
+ | UnexpectedClientError
88
+ | SDKValidationError
89
+ >,
90
+ APICall,
91
+ ]
92
+ > {
93
+ const parsed = safeParse(
94
+ request,
95
+ (value) =>
96
+ operations.V2TokenizedAssetsRedemptionsRequest$outboundSchema.parse(
97
+ value,
98
+ ),
99
+ "Input validation failed",
100
+ );
101
+ if (!parsed.ok) {
102
+ return [parsed, { status: "invalid" }];
103
+ }
104
+ const payload = parsed.value;
105
+ const body = null;
106
+
107
+ const path = pathToFunc("/v2/tokenized_assets/redemptions")();
108
+
109
+ const query = encodeFormQuery({
110
+ "chain": payload.chain,
111
+ "owner": payload.owner,
112
+ "vault": payload.vault,
113
+ });
114
+
115
+ const headers = new Headers(compactMap({
116
+ Accept: "application/json",
117
+ }));
118
+
119
+ const secConfig = await extractSecurity(client._options.apiKeyAuth);
120
+ const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
121
+ const requestSecurity = resolveGlobalSecurity(securityInput);
122
+
123
+ const context = {
124
+ options: client._options,
125
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
126
+ operationID: "v2_tokenized_assets_redemptions",
127
+ oAuth2Scopes: null,
128
+
129
+ resolvedSecurity: requestSecurity,
130
+
131
+ securitySource: client._options.apiKeyAuth,
132
+ retryConfig: options?.retries
133
+ || client._options.retryConfig
134
+ || { strategy: "none" },
135
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
136
+ };
137
+
138
+ const requestRes = client._createRequest(context, {
139
+ security: requestSecurity,
140
+ method: "GET",
141
+ baseURL: options?.serverURL,
142
+ path: path,
143
+ headers: headers,
144
+ query: query,
145
+ body: body,
146
+ userAgent: client._options.userAgent,
147
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
148
+ }, options);
149
+ if (!requestRes.ok) {
150
+ return [requestRes, { status: "invalid" }];
151
+ }
152
+ const req = requestRes.value;
153
+
154
+ const doResult = await client._do(req, {
155
+ context,
156
+ isErrorStatusCode: (statusCode: number) =>
157
+ matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]),
158
+ retryConfig: context.retryConfig,
159
+ retryCodes: context.retryCodes,
160
+ });
161
+ if (!doResult.ok) {
162
+ return [doResult, { status: "request-error", request: req }];
163
+ }
164
+ const response = doResult.value;
165
+
166
+ const responseFields = {
167
+ HttpMeta: { Response: response, Request: req },
168
+ };
169
+
170
+ const [result] = await M.match<
171
+ components.RedemptionsResponse,
172
+ | errors.TokenizedAssetsErrorResponse
173
+ | CompassAPISDKError
174
+ | ResponseValidationError
175
+ | ConnectionError
176
+ | RequestAbortedError
177
+ | RequestTimeoutError
178
+ | InvalidRequestError
179
+ | UnexpectedClientError
180
+ | SDKValidationError
181
+ >(
182
+ M.json(200, components.RedemptionsResponse$inboundSchema),
183
+ M.jsonErr(422, errors.TokenizedAssetsErrorResponse$inboundSchema),
184
+ M.fail("4XX"),
185
+ M.fail("5XX"),
186
+ )(response, req, { extraFields: responseFields });
187
+ if (!result.ok) {
188
+ return [result, { status: "complete", request: req, response }];
189
+ }
190
+
191
+ return [result, { status: "complete", request: req, response }];
192
+ }
@@ -34,7 +34,7 @@ export type CompassApiBackendV2ModelsTokenizedAssetsMarketMarket = {
34
34
  */
35
35
  name: string;
36
36
  /**
37
- * Ethereum mainnet ERC-20 address for this token.
37
+ * On-chain ERC-20 address for this token, on the network given by `chain`.
38
38
  */
39
39
  contractAddress: string;
40
40
  /**
@@ -64,21 +64,23 @@ export type CompassApiBackendV2ModelsTokenizedAssetsMarketMarket = {
64
64
  /**
65
65
  * Issuer/provider of a tokenized asset.
66
66
  */
67
- provider?: TokenizedAssetProvider | undefined;
67
+ provider: TokenizedAssetProvider;
68
68
  /**
69
69
  * Asset class of a tokenized asset.
70
70
  *
71
71
  * @remarks
72
72
  *
73
73
  * `EQUITY` trades via the order endpoints (build/submit/cancel); the RWA
74
- * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) trade via the
75
- * swap-based `transact/buy` and `transact/sell` endpoints.
74
+ * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) and `MANAGED_VAULT`
75
+ * trade via the swap-based `transact/buy` and `transact/sell` endpoints.
76
+ * `MANAGED_VAULT` (IXS ERC-4626 vaults) is special in that a sell is an
77
+ * *asynchronous* redemption request settled off-chain by the vault operator.
76
78
  */
77
- assetClass?: TokenizedAssetClass | undefined;
79
+ assetClass: TokenizedAssetClass;
78
80
  /**
79
81
  * The chain to use.
80
82
  */
81
- chain?: Chain | undefined;
83
+ chain: Chain;
82
84
  /**
83
85
  * Trailing 7-day annualized NAV growth (decimal fraction string, e.g. '0.0512' = 5.12%). RWA yield assets only; null until enough NAV history exists.
84
86
  */
@@ -110,9 +112,9 @@ export const CompassApiBackendV2ModelsTokenizedAssetsMarketMarket$inboundSchema:
110
112
  change_24h_pct: z.nullable(z.string()).optional(),
111
113
  sectors: z.array(z.string()).optional(),
112
114
  region_exposure: z.array(z.string()).optional(),
113
- provider: TokenizedAssetProvider$inboundSchema.optional(),
114
- asset_class: TokenizedAssetClass$inboundSchema.optional(),
115
- chain: Chain$inboundSchema.optional(),
115
+ provider: TokenizedAssetProvider$inboundSchema,
116
+ asset_class: TokenizedAssetClass$inboundSchema,
117
+ chain: Chain$inboundSchema,
116
118
  apy_7d: z.nullable(z.string()).optional(),
117
119
  apy_30d: z.nullable(z.string()).optional(),
118
120
  tvl_usd: z.nullable(z.string()).optional(),
@@ -72,8 +72,10 @@ export type CompassApiBackendV2ModelsTokenizedAssetsReadResponsePositionsPositio
72
72
  * @remarks
73
73
  *
74
74
  * `EQUITY` trades via the order endpoints (build/submit/cancel); the RWA
75
- * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) trade via the
76
- * swap-based `transact/buy` and `transact/sell` endpoints.
75
+ * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) and `MANAGED_VAULT`
76
+ * trade via the swap-based `transact/buy` and `transact/sell` endpoints.
77
+ * `MANAGED_VAULT` (IXS ERC-4626 vaults) is special in that a sell is an
78
+ * *asynchronous* redemption request settled off-chain by the vault operator.
77
79
  */
78
80
  assetClass?: TokenizedAssetClass | undefined;
79
81
  /**
@@ -262,6 +262,8 @@ export * from "./pricepoint.js";
262
262
  export * from "./protocol.js";
263
263
  export * from "./quote.js";
264
264
  export * from "./quotefee.js";
265
+ export * from "./redemption.js";
266
+ export * from "./redemptionsresponse.js";
265
267
  export * from "./repay.js";
266
268
  export * from "./reserve.js";
267
269
  export * from "./reserveinfo.js";
@@ -36,7 +36,7 @@ export type MarketDetail = {
36
36
  */
37
37
  name: string;
38
38
  /**
39
- * Ethereum mainnet ERC-20 address for this token.
39
+ * On-chain ERC-20 address for this token, on the network given by `chain`.
40
40
  */
41
41
  contractAddress: string;
42
42
  /**
@@ -66,21 +66,23 @@ export type MarketDetail = {
66
66
  /**
67
67
  * Issuer/provider of a tokenized asset.
68
68
  */
69
- provider?: TokenizedAssetProvider | undefined;
69
+ provider: TokenizedAssetProvider;
70
70
  /**
71
71
  * Asset class of a tokenized asset.
72
72
  *
73
73
  * @remarks
74
74
  *
75
75
  * `EQUITY` trades via the order endpoints (build/submit/cancel); the RWA
76
- * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) trade via the
77
- * swap-based `transact/buy` and `transact/sell` endpoints.
76
+ * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) and `MANAGED_VAULT`
77
+ * trade via the swap-based `transact/buy` and `transact/sell` endpoints.
78
+ * `MANAGED_VAULT` (IXS ERC-4626 vaults) is special in that a sell is an
79
+ * *asynchronous* redemption request settled off-chain by the vault operator.
78
80
  */
79
- assetClass?: TokenizedAssetClass | undefined;
81
+ assetClass: TokenizedAssetClass;
80
82
  /**
81
83
  * The chain to use.
82
84
  */
83
- chain?: Chain | undefined;
85
+ chain: Chain;
84
86
  /**
85
87
  * Trailing 7-day annualized NAV growth (decimal fraction string, e.g. '0.0512' = 5.12%). RWA yield assets only; null until enough NAV history exists.
86
88
  */
@@ -155,9 +157,9 @@ export const MarketDetail$inboundSchema: z.ZodType<
155
157
  change_24h_pct: z.nullable(z.string()).optional(),
156
158
  sectors: z.array(z.string()).optional(),
157
159
  region_exposure: z.array(z.string()).optional(),
158
- provider: TokenizedAssetProvider$inboundSchema.optional(),
159
- asset_class: TokenizedAssetClass$inboundSchema.optional(),
160
- chain: Chain$inboundSchema.optional(),
160
+ provider: TokenizedAssetProvider$inboundSchema,
161
+ asset_class: TokenizedAssetClass$inboundSchema,
162
+ chain: Chain$inboundSchema,
161
163
  apy_7d: z.nullable(z.string()).optional(),
162
164
  apy_30d: z.nullable(z.string()).optional(),
163
165
  tvl_usd: z.nullable(z.string()).optional(),
@@ -0,0 +1,89 @@
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 { ClosedEnum } from "../../types/enums.js";
9
+ import { Result as SafeParseResult } from "../../types/fp.js";
10
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
11
+
12
+ /**
13
+ * Lifecycle state: `pending` (awaiting operator settlement), `finalized` (settled — assets paid to the product account), `rejected` (operator declined; shares returned to the account), or `unknown` (an unrecognized on-chain status code — should not occur for the current contract, surfaced defensively instead of erroring).
14
+ */
15
+ export const RedemptionStatus = {
16
+ Pending: "pending",
17
+ Finalized: "finalized",
18
+ Rejected: "rejected",
19
+ Unknown: "unknown",
20
+ } as const;
21
+ /**
22
+ * Lifecycle state: `pending` (awaiting operator settlement), `finalized` (settled — assets paid to the product account), `rejected` (operator declined; shares returned to the account), or `unknown` (an unrecognized on-chain status code — should not occur for the current contract, surfaced defensively instead of erroring).
23
+ */
24
+ export type RedemptionStatus = ClosedEnum<typeof RedemptionStatus>;
25
+
26
+ /**
27
+ * One IXS vault redemption request, reconstructed on-chain.
28
+ */
29
+ export type Redemption = {
30
+ /**
31
+ * On-chain redemption request id.
32
+ */
33
+ id: number;
34
+ /**
35
+ * Lifecycle state: `pending` (awaiting operator settlement), `finalized` (settled — assets paid to the product account), `rejected` (operator declined; shares returned to the account), or `unknown` (an unrecognized on-chain status code — should not occur for the current contract, surfaced defensively instead of erroring).
36
+ */
37
+ status: RedemptionStatus;
38
+ /**
39
+ * Vault shares in the request (human units).
40
+ */
41
+ shares: string;
42
+ /**
43
+ * For a `pending` request, the estimated net assets (after the exit fee) it would settle for at the current NAV — a preview, not a guarantee (settlement depends on the operator and the vault's available assets). Null once finalized or rejected.
44
+ */
45
+ expectedNetAssets?: string | null | undefined;
46
+ /**
47
+ * Unix timestamp when the redemption was requested.
48
+ */
49
+ requestedAt: number;
50
+ /**
51
+ * Unix timestamp when finalized/rejected; null while pending.
52
+ */
53
+ processedAt?: number | null | undefined;
54
+ };
55
+
56
+ /** @internal */
57
+ export const RedemptionStatus$inboundSchema: z.ZodNativeEnum<
58
+ typeof RedemptionStatus
59
+ > = z.nativeEnum(RedemptionStatus);
60
+
61
+ /** @internal */
62
+ export const Redemption$inboundSchema: z.ZodType<
63
+ Redemption,
64
+ z.ZodTypeDef,
65
+ unknown
66
+ > = z.object({
67
+ id: z.number().int(),
68
+ status: RedemptionStatus$inboundSchema,
69
+ shares: z.string(),
70
+ expected_net_assets: z.nullable(z.string()).optional(),
71
+ requested_at: z.number().int(),
72
+ processed_at: z.nullable(z.number().int()).optional(),
73
+ }).transform((v) => {
74
+ return remap$(v, {
75
+ "expected_net_assets": "expectedNetAssets",
76
+ "requested_at": "requestedAt",
77
+ "processed_at": "processedAt",
78
+ });
79
+ });
80
+
81
+ export function redemptionFromJSON(
82
+ jsonString: string,
83
+ ): SafeParseResult<Redemption, SDKValidationError> {
84
+ return safeParse(
85
+ jsonString,
86
+ (x) => Redemption$inboundSchema.parse(JSON.parse(x)),
87
+ `Failed to parse 'Redemption' from JSON`,
88
+ );
89
+ }
@@ -0,0 +1,38 @@
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 { Redemption, Redemption$inboundSchema } from "./redemption.js";
10
+
11
+ /**
12
+ * An owner's IXS redemption requests for one vault.
13
+ */
14
+ export type RedemptionsResponse = {
15
+ /**
16
+ * The owner's non-empty redemption requests for the vault, in ascending id order. Empty when the owner has never requested one.
17
+ */
18
+ redemptions?: Array<Redemption> | undefined;
19
+ };
20
+
21
+ /** @internal */
22
+ export const RedemptionsResponse$inboundSchema: z.ZodType<
23
+ RedemptionsResponse,
24
+ z.ZodTypeDef,
25
+ unknown
26
+ > = z.object({
27
+ redemptions: z.array(Redemption$inboundSchema).optional(),
28
+ });
29
+
30
+ export function redemptionsResponseFromJSON(
31
+ jsonString: string,
32
+ ): SafeParseResult<RedemptionsResponse, SDKValidationError> {
33
+ return safeParse(
34
+ jsonString,
35
+ (x) => RedemptionsResponse$inboundSchema.parse(JSON.parse(x)),
36
+ `Failed to parse 'RedemptionsResponse' from JSON`,
37
+ );
38
+ }
@@ -11,14 +11,17 @@ import { ClosedEnum } from "../../types/enums.js";
11
11
  * @remarks
12
12
  *
13
13
  * `EQUITY` trades via the order endpoints (build/submit/cancel); the RWA
14
- * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) trade via the
15
- * swap-based `transact/buy` and `transact/sell` endpoints.
14
+ * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) and `MANAGED_VAULT`
15
+ * trade via the swap-based `transact/buy` and `transact/sell` endpoints.
16
+ * `MANAGED_VAULT` (IXS ERC-4626 vaults) is special in that a sell is an
17
+ * *asynchronous* redemption request settled off-chain by the vault operator.
16
18
  */
17
19
  export const TokenizedAssetClass = {
18
20
  Equity: "EQUITY",
19
21
  TBills: "T_BILLS",
20
22
  BasisTrade: "BASIS_TRADE",
21
23
  BtcYield: "BTC_YIELD",
24
+ ManagedVault: "MANAGED_VAULT",
22
25
  } as const;
23
26
  /**
24
27
  * Asset class of a tokenized asset.
@@ -26,8 +29,10 @@ export const TokenizedAssetClass = {
26
29
  * @remarks
27
30
  *
28
31
  * `EQUITY` trades via the order endpoints (build/submit/cancel); the RWA
29
- * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) trade via the
30
- * swap-based `transact/buy` and `transact/sell` endpoints.
32
+ * yield classes (`T_BILLS`, `BASIS_TRADE`, `BTC_YIELD`) and `MANAGED_VAULT`
33
+ * trade via the swap-based `transact/buy` and `transact/sell` endpoints.
34
+ * `MANAGED_VAULT` (IXS ERC-4626 vaults) is special in that a sell is an
35
+ * *asynchronous* redemption request settled off-chain by the vault operator.
31
36
  */
32
37
  export type TokenizedAssetClass = ClosedEnum<typeof TokenizedAssetClass>;
33
38
 
@@ -11,6 +11,7 @@ import { ClosedEnum } from "../../types/enums.js";
11
11
  export const TokenizedAssetProvider = {
12
12
  Ondo: "ondo",
13
13
  Midas: "midas",
14
+ Ixs: "ixs",
14
15
  } as const;
15
16
  /**
16
17
  * Issuer/provider of a tokenized asset.
@@ -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 { safeParse } from "../../lib/schemas.js";
8
+ import { ClosedEnum } from "../../types/enums.js";
8
9
  import { Result as SafeParseResult } from "../../types/fp.js";
9
10
  import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
11
  import {
@@ -16,6 +17,18 @@ import {
16
17
  UnsignedTransaction$inboundSchema,
17
18
  } from "./unsignedtransaction.js";
18
19
 
20
+ /**
21
+ * How the trade settles. `instant`: the signed transaction completes the trade (Midas/Ondo swaps and IXS deposits). `async`: the transaction only *requests* an IXS redemption, which the vault operator settles off-chain later — poll `poll_endpoint` for status.
22
+ */
23
+ export const Settlement = {
24
+ Instant: "instant",
25
+ Async: "async",
26
+ } as const;
27
+ /**
28
+ * How the trade settles. `instant`: the signed transaction completes the trade (Midas/Ondo swaps and IXS deposits). `async`: the transaction only *requests* an IXS redemption, which the vault operator settles off-chain later — poll `poll_endpoint` for status.
29
+ */
30
+ export type Settlement = ClosedEnum<typeof Settlement>;
31
+
19
32
  /**
20
33
  * Unsigned trade execution for the owner to sign.
21
34
  *
@@ -41,8 +54,20 @@ export type TokenizedAssetsTradeResponse = {
41
54
  * Fee charged on the sell, in payout-token (USDC) units. Null when no fee was applied.
42
55
  */
43
56
  feeAmount?: string | null | undefined;
57
+ /**
58
+ * How the trade settles. `instant`: the signed transaction completes the trade (Midas/Ondo swaps and IXS deposits). `async`: the transaction only *requests* an IXS redemption, which the vault operator settles off-chain later — poll `poll_endpoint` for status.
59
+ */
60
+ settlement?: Settlement | undefined;
61
+ /**
62
+ * For `async` settlements, the endpoint to poll for redemption status (`GET /v2/tokenized_assets/redemptions`). Null for instant trades.
63
+ */
64
+ pollEndpoint?: string | null | undefined;
44
65
  };
45
66
 
67
+ /** @internal */
68
+ export const Settlement$inboundSchema: z.ZodNativeEnum<typeof Settlement> = z
69
+ .nativeEnum(Settlement);
70
+
46
71
  /** @internal */
47
72
  export const TokenizedAssetsTradeResponse$inboundSchema: z.ZodType<
48
73
  TokenizedAssetsTradeResponse,
@@ -54,11 +79,14 @@ export const TokenizedAssetsTradeResponse$inboundSchema: z.ZodType<
54
79
  .optional(),
55
80
  estimated_amount_out: z.string(),
56
81
  fee_amount: z.nullable(z.string()).optional(),
82
+ settlement: Settlement$inboundSchema.optional(),
83
+ poll_endpoint: z.nullable(z.string()).optional(),
57
84
  }).transform((v) => {
58
85
  return remap$(v, {
59
86
  "eip_712": "eip712",
60
87
  "estimated_amount_out": "estimatedAmountOut",
61
88
  "fee_amount": "feeAmount",
89
+ "poll_endpoint": "pollEndpoint",
62
90
  });
63
91
  });
64
92
 
@@ -63,3 +63,4 @@ export * from "./v2tokenizedassetsorderorderhash.js";
63
63
  export * from "./v2tokenizedassetsorderorderhashcancel.js";
64
64
  export * from "./v2tokenizedassetsorderorderhashchargefee.js";
65
65
  export * from "./v2tokenizedassetspositions.js";
66
+ export * from "./v2tokenizedassetsredemptions.js";
@@ -0,0 +1,72 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { ClosedEnum } from "../../types/enums.js";
7
+
8
+ /**
9
+ * The chain to use.
10
+ */
11
+ export const V2TokenizedAssetsRedemptionsChain = {
12
+ Base: "base",
13
+ Ethereum: "ethereum",
14
+ Arbitrum: "arbitrum",
15
+ Hyperevm: "hyperevm",
16
+ Tempo: "tempo",
17
+ Bsc: "bsc",
18
+ } as const;
19
+ /**
20
+ * The chain to use.
21
+ */
22
+ export type V2TokenizedAssetsRedemptionsChain = ClosedEnum<
23
+ typeof V2TokenizedAssetsRedemptionsChain
24
+ >;
25
+
26
+ export type V2TokenizedAssetsRedemptionsRequest = {
27
+ /**
28
+ * The owner of the Tokenized Assets Account whose IXS redemption requests to read. Requests are reconstructed on-chain from the derived product account (the request receiver).
29
+ */
30
+ owner: string;
31
+ /**
32
+ * Network the IXS vault lives on (IXS managed vaults are on BNB Smart Chain).
33
+ */
34
+ chain?: V2TokenizedAssetsRedemptionsChain | undefined;
35
+ /**
36
+ * The IXS vault handle to read redemptions for (e.g. 'ixv1').
37
+ */
38
+ vault?: string | undefined;
39
+ };
40
+
41
+ /** @internal */
42
+ export const V2TokenizedAssetsRedemptionsChain$outboundSchema: z.ZodNativeEnum<
43
+ typeof V2TokenizedAssetsRedemptionsChain
44
+ > = z.nativeEnum(V2TokenizedAssetsRedemptionsChain);
45
+
46
+ /** @internal */
47
+ export type V2TokenizedAssetsRedemptionsRequest$Outbound = {
48
+ owner: string;
49
+ chain?: string | undefined;
50
+ vault?: string | undefined;
51
+ };
52
+
53
+ /** @internal */
54
+ export const V2TokenizedAssetsRedemptionsRequest$outboundSchema: z.ZodType<
55
+ V2TokenizedAssetsRedemptionsRequest$Outbound,
56
+ z.ZodTypeDef,
57
+ V2TokenizedAssetsRedemptionsRequest
58
+ > = z.object({
59
+ owner: z.string(),
60
+ chain: V2TokenizedAssetsRedemptionsChain$outboundSchema.optional(),
61
+ vault: z.string().optional(),
62
+ });
63
+
64
+ export function v2TokenizedAssetsRedemptionsRequestToJSON(
65
+ v2TokenizedAssetsRedemptionsRequest: V2TokenizedAssetsRedemptionsRequest,
66
+ ): string {
67
+ return JSON.stringify(
68
+ V2TokenizedAssetsRedemptionsRequest$outboundSchema.parse(
69
+ v2TokenizedAssetsRedemptionsRequest,
70
+ ),
71
+ );
72
+ }
@@ -13,6 +13,7 @@ import { tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee } from "../funcs/
13
13
  import { tokenizedAssetsTokenizedAssetsOrderSubmit } from "../funcs/tokenizedAssetsTokenizedAssetsOrderSubmit.js";
14
14
  import { tokenizedAssetsTokenizedAssetsPositions } from "../funcs/tokenizedAssetsTokenizedAssetsPositions.js";
15
15
  import { tokenizedAssetsTokenizedAssetsQuote } from "../funcs/tokenizedAssetsTokenizedAssetsQuote.js";
16
+ import { tokenizedAssetsTokenizedAssetsRedemptions } from "../funcs/tokenizedAssetsTokenizedAssetsRedemptions.js";
16
17
  import { tokenizedAssetsTokenizedAssetsTransactBuy } from "../funcs/tokenizedAssetsTokenizedAssetsTransactBuy.js";
17
18
  import { tokenizedAssetsTokenizedAssetsTransactSell } from "../funcs/tokenizedAssetsTokenizedAssetsTransactSell.js";
18
19
  import { tokenizedAssetsTokenizedAssetsTransfer } from "../funcs/tokenizedAssetsTokenizedAssetsTransfer.js";
@@ -162,6 +163,34 @@ export class TokenizedAssets extends ClientSDK {
162
163
  ));
163
164
  }
164
165
 
166
+ /**
167
+ * Get IXS vault redemption requests for an owner
168
+ *
169
+ * @remarks
170
+ * Get an owner's IXS vault redemption requests (async redemption status).
171
+ *
172
+ * IXS managed-vault **sells** are asynchronous: `/transact/sell` returns a
173
+ * `requestRedeem` transaction, and the vault operator settles it off-chain
174
+ * later. This endpoint reconstructs the owner's requests directly from the
175
+ * vault on every call (Compass persists no async state) — each entry carries
176
+ * its `status` (`pending` | `finalized` | `rejected`), the `shares` requested,
177
+ * and, while `pending`, the `expected_net_assets` it would settle for at the
178
+ * current NAV (a preview, not a guarantee).
179
+ *
180
+ * IXS vaults live on BNB Smart Chain — pass `chain=bsc` (the default) and the
181
+ * `vault` handle (default `ixv1`).
182
+ */
183
+ async tokenizedAssetsRedemptions(
184
+ request: operations.V2TokenizedAssetsRedemptionsRequest,
185
+ options?: RequestOptions,
186
+ ): Promise<components.RedemptionsResponse> {
187
+ return unwrapAsync(tokenizedAssetsTokenizedAssetsRedemptions(
188
+ this,
189
+ request,
190
+ options,
191
+ ));
192
+ }
193
+
165
194
  /**
166
195
  * Create a Tokenized Assets Account
167
196
  *