@eco-foundation/api-schemas 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +70 -2
  2. package/dist/fixtures/index.js +10 -10
  3. package/dist/fixtures/index.js.map +1 -1
  4. package/dist/fixtures/v1/intents-status.response.completed-fulfilled.json +117 -0
  5. package/dist/fixtures/v1/intents-status.response.completed-refunded.json +101 -0
  6. package/dist/fixtures/v1/intents-status.response.empty.json +13 -0
  7. package/dist/fixtures/v1/intents-status.response.pending-fulfillment.json +101 -0
  8. package/dist/fixtures/v1/intents-status.response.unlinked-intent.json +81 -0
  9. package/dist/fixtures/v1/routes-list.response.default.json +36 -9
  10. package/dist/generated/build-digest.json +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/v1/endpoints/registry.d.ts +155 -87
  13. package/dist/v1/endpoints/registry.js +7 -4
  14. package/dist/v1/endpoints/registry.js.map +1 -1
  15. package/dist/v1/endpoints/routes.d.ts +106 -16
  16. package/dist/v1/endpoints/routes.js +34 -8
  17. package/dist/v1/endpoints/routes.js.map +1 -1
  18. package/dist/v1/endpoints/status.js.map +1 -1
  19. package/dist/v1/endpoints/transfer-status.d.ts +488 -0
  20. package/dist/v1/endpoints/transfer-status.js +197 -0
  21. package/dist/v1/endpoints/transfer-status.js.map +1 -0
  22. package/dist/v1/index.d.ts +1 -0
  23. package/dist/v1/index.js +1 -0
  24. package/dist/v1/index.js.map +1 -1
  25. package/dist/v1/types.d.ts +87 -0
  26. package/openapi/v1.json +915 -332
  27. package/package.json +1 -1
  28. package/dist/fixtures/v1/intents-status.response.gasless-handoff.json +0 -30
  29. package/dist/fixtures/v1/intents-status.response.intent-filled.json +0 -21
  30. package/dist/fixtures/v1/intents-status.response.quote-filled-detail.json +0 -60
  31. package/dist/fixtures/v1/intents-status.response.unknown.json +0 -20
  32. package/dist/fixtures/v1/intents-status.response.wallet-page.json +0 -27
package/README.md CHANGED
@@ -14,13 +14,13 @@ While the package is 0.x, pin the patch range or the exact version:
14
14
  ```json
15
15
  {
16
16
  "dependencies": {
17
- "@eco-foundation/api-schemas": "~0.13.0"
17
+ "@eco-foundation/api-schemas": "~0.15.0"
18
18
  }
19
19
  }
20
20
  ```
21
21
 
22
22
  **Never write `^0`.** npm resolves `^0.x` as `>=0.0.0 <1.0.0`, so it silently accepts every
23
- future breaking `0.y` — it is not a pin at all. Use `~0.13.0` or the exact `0.13.0`.
23
+ future breaking `0.y` — it is not a pin at all. Use `~0.15.0` or the exact `0.15.0`.
24
24
 
25
25
  A matching version string is not evidence of a matching artifact: also compare
