mppx 0.8.13 → 0.8.15

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 (156) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/Errors.d.ts +10 -0
  3. package/dist/Errors.d.ts.map +1 -1
  4. package/dist/Errors.js +11 -2
  5. package/dist/Errors.js.map +1 -1
  6. package/dist/Method.d.ts +105 -3
  7. package/dist/Method.d.ts.map +1 -1
  8. package/dist/Method.js +102 -2
  9. package/dist/Method.js.map +1 -1
  10. package/dist/cli/validate/payment.d.ts.map +1 -1
  11. package/dist/cli/validate/payment.js +18 -4
  12. package/dist/cli/validate/payment.js.map +1 -1
  13. package/dist/client/internal/Fetch.d.ts.map +1 -1
  14. package/dist/client/internal/Fetch.js +98 -5
  15. package/dist/client/internal/Fetch.js.map +1 -1
  16. package/dist/client/internal/MethodChallenge.d.ts +19 -0
  17. package/dist/client/internal/MethodChallenge.d.ts.map +1 -0
  18. package/dist/client/internal/MethodChallenge.js +15 -0
  19. package/dist/client/internal/MethodChallenge.js.map +1 -0
  20. package/dist/client/internal/MethodResponse.d.ts +15 -0
  21. package/dist/client/internal/MethodResponse.d.ts.map +1 -1
  22. package/dist/client/internal/MethodResponse.js +10 -0
  23. package/dist/client/internal/MethodResponse.js.map +1 -1
  24. package/dist/server/Mppx.d.ts +23 -4
  25. package/dist/server/Mppx.d.ts.map +1 -1
  26. package/dist/server/Mppx.js +91 -82
  27. package/dist/server/Mppx.js.map +1 -1
  28. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  29. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  30. package/dist/stripe/server/internal/html.gen.js +1 -1
  31. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  32. package/dist/tempo/client/Methods.d.ts +1 -0
  33. package/dist/tempo/client/Methods.d.ts.map +1 -1
  34. package/dist/tempo/internal/fee-payer.d.ts +1 -0
  35. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  36. package/dist/tempo/internal/fee-payer.js +7 -2
  37. package/dist/tempo/internal/fee-payer.js.map +1 -1
  38. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +1 -1
  39. package/dist/tempo/legacy/client/ChannelOps.js +2 -1
  40. package/dist/tempo/legacy/client/ChannelOps.js.map +1 -1
  41. package/dist/tempo/server/Charge.d.ts +46 -77
  42. package/dist/tempo/server/Charge.d.ts.map +1 -1
  43. package/dist/tempo/server/Charge.js +289 -209
  44. package/dist/tempo/server/Charge.js.map +1 -1
  45. package/dist/tempo/server/Methods.d.ts +12 -1
  46. package/dist/tempo/server/Methods.d.ts.map +1 -1
  47. package/dist/tempo/server/Methods.js +4 -0
  48. package/dist/tempo/server/Methods.js.map +1 -1
  49. package/dist/tempo/server/Relay.d.ts +57 -0
  50. package/dist/tempo/server/Relay.d.ts.map +1 -0
  51. package/dist/tempo/server/Relay.js +179 -0
  52. package/dist/tempo/server/Relay.js.map +1 -0
  53. package/dist/tempo/server/SponsorBudget.d.ts +59 -0
  54. package/dist/tempo/server/SponsorBudget.d.ts.map +1 -0
  55. package/dist/tempo/server/SponsorBudget.js +150 -0
  56. package/dist/tempo/server/SponsorBudget.js.map +1 -0
  57. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  58. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  59. package/dist/tempo/server/internal/html.gen.js +1 -1
  60. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  61. package/dist/tempo/session/client/ChannelOps.d.ts +7 -1
  62. package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -1
  63. package/dist/tempo/session/client/ChannelOps.js +9 -4
  64. package/dist/tempo/session/client/ChannelOps.js.map +1 -1
  65. package/dist/tempo/session/client/CredentialState.d.ts +5 -1
  66. package/dist/tempo/session/client/CredentialState.d.ts.map +1 -1
  67. package/dist/tempo/session/client/CredentialState.js +37 -19
  68. package/dist/tempo/session/client/CredentialState.js.map +1 -1
  69. package/dist/tempo/session/client/Runtime.d.ts +8 -0
  70. package/dist/tempo/session/client/Runtime.d.ts.map +1 -1
  71. package/dist/tempo/session/client/Runtime.js +17 -0
  72. package/dist/tempo/session/client/Runtime.js.map +1 -1
  73. package/dist/tempo/session/client/Session.d.ts +15 -5
  74. package/dist/tempo/session/client/Session.d.ts.map +1 -1
  75. package/dist/tempo/session/client/Session.js +216 -45
  76. package/dist/tempo/session/client/Session.js.map +1 -1
  77. package/dist/tempo/session/client/SessionManager.d.ts +8 -1
  78. package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
  79. package/dist/tempo/session/client/SessionManager.js +114 -44
  80. package/dist/tempo/session/client/SessionManager.js.map +1 -1
  81. package/dist/tempo/session/client/Transports.d.ts +16 -6
  82. package/dist/tempo/session/client/Transports.d.ts.map +1 -1
  83. package/dist/tempo/session/client/Transports.js +84 -37
  84. package/dist/tempo/session/client/Transports.js.map +1 -1
  85. package/dist/tempo/session/precompile/Chain.d.ts.map +1 -1
  86. package/dist/tempo/session/precompile/Chain.js +96 -8
  87. package/dist/tempo/session/precompile/Chain.js.map +1 -1
  88. package/dist/tempo/session/precompile/Channel.d.ts +2 -0
  89. package/dist/tempo/session/precompile/Channel.d.ts.map +1 -1
  90. package/dist/tempo/session/precompile/Channel.js +4 -0
  91. package/dist/tempo/session/precompile/Channel.js.map +1 -1
  92. package/dist/tempo/session/server/RequestState.js +3 -1
  93. package/dist/tempo/session/server/RequestState.js.map +1 -1
  94. package/dist/tempo/session/server/Ws.d.ts.map +1 -1
  95. package/dist/tempo/session/server/Ws.js +3 -0
  96. package/dist/tempo/session/server/Ws.js.map +1 -1
  97. package/dist/tempo/subscription/KeyAuthorization.d.ts +1 -829
  98. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  99. package/dist/tempo/subscription/KeyAuthorization.js +14 -3
  100. package/dist/tempo/subscription/KeyAuthorization.js.map +1 -1
  101. package/dist/viem/Client.d.ts.map +1 -1
  102. package/dist/viem/Client.js +6 -1
  103. package/dist/viem/Client.js.map +1 -1
  104. package/package.json +2 -2
  105. package/src/Errors.test.ts +23 -0
  106. package/src/Errors.ts +21 -2
  107. package/src/Method.test.ts +102 -1
  108. package/src/Method.ts +241 -5
  109. package/src/cli/validate/payment.ts +18 -4
  110. package/src/cli/validate.test.ts +16 -0
  111. package/src/client/Mppx.test-d.ts +3 -3
  112. package/src/client/internal/Fetch.test.ts +77 -0
  113. package/src/client/internal/Fetch.ts +122 -11
  114. package/src/client/internal/MethodChallenge.ts +35 -0
  115. package/src/client/internal/MethodResponse.ts +28 -0
  116. package/src/server/Mppx.test-d.ts +2 -0
  117. package/src/server/Mppx.test.ts +205 -0
  118. package/src/server/Mppx.ts +167 -103
  119. package/src/stripe/server/internal/html.gen.ts +1 -1
  120. package/src/tempo/PublicExports.test-d.ts +20 -0
  121. package/src/tempo/internal/fee-payer.ts +7 -3
  122. package/src/tempo/legacy/client/ChannelOps.test.ts +7 -0
  123. package/src/tempo/legacy/client/ChannelOps.ts +2 -1
  124. package/src/tempo/server/Charge.test.ts +337 -63
  125. package/src/tempo/server/Charge.ts +443 -267
  126. package/src/tempo/server/Methods.ts +11 -0
  127. package/src/tempo/server/Relay.test.ts +677 -0
  128. package/src/tempo/server/Relay.ts +297 -0
  129. package/src/tempo/server/SponsorBudget.test.ts +154 -0
  130. package/src/tempo/server/SponsorBudget.ts +219 -0
  131. package/src/tempo/server/internal/html.gen.ts +1 -1
  132. package/src/tempo/session/README.md +7 -0
  133. package/src/tempo/session/client/ChannelOps.test.ts +17 -2
  134. package/src/tempo/session/client/ChannelOps.ts +12 -4
  135. package/src/tempo/session/client/CredentialState.ts +61 -20
  136. package/src/tempo/session/client/Runtime.test.ts +12 -0
  137. package/src/tempo/session/client/Runtime.ts +22 -0
  138. package/src/tempo/session/client/Session.test.ts +506 -7
  139. package/src/tempo/session/client/Session.ts +279 -54
  140. package/src/tempo/session/client/SessionManager.test.ts +318 -13
  141. package/src/tempo/session/client/SessionManager.ts +132 -42
  142. package/src/tempo/session/client/Transports.test.ts +54 -1
  143. package/src/tempo/session/client/Transports.ts +137 -57
  144. package/src/tempo/session/precompile/Chain.integration.test.ts +19 -1
  145. package/src/tempo/session/precompile/Chain.test.ts +197 -10
  146. package/src/tempo/session/precompile/Chain.ts +102 -8
  147. package/src/tempo/session/precompile/Channel.test.ts +9 -0
  148. package/src/tempo/session/precompile/Channel.ts +5 -0
  149. package/src/tempo/session/server/RequestState.test.ts +8 -1
  150. package/src/tempo/session/server/RequestState.ts +2 -2
  151. package/src/tempo/session/server/Session.test.ts +66 -4
  152. package/src/tempo/session/server/Ws.ts +3 -0
  153. package/src/tempo/subscription/KeyAuthorization.test.ts +70 -1
  154. package/src/tempo/subscription/KeyAuthorization.ts +14 -3
  155. package/src/viem/Client.test.ts +18 -1
  156. package/src/viem/Client.ts +7 -1
