mppx 0.8.15 → 0.8.18

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 (966) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/README.md +15 -0
  3. package/dist/Challenge.js +61 -39
  4. package/dist/Constants.d.ts +17 -17
  5. package/dist/Errors.d.ts +3 -3
  6. package/dist/Method.d.ts +35 -5
  7. package/dist/Method.js +7 -22
  8. package/dist/Store.d.ts +19 -0
  9. package/dist/Store.js +43 -0
  10. package/dist/attestation/Client.d.ts +17 -0
  11. package/dist/attestation/Client.js +28 -0
  12. package/dist/attestation/Constants.d.ts +15 -0
  13. package/dist/attestation/Constants.js +15 -0
  14. package/dist/attestation/Server.d.ts +4 -0
  15. package/dist/attestation/Server.js +8 -0
  16. package/dist/attestation/Types.d.ts +76 -0
  17. package/dist/attestation/Types.js +2 -0
  18. package/dist/attestation/index.d.ts +6 -0
  19. package/dist/attestation/index.js +6 -0
  20. package/dist/attestation/internal/HttpMessageSignature.d.ts +73 -0
  21. package/dist/attestation/internal/HttpMessageSignature.js +320 -0
  22. package/dist/attestation/internal/SigningContext.d.ts +4 -0
  23. package/dist/attestation/internal/SigningContext.js +11 -0
  24. package/dist/bin.js +3 -3
  25. package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
  26. package/dist/cli/account.d.ts +14 -14
  27. package/dist/cli/cli.d.ts +6 -6
  28. package/dist/cli/cli.js +253 -1504
  29. package/dist/cli/plugins/index.js +19 -5
  30. package/dist/cli/plugins/tempo.js +7 -3
  31. package/dist/cli/sessions/Manager.js +7 -4
  32. package/dist/cli/sessions/commands.d.ts +4 -4
  33. package/dist/cli/sessions/request.d.ts +2 -0
  34. package/dist/cli/sessions/request.js +18 -0
  35. package/dist/cli/sessions/store.js +28 -14
  36. package/dist/cli/utils.d.ts +1 -1
  37. package/dist/cli/validate/index.d.ts +3 -3
  38. package/dist/client/Mppx.d.ts +3 -0
  39. package/dist/client/Mppx.js +13 -5
  40. package/dist/client/Transport.d.ts +3 -5
  41. package/dist/client/Transport.js +1 -17
  42. package/dist/client/internal/Fetch.js +2 -6
  43. package/dist/discovery/Discovery.js +2 -1
  44. package/dist/discovery/OpenApi.d.ts +3 -5
  45. package/dist/discovery/OpenApi.js +13 -34
  46. package/dist/discovery/internal/Metadata.d.ts +20 -0
  47. package/dist/discovery/internal/Metadata.js +36 -0
  48. package/dist/evm/Methods.d.ts +11 -11
  49. package/dist/evm/Types.d.ts +17 -17
  50. package/dist/evm/client/Charge.d.ts +11 -11
  51. package/dist/evm/client/Charge.js +8 -0
  52. package/dist/evm/client/Methods.d.ts +11 -11
  53. package/dist/evm/server/Charge.d.ts +1 -1
  54. package/dist/evm/server/Charge.js +2 -0
  55. package/dist/evm/server/Methods.d.ts +11 -11
  56. package/dist/internal/HeaderCodec.d.ts +2 -2
  57. package/dist/internal/types.d.ts +6 -0
  58. package/dist/proxy/Proxy.d.ts +2 -0
  59. package/dist/proxy/Proxy.js +117 -9
  60. package/dist/proxy/Service.d.ts +36 -1
  61. package/dist/proxy/Service.js +9 -8
  62. package/dist/proxy/services/anthropic.js +1 -0
  63. package/dist/proxy/services/openai.js +1 -0
  64. package/dist/proxy/services/stripe.js +1 -0
  65. package/dist/server/Mppx.d.ts +75 -13
  66. package/dist/server/Mppx.js +201 -23
  67. package/dist/server/core.d.ts +9 -0
  68. package/dist/server/core.js +9 -0
  69. package/dist/server/internal/html/config.d.ts +9 -9
  70. package/dist/server/internal/html/constants.d.ts +17 -17
  71. package/dist/stripe/Methods.d.ts +10 -10
  72. package/dist/stripe/client/Charge.d.ts +10 -10
  73. package/dist/stripe/client/Methods.d.ts +10 -10
  74. package/dist/stripe/internal/constants.d.ts +1 -1
  75. package/dist/stripe/internal/constants.js +1 -1
  76. package/dist/stripe/internal/types.d.ts +1 -0
  77. package/dist/stripe/server/Charge.d.ts +11 -11
  78. package/dist/stripe/server/Charge.js +51 -5
  79. package/dist/stripe/server/Methods.d.ts +137 -48
  80. package/dist/stripe/server/Methods.js +265 -4
  81. package/dist/stripe/server/internal/deposit-address.d.ts +13 -0
  82. package/dist/stripe/server/internal/deposit-address.js +28 -0
  83. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  84. package/dist/stripe/server/internal/html.gen.js +1 -1
  85. package/dist/stripe/server/internal/record-payment.d.ts +15 -0
  86. package/dist/stripe/server/internal/record-payment.js +42 -0
  87. package/dist/stripe/server/internal/request.d.ts +25 -0
  88. package/dist/stripe/server/internal/request.js +29 -0
  89. package/dist/stripe/server/spt.d.ts +8 -0
  90. package/dist/stripe/server/spt.js +8 -0
  91. package/dist/tap/Constants.d.ts +28 -0
  92. package/dist/tap/Constants.js +32 -0
  93. package/dist/tap/Types.d.ts +11 -0
  94. package/dist/tap/Types.js +2 -0
  95. package/dist/tap/client/index.d.ts +26 -0
  96. package/dist/tap/client/index.js +33 -0
  97. package/dist/tap/index.d.ts +5 -0
  98. package/dist/tap/index.js +5 -0
  99. package/dist/tap/server/index.d.ts +20 -0
  100. package/dist/tap/server/index.js +36 -0
  101. package/dist/tempo/Attribution.d.ts +1 -1
  102. package/dist/tempo/Methods.d.ts +73 -60
  103. package/dist/tempo/Methods.js +14 -3
  104. package/dist/tempo/Proof.d.ts +16 -16
  105. package/dist/tempo/client/Charge.d.ts +22 -19
  106. package/dist/tempo/client/Charge.js +32 -16
  107. package/dist/tempo/client/Methods.d.ts +51 -38
  108. package/dist/tempo/client/Subscription.d.ts +23 -23
  109. package/dist/tempo/internal/address.d.ts +2 -1
  110. package/dist/tempo/internal/address.js +3 -1
  111. package/dist/tempo/internal/auto-swap.js +4 -19
  112. package/dist/tempo/internal/defaults.d.ts +17 -6
  113. package/dist/tempo/internal/defaults.js +11 -0
  114. package/dist/tempo/internal/fee-payer.d.ts +12 -12
  115. package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
  116. package/dist/tempo/internal/machine-token-charge.js +113 -0
  117. package/dist/tempo/internal/machine-token-session.d.ts +88 -0
  118. package/dist/tempo/internal/machine-token-session.js +173 -0
  119. package/dist/tempo/internal/proof.d.ts +17 -17
  120. package/dist/tempo/internal/signature-envelope.d.ts +14 -0
  121. package/dist/tempo/internal/signature-envelope.js +28 -0
  122. package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
  123. package/dist/tempo/legacy/client/ChannelOps.js +11 -5
  124. package/dist/tempo/legacy/client/Session.d.ts +33 -21
  125. package/dist/tempo/legacy/client/Session.js +3 -3
  126. package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
  127. package/dist/tempo/legacy/client/SessionManager.js +2 -0
  128. package/dist/tempo/legacy/index.d.ts +1 -3
  129. package/dist/tempo/legacy/index.js +1 -3
  130. package/dist/tempo/legacy/session/escrow.abi.d.ts +374 -374
  131. package/dist/tempo/server/Charge.d.ts +28 -11
  132. package/dist/tempo/server/Charge.js +101 -55
  133. package/dist/tempo/server/Methods.d.ts +58 -56
  134. package/dist/tempo/server/Methods.js +8 -18
  135. package/dist/tempo/server/Relay.d.ts +1 -1
  136. package/dist/tempo/server/Relay.js +2 -2
  137. package/dist/tempo/server/Subscription.d.ts +25 -25
  138. package/dist/tempo/server/Subscription.js +2 -0
  139. package/dist/tempo/server/index.d.ts +1 -1
  140. package/dist/tempo/server/index.js +1 -1
  141. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  142. package/dist/tempo/server/internal/html.gen.js +1 -1
  143. package/dist/tempo/server/internal/transport.d.ts +2 -0
  144. package/dist/tempo/server/internal/transport.js +9 -2
  145. package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
  146. package/dist/tempo/session/client/ChannelOps.js +35 -6
  147. package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
  148. package/dist/tempo/session/client/ChannelStore.js +2 -2
  149. package/dist/tempo/session/client/CredentialState.d.ts +18 -3
  150. package/dist/tempo/session/client/CredentialState.js +77 -76
  151. package/dist/tempo/session/client/Runtime.d.ts +4 -2
  152. package/dist/tempo/session/client/Runtime.js +21 -5
  153. package/dist/tempo/session/client/Session.d.ts +34 -22
  154. package/dist/tempo/session/client/Session.js +186 -63
  155. package/dist/tempo/session/client/SessionManager.d.ts +3 -1
  156. package/dist/tempo/session/client/SessionManager.js +35 -11
  157. package/dist/tempo/session/client/Transports.d.ts +2 -0
  158. package/dist/tempo/session/client/Transports.js +12 -2
  159. package/dist/tempo/session/precompile/Chain.d.ts +37 -2
  160. package/dist/tempo/session/precompile/Chain.js +116 -15
  161. package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
  162. package/dist/tempo/session/precompile/Protocol.js +7 -0
  163. package/dist/tempo/session/precompile/Voucher.d.ts +7 -5
  164. package/dist/tempo/session/precompile/Voucher.js +6 -12
  165. package/dist/tempo/session/precompile/escrow.abi.d.ts +306 -306
  166. package/dist/tempo/session/server/ChannelStore.d.ts +15 -0
  167. package/dist/tempo/session/server/ChannelStore.js +27 -12
  168. package/dist/tempo/session/server/CredentialVerification.d.ts +39 -20
  169. package/dist/tempo/session/server/CredentialVerification.js +359 -89
  170. package/dist/tempo/session/server/MeteredStream.d.ts +4 -1
  171. package/dist/tempo/session/server/MeteredStream.js +8 -5
  172. package/dist/tempo/session/server/RequestState.d.ts +19 -0
  173. package/dist/tempo/session/server/RequestState.js +61 -15
  174. package/dist/tempo/session/server/Session.d.ts +46 -23
  175. package/dist/tempo/session/server/Session.js +150 -56
  176. package/dist/tempo/session/server/Settlement.d.ts +11 -4
  177. package/dist/tempo/session/server/Settlement.js +53 -21
  178. package/dist/tempo/session/server/Sse.d.ts +3 -1
  179. package/dist/tempo/session/server/Sse.js +2 -1
  180. package/dist/tempo/session/server/Transports.d.ts +1 -1
  181. package/dist/tempo/session/server/Transports.js +1 -0
  182. package/dist/tempo/session/server/Ws.d.ts +6 -1
  183. package/dist/tempo/session/server/Ws.js +1 -0
  184. package/dist/tempo/subscription/KeyAuthorization.d.ts +39 -39
  185. package/dist/web-bot-auth/Constants.d.ts +20 -0
  186. package/dist/web-bot-auth/Constants.js +24 -0
  187. package/dist/web-bot-auth/Types.d.ts +10 -0
  188. package/dist/web-bot-auth/Types.js +2 -0
  189. package/dist/web-bot-auth/client/index.d.ts +29 -0
  190. package/dist/web-bot-auth/client/index.js +64 -0
  191. package/dist/web-bot-auth/index.d.ts +7 -0
  192. package/dist/web-bot-auth/index.js +7 -0
  193. package/dist/web-bot-auth/internal/JwkThumbprint.d.ts +5 -0
  194. package/dist/web-bot-auth/internal/JwkThumbprint.js +20 -0
  195. package/dist/web-bot-auth/internal/SignatureAgent.d.ts +3 -0
  196. package/dist/web-bot-auth/internal/SignatureAgent.js +18 -0
  197. package/dist/web-bot-auth/server/index.d.ts +35 -0
  198. package/dist/web-bot-auth/server/index.js +88 -0
  199. package/dist/x402/Types.d.ts +6 -6
  200. package/dist/x402/client/Exact.d.ts +8 -0
  201. package/dist/x402/client/Exact.js +40 -10
  202. package/dist/x402/server/EvmCharge.d.ts +22 -0
  203. package/dist/x402/server/EvmCharge.js +54 -20
  204. package/package.json +28 -34
  205. package/dist/BodyDigest.d.ts.map +0 -1
  206. package/dist/BodyDigest.js.map +0 -1
  207. package/dist/Challenge.d.ts.map +0 -1
  208. package/dist/Challenge.js.map +0 -1
  209. package/dist/Constants.d.ts.map +0 -1
  210. package/dist/Constants.js.map +0 -1
  211. package/dist/Credential.d.ts.map +0 -1
  212. package/dist/Credential.js.map +0 -1
  213. package/dist/Errors.d.ts.map +0 -1
  214. package/dist/Errors.js.map +0 -1
  215. package/dist/Expires.d.ts.map +0 -1
  216. package/dist/Expires.js.map +0 -1
  217. package/dist/Html.d.ts.map +0 -1
  218. package/dist/Html.js.map +0 -1
  219. package/dist/Mcp.d.ts.map +0 -1
  220. package/dist/Mcp.js.map +0 -1
  221. package/dist/Method.d.ts.map +0 -1
  222. package/dist/Method.js.map +0 -1
  223. package/dist/PaymentRequest.d.ts.map +0 -1
  224. package/dist/PaymentRequest.js.map +0 -1
  225. package/dist/Receipt.d.ts.map +0 -1
  226. package/dist/Receipt.js.map +0 -1
  227. package/dist/Store.d.ts.map +0 -1
  228. package/dist/Store.js.map +0 -1
  229. package/dist/bin.d.ts.map +0 -1
  230. package/dist/bin.js.map +0 -1
  231. package/dist/cli/account.d.ts.map +0 -1
  232. package/dist/cli/account.js.map +0 -1
  233. package/dist/cli/cli.d.ts.map +0 -1
  234. package/dist/cli/cli.js.map +0 -1
  235. package/dist/cli/config.d.ts.map +0 -1
  236. package/dist/cli/config.js.map +0 -1
  237. package/dist/cli/internal.d.ts.map +0 -1
  238. package/dist/cli/internal.js.map +0 -1
  239. package/dist/cli/plugins/evm.d.ts.map +0 -1
  240. package/dist/cli/plugins/evm.js.map +0 -1
  241. package/dist/cli/plugins/index.d.ts.map +0 -1
  242. package/dist/cli/plugins/index.js.map +0 -1
  243. package/dist/cli/plugins/plugin.d.ts.map +0 -1
  244. package/dist/cli/plugins/plugin.js.map +0 -1
  245. package/dist/cli/plugins/stripe.d.ts.map +0 -1
  246. package/dist/cli/plugins/stripe.js.map +0 -1
  247. package/dist/cli/plugins/tempo.d.ts.map +0 -1
  248. package/dist/cli/plugins/tempo.js.map +0 -1
  249. package/dist/cli/sessions/Manager.d.ts.map +0 -1
  250. package/dist/cli/sessions/Manager.js.map +0 -1
  251. package/dist/cli/sessions/commands.d.ts.map +0 -1
  252. package/dist/cli/sessions/commands.js.map +0 -1
  253. package/dist/cli/sessions/request.d.ts.map +0 -1
  254. package/dist/cli/sessions/request.js.map +0 -1
  255. package/dist/cli/sessions/store.d.ts.map +0 -1
  256. package/dist/cli/sessions/store.js.map +0 -1
  257. package/dist/cli/utils.d.ts.map +0 -1
  258. package/dist/cli/utils.js.map +0 -1
  259. package/dist/cli/validate/challenge.d.ts.map +0 -1
  260. package/dist/cli/validate/challenge.js.map +0 -1
  261. package/dist/cli/validate/discovery.d.ts.map +0 -1
  262. package/dist/cli/validate/discovery.js.map +0 -1
  263. package/dist/cli/validate/helpers.d.ts.map +0 -1
  264. package/dist/cli/validate/helpers.js.map +0 -1
  265. package/dist/cli/validate/index.d.ts.map +0 -1
  266. package/dist/cli/validate/index.js.map +0 -1
  267. package/dist/cli/validate/messages.d.ts.map +0 -1
  268. package/dist/cli/validate/messages.js.map +0 -1
  269. package/dist/cli/validate/payment.d.ts.map +0 -1
  270. package/dist/cli/validate/payment.js.map +0 -1
  271. package/dist/client/Methods.d.ts.map +0 -1
  272. package/dist/client/Methods.js.map +0 -1
  273. package/dist/client/Mppx.d.ts.map +0 -1
  274. package/dist/client/Mppx.js.map +0 -1
  275. package/dist/client/Transport.d.ts.map +0 -1
  276. package/dist/client/Transport.js.map +0 -1
  277. package/dist/client/index.d.ts.map +0 -1
  278. package/dist/client/index.js.map +0 -1
  279. package/dist/client/internal/Fetch.d.ts.map +0 -1
  280. package/dist/client/internal/Fetch.js.map +0 -1
  281. package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
  282. package/dist/client/internal/MethodChallenge.js.map +0 -1
  283. package/dist/client/internal/MethodResponse.d.ts.map +0 -1
  284. package/dist/client/internal/MethodResponse.js.map +0 -1
  285. package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
  286. package/dist/client/internal/protocols/Mcp.js.map +0 -1
  287. package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
  288. package/dist/client/internal/protocols/Mpp.js.map +0 -1
  289. package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
  290. package/dist/client/internal/protocols/Protocol.js.map +0 -1
  291. package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
  292. package/dist/client/internal/protocols/Shared.js.map +0 -1
  293. package/dist/client/internal/protocols/X402.d.ts.map +0 -1
  294. package/dist/client/internal/protocols/X402.js.map +0 -1
  295. package/dist/client/node.d.ts.map +0 -1
  296. package/dist/client/node.js.map +0 -1
  297. package/dist/discovery/Discovery.d.ts.map +0 -1
  298. package/dist/discovery/Discovery.js.map +0 -1
  299. package/dist/discovery/OpenApi.d.ts.map +0 -1
  300. package/dist/discovery/OpenApi.js.map +0 -1
  301. package/dist/discovery/Validate.d.ts.map +0 -1
  302. package/dist/discovery/Validate.js.map +0 -1
  303. package/dist/discovery/index.d.ts.map +0 -1
  304. package/dist/discovery/index.js.map +0 -1
  305. package/dist/evm/Assets.d.ts.map +0 -1
  306. package/dist/evm/Assets.js.map +0 -1
  307. package/dist/evm/Chains.d.ts.map +0 -1
  308. package/dist/evm/Chains.js.map +0 -1
  309. package/dist/evm/Methods.d.ts.map +0 -1
  310. package/dist/evm/Methods.js.map +0 -1
  311. package/dist/evm/Types.d.ts.map +0 -1
  312. package/dist/evm/Types.js.map +0 -1
  313. package/dist/evm/client/Charge.d.ts.map +0 -1
  314. package/dist/evm/client/Charge.js.map +0 -1
  315. package/dist/evm/client/Methods.d.ts.map +0 -1
  316. package/dist/evm/client/Methods.js.map +0 -1
  317. package/dist/evm/client/index.d.ts.map +0 -1
  318. package/dist/evm/client/index.js.map +0 -1
  319. package/dist/evm/index.d.ts.map +0 -1
  320. package/dist/evm/index.js.map +0 -1
  321. package/dist/evm/server/Charge.d.ts.map +0 -1
  322. package/dist/evm/server/Charge.js.map +0 -1
  323. package/dist/evm/server/Methods.d.ts.map +0 -1
  324. package/dist/evm/server/Methods.js.map +0 -1
  325. package/dist/evm/server/index.d.ts.map +0 -1
  326. package/dist/evm/server/index.js.map +0 -1
  327. package/dist/index.d.ts.map +0 -1
  328. package/dist/index.js.map +0 -1
  329. package/dist/internal/AcceptPayment.d.ts.map +0 -1
  330. package/dist/internal/AcceptPayment.js.map +0 -1
  331. package/dist/internal/HeaderCodec.d.ts.map +0 -1
  332. package/dist/internal/HeaderCodec.js.map +0 -1
  333. package/dist/internal/constantTimeEqual.d.ts.map +0 -1
  334. package/dist/internal/constantTimeEqual.js.map +0 -1
  335. package/dist/internal/env.d.ts.map +0 -1
  336. package/dist/internal/env.js.map +0 -1
  337. package/dist/internal/types.d.ts.map +0 -1
  338. package/dist/internal/types.js.map +0 -1
  339. package/dist/mcp/client/McpClient.d.ts.map +0 -1
  340. package/dist/mcp/client/McpClient.js.map +0 -1
  341. package/dist/mcp/client/index.d.ts.map +0 -1
  342. package/dist/mcp/client/index.js.map +0 -1
  343. package/dist/mcp/server/Transport.d.ts.map +0 -1
  344. package/dist/mcp/server/Transport.js.map +0 -1
  345. package/dist/mcp/server/index.d.ts.map +0 -1
  346. package/dist/mcp/server/index.js.map +0 -1
  347. package/dist/middlewares/elysia.d.ts.map +0 -1
  348. package/dist/middlewares/elysia.js.map +0 -1
  349. package/dist/middlewares/express.d.ts.map +0 -1
  350. package/dist/middlewares/express.js.map +0 -1
  351. package/dist/middlewares/hono.d.ts.map +0 -1
  352. package/dist/middlewares/hono.js.map +0 -1
  353. package/dist/middlewares/internal/mppx.d.ts.map +0 -1
  354. package/dist/middlewares/internal/mppx.js.map +0 -1
  355. package/dist/middlewares/nextjs.d.ts.map +0 -1
  356. package/dist/middlewares/nextjs.js.map +0 -1
  357. package/dist/proxy/Proxy.d.ts.map +0 -1
  358. package/dist/proxy/Proxy.js.map +0 -1
  359. package/dist/proxy/Service.d.ts.map +0 -1
  360. package/dist/proxy/Service.js.map +0 -1
  361. package/dist/proxy/index.d.ts.map +0 -1
  362. package/dist/proxy/index.js.map +0 -1
  363. package/dist/proxy/internal/Headers.d.ts.map +0 -1
  364. package/dist/proxy/internal/Headers.js.map +0 -1
  365. package/dist/proxy/internal/Route.d.ts.map +0 -1
  366. package/dist/proxy/internal/Route.js.map +0 -1
  367. package/dist/proxy/services/anthropic.d.ts.map +0 -1
  368. package/dist/proxy/services/anthropic.js.map +0 -1
  369. package/dist/proxy/services/openai.d.ts.map +0 -1
  370. package/dist/proxy/services/openai.js.map +0 -1
  371. package/dist/proxy/services/stripe.d.ts.map +0 -1
  372. package/dist/proxy/services/stripe.js.map +0 -1
  373. package/dist/server/Methods.d.ts.map +0 -1
  374. package/dist/server/Methods.js.map +0 -1
  375. package/dist/server/Mppx.d.ts.map +0 -1
  376. package/dist/server/Mppx.js.map +0 -1
  377. package/dist/server/NodeListener.d.ts.map +0 -1
  378. package/dist/server/NodeListener.js.map +0 -1
  379. package/dist/server/Request.d.ts.map +0 -1
  380. package/dist/server/Request.js.map +0 -1
  381. package/dist/server/Response.d.ts.map +0 -1
  382. package/dist/server/Response.js.map +0 -1
  383. package/dist/server/Transport.d.ts.map +0 -1
  384. package/dist/server/Transport.js.map +0 -1
  385. package/dist/server/index.d.ts.map +0 -1
  386. package/dist/server/index.js.map +0 -1
  387. package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
  388. package/dist/server/internal/html/compose.main.gen.js.map +0 -1
  389. package/dist/server/internal/html/config.d.ts.map +0 -1
  390. package/dist/server/internal/html/config.js.map +0 -1
  391. package/dist/server/internal/html/constants.d.ts.map +0 -1
  392. package/dist/server/internal/html/constants.js.map +0 -1
  393. package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
  394. package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
  395. package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
  396. package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
  397. package/dist/server/internal/scope.d.ts.map +0 -1
  398. package/dist/server/internal/scope.js.map +0 -1
  399. package/dist/stripe/Methods.d.ts.map +0 -1
  400. package/dist/stripe/Methods.js.map +0 -1
  401. package/dist/stripe/client/Charge.d.ts.map +0 -1
  402. package/dist/stripe/client/Charge.js.map +0 -1
  403. package/dist/stripe/client/Methods.d.ts.map +0 -1
  404. package/dist/stripe/client/Methods.js.map +0 -1
  405. package/dist/stripe/client/index.d.ts.map +0 -1
  406. package/dist/stripe/client/index.js.map +0 -1
  407. package/dist/stripe/index.d.ts.map +0 -1
  408. package/dist/stripe/index.js.map +0 -1
  409. package/dist/stripe/internal/constants.d.ts.map +0 -1
  410. package/dist/stripe/internal/constants.js.map +0 -1
  411. package/dist/stripe/internal/types.d.ts.map +0 -1
  412. package/dist/stripe/internal/types.js.map +0 -1
  413. package/dist/stripe/server/Charge.d.ts.map +0 -1
  414. package/dist/stripe/server/Charge.js.map +0 -1
  415. package/dist/stripe/server/Methods.d.ts.map +0 -1
  416. package/dist/stripe/server/Methods.js.map +0 -1
  417. package/dist/stripe/server/index.d.ts.map +0 -1
  418. package/dist/stripe/server/index.js.map +0 -1
  419. package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
  420. package/dist/stripe/server/internal/html/types.js.map +0 -1
  421. package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
  422. package/dist/stripe/server/internal/html.gen.js.map +0 -1
  423. package/dist/tempo/Attribution.d.ts.map +0 -1
  424. package/dist/tempo/Attribution.js.map +0 -1
  425. package/dist/tempo/Methods.d.ts.map +0 -1
  426. package/dist/tempo/Methods.js.map +0 -1
  427. package/dist/tempo/Proof.d.ts.map +0 -1
  428. package/dist/tempo/Proof.js.map +0 -1
  429. package/dist/tempo/client/Charge.d.ts.map +0 -1
  430. package/dist/tempo/client/Charge.js.map +0 -1
  431. package/dist/tempo/client/Methods.d.ts.map +0 -1
  432. package/dist/tempo/client/Methods.js.map +0 -1
  433. package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
  434. package/dist/tempo/client/ResolveAccount.js.map +0 -1
  435. package/dist/tempo/client/Subscription.d.ts.map +0 -1
  436. package/dist/tempo/client/Subscription.js.map +0 -1
  437. package/dist/tempo/client/index.d.ts.map +0 -1
  438. package/dist/tempo/client/index.js.map +0 -1
  439. package/dist/tempo/index.d.ts.map +0 -1
  440. package/dist/tempo/index.js.map +0 -1
  441. package/dist/tempo/internal/account.d.ts.map +0 -1
  442. package/dist/tempo/internal/account.js.map +0 -1
  443. package/dist/tempo/internal/address.d.ts.map +0 -1
  444. package/dist/tempo/internal/address.js.map +0 -1
  445. package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
  446. package/dist/tempo/internal/auto-swap.js.map +0 -1
  447. package/dist/tempo/internal/charge.d.ts.map +0 -1
  448. package/dist/tempo/internal/charge.js.map +0 -1
  449. package/dist/tempo/internal/defaults.d.ts.map +0 -1
  450. package/dist/tempo/internal/defaults.js.map +0 -1
  451. package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
  452. package/dist/tempo/internal/fee-payer.js.map +0 -1
  453. package/dist/tempo/internal/fee-token.d.ts.map +0 -1
  454. package/dist/tempo/internal/fee-token.js.map +0 -1
  455. package/dist/tempo/internal/proof.d.ts.map +0 -1
  456. package/dist/tempo/internal/proof.js.map +0 -1
  457. package/dist/tempo/internal/selectors.d.ts.map +0 -1
  458. package/dist/tempo/internal/selectors.js.map +0 -1
  459. package/dist/tempo/internal/types.d.ts.map +0 -1
  460. package/dist/tempo/internal/types.js.map +0 -1
  461. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
  462. package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
  463. package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
  464. package/dist/tempo/legacy/client/Session.js.map +0 -1
  465. package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
  466. package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
  467. package/dist/tempo/legacy/client/index.d.ts.map +0 -1
  468. package/dist/tempo/legacy/client/index.js.map +0 -1
  469. package/dist/tempo/legacy/index.d.ts.map +0 -1
  470. package/dist/tempo/legacy/index.js.map +0 -1
  471. package/dist/tempo/legacy/server/Session.d.ts +0 -208
  472. package/dist/tempo/legacy/server/Session.d.ts.map +0 -1
  473. package/dist/tempo/legacy/server/Session.js +0 -698
  474. package/dist/tempo/legacy/server/Session.js.map +0 -1
  475. package/dist/tempo/legacy/server/index.d.ts +0 -5
  476. package/dist/tempo/legacy/server/index.d.ts.map +0 -1
  477. package/dist/tempo/legacy/server/index.js +0 -5
  478. package/dist/tempo/legacy/server/index.js.map +0 -1
  479. package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
  480. package/dist/tempo/legacy/session/Chain.js.map +0 -1
  481. package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
  482. package/dist/tempo/legacy/session/Channel.js.map +0 -1
  483. package/dist/tempo/legacy/session/ChannelStore.d.ts +0 -22
  484. package/dist/tempo/legacy/session/ChannelStore.d.ts.map +0 -1
  485. package/dist/tempo/legacy/session/ChannelStore.js +0 -6
  486. package/dist/tempo/legacy/session/ChannelStore.js.map +0 -1
  487. package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
  488. package/dist/tempo/legacy/session/Types.js.map +0 -1
  489. package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
  490. package/dist/tempo/legacy/session/Voucher.js.map +0 -1
  491. package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
  492. package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
  493. package/dist/tempo/legacy/session/index.d.ts.map +0 -1
  494. package/dist/tempo/legacy/session/index.js.map +0 -1
  495. package/dist/tempo/server/Charge.d.ts.map +0 -1
  496. package/dist/tempo/server/Charge.js.map +0 -1
  497. package/dist/tempo/server/Methods.d.ts.map +0 -1
  498. package/dist/tempo/server/Methods.js.map +0 -1
  499. package/dist/tempo/server/Relay.d.ts.map +0 -1
  500. package/dist/tempo/server/Relay.js.map +0 -1
  501. package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
  502. package/dist/tempo/server/SponsorBudget.js.map +0 -1
  503. package/dist/tempo/server/Subscription.d.ts.map +0 -1
  504. package/dist/tempo/server/Subscription.js.map +0 -1
  505. package/dist/tempo/server/index.d.ts.map +0 -1
  506. package/dist/tempo/server/index.js.map +0 -1
  507. package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
  508. package/dist/tempo/server/internal/html.gen.js.map +0 -1
  509. package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
  510. package/dist/tempo/server/internal/request-body.js.map +0 -1
  511. package/dist/tempo/server/internal/transport.d.ts.map +0 -1
  512. package/dist/tempo/server/internal/transport.js.map +0 -1
  513. package/dist/tempo/session/Snapshot.d.ts.map +0 -1
  514. package/dist/tempo/session/Snapshot.js.map +0 -1
  515. package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
  516. package/dist/tempo/session/client/ChannelOps.js.map +0 -1
  517. package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
  518. package/dist/tempo/session/client/ChannelStore.js.map +0 -1
  519. package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
  520. package/dist/tempo/session/client/CredentialState.js.map +0 -1
  521. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
  522. package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
  523. package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
  524. package/dist/tempo/session/client/Runtime.js.map +0 -1
  525. package/dist/tempo/session/client/Session.d.ts.map +0 -1
  526. package/dist/tempo/session/client/Session.js.map +0 -1
  527. package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
  528. package/dist/tempo/session/client/SessionManager.js.map +0 -1
  529. package/dist/tempo/session/client/Transports.d.ts.map +0 -1
  530. package/dist/tempo/session/client/Transports.js.map +0 -1
  531. package/dist/tempo/session/client/index.d.ts.map +0 -1
  532. package/dist/tempo/session/client/index.js.map +0 -1
  533. package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
  534. package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
  535. package/dist/tempo/session/index.d.ts.map +0 -1
  536. package/dist/tempo/session/index.js.map +0 -1
  537. package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
  538. package/dist/tempo/session/precompile/Chain.js.map +0 -1
  539. package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
  540. package/dist/tempo/session/precompile/Channel.js.map +0 -1
  541. package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
  542. package/dist/tempo/session/precompile/Protocol.js.map +0 -1
  543. package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
  544. package/dist/tempo/session/precompile/Voucher.js.map +0 -1
  545. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
  546. package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
  547. package/dist/tempo/session/precompile/index.d.ts.map +0 -1
  548. package/dist/tempo/session/precompile/index.js.map +0 -1
  549. package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
  550. package/dist/tempo/session/server/ChannelOps.js.map +0 -1
  551. package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
  552. package/dist/tempo/session/server/ChannelStore.js.map +0 -1
  553. package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
  554. package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
  555. package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
  556. package/dist/tempo/session/server/MeteredStream.js.map +0 -1
  557. package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
  558. package/dist/tempo/session/server/RequestState.js.map +0 -1
  559. package/dist/tempo/session/server/Session.d.ts.map +0 -1
  560. package/dist/tempo/session/server/Session.js.map +0 -1
  561. package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
  562. package/dist/tempo/session/server/Settlement.js.map +0 -1
  563. package/dist/tempo/session/server/Sse.d.ts.map +0 -1
  564. package/dist/tempo/session/server/Sse.js.map +0 -1
  565. package/dist/tempo/session/server/Transports.d.ts.map +0 -1
  566. package/dist/tempo/session/server/Transports.js.map +0 -1
  567. package/dist/tempo/session/server/Ws.d.ts.map +0 -1
  568. package/dist/tempo/session/server/Ws.js.map +0 -1
  569. package/dist/tempo/session/server/index.d.ts.map +0 -1
  570. package/dist/tempo/session/server/index.js.map +0 -1
  571. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
  572. package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
  573. package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
  574. package/dist/tempo/subscription/Receipt.js.map +0 -1
  575. package/dist/tempo/subscription/Store.d.ts.map +0 -1
  576. package/dist/tempo/subscription/Store.js.map +0 -1
  577. package/dist/tempo/subscription/Types.d.ts.map +0 -1
  578. package/dist/tempo/subscription/Types.js.map +0 -1
  579. package/dist/tempo/subscription/index.d.ts.map +0 -1
  580. package/dist/tempo/subscription/index.js.map +0 -1
  581. package/dist/validation/core.d.ts.map +0 -1
  582. package/dist/validation/core.js.map +0 -1
  583. package/dist/validation/index.d.ts.map +0 -1
  584. package/dist/validation/index.js.map +0 -1
  585. package/dist/viem/Account.d.ts.map +0 -1
  586. package/dist/viem/Account.js.map +0 -1
  587. package/dist/viem/Client.d.ts.map +0 -1
  588. package/dist/viem/Client.js.map +0 -1
  589. package/dist/x402/Assets.d.ts.map +0 -1
  590. package/dist/x402/Assets.js.map +0 -1
  591. package/dist/x402/Header.d.ts.map +0 -1
  592. package/dist/x402/Header.js.map +0 -1
  593. package/dist/x402/Types.d.ts.map +0 -1
  594. package/dist/x402/Types.js.map +0 -1
  595. package/dist/x402/client/Exact.d.ts.map +0 -1
  596. package/dist/x402/client/Exact.js.map +0 -1
  597. package/dist/x402/index.d.ts.map +0 -1
  598. package/dist/x402/index.js.map +0 -1
  599. package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
  600. package/dist/x402/internal/ChallengeBrand.js.map +0 -1
  601. package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
  602. package/dist/x402/internal/RouteBinding.js.map +0 -1
  603. package/dist/x402/server/EvmCharge.d.ts.map +0 -1
  604. package/dist/x402/server/EvmCharge.js.map +0 -1
  605. package/dist/x402/server/Facilitator.d.ts.map +0 -1
  606. package/dist/x402/server/Facilitator.js.map +0 -1
  607. package/dist/zod.d.ts.map +0 -1
  608. package/dist/zod.js.map +0 -1
  609. package/src/BodyDigest.test.ts +0 -43
  610. package/src/BodyDigest.ts +0 -55
  611. package/src/Challenge.fuzz.test.ts +0 -121
  612. package/src/Challenge.test-d.ts +0 -82
  613. package/src/Challenge.test.ts +0 -995
  614. package/src/Challenge.ts +0 -683
  615. package/src/Constants.ts +0 -58
  616. package/src/Credential.fuzz.test.ts +0 -62
  617. package/src/Credential.test.ts +0 -378
  618. package/src/Credential.ts +0 -217
  619. package/src/Errors.test.ts +0 -520
  620. package/src/Errors.ts +0 -448
  621. package/src/Expires.test.ts +0 -112
  622. package/src/Expires.ts +0 -59
  623. package/src/Html.ts +0 -67
  624. package/src/Mcp.ts +0 -85
  625. package/src/Method.test.ts +0 -177
  626. package/src/Method.ts +0 -617
  627. package/src/PaymentRequest.test.ts +0 -147
  628. package/src/PaymentRequest.ts +0 -108
  629. package/src/Receipt.test.ts +0 -151
  630. package/src/Receipt.ts +0 -146
  631. package/src/Store.test-d.ts +0 -195
  632. package/src/Store.test.ts +0 -357
  633. package/src/Store.ts +0 -329
  634. package/src/bin.ts +0 -4
  635. package/src/cli/account.ts +0 -269
  636. package/src/cli/cli.test.ts +0 -2221
  637. package/src/cli/cli.ts +0 -1649
  638. package/src/cli/config.test.ts +0 -89
  639. package/src/cli/config.ts +0 -50
  640. package/src/cli/internal.ts +0 -114
  641. package/src/cli/mcp.test.ts +0 -262
  642. package/src/cli/plugins/evm.ts +0 -55
  643. package/src/cli/plugins/index.ts +0 -4
  644. package/src/cli/plugins/plugin.ts +0 -84
  645. package/src/cli/plugins/stripe.ts +0 -174
  646. package/src/cli/plugins/tempo.ts +0 -1102
  647. package/src/cli/sessions/Manager.test.ts +0 -249
  648. package/src/cli/sessions/Manager.ts +0 -93
  649. package/src/cli/sessions/commands.ts +0 -444
  650. package/src/cli/sessions/request.test.ts +0 -51
  651. package/src/cli/sessions/request.ts +0 -353
  652. package/src/cli/sessions/store.test.ts +0 -581
  653. package/src/cli/sessions/store.ts +0 -940
  654. package/src/cli/utils.test.ts +0 -156
  655. package/src/cli/utils.ts +0 -394
  656. package/src/cli/validate/challenge.ts +0 -565
  657. package/src/cli/validate/discovery.test.ts +0 -435
  658. package/src/cli/validate/discovery.ts +0 -221
  659. package/src/cli/validate/helpers.ts +0 -166
  660. package/src/cli/validate/index.ts +0 -229
  661. package/src/cli/validate/messages.ts +0 -7
  662. package/src/cli/validate/payment.ts +0 -774
  663. package/src/cli/validate.test.ts +0 -843
  664. package/src/client/Methods.ts +0 -8
  665. package/src/client/Mppx.test-d.ts +0 -270
  666. package/src/client/Mppx.test.ts +0 -1065
  667. package/src/client/Mppx.ts +0 -466
  668. package/src/client/Transport.test.ts +0 -619
  669. package/src/client/Transport.ts +0 -191
  670. package/src/client/index.ts +0 -29
  671. package/src/client/internal/Fetch.browser.test.ts +0 -197
  672. package/src/client/internal/Fetch.test-d.ts +0 -109
  673. package/src/client/internal/Fetch.test.ts +0 -2336
  674. package/src/client/internal/Fetch.ts +0 -1079
  675. package/src/client/internal/MethodChallenge.ts +0 -35
  676. package/src/client/internal/MethodResponse.ts +0 -67
  677. package/src/client/internal/protocols/Mcp.test.ts +0 -220
  678. package/src/client/internal/protocols/Mcp.ts +0 -186
  679. package/src/client/internal/protocols/Mpp.ts +0 -21
  680. package/src/client/internal/protocols/Protocol.ts +0 -10
  681. package/src/client/internal/protocols/Shared.ts +0 -25
  682. package/src/client/internal/protocols/X402.ts +0 -46
  683. package/src/client/node.test.ts +0 -115
  684. package/src/client/node.ts +0 -247
  685. package/src/discovery/Discovery.test.ts +0 -214
  686. package/src/discovery/Discovery.ts +0 -105
  687. package/src/discovery/OpenApi.test.ts +0 -453
  688. package/src/discovery/OpenApi.ts +0 -224
  689. package/src/discovery/Validate.test.ts +0 -305
  690. package/src/discovery/Validate.ts +0 -77
  691. package/src/discovery/index.ts +0 -3
  692. package/src/env.d.ts +0 -12
  693. package/src/evm/Assets.ts +0 -1
  694. package/src/evm/Chains.ts +0 -11
  695. package/src/evm/Methods.ts +0 -44
  696. package/src/evm/PublicInterface.test-d.ts +0 -134
  697. package/src/evm/Types.ts +0 -140
  698. package/src/evm/client/Charge.test.ts +0 -347
  699. package/src/evm/client/Charge.ts +0 -187
  700. package/src/evm/client/Methods.ts +0 -19
  701. package/src/evm/client/index.ts +0 -6
  702. package/src/evm/index.ts +0 -16
  703. package/src/evm/server/Charge.test.ts +0 -339
  704. package/src/evm/server/Charge.ts +0 -290
  705. package/src/evm/server/Methods.ts +0 -22
  706. package/src/evm/server/index.ts +0 -6
  707. package/src/index.ts +0 -14
  708. package/src/internal/AcceptPayment.test.ts +0 -343
  709. package/src/internal/AcceptPayment.ts +0 -366
  710. package/src/internal/HeaderCodec.ts +0 -36
  711. package/src/internal/changeset.test.ts +0 -106
  712. package/src/internal/constantTimeEqual.test.ts +0 -47
  713. package/src/internal/constantTimeEqual.ts +0 -10
  714. package/src/internal/env.test.ts +0 -42
  715. package/src/internal/env.ts +0 -49
  716. package/src/internal/types.test-d.ts +0 -21
  717. package/src/internal/types.ts +0 -470
  718. package/src/mcp/client/McpClient.integration.test.ts +0 -652
  719. package/src/mcp/client/McpClient.test-d.ts +0 -144
  720. package/src/mcp/client/McpClient.test.ts +0 -463
  721. package/src/mcp/client/McpClient.ts +0 -307
  722. package/src/mcp/client/McpClient.unit.test.ts +0 -135
  723. package/src/mcp/client/index.ts +0 -2
  724. package/src/mcp/server/Transport.test.ts +0 -191
  725. package/src/mcp/server/Transport.ts +0 -111
  726. package/src/mcp/server/index.ts +0 -1
  727. package/src/middlewares/elysia.test.ts +0 -295
  728. package/src/middlewares/elysia.ts +0 -116
  729. package/src/middlewares/express.test.ts +0 -371
  730. package/src/middlewares/express.ts +0 -140
  731. package/src/middlewares/hono.test.ts +0 -476
  732. package/src/middlewares/hono.ts +0 -153
  733. package/src/middlewares/internal/mppx.test.ts +0 -177
  734. package/src/middlewares/internal/mppx.ts +0 -67
  735. package/src/middlewares/nextjs.test.ts +0 -369
  736. package/src/middlewares/nextjs.ts +0 -107
  737. package/src/proxy/Proxy.test.ts +0 -1031
  738. package/src/proxy/Proxy.ts +0 -345
  739. package/src/proxy/Service.test.ts +0 -182
  740. package/src/proxy/Service.ts +0 -253
  741. package/src/proxy/index.ts +0 -6
  742. package/src/proxy/internal/Headers.test.ts +0 -139
  743. package/src/proxy/internal/Headers.ts +0 -66
  744. package/src/proxy/internal/Route.test.ts +0 -217
  745. package/src/proxy/internal/Route.ts +0 -64
  746. package/src/proxy/services/anthropic.test.ts +0 -132
  747. package/src/proxy/services/anthropic.ts +0 -52
  748. package/src/proxy/services/openai.test.ts +0 -157
  749. package/src/proxy/services/openai.ts +0 -59
  750. package/src/proxy/services/stripe.test.ts +0 -175
  751. package/src/proxy/services/stripe.ts +0 -58
  752. package/src/server/Methods.ts +0 -3
  753. package/src/server/Mppx.authorize.test.ts +0 -210
  754. package/src/server/Mppx.test-d.ts +0 -360
  755. package/src/server/Mppx.test.ts +0 -5813
  756. package/src/server/Mppx.ts +0 -2623
  757. package/src/server/NodeListener.test.ts +0 -293
  758. package/src/server/NodeListener.ts +0 -45
  759. package/src/server/Request.test.ts +0 -255
  760. package/src/server/Request.ts +0 -155
  761. package/src/server/Response.test.ts +0 -32
  762. package/src/server/Response.ts +0 -45
  763. package/src/server/Transport.test.ts +0 -598
  764. package/src/server/Transport.ts +0 -320
  765. package/src/server/index.ts +0 -9
  766. package/src/server/internal/html/compose.main.gen.ts +0 -2
  767. package/src/server/internal/html/compose.main.ts +0 -88
  768. package/src/server/internal/html/config.ts +0 -672
  769. package/src/server/internal/html/constants.ts +0 -28
  770. package/src/server/internal/html/serviceWorker.client.ts +0 -28
  771. package/src/server/internal/html/serviceWorker.gen.ts +0 -2
  772. package/src/server/internal/html/serviceWorker.ts +0 -27
  773. package/src/server/internal/html/tsconfig.compose.json +0 -8
  774. package/src/server/internal/html/tsconfig.worker.client.json +0 -8
  775. package/src/server/internal/html/tsconfig.worker.json +0 -8
  776. package/src/server/internal/scope.ts +0 -43
  777. package/src/stripe/Charge.integration.test.ts +0 -329
  778. package/src/stripe/Methods.test.ts +0 -62
  779. package/src/stripe/Methods.ts +0 -44
  780. package/src/stripe/client/Charge.test.ts +0 -205
  781. package/src/stripe/client/Charge.ts +0 -132
  782. package/src/stripe/client/Methods.ts +0 -37
  783. package/src/stripe/client/index.ts +0 -2
  784. package/src/stripe/index.ts +0 -1
  785. package/src/stripe/internal/constants.ts +0 -7
  786. package/src/stripe/internal/types.ts +0 -46
  787. package/src/stripe/server/Charge.test-d.ts +0 -66
  788. package/src/stripe/server/Charge.test.ts +0 -621
  789. package/src/stripe/server/Charge.ts +0 -434
  790. package/src/stripe/server/Methods.ts +0 -24
  791. package/src/stripe/server/index.ts +0 -2
  792. package/src/stripe/server/internal/html/main.ts +0 -165
  793. package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
  794. package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
  795. package/src/stripe/server/internal/html/package.json +0 -9
  796. package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
  797. package/src/stripe/server/internal/html/tsconfig.json +0 -8
  798. package/src/stripe/server/internal/html/types.ts +0 -5
  799. package/src/stripe/server/internal/html.gen.ts +0 -2
  800. package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
  801. package/src/tempo/Attribution.test.ts +0 -294
  802. package/src/tempo/Attribution.ts +0 -185
  803. package/src/tempo/Methods.test.ts +0 -425
  804. package/src/tempo/Methods.ts +0 -367
  805. package/src/tempo/Proof.conformance.test.ts +0 -146
  806. package/src/tempo/Proof.test-d.ts +0 -32
  807. package/src/tempo/Proof.test.ts +0 -40
  808. package/src/tempo/Proof.ts +0 -69
  809. package/src/tempo/PublicExports.test-d.ts +0 -130
  810. package/src/tempo/Subscription.integration.test.ts +0 -591
  811. package/src/tempo/client/Charge.test.ts +0 -501
  812. package/src/tempo/client/Charge.ts +0 -289
  813. package/src/tempo/client/Methods.ts +0 -45
  814. package/src/tempo/client/ResolveAccount.ts +0 -46
  815. package/src/tempo/client/Subscription.test.ts +0 -180
  816. package/src/tempo/client/Subscription.ts +0 -156
  817. package/src/tempo/client/index.ts +0 -17
  818. package/src/tempo/index.ts +0 -5
  819. package/src/tempo/internal/account.ts +0 -56
  820. package/src/tempo/internal/address.ts +0 -6
  821. package/src/tempo/internal/auto-swap.test.ts +0 -198
  822. package/src/tempo/internal/auto-swap.ts +0 -188
  823. package/src/tempo/internal/charge.test.ts +0 -66
  824. package/src/tempo/internal/charge.ts +0 -43
  825. package/src/tempo/internal/defaults.test.ts +0 -95
  826. package/src/tempo/internal/defaults.ts +0 -53
  827. package/src/tempo/internal/fee-payer.test.ts +0 -1177
  828. package/src/tempo/internal/fee-payer.ts +0 -808
  829. package/src/tempo/internal/fee-token.test.ts +0 -165
  830. package/src/tempo/internal/fee-token.ts +0 -72
  831. package/src/tempo/internal/proof.test.ts +0 -97
  832. package/src/tempo/internal/proof.ts +0 -87
  833. package/src/tempo/internal/selectors.ts +0 -10
  834. package/src/tempo/internal/types.ts +0 -19
  835. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
  836. package/src/tempo/legacy/README.md +0 -9
  837. package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
  838. package/src/tempo/legacy/client/ChannelOps.ts +0 -271
  839. package/src/tempo/legacy/client/Session.test.ts +0 -800
  840. package/src/tempo/legacy/client/Session.ts +0 -397
  841. package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
  842. package/src/tempo/legacy/client/SessionManager.ts +0 -909
  843. package/src/tempo/legacy/client/index.ts +0 -6
  844. package/src/tempo/legacy/index.ts +0 -6
  845. package/src/tempo/legacy/server/Defaults.test-d.ts +0 -9
  846. package/src/tempo/legacy/server/Session.test.ts +0 -6370
  847. package/src/tempo/legacy/server/Session.ts +0 -1024
  848. package/src/tempo/legacy/server/index.ts +0 -4
  849. package/src/tempo/legacy/session/Chain.test.ts +0 -1349
  850. package/src/tempo/legacy/session/Chain.ts +0 -830
  851. package/src/tempo/legacy/session/Channel.test.ts +0 -109
  852. package/src/tempo/legacy/session/Channel.ts +0 -51
  853. package/src/tempo/legacy/session/ChannelStore.test.ts +0 -58
  854. package/src/tempo/legacy/session/ChannelStore.ts +0 -39
  855. package/src/tempo/legacy/session/Types.ts +0 -91
  856. package/src/tempo/legacy/session/Voucher.test.ts +0 -410
  857. package/src/tempo/legacy/session/Voucher.ts +0 -183
  858. package/src/tempo/legacy/session/escrow.abi.ts +0 -760
  859. package/src/tempo/legacy/session/index.ts +0 -8
  860. package/src/tempo/server/AtomicStore.test-d.ts +0 -50
  861. package/src/tempo/server/Charge.test.ts +0 -6121
  862. package/src/tempo/server/Charge.ts +0 -1351
  863. package/src/tempo/server/Methods.ts +0 -106
  864. package/src/tempo/server/Relay.test.ts +0 -677
  865. package/src/tempo/server/Relay.ts +0 -297
  866. package/src/tempo/server/SponsorBudget.test.ts +0 -154
  867. package/src/tempo/server/SponsorBudget.ts +0 -219
  868. package/src/tempo/server/Sse.test.ts +0 -321
  869. package/src/tempo/server/Subscription.test.ts +0 -1944
  870. package/src/tempo/server/Subscription.ts +0 -1333
  871. package/src/tempo/server/index.ts +0 -12
  872. package/src/tempo/server/internal/html/main.ts +0 -115
  873. package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
  874. package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
  875. package/src/tempo/server/internal/html/package.json +0 -10
  876. package/src/tempo/server/internal/html/tsconfig.json +0 -8
  877. package/src/tempo/server/internal/html.gen.ts +0 -2
  878. package/src/tempo/server/internal/request-body.test.ts +0 -210
  879. package/src/tempo/server/internal/request-body.ts +0 -61
  880. package/src/tempo/server/internal/transport.test.ts +0 -903
  881. package/src/tempo/server/internal/transport.ts +0 -310
  882. package/src/tempo/session/README.md +0 -208
  883. package/src/tempo/session/Snapshot.test.ts +0 -41
  884. package/src/tempo/session/Snapshot.ts +0 -95
  885. package/src/tempo/session/client/ChannelOps.test.ts +0 -218
  886. package/src/tempo/session/client/ChannelOps.ts +0 -348
  887. package/src/tempo/session/client/ChannelStore.ts +0 -111
  888. package/src/tempo/session/client/CredentialState.test.ts +0 -789
  889. package/src/tempo/session/client/CredentialState.ts +0 -942
  890. package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
  891. package/src/tempo/session/client/Runtime.test.ts +0 -1104
  892. package/src/tempo/session/client/Runtime.ts +0 -1008
  893. package/src/tempo/session/client/Session.test.ts +0 -1355
  894. package/src/tempo/session/client/Session.ts +0 -420
  895. package/src/tempo/session/client/SessionManager.test.ts +0 -1899
  896. package/src/tempo/session/client/SessionManager.ts +0 -996
  897. package/src/tempo/session/client/Transports.test.ts +0 -1141
  898. package/src/tempo/session/client/Transports.ts +0 -1534
  899. package/src/tempo/session/client/index.ts +0 -40
  900. package/src/tempo/session/client/internal/SessionManager.ts +0 -36
  901. package/src/tempo/session/index.ts +0 -7
  902. package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
  903. package/src/tempo/session/precompile/Chain.test.ts +0 -1641
  904. package/src/tempo/session/precompile/Chain.ts +0 -1149
  905. package/src/tempo/session/precompile/Channel.test.ts +0 -147
  906. package/src/tempo/session/precompile/Channel.ts +0 -108
  907. package/src/tempo/session/precompile/Protocol.test.ts +0 -358
  908. package/src/tempo/session/precompile/Protocol.ts +0 -520
  909. package/src/tempo/session/precompile/Voucher.test.ts +0 -354
  910. package/src/tempo/session/precompile/Voucher.ts +0 -162
  911. package/src/tempo/session/precompile/escrow.abi.ts +0 -226
  912. package/src/tempo/session/precompile/index.ts +0 -33
  913. package/src/tempo/session/server/ChannelOps.test.ts +0 -129
  914. package/src/tempo/session/server/ChannelOps.ts +0 -157
  915. package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
  916. package/src/tempo/session/server/ChannelStore.ts +0 -835
  917. package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
  918. package/src/tempo/session/server/CredentialVerification.ts +0 -775
  919. package/src/tempo/session/server/MeteredStream.ts +0 -95
  920. package/src/tempo/session/server/RequestState.test.ts +0 -574
  921. package/src/tempo/session/server/RequestState.ts +0 -507
  922. package/src/tempo/session/server/Session.integration.test.ts +0 -449
  923. package/src/tempo/session/server/Session.test.ts +0 -3862
  924. package/src/tempo/session/server/Session.ts +0 -570
  925. package/src/tempo/session/server/Settlement.test.ts +0 -345
  926. package/src/tempo/session/server/Settlement.ts +0 -527
  927. package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
  928. package/src/tempo/session/server/Sse.test.ts +0 -557
  929. package/src/tempo/session/server/Sse.ts +0 -254
  930. package/src/tempo/session/server/Transports.test.ts +0 -346
  931. package/src/tempo/session/server/Transports.ts +0 -255
  932. package/src/tempo/session/server/Ws.test.ts +0 -594
  933. package/src/tempo/session/server/Ws.ts +0 -385
  934. package/src/tempo/session/server/index.ts +0 -12
  935. package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
  936. package/src/tempo/subscription/KeyAuthorization.ts +0 -396
  937. package/src/tempo/subscription/Receipt.ts +0 -28
  938. package/src/tempo/subscription/Store.test.ts +0 -609
  939. package/src/tempo/subscription/Store.ts +0 -449
  940. package/src/tempo/subscription/Types.ts +0 -68
  941. package/src/tempo/subscription/index.ts +0 -23
  942. package/src/tsconfig.json +0 -10
  943. package/src/validation/core.ts +0 -386
  944. package/src/validation/index.ts +0 -11
  945. package/src/viem/Account.test.ts +0 -72
  946. package/src/viem/Account.ts +0 -30
  947. package/src/viem/Client.test.ts +0 -366
  948. package/src/viem/Client.ts +0 -93
  949. package/src/x402/Assets.test.ts +0 -253
  950. package/src/x402/Assets.ts +0 -221
  951. package/src/x402/Exact.e2e.test.ts +0 -448
  952. package/src/x402/Exact.localnet.test.ts +0 -475
  953. package/src/x402/Header.test.ts +0 -73
  954. package/src/x402/Header.ts +0 -79
  955. package/src/x402/PublicInterface.test-d.ts +0 -39
  956. package/src/x402/Types.ts +0 -248
  957. package/src/x402/client/Exact.test.ts +0 -309
  958. package/src/x402/client/Exact.ts +0 -186
  959. package/src/x402/index.ts +0 -6
  960. package/src/x402/internal/ChallengeBrand.ts +0 -14
  961. package/src/x402/internal/RouteBinding.ts +0 -18
  962. package/src/x402/server/EvmCharge.ts +0 -394
  963. package/src/x402/server/Facilitator.test.ts +0 -111
  964. package/src/x402/server/Facilitator.ts +0 -56
  965. package/src/zod.test.ts +0 -169
  966. package/src/zod.ts +0 -71
