@rhinestone/sdk 2.0.0-beta.34 → 2.0.0-beta.36
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.
- package/dist/src/accounts/hca.d.ts.map +1 -1
- package/dist/src/accounts/hca.js +4 -1
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +8 -3
- package/dist/src/accounts/signing/common.d.ts.map +1 -1
- package/dist/src/accounts/signing/common.js +3 -2
- package/dist/src/accounts/startale.d.ts.map +1 -1
- package/dist/src/accounts/startale.js +4 -4
- package/dist/src/execution/index.d.ts +1 -2
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +3 -3
- package/dist/src/execution/utils.d.ts +2 -2
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +5 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +10 -1
- package/dist/src/modules/read.d.ts +1 -1
- package/dist/src/modules/read.d.ts.map +1 -1
- package/dist/src/modules/read.js +23 -4
- package/dist/src/modules/validators/core.d.ts +2 -2
- package/dist/src/modules/validators/core.d.ts.map +1 -1
- package/dist/src/modules/validators/core.js +9 -17
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +15 -10
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/dist/src/orchestrator/types.d.ts +0 -1
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/orchestrator/wire.d.ts +30 -0
- package/dist/src/orchestrator/wire.d.ts.map +1 -0
- package/dist/src/orchestrator/wire.gen.d.ts +3962 -0
- package/dist/src/orchestrator/wire.gen.d.ts.map +1 -0
- package/dist/src/orchestrator/wire.gen.js +1 -0
- package/dist/src/orchestrator/wire.js +1 -0
- package/dist/src/types.d.ts +1 -2
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,3962 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by `bun run generate:wire` from the orchestrator OpenAPI spec.
|
|
3
|
+
* Do not edit by hand — regenerate instead.
|
|
4
|
+
*/
|
|
5
|
+
export interface paths {
|
|
6
|
+
"/chains": {
|
|
7
|
+
parameters: {
|
|
8
|
+
query?: never;
|
|
9
|
+
header?: never;
|
|
10
|
+
path?: never;
|
|
11
|
+
cookie?: never;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Supported chains and tokens
|
|
15
|
+
* @description Get supported chains and tokens with additional metadata
|
|
16
|
+
*/
|
|
17
|
+
get: operations["listChains"];
|
|
18
|
+
put?: never;
|
|
19
|
+
post?: never;
|
|
20
|
+
delete?: never;
|
|
21
|
+
options?: never;
|
|
22
|
+
head?: never;
|
|
23
|
+
patch?: never;
|
|
24
|
+
trace?: never;
|
|
25
|
+
};
|
|
26
|
+
"/liquidity": {
|
|
27
|
+
parameters: {
|
|
28
|
+
query?: never;
|
|
29
|
+
header?: never;
|
|
30
|
+
path?: never;
|
|
31
|
+
cookie?: never;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Route liquidity limit
|
|
35
|
+
* @description Returns the largest known fillable amount for a single deposit on the given source→destination route. Relayer-market layers return exact capacity; bridge-backed layers return a conservative probed lower bound.
|
|
36
|
+
*/
|
|
37
|
+
get: operations["listLiquidity"];
|
|
38
|
+
put?: never;
|
|
39
|
+
post?: never;
|
|
40
|
+
delete?: never;
|
|
41
|
+
options?: never;
|
|
42
|
+
head?: never;
|
|
43
|
+
patch?: never;
|
|
44
|
+
trace?: never;
|
|
45
|
+
};
|
|
46
|
+
"/intents/{id}": {
|
|
47
|
+
parameters: {
|
|
48
|
+
query?: never;
|
|
49
|
+
header?: never;
|
|
50
|
+
path?: never;
|
|
51
|
+
cookie?: never;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Get Intent
|
|
55
|
+
* @description Retrieves the status of an intent along with per-claim progress across chains.
|
|
56
|
+
*/
|
|
57
|
+
get: operations["getIntent"];
|
|
58
|
+
put?: never;
|
|
59
|
+
post?: never;
|
|
60
|
+
delete?: never;
|
|
61
|
+
options?: never;
|
|
62
|
+
head?: never;
|
|
63
|
+
patch?: never;
|
|
64
|
+
trace?: never;
|
|
65
|
+
};
|
|
66
|
+
"/accounts/{accountAddress}/portfolio": {
|
|
67
|
+
parameters: {
|
|
68
|
+
query?: never;
|
|
69
|
+
header?: never;
|
|
70
|
+
path?: never;
|
|
71
|
+
cookie?: never;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Get Account Portfolio
|
|
75
|
+
* @description Retrieves the token balances across all supported chains for a user's abstracted account
|
|
76
|
+
*/
|
|
77
|
+
get: operations["getPortfolio"];
|
|
78
|
+
put?: never;
|
|
79
|
+
post?: never;
|
|
80
|
+
delete?: never;
|
|
81
|
+
options?: never;
|
|
82
|
+
head?: never;
|
|
83
|
+
patch?: never;
|
|
84
|
+
trace?: never;
|
|
85
|
+
};
|
|
86
|
+
"/intents": {
|
|
87
|
+
parameters: {
|
|
88
|
+
query?: never;
|
|
89
|
+
header?: never;
|
|
90
|
+
path?: never;
|
|
91
|
+
cookie?: never;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* List Intents
|
|
95
|
+
* @description Retrieves a paginated list of the authenticated client's intents, newest first.
|
|
96
|
+
*/
|
|
97
|
+
get: operations["listIntents"];
|
|
98
|
+
put?: never;
|
|
99
|
+
/**
|
|
100
|
+
* Create Intent
|
|
101
|
+
* @description Submits a quoted intent for execution. Takes the `intentId` from `POST /quotes` (`routes[].intentId`) plus signatures (origin, destination, optionally target-execution) and optional EIP-7702 authorizations.
|
|
102
|
+
*/
|
|
103
|
+
post: operations["createIntent"];
|
|
104
|
+
delete?: never;
|
|
105
|
+
options?: never;
|
|
106
|
+
head?: never;
|
|
107
|
+
patch?: never;
|
|
108
|
+
trace?: never;
|
|
109
|
+
};
|
|
110
|
+
"/intents/splits": {
|
|
111
|
+
parameters: {
|
|
112
|
+
query?: never;
|
|
113
|
+
header?: never;
|
|
114
|
+
path?: never;
|
|
115
|
+
cookie?: never;
|
|
116
|
+
};
|
|
117
|
+
get?: never;
|
|
118
|
+
put?: never;
|
|
119
|
+
/**
|
|
120
|
+
* Split Intent by Liquidity
|
|
121
|
+
* @description Splits token amounts into multiple intents based on available relayer liquidity. Each returned intent can be filled by a single relayer.
|
|
122
|
+
*/
|
|
123
|
+
post: operations["getSplit"];
|
|
124
|
+
delete?: never;
|
|
125
|
+
options?: never;
|
|
126
|
+
head?: never;
|
|
127
|
+
patch?: never;
|
|
128
|
+
trace?: never;
|
|
129
|
+
};
|
|
130
|
+
"/quotes": {
|
|
131
|
+
parameters: {
|
|
132
|
+
query?: never;
|
|
133
|
+
header?: never;
|
|
134
|
+
path?: never;
|
|
135
|
+
cookie?: never;
|
|
136
|
+
};
|
|
137
|
+
get?: never;
|
|
138
|
+
put?: never;
|
|
139
|
+
/**
|
|
140
|
+
* Create Quote
|
|
141
|
+
* @description Computes a quote for an intent: token transfers, target executions, and cost breakdown. Returns a pre-ranked `routes[]` with per-route `intentId` to pass to `POST /intents` for execution.
|
|
142
|
+
*/
|
|
143
|
+
post: operations["createQuote"];
|
|
144
|
+
delete?: never;
|
|
145
|
+
options?: never;
|
|
146
|
+
head?: never;
|
|
147
|
+
patch?: never;
|
|
148
|
+
trace?: never;
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
export type webhooks = Record<string, never>;
|
|
152
|
+
export interface components {
|
|
153
|
+
schemas: never;
|
|
154
|
+
responses: never;
|
|
155
|
+
parameters: never;
|
|
156
|
+
requestBodies: never;
|
|
157
|
+
headers: never;
|
|
158
|
+
pathItems: never;
|
|
159
|
+
}
|
|
160
|
+
export type $defs = Record<string, never>;
|
|
161
|
+
export interface operations {
|
|
162
|
+
listChains: {
|
|
163
|
+
parameters: {
|
|
164
|
+
query?: never;
|
|
165
|
+
header: {
|
|
166
|
+
/** @description API version. Required; pinned to this document. */
|
|
167
|
+
"x-api-version": "2026-04.blanc";
|
|
168
|
+
};
|
|
169
|
+
path?: never;
|
|
170
|
+
cookie?: never;
|
|
171
|
+
};
|
|
172
|
+
requestBody?: never;
|
|
173
|
+
responses: {
|
|
174
|
+
/** @description OK */
|
|
175
|
+
200: {
|
|
176
|
+
headers: {
|
|
177
|
+
[name: string]: unknown;
|
|
178
|
+
};
|
|
179
|
+
content: {
|
|
180
|
+
"application/json": {
|
|
181
|
+
[key: string]: {
|
|
182
|
+
/**
|
|
183
|
+
* @description The name of the chain
|
|
184
|
+
* @example Arbitrum One
|
|
185
|
+
*/
|
|
186
|
+
name: string;
|
|
187
|
+
testnet: boolean;
|
|
188
|
+
supportedTokens: "all" | {
|
|
189
|
+
symbol: string;
|
|
190
|
+
/** @description Token contract address (format depends on the chain) */
|
|
191
|
+
address: string;
|
|
192
|
+
decimals: number;
|
|
193
|
+
}[];
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
/** @description Validation error */
|
|
199
|
+
400: {
|
|
200
|
+
headers: {
|
|
201
|
+
[name: string]: unknown;
|
|
202
|
+
};
|
|
203
|
+
content: {
|
|
204
|
+
"application/json": {
|
|
205
|
+
/** @enum {string} */
|
|
206
|
+
code: "VALIDATION_ERROR";
|
|
207
|
+
/**
|
|
208
|
+
* @description Human-readable error message
|
|
209
|
+
* @example Invalid input
|
|
210
|
+
*/
|
|
211
|
+
message: string;
|
|
212
|
+
/** @description Per-field validation issues */
|
|
213
|
+
details?: {
|
|
214
|
+
/** @description Human-readable issue description */
|
|
215
|
+
message: string;
|
|
216
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
217
|
+
context?: {
|
|
218
|
+
[key: string]: unknown;
|
|
219
|
+
};
|
|
220
|
+
}[];
|
|
221
|
+
} | {
|
|
222
|
+
/** @enum {string} */
|
|
223
|
+
code: "SIMULATION_FAILED";
|
|
224
|
+
/**
|
|
225
|
+
* @description Human-readable error message
|
|
226
|
+
* @example Invalid input
|
|
227
|
+
*/
|
|
228
|
+
message: string;
|
|
229
|
+
/** @description Classified on-chain simulation failure details */
|
|
230
|
+
details?: {
|
|
231
|
+
nonce?: string;
|
|
232
|
+
category: string;
|
|
233
|
+
errorSelector: string;
|
|
234
|
+
errorName: string;
|
|
235
|
+
errorArgs?: {
|
|
236
|
+
[key: string]: string;
|
|
237
|
+
};
|
|
238
|
+
retryable: boolean;
|
|
239
|
+
/** @enum {string} */
|
|
240
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
241
|
+
simulations?: unknown;
|
|
242
|
+
} & {
|
|
243
|
+
[key: string]: unknown;
|
|
244
|
+
};
|
|
245
|
+
} | {
|
|
246
|
+
/** @enum {string} */
|
|
247
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
248
|
+
/**
|
|
249
|
+
* @description Human-readable error message
|
|
250
|
+
* @example Invalid input
|
|
251
|
+
*/
|
|
252
|
+
message: string;
|
|
253
|
+
/** @description Fillable subset and unfillable remainder */
|
|
254
|
+
details?: {
|
|
255
|
+
/** @description Intents fillable with current liquidity */
|
|
256
|
+
availableIntents: {
|
|
257
|
+
[key: string]: string;
|
|
258
|
+
}[];
|
|
259
|
+
/** @description Token amounts that cannot be filled */
|
|
260
|
+
unfillable: {
|
|
261
|
+
[key: string]: string;
|
|
262
|
+
};
|
|
263
|
+
};
|
|
264
|
+
} | {
|
|
265
|
+
/** @enum {string} */
|
|
266
|
+
code: "KEY_SCOPE_DENIED";
|
|
267
|
+
/**
|
|
268
|
+
* @description Human-readable error message
|
|
269
|
+
* @example Invalid input
|
|
270
|
+
*/
|
|
271
|
+
message: string;
|
|
272
|
+
/** @description Single-element list describing the failing scope */
|
|
273
|
+
details?: {
|
|
274
|
+
message: string;
|
|
275
|
+
context: {
|
|
276
|
+
/**
|
|
277
|
+
* @description Which scope rejected the request
|
|
278
|
+
* @enum {string}
|
|
279
|
+
*/
|
|
280
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
281
|
+
/** @description Minimum level the endpoint demands */
|
|
282
|
+
required: boolean | ("read" | "write");
|
|
283
|
+
/** @description Level resolved on the key */
|
|
284
|
+
actual: boolean | ("none" | "read" | "write");
|
|
285
|
+
};
|
|
286
|
+
}[];
|
|
287
|
+
} | {
|
|
288
|
+
/** @enum {string} */
|
|
289
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
290
|
+
/**
|
|
291
|
+
* @description Human-readable error message
|
|
292
|
+
* @example Invalid input
|
|
293
|
+
*/
|
|
294
|
+
message: string;
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
};
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
listLiquidity: {
|
|
301
|
+
parameters: {
|
|
302
|
+
query: {
|
|
303
|
+
/** @description Source chain ID (CAIP-2) */
|
|
304
|
+
sourceChainId: string;
|
|
305
|
+
/** @description Source token address */
|
|
306
|
+
sourceToken: string;
|
|
307
|
+
/** @description Destination chain ID (CAIP-2) */
|
|
308
|
+
destinationChainId: string;
|
|
309
|
+
/** @description Destination token address (EVM 0x or non-EVM base58) */
|
|
310
|
+
destinationToken: string;
|
|
311
|
+
};
|
|
312
|
+
header: {
|
|
313
|
+
/** @description API version. Required; pinned to this document. */
|
|
314
|
+
"x-api-version": "2026-04.blanc";
|
|
315
|
+
/** @description API key. */
|
|
316
|
+
"x-api-key": string;
|
|
317
|
+
};
|
|
318
|
+
path?: never;
|
|
319
|
+
cookie?: never;
|
|
320
|
+
};
|
|
321
|
+
requestBody?: never;
|
|
322
|
+
responses: {
|
|
323
|
+
/** @description OK */
|
|
324
|
+
200: {
|
|
325
|
+
headers: {
|
|
326
|
+
[name: string]: unknown;
|
|
327
|
+
};
|
|
328
|
+
content: {
|
|
329
|
+
"application/json": {
|
|
330
|
+
/**
|
|
331
|
+
* @description Destination token symbol
|
|
332
|
+
* @example USDC
|
|
333
|
+
*/
|
|
334
|
+
symbol: string;
|
|
335
|
+
/**
|
|
336
|
+
* @description Destination token decimals
|
|
337
|
+
* @example 6
|
|
338
|
+
*/
|
|
339
|
+
decimals: number;
|
|
340
|
+
/**
|
|
341
|
+
* @description True when an uncapped settlement layer (e.g. OFT) supports this route
|
|
342
|
+
* @example false
|
|
343
|
+
*/
|
|
344
|
+
unlimited: boolean;
|
|
345
|
+
/**
|
|
346
|
+
* @description Largest known fillable amount for this token by a single relayer instance. Exact for relayer-market settlement layers (ACROSS, ECO); bridge-backed layers (Relay, NEAR, Rhino) return a conservative probed lower bound. Null when unlimited.
|
|
347
|
+
* @example 200000000000
|
|
348
|
+
*/
|
|
349
|
+
maxAmount: string | null;
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
};
|
|
353
|
+
/** @description Validation error */
|
|
354
|
+
400: {
|
|
355
|
+
headers: {
|
|
356
|
+
[name: string]: unknown;
|
|
357
|
+
};
|
|
358
|
+
content: {
|
|
359
|
+
"application/json": {
|
|
360
|
+
/** @enum {string} */
|
|
361
|
+
code: "VALIDATION_ERROR";
|
|
362
|
+
/**
|
|
363
|
+
* @description Human-readable error message
|
|
364
|
+
* @example Invalid input
|
|
365
|
+
*/
|
|
366
|
+
message: string;
|
|
367
|
+
/** @description Per-field validation issues */
|
|
368
|
+
details?: {
|
|
369
|
+
/** @description Human-readable issue description */
|
|
370
|
+
message: string;
|
|
371
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
372
|
+
context?: {
|
|
373
|
+
[key: string]: unknown;
|
|
374
|
+
};
|
|
375
|
+
}[];
|
|
376
|
+
} | {
|
|
377
|
+
/** @enum {string} */
|
|
378
|
+
code: "SIMULATION_FAILED";
|
|
379
|
+
/**
|
|
380
|
+
* @description Human-readable error message
|
|
381
|
+
* @example Invalid input
|
|
382
|
+
*/
|
|
383
|
+
message: string;
|
|
384
|
+
/** @description Classified on-chain simulation failure details */
|
|
385
|
+
details?: {
|
|
386
|
+
nonce?: string;
|
|
387
|
+
category: string;
|
|
388
|
+
errorSelector: string;
|
|
389
|
+
errorName: string;
|
|
390
|
+
errorArgs?: {
|
|
391
|
+
[key: string]: string;
|
|
392
|
+
};
|
|
393
|
+
retryable: boolean;
|
|
394
|
+
/** @enum {string} */
|
|
395
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
396
|
+
simulations?: unknown;
|
|
397
|
+
} & {
|
|
398
|
+
[key: string]: unknown;
|
|
399
|
+
};
|
|
400
|
+
} | {
|
|
401
|
+
/** @enum {string} */
|
|
402
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
403
|
+
/**
|
|
404
|
+
* @description Human-readable error message
|
|
405
|
+
* @example Invalid input
|
|
406
|
+
*/
|
|
407
|
+
message: string;
|
|
408
|
+
/** @description Fillable subset and unfillable remainder */
|
|
409
|
+
details?: {
|
|
410
|
+
/** @description Intents fillable with current liquidity */
|
|
411
|
+
availableIntents: {
|
|
412
|
+
[key: string]: string;
|
|
413
|
+
}[];
|
|
414
|
+
/** @description Token amounts that cannot be filled */
|
|
415
|
+
unfillable: {
|
|
416
|
+
[key: string]: string;
|
|
417
|
+
};
|
|
418
|
+
};
|
|
419
|
+
} | {
|
|
420
|
+
/** @enum {string} */
|
|
421
|
+
code: "KEY_SCOPE_DENIED";
|
|
422
|
+
/**
|
|
423
|
+
* @description Human-readable error message
|
|
424
|
+
* @example Invalid input
|
|
425
|
+
*/
|
|
426
|
+
message: string;
|
|
427
|
+
/** @description Single-element list describing the failing scope */
|
|
428
|
+
details?: {
|
|
429
|
+
message: string;
|
|
430
|
+
context: {
|
|
431
|
+
/**
|
|
432
|
+
* @description Which scope rejected the request
|
|
433
|
+
* @enum {string}
|
|
434
|
+
*/
|
|
435
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
436
|
+
/** @description Minimum level the endpoint demands */
|
|
437
|
+
required: boolean | ("read" | "write");
|
|
438
|
+
/** @description Level resolved on the key */
|
|
439
|
+
actual: boolean | ("none" | "read" | "write");
|
|
440
|
+
};
|
|
441
|
+
}[];
|
|
442
|
+
} | {
|
|
443
|
+
/** @enum {string} */
|
|
444
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
445
|
+
/**
|
|
446
|
+
* @description Human-readable error message
|
|
447
|
+
* @example Invalid input
|
|
448
|
+
*/
|
|
449
|
+
message: string;
|
|
450
|
+
};
|
|
451
|
+
};
|
|
452
|
+
};
|
|
453
|
+
/** @description API key scope denied */
|
|
454
|
+
403: {
|
|
455
|
+
headers: {
|
|
456
|
+
[name: string]: unknown;
|
|
457
|
+
};
|
|
458
|
+
content: {
|
|
459
|
+
"application/json": {
|
|
460
|
+
/** @enum {string} */
|
|
461
|
+
code: "VALIDATION_ERROR";
|
|
462
|
+
/**
|
|
463
|
+
* @description Human-readable error message
|
|
464
|
+
* @example Invalid input
|
|
465
|
+
*/
|
|
466
|
+
message: string;
|
|
467
|
+
/** @description Per-field validation issues */
|
|
468
|
+
details?: {
|
|
469
|
+
/** @description Human-readable issue description */
|
|
470
|
+
message: string;
|
|
471
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
472
|
+
context?: {
|
|
473
|
+
[key: string]: unknown;
|
|
474
|
+
};
|
|
475
|
+
}[];
|
|
476
|
+
} | {
|
|
477
|
+
/** @enum {string} */
|
|
478
|
+
code: "SIMULATION_FAILED";
|
|
479
|
+
/**
|
|
480
|
+
* @description Human-readable error message
|
|
481
|
+
* @example Invalid input
|
|
482
|
+
*/
|
|
483
|
+
message: string;
|
|
484
|
+
/** @description Classified on-chain simulation failure details */
|
|
485
|
+
details?: {
|
|
486
|
+
nonce?: string;
|
|
487
|
+
category: string;
|
|
488
|
+
errorSelector: string;
|
|
489
|
+
errorName: string;
|
|
490
|
+
errorArgs?: {
|
|
491
|
+
[key: string]: string;
|
|
492
|
+
};
|
|
493
|
+
retryable: boolean;
|
|
494
|
+
/** @enum {string} */
|
|
495
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
496
|
+
simulations?: unknown;
|
|
497
|
+
} & {
|
|
498
|
+
[key: string]: unknown;
|
|
499
|
+
};
|
|
500
|
+
} | {
|
|
501
|
+
/** @enum {string} */
|
|
502
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
503
|
+
/**
|
|
504
|
+
* @description Human-readable error message
|
|
505
|
+
* @example Invalid input
|
|
506
|
+
*/
|
|
507
|
+
message: string;
|
|
508
|
+
/** @description Fillable subset and unfillable remainder */
|
|
509
|
+
details?: {
|
|
510
|
+
/** @description Intents fillable with current liquidity */
|
|
511
|
+
availableIntents: {
|
|
512
|
+
[key: string]: string;
|
|
513
|
+
}[];
|
|
514
|
+
/** @description Token amounts that cannot be filled */
|
|
515
|
+
unfillable: {
|
|
516
|
+
[key: string]: string;
|
|
517
|
+
};
|
|
518
|
+
};
|
|
519
|
+
} | {
|
|
520
|
+
/** @enum {string} */
|
|
521
|
+
code: "KEY_SCOPE_DENIED";
|
|
522
|
+
/**
|
|
523
|
+
* @description Human-readable error message
|
|
524
|
+
* @example Invalid input
|
|
525
|
+
*/
|
|
526
|
+
message: string;
|
|
527
|
+
/** @description Single-element list describing the failing scope */
|
|
528
|
+
details?: {
|
|
529
|
+
message: string;
|
|
530
|
+
context: {
|
|
531
|
+
/**
|
|
532
|
+
* @description Which scope rejected the request
|
|
533
|
+
* @enum {string}
|
|
534
|
+
*/
|
|
535
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
536
|
+
/** @description Minimum level the endpoint demands */
|
|
537
|
+
required: boolean | ("read" | "write");
|
|
538
|
+
/** @description Level resolved on the key */
|
|
539
|
+
actual: boolean | ("none" | "read" | "write");
|
|
540
|
+
};
|
|
541
|
+
}[];
|
|
542
|
+
} | {
|
|
543
|
+
/** @enum {string} */
|
|
544
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
545
|
+
/**
|
|
546
|
+
* @description Human-readable error message
|
|
547
|
+
* @example Invalid input
|
|
548
|
+
*/
|
|
549
|
+
message: string;
|
|
550
|
+
};
|
|
551
|
+
};
|
|
552
|
+
};
|
|
553
|
+
/** @description Server error */
|
|
554
|
+
500: {
|
|
555
|
+
headers: {
|
|
556
|
+
[name: string]: unknown;
|
|
557
|
+
};
|
|
558
|
+
content: {
|
|
559
|
+
"application/json": {
|
|
560
|
+
/** @enum {string} */
|
|
561
|
+
code: "VALIDATION_ERROR";
|
|
562
|
+
/**
|
|
563
|
+
* @description Human-readable error message
|
|
564
|
+
* @example Invalid input
|
|
565
|
+
*/
|
|
566
|
+
message: string;
|
|
567
|
+
/** @description Per-field validation issues */
|
|
568
|
+
details?: {
|
|
569
|
+
/** @description Human-readable issue description */
|
|
570
|
+
message: string;
|
|
571
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
572
|
+
context?: {
|
|
573
|
+
[key: string]: unknown;
|
|
574
|
+
};
|
|
575
|
+
}[];
|
|
576
|
+
} | {
|
|
577
|
+
/** @enum {string} */
|
|
578
|
+
code: "SIMULATION_FAILED";
|
|
579
|
+
/**
|
|
580
|
+
* @description Human-readable error message
|
|
581
|
+
* @example Invalid input
|
|
582
|
+
*/
|
|
583
|
+
message: string;
|
|
584
|
+
/** @description Classified on-chain simulation failure details */
|
|
585
|
+
details?: {
|
|
586
|
+
nonce?: string;
|
|
587
|
+
category: string;
|
|
588
|
+
errorSelector: string;
|
|
589
|
+
errorName: string;
|
|
590
|
+
errorArgs?: {
|
|
591
|
+
[key: string]: string;
|
|
592
|
+
};
|
|
593
|
+
retryable: boolean;
|
|
594
|
+
/** @enum {string} */
|
|
595
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
596
|
+
simulations?: unknown;
|
|
597
|
+
} & {
|
|
598
|
+
[key: string]: unknown;
|
|
599
|
+
};
|
|
600
|
+
} | {
|
|
601
|
+
/** @enum {string} */
|
|
602
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
603
|
+
/**
|
|
604
|
+
* @description Human-readable error message
|
|
605
|
+
* @example Invalid input
|
|
606
|
+
*/
|
|
607
|
+
message: string;
|
|
608
|
+
/** @description Fillable subset and unfillable remainder */
|
|
609
|
+
details?: {
|
|
610
|
+
/** @description Intents fillable with current liquidity */
|
|
611
|
+
availableIntents: {
|
|
612
|
+
[key: string]: string;
|
|
613
|
+
}[];
|
|
614
|
+
/** @description Token amounts that cannot be filled */
|
|
615
|
+
unfillable: {
|
|
616
|
+
[key: string]: string;
|
|
617
|
+
};
|
|
618
|
+
};
|
|
619
|
+
} | {
|
|
620
|
+
/** @enum {string} */
|
|
621
|
+
code: "KEY_SCOPE_DENIED";
|
|
622
|
+
/**
|
|
623
|
+
* @description Human-readable error message
|
|
624
|
+
* @example Invalid input
|
|
625
|
+
*/
|
|
626
|
+
message: string;
|
|
627
|
+
/** @description Single-element list describing the failing scope */
|
|
628
|
+
details?: {
|
|
629
|
+
message: string;
|
|
630
|
+
context: {
|
|
631
|
+
/**
|
|
632
|
+
* @description Which scope rejected the request
|
|
633
|
+
* @enum {string}
|
|
634
|
+
*/
|
|
635
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
636
|
+
/** @description Minimum level the endpoint demands */
|
|
637
|
+
required: boolean | ("read" | "write");
|
|
638
|
+
/** @description Level resolved on the key */
|
|
639
|
+
actual: boolean | ("none" | "read" | "write");
|
|
640
|
+
};
|
|
641
|
+
}[];
|
|
642
|
+
} | {
|
|
643
|
+
/** @enum {string} */
|
|
644
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
645
|
+
/**
|
|
646
|
+
* @description Human-readable error message
|
|
647
|
+
* @example Invalid input
|
|
648
|
+
*/
|
|
649
|
+
message: string;
|
|
650
|
+
};
|
|
651
|
+
};
|
|
652
|
+
};
|
|
653
|
+
};
|
|
654
|
+
};
|
|
655
|
+
getIntent: {
|
|
656
|
+
parameters: {
|
|
657
|
+
query?: {
|
|
658
|
+
/** @description Whether to include intent operation details */
|
|
659
|
+
full?: boolean;
|
|
660
|
+
};
|
|
661
|
+
header: {
|
|
662
|
+
/** @description API version. Required; pinned to this document. */
|
|
663
|
+
"x-api-version": "2026-04.blanc";
|
|
664
|
+
/** @description API key. */
|
|
665
|
+
"x-api-key": string;
|
|
666
|
+
};
|
|
667
|
+
path: {
|
|
668
|
+
/** @description Unique identifier of the intent operation */
|
|
669
|
+
id: string;
|
|
670
|
+
};
|
|
671
|
+
cookie?: never;
|
|
672
|
+
};
|
|
673
|
+
requestBody?: never;
|
|
674
|
+
responses: {
|
|
675
|
+
/** @description OK */
|
|
676
|
+
200: {
|
|
677
|
+
headers: {
|
|
678
|
+
[name: string]: unknown;
|
|
679
|
+
};
|
|
680
|
+
content: {
|
|
681
|
+
"application/json": {
|
|
682
|
+
/**
|
|
683
|
+
* @description Overall intent status: PENDING, COMPLETED, or FAILED
|
|
684
|
+
* @example COMPLETED
|
|
685
|
+
* @enum {string}
|
|
686
|
+
*/
|
|
687
|
+
status: "PENDING" | "COMPLETED" | "FAILED";
|
|
688
|
+
/**
|
|
689
|
+
* @description Account address
|
|
690
|
+
* @example 0x3672e268a79bd4acc5ee646bdda652547c7a435c
|
|
691
|
+
*/
|
|
692
|
+
accountAddress: string;
|
|
693
|
+
/** @description Operations grouped by chain. Each chain has one or more operations (e.g. CLAIM, FILL, BRIDGE_FILL). */
|
|
694
|
+
operations: {
|
|
695
|
+
/**
|
|
696
|
+
* @description Chain ID
|
|
697
|
+
* @example 10
|
|
698
|
+
*/
|
|
699
|
+
chain: number;
|
|
700
|
+
/** @description Operations on this chain */
|
|
701
|
+
items: {
|
|
702
|
+
/**
|
|
703
|
+
* @description Operation type: CLAIM, FILL, or BRIDGE_FILL
|
|
704
|
+
* @example FILL
|
|
705
|
+
* @enum {string}
|
|
706
|
+
*/
|
|
707
|
+
type: "CLAIM" | "FILL" | "BRIDGE_FILL";
|
|
708
|
+
/**
|
|
709
|
+
* @description Operation status
|
|
710
|
+
* @example COMPLETED
|
|
711
|
+
* @enum {string}
|
|
712
|
+
*/
|
|
713
|
+
status: "PENDING" | "COMPLETED" | "FAILED";
|
|
714
|
+
/**
|
|
715
|
+
* @description Transaction hash (present when COMPLETED)
|
|
716
|
+
* @example 0xc1674f4671accbceec3f22c2c9cfa4f7aead7183f48df90c239e0d85d6c31e21
|
|
717
|
+
*/
|
|
718
|
+
txHash?: string;
|
|
719
|
+
/**
|
|
720
|
+
* @description Block timestamp in unix seconds (present when COMPLETED)
|
|
721
|
+
* @example 1633493192
|
|
722
|
+
*/
|
|
723
|
+
timestamp?: number;
|
|
724
|
+
}[];
|
|
725
|
+
}[];
|
|
726
|
+
/** @description Extended intent details, returned only when `full=true` */
|
|
727
|
+
details?: {
|
|
728
|
+
/**
|
|
729
|
+
* @description Intent id — pass to `GET /intents/:id`
|
|
730
|
+
* @example 12345678901234567890
|
|
731
|
+
*/
|
|
732
|
+
id: string;
|
|
733
|
+
/**
|
|
734
|
+
* @description Intent nonce (hex)
|
|
735
|
+
* @example 0x000000000000000000000000000000000000000000000000ab54a98ceb1f0ad2
|
|
736
|
+
*/
|
|
737
|
+
nonce: string;
|
|
738
|
+
/**
|
|
739
|
+
* @description Destination recipient account
|
|
740
|
+
* @example 0x3672e268a79bd4acc5ee646bdda652547c7a435c
|
|
741
|
+
*/
|
|
742
|
+
recipient: string;
|
|
743
|
+
/**
|
|
744
|
+
* @description Intent creation time in unix seconds
|
|
745
|
+
* @example 1633493100
|
|
746
|
+
*/
|
|
747
|
+
createdAt: number;
|
|
748
|
+
/**
|
|
749
|
+
* @description Time from creation to the latest leg landing, in ms. Null until any leg lands.
|
|
750
|
+
* @example 8100
|
|
751
|
+
*/
|
|
752
|
+
latencyMs: number | null;
|
|
753
|
+
/**
|
|
754
|
+
* @description Settlement layer; null if the routing strategy is unrecognized
|
|
755
|
+
* @example ACROSS
|
|
756
|
+
* @enum {string|null}
|
|
757
|
+
*/
|
|
758
|
+
settlementLayer: "INTENT_EXECUTOR" | "SAME_CHAIN" | "ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP" | null;
|
|
759
|
+
/** @description Source (claim) legs */
|
|
760
|
+
source: {
|
|
761
|
+
/**
|
|
762
|
+
* @description Chain ID
|
|
763
|
+
* @example 10
|
|
764
|
+
*/
|
|
765
|
+
chain: number;
|
|
766
|
+
/** @description All tokens moved on this leg */
|
|
767
|
+
tokens: {
|
|
768
|
+
/**
|
|
769
|
+
* @description Token address
|
|
770
|
+
* @example 0x0b2c639c533813f4aa9d7837caf62653d097ff85
|
|
771
|
+
*/
|
|
772
|
+
token: string;
|
|
773
|
+
/**
|
|
774
|
+
* @description Token amount in base units
|
|
775
|
+
* @example 1000000
|
|
776
|
+
*/
|
|
777
|
+
amount: string;
|
|
778
|
+
}[];
|
|
779
|
+
/**
|
|
780
|
+
* @description Transaction hash (present once the leg lands)
|
|
781
|
+
* @example 0xc1674f4671accbceec3f22c2c9cfa4f7aead7183f48df90c239e0d85d6c31e21
|
|
782
|
+
*/
|
|
783
|
+
txHash?: string;
|
|
784
|
+
/**
|
|
785
|
+
* @description Block timestamp in unix seconds (present once landed)
|
|
786
|
+
* @example 1633493192
|
|
787
|
+
*/
|
|
788
|
+
timestamp?: number;
|
|
789
|
+
/**
|
|
790
|
+
* @description Leg status
|
|
791
|
+
* @example COMPLETED
|
|
792
|
+
* @enum {string}
|
|
793
|
+
*/
|
|
794
|
+
status: "PENDING" | "COMPLETED" | "FAILED";
|
|
795
|
+
}[];
|
|
796
|
+
/** @description Destination (fill) leg; null before a fill is dispatched */
|
|
797
|
+
destination: {
|
|
798
|
+
/**
|
|
799
|
+
* @description Chain ID
|
|
800
|
+
* @example 10
|
|
801
|
+
*/
|
|
802
|
+
chain: number;
|
|
803
|
+
/** @description All tokens moved on this leg */
|
|
804
|
+
tokens: {
|
|
805
|
+
/**
|
|
806
|
+
* @description Token address
|
|
807
|
+
* @example 0x0b2c639c533813f4aa9d7837caf62653d097ff85
|
|
808
|
+
*/
|
|
809
|
+
token: string;
|
|
810
|
+
/**
|
|
811
|
+
* @description Token amount in base units
|
|
812
|
+
* @example 1000000
|
|
813
|
+
*/
|
|
814
|
+
amount: string;
|
|
815
|
+
}[];
|
|
816
|
+
/**
|
|
817
|
+
* @description Transaction hash (present once the leg lands)
|
|
818
|
+
* @example 0xc1674f4671accbceec3f22c2c9cfa4f7aead7183f48df90c239e0d85d6c31e21
|
|
819
|
+
*/
|
|
820
|
+
txHash?: string;
|
|
821
|
+
/**
|
|
822
|
+
* @description Block timestamp in unix seconds (present once landed)
|
|
823
|
+
* @example 1633493192
|
|
824
|
+
*/
|
|
825
|
+
timestamp?: number;
|
|
826
|
+
/**
|
|
827
|
+
* @description Leg status
|
|
828
|
+
* @example COMPLETED
|
|
829
|
+
* @enum {string}
|
|
830
|
+
*/
|
|
831
|
+
status: "PENDING" | "COMPLETED" | "FAILED";
|
|
832
|
+
} | null;
|
|
833
|
+
/** @description Calls the intent executes — preClaim ops on their origin chain and destination ops on the destination chain. The signed intended calls; no per-call result is recorded. Empty for token-only intents with no custom calls. */
|
|
834
|
+
executions: {
|
|
835
|
+
/**
|
|
836
|
+
* @description Chain ID the call executes on
|
|
837
|
+
* @example 8453
|
|
838
|
+
*/
|
|
839
|
+
chain: number;
|
|
840
|
+
/**
|
|
841
|
+
* @description PRE_CLAIM runs on the origin chain before funds are claimed; DESTINATION runs on the destination chain after funds are delivered.
|
|
842
|
+
* @example DESTINATION
|
|
843
|
+
* @enum {string}
|
|
844
|
+
*/
|
|
845
|
+
phase: "PRE_CLAIM" | "DESTINATION";
|
|
846
|
+
/**
|
|
847
|
+
* @description Call target address
|
|
848
|
+
* @example 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
|
|
849
|
+
*/
|
|
850
|
+
to: string;
|
|
851
|
+
/**
|
|
852
|
+
* @description Native value sent with the call, in wei (base units)
|
|
853
|
+
* @example 0
|
|
854
|
+
*/
|
|
855
|
+
value: string;
|
|
856
|
+
/**
|
|
857
|
+
* @description Encoded calldata
|
|
858
|
+
* @example 0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240
|
|
859
|
+
*/
|
|
860
|
+
data: string;
|
|
861
|
+
}[];
|
|
862
|
+
/** @description Cost summary from the recorded fee sponsorship. Amounts are raw base units; omitted when no sponsorship row exists. */
|
|
863
|
+
cost: {
|
|
864
|
+
/**
|
|
865
|
+
* @description Whether gas/fees were sponsored for this intent
|
|
866
|
+
* @example true
|
|
867
|
+
*/
|
|
868
|
+
sponsored: boolean;
|
|
869
|
+
/**
|
|
870
|
+
* @description Sponsored value in fee-token base units
|
|
871
|
+
* @example 210000
|
|
872
|
+
*/
|
|
873
|
+
sponsoredValue?: string;
|
|
874
|
+
/**
|
|
875
|
+
* @description Protocol fee in fee-token base units
|
|
876
|
+
* @example 10000
|
|
877
|
+
*/
|
|
878
|
+
protocolFee?: string;
|
|
879
|
+
};
|
|
880
|
+
};
|
|
881
|
+
};
|
|
882
|
+
};
|
|
883
|
+
};
|
|
884
|
+
/** @description Invalid intent ID */
|
|
885
|
+
400: {
|
|
886
|
+
headers: {
|
|
887
|
+
[name: string]: unknown;
|
|
888
|
+
};
|
|
889
|
+
content: {
|
|
890
|
+
"application/json": {
|
|
891
|
+
/** @enum {string} */
|
|
892
|
+
code: "VALIDATION_ERROR";
|
|
893
|
+
/**
|
|
894
|
+
* @description Human-readable error message
|
|
895
|
+
* @example Invalid input
|
|
896
|
+
*/
|
|
897
|
+
message: string;
|
|
898
|
+
/** @description Per-field validation issues */
|
|
899
|
+
details?: {
|
|
900
|
+
/** @description Human-readable issue description */
|
|
901
|
+
message: string;
|
|
902
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
903
|
+
context?: {
|
|
904
|
+
[key: string]: unknown;
|
|
905
|
+
};
|
|
906
|
+
}[];
|
|
907
|
+
} | {
|
|
908
|
+
/** @enum {string} */
|
|
909
|
+
code: "SIMULATION_FAILED";
|
|
910
|
+
/**
|
|
911
|
+
* @description Human-readable error message
|
|
912
|
+
* @example Invalid input
|
|
913
|
+
*/
|
|
914
|
+
message: string;
|
|
915
|
+
/** @description Classified on-chain simulation failure details */
|
|
916
|
+
details?: {
|
|
917
|
+
nonce?: string;
|
|
918
|
+
category: string;
|
|
919
|
+
errorSelector: string;
|
|
920
|
+
errorName: string;
|
|
921
|
+
errorArgs?: {
|
|
922
|
+
[key: string]: string;
|
|
923
|
+
};
|
|
924
|
+
retryable: boolean;
|
|
925
|
+
/** @enum {string} */
|
|
926
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
927
|
+
simulations?: unknown;
|
|
928
|
+
} & {
|
|
929
|
+
[key: string]: unknown;
|
|
930
|
+
};
|
|
931
|
+
} | {
|
|
932
|
+
/** @enum {string} */
|
|
933
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
934
|
+
/**
|
|
935
|
+
* @description Human-readable error message
|
|
936
|
+
* @example Invalid input
|
|
937
|
+
*/
|
|
938
|
+
message: string;
|
|
939
|
+
/** @description Fillable subset and unfillable remainder */
|
|
940
|
+
details?: {
|
|
941
|
+
/** @description Intents fillable with current liquidity */
|
|
942
|
+
availableIntents: {
|
|
943
|
+
[key: string]: string;
|
|
944
|
+
}[];
|
|
945
|
+
/** @description Token amounts that cannot be filled */
|
|
946
|
+
unfillable: {
|
|
947
|
+
[key: string]: string;
|
|
948
|
+
};
|
|
949
|
+
};
|
|
950
|
+
} | {
|
|
951
|
+
/** @enum {string} */
|
|
952
|
+
code: "KEY_SCOPE_DENIED";
|
|
953
|
+
/**
|
|
954
|
+
* @description Human-readable error message
|
|
955
|
+
* @example Invalid input
|
|
956
|
+
*/
|
|
957
|
+
message: string;
|
|
958
|
+
/** @description Single-element list describing the failing scope */
|
|
959
|
+
details?: {
|
|
960
|
+
message: string;
|
|
961
|
+
context: {
|
|
962
|
+
/**
|
|
963
|
+
* @description Which scope rejected the request
|
|
964
|
+
* @enum {string}
|
|
965
|
+
*/
|
|
966
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
967
|
+
/** @description Minimum level the endpoint demands */
|
|
968
|
+
required: boolean | ("read" | "write");
|
|
969
|
+
/** @description Level resolved on the key */
|
|
970
|
+
actual: boolean | ("none" | "read" | "write");
|
|
971
|
+
};
|
|
972
|
+
}[];
|
|
973
|
+
} | {
|
|
974
|
+
/** @enum {string} */
|
|
975
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
976
|
+
/**
|
|
977
|
+
* @description Human-readable error message
|
|
978
|
+
* @example Invalid input
|
|
979
|
+
*/
|
|
980
|
+
message: string;
|
|
981
|
+
};
|
|
982
|
+
};
|
|
983
|
+
};
|
|
984
|
+
/** @description API key scope denied */
|
|
985
|
+
403: {
|
|
986
|
+
headers: {
|
|
987
|
+
[name: string]: unknown;
|
|
988
|
+
};
|
|
989
|
+
content: {
|
|
990
|
+
"application/json": {
|
|
991
|
+
/** @enum {string} */
|
|
992
|
+
code: "VALIDATION_ERROR";
|
|
993
|
+
/**
|
|
994
|
+
* @description Human-readable error message
|
|
995
|
+
* @example Invalid input
|
|
996
|
+
*/
|
|
997
|
+
message: string;
|
|
998
|
+
/** @description Per-field validation issues */
|
|
999
|
+
details?: {
|
|
1000
|
+
/** @description Human-readable issue description */
|
|
1001
|
+
message: string;
|
|
1002
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
1003
|
+
context?: {
|
|
1004
|
+
[key: string]: unknown;
|
|
1005
|
+
};
|
|
1006
|
+
}[];
|
|
1007
|
+
} | {
|
|
1008
|
+
/** @enum {string} */
|
|
1009
|
+
code: "SIMULATION_FAILED";
|
|
1010
|
+
/**
|
|
1011
|
+
* @description Human-readable error message
|
|
1012
|
+
* @example Invalid input
|
|
1013
|
+
*/
|
|
1014
|
+
message: string;
|
|
1015
|
+
/** @description Classified on-chain simulation failure details */
|
|
1016
|
+
details?: {
|
|
1017
|
+
nonce?: string;
|
|
1018
|
+
category: string;
|
|
1019
|
+
errorSelector: string;
|
|
1020
|
+
errorName: string;
|
|
1021
|
+
errorArgs?: {
|
|
1022
|
+
[key: string]: string;
|
|
1023
|
+
};
|
|
1024
|
+
retryable: boolean;
|
|
1025
|
+
/** @enum {string} */
|
|
1026
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
1027
|
+
simulations?: unknown;
|
|
1028
|
+
} & {
|
|
1029
|
+
[key: string]: unknown;
|
|
1030
|
+
};
|
|
1031
|
+
} | {
|
|
1032
|
+
/** @enum {string} */
|
|
1033
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
1034
|
+
/**
|
|
1035
|
+
* @description Human-readable error message
|
|
1036
|
+
* @example Invalid input
|
|
1037
|
+
*/
|
|
1038
|
+
message: string;
|
|
1039
|
+
/** @description Fillable subset and unfillable remainder */
|
|
1040
|
+
details?: {
|
|
1041
|
+
/** @description Intents fillable with current liquidity */
|
|
1042
|
+
availableIntents: {
|
|
1043
|
+
[key: string]: string;
|
|
1044
|
+
}[];
|
|
1045
|
+
/** @description Token amounts that cannot be filled */
|
|
1046
|
+
unfillable: {
|
|
1047
|
+
[key: string]: string;
|
|
1048
|
+
};
|
|
1049
|
+
};
|
|
1050
|
+
} | {
|
|
1051
|
+
/** @enum {string} */
|
|
1052
|
+
code: "KEY_SCOPE_DENIED";
|
|
1053
|
+
/**
|
|
1054
|
+
* @description Human-readable error message
|
|
1055
|
+
* @example Invalid input
|
|
1056
|
+
*/
|
|
1057
|
+
message: string;
|
|
1058
|
+
/** @description Single-element list describing the failing scope */
|
|
1059
|
+
details?: {
|
|
1060
|
+
message: string;
|
|
1061
|
+
context: {
|
|
1062
|
+
/**
|
|
1063
|
+
* @description Which scope rejected the request
|
|
1064
|
+
* @enum {string}
|
|
1065
|
+
*/
|
|
1066
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
1067
|
+
/** @description Minimum level the endpoint demands */
|
|
1068
|
+
required: boolean | ("read" | "write");
|
|
1069
|
+
/** @description Level resolved on the key */
|
|
1070
|
+
actual: boolean | ("none" | "read" | "write");
|
|
1071
|
+
};
|
|
1072
|
+
}[];
|
|
1073
|
+
} | {
|
|
1074
|
+
/** @enum {string} */
|
|
1075
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
1076
|
+
/**
|
|
1077
|
+
* @description Human-readable error message
|
|
1078
|
+
* @example Invalid input
|
|
1079
|
+
*/
|
|
1080
|
+
message: string;
|
|
1081
|
+
};
|
|
1082
|
+
};
|
|
1083
|
+
};
|
|
1084
|
+
/** @description Intent ID not found */
|
|
1085
|
+
404: {
|
|
1086
|
+
headers: {
|
|
1087
|
+
[name: string]: unknown;
|
|
1088
|
+
};
|
|
1089
|
+
content: {
|
|
1090
|
+
"application/json": {
|
|
1091
|
+
/** @enum {string} */
|
|
1092
|
+
code: "VALIDATION_ERROR";
|
|
1093
|
+
/**
|
|
1094
|
+
* @description Human-readable error message
|
|
1095
|
+
* @example Invalid input
|
|
1096
|
+
*/
|
|
1097
|
+
message: string;
|
|
1098
|
+
/** @description Per-field validation issues */
|
|
1099
|
+
details?: {
|
|
1100
|
+
/** @description Human-readable issue description */
|
|
1101
|
+
message: string;
|
|
1102
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
1103
|
+
context?: {
|
|
1104
|
+
[key: string]: unknown;
|
|
1105
|
+
};
|
|
1106
|
+
}[];
|
|
1107
|
+
} | {
|
|
1108
|
+
/** @enum {string} */
|
|
1109
|
+
code: "SIMULATION_FAILED";
|
|
1110
|
+
/**
|
|
1111
|
+
* @description Human-readable error message
|
|
1112
|
+
* @example Invalid input
|
|
1113
|
+
*/
|
|
1114
|
+
message: string;
|
|
1115
|
+
/** @description Classified on-chain simulation failure details */
|
|
1116
|
+
details?: {
|
|
1117
|
+
nonce?: string;
|
|
1118
|
+
category: string;
|
|
1119
|
+
errorSelector: string;
|
|
1120
|
+
errorName: string;
|
|
1121
|
+
errorArgs?: {
|
|
1122
|
+
[key: string]: string;
|
|
1123
|
+
};
|
|
1124
|
+
retryable: boolean;
|
|
1125
|
+
/** @enum {string} */
|
|
1126
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
1127
|
+
simulations?: unknown;
|
|
1128
|
+
} & {
|
|
1129
|
+
[key: string]: unknown;
|
|
1130
|
+
};
|
|
1131
|
+
} | {
|
|
1132
|
+
/** @enum {string} */
|
|
1133
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
1134
|
+
/**
|
|
1135
|
+
* @description Human-readable error message
|
|
1136
|
+
* @example Invalid input
|
|
1137
|
+
*/
|
|
1138
|
+
message: string;
|
|
1139
|
+
/** @description Fillable subset and unfillable remainder */
|
|
1140
|
+
details?: {
|
|
1141
|
+
/** @description Intents fillable with current liquidity */
|
|
1142
|
+
availableIntents: {
|
|
1143
|
+
[key: string]: string;
|
|
1144
|
+
}[];
|
|
1145
|
+
/** @description Token amounts that cannot be filled */
|
|
1146
|
+
unfillable: {
|
|
1147
|
+
[key: string]: string;
|
|
1148
|
+
};
|
|
1149
|
+
};
|
|
1150
|
+
} | {
|
|
1151
|
+
/** @enum {string} */
|
|
1152
|
+
code: "KEY_SCOPE_DENIED";
|
|
1153
|
+
/**
|
|
1154
|
+
* @description Human-readable error message
|
|
1155
|
+
* @example Invalid input
|
|
1156
|
+
*/
|
|
1157
|
+
message: string;
|
|
1158
|
+
/** @description Single-element list describing the failing scope */
|
|
1159
|
+
details?: {
|
|
1160
|
+
message: string;
|
|
1161
|
+
context: {
|
|
1162
|
+
/**
|
|
1163
|
+
* @description Which scope rejected the request
|
|
1164
|
+
* @enum {string}
|
|
1165
|
+
*/
|
|
1166
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
1167
|
+
/** @description Minimum level the endpoint demands */
|
|
1168
|
+
required: boolean | ("read" | "write");
|
|
1169
|
+
/** @description Level resolved on the key */
|
|
1170
|
+
actual: boolean | ("none" | "read" | "write");
|
|
1171
|
+
};
|
|
1172
|
+
}[];
|
|
1173
|
+
} | {
|
|
1174
|
+
/** @enum {string} */
|
|
1175
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
1176
|
+
/**
|
|
1177
|
+
* @description Human-readable error message
|
|
1178
|
+
* @example Invalid input
|
|
1179
|
+
*/
|
|
1180
|
+
message: string;
|
|
1181
|
+
};
|
|
1182
|
+
};
|
|
1183
|
+
};
|
|
1184
|
+
/** @description Server error */
|
|
1185
|
+
500: {
|
|
1186
|
+
headers: {
|
|
1187
|
+
[name: string]: unknown;
|
|
1188
|
+
};
|
|
1189
|
+
content: {
|
|
1190
|
+
"application/json": {
|
|
1191
|
+
/** @enum {string} */
|
|
1192
|
+
code: "VALIDATION_ERROR";
|
|
1193
|
+
/**
|
|
1194
|
+
* @description Human-readable error message
|
|
1195
|
+
* @example Invalid input
|
|
1196
|
+
*/
|
|
1197
|
+
message: string;
|
|
1198
|
+
/** @description Per-field validation issues */
|
|
1199
|
+
details?: {
|
|
1200
|
+
/** @description Human-readable issue description */
|
|
1201
|
+
message: string;
|
|
1202
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
1203
|
+
context?: {
|
|
1204
|
+
[key: string]: unknown;
|
|
1205
|
+
};
|
|
1206
|
+
}[];
|
|
1207
|
+
} | {
|
|
1208
|
+
/** @enum {string} */
|
|
1209
|
+
code: "SIMULATION_FAILED";
|
|
1210
|
+
/**
|
|
1211
|
+
* @description Human-readable error message
|
|
1212
|
+
* @example Invalid input
|
|
1213
|
+
*/
|
|
1214
|
+
message: string;
|
|
1215
|
+
/** @description Classified on-chain simulation failure details */
|
|
1216
|
+
details?: {
|
|
1217
|
+
nonce?: string;
|
|
1218
|
+
category: string;
|
|
1219
|
+
errorSelector: string;
|
|
1220
|
+
errorName: string;
|
|
1221
|
+
errorArgs?: {
|
|
1222
|
+
[key: string]: string;
|
|
1223
|
+
};
|
|
1224
|
+
retryable: boolean;
|
|
1225
|
+
/** @enum {string} */
|
|
1226
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
1227
|
+
simulations?: unknown;
|
|
1228
|
+
} & {
|
|
1229
|
+
[key: string]: unknown;
|
|
1230
|
+
};
|
|
1231
|
+
} | {
|
|
1232
|
+
/** @enum {string} */
|
|
1233
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
1234
|
+
/**
|
|
1235
|
+
* @description Human-readable error message
|
|
1236
|
+
* @example Invalid input
|
|
1237
|
+
*/
|
|
1238
|
+
message: string;
|
|
1239
|
+
/** @description Fillable subset and unfillable remainder */
|
|
1240
|
+
details?: {
|
|
1241
|
+
/** @description Intents fillable with current liquidity */
|
|
1242
|
+
availableIntents: {
|
|
1243
|
+
[key: string]: string;
|
|
1244
|
+
}[];
|
|
1245
|
+
/** @description Token amounts that cannot be filled */
|
|
1246
|
+
unfillable: {
|
|
1247
|
+
[key: string]: string;
|
|
1248
|
+
};
|
|
1249
|
+
};
|
|
1250
|
+
} | {
|
|
1251
|
+
/** @enum {string} */
|
|
1252
|
+
code: "KEY_SCOPE_DENIED";
|
|
1253
|
+
/**
|
|
1254
|
+
* @description Human-readable error message
|
|
1255
|
+
* @example Invalid input
|
|
1256
|
+
*/
|
|
1257
|
+
message: string;
|
|
1258
|
+
/** @description Single-element list describing the failing scope */
|
|
1259
|
+
details?: {
|
|
1260
|
+
message: string;
|
|
1261
|
+
context: {
|
|
1262
|
+
/**
|
|
1263
|
+
* @description Which scope rejected the request
|
|
1264
|
+
* @enum {string}
|
|
1265
|
+
*/
|
|
1266
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
1267
|
+
/** @description Minimum level the endpoint demands */
|
|
1268
|
+
required: boolean | ("read" | "write");
|
|
1269
|
+
/** @description Level resolved on the key */
|
|
1270
|
+
actual: boolean | ("none" | "read" | "write");
|
|
1271
|
+
};
|
|
1272
|
+
}[];
|
|
1273
|
+
} | {
|
|
1274
|
+
/** @enum {string} */
|
|
1275
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
1276
|
+
/**
|
|
1277
|
+
* @description Human-readable error message
|
|
1278
|
+
* @example Invalid input
|
|
1279
|
+
*/
|
|
1280
|
+
message: string;
|
|
1281
|
+
};
|
|
1282
|
+
};
|
|
1283
|
+
};
|
|
1284
|
+
};
|
|
1285
|
+
};
|
|
1286
|
+
getPortfolio: {
|
|
1287
|
+
parameters: {
|
|
1288
|
+
query?: {
|
|
1289
|
+
chainIds?: string[] | string;
|
|
1290
|
+
tokens?: string[] | string;
|
|
1291
|
+
filterEmpty?: boolean;
|
|
1292
|
+
};
|
|
1293
|
+
header: {
|
|
1294
|
+
/** @description API version. Required; pinned to this document. */
|
|
1295
|
+
"x-api-version": "2026-04.blanc";
|
|
1296
|
+
/** @description API key. */
|
|
1297
|
+
"x-api-key": string;
|
|
1298
|
+
};
|
|
1299
|
+
path: {
|
|
1300
|
+
accountAddress: string;
|
|
1301
|
+
};
|
|
1302
|
+
cookie?: never;
|
|
1303
|
+
};
|
|
1304
|
+
requestBody?: never;
|
|
1305
|
+
responses: {
|
|
1306
|
+
/** @description OK */
|
|
1307
|
+
200: {
|
|
1308
|
+
headers: {
|
|
1309
|
+
[name: string]: unknown;
|
|
1310
|
+
};
|
|
1311
|
+
content: {
|
|
1312
|
+
"application/json": {
|
|
1313
|
+
/** @description Array of token portfolio entries */
|
|
1314
|
+
portfolio: {
|
|
1315
|
+
/**
|
|
1316
|
+
* @description Short name (symbol) of the token
|
|
1317
|
+
* @example USDC
|
|
1318
|
+
*/
|
|
1319
|
+
symbol: string;
|
|
1320
|
+
/** @description Array of token balances per chain */
|
|
1321
|
+
chains: {
|
|
1322
|
+
/**
|
|
1323
|
+
* @description Chain ID where the token balance exists (CAIP-2)
|
|
1324
|
+
* @example eip155:1
|
|
1325
|
+
*/
|
|
1326
|
+
chainId: string;
|
|
1327
|
+
/**
|
|
1328
|
+
* @description Token contract address on this chain
|
|
1329
|
+
* @example 0xa0B86A33e6441B8C4505B8C4505b8C4505B8C450
|
|
1330
|
+
*/
|
|
1331
|
+
address: string;
|
|
1332
|
+
/**
|
|
1333
|
+
* @description Decimal places for this token on this chain. Sourced per-chain because the same logical token can have different on-chain decimals across chains (e.g. USDC: 6 on Ethereum, 18 on BNB Smart Chain).
|
|
1334
|
+
* @example 6
|
|
1335
|
+
*/
|
|
1336
|
+
decimals: number;
|
|
1337
|
+
/**
|
|
1338
|
+
* Format: uint256
|
|
1339
|
+
* @description Token balance on this chain in the token's smallest unit
|
|
1340
|
+
* @example 1000000
|
|
1341
|
+
*/
|
|
1342
|
+
amount: string;
|
|
1343
|
+
}[];
|
|
1344
|
+
}[];
|
|
1345
|
+
};
|
|
1346
|
+
};
|
|
1347
|
+
};
|
|
1348
|
+
/** @description Invalid request parameters */
|
|
1349
|
+
400: {
|
|
1350
|
+
headers: {
|
|
1351
|
+
[name: string]: unknown;
|
|
1352
|
+
};
|
|
1353
|
+
content: {
|
|
1354
|
+
"application/json": {
|
|
1355
|
+
/** @enum {string} */
|
|
1356
|
+
code: "VALIDATION_ERROR";
|
|
1357
|
+
/**
|
|
1358
|
+
* @description Human-readable error message
|
|
1359
|
+
* @example Invalid input
|
|
1360
|
+
*/
|
|
1361
|
+
message: string;
|
|
1362
|
+
/** @description Per-field validation issues */
|
|
1363
|
+
details?: {
|
|
1364
|
+
/** @description Human-readable issue description */
|
|
1365
|
+
message: string;
|
|
1366
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
1367
|
+
context?: {
|
|
1368
|
+
[key: string]: unknown;
|
|
1369
|
+
};
|
|
1370
|
+
}[];
|
|
1371
|
+
} | {
|
|
1372
|
+
/** @enum {string} */
|
|
1373
|
+
code: "SIMULATION_FAILED";
|
|
1374
|
+
/**
|
|
1375
|
+
* @description Human-readable error message
|
|
1376
|
+
* @example Invalid input
|
|
1377
|
+
*/
|
|
1378
|
+
message: string;
|
|
1379
|
+
/** @description Classified on-chain simulation failure details */
|
|
1380
|
+
details?: {
|
|
1381
|
+
nonce?: string;
|
|
1382
|
+
category: string;
|
|
1383
|
+
errorSelector: string;
|
|
1384
|
+
errorName: string;
|
|
1385
|
+
errorArgs?: {
|
|
1386
|
+
[key: string]: string;
|
|
1387
|
+
};
|
|
1388
|
+
retryable: boolean;
|
|
1389
|
+
/** @enum {string} */
|
|
1390
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
1391
|
+
simulations?: unknown;
|
|
1392
|
+
} & {
|
|
1393
|
+
[key: string]: unknown;
|
|
1394
|
+
};
|
|
1395
|
+
} | {
|
|
1396
|
+
/** @enum {string} */
|
|
1397
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
1398
|
+
/**
|
|
1399
|
+
* @description Human-readable error message
|
|
1400
|
+
* @example Invalid input
|
|
1401
|
+
*/
|
|
1402
|
+
message: string;
|
|
1403
|
+
/** @description Fillable subset and unfillable remainder */
|
|
1404
|
+
details?: {
|
|
1405
|
+
/** @description Intents fillable with current liquidity */
|
|
1406
|
+
availableIntents: {
|
|
1407
|
+
[key: string]: string;
|
|
1408
|
+
}[];
|
|
1409
|
+
/** @description Token amounts that cannot be filled */
|
|
1410
|
+
unfillable: {
|
|
1411
|
+
[key: string]: string;
|
|
1412
|
+
};
|
|
1413
|
+
};
|
|
1414
|
+
} | {
|
|
1415
|
+
/** @enum {string} */
|
|
1416
|
+
code: "KEY_SCOPE_DENIED";
|
|
1417
|
+
/**
|
|
1418
|
+
* @description Human-readable error message
|
|
1419
|
+
* @example Invalid input
|
|
1420
|
+
*/
|
|
1421
|
+
message: string;
|
|
1422
|
+
/** @description Single-element list describing the failing scope */
|
|
1423
|
+
details?: {
|
|
1424
|
+
message: string;
|
|
1425
|
+
context: {
|
|
1426
|
+
/**
|
|
1427
|
+
* @description Which scope rejected the request
|
|
1428
|
+
* @enum {string}
|
|
1429
|
+
*/
|
|
1430
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
1431
|
+
/** @description Minimum level the endpoint demands */
|
|
1432
|
+
required: boolean | ("read" | "write");
|
|
1433
|
+
/** @description Level resolved on the key */
|
|
1434
|
+
actual: boolean | ("none" | "read" | "write");
|
|
1435
|
+
};
|
|
1436
|
+
}[];
|
|
1437
|
+
} | {
|
|
1438
|
+
/** @enum {string} */
|
|
1439
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
1440
|
+
/**
|
|
1441
|
+
* @description Human-readable error message
|
|
1442
|
+
* @example Invalid input
|
|
1443
|
+
*/
|
|
1444
|
+
message: string;
|
|
1445
|
+
};
|
|
1446
|
+
};
|
|
1447
|
+
};
|
|
1448
|
+
/** @description API key scope denied */
|
|
1449
|
+
403: {
|
|
1450
|
+
headers: {
|
|
1451
|
+
[name: string]: unknown;
|
|
1452
|
+
};
|
|
1453
|
+
content: {
|
|
1454
|
+
"application/json": {
|
|
1455
|
+
/** @enum {string} */
|
|
1456
|
+
code: "VALIDATION_ERROR";
|
|
1457
|
+
/**
|
|
1458
|
+
* @description Human-readable error message
|
|
1459
|
+
* @example Invalid input
|
|
1460
|
+
*/
|
|
1461
|
+
message: string;
|
|
1462
|
+
/** @description Per-field validation issues */
|
|
1463
|
+
details?: {
|
|
1464
|
+
/** @description Human-readable issue description */
|
|
1465
|
+
message: string;
|
|
1466
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
1467
|
+
context?: {
|
|
1468
|
+
[key: string]: unknown;
|
|
1469
|
+
};
|
|
1470
|
+
}[];
|
|
1471
|
+
} | {
|
|
1472
|
+
/** @enum {string} */
|
|
1473
|
+
code: "SIMULATION_FAILED";
|
|
1474
|
+
/**
|
|
1475
|
+
* @description Human-readable error message
|
|
1476
|
+
* @example Invalid input
|
|
1477
|
+
*/
|
|
1478
|
+
message: string;
|
|
1479
|
+
/** @description Classified on-chain simulation failure details */
|
|
1480
|
+
details?: {
|
|
1481
|
+
nonce?: string;
|
|
1482
|
+
category: string;
|
|
1483
|
+
errorSelector: string;
|
|
1484
|
+
errorName: string;
|
|
1485
|
+
errorArgs?: {
|
|
1486
|
+
[key: string]: string;
|
|
1487
|
+
};
|
|
1488
|
+
retryable: boolean;
|
|
1489
|
+
/** @enum {string} */
|
|
1490
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
1491
|
+
simulations?: unknown;
|
|
1492
|
+
} & {
|
|
1493
|
+
[key: string]: unknown;
|
|
1494
|
+
};
|
|
1495
|
+
} | {
|
|
1496
|
+
/** @enum {string} */
|
|
1497
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
1498
|
+
/**
|
|
1499
|
+
* @description Human-readable error message
|
|
1500
|
+
* @example Invalid input
|
|
1501
|
+
*/
|
|
1502
|
+
message: string;
|
|
1503
|
+
/** @description Fillable subset and unfillable remainder */
|
|
1504
|
+
details?: {
|
|
1505
|
+
/** @description Intents fillable with current liquidity */
|
|
1506
|
+
availableIntents: {
|
|
1507
|
+
[key: string]: string;
|
|
1508
|
+
}[];
|
|
1509
|
+
/** @description Token amounts that cannot be filled */
|
|
1510
|
+
unfillable: {
|
|
1511
|
+
[key: string]: string;
|
|
1512
|
+
};
|
|
1513
|
+
};
|
|
1514
|
+
} | {
|
|
1515
|
+
/** @enum {string} */
|
|
1516
|
+
code: "KEY_SCOPE_DENIED";
|
|
1517
|
+
/**
|
|
1518
|
+
* @description Human-readable error message
|
|
1519
|
+
* @example Invalid input
|
|
1520
|
+
*/
|
|
1521
|
+
message: string;
|
|
1522
|
+
/** @description Single-element list describing the failing scope */
|
|
1523
|
+
details?: {
|
|
1524
|
+
message: string;
|
|
1525
|
+
context: {
|
|
1526
|
+
/**
|
|
1527
|
+
* @description Which scope rejected the request
|
|
1528
|
+
* @enum {string}
|
|
1529
|
+
*/
|
|
1530
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
1531
|
+
/** @description Minimum level the endpoint demands */
|
|
1532
|
+
required: boolean | ("read" | "write");
|
|
1533
|
+
/** @description Level resolved on the key */
|
|
1534
|
+
actual: boolean | ("none" | "read" | "write");
|
|
1535
|
+
};
|
|
1536
|
+
}[];
|
|
1537
|
+
} | {
|
|
1538
|
+
/** @enum {string} */
|
|
1539
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
1540
|
+
/**
|
|
1541
|
+
* @description Human-readable error message
|
|
1542
|
+
* @example Invalid input
|
|
1543
|
+
*/
|
|
1544
|
+
message: string;
|
|
1545
|
+
};
|
|
1546
|
+
};
|
|
1547
|
+
};
|
|
1548
|
+
/** @description Server error */
|
|
1549
|
+
500: {
|
|
1550
|
+
headers: {
|
|
1551
|
+
[name: string]: unknown;
|
|
1552
|
+
};
|
|
1553
|
+
content: {
|
|
1554
|
+
"application/json": {
|
|
1555
|
+
/** @enum {string} */
|
|
1556
|
+
code: "VALIDATION_ERROR";
|
|
1557
|
+
/**
|
|
1558
|
+
* @description Human-readable error message
|
|
1559
|
+
* @example Invalid input
|
|
1560
|
+
*/
|
|
1561
|
+
message: string;
|
|
1562
|
+
/** @description Per-field validation issues */
|
|
1563
|
+
details?: {
|
|
1564
|
+
/** @description Human-readable issue description */
|
|
1565
|
+
message: string;
|
|
1566
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
1567
|
+
context?: {
|
|
1568
|
+
[key: string]: unknown;
|
|
1569
|
+
};
|
|
1570
|
+
}[];
|
|
1571
|
+
} | {
|
|
1572
|
+
/** @enum {string} */
|
|
1573
|
+
code: "SIMULATION_FAILED";
|
|
1574
|
+
/**
|
|
1575
|
+
* @description Human-readable error message
|
|
1576
|
+
* @example Invalid input
|
|
1577
|
+
*/
|
|
1578
|
+
message: string;
|
|
1579
|
+
/** @description Classified on-chain simulation failure details */
|
|
1580
|
+
details?: {
|
|
1581
|
+
nonce?: string;
|
|
1582
|
+
category: string;
|
|
1583
|
+
errorSelector: string;
|
|
1584
|
+
errorName: string;
|
|
1585
|
+
errorArgs?: {
|
|
1586
|
+
[key: string]: string;
|
|
1587
|
+
};
|
|
1588
|
+
retryable: boolean;
|
|
1589
|
+
/** @enum {string} */
|
|
1590
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
1591
|
+
simulations?: unknown;
|
|
1592
|
+
} & {
|
|
1593
|
+
[key: string]: unknown;
|
|
1594
|
+
};
|
|
1595
|
+
} | {
|
|
1596
|
+
/** @enum {string} */
|
|
1597
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
1598
|
+
/**
|
|
1599
|
+
* @description Human-readable error message
|
|
1600
|
+
* @example Invalid input
|
|
1601
|
+
*/
|
|
1602
|
+
message: string;
|
|
1603
|
+
/** @description Fillable subset and unfillable remainder */
|
|
1604
|
+
details?: {
|
|
1605
|
+
/** @description Intents fillable with current liquidity */
|
|
1606
|
+
availableIntents: {
|
|
1607
|
+
[key: string]: string;
|
|
1608
|
+
}[];
|
|
1609
|
+
/** @description Token amounts that cannot be filled */
|
|
1610
|
+
unfillable: {
|
|
1611
|
+
[key: string]: string;
|
|
1612
|
+
};
|
|
1613
|
+
};
|
|
1614
|
+
} | {
|
|
1615
|
+
/** @enum {string} */
|
|
1616
|
+
code: "KEY_SCOPE_DENIED";
|
|
1617
|
+
/**
|
|
1618
|
+
* @description Human-readable error message
|
|
1619
|
+
* @example Invalid input
|
|
1620
|
+
*/
|
|
1621
|
+
message: string;
|
|
1622
|
+
/** @description Single-element list describing the failing scope */
|
|
1623
|
+
details?: {
|
|
1624
|
+
message: string;
|
|
1625
|
+
context: {
|
|
1626
|
+
/**
|
|
1627
|
+
* @description Which scope rejected the request
|
|
1628
|
+
* @enum {string}
|
|
1629
|
+
*/
|
|
1630
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
1631
|
+
/** @description Minimum level the endpoint demands */
|
|
1632
|
+
required: boolean | ("read" | "write");
|
|
1633
|
+
/** @description Level resolved on the key */
|
|
1634
|
+
actual: boolean | ("none" | "read" | "write");
|
|
1635
|
+
};
|
|
1636
|
+
}[];
|
|
1637
|
+
} | {
|
|
1638
|
+
/** @enum {string} */
|
|
1639
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
1640
|
+
/**
|
|
1641
|
+
* @description Human-readable error message
|
|
1642
|
+
* @example Invalid input
|
|
1643
|
+
*/
|
|
1644
|
+
message: string;
|
|
1645
|
+
};
|
|
1646
|
+
};
|
|
1647
|
+
};
|
|
1648
|
+
};
|
|
1649
|
+
};
|
|
1650
|
+
listIntents: {
|
|
1651
|
+
parameters: {
|
|
1652
|
+
query?: {
|
|
1653
|
+
/** @description Opaque cursor from a previous response (`pagination.nextCursor`). Omit for the first page. */
|
|
1654
|
+
cursor?: string;
|
|
1655
|
+
/** @description Max items per page (max 100) */
|
|
1656
|
+
limit?: number;
|
|
1657
|
+
};
|
|
1658
|
+
header: {
|
|
1659
|
+
/** @description API version. Required; pinned to this document. */
|
|
1660
|
+
"x-api-version": "2026-04.blanc";
|
|
1661
|
+
/** @description API key. */
|
|
1662
|
+
"x-api-key": string;
|
|
1663
|
+
};
|
|
1664
|
+
path?: never;
|
|
1665
|
+
cookie?: never;
|
|
1666
|
+
};
|
|
1667
|
+
requestBody?: never;
|
|
1668
|
+
responses: {
|
|
1669
|
+
/** @description OK */
|
|
1670
|
+
200: {
|
|
1671
|
+
headers: {
|
|
1672
|
+
[name: string]: unknown;
|
|
1673
|
+
};
|
|
1674
|
+
content: {
|
|
1675
|
+
"application/json": {
|
|
1676
|
+
/** @description Intents on this page, newest first */
|
|
1677
|
+
data: {
|
|
1678
|
+
/**
|
|
1679
|
+
* @description Intent id — pass to `GET /intents/:id`
|
|
1680
|
+
* @example 12345678901234567890
|
|
1681
|
+
*/
|
|
1682
|
+
id: string;
|
|
1683
|
+
/**
|
|
1684
|
+
* @description Overall intent status
|
|
1685
|
+
* @example COMPLETED
|
|
1686
|
+
* @enum {string}
|
|
1687
|
+
*/
|
|
1688
|
+
status: "PENDING" | "COMPLETED" | "FAILED";
|
|
1689
|
+
/**
|
|
1690
|
+
* @description Source chain IDs — one per distinct chain the intent spends on
|
|
1691
|
+
* @example [
|
|
1692
|
+
* 1,
|
|
1693
|
+
* 8453
|
|
1694
|
+
* ]
|
|
1695
|
+
*/
|
|
1696
|
+
fromChains: number[];
|
|
1697
|
+
/**
|
|
1698
|
+
* @description Destination chain ID
|
|
1699
|
+
* @example 10
|
|
1700
|
+
*/
|
|
1701
|
+
toChain?: number;
|
|
1702
|
+
/**
|
|
1703
|
+
* @description Intent value token. The token delivered on the destination chain, or the spent token for same-chain intents (which have no persisted delivery).
|
|
1704
|
+
* @example 0x0b2c639c533813f4aa9d7837caf62653d097ff85
|
|
1705
|
+
*/
|
|
1706
|
+
token?: string;
|
|
1707
|
+
/**
|
|
1708
|
+
* @description Intent value in base units — delivered on the destination chain, or spent for same-chain intents (which have no persisted delivery; for same-chain swaps this is the input, not the received amount).
|
|
1709
|
+
* @example 1000000
|
|
1710
|
+
*/
|
|
1711
|
+
amount?: string;
|
|
1712
|
+
/**
|
|
1713
|
+
* @description Account that submitted the intent
|
|
1714
|
+
* @example 0x3672e268a79bd4acc5ee646bdda652547c7a435c
|
|
1715
|
+
*/
|
|
1716
|
+
account: string;
|
|
1717
|
+
/**
|
|
1718
|
+
* @description Intent creation time in unix seconds
|
|
1719
|
+
* @example 1633493100
|
|
1720
|
+
*/
|
|
1721
|
+
createdAt: number;
|
|
1722
|
+
}[];
|
|
1723
|
+
/** @description Keyset pagination metadata */
|
|
1724
|
+
pagination: {
|
|
1725
|
+
/**
|
|
1726
|
+
* @description Pass as `cursor` to fetch the next page; null when no more results.
|
|
1727
|
+
* @example 1024
|
|
1728
|
+
*/
|
|
1729
|
+
nextCursor: string | null;
|
|
1730
|
+
/** @example true */
|
|
1731
|
+
hasNextPage: boolean;
|
|
1732
|
+
};
|
|
1733
|
+
};
|
|
1734
|
+
};
|
|
1735
|
+
};
|
|
1736
|
+
/** @description Validation error */
|
|
1737
|
+
400: {
|
|
1738
|
+
headers: {
|
|
1739
|
+
[name: string]: unknown;
|
|
1740
|
+
};
|
|
1741
|
+
content: {
|
|
1742
|
+
"application/json": {
|
|
1743
|
+
/** @enum {string} */
|
|
1744
|
+
code: "VALIDATION_ERROR";
|
|
1745
|
+
/**
|
|
1746
|
+
* @description Human-readable error message
|
|
1747
|
+
* @example Invalid input
|
|
1748
|
+
*/
|
|
1749
|
+
message: string;
|
|
1750
|
+
/** @description Per-field validation issues */
|
|
1751
|
+
details?: {
|
|
1752
|
+
/** @description Human-readable issue description */
|
|
1753
|
+
message: string;
|
|
1754
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
1755
|
+
context?: {
|
|
1756
|
+
[key: string]: unknown;
|
|
1757
|
+
};
|
|
1758
|
+
}[];
|
|
1759
|
+
} | {
|
|
1760
|
+
/** @enum {string} */
|
|
1761
|
+
code: "SIMULATION_FAILED";
|
|
1762
|
+
/**
|
|
1763
|
+
* @description Human-readable error message
|
|
1764
|
+
* @example Invalid input
|
|
1765
|
+
*/
|
|
1766
|
+
message: string;
|
|
1767
|
+
/** @description Classified on-chain simulation failure details */
|
|
1768
|
+
details?: {
|
|
1769
|
+
nonce?: string;
|
|
1770
|
+
category: string;
|
|
1771
|
+
errorSelector: string;
|
|
1772
|
+
errorName: string;
|
|
1773
|
+
errorArgs?: {
|
|
1774
|
+
[key: string]: string;
|
|
1775
|
+
};
|
|
1776
|
+
retryable: boolean;
|
|
1777
|
+
/** @enum {string} */
|
|
1778
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
1779
|
+
simulations?: unknown;
|
|
1780
|
+
} & {
|
|
1781
|
+
[key: string]: unknown;
|
|
1782
|
+
};
|
|
1783
|
+
} | {
|
|
1784
|
+
/** @enum {string} */
|
|
1785
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
1786
|
+
/**
|
|
1787
|
+
* @description Human-readable error message
|
|
1788
|
+
* @example Invalid input
|
|
1789
|
+
*/
|
|
1790
|
+
message: string;
|
|
1791
|
+
/** @description Fillable subset and unfillable remainder */
|
|
1792
|
+
details?: {
|
|
1793
|
+
/** @description Intents fillable with current liquidity */
|
|
1794
|
+
availableIntents: {
|
|
1795
|
+
[key: string]: string;
|
|
1796
|
+
}[];
|
|
1797
|
+
/** @description Token amounts that cannot be filled */
|
|
1798
|
+
unfillable: {
|
|
1799
|
+
[key: string]: string;
|
|
1800
|
+
};
|
|
1801
|
+
};
|
|
1802
|
+
} | {
|
|
1803
|
+
/** @enum {string} */
|
|
1804
|
+
code: "KEY_SCOPE_DENIED";
|
|
1805
|
+
/**
|
|
1806
|
+
* @description Human-readable error message
|
|
1807
|
+
* @example Invalid input
|
|
1808
|
+
*/
|
|
1809
|
+
message: string;
|
|
1810
|
+
/** @description Single-element list describing the failing scope */
|
|
1811
|
+
details?: {
|
|
1812
|
+
message: string;
|
|
1813
|
+
context: {
|
|
1814
|
+
/**
|
|
1815
|
+
* @description Which scope rejected the request
|
|
1816
|
+
* @enum {string}
|
|
1817
|
+
*/
|
|
1818
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
1819
|
+
/** @description Minimum level the endpoint demands */
|
|
1820
|
+
required: boolean | ("read" | "write");
|
|
1821
|
+
/** @description Level resolved on the key */
|
|
1822
|
+
actual: boolean | ("none" | "read" | "write");
|
|
1823
|
+
};
|
|
1824
|
+
}[];
|
|
1825
|
+
} | {
|
|
1826
|
+
/** @enum {string} */
|
|
1827
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
1828
|
+
/**
|
|
1829
|
+
* @description Human-readable error message
|
|
1830
|
+
* @example Invalid input
|
|
1831
|
+
*/
|
|
1832
|
+
message: string;
|
|
1833
|
+
};
|
|
1834
|
+
};
|
|
1835
|
+
};
|
|
1836
|
+
/** @description API key scope denied */
|
|
1837
|
+
403: {
|
|
1838
|
+
headers: {
|
|
1839
|
+
[name: string]: unknown;
|
|
1840
|
+
};
|
|
1841
|
+
content: {
|
|
1842
|
+
"application/json": {
|
|
1843
|
+
/** @enum {string} */
|
|
1844
|
+
code: "VALIDATION_ERROR";
|
|
1845
|
+
/**
|
|
1846
|
+
* @description Human-readable error message
|
|
1847
|
+
* @example Invalid input
|
|
1848
|
+
*/
|
|
1849
|
+
message: string;
|
|
1850
|
+
/** @description Per-field validation issues */
|
|
1851
|
+
details?: {
|
|
1852
|
+
/** @description Human-readable issue description */
|
|
1853
|
+
message: string;
|
|
1854
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
1855
|
+
context?: {
|
|
1856
|
+
[key: string]: unknown;
|
|
1857
|
+
};
|
|
1858
|
+
}[];
|
|
1859
|
+
} | {
|
|
1860
|
+
/** @enum {string} */
|
|
1861
|
+
code: "SIMULATION_FAILED";
|
|
1862
|
+
/**
|
|
1863
|
+
* @description Human-readable error message
|
|
1864
|
+
* @example Invalid input
|
|
1865
|
+
*/
|
|
1866
|
+
message: string;
|
|
1867
|
+
/** @description Classified on-chain simulation failure details */
|
|
1868
|
+
details?: {
|
|
1869
|
+
nonce?: string;
|
|
1870
|
+
category: string;
|
|
1871
|
+
errorSelector: string;
|
|
1872
|
+
errorName: string;
|
|
1873
|
+
errorArgs?: {
|
|
1874
|
+
[key: string]: string;
|
|
1875
|
+
};
|
|
1876
|
+
retryable: boolean;
|
|
1877
|
+
/** @enum {string} */
|
|
1878
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
1879
|
+
simulations?: unknown;
|
|
1880
|
+
} & {
|
|
1881
|
+
[key: string]: unknown;
|
|
1882
|
+
};
|
|
1883
|
+
} | {
|
|
1884
|
+
/** @enum {string} */
|
|
1885
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
1886
|
+
/**
|
|
1887
|
+
* @description Human-readable error message
|
|
1888
|
+
* @example Invalid input
|
|
1889
|
+
*/
|
|
1890
|
+
message: string;
|
|
1891
|
+
/** @description Fillable subset and unfillable remainder */
|
|
1892
|
+
details?: {
|
|
1893
|
+
/** @description Intents fillable with current liquidity */
|
|
1894
|
+
availableIntents: {
|
|
1895
|
+
[key: string]: string;
|
|
1896
|
+
}[];
|
|
1897
|
+
/** @description Token amounts that cannot be filled */
|
|
1898
|
+
unfillable: {
|
|
1899
|
+
[key: string]: string;
|
|
1900
|
+
};
|
|
1901
|
+
};
|
|
1902
|
+
} | {
|
|
1903
|
+
/** @enum {string} */
|
|
1904
|
+
code: "KEY_SCOPE_DENIED";
|
|
1905
|
+
/**
|
|
1906
|
+
* @description Human-readable error message
|
|
1907
|
+
* @example Invalid input
|
|
1908
|
+
*/
|
|
1909
|
+
message: string;
|
|
1910
|
+
/** @description Single-element list describing the failing scope */
|
|
1911
|
+
details?: {
|
|
1912
|
+
message: string;
|
|
1913
|
+
context: {
|
|
1914
|
+
/**
|
|
1915
|
+
* @description Which scope rejected the request
|
|
1916
|
+
* @enum {string}
|
|
1917
|
+
*/
|
|
1918
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
1919
|
+
/** @description Minimum level the endpoint demands */
|
|
1920
|
+
required: boolean | ("read" | "write");
|
|
1921
|
+
/** @description Level resolved on the key */
|
|
1922
|
+
actual: boolean | ("none" | "read" | "write");
|
|
1923
|
+
};
|
|
1924
|
+
}[];
|
|
1925
|
+
} | {
|
|
1926
|
+
/** @enum {string} */
|
|
1927
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
1928
|
+
/**
|
|
1929
|
+
* @description Human-readable error message
|
|
1930
|
+
* @example Invalid input
|
|
1931
|
+
*/
|
|
1932
|
+
message: string;
|
|
1933
|
+
};
|
|
1934
|
+
};
|
|
1935
|
+
};
|
|
1936
|
+
/** @description Server error */
|
|
1937
|
+
500: {
|
|
1938
|
+
headers: {
|
|
1939
|
+
[name: string]: unknown;
|
|
1940
|
+
};
|
|
1941
|
+
content: {
|
|
1942
|
+
"application/json": {
|
|
1943
|
+
/** @enum {string} */
|
|
1944
|
+
code: "VALIDATION_ERROR";
|
|
1945
|
+
/**
|
|
1946
|
+
* @description Human-readable error message
|
|
1947
|
+
* @example Invalid input
|
|
1948
|
+
*/
|
|
1949
|
+
message: string;
|
|
1950
|
+
/** @description Per-field validation issues */
|
|
1951
|
+
details?: {
|
|
1952
|
+
/** @description Human-readable issue description */
|
|
1953
|
+
message: string;
|
|
1954
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
1955
|
+
context?: {
|
|
1956
|
+
[key: string]: unknown;
|
|
1957
|
+
};
|
|
1958
|
+
}[];
|
|
1959
|
+
} | {
|
|
1960
|
+
/** @enum {string} */
|
|
1961
|
+
code: "SIMULATION_FAILED";
|
|
1962
|
+
/**
|
|
1963
|
+
* @description Human-readable error message
|
|
1964
|
+
* @example Invalid input
|
|
1965
|
+
*/
|
|
1966
|
+
message: string;
|
|
1967
|
+
/** @description Classified on-chain simulation failure details */
|
|
1968
|
+
details?: {
|
|
1969
|
+
nonce?: string;
|
|
1970
|
+
category: string;
|
|
1971
|
+
errorSelector: string;
|
|
1972
|
+
errorName: string;
|
|
1973
|
+
errorArgs?: {
|
|
1974
|
+
[key: string]: string;
|
|
1975
|
+
};
|
|
1976
|
+
retryable: boolean;
|
|
1977
|
+
/** @enum {string} */
|
|
1978
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
1979
|
+
simulations?: unknown;
|
|
1980
|
+
} & {
|
|
1981
|
+
[key: string]: unknown;
|
|
1982
|
+
};
|
|
1983
|
+
} | {
|
|
1984
|
+
/** @enum {string} */
|
|
1985
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
1986
|
+
/**
|
|
1987
|
+
* @description Human-readable error message
|
|
1988
|
+
* @example Invalid input
|
|
1989
|
+
*/
|
|
1990
|
+
message: string;
|
|
1991
|
+
/** @description Fillable subset and unfillable remainder */
|
|
1992
|
+
details?: {
|
|
1993
|
+
/** @description Intents fillable with current liquidity */
|
|
1994
|
+
availableIntents: {
|
|
1995
|
+
[key: string]: string;
|
|
1996
|
+
}[];
|
|
1997
|
+
/** @description Token amounts that cannot be filled */
|
|
1998
|
+
unfillable: {
|
|
1999
|
+
[key: string]: string;
|
|
2000
|
+
};
|
|
2001
|
+
};
|
|
2002
|
+
} | {
|
|
2003
|
+
/** @enum {string} */
|
|
2004
|
+
code: "KEY_SCOPE_DENIED";
|
|
2005
|
+
/**
|
|
2006
|
+
* @description Human-readable error message
|
|
2007
|
+
* @example Invalid input
|
|
2008
|
+
*/
|
|
2009
|
+
message: string;
|
|
2010
|
+
/** @description Single-element list describing the failing scope */
|
|
2011
|
+
details?: {
|
|
2012
|
+
message: string;
|
|
2013
|
+
context: {
|
|
2014
|
+
/**
|
|
2015
|
+
* @description Which scope rejected the request
|
|
2016
|
+
* @enum {string}
|
|
2017
|
+
*/
|
|
2018
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
2019
|
+
/** @description Minimum level the endpoint demands */
|
|
2020
|
+
required: boolean | ("read" | "write");
|
|
2021
|
+
/** @description Level resolved on the key */
|
|
2022
|
+
actual: boolean | ("none" | "read" | "write");
|
|
2023
|
+
};
|
|
2024
|
+
}[];
|
|
2025
|
+
} | {
|
|
2026
|
+
/** @enum {string} */
|
|
2027
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
2028
|
+
/**
|
|
2029
|
+
* @description Human-readable error message
|
|
2030
|
+
* @example Invalid input
|
|
2031
|
+
*/
|
|
2032
|
+
message: string;
|
|
2033
|
+
};
|
|
2034
|
+
};
|
|
2035
|
+
};
|
|
2036
|
+
};
|
|
2037
|
+
};
|
|
2038
|
+
createIntent: {
|
|
2039
|
+
parameters: {
|
|
2040
|
+
query?: never;
|
|
2041
|
+
header: {
|
|
2042
|
+
/** @description API version. Required; pinned to this document. */
|
|
2043
|
+
"x-api-version": "2026-04.blanc";
|
|
2044
|
+
/** @description API key. */
|
|
2045
|
+
"x-api-key": string;
|
|
2046
|
+
};
|
|
2047
|
+
path?: never;
|
|
2048
|
+
cookie?: never;
|
|
2049
|
+
};
|
|
2050
|
+
requestBody: {
|
|
2051
|
+
content: {
|
|
2052
|
+
"application/json": {
|
|
2053
|
+
/** @description Identifier of the intent returned by `POST /quotes` (as `routes[].intentId`). */
|
|
2054
|
+
intentId: string;
|
|
2055
|
+
signatures: {
|
|
2056
|
+
/**
|
|
2057
|
+
* @description Origin (source chain) signatures
|
|
2058
|
+
* @example [
|
|
2059
|
+
* "0x...",
|
|
2060
|
+
* "0x..."
|
|
2061
|
+
* ]
|
|
2062
|
+
*/
|
|
2063
|
+
origin: (string | {
|
|
2064
|
+
preClaimSig: string;
|
|
2065
|
+
notarizedClaimSig: string;
|
|
2066
|
+
})[];
|
|
2067
|
+
/**
|
|
2068
|
+
* @description Destination (target chain) signature
|
|
2069
|
+
* @example 0x...
|
|
2070
|
+
*/
|
|
2071
|
+
destination: string;
|
|
2072
|
+
/**
|
|
2073
|
+
* @description Target execution signature (smart sessions only; omit for EOA)
|
|
2074
|
+
* @example 0x...
|
|
2075
|
+
*/
|
|
2076
|
+
targetExecution?: string;
|
|
2077
|
+
};
|
|
2078
|
+
authorizations?: {
|
|
2079
|
+
/** @description EIP-7702 authorizations signed by the sponsor account. Each entry `chainId` is a CAIP-2 string (e.g. `eip155:8453`); the `0` any-chain sentinel is sent as a number. */
|
|
2080
|
+
sponsor?: {
|
|
2081
|
+
/**
|
|
2082
|
+
* @description Chain ID for EIP-7702 delegation, 0 means it can be applied to any chain
|
|
2083
|
+
* @example 8453
|
|
2084
|
+
*/
|
|
2085
|
+
chainId: number;
|
|
2086
|
+
/**
|
|
2087
|
+
* @description Address of the delegate for EIP-7702 delegation
|
|
2088
|
+
* @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
|
|
2089
|
+
*/
|
|
2090
|
+
address: string;
|
|
2091
|
+
/**
|
|
2092
|
+
* @description Nonce for EIP-7702 delegation
|
|
2093
|
+
* @example 0
|
|
2094
|
+
*/
|
|
2095
|
+
nonce: number;
|
|
2096
|
+
/**
|
|
2097
|
+
* @description Y parity for EIP-7702 delegation
|
|
2098
|
+
* @example 27
|
|
2099
|
+
*/
|
|
2100
|
+
yParity: number;
|
|
2101
|
+
/**
|
|
2102
|
+
* @description R value for EIP-7702 delegation
|
|
2103
|
+
* @example 0x...
|
|
2104
|
+
*/
|
|
2105
|
+
r: string;
|
|
2106
|
+
/**
|
|
2107
|
+
* @description S value for EIP-7702 delegation
|
|
2108
|
+
* @example 0x...
|
|
2109
|
+
*/
|
|
2110
|
+
s: string;
|
|
2111
|
+
}[];
|
|
2112
|
+
/** @description EIP-7702 authorizations signed by the recipient account. Each entry `chainId` is a CAIP-2 string (e.g. `eip155:8453`); the `0` any-chain sentinel is sent as a number. */
|
|
2113
|
+
recipient?: {
|
|
2114
|
+
/**
|
|
2115
|
+
* @description Chain ID for EIP-7702 delegation, 0 means it can be applied to any chain
|
|
2116
|
+
* @example 8453
|
|
2117
|
+
*/
|
|
2118
|
+
chainId: number;
|
|
2119
|
+
/**
|
|
2120
|
+
* @description Address of the delegate for EIP-7702 delegation
|
|
2121
|
+
* @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
|
|
2122
|
+
*/
|
|
2123
|
+
address: string;
|
|
2124
|
+
/**
|
|
2125
|
+
* @description Nonce for EIP-7702 delegation
|
|
2126
|
+
* @example 0
|
|
2127
|
+
*/
|
|
2128
|
+
nonce: number;
|
|
2129
|
+
/**
|
|
2130
|
+
* @description Y parity for EIP-7702 delegation
|
|
2131
|
+
* @example 27
|
|
2132
|
+
*/
|
|
2133
|
+
yParity: number;
|
|
2134
|
+
/**
|
|
2135
|
+
* @description R value for EIP-7702 delegation
|
|
2136
|
+
* @example 0x...
|
|
2137
|
+
*/
|
|
2138
|
+
r: string;
|
|
2139
|
+
/**
|
|
2140
|
+
* @description S value for EIP-7702 delegation
|
|
2141
|
+
* @example 0x...
|
|
2142
|
+
*/
|
|
2143
|
+
s: string;
|
|
2144
|
+
}[];
|
|
2145
|
+
};
|
|
2146
|
+
};
|
|
2147
|
+
};
|
|
2148
|
+
};
|
|
2149
|
+
responses: {
|
|
2150
|
+
/** @description OK */
|
|
2151
|
+
201: {
|
|
2152
|
+
headers: {
|
|
2153
|
+
[name: string]: unknown;
|
|
2154
|
+
};
|
|
2155
|
+
content: {
|
|
2156
|
+
"application/json": {
|
|
2157
|
+
intentId: string;
|
|
2158
|
+
};
|
|
2159
|
+
};
|
|
2160
|
+
};
|
|
2161
|
+
/** @description Validation error */
|
|
2162
|
+
400: {
|
|
2163
|
+
headers: {
|
|
2164
|
+
[name: string]: unknown;
|
|
2165
|
+
};
|
|
2166
|
+
content: {
|
|
2167
|
+
"application/json": {
|
|
2168
|
+
/** @enum {string} */
|
|
2169
|
+
code: "VALIDATION_ERROR";
|
|
2170
|
+
/**
|
|
2171
|
+
* @description Human-readable error message
|
|
2172
|
+
* @example Invalid input
|
|
2173
|
+
*/
|
|
2174
|
+
message: string;
|
|
2175
|
+
/** @description Per-field validation issues */
|
|
2176
|
+
details?: {
|
|
2177
|
+
/** @description Human-readable issue description */
|
|
2178
|
+
message: string;
|
|
2179
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
2180
|
+
context?: {
|
|
2181
|
+
[key: string]: unknown;
|
|
2182
|
+
};
|
|
2183
|
+
}[];
|
|
2184
|
+
} | {
|
|
2185
|
+
/** @enum {string} */
|
|
2186
|
+
code: "SIMULATION_FAILED";
|
|
2187
|
+
/**
|
|
2188
|
+
* @description Human-readable error message
|
|
2189
|
+
* @example Invalid input
|
|
2190
|
+
*/
|
|
2191
|
+
message: string;
|
|
2192
|
+
/** @description Classified on-chain simulation failure details */
|
|
2193
|
+
details?: {
|
|
2194
|
+
nonce?: string;
|
|
2195
|
+
category: string;
|
|
2196
|
+
errorSelector: string;
|
|
2197
|
+
errorName: string;
|
|
2198
|
+
errorArgs?: {
|
|
2199
|
+
[key: string]: string;
|
|
2200
|
+
};
|
|
2201
|
+
retryable: boolean;
|
|
2202
|
+
/** @enum {string} */
|
|
2203
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
2204
|
+
simulations?: unknown;
|
|
2205
|
+
} & {
|
|
2206
|
+
[key: string]: unknown;
|
|
2207
|
+
};
|
|
2208
|
+
} | {
|
|
2209
|
+
/** @enum {string} */
|
|
2210
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
2211
|
+
/**
|
|
2212
|
+
* @description Human-readable error message
|
|
2213
|
+
* @example Invalid input
|
|
2214
|
+
*/
|
|
2215
|
+
message: string;
|
|
2216
|
+
/** @description Fillable subset and unfillable remainder */
|
|
2217
|
+
details?: {
|
|
2218
|
+
/** @description Intents fillable with current liquidity */
|
|
2219
|
+
availableIntents: {
|
|
2220
|
+
[key: string]: string;
|
|
2221
|
+
}[];
|
|
2222
|
+
/** @description Token amounts that cannot be filled */
|
|
2223
|
+
unfillable: {
|
|
2224
|
+
[key: string]: string;
|
|
2225
|
+
};
|
|
2226
|
+
};
|
|
2227
|
+
} | {
|
|
2228
|
+
/** @enum {string} */
|
|
2229
|
+
code: "KEY_SCOPE_DENIED";
|
|
2230
|
+
/**
|
|
2231
|
+
* @description Human-readable error message
|
|
2232
|
+
* @example Invalid input
|
|
2233
|
+
*/
|
|
2234
|
+
message: string;
|
|
2235
|
+
/** @description Single-element list describing the failing scope */
|
|
2236
|
+
details?: {
|
|
2237
|
+
message: string;
|
|
2238
|
+
context: {
|
|
2239
|
+
/**
|
|
2240
|
+
* @description Which scope rejected the request
|
|
2241
|
+
* @enum {string}
|
|
2242
|
+
*/
|
|
2243
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
2244
|
+
/** @description Minimum level the endpoint demands */
|
|
2245
|
+
required: boolean | ("read" | "write");
|
|
2246
|
+
/** @description Level resolved on the key */
|
|
2247
|
+
actual: boolean | ("none" | "read" | "write");
|
|
2248
|
+
};
|
|
2249
|
+
}[];
|
|
2250
|
+
} | {
|
|
2251
|
+
/** @enum {string} */
|
|
2252
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
2253
|
+
/**
|
|
2254
|
+
* @description Human-readable error message
|
|
2255
|
+
* @example Invalid input
|
|
2256
|
+
*/
|
|
2257
|
+
message: string;
|
|
2258
|
+
};
|
|
2259
|
+
};
|
|
2260
|
+
};
|
|
2261
|
+
/** @description API key scope denied */
|
|
2262
|
+
403: {
|
|
2263
|
+
headers: {
|
|
2264
|
+
[name: string]: unknown;
|
|
2265
|
+
};
|
|
2266
|
+
content: {
|
|
2267
|
+
"application/json": {
|
|
2268
|
+
/** @enum {string} */
|
|
2269
|
+
code: "VALIDATION_ERROR";
|
|
2270
|
+
/**
|
|
2271
|
+
* @description Human-readable error message
|
|
2272
|
+
* @example Invalid input
|
|
2273
|
+
*/
|
|
2274
|
+
message: string;
|
|
2275
|
+
/** @description Per-field validation issues */
|
|
2276
|
+
details?: {
|
|
2277
|
+
/** @description Human-readable issue description */
|
|
2278
|
+
message: string;
|
|
2279
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
2280
|
+
context?: {
|
|
2281
|
+
[key: string]: unknown;
|
|
2282
|
+
};
|
|
2283
|
+
}[];
|
|
2284
|
+
} | {
|
|
2285
|
+
/** @enum {string} */
|
|
2286
|
+
code: "SIMULATION_FAILED";
|
|
2287
|
+
/**
|
|
2288
|
+
* @description Human-readable error message
|
|
2289
|
+
* @example Invalid input
|
|
2290
|
+
*/
|
|
2291
|
+
message: string;
|
|
2292
|
+
/** @description Classified on-chain simulation failure details */
|
|
2293
|
+
details?: {
|
|
2294
|
+
nonce?: string;
|
|
2295
|
+
category: string;
|
|
2296
|
+
errorSelector: string;
|
|
2297
|
+
errorName: string;
|
|
2298
|
+
errorArgs?: {
|
|
2299
|
+
[key: string]: string;
|
|
2300
|
+
};
|
|
2301
|
+
retryable: boolean;
|
|
2302
|
+
/** @enum {string} */
|
|
2303
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
2304
|
+
simulations?: unknown;
|
|
2305
|
+
} & {
|
|
2306
|
+
[key: string]: unknown;
|
|
2307
|
+
};
|
|
2308
|
+
} | {
|
|
2309
|
+
/** @enum {string} */
|
|
2310
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
2311
|
+
/**
|
|
2312
|
+
* @description Human-readable error message
|
|
2313
|
+
* @example Invalid input
|
|
2314
|
+
*/
|
|
2315
|
+
message: string;
|
|
2316
|
+
/** @description Fillable subset and unfillable remainder */
|
|
2317
|
+
details?: {
|
|
2318
|
+
/** @description Intents fillable with current liquidity */
|
|
2319
|
+
availableIntents: {
|
|
2320
|
+
[key: string]: string;
|
|
2321
|
+
}[];
|
|
2322
|
+
/** @description Token amounts that cannot be filled */
|
|
2323
|
+
unfillable: {
|
|
2324
|
+
[key: string]: string;
|
|
2325
|
+
};
|
|
2326
|
+
};
|
|
2327
|
+
} | {
|
|
2328
|
+
/** @enum {string} */
|
|
2329
|
+
code: "KEY_SCOPE_DENIED";
|
|
2330
|
+
/**
|
|
2331
|
+
* @description Human-readable error message
|
|
2332
|
+
* @example Invalid input
|
|
2333
|
+
*/
|
|
2334
|
+
message: string;
|
|
2335
|
+
/** @description Single-element list describing the failing scope */
|
|
2336
|
+
details?: {
|
|
2337
|
+
message: string;
|
|
2338
|
+
context: {
|
|
2339
|
+
/**
|
|
2340
|
+
* @description Which scope rejected the request
|
|
2341
|
+
* @enum {string}
|
|
2342
|
+
*/
|
|
2343
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
2344
|
+
/** @description Minimum level the endpoint demands */
|
|
2345
|
+
required: boolean | ("read" | "write");
|
|
2346
|
+
/** @description Level resolved on the key */
|
|
2347
|
+
actual: boolean | ("none" | "read" | "write");
|
|
2348
|
+
};
|
|
2349
|
+
}[];
|
|
2350
|
+
} | {
|
|
2351
|
+
/** @enum {string} */
|
|
2352
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
2353
|
+
/**
|
|
2354
|
+
* @description Human-readable error message
|
|
2355
|
+
* @example Invalid input
|
|
2356
|
+
*/
|
|
2357
|
+
message: string;
|
|
2358
|
+
};
|
|
2359
|
+
};
|
|
2360
|
+
};
|
|
2361
|
+
/** @description The quoted intent has expired or was already submitted. Request a new route to retry. */
|
|
2362
|
+
404: {
|
|
2363
|
+
headers: {
|
|
2364
|
+
[name: string]: unknown;
|
|
2365
|
+
};
|
|
2366
|
+
content: {
|
|
2367
|
+
"application/json": {
|
|
2368
|
+
/** @enum {string} */
|
|
2369
|
+
code: "VALIDATION_ERROR";
|
|
2370
|
+
/**
|
|
2371
|
+
* @description Human-readable error message
|
|
2372
|
+
* @example Invalid input
|
|
2373
|
+
*/
|
|
2374
|
+
message: string;
|
|
2375
|
+
/** @description Per-field validation issues */
|
|
2376
|
+
details?: {
|
|
2377
|
+
/** @description Human-readable issue description */
|
|
2378
|
+
message: string;
|
|
2379
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
2380
|
+
context?: {
|
|
2381
|
+
[key: string]: unknown;
|
|
2382
|
+
};
|
|
2383
|
+
}[];
|
|
2384
|
+
} | {
|
|
2385
|
+
/** @enum {string} */
|
|
2386
|
+
code: "SIMULATION_FAILED";
|
|
2387
|
+
/**
|
|
2388
|
+
* @description Human-readable error message
|
|
2389
|
+
* @example Invalid input
|
|
2390
|
+
*/
|
|
2391
|
+
message: string;
|
|
2392
|
+
/** @description Classified on-chain simulation failure details */
|
|
2393
|
+
details?: {
|
|
2394
|
+
nonce?: string;
|
|
2395
|
+
category: string;
|
|
2396
|
+
errorSelector: string;
|
|
2397
|
+
errorName: string;
|
|
2398
|
+
errorArgs?: {
|
|
2399
|
+
[key: string]: string;
|
|
2400
|
+
};
|
|
2401
|
+
retryable: boolean;
|
|
2402
|
+
/** @enum {string} */
|
|
2403
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
2404
|
+
simulations?: unknown;
|
|
2405
|
+
} & {
|
|
2406
|
+
[key: string]: unknown;
|
|
2407
|
+
};
|
|
2408
|
+
} | {
|
|
2409
|
+
/** @enum {string} */
|
|
2410
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
2411
|
+
/**
|
|
2412
|
+
* @description Human-readable error message
|
|
2413
|
+
* @example Invalid input
|
|
2414
|
+
*/
|
|
2415
|
+
message: string;
|
|
2416
|
+
/** @description Fillable subset and unfillable remainder */
|
|
2417
|
+
details?: {
|
|
2418
|
+
/** @description Intents fillable with current liquidity */
|
|
2419
|
+
availableIntents: {
|
|
2420
|
+
[key: string]: string;
|
|
2421
|
+
}[];
|
|
2422
|
+
/** @description Token amounts that cannot be filled */
|
|
2423
|
+
unfillable: {
|
|
2424
|
+
[key: string]: string;
|
|
2425
|
+
};
|
|
2426
|
+
};
|
|
2427
|
+
} | {
|
|
2428
|
+
/** @enum {string} */
|
|
2429
|
+
code: "KEY_SCOPE_DENIED";
|
|
2430
|
+
/**
|
|
2431
|
+
* @description Human-readable error message
|
|
2432
|
+
* @example Invalid input
|
|
2433
|
+
*/
|
|
2434
|
+
message: string;
|
|
2435
|
+
/** @description Single-element list describing the failing scope */
|
|
2436
|
+
details?: {
|
|
2437
|
+
message: string;
|
|
2438
|
+
context: {
|
|
2439
|
+
/**
|
|
2440
|
+
* @description Which scope rejected the request
|
|
2441
|
+
* @enum {string}
|
|
2442
|
+
*/
|
|
2443
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
2444
|
+
/** @description Minimum level the endpoint demands */
|
|
2445
|
+
required: boolean | ("read" | "write");
|
|
2446
|
+
/** @description Level resolved on the key */
|
|
2447
|
+
actual: boolean | ("none" | "read" | "write");
|
|
2448
|
+
};
|
|
2449
|
+
}[];
|
|
2450
|
+
} | {
|
|
2451
|
+
/** @enum {string} */
|
|
2452
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
2453
|
+
/**
|
|
2454
|
+
* @description Human-readable error message
|
|
2455
|
+
* @example Invalid input
|
|
2456
|
+
*/
|
|
2457
|
+
message: string;
|
|
2458
|
+
};
|
|
2459
|
+
};
|
|
2460
|
+
};
|
|
2461
|
+
/** @description Server error */
|
|
2462
|
+
500: {
|
|
2463
|
+
headers: {
|
|
2464
|
+
[name: string]: unknown;
|
|
2465
|
+
};
|
|
2466
|
+
content: {
|
|
2467
|
+
"application/json": {
|
|
2468
|
+
/** @enum {string} */
|
|
2469
|
+
code: "VALIDATION_ERROR";
|
|
2470
|
+
/**
|
|
2471
|
+
* @description Human-readable error message
|
|
2472
|
+
* @example Invalid input
|
|
2473
|
+
*/
|
|
2474
|
+
message: string;
|
|
2475
|
+
/** @description Per-field validation issues */
|
|
2476
|
+
details?: {
|
|
2477
|
+
/** @description Human-readable issue description */
|
|
2478
|
+
message: string;
|
|
2479
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
2480
|
+
context?: {
|
|
2481
|
+
[key: string]: unknown;
|
|
2482
|
+
};
|
|
2483
|
+
}[];
|
|
2484
|
+
} | {
|
|
2485
|
+
/** @enum {string} */
|
|
2486
|
+
code: "SIMULATION_FAILED";
|
|
2487
|
+
/**
|
|
2488
|
+
* @description Human-readable error message
|
|
2489
|
+
* @example Invalid input
|
|
2490
|
+
*/
|
|
2491
|
+
message: string;
|
|
2492
|
+
/** @description Classified on-chain simulation failure details */
|
|
2493
|
+
details?: {
|
|
2494
|
+
nonce?: string;
|
|
2495
|
+
category: string;
|
|
2496
|
+
errorSelector: string;
|
|
2497
|
+
errorName: string;
|
|
2498
|
+
errorArgs?: {
|
|
2499
|
+
[key: string]: string;
|
|
2500
|
+
};
|
|
2501
|
+
retryable: boolean;
|
|
2502
|
+
/** @enum {string} */
|
|
2503
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
2504
|
+
simulations?: unknown;
|
|
2505
|
+
} & {
|
|
2506
|
+
[key: string]: unknown;
|
|
2507
|
+
};
|
|
2508
|
+
} | {
|
|
2509
|
+
/** @enum {string} */
|
|
2510
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
2511
|
+
/**
|
|
2512
|
+
* @description Human-readable error message
|
|
2513
|
+
* @example Invalid input
|
|
2514
|
+
*/
|
|
2515
|
+
message: string;
|
|
2516
|
+
/** @description Fillable subset and unfillable remainder */
|
|
2517
|
+
details?: {
|
|
2518
|
+
/** @description Intents fillable with current liquidity */
|
|
2519
|
+
availableIntents: {
|
|
2520
|
+
[key: string]: string;
|
|
2521
|
+
}[];
|
|
2522
|
+
/** @description Token amounts that cannot be filled */
|
|
2523
|
+
unfillable: {
|
|
2524
|
+
[key: string]: string;
|
|
2525
|
+
};
|
|
2526
|
+
};
|
|
2527
|
+
} | {
|
|
2528
|
+
/** @enum {string} */
|
|
2529
|
+
code: "KEY_SCOPE_DENIED";
|
|
2530
|
+
/**
|
|
2531
|
+
* @description Human-readable error message
|
|
2532
|
+
* @example Invalid input
|
|
2533
|
+
*/
|
|
2534
|
+
message: string;
|
|
2535
|
+
/** @description Single-element list describing the failing scope */
|
|
2536
|
+
details?: {
|
|
2537
|
+
message: string;
|
|
2538
|
+
context: {
|
|
2539
|
+
/**
|
|
2540
|
+
* @description Which scope rejected the request
|
|
2541
|
+
* @enum {string}
|
|
2542
|
+
*/
|
|
2543
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
2544
|
+
/** @description Minimum level the endpoint demands */
|
|
2545
|
+
required: boolean | ("read" | "write");
|
|
2546
|
+
/** @description Level resolved on the key */
|
|
2547
|
+
actual: boolean | ("none" | "read" | "write");
|
|
2548
|
+
};
|
|
2549
|
+
}[];
|
|
2550
|
+
} | {
|
|
2551
|
+
/** @enum {string} */
|
|
2552
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
2553
|
+
/**
|
|
2554
|
+
* @description Human-readable error message
|
|
2555
|
+
* @example Invalid input
|
|
2556
|
+
*/
|
|
2557
|
+
message: string;
|
|
2558
|
+
};
|
|
2559
|
+
};
|
|
2560
|
+
};
|
|
2561
|
+
};
|
|
2562
|
+
};
|
|
2563
|
+
getSplit: {
|
|
2564
|
+
parameters: {
|
|
2565
|
+
query?: never;
|
|
2566
|
+
header: {
|
|
2567
|
+
/** @description API version. Required; pinned to this document. */
|
|
2568
|
+
"x-api-version": "2026-04.blanc";
|
|
2569
|
+
/** @description API key. */
|
|
2570
|
+
"x-api-key": string;
|
|
2571
|
+
};
|
|
2572
|
+
path?: never;
|
|
2573
|
+
cookie?: never;
|
|
2574
|
+
};
|
|
2575
|
+
requestBody: {
|
|
2576
|
+
content: {
|
|
2577
|
+
"application/json": {
|
|
2578
|
+
/**
|
|
2579
|
+
* @description The chain ID the intents settle on (CAIP-2)
|
|
2580
|
+
* @example eip155:42161
|
|
2581
|
+
*/
|
|
2582
|
+
chainId: string;
|
|
2583
|
+
/**
|
|
2584
|
+
* @description Map of token addresses to amounts
|
|
2585
|
+
* @example {
|
|
2586
|
+
* "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "5000000000000"
|
|
2587
|
+
* }
|
|
2588
|
+
*/
|
|
2589
|
+
tokens: {
|
|
2590
|
+
[key: string]: string;
|
|
2591
|
+
};
|
|
2592
|
+
/**
|
|
2593
|
+
* @description Which settlement layers the orchestrator may use. `{ include: [...] }` (allow-list) or `{ exclude: [...] }` (deny-list, inverted against the orchestrator's live layer set); a bare array means `include`. Internal modes (`SAME_CHAIN`, `INTENT_EXECUTOR`) are not selectable. Default unset = all layers eligible.
|
|
2594
|
+
* @example {
|
|
2595
|
+
* "exclude": [
|
|
2596
|
+
* "RELAY"
|
|
2597
|
+
* ]
|
|
2598
|
+
* }
|
|
2599
|
+
*/
|
|
2600
|
+
settlementLayers?: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[] | {
|
|
2601
|
+
include: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[];
|
|
2602
|
+
} | {
|
|
2603
|
+
exclude: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[];
|
|
2604
|
+
};
|
|
2605
|
+
};
|
|
2606
|
+
};
|
|
2607
|
+
};
|
|
2608
|
+
responses: {
|
|
2609
|
+
/** @description OK */
|
|
2610
|
+
200: {
|
|
2611
|
+
headers: {
|
|
2612
|
+
[name: string]: unknown;
|
|
2613
|
+
};
|
|
2614
|
+
content: {
|
|
2615
|
+
"application/json": {
|
|
2616
|
+
/**
|
|
2617
|
+
* @description Array of intents, each mapping token addresses to amounts that can be filled by a single relayer
|
|
2618
|
+
* @example [
|
|
2619
|
+
* {
|
|
2620
|
+
* "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "2400000000000"
|
|
2621
|
+
* },
|
|
2622
|
+
* {
|
|
2623
|
+
* "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "1700000000000"
|
|
2624
|
+
* },
|
|
2625
|
+
* {
|
|
2626
|
+
* "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "900000000000"
|
|
2627
|
+
* }
|
|
2628
|
+
* ]
|
|
2629
|
+
*/
|
|
2630
|
+
intents: {
|
|
2631
|
+
[key: string]: string;
|
|
2632
|
+
}[];
|
|
2633
|
+
};
|
|
2634
|
+
};
|
|
2635
|
+
};
|
|
2636
|
+
/** @description Invalid request parameters */
|
|
2637
|
+
400: {
|
|
2638
|
+
headers: {
|
|
2639
|
+
[name: string]: unknown;
|
|
2640
|
+
};
|
|
2641
|
+
content: {
|
|
2642
|
+
"application/json": {
|
|
2643
|
+
/** @enum {string} */
|
|
2644
|
+
code: "VALIDATION_ERROR";
|
|
2645
|
+
/**
|
|
2646
|
+
* @description Human-readable error message
|
|
2647
|
+
* @example Invalid input
|
|
2648
|
+
*/
|
|
2649
|
+
message: string;
|
|
2650
|
+
/** @description Per-field validation issues */
|
|
2651
|
+
details?: {
|
|
2652
|
+
/** @description Human-readable issue description */
|
|
2653
|
+
message: string;
|
|
2654
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
2655
|
+
context?: {
|
|
2656
|
+
[key: string]: unknown;
|
|
2657
|
+
};
|
|
2658
|
+
}[];
|
|
2659
|
+
} | {
|
|
2660
|
+
/** @enum {string} */
|
|
2661
|
+
code: "SIMULATION_FAILED";
|
|
2662
|
+
/**
|
|
2663
|
+
* @description Human-readable error message
|
|
2664
|
+
* @example Invalid input
|
|
2665
|
+
*/
|
|
2666
|
+
message: string;
|
|
2667
|
+
/** @description Classified on-chain simulation failure details */
|
|
2668
|
+
details?: {
|
|
2669
|
+
nonce?: string;
|
|
2670
|
+
category: string;
|
|
2671
|
+
errorSelector: string;
|
|
2672
|
+
errorName: string;
|
|
2673
|
+
errorArgs?: {
|
|
2674
|
+
[key: string]: string;
|
|
2675
|
+
};
|
|
2676
|
+
retryable: boolean;
|
|
2677
|
+
/** @enum {string} */
|
|
2678
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
2679
|
+
simulations?: unknown;
|
|
2680
|
+
} & {
|
|
2681
|
+
[key: string]: unknown;
|
|
2682
|
+
};
|
|
2683
|
+
} | {
|
|
2684
|
+
/** @enum {string} */
|
|
2685
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
2686
|
+
/**
|
|
2687
|
+
* @description Human-readable error message
|
|
2688
|
+
* @example Invalid input
|
|
2689
|
+
*/
|
|
2690
|
+
message: string;
|
|
2691
|
+
/** @description Fillable subset and unfillable remainder */
|
|
2692
|
+
details?: {
|
|
2693
|
+
/** @description Intents fillable with current liquidity */
|
|
2694
|
+
availableIntents: {
|
|
2695
|
+
[key: string]: string;
|
|
2696
|
+
}[];
|
|
2697
|
+
/** @description Token amounts that cannot be filled */
|
|
2698
|
+
unfillable: {
|
|
2699
|
+
[key: string]: string;
|
|
2700
|
+
};
|
|
2701
|
+
};
|
|
2702
|
+
} | {
|
|
2703
|
+
/** @enum {string} */
|
|
2704
|
+
code: "KEY_SCOPE_DENIED";
|
|
2705
|
+
/**
|
|
2706
|
+
* @description Human-readable error message
|
|
2707
|
+
* @example Invalid input
|
|
2708
|
+
*/
|
|
2709
|
+
message: string;
|
|
2710
|
+
/** @description Single-element list describing the failing scope */
|
|
2711
|
+
details?: {
|
|
2712
|
+
message: string;
|
|
2713
|
+
context: {
|
|
2714
|
+
/**
|
|
2715
|
+
* @description Which scope rejected the request
|
|
2716
|
+
* @enum {string}
|
|
2717
|
+
*/
|
|
2718
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
2719
|
+
/** @description Minimum level the endpoint demands */
|
|
2720
|
+
required: boolean | ("read" | "write");
|
|
2721
|
+
/** @description Level resolved on the key */
|
|
2722
|
+
actual: boolean | ("none" | "read" | "write");
|
|
2723
|
+
};
|
|
2724
|
+
}[];
|
|
2725
|
+
} | {
|
|
2726
|
+
/** @enum {string} */
|
|
2727
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
2728
|
+
/**
|
|
2729
|
+
* @description Human-readable error message
|
|
2730
|
+
* @example Invalid input
|
|
2731
|
+
*/
|
|
2732
|
+
message: string;
|
|
2733
|
+
};
|
|
2734
|
+
};
|
|
2735
|
+
};
|
|
2736
|
+
/** @description API key scope denied */
|
|
2737
|
+
403: {
|
|
2738
|
+
headers: {
|
|
2739
|
+
[name: string]: unknown;
|
|
2740
|
+
};
|
|
2741
|
+
content: {
|
|
2742
|
+
"application/json": {
|
|
2743
|
+
/** @enum {string} */
|
|
2744
|
+
code: "VALIDATION_ERROR";
|
|
2745
|
+
/**
|
|
2746
|
+
* @description Human-readable error message
|
|
2747
|
+
* @example Invalid input
|
|
2748
|
+
*/
|
|
2749
|
+
message: string;
|
|
2750
|
+
/** @description Per-field validation issues */
|
|
2751
|
+
details?: {
|
|
2752
|
+
/** @description Human-readable issue description */
|
|
2753
|
+
message: string;
|
|
2754
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
2755
|
+
context?: {
|
|
2756
|
+
[key: string]: unknown;
|
|
2757
|
+
};
|
|
2758
|
+
}[];
|
|
2759
|
+
} | {
|
|
2760
|
+
/** @enum {string} */
|
|
2761
|
+
code: "SIMULATION_FAILED";
|
|
2762
|
+
/**
|
|
2763
|
+
* @description Human-readable error message
|
|
2764
|
+
* @example Invalid input
|
|
2765
|
+
*/
|
|
2766
|
+
message: string;
|
|
2767
|
+
/** @description Classified on-chain simulation failure details */
|
|
2768
|
+
details?: {
|
|
2769
|
+
nonce?: string;
|
|
2770
|
+
category: string;
|
|
2771
|
+
errorSelector: string;
|
|
2772
|
+
errorName: string;
|
|
2773
|
+
errorArgs?: {
|
|
2774
|
+
[key: string]: string;
|
|
2775
|
+
};
|
|
2776
|
+
retryable: boolean;
|
|
2777
|
+
/** @enum {string} */
|
|
2778
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
2779
|
+
simulations?: unknown;
|
|
2780
|
+
} & {
|
|
2781
|
+
[key: string]: unknown;
|
|
2782
|
+
};
|
|
2783
|
+
} | {
|
|
2784
|
+
/** @enum {string} */
|
|
2785
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
2786
|
+
/**
|
|
2787
|
+
* @description Human-readable error message
|
|
2788
|
+
* @example Invalid input
|
|
2789
|
+
*/
|
|
2790
|
+
message: string;
|
|
2791
|
+
/** @description Fillable subset and unfillable remainder */
|
|
2792
|
+
details?: {
|
|
2793
|
+
/** @description Intents fillable with current liquidity */
|
|
2794
|
+
availableIntents: {
|
|
2795
|
+
[key: string]: string;
|
|
2796
|
+
}[];
|
|
2797
|
+
/** @description Token amounts that cannot be filled */
|
|
2798
|
+
unfillable: {
|
|
2799
|
+
[key: string]: string;
|
|
2800
|
+
};
|
|
2801
|
+
};
|
|
2802
|
+
} | {
|
|
2803
|
+
/** @enum {string} */
|
|
2804
|
+
code: "KEY_SCOPE_DENIED";
|
|
2805
|
+
/**
|
|
2806
|
+
* @description Human-readable error message
|
|
2807
|
+
* @example Invalid input
|
|
2808
|
+
*/
|
|
2809
|
+
message: string;
|
|
2810
|
+
/** @description Single-element list describing the failing scope */
|
|
2811
|
+
details?: {
|
|
2812
|
+
message: string;
|
|
2813
|
+
context: {
|
|
2814
|
+
/**
|
|
2815
|
+
* @description Which scope rejected the request
|
|
2816
|
+
* @enum {string}
|
|
2817
|
+
*/
|
|
2818
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
2819
|
+
/** @description Minimum level the endpoint demands */
|
|
2820
|
+
required: boolean | ("read" | "write");
|
|
2821
|
+
/** @description Level resolved on the key */
|
|
2822
|
+
actual: boolean | ("none" | "read" | "write");
|
|
2823
|
+
};
|
|
2824
|
+
}[];
|
|
2825
|
+
} | {
|
|
2826
|
+
/** @enum {string} */
|
|
2827
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
2828
|
+
/**
|
|
2829
|
+
* @description Human-readable error message
|
|
2830
|
+
* @example Invalid input
|
|
2831
|
+
*/
|
|
2832
|
+
message: string;
|
|
2833
|
+
};
|
|
2834
|
+
};
|
|
2835
|
+
};
|
|
2836
|
+
/** @description Insufficient liquidity to fill the full amount. Partial splits returned. */
|
|
2837
|
+
422: {
|
|
2838
|
+
headers: {
|
|
2839
|
+
[name: string]: unknown;
|
|
2840
|
+
};
|
|
2841
|
+
content: {
|
|
2842
|
+
"application/json": {
|
|
2843
|
+
/** @enum {string} */
|
|
2844
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
2845
|
+
/**
|
|
2846
|
+
* @description Human-readable error message
|
|
2847
|
+
* @example Invalid input
|
|
2848
|
+
*/
|
|
2849
|
+
message: string;
|
|
2850
|
+
/** @description Fillable subset and unfillable remainder */
|
|
2851
|
+
details?: {
|
|
2852
|
+
/** @description Intents fillable with current liquidity */
|
|
2853
|
+
availableIntents: {
|
|
2854
|
+
[key: string]: string;
|
|
2855
|
+
}[];
|
|
2856
|
+
/** @description Token amounts that cannot be filled */
|
|
2857
|
+
unfillable: {
|
|
2858
|
+
[key: string]: string;
|
|
2859
|
+
};
|
|
2860
|
+
};
|
|
2861
|
+
};
|
|
2862
|
+
};
|
|
2863
|
+
};
|
|
2864
|
+
/** @description Server error */
|
|
2865
|
+
500: {
|
|
2866
|
+
headers: {
|
|
2867
|
+
[name: string]: unknown;
|
|
2868
|
+
};
|
|
2869
|
+
content: {
|
|
2870
|
+
"application/json": {
|
|
2871
|
+
/** @enum {string} */
|
|
2872
|
+
code: "VALIDATION_ERROR";
|
|
2873
|
+
/**
|
|
2874
|
+
* @description Human-readable error message
|
|
2875
|
+
* @example Invalid input
|
|
2876
|
+
*/
|
|
2877
|
+
message: string;
|
|
2878
|
+
/** @description Per-field validation issues */
|
|
2879
|
+
details?: {
|
|
2880
|
+
/** @description Human-readable issue description */
|
|
2881
|
+
message: string;
|
|
2882
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
2883
|
+
context?: {
|
|
2884
|
+
[key: string]: unknown;
|
|
2885
|
+
};
|
|
2886
|
+
}[];
|
|
2887
|
+
} | {
|
|
2888
|
+
/** @enum {string} */
|
|
2889
|
+
code: "SIMULATION_FAILED";
|
|
2890
|
+
/**
|
|
2891
|
+
* @description Human-readable error message
|
|
2892
|
+
* @example Invalid input
|
|
2893
|
+
*/
|
|
2894
|
+
message: string;
|
|
2895
|
+
/** @description Classified on-chain simulation failure details */
|
|
2896
|
+
details?: {
|
|
2897
|
+
nonce?: string;
|
|
2898
|
+
category: string;
|
|
2899
|
+
errorSelector: string;
|
|
2900
|
+
errorName: string;
|
|
2901
|
+
errorArgs?: {
|
|
2902
|
+
[key: string]: string;
|
|
2903
|
+
};
|
|
2904
|
+
retryable: boolean;
|
|
2905
|
+
/** @enum {string} */
|
|
2906
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
2907
|
+
simulations?: unknown;
|
|
2908
|
+
} & {
|
|
2909
|
+
[key: string]: unknown;
|
|
2910
|
+
};
|
|
2911
|
+
} | {
|
|
2912
|
+
/** @enum {string} */
|
|
2913
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
2914
|
+
/**
|
|
2915
|
+
* @description Human-readable error message
|
|
2916
|
+
* @example Invalid input
|
|
2917
|
+
*/
|
|
2918
|
+
message: string;
|
|
2919
|
+
/** @description Fillable subset and unfillable remainder */
|
|
2920
|
+
details?: {
|
|
2921
|
+
/** @description Intents fillable with current liquidity */
|
|
2922
|
+
availableIntents: {
|
|
2923
|
+
[key: string]: string;
|
|
2924
|
+
}[];
|
|
2925
|
+
/** @description Token amounts that cannot be filled */
|
|
2926
|
+
unfillable: {
|
|
2927
|
+
[key: string]: string;
|
|
2928
|
+
};
|
|
2929
|
+
};
|
|
2930
|
+
} | {
|
|
2931
|
+
/** @enum {string} */
|
|
2932
|
+
code: "KEY_SCOPE_DENIED";
|
|
2933
|
+
/**
|
|
2934
|
+
* @description Human-readable error message
|
|
2935
|
+
* @example Invalid input
|
|
2936
|
+
*/
|
|
2937
|
+
message: string;
|
|
2938
|
+
/** @description Single-element list describing the failing scope */
|
|
2939
|
+
details?: {
|
|
2940
|
+
message: string;
|
|
2941
|
+
context: {
|
|
2942
|
+
/**
|
|
2943
|
+
* @description Which scope rejected the request
|
|
2944
|
+
* @enum {string}
|
|
2945
|
+
*/
|
|
2946
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
2947
|
+
/** @description Minimum level the endpoint demands */
|
|
2948
|
+
required: boolean | ("read" | "write");
|
|
2949
|
+
/** @description Level resolved on the key */
|
|
2950
|
+
actual: boolean | ("none" | "read" | "write");
|
|
2951
|
+
};
|
|
2952
|
+
}[];
|
|
2953
|
+
} | {
|
|
2954
|
+
/** @enum {string} */
|
|
2955
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
2956
|
+
/**
|
|
2957
|
+
* @description Human-readable error message
|
|
2958
|
+
* @example Invalid input
|
|
2959
|
+
*/
|
|
2960
|
+
message: string;
|
|
2961
|
+
};
|
|
2962
|
+
};
|
|
2963
|
+
};
|
|
2964
|
+
};
|
|
2965
|
+
};
|
|
2966
|
+
createQuote: {
|
|
2967
|
+
parameters: {
|
|
2968
|
+
query?: never;
|
|
2969
|
+
header: {
|
|
2970
|
+
/** @description API version. Required; pinned to this document. */
|
|
2971
|
+
"x-api-version": "2026-04.blanc";
|
|
2972
|
+
/** @description API key. */
|
|
2973
|
+
"x-api-key": string;
|
|
2974
|
+
};
|
|
2975
|
+
path?: never;
|
|
2976
|
+
cookie?: never;
|
|
2977
|
+
};
|
|
2978
|
+
requestBody: {
|
|
2979
|
+
content: {
|
|
2980
|
+
"application/json": {
|
|
2981
|
+
/**
|
|
2982
|
+
* @description CAIP-2 chain identifier of the destination chain (EVM `eip155:<id>`, or non-EVM `solana:…`/`tron:…`)
|
|
2983
|
+
* @example eip155:8453
|
|
2984
|
+
*/
|
|
2985
|
+
destinationChainId: string;
|
|
2986
|
+
/** @description A list of token requested on the target chain */
|
|
2987
|
+
tokenRequests: {
|
|
2988
|
+
/**
|
|
2989
|
+
* @description The address of the requested token. Format depends on destination chain — 0x-hex for EVM, base58 SPL mint for Solana, T-address for Tron.
|
|
2990
|
+
* @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
|
|
2991
|
+
*/
|
|
2992
|
+
tokenAddress: string;
|
|
2993
|
+
/**
|
|
2994
|
+
* Format: uint256
|
|
2995
|
+
* @description The amount of the requested token (in the smallest unit). Omit for max-out.
|
|
2996
|
+
* @example 1000000
|
|
2997
|
+
*/
|
|
2998
|
+
amount?: string;
|
|
2999
|
+
/**
|
|
3000
|
+
* @description HyperCore balance class for this token request — 'spot' or 'perp'. Optional; defaults to 'perp' when destinationChainId is HyperCore. Rejected on every other destination.
|
|
3001
|
+
* @example spot
|
|
3002
|
+
* @enum {string}
|
|
3003
|
+
*/
|
|
3004
|
+
balance?: "spot" | "perp";
|
|
3005
|
+
}[];
|
|
3006
|
+
/** @description Account details */
|
|
3007
|
+
account: {
|
|
3008
|
+
/**
|
|
3009
|
+
* @description Account address
|
|
3010
|
+
* @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
|
|
3011
|
+
*/
|
|
3012
|
+
address: string;
|
|
3013
|
+
/**
|
|
3014
|
+
* @description Account type. Blanc clients should use `ERC7579`; the legacy `smartAccount` value is equivalent and accepted for alps wire compatibility, and gets rewritten to `ERC7579` by the `alpsAccountType` versioning change before Zod validation.
|
|
3015
|
+
* @enum {string}
|
|
3016
|
+
*/
|
|
3017
|
+
accountType?: "smartAccount" | "GENERIC" | "EOA" | "ERC7579";
|
|
3018
|
+
/** @description Setup operations for the smart account. Only used if the account is not deployed */
|
|
3019
|
+
setupOps?: {
|
|
3020
|
+
/**
|
|
3021
|
+
* @description Account deployment factory address
|
|
3022
|
+
* @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
|
|
3023
|
+
*/
|
|
3024
|
+
to: string;
|
|
3025
|
+
/**
|
|
3026
|
+
* @description Account deployment data
|
|
3027
|
+
* @example 0x...
|
|
3028
|
+
*/
|
|
3029
|
+
data: string;
|
|
3030
|
+
}[];
|
|
3031
|
+
/** @description Per-chain stub signatures used only during gas estimation. Required for smart-session flows where the real signature length depends on session policy — the orchestrator needs a same-shape placeholder to simulate the verification cost. Keys are chain IDs as decimal strings; `"0"` is a cross-chain fallback applied when no chain-specific entry matches. */
|
|
3032
|
+
mockSignatures?: {
|
|
3033
|
+
[key: string]: string;
|
|
3034
|
+
};
|
|
3035
|
+
/** @description Deprecated. Must be omitted; use `mockSignatures` (keyed by chain id) instead. */
|
|
3036
|
+
mockSignature?: unknown;
|
|
3037
|
+
/** @description Per-chain specific map to delegated contract address for 7702 delegations. Use `0` to indicate cross-chain delegation */
|
|
3038
|
+
delegations?: {
|
|
3039
|
+
[key: string]: {
|
|
3040
|
+
/** @description address of contract to which delegation on behalf of sponsor will be assumed for given chain ID */
|
|
3041
|
+
contract: string;
|
|
3042
|
+
};
|
|
3043
|
+
};
|
|
3044
|
+
};
|
|
3045
|
+
/** @description Execution calls on the target chain. */
|
|
3046
|
+
destinationExecutions?: {
|
|
3047
|
+
/**
|
|
3048
|
+
* @description Target contract address for execution
|
|
3049
|
+
* @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
|
|
3050
|
+
*/
|
|
3051
|
+
to: string;
|
|
3052
|
+
/**
|
|
3053
|
+
* Format: uint256
|
|
3054
|
+
* @description Amount of ETH (in wei) sent in the execution
|
|
3055
|
+
* @example 0
|
|
3056
|
+
*/
|
|
3057
|
+
value: string;
|
|
3058
|
+
/**
|
|
3059
|
+
* @description Encoded function call data
|
|
3060
|
+
* @example 0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240
|
|
3061
|
+
*/
|
|
3062
|
+
data: string;
|
|
3063
|
+
}[];
|
|
3064
|
+
/**
|
|
3065
|
+
* @description Execution calls to perform before the claim on each origin chain, keyed by chain ID. Max 10 ops per chain, max 5 chains.
|
|
3066
|
+
* @example {
|
|
3067
|
+
* "8453": [
|
|
3068
|
+
* {
|
|
3069
|
+
* "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
3070
|
+
* "value": "0",
|
|
3071
|
+
* "data": "0x"
|
|
3072
|
+
* }
|
|
3073
|
+
* ]
|
|
3074
|
+
* }
|
|
3075
|
+
*/
|
|
3076
|
+
preClaimExecutions?: {
|
|
3077
|
+
[key: string]: {
|
|
3078
|
+
/**
|
|
3079
|
+
* @description Target contract address for execution
|
|
3080
|
+
* @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
|
|
3081
|
+
*/
|
|
3082
|
+
to: string;
|
|
3083
|
+
/**
|
|
3084
|
+
* Format: uint256
|
|
3085
|
+
* @description Amount of ETH (in wei) sent in the execution
|
|
3086
|
+
* @example 0
|
|
3087
|
+
*/
|
|
3088
|
+
value: string;
|
|
3089
|
+
/**
|
|
3090
|
+
* @description Encoded function call data
|
|
3091
|
+
* @example 0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240
|
|
3092
|
+
*/
|
|
3093
|
+
data: string;
|
|
3094
|
+
}[];
|
|
3095
|
+
};
|
|
3096
|
+
/**
|
|
3097
|
+
* Format: uint256
|
|
3098
|
+
* @description The gas limit for the target chain executions
|
|
3099
|
+
* @example 100000
|
|
3100
|
+
*/
|
|
3101
|
+
destinationGasLimit?: string;
|
|
3102
|
+
/** @description Account access list specifying which chains and tokens an account may access */
|
|
3103
|
+
accountAccessList?: {
|
|
3104
|
+
chainIds?: number[];
|
|
3105
|
+
tokens?: (string | ("ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL"))[];
|
|
3106
|
+
chainTokens?: {
|
|
3107
|
+
[key: string]: (string | ("ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL"))[];
|
|
3108
|
+
};
|
|
3109
|
+
chainTokenAmounts?: {
|
|
3110
|
+
[key: string]: {
|
|
3111
|
+
[key: string]: string;
|
|
3112
|
+
};
|
|
3113
|
+
};
|
|
3114
|
+
exclude?: {
|
|
3115
|
+
chainIds?: number[];
|
|
3116
|
+
tokens?: (string | ("ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL"))[];
|
|
3117
|
+
chainTokens?: {
|
|
3118
|
+
[key: string]: (string | ("ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL"))[];
|
|
3119
|
+
};
|
|
3120
|
+
};
|
|
3121
|
+
};
|
|
3122
|
+
recipient?: {
|
|
3123
|
+
/**
|
|
3124
|
+
* @description Recipient address. Format depends on destination chain — 0x-hex for EVM destinations, base58 for Solana, T-address for Tron.
|
|
3125
|
+
* @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
|
|
3126
|
+
*/
|
|
3127
|
+
address: string;
|
|
3128
|
+
/**
|
|
3129
|
+
* @description Account type. Blanc clients should use `ERC7579`; the legacy `smartAccount` value is equivalent and accepted for alps wire compatibility, and gets rewritten to `ERC7579` by the `alpsAccountType` versioning change before Zod validation.
|
|
3130
|
+
* @enum {string}
|
|
3131
|
+
*/
|
|
3132
|
+
accountType?: "smartAccount" | "GENERIC" | "EOA" | "ERC7579";
|
|
3133
|
+
/** @description Setup operations for the smart account. Only used if the account is not deployed */
|
|
3134
|
+
setupOps?: {
|
|
3135
|
+
/**
|
|
3136
|
+
* @description Account deployment factory address
|
|
3137
|
+
* @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
|
|
3138
|
+
*/
|
|
3139
|
+
to: string;
|
|
3140
|
+
/**
|
|
3141
|
+
* @description Account deployment data
|
|
3142
|
+
* @example 0x...
|
|
3143
|
+
*/
|
|
3144
|
+
data: string;
|
|
3145
|
+
}[];
|
|
3146
|
+
/** @description Per-chain stub signatures used only during gas estimation. Required for smart-session flows where the real signature length depends on session policy — the orchestrator needs a same-shape placeholder to simulate the verification cost. Keys are chain IDs as decimal strings; `"0"` is a cross-chain fallback applied when no chain-specific entry matches. */
|
|
3147
|
+
mockSignatures?: {
|
|
3148
|
+
[key: string]: string;
|
|
3149
|
+
};
|
|
3150
|
+
/** @description Deprecated. Must be omitted; use `mockSignatures` (keyed by chain id) instead. */
|
|
3151
|
+
mockSignature?: unknown;
|
|
3152
|
+
/** @description Per-chain specific map to delegated contract address for 7702 delegations. Use `0` to indicate cross-chain delegation */
|
|
3153
|
+
delegations?: {
|
|
3154
|
+
[key: string]: {
|
|
3155
|
+
/** @description address of contract to which delegation on behalf of sponsor will be assumed for given chain ID */
|
|
3156
|
+
contract: string;
|
|
3157
|
+
};
|
|
3158
|
+
};
|
|
3159
|
+
};
|
|
3160
|
+
/**
|
|
3161
|
+
* @description Intent options
|
|
3162
|
+
* @example {
|
|
3163
|
+
* "settlementLayers": {
|
|
3164
|
+
* "include": [
|
|
3165
|
+
* "ECO"
|
|
3166
|
+
* ]
|
|
3167
|
+
* },
|
|
3168
|
+
* "sponsorSettings": {
|
|
3169
|
+
* "gas": true,
|
|
3170
|
+
* "bridgeFees": true,
|
|
3171
|
+
* "swapFees": true
|
|
3172
|
+
* },
|
|
3173
|
+
* "feeToken": "USDC"
|
|
3174
|
+
* }
|
|
3175
|
+
*/
|
|
3176
|
+
options?: {
|
|
3177
|
+
/**
|
|
3178
|
+
* @description Which settlement layers the orchestrator may use. `{ include: [...] }` (allow-list) or `{ exclude: [...] }` (deny-list, inverted against the orchestrator's live layer set); a bare array means `include`. Internal modes (`SAME_CHAIN`, `INTENT_EXECUTOR`) are not selectable. Default unset = all layers eligible.
|
|
3179
|
+
* @example {
|
|
3180
|
+
* "exclude": [
|
|
3181
|
+
* "RELAY"
|
|
3182
|
+
* ]
|
|
3183
|
+
* }
|
|
3184
|
+
*/
|
|
3185
|
+
settlementLayers?: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[] | {
|
|
3186
|
+
include: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[];
|
|
3187
|
+
} | {
|
|
3188
|
+
exclude: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[];
|
|
3189
|
+
};
|
|
3190
|
+
/**
|
|
3191
|
+
* @description Sponsor settings for the intent
|
|
3192
|
+
* @example {
|
|
3193
|
+
* "gas": true,
|
|
3194
|
+
* "bridgeFees": true,
|
|
3195
|
+
* "swapFees": true
|
|
3196
|
+
* }
|
|
3197
|
+
*/
|
|
3198
|
+
sponsorSettings?: {
|
|
3199
|
+
/**
|
|
3200
|
+
* @description Whether to sponsor gas for the intent
|
|
3201
|
+
* @default false
|
|
3202
|
+
* @example true
|
|
3203
|
+
*/
|
|
3204
|
+
gas?: boolean;
|
|
3205
|
+
/**
|
|
3206
|
+
* @description Whether to sponsor bridge fees for the intent
|
|
3207
|
+
* @default false
|
|
3208
|
+
*/
|
|
3209
|
+
bridgeFees?: boolean;
|
|
3210
|
+
/**
|
|
3211
|
+
* @description Whether to sponsor swap fees for the intent
|
|
3212
|
+
* @default false
|
|
3213
|
+
*/
|
|
3214
|
+
swapFees?: boolean;
|
|
3215
|
+
};
|
|
3216
|
+
/**
|
|
3217
|
+
* @description How the user's intent signature will be verified onchain. `ECDSA` for plain EOA signatures; `ERC1271_EMISSARY` for smart-account signatures verified via TheCompact emissary delegation. The orchestrator picks a default based on `account.accountType` — only set this if you need to override.
|
|
3218
|
+
* @example 3
|
|
3219
|
+
* @enum {string}
|
|
3220
|
+
*/
|
|
3221
|
+
signatureMode?: "EMISSARY" | "ERC1271" | "EMISSARY_ERC1271" | "ERC1271_EMISSARY" | "EMISSARY_EXECUTION" | "EMISSARY_EXECUTION_ERC1271" | "ERC1271_EMISSARY_EXECUTION" | 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
3222
|
+
/**
|
|
3223
|
+
* @description Reserved for future use. No effect today.
|
|
3224
|
+
* @enum {string}
|
|
3225
|
+
*/
|
|
3226
|
+
feeToken?: "ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL";
|
|
3227
|
+
appFees?: {
|
|
3228
|
+
/**
|
|
3229
|
+
* @description App fee rate in basis points of the input value (0–10000 = 0–100%).
|
|
3230
|
+
* @example 25
|
|
3231
|
+
*/
|
|
3232
|
+
feeBps: number;
|
|
3233
|
+
};
|
|
3234
|
+
/**
|
|
3235
|
+
* @description Tokens that will be received by EOA executions. These will be swept to the recipient account.
|
|
3236
|
+
* @example [
|
|
3237
|
+
* "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
|
|
3238
|
+
* ]
|
|
3239
|
+
*/
|
|
3240
|
+
executionTokensReceived?: string[];
|
|
3241
|
+
/**
|
|
3242
|
+
* @description Additional balances the quote should treat as available, beyond what is currently on the account. Use this to get a preliminary quote against funds you can produce by the time you submit — e.g. liquidity in a DeFi vault you will withdraw, an in-flight CEX deposit, or a parallel transfer from another wallet. Keyed by chain ID, then token address; amounts in the token's smallest unit.
|
|
3243
|
+
* @example {
|
|
3244
|
+
* "42161": {
|
|
3245
|
+
* "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": "500000000"
|
|
3246
|
+
* }
|
|
3247
|
+
* }
|
|
3248
|
+
*/
|
|
3249
|
+
auxiliaryFunds?: {
|
|
3250
|
+
[key: string]: {
|
|
3251
|
+
[key: string]: string;
|
|
3252
|
+
};
|
|
3253
|
+
};
|
|
3254
|
+
/**
|
|
3255
|
+
* @description How to rank candidate plans. `cheapest` minimizes direct USD cost. `fastest` minimizes estimated fill time (with cost tiebreaker). `best` balances both via a notional- and time-weighted shadow fee.
|
|
3256
|
+
* @example best
|
|
3257
|
+
* @enum {string}
|
|
3258
|
+
*/
|
|
3259
|
+
selectionStrategy?: "cheapest" | "fastest" | "best";
|
|
3260
|
+
};
|
|
3261
|
+
};
|
|
3262
|
+
};
|
|
3263
|
+
};
|
|
3264
|
+
responses: {
|
|
3265
|
+
/** @description OK */
|
|
3266
|
+
200: {
|
|
3267
|
+
headers: {
|
|
3268
|
+
[name: string]: unknown;
|
|
3269
|
+
};
|
|
3270
|
+
content: {
|
|
3271
|
+
"application/json": {
|
|
3272
|
+
/** @description Route candidates ranked by the orchestrator's internal scoring (cheaper + faster wins). The first entry is the recommended route — most clients should submit it without inspecting the rest. */
|
|
3273
|
+
routes: {
|
|
3274
|
+
/** @description Server-stored intent identifier. Pass back to `POST /intents` to submit. */
|
|
3275
|
+
intentId: string;
|
|
3276
|
+
/**
|
|
3277
|
+
* @description Quote expiry timestamp (Unix seconds). After this point, assume the quote is dead and re-quote.
|
|
3278
|
+
* @example 1733493192
|
|
3279
|
+
*/
|
|
3280
|
+
expiresAt: number;
|
|
3281
|
+
/** @description Estimated fill time for the route */
|
|
3282
|
+
estimatedFillTime: {
|
|
3283
|
+
/**
|
|
3284
|
+
* @description Typical end-to-end fill time for this route in seconds. Directional, not guaranteed.
|
|
3285
|
+
* @example 3
|
|
3286
|
+
*/
|
|
3287
|
+
seconds: number;
|
|
3288
|
+
};
|
|
3289
|
+
/**
|
|
3290
|
+
* @description Settlement layer selected for this route
|
|
3291
|
+
* @example RELAY
|
|
3292
|
+
* @enum {string}
|
|
3293
|
+
*/
|
|
3294
|
+
settlementLayer: "INTENT_EXECUTOR" | "SAME_CHAIN" | "ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP";
|
|
3295
|
+
/** @description EIP-712 sign payloads the client submits back on `POST /intents` */
|
|
3296
|
+
signData: {
|
|
3297
|
+
/** @description Typed data payloads for the origin legs, in submission order. Sign each entry and submit the signatures in matching order via `signatures.origin`. */
|
|
3298
|
+
origin: {
|
|
3299
|
+
/** @description EIP-712 domain separator fields */
|
|
3300
|
+
domain: {
|
|
3301
|
+
name?: string;
|
|
3302
|
+
version?: string;
|
|
3303
|
+
chainId?: number;
|
|
3304
|
+
verifyingContract?: string;
|
|
3305
|
+
salt?: string;
|
|
3306
|
+
};
|
|
3307
|
+
/** @description EIP-712 type definitions keyed by type name */
|
|
3308
|
+
types: {
|
|
3309
|
+
[key: string]: {
|
|
3310
|
+
name: string;
|
|
3311
|
+
type: string;
|
|
3312
|
+
}[];
|
|
3313
|
+
};
|
|
3314
|
+
/**
|
|
3315
|
+
* @description Name of the top-level type to sign
|
|
3316
|
+
* @example PermitBatchWitnessTransferFrom
|
|
3317
|
+
*/
|
|
3318
|
+
primaryType: string;
|
|
3319
|
+
/** @description Message values keyed by field name. uint256 fields are encoded as decimal strings on the wire and re-coerced to bigint client-side before signing. */
|
|
3320
|
+
message: {
|
|
3321
|
+
[key: string]: unknown;
|
|
3322
|
+
};
|
|
3323
|
+
}[];
|
|
3324
|
+
/** @description Typed data for the destination leg */
|
|
3325
|
+
destination: {
|
|
3326
|
+
/** @description EIP-712 domain separator fields */
|
|
3327
|
+
domain: {
|
|
3328
|
+
name?: string;
|
|
3329
|
+
version?: string;
|
|
3330
|
+
chainId?: number;
|
|
3331
|
+
verifyingContract?: string;
|
|
3332
|
+
salt?: string;
|
|
3333
|
+
};
|
|
3334
|
+
/** @description EIP-712 type definitions keyed by type name */
|
|
3335
|
+
types: {
|
|
3336
|
+
[key: string]: {
|
|
3337
|
+
name: string;
|
|
3338
|
+
type: string;
|
|
3339
|
+
}[];
|
|
3340
|
+
};
|
|
3341
|
+
/**
|
|
3342
|
+
* @description Name of the top-level type to sign
|
|
3343
|
+
* @example PermitBatchWitnessTransferFrom
|
|
3344
|
+
*/
|
|
3345
|
+
primaryType: string;
|
|
3346
|
+
/** @description Message values keyed by field name. uint256 fields are encoded as decimal strings on the wire and re-coerced to bigint client-side before signing. */
|
|
3347
|
+
message: {
|
|
3348
|
+
[key: string]: unknown;
|
|
3349
|
+
};
|
|
3350
|
+
};
|
|
3351
|
+
/** @description Typed data for the target execution, smart sessions only. Omitted for EOA accounts. */
|
|
3352
|
+
targetExecution?: {
|
|
3353
|
+
/** @description EIP-712 domain separator fields */
|
|
3354
|
+
domain: {
|
|
3355
|
+
name?: string;
|
|
3356
|
+
version?: string;
|
|
3357
|
+
chainId?: number;
|
|
3358
|
+
verifyingContract?: string;
|
|
3359
|
+
salt?: string;
|
|
3360
|
+
};
|
|
3361
|
+
/** @description EIP-712 type definitions keyed by type name */
|
|
3362
|
+
types: {
|
|
3363
|
+
[key: string]: {
|
|
3364
|
+
name: string;
|
|
3365
|
+
type: string;
|
|
3366
|
+
}[];
|
|
3367
|
+
};
|
|
3368
|
+
/**
|
|
3369
|
+
* @description Name of the top-level type to sign
|
|
3370
|
+
* @example PermitBatchWitnessTransferFrom
|
|
3371
|
+
*/
|
|
3372
|
+
primaryType: string;
|
|
3373
|
+
/** @description Message values keyed by field name. uint256 fields are encoded as decimal strings on the wire and re-coerced to bigint client-side before signing. */
|
|
3374
|
+
message: {
|
|
3375
|
+
[key: string]: unknown;
|
|
3376
|
+
};
|
|
3377
|
+
};
|
|
3378
|
+
};
|
|
3379
|
+
/** @description Route cost: inputs, outputs, and fee breakdown */
|
|
3380
|
+
cost: {
|
|
3381
|
+
/** @description Tokens debited from the user, coalesced by (chainId, tokenAddress) */
|
|
3382
|
+
input: {
|
|
3383
|
+
/**
|
|
3384
|
+
* @description Chain where this token leg settles
|
|
3385
|
+
* @example eip155:8453
|
|
3386
|
+
*/
|
|
3387
|
+
chainId: string;
|
|
3388
|
+
/**
|
|
3389
|
+
* @description ERC-20 contract address for this token
|
|
3390
|
+
* @example 0xaf88d065e77c8cc2239327c5edb3a432268e5831
|
|
3391
|
+
*/
|
|
3392
|
+
tokenAddress: string;
|
|
3393
|
+
/**
|
|
3394
|
+
* @description Token symbol. `null` when the internal token registry has no entry for this address.
|
|
3395
|
+
* @example USDC
|
|
3396
|
+
*/
|
|
3397
|
+
symbol: string | null;
|
|
3398
|
+
/**
|
|
3399
|
+
* @description Token decimals. `null` when the internal token registry has no entry for this address.
|
|
3400
|
+
* @example 6
|
|
3401
|
+
*/
|
|
3402
|
+
decimals: number | null;
|
|
3403
|
+
/** @description Unit price in USD. `null` when the price oracle has no data for this token. */
|
|
3404
|
+
price: {
|
|
3405
|
+
/**
|
|
3406
|
+
* @description Unit price in USD
|
|
3407
|
+
* @example 1
|
|
3408
|
+
*/
|
|
3409
|
+
usd: number;
|
|
3410
|
+
} | null;
|
|
3411
|
+
/**
|
|
3412
|
+
* Format: uint256
|
|
3413
|
+
* @description Token amount in the token's smallest unit
|
|
3414
|
+
* @example 1050000
|
|
3415
|
+
*/
|
|
3416
|
+
amount: string;
|
|
3417
|
+
}[];
|
|
3418
|
+
/** @description Tokens delivered to the recipient, coalesced by (chainId, tokenAddress) */
|
|
3419
|
+
output: {
|
|
3420
|
+
/**
|
|
3421
|
+
* @description Chain where this token leg settles (CAIP-2, any namespace)
|
|
3422
|
+
* @example eip155:8453
|
|
3423
|
+
*/
|
|
3424
|
+
chainId: string;
|
|
3425
|
+
/**
|
|
3426
|
+
* @description Contract address of the delivered token (EVM 0x or non-EVM base58)
|
|
3427
|
+
* @example 0xaf88d065e77c8cc2239327c5edb3a432268e5831
|
|
3428
|
+
*/
|
|
3429
|
+
tokenAddress: string;
|
|
3430
|
+
/**
|
|
3431
|
+
* @description Token symbol. `null` when the internal token registry has no entry for this address.
|
|
3432
|
+
* @example USDC
|
|
3433
|
+
*/
|
|
3434
|
+
symbol: string | null;
|
|
3435
|
+
/**
|
|
3436
|
+
* @description Token decimals. `null` when the internal token registry has no entry for this address.
|
|
3437
|
+
* @example 6
|
|
3438
|
+
*/
|
|
3439
|
+
decimals: number | null;
|
|
3440
|
+
/** @description Unit price in USD. `null` when the price oracle has no data for this token. */
|
|
3441
|
+
price: {
|
|
3442
|
+
/**
|
|
3443
|
+
* @description Unit price in USD
|
|
3444
|
+
* @example 1
|
|
3445
|
+
*/
|
|
3446
|
+
usd: number;
|
|
3447
|
+
} | null;
|
|
3448
|
+
/**
|
|
3449
|
+
* Format: uint256
|
|
3450
|
+
* @description Token amount in the token's smallest unit
|
|
3451
|
+
* @example 1050000
|
|
3452
|
+
*/
|
|
3453
|
+
amount: string;
|
|
3454
|
+
}[];
|
|
3455
|
+
/** @description Aggregate route fees with per-category breakdown */
|
|
3456
|
+
fees: {
|
|
3457
|
+
/** @description Full route cost in USD, regardless of who pays. Equal to `sum(breakdown.*.usd)` modulo rounding. */
|
|
3458
|
+
total: {
|
|
3459
|
+
/**
|
|
3460
|
+
* @description USD-denominated value
|
|
3461
|
+
* @example 0.029
|
|
3462
|
+
*/
|
|
3463
|
+
usd: number;
|
|
3464
|
+
};
|
|
3465
|
+
/** @description Per-category fee breakdown */
|
|
3466
|
+
breakdown: {
|
|
3467
|
+
/** @description Aggregate gas cost (destination fill, swap execution, origin gas) */
|
|
3468
|
+
gas: {
|
|
3469
|
+
/**
|
|
3470
|
+
* @description Total cost of this category in USD, regardless of who pays.
|
|
3471
|
+
* @example 0.029
|
|
3472
|
+
*/
|
|
3473
|
+
usd: number;
|
|
3474
|
+
/**
|
|
3475
|
+
* @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced.
|
|
3476
|
+
* @example false
|
|
3477
|
+
*/
|
|
3478
|
+
sponsored: boolean;
|
|
3479
|
+
};
|
|
3480
|
+
/** @description Aggregate settlement-layer bridge cost */
|
|
3481
|
+
bridge: {
|
|
3482
|
+
/**
|
|
3483
|
+
* @description Total cost of this category in USD, regardless of who pays.
|
|
3484
|
+
* @example 0.029
|
|
3485
|
+
*/
|
|
3486
|
+
usd: number;
|
|
3487
|
+
/**
|
|
3488
|
+
* @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced.
|
|
3489
|
+
* @example false
|
|
3490
|
+
*/
|
|
3491
|
+
sponsored: boolean;
|
|
3492
|
+
};
|
|
3493
|
+
/** @description Aggregate solver swap commission */
|
|
3494
|
+
swap: {
|
|
3495
|
+
/**
|
|
3496
|
+
* @description Total cost of this category in USD, regardless of who pays.
|
|
3497
|
+
* @example 0.029
|
|
3498
|
+
*/
|
|
3499
|
+
usd: number;
|
|
3500
|
+
/**
|
|
3501
|
+
* @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced.
|
|
3502
|
+
* @example false
|
|
3503
|
+
*/
|
|
3504
|
+
sponsored: boolean;
|
|
3505
|
+
};
|
|
3506
|
+
/** @description Aggregate integrator app fee */
|
|
3507
|
+
app: {
|
|
3508
|
+
/**
|
|
3509
|
+
* @description Total cost of this category in USD, regardless of who pays.
|
|
3510
|
+
* @example 0.029
|
|
3511
|
+
*/
|
|
3512
|
+
usd: number;
|
|
3513
|
+
/**
|
|
3514
|
+
* @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced.
|
|
3515
|
+
* @example false
|
|
3516
|
+
*/
|
|
3517
|
+
sponsored: boolean;
|
|
3518
|
+
};
|
|
3519
|
+
};
|
|
3520
|
+
};
|
|
3521
|
+
};
|
|
3522
|
+
/** @description Concrete app-fee legs charged to the user. Empty or omitted when no app fee applies; app fees are never sponsored. */
|
|
3523
|
+
appFee?: {
|
|
3524
|
+
/**
|
|
3525
|
+
* @description Integrator app-fee rate in basis points.
|
|
3526
|
+
* @example 100
|
|
3527
|
+
*/
|
|
3528
|
+
feeBps: number;
|
|
3529
|
+
/**
|
|
3530
|
+
* Format: uint256
|
|
3531
|
+
* @description Principal amount the app fee was computed from, in token base units.
|
|
3532
|
+
* @example 10000000
|
|
3533
|
+
*/
|
|
3534
|
+
baseAmount: string;
|
|
3535
|
+
/**
|
|
3536
|
+
* Format: uint256
|
|
3537
|
+
* @description App-fee amount in token base units.
|
|
3538
|
+
* @example 100000
|
|
3539
|
+
*/
|
|
3540
|
+
amount: string;
|
|
3541
|
+
/**
|
|
3542
|
+
* @description Origin chain where the app-fee token is spent.
|
|
3543
|
+
* @example eip155:42161
|
|
3544
|
+
*/
|
|
3545
|
+
chainId: string;
|
|
3546
|
+
/**
|
|
3547
|
+
* @description Address of the token used to pay the app fee.
|
|
3548
|
+
* @example 0xaf88d065e77c8cC2239327C5EDb3A432268e5831
|
|
3549
|
+
*/
|
|
3550
|
+
tokenAddress: string;
|
|
3551
|
+
}[];
|
|
3552
|
+
/**
|
|
3553
|
+
* @description Pre-flight token operations the user must perform before submitting this route (approvals, wrapping). Emitted for EOA accounts only — smart accounts handle these internally.
|
|
3554
|
+
* @example {
|
|
3555
|
+
* "8453": {
|
|
3556
|
+
* "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
|
|
3557
|
+
* "type": "approval",
|
|
3558
|
+
* "amount": "1000000",
|
|
3559
|
+
* "spender": "0x000000000022d473030f116ddee9f6b43ac78ba3"
|
|
3560
|
+
* }
|
|
3561
|
+
* }
|
|
3562
|
+
* }
|
|
3563
|
+
*/
|
|
3564
|
+
tokenRequirements?: {
|
|
3565
|
+
[key: string]: {
|
|
3566
|
+
[key: string]: {
|
|
3567
|
+
/**
|
|
3568
|
+
* @description Discriminator: `approval` means the user must ERC-20 approve `spender` for at least `amount` before submission.
|
|
3569
|
+
* @enum {string}
|
|
3570
|
+
*/
|
|
3571
|
+
type: "approval";
|
|
3572
|
+
/**
|
|
3573
|
+
* Format: uint256
|
|
3574
|
+
* @description Minimum required allowance, in the token's smallest unit.
|
|
3575
|
+
*/
|
|
3576
|
+
amount: string;
|
|
3577
|
+
/** @description Always the canonical Permit2 contract on this chain. The EOA approves Permit2; the settlement contract pulls funds via Permit2 at claim time. */
|
|
3578
|
+
spender: string;
|
|
3579
|
+
} | {
|
|
3580
|
+
/**
|
|
3581
|
+
* @description Discriminator: `wrap` means the user must wrap native ETH into the chain's WETH-equivalent before submission.
|
|
3582
|
+
* @enum {string}
|
|
3583
|
+
*/
|
|
3584
|
+
type: "wrap";
|
|
3585
|
+
/**
|
|
3586
|
+
* Format: uint256
|
|
3587
|
+
* @description Minimum amount to wrap, in wei.
|
|
3588
|
+
*/
|
|
3589
|
+
amount: string;
|
|
3590
|
+
};
|
|
3591
|
+
};
|
|
3592
|
+
};
|
|
3593
|
+
/** @description Provider handle for resolving the destination-chain delivery transaction when settlement hands off to a third-party bridge (RHINO, RELAY, NEAR, CCTP, OFT). Absent when the orchestrator settles end-to-end (e.g. ACROSS, ECO). */
|
|
3594
|
+
bridgeFill?: {
|
|
3595
|
+
/** @description Destination chain ID for the bridge fill */
|
|
3596
|
+
destinationChainId: number;
|
|
3597
|
+
/** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
|
|
3598
|
+
fillExpirationPeriod?: number;
|
|
3599
|
+
/**
|
|
3600
|
+
* @description LayerZero OFT
|
|
3601
|
+
* @enum {string}
|
|
3602
|
+
*/
|
|
3603
|
+
type: "OFT";
|
|
3604
|
+
} | {
|
|
3605
|
+
/** @description Destination chain ID for the bridge fill */
|
|
3606
|
+
destinationChainId: number;
|
|
3607
|
+
/** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
|
|
3608
|
+
fillExpirationPeriod?: number;
|
|
3609
|
+
/**
|
|
3610
|
+
* @description Relay.link
|
|
3611
|
+
* @enum {string}
|
|
3612
|
+
*/
|
|
3613
|
+
type: "RELAY";
|
|
3614
|
+
/** @description Relay.link request ID. Use against Relay.link's status API to track the destination-chain fill. */
|
|
3615
|
+
requestId: string;
|
|
3616
|
+
} | {
|
|
3617
|
+
/** @description Destination chain ID for the bridge fill */
|
|
3618
|
+
destinationChainId: number;
|
|
3619
|
+
/** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
|
|
3620
|
+
fillExpirationPeriod?: number;
|
|
3621
|
+
/**
|
|
3622
|
+
* @description NEAR Intents
|
|
3623
|
+
* @enum {string}
|
|
3624
|
+
*/
|
|
3625
|
+
type: "NEAR";
|
|
3626
|
+
/** @description NEAR Intents deposit address. Track fill status via the NEAR Intents status API keyed on this address. */
|
|
3627
|
+
depositAddress: string;
|
|
3628
|
+
} | {
|
|
3629
|
+
/** @description Destination chain ID for the bridge fill */
|
|
3630
|
+
destinationChainId: number;
|
|
3631
|
+
/** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
|
|
3632
|
+
fillExpirationPeriod?: number;
|
|
3633
|
+
/**
|
|
3634
|
+
* @description Rhino.fi
|
|
3635
|
+
* @enum {string}
|
|
3636
|
+
*/
|
|
3637
|
+
type: "RHINO";
|
|
3638
|
+
/** @description Rhino.fi commitment ID. Use against Rhino.fi's status API to track the destination-chain fill. */
|
|
3639
|
+
commitmentId: string;
|
|
3640
|
+
} | {
|
|
3641
|
+
/** @description Destination chain ID for the bridge fill */
|
|
3642
|
+
destinationChainId: number;
|
|
3643
|
+
/** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
|
|
3644
|
+
fillExpirationPeriod?: number;
|
|
3645
|
+
/**
|
|
3646
|
+
* @description Circle CCTP
|
|
3647
|
+
* @enum {string}
|
|
3648
|
+
*/
|
|
3649
|
+
type: "CCTP";
|
|
3650
|
+
/** @description Circle CCTP source domain ID — needed to fetch the attestation for the burn message on the source chain. */
|
|
3651
|
+
sourceDomainId: number;
|
|
3652
|
+
/** @description Circle CCTP destination domain ID. */
|
|
3653
|
+
destinationDomainId: number;
|
|
3654
|
+
};
|
|
3655
|
+
}[];
|
|
3656
|
+
};
|
|
3657
|
+
};
|
|
3658
|
+
};
|
|
3659
|
+
/** @description Invalid request parameters */
|
|
3660
|
+
400: {
|
|
3661
|
+
headers: {
|
|
3662
|
+
[name: string]: unknown;
|
|
3663
|
+
};
|
|
3664
|
+
content: {
|
|
3665
|
+
"application/json": {
|
|
3666
|
+
/** @enum {string} */
|
|
3667
|
+
code: "VALIDATION_ERROR";
|
|
3668
|
+
/**
|
|
3669
|
+
* @description Human-readable error message
|
|
3670
|
+
* @example Invalid input
|
|
3671
|
+
*/
|
|
3672
|
+
message: string;
|
|
3673
|
+
/** @description Per-field validation issues */
|
|
3674
|
+
details?: {
|
|
3675
|
+
/** @description Human-readable issue description */
|
|
3676
|
+
message: string;
|
|
3677
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
3678
|
+
context?: {
|
|
3679
|
+
[key: string]: unknown;
|
|
3680
|
+
};
|
|
3681
|
+
}[];
|
|
3682
|
+
} | {
|
|
3683
|
+
/** @enum {string} */
|
|
3684
|
+
code: "SIMULATION_FAILED";
|
|
3685
|
+
/**
|
|
3686
|
+
* @description Human-readable error message
|
|
3687
|
+
* @example Invalid input
|
|
3688
|
+
*/
|
|
3689
|
+
message: string;
|
|
3690
|
+
/** @description Classified on-chain simulation failure details */
|
|
3691
|
+
details?: {
|
|
3692
|
+
nonce?: string;
|
|
3693
|
+
category: string;
|
|
3694
|
+
errorSelector: string;
|
|
3695
|
+
errorName: string;
|
|
3696
|
+
errorArgs?: {
|
|
3697
|
+
[key: string]: string;
|
|
3698
|
+
};
|
|
3699
|
+
retryable: boolean;
|
|
3700
|
+
/** @enum {string} */
|
|
3701
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
3702
|
+
simulations?: unknown;
|
|
3703
|
+
} & {
|
|
3704
|
+
[key: string]: unknown;
|
|
3705
|
+
};
|
|
3706
|
+
} | {
|
|
3707
|
+
/** @enum {string} */
|
|
3708
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
3709
|
+
/**
|
|
3710
|
+
* @description Human-readable error message
|
|
3711
|
+
* @example Invalid input
|
|
3712
|
+
*/
|
|
3713
|
+
message: string;
|
|
3714
|
+
/** @description Fillable subset and unfillable remainder */
|
|
3715
|
+
details?: {
|
|
3716
|
+
/** @description Intents fillable with current liquidity */
|
|
3717
|
+
availableIntents: {
|
|
3718
|
+
[key: string]: string;
|
|
3719
|
+
}[];
|
|
3720
|
+
/** @description Token amounts that cannot be filled */
|
|
3721
|
+
unfillable: {
|
|
3722
|
+
[key: string]: string;
|
|
3723
|
+
};
|
|
3724
|
+
};
|
|
3725
|
+
} | {
|
|
3726
|
+
/** @enum {string} */
|
|
3727
|
+
code: "KEY_SCOPE_DENIED";
|
|
3728
|
+
/**
|
|
3729
|
+
* @description Human-readable error message
|
|
3730
|
+
* @example Invalid input
|
|
3731
|
+
*/
|
|
3732
|
+
message: string;
|
|
3733
|
+
/** @description Single-element list describing the failing scope */
|
|
3734
|
+
details?: {
|
|
3735
|
+
message: string;
|
|
3736
|
+
context: {
|
|
3737
|
+
/**
|
|
3738
|
+
* @description Which scope rejected the request
|
|
3739
|
+
* @enum {string}
|
|
3740
|
+
*/
|
|
3741
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
3742
|
+
/** @description Minimum level the endpoint demands */
|
|
3743
|
+
required: boolean | ("read" | "write");
|
|
3744
|
+
/** @description Level resolved on the key */
|
|
3745
|
+
actual: boolean | ("none" | "read" | "write");
|
|
3746
|
+
};
|
|
3747
|
+
}[];
|
|
3748
|
+
} | {
|
|
3749
|
+
/** @enum {string} */
|
|
3750
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
3751
|
+
/**
|
|
3752
|
+
* @description Human-readable error message
|
|
3753
|
+
* @example Invalid input
|
|
3754
|
+
*/
|
|
3755
|
+
message: string;
|
|
3756
|
+
};
|
|
3757
|
+
};
|
|
3758
|
+
};
|
|
3759
|
+
/** @description API key scope denied */
|
|
3760
|
+
403: {
|
|
3761
|
+
headers: {
|
|
3762
|
+
[name: string]: unknown;
|
|
3763
|
+
};
|
|
3764
|
+
content: {
|
|
3765
|
+
"application/json": {
|
|
3766
|
+
/** @enum {string} */
|
|
3767
|
+
code: "VALIDATION_ERROR";
|
|
3768
|
+
/**
|
|
3769
|
+
* @description Human-readable error message
|
|
3770
|
+
* @example Invalid input
|
|
3771
|
+
*/
|
|
3772
|
+
message: string;
|
|
3773
|
+
/** @description Per-field validation issues */
|
|
3774
|
+
details?: {
|
|
3775
|
+
/** @description Human-readable issue description */
|
|
3776
|
+
message: string;
|
|
3777
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
3778
|
+
context?: {
|
|
3779
|
+
[key: string]: unknown;
|
|
3780
|
+
};
|
|
3781
|
+
}[];
|
|
3782
|
+
} | {
|
|
3783
|
+
/** @enum {string} */
|
|
3784
|
+
code: "SIMULATION_FAILED";
|
|
3785
|
+
/**
|
|
3786
|
+
* @description Human-readable error message
|
|
3787
|
+
* @example Invalid input
|
|
3788
|
+
*/
|
|
3789
|
+
message: string;
|
|
3790
|
+
/** @description Classified on-chain simulation failure details */
|
|
3791
|
+
details?: {
|
|
3792
|
+
nonce?: string;
|
|
3793
|
+
category: string;
|
|
3794
|
+
errorSelector: string;
|
|
3795
|
+
errorName: string;
|
|
3796
|
+
errorArgs?: {
|
|
3797
|
+
[key: string]: string;
|
|
3798
|
+
};
|
|
3799
|
+
retryable: boolean;
|
|
3800
|
+
/** @enum {string} */
|
|
3801
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
3802
|
+
simulations?: unknown;
|
|
3803
|
+
} & {
|
|
3804
|
+
[key: string]: unknown;
|
|
3805
|
+
};
|
|
3806
|
+
} | {
|
|
3807
|
+
/** @enum {string} */
|
|
3808
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
3809
|
+
/**
|
|
3810
|
+
* @description Human-readable error message
|
|
3811
|
+
* @example Invalid input
|
|
3812
|
+
*/
|
|
3813
|
+
message: string;
|
|
3814
|
+
/** @description Fillable subset and unfillable remainder */
|
|
3815
|
+
details?: {
|
|
3816
|
+
/** @description Intents fillable with current liquidity */
|
|
3817
|
+
availableIntents: {
|
|
3818
|
+
[key: string]: string;
|
|
3819
|
+
}[];
|
|
3820
|
+
/** @description Token amounts that cannot be filled */
|
|
3821
|
+
unfillable: {
|
|
3822
|
+
[key: string]: string;
|
|
3823
|
+
};
|
|
3824
|
+
};
|
|
3825
|
+
} | {
|
|
3826
|
+
/** @enum {string} */
|
|
3827
|
+
code: "KEY_SCOPE_DENIED";
|
|
3828
|
+
/**
|
|
3829
|
+
* @description Human-readable error message
|
|
3830
|
+
* @example Invalid input
|
|
3831
|
+
*/
|
|
3832
|
+
message: string;
|
|
3833
|
+
/** @description Single-element list describing the failing scope */
|
|
3834
|
+
details?: {
|
|
3835
|
+
message: string;
|
|
3836
|
+
context: {
|
|
3837
|
+
/**
|
|
3838
|
+
* @description Which scope rejected the request
|
|
3839
|
+
* @enum {string}
|
|
3840
|
+
*/
|
|
3841
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
3842
|
+
/** @description Minimum level the endpoint demands */
|
|
3843
|
+
required: boolean | ("read" | "write");
|
|
3844
|
+
/** @description Level resolved on the key */
|
|
3845
|
+
actual: boolean | ("none" | "read" | "write");
|
|
3846
|
+
};
|
|
3847
|
+
}[];
|
|
3848
|
+
} | {
|
|
3849
|
+
/** @enum {string} */
|
|
3850
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
3851
|
+
/**
|
|
3852
|
+
* @description Human-readable error message
|
|
3853
|
+
* @example Invalid input
|
|
3854
|
+
*/
|
|
3855
|
+
message: string;
|
|
3856
|
+
};
|
|
3857
|
+
};
|
|
3858
|
+
};
|
|
3859
|
+
/** @description Server error */
|
|
3860
|
+
500: {
|
|
3861
|
+
headers: {
|
|
3862
|
+
[name: string]: unknown;
|
|
3863
|
+
};
|
|
3864
|
+
content: {
|
|
3865
|
+
"application/json": {
|
|
3866
|
+
/** @enum {string} */
|
|
3867
|
+
code: "VALIDATION_ERROR";
|
|
3868
|
+
/**
|
|
3869
|
+
* @description Human-readable error message
|
|
3870
|
+
* @example Invalid input
|
|
3871
|
+
*/
|
|
3872
|
+
message: string;
|
|
3873
|
+
/** @description Per-field validation issues */
|
|
3874
|
+
details?: {
|
|
3875
|
+
/** @description Human-readable issue description */
|
|
3876
|
+
message: string;
|
|
3877
|
+
/** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
|
|
3878
|
+
context?: {
|
|
3879
|
+
[key: string]: unknown;
|
|
3880
|
+
};
|
|
3881
|
+
}[];
|
|
3882
|
+
} | {
|
|
3883
|
+
/** @enum {string} */
|
|
3884
|
+
code: "SIMULATION_FAILED";
|
|
3885
|
+
/**
|
|
3886
|
+
* @description Human-readable error message
|
|
3887
|
+
* @example Invalid input
|
|
3888
|
+
*/
|
|
3889
|
+
message: string;
|
|
3890
|
+
/** @description Classified on-chain simulation failure details */
|
|
3891
|
+
details?: {
|
|
3892
|
+
nonce?: string;
|
|
3893
|
+
category: string;
|
|
3894
|
+
errorSelector: string;
|
|
3895
|
+
errorName: string;
|
|
3896
|
+
errorArgs?: {
|
|
3897
|
+
[key: string]: string;
|
|
3898
|
+
};
|
|
3899
|
+
retryable: boolean;
|
|
3900
|
+
/** @enum {string} */
|
|
3901
|
+
retryHint?: "RE_PREPARE" | "RETRY_LATER";
|
|
3902
|
+
simulations?: unknown;
|
|
3903
|
+
} & {
|
|
3904
|
+
[key: string]: unknown;
|
|
3905
|
+
};
|
|
3906
|
+
} | {
|
|
3907
|
+
/** @enum {string} */
|
|
3908
|
+
code: "INSUFFICIENT_LIQUIDITY";
|
|
3909
|
+
/**
|
|
3910
|
+
* @description Human-readable error message
|
|
3911
|
+
* @example Invalid input
|
|
3912
|
+
*/
|
|
3913
|
+
message: string;
|
|
3914
|
+
/** @description Fillable subset and unfillable remainder */
|
|
3915
|
+
details?: {
|
|
3916
|
+
/** @description Intents fillable with current liquidity */
|
|
3917
|
+
availableIntents: {
|
|
3918
|
+
[key: string]: string;
|
|
3919
|
+
}[];
|
|
3920
|
+
/** @description Token amounts that cannot be filled */
|
|
3921
|
+
unfillable: {
|
|
3922
|
+
[key: string]: string;
|
|
3923
|
+
};
|
|
3924
|
+
};
|
|
3925
|
+
} | {
|
|
3926
|
+
/** @enum {string} */
|
|
3927
|
+
code: "KEY_SCOPE_DENIED";
|
|
3928
|
+
/**
|
|
3929
|
+
* @description Human-readable error message
|
|
3930
|
+
* @example Invalid input
|
|
3931
|
+
*/
|
|
3932
|
+
message: string;
|
|
3933
|
+
/** @description Single-element list describing the failing scope */
|
|
3934
|
+
details?: {
|
|
3935
|
+
message: string;
|
|
3936
|
+
context: {
|
|
3937
|
+
/**
|
|
3938
|
+
* @description Which scope rejected the request
|
|
3939
|
+
* @enum {string}
|
|
3940
|
+
*/
|
|
3941
|
+
scope: "allowMainnet" | "intents" | "deposits";
|
|
3942
|
+
/** @description Minimum level the endpoint demands */
|
|
3943
|
+
required: boolean | ("read" | "write");
|
|
3944
|
+
/** @description Level resolved on the key */
|
|
3945
|
+
actual: boolean | ("none" | "read" | "write");
|
|
3946
|
+
};
|
|
3947
|
+
}[];
|
|
3948
|
+
} | {
|
|
3949
|
+
/** @enum {string} */
|
|
3950
|
+
code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
|
|
3951
|
+
/**
|
|
3952
|
+
* @description Human-readable error message
|
|
3953
|
+
* @example Invalid input
|
|
3954
|
+
*/
|
|
3955
|
+
message: string;
|
|
3956
|
+
};
|
|
3957
|
+
};
|
|
3958
|
+
};
|
|
3959
|
+
};
|
|
3960
|
+
};
|
|
3961
|
+
}
|
|
3962
|
+
//# sourceMappingURL=wire.gen.d.ts.map
|