@compass-labs/api-sdk 2.2.67 → 2.2.68-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 (103) hide show
  1. package/README.md +4 -2
  2. package/codeSamples_typescript.yaml +8 -2
  3. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.d.ts +26 -0
  4. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.d.ts.map +1 -0
  5. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.js +136 -0
  6. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.js.map +1 -0
  7. package/dist/commonjs/models/components/index.d.ts +3 -0
  8. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  9. package/dist/commonjs/models/components/index.js +3 -0
  10. package/dist/commonjs/models/components/index.js.map +1 -1
  11. package/dist/commonjs/models/components/tokenizedassetschargefeerequest.d.ts +42 -0
  12. package/dist/commonjs/models/components/tokenizedassetschargefeerequest.d.ts.map +1 -0
  13. package/dist/commonjs/models/components/tokenizedassetschargefeerequest.js +57 -0
  14. package/dist/commonjs/models/components/tokenizedassetschargefeerequest.js.map +1 -0
  15. package/dist/commonjs/models/components/tokenizedassetschargefeeresponse.d.ts +35 -0
  16. package/dist/commonjs/models/components/tokenizedassetschargefeeresponse.d.ts.map +1 -0
  17. package/dist/commonjs/models/components/tokenizedassetschargefeeresponse.js +62 -0
  18. package/dist/commonjs/models/components/tokenizedassetschargefeeresponse.js.map +1 -0
  19. package/dist/commonjs/models/components/tokenizedassetsfee.d.ts +57 -0
  20. package/dist/commonjs/models/components/tokenizedassetsfee.d.ts.map +1 -0
  21. package/dist/commonjs/models/components/tokenizedassetsfee.js +66 -0
  22. package/dist/commonjs/models/components/tokenizedassetsfee.js.map +1 -0
  23. package/dist/commonjs/models/components/tokenizedassetstraderequest.d.ts +6 -0
  24. package/dist/commonjs/models/components/tokenizedassetstraderequest.d.ts.map +1 -1
  25. package/dist/commonjs/models/components/tokenizedassetstraderequest.js +2 -0
  26. package/dist/commonjs/models/components/tokenizedassetstraderequest.js.map +1 -1
  27. package/dist/commonjs/models/components/tokenizedassetstraderesponse.d.ts +4 -0
  28. package/dist/commonjs/models/components/tokenizedassetstraderesponse.d.ts.map +1 -1
  29. package/dist/commonjs/models/components/tokenizedassetstraderesponse.js +2 -0
  30. package/dist/commonjs/models/components/tokenizedassetstraderesponse.js.map +1 -1
  31. package/dist/commonjs/models/operations/index.d.ts +1 -0
  32. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  33. package/dist/commonjs/models/operations/index.js +1 -0
  34. package/dist/commonjs/models/operations/index.js.map +1 -1
  35. package/dist/commonjs/models/operations/v2tokenizedassetsorderorderhashchargefee.d.ts +15 -0
  36. package/dist/commonjs/models/operations/v2tokenizedassetsorderorderhashchargefee.d.ts.map +1 -0
  37. package/dist/commonjs/models/operations/v2tokenizedassetsorderorderhashchargefee.js +57 -0
  38. package/dist/commonjs/models/operations/v2tokenizedassetsorderorderhashchargefee.js.map +1 -0
  39. package/dist/commonjs/sdk/tokenizedassets.d.ts +14 -0
  40. package/dist/commonjs/sdk/tokenizedassets.d.ts.map +1 -1
  41. package/dist/commonjs/sdk/tokenizedassets.js +17 -0
  42. package/dist/commonjs/sdk/tokenizedassets.js.map +1 -1
  43. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.d.ts +26 -0
  44. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.d.ts.map +1 -0
  45. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.js +100 -0
  46. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.js.map +1 -0
  47. package/dist/esm/models/components/index.d.ts +3 -0
  48. package/dist/esm/models/components/index.d.ts.map +1 -1
  49. package/dist/esm/models/components/index.js +3 -0
  50. package/dist/esm/models/components/index.js.map +1 -1
  51. package/dist/esm/models/components/tokenizedassetschargefeerequest.d.ts +42 -0
  52. package/dist/esm/models/components/tokenizedassetschargefeerequest.d.ts.map +1 -0
  53. package/dist/esm/models/components/tokenizedassetschargefeerequest.js +20 -0
  54. package/dist/esm/models/components/tokenizedassetschargefeerequest.js.map +1 -0
  55. package/dist/esm/models/components/tokenizedassetschargefeeresponse.d.ts +35 -0
  56. package/dist/esm/models/components/tokenizedassetschargefeeresponse.d.ts.map +1 -0
  57. package/dist/esm/models/components/tokenizedassetschargefeeresponse.js +25 -0
  58. package/dist/esm/models/components/tokenizedassetschargefeeresponse.js.map +1 -0
  59. package/dist/esm/models/components/tokenizedassetsfee.d.ts +57 -0
  60. package/dist/esm/models/components/tokenizedassetsfee.d.ts.map +1 -0
  61. package/dist/esm/models/components/tokenizedassetsfee.js +28 -0
  62. package/dist/esm/models/components/tokenizedassetsfee.js.map +1 -0
  63. package/dist/esm/models/components/tokenizedassetstraderequest.d.ts +6 -0
  64. package/dist/esm/models/components/tokenizedassetstraderequest.d.ts.map +1 -1
  65. package/dist/esm/models/components/tokenizedassetstraderequest.js +2 -0
  66. package/dist/esm/models/components/tokenizedassetstraderequest.js.map +1 -1
  67. package/dist/esm/models/components/tokenizedassetstraderesponse.d.ts +4 -0
  68. package/dist/esm/models/components/tokenizedassetstraderesponse.d.ts.map +1 -1
  69. package/dist/esm/models/components/tokenizedassetstraderesponse.js +2 -0
  70. package/dist/esm/models/components/tokenizedassetstraderesponse.js.map +1 -1
  71. package/dist/esm/models/operations/index.d.ts +1 -0
  72. package/dist/esm/models/operations/index.d.ts.map +1 -1
  73. package/dist/esm/models/operations/index.js +1 -0
  74. package/dist/esm/models/operations/index.js.map +1 -1
  75. package/dist/esm/models/operations/v2tokenizedassetsorderorderhashchargefee.d.ts +15 -0
  76. package/dist/esm/models/operations/v2tokenizedassetsorderorderhashchargefee.d.ts.map +1 -0
  77. package/dist/esm/models/operations/v2tokenizedassetsorderorderhashchargefee.js +20 -0
  78. package/dist/esm/models/operations/v2tokenizedassetsorderorderhashchargefee.js.map +1 -0
  79. package/dist/esm/sdk/tokenizedassets.d.ts +14 -0
  80. package/dist/esm/sdk/tokenizedassets.d.ts.map +1 -1
  81. package/dist/esm/sdk/tokenizedassets.js +17 -0
  82. package/dist/esm/sdk/tokenizedassets.js.map +1 -1
  83. package/docs/models/components/tokenizedassetschargefeerequest.md +32 -0
  84. package/docs/models/components/tokenizedassetschargefeeresponse.md +26 -0
  85. package/docs/models/components/tokenizedassetsfee.md +27 -0
  86. package/docs/models/components/tokenizedassetsfeeamount.md +19 -0
  87. package/docs/models/components/tokenizedassetsfeedenomination.md +17 -0
  88. package/docs/models/components/tokenizedassetstraderequest.md +7 -1
  89. package/docs/models/components/tokenizedassetstraderesponse.md +2 -1
  90. package/docs/models/operations/v2tokenizedassetsorderorderhashchargefeerequest.md +27 -0
  91. package/docs/sdks/tokenizedassets/README.md +120 -0
  92. package/openapi_prepped_for_speakeasy.json +190 -0
  93. package/package.json +1 -1
  94. package/src/funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.ts +191 -0
  95. package/src/models/components/index.ts +3 -0
  96. package/src/models/components/tokenizedassetschargefeerequest.ts +74 -0
  97. package/src/models/components/tokenizedassetschargefeeresponse.ts +72 -0
  98. package/src/models/components/tokenizedassetsfee.ts +98 -0
  99. package/src/models/components/tokenizedassetstraderequest.ts +11 -0
  100. package/src/models/components/tokenizedassetstraderesponse.ts +6 -0
  101. package/src/models/operations/index.ts +1 -0
  102. package/src/models/operations/v2tokenizedassetsorderorderhashchargefee.ts +47 -0
  103. package/src/sdk/tokenizedassets.ts +25 -0