@@ -1,6 +1,7 @@
1
1
  import * as Transport from '../../../server/Transport.js';
2
2
  import type { SessionReceipt } from '../../session/precompile/Protocol.js';
3
3
  import * as ChannelStore from '../../session/server/ChannelStore.js';
4
+ import type { SettleChargedSessionChannel } from '../../session/server/Settlement.js';
4
5
  import * as Sse_core from '../../session/server/Sse.js';
5
6
  declare const prepaidSessionTick: unique symbol;
6
7
  /** SSE transport with Tempo session controller. */
@@ -21,6 +22,7 @@ export declare function markPrepaidSessionTick(receipt: SessionReceipt): Session
21
22
  * - Fallback to standard HTTP receipt handling for plain Response
22
23
  */
23
24
  export declare function sse(options: sse.Options & {
25
+ settleCharged?: SettleChargedSessionChannel | undefined;
24
26
  store: ChannelStore.ChannelStore;
25
27
  }): Sse;
26
28
  /** Type helpers for the Tempo SSE transport adapter. */
@@ -90,6 +90,7 @@ export function sse(options) {
90
90
  tickCost,
91
91
  pollIntervalMs: pollingInterval,
92
92
  generate,
93
+ onChargeCommitted: options.settleCharged,
93
94
  prepaidUnits: hasPrepaidSessionTick(receipt) ? 1 : 0,
94
95
  signal: input.signal,
95
96
  });
