@eco-foundation/api-schemas 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +160 -0
- package/dist/build-digest.d.ts +2 -0
- package/dist/build-digest.js +10 -0
- package/dist/build-digest.js.map +1 -0
- package/dist/fixtures/index.d.ts +14 -0
- package/dist/fixtures/index.js +71 -0
- package/dist/fixtures/index.js.map +1 -0
- package/dist/fixtures/v1/chains-list.response.default.json +37 -0
- package/dist/fixtures/v1/deposit-addresses-create.request.gateway-erc20.json +16 -0
- package/dist/fixtures/v1/deposit-addresses-create.response.gateway-erc20.json +20 -0
- package/dist/fixtures/v1/deposit-addresses-lookup.response.default.json +24 -0
- package/dist/fixtures/v1/deposit-addresses-submit-erc-2612.request.deposit-address-target.json +23 -0
- package/dist/fixtures/v1/deposit-addresses-submit-erc-3009.request.deposit-address-target.json +24 -0
- package/dist/fixtures/v1/intents-status.response.gasless-handoff.json +30 -0
- package/dist/fixtures/v1/intents-status.response.intent-filled.json +21 -0
- package/dist/fixtures/v1/intents-status.response.unknown.json +20 -0
- package/dist/fixtures/v1/intents-status.response.wallet-page.json +27 -0
- package/dist/fixtures/v1/intents-submit-erc-3009.response.job.json +25 -0
- package/dist/fixtures/v1/intents-submit-permit2.request.quote-target.json +25 -0
- package/dist/fixtures/v1/intents-submit-permit3.request.quote-target.json +27 -0
- package/dist/fixtures/v1/quotes-create.request.public-swap.json +25 -0
- package/dist/fixtures/v1/quotes-create.response.all-quotes.json +455 -0
- package/dist/fixtures/v1/quotes-create.response.private-swap.json +152 -0
- package/dist/fixtures/v1/quotes-create.response.public-swap.json +158 -0
- package/dist/fixtures/v1/routes-list.response.default.json +26 -0
- package/dist/fixtures/v1/tokens-list.response.default.json +24 -0
- package/dist/generated/build-digest.json +7 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/openapi.d.ts +2 -0
- package/dist/openapi.js +81 -0
- package/dist/openapi.js.map +1 -0
- package/dist/scripts/generate-build-digest.d.ts +1 -0
- package/dist/scripts/generate-build-digest.js +25 -0
- package/dist/scripts/generate-build-digest.js.map +1 -0
- package/dist/scripts/generate-openapi.d.ts +1 -0
- package/dist/scripts/generate-openapi.js +21 -0
- package/dist/scripts/generate-openapi.js.map +1 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.js +27 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/v1/endpoints/chains.d.ts +52 -0
- package/dist/v1/endpoints/chains.js +23 -0
- package/dist/v1/endpoints/chains.js.map +1 -0
- package/dist/v1/endpoints/deposit-addresses.d.ts +100 -0
- package/dist/v1/endpoints/deposit-addresses.js +61 -0
- package/dist/v1/endpoints/deposit-addresses.js.map +1 -0
- package/dist/v1/endpoints/quotes.d.ts +861 -0
- package/dist/v1/endpoints/quotes.js +297 -0
- package/dist/v1/endpoints/quotes.js.map +1 -0
- package/dist/v1/endpoints/registry.d.ts +641 -0
- package/dist/v1/endpoints/registry.js +108 -0
- package/dist/v1/endpoints/registry.js.map +1 -0
- package/dist/v1/endpoints/routes.d.ts +35 -0
- package/dist/v1/endpoints/routes.js +21 -0
- package/dist/v1/endpoints/routes.js.map +1 -0
- package/dist/v1/endpoints/status.d.ts +149 -0
- package/dist/v1/endpoints/status.js +110 -0
- package/dist/v1/endpoints/status.js.map +1 -0
- package/dist/v1/endpoints/submit.d.ts +271 -0
- package/dist/v1/endpoints/submit.js +127 -0
- package/dist/v1/endpoints/submit.js.map +1 -0
- package/dist/v1/endpoints/tokens.d.ts +59 -0
- package/dist/v1/endpoints/tokens.js +22 -0
- package/dist/v1/endpoints/tokens.js.map +1 -0
- package/dist/v1/enums.d.ts +133 -0
- package/dist/v1/enums.js +62 -0
- package/dist/v1/enums.js.map +1 -0
- package/dist/v1/errors/catalog.d.ts +247 -0
- package/dist/v1/errors/catalog.js +124 -0
- package/dist/v1/errors/catalog.js.map +1 -0
- package/dist/v1/errors/lock.d.ts +10 -0
- package/dist/v1/errors/lock.js +45 -0
- package/dist/v1/errors/lock.js.map +1 -0
- package/dist/v1/errors/problem.d.ts +50 -0
- package/dist/v1/errors/problem.js +82 -0
- package/dist/v1/errors/problem.js.map +1 -0
- package/dist/v1/index.d.ts +14 -0
- package/dist/v1/index.js +32 -0
- package/dist/v1/index.js.map +1 -0
- package/dist/v1/primitives.d.ts +33 -0
- package/dist/v1/primitives.js +63 -0
- package/dist/v1/primitives.js.map +1 -0
- package/dist/v1/signature.d.ts +10 -0
- package/dist/v1/signature.js +72 -0
- package/dist/v1/signature.js.map +1 -0
- package/dist/v1/tolerant.d.ts +4 -0
- package/dist/v1/tolerant.js +11 -0
- package/dist/v1/tolerant.js.map +1 -0
- package/dist/v1/types.d.ts +277 -0
- package/dist/v1/types.js +3 -0
- package/dist/v1/types.js.map +1 -0
- package/errors/catalog.lock.json +232 -0
- package/fixtures/quote-signature/vector-1.json +9 -0
- package/fixtures/quote-signature/vector-2.json +13 -0
- package/fixtures/quote-signature/vector-3.json +9 -0
- package/fixtures/signature-hash/vectors.json +58 -0
- package/openapi/v1.json +5225 -0
- package/package.json +71 -0
- package/v1/types.d.ts +7 -0
- package/v1/types.js +5 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.V1_ERROR_RESPONSE_SCHEMA = exports.V1_ENDPOINTS = void 0;
|
|
4
|
+
const problem_1 = require("../errors/problem");
|
|
5
|
+
const chains_1 = require("./chains");
|
|
6
|
+
const deposit_addresses_1 = require("./deposit-addresses");
|
|
7
|
+
const quotes_1 = require("./quotes");
|
|
8
|
+
const routes_1 = require("./routes");
|
|
9
|
+
const status_1 = require("./status");
|
|
10
|
+
const submit_1 = require("./submit");
|
|
11
|
+
const tokens_1 = require("./tokens");
|
|
12
|
+
const submitEndpoint = (service, standard, request) => ({
|
|
13
|
+
method: 'POST',
|
|
14
|
+
path: `/v1/${service}/submit/${standard}`,
|
|
15
|
+
summary: `Submit a signed ${standard} funding authorization. 202 with a gasless job on first ` +
|
|
16
|
+
'sight; a duplicate signature returns the existing job with 200.',
|
|
17
|
+
tag: service,
|
|
18
|
+
stability: 'stable',
|
|
19
|
+
successStatus: 202,
|
|
20
|
+
request,
|
|
21
|
+
response: submit_1.GaslessJobSchema,
|
|
22
|
+
});
|
|
23
|
+
exports.V1_ENDPOINTS = {
|
|
24
|
+
'quotes.create': {
|
|
25
|
+
method: 'POST',
|
|
26
|
+
path: '/v1/quotes',
|
|
27
|
+
summary: 'Request a quote.',
|
|
28
|
+
tag: 'quotes',
|
|
29
|
+
stability: 'stable',
|
|
30
|
+
successStatus: 200,
|
|
31
|
+
request: quotes_1.QuoteRequestSchema,
|
|
32
|
+
response: quotes_1.QuoteResponseSchema,
|
|
33
|
+
},
|
|
34
|
+
'intents.submit.permit3': submitEndpoint('intents', 'permit3', submit_1.Permit3SubmitSchema),
|
|
35
|
+
'intents.submit.permit2': submitEndpoint('intents', 'permit2', submit_1.Permit2SubmitSchema),
|
|
36
|
+
'intents.submit.erc-3009': submitEndpoint('intents', 'erc-3009', submit_1.Erc3009IntentsSubmitSchema),
|
|
37
|
+
'deposit-addresses.submit.erc-3009': submitEndpoint('deposit-addresses', 'erc-3009', submit_1.Erc3009DepositAddressSubmitSchema),
|
|
38
|
+
'deposit-addresses.submit.erc-2612': submitEndpoint('deposit-addresses', 'erc-2612', submit_1.Erc2612SubmitSchema),
|
|
39
|
+
'intents.status': {
|
|
40
|
+
method: 'GET',
|
|
41
|
+
path: '/v1/intents/status',
|
|
42
|
+
summary: 'Track intents, quotes and solver gasless jobs. Always 200; an unknown exact id reports status "unknown".',
|
|
43
|
+
tag: 'status',
|
|
44
|
+
stability: 'stable',
|
|
45
|
+
successStatus: 200,
|
|
46
|
+
query: status_1.INTENT_STATUS_QUERY_SHAPE,
|
|
47
|
+
response: status_1.StatusListResponseSchema,
|
|
48
|
+
},
|
|
49
|
+
'deposit-addresses.status': {
|
|
50
|
+
method: 'GET',
|
|
51
|
+
path: '/v1/deposit-addresses/status',
|
|
52
|
+
summary: 'Track deposit addresses and DA gasless jobs. Always 200.',
|
|
53
|
+
tag: 'status',
|
|
54
|
+
stability: 'stable',
|
|
55
|
+
successStatus: 200,
|
|
56
|
+
query: status_1.DEPOSIT_ADDRESS_STATUS_QUERY_SHAPE,
|
|
57
|
+
response: status_1.StatusListResponseSchema,
|
|
58
|
+
},
|
|
59
|
+
'chains.list': {
|
|
60
|
+
method: 'GET',
|
|
61
|
+
path: '/v1/chains',
|
|
62
|
+
summary: 'Supported chains, their deployed contracts (portal, executor) and quote-signing address.',
|
|
63
|
+
tag: 'discovery',
|
|
64
|
+
stability: 'stable',
|
|
65
|
+
successStatus: 200,
|
|
66
|
+
response: chains_1.ChainsResponseSchema,
|
|
67
|
+
},
|
|
68
|
+
'tokens.list': {
|
|
69
|
+
method: 'GET',
|
|
70
|
+
path: '/v1/tokens',
|
|
71
|
+
summary: 'Supported tokens with per-target gasless standards (F1).',
|
|
72
|
+
tag: 'discovery',
|
|
73
|
+
stability: 'stable',
|
|
74
|
+
successStatus: 200,
|
|
75
|
+
response: tokens_1.TokensResponseSchema,
|
|
76
|
+
},
|
|
77
|
+
'routes.list': {
|
|
78
|
+
method: 'GET',
|
|
79
|
+
path: '/v1/routes',
|
|
80
|
+
summary: 'Enabled routes (DRAFT — final shape depends on the WS2 solver feed).',
|
|
81
|
+
tag: 'discovery',
|
|
82
|
+
stability: 'draft',
|
|
83
|
+
successStatus: 200,
|
|
84
|
+
response: routes_1.RoutesResponseSchema,
|
|
85
|
+
},
|
|
86
|
+
'deposit-addresses.create': {
|
|
87
|
+
method: 'POST',
|
|
88
|
+
path: '/v1/deposit-addresses',
|
|
89
|
+
summary: 'Create (or idempotently retrieve) a deposit address.',
|
|
90
|
+
tag: 'deposit-addresses',
|
|
91
|
+
stability: 'stable',
|
|
92
|
+
successStatus: 201,
|
|
93
|
+
request: deposit_addresses_1.DepositAddressCreateRequestSchema,
|
|
94
|
+
response: deposit_addresses_1.DepositAddressCreateResponseSchema,
|
|
95
|
+
},
|
|
96
|
+
'deposit-addresses.lookup': {
|
|
97
|
+
method: 'GET',
|
|
98
|
+
path: '/v1/deposit-addresses',
|
|
99
|
+
summary: 'Look up deposit addresses by filters; a miss is an empty results array.',
|
|
100
|
+
tag: 'deposit-addresses',
|
|
101
|
+
stability: 'stable',
|
|
102
|
+
successStatus: 200,
|
|
103
|
+
query: deposit_addresses_1.DEPOSIT_ADDRESS_LOOKUP_QUERY_SHAPE,
|
|
104
|
+
response: deposit_addresses_1.DepositAddressLookupResponseSchema,
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
exports.V1_ERROR_RESPONSE_SCHEMA = problem_1.V1ProblemSchema;
|
|
108
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/v1/endpoints/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ROUTES_STABILITY: "draft";
|
|
3
|
+
export declare const RouteEntrySchema: z.ZodObject<{
|
|
4
|
+
source: z.ZodObject<{
|
|
5
|
+
chainId: z.ZodNumber;
|
|
6
|
+
token: z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodString]>]>;
|
|
7
|
+
}, z.core.$loose>;
|
|
8
|
+
destination: z.ZodObject<{
|
|
9
|
+
chainId: z.ZodNumber;
|
|
10
|
+
token: z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodString]>]>;
|
|
11
|
+
}, z.core.$loose>;
|
|
12
|
+
swapTypes: z.ZodArray<z.ZodEnum<{
|
|
13
|
+
custom: "custom";
|
|
14
|
+
"exact-in": "exact-in";
|
|
15
|
+
"exact-out": "exact-out";
|
|
16
|
+
}>>;
|
|
17
|
+
}, z.core.$loose>;
|
|
18
|
+
export declare const RoutesResponseSchema: z.ZodObject<{
|
|
19
|
+
routes: z.ZodArray<z.ZodObject<{
|
|
20
|
+
source: z.ZodObject<{
|
|
21
|
+
chainId: z.ZodNumber;
|
|
22
|
+
token: z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodString]>]>;
|
|
23
|
+
}, z.core.$loose>;
|
|
24
|
+
destination: z.ZodObject<{
|
|
25
|
+
chainId: z.ZodNumber;
|
|
26
|
+
token: z.ZodUnion<readonly [z.ZodString, z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodString]>]>;
|
|
27
|
+
}, z.core.$loose>;
|
|
28
|
+
swapTypes: z.ZodArray<z.ZodEnum<{
|
|
29
|
+
custom: "custom";
|
|
30
|
+
"exact-in": "exact-in";
|
|
31
|
+
"exact-out": "exact-out";
|
|
32
|
+
}>>;
|
|
33
|
+
}, z.core.$loose>>;
|
|
34
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
35
|
+
}, z.core.$loose>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RoutesResponseSchema = exports.RouteEntrySchema = exports.ROUTES_STABILITY = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const enums_1 = require("../enums");
|
|
6
|
+
const primitives_1 = require("../primitives");
|
|
7
|
+
exports.ROUTES_STABILITY = 'draft';
|
|
8
|
+
const RouteLegSchema = zod_1.z.looseObject({
|
|
9
|
+
chainId: primitives_1.ChainId,
|
|
10
|
+
token: primitives_1.AnyAddress,
|
|
11
|
+
});
|
|
12
|
+
exports.RouteEntrySchema = zod_1.z.looseObject({
|
|
13
|
+
source: RouteLegSchema,
|
|
14
|
+
destination: RouteLegSchema,
|
|
15
|
+
swapTypes: zod_1.z.array(enums_1.SwapType),
|
|
16
|
+
});
|
|
17
|
+
exports.RoutesResponseSchema = zod_1.z.looseObject({
|
|
18
|
+
routes: zod_1.z.array(exports.RouteEntrySchema),
|
|
19
|
+
nextCursor: zod_1.z.string().nullable(),
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/v1/endpoints/routes.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,oCAAoC;AACpC,8CAAoD;AASvC,QAAA,gBAAgB,GAAG,OAAgB,CAAC;AAEjD,MAAM,cAAc,GAAG,OAAC,CAAC,WAAW,CAAC;IACnC,OAAO,EAAE,oBAAO;IAChB,KAAK,EAAE,uBAAU;CAClB,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,OAAC,CAAC,WAAW,CAAC;IAC5C,MAAM,EAAE,cAAc;IACtB,WAAW,EAAE,cAAc;IAC3B,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,gBAAQ,CAAC;CAC7B,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,OAAC,CAAC,WAAW,CAAC;IAChD,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,wBAAgB,CAAC;IAEjC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { StatusType } from '../enums';
|
|
3
|
+
export declare const STATUS_PAGE_MAX_LIMIT = 50;
|
|
4
|
+
export declare const STATUS_PAGE_DEFAULT_LIMIT = 20;
|
|
5
|
+
export declare const StatusEntrySchema: z.ZodObject<{
|
|
6
|
+
id: z.ZodString;
|
|
7
|
+
type: z.ZodEnum<{
|
|
8
|
+
quote: "quote";
|
|
9
|
+
intent: "intent";
|
|
10
|
+
gasless: "gasless";
|
|
11
|
+
"deposit-address": "deposit-address";
|
|
12
|
+
}>;
|
|
13
|
+
status: z.ZodString;
|
|
14
|
+
updatedAt: z.ZodNullable<z.ZodNumber>;
|
|
15
|
+
intentHashes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
16
|
+
txHash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
17
|
+
subStatuses: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
18
|
+
chainId: z.ZodNumber;
|
|
19
|
+
quoteIds: z.ZodArray<z.ZodString>;
|
|
20
|
+
txHash: z.ZodNullable<z.ZodString>;
|
|
21
|
+
intentHashes: z.ZodArray<z.ZodString>;
|
|
22
|
+
state: z.ZodEnum<{
|
|
23
|
+
pending: "pending";
|
|
24
|
+
published: "published";
|
|
25
|
+
failed: "failed";
|
|
26
|
+
submitted: "submitted";
|
|
27
|
+
}>;
|
|
28
|
+
}, z.core.$loose>>>;
|
|
29
|
+
}, z.core.$loose>;
|
|
30
|
+
export type StatusEntry = z.input<typeof StatusEntrySchema>;
|
|
31
|
+
export declare function statusEntrySchemaFor(type: StatusType): z.ZodObject<{
|
|
32
|
+
id: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
|
|
33
|
+
type: z.ZodLiteral<"quote" | "intent" | "gasless" | "deposit-address">;
|
|
34
|
+
status: z.ZodEnum<{
|
|
35
|
+
unknown: "unknown";
|
|
36
|
+
pending: "pending";
|
|
37
|
+
processing: "processing";
|
|
38
|
+
published: "published";
|
|
39
|
+
partial: "partial";
|
|
40
|
+
failed: "failed";
|
|
41
|
+
submitted: "submitted";
|
|
42
|
+
filled: "filled";
|
|
43
|
+
settled: "settled";
|
|
44
|
+
refunded: "refunded";
|
|
45
|
+
refundable: "refundable";
|
|
46
|
+
expired: "expired";
|
|
47
|
+
active: "active";
|
|
48
|
+
}>;
|
|
49
|
+
updatedAt: z.ZodNullable<z.ZodNumber>;
|
|
50
|
+
intentHashes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
51
|
+
txHash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
52
|
+
subStatuses: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
53
|
+
chainId: z.ZodNumber;
|
|
54
|
+
quoteIds: z.ZodArray<z.ZodString>;
|
|
55
|
+
txHash: z.ZodNullable<z.ZodString>;
|
|
56
|
+
intentHashes: z.ZodArray<z.ZodString>;
|
|
57
|
+
state: z.ZodEnum<{
|
|
58
|
+
pending: "pending";
|
|
59
|
+
published: "published";
|
|
60
|
+
failed: "failed";
|
|
61
|
+
submitted: "submitted";
|
|
62
|
+
}>;
|
|
63
|
+
}, z.core.$loose>>>;
|
|
64
|
+
}, z.core.$loose>;
|
|
65
|
+
export declare const PagingFields: {
|
|
66
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
67
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
68
|
+
};
|
|
69
|
+
export declare function requireAtLeastOneFilter<T extends Record<string, unknown>>(filterKeys: readonly (keyof T & string)[]): (query: T, ctx: z.RefinementCtx) => void;
|
|
70
|
+
export declare const INTENT_STATUS_QUERY_SHAPE: {
|
|
71
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
72
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
73
|
+
intentHash: z.ZodOptional<z.ZodString>;
|
|
74
|
+
sourceTxHash: z.ZodOptional<z.ZodString>;
|
|
75
|
+
destinationTxHash: z.ZodOptional<z.ZodString>;
|
|
76
|
+
quoteId: z.ZodOptional<z.ZodUUID>;
|
|
77
|
+
jobId: z.ZodOptional<z.ZodUUID>;
|
|
78
|
+
wallet: z.ZodOptional<z.ZodString>;
|
|
79
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
80
|
+
unknown: "unknown";
|
|
81
|
+
pending: "pending";
|
|
82
|
+
failed: "failed";
|
|
83
|
+
filled: "filled";
|
|
84
|
+
settled: "settled";
|
|
85
|
+
refunded: "refunded";
|
|
86
|
+
refundable: "refundable";
|
|
87
|
+
expired: "expired";
|
|
88
|
+
}>>;
|
|
89
|
+
};
|
|
90
|
+
export declare const IntentStatusQuerySchema: z.ZodObject<{
|
|
91
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
92
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
93
|
+
intentHash: z.ZodOptional<z.ZodString>;
|
|
94
|
+
sourceTxHash: z.ZodOptional<z.ZodString>;
|
|
95
|
+
destinationTxHash: z.ZodOptional<z.ZodString>;
|
|
96
|
+
quoteId: z.ZodOptional<z.ZodUUID>;
|
|
97
|
+
jobId: z.ZodOptional<z.ZodUUID>;
|
|
98
|
+
wallet: z.ZodOptional<z.ZodString>;
|
|
99
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
100
|
+
unknown: "unknown";
|
|
101
|
+
pending: "pending";
|
|
102
|
+
failed: "failed";
|
|
103
|
+
filled: "filled";
|
|
104
|
+
settled: "settled";
|
|
105
|
+
refunded: "refunded";
|
|
106
|
+
refundable: "refundable";
|
|
107
|
+
expired: "expired";
|
|
108
|
+
}>>;
|
|
109
|
+
}, z.core.$strip>;
|
|
110
|
+
export declare const DEPOSIT_ADDRESS_STATUS_QUERY_SHAPE: {
|
|
111
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
112
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
113
|
+
address: z.ZodOptional<z.ZodString>;
|
|
114
|
+
jobId: z.ZodOptional<z.ZodString>;
|
|
115
|
+
};
|
|
116
|
+
export declare const DepositAddressStatusQuerySchema: z.ZodObject<{
|
|
117
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
118
|
+
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
119
|
+
address: z.ZodOptional<z.ZodString>;
|
|
120
|
+
jobId: z.ZodOptional<z.ZodString>;
|
|
121
|
+
}, z.core.$strip>;
|
|
122
|
+
export declare const StatusListResponseSchema: z.ZodObject<{
|
|
123
|
+
results: z.ZodArray<z.ZodObject<{
|
|
124
|
+
id: z.ZodString;
|
|
125
|
+
type: z.ZodEnum<{
|
|
126
|
+
quote: "quote";
|
|
127
|
+
intent: "intent";
|
|
128
|
+
gasless: "gasless";
|
|
129
|
+
"deposit-address": "deposit-address";
|
|
130
|
+
}>;
|
|
131
|
+
status: z.ZodString;
|
|
132
|
+
updatedAt: z.ZodNullable<z.ZodNumber>;
|
|
133
|
+
intentHashes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
134
|
+
txHash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
135
|
+
subStatuses: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
136
|
+
chainId: z.ZodNumber;
|
|
137
|
+
quoteIds: z.ZodArray<z.ZodString>;
|
|
138
|
+
txHash: z.ZodNullable<z.ZodString>;
|
|
139
|
+
intentHashes: z.ZodArray<z.ZodString>;
|
|
140
|
+
state: z.ZodEnum<{
|
|
141
|
+
pending: "pending";
|
|
142
|
+
published: "published";
|
|
143
|
+
failed: "failed";
|
|
144
|
+
submitted: "submitted";
|
|
145
|
+
}>;
|
|
146
|
+
}, z.core.$loose>>>;
|
|
147
|
+
}, z.core.$loose>>;
|
|
148
|
+
nextCursor: z.ZodNullable<z.ZodString>;
|
|
149
|
+
}, z.core.$loose>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StatusListResponseSchema = exports.DepositAddressStatusQuerySchema = exports.DEPOSIT_ADDRESS_STATUS_QUERY_SHAPE = exports.IntentStatusQuerySchema = exports.INTENT_STATUS_QUERY_SHAPE = exports.PagingFields = exports.StatusEntrySchema = exports.STATUS_PAGE_DEFAULT_LIMIT = exports.STATUS_PAGE_MAX_LIMIT = void 0;
|
|
4
|
+
exports.statusEntrySchemaFor = statusEntrySchemaFor;
|
|
5
|
+
exports.requireAtLeastOneFilter = requireAtLeastOneFilter;
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
const enums_1 = require("../enums");
|
|
8
|
+
const primitives_1 = require("../primitives");
|
|
9
|
+
const submit_1 = require("./submit");
|
|
10
|
+
exports.STATUS_PAGE_MAX_LIMIT = 50;
|
|
11
|
+
exports.STATUS_PAGE_DEFAULT_LIMIT = 20;
|
|
12
|
+
const ID_SCHEMA_BY_TYPE = {
|
|
13
|
+
intent: primitives_1.IntentId,
|
|
14
|
+
quote: primitives_1.QuoteId,
|
|
15
|
+
gasless: primitives_1.GaslessId,
|
|
16
|
+
'deposit-address': primitives_1.DepositAddressId,
|
|
17
|
+
};
|
|
18
|
+
exports.StatusEntrySchema = zod_1.z
|
|
19
|
+
.looseObject({
|
|
20
|
+
id: zod_1.z.string().min(1),
|
|
21
|
+
type: zod_1.z.enum(enums_1.STATUS_TYPES),
|
|
22
|
+
status: zod_1.z.string().min(1),
|
|
23
|
+
updatedAt: primitives_1.UnixSeconds.nullable(),
|
|
24
|
+
intentHashes: zod_1.z.array(primitives_1.Bytes32).optional(),
|
|
25
|
+
txHash: zod_1.z.string().nullable().optional(),
|
|
26
|
+
subStatuses: zod_1.z.array(submit_1.GaslessSubStatusSchema).optional(),
|
|
27
|
+
})
|
|
28
|
+
.superRefine((entry, ctx) => {
|
|
29
|
+
const vocab = enums_1.STATUS_VOCABULARY[entry.type];
|
|
30
|
+
if (!vocab.includes(entry.status)) {
|
|
31
|
+
ctx.addIssue({
|
|
32
|
+
code: 'custom',
|
|
33
|
+
path: ['status'],
|
|
34
|
+
message: `"${entry.status}" is not a ${entry.type} status (allowed: ${vocab.join(', ')})`,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (!ID_SCHEMA_BY_TYPE[entry.type].safeParse(entry.id).success) {
|
|
38
|
+
ctx.addIssue({
|
|
39
|
+
code: 'custom',
|
|
40
|
+
path: ['id'],
|
|
41
|
+
message: `response id must be the PREFIXED ${entry.type} id (C10)`,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
function statusEntrySchemaFor(type) {
|
|
46
|
+
return zod_1.z.looseObject({
|
|
47
|
+
id: ID_SCHEMA_BY_TYPE[type],
|
|
48
|
+
type: zod_1.z.literal(type),
|
|
49
|
+
status: zod_1.z.enum(enums_1.STATUS_VOCABULARY[type]),
|
|
50
|
+
updatedAt: primitives_1.UnixSeconds.nullable(),
|
|
51
|
+
intentHashes: zod_1.z.array(primitives_1.Bytes32).optional(),
|
|
52
|
+
txHash: zod_1.z.string().nullable().optional(),
|
|
53
|
+
subStatuses: zod_1.z.array(submit_1.GaslessSubStatusSchema).optional(),
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
exports.PagingFields = {
|
|
57
|
+
cursor: zod_1.z.string().min(1).optional(),
|
|
58
|
+
limit: zod_1.z.coerce
|
|
59
|
+
.number()
|
|
60
|
+
.int()
|
|
61
|
+
.min(1)
|
|
62
|
+
.max(exports.STATUS_PAGE_MAX_LIMIT)
|
|
63
|
+
.default(exports.STATUS_PAGE_DEFAULT_LIMIT),
|
|
64
|
+
};
|
|
65
|
+
function requireAtLeastOneFilter(filterKeys) {
|
|
66
|
+
return (query, ctx) => {
|
|
67
|
+
if (!filterKeys.some((key) => query[key] !== undefined)) {
|
|
68
|
+
ctx.addIssue({
|
|
69
|
+
code: 'custom',
|
|
70
|
+
message: `at least one filter required (${filterKeys.join(', ')}); paging controls alone are not a filter`,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const INTENT_STATUS_FILTERS = [
|
|
76
|
+
'intentHash',
|
|
77
|
+
'sourceTxHash',
|
|
78
|
+
'destinationTxHash',
|
|
79
|
+
'quoteId',
|
|
80
|
+
'jobId',
|
|
81
|
+
'wallet',
|
|
82
|
+
'status',
|
|
83
|
+
];
|
|
84
|
+
exports.INTENT_STATUS_QUERY_SHAPE = {
|
|
85
|
+
intentHash: primitives_1.Bytes32.optional(),
|
|
86
|
+
sourceTxHash: primitives_1.Bytes32.optional(),
|
|
87
|
+
destinationTxHash: primitives_1.Bytes32.optional(),
|
|
88
|
+
quoteId: zod_1.z.uuid().optional(),
|
|
89
|
+
jobId: zod_1.z.uuid().optional(),
|
|
90
|
+
wallet: zod_1.z.string().min(1).optional(),
|
|
91
|
+
status: zod_1.z.enum(enums_1.STATUS_VOCABULARY.intent).optional(),
|
|
92
|
+
...exports.PagingFields,
|
|
93
|
+
};
|
|
94
|
+
exports.IntentStatusQuerySchema = zod_1.z
|
|
95
|
+
.object(exports.INTENT_STATUS_QUERY_SHAPE)
|
|
96
|
+
.superRefine(requireAtLeastOneFilter(INTENT_STATUS_FILTERS));
|
|
97
|
+
const DEPOSIT_ADDRESS_STATUS_FILTERS = ['address', 'jobId'];
|
|
98
|
+
exports.DEPOSIT_ADDRESS_STATUS_QUERY_SHAPE = {
|
|
99
|
+
address: primitives_1.EvmAddress.optional(),
|
|
100
|
+
jobId: primitives_1.GaslessJobRef.optional(),
|
|
101
|
+
...exports.PagingFields,
|
|
102
|
+
};
|
|
103
|
+
exports.DepositAddressStatusQuerySchema = zod_1.z
|
|
104
|
+
.object(exports.DEPOSIT_ADDRESS_STATUS_QUERY_SHAPE)
|
|
105
|
+
.superRefine(requireAtLeastOneFilter(DEPOSIT_ADDRESS_STATUS_FILTERS));
|
|
106
|
+
exports.StatusListResponseSchema = zod_1.z.looseObject({
|
|
107
|
+
results: zod_1.z.array(exports.StatusEntrySchema).max(exports.STATUS_PAGE_MAX_LIMIT),
|
|
108
|
+
nextCursor: zod_1.z.string().min(1).nullable(),
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/v1/endpoints/status.ts"],"names":[],"mappings":"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"}
|