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,942 +0,0 @@
1
- import {
2
- isAddress,
3
- parseUnits,
4
- type Account as ViemAccount,
5
- type Address,
6
- type Client,
7
- type Hex,
8
- } from 'viem'
9
-
10
- import type * as Challenge from '../../../Challenge.js'
11
- import * as Constants from '../../../Constants.js'
12
- import * as Account from '../../../viem/Account.js'
13
- import * as z from '../../../zod.js'
14
- import * as AutoSwap from '../../internal/auto-swap.js'
15
- import * as Chain from '../precompile/Chain.js'
16
- import * as Channel from '../precompile/Channel.js'
17
- import type { SessionCredentialPayload } from '../precompile/Protocol.js'
18
- import * as Voucher from '../precompile/Voucher.js'
19
- import type { SessionSnapshot } from '../Snapshot.js'
20
- import {
21
- createClosePayload,
22
- createOpenPayload,
23
- createTopUpPayload,
24
- createVoucherPayload,
25
- isSameAddress,
26
- resolveAuthorizedSigner,
27
- resolveEscrow,
28
- type ChannelEntry,
29
- type TempoChannelCall,
30
- } from './ChannelOps.js'
31
- import { channelKey, entryKey, type ChannelSink } from './ChannelStore.js'
32
- import { assertWithinMaxDeposit, resolveOpeningDeposit } from './Runtime.js'
33
-
34
- /** Credential payload variants that carry cumulative voucher authorization. */
35
- export type CumulativeCredentialPayload = Extract<
36
- SessionCredentialPayload,
37
- { cumulativeAmount: string }
38
- >
39
-
40
- /** Returns whether a credential payload carries cumulative voucher authorization. */
41
- export function hasCredentialCumulativeAmount(
42
- payload: SessionCredentialPayload,
43
- ): payload is CumulativeCredentialPayload {
44
- return 'cumulativeAmount' in payload
45
- }
46
-
47
- /** Reads cumulative authorization from a credential payload when the action carries one. */
48
- export function readCredentialCumulativeAmount(
49
- payload: SessionCredentialPayload,
50
- ): bigint | undefined {
51
- if (!hasCredentialCumulativeAmount(payload)) return undefined
52
- return BigInt(payload.cumulativeAmount)
53
- }
54
-
55
- /**
56
- * Persists a channel entry through the sink and notifies observers. Closed
57
- * channels are removed from the store but still reported to observers so callers
58
- * can react to the close.
59
- */
60
- async function storeChannelEntry(sink: ChannelSink, entry: ChannelEntry): Promise<void> {
61
- if (entry.opened) await sink.store.set(entry)
62
- else await sink.store.delete(entryKey(entry))
63
- sink.notifyUpdate(entry)
64
- }
65
-
66
- /** Applies a credential payload's cumulative amount to the stored channel at `key`. */
67
- async function applyCumulative(
68
- sink: ChannelSink,
69
- key: string,
70
- payload: SessionCredentialPayload,
71
- ): Promise<void> {
72
- const cumulativeAmount = readCredentialCumulativeAmount(payload)
73
- if (cumulativeAmount === undefined) return
74
- const entry = await sink.store.get(key)
75
- if (!entry) return
76
- if (entry.channelId.toLowerCase() !== payload.channelId.toLowerCase()) return
77
- entry.cumulativeAmount =
78
- entry.cumulativeAmount > cumulativeAmount ? entry.cumulativeAmount : cumulativeAmount
79
- if (payload.action === 'close') entry.opened = false
80
- await storeChannelEntry(sink, entry)
81
- }
82
-
83
- const hexSchema = z.custom<Hex>(
84
- (value) => typeof value === 'string' && /^0x[0-9a-fA-F]*$/.test(value),
85
- )
86
- const hashSchema = z.custom<Hex>(
87
- (value) => typeof value === 'string' && /^0x[0-9a-fA-F]{64}$/.test(value),
88
- )
89
-
90
- /** Runtime schema for low-level TIP-1034 session credential context. */
91
- export const sessionContextSchema = z.object({
92
- account: z.optional(z.custom<Account.getResolver.Parameters['account']>()),
93
- autoSwap: z.optional(z.custom<AutoSwap.resolve.Value>()),
94
- action: z.optional(z.enum(['open', 'topUp', 'voucher', 'close'])),
95
- channelId: z.optional(hashSchema),
96
- cumulativeAmount: z.optional(z.amount()),
97
- cumulativeAmountRaw: z.optional(z.string()),
98
- transaction: z.optional(hexSchema),
99
- descriptor: z.optional(z.custom<Channel.ChannelDescriptor>()),
100
- additionalDeposit: z.optional(z.amount()),
101
- additionalDepositRaw: z.optional(z.string()),
102
- depositRaw: z.optional(z.string()),
103
- })
104
-
105
- /** Low-level context accepted by `tempo.session()` for manual credentials. */
106
- export type SessionContext = {
107
- /** Optional account override used for this credential only. */
108
- account?: Account.getResolver.Parameters['account'] | undefined
109
- /** Automatically acquire the session currency from fallback stablecoins before open/top-up. */
110
- autoSwap?: AutoSwap.resolve.Value | undefined
111
- /** Manual credential action. Omit for automatic open/recover/voucher management. */
112
- action?: 'open' | 'topUp' | 'voucher' | 'close' | undefined
113
- /** Channel ID being reused or manually operated on. */
114
- channelId?: Hex | undefined
115
- /** Human-readable cumulative voucher authorization, parsed with configured decimals. */
116
- cumulativeAmount?: string | undefined
117
- /** Raw cumulative voucher authorization. Takes precedence over `cumulativeAmount`. */
118
- cumulativeAmountRaw?: string | undefined
119
- /** Signed Tempo transaction for manual open/top-up credentials. */
120
- transaction?: Hex | undefined
121
- /** TIP-1034 descriptor required for recovery and manual credentials. */
122
- descriptor?: Channel.ChannelDescriptor | undefined
123
- /** Human-readable additional top-up deposit, parsed with configured decimals. */
124
- additionalDeposit?: string | undefined
125
- /** Raw additional top-up deposit. Takes precedence over `additionalDeposit`. */
126
- additionalDepositRaw?: string | undefined
127
- /** Raw opening deposit override for automatic open credentials. */
128
- depositRaw?: string | undefined
129
- }
130
-
131
- /** Manual low-level TIP-1034 session action name. */
132
- export type SessionAction = NonNullable<SessionContext['action']>
133
-
134
- /** Context amount fields that may be supplied as human-readable or raw token units. */
135
- export type SessionAmountField = 'additionalDeposit' | 'cumulativeAmount'
136
-
137
- /** Session context narrowed to an explicit manual action. */
138
- export type ManualSessionContext = SessionContext & { action: SessionAction }
139
-
140
- /** Manual session action context after the required channel descriptor is present. */
141
- export type ManualSessionDescriptorContext = ManualSessionContext & {
142
- /** TIP-1034 channel descriptor used by manual open/top-up/voucher/close actions. */
143
- descriptor: Channel.ChannelDescriptor
144
- }
145
-
146
- /** Session context narrowed to a recoverable TIP-1034 channel descriptor. */
147
- export type DescriptorSessionContext = SessionContext & { descriptor: Channel.ChannelDescriptor }
148
-
149
- /** Returns whether a session context contains an explicit manual action. */
150
- export function hasSessionAction(
151
- context: SessionContext | undefined,
152
- ): context is ManualSessionContext {
153
- return context?.action !== undefined
154
- }
155
-
156
- /** Returns whether a context is a manual action with the descriptor required to execute it. */
157
- export function hasManualSessionDescriptor(
158
- context: SessionContext | undefined,
159
- ): context is ManualSessionDescriptorContext {
160
- return hasSessionAction(context) && context.descriptor !== undefined
161
- }
162
-
163
- /** Returns whether a session context contains a recoverable channel descriptor. */
164
- export function hasSessionDescriptor(
165
- context: SessionContext | undefined,
166
- ): context is DescriptorSessionContext {
167
- return context?.descriptor !== undefined
168
- }
169
-
170
- /** Parses an optional session context amount, preferring the raw-unit field when present. */
171
- export function parseOptionalContextAmount(
172
- context: SessionContext,
173
- decimals: number,
174
- field: SessionAmountField,
175
- ): bigint | undefined {
176
- const raw =
177
- field === 'additionalDeposit' ? context.additionalDepositRaw : context.cumulativeAmountRaw
178
- const amount =
179
- field === 'additionalDeposit' ? context.additionalDeposit : context.cumulativeAmount
180
- if (raw) return BigInt(raw)
181
- if (amount) return parseUnits(amount, decimals)
182
- return undefined
183
- }
184
-
185
- /** Parses a required session context amount and throws with action-specific context when absent. */
186
- export function requireContextAmount(
187
- context: SessionContext,
188
- decimals: number,
189
- field: SessionAmountField,
190
- action: string,
191
- ): bigint {
192
- const amount = parseOptionalContextAmount(context, decimals, field)
193
- if (amount === undefined) throw new Error(`${field} required for ${action} action`)
194
- return amount
195
- }
196
-
197
- /** Tempo-specific details embedded in a `tempo/session` challenge request. */
198
- export type ClientSessionMethodDetails = {
199
- /** Chain ID used for voucher domain and channel ID derivation. */
200
- chainId?: number | undefined
201
- /** Escrow contract address advertised by the server. */
202
- escrowContract?: Address | undefined
203
- /** Legacy escrow hint accepted during migration. */
204
- escrow?: Address | undefined
205
- /** Whether the challenge allows fee-sponsored open/top-up transactions. */
206
- feePayer?: boolean | undefined
207
- /** Channel operator address advertised by the server. */
208
- operator?: Address | undefined
209
- /** Server bootstrap snapshot for a reusable session channel. */
210
- sessionSnapshot?: SessionSnapshot | undefined
211
- }
212
-
213
- /** Dependencies used to resolve a challenge into typed credential-planning data. */
214
- export type ResolveChallengeContextParameters = {
215
- /** Challenge received from the 402 response. */
216
- challenge: Challenge.Challenge
217
- /** Optional local escrow override. */
218
- escrowOverride?: Address | undefined
219
- /** Resolves the viem client for the challenge chain. */
220
- getClient(parameters: { chainId?: number | undefined }): Client | Promise<Client>
221
- }
222
-
223
- /** Reads TIP-1034 channel state for a recovery candidate. */
224
- export type ReadReusableChannelState = (
225
- client: Client,
226
- channelId: Hex,
227
- escrow: Address,
228
- ) => Promise<Chain.ChannelState>
229
-
230
- /** Expected request fields used to prove a descriptor belongs to the current challenge. */
231
- export type ReusableChannelExpectation = {
232
- /** Chain ID used in the TIP-1034 channel ID derivation. */
233
- chainId: number
234
- /** Escrow precompile address used in the TIP-1034 channel ID derivation. */
235
- escrow: Address
236
- /** Payee expected by the current challenge. */
237
- payee: Address
238
- /** Payer address controlled by the local account. */
239
- payer: Address
240
- /** Voucher authority resolved from the local account. */
241
- authorizedSigner: Address
242
- /** Token expected by the current challenge. */
243
- token: Address
244
- }
245
-
246
- /** Inputs for validating and loading an existing precompile session channel. */
247
- export type ResolveReusableChannelParameters = {
248
- /** Optional caller/server supplied channel ID. Must match the descriptor-derived ID. */
249
- channelId?: string | undefined
250
- /** Viem client used to read on-chain channel state. */
251
- client: Client
252
- /** Descriptor required by TIP-1034 vouchers and management transactions. */
253
- descriptor: Channel.ChannelDescriptor
254
- /** Expected challenge fields the descriptor must match. */
255
- expected: ReusableChannelExpectation
256
- /** Optional state reader for tests or custom clients. Defaults to `Chain.getChannelState`. */
257
- readChannelState?: ReadReusableChannelState | undefined
258
- }
259
-
260
- /** Validated reusable channel data. */
261
- export type ReusableChannel = {
262
- /** Descriptor-derived TIP-1034 channel ID. */
263
- channelId: Hex
264
- /** On-chain channel state proving the channel is open and reusable. */
265
- state: Chain.ChannelState
266
- }
267
-
268
- /** Resolved payment challenge fields used to plan a client-side session credential. */
269
- export type ChallengeContext = {
270
- amount: bigint
271
- challenge: Challenge.Challenge
272
- chainId: number
273
- client: Client
274
- escrow: Address
275
- feePayer?: boolean | undefined
276
- key: string
277
- operator?: Address | undefined
278
- payee: Address
279
- snapshot?: SessionSnapshot | undefined
280
- /** Server-provided raw deposit hint for opening a channel, before local maxDeposit capping. */
281
- suggestedDepositRaw?: string | undefined
282
- token: Address
283
- }
284
-
285
- /** Inputs used to choose the next client-side session credential operation. */
286
- export type PlanCredentialParameters = {
287
- account: ViemAccount
288
- /** Channel previously stored for this challenge scope, fetched by the caller. */
289
- entry: ChannelEntry | undefined
290
- context?: SessionContext | undefined
291
- decimals: number
292
- maxDeposit?: bigint | undefined
293
- resolved: ChallengeContext
294
- }
295
-
296
- /** Inputs used to derive reusable-channel recovery context from caller context and server hints. */
297
- export type ResolveRecoverContextParameters = {
298
- /** Caller-provided low-level session context, when present. */
299
- context?: SessionContext | undefined
300
- /** Server-provided session snapshot, when present. */
301
- snapshot?: SessionSnapshot | undefined
302
- }
303
-
304
- /** Inputs used to choose the next cumulative authorization for a recovered channel. */
305
- export type ResolveRecoveredCumulativeParameters = {
306
- /** Caller or stored-channel recovery context. */
307
- context: DescriptorSessionContext
308
- /** Token decimals used to parse human-readable context amounts. */
309
- decimals: number
310
- /** Current request amount from the active challenge. */
311
- requestAmount: bigint
312
- /** Server snapshot for the recovered channel, when present. */
313
- snapshot?: SessionSnapshot | undefined
314
- /** On-chain settled amount used when no local/server accounting is available. */
315
- settled: bigint
316
- }
317
-
318
- /** Inputs used to validate and hydrate a server-provided session snapshot. */
319
- export type HydrateSessionSnapshotParameters = {
320
- /** Account expected to own the channel and its voucher authority. */
321
- account: ViemAccount
322
- /** Viem client used to read authoritative TIP-1034 channel state. */
323
- client: Client
324
- /** Snapshot returned by an MPP server bootstrap. */
325
- snapshot: SessionSnapshot
326
- /** Optional state reader for deterministic tests. */
327
- readChannelState?: ReadReusableChannelState | undefined
328
- }
329
-
330
- /** Validated client channel state reconstructed without local persistence. */
331
- export type HydratedSessionSnapshot = {
332
- /** Reusable channel entry safe to cache locally. */
333
- entry: ChannelEntry
334
- /** Server-accounted delivered spend at bootstrap time. */
335
- spent: bigint
336
- }
337
-
338
- /** Data-first description of the next credential operation the client should execute. */
339
- export type CredentialPlan =
340
- /** No reusable channel is available, so create an open transaction and initial voucher. */
341
- | {
342
- type: 'open'
343
- account: ViemAccount
344
- context?: SessionContext | undefined
345
- maxDeposit?: bigint | undefined
346
- resolved: ChallengeContext
347
- }
348
- /** Rehydrate a known channel from server snapshot or caller descriptor before signing. */
349
- | {
350
- type: 'recover'
351
- account: ViemAccount
352
- context: DescriptorSessionContext
353
- decimals: number
354
- maxDeposit?: bigint | undefined
355
- resolved: ChallengeContext
356
- }
357
- /** Reuse an active cached channel by increasing the cumulative voucher amount. */
358
- | {
359
- type: 'voucher'
360
- account: ViemAccount
361
- entry: ChannelEntry
362
- maxDeposit?: bigint | undefined
363
- resolved: ChallengeContext
364
- }
365
- /** Caller supplied an explicit low-level action such as top-up, voucher, or close. */
366
- | {
367
- type: 'manual'
368
- account: ViemAccount
369
- context: ManualSessionDescriptorContext
370
- decimals: number
371
- resolved: ChallengeContext
372
- }
373
-
374
- type ManualCredentialParameters = Pick<
375
- Extract<CredentialPlan, { type: 'manual' }>,
376
- 'account' | 'context' | 'decimals' | 'resolved'
377
- > & {
378
- channelId: Hex
379
- descriptor: Channel.ChannelDescriptor
380
- }
381
-
382
- function isObject(value: unknown): value is Record<string, unknown> {
383
- return typeof value === 'object' && value !== null
384
- }
385
-
386
- function readOptionalAddress(value: unknown): Address | undefined {
387
- return typeof value === 'string' && isAddress(value, { strict: false }) ? value : undefined
388
- }
389
-
390
- function readMethodDetails(challenge: Challenge.Challenge): ClientSessionMethodDetails {
391
- const methodDetails = challenge.request.methodDetails
392
- if (!isObject(methodDetails)) return {}
393
- return {
394
- chainId: typeof methodDetails.chainId === 'number' ? methodDetails.chainId : undefined,
395
- escrowContract: readOptionalAddress(methodDetails.escrowContract),
396
- escrow: readOptionalAddress(methodDetails.escrow),
397
- feePayer: typeof methodDetails.feePayer === 'boolean' ? methodDetails.feePayer : undefined,
398
- operator: readOptionalAddress(methodDetails.operator),
399
- sessionSnapshot: Constants.getMethodDetail<SessionSnapshot>(
400
- methodDetails,
401
- Constants.MethodDetailKeys.sessionSnapshot,
402
- ),
403
- }
404
- }
405
-
406
- function readAddress(value: unknown, label: string): Address {
407
- if (typeof value === 'string' && isAddress(value, { strict: false })) return value
408
- throw new Error(`tempo session challenge missing ${label}`)
409
- }
410
-
411
- function readAmount(value: unknown): bigint {
412
- if (typeof value === 'string') return BigInt(value)
413
- throw new Error('tempo session challenge missing amount')
414
- }
415
-
416
- function readSuggestedDeposit(value: unknown): string | undefined {
417
- return typeof value === 'string' ? value : undefined
418
- }
419
-
420
- /** Resolves raw challenge fields into the typed data required by client credential planning. */
421
- export async function resolveChallengeContext(
422
- parameters: ResolveChallengeContextParameters,
423
- ): Promise<ChallengeContext> {
424
- const { challenge, escrowOverride, getClient } = parameters
425
- const methodDetails = readMethodDetails(challenge)
426
- const client = await getClient({ chainId: methodDetails.chainId })
427
- const chainId = methodDetails.chainId ?? client.chain?.id
428
- if (!chainId) throw new Error('No chainId configured for TIP-1034 session challenge.')
429
-
430
- const escrow = resolveEscrow(challenge, escrowOverride)
431
- const payee = readAddress(challenge.request.recipient, 'recipient')
432
- const token = readAddress(challenge.request.currency, 'currency')
433
-
434
- return {
435
- amount: readAmount(challenge.request.amount),
436
- challenge,
437
- chainId,
438
- client,
439
- escrow,
440
- feePayer: methodDetails.feePayer,
441
- key: channelKey({ payee, token, escrow, chainId }),
442
- operator: methodDetails.operator,
443
- payee,
444
- snapshot: methodDetails.sessionSnapshot,
445
- suggestedDepositRaw: readSuggestedDeposit(challenge.request.suggestedDeposit),
446
- token,
447
- }
448
- }
449
-
450
- /** Validates descriptor identity and reads open channel state for client-side recovery. */
451
- export async function resolveReusableChannel(
452
- parameters: ResolveReusableChannelParameters,
453
- ): Promise<ReusableChannel> {
454
- const {
455
- channelId,
456
- client,
457
- descriptor,
458
- expected,
459
- readChannelState = Chain.getChannelState,
460
- } = parameters
461
- const expectedChannelId = Channel.computeId({
462
- ...descriptor,
463
- chainId: expected.chainId,
464
- escrow: expected.escrow,
465
- })
466
-
467
- assertReusableChannelDescriptor({
468
- channelId,
469
- descriptor,
470
- expectedChannelId,
471
- payee: expected.payee,
472
- payer: expected.payer,
473
- authorizedSigner: expected.authorizedSigner,
474
- token: expected.token,
475
- })
476
-
477
- const state = await readChannelState(client, expectedChannelId, expected.escrow)
478
- if (state.deposit === 0n)
479
- throw new Error(`Channel ${expectedChannelId} cannot be reused (closed or not found on-chain).`)
480
- if (state.closeRequestedAt !== 0)
481
- throw new Error(`Channel ${expectedChannelId} cannot be reused (pending close request).`)
482
-
483
- return { channelId: expectedChannelId, state }
484
- }
485
-
486
- function assertReusableChannelDescriptor(parameters: {
487
- channelId?: string | undefined
488
- descriptor: Channel.ChannelDescriptor
489
- expectedChannelId: string
490
- payee: Address
491
- payer: Address
492
- authorizedSigner: Address
493
- token: Address
494
- }) {
495
- const { authorizedSigner, channelId, descriptor, expectedChannelId, payee, payer, token } =
496
- parameters
497
- if (channelId && channelId.toLowerCase() !== expectedChannelId.toLowerCase())
498
- throw new Error('context channelId does not match descriptor')
499
- if (!isSameAddress(descriptor.payee, payee))
500
- throw new Error('context descriptor payee does not match challenge')
501
- if (!isSameAddress(descriptor.token, token))
502
- throw new Error('context descriptor token does not match challenge')
503
- if (!isSameAddress(descriptor.payer, payer))
504
- throw new Error('context descriptor payer does not match account')
505
- if (!isSameAddress(Channel.resolveAuthorizedSigner(descriptor), authorizedSigner))
506
- throw new Error('context descriptor authorizedSigner does not match account')
507
- }
508
-
509
- /** Resolves descriptor-based recovery data, preferring caller context over server hints. */
510
- export function resolveRecoverContext(
511
- parameters: ResolveRecoverContextParameters,
512
- ): DescriptorSessionContext | undefined {
513
- const { context, snapshot } = parameters
514
- const descriptor = context?.descriptor ?? snapshot?.descriptor
515
- if (!descriptor) return undefined
516
- return {
517
- ...context,
518
- channelId: context?.channelId ?? snapshot?.channelId,
519
- descriptor,
520
- }
521
- }
522
-
523
- /** Resolves a voucher boundary that can satisfy the resumed request. */
524
- export function resolveRecoveredCumulative(
525
- parameters: ResolveRecoveredCumulativeParameters,
526
- ): bigint {
527
- const { context, decimals, requestAmount, snapshot, settled } = parameters
528
-
529
- if (snapshot) {
530
- return [
531
- BigInt(snapshot.acceptedCumulative),
532
- BigInt(snapshot.requiredCumulative),
533
- BigInt(snapshot.spent) + requestAmount,
534
- settled,
535
- ].reduce((highest, value) => (value > highest ? value : highest), 0n)
536
- }
537
-
538
- const contextCumulative = parseOptionalContextAmount(context, decimals, 'cumulativeAmount')
539
- if (contextCumulative !== undefined) return contextCumulative + requestAmount
540
- return settled + requestAmount
541
- }
542
-
543
- /** Checks a server snapshot against its signed voucher and current TIP-1034 state. */
544
- export async function hydrateSessionSnapshot(
545
- parameters: HydrateSessionSnapshotParameters,
546
- ): Promise<HydratedSessionSnapshot> {
547
- const { account, client, readChannelState, snapshot } = parameters
548
- const signed = snapshot.highestVoucher
549
- if (!signed) throw new Error('session snapshot is missing its highest signed voucher')
550
- if (signed.channelId.toLowerCase() !== snapshot.channelId.toLowerCase())
551
- throw new Error('session snapshot voucher channelId does not match snapshot channelId')
552
-
553
- const acceptedCumulative = BigInt(snapshot.acceptedCumulative)
554
- const voucherCumulative = BigInt(signed.cumulativeAmount)
555
- const requiredCumulative = BigInt(snapshot.requiredCumulative)
556
- const snapshotDeposit = BigInt(snapshot.deposit)
557
- const snapshotSettled = BigInt(snapshot.settled)
558
- const spent = BigInt(snapshot.spent)
559
- if (voucherCumulative !== acceptedCumulative)
560
- throw new Error('session snapshot voucher amount does not match acceptedCumulative')
561
- if (spent > acceptedCumulative)
562
- throw new Error('session snapshot spent exceeds acceptedCumulative')
563
- if (snapshotSettled > snapshotDeposit)
564
- throw new Error('session snapshot settled amount exceeds deposit')
565
-
566
- if (
567
- !Voucher.verifyVoucher(
568
- snapshot.escrow,
569
- snapshot.chainId,
570
- {
571
- channelId: signed.channelId,
572
- cumulativeAmount: voucherCumulative,
573
- signature: signed.signature,
574
- },
575
- Channel.resolveAuthorizedSigner(snapshot.descriptor),
576
- )
577
- )
578
- throw new Error('session snapshot highest voucher signature is invalid')
579
-
580
- const reusable = await resolveReusableChannel({
581
- channelId: snapshot.channelId,
582
- client,
583
- descriptor: snapshot.descriptor,
584
- expected: {
585
- chainId: snapshot.chainId,
586
- escrow: snapshot.escrow,
587
- payee: snapshot.descriptor.payee,
588
- payer: account.address,
589
- authorizedSigner: resolveAuthorizedSigner(account),
590
- token: snapshot.descriptor.token,
591
- },
592
- readChannelState,
593
- })
594
- const cumulativeAmount = [acceptedCumulative, requiredCumulative, reusable.state.settled].reduce(
595
- (highest, value) => (value > highest ? value : highest),
596
- 0n,
597
- )
598
- if (cumulativeAmount > reusable.state.deposit)
599
- throw new Error('recovered session cumulative amount exceeds on-chain channel deposit')
600
-
601
- return {
602
- entry: {
603
- channelId: reusable.channelId,
604
- cumulativeAmount,
605
- deposit: reusable.state.deposit,
606
- descriptor: snapshot.descriptor,
607
- escrow: snapshot.escrow,
608
- chainId: snapshot.chainId,
609
- opened: true,
610
- },
611
- spent,
612
- }
613
- }
614
-
615
- /** Returns whether `account` can satisfy the descriptor's voucher authority. */
616
- export function canSignDescriptor(
617
- account: ViemAccount,
618
- descriptor: Channel.ChannelDescriptor,
619
- ): boolean {
620
- // Only the payer can deposit into and voucher against its own channel.
621
- if (!isSameAddress(account.address, descriptor.payer)) return false
622
- return isSameAddress(
623
- resolveAuthorizedSigner(account),
624
- Channel.resolveAuthorizedSigner(descriptor),
625
- )
626
- }
627
-
628
- /** Chooses the next credential plan from local channel cache and optional caller context. */
629
- export function planCredential(parameters: PlanCredentialParameters): CredentialPlan {
630
- const { account, entry, context, decimals, maxDeposit, resolved } = parameters
631
-
632
- if (hasSessionAction(context)) {
633
- if (!hasManualSessionDescriptor(context))
634
- throw new Error('descriptor required for TIP-1034 session action')
635
- return {
636
- type: 'manual',
637
- account,
638
- context,
639
- decimals,
640
- resolved,
641
- }
642
- }
643
-
644
- if (!entry && context?.channelId && !context.descriptor)
645
- throw new Error('descriptor required to reuse TIP-1034 channel')
646
- const recoverContext = resolveRecoverContext({ context, snapshot: resolved.snapshot })
647
- if (!entry && recoverContext && canSignDescriptor(account, recoverContext.descriptor)) {
648
- return {
649
- type: 'recover',
650
- account,
651
- context: recoverContext,
652
- decimals,
653
- maxDeposit,
654
- resolved,
655
- }
656
- }
657
- if (entry?.opened && canSignDescriptor(account, entry.descriptor))
658
- return { type: 'voucher', account, entry, maxDeposit, resolved }
659
- return { type: 'open', account, context, maxDeposit, resolved }
660
- }
661
-
662
- /** Executes a credential plan and returns the concrete session credential payload. */
663
- export async function executeCredentialPlan(
664
- plan: CredentialPlan,
665
- sink: ChannelSink,
666
- autoSwap: AutoSwap.resolve.Resolved | false = false,
667
- ): Promise<SessionCredentialPayload> {
668
- switch (plan.type) {
669
- case 'open':
670
- return open(plan, sink, autoSwap)
671
- case 'recover':
672
- return recover(plan, sink)
673
- case 'voucher':
674
- return voucher(plan, sink)
675
- case 'manual':
676
- return manual(plan, sink, autoSwap)
677
- }
678
- }
679
-
680
- async function resolveAutoSwapCalls(
681
- autoSwap: AutoSwap.resolve.Resolved | false,
682
- parameters: {
683
- account: Address
684
- amountOut: bigint
685
- client: Client
686
- tokenOut: Address
687
- },
688
- ): Promise<readonly TempoChannelCall[] | undefined> {
689
- if (!autoSwap) return undefined
690
- return (await AutoSwap.findCalls(parameters.client, {
691
- account: parameters.account,
692
- amountOut: parameters.amountOut,
693
- tokenOut: parameters.tokenOut,
694
- tokenIn: autoSwap.tokenIn,
695
- slippage: autoSwap.slippage,
696
- })) as readonly TempoChannelCall[] | undefined
697
- }
698
-
699
- async function open(
700
- plan: Extract<CredentialPlan, { type: 'open' }>,
701
- sink: ChannelSink,
702
- autoSwap: AutoSwap.resolve.Resolved | false,
703
- ): Promise<SessionCredentialPayload> {
704
- const { account, resolved } = plan
705
- const deposit = resolveOpeningDeposit({
706
- contextDepositRaw: plan.context?.depositRaw,
707
- maxDeposit: plan.maxDeposit,
708
- requestAmount: resolved.amount,
709
- suggestedDepositRaw: resolved.suggestedDepositRaw,
710
- })
711
- const payload = await createOpenPayload(resolved.client, account, {
712
- chainId: resolved.chainId,
713
- deposit,
714
- escrow: resolved.escrow,
715
- feePayer: resolved.feePayer,
716
- initialAmount: resolved.amount,
717
- operator: resolved.operator,
718
- payee: resolved.payee,
719
- prefixCalls: await resolveAutoSwapCalls(autoSwap, {
720
- account: account.address,
721
- amountOut: deposit,
722
- client: resolved.client,
723
- tokenOut: resolved.token,
724
- }),
725
- token: resolved.token,
726
- })
727
- await storeChannelEntry(sink, {
728
- channelId: payload.channelId,
729
- cumulativeAmount: resolved.amount,
730
- deposit,
731
- descriptor: payload.descriptor,
732
- escrow: resolved.escrow,
733
- chainId: resolved.chainId,
734
- opened: true,
735
- })
736
- return payload
737
- }
738
-
739
- async function recover(
740
- plan: Extract<CredentialPlan, { type: 'recover' }>,
741
- sink: ChannelSink,
742
- ): Promise<SessionCredentialPayload> {
743
- const { account, context, decimals, maxDeposit, resolved } = plan
744
- const { descriptor } = context
745
- const reusable = await resolveReusableChannel({
746
- channelId: context.channelId,
747
- client: resolved.client,
748
- descriptor,
749
- expected: {
750
- chainId: resolved.chainId,
751
- escrow: resolved.escrow,
752
- payee: resolved.payee,
753
- payer: account.address,
754
- authorizedSigner: resolveAuthorizedSigner(account),
755
- token: resolved.token,
756
- },
757
- })
758
- const cumulativeAmount = resolveRecoveredCumulative({
759
- context,
760
- decimals,
761
- requestAmount: resolved.amount,
762
- settled: reusable.state.settled,
763
- snapshot: resolved.snapshot,
764
- })
765
- if (cumulativeAmount > reusable.state.deposit)
766
- throw new Error('recovered voucher amount exceeds on-chain channel deposit')
767
- assertWithinMaxDeposit(cumulativeAmount, maxDeposit)
768
- const payload = await createVoucherPayload(
769
- resolved.client,
770
- account,
771
- descriptor,
772
- cumulativeAmount,
773
- resolved.chainId,
774
- resolved.escrow,
775
- )
776
- await storeChannelEntry(sink, {
777
- channelId: reusable.channelId,
778
- cumulativeAmount,
779
- deposit: reusable.state.deposit,
780
- descriptor,
781
- escrow: resolved.escrow,
782
- chainId: resolved.chainId,
783
- opened: true,
784
- })
785
- return payload
786
- }
787
-
788
- async function voucher(
789
- plan: Extract<CredentialPlan, { type: 'voucher' }>,
790
- sink: ChannelSink,
791
- ): Promise<SessionCredentialPayload> {
792
- const { account, entry, resolved } = plan
793
- const cumulativeAmount = entry.cumulativeAmount + resolved.amount
794
- assertWithinMaxDeposit(cumulativeAmount, plan.maxDeposit)
795
- const payload = await createVoucherPayload(
796
- resolved.client,
797
- account,
798
- entry.descriptor,
799
- cumulativeAmount,
800
- resolved.chainId,
801
- resolved.escrow,
802
- )
803
- entry.cumulativeAmount = cumulativeAmount
804
- await storeChannelEntry(sink, entry)
805
- return payload
806
- }
807
-
808
- async function manual(
809
- plan: Extract<CredentialPlan, { type: 'manual' }>,
810
- sink: ChannelSink,
811
- autoSwap: AutoSwap.resolve.Resolved | false,
812
- ): Promise<SessionCredentialPayload> {
813
- const { account, context, decimals, resolved } = plan
814
- const { descriptor } = context
815
- const channelId = Channel.computeId({
816
- ...descriptor,
817
- chainId: resolved.chainId,
818
- escrow: resolved.escrow,
819
- })
820
- assertReusableChannelDescriptor({
821
- channelId: context.channelId,
822
- descriptor,
823
- expectedChannelId: channelId,
824
- payee: resolved.payee,
825
- payer: account.address,
826
- authorizedSigner: resolveAuthorizedSigner(account),
827
- token: resolved.token,
828
- })
829
-
830
- const payload = await executeManualCredential(
831
- {
832
- account,
833
- channelId,
834
- context,
835
- decimals,
836
- descriptor,
837
- resolved,
838
- },
839
- autoSwap,
840
- )
841
- await applyCumulative(sink, resolved.key, payload)
842
- return payload
843
- }
844
-
845
- async function executeManualCredential(
846
- parameters: ManualCredentialParameters,
847
- autoSwap: AutoSwap.resolve.Resolved | false,
848
- ): Promise<SessionCredentialPayload> {
849
- switch (parameters.context.action) {
850
- case 'open':
851
- return manualOpen(parameters)
852
- case 'topUp':
853
- return manualTopUp(parameters, autoSwap)
854
- case 'voucher':
855
- return manualVoucher(parameters)
856
- case 'close':
857
- return manualClose(parameters)
858
- }
859
- }
860
-
861
- async function manualOpen(
862
- parameters: ManualCredentialParameters,
863
- ): Promise<SessionCredentialPayload> {
864
- const { account, channelId, context, decimals, descriptor, resolved } = parameters
865
- if (!context.transaction) throw new Error('transaction required for open action')
866
- const cumulativeAmount = requireContextAmount(context, decimals, 'cumulativeAmount', 'open')
867
- const voucher = await createVoucherPayload(
868
- resolved.client,
869
- account,
870
- descriptor,
871
- cumulativeAmount,
872
- resolved.chainId,
873
- resolved.escrow,
874
- )
875
- return {
876
- action: 'open',
877
- type: 'transaction',
878
- channelId,
879
- transaction: context.transaction,
880
- signature: voucher.signature,
881
- descriptor,
882
- cumulativeAmount: cumulativeAmount.toString(),
883
- authorizedSigner: descriptor.authorizedSigner,
884
- }
885
- }
886
-
887
- async function manualTopUp(
888
- parameters: ManualCredentialParameters,
889
- autoSwap: AutoSwap.resolve.Resolved | false,
890
- ): Promise<SessionCredentialPayload> {
891
- const { account, channelId, context, decimals, descriptor, resolved } = parameters
892
- const additionalDeposit = requireContextAmount(context, decimals, 'additionalDeposit', 'topUp')
893
- if (context.transaction) {
894
- return {
895
- action: 'topUp',
896
- type: 'transaction',
897
- channelId,
898
- transaction: context.transaction,
899
- descriptor,
900
- additionalDeposit: additionalDeposit.toString(),
901
- }
902
- }
903
- return createTopUpPayload(
904
- resolved.client,
905
- account,
906
- descriptor,
907
- additionalDeposit,
908
- resolved.chainId,
909
- resolved.feePayer,
910
- resolved.escrow,
911
- await resolveAutoSwapCalls(autoSwap, {
912
- account: account.address,
913
- amountOut: additionalDeposit,
914
- client: resolved.client,
915
- tokenOut: resolved.token,
916
- }),
917
- )
918
- }
919
-
920
- function manualVoucher(parameters: ManualCredentialParameters): Promise<SessionCredentialPayload> {
921
- const { account, context, decimals, descriptor, resolved } = parameters
922
- return createVoucherPayload(
923
- resolved.client,
924
- account,
925
- descriptor,
926
- requireContextAmount(context, decimals, 'cumulativeAmount', 'voucher'),
927
- resolved.chainId,
928
- resolved.escrow,
929
- )
930
- }
931
-
932
- function manualClose(parameters: ManualCredentialParameters): Promise<SessionCredentialPayload> {
933
- const { account, context, decimals, descriptor, resolved } = parameters
934
- return createClosePayload(
935
- resolved.client,
936
- account,
937
- descriptor,
938
- requireContextAmount(context, decimals, 'cumulativeAmount', 'close'),
939
- resolved.chainId,
940
- resolved.escrow,
941
- )
942
- }