@@ -0,0 +1,191 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CompassApiSDKCore } from "../core.js";
6
+ import { encodeJSON, encodeSimple } 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
+ * Charge a partner fee on a filled sell order's USDC proceeds
32
+ *
33
+ * @remarks
34
+ * Build a USDC fee transfer on a filled equity sell order's proceeds.
35
+ *
36
+ * Equity orders fill off-chain via a third-party resolver, so the fee can't be
37
+ * bundled into the trade. Once the sell order has filled, call this with the
38
+ * order hash and your `fee` (recipient + percentage/fixed); it reads the actual
39
+ * filled USDC proceeds and returns a `transfer(recipient, fee)` executed by the
40
+ * product account — an unsigned transaction the owner signs, or an EIP-712
41
+ * payload when `gas_sponsorship` is true.
42
+ */
43
+ export function tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee(
44
+ client: CompassApiSDKCore,
45
+ request: operations.V2TokenizedAssetsOrderOrderHashChargeFeeRequest,
46
+ options?: RequestOptions,
47
+ ): APIPromise<
48
+ Result<
49
+ components.TokenizedAssetsChargeFeeResponse,
50
+ | errors.HTTPValidationError
51
+ | CompassAPISDKError
52
+ | ResponseValidationError
53
+ | ConnectionError
54
+ | RequestAbortedError
55
+ | RequestTimeoutError
56
+ | InvalidRequestError
57
+ | UnexpectedClientError
58
+ | SDKValidationError
59
+ >
60
+ > {
61
+ return new APIPromise($do(
62
+ client,
63
+ request,
64
+ options,
65
+ ));
66
+ }
67
+
68
+ async function $do(
69
+ client: CompassApiSDKCore,
70
+ request: operations.V2TokenizedAssetsOrderOrderHashChargeFeeRequest,
71
+ options?: RequestOptions,
72
+ ): Promise<
73
+ [
74
+ Result<
75
+ components.TokenizedAssetsChargeFeeResponse,
76
+ | errors.HTTPValidationError
77
+ | CompassAPISDKError
78
+ | ResponseValidationError
79
+ | ConnectionError
80
+ | RequestAbortedError
81
+ | RequestTimeoutError
82
+ | InvalidRequestError
83
+ | UnexpectedClientError
84
+ | SDKValidationError
85
+ >,
86
+ APICall,
87
+ ]
88
+ > {
89
+ const parsed = safeParse(
90
+ request,
91
+ (value) =>
92
+ operations.V2TokenizedAssetsOrderOrderHashChargeFeeRequest$outboundSchema
93
+ .parse(value),
94
+ "Input validation failed",
95
+ );
96
+ if (!parsed.ok) {
97
+ return [parsed, { status: "invalid" }];
98
+ }
99
+ const payload = parsed.value;
100
+ const body = encodeJSON("body", payload.TokenizedAssetsChargeFeeRequest, {
101
+ explode: true,
102
+ });
103
+
104
+ const pathParams = {
105
+ order_hash: encodeSimple("order_hash", payload.order_hash, {
106
+ explode: false,
107
+ charEncoding: "percent",
108
+ }),
109
+ };
110
+ const path = pathToFunc("/v2/tokenized_assets/order/{order_hash}/charge_fee")(
111
+ pathParams,
112
+ );
113
+
114
+ const headers = new Headers(compactMap({
115
+ "Content-Type": "application/json",
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_order_{order_hash}_charge_fee",
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: "POST",
141
+ baseURL: options?.serverURL,
142
+ path: path,
143
+ headers: headers,
144
+ body: body,
145
+ userAgent: client._options.userAgent,
146
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
147
+ }, options);
148
+ if (!requestRes.ok) {
149
+ return [requestRes, { status: "invalid" }];
150
+ }
151
+ const req = requestRes.value;
152
+
153
+ const doResult = await client._do(req, {
154
+ context,
155
+ isErrorStatusCode: (statusCode: number) =>
156
+ matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]),
157
+ retryConfig: context.retryConfig,
158
+ retryCodes: context.retryCodes,
159
+ });
160
+ if (!doResult.ok) {
161
+ return [doResult, { status: "request-error", request: req }];
162
+ }
163
+ const response = doResult.value;
164
+
165
+ const responseFields = {
166
+ HttpMeta: { Response: response, Request: req },
167
+ };
168
+
169
+ const [result] = await M.match<
170
+ components.TokenizedAssetsChargeFeeResponse,
171
+ | errors.HTTPValidationError
172
+ | CompassAPISDKError
173
+ | ResponseValidationError
174
+ | ConnectionError
175
+ | RequestAbortedError
176
+ | RequestTimeoutError
177
+ | InvalidRequestError
178
+ | UnexpectedClientError
179
+ | SDKValidationError
180
+ >(
181
+ M.json(200, components.TokenizedAssetsChargeFeeResponse$inboundSchema),
182
+ M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
183
+ M.fail("4XX"),
184
+ M.fail("5XX"),
185
+ )(response, req, { extraFields: responseFields });
186
+ if (!result.ok) {
187
+ return [result, { status: "complete", request: req, response }];
188
+ }
189
+
190
+ return [result, { status: "complete", request: req, response }];
191
+ }
@@ -293,6 +293,9 @@ export * from "./tokenizedassetsbuildorderrequest.js";
293
293
  export * from "./tokenizedassetsbuildorderresponse.js";
