mppx 0.6.31 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/README.md +20 -11
- package/dist/Challenge.d.ts.map +1 -1
- package/dist/Challenge.js +27 -13
- package/dist/Challenge.js.map +1 -1
- package/dist/Constants.d.ts +46 -0
- package/dist/Constants.d.ts.map +1 -0
- package/dist/Constants.js +46 -0
- package/dist/Constants.js.map +1 -0
- package/dist/Credential.d.ts.map +1 -1
- package/dist/Credential.js +5 -4
- package/dist/Credential.js.map +1 -1
- package/dist/Mcp.d.ts +3 -0
- package/dist/Mcp.d.ts.map +1 -1
- package/dist/Mcp.js +2 -0
- package/dist/Mcp.js.map +1 -1
- package/dist/Method.d.ts +32 -4
- package/dist/Method.d.ts.map +1 -1
- package/dist/Method.js +5 -2
- package/dist/Method.js.map +1 -1
- package/dist/PaymentRequest.d.ts +10 -10
- package/dist/PaymentRequest.js +8 -8
- package/dist/Receipt.d.ts.map +1 -1
- package/dist/Receipt.js +3 -2
- package/dist/Receipt.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +19 -11
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/plugins/tempo.d.ts.map +1 -1
- package/dist/cli/plugins/tempo.js +17 -6
- package/dist/cli/plugins/tempo.js.map +1 -1
- package/dist/cli/utils.d.ts +5 -0
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +10 -0
- package/dist/cli/utils.js.map +1 -1
- package/dist/client/Methods.d.ts +5 -2
- package/dist/client/Methods.d.ts.map +1 -1
- package/dist/client/Methods.js +5 -2
- package/dist/client/Methods.js.map +1 -1
- package/dist/client/Mppx.js +2 -2
- package/dist/client/Mppx.js.map +1 -1
- package/dist/client/Transport.d.ts +11 -16
- package/dist/client/Transport.d.ts.map +1 -1
- package/dist/client/Transport.js +55 -76
- package/dist/client/Transport.js.map +1 -1
- package/dist/client/index.d.ts +5 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal/Fetch.d.ts.map +1 -1
- package/dist/client/internal/Fetch.js +60 -13
- package/dist/client/internal/Fetch.js.map +1 -1
- package/dist/client/internal/protocols/Mcp.d.ts +7 -0
- package/dist/client/internal/protocols/Mcp.d.ts.map +1 -0
- package/dist/client/internal/protocols/Mcp.js +159 -0
- package/dist/client/internal/protocols/Mcp.js.map +1 -0
- package/dist/client/internal/protocols/Mpp.d.ts +4 -0
- package/dist/client/internal/protocols/Mpp.d.ts.map +1 -0
- package/dist/client/internal/protocols/Mpp.js +18 -0
- package/dist/client/internal/protocols/Mpp.js.map +1 -0
- package/dist/client/internal/protocols/Protocol.d.ts +10 -0
- package/dist/client/internal/protocols/Protocol.d.ts.map +1 -0
- package/dist/client/internal/protocols/Protocol.js +2 -0
- package/dist/client/internal/protocols/Protocol.js.map +1 -0
- package/dist/client/internal/protocols/Shared.d.ts +5 -0
- package/dist/client/internal/protocols/Shared.d.ts.map +1 -0
- package/dist/client/internal/protocols/Shared.js +20 -0
- package/dist/client/internal/protocols/Shared.js.map +1 -0
- package/dist/client/internal/protocols/X402.d.ts +8 -0
- package/dist/client/internal/protocols/X402.d.ts.map +1 -0
- package/dist/client/internal/protocols/X402.js +39 -0
- package/dist/client/internal/protocols/X402.js.map +1 -0
- package/dist/evm/client/index.d.ts +1 -0
- package/dist/evm/client/index.d.ts.map +1 -1
- package/dist/evm/client/index.js +1 -0
- package/dist/evm/client/index.js.map +1 -1
- package/dist/evm/index.d.ts +2 -0
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +2 -0
- package/dist/evm/index.js.map +1 -1
- package/dist/evm/server/Methods.d.ts +1 -1
- package/dist/evm/server/Methods.d.ts.map +1 -1
- package/dist/evm/server/index.d.ts +1 -0
- package/dist/evm/server/index.d.ts.map +1 -1
- package/dist/evm/server/index.js +1 -0
- package/dist/evm/server/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/AcceptPayment.d.ts +3 -0
- package/dist/internal/AcceptPayment.d.ts.map +1 -1
- package/dist/internal/AcceptPayment.js +15 -11
- package/dist/internal/AcceptPayment.js.map +1 -1
- package/dist/mcp/client/McpClient.d.ts +101 -0
- package/dist/mcp/client/McpClient.d.ts.map +1 -0
- package/dist/mcp/client/McpClient.js +162 -0
- package/dist/mcp/client/McpClient.js.map +1 -0
- package/dist/mcp/client/index.d.ts.map +1 -0
- package/dist/mcp/client/index.js.map +1 -0
- package/dist/mcp/server/Transport.d.ts.map +1 -0
- package/dist/mcp/server/Transport.js.map +1 -0
- package/dist/mcp/server/index.d.ts.map +1 -0
- package/dist/mcp/server/index.js.map +1 -0
- package/dist/server/Mppx.d.ts +12 -4
- package/dist/server/Mppx.d.ts.map +1 -1
- package/dist/server/Mppx.js +85 -27
- package/dist/server/Mppx.js.map +1 -1
- package/dist/server/Response.d.ts.map +1 -1
- package/dist/server/Response.js +2 -1
- package/dist/server/Response.js.map +1 -1
- package/dist/server/Transport.d.ts +1 -1
- package/dist/server/Transport.d.ts.map +1 -1
- package/dist/server/Transport.js +5 -4
- package/dist/server/Transport.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/stripe/client/Charge.d.ts +1 -1
- package/dist/stripe/client/Charge.d.ts.map +1 -1
- package/dist/stripe/client/Charge.js +3 -1
- package/dist/stripe/client/Charge.js.map +1 -1
- package/dist/stripe/server/Charge.d.ts +1 -1
- package/dist/stripe/server/Charge.d.ts.map +1 -1
- package/dist/stripe/server/Charge.js +9 -2
- package/dist/stripe/server/Charge.js.map +1 -1
- package/dist/stripe/server/Methods.d.ts +1 -1
- package/dist/stripe/server/Methods.d.ts.map +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
- package/dist/stripe/server/internal/html.gen.js +1 -1
- package/dist/stripe/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/Methods.d.ts +18 -0
- package/dist/tempo/Methods.d.ts.map +1 -1
- package/dist/tempo/Methods.js +16 -1
- package/dist/tempo/Methods.js.map +1 -1
- package/dist/tempo/Proof.d.ts +85 -1
- package/dist/tempo/Proof.d.ts.map +1 -1
- package/dist/tempo/Proof.js +35 -0
- package/dist/tempo/Proof.js.map +1 -1
- package/dist/tempo/client/Charge.d.ts +19 -1
- package/dist/tempo/client/Charge.d.ts.map +1 -1
- package/dist/tempo/client/Charge.js +47 -27
- package/dist/tempo/client/Charge.js.map +1 -1
- package/dist/tempo/client/Methods.d.ts +41 -10
- package/dist/tempo/client/Methods.d.ts.map +1 -1
- package/dist/tempo/client/Methods.js +16 -7
- package/dist/tempo/client/Methods.js.map +1 -1
- package/dist/tempo/client/ResolveAccount.d.ts +40 -0
- package/dist/tempo/client/ResolveAccount.d.ts.map +1 -0
- package/dist/tempo/client/ResolveAccount.js +2 -0
- package/dist/tempo/client/ResolveAccount.js.map +1 -0
- package/dist/tempo/client/index.d.ts +7 -4
- package/dist/tempo/client/index.d.ts.map +1 -1
- package/dist/tempo/client/index.js +5 -3
- package/dist/tempo/client/index.js.map +1 -1
- package/dist/tempo/index.d.ts +1 -0
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +1 -0
- package/dist/tempo/index.js.map +1 -1
- package/dist/tempo/internal/fee-payer.d.ts +29 -1
- package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.js +138 -4
- package/dist/tempo/internal/fee-payer.js.map +1 -1
- package/dist/tempo/internal/proof.d.ts +71 -5
- package/dist/tempo/internal/proof.d.ts.map +1 -1
- package/dist/tempo/internal/proof.js +42 -6
- package/dist/tempo/internal/proof.js.map +1 -1
- package/dist/tempo/{client → legacy/client}/ChannelOps.d.ts +19 -6
- package/dist/tempo/legacy/client/ChannelOps.d.ts.map +1 -0
- package/dist/tempo/{client → legacy/client}/ChannelOps.js +9 -3
- package/dist/tempo/legacy/client/ChannelOps.js.map +1 -0
- package/dist/tempo/{client → legacy/client}/Session.d.ts +23 -4
- package/dist/tempo/legacy/client/Session.d.ts.map +1 -0
- package/dist/tempo/{client → legacy/client}/Session.js +14 -7
- package/dist/tempo/legacy/client/Session.js.map +1 -0
- package/dist/tempo/{client → legacy/client}/SessionManager.d.ts +20 -5
- package/dist/tempo/legacy/client/SessionManager.d.ts.map +1 -0
- package/dist/tempo/{client → legacy/client}/SessionManager.js +30 -19
- package/dist/tempo/legacy/client/SessionManager.js.map +1 -0
- package/dist/tempo/legacy/client/index.d.ts +7 -0
- package/dist/tempo/legacy/client/index.d.ts.map +1 -0
- package/dist/tempo/legacy/client/index.js +5 -0
- package/dist/tempo/legacy/client/index.js.map +1 -0
- package/dist/tempo/legacy/index.d.ts +7 -0
- package/dist/tempo/legacy/index.d.ts.map +1 -0
- package/dist/tempo/legacy/index.js +7 -0
- package/dist/tempo/legacy/index.js.map +1 -0
- package/dist/tempo/{server → legacy/server}/Session.d.ts +28 -11
- package/dist/tempo/legacy/server/Session.d.ts.map +1 -0
- package/dist/tempo/{server → legacy/server}/Session.js +12 -10
- package/dist/tempo/legacy/server/Session.js.map +1 -0
- package/dist/tempo/legacy/server/index.d.ts +5 -0
- package/dist/tempo/legacy/server/index.d.ts.map +1 -0
- package/dist/tempo/legacy/server/index.js +5 -0
- package/dist/tempo/legacy/server/index.js.map +1 -0
- package/dist/tempo/{session → legacy/session}/Chain.d.ts +30 -23
- package/dist/tempo/legacy/session/Chain.d.ts.map +1 -0
- package/dist/tempo/{session → legacy/session}/Chain.js +12 -11
- package/dist/tempo/legacy/session/Chain.js.map +1 -0
- package/dist/tempo/{session → legacy/session}/Channel.d.ts +1 -0
- package/dist/tempo/legacy/session/Channel.d.ts.map +1 -0
- package/dist/tempo/legacy/session/Channel.js.map +1 -0
- package/dist/tempo/legacy/session/ChannelStore.d.ts +22 -0
- package/dist/tempo/legacy/session/ChannelStore.d.ts.map +1 -0
- package/dist/tempo/legacy/session/ChannelStore.js +6 -0
- package/dist/tempo/legacy/session/ChannelStore.js.map +1 -0
- package/dist/tempo/legacy/session/Types.d.ts +73 -0
- package/dist/tempo/legacy/session/Types.d.ts.map +1 -0
- package/dist/tempo/legacy/session/Types.js.map +1 -0
- package/dist/tempo/{session → legacy/session}/Voucher.d.ts +4 -4
- package/dist/tempo/legacy/session/Voucher.d.ts.map +1 -0
- package/dist/tempo/{session → legacy/session}/Voucher.js +1 -1
- package/dist/tempo/legacy/session/Voucher.js.map +1 -0
- package/dist/tempo/{session → legacy/session}/escrow.abi.d.ts +1 -0
- package/dist/tempo/{session → legacy/session}/escrow.abi.d.ts.map +1 -1
- package/dist/tempo/{session → legacy/session}/escrow.abi.js +1 -0
- package/dist/tempo/legacy/session/escrow.abi.js.map +1 -0
- package/dist/tempo/legacy/session/index.d.ts +9 -0
- package/dist/tempo/legacy/session/index.d.ts.map +1 -0
- package/dist/tempo/legacy/session/index.js +9 -0
- package/dist/tempo/legacy/session/index.js.map +1 -0
- package/dist/tempo/server/Charge.d.ts +1 -1
- package/dist/tempo/server/Charge.d.ts.map +1 -1
- package/dist/tempo/server/Charge.js +51 -30
- package/dist/tempo/server/Charge.js.map +1 -1
- package/dist/tempo/server/Methods.d.ts +67 -8
- package/dist/tempo/server/Methods.d.ts.map +1 -1
- package/dist/tempo/server/Methods.js +40 -10
- package/dist/tempo/server/Methods.js.map +1 -1
- package/dist/tempo/server/Subscription.d.ts +11 -1
- package/dist/tempo/server/Subscription.d.ts.map +1 -1
- package/dist/tempo/server/Subscription.js +135 -23
- package/dist/tempo/server/Subscription.js.map +1 -1
- package/dist/tempo/server/index.d.ts +6 -5
- package/dist/tempo/server/index.d.ts.map +1 -1
- package/dist/tempo/server/index.js +5 -5
- package/dist/tempo/server/index.js.map +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/server/internal/request-body.d.ts +7 -2
- package/dist/tempo/server/internal/request-body.d.ts.map +1 -1
- package/dist/tempo/server/internal/request-body.js +20 -3
- package/dist/tempo/server/internal/request-body.js.map +1 -1
- package/dist/tempo/server/internal/transport.d.ts +8 -4
- package/dist/tempo/server/internal/transport.d.ts.map +1 -1
- package/dist/tempo/server/internal/transport.js +8 -7
- package/dist/tempo/server/internal/transport.js.map +1 -1
- package/dist/tempo/session/Snapshot.d.ts +32 -0
- package/dist/tempo/session/Snapshot.d.ts.map +1 -0
- package/dist/tempo/session/Snapshot.js +37 -0
- package/dist/tempo/session/Snapshot.js.map +1 -0
- package/dist/tempo/session/client/ChannelOps.d.ts +81 -0
- package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -0
- package/dist/tempo/session/client/ChannelOps.js +201 -0
- package/dist/tempo/session/client/ChannelOps.js.map +1 -0
- package/dist/tempo/session/client/ChannelStore.d.ts +51 -0
- package/dist/tempo/session/client/ChannelStore.d.ts.map +1 -0
- package/dist/tempo/session/client/ChannelStore.js +63 -0
- package/dist/tempo/session/client/ChannelStore.js.map +1 -0
- package/dist/tempo/session/client/CredentialState.d.ts +245 -0
- package/dist/tempo/session/client/CredentialState.d.ts.map +1 -0
- package/dist/tempo/session/client/CredentialState.js +419 -0
- package/dist/tempo/session/client/CredentialState.js.map +1 -0
- package/dist/tempo/session/client/ReceiptCoordinator.d.ts +26 -0
- package/dist/tempo/session/client/ReceiptCoordinator.d.ts.map +1 -0
- package/dist/tempo/session/client/ReceiptCoordinator.js +61 -0
- package/dist/tempo/session/client/ReceiptCoordinator.js.map +1 -0
- package/dist/tempo/session/client/Runtime.d.ts +464 -0
- package/dist/tempo/session/client/Runtime.d.ts.map +1 -0
- package/dist/tempo/session/client/Runtime.js +499 -0
- package/dist/tempo/session/client/Runtime.js.map +1 -0
- package/dist/tempo/session/client/Session.d.ts +138 -0
- package/dist/tempo/session/client/Session.d.ts.map +1 -0
- package/dist/tempo/session/client/Session.js +69 -0
- package/dist/tempo/session/client/Session.js.map +1 -0
- package/dist/tempo/session/client/SessionManager.d.ts +84 -0
- package/dist/tempo/session/client/SessionManager.d.ts.map +1 -0
- package/dist/tempo/session/client/SessionManager.js +577 -0
- package/dist/tempo/session/client/SessionManager.js.map +1 -0
- package/dist/tempo/session/client/Transports.d.ts +449 -0
- package/dist/tempo/session/client/Transports.d.ts.map +1 -0
- package/dist/tempo/session/client/Transports.js +721 -0
- package/dist/tempo/session/client/Transports.js.map +1 -0
- package/dist/tempo/session/client/index.d.ts +11 -0
- package/dist/tempo/session/client/index.d.ts.map +1 -0
- package/dist/tempo/session/client/index.js +6 -0
- package/dist/tempo/session/client/index.js.map +1 -0
- package/dist/tempo/session/index.d.ts +7 -8
- package/dist/tempo/session/index.d.ts.map +1 -1
- package/dist/tempo/session/index.js +7 -8
- package/dist/tempo/session/index.js.map +1 -1
- package/dist/tempo/session/precompile/Chain.d.ts +319 -0
- package/dist/tempo/session/precompile/Chain.d.ts.map +1 -0
- package/dist/tempo/session/precompile/Chain.js +492 -0
- package/dist/tempo/session/precompile/Chain.js.map +1 -0
- package/dist/tempo/session/precompile/Channel.d.ts +46 -0
- package/dist/tempo/session/precompile/Channel.d.ts.map +1 -0
- package/dist/tempo/session/precompile/Channel.js +56 -0
- package/dist/tempo/session/precompile/Channel.js.map +1 -0
- package/dist/tempo/session/precompile/Protocol.d.ts +308 -0
- package/dist/tempo/session/precompile/Protocol.d.ts.map +1 -0
- package/dist/tempo/session/precompile/Protocol.js +264 -0
- package/dist/tempo/session/precompile/Protocol.js.map +1 -0
- package/dist/tempo/session/precompile/Voucher.d.ts +40 -0
- package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -0
- package/dist/tempo/session/precompile/Voucher.js +125 -0
- package/dist/tempo/session/precompile/Voucher.js.map +1 -0
- package/dist/tempo/session/precompile/escrow.abi.d.ts +522 -0
- package/dist/tempo/session/precompile/escrow.abi.d.ts.map +1 -0
- package/dist/tempo/session/precompile/escrow.abi.js +224 -0
- package/dist/tempo/session/precompile/escrow.abi.js.map +1 -0
- package/dist/tempo/session/precompile/index.d.ts +24 -0
- package/dist/tempo/session/precompile/index.d.ts.map +1 -0
- package/dist/tempo/session/precompile/index.js +22 -0
- package/dist/tempo/session/precompile/index.js.map +1 -0
- package/dist/tempo/session/server/ChannelOps.d.ts +56 -0
- package/dist/tempo/session/server/ChannelOps.d.ts.map +1 -0
- package/dist/tempo/session/server/ChannelOps.js +91 -0
- package/dist/tempo/session/server/ChannelOps.js.map +1 -0
- package/dist/tempo/session/server/ChannelStore.d.ts +347 -0
- package/dist/tempo/session/server/ChannelStore.d.ts.map +1 -0
- package/dist/tempo/session/server/ChannelStore.js +404 -0
- package/dist/tempo/session/server/ChannelStore.js.map +1 -0
- package/dist/tempo/session/server/CredentialVerification.d.ts +85 -0
- package/dist/tempo/session/server/CredentialVerification.d.ts.map +1 -0
- package/dist/tempo/session/server/CredentialVerification.js +494 -0
- package/dist/tempo/session/server/CredentialVerification.js.map +1 -0
- package/dist/tempo/session/server/MeteredStream.d.ts +40 -0
- package/dist/tempo/session/server/MeteredStream.d.ts.map +1 -0
- package/dist/tempo/session/server/MeteredStream.js +42 -0
- package/dist/tempo/session/server/MeteredStream.js.map +1 -0
- package/dist/tempo/session/server/RequestState.d.ts +208 -0
- package/dist/tempo/session/server/RequestState.d.ts.map +1 -0
- package/dist/tempo/session/server/RequestState.js +252 -0
- package/dist/tempo/session/server/RequestState.js.map +1 -0
- package/dist/tempo/session/server/Session.d.ts +169 -0
- package/dist/tempo/session/server/Session.d.ts.map +1 -0
- package/dist/tempo/session/server/Session.js +351 -0
- package/dist/tempo/session/server/Session.js.map +1 -0
- package/dist/tempo/session/server/Settlement.d.ts +185 -0
- package/dist/tempo/session/server/Settlement.d.ts.map +1 -0
- package/dist/tempo/session/server/Settlement.js +252 -0
- package/dist/tempo/session/server/Settlement.js.map +1 -0
- package/dist/tempo/session/{Sse.d.ts → server/Sse.d.ts} +9 -56
- package/dist/tempo/session/server/Sse.d.ts.map +1 -0
- package/dist/tempo/session/server/Sse.js +184 -0
- package/dist/tempo/session/server/Sse.js.map +1 -0
- package/dist/tempo/session/server/Transports.d.ts +89 -0
- package/dist/tempo/session/server/Transports.d.ts.map +1 -0
- package/dist/tempo/session/server/Transports.js +149 -0
- package/dist/tempo/session/server/Transports.js.map +1 -0
- package/dist/tempo/session/server/Ws.d.ts +48 -0
- package/dist/tempo/session/server/Ws.d.ts.map +1 -0
- package/dist/tempo/session/server/Ws.js +244 -0
- package/dist/tempo/session/server/Ws.js.map +1 -0
- package/dist/tempo/session/server/index.d.ts +4 -0
- package/dist/tempo/session/server/index.d.ts.map +1 -0
- package/dist/tempo/session/server/index.js +2 -0
- package/dist/tempo/session/server/index.js.map +1 -0
- package/dist/tempo/subscription/KeyAuthorization.d.ts +712 -1
- package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/subscription/Store.d.ts +2 -0
- package/dist/tempo/subscription/Store.d.ts.map +1 -1
- package/dist/tempo/subscription/Store.js +16 -1
- package/dist/tempo/subscription/Store.js.map +1 -1
- package/dist/x402/index.d.ts +1 -0
- package/dist/x402/index.d.ts.map +1 -1
- package/dist/x402/index.js +1 -0
- package/dist/x402/index.js.map +1 -1
- package/package.json +25 -9
- package/src/Challenge.test.ts +40 -0
- package/src/Challenge.ts +28 -13
- package/src/Constants.ts +58 -0
- package/src/Credential.ts +5 -4
- package/src/Mcp.ts +4 -0
- package/src/Method.ts +46 -5
- package/src/PaymentRequest.ts +10 -10
- package/src/Receipt.ts +3 -2
- package/src/cli/cli.test.ts +38 -43
- package/src/cli/cli.ts +23 -10
- package/src/cli/mcp.test.ts +21 -7
- package/src/cli/plugins/tempo.ts +21 -8
- package/src/cli/utils.test.ts +25 -1
- package/src/cli/utils.ts +10 -0
- package/src/client/Methods.ts +5 -2
- package/src/client/Mppx.test-d.ts +31 -1
- package/src/client/Mppx.test.ts +76 -1
- package/src/client/Mppx.ts +2 -2
- package/src/client/Transport.test.ts +225 -178
- package/src/client/Transport.ts +77 -84
- package/src/client/index.ts +25 -1
- package/src/client/internal/Fetch.test.ts +236 -6
- package/src/client/internal/Fetch.ts +69 -11
- package/src/client/internal/protocols/Mcp.test.ts +220 -0
- package/src/client/internal/protocols/Mcp.ts +162 -0
- package/src/client/internal/protocols/Mpp.ts +21 -0
- package/src/client/internal/protocols/Protocol.ts +10 -0
- package/src/client/internal/protocols/Shared.ts +25 -0
- package/src/client/internal/protocols/X402.ts +42 -0
- package/src/discovery/OpenApi.test.ts +1 -1
- package/src/env.d.ts +1 -1
- package/src/evm/PublicInterface.test-d.ts +1 -1
- package/src/evm/client/index.ts +1 -0
- package/src/evm/index.ts +2 -0
- package/src/evm/server/Charge.test.ts +1 -1
- package/src/evm/server/index.ts +1 -0
- package/src/index.ts +1 -0
- package/src/internal/AcceptPayment.test.ts +61 -0
- package/src/internal/AcceptPayment.ts +21 -14
- package/src/{mcp-sdk → mcp}/client/McpClient.integration.test.ts +18 -11
- package/src/{mcp-sdk → mcp}/client/McpClient.test-d.ts +45 -11
- package/src/{mcp-sdk → mcp}/client/McpClient.test.ts +211 -5
- package/src/mcp/client/McpClient.ts +307 -0
- package/src/mcp/client/McpClient.unit.test.ts +135 -0
- package/src/middlewares/elysia.test.ts +9 -5
- package/src/middlewares/express.test.ts +9 -5
- package/src/middlewares/hono.test.ts +5 -5
- package/src/middlewares/internal/mppx.test.ts +1 -1
- package/src/middlewares/nextjs.test.ts +9 -5
- package/src/proxy/Proxy.test.ts +9 -9
- package/src/proxy/services/anthropic.test.ts +1 -1
- package/src/proxy/services/openai.test.ts +1 -1
- package/src/proxy/services/stripe.test.ts +1 -1
- package/src/server/Mppx.authorize.test.ts +1 -1
- package/src/server/Mppx.test-d.ts +55 -1
- package/src/server/Mppx.test.ts +220 -9
- package/src/server/Mppx.ts +501 -407
- package/src/server/Response.ts +2 -1
- package/src/server/Transport.test.ts +6 -6
- package/src/server/Transport.ts +5 -4
- package/src/server/index.ts +1 -0
- package/src/stripe/Charge.integration.test.ts +1 -1
- package/src/stripe/client/Charge.test.ts +21 -6
- package/src/stripe/client/Charge.ts +6 -2
- package/src/stripe/server/Charge.test.ts +115 -2
- package/src/stripe/server/Charge.ts +13 -2
- package/src/stripe/server/internal/html/package.json +1 -1
- package/src/stripe/server/internal/html.gen.ts +1 -1
- package/src/tempo/AccessKeyAuthorization.test.ts +4 -94
- package/src/tempo/Methods.test.ts +45 -17
- package/src/tempo/Methods.ts +22 -0
- package/src/tempo/Proof.conformance.test.ts +146 -0
- package/src/tempo/Proof.test-d.ts +15 -0
- package/src/tempo/Proof.ts +52 -1
- package/src/tempo/PublicExports.test-d.ts +105 -0
- package/src/tempo/Subscription.integration.test.ts +1 -1
- package/src/tempo/client/Charge.test.ts +258 -0
- package/src/tempo/client/Charge.ts +84 -38
- package/src/tempo/client/Methods.ts +22 -8
- package/src/tempo/client/ResolveAccount.ts +46 -0
- package/src/tempo/client/index.ts +15 -4
- package/src/tempo/index.ts +1 -0
- package/src/tempo/internal/fee-payer.test.ts +296 -17
- package/src/tempo/internal/fee-payer.ts +186 -4
- package/src/tempo/internal/fee-token.test.ts +14 -9
- package/src/tempo/internal/proof.test.ts +12 -4
- package/src/tempo/internal/proof.ts +55 -6
- package/src/tempo/legacy/AccessKeyAuthorization.test.ts +162 -0
- package/src/tempo/legacy/README.md +9 -0
- package/src/tempo/{client → legacy/client}/ChannelOps.test.ts +6 -7
- package/src/tempo/{client → legacy/client}/ChannelOps.ts +22 -9
- package/src/tempo/{client → legacy/client}/Session.test.ts +51 -9
- package/src/tempo/{client → legacy/client}/Session.ts +25 -11
- package/src/tempo/{client → legacy/client}/SessionManager.test.ts +81 -9
- package/src/tempo/{client → legacy/client}/SessionManager.ts +52 -23
- package/src/tempo/legacy/client/index.ts +6 -0
- package/src/tempo/legacy/index.ts +6 -0
- package/src/tempo/{server → legacy/server}/Session.test.ts +136 -71
- package/src/tempo/{server → legacy/server}/Session.ts +32 -23
- package/src/tempo/legacy/server/index.ts +4 -0
- package/src/tempo/{session → legacy/session}/Chain.test.ts +3 -4
- package/src/tempo/{session → legacy/session}/Chain.ts +94 -63
- package/src/tempo/{session → legacy/session}/Channel.ts +1 -0
- package/src/tempo/legacy/session/ChannelStore.test.ts +58 -0
- package/src/tempo/legacy/session/ChannelStore.ts +39 -0
- package/src/tempo/legacy/session/Types.ts +91 -0
- package/src/tempo/{session → legacy/session}/Voucher.ts +12 -8
- package/src/tempo/{session → legacy/session}/escrow.abi.ts +1 -0
- package/src/tempo/legacy/session/index.ts +8 -0
- package/src/tempo/server/AtomicStore.test-d.ts +16 -11
- package/src/tempo/server/Charge.test.ts +480 -31
- package/src/tempo/server/Charge.ts +54 -30
- package/src/tempo/server/Methods.ts +58 -10
- package/src/tempo/server/Sse.test.ts +2 -2
- package/src/tempo/server/Subscription.test.ts +465 -3
- package/src/tempo/server/Subscription.ts +174 -19
- package/src/tempo/server/index.ts +6 -5
- package/src/tempo/server/internal/html/package.json +2 -2
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/server/internal/request-body.test.ts +37 -4
- package/src/tempo/server/internal/request-body.ts +25 -6
- package/src/tempo/server/internal/transport.test.ts +4 -4
- package/src/tempo/server/internal/transport.ts +19 -10
- package/src/tempo/session/Snapshot.test.ts +41 -0
- package/src/tempo/session/Snapshot.ts +74 -0
- package/src/tempo/session/client/ChannelOps.test.ts +163 -0
- package/src/tempo/session/client/ChannelOps.ts +330 -0
- package/src/tempo/session/client/ChannelStore.ts +111 -0
- package/src/tempo/session/client/CredentialState.test.ts +789 -0
- package/src/tempo/session/client/CredentialState.ts +799 -0
- package/src/tempo/session/client/ReceiptCoordinator.ts +95 -0
- package/src/tempo/session/client/Runtime.test.ts +1092 -0
- package/src/tempo/session/client/Runtime.ts +986 -0
- package/src/tempo/session/client/Session.test.ts +774 -0
- package/src/tempo/session/client/Session.ts +123 -0
- package/src/tempo/session/client/SessionManager.test.ts +1397 -0
- package/src/tempo/session/client/SessionManager.ts +751 -0
- package/src/tempo/session/client/Transports.test.ts +837 -0
- package/src/tempo/session/client/Transports.ts +1292 -0
- package/src/tempo/session/client/index.ts +40 -0
- package/src/tempo/session/index.ts +7 -8
- package/src/tempo/session/precompile/Chain.integration.test.ts +321 -0
- package/src/tempo/session/precompile/Chain.test.ts +1258 -0
- package/src/tempo/session/precompile/Chain.ts +979 -0
- package/src/tempo/session/precompile/Channel.test.ts +138 -0
- package/src/tempo/session/precompile/Channel.ts +103 -0
- package/src/tempo/session/precompile/Protocol.test.ts +358 -0
- package/src/tempo/session/precompile/Protocol.ts +520 -0
- package/src/tempo/session/precompile/Voucher.test.ts +354 -0
- package/src/tempo/session/precompile/Voucher.ts +162 -0
- package/src/tempo/session/precompile/escrow.abi.ts +226 -0
- package/src/tempo/session/precompile/index.ts +33 -0
- package/src/tempo/session/server/ChannelOps.test.ts +129 -0
- package/src/tempo/session/server/ChannelOps.ts +157 -0
- package/src/tempo/session/{ChannelStore.test.ts → server/ChannelStore.test.ts} +536 -29
- package/src/tempo/session/server/ChannelStore.ts +835 -0
- package/src/tempo/session/server/CredentialVerification.test.ts +146 -0
- package/src/tempo/session/server/CredentialVerification.ts +710 -0
- package/src/tempo/session/server/MeteredStream.ts +88 -0
- package/src/tempo/session/server/RequestState.test.ts +531 -0
- package/src/tempo/session/server/RequestState.ts +499 -0
- package/src/tempo/session/server/Session.integration.test.ts +444 -0
- package/src/tempo/session/server/Session.test.ts +3253 -0
- package/src/tempo/session/server/Session.ts +543 -0
- package/src/tempo/session/server/Settlement.test.ts +329 -0
- package/src/tempo/session/server/Settlement.ts +471 -0
- package/src/tempo/session/{Sse.test.ts → server/Sse.test.ts} +37 -3
- package/src/tempo/session/server/Sse.ts +254 -0
- package/src/tempo/session/server/Transports.test.ts +346 -0
- package/src/tempo/session/server/Transports.ts +255 -0
- package/src/tempo/session/{Ws.test.ts → server/Ws.test.ts} +4 -4
- package/src/tempo/session/server/Ws.ts +380 -0
- package/src/tempo/session/server/index.ts +8 -0
- package/src/tempo/subscription/Store.ts +27 -9
- package/src/x402/Exact.e2e.test.ts +1 -1
- package/src/x402/PublicInterface.test-d.ts +1 -1
- package/src/x402/index.ts +1 -0
- package/dist/mcp-sdk/client/McpClient.d.ts +0 -78
- package/dist/mcp-sdk/client/McpClient.d.ts.map +0 -1
- package/dist/mcp-sdk/client/McpClient.js +0 -105
- package/dist/mcp-sdk/client/McpClient.js.map +0 -1
- package/dist/mcp-sdk/client/index.d.ts.map +0 -1
- package/dist/mcp-sdk/client/index.js.map +0 -1
- package/dist/mcp-sdk/server/Transport.d.ts.map +0 -1
- package/dist/mcp-sdk/server/Transport.js.map +0 -1
- package/dist/mcp-sdk/server/index.d.ts.map +0 -1
- package/dist/mcp-sdk/server/index.js.map +0 -1
- package/dist/tempo/client/ChannelOps.d.ts.map +0 -1
- package/dist/tempo/client/ChannelOps.js.map +0 -1
- package/dist/tempo/client/Session.d.ts.map +0 -1
- package/dist/tempo/client/Session.js.map +0 -1
- package/dist/tempo/client/SessionManager.d.ts.map +0 -1
- package/dist/tempo/client/SessionManager.js.map +0 -1
- package/dist/tempo/server/Session.d.ts.map +0 -1
- package/dist/tempo/server/Session.js.map +0 -1
- package/dist/tempo/session/Chain.d.ts.map +0 -1
- package/dist/tempo/session/Chain.js.map +0 -1
- package/dist/tempo/session/Channel.d.ts.map +0 -1
- package/dist/tempo/session/Channel.js.map +0 -1
- package/dist/tempo/session/ChannelStore.d.ts +0 -117
- package/dist/tempo/session/ChannelStore.d.ts.map +0 -1
- package/dist/tempo/session/ChannelStore.js +0 -172
- package/dist/tempo/session/ChannelStore.js.map +0 -1
- package/dist/tempo/session/Receipt.d.ts +0 -22
- package/dist/tempo/session/Receipt.d.ts.map +0 -1
- package/dist/tempo/session/Receipt.js +0 -34
- package/dist/tempo/session/Receipt.js.map +0 -1
- package/dist/tempo/session/Sse.d.ts.map +0 -1
- package/dist/tempo/session/Sse.js +0 -363
- package/dist/tempo/session/Sse.js.map +0 -1
- package/dist/tempo/session/Types.d.ts +0 -78
- package/dist/tempo/session/Types.d.ts.map +0 -1
- package/dist/tempo/session/Types.js.map +0 -1
- package/dist/tempo/session/Voucher.d.ts.map +0 -1
- package/dist/tempo/session/Voucher.js.map +0 -1
- package/dist/tempo/session/Ws.d.ts +0 -87
- package/dist/tempo/session/Ws.d.ts.map +0 -1
- package/dist/tempo/session/Ws.js +0 -443
- package/dist/tempo/session/Ws.js.map +0 -1
- package/dist/tempo/session/escrow.abi.js.map +0 -1
- package/src/mcp-sdk/client/McpClient.ts +0 -196
- package/src/tempo/session/ChannelStore.ts +0 -308
- package/src/tempo/session/Receipt.test.ts +0 -89
- package/src/tempo/session/Receipt.ts +0 -46
- package/src/tempo/session/Sse.ts +0 -462
- package/src/tempo/session/Types.ts +0 -86
- package/src/tempo/session/Ws.ts +0 -576
- /package/dist/{mcp-sdk → mcp}/client/index.d.ts +0 -0
- /package/dist/{mcp-sdk → mcp}/client/index.js +0 -0
- /package/dist/{mcp-sdk → mcp}/server/Transport.d.ts +0 -0
- /package/dist/{mcp-sdk → mcp}/server/Transport.js +0 -0
- /package/dist/{mcp-sdk → mcp}/server/index.d.ts +0 -0
- /package/dist/{mcp-sdk → mcp}/server/index.js +0 -0
- /package/dist/tempo/{session → legacy/session}/Channel.js +0 -0
- /package/dist/tempo/{session → legacy/session}/Types.js +0 -0
- /package/src/{mcp-sdk → mcp}/client/index.ts +0 -0
- /package/src/{mcp-sdk → mcp}/server/Transport.test.ts +0 -0
- /package/src/{mcp-sdk → mcp}/server/Transport.ts +0 -0
- /package/src/{mcp-sdk → mcp}/server/index.ts +0 -0
- /package/src/tempo/{session → legacy/session}/Channel.test.ts +0 -0
- /package/src/tempo/{session → legacy/session}/Voucher.test.ts +0 -0
- /package/src/tempo/session/{Sse.fuzz.test.ts → server/Sse.fuzz.test.ts} +0 -0
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import type { Address, Hex } from 'viem';
|
|
2
|
+
import type * as Challenge from '../../../Challenge.js';
|
|
3
|
+
import type * as Store from '../../../Store.js';
|
|
4
|
+
import type * as Chain from '../precompile/Chain.js';
|
|
5
|
+
import type * as PrecompileChannel from '../precompile/Channel.js';
|
|
6
|
+
import type { SessionReceipt, SessionSignedVoucher } from '../precompile/Protocol.js';
|
|
7
|
+
import { type SignedVoucher } from '../precompile/Protocol.js';
|
|
8
|
+
import type { SessionMethodDetails } from './RequestState.js';
|
|
9
|
+
/**
|
|
10
|
+
* State for an on-chain payment channel, including per-session accounting.
|
|
11
|
+
*
|
|
12
|
+
* Tracks the channel's identity, on-chain balance, the highest voucher
|
|
13
|
+
* the server has accepted, and the current session's spend counters.
|
|
14
|
+
* A channel is created when a payer opens an escrow on-chain and persists
|
|
15
|
+
* until the channel is finalized (closed/settled).
|
|
16
|
+
*
|
|
17
|
+
* One channel = one session. The client owns the key and can't race with
|
|
18
|
+
* itself, so concurrent session support is unnecessary.
|
|
19
|
+
*
|
|
20
|
+
* Monotonicity invariants (enforced by update callbacks):
|
|
21
|
+
* - `highestVoucherAmount` only increases
|
|
22
|
+
* - `settledOnChain` only increases
|
|
23
|
+
* - `deposit` reflects the latest on-chain value
|
|
24
|
+
*/
|
|
25
|
+
export type State = BaseState & BackendState;
|
|
26
|
+
/** Result of an atomic channel deduction attempt. */
|
|
27
|
+
export type DeductResult = {
|
|
28
|
+
ok: true;
|
|
29
|
+
channel: State;
|
|
30
|
+
} | {
|
|
31
|
+
ok: false;
|
|
32
|
+
channel: State;
|
|
33
|
+
};
|
|
34
|
+
/** Persisted channel state after narrowing to the TIP-1034 precompile backend. */
|
|
35
|
+
export type StoredPrecompileChannel = BaseState & PrecompileBackendState;
|
|
36
|
+
/** On-chain state fields read from the TIP-1034 precompile. */
|
|
37
|
+
export type OnChainChannelState = {
|
|
38
|
+
/** Current on-chain channel deposit. */
|
|
39
|
+
deposit: bigint;
|
|
40
|
+
/** Cumulative amount settled on-chain. */
|
|
41
|
+
settled: bigint;
|
|
42
|
+
/** Close-request timestamp, or zero when open. */
|
|
43
|
+
closeRequestedAt: number | bigint;
|
|
44
|
+
};
|
|
45
|
+
/** Persisted fields that mirror authoritative on-chain channel state. */
|
|
46
|
+
export type ActiveOnChainStateFields = Pick<State, 'closeRequestedAt' | 'deposit' | 'settledOnChain'>;
|
|
47
|
+
/** Parameters for selecting the persisted highest accepted voucher. */
|
|
48
|
+
export type HighestVoucherParameters = {
|
|
49
|
+
/** Channel ID used when constructing a new voucher record. */
|
|
50
|
+
channelId: Hex;
|
|
51
|
+
/** Existing persisted voucher amount and signature, when present. */
|
|
52
|
+
current?: Pick<State, 'highestVoucher' | 'highestVoucherAmount'> | null | undefined;
|
|
53
|
+
/** Candidate cumulative voucher amount. */
|
|
54
|
+
cumulativeAmount: bigint;
|
|
55
|
+
/** Candidate voucher signature. */
|
|
56
|
+
signature: Hex;
|
|
57
|
+
};
|
|
58
|
+
/** Highest accepted voucher amount plus signed voucher payload. */
|
|
59
|
+
export type HighestVoucher = {
|
|
60
|
+
/** Highest cumulative voucher amount to persist. */
|
|
61
|
+
highestVoucherAmount: bigint;
|
|
62
|
+
/** Signed voucher corresponding to `highestVoucherAmount`. */
|
|
63
|
+
highestVoucher: SessionSignedVoucher | null;
|
|
64
|
+
};
|
|
65
|
+
/** Inputs for resolving the amount a close transaction should capture. */
|
|
66
|
+
export type ResolveCloseCaptureAmountParameters = {
|
|
67
|
+
/** Close voucher cumulative amount. */
|
|
68
|
+
cumulativeAmount: bigint;
|
|
69
|
+
/** Current on-chain deposit. */
|
|
70
|
+
onChainDeposit: bigint;
|
|
71
|
+
/** Current on-chain settled amount. */
|
|
72
|
+
onChainSettled: bigint;
|
|
73
|
+
/** Locally recorded paid spend. */
|
|
74
|
+
spent: bigint;
|
|
75
|
+
};
|
|
76
|
+
/** Inputs used when persisting or reconciling a successful open transaction. */
|
|
77
|
+
export type OpenChannelStateParameters = {
|
|
78
|
+
/** Address stored as the effective voucher signer for this channel. */
|
|
79
|
+
authorizedSigner: Address;
|
|
80
|
+
/** Chain ID used by the opened channel. */
|
|
81
|
+
chainId: number;
|
|
82
|
+
/** Normalized channel ID. */
|
|
83
|
+
channelId: Hex;
|
|
84
|
+
/** Existing channel state, when one was already persisted. */
|
|
85
|
+
current: State | null;
|
|
86
|
+
/** Descriptor verified from the open transaction. */
|
|
87
|
+
descriptor: PrecompileChannel.ChannelDescriptor;
|
|
88
|
+
/** Escrow precompile address used by the channel. */
|
|
89
|
+
escrow: Address;
|
|
90
|
+
/** Transaction-bound expiring nonce hash from the open call. */
|
|
91
|
+
expiringNonceHash: Hex;
|
|
92
|
+
/** Initial or highest accepted cumulative voucher amount. */
|
|
93
|
+
cumulativeAmount: bigint;
|
|
94
|
+
/** Voucher signature for `cumulativeAmount`. */
|
|
95
|
+
signature: Hex;
|
|
96
|
+
/** Latest on-chain channel state read after open. */
|
|
97
|
+
state: Chain.ChannelState;
|
|
98
|
+
};
|
|
99
|
+
/** Inputs for merging a successful top-up transaction into persisted channel state. */
|
|
100
|
+
export type TopUpStateParameters = {
|
|
101
|
+
/** Existing channel state, when one is currently persisted. */
|
|
102
|
+
current: State | null;
|
|
103
|
+
/** Latest verified on-chain channel state read after top-up. */
|
|
104
|
+
state: Chain.ChannelState;
|
|
105
|
+
};
|
|
106
|
+
/** Inputs for merging a newly accepted voucher with persisted channel state. */
|
|
107
|
+
export type AcceptVoucherStateUpdateParameters = {
|
|
108
|
+
/** Latest on-chain channel state used to validate the voucher. */
|
|
109
|
+
channelState: Chain.ChannelState;
|
|
110
|
+
/** Existing channel state being updated. */
|
|
111
|
+
current: State | null;
|
|
112
|
+
/** Verified signed voucher. */
|
|
113
|
+
voucher: SessionSignedVoucher;
|
|
114
|
+
};
|
|
115
|
+
/** Inputs for marking a channel as pending cooperative close. */
|
|
116
|
+
export type MarkPendingCloseParameters = {
|
|
117
|
+
/** Timestamp used to mark the local pending-close state. */
|
|
118
|
+
closeRequestedAt: bigint;
|
|
119
|
+
/** Close voucher cumulative amount. */
|
|
120
|
+
cumulativeAmount: bigint;
|
|
121
|
+
/** Existing channel state being updated. */
|
|
122
|
+
current: State | null;
|
|
123
|
+
/** Current on-chain deposit. */
|
|
124
|
+
onChainDeposit: bigint;
|
|
125
|
+
/** Current on-chain settled amount. */
|
|
126
|
+
onChainSettled: bigint;
|
|
127
|
+
};
|
|
128
|
+
/** Result of preparing local state for a cooperative close. */
|
|
129
|
+
export type PendingCloseUpdate = {
|
|
130
|
+
/** Amount that should be captured on-chain at close. */
|
|
131
|
+
captureAmount: bigint;
|
|
132
|
+
/** Next local channel state, or null if no channel exists. */
|
|
133
|
+
state: State | null;
|
|
134
|
+
};
|
|
135
|
+
/** Inputs for finalizing local state after a successful close transaction. */
|
|
136
|
+
export type FinalizeClosedChannelParameters = {
|
|
137
|
+
/** Amount captured to payee during close. */
|
|
138
|
+
captureAmount: bigint;
|
|
139
|
+
/** Normalized channel ID. */
|
|
140
|
+
channelId: Hex;
|
|
141
|
+
/** Close voucher cumulative amount. */
|
|
142
|
+
cumulativeAmount: bigint;
|
|
143
|
+
/** Existing channel state being updated. */
|
|
144
|
+
current: State | null;
|
|
145
|
+
/** Close voucher signature. */
|
|
146
|
+
signature: Hex;
|
|
147
|
+
};
|
|
148
|
+
/** Immutable channel identity fields derived from a verified TIP-1034 descriptor. */
|
|
149
|
+
export type PrecompileChannelIdentity = Pick<BaseState & PrecompileBackendState, 'authorizedSigner' | 'backend' | 'chainId' | 'channelId' | 'descriptor' | 'escrowContract' | 'expiringNonceHash' | 'operator' | 'payee' | 'payer' | 'salt' | 'token'>;
|
|
150
|
+
/** Inputs used to derive immutable persisted channel identity fields. */
|
|
151
|
+
export type ResolvePrecompileChannelIdentityParameters = {
|
|
152
|
+
/** Address stored as the effective voucher signer for this channel. */
|
|
153
|
+
authorizedSigner: Address;
|
|
154
|
+
/** Chain ID used by the opened channel. */
|
|
155
|
+
chainId: number;
|
|
156
|
+
/** Normalized channel ID. */
|
|
157
|
+
channelId: Hex;
|
|
158
|
+
/** Descriptor verified from the open transaction. */
|
|
159
|
+
descriptor: PrecompileChannel.ChannelDescriptor;
|
|
160
|
+
/** Escrow precompile address used by the channel. */
|
|
161
|
+
escrow: Address;
|
|
162
|
+
/** Transaction-bound expiring nonce hash from the open call. */
|
|
163
|
+
expiringNonceHash: Hex;
|
|
164
|
+
};
|
|
165
|
+
/** Inputs for reading a persisted precompile channel and validating its descriptor. */
|
|
166
|
+
export type LoadPrecompileChannelParameters = {
|
|
167
|
+
/** Channel ID to read from the server store. */
|
|
168
|
+
channelId: Hex;
|
|
169
|
+
/** Chain ID used to rederive the channel descriptor. */
|
|
170
|
+
chainId: number;
|
|
171
|
+
/** Descriptor supplied by the credential payload. */
|
|
172
|
+
descriptor: StoredPrecompileChannel['descriptor'];
|
|
173
|
+
/** Escrow precompile address used to derive the channel ID. */
|
|
174
|
+
escrow: Address;
|
|
175
|
+
/** Server channel store. */
|
|
176
|
+
store: ChannelStore;
|
|
177
|
+
/** Whether to also validate descriptor identity against chain/payee/token fields. */
|
|
178
|
+
validateDescriptor?: boolean | undefined;
|
|
179
|
+
};
|
|
180
|
+
/** Inputs for validating a signed voucher and merging it into channel state. */
|
|
181
|
+
export type VerifyAndAcceptVoucherParameters = {
|
|
182
|
+
/** Credential challenge used to bind the returned receipt. */
|
|
183
|
+
challenge: Challenge.Challenge;
|
|
184
|
+
/** Persisted channel state before voucher acceptance. */
|
|
185
|
+
channel: State;
|
|
186
|
+
/** Latest on-chain state used as the deposit/settled authority. */
|
|
187
|
+
channelState: Chain.ChannelState;
|
|
188
|
+
/** Session method details used for voucher signature domain separation. */
|
|
189
|
+
methodDetails: SessionMethodDetails;
|
|
190
|
+
/** Minimum allowed voucher delta in raw units. */
|
|
191
|
+
minVoucherDelta: bigint;
|
|
192
|
+
/** Server channel store. */
|
|
193
|
+
store: ChannelStore;
|
|
194
|
+
/** Signed cumulative voucher to verify and accept. */
|
|
195
|
+
voucher: SignedVoucher;
|
|
196
|
+
};
|
|
197
|
+
/** Channel backend-specific fields. */
|
|
198
|
+
export type BackendState = CompatibilityBackendState | PrecompileBackendState;
|
|
199
|
+
/** State for records owned by a backend outside the TIP-1034 precompile path. */
|
|
200
|
+
export interface CompatibilityBackendState {
|
|
201
|
+
/** Optional backend marker for older stored records. */
|
|
202
|
+
backend?: 'contract' | 'external' | undefined;
|
|
203
|
+
}
|
|
204
|
+
/** State for a TIP20EscrowChannel precompile-backed payment channel. */
|
|
205
|
+
export interface PrecompileBackendState {
|
|
206
|
+
/** Channel backend. */
|
|
207
|
+
backend: 'precompile';
|
|
208
|
+
/** Descriptor used to derive the channel's identity. */
|
|
209
|
+
descriptor: PrecompileChannel.ChannelDescriptor;
|
|
210
|
+
/** Transaction-bound nonce hash used to derive the channel's identity. */
|
|
211
|
+
expiringNonceHash: Hex;
|
|
212
|
+
/** Address authorized to operate the channel. */
|
|
213
|
+
operator: Address;
|
|
214
|
+
/** Salt used to derive the channel's identity. */
|
|
215
|
+
salt: Hex;
|
|
216
|
+
}
|
|
217
|
+
/** Common persisted state for every session channel backend. */
|
|
218
|
+
export interface BaseState {
|
|
219
|
+
/** Address authorized to sign vouchers on behalf of the payer. */
|
|
220
|
+
authorizedSigner: Address;
|
|
221
|
+
/** Chain ID the channel was opened on. */
|
|
222
|
+
chainId: number;
|
|
223
|
+
/** Escrow contract address the channel was opened on. */
|
|
224
|
+
escrowContract: Address;
|
|
225
|
+
/** Unique identifier for this payment channel. */
|
|
226
|
+
channelId: Hex;
|
|
227
|
+
/** On-chain timestamp when a force-close was requested (0n if not requested). */
|
|
228
|
+
closeRequestedAt: bigint;
|
|
229
|
+
/** ISO 8601 timestamp when the channel was created. */
|
|
230
|
+
createdAt: string;
|
|
231
|
+
/** Current on-chain deposit in the escrow contract. */
|
|
232
|
+
deposit: bigint;
|
|
233
|
+
/** Whether the channel has been finalized (closed) on-chain. */
|
|
234
|
+
finalized: boolean;
|
|
235
|
+
/** The signed voucher corresponding to `highestVoucherAmount`. */
|
|
236
|
+
highestVoucher: SessionSignedVoucher | null;
|
|
237
|
+
/** Highest cumulative voucher amount accepted by the server. */
|
|
238
|
+
highestVoucherAmount: bigint;
|
|
239
|
+
/** Address of the payment recipient. */
|
|
240
|
+
payee: Address;
|
|
241
|
+
/** Address of the payment sender. */
|
|
242
|
+
payer: Address;
|
|
243
|
+
/** Cumulative amount settled on-chain so far. */
|
|
244
|
+
settledOnChain: bigint;
|
|
245
|
+
/** Cumulative amount spent (charged) against this channel's current session. */
|
|
246
|
+
spent: bigint;
|
|
247
|
+
/** Token contract address used for payments. */
|
|
248
|
+
token: Address;
|
|
249
|
+
/** Number of charge operations (API requests) fulfilled in the current session. */
|
|
250
|
+
units: number;
|
|
251
|
+
/** ISO 8601 timestamp of the last server-scheduled settlement. */
|
|
252
|
+
lastSettlementAt?: string | undefined;
|
|
253
|
+
/** Cumulative spent value when the last server-scheduled settlement ran. */
|
|
254
|
+
lastSettlementSpent?: bigint | undefined;
|
|
255
|
+
/** Charge operation count when the last server-scheduled settlement ran. */
|
|
256
|
+
lastSettlementUnits?: number | undefined;
|
|
257
|
+
}
|
|
258
|
+
/** Returns whether a channel is backed by the TIP20EscrowChannel precompile. */
|
|
259
|
+
export declare function isPrecompileState(state: State): state is BaseState & PrecompileBackendState;
|
|
260
|
+
/** Returns the greater bigint value without decreasing persisted monotonic state. */
|
|
261
|
+
export declare function keepGreater(current: bigint, next: bigint): bigint;
|
|
262
|
+
/** Returns the greater close-request timestamp as a bigint. */
|
|
263
|
+
export declare function keepGreaterTimestamp(current: bigint, next: number | bigint): bigint;
|
|
264
|
+
/** Keeps local active-channel state in sync with authoritative on-chain reads. */
|
|
265
|
+
export declare function mergeActiveOnChainState(current: Partial<ActiveOnChainStateFields> | null | undefined, state: OnChainChannelState): ActiveOnChainStateFields;
|
|
266
|
+
/** Keeps the existing higher voucher, otherwise stores the supplied candidate voucher. */
|
|
267
|
+
export declare function resolveHighestVoucher(parameters: HighestVoucherParameters): HighestVoucher;
|
|
268
|
+
/** Derives persisted identity fields from a verified precompile channel descriptor. */
|
|
269
|
+
export declare function resolvePrecompileChannelIdentity(parameters: ResolvePrecompileChannelIdentityParameters): PrecompileChannelIdentity;
|
|
270
|
+
/** Builds the persisted state for a verified precompile channel open. */
|
|
271
|
+
export declare function openChannelState(parameters: OpenChannelStateParameters): State;
|
|
272
|
+
/** Merges top-up on-chain state into persisted channel state without decreasing monotonic fields. */
|
|
273
|
+
export declare function topUpChannelState(parameters: TopUpStateParameters): State | null;
|
|
274
|
+
/** Merges an accepted voucher into persisted channel state after signature and on-chain checks pass. */
|
|
275
|
+
export declare function acceptVoucherStateUpdate(parameters: AcceptVoucherStateUpdateParameters): State;
|
|
276
|
+
/**
|
|
277
|
+
* Resolves the close capture amount and validates it is covered by both the
|
|
278
|
+
* close voucher and current on-chain deposit.
|
|
279
|
+
*/
|
|
280
|
+
export declare function resolveCloseCaptureAmount(parameters: ResolveCloseCaptureAmountParameters): bigint;
|
|
281
|
+
/** Marks local channel state as pending close and returns the bounded capture amount. */
|
|
282
|
+
export declare function markPendingClose(parameters: MarkPendingCloseParameters): PendingCloseUpdate;
|
|
283
|
+
/** Finalizes local channel state after a successful close transaction. */
|
|
284
|
+
export declare function finalizeClosedChannelState(parameters: FinalizeClosedChannelParameters): State | null;
|
|
285
|
+
/** Loads a precompile-backed channel or throws a verification error. */
|
|
286
|
+
export declare function loadPrecompileChannel(parameters: LoadPrecompileChannelParameters): Promise<StoredPrecompileChannel>;
|
|
287
|
+
/** Verifies a cumulative voucher and returns a session receipt after store reconciliation. */
|
|
288
|
+
export declare function verifyAndAcceptVoucher(parameters: VerifyAndAcceptVoucherParameters): Promise<SessionReceipt>;
|
|
289
|
+
/**
|
|
290
|
+
* Internal store interface for channel state persistence.
|
|
291
|
+
*
|
|
292
|
+
* ## Atomicity contract
|
|
293
|
+
*
|
|
294
|
+
* The `updateChannel` method uses an atomic read-modify-write callback.
|
|
295
|
+
* The callback receives the current state (or `null` if none exists), and
|
|
296
|
+
* returns the next state (or `null` to delete). Implementations must
|
|
297
|
+
* guarantee that no concurrent mutation occurs between reading `current`
|
|
298
|
+
* and writing the return value.
|
|
299
|
+
*
|
|
300
|
+
* Callbacks should be synchronous and deterministic. When a `ChannelStore`
|
|
301
|
+
* is backed by `Store.update()`, adapters may retry them internally.
|
|
302
|
+
*
|
|
303
|
+
* Backends implement this via their native mechanisms:
|
|
304
|
+
* - **In-memory / JS single-thread**: Synchronous callback execution
|
|
305
|
+
* - **Durable Objects**: Single-threaded execution model
|
|
306
|
+
* - **D1 / SQL**: Database transactions
|
|
307
|
+
*/
|
|
308
|
+
export type ChannelStore = {
|
|
309
|
+
getChannel(channelId: Hex): Promise<State | null>;
|
|
310
|
+
/**
|
|
311
|
+
* Atomic read-modify-write for channel state.
|
|
312
|
+
* Return `null` from `fn` to delete the channel.
|
|
313
|
+
*/
|
|
314
|
+
updateChannel(channelId: Hex, fn: (current: State | null) => State | null): Promise<State | null>;
|
|
315
|
+
/**
|
|
316
|
+
* Wait for the next update to a channel.
|
|
317
|
+
*
|
|
318
|
+
* Returns a `Promise` that resolves once `updateChannel` is called for
|
|
319
|
+
* `channelId`. Implementations should resolve immediately if the channel
|
|
320
|
+
* was updated between the call to `waitForUpdate` and the `Promise`
|
|
321
|
+
* being awaited.
|
|
322
|
+
*
|
|
323
|
+
* When not implemented, callers fall back to polling.
|
|
324
|
+
*/
|
|
325
|
+
waitForUpdate?(channelId: Hex): Promise<void>;
|
|
326
|
+
/**
|
|
327
|
+
* Atomic read-modify-write that returns the callback's `result` directly.
|
|
328
|
+
*
|
|
329
|
+
* Used by {@link deductFromChannel} to atomically compute the deduction
|
|
330
|
+
* outcome. When backed by `Store.update()`, this delegates to the store's
|
|
331
|
+
* native atomic primitive.
|
|
332
|
+
*/
|
|
333
|
+
updateChannelResult?<result>(channelId: Hex, fn: (current: State | null) => Store.Change<State, result>): Promise<result>;
|
|
334
|
+
};
|
|
335
|
+
/** Normalizes and validates 32-byte channel IDs before store lookup or persistence. */
|
|
336
|
+
export declare function normalizeChannelId(channelId: string): Hex;
|
|
337
|
+
/** Wraps a generic mppx store in the shared session channel-store interface. */
|
|
338
|
+
export declare function fromStore(store: Store.Store | Store.AtomicStore): ChannelStore;
|
|
339
|
+
/**
|
|
340
|
+
* Atomically deducts `amount` from a channel's available voucher balance.
|
|
341
|
+
*
|
|
342
|
+
* Returns `{ ok: true, channel }` with updated spend/unit counters when the
|
|
343
|
+
* deduction succeeds. Returns `{ ok: false, channel }` without mutating state
|
|
344
|
+
* when the channel exists but cannot currently be charged.
|
|
345
|
+
*/
|
|
346
|
+
export declare function deductFromChannel(store: ChannelStore, channelId: State['channelId'], amount: bigint): Promise<DeductResult>;
|
|
347
|
+
//# sourceMappingURL=ChannelStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelStore.d.ts","sourceRoot":"","sources":["../../../../src/tempo/session/server/ChannelStore.ts"],"names":[],"mappings":"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"}
|