mppx 0.8.15 → 0.8.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +91 -0
- package/README.md +15 -0
- package/dist/Challenge.js +61 -39
- package/dist/Constants.d.ts +17 -17
- package/dist/Errors.d.ts +3 -3
- package/dist/Method.d.ts +35 -5
- package/dist/Method.js +7 -22
- package/dist/Store.d.ts +19 -0
- package/dist/Store.js +43 -0
- package/dist/attestation/Client.d.ts +17 -0
- package/dist/attestation/Client.js +28 -0
- package/dist/attestation/Constants.d.ts +15 -0
- package/dist/attestation/Constants.js +15 -0
- package/dist/attestation/Server.d.ts +4 -0
- package/dist/attestation/Server.js +8 -0
- package/dist/attestation/Types.d.ts +76 -0
- package/dist/attestation/Types.js +2 -0
- package/dist/attestation/index.d.ts +6 -0
- package/dist/attestation/index.js +6 -0
- package/dist/attestation/internal/HttpMessageSignature.d.ts +73 -0
- package/dist/attestation/internal/HttpMessageSignature.js +320 -0
- package/dist/attestation/internal/SigningContext.d.ts +4 -0
- package/dist/attestation/internal/SigningContext.js +11 -0
- package/dist/bin.js +3 -3
- package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
- package/dist/cli/account.d.ts +14 -14
- package/dist/cli/cli.d.ts +6 -6
- package/dist/cli/cli.js +253 -1504
- package/dist/cli/plugins/index.js +19 -5
- package/dist/cli/plugins/tempo.js +7 -3
- package/dist/cli/sessions/Manager.js +7 -4
- package/dist/cli/sessions/commands.d.ts +4 -4
- package/dist/cli/sessions/request.d.ts +2 -0
- package/dist/cli/sessions/request.js +18 -0
- package/dist/cli/sessions/store.js +28 -14
- package/dist/cli/utils.d.ts +1 -1
- package/dist/cli/validate/index.d.ts +3 -3
- package/dist/client/Mppx.d.ts +3 -0
- package/dist/client/Mppx.js +13 -5
- package/dist/client/Transport.d.ts +3 -5
- package/dist/client/Transport.js +1 -17
- package/dist/client/internal/Fetch.js +2 -6
- package/dist/discovery/Discovery.js +2 -1
- package/dist/discovery/OpenApi.d.ts +3 -5
- package/dist/discovery/OpenApi.js +13 -34
- package/dist/discovery/internal/Metadata.d.ts +20 -0
- package/dist/discovery/internal/Metadata.js +36 -0
- package/dist/evm/Methods.d.ts +11 -11
- package/dist/evm/Types.d.ts +17 -17
- package/dist/evm/client/Charge.d.ts +11 -11
- package/dist/evm/client/Charge.js +8 -0
- package/dist/evm/client/Methods.d.ts +11 -11
- package/dist/evm/server/Charge.d.ts +1 -1
- package/dist/evm/server/Charge.js +2 -0
- package/dist/evm/server/Methods.d.ts +11 -11
- package/dist/internal/HeaderCodec.d.ts +2 -2
- package/dist/internal/types.d.ts +6 -0
- package/dist/proxy/Proxy.d.ts +2 -0
- package/dist/proxy/Proxy.js +117 -9
- package/dist/proxy/Service.d.ts +36 -1
- package/dist/proxy/Service.js +9 -8
- package/dist/proxy/services/anthropic.js +1 -0
- package/dist/proxy/services/openai.js +1 -0
- package/dist/proxy/services/stripe.js +1 -0
- package/dist/server/Mppx.d.ts +75 -13
- package/dist/server/Mppx.js +201 -23
- package/dist/server/core.d.ts +9 -0
- package/dist/server/core.js +9 -0
- package/dist/server/internal/html/config.d.ts +9 -9
- package/dist/server/internal/html/constants.d.ts +17 -17
- package/dist/stripe/Methods.d.ts +10 -10
- package/dist/stripe/client/Charge.d.ts +10 -10
- package/dist/stripe/client/Methods.d.ts +10 -10
- package/dist/stripe/internal/constants.d.ts +1 -1
- package/dist/stripe/internal/constants.js +1 -1
- package/dist/stripe/internal/types.d.ts +1 -0
- package/dist/stripe/server/Charge.d.ts +11 -11
- package/dist/stripe/server/Charge.js +51 -5
- package/dist/stripe/server/Methods.d.ts +137 -48
- package/dist/stripe/server/Methods.js +265 -4
- package/dist/stripe/server/internal/deposit-address.d.ts +13 -0
- package/dist/stripe/server/internal/deposit-address.js +28 -0
- package/dist/stripe/server/internal/html.gen.d.ts +1 -1
- package/dist/stripe/server/internal/html.gen.js +1 -1
- package/dist/stripe/server/internal/record-payment.d.ts +15 -0
- package/dist/stripe/server/internal/record-payment.js +42 -0
- package/dist/stripe/server/internal/request.d.ts +25 -0
- package/dist/stripe/server/internal/request.js +29 -0
- package/dist/stripe/server/spt.d.ts +8 -0
- package/dist/stripe/server/spt.js +8 -0
- package/dist/tap/Constants.d.ts +28 -0
- package/dist/tap/Constants.js +32 -0
- package/dist/tap/Types.d.ts +11 -0
- package/dist/tap/Types.js +2 -0
- package/dist/tap/client/index.d.ts +26 -0
- package/dist/tap/client/index.js +33 -0
- package/dist/tap/index.d.ts +5 -0
- package/dist/tap/index.js +5 -0
- package/dist/tap/server/index.d.ts +20 -0
- package/dist/tap/server/index.js +36 -0
- package/dist/tempo/Attribution.d.ts +1 -1
- package/dist/tempo/Methods.d.ts +73 -60
- package/dist/tempo/Methods.js +14 -3
- package/dist/tempo/Proof.d.ts +16 -16
- package/dist/tempo/client/Charge.d.ts +22 -19
- package/dist/tempo/client/Charge.js +32 -16
- package/dist/tempo/client/Methods.d.ts +51 -38
- package/dist/tempo/client/Subscription.d.ts +23 -23
- package/dist/tempo/internal/address.d.ts +2 -1
- package/dist/tempo/internal/address.js +3 -1
- package/dist/tempo/internal/auto-swap.js +4 -19
- package/dist/tempo/internal/defaults.d.ts +17 -6
- package/dist/tempo/internal/defaults.js +11 -0
- package/dist/tempo/internal/fee-payer.d.ts +12 -12
- package/dist/tempo/internal/machine-token-charge.d.ts +51 -0
- package/dist/tempo/internal/machine-token-charge.js +113 -0
- package/dist/tempo/internal/machine-token-session.d.ts +88 -0
- package/dist/tempo/internal/machine-token-session.js +173 -0
- package/dist/tempo/internal/proof.d.ts +17 -17
- package/dist/tempo/internal/signature-envelope.d.ts +14 -0
- package/dist/tempo/internal/signature-envelope.js +28 -0
- package/dist/tempo/legacy/client/ChannelOps.d.ts +2 -2
- package/dist/tempo/legacy/client/ChannelOps.js +11 -5
- package/dist/tempo/legacy/client/Session.d.ts +33 -21
- package/dist/tempo/legacy/client/Session.js +3 -3
- package/dist/tempo/legacy/client/SessionManager.d.ts +3 -1
- package/dist/tempo/legacy/client/SessionManager.js +2 -0
- package/dist/tempo/legacy/index.d.ts +1 -3
- package/dist/tempo/legacy/index.js +1 -3
- package/dist/tempo/legacy/session/escrow.abi.d.ts +374 -374
- package/dist/tempo/server/Charge.d.ts +28 -11
- package/dist/tempo/server/Charge.js +101 -55
- package/dist/tempo/server/Methods.d.ts +58 -56
- package/dist/tempo/server/Methods.js +8 -18
- package/dist/tempo/server/Relay.d.ts +1 -1
- package/dist/tempo/server/Relay.js +2 -2
- package/dist/tempo/server/Subscription.d.ts +25 -25
- package/dist/tempo/server/Subscription.js +2 -0
- package/dist/tempo/server/index.d.ts +1 -1
- package/dist/tempo/server/index.js +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/transport.d.ts +2 -0
- package/dist/tempo/server/internal/transport.js +9 -2
- package/dist/tempo/session/client/ChannelOps.d.ts +18 -3
- package/dist/tempo/session/client/ChannelOps.js +35 -6
- package/dist/tempo/session/client/ChannelStore.d.ts +0 -5
- package/dist/tempo/session/client/ChannelStore.js +2 -2
- package/dist/tempo/session/client/CredentialState.d.ts +18 -3
- package/dist/tempo/session/client/CredentialState.js +77 -76
- package/dist/tempo/session/client/Runtime.d.ts +4 -2
- package/dist/tempo/session/client/Runtime.js +21 -5
- package/dist/tempo/session/client/Session.d.ts +34 -22
- package/dist/tempo/session/client/Session.js +186 -63
- package/dist/tempo/session/client/SessionManager.d.ts +3 -1
- package/dist/tempo/session/client/SessionManager.js +35 -11
- package/dist/tempo/session/client/Transports.d.ts +2 -0
- package/dist/tempo/session/client/Transports.js +12 -2
- package/dist/tempo/session/precompile/Chain.d.ts +37 -2
- package/dist/tempo/session/precompile/Chain.js +116 -15
- package/dist/tempo/session/precompile/Protocol.d.ts +15 -0
- package/dist/tempo/session/precompile/Protocol.js +7 -0
- package/dist/tempo/session/precompile/Voucher.d.ts +7 -5
- package/dist/tempo/session/precompile/Voucher.js +6 -12
- package/dist/tempo/session/precompile/escrow.abi.d.ts +306 -306
- package/dist/tempo/session/server/ChannelStore.d.ts +15 -0
- package/dist/tempo/session/server/ChannelStore.js +27 -12
- package/dist/tempo/session/server/CredentialVerification.d.ts +39 -20
- package/dist/tempo/session/server/CredentialVerification.js +359 -89
- package/dist/tempo/session/server/MeteredStream.d.ts +4 -1
- package/dist/tempo/session/server/MeteredStream.js +8 -5
- package/dist/tempo/session/server/RequestState.d.ts +19 -0
- package/dist/tempo/session/server/RequestState.js +61 -15
- package/dist/tempo/session/server/Session.d.ts +46 -23
- package/dist/tempo/session/server/Session.js +150 -56
- package/dist/tempo/session/server/Settlement.d.ts +11 -4
- package/dist/tempo/session/server/Settlement.js +53 -21
- package/dist/tempo/session/server/Sse.d.ts +3 -1
- package/dist/tempo/session/server/Sse.js +2 -1
- package/dist/tempo/session/server/Transports.d.ts +1 -1
- package/dist/tempo/session/server/Transports.js +1 -0
- package/dist/tempo/session/server/Ws.d.ts +6 -1
- package/dist/tempo/session/server/Ws.js +1 -0
- package/dist/tempo/subscription/KeyAuthorization.d.ts +39 -39
- package/dist/web-bot-auth/Constants.d.ts +20 -0
- package/dist/web-bot-auth/Constants.js +24 -0
- package/dist/web-bot-auth/Types.d.ts +10 -0
- package/dist/web-bot-auth/Types.js +2 -0
- package/dist/web-bot-auth/client/index.d.ts +29 -0
- package/dist/web-bot-auth/client/index.js +64 -0
- package/dist/web-bot-auth/index.d.ts +7 -0
- package/dist/web-bot-auth/index.js +7 -0
- package/dist/web-bot-auth/internal/JwkThumbprint.d.ts +5 -0
- package/dist/web-bot-auth/internal/JwkThumbprint.js +20 -0
- package/dist/web-bot-auth/internal/SignatureAgent.d.ts +3 -0
- package/dist/web-bot-auth/internal/SignatureAgent.js +18 -0
- package/dist/web-bot-auth/server/index.d.ts +35 -0
- package/dist/web-bot-auth/server/index.js +88 -0
- package/dist/x402/Types.d.ts +6 -6
- package/dist/x402/client/Exact.d.ts +8 -0
- package/dist/x402/client/Exact.js +40 -10
- package/dist/x402/server/EvmCharge.d.ts +22 -0
- package/dist/x402/server/EvmCharge.js +54 -20
- package/package.json +28 -34
- package/dist/BodyDigest.d.ts.map +0 -1
- package/dist/BodyDigest.js.map +0 -1
- package/dist/Challenge.d.ts.map +0 -1
- package/dist/Challenge.js.map +0 -1
- package/dist/Constants.d.ts.map +0 -1
- package/dist/Constants.js.map +0 -1
- package/dist/Credential.d.ts.map +0 -1
- package/dist/Credential.js.map +0 -1
- package/dist/Errors.d.ts.map +0 -1
- package/dist/Errors.js.map +0 -1
- package/dist/Expires.d.ts.map +0 -1
- package/dist/Expires.js.map +0 -1
- package/dist/Html.d.ts.map +0 -1
- package/dist/Html.js.map +0 -1
- package/dist/Mcp.d.ts.map +0 -1
- package/dist/Mcp.js.map +0 -1
- package/dist/Method.d.ts.map +0 -1
- package/dist/Method.js.map +0 -1
- package/dist/PaymentRequest.d.ts.map +0 -1
- package/dist/PaymentRequest.js.map +0 -1
- package/dist/Receipt.d.ts.map +0 -1
- package/dist/Receipt.js.map +0 -1
- package/dist/Store.d.ts.map +0 -1
- package/dist/Store.js.map +0 -1
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js.map +0 -1
- package/dist/cli/account.d.ts.map +0 -1
- package/dist/cli/account.js.map +0 -1
- package/dist/cli/cli.d.ts.map +0 -1
- package/dist/cli/cli.js.map +0 -1
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.js.map +0 -1
- package/dist/cli/internal.d.ts.map +0 -1
- package/dist/cli/internal.js.map +0 -1
- package/dist/cli/plugins/evm.d.ts.map +0 -1
- package/dist/cli/plugins/evm.js.map +0 -1
- package/dist/cli/plugins/index.d.ts.map +0 -1
- package/dist/cli/plugins/index.js.map +0 -1
- package/dist/cli/plugins/plugin.d.ts.map +0 -1
- package/dist/cli/plugins/plugin.js.map +0 -1
- package/dist/cli/plugins/stripe.d.ts.map +0 -1
- package/dist/cli/plugins/stripe.js.map +0 -1
- package/dist/cli/plugins/tempo.d.ts.map +0 -1
- package/dist/cli/plugins/tempo.js.map +0 -1
- package/dist/cli/sessions/Manager.d.ts.map +0 -1
- package/dist/cli/sessions/Manager.js.map +0 -1
- package/dist/cli/sessions/commands.d.ts.map +0 -1
- package/dist/cli/sessions/commands.js.map +0 -1
- package/dist/cli/sessions/request.d.ts.map +0 -1
- package/dist/cli/sessions/request.js.map +0 -1
- package/dist/cli/sessions/store.d.ts.map +0 -1
- package/dist/cli/sessions/store.js.map +0 -1
- package/dist/cli/utils.d.ts.map +0 -1
- package/dist/cli/utils.js.map +0 -1
- package/dist/cli/validate/challenge.d.ts.map +0 -1
- package/dist/cli/validate/challenge.js.map +0 -1
- package/dist/cli/validate/discovery.d.ts.map +0 -1
- package/dist/cli/validate/discovery.js.map +0 -1
- package/dist/cli/validate/helpers.d.ts.map +0 -1
- package/dist/cli/validate/helpers.js.map +0 -1
- package/dist/cli/validate/index.d.ts.map +0 -1
- package/dist/cli/validate/index.js.map +0 -1
- package/dist/cli/validate/messages.d.ts.map +0 -1
- package/dist/cli/validate/messages.js.map +0 -1
- package/dist/cli/validate/payment.d.ts.map +0 -1
- package/dist/cli/validate/payment.js.map +0 -1
- package/dist/client/Methods.d.ts.map +0 -1
- package/dist/client/Methods.js.map +0 -1
- package/dist/client/Mppx.d.ts.map +0 -1
- package/dist/client/Mppx.js.map +0 -1
- package/dist/client/Transport.d.ts.map +0 -1
- package/dist/client/Transport.js.map +0 -1
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/client/internal/Fetch.d.ts.map +0 -1
- package/dist/client/internal/Fetch.js.map +0 -1
- package/dist/client/internal/MethodChallenge.d.ts.map +0 -1
- package/dist/client/internal/MethodChallenge.js.map +0 -1
- package/dist/client/internal/MethodResponse.d.ts.map +0 -1
- package/dist/client/internal/MethodResponse.js.map +0 -1
- package/dist/client/internal/protocols/Mcp.d.ts.map +0 -1
- package/dist/client/internal/protocols/Mcp.js.map +0 -1
- package/dist/client/internal/protocols/Mpp.d.ts.map +0 -1
- package/dist/client/internal/protocols/Mpp.js.map +0 -1
- package/dist/client/internal/protocols/Protocol.d.ts.map +0 -1
- package/dist/client/internal/protocols/Protocol.js.map +0 -1
- package/dist/client/internal/protocols/Shared.d.ts.map +0 -1
- package/dist/client/internal/protocols/Shared.js.map +0 -1
- package/dist/client/internal/protocols/X402.d.ts.map +0 -1
- package/dist/client/internal/protocols/X402.js.map +0 -1
- package/dist/client/node.d.ts.map +0 -1
- package/dist/client/node.js.map +0 -1
- package/dist/discovery/Discovery.d.ts.map +0 -1
- package/dist/discovery/Discovery.js.map +0 -1
- package/dist/discovery/OpenApi.d.ts.map +0 -1
- package/dist/discovery/OpenApi.js.map +0 -1
- package/dist/discovery/Validate.d.ts.map +0 -1
- package/dist/discovery/Validate.js.map +0 -1
- package/dist/discovery/index.d.ts.map +0 -1
- package/dist/discovery/index.js.map +0 -1
- package/dist/evm/Assets.d.ts.map +0 -1
- package/dist/evm/Assets.js.map +0 -1
- package/dist/evm/Chains.d.ts.map +0 -1
- package/dist/evm/Chains.js.map +0 -1
- package/dist/evm/Methods.d.ts.map +0 -1
- package/dist/evm/Methods.js.map +0 -1
- package/dist/evm/Types.d.ts.map +0 -1
- package/dist/evm/Types.js.map +0 -1
- package/dist/evm/client/Charge.d.ts.map +0 -1
- package/dist/evm/client/Charge.js.map +0 -1
- package/dist/evm/client/Methods.d.ts.map +0 -1
- package/dist/evm/client/Methods.js.map +0 -1
- package/dist/evm/client/index.d.ts.map +0 -1
- package/dist/evm/client/index.js.map +0 -1
- package/dist/evm/index.d.ts.map +0 -1
- package/dist/evm/index.js.map +0 -1
- package/dist/evm/server/Charge.d.ts.map +0 -1
- package/dist/evm/server/Charge.js.map +0 -1
- package/dist/evm/server/Methods.d.ts.map +0 -1
- package/dist/evm/server/Methods.js.map +0 -1
- package/dist/evm/server/index.d.ts.map +0 -1
- package/dist/evm/server/index.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal/AcceptPayment.d.ts.map +0 -1
- package/dist/internal/AcceptPayment.js.map +0 -1
- package/dist/internal/HeaderCodec.d.ts.map +0 -1
- package/dist/internal/HeaderCodec.js.map +0 -1
- package/dist/internal/constantTimeEqual.d.ts.map +0 -1
- package/dist/internal/constantTimeEqual.js.map +0 -1
- package/dist/internal/env.d.ts.map +0 -1
- package/dist/internal/env.js.map +0 -1
- package/dist/internal/types.d.ts.map +0 -1
- package/dist/internal/types.js.map +0 -1
- package/dist/mcp/client/McpClient.d.ts.map +0 -1
- package/dist/mcp/client/McpClient.js.map +0 -1
- package/dist/mcp/client/index.d.ts.map +0 -1
- package/dist/mcp/client/index.js.map +0 -1
- package/dist/mcp/server/Transport.d.ts.map +0 -1
- package/dist/mcp/server/Transport.js.map +0 -1
- package/dist/mcp/server/index.d.ts.map +0 -1
- package/dist/mcp/server/index.js.map +0 -1
- package/dist/middlewares/elysia.d.ts.map +0 -1
- package/dist/middlewares/elysia.js.map +0 -1
- package/dist/middlewares/express.d.ts.map +0 -1
- package/dist/middlewares/express.js.map +0 -1
- package/dist/middlewares/hono.d.ts.map +0 -1
- package/dist/middlewares/hono.js.map +0 -1
- package/dist/middlewares/internal/mppx.d.ts.map +0 -1
- package/dist/middlewares/internal/mppx.js.map +0 -1
- package/dist/middlewares/nextjs.d.ts.map +0 -1
- package/dist/middlewares/nextjs.js.map +0 -1
- package/dist/proxy/Proxy.d.ts.map +0 -1
- package/dist/proxy/Proxy.js.map +0 -1
- package/dist/proxy/Service.d.ts.map +0 -1
- package/dist/proxy/Service.js.map +0 -1
- package/dist/proxy/index.d.ts.map +0 -1
- package/dist/proxy/index.js.map +0 -1
- package/dist/proxy/internal/Headers.d.ts.map +0 -1
- package/dist/proxy/internal/Headers.js.map +0 -1
- package/dist/proxy/internal/Route.d.ts.map +0 -1
- package/dist/proxy/internal/Route.js.map +0 -1
- package/dist/proxy/services/anthropic.d.ts.map +0 -1
- package/dist/proxy/services/anthropic.js.map +0 -1
- package/dist/proxy/services/openai.d.ts.map +0 -1
- package/dist/proxy/services/openai.js.map +0 -1
- package/dist/proxy/services/stripe.d.ts.map +0 -1
- package/dist/proxy/services/stripe.js.map +0 -1
- package/dist/server/Methods.d.ts.map +0 -1
- package/dist/server/Methods.js.map +0 -1
- package/dist/server/Mppx.d.ts.map +0 -1
- package/dist/server/Mppx.js.map +0 -1
- package/dist/server/NodeListener.d.ts.map +0 -1
- package/dist/server/NodeListener.js.map +0 -1
- package/dist/server/Request.d.ts.map +0 -1
- package/dist/server/Request.js.map +0 -1
- package/dist/server/Response.d.ts.map +0 -1
- package/dist/server/Response.js.map +0 -1
- package/dist/server/Transport.d.ts.map +0 -1
- package/dist/server/Transport.js.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js.map +0 -1
- package/dist/server/internal/html/compose.main.gen.d.ts.map +0 -1
- package/dist/server/internal/html/compose.main.gen.js.map +0 -1
- package/dist/server/internal/html/config.d.ts.map +0 -1
- package/dist/server/internal/html/config.js.map +0 -1
- package/dist/server/internal/html/constants.d.ts.map +0 -1
- package/dist/server/internal/html/constants.js.map +0 -1
- package/dist/server/internal/html/serviceWorker.client.d.ts.map +0 -1
- package/dist/server/internal/html/serviceWorker.client.js.map +0 -1
- package/dist/server/internal/html/serviceWorker.gen.d.ts.map +0 -1
- package/dist/server/internal/html/serviceWorker.gen.js.map +0 -1
- package/dist/server/internal/scope.d.ts.map +0 -1
- package/dist/server/internal/scope.js.map +0 -1
- package/dist/stripe/Methods.d.ts.map +0 -1
- package/dist/stripe/Methods.js.map +0 -1
- package/dist/stripe/client/Charge.d.ts.map +0 -1
- package/dist/stripe/client/Charge.js.map +0 -1
- package/dist/stripe/client/Methods.d.ts.map +0 -1
- package/dist/stripe/client/Methods.js.map +0 -1
- package/dist/stripe/client/index.d.ts.map +0 -1
- package/dist/stripe/client/index.js.map +0 -1
- package/dist/stripe/index.d.ts.map +0 -1
- package/dist/stripe/index.js.map +0 -1
- package/dist/stripe/internal/constants.d.ts.map +0 -1
- package/dist/stripe/internal/constants.js.map +0 -1
- package/dist/stripe/internal/types.d.ts.map +0 -1
- package/dist/stripe/internal/types.js.map +0 -1
- package/dist/stripe/server/Charge.d.ts.map +0 -1
- package/dist/stripe/server/Charge.js.map +0 -1
- package/dist/stripe/server/Methods.d.ts.map +0 -1
- package/dist/stripe/server/Methods.js.map +0 -1
- package/dist/stripe/server/index.d.ts.map +0 -1
- package/dist/stripe/server/index.js.map +0 -1
- package/dist/stripe/server/internal/html/types.d.ts.map +0 -1
- package/dist/stripe/server/internal/html/types.js.map +0 -1
- package/dist/stripe/server/internal/html.gen.d.ts.map +0 -1
- package/dist/stripe/server/internal/html.gen.js.map +0 -1
- package/dist/tempo/Attribution.d.ts.map +0 -1
- package/dist/tempo/Attribution.js.map +0 -1
- package/dist/tempo/Methods.d.ts.map +0 -1
- package/dist/tempo/Methods.js.map +0 -1
- package/dist/tempo/Proof.d.ts.map +0 -1
- package/dist/tempo/Proof.js.map +0 -1
- package/dist/tempo/client/Charge.d.ts.map +0 -1
- package/dist/tempo/client/Charge.js.map +0 -1
- package/dist/tempo/client/Methods.d.ts.map +0 -1
- package/dist/tempo/client/Methods.js.map +0 -1
- package/dist/tempo/client/ResolveAccount.d.ts.map +0 -1
- package/dist/tempo/client/ResolveAccount.js.map +0 -1
- package/dist/tempo/client/Subscription.d.ts.map +0 -1
- package/dist/tempo/client/Subscription.js.map +0 -1
- package/dist/tempo/client/index.d.ts.map +0 -1
- package/dist/tempo/client/index.js.map +0 -1
- package/dist/tempo/index.d.ts.map +0 -1
- package/dist/tempo/index.js.map +0 -1
- package/dist/tempo/internal/account.d.ts.map +0 -1
- package/dist/tempo/internal/account.js.map +0 -1
- package/dist/tempo/internal/address.d.ts.map +0 -1
- package/dist/tempo/internal/address.js.map +0 -1
- package/dist/tempo/internal/auto-swap.d.ts.map +0 -1
- package/dist/tempo/internal/auto-swap.js.map +0 -1
- package/dist/tempo/internal/charge.d.ts.map +0 -1
- package/dist/tempo/internal/charge.js.map +0 -1
- package/dist/tempo/internal/defaults.d.ts.map +0 -1
- package/dist/tempo/internal/defaults.js.map +0 -1
- package/dist/tempo/internal/fee-payer.d.ts.map +0 -1
- package/dist/tempo/internal/fee-payer.js.map +0 -1
- package/dist/tempo/internal/fee-token.d.ts.map +0 -1
- package/dist/tempo/internal/fee-token.js.map +0 -1
- package/dist/tempo/internal/proof.d.ts.map +0 -1
- package/dist/tempo/internal/proof.js.map +0 -1
- package/dist/tempo/internal/selectors.d.ts.map +0 -1
- package/dist/tempo/internal/selectors.js.map +0 -1
- package/dist/tempo/internal/types.d.ts.map +0 -1
- package/dist/tempo/internal/types.js.map +0 -1
- package/dist/tempo/legacy/client/ChannelOps.d.ts.map +0 -1
- package/dist/tempo/legacy/client/ChannelOps.js.map +0 -1
- package/dist/tempo/legacy/client/Session.d.ts.map +0 -1
- package/dist/tempo/legacy/client/Session.js.map +0 -1
- package/dist/tempo/legacy/client/SessionManager.d.ts.map +0 -1
- package/dist/tempo/legacy/client/SessionManager.js.map +0 -1
- package/dist/tempo/legacy/client/index.d.ts.map +0 -1
- package/dist/tempo/legacy/client/index.js.map +0 -1
- package/dist/tempo/legacy/index.d.ts.map +0 -1
- package/dist/tempo/legacy/index.js.map +0 -1
- package/dist/tempo/legacy/server/Session.d.ts +0 -208
- package/dist/tempo/legacy/server/Session.d.ts.map +0 -1
- package/dist/tempo/legacy/server/Session.js +0 -698
- package/dist/tempo/legacy/server/Session.js.map +0 -1
- package/dist/tempo/legacy/server/index.d.ts +0 -5
- package/dist/tempo/legacy/server/index.d.ts.map +0 -1
- package/dist/tempo/legacy/server/index.js +0 -5
- package/dist/tempo/legacy/server/index.js.map +0 -1
- package/dist/tempo/legacy/session/Chain.d.ts.map +0 -1
- package/dist/tempo/legacy/session/Chain.js.map +0 -1
- package/dist/tempo/legacy/session/Channel.d.ts.map +0 -1
- package/dist/tempo/legacy/session/Channel.js.map +0 -1
- package/dist/tempo/legacy/session/ChannelStore.d.ts +0 -22
- package/dist/tempo/legacy/session/ChannelStore.d.ts.map +0 -1
- package/dist/tempo/legacy/session/ChannelStore.js +0 -6
- package/dist/tempo/legacy/session/ChannelStore.js.map +0 -1
- package/dist/tempo/legacy/session/Types.d.ts.map +0 -1
- package/dist/tempo/legacy/session/Types.js.map +0 -1
- package/dist/tempo/legacy/session/Voucher.d.ts.map +0 -1
- package/dist/tempo/legacy/session/Voucher.js.map +0 -1
- package/dist/tempo/legacy/session/escrow.abi.d.ts.map +0 -1
- package/dist/tempo/legacy/session/escrow.abi.js.map +0 -1
- package/dist/tempo/legacy/session/index.d.ts.map +0 -1
- package/dist/tempo/legacy/session/index.js.map +0 -1
- package/dist/tempo/server/Charge.d.ts.map +0 -1
- package/dist/tempo/server/Charge.js.map +0 -1
- package/dist/tempo/server/Methods.d.ts.map +0 -1
- package/dist/tempo/server/Methods.js.map +0 -1
- package/dist/tempo/server/Relay.d.ts.map +0 -1
- package/dist/tempo/server/Relay.js.map +0 -1
- package/dist/tempo/server/SponsorBudget.d.ts.map +0 -1
- package/dist/tempo/server/SponsorBudget.js.map +0 -1
- package/dist/tempo/server/Subscription.d.ts.map +0 -1
- package/dist/tempo/server/Subscription.js.map +0 -1
- package/dist/tempo/server/index.d.ts.map +0 -1
- package/dist/tempo/server/index.js.map +0 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +0 -1
- package/dist/tempo/server/internal/html.gen.js.map +0 -1
- package/dist/tempo/server/internal/request-body.d.ts.map +0 -1
- package/dist/tempo/server/internal/request-body.js.map +0 -1
- package/dist/tempo/server/internal/transport.d.ts.map +0 -1
- package/dist/tempo/server/internal/transport.js.map +0 -1
- package/dist/tempo/session/Snapshot.d.ts.map +0 -1
- package/dist/tempo/session/Snapshot.js.map +0 -1
- package/dist/tempo/session/client/ChannelOps.d.ts.map +0 -1
- package/dist/tempo/session/client/ChannelOps.js.map +0 -1
- package/dist/tempo/session/client/ChannelStore.d.ts.map +0 -1
- package/dist/tempo/session/client/ChannelStore.js.map +0 -1
- package/dist/tempo/session/client/CredentialState.d.ts.map +0 -1
- package/dist/tempo/session/client/CredentialState.js.map +0 -1
- package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +0 -1
- package/dist/tempo/session/client/ReceiptCoordinator.js.map +0 -1
- package/dist/tempo/session/client/Runtime.d.ts.map +0 -1
- package/dist/tempo/session/client/Runtime.js.map +0 -1
- package/dist/tempo/session/client/Session.d.ts.map +0 -1
- package/dist/tempo/session/client/Session.js.map +0 -1
- package/dist/tempo/session/client/SessionManager.d.ts.map +0 -1
- package/dist/tempo/session/client/SessionManager.js.map +0 -1
- package/dist/tempo/session/client/Transports.d.ts.map +0 -1
- package/dist/tempo/session/client/Transports.js.map +0 -1
- package/dist/tempo/session/client/index.d.ts.map +0 -1
- package/dist/tempo/session/client/index.js.map +0 -1
- package/dist/tempo/session/client/internal/SessionManager.d.ts.map +0 -1
- package/dist/tempo/session/client/internal/SessionManager.js.map +0 -1
- package/dist/tempo/session/index.d.ts.map +0 -1
- package/dist/tempo/session/index.js.map +0 -1
- package/dist/tempo/session/precompile/Chain.d.ts.map +0 -1
- package/dist/tempo/session/precompile/Chain.js.map +0 -1
- package/dist/tempo/session/precompile/Channel.d.ts.map +0 -1
- package/dist/tempo/session/precompile/Channel.js.map +0 -1
- package/dist/tempo/session/precompile/Protocol.d.ts.map +0 -1
- package/dist/tempo/session/precompile/Protocol.js.map +0 -1
- package/dist/tempo/session/precompile/Voucher.d.ts.map +0 -1
- package/dist/tempo/session/precompile/Voucher.js.map +0 -1
- package/dist/tempo/session/precompile/escrow.abi.d.ts.map +0 -1
- package/dist/tempo/session/precompile/escrow.abi.js.map +0 -1
- package/dist/tempo/session/precompile/index.d.ts.map +0 -1
- package/dist/tempo/session/precompile/index.js.map +0 -1
- package/dist/tempo/session/server/ChannelOps.d.ts.map +0 -1
- package/dist/tempo/session/server/ChannelOps.js.map +0 -1
- package/dist/tempo/session/server/ChannelStore.d.ts.map +0 -1
- package/dist/tempo/session/server/ChannelStore.js.map +0 -1
- package/dist/tempo/session/server/CredentialVerification.d.ts.map +0 -1
- package/dist/tempo/session/server/CredentialVerification.js.map +0 -1
- package/dist/tempo/session/server/MeteredStream.d.ts.map +0 -1
- package/dist/tempo/session/server/MeteredStream.js.map +0 -1
- package/dist/tempo/session/server/RequestState.d.ts.map +0 -1
- package/dist/tempo/session/server/RequestState.js.map +0 -1
- package/dist/tempo/session/server/Session.d.ts.map +0 -1
- package/dist/tempo/session/server/Session.js.map +0 -1
- package/dist/tempo/session/server/Settlement.d.ts.map +0 -1
- package/dist/tempo/session/server/Settlement.js.map +0 -1
- package/dist/tempo/session/server/Sse.d.ts.map +0 -1
- package/dist/tempo/session/server/Sse.js.map +0 -1
- package/dist/tempo/session/server/Transports.d.ts.map +0 -1
- package/dist/tempo/session/server/Transports.js.map +0 -1
- package/dist/tempo/session/server/Ws.d.ts.map +0 -1
- package/dist/tempo/session/server/Ws.js.map +0 -1
- package/dist/tempo/session/server/index.d.ts.map +0 -1
- package/dist/tempo/session/server/index.js.map +0 -1
- package/dist/tempo/subscription/KeyAuthorization.d.ts.map +0 -1
- package/dist/tempo/subscription/KeyAuthorization.js.map +0 -1
- package/dist/tempo/subscription/Receipt.d.ts.map +0 -1
- package/dist/tempo/subscription/Receipt.js.map +0 -1
- package/dist/tempo/subscription/Store.d.ts.map +0 -1
- package/dist/tempo/subscription/Store.js.map +0 -1
- package/dist/tempo/subscription/Types.d.ts.map +0 -1
- package/dist/tempo/subscription/Types.js.map +0 -1
- package/dist/tempo/subscription/index.d.ts.map +0 -1
- package/dist/tempo/subscription/index.js.map +0 -1
- package/dist/validation/core.d.ts.map +0 -1
- package/dist/validation/core.js.map +0 -1
- package/dist/validation/index.d.ts.map +0 -1
- package/dist/validation/index.js.map +0 -1
- package/dist/viem/Account.d.ts.map +0 -1
- package/dist/viem/Account.js.map +0 -1
- package/dist/viem/Client.d.ts.map +0 -1
- package/dist/viem/Client.js.map +0 -1
- package/dist/x402/Assets.d.ts.map +0 -1
- package/dist/x402/Assets.js.map +0 -1
- package/dist/x402/Header.d.ts.map +0 -1
- package/dist/x402/Header.js.map +0 -1
- package/dist/x402/Types.d.ts.map +0 -1
- package/dist/x402/Types.js.map +0 -1
- package/dist/x402/client/Exact.d.ts.map +0 -1
- package/dist/x402/client/Exact.js.map +0 -1
- package/dist/x402/index.d.ts.map +0 -1
- package/dist/x402/index.js.map +0 -1
- package/dist/x402/internal/ChallengeBrand.d.ts.map +0 -1
- package/dist/x402/internal/ChallengeBrand.js.map +0 -1
- package/dist/x402/internal/RouteBinding.d.ts.map +0 -1
- package/dist/x402/internal/RouteBinding.js.map +0 -1
- package/dist/x402/server/EvmCharge.d.ts.map +0 -1
- package/dist/x402/server/EvmCharge.js.map +0 -1
- package/dist/x402/server/Facilitator.d.ts.map +0 -1
- package/dist/x402/server/Facilitator.js.map +0 -1
- package/dist/zod.d.ts.map +0 -1
- package/dist/zod.js.map +0 -1
- package/src/BodyDigest.test.ts +0 -43
- package/src/BodyDigest.ts +0 -55
- package/src/Challenge.fuzz.test.ts +0 -121
- package/src/Challenge.test-d.ts +0 -82
- package/src/Challenge.test.ts +0 -995
- package/src/Challenge.ts +0 -683
- package/src/Constants.ts +0 -58
- package/src/Credential.fuzz.test.ts +0 -62
- package/src/Credential.test.ts +0 -378
- package/src/Credential.ts +0 -217
- package/src/Errors.test.ts +0 -520
- package/src/Errors.ts +0 -448
- package/src/Expires.test.ts +0 -112
- package/src/Expires.ts +0 -59
- package/src/Html.ts +0 -67
- package/src/Mcp.ts +0 -85
- package/src/Method.test.ts +0 -177
- package/src/Method.ts +0 -617
- package/src/PaymentRequest.test.ts +0 -147
- package/src/PaymentRequest.ts +0 -108
- package/src/Receipt.test.ts +0 -151
- package/src/Receipt.ts +0 -146
- package/src/Store.test-d.ts +0 -195
- package/src/Store.test.ts +0 -357
- package/src/Store.ts +0 -329
- package/src/bin.ts +0 -4
- package/src/cli/account.ts +0 -269
- package/src/cli/cli.test.ts +0 -2221
- package/src/cli/cli.ts +0 -1649
- package/src/cli/config.test.ts +0 -89
- package/src/cli/config.ts +0 -50
- package/src/cli/internal.ts +0 -114
- package/src/cli/mcp.test.ts +0 -262
- package/src/cli/plugins/evm.ts +0 -55
- package/src/cli/plugins/index.ts +0 -4
- package/src/cli/plugins/plugin.ts +0 -84
- package/src/cli/plugins/stripe.ts +0 -174
- package/src/cli/plugins/tempo.ts +0 -1102
- package/src/cli/sessions/Manager.test.ts +0 -249
- package/src/cli/sessions/Manager.ts +0 -93
- package/src/cli/sessions/commands.ts +0 -444
- package/src/cli/sessions/request.test.ts +0 -51
- package/src/cli/sessions/request.ts +0 -353
- package/src/cli/sessions/store.test.ts +0 -581
- package/src/cli/sessions/store.ts +0 -940
- package/src/cli/utils.test.ts +0 -156
- package/src/cli/utils.ts +0 -394
- package/src/cli/validate/challenge.ts +0 -565
- package/src/cli/validate/discovery.test.ts +0 -435
- package/src/cli/validate/discovery.ts +0 -221
- package/src/cli/validate/helpers.ts +0 -166
- package/src/cli/validate/index.ts +0 -229
- package/src/cli/validate/messages.ts +0 -7
- package/src/cli/validate/payment.ts +0 -774
- package/src/cli/validate.test.ts +0 -843
- package/src/client/Methods.ts +0 -8
- package/src/client/Mppx.test-d.ts +0 -270
- package/src/client/Mppx.test.ts +0 -1065
- package/src/client/Mppx.ts +0 -466
- package/src/client/Transport.test.ts +0 -619
- package/src/client/Transport.ts +0 -191
- package/src/client/index.ts +0 -29
- package/src/client/internal/Fetch.browser.test.ts +0 -197
- package/src/client/internal/Fetch.test-d.ts +0 -109
- package/src/client/internal/Fetch.test.ts +0 -2336
- package/src/client/internal/Fetch.ts +0 -1079
- package/src/client/internal/MethodChallenge.ts +0 -35
- package/src/client/internal/MethodResponse.ts +0 -67
- package/src/client/internal/protocols/Mcp.test.ts +0 -220
- package/src/client/internal/protocols/Mcp.ts +0 -186
- package/src/client/internal/protocols/Mpp.ts +0 -21
- package/src/client/internal/protocols/Protocol.ts +0 -10
- package/src/client/internal/protocols/Shared.ts +0 -25
- package/src/client/internal/protocols/X402.ts +0 -46
- package/src/client/node.test.ts +0 -115
- package/src/client/node.ts +0 -247
- package/src/discovery/Discovery.test.ts +0 -214
- package/src/discovery/Discovery.ts +0 -105
- package/src/discovery/OpenApi.test.ts +0 -453
- package/src/discovery/OpenApi.ts +0 -224
- package/src/discovery/Validate.test.ts +0 -305
- package/src/discovery/Validate.ts +0 -77
- package/src/discovery/index.ts +0 -3
- package/src/env.d.ts +0 -12
- package/src/evm/Assets.ts +0 -1
- package/src/evm/Chains.ts +0 -11
- package/src/evm/Methods.ts +0 -44
- package/src/evm/PublicInterface.test-d.ts +0 -134
- package/src/evm/Types.ts +0 -140
- package/src/evm/client/Charge.test.ts +0 -347
- package/src/evm/client/Charge.ts +0 -187
- package/src/evm/client/Methods.ts +0 -19
- package/src/evm/client/index.ts +0 -6
- package/src/evm/index.ts +0 -16
- package/src/evm/server/Charge.test.ts +0 -339
- package/src/evm/server/Charge.ts +0 -290
- package/src/evm/server/Methods.ts +0 -22
- package/src/evm/server/index.ts +0 -6
- package/src/index.ts +0 -14
- package/src/internal/AcceptPayment.test.ts +0 -343
- package/src/internal/AcceptPayment.ts +0 -366
- package/src/internal/HeaderCodec.ts +0 -36
- package/src/internal/changeset.test.ts +0 -106
- package/src/internal/constantTimeEqual.test.ts +0 -47
- package/src/internal/constantTimeEqual.ts +0 -10
- package/src/internal/env.test.ts +0 -42
- package/src/internal/env.ts +0 -49
- package/src/internal/types.test-d.ts +0 -21
- package/src/internal/types.ts +0 -470
- package/src/mcp/client/McpClient.integration.test.ts +0 -652
- package/src/mcp/client/McpClient.test-d.ts +0 -144
- package/src/mcp/client/McpClient.test.ts +0 -463
- package/src/mcp/client/McpClient.ts +0 -307
- package/src/mcp/client/McpClient.unit.test.ts +0 -135
- package/src/mcp/client/index.ts +0 -2
- package/src/mcp/server/Transport.test.ts +0 -191
- package/src/mcp/server/Transport.ts +0 -111
- package/src/mcp/server/index.ts +0 -1
- package/src/middlewares/elysia.test.ts +0 -295
- package/src/middlewares/elysia.ts +0 -116
- package/src/middlewares/express.test.ts +0 -371
- package/src/middlewares/express.ts +0 -140
- package/src/middlewares/hono.test.ts +0 -476
- package/src/middlewares/hono.ts +0 -153
- package/src/middlewares/internal/mppx.test.ts +0 -177
- package/src/middlewares/internal/mppx.ts +0 -67
- package/src/middlewares/nextjs.test.ts +0 -369
- package/src/middlewares/nextjs.ts +0 -107
- package/src/proxy/Proxy.test.ts +0 -1031
- package/src/proxy/Proxy.ts +0 -345
- package/src/proxy/Service.test.ts +0 -182
- package/src/proxy/Service.ts +0 -253
- package/src/proxy/index.ts +0 -6
- package/src/proxy/internal/Headers.test.ts +0 -139
- package/src/proxy/internal/Headers.ts +0 -66
- package/src/proxy/internal/Route.test.ts +0 -217
- package/src/proxy/internal/Route.ts +0 -64
- package/src/proxy/services/anthropic.test.ts +0 -132
- package/src/proxy/services/anthropic.ts +0 -52
- package/src/proxy/services/openai.test.ts +0 -157
- package/src/proxy/services/openai.ts +0 -59
- package/src/proxy/services/stripe.test.ts +0 -175
- package/src/proxy/services/stripe.ts +0 -58
- package/src/server/Methods.ts +0 -3
- package/src/server/Mppx.authorize.test.ts +0 -210
- package/src/server/Mppx.test-d.ts +0 -360
- package/src/server/Mppx.test.ts +0 -5813
- package/src/server/Mppx.ts +0 -2623
- package/src/server/NodeListener.test.ts +0 -293
- package/src/server/NodeListener.ts +0 -45
- package/src/server/Request.test.ts +0 -255
- package/src/server/Request.ts +0 -155
- package/src/server/Response.test.ts +0 -32
- package/src/server/Response.ts +0 -45
- package/src/server/Transport.test.ts +0 -598
- package/src/server/Transport.ts +0 -320
- package/src/server/index.ts +0 -9
- package/src/server/internal/html/compose.main.gen.ts +0 -2
- package/src/server/internal/html/compose.main.ts +0 -88
- package/src/server/internal/html/config.ts +0 -672
- package/src/server/internal/html/constants.ts +0 -28
- package/src/server/internal/html/serviceWorker.client.ts +0 -28
- package/src/server/internal/html/serviceWorker.gen.ts +0 -2
- package/src/server/internal/html/serviceWorker.ts +0 -27
- package/src/server/internal/html/tsconfig.compose.json +0 -8
- package/src/server/internal/html/tsconfig.worker.client.json +0 -8
- package/src/server/internal/html/tsconfig.worker.json +0 -8
- package/src/server/internal/scope.ts +0 -43
- package/src/stripe/Charge.integration.test.ts +0 -329
- package/src/stripe/Methods.test.ts +0 -62
- package/src/stripe/Methods.ts +0 -44
- package/src/stripe/client/Charge.test.ts +0 -205
- package/src/stripe/client/Charge.ts +0 -132
- package/src/stripe/client/Methods.ts +0 -37
- package/src/stripe/client/index.ts +0 -2
- package/src/stripe/index.ts +0 -1
- package/src/stripe/internal/constants.ts +0 -7
- package/src/stripe/internal/types.ts +0 -46
- package/src/stripe/server/Charge.test-d.ts +0 -66
- package/src/stripe/server/Charge.test.ts +0 -621
- package/src/stripe/server/Charge.ts +0 -434
- package/src/stripe/server/Methods.ts +0 -24
- package/src/stripe/server/index.ts +0 -2
- package/src/stripe/server/internal/html/main.ts +0 -165
- package/src/stripe/server/internal/html/node_modules/.bin/mppx +0 -22
- package/src/stripe/server/internal/html/node_modules/.bin/mppx.src +0 -22
- package/src/stripe/server/internal/html/package.json +0 -9
- package/src/stripe/server/internal/html/stripe-js-pure.d.ts +0 -7
- package/src/stripe/server/internal/html/tsconfig.json +0 -8
- package/src/stripe/server/internal/html/types.ts +0 -5
- package/src/stripe/server/internal/html.gen.ts +0 -2
- package/src/tempo/AccessKeyAuthorization.test.ts +0 -141
- package/src/tempo/Attribution.test.ts +0 -294
- package/src/tempo/Attribution.ts +0 -185
- package/src/tempo/Methods.test.ts +0 -425
- package/src/tempo/Methods.ts +0 -367
- package/src/tempo/Proof.conformance.test.ts +0 -146
- package/src/tempo/Proof.test-d.ts +0 -32
- package/src/tempo/Proof.test.ts +0 -40
- package/src/tempo/Proof.ts +0 -69
- package/src/tempo/PublicExports.test-d.ts +0 -130
- package/src/tempo/Subscription.integration.test.ts +0 -591
- package/src/tempo/client/Charge.test.ts +0 -501
- package/src/tempo/client/Charge.ts +0 -289
- package/src/tempo/client/Methods.ts +0 -45
- package/src/tempo/client/ResolveAccount.ts +0 -46
- package/src/tempo/client/Subscription.test.ts +0 -180
- package/src/tempo/client/Subscription.ts +0 -156
- package/src/tempo/client/index.ts +0 -17
- package/src/tempo/index.ts +0 -5
- package/src/tempo/internal/account.ts +0 -56
- package/src/tempo/internal/address.ts +0 -6
- package/src/tempo/internal/auto-swap.test.ts +0 -198
- package/src/tempo/internal/auto-swap.ts +0 -188
- package/src/tempo/internal/charge.test.ts +0 -66
- package/src/tempo/internal/charge.ts +0 -43
- package/src/tempo/internal/defaults.test.ts +0 -95
- package/src/tempo/internal/defaults.ts +0 -53
- package/src/tempo/internal/fee-payer.test.ts +0 -1177
- package/src/tempo/internal/fee-payer.ts +0 -808
- package/src/tempo/internal/fee-token.test.ts +0 -165
- package/src/tempo/internal/fee-token.ts +0 -72
- package/src/tempo/internal/proof.test.ts +0 -97
- package/src/tempo/internal/proof.ts +0 -87
- package/src/tempo/internal/selectors.ts +0 -10
- package/src/tempo/internal/types.ts +0 -19
- package/src/tempo/legacy/AccessKeyAuthorization.test.ts +0 -162
- package/src/tempo/legacy/README.md +0 -9
- package/src/tempo/legacy/client/ChannelOps.test.ts +0 -379
- package/src/tempo/legacy/client/ChannelOps.ts +0 -271
- package/src/tempo/legacy/client/Session.test.ts +0 -800
- package/src/tempo/legacy/client/Session.ts +0 -397
- package/src/tempo/legacy/client/SessionManager.test.ts +0 -468
- package/src/tempo/legacy/client/SessionManager.ts +0 -909
- package/src/tempo/legacy/client/index.ts +0 -6
- package/src/tempo/legacy/index.ts +0 -6
- package/src/tempo/legacy/server/Defaults.test-d.ts +0 -9
- package/src/tempo/legacy/server/Session.test.ts +0 -6370
- package/src/tempo/legacy/server/Session.ts +0 -1024
- package/src/tempo/legacy/server/index.ts +0 -4
- package/src/tempo/legacy/session/Chain.test.ts +0 -1349
- package/src/tempo/legacy/session/Chain.ts +0 -830
- package/src/tempo/legacy/session/Channel.test.ts +0 -109
- package/src/tempo/legacy/session/Channel.ts +0 -51
- package/src/tempo/legacy/session/ChannelStore.test.ts +0 -58
- package/src/tempo/legacy/session/ChannelStore.ts +0 -39
- package/src/tempo/legacy/session/Types.ts +0 -91
- package/src/tempo/legacy/session/Voucher.test.ts +0 -410
- package/src/tempo/legacy/session/Voucher.ts +0 -183
- package/src/tempo/legacy/session/escrow.abi.ts +0 -760
- package/src/tempo/legacy/session/index.ts +0 -8
- package/src/tempo/server/AtomicStore.test-d.ts +0 -50
- package/src/tempo/server/Charge.test.ts +0 -6121
- package/src/tempo/server/Charge.ts +0 -1351
- package/src/tempo/server/Methods.ts +0 -106
- package/src/tempo/server/Relay.test.ts +0 -677
- package/src/tempo/server/Relay.ts +0 -297
- package/src/tempo/server/SponsorBudget.test.ts +0 -154
- package/src/tempo/server/SponsorBudget.ts +0 -219
- package/src/tempo/server/Sse.test.ts +0 -321
- package/src/tempo/server/Subscription.test.ts +0 -1944
- package/src/tempo/server/Subscription.ts +0 -1333
- package/src/tempo/server/index.ts +0 -12
- package/src/tempo/server/internal/html/main.ts +0 -115
- package/src/tempo/server/internal/html/node_modules/.bin/mppx +0 -22
- package/src/tempo/server/internal/html/node_modules/.bin/mppx.src +0 -22
- package/src/tempo/server/internal/html/package.json +0 -10
- package/src/tempo/server/internal/html/tsconfig.json +0 -8
- package/src/tempo/server/internal/html.gen.ts +0 -2
- package/src/tempo/server/internal/request-body.test.ts +0 -210
- package/src/tempo/server/internal/request-body.ts +0 -61
- package/src/tempo/server/internal/transport.test.ts +0 -903
- package/src/tempo/server/internal/transport.ts +0 -310
- package/src/tempo/session/README.md +0 -208
- package/src/tempo/session/Snapshot.test.ts +0 -41
- package/src/tempo/session/Snapshot.ts +0 -95
- package/src/tempo/session/client/ChannelOps.test.ts +0 -218
- package/src/tempo/session/client/ChannelOps.ts +0 -348
- package/src/tempo/session/client/ChannelStore.ts +0 -111
- package/src/tempo/session/client/CredentialState.test.ts +0 -789
- package/src/tempo/session/client/CredentialState.ts +0 -942
- package/src/tempo/session/client/ReceiptCoordinator.ts +0 -95
- package/src/tempo/session/client/Runtime.test.ts +0 -1104
- package/src/tempo/session/client/Runtime.ts +0 -1008
- package/src/tempo/session/client/Session.test.ts +0 -1355
- package/src/tempo/session/client/Session.ts +0 -420
- package/src/tempo/session/client/SessionManager.test.ts +0 -1899
- package/src/tempo/session/client/SessionManager.ts +0 -996
- package/src/tempo/session/client/Transports.test.ts +0 -1141
- package/src/tempo/session/client/Transports.ts +0 -1534
- package/src/tempo/session/client/index.ts +0 -40
- package/src/tempo/session/client/internal/SessionManager.ts +0 -36
- package/src/tempo/session/index.ts +0 -7
- package/src/tempo/session/precompile/Chain.integration.test.ts +0 -339
- package/src/tempo/session/precompile/Chain.test.ts +0 -1641
- package/src/tempo/session/precompile/Chain.ts +0 -1149
- package/src/tempo/session/precompile/Channel.test.ts +0 -147
- package/src/tempo/session/precompile/Channel.ts +0 -108
- package/src/tempo/session/precompile/Protocol.test.ts +0 -358
- package/src/tempo/session/precompile/Protocol.ts +0 -520
- package/src/tempo/session/precompile/Voucher.test.ts +0 -354
- package/src/tempo/session/precompile/Voucher.ts +0 -162
- package/src/tempo/session/precompile/escrow.abi.ts +0 -226
- package/src/tempo/session/precompile/index.ts +0 -33
- package/src/tempo/session/server/ChannelOps.test.ts +0 -129
- package/src/tempo/session/server/ChannelOps.ts +0 -157
- package/src/tempo/session/server/ChannelStore.test.ts +0 -1093
- package/src/tempo/session/server/ChannelStore.ts +0 -835
- package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
- package/src/tempo/session/server/CredentialVerification.ts +0 -775
- package/src/tempo/session/server/MeteredStream.ts +0 -95
- package/src/tempo/session/server/RequestState.test.ts +0 -574
- package/src/tempo/session/server/RequestState.ts +0 -507
- package/src/tempo/session/server/Session.integration.test.ts +0 -449
- package/src/tempo/session/server/Session.test.ts +0 -3862
- package/src/tempo/session/server/Session.ts +0 -570
- package/src/tempo/session/server/Settlement.test.ts +0 -345
- package/src/tempo/session/server/Settlement.ts +0 -527
- package/src/tempo/session/server/Sse.fuzz.test.ts +0 -138
- package/src/tempo/session/server/Sse.test.ts +0 -557
- package/src/tempo/session/server/Sse.ts +0 -254
- package/src/tempo/session/server/Transports.test.ts +0 -346
- package/src/tempo/session/server/Transports.ts +0 -255
- package/src/tempo/session/server/Ws.test.ts +0 -594
- package/src/tempo/session/server/Ws.ts +0 -385
- package/src/tempo/session/server/index.ts +0 -12
- package/src/tempo/subscription/KeyAuthorization.test.ts +0 -282
- package/src/tempo/subscription/KeyAuthorization.ts +0 -396
- package/src/tempo/subscription/Receipt.ts +0 -28
- package/src/tempo/subscription/Store.test.ts +0 -609
- package/src/tempo/subscription/Store.ts +0 -449
- package/src/tempo/subscription/Types.ts +0 -68
- package/src/tempo/subscription/index.ts +0 -23
- package/src/tsconfig.json +0 -10
- package/src/validation/core.ts +0 -386
- package/src/validation/index.ts +0 -11
- package/src/viem/Account.test.ts +0 -72
- package/src/viem/Account.ts +0 -30
- package/src/viem/Client.test.ts +0 -366
- package/src/viem/Client.ts +0 -93
- package/src/x402/Assets.test.ts +0 -253
- package/src/x402/Assets.ts +0 -221
- package/src/x402/Exact.e2e.test.ts +0 -448
- package/src/x402/Exact.localnet.test.ts +0 -475
- package/src/x402/Header.test.ts +0 -73
- package/src/x402/Header.ts +0 -79
- package/src/x402/PublicInterface.test-d.ts +0 -39
- package/src/x402/Types.ts +0 -248
- package/src/x402/client/Exact.test.ts +0 -309
- package/src/x402/client/Exact.ts +0 -186
- package/src/x402/index.ts +0 -6
- package/src/x402/internal/ChallengeBrand.ts +0 -14
- package/src/x402/internal/RouteBinding.ts +0 -18
- package/src/x402/server/EvmCharge.ts +0 -394
- package/src/x402/server/Facilitator.test.ts +0 -111
- package/src/x402/server/Facilitator.ts +0 -56
- package/src/zod.test.ts +0 -169
- package/src/zod.ts +0 -71
|
@@ -2,6 +2,7 @@ import { type Account as viem_Account, type Address, type Hex } from 'viem';
|
|
|
2
2
|
import * as Constants from '../../../Constants.js';
|
|
3
3
|
import type * as Credential from '../../../Credential.js';
|
|
4
4
|
import type { Challenge } from '../../../index.js';
|
|
5
|
+
import type { MaybePromise } from '../../../internal/types.js';
|
|
5
6
|
import type * as z from '../../../zod.js';
|
|
6
7
|
import * as Methods from '../../Methods.js';
|
|
7
8
|
import { isSessionContentRequest, type RequestBodyProbe } from '../../server/internal/request-body.js';
|
|
@@ -14,10 +15,14 @@ import { type ParameterFeePayer, type ResolvedFeePayer } from './Settlement.js';
|
|
|
14
15
|
export type ResolveSessionSnapshotParameters = {
|
|
15
16
|
/** Raw request amount that must be covered by the next voucher. */
|
|
16
17
|
amount: bigint;
|
|
18
|
+
/** Already-loaded channel for `channelId`, skipping the store read. */
|
|
19
|
+
channel?: ChannelStore.State | null | undefined;
|
|
17
20
|
/** Channel ID from credential or challenge request, when available. */
|
|
18
21
|
channelId: Hex | undefined;
|
|
19
22
|
/** Payment fields the reusable channel must match before it is advertised. */
|
|
20
23
|
expected?: SessionSnapshotPaymentFields | undefined;
|
|
24
|
+
/** Optional alternate-rail matcher when the stored descriptor differs from logical payment fields. */
|
|
25
|
+
matchPaymentFields?: MatchSessionSnapshotPaymentFields | undefined;
|
|
21
26
|
/** Server channel store. */
|
|
22
27
|
store: ChannelStore.ChannelStore;
|
|
23
28
|
};
|
|
@@ -32,6 +37,15 @@ export type SessionSnapshotPaymentFields = {
|
|
|
32
37
|
/** Payee address expected by the challenge. */
|
|
33
38
|
recipient: Address;
|
|
34
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Validates an alternate channel descriptor against the logical session payment
|
|
42
|
+
* fields. `options.action` names the credential the snapshot serves: close
|
|
43
|
+
* credentials accept retired routes, so their recovery snapshots match
|
|
44
|
+
* inactive routes too.
|
|
45
|
+
*/
|
|
46
|
+
export type MatchSessionSnapshotPaymentFields = (channel: ChannelStore.StoredPrecompileChannel, expected: SessionSnapshotPaymentFields, options?: {
|
|
47
|
+
action?: SessionCredentialPayload['action'] | undefined;
|
|
48
|
+
} | undefined) => MaybePromise<boolean>;
|
|
35
49
|
/** Request metadata available to `resolveChannelId` without exposing a mutable `Request`. */
|
|
36
50
|
export type SessionChannelIdRequest = {
|
|
37
51
|
/** Request headers, useful for cookies or auth/session headers. */
|
|
@@ -125,6 +139,10 @@ export type SessionMethodDetails = {
|
|
|
125
139
|
escrowContract: Address;
|
|
126
140
|
/** Whether this challenge allows fee-sponsored management transactions. */
|
|
127
141
|
feePayer?: boolean | undefined;
|
|
142
|
+
/** Fee token clients must use for open/top-up transactions. */
|
|
143
|
+
feeToken?: Address | undefined;
|
|
144
|
+
/** Whether clients may fund this logical session through the first-party machine-token rail. */
|
|
145
|
+
machineTokenEnabled?: boolean | undefined;
|
|
128
146
|
/** Minimum raw-unit increase required for voucher credentials. */
|
|
129
147
|
minVoucherDelta?: string | undefined;
|
|
130
148
|
/** Channel operator address the client should encode in new open transactions. */
|
|
@@ -147,6 +165,7 @@ export type ResolveSessionPaymentRequestParameters = {
|
|
|
147
165
|
decimals: number;
|
|
148
166
|
defaultFeePayer?: viem_Account | undefined;
|
|
149
167
|
getClient: ResolveRequestChainIdParameters['getClient'];
|
|
168
|
+
matchSnapshotPaymentFields?: MatchSessionSnapshotPaymentFields | undefined;
|
|
150
169
|
parameterChainId?: number | undefined;
|
|
151
170
|
parameterEscrowContract?: Address | undefined;
|
|
152
171
|
parameterFeePayer?: ParameterFeePayer;
|
|
@@ -3,9 +3,10 @@ import * as Constants from '../../../Constants.js';
|
|
|
3
3
|
import { VerificationFailedError } from '../../../Errors.js';
|
|
4
4
|
import * as Methods from '../../Methods.js';
|
|
5
5
|
import { captureRequestBodyProbe, isSessionContentRequest, } from '../../server/internal/request-body.js';
|
|
6
|
-
import { tip20ChannelEscrow } from '../precompile/Protocol.js';
|
|
6
|
+
import { tip20ChannelEscrow, uint96, } from '../precompile/Protocol.js';
|
|
7
|
+
import * as Voucher from '../precompile/Voucher.js';
|
|
7
8
|
import * as ChannelStore from './ChannelStore.js';
|
|
8
|
-
import { requireSessionCredentialAction } from './CredentialVerification.js';
|
|
9
|
+
import { requireSessionCredentialAction, requireSessionCredentialPayload, } from './CredentialVerification.js';
|
|
9
10
|
import { resolveCredentialFeePayer, resolveRequestFeePayer, } from './Settlement.js';
|
|
10
11
|
/** Normalizes a session channel ID hint when one is present. */
|
|
11
12
|
export function normalizeSessionChannelId(value) {
|
|
@@ -29,6 +30,27 @@ function normalizeResolvedSessionChannelId(value) {
|
|
|
29
30
|
return undefined;
|
|
30
31
|
return ChannelStore.normalizeChannelId(value);
|
|
31
32
|
}
|
|
33
|
+
/** Returns a close credential's channel once its voucher signature verifies. */
|
|
34
|
+
async function verifiedCloseCredentialChannel(credential, store) {
|
|
35
|
+
try {
|
|
36
|
+
const payload = requireSessionCredentialPayload(credential?.payload);
|
|
37
|
+
if (payload.action !== 'close')
|
|
38
|
+
return undefined;
|
|
39
|
+
const channelId = payload.channelId;
|
|
40
|
+
const channel = await store.getChannel(channelId);
|
|
41
|
+
if (!channel || !ChannelStore.isPrecompileState(channel))
|
|
42
|
+
return undefined;
|
|
43
|
+
const verified = Voucher.verifyVoucher(channel.escrowContract, channel.chainId, {
|
|
44
|
+
channelId,
|
|
45
|
+
cumulativeAmount: uint96(BigInt(payload.cumulativeAmount)),
|
|
46
|
+
signature: payload.signature,
|
|
47
|
+
}, channel.authorizedSigner);
|
|
48
|
+
return verified ? { channelId, channel } : undefined;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
32
54
|
/** Resolves the channel ID used to build server-side session bootstrap hints. */
|
|
33
55
|
export async function resolveSessionChannelId(parameters) {
|
|
34
56
|
const { capturedRequest, credential, request, resolveChannelId, source, store } = parameters;
|
|
@@ -47,10 +69,10 @@ export async function resolveSessionChannelId(parameters) {
|
|
|
47
69
|
}
|
|
48
70
|
/** Builds server bootstrap hints for a reusable precompile session channel. */
|
|
49
71
|
export async function resolveSessionSnapshot(parameters) {
|
|
50
|
-
const { amount, channelId, expected, store } = parameters;
|
|
72
|
+
const { amount, channelId, expected, matchPaymentFields, store } = parameters;
|
|
51
73
|
if (!channelId)
|
|
52
74
|
return undefined;
|
|
53
|
-
const channel = await store.getChannel(ChannelStore.normalizeChannelId(channelId));
|
|
75
|
+
const channel = parameters.channel ?? (await store.getChannel(ChannelStore.normalizeChannelId(channelId)));
|
|
54
76
|
if (!channel || !ChannelStore.isPrecompileState(channel))
|
|
55
77
|
return undefined;
|
|
56
78
|
if (channel.finalized)
|
|
@@ -61,8 +83,18 @@ export async function resolveSessionSnapshot(parameters) {
|
|
|
61
83
|
return undefined;
|
|
62
84
|
if (channel.highestVoucher.cumulativeAmount !== channel.highestVoucherAmount)
|
|
63
85
|
return undefined;
|
|
64
|
-
if (expected && !matchesSnapshotPaymentFields(channel, expected))
|
|
65
|
-
|
|
86
|
+
if (expected && !matchesSnapshotPaymentFields(channel, expected)) {
|
|
87
|
+
// The snapshot is an optional reuse hint: a failing matcher (for example a
|
|
88
|
+
// transient RPC error during the route check) must omit the hint rather
|
|
89
|
+
// than fail challenge issuance or bootstrap preflight.
|
|
90
|
+
let matched = false;
|
|
91
|
+
try {
|
|
92
|
+
matched = (await matchPaymentFields?.(channel, expected)) ?? false;
|
|
93
|
+
}
|
|
94
|
+
catch { }
|
|
95
|
+
if (!matched)
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
66
98
|
const requiredCumulative = channel.spent + amount;
|
|
67
99
|
return {
|
|
68
100
|
acceptedCumulative: channel.highestVoucherAmount.toString(),
|
|
@@ -115,6 +147,9 @@ function isCanonicalSessionMethodDetails(value) {
|
|
|
115
147
|
typeof value.escrowContract === 'string' &&
|
|
116
148
|
isAddress(value.escrowContract, { strict: false }) &&
|
|
117
149
|
(value.feePayer === undefined || typeof value.feePayer === 'boolean') &&
|
|
150
|
+
(value.feeToken === undefined ||
|
|
151
|
+
(typeof value.feeToken === 'string' && isAddress(value.feeToken, { strict: false }))) &&
|
|
152
|
+
(value.machineTokenEnabled === undefined || typeof value.machineTokenEnabled === 'boolean') &&
|
|
118
153
|
(value.minVoucherDelta === undefined || typeof value.minVoucherDelta === 'string') &&
|
|
119
154
|
(value.operator === undefined ||
|
|
120
155
|
(typeof value.operator === 'string' && isAddress(value.operator, { strict: false }))) &&
|
|
@@ -156,7 +191,7 @@ export async function resolveRequestChainId(parameters) {
|
|
|
156
191
|
}
|
|
157
192
|
/** Resolves request-time TIP-1034 details and server bootstrap hints for a challenge. */
|
|
158
193
|
export async function resolveSessionPaymentRequest(parameters) {
|
|
159
|
-
const { capturedRequest, credential, decimals, defaultFeePayer, getClient, parameterChainId, parameterEscrowContract, parameterFeePayer, request, resolveChannelId, source, store, } = parameters;
|
|
194
|
+
const { capturedRequest, credential, decimals, defaultFeePayer, getClient, matchSnapshotPaymentFields, parameterChainId, parameterEscrowContract, parameterFeePayer, request, resolveChannelId, source, store, } = parameters;
|
|
160
195
|
const chainId = await resolveRequestChainId({
|
|
161
196
|
getClient,
|
|
162
197
|
parameterChainId,
|
|
@@ -170,16 +205,24 @@ export async function resolveSessionPaymentRequest(parameters) {
|
|
|
170
205
|
const escrowContract = resolveRequestEscrowContract(request.escrowContract, parameterEscrowContract);
|
|
171
206
|
const operator = resolveRequestOperator(request.operator);
|
|
172
207
|
const requestAmount = parseUnits(request.amount, decimals);
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
208
|
+
// A close credential names the channel it settles; advertising that channel's
|
|
209
|
+
// snapshot on the retry challenge lets clients without a configured
|
|
210
|
+
// `resolveChannelId` learn the exact capture amount a machine-token close
|
|
211
|
+
// voucher must match. Only trusted once the voucher signature verifies, and
|
|
212
|
+
// matched with close semantics so retired routes stay closable.
|
|
213
|
+
const verifiedClose = await verifiedCloseCredentialChannel(credential, store);
|
|
214
|
+
const channelId = verifiedClose?.channelId ??
|
|
215
|
+
(await resolveSessionChannelId({
|
|
216
|
+
capturedRequest,
|
|
217
|
+
credential,
|
|
218
|
+
request,
|
|
219
|
+
resolveChannelId,
|
|
220
|
+
source,
|
|
221
|
+
store,
|
|
222
|
+
}));
|
|
181
223
|
const sessionSnapshot = await resolveSessionSnapshot({
|
|
182
224
|
amount: capturedRequest && !isSessionContentRequest(capturedRequest) ? 0n : requestAmount,
|
|
225
|
+
channel: verifiedClose?.channel,
|
|
183
226
|
channelId,
|
|
184
227
|
expected: {
|
|
185
228
|
chainId,
|
|
@@ -187,6 +230,9 @@ export async function resolveSessionPaymentRequest(parameters) {
|
|
|
187
230
|
escrowContract,
|
|
188
231
|
recipient: readChallengeAddress(request.recipient, 'recipient'),
|
|
189
232
|
},
|
|
233
|
+
matchPaymentFields: matchSnapshotPaymentFields && (verifiedClose || request.machineTokenEnabled)
|
|
234
|
+
? (channel, expected) => matchSnapshotPaymentFields(channel, expected, verifiedClose ? { action: 'close' } : undefined)
|
|
235
|
+
: undefined,
|
|
190
236
|
store,
|
|
191
237
|
});
|
|
192
238
|
const { operator: _operator, ...requestWithoutOperator } = request;
|
|
@@ -18,7 +18,9 @@ import * as Transport from '../../server/internal/transport.js';
|
|
|
18
18
|
import { deserializeSnapshot as deserializeSessionSnapshot, serializeSnapshot as serializeSessionSnapshot } from '../Snapshot.js';
|
|
19
19
|
import * as ChannelStore from './ChannelStore.js';
|
|
20
20
|
import { type ResolveSessionChannelId } from './RequestState.js';
|
|
21
|
+
import { type SettleChargedSessionChannel } from './Settlement.js';
|
|
21
22
|
import { type OnSessionSettlement, type SettlementSchedule } from './Settlement.js';
|
|
23
|
+
import * as Ws from './Ws.js';
|
|
22
24
|
/** Server-side automatic settlement schedule. */
|
|
23
25
|
export type { SettlementSchedule } from './Settlement.js';
|
|
24
26
|
/** Server-side settlement event hook types. */
|
|
@@ -31,9 +33,10 @@ export declare function session<const parameters extends session.Parameters>(p?:
|
|
|
31
33
|
readonly name: "tempo";
|
|
32
34
|
readonly intent: "session";
|
|
33
35
|
readonly schema: {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
credential: {
|
|
37
|
+
payload: import("zod/mini").ZodMiniDiscriminatedUnion<[import("zod/mini").ZodMiniObject<{
|
|
36
38
|
action: import("zod/mini").ZodMiniLiteral<"open">;
|
|
39
|
+
authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
37
40
|
authorizedSigner: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
38
41
|
channelId: import("zod/mini").ZodMiniString<string>;
|
|
39
42
|
cumulativeAmount: import("zod/mini").ZodMiniString<string>;
|
|
@@ -50,19 +53,22 @@ export declare function session<const parameters extends session.Parameters>(p?:
|
|
|
50
53
|
type: import("zod/mini").ZodMiniLiteral<"transaction">;
|
|
51
54
|
}, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
|
|
52
55
|
action: import("zod/mini").ZodMiniLiteral<"voucher">;
|
|
56
|
+
authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
53
57
|
channelId: import("zod/mini").ZodMiniString<string>;
|
|
54
58
|
cumulativeAmount: import("zod/mini").ZodMiniString<string>;
|
|
55
59
|
descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
|
|
56
60
|
signature: import("zod/mini").ZodMiniString<string>;
|
|
57
61
|
}, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniObject<{
|
|
58
62
|
action: import("zod/mini").ZodMiniLiteral<"close">;
|
|
63
|
+
authorizationSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
59
64
|
channelId: import("zod/mini").ZodMiniString<string>;
|
|
60
65
|
cumulativeAmount: import("zod/mini").ZodMiniString<string>;
|
|
61
66
|
descriptor: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniCustom<import("../precompile/Protocol.js").ChannelDescriptor, import("../precompile/Protocol.js").ChannelDescriptor>>;
|
|
67
|
+
refundSignature: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
62
68
|
signature: import("zod/mini").ZodMiniString<string>;
|
|
63
69
|
}, import("zod/v4/core").$strip>], "action">;
|
|
64
70
|
};
|
|
65
|
-
|
|
71
|
+
request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
|
|
66
72
|
amount: import("zod/mini").ZodMiniString<string>;
|
|
67
73
|
chainId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniNumber<number>>;
|
|
68
74
|
channelId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
@@ -70,6 +76,8 @@ export declare function session<const parameters extends session.Parameters>(p?:
|
|
|
70
76
|
decimals: import("zod/mini").ZodMiniNumber<number>;
|
|
71
77
|
escrowContract: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
72
78
|
feePayer: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniUnion<readonly [import("zod/mini").ZodMiniBoolean<boolean>, import("zod/mini").ZodMiniCustom<import("viem").Account, import("viem").Account>]>, import("zod/mini").ZodMiniTransform<boolean, boolean | import("viem").Account>>>;
|
|
79
|
+
feeToken: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
80
|
+
machineTokenEnabled: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniBoolean<boolean>>;
|
|
73
81
|
minVoucherDelta: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
74
82
|
operator: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
75
83
|
recipient: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
@@ -81,42 +89,55 @@ export declare function session<const parameters extends session.Parameters>(p?:
|
|
|
81
89
|
suggestedDeposit: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
82
90
|
unitType: import("zod/mini").ZodMiniString<string>;
|
|
83
91
|
}, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniTransform<{
|
|
92
|
+
currency: string;
|
|
93
|
+
recipient?: string | undefined;
|
|
94
|
+
unitType: string;
|
|
95
|
+
amount: string;
|
|
96
|
+
suggestedDeposit?: string | undefined;
|
|
84
97
|
methodDetails: {
|
|
85
|
-
sessionSnapshot?: import("../Snapshot.js").SessionSnapshot | undefined;
|
|
86
|
-
sessionProtocol?: "v1" | "v2" | undefined;
|
|
87
|
-
operator?: string | undefined;
|
|
88
|
-
feePayer?: boolean | undefined;
|
|
89
|
-
chainId?: number | undefined;
|
|
90
|
-
minVoucherDelta?: string | undefined;
|
|
91
|
-
channelId?: string | undefined;
|
|
92
98
|
escrowContract: string | undefined;
|
|
99
|
+
channelId?: string | undefined;
|
|
100
|
+
minVoucherDelta?: string | undefined;
|
|
101
|
+
chainId?: number | undefined;
|
|
102
|
+
feePayer?: boolean | undefined;
|
|
103
|
+
feeToken?: string | undefined;
|
|
104
|
+
machineTokenEnabled?: boolean | undefined;
|
|
105
|
+
operator?: string | undefined;
|
|
106
|
+
sessionProtocol?: "v1" | "v2" | undefined;
|
|
107
|
+
sessionSnapshot?: import("../Snapshot.js").SessionSnapshot | undefined;
|
|
93
108
|
};
|
|
94
|
-
suggestedDeposit?: string | undefined;
|
|
95
|
-
amount: string;
|
|
96
|
-
currency: string;
|
|
97
|
-
unitType: string;
|
|
98
|
-
recipient?: string | undefined;
|
|
99
109
|
}, {
|
|
100
110
|
amount: string;
|
|
101
|
-
currency: string;
|
|
102
|
-
decimals: number;
|
|
103
|
-
unitType: string;
|
|
104
111
|
chainId?: number | undefined;
|
|
105
112
|
channelId?: string | undefined;
|
|
113
|
+
currency: string;
|
|
114
|
+
decimals: number;
|
|
106
115
|
escrowContract?: string | undefined;
|
|
107
116
|
feePayer?: boolean | undefined;
|
|
117
|
+
feeToken?: string | undefined;
|
|
118
|
+
machineTokenEnabled?: boolean | undefined;
|
|
108
119
|
minVoucherDelta?: string | undefined;
|
|
109
120
|
operator?: string | undefined;
|
|
110
121
|
recipient?: string | undefined;
|
|
111
122
|
sessionProtocol?: "v1" | "v2" | undefined;
|
|
112
123
|
sessionSnapshot?: import("../Snapshot.js").SessionSnapshot | undefined;
|
|
113
124
|
suggestedDeposit?: string | undefined;
|
|
125
|
+
unitType: string;
|
|
114
126
|
}>>;
|
|
115
127
|
};
|
|
116
|
-
}, session.DeriveDefaults<parameters>, parameters["sse"] extends false | undefined ? undefined : Transport.Sse,
|
|
128
|
+
}, session.DeriveDefaults<parameters>, parameters["sse"] extends false | undefined ? undefined : Transport.Sse, session.Extensions, undefined>;
|
|
117
129
|
export declare namespace session {
|
|
118
130
|
const serializeSnapshot: typeof serializeSessionSnapshot;
|
|
119
131
|
const deserializeSnapshot: typeof deserializeSessionSnapshot;
|
|
132
|
+
/** Extensions attached to the Tempo session method handler. */
|
|
133
|
+
type Extensions = {
|
|
134
|
+
/** Applies the configured automatic settlement policy to a committed channel charge. */
|
|
135
|
+
settleScheduled: SettleChargedSessionChannel;
|
|
136
|
+
/** Serves a WebSocket route from this handler using its configured store and settlement policy. */
|
|
137
|
+
serveWebSocket: (options: ServeWebSocketOptions) => Promise<void>;
|
|
138
|
+
};
|
|
139
|
+
/** WebSocket server options supplied after the session binds shared dependencies. */
|
|
140
|
+
type ServeWebSocketOptions = Omit<Ws.serve.Options, 'onChargeCommitted' | 'settleScheduled' | 'store'>;
|
|
120
141
|
/** Request defaults inferred from the Tempo session method schema. */
|
|
121
142
|
type Defaults = LooseOmit<Method.RequestDefaults<typeof Methods.session>, 'escrowContract' | 'feePayer' | 'recipient'>;
|
|
122
143
|
/** Partial fee-sponsor policy used for server-submitted session transactions. */
|
|
@@ -154,17 +175,19 @@ export declare namespace session {
|
|
|
154
175
|
store?: Store.AtomicStore | undefined;
|
|
155
176
|
/** Enable SSE streaming. Pass `true` for defaults or an options object to configure SSE. */
|
|
156
177
|
sse?: boolean | Transport.sse.Options | undefined;
|
|
157
|
-
/** Tempo chain ID used for TIP-1034 channel escrow challenges. Defaults to the resolved client chain ID.
|
|
178
|
+
/** Tempo chain ID used for TIP-1034 channel escrow challenges. Defaults to the resolved client chain ID. */
|
|
158
179
|
chainId?: number | undefined;
|
|
159
|
-
/**
|
|
180
|
+
/** Escrow contract advertised to clients. Defaults to the canonical TIP20EscrowChannel address. */
|
|
160
181
|
escrowContract?: Address | undefined;
|
|
161
182
|
/** Callback invoked after any on-chain settlement or close transaction is confirmed. */
|
|
162
183
|
onSessionSettlement?: OnSessionSettlement | undefined;
|
|
163
184
|
/** Server-owned automatic settlement cadence. Clients do not receive or control this schedule. */
|
|
164
185
|
settlementSchedule?: SettlementSchedule | undefined;
|
|
165
|
-
/** Optional fee token
|
|
186
|
+
/** Optional fee token for management and server-driven settle/close transactions. */
|
|
166
187
|
feeToken?: Address | undefined;
|
|
167
|
-
|
|
188
|
+
/** Enables first-party machine-token funding when the configured deployment is available. */
|
|
189
|
+
machineTokenEnabled?: boolean | undefined;
|
|
190
|
+
} & Account.resolve.Parameters & Client.getResolver.Parameters & Defaults & Method.ComposableHooks<typeof Methods.session>;
|
|
168
191
|
/** Defaults derived from `session()` parameters for handler type inference. */
|
|
169
192
|
type DeriveDefaults<parameters extends Parameters> = types.DeriveDefaults<parameters, Defaults, {
|
|
170
193
|
currency: string;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* and one-shot settlement. Each incoming request carries a session credential
|
|
6
6
|
* with a cumulative voucher that the server validates and records.
|
|
7
7
|
*/
|
|
8
|
-
import { isAddress } from 'viem';
|
|
8
|
+
import { isAddress, isAddressEqual } from 'viem';
|
|
9
9
|
import { tempo as tempo_chain } from 'viem/chains';
|
|
10
10
|
import * as Challenge from '../../../Challenge.js';
|
|
11
11
|
import * as Constants from '../../../Constants.js';
|
|
@@ -16,19 +16,21 @@ import * as Store from '../../../Store.js';
|
|
|
16
16
|
import * as Client from '../../../viem/Client.js';
|
|
17
17
|
import * as Account from '../../internal/account.js';
|
|
18
18
|
import * as defaults from '../../internal/defaults.js';
|
|
19
|
+
import * as MachineTokenSession from '../../internal/machine-token-session.js';
|
|
19
20
|
import * as Methods from '../../Methods.js';
|
|
20
21
|
import * as ChargeServer from '../../server/Charge.js';
|
|
21
22
|
import * as Transport from '../../server/internal/transport.js';
|
|
22
23
|
import { tip20ChannelEscrow } from '../precompile/Protocol.js';
|
|
23
24
|
import { deserializeSnapshot as deserializeSessionSnapshot, serializeSnapshot as serializeSessionSnapshot, } from '../Snapshot.js';
|
|
24
25
|
import * as ChannelStore from './ChannelStore.js';
|
|
25
|
-
import {
|
|
26
|
+
import { broadcastCredentialPayload, validateCredentialPayload } from './CredentialVerification.js';
|
|
26
27
|
import { requireSessionCredentialPayload } from './CredentialVerification.js';
|
|
27
28
|
import { resolveCredentialVerificationContext, resolveSessionChannelId, resolveSessionSnapshot, resolveSessionPaymentRequest, } from './RequestState.js';
|
|
28
29
|
import { respondToSessionCredential } from './RequestState.js';
|
|
29
|
-
import { applyVerifiedHttpAccounting, chargeSessionChannel } from './Settlement.js';
|
|
30
|
-
import { maybeSettleScheduled } from './Settlement.js';
|
|
30
|
+
import { applyVerifiedHttpAccounting, chargeSessionChannel, } from './Settlement.js';
|
|
31
|
+
import { isSettlementDue, maybeSettleScheduled } from './Settlement.js';
|
|
31
32
|
import { resolveSettlementSchedule, } from './Settlement.js';
|
|
33
|
+
import * as Ws from './Ws.js';
|
|
32
34
|
export { settle, settleBatch } from './Settlement.js';
|
|
33
35
|
function deriveServerDefaults(values) {
|
|
34
36
|
// `Method.toServer()` models defaults from request input fields. Tempo session
|
|
@@ -177,6 +179,9 @@ async function handleBootstrapPreflight(parameters) {
|
|
|
177
179
|
escrowContract: resolveBootstrapEscrowContract(parameters.paymentRequest, parameters.parameterEscrowContract),
|
|
178
180
|
recipient: readBootstrapAddress(request.recipient, 'recipient'),
|
|
179
181
|
},
|
|
182
|
+
matchPaymentFields: parameters.paymentRequest.machineTokenEnabled
|
|
183
|
+
? parameters.matchSnapshotPaymentFields
|
|
184
|
+
: undefined,
|
|
180
185
|
store: parameters.store,
|
|
181
186
|
});
|
|
182
187
|
const headers = new Headers({ 'Cache-Control': 'no-store' });
|
|
@@ -189,19 +194,53 @@ async function handleBootstrapPreflight(parameters) {
|
|
|
189
194
|
/** Creates a server-side TIP20EscrowChannel precompile session payment method. */
|
|
190
195
|
export function session(p) {
|
|
191
196
|
const parameters = p;
|
|
192
|
-
const { amount, channelStateTtl = 5_000, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, operator, store: rawStore = Store.memory(), suggestedDeposit, unitType, } = parameters;
|
|
197
|
+
const { amount, channelStateTtl = 5_000, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, machineTokenEnabled, operator, store: rawStore = Store.memory(), suggestedDeposit, unitType, } = parameters;
|
|
193
198
|
const settlementSchedule = resolveSettlementSchedule(parameters.settlementSchedule, decimals);
|
|
194
199
|
const onSessionSettlement = parameters.onSessionSettlement;
|
|
195
200
|
const store = ChannelStore.fromStore(rawStore);
|
|
196
201
|
const lastOnChainVerified = new Map();
|
|
197
202
|
const { account, feePayer, feePayerUrl, recipient } = Account.resolve(parameters);
|
|
198
203
|
const configuredFeePayer = feePayer ?? feePayerUrl;
|
|
204
|
+
const settlementFeePayer = feePayer ?? (feePayerUrl ? true : undefined);
|
|
199
205
|
const getClient = Client.getResolver({
|
|
200
206
|
chain: tempo_chain,
|
|
201
207
|
feePayerUrl,
|
|
202
208
|
getClient: parameters.getClient,
|
|
203
209
|
rpcUrl: defaults.rpcUrl,
|
|
204
210
|
});
|
|
211
|
+
const matchSnapshotPaymentFields = async (channel, expected, options) => {
|
|
212
|
+
if (channel.chainId !== expected.chainId ||
|
|
213
|
+
!isAddressEqual(channel.escrowContract, expected.escrowContract) ||
|
|
214
|
+
!isAddressEqual(expected.escrowContract, tip20ChannelEscrow))
|
|
215
|
+
return false;
|
|
216
|
+
return !!(await MachineTokenSession.matchRoute(await getClient({ chainId: expected.chainId }), {
|
|
217
|
+
active: options?.action !== 'close',
|
|
218
|
+
chainId: expected.chainId,
|
|
219
|
+
descriptor: channel.descriptor,
|
|
220
|
+
merchant: expected.recipient,
|
|
221
|
+
targetToken: expected.currency,
|
|
222
|
+
}));
|
|
223
|
+
};
|
|
224
|
+
const settleScheduled = async (channel) => {
|
|
225
|
+
if (!isSettlementDue(channel, settlementSchedule))
|
|
226
|
+
return undefined;
|
|
227
|
+
return maybeSettleScheduled({
|
|
228
|
+
account,
|
|
229
|
+
channel,
|
|
230
|
+
client: await getClient({ chainId: channel.chainId }),
|
|
231
|
+
...(settlementFeePayer ? { feePayer: settlementFeePayer } : {}),
|
|
232
|
+
feePayerPolicy: parameters.feePayerPolicy,
|
|
233
|
+
feeToken: parameters.feeToken,
|
|
234
|
+
onSessionSettlement,
|
|
235
|
+
schedule: settlementSchedule,
|
|
236
|
+
store,
|
|
237
|
+
});
|
|
238
|
+
};
|
|
239
|
+
const serveWebSocket = (options) => Ws.serve({
|
|
240
|
+
...options,
|
|
241
|
+
onChargeCommitted: settleScheduled,
|
|
242
|
+
store,
|
|
243
|
+
});
|
|
205
244
|
const bootstrapCharge = ChargeServer.charge({
|
|
206
245
|
account,
|
|
207
246
|
chainId: parameters.chainId,
|
|
@@ -214,20 +253,110 @@ export function session(p) {
|
|
|
214
253
|
});
|
|
215
254
|
const transport = parameters.sse
|
|
216
255
|
? Transport.sse({
|
|
256
|
+
settleCharged: settleScheduled,
|
|
217
257
|
store,
|
|
218
258
|
...(typeof parameters.sse === 'object' ? parameters.sse : undefined),
|
|
219
259
|
})
|
|
220
260
|
: undefined;
|
|
221
|
-
|
|
261
|
+
const validateCredential = async ({ credential, request, }) => {
|
|
262
|
+
const payload = requireSessionCredentialPayload(credential.payload);
|
|
263
|
+
const context = await resolveCredentialVerificationContext({
|
|
264
|
+
decimals,
|
|
265
|
+
feePayer: configuredFeePayer,
|
|
266
|
+
getClient,
|
|
267
|
+
minVoucherDelta: parameters.minVoucherDelta,
|
|
268
|
+
request,
|
|
269
|
+
});
|
|
270
|
+
const details = await validateCredentialPayload({
|
|
271
|
+
account,
|
|
272
|
+
challenge: credential.challenge,
|
|
273
|
+
channelStateTtl,
|
|
274
|
+
chainId: context.chainId,
|
|
275
|
+
client: context.client,
|
|
276
|
+
credentialSource: credential.source,
|
|
277
|
+
escrow: context.escrow,
|
|
278
|
+
expectedOperator: context.methodDetails.operator,
|
|
279
|
+
feePayer: context.feePayer,
|
|
280
|
+
feePayerPolicy: parameters.feePayerPolicy,
|
|
281
|
+
feeToken: context.methodDetails.feeToken,
|
|
282
|
+
lastOnChainVerified,
|
|
283
|
+
minVoucherDelta: context.minVoucherDelta,
|
|
284
|
+
payload,
|
|
285
|
+
store,
|
|
286
|
+
});
|
|
287
|
+
return {
|
|
288
|
+
challenge: credential.challenge,
|
|
289
|
+
credential: { ...credential, payload },
|
|
290
|
+
details,
|
|
291
|
+
intent: 'session',
|
|
292
|
+
method: 'tempo',
|
|
293
|
+
request: context.request,
|
|
294
|
+
source: credential.source,
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
const broadcastCredential = async ({ credential, envelope, request, }) => {
|
|
298
|
+
const { challenge } = credential;
|
|
299
|
+
const payload = requireSessionCredentialPayload(credential.payload);
|
|
300
|
+
const context = await resolveCredentialVerificationContext({
|
|
301
|
+
decimals,
|
|
302
|
+
feePayer: configuredFeePayer,
|
|
303
|
+
getClient,
|
|
304
|
+
minVoucherDelta: parameters.minVoucherDelta,
|
|
305
|
+
request,
|
|
306
|
+
});
|
|
307
|
+
const sessionReceipt = await broadcastCredentialPayload({
|
|
308
|
+
account,
|
|
309
|
+
challenge,
|
|
310
|
+
channelStateTtl,
|
|
311
|
+
chainId: context.chainId,
|
|
312
|
+
client: context.client,
|
|
313
|
+
credentialSource: credential.source,
|
|
314
|
+
escrow: context.escrow,
|
|
315
|
+
expectedOperator: context.methodDetails.operator,
|
|
316
|
+
feePayer: context.feePayer,
|
|
317
|
+
feePayerPolicy: parameters.feePayerPolicy,
|
|
318
|
+
feeToken: context.methodDetails.feeToken,
|
|
319
|
+
lastOnChainVerified,
|
|
320
|
+
minVoucherDelta: context.minVoucherDelta,
|
|
321
|
+
onSessionSettlement,
|
|
322
|
+
payload,
|
|
323
|
+
store,
|
|
324
|
+
});
|
|
325
|
+
return applyVerifiedHttpAccounting({
|
|
326
|
+
capturedRequest: envelope?.capturedRequest,
|
|
327
|
+
payloadAction: payload.action,
|
|
328
|
+
receipt: sessionReceipt,
|
|
329
|
+
getRequestAmount: () => BigInt(context.request.amount ?? challenge.request.amount),
|
|
330
|
+
sseEnabled: Boolean(parameters.sse),
|
|
331
|
+
markPrepaidReceipt: Transport.markPrepaidSessionTick,
|
|
332
|
+
charge: (channelId, requestAmount) => chargeSessionChannel({ store, channelId, amount: requestAmount }),
|
|
333
|
+
settleCharged: (channel) => maybeSettleScheduled({
|
|
334
|
+
account,
|
|
335
|
+
client: context.client,
|
|
336
|
+
...(context.feePayer ? { feePayer: context.feePayer } : {}),
|
|
337
|
+
feePayerPolicy: parameters.feePayerPolicy,
|
|
338
|
+
feeToken: parameters.feeToken,
|
|
339
|
+
onSessionSettlement,
|
|
340
|
+
schedule: settlementSchedule,
|
|
341
|
+
store,
|
|
342
|
+
channel,
|
|
343
|
+
}),
|
|
344
|
+
});
|
|
345
|
+
};
|
|
346
|
+
const method = Method.toServer(Methods.session, {
|
|
347
|
+
canOffer: parameters.canOffer,
|
|
348
|
+
onPaymentSuccess: parameters.onPaymentSuccess,
|
|
222
349
|
defaults: deriveServerDefaults({
|
|
223
350
|
amount,
|
|
224
351
|
currency,
|
|
225
352
|
decimals,
|
|
353
|
+
machineTokenEnabled,
|
|
226
354
|
operator,
|
|
227
355
|
recipient,
|
|
228
356
|
suggestedDeposit,
|
|
229
357
|
unitType,
|
|
230
358
|
}),
|
|
359
|
+
extensions: { serveWebSocket, settleScheduled },
|
|
231
360
|
transport: deriveTransport(transport),
|
|
232
361
|
preflight: parameters.bootstrap
|
|
233
362
|
? async ({ capturedRequest, credential, expires, input, options, realm, secretKey }) => {
|
|
@@ -242,6 +371,7 @@ export function session(p) {
|
|
|
242
371
|
defaultRecipient: recipient,
|
|
243
372
|
expires,
|
|
244
373
|
getClient,
|
|
374
|
+
matchSnapshotPaymentFields,
|
|
245
375
|
parameterChainId: parameters.chainId,
|
|
246
376
|
parameterEscrowContract: parameters.escrowContract,
|
|
247
377
|
paymentRequest: options,
|
|
@@ -259,6 +389,7 @@ export function session(p) {
|
|
|
259
389
|
decimals,
|
|
260
390
|
defaultFeePayer: feePayer,
|
|
261
391
|
getClient,
|
|
392
|
+
matchSnapshotPaymentFields,
|
|
262
393
|
parameterChainId: parameters.chainId,
|
|
263
394
|
parameterEscrowContract: parameters.escrowContract,
|
|
264
395
|
parameterFeePayer: parameters.feePayer,
|
|
@@ -266,60 +397,22 @@ export function session(p) {
|
|
|
266
397
|
resolveChannelId: parameters.resolveChannelId,
|
|
267
398
|
store,
|
|
268
399
|
});
|
|
400
|
+
// Only advertise the capability when this logical session can use a
|
|
401
|
+
// configured unified router on the canonical escrow.
|
|
402
|
+
const { machineTokenEnabled: requestedMachineTokenEnabled, ...requestWithoutMachineToken } = resolvedRequest;
|
|
403
|
+
const machineSessionSupported = MachineTokenSession.isSupported(resolvedRequest.chainId) &&
|
|
404
|
+
isAddressEqual(resolvedRequest.escrowContract, tip20ChannelEscrow);
|
|
269
405
|
return {
|
|
270
|
-
...
|
|
406
|
+
...requestWithoutMachineToken,
|
|
407
|
+
feeToken: parameters.feeToken,
|
|
408
|
+
...(requestedMachineTokenEnabled && machineSessionSupported
|
|
409
|
+
? { machineTokenEnabled: true }
|
|
410
|
+
: {}),
|
|
271
411
|
sessionProtocol: Constants.SessionProtocols.v2,
|
|
272
412
|
};
|
|
273
413
|
},
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
const payload = requireSessionCredentialPayload(credential.payload);
|
|
277
|
-
const context = await resolveCredentialVerificationContext({
|
|
278
|
-
decimals,
|
|
279
|
-
feePayer: configuredFeePayer,
|
|
280
|
-
getClient,
|
|
281
|
-
minVoucherDelta: parameters.minVoucherDelta,
|
|
282
|
-
request,
|
|
283
|
-
});
|
|
284
|
-
const sessionReceipt = await verifyCredentialPayload({
|
|
285
|
-
account,
|
|
286
|
-
challenge,
|
|
287
|
-
channelStateTtl,
|
|
288
|
-
chainId: context.chainId,
|
|
289
|
-
client: context.client,
|
|
290
|
-
credentialSource: credential.source,
|
|
291
|
-
escrow: context.escrow,
|
|
292
|
-
expectedOperator: context.methodDetails.operator,
|
|
293
|
-
feePayer: context.feePayer,
|
|
294
|
-
feePayerPolicy: parameters.feePayerPolicy,
|
|
295
|
-
feeToken: parameters.feeToken,
|
|
296
|
-
lastOnChainVerified,
|
|
297
|
-
minVoucherDelta: context.minVoucherDelta,
|
|
298
|
-
onSessionSettlement,
|
|
299
|
-
payload,
|
|
300
|
-
store,
|
|
301
|
-
});
|
|
302
|
-
return applyVerifiedHttpAccounting({
|
|
303
|
-
capturedRequest: envelope?.capturedRequest,
|
|
304
|
-
payloadAction: payload.action,
|
|
305
|
-
receipt: sessionReceipt,
|
|
306
|
-
getRequestAmount: () => BigInt(context.request.amount ?? challenge.request.amount),
|
|
307
|
-
sseEnabled: Boolean(parameters.sse),
|
|
308
|
-
markPrepaidReceipt: Transport.markPrepaidSessionTick,
|
|
309
|
-
charge: (channelId, requestAmount) => chargeSessionChannel({ store, channelId, amount: requestAmount }),
|
|
310
|
-
settleCharged: (channel) => maybeSettleScheduled({
|
|
311
|
-
account,
|
|
312
|
-
client: context.client,
|
|
313
|
-
...(typeof context.feePayer === 'object' ? { feePayer: context.feePayer } : {}),
|
|
314
|
-
feePayerPolicy: parameters.feePayerPolicy,
|
|
315
|
-
feeToken: parameters.feeToken,
|
|
316
|
-
onSessionSettlement,
|
|
317
|
-
schedule: settlementSchedule,
|
|
318
|
-
store,
|
|
319
|
-
channel,
|
|
320
|
-
}),
|
|
321
|
-
});
|
|
322
|
-
},
|
|
414
|
+
validate: validateCredential,
|
|
415
|
+
broadcast: broadcastCredential,
|
|
323
416
|
// This hook acts as a gate: when it returns a Response, `withReceipt()`
|
|
324
417
|
// in Mppx.ts short-circuits and returns that response directly without
|
|
325
418
|
// invoking the user's route handler. When it returns undefined, the
|
|
@@ -338,6 +431,7 @@ export function session(p) {
|
|
|
338
431
|
});
|
|
339
432
|
},
|
|
340
433
|
});
|
|
434
|
+
return method;
|
|
341
435
|
}
|
|
342
436
|
(function (session) {
|
|
343
437
|
session.serializeSnapshot = serializeSessionSnapshot;
|