26
26
  `V1_SCHEMA_DIGEST` (see [Invariants](#invariants-enforced-in-ci)). Two builds both called
@@ -30,6 +30,74 @@ A matching version string is not evidence of a matching artifact: also compare
30
30
  zod-bearing entry point. Which case you are in is decided entirely by your imports; see
31
31
  [Consumers](#consumers).
32
32
 
33
+ ## Migrating 0.14.0 -> 0.15.0
34
+
35
+ **BREAKING for consumers of `/v1/intents/status`.** The endpoint now returns transfers, not
36
+ status entries.
37
+
38
+ **`V1_SCHEMA_DIGEST` MOVES** to
39
+ `6dd9eee363e458e031e66c2f85064fb406ecaadc20cc1bc8fa4d19ffb991598f`, because `openapi/v1.json`
40
+ changed. Every consumer running `assertNoSkew` moves in the same rollout.
41
+
42
+ New exports: `TransferStatusQuerySchema`, `TRANSFER_STATUS_QUERY_SHAPE`,
43
+ `TransferStatusEntrySchema`, `TransferStatusResponseSchema`, the transfer enums
44
+ (`TRANSFER_TOKEN_TYPES`, `TRANSFER_STEP_TYPES`, `TRANSFER_TX_TYPES` and their schemas), and the
45
+ `V1Transfer*` types.
46
+
47
+ **1. The response is `{ results, nextPage }`.** `results` holds at most 50 transfers and
48
+ `nextPage` is an integer >= 2 or null. Each transfer carries one of five status pairs
49
+ (`pending/waiting_for_funding`, `pending/waiting_for_fulfillment`, `pending/waiting_for_refund`,
50
+ `completed/fulfilled`, `completed/refunded`), `source` and `destination` sides, and `steps`.
51
+ `id` is the quote id, or null. Any other status pair fails parse.
52
+
53
+ **2. The query is exactly one of five selectors** (`txHash`, `intentHash`, `quoteId`, `jobId`,
54
+ `wallet`), plus optional `page` and `limit`. `sourceTxHash`, `destinationTxHash`, `status` and
55
+ `cursor` are gone. `page` and `limit` are rejected with `intentHash` or `quoteId`.
56
+
57
+ **3. `StatusEntrySchema` and its related schemas are unchanged** and still back
58
+ `/v1/deposit-addresses/status`.
59
+
60
+ **4. `IntentStatusQuerySchema` and `INTENT_STATUS_QUERY_SHAPE` are deprecated**; the registry
61
+ no longer uses them for `intents.status`.
62
+
63
+ **5. The `intents.status` golden fixtures are swapped.** Removed: `gasless-handoff`,
64
+ `intent-filled`, `quote-filled-detail`, `unknown`, `wallet-page`. Added: `pending-fulfillment`,
65
+ `completed-fulfilled`, `completed-refunded`, `unlinked-intent`, `empty`.
66
+
67
+ **6. Behaviour changes.** A lookup that matches nothing returns `results: []` instead of an
68
+ `unknown` entry. `quoteId` also accepts `quote:<uuid>` and `quoteResponse:<uuid>`. A transaction's
69
+ `txLink` must be an http(s) URL.
70
+
71
+ ## Migrating 0.13.0 -> 0.14.0
72
+
73
+ **BREAKING only for consumers of the draft `/v1/routes` schemas.** No stable endpoint changes.
74
+ `/v1/routes` stays `stability: 'draft'`.
75
+
76
+ **`V1_SCHEMA_DIGEST` MOVES** to
77
+ `b5a7e99f743687c57fb0cda933a772c03e71e43f6581766eae2c79935b061c5b`, because `openapi/v1.json`
78
+ changed. Every consumer running `assertNoSkew` moves in the same rollout.
79
+
80
+ New exports: `ROUTES_LIST_QUERY_SHAPE`, `ROUTES_CURSOR_MAX_LENGTH`, `RoutesListQuerySchema`,
81
+ `RouteLimitsSchema`, `RoutePairLegSchema`, `RoutePairSchema`, `RouteChainSchema`,
82
+ `RouteAnyAssetSchema`, and the types `RoutesListQuery`, `RouteEntry`, `RoutesResponse`.
83
+
84
+ **1. `RouteEntrySchema` is one row per chain pair.** A row is
85
+ `{ source: { chainId }, destination: { chainId }, pairs, anyAsset }`. `pairs[]` holds
86
+ `{ baseline, source, destination }`, where each side is `{ token, symbol, decimals, limits }` and
87
+ `limits` is `{ min?, max? }` in base-unit integer strings. `anyAsset` is
88
+ `{ source: boolean, destination: boolean }`. The placeholder fields `source.token`,
89
+ `destination.token` and `swapTypes` are gone.
90
+
91
+ **2. `RoutesResponseSchema` gains a required `updatedAt`**, a Unix-seconds number (`UnixSeconds`),
92
+ matching every other /v1 timestamp.
93
+
94
+ **3. `/v1/routes` publishes three optional query parameters** through
95
+ `ROUTES_LIST_QUERY_SHAPE` / `RoutesListQuerySchema`: `sourceChainId`, `destinationChainId`
96
+ (both `ChainIdParam`) and `cursor`.
97
+
98
+ **4. The `routes.list` golden fixture** now carries a Base -> Arbitrum row with two pairs. It is
99
+ still draft-tagged, so live replay still skips it.
100
+
33
101
  ## Migrating 0.12.0 -> 0.13.0
34
102
 
35
103
  **BREAKING under 0.x semver only for exhaustive handling of `V1ErrorCode`.** Nothing on the wire
@@ -10,11 +10,11 @@ const deposit_addresses_create_response_gateway_erc20_json_1 = __importDefault(r
10
10
  const deposit_addresses_lookup_response_default_json_1 = __importDefault(require("./v1/deposit-addresses-lookup.response.default.json"));
11
11
  const deposit_addresses_submit_erc_2612_request_deposit_address_target_json_1 = __importDefault(require("./v1/deposit-addresses-submit-erc-2612.request.deposit-address-target.json"));
12
12
  const deposit_addresses_submit_erc_3009_request_deposit_address_target_json_1 = __importDefault(require("./v1/deposit-addresses-submit-erc-3009.request.deposit-address-target.json"));
13
- const intents_status_response_gasless_handoff_json_1 = __importDefault(require("./v1/intents-status.response.gasless-handoff.json"));
14
- const intents_status_response_intent_filled_json_1 = __importDefault(require("./v1/intents-status.response.intent-filled.json"));
15
- const intents_status_response_quote_filled_detail_json_1 = __importDefault(require("./v1/intents-status.response.quote-filled-detail.json"));
16
- const intents_status_response_unknown_json_1 = __importDefault(require("./v1/intents-status.response.unknown.json"));
17
- const intents_status_response_wallet_page_json_1 = __importDefault(require("./v1/intents-status.response.wallet-page.json"));
13
+ const intents_status_response_completed_fulfilled_json_1 = __importDefault(require("./v1/intents-status.response.completed-fulfilled.json"));
14
+ const intents_status_response_completed_refunded_json_1 = __importDefault(require("./v1/intents-status.response.completed-refunded.json"));
15
+ const intents_status_response_empty_json_1 = __importDefault(require("./v1/intents-status.response.empty.json"));
16
+ const intents_status_response_pending_fulfillment_json_1 = __importDefault(require("./v1/intents-status.response.pending-fulfillment.json"));
17
+ const intents_status_response_unlinked_intent_json_1 = __importDefault(require("./v1/intents-status.response.unlinked-intent.json"));
18
18
  const intents_submit_erc_3009_response_job_json_1 = __importDefault(require("./v1/intents-submit-erc-3009.response.job.json"));
19
19
  const intents_submit_permit2_request_quote_target_json_1 = __importDefault(require("./v1/intents-submit-permit2.request.quote-target.json"));
20
20
  const intents_submit_permit3_request_quote_target_json_1 = __importDefault(require("./v1/intents-submit-permit3.request.quote-target.json"));
@@ -32,16 +32,16 @@ const FIXTURE_BINDINGS = [
32
32
  bind('quotes.create', 'response', 'all-quotes', quotes_create_response_all_quotes_json_1.default),
33
33
  bind('quotes.create', 'request', 'gateway-deposit', quotes_create_request_gateway_deposit_json_1.default),
34
34
  bind('quotes.create', 'response', 'gateway-deposit', quotes_create_response_gateway_deposit_json_1.default),
35
+ bind('intents.status', 'response', 'pending-fulfillment', intents_status_response_pending_fulfillment_json_1.default),
36
+ bind('intents.status', 'response', 'completed-fulfilled', intents_status_response_completed_fulfilled_json_1.default),
37
+ bind('intents.status', 'response', 'completed-refunded', intents_status_response_completed_refunded_json_1.default),
38
+ bind('intents.status', 'response', 'unlinked-intent', intents_status_response_unlinked_intent_json_1.default),
39
+ bind('intents.status', 'response', 'empty', intents_status_response_empty_json_1.default),
35
40
  bind('intents.submit.erc-3009', 'response', 'job', intents_submit_erc_3009_response_job_json_1.default),
36
41
  bind('intents.submit.permit2', 'request', 'quote-target', intents_submit_permit2_request_quote_target_json_1.default),
37
42
  bind('intents.submit.permit3', 'request', 'quote-target', intents_submit_permit3_request_quote_target_json_1.default),
38
43
  bind('deposit-addresses.submit.erc-3009', 'request', 'deposit-address-target', deposit_addresses_submit_erc_3009_request_deposit_address_target_json_1.default),
39
44
  bind('deposit-addresses.submit.erc-2612', 'request', 'deposit-address-target', deposit_addresses_submit_erc_2612_request_deposit_address_target_json_1.default),
40
- bind('intents.status', 'response', 'intent-filled', intents_status_response_intent_filled_json_1.default),
41
- bind('intents.status', 'response', 'unknown', intents_status_response_unknown_json_1.default),
42
- bind('intents.status', 'response', 'gasless-handoff', intents_status_response_gasless_handoff_json_1.default),
43
- bind('intents.status', 'response', 'wallet-page', intents_status_response_wallet_page_json_1.default),
44
- bind('intents.status', 'response', 'quote-filled-detail', intents_status_response_quote_filled_detail_json_1.default),
45
45
  bind('chains.list', 'response', 'default', chains_list_response_default_json_1.default),
46
46
  bind('tokens.list', 'response', 'default', tokens_list_response_default_json_1.default),
47
47
  bind('routes.list', 'response', 'default', routes_list_response_default_json_1.default, { stability: 'draft' }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ {
2
+ "endpointId": "intents.status",
3
+ "direction": "response",
4
+ "variant": "completed-fulfilled",
5
+ "method": "GET",
6
+ "path": "/v1/intents/status?quoteId=quote:00000000-0000-4000-8000-000000000001",
7
+ "expectedStatus": 200,
8
+ "sideEffect": false,
9
+ "payload": {
10
+ "results": [
11
+ {
12
+ "id": "quote:00000000-0000-4000-8000-000000000001",
13
+ "status": "completed",
14
+ "substatus": "fulfilled",
15
+ "createdAt": 1792110000,
16
+ "updatedAt": 1792110025,
17
+ "refundAddress": "0x3333333333333333333333333333333333333333",
18
+ "source": {
19
+ "status": "completed",
20
+ "chainId": 8453,
21
+ "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
22
+ "timestamp": 1792110005,
23
+ "sender": "0x1111111111111111111111111111111111111111",
24
+ "token": {
25
+ "type": "token",
26
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
27
+ "symbol": "USDC",
28
+ "decimals": 6
29
+ },
30
+ "amount": "100000000"
31
+ },
32
+ "destination": {
33
+ "status": "completed",
34
+ "chainId": 42161,
35
+ "txHash": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
36
+ "timestamp": 1792110025,
37
+ "recipient": "0x2222222222222222222222222222222222222222",
38
+ "token": {
39
+ "type": "token",
40
+ "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
41
+ "symbol": "USDC",
42
+ "decimals": 6
43
+ },
44
+ "amount": "99850000"
45
+ },
46
+ "steps": [
47
+ {
48
+ "id": "bridge-1",
49
+ "type": "bridge",
50
+ "provider": "cctp",
51
+ "relatedIntents": [
52
+ {
53
+ "chainId": 8453,
54
+ "intentHash": "0x4444444444444444444444444444444444444444444444444444444444444444",
55
+ "status": "completed",
56
+ "substatus": "fulfilled"
57
+ }
58
+ ],
59
+ "status": "completed",
60
+ "substatus": "fulfilled",
61
+ "transactions": [
62
+ {
63
+ "chainId": 8453,
64
+ "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
65
+ "txLink": null,
66
+ "timestamp": 1792110005,
67
+ "type": "funding",
68
+ "sender": "0x1111111111111111111111111111111111111111",
69
+ "recipient": "0x3333333333333333333333333333333333333333",
70
+ "token": {
71
+ "type": "token",
72
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
73
+ "symbol": "USDC",
74
+ "decimals": 6
75
+ },
76
+ "amount": "100000000"
77
+ },
78
+ {
79
+ "chainId": 8453,
80
+ "txHash": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
81
+ "txLink": null,
82
+ "timestamp": 1792110010,
83
+ "type": "burn",
84
+ "sender": "0x3333333333333333333333333333333333333333",
85
+ "recipient": null,
86
+ "token": {
87
+ "type": "token",
88
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
89
+ "symbol": "USDC",
90
+ "decimals": 6
91
+ },
92
+ "amount": "100000000"
93
+ },
94
+ {
95
+ "chainId": 42161,
96
+ "txHash": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
97
+ "txLink": null,
98
+ "timestamp": 1792110025,
99
+ "type": "mint",
100
+ "sender": null,
101
+ "recipient": "0x2222222222222222222222222222222222222222",
102
+ "token": {
103
+ "type": "token",
104
+ "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
105
+ "symbol": "USDC",
106
+ "decimals": 6
107
+ },
108
+ "amount": "99850000"
109
+ }
110
+ ]
111
+ }
112
+ ]
113
+ }
114
+ ],
115
+ "nextPage": null
116
+ }
117
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "endpointId": "intents.status",
3
+ "direction": "response",
4
+ "variant": "completed-refunded",
5
+ "method": "GET",
6
+ "path": "/v1/intents/status?quoteId=quote:00000000-0000-4000-8000-000000000002",
7
+ "expectedStatus": 200,
8
+ "sideEffect": false,
9
+ "payload": {
10
+ "results": [
11
+ {
12
+ "id": "quote:00000000-0000-4000-8000-000000000002",
13
+ "status": "completed",
14
+ "substatus": "refunded",
15
+ "createdAt": 1792110000,
16
+ "updatedAt": 1792110500,
17
+ "refundAddress": "0x1111111111111111111111111111111111111111",
18
+ "source": {
19
+ "status": "completed",
20
+ "chainId": 8453,
21
+ "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
22
+ "timestamp": 1792110005,
23
+ "sender": "0x1111111111111111111111111111111111111111",
24
+ "token": {
25
+ "type": "token",
26
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
27
+ "symbol": "USDC",
28
+ "decimals": 6
29
+ },
30
+ "amount": "100000000"
31
+ },
32
+ "destination": {
33
+ "status": "completed",
34
+ "chainId": 8453,
35
+ "txHash": "0xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
36
+ "timestamp": 1792110500,
37
+ "recipient": "0x1111111111111111111111111111111111111111",
38
+ "token": {
39
+ "type": "token",
40
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
41
+ "symbol": "USDC",
42
+ "decimals": 6
43
+ },
44
+ "amount": "100000000"
45
+ },
46
+ "steps": [
47
+ {
48
+ "id": "bridge-1",
49
+ "type": "bridge",
50
+ "provider": "eco",
51
+ "relatedIntents": [
52
+ {
53
+ "chainId": 8453,
54
+ "intentHash": "0x5555555555555555555555555555555555555555555555555555555555555555",
55
+ "status": "completed",
56
+ "substatus": "refunded"
57
+ }
58
+ ],
59
+ "status": "completed",
60
+ "substatus": "refunded",
61
+ "transactions": [
62
+ {
63
+ "chainId": 8453,
64
+ "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
65
+ "txLink": null,
66
+ "timestamp": 1792110005,
67
+ "type": "funding",
68
+ "sender": "0x1111111111111111111111111111111111111111",
69
+ "recipient": "0x3333333333333333333333333333333333333333",
70
+ "token": {
71
+ "type": "token",
72
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
73
+ "symbol": "USDC",
74
+ "decimals": 6
75
+ },
76
+ "amount": "100000000"
77
+ },
78
+ {
79
+ "chainId": 8453,
80
+ "txHash": "0xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
81
+ "txLink": null,
82
+ "timestamp": 1792110500,
83
+ "type": "refund",
84
+ "sender": "0x3333333333333333333333333333333333333333",
85
+ "recipient": "0x1111111111111111111111111111111111111111",
86
+ "token": {
87
+ "type": "token",
88
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
89
+ "symbol": "USDC",
90
+ "decimals": 6
91
+ },
92
+ "amount": "100000000"
93
+ }
94
+ ]
95
+ }
96
+ ]
97
+ }
98
+ ],
99
+ "nextPage": null
100
+ }
101
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "endpointId": "intents.status",
3
+ "direction": "response",
4
+ "variant": "empty",
5
+ "method": "GET",
6
+ "path": "/v1/intents/status?wallet=0x1111111111111111111111111111111111111111",
7
+ "expectedStatus": 200,
8
+ "sideEffect": false,
9
+ "payload": {
10
+ "results": [],
11
+ "nextPage": null
12
+ }
13
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "endpointId": "intents.status",
3
+ "direction": "response",
4
+ "variant": "pending-fulfillment",
5
+ "method": "GET",
6
+ "path": "/v1/intents/status?quoteId=quote:00000000-0000-4000-8000-000000000001",
7
+ "expectedStatus": 200,
8
+ "sideEffect": false,
9
+ "payload": {
10
+ "results": [
11
+ {
12
+ "id": "quote:00000000-0000-4000-8000-000000000001",
13
+ "status": "pending",
14
+ "substatus": "waiting_for_fulfillment",
15
+ "createdAt": 1792110000,
16
+ "updatedAt": 1792110010,
17
+ "refundAddress": "0x3333333333333333333333333333333333333333",
18
+ "source": {
19
+ "status": "completed",
20
+ "chainId": 8453,
21
+ "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
22
+ "timestamp": 1792110005,
23
+ "sender": "0x1111111111111111111111111111111111111111",
24
+ "token": {
25
+ "type": "token",
26
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
27
+ "symbol": "USDC",
28
+ "decimals": 6
29
+ },
30
+ "amount": "100000000"
31
+ },
32
+ "destination": {
33
+ "status": "pending",
34
+ "chainId": 42161,
35
+ "txHash": null,
36
+ "timestamp": null,
37
+ "recipient": "0x2222222222222222222222222222222222222222",
38
+ "token": {
39
+ "type": "token",
40
+ "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
41
+ "symbol": "USDC",
42
+ "decimals": 6
43
+ },
44
+ "amount": null
45
+ },
46
+ "steps": [
47
+ {
48
+ "id": "bridge-1",
49
+ "type": "bridge",
50
+ "provider": "cctp",
51
+ "relatedIntents": [
52
+ {
53
+ "chainId": 8453,
54
+ "intentHash": "0x4444444444444444444444444444444444444444444444444444444444444444",
55
+ "status": "completed",
56
+ "substatus": "fulfilled"
57
+ }
58
+ ],
59
+ "status": "pending",
60
+ "substatus": "waiting_for_fulfillment",
61
+ "transactions": [
62
+ {
63
+ "chainId": 8453,
64
+ "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
65
+ "txLink": null,
66
+ "timestamp": 1792110005,
67
+ "type": "funding",
68
+ "sender": "0x1111111111111111111111111111111111111111",
69
+ "recipient": "0x3333333333333333333333333333333333333333",
70
+ "token": {
71
+ "type": "token",
72
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
73
+ "symbol": "USDC",
74
+ "decimals": 6
75
+ },
76
+ "amount": "100000000"
77
+ },
78
+ {
79
+ "chainId": 8453,
80
+ "txHash": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
81
+ "txLink": null,
82
+ "timestamp": 1792110010,
83
+ "type": "burn",
84
+ "sender": "0x3333333333333333333333333333333333333333",
85
+ "recipient": null,
86
+ "token": {
87
+ "type": "token",
88
+ "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
89
+ "symbol": "USDC",
90
+ "decimals": 6
91
+ },
92
+ "amount": "100000000"
93
+ }
94
+ ]
95
+ }
96
+ ]
97
+ }
98
+ ],
99
+ "nextPage": null
100
+ }
101
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "endpointId": "intents.status",
3
+ "direction": "response",
4
+ "variant": "unlinked-intent",
5
+ "method": "GET",
6
+ "path": "/v1/intents/status?txHash=0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
7
+ "expectedStatus": 200,
8
+ "sideEffect": false,
9
+ "payload": {
10
+ "results": [
11
+ {
12
+ "id": null,
13
+ "status": "completed",
14
+ "substatus": "fulfilled",
15
+ "createdAt": null,
16
+ "updatedAt": null,
17
+ "refundAddress": null,
18
+ "source": {
19
+ "status": "completed",
20
+ "chainId": 8453,
21
+ "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
22
+ "timestamp": null,
23
+ "sender": null,
24
+ "token": null,
25
+ "amount": null
26
+ },
27
+ "destination": {
28
+ "status": "completed",
29
+ "chainId": 42161,
30
+ "txHash": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
31
+ "timestamp": null,
32
+ "recipient": null,
33
+ "token": null,
34
+ "amount": null
35
+ },
36
+ "steps": [
37
+ {
38
+ "id": "bridge-1",
39
+ "type": "bridge",
40
+ "provider": "eco",
41
+ "relatedIntents": [
42
+ {
43
+ "chainId": 8453,
44
+ "intentHash": "0x4444444444444444444444444444444444444444444444444444444444444444",
45
+ "status": "completed",
46
+ "substatus": "fulfilled"
47
+ }
48
+ ],
49
+ "status": "completed",
50
+ "substatus": "fulfilled",
51
+ "transactions": [
52
+ {
53
+ "chainId": 8453,
54
+ "txHash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
55
+ "txLink": "https://basescan.org/tx/0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
56
+ "timestamp": null,
57
+ "type": "funding",
58
+ "sender": null,
59
+ "recipient": null,
60
+ "token": null,
61
+ "amount": null
62
+ },
63
+ {
64
+ "chainId": 42161,
65
+ "txHash": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
66
+ "txLink": "https://arbiscan.io/tx/0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
67
+ "timestamp": null,
68
+ "type": "execution",
69
+ "sender": null,
70
+ "recipient": null,
71
+ "token": null,
72
+ "amount": null
73
+ }
74
+ ]
75
+ }
76
+ ]
77
+ }
78
+ ],
79
+ "nextPage": null
80
+ }
81
+ }
@@ -10,17 +10,44 @@
10
10
  "payload": {
11
11
  "routes": [
12
12
  {
13
- "source": {
14
- "chainId": 8453,
15
- "token": "0x1111111111111111111111111111111111111111"
16
- },
17
- "destination": {
18
- "chainId": 10,
19
- "token": "0x1111111111111111111111111111111111111111"
20
- },
21
- "swapTypes": ["exact-in"]
13
+ "source": { "chainId": 8453 },
14
+ "destination": { "chainId": 42161 },
15
+ "pairs": [
16
+ {
17
+ "baseline": true,
18
+ "source": {
19
+ "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
20
+ "symbol": "USDC",
21
+ "decimals": 6,
22
+ "limits": { "min": "1000000", "max": "50000000000" }
23
+ },
24
+ "destination": {
25
+ "token": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
26
+ "symbol": "USDC",
27
+ "decimals": 6,
28
+ "limits": { "min": "1000000", "max": "50000000000" }
29
+ }
30
+ },
31
+ {
32
+ "baseline": false,
33
+ "source": {
34
+ "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
35
+ "symbol": "USDC",
36
+ "decimals": 6,
37
+ "limits": { "min": "1000000", "max": "20000000000" }
38
+ },
39
+ "destination": {
40
+ "token": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
41
+ "symbol": "USDT",
42
+ "decimals": 6,
43
+ "limits": { "max": "20000000000" }
44
+ }
45
+ }
46
+ ],
47
+ "anyAsset": { "source": true, "destination": true }
22
48
  }
23
49
  ],
50
+ "updatedAt": 1791381600,
24
51
  "nextCursor": null
25
52
  }
26
53
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "digest": "e5a684f678f80135ddf7241029d965d2a206b3b573a9969ad1352610d1b4abc9",
2
+ "digest": "6dd9eee363e458e031e66c2f85064fb406ecaadc20cc1bc8fa4d19ffb991598f",
3
3
  "inputs": [
4
4
  "errors/catalog.lock.json",
5
5
  "openapi/v1.json"
package/dist/index.d.ts CHANGED
@@ -3,4 +3,4 @@ export { generateOpenApiDocument, STABLE_TAG } from './openapi';
3
3
  export type { V1Fixture } from './testing';
4
4
  export { assertMatchesV1Schema, loadV1Fixtures } from './testing';
5
5
  export * as v1 from './v1';
6
- export type { LegacyCodeRef, V1Chain, V1ChainType, V1DepositAddress, V1DepositAddressChainStatus, V1DepositAddressCreateRequest, V1DepositAddressCreateResponse, V1DepositAddressType, V1DestinationCall, V1ErrorCode, V1ErrorDefinition, V1Execution, V1Fee, V1FeeToken, V1FeeType, V1FundingTransaction, V1GaslessJob, V1GaslessJobStatus, V1GaslessSubState, V1GaslessSubStatus, V1IntentCall, V1IntentReward, V1IntentRoute, V1IntentTokenAmount, V1ProblemBody, V1QuoteCore, V1QuoteRequest, V1QuoteResponse, V1QuoteType, V1RankedQuoteEntry, V1RelatedIntentRole, V1SolverIdentity, V1StatusEntry, V1StatusStep, V1StatusStepType, V1StatusTokenAmount, V1StatusTxDetail, V1StatusTxRef, V1StatusType, V1Step, V1StepIntent, V1StepLeg, V1StepType, V1SvmAccountMeta, V1SvmInstruction, V1TokenEntry, } from './v1/types';
6
+ export type { LegacyCodeRef, V1Chain, V1ChainType, V1DepositAddress, V1DepositAddressChainStatus, V1DepositAddressCreateRequest, V1DepositAddressCreateResponse, V1DepositAddressType, V1DestinationCall, V1ErrorCode, V1ErrorDefinition, V1Execution, V1Fee, V1FeeToken, V1FeeType, V1FundingTransaction, V1GaslessJob, V1GaslessJobStatus, V1GaslessSubState, V1GaslessSubStatus, V1IntentCall, V1IntentReward, V1IntentRoute, V1IntentTokenAmount, V1ProblemBody, V1QuoteCore, V1QuoteRequest, V1QuoteResponse, V1QuoteType, V1RankedQuoteEntry, V1RelatedIntentRole, V1SolverIdentity, V1StatusEntry, V1StatusStep, V1StatusStepType, V1StatusTokenAmount, V1StatusTxDetail, V1StatusTxRef, V1StatusType, V1Step, V1StepIntent, V1StepLeg, V1StepType, V1SvmAccountMeta, V1SvmInstruction, V1TokenEntry, V1TransferDestination, V1TransferRelatedIntent, V1TransferSource, V1TransferStatus, V1TransferStatusEntry, V1TransferStatusQuery, V1TransferStatusResponse, V1TransferStep, V1TransferStepType, V1TransferSubstatus, V1TransferToken, V1TransferTokenType, V1TransferTransaction, V1TransferTxType, } from './v1/types';