mppx 0.8.17 → 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 +55 -0
- package/README.md +15 -0
- package/dist/Challenge.js +21 -4
- package/dist/bin.js +3 -3
- package/dist/cli/THIRD-PARTY-LICENSES.txt +328 -0
- package/dist/cli/cli.js +253 -1505
- 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/request.d.ts +2 -0
- package/dist/cli/sessions/request.js +18 -0
- package/dist/cli/sessions/store.js +28 -14
- package/dist/discovery/Discovery.js +2 -1
- package/dist/evm/client/Charge.js +8 -0
- package/dist/server/core.d.ts +9 -0
- package/dist/server/core.js +9 -0
- package/dist/stripe/server/Charge.js +2 -4
- package/dist/stripe/server/Methods.d.ts +2 -2
- package/dist/stripe/server/Methods.js +17 -11
- 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/spt.d.ts +8 -0
- package/dist/stripe/server/spt.js +8 -0
- package/dist/tempo/Methods.d.ts +13 -0
- package/dist/tempo/Methods.js +14 -3
- package/dist/tempo/client/Charge.d.ts +3 -0
- package/dist/tempo/client/Charge.js +31 -9
- package/dist/tempo/client/Methods.d.ts +13 -0
- package/dist/tempo/internal/defaults.d.ts +11 -0
- package/dist/tempo/internal/defaults.js +11 -0
- 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/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 +13 -1
- 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/server/Charge.d.ts +3 -0
- package/dist/tempo/server/Charge.js +58 -17
- package/dist/tempo/server/Methods.d.ts +21 -4
- package/dist/tempo/server/Methods.js +8 -4
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- 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 +17 -2
- 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 +15 -3
- 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 +10 -2
- package/dist/tempo/session/precompile/Chain.js +50 -10
- 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 +3 -1
- package/dist/tempo/session/precompile/Voucher.js +6 -12
- package/dist/tempo/session/server/ChannelStore.d.ts +6 -0
- package/dist/tempo/session/server/ChannelStore.js +11 -4
- package/dist/tempo/session/server/CredentialVerification.d.ts +11 -9
- package/dist/tempo/session/server/CredentialVerification.js +185 -109
- package/dist/tempo/session/server/MeteredStream.d.ts +1 -1
- package/dist/tempo/session/server/MeteredStream.js +5 -4
- 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 +14 -2
- package/dist/tempo/session/server/Session.js +37 -6
- package/dist/tempo/session/server/Settlement.d.ts +11 -4
- package/dist/tempo/session/server/Settlement.js +53 -21
- 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 +23 -1
- package/package.json +15 -37
- 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/attestation/Client.d.ts.map +0 -1
- package/dist/attestation/Client.js.map +0 -1
- package/dist/attestation/Constants.d.ts.map +0 -1
- package/dist/attestation/Constants.js.map +0 -1
- package/dist/attestation/Server.d.ts.map +0 -1
- package/dist/attestation/Server.js.map +0 -1
- package/dist/attestation/Types.d.ts.map +0 -1
- package/dist/attestation/Types.js.map +0 -1
- package/dist/attestation/index.d.ts.map +0 -1
- package/dist/attestation/index.js.map +0 -1
- package/dist/attestation/internal/HttpMessageSignature.d.ts.map +0 -1
- package/dist/attestation/internal/HttpMessageSignature.js.map +0 -1
- package/dist/attestation/internal/SigningContext.d.ts.map +0 -1
- package/dist/attestation/internal/SigningContext.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/discovery/internal/Metadata.d.ts.map +0 -1
- package/dist/discovery/internal/Metadata.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/deposit-address.d.ts.map +0 -1
- package/dist/stripe/server/internal/deposit-address.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/stripe/server/internal/record-payment.d.ts.map +0 -1
- package/dist/stripe/server/internal/record-payment.js.map +0 -1
- package/dist/stripe/server/internal/request.d.ts.map +0 -1
- package/dist/stripe/server/internal/request.js.map +0 -1
- package/dist/tap/Constants.d.ts.map +0 -1
- package/dist/tap/Constants.js.map +0 -1
- package/dist/tap/Types.d.ts.map +0 -1
- package/dist/tap/Types.js.map +0 -1
- package/dist/tap/client/index.d.ts.map +0 -1
- package/dist/tap/client/index.js.map +0 -1
- package/dist/tap/index.d.ts.map +0 -1
- package/dist/tap/index.js.map +0 -1
- package/dist/tap/server/index.d.ts.map +0 -1
- package/dist/tap/server/index.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/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/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/web-bot-auth/Constants.d.ts.map +0 -1
- package/dist/web-bot-auth/Constants.js.map +0 -1
- package/dist/web-bot-auth/Types.d.ts.map +0 -1
- package/dist/web-bot-auth/Types.js.map +0 -1
- package/dist/web-bot-auth/client/index.d.ts.map +0 -1
- package/dist/web-bot-auth/client/index.js.map +0 -1
- package/dist/web-bot-auth/index.d.ts.map +0 -1
- package/dist/web-bot-auth/index.js.map +0 -1
- package/dist/web-bot-auth/internal/JwkThumbprint.d.ts.map +0 -1
- package/dist/web-bot-auth/internal/JwkThumbprint.js.map +0 -1
- package/dist/web-bot-auth/internal/SignatureAgent.d.ts.map +0 -1
- package/dist/web-bot-auth/internal/SignatureAgent.js.map +0 -1
- package/dist/web-bot-auth/server/index.d.ts.map +0 -1
- package/dist/web-bot-auth/server/index.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 -154
- package/src/Challenge.test-d.ts +0 -82
- package/src/Challenge.test.ts +0 -1060
- package/src/Challenge.ts +0 -687
- 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 -631
- 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 -211
- package/src/Store.test.ts +0 -407
- package/src/Store.ts +0 -397
- package/src/attestation/Attestation.integration.test.ts +0 -208
- package/src/attestation/Client.test.ts +0 -83
- package/src/attestation/Client.ts +0 -34
- package/src/attestation/Constants.ts +0 -15
- package/src/attestation/Server.test.ts +0 -60
- package/src/attestation/Server.ts +0 -12
- package/src/attestation/Types.test-d.ts +0 -54
- package/src/attestation/Types.ts +0 -77
- package/src/attestation/index.ts +0 -5
- package/src/attestation/internal/HttpMessageSignature.test.ts +0 -101
- package/src/attestation/internal/HttpMessageSignature.ts +0 -429
- package/src/attestation/internal/SigningContext.ts +0 -13
- package/src/bin.js +0 -2
- 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 -1650
- 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 -287
- package/src/client/Mppx.test.ts +0 -1065
- package/src/client/Mppx.ts +0 -487
- package/src/client/Transport.test.ts +0 -586
- package/src/client/Transport.ts +0 -170
- 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 -1075
- 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 -623
- package/src/discovery/OpenApi.ts +0 -192
- package/src/discovery/Validate.test.ts +0 -305
- package/src/discovery/Validate.ts +0 -77
- package/src/discovery/index.ts +0 -3
- package/src/discovery/internal/Metadata.ts +0 -51
- 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 -295
- 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 -347
- 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 -479
- package/src/mcp/client/McpClient.integration.test.ts +0 -639
- 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 -285
- package/src/middlewares/elysia.ts +0 -116
- package/src/middlewares/express.test.ts +0 -361
- package/src/middlewares/express.ts +0 -140
- package/src/middlewares/hono.test.ts +0 -473
- 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 -359
- package/src/middlewares/nextjs.ts +0 -107
- package/src/proxy/Proxy.test.ts +0 -1038
- package/src/proxy/Proxy.ts +0 -483
- package/src/proxy/Proxy.upstreamError.test.ts +0 -364
- package/src/proxy/Service.test.ts +0 -252
- package/src/proxy/Service.ts +0 -280
- 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 -53
- package/src/proxy/services/hooks.test-d.ts +0 -14
- package/src/proxy/services/hooks.test.ts +0 -44
- package/src/proxy/services/openai.test.ts +0 -157
- package/src/proxy/services/openai.ts +0 -60
- package/src/proxy/services/stripe.test.ts +0 -175
- package/src/proxy/services/stripe.ts +0 -59
- package/src/server/Methods.test-d.ts +0 -88
- package/src/server/Methods.test.ts +0 -69
- package/src/server/Methods.ts +0 -3
- package/src/server/Mppx.authorize.test.ts +0 -210
- package/src/server/Mppx.test-d.ts +0 -494
- package/src/server/Mppx.test.ts +0 -6711
- package/src/server/Mppx.ts +0 -2919
- 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 -47
- package/src/stripe/server/Charge.test-d.ts +0 -81
- package/src/stripe/server/Charge.test.ts +0 -700
- package/src/stripe/server/Charge.ts +0 -487
- package/src/stripe/server/Methods.test-d.ts +0 -157
- package/src/stripe/server/Methods.test.ts +0 -403
- package/src/stripe/server/Methods.ts +0 -441
- package/src/stripe/server/index.ts +0 -2
- package/src/stripe/server/internal/deposit-address.ts +0 -57
- 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/stripe/server/internal/record-payment.ts +0 -66
- package/src/stripe/server/internal/request.ts +0 -49
- package/src/tap/Constants.ts +0 -32
- package/src/tap/Tap.test.ts +0 -125
- package/src/tap/Types.ts +0 -11
- package/src/tap/client/index.ts +0 -54
- package/src/tap/index.ts +0 -4
- package/src/tap/server/index.ts +0 -48
- 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 -271
- 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.test.ts +0 -42
- 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 -145
- 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 -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/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 -63
- package/src/tempo/server/Charge.test.ts +0 -6056
- package/src/tempo/server/Charge.ts +0 -1379
- package/src/tempo/server/Methods.ts +0 -86
- 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 -1336
- 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 -922
- package/src/tempo/server/internal/transport.ts +0 -322
- package/src/tempo/session/README.md +0 -320
- 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 -1269
- 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 -856
- package/src/tempo/session/server/CredentialVerification.test.ts +0 -299
- package/src/tempo/session/server/CredentialVerification.ts +0 -1087
- package/src/tempo/session/server/MeteredStream.ts +0 -99
- 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 -4247
- package/src/tempo/session/server/Session.ts +0 -669
- 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 -634
- package/src/tempo/session/server/Sse.ts +0 -261
- package/src/tempo/session/server/Transports.test.ts +0 -346
- package/src/tempo/session/server/Transports.ts +0 -256
- package/src/tempo/session/server/Ws.test.ts +0 -765
- package/src/tempo/session/server/Ws.ts +0 -391
- 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/web-bot-auth/Constants.ts +0 -24
- package/src/web-bot-auth/Types.ts +0 -9
- package/src/web-bot-auth/WebBotAuth.test.ts +0 -182
- package/src/web-bot-auth/client/index.ts +0 -84
- package/src/web-bot-auth/index.ts +0 -6
- package/src/web-bot-auth/internal/JwkThumbprint.ts +0 -21
- package/src/web-bot-auth/internal/SignatureAgent.ts +0 -18
- package/src/web-bot-auth/server/index.ts +0 -113
- package/src/x402/Assets.test.ts +0 -253
- package/src/x402/Assets.ts +0 -221
- package/src/x402/Exact.e2e.test.ts +0 -488
- 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 -410
- 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
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { SignatureEnvelope } from 'ox/tempo';
|
|
2
|
+
import { hashTypedData, isAddressEqual, parseAbi, zeroAddress, } from 'viem';
|
|
3
|
+
import { readContract, signTypedData } from 'viem/actions';
|
|
4
|
+
import { Actions } from 'viem/tempo';
|
|
5
|
+
import { isAccessKeyAccount } from './account.js';
|
|
6
|
+
import * as defaults from './defaults.js';
|
|
7
|
+
import { parseCanonicalEnvelope, serializeCanonicalEnvelope } from './signature-envelope.js';
|
|
8
|
+
const sessionRouteAbi = parseAbi([
|
|
9
|
+
'function sessionRouteFor(address merchant,address targetToken) view returns (address routeAddress)',
|
|
10
|
+
'function sessionRoutes(address routeAddress) view returns (address merchant,address targetToken)',
|
|
11
|
+
]);
|
|
12
|
+
const authorizationTypes = {
|
|
13
|
+
SessionAuthorization: [
|
|
14
|
+
{ name: 'channelId', type: 'bytes32' },
|
|
15
|
+
{ name: 'cumulativeAmount', type: 'uint96' },
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
function getDeployment(chainId) {
|
|
19
|
+
if (chainId === undefined)
|
|
20
|
+
return undefined;
|
|
21
|
+
return defaults.machineToken[chainId];
|
|
22
|
+
}
|
|
23
|
+
/** Returns whether a unified machine-token router is configured on a chain. */
|
|
24
|
+
export function isSupported(chainId) {
|
|
25
|
+
return !!getDeployment(chainId);
|
|
26
|
+
}
|
|
27
|
+
/** Matches a session descriptor to the configured router and machine token. */
|
|
28
|
+
export function matchDeployment(parameters) {
|
|
29
|
+
const deployment = getDeployment(parameters.chainId);
|
|
30
|
+
return deployment &&
|
|
31
|
+
isAddressEqual(parameters.descriptor.operator, deployment.swap) &&
|
|
32
|
+
isAddressEqual(parameters.descriptor.token, deployment.token)
|
|
33
|
+
? deployment
|
|
34
|
+
: undefined;
|
|
35
|
+
}
|
|
36
|
+
/** Returns whether an authenticated session challenge permits the machine-token rail. */
|
|
37
|
+
export function isEnabledChallenge(challenge) {
|
|
38
|
+
return (challenge.request.methodDetails
|
|
39
|
+
?.machineTokenEnabled === true);
|
|
40
|
+
}
|
|
41
|
+
/** Resolves the fee token from the payment token and an optional explicit override. */
|
|
42
|
+
export function resolveFeeToken(parameters) {
|
|
43
|
+
if (parameters.override)
|
|
44
|
+
return parameters.override;
|
|
45
|
+
const deployment = getDeployment(parameters.chainId);
|
|
46
|
+
if (deployment && isAddressEqual(parameters.paymentToken, deployment.token))
|
|
47
|
+
return defaults.tokens.pathUsd;
|
|
48
|
+
return parameters.paymentToken;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolves the fee tokens accepted for direct-rail sponsored transactions.
|
|
52
|
+
* Clients released before the fee-token advertisement always pay sponsored
|
|
53
|
+
* fees in the payment token, so it stays accepted alongside a configured
|
|
54
|
+
* override. Machine-rail routes post-date the advertisement and pin a single
|
|
55
|
+
* token via {@link resolveFeeToken}.
|
|
56
|
+
*/
|
|
57
|
+
export function allowedSponsoredFeeTokens(parameters) {
|
|
58
|
+
const feeToken = resolveFeeToken(parameters);
|
|
59
|
+
if (isAddressEqual(feeToken, parameters.paymentToken))
|
|
60
|
+
return [feeToken];
|
|
61
|
+
return [feeToken, parameters.paymentToken];
|
|
62
|
+
}
|
|
63
|
+
/** Returns whether an account has enough of a TIP-20 token for an operation. */
|
|
64
|
+
export async function hasSufficientBalance(client, parameters) {
|
|
65
|
+
try {
|
|
66
|
+
const balance = await readContract(client, Actions.token.getBalance.call(client, {
|
|
67
|
+
account: parameters.account,
|
|
68
|
+
token: parameters.token,
|
|
69
|
+
}));
|
|
70
|
+
return balance >= parameters.amount;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function authorizationDomain(router, chainId) {
|
|
77
|
+
return {
|
|
78
|
+
name: 'MachineUSD Session Router',
|
|
79
|
+
version: '1',
|
|
80
|
+
chainId,
|
|
81
|
+
verifyingContract: router,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function hashAuthorization(parameters) {
|
|
85
|
+
return hashTypedData({
|
|
86
|
+
domain: authorizationDomain(parameters.router, parameters.chainId),
|
|
87
|
+
types: authorizationTypes,
|
|
88
|
+
primaryType: 'SessionAuthorization',
|
|
89
|
+
message: parameters.authorization,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/** Signs a cumulative amount in the router-specific authorization domain. */
|
|
93
|
+
export async function signAuthorization(client, account, parameters) {
|
|
94
|
+
const signature = isAccessKeyAccount(account)
|
|
95
|
+
? await account.sign({
|
|
96
|
+
hash: hashAuthorization(parameters),
|
|
97
|
+
raw: true,
|
|
98
|
+
})
|
|
99
|
+
: await signTypedData(client, {
|
|
100
|
+
account,
|
|
101
|
+
domain: authorizationDomain(parameters.router, parameters.chainId),
|
|
102
|
+
types: authorizationTypes,
|
|
103
|
+
primaryType: 'SessionAuthorization',
|
|
104
|
+
message: parameters.authorization,
|
|
105
|
+
});
|
|
106
|
+
return serializeCanonicalEnvelope(signature, 'Machine-token session authorizations');
|
|
107
|
+
}
|
|
108
|
+
/** Verifies a cumulative authorization in the router-specific domain. */
|
|
109
|
+
export function verifyAuthorization(parameters) {
|
|
110
|
+
try {
|
|
111
|
+
const envelope = parseCanonicalEnvelope(parameters.signature);
|
|
112
|
+
if (!envelope)
|
|
113
|
+
return false;
|
|
114
|
+
const payload = hashAuthorization(parameters);
|
|
115
|
+
return SignatureEnvelope.verify(envelope, { address: parameters.expectedSigner, payload });
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async function readRoute(client, deployment, parameters) {
|
|
122
|
+
const payee = parameters.payee ??
|
|
123
|
+
(await readContract(client, {
|
|
124
|
+
address: deployment.swap,
|
|
125
|
+
abi: sessionRouteAbi,
|
|
126
|
+
functionName: 'sessionRouteFor',
|
|
127
|
+
args: [parameters.merchant, parameters.targetToken],
|
|
128
|
+
}));
|
|
129
|
+
if (isAddressEqual(payee, zeroAddress))
|
|
130
|
+
return undefined;
|
|
131
|
+
const [binding, activePayee] = await Promise.all([
|
|
132
|
+
readContract(client, {
|
|
133
|
+
address: deployment.swap,
|
|
134
|
+
abi: sessionRouteAbi,
|
|
135
|
+
functionName: 'sessionRoutes',
|
|
136
|
+
args: [payee],
|
|
137
|
+
}),
|
|
138
|
+
parameters.active && parameters.payee
|
|
139
|
+
? readContract(client, {
|
|
140
|
+
address: deployment.swap,
|
|
141
|
+
abi: sessionRouteAbi,
|
|
142
|
+
functionName: 'sessionRouteFor',
|
|
143
|
+
args: [parameters.merchant, parameters.targetToken],
|
|
144
|
+
})
|
|
145
|
+
: payee,
|
|
146
|
+
]);
|
|
147
|
+
if (isAddressEqual(binding[0], zeroAddress) ||
|
|
148
|
+
isAddressEqual(binding[1], zeroAddress) ||
|
|
149
|
+
!isAddressEqual(binding[0], parameters.merchant) ||
|
|
150
|
+
!isAddressEqual(binding[1], parameters.targetToken) ||
|
|
151
|
+
!isAddressEqual(activePayee, payee))
|
|
152
|
+
return undefined;
|
|
153
|
+
return { operator: deployment.swap, payee, token: deployment.token };
|
|
154
|
+
}
|
|
155
|
+
/** Resolves the active virtual payee and verifies its immutable reverse binding. */
|
|
156
|
+
export async function resolveRoute(client, parameters) {
|
|
157
|
+
const deployment = getDeployment(parameters.chainId);
|
|
158
|
+
if (!deployment)
|
|
159
|
+
return undefined;
|
|
160
|
+
return readRoute(client, deployment, { ...parameters, active: true });
|
|
161
|
+
}
|
|
162
|
+
/** Verifies a descriptor against the trusted router and merchant payout binding. */
|
|
163
|
+
export async function matchRoute(client, parameters) {
|
|
164
|
+
const deployment = matchDeployment(parameters);
|
|
165
|
+
if (!deployment)
|
|
166
|
+
return undefined;
|
|
167
|
+
return readRoute(client, deployment, {
|
|
168
|
+
...parameters,
|
|
169
|
+
active: parameters.active !== false,
|
|
170
|
+
payee: parameters.descriptor.payee,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=machine-token-session.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SignatureEnvelope } from 'ox/tempo';
|
|
2
|
+
import type { Hex } from 'viem';
|
|
3
|
+
/**
|
|
4
|
+
* Canonicalizes a fresh TIP-1020 primitive signature for transport. Keychain
|
|
5
|
+
* wrappers, multisig signatures, and magic-suffixed encodings are rejected.
|
|
6
|
+
*/
|
|
7
|
+
export declare function serializeCanonicalEnvelope(signature: Hex, subject: string): Hex;
|
|
8
|
+
/**
|
|
9
|
+
* Parses an incoming signature into a canonical TIP-1020 primitive envelope.
|
|
10
|
+
* Returns `undefined` for wrapper envelopes and aliased (non-canonical)
|
|
11
|
+
* encodings, so verified signatures can be replayed on-chain byte-for-byte.
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseCanonicalEnvelope(signature: Hex): SignatureEnvelope.SignatureEnvelope | undefined;
|
|
14
|
+
//# sourceMappingURL=signature-envelope.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SignatureEnvelope } from 'ox/tempo';
|
|
2
|
+
function isPrimitiveEnvelope(type) {
|
|
3
|
+
return type === 'secp256k1' || type === 'p256' || type === 'webAuthn';
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Canonicalizes a fresh TIP-1020 primitive signature for transport. Keychain
|
|
7
|
+
* wrappers, multisig signatures, and magic-suffixed encodings are rejected.
|
|
8
|
+
*/
|
|
9
|
+
export function serializeCanonicalEnvelope(signature, subject) {
|
|
10
|
+
const envelope = SignatureEnvelope.from(signature);
|
|
11
|
+
if (!isPrimitiveEnvelope(envelope.type))
|
|
12
|
+
throw new Error(`${subject} require a TIP-1020 primitive signature; received "${envelope.type}".`);
|
|
13
|
+
return SignatureEnvelope.serialize(envelope);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Parses an incoming signature into a canonical TIP-1020 primitive envelope.
|
|
17
|
+
* Returns `undefined` for wrapper envelopes and aliased (non-canonical)
|
|
18
|
+
* encodings, so verified signatures can be replayed on-chain byte-for-byte.
|
|
19
|
+
*/
|
|
20
|
+
export function parseCanonicalEnvelope(signature) {
|
|
21
|
+
const envelope = SignatureEnvelope.from(signature);
|
|
22
|
+
if (!isPrimitiveEnvelope(envelope.type))
|
|
23
|
+
return undefined;
|
|
24
|
+
if (SignatureEnvelope.serialize(envelope).toLowerCase() !== signature.toLowerCase())
|
|
25
|
+
return undefined;
|
|
26
|
+
return envelope;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=signature-envelope.js.map
|
|
@@ -29,12 +29,12 @@ export type ChannelEntry = {
|
|
|
29
29
|
};
|
|
30
30
|
/** Resolves the chain ID embedded in a legacy session challenge. */
|
|
31
31
|
export declare function resolveChainId(challenge: Challenge): number;
|
|
32
|
-
/** Resolves the
|
|
32
|
+
/** Resolves the server-advertised escrow against the client's trust policy. */
|
|
33
33
|
export declare function resolveEscrow(challenge: {
|
|
34
34
|
request: {
|
|
35
35
|
methodDetails?: unknown;
|
|
36
36
|
};
|
|
37
|
-
}, chainId: number, escrowContractOverride?: Address): Address;
|
|
37
|
+
}, chainId: number, escrowContractOverride?: Address, allowCustomEscrow?: boolean): Address;
|
|
38
38
|
/** Serializes a legacy session credential with a payer DID source. */
|
|
39
39
|
export declare function serializeCredential(challenge: Challenge, payload: LegacySessionCredentialPayload, chainId: number, account: viem_Account): string;
|
|
40
40
|
/** Creates a legacy cumulative voucher credential payload. */
|
|
@@ -24,15 +24,21 @@ export function resolveChainId(challenge) {
|
|
|
24
24
|
const md = challenge.request.methodDetails;
|
|
25
25
|
return md?.chainId ?? 0;
|
|
26
26
|
}
|
|
27
|
-
/** Resolves the
|
|
28
|
-
export function resolveEscrow(challenge, chainId, escrowContractOverride) {
|
|
27
|
+
/** Resolves the server-advertised escrow against the client's trust policy. */
|
|
28
|
+
export function resolveEscrow(challenge, chainId, escrowContractOverride, allowCustomEscrow = false) {
|
|
29
29
|
const challengeEscrow = challenge.request.methodDetails
|
|
30
30
|
?.escrowContract;
|
|
31
31
|
const escrow = escrowContractOverride ??
|
|
32
|
-
challengeEscrow ??
|
|
33
32
|
defaults.escrowContract[chainId];
|
|
34
|
-
if (!escrow)
|
|
35
|
-
throw new Error('No `escrowContract` available. Provide it in parameters or
|
|
33
|
+
if (!escrow && !(allowCustomEscrow && challengeEscrow))
|
|
34
|
+
throw new Error('No trusted `escrowContract` available. Provide it in client parameters or use a supported chain.');
|
|
35
|
+
if (challengeEscrow &&
|
|
36
|
+
escrow &&
|
|
37
|
+
challengeEscrow.toLowerCase() !== escrow.toLowerCase() &&
|
|
38
|
+
(!allowCustomEscrow || escrowContractOverride !== undefined))
|
|
39
|
+
throw new Error(`Tempo session escrow ${challengeEscrow} does not match client escrow ${escrow}.`);
|
|
40
|
+
if (challengeEscrow && (!escrow || challengeEscrow.toLowerCase() !== escrow.toLowerCase()))
|
|
41
|
+
return challengeEscrow;
|
|
36
42
|
return escrow;
|
|
37
43
|
}
|
|
38
44
|
/** Serializes a legacy session credential with a payer DID source. */
|
|
@@ -65,6 +65,7 @@ export declare function session(parameters?: session.Parameters): Method.Client<
|
|
|
65
65
|
credential: {
|
|
66
66
|
payload: z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
|
|
67
67
|
action: z.ZodMiniLiteral<"open">;
|
|
68
|
+
authorizationSignature: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
68
69
|
authorizedSigner: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
69
70
|
channelId: z.ZodMiniString<string>;
|
|
70
71
|
cumulativeAmount: z.ZodMiniString<string>;
|
|
@@ -81,15 +82,18 @@ export declare function session(parameters?: session.Parameters): Method.Client<
|
|
|
81
82
|
type: z.ZodMiniLiteral<"transaction">;
|
|
82
83
|
}, z.core.$strip>, z.ZodMiniObject<{
|
|
83
84
|
action: z.ZodMiniLiteral<"voucher">;
|
|
85
|
+
authorizationSignature: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
84
86
|
channelId: z.ZodMiniString<string>;
|
|
85
87
|
cumulativeAmount: z.ZodMiniString<string>;
|
|
86
88
|
descriptor: z.ZodMiniOptional<z.ZodMiniCustom<import("../../session/precompile/Protocol.js").ChannelDescriptor, import("../../session/precompile/Protocol.js").ChannelDescriptor>>;
|
|
87
89
|
signature: z.ZodMiniString<string>;
|
|
88
90
|
}, z.core.$strip>, z.ZodMiniObject<{
|
|
89
91
|
action: z.ZodMiniLiteral<"close">;
|
|
92
|
+
authorizationSignature: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
90
93
|
channelId: z.ZodMiniString<string>;
|
|
91
94
|
cumulativeAmount: z.ZodMiniString<string>;
|
|
92
95
|
descriptor: z.ZodMiniOptional<z.ZodMiniCustom<import("../../session/precompile/Protocol.js").ChannelDescriptor, import("../../session/precompile/Protocol.js").ChannelDescriptor>>;
|
|
96
|
+
refundSignature: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
93
97
|
signature: z.ZodMiniString<string>;
|
|
94
98
|
}, z.core.$strip>], "action">;
|
|
95
99
|
};
|
|
@@ -101,6 +105,8 @@ export declare function session(parameters?: session.Parameters): Method.Client<
|
|
|
101
105
|
decimals: z.ZodMiniNumber<number>;
|
|
102
106
|
escrowContract: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
103
107
|
feePayer: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniBoolean<boolean>, z.ZodMiniCustom<viem_Account, viem_Account>]>, z.ZodMiniTransform<boolean, boolean | viem_Account>>>;
|
|
108
|
+
feeToken: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
109
|
+
machineTokenEnabled: z.ZodMiniOptional<z.ZodMiniBoolean<boolean>>;
|
|
104
110
|
minVoucherDelta: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
105
111
|
operator: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
106
112
|
recipient: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
@@ -123,6 +129,8 @@ export declare function session(parameters?: session.Parameters): Method.Client<
|
|
|
123
129
|
minVoucherDelta?: string | undefined;
|
|
124
130
|
chainId?: number | undefined;
|
|
125
131
|
feePayer?: boolean | undefined;
|
|
132
|
+
feeToken?: string | undefined;
|
|
133
|
+
machineTokenEnabled?: boolean | undefined;
|
|
126
134
|
operator?: string | undefined;
|
|
127
135
|
sessionProtocol?: "v1" | "v2" | undefined;
|
|
128
136
|
sessionSnapshot?: import("../../session/Snapshot.js").SessionSnapshot | undefined;
|
|
@@ -135,6 +143,8 @@ export declare function session(parameters?: session.Parameters): Method.Client<
|
|
|
135
143
|
decimals: number;
|
|
136
144
|
escrowContract?: string | undefined;
|
|
137
145
|
feePayer?: boolean | undefined;
|
|
146
|
+
feeToken?: string | undefined;
|
|
147
|
+
machineTokenEnabled?: boolean | undefined;
|
|
138
148
|
minVoucherDelta?: string | undefined;
|
|
139
149
|
operator?: string | undefined;
|
|
140
150
|
recipient?: string | undefined;
|
|
@@ -163,13 +173,15 @@ export declare function session(parameters?: session.Parameters): Method.Client<
|
|
|
163
173
|
/** Type helpers for the legacy low-level session client method. */
|
|
164
174
|
export declare namespace session {
|
|
165
175
|
type Parameters = Account.getResolver.Parameters & Client.getResolver.Parameters & {
|
|
176
|
+
/** Accept a noncanonical escrow contract advertised by the server. @default false */
|
|
177
|
+
allowCustomEscrow?: boolean | undefined;
|
|
166
178
|
/** Account that signs voucher digests. Defaults to `account`; access-key accounts sign raw vouchers as their access-key address. */
|
|
167
179
|
voucherSigner?: viem_Account | undefined;
|
|
168
180
|
/** Token decimals for parsing human-readable amounts (default: 6). */
|
|
169
181
|
decimals?: number | undefined;
|
|
170
182
|
/** Initial deposit amount in human-readable units (e.g. "10" for 10 tokens). When set, the method handles the full channel lifecycle (open, voucher, cumulative tracking) automatically. */
|
|
171
183
|
deposit?: string | undefined;
|
|
172
|
-
/**
|
|
184
|
+
/** Exact escrow contract address pin. Takes precedence over `allowCustomEscrow`. */
|
|
173
185
|
escrowContract?: Address | undefined;
|
|
174
186
|
/** Maximum deposit in human-readable units (e.g. "10"). Caps the server's `suggestedDeposit`. Enables auto-management like `deposit`. */
|
|
175
187
|
maxDeposit?: string | undefined;
|
|
@@ -58,7 +58,7 @@ export const sessionContextSchema = z.object({
|
|
|
58
58
|
* ```
|
|
59
59
|
*/
|
|
60
60
|
export function session(parameters = {}) {
|
|
61
|
-
const { decimals = defaults.decimals } = parameters;
|
|
61
|
+
const { allowCustomEscrow = false, decimals = defaults.decimals } = parameters;
|
|
62
62
|
const getClient = Client.getResolver({
|
|
63
63
|
chain: tempo_chain,
|
|
64
64
|
getClient: parameters.getClient,
|
|
@@ -79,9 +79,9 @@ export function session(parameters = {}) {
|
|
|
79
79
|
if (channelId) {
|
|
80
80
|
const cached = escrowContractMap.get(channelId);
|
|
81
81
|
if (cached)
|
|
82
|
-
return cached;
|
|
82
|
+
return resolveEscrow(challenge, chainId, cached);
|
|
83
83
|
}
|
|
84
|
-
return resolveEscrow(challenge, chainId, parameters.escrowContract);
|
|
84
|
+
return resolveEscrow(challenge, chainId, parameters.escrowContract, allowCustomEscrow);
|
|
85
85
|
}
|
|
86
86
|
async function autoManageCredential(challenge, account, context) {
|
|
87
87
|
const md = challenge.request.methodDetails;
|
|
@@ -77,13 +77,15 @@ export declare function sessionManager(parameters: sessionManager.Parameters): S
|
|
|
77
77
|
/** Type helpers for the legacy auto-driving session manager. */
|
|
78
78
|
export declare namespace sessionManager {
|
|
79
79
|
type Parameters = Account.getResolver.Parameters & Client.getResolver.Parameters & {
|
|
80
|
+
/** Accept a noncanonical escrow contract advertised by the server. @default false */
|
|
81
|
+
allowCustomEscrow?: boolean | undefined;
|
|
80
82
|
/** Account that signs voucher digests. Defaults to `account`; access-key accounts sign raw vouchers as their access-key address. */
|
|
81
83
|
voucherSigner?: viem_Account | undefined;
|
|
82
84
|
/** Viem client instance. Shorthand for `getClient: () => client`. */
|
|
83
85
|
client?: import('viem').Client | undefined;
|
|
84
86
|
/** Token decimals used to convert `maxDeposit` to raw units. Defaults to `6`. */
|
|
85
87
|
decimals?: number | undefined;
|
|
86
|
-
/**
|
|
88
|
+
/** Exact escrow contract address pin. Takes precedence over `allowCustomEscrow`. */
|
|
87
89
|
escrowContract?: Address | undefined;
|
|
88
90
|
fetch?: typeof globalThis.fetch | undefined;
|
|
89
91
|
/** Maximum deposit in human-readable units (e.g. `'10'` for 10 tokens). Converted to raw units via `decimals`. */
|
|
@@ -37,6 +37,7 @@ const ClientWebSocketProtocolErrorCloseCode = 3008;
|
|
|
37
37
|
* finalized, it resumes from the on-chain settled amount.
|
|
38
38
|
*/
|
|
39
39
|
export function sessionManager(parameters) {
|
|
40
|
+
const allowCustomEscrow = parameters.allowCustomEscrow ?? false;
|
|
40
41
|
const fetchFn = parameters.fetch ?? globalThis.fetch;
|
|
41
42
|
const WebSocketImpl = parameters.webSocket ??
|
|
42
43
|
globalThis.WebSocket;
|
|
@@ -59,6 +60,7 @@ export function sessionManager(parameters) {
|
|
|
59
60
|
let wsTickCost = 0n;
|
|
60
61
|
const method = sessionPlugin({
|
|
61
62
|
account: parameters.account,
|
|
63
|
+
allowCustomEscrow,
|
|
62
64
|
voucherSigner: parameters.voucherSigner,
|
|
63
65
|
getClient: parameters.client ? () => parameters.client : parameters.getClient,
|
|
64
66
|
escrowContract: parameters.escrowContract,
|
|
@@ -45,6 +45,8 @@ export declare namespace charge {
|
|
|
45
45
|
} | undefined;
|
|
46
46
|
};
|
|
47
47
|
type Parameters = {
|
|
48
|
+
/** Enables first-party machine-token settlement for supported Tempo charges. */
|
|
49
|
+
machineTokenEnabled?: boolean | undefined;
|
|
48
50
|
/** Render payment page when Accept header is text/html (e.g. in browsers) */
|
|
49
51
|
html?: boolean | Html.Config | undefined;
|
|
50
52
|
/**
|
|
@@ -99,6 +101,7 @@ export declare namespace charge {
|
|
|
99
101
|
* relay broadcasts pull credentials, while it recognizes a push
|
|
100
102
|
* credential as already broadcast and returns its receipt without sending
|
|
101
103
|
* it again.
|
|
104
|
+
*
|
|
102
105
|
*/
|
|
103
106
|
relay?: RelayOptions | undefined;
|
|
104
107
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as SignatureEnvelope from 'ox/tempo/SignatureEnvelope';
|
|
2
|
-
import { decodeFunctionData, formatUnits, keccak256, parseEventLogs, } from 'viem';
|
|
2
|
+
import { createClient, decodeFunctionData, formatUnits, http, keccak256, parseEventLogs, } from 'viem';
|
|
3
3
|
import { getTransactionReceipt, sendRawTransaction, sendRawTransactionSync, signTransaction, verifyTypedData, call as viem_call, } from 'viem/actions';
|
|
4
4
|
import { Abis, Actions, Transaction } from 'viem/tempo';
|
|
5
5
|
import { tempo as tempo_chain } from 'viem/tempo/chains';
|
|
@@ -15,6 +15,7 @@ import * as Charge_internal from '../internal/charge.js';
|
|
|
15
15
|
import * as defaults from '../internal/defaults.js';
|
|
16
16
|
import * as FeePayer from '../internal/fee-payer.js';
|
|
17
17
|
import { resolveFeeToken } from '../internal/fee-token.js';
|
|
18
|
+
import * as MachineTokenCharge from '../internal/machine-token-charge.js';
|
|
18
19
|
import * as Proof from '../internal/proof.js';
|
|
19
20
|
import * as Selectors from '../internal/selectors.js';
|
|
20
21
|
import * as Methods from '../Methods.js';
|
|
@@ -32,7 +33,7 @@ import * as SponsorBudget from './SponsorBudget.js';
|
|
|
32
33
|
* ```
|
|
33
34
|
*/
|
|
34
35
|
export function charge(parameters = {}) {
|
|
35
|
-
const { amount, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, description, externalId, feeToken: configuredFeeToken, feePayerPolicy, html, memo, relay, sponsorBudget, splits, supportedModes, validateSender, waitForConfirmation = true, } = parameters;
|
|
36
|
+
const { machineTokenEnabled, amount, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, description, externalId, feeToken: configuredFeeToken, feePayerPolicy, html, memo, relay, sponsorBudget, splits, supportedModes, validateSender, waitForConfirmation = true, } = parameters;
|
|
36
37
|
const storeKeyPrefix = parameters.storeKeyPrefix ?? '';
|
|
37
38
|
const rawStore = (parameters.store ?? Store.memory());
|
|
38
39
|
const store = Store.from(rawStore, { keyPrefix: storeKeyPrefix });
|
|
@@ -84,12 +85,17 @@ export function charge(parameters = {}) {
|
|
|
84
85
|
const currency = resolvedRequest.currency;
|
|
85
86
|
const recipient = resolvedRequest.recipient;
|
|
86
87
|
const memo = methodDetails?.memo;
|
|
88
|
+
const machineTokenEnabled = methodDetails?.machineTokenEnabled === true;
|
|
89
|
+
const settlementSender = machineTokenEnabled
|
|
90
|
+
? MachineTokenCharge.getSettlementSender(chainId)
|
|
91
|
+
: undefined;
|
|
87
92
|
const isZeroAmount = BigInt(amount) === 0n;
|
|
88
93
|
Expires.assert(challenge.expires, challenge.id);
|
|
89
94
|
if (isZeroAmount && payload.type !== 'proof')
|
|
90
95
|
throw new MismatchError('Zero-amount challenges require a proof credential.', {});
|
|
91
96
|
return {
|
|
92
97
|
amount,
|
|
98
|
+
machineTokenEnabled,
|
|
93
99
|
chainId,
|
|
94
100
|
challenge,
|
|
95
101
|
client: await getClient({ chainId }),
|
|
@@ -101,11 +107,12 @@ export function charge(parameters = {}) {
|
|
|
101
107
|
recipient,
|
|
102
108
|
requestAllowsFeePayer: request.feePayer !== false,
|
|
103
109
|
resolvedRequest,
|
|
110
|
+
settlementSenders: settlementSender ? [settlementSender] : [],
|
|
104
111
|
supportedModes,
|
|
105
112
|
};
|
|
106
113
|
}
|
|
107
114
|
async function validateHashCredential(credential, payload, context) {
|
|
108
|
-
const { amount, chainId, challenge, client, currency, memo, methodDetails, recipient, supportedModes, } = context;
|
|
115
|
+
const { amount, chainId, challenge, client, currency, memo, methodDetails, recipient, settlementSenders, supportedModes, } = context;
|
|
109
116
|
if (supportedModes && !supportedModes.includes('push'))
|
|
110
117
|
throw new MismatchError('Hash credentials are not supported for this challenge.', {});
|
|
111
118
|
const source = parseHashCredentialSource({
|
|
@@ -120,6 +127,7 @@ export function charge(parameters = {}) {
|
|
|
120
127
|
const matchedLogs = await assertTransferLogs(receipt, {
|
|
121
128
|
currency,
|
|
122
129
|
sender,
|
|
130
|
+
settlementSenders,
|
|
123
131
|
source,
|
|
124
132
|
transfers,
|
|
125
133
|
validateSender,
|
|
@@ -169,7 +177,7 @@ export function charge(parameters = {}) {
|
|
|
169
177
|
return { sender: source.address };
|
|
170
178
|
}
|
|
171
179
|
async function validateTransactionCredential(credential, payload, request, context) {
|
|
172
|
-
const { amount, chainId, challenge, client, currency, memo, methodDetails, recipient, requestAllowsFeePayer, supportedModes, } = context;
|
|
180
|
+
const { machineTokenEnabled, amount, chainId, challenge, client, currency, memo, methodDetails, recipient, requestAllowsFeePayer, supportedModes, } = context;
|
|
173
181
|
if (supportedModes && !supportedModes.includes('pull'))
|
|
174
182
|
throw new MismatchError('Transaction credentials are not supported for this challenge.', {});
|
|
175
183
|
const serializedTransaction = payload.signature;
|
|
@@ -182,24 +190,40 @@ export function charge(parameters = {}) {
|
|
|
182
190
|
requestAllowsFeePayer &&
|
|
183
191
|
!!(typeof request.feePayer === 'object' ? request.feePayer : feePayer || feePayerUrl);
|
|
184
192
|
const transfers = getExpectedTransfers({ amount, memo, methodDetails, recipient });
|
|
185
|
-
const
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
193
|
+
const machineTokenRoute = machineTokenEnabled
|
|
194
|
+
? MachineTokenCharge.matchRoute({
|
|
195
|
+
calls: transaction.calls ?? [],
|
|
196
|
+
chainId: chainId ?? client.chain?.id,
|
|
197
|
+
currency,
|
|
198
|
+
transfers,
|
|
199
|
+
})
|
|
200
|
+
: undefined;
|
|
201
|
+
const matchedCalls = machineTokenRoute?.transfers ??
|
|
202
|
+
assertTransferCalls(transaction.calls ?? [], {
|
|
203
|
+
currency,
|
|
204
|
+
exactCount: isFeePayerTx,
|
|
205
|
+
transfers,
|
|
206
|
+
});
|
|
190
207
|
if (!memo)
|
|
191
208
|
assertChallengeBoundCallMemo(matchedCalls, {
|
|
192
209
|
challengeId: challenge.id,
|
|
193
210
|
realm: challenge.realm,
|
|
194
211
|
});
|
|
195
212
|
if (isFeePayerTx) {
|
|
196
|
-
|
|
213
|
+
if (!machineTokenRoute)
|
|
214
|
+
FeePayer.validateCalls(transaction.calls, { amount, currency, recipient }, { currency, expectedTransfers: transfers });
|
|
197
215
|
FeePayer.assertAllowedFeeToken(transaction, FeePayer.defaultAllowedFeeTokens(chainId));
|
|
198
216
|
}
|
|
199
217
|
else {
|
|
200
218
|
await viem_call(client, FeePayer.simulationTransaction(transaction, { feePayer: false }));
|
|
201
219
|
}
|
|
202
|
-
return {
|
|
220
|
+
return {
|
|
221
|
+
isFeePayerTx,
|
|
222
|
+
serializedTransaction,
|
|
223
|
+
settlementSenders: machineTokenRoute ? [machineTokenRoute.settlementSender] : [],
|
|
224
|
+
transaction,
|
|
225
|
+
transfers,
|
|
226
|
+
};
|
|
203
227
|
}
|
|
204
228
|
async function validateCredential(credential, request, context) {
|
|
205
229
|
switch (context.payload.type) {
|
|
@@ -217,7 +241,7 @@ export function charge(parameters = {}) {
|
|
|
217
241
|
return { details: { mode: 'proof', sender }, type: 'proof' };
|
|
218
242
|
}
|
|
219
243
|
case 'transaction': {
|
|
220
|
-
const { isFeePayerTx, serializedTransaction, transaction, transfers } = await validateTransactionCredential(credential, context.payload, request, context);
|
|
244
|
+
const { isFeePayerTx, serializedTransaction, settlementSenders, transaction, transfers } = await validateTransactionCredential(credential, context.payload, request, context);
|
|
221
245
|
return {
|
|
222
246
|
details: {
|
|
223
247
|
mode: 'pull',
|
|
@@ -227,6 +251,7 @@ export function charge(parameters = {}) {
|
|
|
227
251
|
},
|
|
228
252
|
isFeePayerTx,
|
|
229
253
|
serializedTransaction,
|
|
254
|
+
settlementSenders,
|
|
230
255
|
transaction,
|
|
231
256
|
transfers,
|
|
232
257
|
type: 'transaction',
|
|
@@ -238,6 +263,7 @@ export function charge(parameters = {}) {
|
|
|
238
263
|
canOffer: parameters.canOffer,
|
|
239
264
|
onPaymentSuccess: parameters.onPaymentSuccess,
|
|
240
265
|
defaults: {
|
|
266
|
+
machineTokenEnabled,
|
|
241
267
|
amount,
|
|
242
268
|
currency,
|
|
243
269
|
decimals,
|
|
@@ -298,6 +324,8 @@ export function charge(parameters = {}) {
|
|
|
298
324
|
})();
|
|
299
325
|
if (client.chain?.id !== chainId)
|
|
300
326
|
throw new Error(`Client not configured with chainId ${chainId}.`);
|
|
327
|
+
if (request.machineTokenEnabled && !MachineTokenCharge.isSupported(chainId))
|
|
328
|
+
throw new Error(`Machine tokens are not supported on chainId ${chainId}.`);
|
|
301
329
|
const resolvedFeePayer = (() => {
|
|
302
330
|
if (request.feePayer === false)
|
|
303
331
|
return credential ? false : undefined;
|
|
@@ -311,6 +339,7 @@ export function charge(parameters = {}) {
|
|
|
311
339
|
})();
|
|
312
340
|
return {
|
|
313
341
|
...request,
|
|
342
|
+
machineTokenEnabled: request.machineTokenEnabled || undefined,
|
|
314
343
|
chainId,
|
|
315
344
|
feePayer: resolvedFeePayer,
|
|
316
345
|
memo: request.memo || undefined,
|
|
@@ -365,7 +394,7 @@ export function charge(parameters = {}) {
|
|
|
365
394
|
};
|
|
366
395
|
}
|
|
367
396
|
case 'transaction': {
|
|
368
|
-
const { isFeePayerTx, serializedTransaction, transaction, transfers } = validated;
|
|
397
|
+
const { isFeePayerTx, serializedTransaction, settlementSenders, transaction, transfers } = validated;
|
|
369
398
|
// Pre-broadcast dedup: catch exact byte-for-byte replays early.
|
|
370
399
|
const hash = keccak256(serializedTransaction);
|
|
371
400
|
if (!(await tryClaimHash(store, hash, replayExpires))) {
|
|
@@ -377,6 +406,9 @@ export function charge(parameters = {}) {
|
|
|
377
406
|
let finalHash;
|
|
378
407
|
let reservation;
|
|
379
408
|
try {
|
|
409
|
+
const broadcastClient = feePayerUrl && isFeePayerTx
|
|
410
|
+
? createClient({ chain: client.chain, transport: http(feePayerUrl) })
|
|
411
|
+
: client;
|
|
380
412
|
const allowedFeeTokens = FeePayer.defaultAllowedFeeTokens(chainId);
|
|
381
413
|
if (isFeePayerTx)
|
|
382
414
|
FeePayer.assertAllowedFeeToken(transaction, allowedFeeTokens);
|
|
@@ -439,7 +471,9 @@ export function charge(parameters = {}) {
|
|
|
439
471
|
}
|
|
440
472
|
return { serializedTransaction, sponsor: undefined };
|
|
441
473
|
})();
|
|
442
|
-
|
|
474
|
+
// Nodes normalize accepted signature encodings before deriving transaction hashes.
|
|
475
|
+
// Broadcast the same canonical envelope so replay keys match the node reference.
|
|
476
|
+
const serializedTransaction_final = await Transaction.serialize(Transaction.deserialize(completedTransaction.serializedTransaction));
|
|
443
477
|
finalHash = keccak256(serializedTransaction_final);
|
|
444
478
|
if (finalHash.toLowerCase() !== hash.toLowerCase() &&
|
|
445
479
|
!(await tryClaimHash(store, finalHash, replayExpires)))
|
|
@@ -488,7 +522,7 @@ export function charge(parameters = {}) {
|
|
|
488
522
|
});
|
|
489
523
|
broadcastAttempted = true;
|
|
490
524
|
if (waitForConfirmation) {
|
|
491
|
-
const receipt = await sendRawTransactionSync(
|
|
525
|
+
const receipt = await sendRawTransactionSync(broadcastClient, {
|
|
492
526
|
serializedTransaction: serializedTransaction_final,
|
|
493
527
|
});
|
|
494
528
|
if (reservation)
|
|
@@ -496,6 +530,7 @@ export function charge(parameters = {}) {
|
|
|
496
530
|
const matchedLogs = await assertTransferLogs(receipt, {
|
|
497
531
|
currency,
|
|
498
532
|
sender: transaction.from,
|
|
533
|
+
settlementSenders,
|
|
499
534
|
transfers,
|
|
500
535
|
});
|
|
501
536
|
if (!memo)
|
|
@@ -512,7 +547,7 @@ export function charge(parameters = {}) {
|
|
|
512
547
|
// Optimistic path: broadcast without waiting for confirmation
|
|
513
548
|
// (simulation above already ran). The returned receipt assumes
|
|
514
549
|
// success — callers opt in via waitForConfirmation: false.
|
|
515
|
-
const reference = await sendRawTransaction(
|
|
550
|
+
const reference = await sendRawTransaction(broadcastClient, {
|
|
516
551
|
serializedTransaction: serializedTransaction_final,
|
|
517
552
|
});
|
|
518
553
|
if (reference.toLowerCase() !== finalHash.toLowerCase())
|
|
@@ -551,10 +586,11 @@ function chargeBinding(request) {
|
|
|
551
586
|
// Exhaustively destructure so new charge request fields require an explicit binding decision.
|
|
552
587
|
const { amount, currency, description, externalId, methodDetails, recipient, ...requestRest } = request;
|
|
553
588
|
requestRest;
|
|
554
|
-
const { chainId, feePayer, memo, splits, supportedModes, ...methodDetailsRest } = methodDetails ?? {};
|
|
589
|
+
const { chainId, feePayer, machineTokenEnabled, memo, splits, supportedModes, ...methodDetailsRest } = methodDetails ?? {};
|
|
555
590
|
methodDetailsRest;
|
|
556
591
|
void feePayer;
|
|
557
592
|
return {
|
|
593
|
+
machineTokenEnabled,
|
|
558
594
|
amount,
|
|
559
595
|
chainId,
|
|
560
596
|
currency,
|
|
@@ -696,7 +732,9 @@ async function assertTransferLogs(receipt, parameters) {
|
|
|
696
732
|
if (!(await isValidTransferSender({
|
|
697
733
|
expectedSender: parameters.sender,
|
|
698
734
|
sender: log.args.from,
|
|
735
|
+
settlementSenders: parameters.settlementSenders,
|
|
699
736
|
source: parameters.source,
|
|
737
|
+
transactionSender: receipt.from,
|
|
700
738
|
validateSender: parameters.validateSender,
|
|
701
739
|
})))
|
|
702
740
|
continue;
|
|
@@ -771,6 +809,9 @@ function isSameTransferLog(a, b) {
|
|
|
771
809
|
async function isValidTransferSender(parameters) {
|
|
772
810
|
if (TempoAddress.isEqual(parameters.sender, parameters.expectedSender))
|
|
773
811
|
return true;
|
|
812
|
+
if (TempoAddress.isEqual(parameters.transactionSender, parameters.expectedSender) &&
|
|
813
|
+
parameters.settlementSenders?.some((sender) => TempoAddress.isEqual(parameters.sender, sender)))
|
|
814
|
+
return true;
|
|
774
815
|
if (!parameters.validateSender)
|
|
775
816
|
return false;
|
|
776
817
|
return parameters.validateSender({
|