@@ -138,18 +139,24 @@ export function sse(options) {
138
139
  response: response,
139
140
  challengeId: verifiedChallengeId,
140
141
  });
142
+ const chargePlainResponse = async () => {
143
+ const result = await ChannelStore.deductFromChannel(store, channelId, tickCost);
144
+ if (result.ok)
145
+ await options.settleCharged?.(result.channel);
146
+ return result;
147
+ };
141
148
  // Non-SSE response (e.g. upstream returned JSON instead of event-stream).
142
149
  // Need to deduct tickCost so request isn't free.
143
150
  // For null-body statuses, the request shape determines whether the
144
151
  // response is management (no charge) or plain content (charge one tick).
145
152
  if (isNullBodyStatus(chargedResponse.status)) {
146
- void ChannelStore.deductFromChannel(store, channelId, tickCost);
153
+ void chargePlainResponse();
147
154
  return chargedResponse;
148
155
  }
149
156
  const stream = new ReadableStream({
150
157
  async start(controller) {
151
158
  // deduction completes before consumer reads
152
- const result = await ChannelStore.deductFromChannel(store, channelId, tickCost);
159
+ const result = await chargePlainResponse();
153
160
  if (!result.ok) {
154
161
  controller.error(new Errors.InsufficientBalanceError({
155
162
  reason: `requested ${tickCost}, available ${result.channel.highestVoucherAmount - result.channel.spent}`,
@@ -33,19 +33,33 @@ export type ChannelEntry = {
33
33
  chainId: number;
34
34
  /** Whether the client considers the channel reusable for new vouchers. */
35
35
  opened: boolean;
36
+ /** Logical merchant payment scope when it differs from the on-chain descriptor. */
37
+ paymentScope?: {
38
+ payee: Address;
39
+ token: Address;
40
+ } | undefined;
36
41
  };
37
42
  /** Resolves the voucher authority address for a client account. */
38
43
  export declare function resolveAuthorizedSigner(account: Account): Address;
39
- /** Resolves the escrow precompile from local override, challenge hints, or canonical default. */
44
+ /** Resolves the server-advertised escrow against the client's trust policy. */
40
45
  export declare function resolveEscrow(challenge: {
41
46
  request: {
42
47
  methodDetails?: unknown;
43
48
  };
44
- }, escrowOverride?: Address | undefined): Address;
49
+ }, escrowOverride?: Address | undefined, allowCustomEscrow?: boolean): Address;
45
50
  /** Serializes a session credential with a DID source bound to the payer account. */
46
51
  export declare function serializeCredential(challenge: Challenge, payload: SessionCredentialPayload, chainId: number, account: Account): string;
47
52
  /** Case-insensitive EVM address equality. */
48
53
  export declare function isSameAddress(a: Address, b: Address): boolean;
54
+ /** Returns whether a stored entry funds a machine-token session channel. */
55
+ export declare function isMachineChannel(entry: Pick<ChannelEntry, 'chainId' | 'descriptor' | 'escrow'>): boolean;
56
+ /**
57
+ * Returns whether a stored entry's logical payment scope differs from its
58
+ * on-chain descriptor. Such entries cannot be re-derived from a challenge, so
59
+ * their descriptor is the only local copy — even when the deployment table no
60
+ * longer recognizes the route (for example after a rotation).
61
+ */
62
+ export declare function hasRewrittenScope(entry: Pick<ChannelEntry, 'descriptor' | 'paymentScope'>): boolean;
49
63
  /**
50
64
  * Signs and creates a TIP-1034 voucher credential payload for an existing channel.
51
65
  *
@@ -71,6 +85,7 @@ export declare function createOpenPayload(client: Client, account: Account, para
71
85
  deposit: bigint;
72
86
  escrow?: Address | undefined;
73
87
  feePayer?: boolean | undefined;
88
+ feeToken?: Address | undefined;
74
89
  initialAmount: bigint;
75
90
  operator?: Address | undefined;
76
91
  payee: Address;
@@ -83,5 +98,5 @@ export declare function createOpenPayload(client: Client, account: Account, para
83
98
  *
84
99
  * @see https://tips.sh/1034-1#execution-semantics
85
100
  */
86
- export declare function createTopUpPayload(client: Client, account: Account, descriptor: Channel.ChannelDescriptor, additionalDeposit: bigint, chainId: number, feePayer?: boolean | undefined, escrow?: Address, prefixCalls?: readonly TempoChannelCall[]): Promise<TopUpCredentialPayload>;
101
+ export declare function createTopUpPayload(client: Client, account: Account, descriptor: Channel.ChannelDescriptor, additionalDeposit: bigint, chainId: number, feePayer?: boolean | undefined, escrow?: Address, prefixCalls?: readonly TempoChannelCall[], feeToken?: Address): Promise<TopUpCredentialPayload>;
87
102
  //# sourceMappingURL=ChannelOps.d.ts.map
@@ -13,6 +13,7 @@ import { encodeFunctionData, isAddress } from 'viem';
13
13
  import { prepareTransactionRequest, signTransaction } from 'viem/actions';
14
14
  import { Transaction } from 'viem/tempo';
15
15
  import * as Credential from '../../../Credential.js';
16
+ import * as MachineTokenSession from '../../internal/machine-token-session.js';
16
17
  import * as Channel from '../precompile/Channel.js';
17
18
  import { escrowAbi } from '../precompile/escrow.abi.js';
18
19
  import { tip20ChannelEscrow } from '../precompile/Protocol.js';
@@ -58,14 +59,21 @@ async function prepareTempoChannelTransaction(client, parameters) {
58
59
  async function signPreparedTempoTransaction(client, prepared) {
59
60
  return (await signTransaction(client, prepared));
60
61
  }
61
- /** Resolves the escrow precompile from local override, challenge hints, or canonical default. */
62
- export function resolveEscrow(challenge, escrowOverride) {
62
+ /** Resolves the server-advertised escrow against the client's trust policy. */
63
+ export function resolveEscrow(challenge, escrowOverride, allowCustomEscrow = false) {
63
64
  const methodDetails = challenge.request.methodDetails;
64
65
  const challengeEscrow = isObject(methodDetails)
65
66
  ? (readOptionalAddress(methodDetails.escrowContract) ??
66
67
  readOptionalAddress(methodDetails.escrow))
67
68
  : undefined;
68
- return escrowOverride ?? challengeEscrow ?? tip20ChannelEscrow;
69
+ const expectedEscrow = escrowOverride ?? tip20ChannelEscrow;
70
+ if (challengeEscrow &&
71
+ !isSameAddress(challengeEscrow, expectedEscrow) &&
72
+ (!allowCustomEscrow || escrowOverride !== undefined))
73
+ throw new Error(`Tempo session escrow ${challengeEscrow} does not match client escrow ${expectedEscrow}.`);
74
+ if (challengeEscrow && !isSameAddress(challengeEscrow, expectedEscrow))
75
+ return challengeEscrow;
76
+ return expectedEscrow;
69
77
  }
70
78
  /** Serializes a session credential with a DID source bound to the payer account. */
71
79
  export function serializeCredential(challenge, payload, chainId, account) {
@@ -79,6 +87,27 @@ export function serializeCredential(challenge, payload, chainId, account) {
79
87
  export function isSameAddress(a, b) {
80
88
  return a.toLowerCase() === b.toLowerCase();
81
89
  }
90
+ /** Returns whether a stored entry funds a machine-token session channel. */
91
+ export function isMachineChannel(entry) {
92
+ return (isSameAddress(entry.escrow, tip20ChannelEscrow) &&
93
+ MachineTokenSession.matchDeployment({
94
+ chainId: entry.chainId,
95
+ descriptor: entry.descriptor,
96
+ }) !== undefined);
97
+ }
98
+ /**
99
+ * Returns whether a stored entry's logical payment scope differs from its
100
+ * on-chain descriptor. Such entries cannot be re-derived from a challenge, so
101
+ * their descriptor is the only local copy — even when the deployment table no
102
+ * longer recognizes the route (for example after a rotation).
103
+ */
104
+ export function hasRewrittenScope(entry) {
105
+ const scope = entry.paymentScope;
106
+ if (!scope)
107
+ return false;
108
+ return (!isSameAddress(scope.payee, entry.descriptor.payee) ||
109
+ !isSameAddress(scope.token, entry.descriptor.token));
110
+ }
82
111
  /**
83
112
  * Signs and creates a TIP-1034 voucher credential payload for an existing channel.
84
113
  *
@@ -139,7 +168,7 @@ export async function createOpenPayload(client, account, parameters) {
139
168
  account,
140
169
  calls: [...(parameters.prefixCalls ?? []), { to: escrow, data: openData }],
141
170
  feePayer: parameters.feePayer,
142
- feeToken: parameters.token,
171
+ feeToken: parameters.feeToken ?? parameters.token,
143
172
  });
144
173
  const transaction = await signPreparedTempoTransaction(client, prepared);
145
174
  const signed = Transaction.deserialize(transaction);
@@ -178,7 +207,7 @@ export async function createOpenPayload(client, account, parameters) {
178
207
  *
179
208
  * @see https://tips.sh/1034-1#execution-semantics
180
209
  */
181
- export async function createTopUpPayload(client, account, descriptor, additionalDeposit, chainId, feePayer, escrow = tip20ChannelEscrow, prefixCalls = []) {
210
+ export async function createTopUpPayload(client, account, descriptor, additionalDeposit, chainId, feePayer, escrow = tip20ChannelEscrow, prefixCalls = [], feeToken = descriptor.token) {
182
211
  const channelId = Channel.computeId({
183
212
  ...descriptor,
184
213
  chainId,
@@ -199,7 +228,7 @@ export async function createTopUpPayload(client, account, descriptor, additional
199
228
  },
200
229
  ],
201
230
  feePayer,
202
- feeToken: descriptor.token,
231
+ feeToken,
203
232
  validAfter: randomValidAfter(),
204
233
  });
205
234
  const transaction = await signPreparedTempoTransaction(client, prepared);
@@ -10,11 +10,6 @@ export type ChannelStore = {
10
10
  /** Removes the channel cached for `key`. */
11
11
  delete(key: string): MaybePromise<void>;
12
12
  };
13
- /** Channel persistence and update notification for credential results. */
14
- export type ChannelSink = {
15
- store: ChannelStore;
16
- notifyUpdate: (entry: ChannelEntry) => void;
17
- };
18
13
  /** Returns the scope key for a reusable payer session channel. */
19
14
  export declare function channelKey(scope: {
20
15
  payee: Address;
@@ -6,8 +6,8 @@ export function channelKey(scope) {
6
6
  /** Returns the scope key for a stored channel entry. */
7
7
  export function entryKey(entry) {
8
8
  return channelKey({
9
- payee: entry.descriptor.payee,
10
- token: entry.descriptor.token,
9
+ payee: entry.paymentScope?.payee ?? entry.descriptor.payee,
10
+ token: entry.paymentScope?.token ?? entry.descriptor.token,
11
11
  escrow: entry.escrow,
12
12
  chainId: entry.chainId,
13
13
  });
@@ -8,7 +8,6 @@ import * as Channel from '../precompile/Channel.js';
8
8
  import type { SessionCredentialPayload } from '../precompile/Protocol.js';
9
9
  import type { SessionSnapshot } from '../Snapshot.js';
10
10
  import { type ChannelEntry } from './ChannelOps.js';
11
- import { type ChannelSink } from './ChannelStore.js';
12
11
  /** Credential payload variants that carry cumulative voucher authorization. */
13
12
  export type CumulativeCredentialPayload = Extract<SessionCredentialPayload, {
14
13
  cumulativeAmount: string;
@@ -22,10 +21,10 @@ export declare const sessionContextSchema: z.ZodMiniObject<{
22
21
  account: z.ZodMiniOptional<z.ZodMiniCustom<`0x${string}` | Account.Account | undefined, `0x${string}` | Account.Account | undefined>>;
23
22
  autoSwap: z.ZodMiniOptional<z.ZodMiniCustom<AutoSwap.resolve.Value, AutoSwap.resolve.Value>>;
24
23
  action: z.ZodMiniOptional<z.ZodMiniEnum<{
24
+ close: "close";
25
25
  open: "open";
26
26
  topUp: "topUp";
27
27
  voucher: "voucher";
28
- close: "close";
29
28
  }>>;
30
29
  channelId: z.ZodMiniOptional<z.ZodMiniCustom<`0x${string}`, `0x${string}`>>;
31
30
  cumulativeAmount: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -98,6 +97,8 @@ export type ClientSessionMethodDetails = {
98
97
  escrow?: Address | undefined;
99
98
  /** Whether the challenge allows fee-sponsored open/top-up transactions. */
100
99
  feePayer?: boolean | undefined;
100
+ /** Fee token selected by the server for open/top-up transactions. */
101
+ feeToken?: Address | undefined;
101
102
  /** Channel operator address advertised by the server. */
102
103
  operator?: Address | undefined;
103
104
  /** Server bootstrap snapshot for a reusable session channel. */
@@ -105,6 +106,8 @@ export type ClientSessionMethodDetails = {
105
106
  };
106
107
  /** Dependencies used to resolve a challenge into typed credential-planning data. */
107
108
  export type ResolveChallengeContextParameters = {
109
+ /** Whether to accept a noncanonical escrow advertised by the server. @default false */
110
+ allowCustomEscrow?: boolean | undefined;
108
111
  /** Challenge received from the 402 response. */
109
112
  challenge: Challenge.Challenge;
110
113
  /** Optional local escrow override. */
@@ -159,9 +162,15 @@ export type ChallengeContext = {
159
162
  client: Client;
160
163
  escrow: Address;
161
164
  feePayer?: boolean | undefined;
165
+ feeToken?: Address | undefined;
162
166
  key: string;
163
167
  operator?: Address | undefined;
164
168
  payee: Address;
169
+ /** Logical merchant scope when the channel uses an indirect payment route. */
170
+ paymentScope?: {
171
+ payee: Address;
172
+ token: Address;
173
+ } | undefined;
165
174
  snapshot?: SessionSnapshot | undefined;
166
175
  /** Server-provided raw deposit hint for opening a channel, before local maxDeposit capping. */
167
176
  suggestedDepositRaw?: string | undefined;
@@ -248,8 +257,14 @@ export type CredentialPlan =
248
257
  account: ViemAccount;
249
258
  context: ManualSessionDescriptorContext;
250
259
  decimals: number;
260
+ entry?: ChannelEntry | undefined;
251
261
  resolved: ChallengeContext;
252
262
  };
263
+ /** Signed credential plus the channel state to commit after all signing succeeds. */
264
+ export type CredentialResult = {
265
+ payload: SessionCredentialPayload;
266
+ entry?: ChannelEntry | undefined;
267
+ };
253
268
  /** Resolves raw challenge fields into the typed data required by client credential planning. */
254
269
  export declare function resolveChallengeContext(parameters: ResolveChallengeContextParameters): Promise<ChallengeContext>;
255
270
  /** Validates descriptor identity and reads open channel state for client-side recovery. */
@@ -265,5 +280,5 @@ export declare function canSignDescriptor(account: ViemAccount, descriptor: Chan
265
280
  /** Chooses the next credential plan from local channel cache and optional caller context. */
266
281
  export declare function planCredential(parameters: PlanCredentialParameters): CredentialPlan;
267
282
  /** Executes a credential plan and returns the concrete session credential payload. */
268
- export declare function executeCredentialPlan(plan: CredentialPlan, sink: ChannelSink, autoSwap?: AutoSwap.resolve.Resolved | false): Promise<SessionCredentialPayload>;
283
+ export declare function executeCredentialPlan(plan: CredentialPlan, autoSwap?: AutoSwap.resolve.Resolved | false, feeToken?: Address | undefined): Promise<CredentialResult>;
269
284
  //# sourceMappingURL=CredentialState.d.ts.map
@@ -6,7 +6,7 @@ import * as Chain from '../precompile/Chain.js';
6
6
  import * as Channel from '../precompile/Channel.js';
7
7
  import * as Voucher from '../precompile/Voucher.js';
8
8
  import { createClosePayload, createOpenPayload, createTopUpPayload, createVoucherPayload, isSameAddress, resolveAuthorizedSigner, resolveEscrow, } from './ChannelOps.js';
9
- import { channelKey, entryKey } from './ChannelStore.js';
9
+ import { channelKey } from './ChannelStore.js';
10
10
  import { assertWithinMaxDeposit, resolveOpeningDeposit } from './Runtime.js';
11
11
  /** Returns whether a credential payload carries cumulative voucher authorization. */
12
12
  export function hasCredentialCumulativeAmount(payload) {
@@ -18,33 +18,18 @@ export function readCredentialCumulativeAmount(payload) {
18
18
  return undefined;
19
19
  return BigInt(payload.cumulativeAmount);
20
20
  }
21
- /**
22
- * Persists a channel entry through the sink and notifies observers. Closed
23
- * channels are removed from the store but still reported to observers so callers
24
- * can react to the close.
25
- */
26
- async function storeChannelEntry(sink, entry) {
27
- if (entry.opened)
28
- await sink.store.set(entry);
29
- else
30
- await sink.store.delete(entryKey(entry));
31
- sink.notifyUpdate(entry);
32
- }
33
- /** Applies a credential payload's cumulative amount to the stored channel at `key`. */
34
- async function applyCumulative(sink, key, payload) {
21
+ /** Applies a credential payload to a matching cached channel without persisting it. */
22
+ function applyCredential(entry, payload) {
35
23
  const cumulativeAmount = readCredentialCumulativeAmount(payload);
36
- if (cumulativeAmount === undefined)
37
- return;
38
- const entry = await sink.store.get(key);
39
- if (!entry)
40
- return;
41
- if (entry.channelId.toLowerCase() !== payload.channelId.toLowerCase())
42
- return;
43
- entry.cumulativeAmount =
44
- entry.cumulativeAmount > cumulativeAmount ? entry.cumulativeAmount : cumulativeAmount;
45
- if (payload.action === 'close')
46
- entry.opened = false;
47
- await storeChannelEntry(sink, entry);
24
+ if (cumulativeAmount === undefined ||
25
+ !entry ||
26
+ entry.channelId.toLowerCase() !== payload.channelId.toLowerCase())
27
+ return undefined;
28
+ return {
29
+ ...entry,
30
+ cumulativeAmount: entry.cumulativeAmount > cumulativeAmount ? entry.cumulativeAmount : cumulativeAmount,
31
+ opened: payload.action === 'close' ? false : entry.opened,
32
+ };
48
33
  }
49
34
  const hexSchema = z.custom((value) => typeof value === 'string' && /^0x[0-9a-fA-F]*$/.test(value));
50
35
  const hashSchema = z.custom((value) => typeof value === 'string' && /^0x[0-9a-fA-F]{64}$/.test(value));
@@ -106,6 +91,7 @@ function readMethodDetails(challenge) {
106
91
  escrowContract: readOptionalAddress(methodDetails.escrowContract),
107
92
  escrow: readOptionalAddress(methodDetails.escrow),
108
93
  feePayer: typeof methodDetails.feePayer === 'boolean' ? methodDetails.feePayer : undefined,
94
+ feeToken: readOptionalAddress(methodDetails.feeToken),
109
95
  operator: readOptionalAddress(methodDetails.operator),
110
96
  sessionSnapshot: Constants.getMethodDetail(methodDetails, Constants.MethodDetailKeys.sessionSnapshot),
111
97
  };
@@ -125,13 +111,13 @@ function readSuggestedDeposit(value) {
125
111
  }
126
112
  /** Resolves raw challenge fields into the typed data required by client credential planning. */
127
113
  export async function resolveChallengeContext(parameters) {
128
- const { challenge, escrowOverride, getClient } = parameters;
114
+ const { allowCustomEscrow, challenge, escrowOverride, getClient } = parameters;
129
115
  const methodDetails = readMethodDetails(challenge);
130
116
  const client = await getClient({ chainId: methodDetails.chainId });
131
117
  const chainId = methodDetails.chainId ?? client.chain?.id;
132
118
  if (!chainId)
133
119
  throw new Error('No chainId configured for TIP-1034 session challenge.');
134
- const escrow = resolveEscrow(challenge, escrowOverride);
120
+ const escrow = resolveEscrow(challenge, escrowOverride, allowCustomEscrow);
135
121
  const payee = readAddress(challenge.request.recipient, 'recipient');
136
122
  const token = readAddress(challenge.request.currency, 'currency');
137
123
  return {
@@ -141,6 +127,7 @@ export async function resolveChallengeContext(parameters) {
141
127
  client,
142
128
  escrow,
143
129
  feePayer: methodDetails.feePayer,
130
+ feeToken: methodDetails.feeToken,
144
131
  key: channelKey({ payee, token, escrow, chainId }),
145
132
  operator: methodDetails.operator,
146
133
  payee,
@@ -288,6 +275,7 @@ export function planCredential(parameters) {
288
275
  account,
289
276
  context,
290
277
  decimals,
278
+ entry,
291
279
  resolved,
292
280
  };
293
281
  }
@@ -295,30 +283,39 @@ export function planCredential(parameters) {
295
283
  throw new Error('descriptor required to reuse TIP-1034 channel');
296
284
  const recoverContext = resolveRecoverContext({ context, snapshot: resolved.snapshot });
297
285
  if (!entry && recoverContext && canSignDescriptor(account, recoverContext.descriptor)) {
298
- return {
299
- type: 'recover',
300
- account,
301
- context: recoverContext,
302
- decimals,
303
- maxDeposit,
304
- resolved,
305
- };
286
+ // A server snapshot may describe another rail's channel (e.g. a
287
+ // machine-token descriptor advertised to a direct-rail client); ignore
288
+ // hints that do not match this challenge instead of failing recovery on
289
+ // every attempt. Explicit caller descriptors keep failing loudly in
290
+ // recovery validation.
291
+ const recoverable = context?.descriptor !== undefined ||
292
+ (isSameAddress(recoverContext.descriptor.payee, resolved.payee) &&
293
+ isSameAddress(recoverContext.descriptor.token, resolved.token));
294
+ if (recoverable)
295
+ return {
296
+ type: 'recover',
297
+ account,
298
+ context: recoverContext,
299
+ decimals,
300
+ maxDeposit,
301
+ resolved,
302
+ };
306
303
  }
307
304
  if (entry?.opened && canSignDescriptor(account, entry.descriptor))
308
305
  return { type: 'voucher', account, entry, maxDeposit, resolved };
309
306
  return { type: 'open', account, context, maxDeposit, resolved };
310
307
  }
311
308
  /** Executes a credential plan and returns the concrete session credential payload. */
312
- export async function executeCredentialPlan(plan, sink, autoSwap = false) {
309
+ export async function executeCredentialPlan(plan, autoSwap = false, feeToken) {
313
310
  switch (plan.type) {
314
311
  case 'open':
315
- return open(plan, sink, autoSwap);
312
+ return open(plan, autoSwap, feeToken);
316
313
  case 'recover':
317
- return recover(plan, sink);
314
+ return recover(plan);
318
315
  case 'voucher':
319
- return voucher(plan, sink);
316
+ return voucher(plan);
320
317
  case 'manual':
321
- return manual(plan, sink, autoSwap);
318
+ return manual(plan, autoSwap, feeToken);
322
319
  }
323
320
  }
324
321
  async function resolveAutoSwapCalls(autoSwap, parameters) {
@@ -332,7 +329,7 @@ async function resolveAutoSwapCalls(autoSwap, parameters) {
332
329
  slippage: autoSwap.slippage,
333
330
  }));
334
331
  }
335
- async function open(plan, sink, autoSwap) {
332
+ async function open(plan, autoSwap, feeToken) {
336
333
  const { account, resolved } = plan;
337
334
  const deposit = resolveOpeningDeposit({
338
335
  contextDepositRaw: plan.context?.depositRaw,
@@ -345,6 +342,7 @@ async function open(plan, sink, autoSwap) {
345
342
  deposit,
346
343
  escrow: resolved.escrow,
347
344
  feePayer: resolved.feePayer,
345
+ feeToken,
348
346
  initialAmount: resolved.amount,
349
347
  operator: resolved.operator,
350
348
  payee: resolved.payee,
@@ -356,18 +354,21 @@ async function open(plan, sink, autoSwap) {
356
354
  }),
357
355
  token: resolved.token,
358
356
  });
359
- await storeChannelEntry(sink, {
360
- channelId: payload.channelId,
361
- cumulativeAmount: resolved.amount,
362
- deposit,
363
- descriptor: payload.descriptor,
364
- escrow: resolved.escrow,
365
- chainId: resolved.chainId,
366
- opened: true,
367
- });
368
- return payload;
357
+ return {
358
+ payload,
359
+ entry: {
360
+ channelId: payload.channelId,
361
+ cumulativeAmount: resolved.amount,
362
+ deposit,
363
+ descriptor: payload.descriptor,
364
+ escrow: resolved.escrow,
365
+ chainId: resolved.chainId,
366
+ opened: true,
367
+ ...(resolved.paymentScope && { paymentScope: resolved.paymentScope }),
368
+ },
369
+ };
369
370
  }
370
- async function recover(plan, sink) {
371
+ async function recover(plan) {
371
372
  const { account, context, decimals, maxDeposit, resolved } = plan;
372
373
  const { descriptor } = context;
373
374
  const reusable = await resolveReusableChannel({
@@ -394,27 +395,28 @@ async function recover(plan, sink) {
394
395
  throw new Error('recovered voucher amount exceeds on-chain channel deposit');
395
396
  assertWithinMaxDeposit(cumulativeAmount, maxDeposit);
396
397
  const payload = await createVoucherPayload(resolved.client, account, descriptor, cumulativeAmount, resolved.chainId, resolved.escrow);
397
- await storeChannelEntry(sink, {
398
- channelId: reusable.channelId,
399
- cumulativeAmount,
400
- deposit: reusable.state.deposit,
401
- descriptor,
402
- escrow: resolved.escrow,
403
- chainId: resolved.chainId,
404
- opened: true,
405
- });
406
- return payload;
398
+ return {
399
+ payload,
400
+ entry: {
401
+ channelId: reusable.channelId,
402
+ cumulativeAmount,
403
+ deposit: reusable.state.deposit,
404
+ descriptor,
405
+ escrow: resolved.escrow,
406
+ chainId: resolved.chainId,
407
+ opened: true,
408
+ ...(resolved.paymentScope && { paymentScope: resolved.paymentScope }),
409
+ },
410
+ };
407
411
  }
408
- async function voucher(plan, sink) {
412
+ async function voucher(plan) {
409
413
  const { account, entry, resolved } = plan;
410
414
  const cumulativeAmount = entry.cumulativeAmount + resolved.amount;
411
415
  assertWithinMaxDeposit(cumulativeAmount, plan.maxDeposit);
412
416
  const payload = await createVoucherPayload(resolved.client, account, entry.descriptor, cumulativeAmount, resolved.chainId, resolved.escrow);
413
- entry.cumulativeAmount = cumulativeAmount;
414
- await storeChannelEntry(sink, entry);
415
- return payload;
417
+ return { payload, entry: { ...entry, cumulativeAmount } };
416
418
  }
417
- async function manual(plan, sink, autoSwap) {
419
+ async function manual(plan, autoSwap, feeToken) {
418
420
  const { account, context, decimals, resolved } = plan;
419
421
  const { descriptor } = context;
420
422
  const channelId = Channel.computeId({
@@ -438,16 +440,15 @@ async function manual(plan, sink, autoSwap) {
438
440
  decimals,
439
441
  descriptor,
440
442
  resolved,
441
- }, autoSwap);
442
- await applyCumulative(sink, resolved.key, payload);
443
- return payload;
443
+ }, autoSwap, feeToken);
444
+ return { payload, entry: applyCredential(plan.entry, payload) };
444
445
  }
445
- async function executeManualCredential(parameters, autoSwap) {
446
+ async function executeManualCredential(parameters, autoSwap, feeToken) {
446
447
  switch (parameters.context.action) {
447
448
  case 'open':
448
449
  return manualOpen(parameters);
449
450
  case 'topUp':
450
- return manualTopUp(parameters, autoSwap);
451
+ return manualTopUp(parameters, autoSwap, feeToken);
451
452
  case 'voucher':
452
453
  return manualVoucher(parameters);
453
454
  case 'close':
@@ -471,7 +472,7 @@ async function manualOpen(parameters) {
471
472
  authorizedSigner: descriptor.authorizedSigner,
472
473
  };
473
474
  }
474
- async function manualTopUp(parameters, autoSwap) {
475
+ async function manualTopUp(parameters, autoSwap, feeToken) {
475
476
  const { account, channelId, context, decimals, descriptor, resolved } = parameters;
476
477
  const additionalDeposit = requireContextAmount(context, decimals, 'additionalDeposit', 'topUp');
477
478
  if (context.transaction) {
@@ -489,7 +490,7 @@ async function manualTopUp(parameters, autoSwap) {
489
490
  amountOut: additionalDeposit,
490
491
  client: resolved.client,
491
492
  tokenOut: resolved.token,
492
- }));
493
+ }), feeToken);
493
494
  }
494
495
  function manualVoucher(parameters) {
495
496
  const { account, context, decimals, descriptor, resolved } = parameters;
@@ -308,8 +308,10 @@ export type ExpectedCloseReceiptParameters = {
308
308
  challengeId: string;
309
309
  /** Channel ID being closed. */
310
310
  channelId: Hex;
311
- /** Expected final cumulative/spent amount. */
311
+ /** Expected final cumulative authorization. */
312
312
  expectedCloseAmount: string;
313
+ /** Lowest cumulative spend already confirmed by the client. */
314
+ minimumSpent?: bigint | undefined;
313
315
  /** Receipt to test. */
314
316
  receipt: SessionReceipt;
315
317
  };
@@ -434,7 +436,7 @@ export declare function closedStateFromReceipt(receipt: SessionReceipt, entry: C
434
436
  * Priority:
435
437
  * 1. Matching close-ready receipt spend.
436
438
  * 2. Matching socket delivery estimate (`deliveredChunks * tickCost`) clamped by cumulative.
437
- * 3. Latest receipt-tracked spend for HTTP/SSE.
439
+ * 3. Local cumulative authorization high-water mark for HTTP/SSE.
438
440
  */
439
441
  export declare function computeFallbackCloseAmount(parameters: FallbackCloseAmountParameters): bigint;
440
442
  /**
@@ -319,18 +319,27 @@ export function localCloseSpendLimit(parameters) {
319
319
  /** Throws when a close-ready receipt asks the client to sign beyond local state. */
320
320
  export function assertCloseReadyWithinLocalState(parameters) {
321
321
  const { cumulativeAmount, readySpent, spent } = parameters;
322
+ if (!Ws.isUint96(readySpent))
323
+ throw new Error('close-ready spent is not a uint96 amount');
324
+ if (readySpent < spent)
325
+ throw new Error('close-ready spent is below locally confirmed spend');
322
326
  if (readySpent > localCloseSpendLimit({ cumulativeAmount, spent })) {
323
327
  throw new Error('close-ready spent exceeds local voucher state');
324
328
  }
325
329
  }
326
330
  /** Returns whether a receipt is the expected final close settlement receipt. */
327
331
  export function isExpectedCloseReceipt(parameters) {
328
- const { challengeId, channelId, expectedCloseAmount, receipt } = parameters;
332
+ const { challengeId, channelId, expectedCloseAmount, minimumSpent = 0n, receipt } = parameters;
333
+ const expected = Ws.parseUint96Amount(expectedCloseAmount);
334
+ const receiptSpent = Ws.parseUint96Amount(receipt.spent);
335
+ if (expected === undefined || receiptSpent === undefined || !Ws.isUint96(minimumSpent))
336
+ return false;
329
337
  return (Boolean(receipt.txHash) &&
330
338
  receipt.challengeId === challengeId &&
331
339
  receipt.channelId === channelId &&
332
340
  receipt.acceptedCumulative === expectedCloseAmount &&
333
- receipt.spent === expectedCloseAmount);
341
+ receiptSpent >= minimumSpent &&
342
+ receiptSpent <= expected);
334
343
  }
335
344
  /** Projects cached channel data into an active state-machine state. */
336
345
  export function activeStateFromChannel(parameters) {
@@ -402,21 +411,27 @@ export function closedStateFromReceipt(receipt, entry) {
402
411
  * Priority:
403
412
  * 1. Matching close-ready receipt spend.
404
413
  * 2. Matching socket delivery estimate (`deliveredChunks * tickCost`) clamped by cumulative.
405
- * 3. Latest receipt-tracked spend for HTTP/SSE.
414
+ * 3. Local cumulative authorization high-water mark for HTTP/SSE.
406
415
  */
407
416
  export function computeFallbackCloseAmount(parameters) {
408
417
  const { challengeId, channelId, closeReadyReceipt, cumulativeAmount, deliveredChunks = 0n, socketChallengeId, socketChannelId, spent, tickCost = 0n, } = parameters;
418
+ if (spent > cumulativeAmount) {
419
+ throw new Error('locally confirmed spend exceeds local voucher state');
420
+ }
409
421
  if (closeReadyReceipt &&
410
422
  closeReadyReceipt.challengeId === challengeId &&
411
423
  closeReadyReceipt.channelId === channelId) {
412
- return BigInt(closeReadyReceipt.spent);
424
+ const closeReadySpent = Ws.parseUint96Amount(closeReadyReceipt.spent);
425
+ if (closeReadySpent === undefined)
426
+ throw new Error('close-ready spent is not a uint96 amount');
427
+ return closeReadySpent > spent ? closeReadySpent : spent;
413
428
  }
414
429
  if (socketChallengeId === challengeId && socketChannelId === channelId && tickCost > 0n) {
415
430
  const deliveryEstimate = deliveredChunks * tickCost;
416
431
  const bestSpent = spent > deliveryEstimate ? spent : deliveryEstimate;
417
432
  return bestSpent > cumulativeAmount ? cumulativeAmount : bestSpent;
418
433
  }
419
- return spent;
434
+ return cumulativeAmount;
420
435
  }
421
436
  /**
422
437
  * Restores a channel's cumulative voucher boundary and returns the refreshed active state.
@@ -501,6 +516,7 @@ export async function closeSocketSession(parameters) {
501
516
  challengeId: target.challenge.id,
502
517
  channelId: target.channelId,
503
518
  expectedCloseAmount,
519
+ minimumSpent: readySpent,
504
520
  receipt,
505
521
  }));
506
522
  activeSocket.send(Ws.formatAuthorizationMessage(credential));