mppx 0.6.31 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +20 -11
  3. package/dist/Challenge.d.ts.map +1 -1
  4. package/dist/Challenge.js +27 -13
  5. package/dist/Challenge.js.map +1 -1
  6. package/dist/Constants.d.ts +46 -0
  7. package/dist/Constants.d.ts.map +1 -0
  8. package/dist/Constants.js +46 -0
  9. package/dist/Constants.js.map +1 -0
  10. package/dist/Credential.d.ts.map +1 -1
  11. package/dist/Credential.js +5 -4
  12. package/dist/Credential.js.map +1 -1
  13. package/dist/Mcp.d.ts +3 -0
  14. package/dist/Mcp.d.ts.map +1 -1
  15. package/dist/Mcp.js +2 -0
  16. package/dist/Mcp.js.map +1 -1
  17. package/dist/Method.d.ts +32 -4
  18. package/dist/Method.d.ts.map +1 -1
  19. package/dist/Method.js +5 -2
  20. package/dist/Method.js.map +1 -1
  21. package/dist/PaymentRequest.d.ts +10 -10
  22. package/dist/PaymentRequest.js +8 -8
  23. package/dist/Receipt.d.ts.map +1 -1
  24. package/dist/Receipt.js +3 -2
  25. package/dist/Receipt.js.map +1 -1
  26. package/dist/cli/cli.d.ts.map +1 -1
  27. package/dist/cli/cli.js +19 -11
  28. package/dist/cli/cli.js.map +1 -1
  29. package/dist/cli/plugins/tempo.d.ts.map +1 -1
  30. package/dist/cli/plugins/tempo.js +17 -6
  31. package/dist/cli/plugins/tempo.js.map +1 -1
  32. package/dist/cli/utils.d.ts +5 -0
  33. package/dist/cli/utils.d.ts.map +1 -1
  34. package/dist/cli/utils.js +10 -0
  35. package/dist/cli/utils.js.map +1 -1
  36. package/dist/client/Methods.d.ts +5 -2
  37. package/dist/client/Methods.d.ts.map +1 -1
  38. package/dist/client/Methods.js +5 -2
  39. package/dist/client/Methods.js.map +1 -1
  40. package/dist/client/Mppx.js +2 -2
  41. package/dist/client/Mppx.js.map +1 -1
  42. package/dist/client/Transport.d.ts +11 -16
  43. package/dist/client/Transport.d.ts.map +1 -1
  44. package/dist/client/Transport.js +55 -76
  45. package/dist/client/Transport.js.map +1 -1
  46. package/dist/client/index.d.ts +5 -1
  47. package/dist/client/index.d.ts.map +1 -1
  48. package/dist/client/index.js +3 -1
  49. package/dist/client/index.js.map +1 -1
  50. package/dist/client/internal/Fetch.d.ts.map +1 -1
  51. package/dist/client/internal/Fetch.js +60 -13
  52. package/dist/client/internal/Fetch.js.map +1 -1
  53. package/dist/client/internal/protocols/Mcp.d.ts +7 -0
  54. package/dist/client/internal/protocols/Mcp.d.ts.map +1 -0
  55. package/dist/client/internal/protocols/Mcp.js +159 -0
  56. package/dist/client/internal/protocols/Mcp.js.map +1 -0
  57. package/dist/client/internal/protocols/Mpp.d.ts +4 -0
  58. package/dist/client/internal/protocols/Mpp.d.ts.map +1 -0
  59. package/dist/client/internal/protocols/Mpp.js +18 -0
  60. package/dist/client/internal/protocols/Mpp.js.map +1 -0
  61. package/dist/client/internal/protocols/Protocol.d.ts +10 -0
  62. package/dist/client/internal/protocols/Protocol.d.ts.map +1 -0
  63. package/dist/client/internal/protocols/Protocol.js +2 -0
  64. package/dist/client/internal/protocols/Protocol.js.map +1 -0
  65. package/dist/client/internal/protocols/Shared.d.ts +5 -0
  66. package/dist/client/internal/protocols/Shared.d.ts.map +1 -0
  67. package/dist/client/internal/protocols/Shared.js +20 -0
  68. package/dist/client/internal/protocols/Shared.js.map +1 -0
  69. package/dist/client/internal/protocols/X402.d.ts +8 -0
  70. package/dist/client/internal/protocols/X402.d.ts.map +1 -0
  71. package/dist/client/internal/protocols/X402.js +39 -0
  72. package/dist/client/internal/protocols/X402.js.map +1 -0
  73. package/dist/evm/client/index.d.ts +1 -0
  74. package/dist/evm/client/index.d.ts.map +1 -1
  75. package/dist/evm/client/index.js +1 -0
  76. package/dist/evm/client/index.js.map +1 -1
  77. package/dist/evm/index.d.ts +2 -0
  78. package/dist/evm/index.d.ts.map +1 -1
  79. package/dist/evm/index.js +2 -0
  80. package/dist/evm/index.js.map +1 -1
  81. package/dist/evm/server/Methods.d.ts +1 -1
  82. package/dist/evm/server/Methods.d.ts.map +1 -1
  83. package/dist/evm/server/index.d.ts +1 -0
  84. package/dist/evm/server/index.d.ts.map +1 -1
  85. package/dist/evm/server/index.js +1 -0
  86. package/dist/evm/server/index.js.map +1 -1
  87. package/dist/index.d.ts +1 -0
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +1 -0
  90. package/dist/index.js.map +1 -1
  91. package/dist/internal/AcceptPayment.d.ts +3 -0
  92. package/dist/internal/AcceptPayment.d.ts.map +1 -1
  93. package/dist/internal/AcceptPayment.js +15 -11
  94. package/dist/internal/AcceptPayment.js.map +1 -1
  95. package/dist/mcp/client/McpClient.d.ts +101 -0
  96. package/dist/mcp/client/McpClient.d.ts.map +1 -0
  97. package/dist/mcp/client/McpClient.js +162 -0
  98. package/dist/mcp/client/McpClient.js.map +1 -0
  99. package/dist/mcp/client/index.d.ts.map +1 -0
  100. package/dist/mcp/client/index.js.map +1 -0
  101. package/dist/mcp/server/Transport.d.ts.map +1 -0
  102. package/dist/mcp/server/Transport.js.map +1 -0
  103. package/dist/mcp/server/index.d.ts.map +1 -0
  104. package/dist/mcp/server/index.js.map +1 -0
  105. package/dist/server/Mppx.d.ts +12 -4
  106. package/dist/server/Mppx.d.ts.map +1 -1
  107. package/dist/server/Mppx.js +85 -27
  108. package/dist/server/Mppx.js.map +1 -1
  109. package/dist/server/Response.d.ts.map +1 -1
  110. package/dist/server/Response.js +2 -1
  111. package/dist/server/Response.js.map +1 -1
  112. package/dist/server/Transport.d.ts +1 -1
  113. package/dist/server/Transport.d.ts.map +1 -1
  114. package/dist/server/Transport.js +5 -4
  115. package/dist/server/Transport.js.map +1 -1
  116. package/dist/server/index.d.ts +1 -0
  117. package/dist/server/index.d.ts.map +1 -1
  118. package/dist/server/index.js +1 -0
  119. package/dist/server/index.js.map +1 -1
  120. package/dist/stripe/client/Charge.d.ts +1 -1
  121. package/dist/stripe/client/Charge.d.ts.map +1 -1
  122. package/dist/stripe/client/Charge.js +3 -1
  123. package/dist/stripe/client/Charge.js.map +1 -1
  124. package/dist/stripe/server/Charge.d.ts +1 -1
  125. package/dist/stripe/server/Charge.d.ts.map +1 -1
  126. package/dist/stripe/server/Charge.js +9 -2
  127. package/dist/stripe/server/Charge.js.map +1 -1
  128. package/dist/stripe/server/Methods.d.ts +1 -1
  129. package/dist/stripe/server/Methods.d.ts.map +1 -1
  130. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  131. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  132. package/dist/stripe/server/internal/html.gen.js +1 -1
  133. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  134. package/dist/tempo/Methods.d.ts +18 -0
  135. package/dist/tempo/Methods.d.ts.map +1 -1
  136. package/dist/tempo/Methods.js +16 -1
  137. package/dist/tempo/Methods.js.map +1 -1
  138. package/dist/tempo/Proof.d.ts +85 -1
  139. package/dist/tempo/Proof.d.ts.map +1 -1
  140. package/dist/tempo/Proof.js +35 -0
  141. package/dist/tempo/Proof.js.map +1 -1
  142. package/dist/tempo/client/Charge.d.ts +19 -1
  143. package/dist/tempo/client/Charge.d.ts.map +1 -1
  144. package/dist/tempo/client/Charge.js +47 -27
  145. package/dist/tempo/client/Charge.js.map +1 -1
  146. package/dist/tempo/client/Methods.d.ts +41 -10
  147. package/dist/tempo/client/Methods.d.ts.map +1 -1
  148. package/dist/tempo/client/Methods.js +16 -7
  149. package/dist/tempo/client/Methods.js.map +1 -1
  150. package/dist/tempo/client/ResolveAccount.d.ts +40 -0
  151. package/dist/tempo/client/ResolveAccount.d.ts.map +1 -0
  152. package/dist/tempo/client/ResolveAccount.js +2 -0
  153. package/dist/tempo/client/ResolveAccount.js.map +1 -0
  154. package/dist/tempo/client/index.d.ts +7 -4
  155. package/dist/tempo/client/index.d.ts.map +1 -1
  156. package/dist/tempo/client/index.js +5 -3
  157. package/dist/tempo/client/index.js.map +1 -1
  158. package/dist/tempo/index.d.ts +1 -0
  159. package/dist/tempo/index.d.ts.map +1 -1
  160. package/dist/tempo/index.js +1 -0
  161. package/dist/tempo/index.js.map +1 -1
  162. package/dist/tempo/internal/fee-payer.d.ts +29 -1
  163. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  164. package/dist/tempo/internal/fee-payer.js +138 -4
  165. package/dist/tempo/internal/fee-payer.js.map +1 -1
  166. package/dist/tempo/internal/proof.d.ts +71 -5
  167. package/dist/tempo/internal/proof.d.ts.map +1 -1
  168. package/dist/tempo/internal/proof.js +42 -6
  169. package/dist/tempo/internal/proof.js.map +1 -1
  170. package/dist/tempo/{client → legacy/client}/ChannelOps.d.ts +19 -6
  171. package/dist/tempo/legacy/client/ChannelOps.d.ts.map +1 -0
  172. package/dist/tempo/{client → legacy/client}/ChannelOps.js +9 -3
  173. package/dist/tempo/legacy/client/ChannelOps.js.map +1 -0
  174. package/dist/tempo/{client → legacy/client}/Session.d.ts +23 -4
  175. package/dist/tempo/legacy/client/Session.d.ts.map +1 -0
  176. package/dist/tempo/{client → legacy/client}/Session.js +14 -7
  177. package/dist/tempo/legacy/client/Session.js.map +1 -0
  178. package/dist/tempo/{client → legacy/client}/SessionManager.d.ts +20 -5
  179. package/dist/tempo/legacy/client/SessionManager.d.ts.map +1 -0
  180. package/dist/tempo/{client → legacy/client}/SessionManager.js +30 -19
  181. package/dist/tempo/legacy/client/SessionManager.js.map +1 -0
  182. package/dist/tempo/legacy/client/index.d.ts +7 -0
  183. package/dist/tempo/legacy/client/index.d.ts.map +1 -0
  184. package/dist/tempo/legacy/client/index.js +5 -0
  185. package/dist/tempo/legacy/client/index.js.map +1 -0
  186. package/dist/tempo/legacy/index.d.ts +7 -0
  187. package/dist/tempo/legacy/index.d.ts.map +1 -0
  188. package/dist/tempo/legacy/index.js +7 -0
  189. package/dist/tempo/legacy/index.js.map +1 -0
  190. package/dist/tempo/{server → legacy/server}/Session.d.ts +28 -11
  191. package/dist/tempo/legacy/server/Session.d.ts.map +1 -0
  192. package/dist/tempo/{server → legacy/server}/Session.js +12 -10
  193. package/dist/tempo/legacy/server/Session.js.map +1 -0
  194. package/dist/tempo/legacy/server/index.d.ts +5 -0
  195. package/dist/tempo/legacy/server/index.d.ts.map +1 -0
  196. package/dist/tempo/legacy/server/index.js +5 -0
  197. package/dist/tempo/legacy/server/index.js.map +1 -0
  198. package/dist/tempo/{session → legacy/session}/Chain.d.ts +30 -23
  199. package/dist/tempo/legacy/session/Chain.d.ts.map +1 -0
  200. package/dist/tempo/{session → legacy/session}/Chain.js +12 -11
  201. package/dist/tempo/legacy/session/Chain.js.map +1 -0
  202. package/dist/tempo/{session → legacy/session}/Channel.d.ts +1 -0
  203. package/dist/tempo/legacy/session/Channel.d.ts.map +1 -0
  204. package/dist/tempo/legacy/session/Channel.js.map +1 -0
  205. package/dist/tempo/legacy/session/ChannelStore.d.ts +22 -0
  206. package/dist/tempo/legacy/session/ChannelStore.d.ts.map +1 -0
  207. package/dist/tempo/legacy/session/ChannelStore.js +6 -0
  208. package/dist/tempo/legacy/session/ChannelStore.js.map +1 -0
  209. package/dist/tempo/legacy/session/Types.d.ts +73 -0
  210. package/dist/tempo/legacy/session/Types.d.ts.map +1 -0
  211. package/dist/tempo/legacy/session/Types.js.map +1 -0
  212. package/dist/tempo/{session → legacy/session}/Voucher.d.ts +4 -4
  213. package/dist/tempo/legacy/session/Voucher.d.ts.map +1 -0
  214. package/dist/tempo/{session → legacy/session}/Voucher.js +1 -1
  215. package/dist/tempo/legacy/session/Voucher.js.map +1 -0
  216. package/dist/tempo/{session → legacy/session}/escrow.abi.d.ts +1 -0
  217. package/dist/tempo/{session → legacy/session}/escrow.abi.d.ts.map +1 -1
  218. package/dist/tempo/{session → legacy/session}/escrow.abi.js +1 -0
  219. package/dist/tempo/legacy/session/escrow.abi.js.map +1 -0
  220. package/dist/tempo/legacy/session/index.d.ts +9 -0
  221. package/dist/tempo/legacy/session/index.d.ts.map +1 -0
  222. package/dist/tempo/legacy/session/index.js +9 -0
  223. package/dist/tempo/legacy/session/index.js.map +1 -0
  224. package/dist/tempo/server/Charge.d.ts +1 -1
  225. package/dist/tempo/server/Charge.d.ts.map +1 -1
  226. package/dist/tempo/server/Charge.js +51 -30
  227. package/dist/tempo/server/Charge.js.map +1 -1
  228. package/dist/tempo/server/Methods.d.ts +67 -8
  229. package/dist/tempo/server/Methods.d.ts.map +1 -1
  230. package/dist/tempo/server/Methods.js +40 -10
  231. package/dist/tempo/server/Methods.js.map +1 -1
  232. package/dist/tempo/server/Subscription.d.ts +11 -1
  233. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  234. package/dist/tempo/server/Subscription.js +135 -23
  235. package/dist/tempo/server/Subscription.js.map +1 -1
  236. package/dist/tempo/server/index.d.ts +6 -5
  237. package/dist/tempo/server/index.d.ts.map +1 -1
  238. package/dist/tempo/server/index.js +5 -5
  239. package/dist/tempo/server/index.js.map +1 -1
  240. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  241. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  242. package/dist/tempo/server/internal/html.gen.js +1 -1
  243. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  244. package/dist/tempo/server/internal/request-body.d.ts +7 -2
  245. package/dist/tempo/server/internal/request-body.d.ts.map +1 -1
  246. package/dist/tempo/server/internal/request-body.js +20 -3
  247. package/dist/tempo/server/internal/request-body.js.map +1 -1
  248. package/dist/tempo/server/internal/transport.d.ts +8 -4
  249. package/dist/tempo/server/internal/transport.d.ts.map +1 -1
  250. package/dist/tempo/server/internal/transport.js +8 -7
  251. package/dist/tempo/server/internal/transport.js.map +1 -1
  252. package/dist/tempo/session/Snapshot.d.ts +32 -0
  253. package/dist/tempo/session/Snapshot.d.ts.map +1 -0
  254. package/dist/tempo/session/Snapshot.js +37 -0
  255. package/dist/tempo/session/Snapshot.js.map +1 -0
  256. package/dist/tempo/session/client/ChannelOps.d.ts +81 -0
  257. package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -0
  258. package/dist/tempo/session/client/ChannelOps.js +201 -0
  259. package/dist/tempo/session/client/ChannelOps.js.map +1 -0
  260. package/dist/tempo/session/client/ChannelStore.d.ts +51 -0
  261. package/dist/tempo/session/client/ChannelStore.d.ts.map +1 -0
  262. package/dist/tempo/session/client/ChannelStore.js +63 -0
  263. package/dist/tempo/session/client/ChannelStore.js.map +1 -0
  264. package/dist/tempo/session/client/CredentialState.d.ts +245 -0
  265. package/dist/tempo/session/client/CredentialState.d.ts.map +1 -0
  266. package/dist/tempo/session/client/CredentialState.js +419 -0
  267. package/dist/tempo/session/client/CredentialState.js.map +1 -0
  268. package/dist/tempo/session/client/ReceiptCoordinator.d.ts +26 -0
  269. package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +1 -0
  270. package/dist/tempo/session/client/ReceiptCoordinator.js +61 -0
  271. package/dist/tempo/session/client/ReceiptCoordinator.js.map +1 -0
  272. package/dist/tempo/session/client/Runtime.d.ts +464 -0
  273. package/dist/tempo/session/client/Runtime.d.ts.map +1 -0
  274. package/dist/tempo/session/client/Runtime.js +499 -0
  275. package/dist/tempo/session/client/Runtime.js.map +1 -0
  276. package/dist/tempo/session/client/Session.d.ts +138 -0
  277. package/dist/tempo/session/client/Session.d.ts.map +1 -0
  278. package/dist/tempo/session/client/Session.js +69 -0
  279. package/dist/tempo/session/client/Session.js.map +1 -0
  280. package/dist/tempo/session/client/SessionManager.d.ts +84 -0
  281. package/dist/tempo/session/client/SessionManager.d.ts.map +1 -0
  282. package/dist/tempo/session/client/SessionManager.js +577 -0
  283. package/dist/tempo/session/client/SessionManager.js.map +1 -0
  284. package/dist/tempo/session/client/Transports.d.ts +449 -0
  285. package/dist/tempo/session/client/Transports.d.ts.map +1 -0
  286. package/dist/tempo/session/client/Transports.js +721 -0
  287. package/dist/tempo/session/client/Transports.js.map +1 -0
  288. package/dist/tempo/session/client/index.d.ts +11 -0
  289. package/dist/tempo/session/client/index.d.ts.map +1 -0
  290. package/dist/tempo/session/client/index.js +6 -0
  291. package/dist/tempo/session/client/index.js.map +1 -0
  292. package/dist/tempo/session/index.d.ts +7 -8
  293. package/dist/tempo/session/index.d.ts.map +1 -1
  294. package/dist/tempo/session/index.js +7 -8
  295. package/dist/tempo/session/index.js.map +1 -1
  296. package/dist/tempo/session/precompile/Chain.d.ts +319 -0
  297. package/dist/tempo/session/precompile/Chain.d.ts.map +1 -0
  298. package/dist/tempo/session/precompile/Chain.js +492 -0
  299. package/dist/tempo/session/precompile/Chain.js.map +1 -0
  300. package/dist/tempo/session/precompile/Channel.d.ts +46 -0
  301. package/dist/tempo/session/precompile/Channel.d.ts.map +1 -0
  302. package/dist/tempo/session/precompile/Channel.js +56 -0
  303. package/dist/tempo/session/precompile/Channel.js.map +1 -0
  304. package/dist/tempo/session/precompile/Protocol.d.ts +308 -0
  305. package/dist/tempo/session/precompile/Protocol.d.ts.map +1 -0
  306. package/dist/tempo/session/precompile/Protocol.js +264 -0
  307. package/dist/tempo/session/precompile/Protocol.js.map +1 -0
  308. package/dist/tempo/session/precompile/Voucher.d.ts +40 -0
  309. package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -0
  310. package/dist/tempo/session/precompile/Voucher.js +125 -0
  311. package/dist/tempo/session/precompile/Voucher.js.map +1 -0
  312. package/dist/tempo/session/precompile/escrow.abi.d.ts +522 -0
  313. package/dist/tempo/session/precompile/escrow.abi.d.ts.map +1 -0
  314. package/dist/tempo/session/precompile/escrow.abi.js +224 -0
  315. package/dist/tempo/session/precompile/escrow.abi.js.map +1 -0
  316. package/dist/tempo/session/precompile/index.d.ts +24 -0
  317. package/dist/tempo/session/precompile/index.d.ts.map +1 -0
  318. package/dist/tempo/session/precompile/index.js +22 -0
  319. package/dist/tempo/session/precompile/index.js.map +1 -0
  320. package/dist/tempo/session/server/ChannelOps.d.ts +56 -0
  321. package/dist/tempo/session/server/ChannelOps.d.ts.map +1 -0
  322. package/dist/tempo/session/server/ChannelOps.js +91 -0
  323. package/dist/tempo/session/server/ChannelOps.js.map +1 -0
  324. package/dist/tempo/session/server/ChannelStore.d.ts +347 -0
  325. package/dist/tempo/session/server/ChannelStore.d.ts.map +1 -0
  326. package/dist/tempo/session/server/ChannelStore.js +404 -0
  327. package/dist/tempo/session/server/ChannelStore.js.map +1 -0
  328. package/dist/tempo/session/server/CredentialVerification.d.ts +85 -0
  329. package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -0
  330. package/dist/tempo/session/server/CredentialVerification.js +494 -0
  331. package/dist/tempo/session/server/CredentialVerification.js.map +1 -0
  332. package/dist/tempo/session/server/MeteredStream.d.ts +40 -0
  333. package/dist/tempo/session/server/MeteredStream.d.ts.map +1 -0
  334. package/dist/tempo/session/server/MeteredStream.js +42 -0
  335. package/dist/tempo/session/server/MeteredStream.js.map +1 -0
  336. package/dist/tempo/session/server/RequestState.d.ts +208 -0
  337. package/dist/tempo/session/server/RequestState.d.ts.map +1 -0
  338. package/dist/tempo/session/server/RequestState.js +252 -0
  339. package/dist/tempo/session/server/RequestState.js.map +1 -0
  340. package/dist/tempo/session/server/Session.d.ts +169 -0
  341. package/dist/tempo/session/server/Session.d.ts.map +1 -0
  342. package/dist/tempo/session/server/Session.js +351 -0
  343. package/dist/tempo/session/server/Session.js.map +1 -0
  344. package/dist/tempo/session/server/Settlement.d.ts +185 -0
  345. package/dist/tempo/session/server/Settlement.d.ts.map +1 -0
  346. package/dist/tempo/session/server/Settlement.js +252 -0
  347. package/dist/tempo/session/server/Settlement.js.map +1 -0
  348. package/dist/tempo/session/{Sse.d.ts → server/Sse.d.ts} +9 -56
  349. package/dist/tempo/session/server/Sse.d.ts.map +1 -0
  350. package/dist/tempo/session/server/Sse.js +184 -0
  351. package/dist/tempo/session/server/Sse.js.map +1 -0
  352. package/dist/tempo/session/server/Transports.d.ts +89 -0
  353. package/dist/tempo/session/server/Transports.d.ts.map +1 -0
  354. package/dist/tempo/session/server/Transports.js +149 -0
  355. package/dist/tempo/session/server/Transports.js.map +1 -0
  356. package/dist/tempo/session/server/Ws.d.ts +48 -0
  357. package/dist/tempo/session/server/Ws.d.ts.map +1 -0
  358. package/dist/tempo/session/server/Ws.js +244 -0
  359. package/dist/tempo/session/server/Ws.js.map +1 -0
  360. package/dist/tempo/session/server/index.d.ts +4 -0
  361. package/dist/tempo/session/server/index.d.ts.map +1 -0
  362. package/dist/tempo/session/server/index.js +2 -0
  363. package/dist/tempo/session/server/index.js.map +1 -0
  364. package/dist/tempo/subscription/KeyAuthorization.d.ts +712 -1
  365. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  366. package/dist/tempo/subscription/Store.d.ts +2 -0
  367. package/dist/tempo/subscription/Store.d.ts.map +1 -1
  368. package/dist/tempo/subscription/Store.js +16 -1
  369. package/dist/tempo/subscription/Store.js.map +1 -1
  370. package/dist/x402/index.d.ts +1 -0
  371. package/dist/x402/index.d.ts.map +1 -1
  372. package/dist/x402/index.js +1 -0
  373. package/dist/x402/index.js.map +1 -1
  374. package/package.json +25 -9
  375. package/src/Challenge.test.ts +40 -0
  376. package/src/Challenge.ts +28 -13
  377. package/src/Constants.ts +58 -0
  378. package/src/Credential.ts +5 -4
  379. package/src/Mcp.ts +4 -0
  380. package/src/Method.ts +46 -5
  381. package/src/PaymentRequest.ts +10 -10
  382. package/src/Receipt.ts +3 -2
  383. package/src/cli/cli.test.ts +38 -43
  384. package/src/cli/cli.ts +23 -10
  385. package/src/cli/mcp.test.ts +21 -7
  386. package/src/cli/plugins/tempo.ts +21 -8
  387. package/src/cli/utils.test.ts +25 -1
  388. package/src/cli/utils.ts +10 -0
  389. package/src/client/Methods.ts +5 -2
  390. package/src/client/Mppx.test-d.ts +31 -1
  391. package/src/client/Mppx.test.ts +76 -1
  392. package/src/client/Mppx.ts +2 -2
  393. package/src/client/Transport.test.ts +225 -178
  394. package/src/client/Transport.ts +77 -84
  395. package/src/client/index.ts +25 -1
  396. package/src/client/internal/Fetch.test.ts +236 -6
  397. package/src/client/internal/Fetch.ts +69 -11
  398. package/src/client/internal/protocols/Mcp.test.ts +220 -0
  399. package/src/client/internal/protocols/Mcp.ts +162 -0
  400. package/src/client/internal/protocols/Mpp.ts +21 -0
  401. package/src/client/internal/protocols/Protocol.ts +10 -0
  402. package/src/client/internal/protocols/Shared.ts +25 -0
  403. package/src/client/internal/protocols/X402.ts +42 -0
  404. package/src/discovery/OpenApi.test.ts +1 -1
  405. package/src/env.d.ts +1 -1
  406. package/src/evm/PublicInterface.test-d.ts +1 -1
  407. package/src/evm/client/index.ts +1 -0
  408. package/src/evm/index.ts +2 -0
  409. package/src/evm/server/Charge.test.ts +1 -1
  410. package/src/evm/server/index.ts +1 -0
  411. package/src/index.ts +1 -0
  412. package/src/internal/AcceptPayment.test.ts +61 -0
  413. package/src/internal/AcceptPayment.ts +21 -14
  414. package/src/{mcp-sdk → mcp}/client/McpClient.integration.test.ts +18 -11
  415. package/src/{mcp-sdk → mcp}/client/McpClient.test-d.ts +45 -11
  416. package/src/{mcp-sdk → mcp}/client/McpClient.test.ts +211 -5
  417. package/src/mcp/client/McpClient.ts +307 -0
  418. package/src/mcp/client/McpClient.unit.test.ts +135 -0
  419. package/src/middlewares/elysia.test.ts +9 -5
  420. package/src/middlewares/express.test.ts +9 -5
  421. package/src/middlewares/hono.test.ts +5 -5
  422. package/src/middlewares/internal/mppx.test.ts +1 -1
  423. package/src/middlewares/nextjs.test.ts +9 -5
  424. package/src/proxy/Proxy.test.ts +9 -9
  425. package/src/proxy/services/anthropic.test.ts +1 -1
  426. package/src/proxy/services/openai.test.ts +1 -1
  427. package/src/proxy/services/stripe.test.ts +1 -1
  428. package/src/server/Mppx.authorize.test.ts +1 -1
  429. package/src/server/Mppx.test-d.ts +55 -1
  430. package/src/server/Mppx.test.ts +220 -9
  431. package/src/server/Mppx.ts +501 -407
  432. package/src/server/Response.ts +2 -1
  433. package/src/server/Transport.test.ts +6 -6
  434. package/src/server/Transport.ts +5 -4
  435. package/src/server/index.ts +1 -0
  436. package/src/stripe/Charge.integration.test.ts +1 -1
  437. package/src/stripe/client/Charge.test.ts +21 -6
  438. package/src/stripe/client/Charge.ts +6 -2
  439. package/src/stripe/server/Charge.test.ts +115 -2
  440. package/src/stripe/server/Charge.ts +13 -2
  441. package/src/stripe/server/internal/html/package.json +1 -1
  442. package/src/stripe/server/internal/html.gen.ts +1 -1
  443. package/src/tempo/AccessKeyAuthorization.test.ts +4 -94
  444. package/src/tempo/Methods.test.ts +45 -17
  445. package/src/tempo/Methods.ts +22 -0
  446. package/src/tempo/Proof.conformance.test.ts +146 -0
  447. package/src/tempo/Proof.test-d.ts +15 -0
  448. package/src/tempo/Proof.ts +52 -1
  449. package/src/tempo/PublicExports.test-d.ts +105 -0
  450. package/src/tempo/Subscription.integration.test.ts +1 -1
  451. package/src/tempo/client/Charge.test.ts +258 -0
  452. package/src/tempo/client/Charge.ts +84 -38
  453. package/src/tempo/client/Methods.ts +22 -8
  454. package/src/tempo/client/ResolveAccount.ts +46 -0
  455. package/src/tempo/client/index.ts +15 -4
  456. package/src/tempo/index.ts +1 -0
  457. package/src/tempo/internal/fee-payer.test.ts +296 -17
  458. package/src/tempo/internal/fee-payer.ts +186 -4
  459. package/src/tempo/internal/fee-token.test.ts +14 -9
  460. package/src/tempo/internal/proof.test.ts +12 -4
  461. package/src/tempo/internal/proof.ts +55 -6
  462. package/src/tempo/legacy/AccessKeyAuthorization.test.ts +162 -0
  463. package/src/tempo/legacy/README.md +9 -0
  464. package/src/tempo/{client → legacy/client}/ChannelOps.test.ts +6 -7
  465. package/src/tempo/{client → legacy/client}/ChannelOps.ts +22 -9
  466. package/src/tempo/{client → legacy/client}/Session.test.ts +51 -9
  467. package/src/tempo/{client → legacy/client}/Session.ts +25 -11
  468. package/src/tempo/{client → legacy/client}/SessionManager.test.ts +81 -9
  469. package/src/tempo/{client → legacy/client}/SessionManager.ts +52 -23
  470. package/src/tempo/legacy/client/index.ts +6 -0
  471. package/src/tempo/legacy/index.ts +6 -0
  472. package/src/tempo/{server → legacy/server}/Session.test.ts +136 -71
  473. package/src/tempo/{server → legacy/server}/Session.ts +32 -23
  474. package/src/tempo/legacy/server/index.ts +4 -0
  475. package/src/tempo/{session → legacy/session}/Chain.test.ts +3 -4
  476. package/src/tempo/{session → legacy/session}/Chain.ts +94 -63
  477. package/src/tempo/{session → legacy/session}/Channel.ts +1 -0
  478. package/src/tempo/legacy/session/ChannelStore.test.ts +58 -0
  479. package/src/tempo/legacy/session/ChannelStore.ts +39 -0
  480. package/src/tempo/legacy/session/Types.ts +91 -0
  481. package/src/tempo/{session → legacy/session}/Voucher.ts +12 -8
  482. package/src/tempo/{session → legacy/session}/escrow.abi.ts +1 -0
  483. package/src/tempo/legacy/session/index.ts +8 -0
  484. package/src/tempo/server/AtomicStore.test-d.ts +16 -11
  485. package/src/tempo/server/Charge.test.ts +480 -31
  486. package/src/tempo/server/Charge.ts +54 -30
  487. package/src/tempo/server/Methods.ts +58 -10
  488. package/src/tempo/server/Sse.test.ts +2 -2
  489. package/src/tempo/server/Subscription.test.ts +465 -3
  490. package/src/tempo/server/Subscription.ts +174 -19
  491. package/src/tempo/server/index.ts +6 -5
  492. package/src/tempo/server/internal/html/package.json +2 -2
  493. package/src/tempo/server/internal/html.gen.ts +1 -1
  494. package/src/tempo/server/internal/request-body.test.ts +37 -4
  495. package/src/tempo/server/internal/request-body.ts +25 -6
  496. package/src/tempo/server/internal/transport.test.ts +4 -4
  497. package/src/tempo/server/internal/transport.ts +19 -10
  498. package/src/tempo/session/Snapshot.test.ts +41 -0
  499. package/src/tempo/session/Snapshot.ts +74 -0
  500. package/src/tempo/session/client/ChannelOps.test.ts +163 -0
  501. package/src/tempo/session/client/ChannelOps.ts +330 -0
  502. package/src/tempo/session/client/ChannelStore.ts +111 -0
  503. package/src/tempo/session/client/CredentialState.test.ts +789 -0
  504. package/src/tempo/session/client/CredentialState.ts +799 -0
  505. package/src/tempo/session/client/ReceiptCoordinator.ts +95 -0
  506. package/src/tempo/session/client/Runtime.test.ts +1092 -0
  507. package/src/tempo/session/client/Runtime.ts +986 -0
  508. package/src/tempo/session/client/Session.test.ts +774 -0
  509. package/src/tempo/session/client/Session.ts +123 -0
  510. package/src/tempo/session/client/SessionManager.test.ts +1397 -0
  511. package/src/tempo/session/client/SessionManager.ts +751 -0
  512. package/src/tempo/session/client/Transports.test.ts +837 -0
  513. package/src/tempo/session/client/Transports.ts +1292 -0
  514. package/src/tempo/session/client/index.ts +40 -0
  515. package/src/tempo/session/index.ts +7 -8
  516. package/src/tempo/session/precompile/Chain.integration.test.ts +321 -0
  517. package/src/tempo/session/precompile/Chain.test.ts +1258 -0
  518. package/src/tempo/session/precompile/Chain.ts +979 -0
  519. package/src/tempo/session/precompile/Channel.test.ts +138 -0
  520. package/src/tempo/session/precompile/Channel.ts +103 -0
  521. package/src/tempo/session/precompile/Protocol.test.ts +358 -0
  522. package/src/tempo/session/precompile/Protocol.ts +520 -0
  523. package/src/tempo/session/precompile/Voucher.test.ts +354 -0
  524. package/src/tempo/session/precompile/Voucher.ts +162 -0
  525. package/src/tempo/session/precompile/escrow.abi.ts +226 -0
  526. package/src/tempo/session/precompile/index.ts +33 -0
  527. package/src/tempo/session/server/ChannelOps.test.ts +129 -0
  528. package/src/tempo/session/server/ChannelOps.ts +157 -0
  529. package/src/tempo/session/{ChannelStore.test.ts → server/ChannelStore.test.ts} +536 -29
  530. package/src/tempo/session/server/ChannelStore.ts +835 -0
  531. package/src/tempo/session/server/CredentialVerification.test.ts +146 -0
  532. package/src/tempo/session/server/CredentialVerification.ts +710 -0
  533. package/src/tempo/session/server/MeteredStream.ts +88 -0
  534. package/src/tempo/session/server/RequestState.test.ts +531 -0
  535. package/src/tempo/session/server/RequestState.ts +499 -0
  536. package/src/tempo/session/server/Session.integration.test.ts +444 -0
  537. package/src/tempo/session/server/Session.test.ts +3253 -0
  538. package/src/tempo/session/server/Session.ts +543 -0
  539. package/src/tempo/session/server/Settlement.test.ts +329 -0
  540. package/src/tempo/session/server/Settlement.ts +471 -0
  541. package/src/tempo/session/{Sse.test.ts → server/Sse.test.ts} +37 -3
  542. package/src/tempo/session/server/Sse.ts +254 -0
  543. package/src/tempo/session/server/Transports.test.ts +346 -0
  544. package/src/tempo/session/server/Transports.ts +255 -0
  545. package/src/tempo/session/{Ws.test.ts → server/Ws.test.ts} +4 -4
  546. package/src/tempo/session/server/Ws.ts +380 -0
  547. package/src/tempo/session/server/index.ts +8 -0
  548. package/src/tempo/subscription/Store.ts +27 -9
  549. package/src/x402/Exact.e2e.test.ts +1 -1
  550. package/src/x402/PublicInterface.test-d.ts +1 -1
  551. package/src/x402/index.ts +1 -0
  552. package/dist/mcp-sdk/client/McpClient.d.ts +0 -78
  553. package/dist/mcp-sdk/client/McpClient.d.ts.map +0 -1
  554. package/dist/mcp-sdk/client/McpClient.js +0 -105
  555. package/dist/mcp-sdk/client/McpClient.js.map +0 -1
  556. package/dist/mcp-sdk/client/index.d.ts.map +0 -1
  557. package/dist/mcp-sdk/client/index.js.map +0 -1
  558. package/dist/mcp-sdk/server/Transport.d.ts.map +0 -1
  559. package/dist/mcp-sdk/server/Transport.js.map +0 -1
  560. package/dist/mcp-sdk/server/index.d.ts.map +0 -1
  561. package/dist/mcp-sdk/server/index.js.map +0 -1
  562. package/dist/tempo/client/ChannelOps.d.ts.map +0 -1
  563. package/dist/tempo/client/ChannelOps.js.map +0 -1
  564. package/dist/tempo/client/Session.d.ts.map +0 -1
  565. package/dist/tempo/client/Session.js.map +0 -1
  566. package/dist/tempo/client/SessionManager.d.ts.map +0 -1
  567. package/dist/tempo/client/SessionManager.js.map +0 -1
  568. package/dist/tempo/server/Session.d.ts.map +0 -1
  569. package/dist/tempo/server/Session.js.map +0 -1
  570. package/dist/tempo/session/Chain.d.ts.map +0 -1
  571. package/dist/tempo/session/Chain.js.map +0 -1
  572. package/dist/tempo/session/Channel.d.ts.map +0 -1
  573. package/dist/tempo/session/Channel.js.map +0 -1
  574. package/dist/tempo/session/ChannelStore.d.ts +0 -117
  575. package/dist/tempo/session/ChannelStore.d.ts.map +0 -1
  576. package/dist/tempo/session/ChannelStore.js +0 -172
  577. package/dist/tempo/session/ChannelStore.js.map +0 -1
  578. package/dist/tempo/session/Receipt.d.ts +0 -22
  579. package/dist/tempo/session/Receipt.d.ts.map +0 -1
  580. package/dist/tempo/session/Receipt.js +0 -34
  581. package/dist/tempo/session/Receipt.js.map +0 -1
  582. package/dist/tempo/session/Sse.d.ts.map +0 -1
  583. package/dist/tempo/session/Sse.js +0 -363
  584. package/dist/tempo/session/Sse.js.map +0 -1
  585. package/dist/tempo/session/Types.d.ts +0 -78
  586. package/dist/tempo/session/Types.d.ts.map +0 -1
  587. package/dist/tempo/session/Types.js.map +0 -1
  588. package/dist/tempo/session/Voucher.d.ts.map +0 -1
  589. package/dist/tempo/session/Voucher.js.map +0 -1
  590. package/dist/tempo/session/Ws.d.ts +0 -87
  591. package/dist/tempo/session/Ws.d.ts.map +0 -1
  592. package/dist/tempo/session/Ws.js +0 -443
  593. package/dist/tempo/session/Ws.js.map +0 -1
  594. package/dist/tempo/session/escrow.abi.js.map +0 -1
  595. package/src/mcp-sdk/client/McpClient.ts +0 -196
  596. package/src/tempo/session/ChannelStore.ts +0 -308
  597. package/src/tempo/session/Receipt.test.ts +0 -89
  598. package/src/tempo/session/Receipt.ts +0 -46
  599. package/src/tempo/session/Sse.ts +0 -462
  600. package/src/tempo/session/Types.ts +0 -86
  601. package/src/tempo/session/Ws.ts +0 -576
  602. /package/dist/{mcp-sdk → mcp}/client/index.d.ts +0 -0
  603. /package/dist/{mcp-sdk → mcp}/client/index.js +0 -0
  604. /package/dist/{mcp-sdk → mcp}/server/Transport.d.ts +0 -0
  605. /package/dist/{mcp-sdk → mcp}/server/Transport.js +0 -0
  606. /package/dist/{mcp-sdk → mcp}/server/index.d.ts +0 -0
  607. /package/dist/{mcp-sdk → mcp}/server/index.js +0 -0
  608. /package/dist/tempo/{session → legacy/session}/Channel.js +0 -0
  609. /package/dist/tempo/{session → legacy/session}/Types.js +0 -0
  610. /package/src/{mcp-sdk → mcp}/client/index.ts +0 -0
  611. /package/src/{mcp-sdk → mcp}/server/Transport.test.ts +0 -0
  612. /package/src/{mcp-sdk → mcp}/server/Transport.ts +0 -0
  613. /package/src/{mcp-sdk → mcp}/server/index.ts +0 -0
  614. /package/src/tempo/{session → legacy/session}/Channel.test.ts +0 -0
  615. /package/src/tempo/{session → legacy/session}/Voucher.test.ts +0 -0
  616. /package/src/tempo/session/{Sse.fuzz.test.ts → server/Sse.fuzz.test.ts} +0 -0