@@ -1,13 +1,15 @@
1
+ import { Transaction } from 'viem/tempo';
1
2
  import type { LooseOmit, NoExtraKeys } from '../../internal/types.js';
2
3
  import * as Method from '../../Method.js';
3
4
  import type * as Html from '../../server/internal/html/config.ts';
4
5
  import * as Store from '../../Store.js';
5
6
  import * as Client from '../../viem/Client.js';
6
- import type * as z from '../../zod.js';
7
7
  import * as Account from '../internal/account.js';
8
8
  import * as FeePayer from '../internal/fee-payer.js';
9
9
  import type * as types from '../internal/types.js';
10
10
  import * as Methods from '../Methods.js';
11
+ import * as Relay from './Relay.js';
12
+ import * as SponsorBudget from './SponsorBudget.js';
11
13
  /**
12
14
  * Creates a Tempo charge method intent for usage on the server.
13
15
  *
@@ -18,83 +20,19 @@ import * as Methods from '../Methods.js';
18
20
  * const charge = tempo.charge()
19
21
  * ```
20
22
  */
21
- export declare function charge<const parameters extends charge.Parameters>(parameters?: NoExtraKeys<parameters, charge.Parameters>): Method.Server<{
22
- readonly name: "tempo";
23
- readonly intent: "charge";
24
- readonly schema: {
25
- readonly credential: {
26
- readonly payload: z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
27
- hash: z.ZodMiniString<string>;
28
- type: z.ZodMiniLiteral<"hash">;
29
- }, z.core.$strip>, z.ZodMiniObject<{
30
- signature: z.ZodMiniString<string>;
31
- type: z.ZodMiniLiteral<"transaction">;
32
- }, z.core.$strip>, z.ZodMiniObject<{
33
- signature: z.ZodMiniString<string>;
34
- type: z.ZodMiniLiteral<"proof">;
35
- }, z.core.$strip>], "type">;
36
- };
37
- readonly request: z.ZodMiniPipe<z.ZodMiniObject<{
38
- amount: z.ZodMiniString<string>;
39
- chainId: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
40
- currency: z.ZodMiniString<string>;
41
- decimals: z.ZodMiniNumber<number>;
42
- description: z.ZodMiniOptional<z.ZodMiniString<string>>;
43
- externalId: z.ZodMiniOptional<z.ZodMiniString<string>>;
44
- feePayer: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniCustom<import("viem").Account, import("viem").Account>]>, z.ZodMiniTransform<boolean, boolean | import("viem").Account>>>;
45
- memo: z.ZodMiniOptional<z.ZodMiniString<string>>;
46
- recipient: z.ZodMiniOptional<z.ZodMiniString<string>>;
47
- splits: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniObject<{
48
- amount: z.ZodMiniString<string>;
49
- memo: z.ZodMiniOptional<z.ZodMiniString<string>>;
50
- recipient: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
51
- }, z.core.$strip>>>;
52
- supportedModes: z.ZodMiniOptional<z.ZodMiniArray<z.ZodMiniEnum<{
53
- push: "push";
54
- pull: "pull";
55
- }>>>;
56
- }, z.core.$strip>, z.ZodMiniTransform<{
57
- methodDetails?: {
58
- supportedModes?: ("push" | "pull")[] | undefined;
59
- splits?: {
60
- amount: string;
61
- recipient: `0x${string}`;
62
- memo?: string | undefined;
63
- }[] | undefined;
64
- memo?: string | undefined;
65
- feePayer?: boolean | undefined;
66
- chainId?: number | undefined;
67
- } | undefined;
68
- amount: string;
69
- currency: string;
70
- description?: string | undefined;
71
- externalId?: string | undefined;
72
- recipient?: string | undefined;
73
- }, {
74
- amount: string;
75
- currency: string;
76
- decimals: number;
77
- chainId?: number | undefined;
78
- description?: string | undefined;
79
- externalId?: string | undefined;
80
- feePayer?: boolean | undefined;
81
- memo?: string | undefined;
82
- recipient?: string | undefined;
83
- splits?: {
84
- amount: string;
85
- recipient: `0x${string}`;
86
- memo?: string | undefined;
87
- }[] | undefined;
88
- supportedModes?: ("push" | "pull")[] | undefined;
89
- }>>;
90
- };
91
- }, charge.DeriveDefaults<parameters>, undefined, {}, undefined>;
23
+ export declare function charge<const parameters extends charge.Parameters>(parameters?: NoExtraKeys<parameters, charge.Parameters>): Method.Server<typeof Methods.charge, charge.DeriveDefaults<parameters>>;
92
24
  export declare namespace charge {
93
25
  type StoreItemMap = {
94
- [key: `mppx:charge:${string}`]: number;
26
+ [key: `mppx:charge:${string}`]: number | SponsorBudget.State;
95
27
  };
96
28
  type Defaults = LooseOmit<Method.RequestDefaults<typeof Methods.charge>, 'feePayer' | 'recipient'>;
97
29
  type ValidateSender = (parameters: ValidateSenderParameters) => boolean | Promise<boolean>;
30
+ type ValidationDetails = {
31
+ mode: 'proof' | 'pull' | 'push';
32
+ sender?: `0x${string}` | undefined;
33
+ serializedTransaction?: Transaction.TransactionSerializedTempo | undefined;
34
+ transfers?: readonly ExpectedTransfer[] | undefined;
35
+ };
98
36
  type ValidateSenderParameters = {
99
37
  /** Actual TIP-20 `Transfer.from` address. */
100
38
  sender: `0x${string}`;
@@ -112,10 +50,13 @@ export declare namespace charge {
112
50
  /**
113
51
  * Override the fee-sponsor policy used when co-signing Tempo charge
114
52
  * transactions. Defaults resolve per chain, including a higher
115
- * priority-fee ceiling on Moderato.
53
+ * priority-fee ceiling on Moderato and a bounded aggregate in-flight fee
54
+ * budget. Sponsored transactions reserve their declared maximum fee
55
+ * atomically; independent expiring-nonce transactions run concurrently
56
+ * while capacity remains and wait for capacity when the budget is full.
116
57
  *
117
- * If you increase `maxGas` or `maxFeePerGas`, you may also need to raise
118
- * `maxTotalFee` so the combined fee budget remains valid.
58
+ * If you increase `maxGas`, `maxFeePerGas`, or `maxTotalFee`, you may also
59
+ * need to raise `maxInFlightTotalFee`.
119
60
  */
120
61
  feePayerPolicy?: FeePayerPolicy | undefined;
121
62
  /**
@@ -155,6 +96,16 @@ export declare namespace charge {
155
96
  * By default, no prefix is applied.
156
97
  */
157
98
  storeKeyPrefix?: string | undefined;
99
+ /**
100
+ * Delegates Tempo charge credential validation and broadcast to Tempo API
101
+ * or a compatible MPP relay.
102
+ *
103
+ * The adapter delegates finalization to the relay for both modes. The
104
+ * relay broadcasts pull credentials, while it recognizes a push
105
+ * credential as already broadcast and returns its receipt without sending
106
+ * it again.
107
+ */
108
+ relay?: RelayOptions | undefined;
158
109
  /**
159
110
  * Whether to wait for the charge transaction to confirm on-chain before
160
111
  * responding. @default true
@@ -172,6 +123,24 @@ export declare namespace charge {
172
123
  currency: string;
173
124
  decimals: number;
174
125
  }>;
175
- type FeePayerPolicy = Partial<FeePayer.Policy>;
126
+ type FeePayerPolicy = Partial<FeePayer.Policy> & {
127
+ /** Maximum number of sponsored transactions awaiting a terminal receipt. @default 100 */
128
+ maxInFlightReservations?: number | undefined;
129
+ /**
130
+ * Maximum aggregate declared fee exposure awaiting terminal receipts.
131
+ *
132
+ * @default `maxTotalFee * 10`
133
+ */
134
+ maxInFlightTotalFee?: bigint | undefined;
135
+ };
136
+ /** Tempo API relay configuration for server-side charges. */
137
+ type RelayOptions = Relay.configure.Options;
176
138
  }
139
+ type ExpectedTransfer = {
140
+ amount: string;
141
+ allowAnyMemo?: boolean | undefined;
142
+ memo?: `0x${string}` | undefined;
143
+ recipient: `0x${string}`;
144
+ };
145
+ export {};
177
146
  //# sourceMappingURL=Charge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Charge.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,IAAI,MAAM,sCAAsC,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAIjD,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AAIpD,OAAO,KAAK,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAGxC;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAC/D,UAAU,GAAE,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAGpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAseF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,YAAY,GAAG;QAAE,CAAC,GAAG,EAAE,eAAe,MAAM,EAAE,GAAG,MAAM,CAAA;KAAE,CAAA;IAE9D,KAAK,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,CAAA;IAElG,KAAK,cAAc,GAAG,CAAC,UAAU,EAAE,wBAAwB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1F,KAAK,wBAAwB,GAAG;QAC9B,6CAA6C;QAC7C,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;QACrB,8DAA8D;QAC9D,cAAc,EAAE,KAAK,MAAM,EAAE,CAAA;QAC7B,sEAAsE;QACtE,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAA;KACjE,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,6EAA6E;QAC7E,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACxC;;;;;;;WAOG;QACH,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;QAC3C;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAA;QACpC,oBAAoB;QACpB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B;;;;;;;;;;;;;WAaG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAA;QACrC;;;;WAIG;QACH,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;QAC3C;;;;WAIG;QACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACnC;;;;;;;;;;WAUG;QACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC1C,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,GAC/B,OAAO,CAAC,OAAO,CAAC,UAAU,GAC1B,QAAQ,CAAA;IAEV,KAAK,cAAc,CAAC,UAAU,SAAS,UAAU,IAAI,KAAK,CAAC,cAAc,CACvE,UAAU,EACV,QAAQ,EACR;QACE,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;KACjB,CACF,CAAA;IAED,KAAK,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;CAC/C"}
1
+ {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Charge.ts"],"names":[],"mappings":"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"}