@aibtc/tx-schemas 0.2.2 → 0.3.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 CHANGED
@@ -70,6 +70,8 @@ const settleRequest = HttpSettleRequestSchema.parse({
70
70
  - The default protected-resource delivery invariant is `deliver-only-on-confirmed`.
71
71
  - Any product that delivers on in-flight states should document that as an application exception, not a canonical package rule.
72
72
  - `paymentId` is relay-owned and duplicate submission should reuse the same `paymentId` until terminal resolution.
73
+ - Accepted duplicate submit responses should return the current caller-facing in-flight status for that `paymentId`: `queued`, `broadcasting`, or `mempool` as applicable.
74
+ - `queued_with_warning` remains an RPC-only temporary compatibility shim for warning-aware callers during migration.
73
75
  - Polling contracts may surface `checkStatusUrl` as an additive convenience field, and internal/external polling should treat it as another way to reach the same `paymentId` lifecycle.
74
76
  - Terminal polling responses should carry a normalized `terminalReason` when one is known, even if transports also emit local error codes.
75
77
 
@@ -71,7 +71,11 @@ export declare const RpcSubmitPaymentRequestSchema: z.ZodObject<{
71
71
  export declare const RpcSubmitPaymentAcceptedSchema: z.ZodObject<{
72
72
  accepted: z.ZodLiteral<true>;
73
73
  paymentId: z.ZodString;
74
- status: z.ZodUnion<readonly [z.ZodLiteral<"queued">, z.ZodLiteral<"queued_with_warning">]>;
74
+ status: z.ZodUnion<readonly [z.ZodEnum<{
75
+ queued: "queued";
76
+ broadcasting: "broadcasting";
77
+ mempool: "mempool";
78
+ }>, z.ZodLiteral<"queued_with_warning">]>;
75
79
  senderNonce: z.ZodOptional<z.ZodObject<{
76
80
  provided: z.ZodNumber;
77
81
  expected: z.ZodNumber;
@@ -125,7 +129,11 @@ export declare const RpcSubmitPaymentRejectedSchema: z.ZodObject<{
125
129
  export declare const RpcSubmitPaymentResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
126
130
  accepted: z.ZodLiteral<true>;
127
131
  paymentId: z.ZodString;
128
- status: z.ZodUnion<readonly [z.ZodLiteral<"queued">, z.ZodLiteral<"queued_with_warning">]>;
132
+ status: z.ZodUnion<readonly [z.ZodEnum<{
133
+ queued: "queued";
134
+ broadcasting: "broadcasting";
135
+ mempool: "mempool";
136
+ }>, z.ZodLiteral<"queued_with_warning">]>;
129
137
  senderNonce: z.ZodOptional<z.ZodObject<{
130
138
  provided: z.ZodNumber;
131
139
  expected: z.ZodNumber;
@@ -244,7 +252,11 @@ export type RpcCheckPaymentResult = z.infer<typeof RpcCheckPaymentResultSchema>;
244
252
  export declare const SubmitPaymentRpcResponseSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
245
253
  accepted: z.ZodLiteral<true>;
246
254
  paymentId: z.ZodString;
247
- status: z.ZodUnion<readonly [z.ZodLiteral<"queued">, z.ZodLiteral<"queued_with_warning">]>;
255
+ status: z.ZodUnion<readonly [z.ZodEnum<{
256
+ queued: "queued";
257
+ broadcasting: "broadcasting";
258
+ mempool: "mempool";
259
+ }>, z.ZodLiteral<"queued_with_warning">]>;
248
260
  senderNonce: z.ZodOptional<z.ZodObject<{
249
261
  provided: z.ZodNumber;
250
262
  expected: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/rpc/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,eAAe,oWAiBlB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;EAA0B,CAAC;AAE1D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;iBAQjC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;iBAUxC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAGxC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;iBAOzC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQzC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAGvC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAatC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAA+B,CAAC;AAC3E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8B,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/rpc/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,eAAe,oWAiBlB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;EAA0B,CAAC;AAE1D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;iBAQjC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;iBAUxC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAGxC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOzC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQzC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAGvC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAatC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAA+B,CAAC;AAC3E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA8B,CAAC"}
@@ -54,7 +54,7 @@ export const RpcSubmitPaymentRequestSchema = z.object({
54
54
  export const RpcSubmitPaymentAcceptedSchema = z.object({
55
55
  accepted: z.literal(true),
56
56
  paymentId: PaymentIdSchema,
57
- status: z.union([z.literal("queued"), z.literal("queued_with_warning")]),
57
+ status: z.union([InFlightPaymentStateSchema, z.literal("queued_with_warning")]),
58
58
  senderNonce: RpcSenderNonceInfoSchema.optional(),
59
59
  warning: RpcSubmitPaymentWarningSchema.optional(),
60
60
  checkStatusUrl: UrlSchema.optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/rpc/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/rpc/schemas.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ Notes:
24
24
 
25
25
  - `paymentId` is relay-owned.
26
26
  - Duplicate submission of the same already-known payment artifact should reuse the same `paymentId` until that payment reaches a terminal state.
27
+ - Accepted duplicate submit responses should return the current caller-facing in-flight status for that reused `paymentId`: `queued`, `broadcasting`, or `mempool` as applicable.
27
28
  - Internal and external polling should both treat `paymentId` as the stable handle for in-flight and terminal lookup.
28
29
 
29
30
  ## Terminal Outcome Contract
@@ -55,7 +56,8 @@ Relay-owned responsibilities:
55
56
 
56
57
  ## Compatibility Notes
57
58
 
58
- - `RpcSubmitPaymentAccepted.status` should return `queued` for normal acceptance and `queued_with_warning` only as a temporary compatibility shim while warning-aware callers migrate.
59
+ - `RpcSubmitPaymentAccepted.status` should return canonical caller-facing in-flight states: `queued` for fresh acceptance, and `queued`, `broadcasting`, or `mempool` when duplicate reuse surfaces the active state of the reused `paymentId`.
60
+ - `queued_with_warning` remains allowed only as a temporary compatibility shim while warning-aware callers migrate.
59
61
  - `RpcCheckPaymentResult.status` and `HttpPaymentStatusResponse.status` must never return `submitted`.
60
62
  - `RpcCheckPaymentResult` and `HttpPaymentStatusResponse` may both surface `checkStatusUrl` as an additive canonical poll hint.
61
63
  - `terminalReason` is additive and should be emitted wherever relay adapters already know the normalized terminal classification.
@@ -72,7 +74,7 @@ Relay-owned responsibilities:
72
74
  | Scenario | Canonical status | terminalReason | Service delivery default | Client action |
73
75
  | --- | --- | --- | --- | --- |
74
76
  | Fresh submission accepted | `queued` | | wait or poll by `paymentId` | no rebuild |
75
- | Duplicate same submission | `queued` or later existing status | | do not create a second receipt | reuse same `paymentId` / same tx |
77
+ | Duplicate same submission | `queued`, `broadcasting`, or `mempool` | | do not create a second receipt | reuse same `paymentId` / same tx |
76
78
  | Relay broadcasting | `broadcasting` | | do not deliver by default | poll |
77
79
  | Seen in mempool | `mempool` | | do not deliver by default unless route exception is documented | poll |
78
80
  | Confirmed on-chain | `confirmed` | | deliver | success |
@@ -46,6 +46,8 @@ The approval spec establishes these package-level semantics:
46
46
  - `failed`, `replaced`, and `not_found` are terminal-failure states.
47
47
  - resource delivery during in-flight states is transport/product policy, not a new domain state
48
48
  - duplicate submission should reuse the same relay-owned `paymentId` until that payment reaches a terminal state
49
+ - accepted duplicate submit responses should return the current caller-facing in-flight status for that `paymentId`: `queued`, `broadcasting`, or `mempool`
50
+ - `queued_with_warning` remains an RPC-only temporary compatibility shim while warning-aware callers migrate
49
51
  - polling/status adapters may expose `checkStatusUrl` as an additive canonical poll hint for that same `paymentId`
50
52
  - polling/status adapters should emit canonical `terminalReason` values when they know the terminal outcome
51
53
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aibtc/tx-schemas",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Shared zod schemas for AIBTC transaction states, internal relay schemas, and external x402 payment schemas.",
5
5
  "type": "module",
6
6
  "sideEffects": false,