294
294
  export * from "./tokenizedassetscancelorderrequest.js";
295
295
  export * from "./tokenizedassetscancelorderresponse.js";
296
+ export * from "./tokenizedassetschargefeerequest.js";
297
+ export * from "./tokenizedassetschargefeeresponse.js";
298
+ export * from "./tokenizedassetsfee.js";
296
299
  export * from "./tokenizedassetsmarketslistresponse.js";
297
300
  export * from "./tokenizedassetsohlcinterval.js";
298
301
  export * from "./tokenizedassetsohlcrange.js";
@@ -0,0 +1,74 @@
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 {
8
+ TokenizedAssetsFee,
9
+ TokenizedAssetsFee$Outbound,
10
+ TokenizedAssetsFee$outboundSchema,
11
+ } from "./tokenizedassetsfee.js";
12
+
13
+ /**
14
+ * Charge a partner fee on the USDC proceeds of a filled sell order.
15
+ *
16
+ * @remarks
17
+ *
18
+ * Equity orders fill off-chain via a third-party resolver, so the fee can't
19
+ * ride inside the trade (unlike Midas/earn/credit). After the sell order
20
+ * fills, call this with the order hash to build a USDC `transfer(recipient,
21
+ * fee)` executed by the product account.
22
+ */
23
+ export type TokenizedAssetsChargeFeeRequest = {
24
+ /**
25
+ * The owner's wallet address; the product account is derived from it.
26
+ */
27
+ owner: string;
28
+ /**
29
+ * Fee configuration for tokenized-asset trades.
30
+ *
31
+ * @remarks
32
+ *
33
+ * Same shape as `Fee`, but narrows `denomination` to the values supported by
34
+ * tokenized-asset trades. PERFORMANCE is not supported because realized-profit
35
+ * fees are not computed for spot buy/sell trades.
36
+ */
37
+ fee: TokenizedAssetsFee;
38
+ /**
39
+ * When true, returns an EIP-712 payload for gas-sponsored execution instead of an unsigned transaction.
40
+ */
41
+ gasSponsorship?: boolean | undefined;
42
+ };
43
+
44
+ /** @internal */
45
+ export type TokenizedAssetsChargeFeeRequest$Outbound = {
46
+ owner: string;
47
+ fee: TokenizedAssetsFee$Outbound;
48
+ gas_sponsorship?: boolean | undefined;
49
+ };
50
+
51
+ /** @internal */
52
+ export const TokenizedAssetsChargeFeeRequest$outboundSchema: z.ZodType<
53
+ TokenizedAssetsChargeFeeRequest$Outbound,
54
+ z.ZodTypeDef,
55
+ TokenizedAssetsChargeFeeRequest
56
+ > = z.object({
57
+ owner: z.string(),
58
+ fee: TokenizedAssetsFee$outboundSchema,
59
+ gasSponsorship: z.boolean().optional(),
60
+ }).transform((v) => {
61
+ return remap$(v, {
62
+ gasSponsorship: "gas_sponsorship",
63
+ });
64
+ });
65
+
66
+ export function tokenizedAssetsChargeFeeRequestToJSON(
67
+ tokenizedAssetsChargeFeeRequest: TokenizedAssetsChargeFeeRequest,
68
+ ): string {
69
+ return JSON.stringify(
70
+ TokenizedAssetsChargeFeeRequest$outboundSchema.parse(
71
+ tokenizedAssetsChargeFeeRequest,
72
+ ),
73
+ );
74
+ }
@@ -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 { 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
+ BatchedSafeOperationsResponseOutput,
12
+ BatchedSafeOperationsResponseOutput$inboundSchema,
13
+ } from "./batchedsafeoperationsresponseoutput.js";
14
+ import {
15
+ UnsignedTransaction,
16
+ UnsignedTransaction$inboundSchema,
17
+ } from "./unsignedtransaction.js";
18
+
19
+ /**
20
+ * Unsigned USDC fee transfer for the owner to sign.
21
+ *
22
+ * @remarks
23
+ *
24
+ * Exactly one of `transaction` (gas_sponsorship=false) or `eip_712`
25
+ * (gas_sponsorship=true) is set.
26
+ */
27
+ export type TokenizedAssetsChargeFeeResponse = {
28
+ /**
29
+ * Unsigned transaction transferring the fee from the product account.
30
+ */
31
+ transaction?: UnsignedTransaction | null | undefined;
32
+ /**
33
+ * EIP-712 payload for gas-sponsored execution.
34
+ */
35
+ eip712?: BatchedSafeOperationsResponseOutput | null | undefined;
36
+ /**
37
+ * Fee charged, in USDC.
38
+ */
39
+ feeAmount: string;
40
+ /**
41
+ * Filled USDC proceeds the fee was computed on.
42
+ */
43
+ proceeds: string;
44
+ };
45
+
46
+ /** @internal */
47
+ export const TokenizedAssetsChargeFeeResponse$inboundSchema: z.ZodType<
48
+ TokenizedAssetsChargeFeeResponse,
49
+ z.ZodTypeDef,
50
+ unknown
51
+ > = z.object({
52
+ transaction: z.nullable(UnsignedTransaction$inboundSchema).optional(),
53
+ eip_712: z.nullable(BatchedSafeOperationsResponseOutput$inboundSchema)
54
+ .optional(),
55
+ fee_amount: z.string(),
56
+ proceeds: z.string(),
57
+ }).transform((v) => {
58
+ return remap$(v, {
59
+ "eip_712": "eip712",
60
+ "fee_amount": "feeAmount",
61
+ });
62
+ });
63
+
64
+ export function tokenizedAssetsChargeFeeResponseFromJSON(
65
+ jsonString: string,
66
+ ): SafeParseResult<TokenizedAssetsChargeFeeResponse, SDKValidationError> {
67
+ return safeParse(
68
+ jsonString,
69
+ (x) => TokenizedAssetsChargeFeeResponse$inboundSchema.parse(JSON.parse(x)),
70
+ `Failed to parse 'TokenizedAssetsChargeFeeResponse' from JSON`,
71
+ );
72
+ }
@@ -0,0 +1,98 @@
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 fee amount. If `denomination` is 'PERCENTAGE', this is a percentage of the transaction amount (e.g., 1.5 for 1.5%). If `denomination` is 'FIXED', this is a fixed amount in token units (e.g., 0.1 for 0.1 tokens). If `denomination` is 'PERFORMANCE', this is a percentage of realized profit calculated using FIFO cost basis (e.g., 10 for 10% of profit).
10
+ */
11
+ export type TokenizedAssetsFeeAmount = number | string;
12
+
13
+ /**
14
+ * The unit type for the fee amount. Use 'PERCENTAGE' for a percentage-based fee (e.g., 1.5 means 1.5% of the trade proceeds), or 'FIXED' for a fixed token amount (e.g., 0.1 means 0.1 tokens).
15
+ */
16
+ export const TokenizedAssetsFeeDenomination = {
17
+ Percentage: "PERCENTAGE",
18
+ Fixed: "FIXED",
19
+ } as const;
20
+ /**
21
+ * The unit type for the fee amount. Use 'PERCENTAGE' for a percentage-based fee (e.g., 1.5 means 1.5% of the trade proceeds), or 'FIXED' for a fixed token amount (e.g., 0.1 means 0.1 tokens).
22
+ */
23
+ export type TokenizedAssetsFeeDenomination = ClosedEnum<
24
+ typeof TokenizedAssetsFeeDenomination
25
+ >;
26
+
27
+ /**
28
+ * Fee configuration for tokenized-asset trades.
29
+ *
30
+ * @remarks
31
+ *
32
+ * Same shape as `Fee`, but narrows `denomination` to the values supported by
33
+ * tokenized-asset trades. PERFORMANCE is not supported because realized-profit
34
+ * fees are not computed for spot buy/sell trades.
35
+ */
36
+ export type TokenizedAssetsFee = {
37
+ /**
38
+ * The wallet address that will receive the fee.
39
+ */
40
+ recipient: string;
41
+ /**
42
+ * The fee amount. If `denomination` is 'PERCENTAGE', this is a percentage of the transaction amount (e.g., 1.5 for 1.5%). If `denomination` is 'FIXED', this is a fixed amount in token units (e.g., 0.1 for 0.1 tokens). If `denomination` is 'PERFORMANCE', this is a percentage of realized profit calculated using FIFO cost basis (e.g., 10 for 10% of profit).
43
+ */
44
+ amount: number | string;
45
+ /**
46
+ * The unit type for the fee amount. Use 'PERCENTAGE' for a percentage-based fee (e.g., 1.5 means 1.5% of the trade proceeds), or 'FIXED' for a fixed token amount (e.g., 0.1 means 0.1 tokens).
47
+ */
48
+ denomination?: TokenizedAssetsFeeDenomination | undefined;
49
+ };
50
+
51
+ /** @internal */
52
+ export type TokenizedAssetsFeeAmount$Outbound = number | string;
53
+
54
+ /** @internal */
55
+ export const TokenizedAssetsFeeAmount$outboundSchema: z.ZodType<
56
+ TokenizedAssetsFeeAmount$Outbound,
57
+ z.ZodTypeDef,
58
+ TokenizedAssetsFeeAmount
59
+ > = z.union([z.number(), z.string()]);
60
+
61
+ export function tokenizedAssetsFeeAmountToJSON(
62
+ tokenizedAssetsFeeAmount: TokenizedAssetsFeeAmount,
63
+ ): string {
64
+ return JSON.stringify(
65
+ TokenizedAssetsFeeAmount$outboundSchema.parse(tokenizedAssetsFeeAmount),
66
+ );
67
+ }
68
+
69
+ /** @internal */
70
+ export const TokenizedAssetsFeeDenomination$outboundSchema: z.ZodNativeEnum<
71
+ typeof TokenizedAssetsFeeDenomination
72
+ > = z.nativeEnum(TokenizedAssetsFeeDenomination);
73
+
74
+ /** @internal */
75
+ export type TokenizedAssetsFee$Outbound = {
76
+ recipient: string;
77
+ amount: number | string;
78
+ denomination?: string | undefined;
79
+ };
80
+
81
+ /** @internal */
82
+ export const TokenizedAssetsFee$outboundSchema: z.ZodType<
83
+ TokenizedAssetsFee$Outbound,
84
+ z.ZodTypeDef,
85
+ TokenizedAssetsFee
86
+ > = z.object({
87
+ recipient: z.string(),
88
+ amount: z.union([z.number(), z.string()]),
89
+ denomination: TokenizedAssetsFeeDenomination$outboundSchema.optional(),
90
+ });
91
+
92
+ export function tokenizedAssetsFeeToJSON(
93
+ tokenizedAssetsFee: TokenizedAssetsFee,
94
+ ): string {
95
+ return JSON.stringify(
96
+ TokenizedAssetsFee$outboundSchema.parse(tokenizedAssetsFee),
97
+ );
98
+ }
@@ -5,6 +5,11 @@
5
5
  import * as z from "zod/v3";