@@ -0,0 +1,125 @@
1
+ import { Channel, SignatureEnvelope } from 'ox/tempo';
2
+ import { hashTypedData } from 'viem';
3
+ import { signTypedData } from 'viem/actions';
4
+ import { Account as TempoAccount } from 'viem/tempo';
5
+ import * as TempoAddress from '../../internal/address.js';
6
+ import { uint96 } from './Protocol.js';
7
+ /** Must match the on-chain TIP-20 channel reserve DOMAIN_SEPARATOR name. */
8
+ const DOMAIN_NAME = 'TIP20 Channel Reserve';
9
+ /** Must match the on-chain TIP20 channel escrow DOMAIN_SEPARATOR version. */
10
+ const DOMAIN_VERSION = '1';
11
+ /**
12
+ * EIP-712 domain for voucher signing.
13
+ */
14
+ export function getVoucherDomain(escrowContract, chainId) {
15
+ return {
16
+ name: DOMAIN_NAME,
17
+ version: DOMAIN_VERSION,
18
+ chainId,
19
+ verifyingContract: escrowContract,
20
+ };
21
+ }
22
+ /**
23
+ * EIP-712 types for voucher signing.
24
+ * Matches @tempo/stream-channels/voucher and on-chain VOUCHER_TYPEHASH.
25
+ */
26
+ export const voucherTypes = {
27
+ Voucher: [
28
+ { name: 'channelId', type: 'bytes32' },
29
+ { name: 'cumulativeAmount', type: 'uint96' },
30
+ ],
31
+ };
32
+ function getVoucherDigest(chainId, voucher) {
33
+ return Channel.getVoucherSignPayload({
34
+ chainId,
35
+ channelId: voucher.channelId,
36
+ cumulativeAmount: voucher.cumulativeAmount,
37
+ });
38
+ }
39
+ function getVoucherPayload(verifyingContract, chainId, voucher) {
40
+ if (verifyingContract.toLowerCase() === Channel.address.toLowerCase())
41
+ return getVoucherDigest(chainId, voucher);
42
+ return hashTypedData({
43
+ domain: getVoucherDomain(verifyingContract, chainId),
44
+ types: voucherTypes,
45
+ primaryType: 'Voucher',
46
+ message: {
47
+ channelId: voucher.channelId,
48
+ cumulativeAmount: voucher.cumulativeAmount,
49
+ },
50
+ });
51
+ }
52
+ function isPrimitiveEnvelope(type) {
53
+ return type === 'secp256k1' || type === 'p256' || type === 'webAuthn';
54
+ }
55
+ function signCanonicalTempoVoucher(account, parameters) {
56
+ // viem/tempo's canonical TIP-1034 voucher signer accepts Tempo account
57
+ // extensions that are wider than viem's base Account type. Keep that
58
+ // compatibility bridge here and fall back to generic EIP-712 below.
59
+ return TempoAccount.signVoucher(account, {
60
+ chainId: parameters.chainId,
61
+ channel: parameters.channelId,
62
+ cumulativeAmount: parameters.cumulativeAmount,
63
+ });
64
+ }
65
+ /**
66
+ * Sign a voucher with an account.
67
+ */
68
+ export async function signVoucher(client, account, voucher, verifyingContract, chainId) {
69
+ const signature = await (async () => {
70
+ if (verifyingContract.toLowerCase() === Channel.address.toLowerCase()) {
71
+ try {
72
+ return await signCanonicalTempoVoucher(account, {
73
+ chainId,
74
+ channelId: voucher.channelId,
75
+ cumulativeAmount: voucher.cumulativeAmount,
76
+ });
77
+ }
78
+ catch { }
79
+ }
80
+ return signTypedData(client, {
81
+ account,
82
+ domain: getVoucherDomain(verifyingContract, chainId),
83
+ types: voucherTypes,
84
+ primaryType: 'Voucher',
85
+ message: voucher,
86
+ });
87
+ })();
88
+ const envelope = SignatureEnvelope.from(signature);
89
+ if (!isPrimitiveEnvelope(envelope.type))
90
+ throw new Error(`TIP-1034 vouchers require a TIP-1020 primitive signature; received "${envelope.type}".`);
91
+ return SignatureEnvelope.serialize(envelope);
92
+ }
93
+ /**
94
+ * Verify a voucher signature matches the expected signer.
95
+ *
96
+ * Accepts canonical TIP-1020 primitive signatures. Keychain wrappers,
97
+ * multisig signatures, and magic-suffixed encodings are rejected.
98
+ */
99
+ export function verifyVoucher(escrowContract, chainId, voucher, expectedSigner) {
100
+ try {
101
+ const envelope = SignatureEnvelope.from(voucher.signature);
102
+ if (!isPrimitiveEnvelope(envelope.type))
103
+ return false;
104
+ if (SignatureEnvelope.serialize(envelope).toLowerCase() !== voucher.signature.toLowerCase())
105
+ return false;
106
+ const payload = getVoucherPayload(escrowContract, chainId, voucher);
107
+ const signer = SignatureEnvelope.extractAddress({ payload, signature: envelope });
108
+ const valid = SignatureEnvelope.verify(envelope, { address: signer, payload });
109
+ return valid && TempoAddress.isEqual(signer, expectedSigner);
110
+ }
111
+ catch {
112
+ return false;
113
+ }
114
+ }
115
+ /**
116
+ * Parse a voucher from credential payload.
117
+ */
118
+ export function parseVoucherFromPayload(channelId, cumulativeAmount, signature) {
119
+ return {
120
+ channelId,
121
+ cumulativeAmount: uint96(BigInt(cumulativeAmount)),
122
+ signature,
123
+ };
124
+ }
125
+ //# sourceMappingURL=Voucher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Voucher.js","sourceRoot":"","sources":["../../../../src/tempo/session/precompile/Voucher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,522 @@
1
+ /** ABI for the TIP-1034 TIP-20 Channel Escrow precompile. */
2
+ export declare const escrowAbi: readonly [{
3
+ readonly type: "function";
4
+ readonly name: "CLOSE_GRACE_PERIOD";
5
+ readonly stateMutability: "view";
6
+ readonly inputs: readonly [];
7
+ readonly outputs: readonly [{
8
+ readonly type: "uint64";
9
+ }];
10
+ }, {
11
+ readonly type: "function";
12
+ readonly name: "VOUCHER_TYPEHASH";
13
+ readonly stateMutability: "view";
14
+ readonly inputs: readonly [];
15
+ readonly outputs: readonly [{
16
+ readonly type: "bytes32";
17
+ }];
18
+ }, {
19
+ readonly type: "function";
20
+ readonly name: "open";
21
+ readonly stateMutability: "nonpayable";
22
+ readonly inputs: readonly [{
23
+ readonly name: "payee";
24
+ readonly type: "address";
25
+ }, {
26
+ readonly name: "operator";
27
+ readonly type: "address";
28
+ }, {
29
+ readonly name: "token";
30
+ readonly type: "address";
31
+ }, {
32
+ readonly name: "deposit";
33
+ readonly type: "uint96";
34
+ }, {
35
+ readonly name: "salt";
36
+ readonly type: "bytes32";
37
+ }, {
38
+ readonly name: "authorizedSigner";
39
+ readonly type: "address";
40
+ }];
41
+ readonly outputs: readonly [{
42
+ readonly name: "channelId";
43
+ readonly type: "bytes32";
44
+ }];
45
+ }, {
46
+ readonly type: "function";
47
+ readonly name: "settle";
48
+ readonly stateMutability: "nonpayable";
49
+ readonly inputs: readonly [{
50
+ readonly name: "descriptor";
51
+ readonly type: "tuple";
52
+ readonly components: readonly [{
53
+ readonly name: "payer";
54
+ readonly type: "address";
55
+ }, {
56
+ readonly name: "payee";
57
+ readonly type: "address";
58
+ }, {
59
+ readonly name: "operator";
60
+ readonly type: "address";
61
+ }, {
62
+ readonly name: "token";
63
+ readonly type: "address";
64
+ }, {
65
+ readonly name: "salt";
66
+ readonly type: "bytes32";
67
+ }, {
68
+ readonly name: "authorizedSigner";
69
+ readonly type: "address";
70
+ }, {
71
+ readonly name: "expiringNonceHash";
72
+ readonly type: "bytes32";
73
+ }];
74
+ }, {
75
+ readonly name: "cumulativeAmount";
76
+ readonly type: "uint96";
77
+ }, {
78
+ readonly name: "signature";
79
+ readonly type: "bytes";
80
+ }];
81
+ readonly outputs: readonly [];
82
+ }, {
83
+ readonly type: "function";
84
+ readonly name: "topUp";
85
+ readonly stateMutability: "nonpayable";
86
+ readonly inputs: readonly [{
87
+ readonly name: "descriptor";
88
+ readonly type: "tuple";
89
+ readonly components: readonly [{
90
+ readonly name: "payer";
91
+ readonly type: "address";
92
+ }, {
93
+ readonly name: "payee";
94
+ readonly type: "address";
95
+ }, {
96
+ readonly name: "operator";
97
+ readonly type: "address";
98
+ }, {
99
+ readonly name: "token";
100
+ readonly type: "address";
101
+ }, {
102
+ readonly name: "salt";
103
+ readonly type: "bytes32";
104
+ }, {
105
+ readonly name: "authorizedSigner";
106
+ readonly type: "address";
107
+ }, {
108
+ readonly name: "expiringNonceHash";
109
+ readonly type: "bytes32";
110
+ }];
111
+ }, {
112
+ readonly name: "additionalDeposit";
113
+ readonly type: "uint96";
114
+ }];
115
+ readonly outputs: readonly [];
116
+ }, {
117
+ readonly type: "function";
118
+ readonly name: "close";
119
+ readonly stateMutability: "nonpayable";
120
+ readonly inputs: readonly [{
121
+ readonly name: "descriptor";
122
+ readonly type: "tuple";
123
+ readonly components: readonly [{
124
+ readonly name: "payer";
125
+ readonly type: "address";
126
+ }, {
127
+ readonly name: "payee";
128
+ readonly type: "address";
129
+ }, {
130
+ readonly name: "operator";
131
+ readonly type: "address";
132
+ }, {
133
+ readonly name: "token";
134
+ readonly type: "address";
135
+ }, {
136
+ readonly name: "salt";
137
+ readonly type: "bytes32";
138
+ }, {
139
+ readonly name: "authorizedSigner";
140
+ readonly type: "address";
141
+ }, {
142
+ readonly name: "expiringNonceHash";
143
+ readonly type: "bytes32";
144
+ }];
145
+ }, {
146
+ readonly name: "cumulativeAmount";
147
+ readonly type: "uint96";
148
+ }, {
149
+ readonly name: "captureAmount";
150
+ readonly type: "uint96";
151
+ }, {
152
+ readonly name: "signature";
153
+ readonly type: "bytes";
154
+ }];
155
+ readonly outputs: readonly [];
156
+ }, {
157
+ readonly type: "function";
158
+ readonly name: "requestClose";
159
+ readonly stateMutability: "nonpayable";
160
+ readonly inputs: readonly [{
161
+ readonly name: "descriptor";
162
+ readonly type: "tuple";
163
+ readonly components: readonly [{
164
+ readonly name: "payer";
165
+ readonly type: "address";
166
+ }, {
167
+ readonly name: "payee";
168
+ readonly type: "address";
169
+ }, {
170
+ readonly name: "operator";
171
+ readonly type: "address";
172
+ }, {
173
+ readonly name: "token";
174
+ readonly type: "address";
175
+ }, {
176
+ readonly name: "salt";
177
+ readonly type: "bytes32";
178
+ }, {
179
+ readonly name: "authorizedSigner";
180
+ readonly type: "address";
181
+ }, {
182
+ readonly name: "expiringNonceHash";
183
+ readonly type: "bytes32";
184
+ }];
185
+ }];
186
+ readonly outputs: readonly [];
187
+ }, {
188
+ readonly type: "function";
189
+ readonly name: "withdraw";
190
+ readonly stateMutability: "nonpayable";
191
+ readonly inputs: readonly [{
192
+ readonly name: "descriptor";
193
+ readonly type: "tuple";
194
+ readonly components: readonly [{
195
+ readonly name: "payer";
196
+ readonly type: "address";
197
+ }, {
198
+ readonly name: "payee";
199
+ readonly type: "address";
200
+ }, {
201
+ readonly name: "operator";
202
+ readonly type: "address";
203
+ }, {
204
+ readonly name: "token";
205
+ readonly type: "address";
206
+ }, {
207
+ readonly name: "salt";
208
+ readonly type: "bytes32";
209
+ }, {
210
+ readonly name: "authorizedSigner";
211
+ readonly type: "address";
212
+ }, {
213
+ readonly name: "expiringNonceHash";
214
+ readonly type: "bytes32";
215
+ }];
216
+ }];
217
+ readonly outputs: readonly [];
218
+ }, {
219
+ readonly type: "function";
220
+ readonly name: "getChannel";
221
+ readonly stateMutability: "view";
222
+ readonly inputs: readonly [{
223
+ readonly name: "descriptor";
224
+ readonly type: "tuple";
225
+ readonly components: readonly [{
226
+ readonly name: "payer";
227
+ readonly type: "address";
228
+ }, {
229
+ readonly name: "payee";
230
+ readonly type: "address";
231
+ }, {
232
+ readonly name: "operator";
233
+ readonly type: "address";
234
+ }, {
235
+ readonly name: "token";
236
+ readonly type: "address";
237
+ }, {
238
+ readonly name: "salt";
239
+ readonly type: "bytes32";
240
+ }, {
241
+ readonly name: "authorizedSigner";
242
+ readonly type: "address";
243
+ }, {
244
+ readonly name: "expiringNonceHash";
245
+ readonly type: "bytes32";
246
+ }];
247
+ }];
248
+ readonly outputs: readonly [{
249
+ readonly type: "tuple";
250
+ readonly components: readonly [{
251
+ readonly name: "descriptor";
252
+ readonly type: "tuple";
253
+ readonly components: readonly [{
254
+ readonly name: "payer";
255
+ readonly type: "address";
256
+ }, {
257
+ readonly name: "payee";
258
+ readonly type: "address";
259
+ }, {
260
+ readonly name: "operator";
261
+ readonly type: "address";
262
+ }, {
263
+ readonly name: "token";
264
+ readonly type: "address";
265
+ }, {
266
+ readonly name: "salt";
267
+ readonly type: "bytes32";
268
+ }, {
269
+ readonly name: "authorizedSigner";
270
+ readonly type: "address";
271
+ }, {
272
+ readonly name: "expiringNonceHash";
273
+ readonly type: "bytes32";
274
+ }];
275
+ }, {
276
+ readonly name: "state";
277
+ readonly type: "tuple";
278
+ readonly components: readonly [{
279
+ readonly name: "settled";
280
+ readonly type: "uint96";
281
+ }, {
282
+ readonly name: "deposit";
283
+ readonly type: "uint96";
284
+ }, {
285
+ readonly name: "closeRequestedAt";
286
+ readonly type: "uint32";
287
+ }];
288
+ }];
289
+ }];
290
+ }, {
291
+ readonly type: "function";
292
+ readonly name: "getChannelState";
293
+ readonly stateMutability: "view";
294
+ readonly inputs: readonly [{
295
+ readonly name: "channelId";
296
+ readonly type: "bytes32";
297
+ }];
298
+ readonly outputs: readonly [{
299
+ readonly type: "tuple";
300
+ readonly components: readonly [{
301
+ readonly name: "settled";
302
+ readonly type: "uint96";
303
+ }, {
304
+ readonly name: "deposit";
305
+ readonly type: "uint96";
306
+ }, {
307
+ readonly name: "closeRequestedAt";
308
+ readonly type: "uint32";
309
+ }];
310
+ }];
311
+ }, {
312
+ readonly type: "function";
313
+ readonly name: "getChannelStatesBatch";
314
+ readonly stateMutability: "view";
315
+ readonly inputs: readonly [{
316
+ readonly name: "channelIds";
317
+ readonly type: "bytes32[]";
318
+ }];
319
+ readonly outputs: readonly [{
320
+ readonly type: "tuple[]";
321
+ readonly components: readonly [{
322
+ readonly name: "settled";
323
+ readonly type: "uint96";
324
+ }, {
325
+ readonly name: "deposit";
326
+ readonly type: "uint96";
327
+ }, {
328
+ readonly name: "closeRequestedAt";
329
+ readonly type: "uint32";
330
+ }];
331
+ }];
332
+ }, {
333
+ readonly type: "function";
334
+ readonly name: "computeChannelId";
335
+ readonly stateMutability: "view";
336
+ readonly inputs: readonly [{
337
+ readonly name: "payer";
338
+ readonly type: "address";
339
+ }, {
340
+ readonly name: "payee";
341
+ readonly type: "address";
342
+ }, {
343
+ readonly name: "operator";
344
+ readonly type: "address";
345
+ }, {
346
+ readonly name: "token";
347
+ readonly type: "address";
348
+ }, {
349
+ readonly name: "salt";
350
+ readonly type: "bytes32";
351
+ }, {
352
+ readonly name: "authorizedSigner";
353
+ readonly type: "address";
354
+ }, {
355
+ readonly name: "expiringNonceHash";
356
+ readonly type: "bytes32";
357
+ }];
358
+ readonly outputs: readonly [{
359
+ readonly type: "bytes32";
360
+ }];
361
+ }, {
362
+ readonly type: "function";
363
+ readonly name: "getVoucherDigest";
364
+ readonly stateMutability: "view";
365
+ readonly inputs: readonly [{
366
+ readonly name: "channelId";
367
+ readonly type: "bytes32";
368
+ }, {
369
+ readonly name: "cumulativeAmount";
370
+ readonly type: "uint96";
371
+ }];
372
+ readonly outputs: readonly [{
373
+ readonly type: "bytes32";
374
+ }];
375
+ }, {
376
+ readonly type: "function";
377
+ readonly name: "domainSeparator";
378
+ readonly stateMutability: "view";
379
+ readonly inputs: readonly [];
380
+ readonly outputs: readonly [{
381
+ readonly type: "bytes32";
382
+ }];
383
+ }, {
384
+ readonly type: "event";
385
+ readonly name: "ChannelOpened";
386
+ readonly inputs: readonly [{
387
+ readonly name: "channelId";
388
+ readonly type: "bytes32";
389
+ readonly indexed: true;
390
+ }, {
391
+ readonly name: "payer";
392
+ readonly type: "address";
393
+ readonly indexed: true;
394
+ }, {
395
+ readonly name: "payee";
396
+ readonly type: "address";
397
+ readonly indexed: true;
398
+ }, {
399
+ readonly name: "operator";
400
+ readonly type: "address";
401
+ }, {
402
+ readonly name: "token";
403
+ readonly type: "address";
404
+ }, {
405
+ readonly name: "authorizedSigner";
406
+ readonly type: "address";
407
+ }, {
408
+ readonly name: "salt";
409
+ readonly type: "bytes32";
410
+ }, {
411
+ readonly name: "expiringNonceHash";
412
+ readonly type: "bytes32";
413
+ }, {
414
+ readonly name: "deposit";
415
+ readonly type: "uint96";
416
+ }];
417
+ }, {
418
+ readonly type: "event";
419
+ readonly name: "Settled";
420
+ readonly inputs: readonly [{
421
+ readonly name: "channelId";
422
+ readonly type: "bytes32";
423
+ readonly indexed: true;
424
+ }, {
425
+ readonly name: "payer";
426
+ readonly type: "address";
427
+ readonly indexed: true;
428
+ }, {
429
+ readonly name: "payee";
430
+ readonly type: "address";
431
+ readonly indexed: true;
432
+ }, {
433
+ readonly name: "cumulativeAmount";
434
+ readonly type: "uint96";
435
+ }, {
436
+ readonly name: "deltaPaid";
437
+ readonly type: "uint96";
438
+ }, {
439
+ readonly name: "newSettled";
440
+ readonly type: "uint96";
441
+ }];
442
+ }, {
443
+ readonly type: "event";
444
+ readonly name: "TopUp";
445
+ readonly inputs: readonly [{
446
+ readonly name: "channelId";
447
+ readonly type: "bytes32";
448
+ readonly indexed: true;
449
+ }, {
450
+ readonly name: "payer";
451
+ readonly type: "address";
452
+ readonly indexed: true;
453
+ }, {
454
+ readonly name: "payee";
455
+ readonly type: "address";
456
+ readonly indexed: true;
457
+ }, {
458
+ readonly name: "additionalDeposit";
459
+ readonly type: "uint96";
460
+ }, {
461
+ readonly name: "newDeposit";
462
+ readonly type: "uint96";
463
+ }];
464
+ }, {
465
+ readonly type: "event";
466
+ readonly name: "CloseRequested";
467
+ readonly inputs: readonly [{
468
+ readonly name: "channelId";
469
+ readonly type: "bytes32";
470
+ readonly indexed: true;
471
+ }, {
472
+ readonly name: "payer";
473
+ readonly type: "address";
474
+ readonly indexed: true;
475
+ }, {
476
+ readonly name: "payee";
477
+ readonly type: "address";
478
+ readonly indexed: true;
479
+ }, {
480
+ readonly name: "closeGraceEnd";
481
+ readonly type: "uint256";
482
+ }];
483
+ }, {
484
+ readonly type: "event";
485
+ readonly name: "ChannelClosed";
486
+ readonly inputs: readonly [{
487
+ readonly name: "channelId";
488
+ readonly type: "bytes32";
489
+ readonly indexed: true;
490
+ }, {
491
+ readonly name: "payer";
492
+ readonly type: "address";
493
+ readonly indexed: true;
494
+ }, {
495
+ readonly name: "payee";
496
+ readonly type: "address";
497
+ readonly indexed: true;
498
+ }, {
499
+ readonly name: "settledToPayee";
500
+ readonly type: "uint96";
501
+ }, {
502
+ readonly name: "refundedToPayer";
503
+ readonly type: "uint96";
504
+ }];
505
+ }, {
506
+ readonly type: "event";
507
+ readonly name: "CloseRequestCancelled";
508
+ readonly inputs: readonly [{
509
+ readonly name: "channelId";
510
+ readonly type: "bytes32";
511
+ readonly indexed: true;
512
+ }, {
513
+ readonly name: "payer";
514
+ readonly type: "address";
515
+ readonly indexed: true;
516
+ }, {
517
+ readonly name: "payee";
518
+ readonly type: "address";
519
+ readonly indexed: true;
520
+ }];
521
+ }];
522
+ //# sourceMappingURL=escrow.abi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow.abi.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/precompile/escrow.abi.ts"],"names":[],"mappings":"AAsBA,6DAA6D;AAC7D,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0MZ,CAAA"}