mppx 0.7.0 → 0.8.1

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 (290) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +20 -11
  3. package/dist/Challenge.d.ts.map +1 -1
  4. package/dist/Challenge.js +18 -6
  5. package/dist/Challenge.js.map +1 -1
  6. package/dist/Mcp.d.ts +3 -0
  7. package/dist/Mcp.d.ts.map +1 -1
  8. package/dist/Mcp.js +2 -0
  9. package/dist/Mcp.js.map +1 -1
  10. package/dist/PaymentRequest.d.ts +10 -10
  11. package/dist/PaymentRequest.js +8 -8
  12. package/dist/cli/internal.d.ts +1 -0
  13. package/dist/cli/internal.d.ts.map +1 -1
  14. package/dist/cli/internal.js +1 -15
  15. package/dist/cli/internal.js.map +1 -1
  16. package/dist/client/Mppx.js +2 -2
  17. package/dist/client/Mppx.js.map +1 -1
  18. package/dist/client/Transport.d.ts +11 -16
  19. package/dist/client/Transport.d.ts.map +1 -1
  20. package/dist/client/Transport.js +55 -75
  21. package/dist/client/Transport.js.map +1 -1
  22. package/dist/client/index.d.ts +3 -0
  23. package/dist/client/index.d.ts.map +1 -1
  24. package/dist/client/index.js +1 -0
  25. package/dist/client/index.js.map +1 -1
  26. package/dist/client/internal/Fetch.d.ts.map +1 -1
  27. package/dist/client/internal/Fetch.js +46 -7
  28. package/dist/client/internal/Fetch.js.map +1 -1
  29. package/dist/client/internal/protocols/Mcp.d.ts +7 -0
  30. package/dist/client/internal/protocols/Mcp.d.ts.map +1 -0
  31. package/dist/client/internal/protocols/Mcp.js +159 -0
  32. package/dist/client/internal/protocols/Mcp.js.map +1 -0
  33. package/dist/client/internal/protocols/Mpp.d.ts +4 -0
  34. package/dist/client/internal/protocols/Mpp.d.ts.map +1 -0
  35. package/dist/client/internal/protocols/Mpp.js +18 -0
  36. package/dist/client/internal/protocols/Mpp.js.map +1 -0
  37. package/dist/client/internal/protocols/Protocol.d.ts +10 -0
  38. package/dist/client/internal/protocols/Protocol.d.ts.map +1 -0
  39. package/dist/client/internal/protocols/Protocol.js +2 -0
  40. package/dist/client/internal/protocols/Protocol.js.map +1 -0
  41. package/dist/client/internal/protocols/Shared.d.ts +5 -0
  42. package/dist/client/internal/protocols/Shared.d.ts.map +1 -0
  43. package/dist/client/internal/protocols/Shared.js +20 -0
  44. package/dist/client/internal/protocols/Shared.js.map +1 -0
  45. package/dist/client/internal/protocols/X402.d.ts +8 -0
  46. package/dist/client/internal/protocols/X402.d.ts.map +1 -0
  47. package/dist/client/internal/protocols/X402.js +39 -0
  48. package/dist/client/internal/protocols/X402.js.map +1 -0
  49. package/dist/evm/client/index.d.ts +1 -0
  50. package/dist/evm/client/index.d.ts.map +1 -1
  51. package/dist/evm/client/index.js +1 -0
  52. package/dist/evm/client/index.js.map +1 -1
  53. package/dist/evm/index.d.ts +2 -0
  54. package/dist/evm/index.d.ts.map +1 -1
  55. package/dist/evm/index.js +2 -0
  56. package/dist/evm/index.js.map +1 -1
  57. package/dist/evm/server/index.d.ts +1 -0
  58. package/dist/evm/server/index.d.ts.map +1 -1
  59. package/dist/evm/server/index.js +1 -0
  60. package/dist/evm/server/index.js.map +1 -1
  61. package/dist/mcp/client/McpClient.d.ts +101 -0
  62. package/dist/mcp/client/McpClient.d.ts.map +1 -0
  63. package/dist/mcp/client/McpClient.js +162 -0
  64. package/dist/mcp/client/McpClient.js.map +1 -0
  65. package/dist/mcp/client/index.d.ts.map +1 -0
  66. package/dist/mcp/client/index.js.map +1 -0
  67. package/dist/mcp/server/Transport.d.ts.map +1 -0
  68. package/dist/mcp/server/Transport.js.map +1 -0
  69. package/dist/mcp/server/index.d.ts.map +1 -0
  70. package/dist/mcp/server/index.js.map +1 -0
  71. package/dist/server/Mppx.d.ts +1 -1
  72. package/dist/server/Mppx.d.ts.map +1 -1
  73. package/dist/server/Mppx.js +9 -0
  74. package/dist/server/Mppx.js.map +1 -1
  75. package/dist/server/Transport.d.ts +1 -1
  76. package/dist/server/Transport.d.ts.map +1 -1
  77. package/dist/server/Transport.js +1 -1
  78. package/dist/server/Transport.js.map +1 -1
  79. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  80. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  81. package/dist/stripe/server/internal/html.gen.js +1 -1
  82. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  83. package/dist/tempo/Proof.d.ts +85 -1
  84. package/dist/tempo/Proof.d.ts.map +1 -1
  85. package/dist/tempo/Proof.js +35 -0
  86. package/dist/tempo/Proof.js.map +1 -1
  87. package/dist/tempo/client/Charge.d.ts +13 -1
  88. package/dist/tempo/client/Charge.d.ts.map +1 -1
  89. package/dist/tempo/client/Charge.js +38 -25
  90. package/dist/tempo/client/Charge.js.map +1 -1
  91. package/dist/tempo/client/Methods.d.ts +5 -3
  92. package/dist/tempo/client/Methods.d.ts.map +1 -1
  93. package/dist/tempo/client/Methods.js +4 -2
  94. package/dist/tempo/client/Methods.js.map +1 -1
  95. package/dist/tempo/client/ResolveAccount.d.ts +40 -0
  96. package/dist/tempo/client/ResolveAccount.d.ts.map +1 -0
  97. package/dist/tempo/client/ResolveAccount.js +2 -0
  98. package/dist/tempo/client/ResolveAccount.js.map +1 -0
  99. package/dist/tempo/internal/fee-payer.d.ts +26 -1
  100. package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
  101. package/dist/tempo/internal/fee-payer.js +83 -30
  102. package/dist/tempo/internal/fee-payer.js.map +1 -1
  103. package/dist/tempo/internal/proof.d.ts +71 -5
  104. package/dist/tempo/internal/proof.d.ts.map +1 -1
  105. package/dist/tempo/internal/proof.js +42 -6
  106. package/dist/tempo/internal/proof.js.map +1 -1
  107. package/dist/tempo/legacy/client/SessionManager.d.ts.map +1 -1
  108. package/dist/tempo/legacy/client/SessionManager.js +10 -3
  109. package/dist/tempo/legacy/client/SessionManager.js.map +1 -1
  110. package/dist/tempo/server/Charge.d.ts.map +1 -1
  111. package/dist/tempo/server/Charge.js +46 -18
  112. package/dist/tempo/server/Charge.js.map +1 -1
  113. package/dist/tempo/server/Methods.d.ts +4 -2
  114. package/dist/tempo/server/Methods.d.ts.map +1 -1
  115. package/dist/tempo/server/Methods.js +4 -2
  116. package/dist/tempo/server/Methods.js.map +1 -1
  117. package/dist/tempo/server/Subscription.d.ts +10 -0
  118. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  119. package/dist/tempo/server/Subscription.js +135 -23
  120. package/dist/tempo/server/Subscription.js.map +1 -1
  121. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  122. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  123. package/dist/tempo/server/internal/html.gen.js +1 -1
  124. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  125. package/dist/tempo/session/client/ChannelOps.d.ts +2 -3
  126. package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -1
  127. package/dist/tempo/session/client/ChannelOps.js +7 -10
  128. package/dist/tempo/session/client/ChannelOps.js.map +1 -1
  129. package/dist/tempo/session/client/ChannelStore.d.ts +51 -0
  130. package/dist/tempo/session/client/ChannelStore.d.ts.map +1 -0
  131. package/dist/tempo/session/client/ChannelStore.js +63 -0
  132. package/dist/tempo/session/client/ChannelStore.js.map +1 -0
  133. package/dist/tempo/session/client/CredentialState.d.ts +7 -24
  134. package/dist/tempo/session/client/CredentialState.d.ts.map +1 -1
  135. package/dist/tempo/session/client/CredentialState.js +51 -49
  136. package/dist/tempo/session/client/CredentialState.js.map +1 -1
  137. package/dist/tempo/session/client/Session.d.ts +8 -2
  138. package/dist/tempo/session/client/Session.d.ts.map +1 -1
  139. package/dist/tempo/session/client/Session.js +22 -8
  140. package/dist/tempo/session/client/Session.js.map +1 -1
  141. package/dist/tempo/session/client/SessionManager.d.ts +4 -40
  142. package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
  143. package/dist/tempo/session/client/SessionManager.js +124 -174
  144. package/dist/tempo/session/client/SessionManager.js.map +1 -1
  145. package/dist/tempo/session/client/index.d.ts +3 -4
  146. package/dist/tempo/session/client/index.d.ts.map +1 -1
  147. package/dist/tempo/session/client/index.js +1 -0
  148. package/dist/tempo/session/client/index.js.map +1 -1
  149. package/dist/tempo/session/precompile/Voucher.d.ts +3 -3
  150. package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -1
  151. package/dist/tempo/session/precompile/Voucher.js +24 -25
  152. package/dist/tempo/session/precompile/Voucher.js.map +1 -1
  153. package/dist/tempo/session/server/CredentialVerification.d.ts +6 -0
  154. package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -1
  155. package/dist/tempo/session/server/CredentialVerification.js +13 -0
  156. package/dist/tempo/session/server/CredentialVerification.js.map +1 -1
  157. package/dist/tempo/session/server/Settlement.d.ts.map +1 -1
  158. package/dist/tempo/session/server/Settlement.js +4 -2
  159. package/dist/tempo/session/server/Settlement.js.map +1 -1
  160. package/dist/tempo/session/server/Sse.d.ts.map +1 -1
  161. package/dist/tempo/session/server/Sse.js.map +1 -1
  162. package/dist/tempo/session/server/Ws.d.ts.map +1 -1
  163. package/dist/tempo/session/server/Ws.js.map +1 -1
  164. package/dist/tempo/subscription/KeyAuthorization.d.ts +712 -1
  165. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  166. package/dist/tempo/subscription/Store.d.ts +2 -0
  167. package/dist/tempo/subscription/Store.d.ts.map +1 -1
  168. package/dist/tempo/subscription/Store.js +16 -1
  169. package/dist/tempo/subscription/Store.js.map +1 -1
  170. package/dist/x402/index.d.ts +1 -0
  171. package/dist/x402/index.d.ts.map +1 -1
  172. package/dist/x402/index.js +1 -0
  173. package/dist/x402/index.js.map +1 -1
  174. package/package.json +21 -10
  175. package/src/Challenge.test.ts +40 -0
  176. package/src/Challenge.ts +19 -6
  177. package/src/Mcp.ts +4 -0
  178. package/src/PaymentRequest.ts +10 -10
  179. package/src/cli/cli.test.ts +15 -15
  180. package/src/cli/config.test.ts +13 -7
  181. package/src/cli/internal.ts +1 -16
  182. package/src/client/Mppx.test-d.ts +21 -1
  183. package/src/client/Mppx.test.ts +1 -1
  184. package/src/client/Mppx.ts +2 -2
  185. package/src/client/Transport.test.ts +225 -178
  186. package/src/client/Transport.ts +77 -83
  187. package/src/client/index.ts +14 -0
  188. package/src/client/internal/Fetch.test.ts +207 -2
  189. package/src/client/internal/Fetch.ts +52 -6
  190. package/src/client/internal/protocols/Mcp.test.ts +220 -0
  191. package/src/client/internal/protocols/Mcp.ts +162 -0
  192. package/src/client/internal/protocols/Mpp.ts +21 -0
  193. package/src/client/internal/protocols/Protocol.ts +10 -0
  194. package/src/client/internal/protocols/Shared.ts +25 -0
  195. package/src/client/internal/protocols/X402.ts +42 -0
  196. package/src/discovery/OpenApi.test.ts +1 -1
  197. package/src/evm/PublicInterface.test-d.ts +1 -1
  198. package/src/evm/client/index.ts +1 -0
  199. package/src/evm/index.ts +2 -0
  200. package/src/evm/server/Charge.test.ts +1 -1
  201. package/src/evm/server/index.ts +1 -0
  202. package/src/{mcp-sdk → mcp}/client/McpClient.integration.test.ts +10 -4
  203. package/src/{mcp-sdk → mcp}/client/McpClient.test-d.ts +45 -18
  204. package/src/{mcp-sdk → mcp}/client/McpClient.test.ts +211 -5
  205. package/src/mcp/client/McpClient.ts +307 -0
  206. package/src/{mcp-sdk → mcp}/client/McpClient.unit.test.ts +9 -5
  207. package/src/middlewares/elysia.test.ts +1 -1
  208. package/src/middlewares/express.test.ts +1 -1
  209. package/src/middlewares/hono.test.ts +1 -1
  210. package/src/middlewares/internal/mppx.test.ts +1 -1
  211. package/src/middlewares/nextjs.test.ts +1 -1
  212. package/src/proxy/Proxy.test.ts +1 -1
  213. package/src/proxy/services/anthropic.test.ts +1 -1
  214. package/src/proxy/services/openai.test.ts +1 -1
  215. package/src/proxy/services/stripe.test.ts +1 -1
  216. package/src/server/Mppx.authorize.test.ts +1 -1
  217. package/src/server/Mppx.test-d.ts +1 -1
  218. package/src/server/Mppx.test.ts +20 -2
  219. package/src/server/Mppx.ts +14 -1
  220. package/src/server/Transport.test.ts +6 -6
  221. package/src/server/Transport.ts +1 -1
  222. package/src/stripe/Charge.integration.test.ts +1 -1
  223. package/src/stripe/client/Charge.test.ts +1 -1
  224. package/src/stripe/server/Charge.test.ts +1 -1
  225. package/src/stripe/server/internal/html/package.json +1 -1
  226. package/src/stripe/server/internal/html.gen.ts +1 -1
  227. package/src/tempo/Proof.conformance.test.ts +146 -0
  228. package/src/tempo/Proof.test-d.ts +15 -0
  229. package/src/tempo/Proof.ts +52 -1
  230. package/src/tempo/Subscription.integration.test.ts +1 -1
  231. package/src/tempo/client/Charge.test.ts +173 -0
  232. package/src/tempo/client/Charge.ts +65 -36
  233. package/src/tempo/client/Methods.ts +4 -2
  234. package/src/tempo/client/ResolveAccount.ts +46 -0
  235. package/src/tempo/internal/fee-payer.test.ts +89 -10
  236. package/src/tempo/internal/fee-payer.ts +128 -41
  237. package/src/tempo/internal/proof.test.ts +12 -4
  238. package/src/tempo/internal/proof.ts +55 -6
  239. package/src/tempo/legacy/client/SessionManager.ts +11 -3
  240. package/src/tempo/legacy/server/Session.test.ts +91 -26
  241. package/src/tempo/server/Charge.test.ts +388 -17
  242. package/src/tempo/server/Charge.ts +50 -24
  243. package/src/tempo/server/Methods.ts +4 -2
  244. package/src/tempo/server/Subscription.test.ts +465 -3
  245. package/src/tempo/server/Subscription.ts +174 -19
  246. package/src/tempo/server/internal/html/package.json +2 -2
  247. package/src/tempo/server/internal/html.gen.ts +1 -1
  248. package/src/tempo/session/client/ChannelOps.ts +5 -19
  249. package/src/tempo/session/client/ChannelStore.ts +111 -0
  250. package/src/tempo/session/client/CredentialState.test.ts +206 -62
  251. package/src/tempo/session/client/CredentialState.ts +58 -73
  252. package/src/tempo/session/client/Session.test.ts +41 -1
  253. package/src/tempo/session/client/Session.ts +36 -10
  254. package/src/tempo/session/client/SessionManager.test.ts +154 -65
  255. package/src/tempo/session/client/SessionManager.ts +141 -235
  256. package/src/tempo/session/client/index.ts +8 -5
  257. package/src/tempo/session/precompile/Voucher.test.ts +45 -7
  258. package/src/tempo/session/precompile/Voucher.ts +27 -25
  259. package/src/tempo/session/server/CredentialVerification.test.ts +36 -0
  260. package/src/tempo/session/server/CredentialVerification.ts +18 -0
  261. package/src/tempo/session/server/Session.test.ts +4 -4
  262. package/src/tempo/session/server/Settlement.test.ts +88 -1
  263. package/src/tempo/session/server/Settlement.ts +2 -1
  264. package/src/tempo/session/server/Sse.ts +0 -2
  265. package/src/tempo/session/server/Ws.ts +0 -4
  266. package/src/tempo/subscription/Store.ts +27 -9
  267. package/src/x402/Exact.e2e.test.ts +1 -1
  268. package/src/x402/PublicInterface.test-d.ts +1 -1
  269. package/src/x402/index.ts +1 -0
  270. package/dist/mcp-sdk/client/McpClient.d.ts +0 -85
  271. package/dist/mcp-sdk/client/McpClient.d.ts.map +0 -1
  272. package/dist/mcp-sdk/client/McpClient.js +0 -118
  273. package/dist/mcp-sdk/client/McpClient.js.map +0 -1
  274. package/dist/mcp-sdk/client/index.d.ts.map +0 -1
  275. package/dist/mcp-sdk/client/index.js.map +0 -1
  276. package/dist/mcp-sdk/server/Transport.d.ts.map +0 -1
  277. package/dist/mcp-sdk/server/Transport.js.map +0 -1
  278. package/dist/mcp-sdk/server/index.d.ts.map +0 -1
  279. package/dist/mcp-sdk/server/index.js.map +0 -1
  280. package/src/mcp-sdk/client/McpClient.ts +0 -228
  281. /package/dist/{mcp-sdk → mcp}/client/index.d.ts +0 -0
  282. /package/dist/{mcp-sdk → mcp}/client/index.js +0 -0
  283. /package/dist/{mcp-sdk → mcp}/server/Transport.d.ts +0 -0
  284. /package/dist/{mcp-sdk → mcp}/server/Transport.js +0 -0
  285. /package/dist/{mcp-sdk → mcp}/server/index.d.ts +0 -0
  286. /package/dist/{mcp-sdk → mcp}/server/index.js +0 -0
  287. /package/src/{mcp-sdk → mcp}/client/index.ts +0 -0
  288. /package/src/{mcp-sdk → mcp}/server/Transport.test.ts +0 -0
  289. /package/src/{mcp-sdk → mcp}/server/Transport.ts +0 -0
  290. /package/src/{mcp-sdk → mcp}/server/index.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,ux8lBAAux8lB,CAAA"}