6
6
  import { remap as remap$ } from "../../lib/primitives.js";
7
7
  import { Chain, Chain$outboundSchema } from "./chain.js";
8
+ import {
9
+ TokenizedAssetsFee,
10
+ TokenizedAssetsFee$Outbound,
11
+ TokenizedAssetsFee$outboundSchema,
12
+ } from "./tokenizedassetsfee.js";
8
13
 
9
14
  /**
10
15
  * Human-readable amount of `token_in` to trade (token units, not wei).
@@ -53,6 +58,10 @@ export type TokenizedAssetsTradeRequest = {
53
58
  * When true, returns an EIP-712 payload for gas-sponsored execution instead of an unsigned transaction.
54
59
  */
55
60
  gasSponsorship?: boolean | undefined;
61
+ /**
62
+ * Optional partner fee charged when selling (exiting). It is taken from the payout-token (USDC) proceeds and sent to your fee recipient inside the same execution.
63
+ */
64
+ fee?: TokenizedAssetsFee | null | undefined;
56
65
  };
57
66
 
58
67
  /** @internal */
@@ -104,6 +113,7 @@ export type TokenizedAssetsTradeRequest$Outbound = {
104
113
  owner: string;
105
114
  chain: string;
106
115
  gas_sponsorship?: boolean | undefined;
116
+ fee?: TokenizedAssetsFee$Outbound | null | undefined;
107
117
  };
108
118
 
109
119
  /** @internal */
@@ -119,6 +129,7 @@ export const TokenizedAssetsTradeRequest$outboundSchema: z.ZodType<
119
129
  owner: z.string(),
120
130
  chain: Chain$outboundSchema,
121
131
  gasSponsorship: z.boolean().optional(),
132
+ fee: z.nullable(TokenizedAssetsFee$outboundSchema).optional(),
122
133
  }).transform((v) => {
123
134
  return remap$(v, {
124
135
  tokenIn: "token_in",
@@ -37,6 +37,10 @@ export type TokenizedAssetsTradeResponse = {
37
37
  * Estimated amount of `token_out` received (human-readable units).
38
38
  */
39
39
  estimatedAmountOut: string;
40
+ /**
41
+ * Fee charged on the sell, in payout-token (USDC) units. Null when no fee was applied.
42
+ */
43
+ feeAmount?: string | null | undefined;
40
44
  };
41
45
 
42
46
  /** @internal */
@@ -49,10 +53,12 @@ export const TokenizedAssetsTradeResponse$inboundSchema: z.ZodType<
49
53
  eip_712: z.nullable(BatchedSafeOperationsResponseOutput$inboundSchema)
50
54
  .optional(),
51
55
  estimated_amount_out: z.string(),
56
+ fee_amount: z.nullable(z.string()).optional(),
52
57
  }).transform((v) => {
53
58
  return remap$(v, {
54
59
  "eip_712": "eip712",
55
60
  "estimated_amount_out": "estimatedAmountOut",
61
+ "fee_amount": "feeAmount",
56
62
  });
57
63
  });
58
64
 
@@ -59,4 +59,5 @@ export * from "./v2tokenizedassetsmarkets.js";
59
59
  export * from "./v2tokenizedassetsmarketssymbol.js";
60
60
  export * from "./v2tokenizedassetsorderorderhash.js";
61
61
  export * from "./v2tokenizedassetsorderorderhashcancel.js";
62
+ export * from "./v2tokenizedassetsorderorderhashchargefee.js";
62
63
  export * from "./v2tokenizedassetspositions.js";
@@ -0,0 +1,47 @@
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 * as components from "../components/index.js";
8
+
9
+ export type V2TokenizedAssetsOrderOrderHashChargeFeeRequest = {
10
+ orderHash: string;
11
+ tokenizedAssetsChargeFeeRequest: components.TokenizedAssetsChargeFeeRequest;
12
+ };
13
+
14
+ /** @internal */
15
+ export type V2TokenizedAssetsOrderOrderHashChargeFeeRequest$Outbound = {
16
+ order_hash: string;
17
+ TokenizedAssetsChargeFeeRequest:
18
+ components.TokenizedAssetsChargeFeeRequest$Outbound;
19
+ };
20
+
21
+ /** @internal */
22
+ export const V2TokenizedAssetsOrderOrderHashChargeFeeRequest$outboundSchema:
23
+ z.ZodType<
24
+ V2TokenizedAssetsOrderOrderHashChargeFeeRequest$Outbound,
25
+ z.ZodTypeDef,
26
+ V2TokenizedAssetsOrderOrderHashChargeFeeRequest
27
+ > = z.object({
28
+ orderHash: z.string(),
29
+ tokenizedAssetsChargeFeeRequest:
30
+ components.TokenizedAssetsChargeFeeRequest$outboundSchema,
31
+ }).transform((v) => {
32
+ return remap$(v, {
33
+ orderHash: "order_hash",
34
+ tokenizedAssetsChargeFeeRequest: "TokenizedAssetsChargeFeeRequest",
35
+ });
36
+ });
37
+
38
+ export function v2TokenizedAssetsOrderOrderHashChargeFeeRequestToJSON(
39
+ v2TokenizedAssetsOrderOrderHashChargeFeeRequest:
40
+ V2TokenizedAssetsOrderOrderHashChargeFeeRequest,
41
+ ): string {
42
+ return JSON.stringify(
43
+ V2TokenizedAssetsOrderOrderHashChargeFeeRequest$outboundSchema.parse(
44
+ v2TokenizedAssetsOrderOrderHashChargeFeeRequest,
45
+ ),
46
+ );
47
+ }
@@ -9,6 +9,7 @@ import { tokenizedAssetsTokenizedAssetsMarketsSymbol } from "../funcs/tokenizedA
9
9
  import { tokenizedAssetsTokenizedAssetsOrder } from "../funcs/tokenizedAssetsTokenizedAssetsOrder.js";
10
10
  import { tokenizedAssetsTokenizedAssetsOrderOrderHash } from "../funcs/tokenizedAssetsTokenizedAssetsOrderOrderHash.js";
11
11
  import { tokenizedAssetsTokenizedAssetsOrderOrderHashCancel } from "../funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashCancel.js";
12
+ import { tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee } from "../funcs/tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee.js";
12
13
  import { tokenizedAssetsTokenizedAssetsOrderSubmit } from "../funcs/tokenizedAssetsTokenizedAssetsOrderSubmit.js";
13
14
  import { tokenizedAssetsTokenizedAssetsPositions } from "../funcs/tokenizedAssetsTokenizedAssetsPositions.js";
14
15
  import { tokenizedAssetsTokenizedAssetsQuote } from "../funcs/tokenizedAssetsTokenizedAssetsQuote.js";
@@ -368,6 +369,30 @@ export class TokenizedAssets extends ClientSDK {
368
369
  ));
369
370
  }