1
+ {"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,i9ooBAAi9ooB,CAAA"}
@@ -30,8 +30,8 @@ export type ChannelEntry = {
30
30
  /** Whether the client considers the channel reusable for new vouchers. */
31
31
  opened: boolean;
32
32
  };
33
- /** Resolves the voucher signer address for a client account and optional override. */
34
- export declare function resolveAuthorizedSigner(account: Account, override?: Address | undefined): Address;
33
+ /** Resolves the voucher authority address for a client account. */
34
+ export declare function resolveAuthorizedSigner(account: Account): Address;
35
35
  /** Resolves the escrow precompile from local override, challenge hints, or canonical default. */
36
36
  export declare function resolveEscrow(challenge: {
37
37
  request: {
@@ -63,7 +63,6 @@ export declare function createClosePayload(client: Client, account: Account, des
63
63
  * @see https://tips.sh/1034-1#channel-identity-and-packed-state
64
64
  */
65
65
  export declare function createOpenPayload(client: Client, account: Account, parameters: {
66
- authorizedSigner?: Address | undefined;
67
66
  chainId: number;
68
67
  deposit: bigint;
69
68
  escrow?: Address | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelOps.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/ChannelOps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChannelOps.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/ChannelOps.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * @see https://tips.sh/1034-1
10
10
  */
11
11
  import { Hex } from 'ox';
12
- import { encodeFunctionData, isAddress, zeroAddress, } from 'viem';
12
+ import { encodeFunctionData, isAddress } from 'viem';
13
13
  import { prepareTransactionRequest, signTransaction } from 'viem/actions';
14
14
  import { Transaction } from 'viem/tempo';
15
15
  import * as Credential from '../../../Credential.js';
@@ -18,9 +18,6 @@ import { escrowAbi } from '../precompile/escrow.abi.js';
18
18
  import { tip20ChannelEscrow } from '../precompile/Protocol.js';
19
19
  import { uint96 } from '../precompile/Protocol.js';
20
20
  import * as Voucher from '../precompile/Voucher.js';
21
- function voucherAuthorizedSigner(address) {
22
- return address.toLowerCase() === zeroAddress ? undefined : address;
23
- }
24
21
  function isObject(value) {
25
22
  return typeof value === 'object' && value !== null;
26
23
  }
@@ -30,9 +27,9 @@ function readOptionalAddress(value) {
30
27
  function readAccessKeyAddress(account) {
31
28
  return readOptionalAddress(account.accessKeyAddress);
32
29
  }
33
- /** Resolves the voucher signer address for a client account and optional override. */
34
- export function resolveAuthorizedSigner(account, override) {
35
- return override ?? readAccessKeyAddress(account) ?? account.address;
30
+ /** Resolves the voucher authority address for a client account. */
31
+ export function resolveAuthorizedSigner(account) {
32
+ return readAccessKeyAddress(account) ?? account.address;
36
33
  }
37
34
  async function prepareTempoChannelTransaction(client, parameters) {
38
35
  const { account, calls, feePayer, feeToken } = parameters;
@@ -82,7 +79,7 @@ export async function createVoucherPayload(client, account, descriptor, cumulati
82
79
  escrow,
83
80
  });
84
81
  const amount = uint96(cumulativeAmount);
85
- const signature = await Voucher.signVoucher(client, account, { channelId, cumulativeAmount: amount }, escrow, chainId, voucherAuthorizedSigner(descriptor.authorizedSigner));
82
+ const signature = await Voucher.signVoucher(client, account, { channelId, cumulativeAmount: amount }, escrow, chainId);
86
83
  return {
87
84
  action: 'voucher',
88
85
  channelId,
@@ -115,7 +112,7 @@ export async function createClosePayload(client, account, descriptor, cumulative
115
112
  * @see https://tips.sh/1034-1#channel-identity-and-packed-state
116
113
  */
117
114
  export async function createOpenPayload(client, account, parameters) {
118
- const authorizedSigner = resolveAuthorizedSigner(account, parameters.authorizedSigner);
115
+ const authorizedSigner = resolveAuthorizedSigner(account);
119
116
  const escrow = parameters.escrow ?? tip20ChannelEscrow;
120
117
  const operator = parameters.operator ?? '0x0000000000000000000000000000000000000000';
121
118
  const salt = Hex.random(32);
@@ -152,7 +149,7 @@ export async function createOpenPayload(client, account, parameters) {
152
149
  chainId: parameters.chainId,
153
150
  escrow,
154
151
  });
155
- const signature = await Voucher.signVoucher(client, account, { channelId, cumulativeAmount: initialAmount }, escrow, parameters.chainId, voucherAuthorizedSigner(authorizedSigner));
152
+ const signature = await Voucher.signVoucher(client, account, { channelId, cumulativeAmount: initialAmount }, escrow, parameters.chainId);
156
153
  return {
157
154
  action: 'open',
158
155
  type: 'transaction',
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelOps.js","sourceRoot":"","sources":["../../../../src/tempo/session/client/ChannelOps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChannelOps.js","sourceRoot":"","sources":["../../../../src/tempo/session/client/ChannelOps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { Address } from 'viem';
2
+ import type { MaybePromise } from '../../../internal/types.js';
3
+ import type { ChannelEntry } from './ChannelOps.js';
4
+ /** Store of reusable payer session channels keyed by payment scope. */
5
+ export type ChannelStore = {
6
+ /** Returns the channel cached for `key`, when present. */
7
+ get(key: string): MaybePromise<ChannelEntry | undefined>;
8
+ /** Inserts or replaces a channel entry. */
9
+ set(entry: ChannelEntry): MaybePromise<void>;
10
+ /** Removes the channel cached for `key`. */
11
+ delete(key: string): MaybePromise<void>;
12
+ };
13
+ /** Channel persistence and update notification for credential results. */
14
+ export type ChannelSink = {
15
+ store: ChannelStore;
16
+ notifyUpdate: (entry: ChannelEntry) => void;
17
+ };
18
+ /** Returns the scope key for a reusable payer session channel. */
19
+ export declare function channelKey(scope: {
20
+ payee: Address;
21
+ token: Address;
22
+ escrow: Address;
23
+ chainId: number;
24
+ }): string;
25
+ /** Returns the scope key for a stored channel entry. */
26
+ export declare function entryKey(entry: ChannelEntry): string;
27
+ /** Creates the default in-memory {@link ChannelStore}. */
28
+ export declare function createChannelStore(): ChannelStore;
29
+ /** JSON-safe projection of a {@link ChannelEntry}, with bigint amounts as decimal strings. */
30
+ export type StoredChannel = Omit<ChannelEntry, 'cumulativeAmount' | 'deposit'> & {
31
+ /** Cumulative voucher authorization in raw token units, as a decimal string. */
32
+ cumulativeAmount: string;
33
+ /** Channel deposit in raw token units, as a decimal string. */
34
+ deposit: string;
35
+ };
36
+ /** Converts a channel entry into its JSON-safe stored form. */
37
+ export declare function serializeEntry(entry: ChannelEntry): StoredChannel;
38
+ /** Restores a channel entry from its JSON-safe stored form. */
39
+ export declare function deserializeEntry(stored: StoredChannel): ChannelEntry;
40
+ /** Plain string key-value backend a {@link createJsonChannelStore} persists into. */
41
+ export type JsonChannelKv = {
42
+ /** Returns the value stored at `key`, when present. */
43
+ get(key: string): MaybePromise<string | undefined>;
44
+ /** Persists a `value` at `key`. */
45
+ set(key: string, value: string): MaybePromise<void>;
46
+ /** Removes the value stored at `key`. */
47
+ delete(key: string): MaybePromise<void>;
48
+ };
49
+ /** Wraps a string KV backend as a bigint-safe channel store. */
50
+ export declare function createJsonChannelStore(kv: JsonChannelKv): ChannelStore;
51
+ //# sourceMappingURL=ChannelStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelStore.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/ChannelStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG;IACzB,0DAA0D;IAC1D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,YAAY,GAAG,SAAS,CAAC,CAAA;IACxD,2CAA2C;IAC3C,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC5C,4CAA4C;IAC5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;CACxC,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,YAAY,CAAA;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;CAC5C,CAAA;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,MAAM,CAGT;AAED,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAOpD;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,IAAI,YAAY,CAWjD;AAED,8FAA8F;AAC9F,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,kBAAkB,GAAG,SAAS,CAAC,GAAG;IAC/E,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAA;IACxB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAMjE;AAED,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,YAAY,CAMpE;AAKD,qFAAqF;AACrF,MAAM,MAAM,aAAa,GAAG;IAC1B,uDAAuD;IACvD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAClD,mCAAmC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACnD,yCAAyC;IACzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;CACxC,CAAA;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,aAAa,GAAG,YAAY,CActE"}
@@ -0,0 +1,63 @@
1
+ /** Returns the scope key for a reusable payer session channel. */
2
+ export function channelKey(scope) {
3
+ const { payee, token, escrow, chainId } = scope;
4
+ return `${payee.toLowerCase()}:${token.toLowerCase()}:${escrow.toLowerCase()}:${chainId}`;
5
+ }
6
+ /** Returns the scope key for a stored channel entry. */
7
+ export function entryKey(entry) {
8
+ return channelKey({
9
+ payee: entry.descriptor.payee,
10
+ token: entry.descriptor.token,
11
+ escrow: entry.escrow,
12
+ chainId: entry.chainId,
13
+ });
14
+ }
15
+ /** Creates the default in-memory {@link ChannelStore}. */
16
+ export function createChannelStore() {
17
+ const channels = new Map();
18
+ return {
19
+ get: (key) => channels.get(key),
20
+ set(entry) {
21
+ channels.set(entryKey(entry), entry);
22
+ },
23
+ delete(key) {
24
+ channels.delete(key);
25
+ },
26
+ };
27
+ }
28
+ /** Converts a channel entry into its JSON-safe stored form. */
29
+ export function serializeEntry(entry) {
30
+ return {
31
+ ...entry,
32
+ cumulativeAmount: entry.cumulativeAmount.toString(),
33
+ deposit: entry.deposit.toString(),
34
+ };
35
+ }
36
+ /** Restores a channel entry from its JSON-safe stored form. */
37
+ export function deserializeEntry(stored) {
38
+ return {
39
+ ...stored,
40
+ cumulativeAmount: BigInt(stored.cumulativeAmount),
41
+ deposit: BigInt(stored.deposit),
42
+ };
43
+ }
44
+ /** Prefix for serialized channel entries persisted by {@link createJsonChannelStore}. */
45
+ const channelPrefix = 'chan:';
46
+ /** Wraps a string KV backend as a bigint-safe channel store. */
47
+ export function createJsonChannelStore(kv) {
48
+ return {
49
+ async get(key) {
50
+ const value = await kv.get(channelPrefix + key);
51
+ if (value === undefined)
52
+ return undefined;
53
+ return deserializeEntry(JSON.parse(value));
54
+ },
55
+ async set(entry) {
56
+ await kv.set(channelPrefix + entryKey(entry), JSON.stringify(serializeEntry(entry)));
57
+ },
58
+ async delete(key) {
59
+ await kv.delete(channelPrefix + key);
60
+ },
61
+ };
62
+ }
63
+ //# sourceMappingURL=ChannelStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChannelStore.js","sourceRoot":"","sources":["../../../../src/tempo/session/client/ChannelStore.ts"],"names":[],"mappings":"AAqBA,kEAAkE;AAClE,MAAM,UAAU,UAAU,CAAC,KAK1B;IACC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAC/C,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE,CAAA;AAC3F,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,QAAQ,CAAC,KAAmB;IAC1C,OAAO,UAAU,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;QAC7B,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;QAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAA;AACJ,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAA;IAChD,OAAO;QACL,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAC/B,GAAG,CAAC,KAAK;YACP,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACtC,CAAC;QACD,MAAM,CAAC,GAAG;YACR,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;KACqB,CAAA;AAC1B,CAAC;AAUD,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAAC,KAAmB;IAChD,OAAO;QACL,GAAG,KAAK;QACR,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE;QACnD,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;KAClC,CAAA;AACH,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,OAAO;QACL,GAAG,MAAM;QACT,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACjD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;KAChC,CAAA;AACH,CAAC;AAED,yFAAyF;AACzF,MAAM,aAAa,GAAG,OAAO,CAAA;AAY7B,gEAAgE;AAChE,MAAM,UAAU,sBAAsB,CAAC,EAAiB;IACtD,OAAO;QACL,KAAK,CAAC,GAAG,CAAC,GAAG;YACX,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,CAAA;YAC/C,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YACzC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAkB,CAAC,CAAA;QAC7D,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK;YACb,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACtF,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG;YACd,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,GAAG,GAAG,CAAC,CAAA;QACtC,CAAC;KACqB,CAAA;AAC1B,CAAC"}
@@ -7,31 +7,15 @@ import * as Channel from '../precompile/Channel.js';
7
7
  import type { SessionCredentialPayload } from '../precompile/Protocol.js';
8
8
  import type { SessionSnapshot } from '../Snapshot.js';
9
9
  import { type ChannelEntry } from './ChannelOps.js';
10
+ import { type ChannelSink } from './ChannelStore.js';
10
11
  /** Credential payload variants that carry cumulative voucher authorization. */
11
12
  export type CumulativeCredentialPayload = Extract<SessionCredentialPayload, {
12
13
  cumulativeAmount: string;
13
14
  }>;
14
- /** In-memory client channel cache used by automatic precompile session credential planning. */
15
- export type ChannelCache = {
16
- /** Maps reusable channel keys to cached channel metadata. */
17
- channels: Map<string, ChannelEntry>;
18
- /** Maps channel IDs back to reusable channel keys for manual credential cache updates. */
19
- channelIdToKey: Map<string, string>;
20
- /** Emits cache updates to the public `onChannelUpdate` callback. */
21
- notifyUpdate(entry: ChannelEntry): void;
22
- };
23
- /** Creates an empty client channel cache with an optional update callback. */
24
- export declare function createChannelCache(onUpdate?: ((entry: ChannelEntry) => void) | undefined): ChannelCache;
25
- /** Returns the cache key for a reusable payer session channel. */
26
- export declare function channelKey(payee: Address, token: Address, escrow: Address): string;
27
- /** Stores a channel entry and notifies observers. */
28
- export declare function storeChannelEntry(cache: ChannelCache, key: string, entry: ChannelEntry): void;
29
15
  /** Returns whether a credential payload carries cumulative voucher authorization. */
30
16
  export declare function hasCredentialCumulativeAmount(payload: SessionCredentialPayload): payload is CumulativeCredentialPayload;
31
17
  /** Reads cumulative authorization from a credential payload when the action carries one. */
32
18
  export declare function readCredentialCumulativeAmount(payload: SessionCredentialPayload): bigint | undefined;
33
- /** Applies a credential payload's cumulative amount to an existing cached channel. */
34
- export declare function updateCachedCumulative(cache: ChannelCache, channelId: Hex, payload: SessionCredentialPayload): void;
35
19
  /** Runtime schema for low-level TIP-1034 session credential context. */
36
20
  export declare const sessionContextSchema: z.ZodMiniObject<{
37
21
  account: z.ZodMiniOptional<z.ZodMiniCustom<`0x${string}` | Account.Account | undefined, `0x${string}` | Account.Account | undefined>>;
@@ -138,7 +122,7 @@ export type ReusableChannelExpectation = {
138
122
  payee: Address;
139
123
  /** Payer address controlled by the local account. */
140
124
  payer: Address;
141
- /** Voucher signer resolved from local account configuration. */
125
+ /** Voucher authority resolved from the local account. */
142
126
  authorizedSigner: Address;
143
127
  /** Token expected by the current challenge. */
144
128
  token: Address;
@@ -182,8 +166,8 @@ export type ChallengeContext = {
182
166
  /** Inputs used to choose the next client-side session credential operation. */
183
167
  export type PlanCredentialParameters = {
184
168
  account: ViemAccount;
185
- authorizedSigner?: Address | undefined;
186
- cache: ChannelCache;
169
+ /** Channel previously stored for this challenge scope, fetched by the caller. */
170
+ entry: ChannelEntry | undefined;
187
171
  context?: SessionContext | undefined;
188
172
  decimals: number;
189
173
  maxDeposit?: bigint | undefined;
@@ -215,7 +199,6 @@ export type CredentialPlan =
215
199
  {
216
200
  type: 'open';
217
201
  account: ViemAccount;
218
- authorizedSigner?: Address | undefined;
219
202
  context?: SessionContext | undefined;
220
203
  maxDeposit?: bigint | undefined;
221
204
  resolved: ChallengeContext;
@@ -224,7 +207,6 @@ export type CredentialPlan =
224
207
  | {
225
208
  type: 'recover';
226
209
  account: ViemAccount;
227
- authorizedSigner?: Address | undefined;
228
210
  context: DescriptorSessionContext;
229
211
  decimals: number;
230
212
  maxDeposit?: bigint | undefined;
@@ -242,7 +224,6 @@ export type CredentialPlan =
242
224
  | {
243
225
  type: 'manual';
244
226
  account: ViemAccount;
245
- authorizedSigner?: Address | undefined;
246
227
  context: ManualSessionDescriptorContext;
247
228
  decimals: number;
248
229
  resolved: ChallengeContext;
@@ -255,8 +236,10 @@ export declare function resolveReusableChannel(parameters: ResolveReusableChanne
255
236
  export declare function resolveRecoverContext(parameters: ResolveRecoverContextParameters): DescriptorSessionContext | undefined;
256
237
  /** Resolves a voucher boundary that can satisfy the resumed request. */
257
238
  export declare function resolveRecoveredCumulative(parameters: ResolveRecoveredCumulativeParameters): bigint;
239
+ /** Returns whether `account` can satisfy the descriptor's voucher authority. */
240
+ export declare function canSignDescriptor(account: ViemAccount, descriptor: Channel.ChannelDescriptor): boolean;
258
241
  /** Chooses the next credential plan from local channel cache and optional caller context. */
259
242
  export declare function planCredential(parameters: PlanCredentialParameters): CredentialPlan;
260
243
  /** Executes a credential plan and returns the concrete session credential payload. */
261
- export declare function executeCredentialPlan(plan: CredentialPlan, cache: ChannelCache): Promise<SessionCredentialPayload>;
244
+ export declare function executeCredentialPlan(plan: CredentialPlan, sink: ChannelSink): Promise<SessionCredentialPayload>;
262
245
  //# sourceMappingURL=CredentialState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialState.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/CredentialState.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,IAAI,WAAW,EAC3B,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,GAAG,EACT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAEvD,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AACnD,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AACpC,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAA;AAGxB,+EAA+E;AAC/E,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAC/C,wBAAwB,EACxB;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAC7B,CAAA;AAED,+FAA+F;AAC/F,MAAM,MAAM,YAAY,GAAG;IACzB,6DAA6D;IAC7D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACnC,0FAA0F;IAC1F,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,oEAAoE;IACpE,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CACxC,CAAA;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAChC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,GACrD,YAAY,CAMd;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAElF;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAI7F;AAED,qFAAqF;AACrF,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,wBAAwB,GAChC,OAAO,IAAI,2BAA2B,CAExC;AAED,4FAA4F;AAC5F,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,wBAAwB,GAChC,MAAM,GAAG,SAAS,CAGpB;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,wBAAwB,GAChC,IAAI,CAUN;AASD,wEAAwE;AACxE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;iBAW/B,CAAA;AAEF,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;IAC/D,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;IAC3D,uDAAuD;IACvD,SAAS,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;IAC3B,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,mEAAmE;IACnE,WAAW,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;IAC7B,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAA;IAClD,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,gFAAgF;IAChF,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC,CAAA;AAED,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEjE,uFAAuF;AACvF,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,CAAA;AAEzE,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,CAAA;AAE7E,sFAAsF;AACtF,MAAM,MAAM,8BAA8B,GAAG,oBAAoB,GAAG;IAClE,oFAAoF;IACpF,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAA;CACtC,CAAA;AAED,6EAA6E;AAC7E,MAAM,MAAM,wBAAwB,GAAG,cAAc,GAAG;IAAE,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAA;CAAE,CAAA;AAEjG,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,OAAO,IAAI,oBAAoB,CAEjC;AAED,+FAA+F;AAC/F,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,OAAO,IAAI,8BAA8B,CAE3C;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,GAAG,SAAS,GAClC,OAAO,IAAI,wBAAwB,CAErC;AAED,6FAA6F;AAC7F,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,MAAM,GAAG,SAAS,CAQpB;AAED,oGAAoG;AACpG,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,MAAM,GACb,MAAM,CAIR;AAED,8EAA8E;AAC9E,MAAM,MAAM,0BAA0B,GAAG;IACvC,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,gEAAgE;IAChE,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;CAC9C,CAAA;AAED,oFAAoF;AACpF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,gDAAgD;IAChD,SAAS,EAAE,SAAS,CAAC,SAAS,CAAA;IAC9B,sCAAsC;IACtC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,wDAAwD;IACxD,SAAS,CAAC,UAAU,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAClF,CAAA;AAED,6DAA6D;AAC7D,MAAM,MAAM,wBAAwB,GAAG,CACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,EACd,MAAM,EAAE,OAAO,KACZ,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAEhC,2FAA2F;AAC3F,MAAM,MAAM,0BAA0B,GAAG;IACvC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,MAAM,EAAE,OAAO,CAAA;IACf,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAA;IACd,qDAAqD;IACrD,KAAK,EAAE,OAAO,CAAA;IACd,gEAAgE;IAChE,gBAAgB,EAAE,OAAO,CAAA;IACzB,+CAA+C;IAC/C,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,gFAAgF;AAChF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAA;IACd,4EAA4E;IAC5E,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAA;IACrC,2DAA2D;IAC3D,QAAQ,EAAE,0BAA0B,CAAA;IACpC,8FAA8F;IAC9F,gBAAgB,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAA;CACxD,CAAA;AAED,uCAAuC;AACvC,MAAM,MAAM,eAAe,GAAG;IAC5B,8CAA8C;IAC9C,SAAS,EAAE,GAAG,CAAA;IACd,uEAAuE;IACvE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAA;CAC1B,CAAA;AAED,uFAAuF;AACvF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAC,SAAS,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;IACtC,+FAA+F;IAC/F,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,+EAA+E;AAC/E,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,QAAQ,EAAE,gBAAgB,CAAA;CAC3B,CAAA;AAED,oGAAoG;AACpG,MAAM,MAAM,+BAA+B,GAAG;IAC5C,+DAA+D;IAC/D,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IACpC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,uFAAuF;AACvF,MAAM,MAAM,oCAAoC,GAAG;IACjD,iDAAiD;IACjD,OAAO,EAAE,wBAAwB,CAAA;IACjC,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAA;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;IACtC,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,yFAAyF;AACzF,MAAM,MAAM,cAAc;AACxB,2FAA2F;AACzF;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AACH,0FAA0F;GACxF;IACE,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,OAAO,EAAE,wBAAwB,CAAA;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AACH,kFAAkF;GAChF;IACE,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,YAAY,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AACH,sFAAsF;GACpF;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,OAAO,EAAE,8BAA8B,CAAA;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B,CAAA;AAgDL,gGAAgG;AAChG,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,iCAAiC,GAC5C,OAAO,CAAC,gBAAgB,CAAC,CAyB3B;AAED,2FAA2F;AAC3F,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,gCAAgC,GAC3C,OAAO,CAAC,eAAe,CAAC,CA+B1B;AAyBD,4FAA4F;AAC5F,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,+BAA+B,GAC1C,wBAAwB,GAAG,SAAS,CAStC;AAED,wEAAwE;AACxE,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,oCAAoC,GAC/C,MAAM,CAUR;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc,CAiCnF;AAED,sFAAsF;AACtF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,wBAAwB,CAAC,CAWnC"}
1
+ {"version":3,"file":"CredentialState.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/client/CredentialState.ts"],"names":[],"mappings":"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"}
@@ -4,25 +4,8 @@ import * as z from '../../../zod.js';
4
4
  import * as Chain from '../precompile/Chain.js';
5
5
  import * as Channel from '../precompile/Channel.js';
6
6
  import { createClosePayload, createOpenPayload, createTopUpPayload, createVoucherPayload, isSameAddress, resolveAuthorizedSigner, resolveEscrow, } from './ChannelOps.js';
7
+ import { channelKey, entryKey } from './ChannelStore.js';
7
8
  import { assertWithinMaxDeposit, resolveOpeningDeposit } from './Runtime.js';
8
- /** Creates an empty client channel cache with an optional update callback. */
9
- export function createChannelCache(onUpdate) {
10
- return {
11
- channels: new Map(),
12
- channelIdToKey: new Map(),
13
- notifyUpdate: (entry) => onUpdate?.(entry),
14
- };
15
- }
16
- /** Returns the cache key for a reusable payer session channel. */
17
- export function channelKey(payee, token, escrow) {
18
- return `${payee.toLowerCase()}:${token.toLowerCase()}:${escrow.toLowerCase()}`;
19
- }
20
- /** Stores a channel entry and notifies observers. */
21
- export function storeChannelEntry(cache, key, entry) {
22
- cache.channels.set(key, entry);
23
- cache.channelIdToKey.set(entry.channelId, key);
24
- cache.notifyUpdate(entry);
25
- }
26
9
  /** Returns whether a credential payload carries cumulative voucher authorization. */
27
10
  export function hasCredentialCumulativeAmount(payload) {
28
11
  return 'cumulativeAmount' in payload;
@@ -33,20 +16,33 @@ export function readCredentialCumulativeAmount(payload) {
33
16
  return undefined;
34
17
  return BigInt(payload.cumulativeAmount);
35
18
  }
36
- /** Applies a credential payload's cumulative amount to an existing cached channel. */
37
- export function updateCachedCumulative(cache, channelId, payload) {
38
- const key = cache.channelIdToKey.get(channelId);
19
+ /**
20
+ * Persists a channel entry through the sink and notifies observers. Closed
21
+ * channels are removed from the store but still reported to observers so callers
22
+ * can react to the close.
23
+ */
24
+ async function storeChannelEntry(sink, entry) {
25
+ if (entry.opened)
26
+ await sink.store.set(entry);
27
+ else
28
+ await sink.store.delete(entryKey(entry));
29
+ sink.notifyUpdate(entry);
30
+ }
31
+ /** Applies a credential payload's cumulative amount to the stored channel at `key`. */
32
+ async function applyCumulative(sink, key, payload) {
39
33
  const cumulativeAmount = readCredentialCumulativeAmount(payload);
40
- if (!key || cumulativeAmount === undefined)
34
+ if (cumulativeAmount === undefined)
41
35
  return;
42
- const entry = cache.channels.get(key);
36
+ const entry = await sink.store.get(key);
43
37
  if (!entry)
44
38
  return;
39
+ if (entry.channelId.toLowerCase() !== payload.channelId.toLowerCase())
40
+ return;
45
41
  entry.cumulativeAmount =
46
42
  entry.cumulativeAmount > cumulativeAmount ? entry.cumulativeAmount : cumulativeAmount;
47
43
  if (payload.action === 'close')
48
44
  entry.opened = false;
49
- cache.notifyUpdate(entry);
45
+ await storeChannelEntry(sink, entry);
50
46
  }
51
47
  const hexSchema = z.custom((value) => typeof value === 'string' && /^0x[0-9a-fA-F]*$/.test(value));
52
48
  const hashSchema = z.custom((value) => typeof value === 'string' && /^0x[0-9a-fA-F]{64}$/.test(value));
@@ -142,7 +138,7 @@ export async function resolveChallengeContext(parameters) {
142
138
  client,
143
139
  escrow,
144
140
  feePayer: methodDetails.feePayer,
145
- key: channelKey(payee, token, escrow),
141
+ key: channelKey({ payee, token, escrow, chainId }),
146
142
  operator: methodDetails.operator,
147
143
  payee,
148
144
  snapshot: methodDetails.sessionSnapshot,
@@ -210,55 +206,62 @@ export function resolveRecoveredCumulative(parameters) {
210
206
  return contextCumulative + requestAmount;
211
207
  return settled + requestAmount;
212
208
  }
209
+ /** Returns whether `account` can satisfy the descriptor's voucher authority. */
210
+ export function canSignDescriptor(account, descriptor) {
211
+ // Only the payer can deposit into and voucher against its own channel.
212
+ if (!isSameAddress(account.address, descriptor.payer))
213
+ return false;
214
+ const authority = descriptor.authorizedSigner;
215
+ if (BigInt(authority) === 0n || isSameAddress(authority, descriptor.payer))
216
+ return true;
217
+ return isSameAddress(resolveAuthorizedSigner(account), authority);
218
+ }
213
219
  /** Chooses the next credential plan from local channel cache and optional caller context. */
214
220
  export function planCredential(parameters) {
215
- const { account, authorizedSigner, cache, context, decimals, maxDeposit, resolved } = parameters;
221
+ const { account, entry, context, decimals, maxDeposit, resolved } = parameters;
216
222
  if (hasSessionAction(context)) {
217
223
  if (!hasManualSessionDescriptor(context))
218
224
  throw new Error('descriptor required for TIP-1034 session action');
219
225
  return {
220
226
  type: 'manual',
221
227
  account,
222
- authorizedSigner,
223
228
  context,
224
229
  decimals,
225
230
  resolved,
226
231
  };
227
232
  }
228
- const entry = cache.channels.get(resolved.key);
229
233
  if (!entry && context?.channelId && !context.descriptor)
230
234
  throw new Error('descriptor required to reuse TIP-1034 channel');
231
235
  const recoverContext = resolveRecoverContext({ context, snapshot: resolved.snapshot });
232
- if (!entry && recoverContext) {
236
+ if (!entry && recoverContext && canSignDescriptor(account, recoverContext.descriptor)) {
233
237
  return {
234
238
  type: 'recover',
235
239
  account,
236
- authorizedSigner,
237
240
  context: recoverContext,
238
241
  decimals,
239
242
  maxDeposit,
240
243
  resolved,
241
244
  };
242
245
  }
243
- if (entry?.opened)
246
+ if (entry?.opened && canSignDescriptor(account, entry.descriptor))
244
247
  return { type: 'voucher', account, entry, maxDeposit, resolved };
245
- return { type: 'open', account, authorizedSigner, context, maxDeposit, resolved };
248
+ return { type: 'open', account, context, maxDeposit, resolved };
246
249
  }
247
250
  /** Executes a credential plan and returns the concrete session credential payload. */
248
- export async function executeCredentialPlan(plan, cache) {
251
+ export async function executeCredentialPlan(plan, sink) {
249
252
  switch (plan.type) {
250
253
  case 'open':
251
- return open(plan, cache);
254
+ return open(plan, sink);
252
255
  case 'recover':
253
- return recover(plan, cache);
256
+ return recover(plan, sink);
254
257
  case 'voucher':
255
- return voucher(plan, cache);
258
+ return voucher(plan, sink);
256
259
  case 'manual':
257
- return manual(plan, cache);
260
+ return manual(plan, sink);
258
261
  }
259
262
  }
260
- async function open(plan, cache) {
261
- const { account, authorizedSigner, resolved } = plan;
263
+ async function open(plan, sink) {
264
+ const { account, resolved } = plan;
262
265
  const deposit = resolveOpeningDeposit({
263
266
  contextDepositRaw: plan.context?.depositRaw,
264
267
  maxDeposit: plan.maxDeposit,
@@ -266,7 +269,6 @@ async function open(plan, cache) {
266
269
  suggestedDepositRaw: resolved.suggestedDepositRaw,
267
270
  });
268
271
  const payload = await createOpenPayload(resolved.client, account, {
269
- authorizedSigner,
270
272
  chainId: resolved.chainId,
271
273
  deposit,
272
274
  escrow: resolved.escrow,
@@ -276,7 +278,7 @@ async function open(plan, cache) {
276
278
  payee: resolved.payee,
277
279
  token: resolved.token,
278
280
  });
279
- storeChannelEntry(cache, resolved.key, {
281
+ await storeChannelEntry(sink, {
280
282
  channelId: payload.channelId,
281
283
  cumulativeAmount: resolved.amount,
282
284
  deposit,
@@ -287,7 +289,7 @@ async function open(plan, cache) {
287
289
  });
288
290
  return payload;
289
291
  }
290
- async function recover(plan, cache) {
292
+ async function recover(plan, sink) {
291
293
  const { account, context, decimals, maxDeposit, resolved } = plan;
292
294
  const { descriptor } = context;
293
295
  const reusable = await resolveReusableChannel({
@@ -299,7 +301,7 @@ async function recover(plan, cache) {
299
301
  escrow: resolved.escrow,
300
302
  payee: resolved.payee,
301
303
  payer: account.address,
302
- authorizedSigner: resolveAuthorizedSigner(account, plan.authorizedSigner),
304
+ authorizedSigner: resolveAuthorizedSigner(account),
303
305
  token: resolved.token,
304
306
  },
305
307
  });
@@ -314,7 +316,7 @@ async function recover(plan, cache) {
314
316
  throw new Error('recovered voucher amount exceeds on-chain channel deposit');
315
317
  assertWithinMaxDeposit(cumulativeAmount, maxDeposit);
316
318
  const payload = await createVoucherPayload(resolved.client, account, descriptor, cumulativeAmount, resolved.chainId, resolved.escrow);
317
- storeChannelEntry(cache, resolved.key, {
319
+ await storeChannelEntry(sink, {
318
320
  channelId: reusable.channelId,
319
321
  cumulativeAmount,
320
322
  deposit: reusable.state.deposit,
@@ -325,16 +327,16 @@ async function recover(plan, cache) {
325
327
  });
326
328
  return payload;
327
329
  }
328
- async function voucher(plan, cache) {
330
+ async function voucher(plan, sink) {
329
331
  const { account, entry, resolved } = plan;
330
332
  const cumulativeAmount = entry.cumulativeAmount + resolved.amount;
331
333
  assertWithinMaxDeposit(cumulativeAmount, plan.maxDeposit);
332
334
  const payload = await createVoucherPayload(resolved.client, account, entry.descriptor, cumulativeAmount, resolved.chainId, resolved.escrow);
333
335
  entry.cumulativeAmount = cumulativeAmount;
334
- cache.notifyUpdate(entry);
336
+ await storeChannelEntry(sink, entry);
335
337
  return payload;
336
338
  }
337
- async function manual(plan, cache) {
339
+ async function manual(plan, sink) {
338
340
  const { account, context, decimals, resolved } = plan;
339
341
  const { descriptor } = context;
340
342
  const channelId = Channel.computeId({
@@ -348,7 +350,7 @@ async function manual(plan, cache) {
348
350
  expectedChannelId: channelId,
349
351
  payee: resolved.payee,
350
352
  payer: account.address,
351
- authorizedSigner: resolveAuthorizedSigner(account, plan.authorizedSigner),
353
+ authorizedSigner: resolveAuthorizedSigner(account),
352
354
  token: resolved.token,
353
355
  });
354
356
  const payload = await executeManualCredential({
@@ -359,7 +361,7 @@ async function manual(plan, cache) {
359
361
  descriptor,
360
362
  resolved,
361
363
  });
362
- updateCachedCumulative(cache, channelId, payload);
364
+ await applyCumulative(sink, resolved.key, payload);
363
365
  return payload;
364
366
  }
365
367
  async function executeManualCredential(parameters) {