370
371
 
372
+ /**
373
+ * Charge a partner fee on a filled sell order's USDC proceeds
374
+ *
375
+ * @remarks
376
+ * Build a USDC fee transfer on a filled equity sell order's proceeds.
377
+ *
378
+ * Equity orders fill off-chain via a third-party resolver, so the fee can't be
379
+ * bundled into the trade. Once the sell order has filled, call this with the
380
+ * order hash and your `fee` (recipient + percentage/fixed); it reads the actual
381
+ * filled USDC proceeds and returns a `transfer(recipient, fee)` executed by the
382
+ * product account — an unsigned transaction the owner signs, or an EIP-712
383
+ * payload when `gas_sponsorship` is true.
384
+ */
385
+ async tokenizedAssetsOrderOrderHashChargeFee(
386
+ request: operations.V2TokenizedAssetsOrderOrderHashChargeFeeRequest,
387
+ options?: RequestOptions,
388
+ ): Promise<components.TokenizedAssetsChargeFeeResponse> {
389
+ return unwrapAsync(tokenizedAssetsTokenizedAssetsOrderOrderHashChargeFee(
390
+ this,
391
+ request,
392
+ options,
393
+ ));
394
+ }
395
+
371
396
  /**
372
397
  * Buy an RWA yield token (Midas: mTBILL/mBASIS/mBTC)
373
398
  *