mppx 0.6.31 → 0.7.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 +17 -0
- package/dist/Challenge.d.ts.map +1 -1
- package/dist/Challenge.js +9 -7
- 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/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/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/Transport.d.ts.map +1 -1
- package/dist/client/Transport.js +4 -5
- package/dist/client/Transport.js.map +1 -1
- package/dist/client/index.d.ts +2 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -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 +14 -6
- package/dist/client/internal/Fetch.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/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-sdk/client/McpClient.d.ts +12 -5
- package/dist/mcp-sdk/client/McpClient.d.ts.map +1 -1
- package/dist/mcp-sdk/client/McpClient.js +55 -42
- package/dist/mcp-sdk/client/McpClient.js.map +1 -1
- package/dist/server/Mppx.d.ts +11 -3
- package/dist/server/Mppx.d.ts.map +1 -1
- package/dist/server/Mppx.js +76 -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.map +1 -1
- package/dist/server/Transport.js +4 -3
- 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/client/Charge.d.ts +6 -0
- package/dist/tempo/client/Charge.d.ts.map +1 -1
- package/dist/tempo/client/Charge.js +9 -2
- package/dist/tempo/client/Charge.js.map +1 -1
- package/dist/tempo/client/Methods.d.ts +36 -7
- package/dist/tempo/client/Methods.d.ts.map +1 -1
- package/dist/tempo/client/Methods.js +12 -5
- package/dist/tempo/client/Methods.js.map +1 -1
- 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 +21 -1
- package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.js +109 -4
- package/dist/tempo/internal/fee-payer.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 +20 -16
- 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 +13 -16
- package/dist/tempo/server/Charge.js.map +1 -1
- package/dist/tempo/server/Methods.d.ts +63 -6
- package/dist/tempo/server/Methods.d.ts.map +1 -1
- package/dist/tempo/server/Methods.js +36 -8
- package/dist/tempo/server/Methods.js.map +1 -1
- package/dist/tempo/server/Subscription.d.ts +1 -1
- package/dist/tempo/server/Subscription.d.ts.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 +82 -0
- package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -0
- package/dist/tempo/session/client/ChannelOps.js +204 -0
- package/dist/tempo/session/client/ChannelOps.js.map +1 -0
- package/dist/tempo/session/client/CredentialState.d.ts +262 -0
- package/dist/tempo/session/client/CredentialState.d.ts.map +1 -0
- package/dist/tempo/session/client/CredentialState.js +417 -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 +132 -0
- package/dist/tempo/session/client/Session.d.ts.map +1 -0
- package/dist/tempo/session/client/Session.js +55 -0
- package/dist/tempo/session/client/Session.js.map +1 -0
- package/dist/tempo/session/client/SessionManager.d.ts +120 -0
- package/dist/tempo/session/client/SessionManager.d.ts.map +1 -0
- package/dist/tempo/session/client/SessionManager.js +627 -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 +12 -0
- package/dist/tempo/session/client/index.d.ts.map +1 -0
- package/dist/tempo/session/client/index.js +5 -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 +126 -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 +250 -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/package.json +6 -1
- package/src/Challenge.ts +9 -7
- package/src/Constants.ts +58 -0
- package/src/Credential.ts +5 -4
- package/src/Method.ts +46 -5
- package/src/Receipt.ts +3 -2
- package/src/cli/cli.test.ts +23 -28
- 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 +10 -0
- package/src/client/Mppx.test.ts +75 -0
- package/src/client/Transport.ts +4 -5
- package/src/client/index.ts +11 -1
- package/src/client/internal/Fetch.test.ts +29 -4
- package/src/client/internal/Fetch.ts +17 -5
- package/src/env.d.ts +1 -1
- 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/client/McpClient.integration.test.ts +8 -7
- package/src/mcp-sdk/client/McpClient.test-d.ts +7 -0
- package/src/mcp-sdk/client/McpClient.ts +99 -67
- package/src/mcp-sdk/client/McpClient.unit.test.ts +131 -0
- package/src/middlewares/elysia.test.ts +8 -4
- package/src/middlewares/express.test.ts +8 -4
- package/src/middlewares/hono.test.ts +4 -4
- package/src/middlewares/nextjs.test.ts +8 -4
- package/src/proxy/Proxy.test.ts +8 -8
- package/src/server/Mppx.test-d.ts +54 -0
- package/src/server/Mppx.test.ts +200 -7
- package/src/server/Mppx.ts +487 -406
- package/src/server/Response.ts +2 -1
- package/src/server/Transport.ts +4 -3
- package/src/server/index.ts +1 -0
- package/src/stripe/client/Charge.test.ts +20 -5
- package/src/stripe/client/Charge.ts +6 -2
- package/src/stripe/server/Charge.test.ts +114 -1
- package/src/stripe/server/Charge.ts +13 -2
- 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/PublicExports.test-d.ts +105 -0
- package/src/tempo/client/Charge.test.ts +85 -0
- package/src/tempo/client/Charge.ts +19 -2
- package/src/tempo/client/Methods.ts +18 -6
- package/src/tempo/client/index.ts +15 -4
- package/src/tempo/index.ts +1 -0
- package/src/tempo/internal/fee-payer.test.ts +241 -17
- package/src/tempo/internal/fee-payer.ts +150 -4
- package/src/tempo/internal/fee-token.test.ts +14 -9
- 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 +41 -20
- 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 +45 -45
- 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 +92 -14
- package/src/tempo/server/Charge.ts +18 -16
- package/src/tempo/server/Methods.ts +54 -8
- package/src/tempo/server/Sse.test.ts +2 -2
- package/src/tempo/server/index.ts +6 -5
- 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 +344 -0
- package/src/tempo/session/client/CredentialState.test.ts +645 -0
- package/src/tempo/session/client/CredentialState.ts +814 -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 +734 -0
- package/src/tempo/session/client/Session.ts +97 -0
- package/src/tempo/session/client/SessionManager.test.ts +1308 -0
- package/src/tempo/session/client/SessionManager.ts +845 -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 +37 -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 +316 -0
- package/src/tempo/session/precompile/Voucher.ts +160 -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 +242 -0
- package/src/tempo/session/server/Settlement.ts +470 -0
- package/src/tempo/session/{Sse.test.ts → server/Sse.test.ts} +37 -3
- package/src/tempo/session/server/Sse.ts +256 -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 +384 -0
- package/src/tempo/session/server/index.ts +8 -0
- 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/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/tempo/{session → legacy/session}/Channel.js +0 -0
- /package/dist/tempo/{session → legacy/session}/Types.js +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
|
@@ -3,8 +3,8 @@ import { Mppx as Mppx_client, tempo as tempo_client } from 'mppx/client'
|
|
|
3
3
|
import { Mppx as Mppx_server, tempo as tempo_server } from 'mppx/server'
|
|
4
4
|
import { P256, type Hex, WebAuthnP256 } from 'ox'
|
|
5
5
|
import { SignatureEnvelope, TxEnvelopeTempo } from 'ox/tempo'
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { createClient, custom, encodeFunctionData, parseSignature, parseUnits } from 'viem'
|
|
7
|
+
import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'
|
|
8
8
|
import {
|
|
9
9
|
getTransactionReceipt,
|
|
10
10
|
prepareTransactionRequest,
|
|
@@ -15,17 +15,37 @@ import {
|
|
|
15
15
|
import { Abis, Account, Actions, Addresses, Secp256k1, Tick, Transaction } from 'viem/tempo'
|
|
16
16
|
import { beforeAll, describe, expect, test } from 'vp/test'
|
|
17
17
|
import * as Http from '~test/Http.js'
|
|
18
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
closeChannelOnChain,
|
|
20
|
+
deployEscrow,
|
|
21
|
+
openChannel,
|
|
22
|
+
signVoucher,
|
|
23
|
+
} from '~test/tempo/legacy/session.js'
|
|
19
24
|
import { accounts, asset, chain, client, fundAccount, http } from '~test/tempo/viem.js'
|
|
20
25
|
|
|
21
26
|
import * as Store from '../../Store.js'
|
|
22
27
|
import * as Attribution from '../Attribution.js'
|
|
28
|
+
import * as defaults from '../internal/defaults.js'
|
|
23
29
|
import * as Proof from '../internal/proof.js'
|
|
24
|
-
import { signVoucher } from '../session/Voucher.js'
|
|
25
30
|
|
|
26
31
|
const realm = 'api.example.com'
|
|
27
32
|
const secretKey = 'test-secret-key'
|
|
28
33
|
|
|
34
|
+
function isPairAlreadyExistsError(error: unknown) {
|
|
35
|
+
if (typeof error !== 'object' || error === null) return false
|
|
36
|
+
const candidate = error as {
|
|
37
|
+
details?: string | undefined
|
|
38
|
+
shortMessage?: string | undefined
|
|
39
|
+
}
|
|
40
|
+
return [candidate.details, candidate.shortMessage].some((message) =>
|
|
41
|
+
message?.includes('PairAlreadyExists'),
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function testAccount() {
|
|
46
|
+
return privateKeyToAccount(generatePrivateKey())
|
|
47
|
+
}
|
|
48
|
+
|
|
29
49
|
type ProofAccessKeyContext = {
|
|
30
50
|
accessKey: ReturnType<typeof Account.fromSecp256k1>
|
|
31
51
|
rootAccount: (typeof accounts)[number]
|
|
@@ -1796,11 +1816,64 @@ describe('tempo', () => {
|
|
|
1796
1816
|
})
|
|
1797
1817
|
|
|
1798
1818
|
test('behavior: fee payer URL (withFeePayer transport)', async () => {
|
|
1799
|
-
const
|
|
1800
|
-
|
|
1801
|
-
|
|
1819
|
+
const feePayerRequests: any[] = []
|
|
1820
|
+
const feePayerServer = await Http.createServer(async (req, res) => {
|
|
1821
|
+
let requestBody = ''
|
|
1822
|
+
for await (const chunk of req) requestBody += chunk
|
|
1823
|
+
const request = JSON.parse(requestBody)
|
|
1824
|
+
feePayerRequests.push(request)
|
|
1825
|
+
|
|
1826
|
+
const transaction = request.params[0]
|
|
1827
|
+
const quantity = (value: unknown) =>
|
|
1828
|
+
value === undefined ? undefined : BigInt(value as string | number | bigint | boolean)
|
|
1829
|
+
const envelope = TxEnvelopeTempo.from({
|
|
1830
|
+
accessList: transaction.accessList,
|
|
1831
|
+
calls: transaction.calls.map(({ value, ...call }: any) => ({
|
|
1832
|
+
...call,
|
|
1833
|
+
...(value && value !== '0x' ? { value: BigInt(value) } : {}),
|
|
1834
|
+
})),
|
|
1835
|
+
chainId: chain.id,
|
|
1836
|
+
feeToken: defaults.tokens.pathUsd,
|
|
1837
|
+
from: transaction.from,
|
|
1838
|
+
...(quantity(transaction.gas) !== undefined ? { gas: quantity(transaction.gas) } : {}),
|
|
1839
|
+
...(quantity(transaction.maxFeePerGas) !== undefined
|
|
1840
|
+
? { maxFeePerGas: quantity(transaction.maxFeePerGas) }
|
|
1841
|
+
: {}),
|
|
1842
|
+
...(quantity(transaction.maxPriorityFeePerGas) !== undefined
|
|
1843
|
+
? { maxPriorityFeePerGas: quantity(transaction.maxPriorityFeePerGas) }
|
|
1844
|
+
: {}),
|
|
1845
|
+
...(quantity(transaction.nonce) !== undefined
|
|
1846
|
+
? { nonce: quantity(transaction.nonce) }
|
|
1847
|
+
: {}),
|
|
1848
|
+
...(quantity(transaction.nonceKey) !== undefined
|
|
1849
|
+
? { nonceKey: quantity(transaction.nonceKey) }
|
|
1850
|
+
: {}),
|
|
1851
|
+
type: 'tempo',
|
|
1852
|
+
...(transaction.validAfter ? { validAfter: Number(BigInt(transaction.validAfter)) } : {}),
|
|
1853
|
+
...(transaction.validBefore
|
|
1854
|
+
? { validBefore: Number(BigInt(transaction.validBefore)) }
|
|
1855
|
+
: {}),
|
|
1856
|
+
})
|
|
1857
|
+
const hash = TxEnvelopeTempo.getFeePayerSignPayload(envelope, {
|
|
1858
|
+
sender: transaction.from,
|
|
1859
|
+
})
|
|
1860
|
+
const { r, s, yParity } = parseSignature(await accounts[0].sign!({ hash }))
|
|
1861
|
+
const feePayerSignature = { r, s, yParity }
|
|
1862
|
+
|
|
1863
|
+
res.setHeader('content-type', 'application/json')
|
|
1864
|
+
res.end(
|
|
1865
|
+
JSON.stringify({
|
|
1866
|
+
id: request.id,
|
|
1867
|
+
jsonrpc: '2.0',
|
|
1868
|
+
result: {
|
|
1869
|
+
tx: {
|
|
1870
|
+
feePayerSignature,
|
|
1871
|
+
feeToken: defaults.tokens.pathUsd,
|
|
1872
|
+
},
|
|
1873
|
+
},
|
|
1874
|
+
}),
|
|
1875
|
+
)
|
|
1802
1876
|
})
|
|
1803
|
-
const feePayerServer = await Http.createServer(feePayerHandler.listener)
|
|
1804
1877
|
|
|
1805
1878
|
const serverWithFeePayer = Mppx_server.create({
|
|
1806
1879
|
methods: [
|
|
@@ -1838,6 +1911,7 @@ describe('tempo', () => {
|
|
|
1838
1911
|
|
|
1839
1912
|
const response = await mppx.fetch(httpServer.url)
|
|
1840
1913
|
expect(response.status).toBe(200)
|
|
1914
|
+
expect(feePayerRequests.map(({ method }) => method)).toEqual(['eth_fillTransaction'])
|
|
1841
1915
|
|
|
1842
1916
|
const receipt = Receipt.fromResponse(response)
|
|
1843
1917
|
expect(receipt.status).toBe('success')
|
|
@@ -4931,19 +5005,21 @@ describe('tempo', () => {
|
|
|
4931
5005
|
|
|
4932
5006
|
describe('auto-swap', () => {
|
|
4933
5007
|
// Use accounts[3] as payer with pathUsd only (no asset).
|
|
4934
|
-
// Use accounts[4] as payer with zero balance.
|
|
4935
5008
|
const swapPayer = accounts[3]!
|
|
4936
|
-
const brokePayer = accounts[4]!
|
|
4937
5009
|
|
|
4938
5010
|
beforeAll(async () => {
|
|
4939
5011
|
// Fund swap payer with pathUsd only
|
|
4940
5012
|
await fundAccount({ address: swapPayer.address, token: Addresses.pathUsd as Hex.Hex })
|
|
4941
5013
|
|
|
4942
5014
|
// Seed DEX liquidity: create pair, then place a sell order for `asset`.
|
|
4943
|
-
await Actions.dex
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
|
|
5015
|
+
await Actions.dex
|
|
5016
|
+
.createPair(client, {
|
|
5017
|
+
account: accounts[0]!,
|
|
5018
|
+
base: asset,
|
|
5019
|
+
})
|
|
5020
|
+
.catch((error) => {
|
|
5021
|
+
if (!isPairAlreadyExistsError(error)) throw error
|
|
5022
|
+
})
|
|
4947
5023
|
await fundAccount({ address: accounts[0]!.address, token: asset })
|
|
4948
5024
|
await Actions.token.approveSync(client, {
|
|
4949
5025
|
account: accounts[0]!,
|
|
@@ -5171,6 +5247,7 @@ describe('tempo', () => {
|
|
|
5171
5247
|
})
|
|
5172
5248
|
|
|
5173
5249
|
test('error: throws when no fallback currency has sufficient balance', async () => {
|
|
5250
|
+
const brokePayer = testAccount()
|
|
5174
5251
|
const mppx = Mppx_client.create({
|
|
5175
5252
|
polyfill: false,
|
|
5176
5253
|
methods: [
|
|
@@ -5234,6 +5311,7 @@ describe('tempo', () => {
|
|
|
5234
5311
|
|
|
5235
5312
|
test('error: throws when tokenIn list has no viable candidates', async () => {
|
|
5236
5313
|
const bogusToken = '0x0000000000000000000000000000000000099999' as const
|
|
5314
|
+
const brokePayer = testAccount()
|
|
5237
5315
|
|
|
5238
5316
|
const mppx = Mppx_client.create({
|
|
5239
5317
|
polyfill: false,
|
|
@@ -400,35 +400,39 @@ export function charge<const parameters extends charge.Parameters>(
|
|
|
400
400
|
)
|
|
401
401
|
}
|
|
402
402
|
|
|
403
|
-
const
|
|
404
|
-
|
|
403
|
+
const allowedFeeTokens = FeePayer.defaultAllowedFeeTokens(chainId)
|
|
404
|
+
if (isFeePayerTx) FeePayer.assertAllowedFeeToken(transaction, allowedFeeTokens)
|
|
405
405
|
|
|
406
406
|
const serializedTransaction_final = await (async () => {
|
|
407
407
|
if (feePayerAccount && methodDetails?.feePayer !== false) {
|
|
408
408
|
const sponsored = FeePayer.prepareSponsoredTransaction({
|
|
409
409
|
account: feePayerAccount,
|
|
410
|
+
allowedFeeTokens,
|
|
410
411
|
challengeExpires: expires,
|
|
411
412
|
chainId: chainId ?? client.chain!.id,
|
|
412
413
|
details: { amount, currency, recipient },
|
|
413
|
-
expectedFeeToken,
|
|
414
414
|
policy: feePayerPolicy,
|
|
415
415
|
transaction: {
|
|
416
416
|
...transaction,
|
|
417
|
-
|
|
417
|
+
feeToken: transaction.feeToken ?? defaults.tokens.pathUsd,
|
|
418
418
|
},
|
|
419
419
|
})
|
|
420
420
|
return signTransaction(client, sponsored as never)
|
|
421
421
|
}
|
|
422
|
+
if (feePayerUrl && isFeePayerTx)
|
|
423
|
+
return FeePayer.fillHostedFeePayerTransaction({
|
|
424
|
+
allowedFeeTokens,
|
|
425
|
+
transaction,
|
|
426
|
+
url: feePayerUrl,
|
|
427
|
+
})
|
|
422
428
|
return serializedTransaction
|
|
423
429
|
})()
|
|
424
430
|
|
|
425
431
|
if (waitForConfirmation) {
|
|
426
|
-
await viem_call(
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
feePayerSignature: undefined,
|
|
431
|
-
} as never)
|
|
432
|
+
await viem_call(
|
|
433
|
+
client,
|
|
434
|
+
FeePayer.simulationTransaction(transaction, { feePayer: isFeePayerTx }),
|
|
435
|
+
)
|
|
432
436
|
const receipt = await sendRawTransactionSync(client, {
|
|
433
437
|
serializedTransaction: serializedTransaction_final,
|
|
434
438
|
})
|
|
@@ -461,12 +465,10 @@ export function charge<const parameters extends charge.Parameters>(
|
|
|
461
465
|
// Optimistic path: simulate to catch obvious reverts, then broadcast
|
|
462
466
|
// without waiting for on-chain confirmation. The returned receipt
|
|
463
467
|
// assumes success — callers opt into this risk via waitForConfirmation: false.
|
|
464
|
-
await viem_call(
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
feePayerSignature: undefined,
|
|
469
|
-
} as never)
|
|
468
|
+
await viem_call(
|
|
469
|
+
client,
|
|
470
|
+
FeePayer.simulationTransaction(transaction, { feePayer: isFeePayerTx }),
|
|
471
|
+
)
|
|
470
472
|
const reference = await sendRawTransaction(client, {
|
|
471
473
|
serializedTransaction: serializedTransaction_final,
|
|
472
474
|
})
|
|
@@ -1,8 +1,53 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { session as sessionLegacy_, settle as settleLegacy_ } from '../legacy/server/index.js'
|
|
2
|
+
import {
|
|
3
|
+
charge as sessionCharge_,
|
|
4
|
+
session as session_,
|
|
5
|
+
settle as settle_,
|
|
6
|
+
settleBatch as settleBatch_,
|
|
7
|
+
} from '../session/server/Session.js'
|
|
8
|
+
import * as Ws_ from '../session/server/Ws.js'
|
|
2
9
|
import { charge as charge_ } from './Charge.js'
|
|
3
|
-
import { session as session_, settle as settle_ } from './Session.js'
|
|
4
10
|
import { renew as renewSubscription_, subscription as subscription_ } from './Subscription.js'
|
|
5
11
|
|
|
12
|
+
const sessionServer = Object.assign(session_, {
|
|
13
|
+
charge: sessionCharge_,
|
|
14
|
+
settle: settle_,
|
|
15
|
+
settleBatch: settleBatch_,
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
function createSessionLegacyMethod<
|
|
19
|
+
const parameters extends NonNullable<Parameters<typeof sessionLegacy_>[0]>,
|
|
20
|
+
>(parameters?: parameters) {
|
|
21
|
+
return Object.assign(sessionLegacy_(parameters as never), { alias: 'sessionLegacy' as const })
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const sessionLegacyServer = Object.assign(createSessionLegacyMethod, {
|
|
25
|
+
settle: settleLegacy_,
|
|
26
|
+
Ws: Ws_,
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
/** Creates a legacy contract-backed Tempo `session` server method. */
|
|
30
|
+
export const sessionLegacy = sessionLegacyServer
|
|
31
|
+
|
|
32
|
+
/** Settles a legacy contract-backed Tempo session channel. */
|
|
33
|
+
export const settleLegacy = settleLegacy_
|
|
34
|
+
|
|
35
|
+
function createChargeMethod<const parameters extends tempo.Parameters>(
|
|
36
|
+
parameters: parameters | undefined,
|
|
37
|
+
) {
|
|
38
|
+
// `tempo()` accepts the intersection of charge/session parameters, then
|
|
39
|
+
// forwards only the fields each method understands. Keep the generic bridge
|
|
40
|
+
// out of the public control-flow body.
|
|
41
|
+
return tempo.charge(parameters as charge_.Parameters)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function createSessionMethod<const parameters extends tempo.Parameters>(
|
|
45
|
+
parameters: parameters | undefined,
|
|
46
|
+
) {
|
|
47
|
+
// See `createChargeMethod()`: session receives the same shared parameter bag.
|
|
48
|
+
return sessionServer(parameters as session_.Parameters)
|
|
49
|
+
}
|
|
50
|
+
|
|
6
51
|
/**
|
|
7
52
|
* Creates both Tempo `charge` and `session` methods from shared parameters.
|
|
8
53
|
*
|
|
@@ -16,10 +61,7 @@ import { renew as renewSubscription_, subscription as subscription_ } from './Su
|
|
|
16
61
|
* ```
|
|
17
62
|
*/
|
|
18
63
|
export function tempo<const parameters extends tempo.Parameters>(parameters?: parameters) {
|
|
19
|
-
return [
|
|
20
|
-
tempo.charge(parameters as charge_.Parameters as never),
|
|
21
|
-
tempo.session(parameters as session_.Parameters as never),
|
|
22
|
-
] as const
|
|
64
|
+
return [createChargeMethod(parameters), createSessionMethod(parameters)] as const
|
|
23
65
|
}
|
|
24
66
|
|
|
25
67
|
export namespace tempo {
|
|
@@ -27,14 +69,18 @@ export namespace tempo {
|
|
|
27
69
|
|
|
28
70
|
/** Creates a Tempo `charge` method for one-time TIP-20 token transfers. */
|
|
29
71
|
export const charge = charge_
|
|
30
|
-
/** Creates a Tempo `session` method for session-based TIP-20 token payments. */
|
|
31
|
-
export const session =
|
|
72
|
+
/** Creates a TIP-1034 Tempo `session` method for session-based TIP-20 token payments. */
|
|
73
|
+
export const session = sessionServer
|
|
74
|
+
/** @deprecated Use `tempo.session()` for the TIP-1034 session server method. */
|
|
75
|
+
export const sessionLegacy = sessionLegacyServer
|
|
32
76
|
/** Creates a Tempo `subscription` method for recurring TIP-20 token payments. */
|
|
33
77
|
export const subscription = subscription_
|
|
34
78
|
/** Renews an overdue Tempo subscription outside of the HTTP request path. */
|
|
35
79
|
export const renewSubscription = renewSubscription_
|
|
36
80
|
/** One-shot settle: reads highest voucher from storage and submits on-chain. */
|
|
37
81
|
export const settle = settle_
|
|
82
|
+
/** Batch-settle precompile-backed session channels. */
|
|
83
|
+
export const settleBatch = settleBatch_
|
|
38
84
|
/** Experimental websocket helpers for Tempo sessions. */
|
|
39
85
|
export const Ws = Ws_
|
|
40
86
|
}
|
|
@@ -2,8 +2,8 @@ import type { Address, Hex } from 'viem'
|
|
|
2
2
|
import { describe, expect, test } from 'vp/test'
|
|
3
3
|
|
|
4
4
|
import { chainId, escrowContract as escrowContractDefaults } from '../internal/defaults.js'
|
|
5
|
-
import type * as ChannelStore from '../session/ChannelStore.js'
|
|
6
|
-
import { serve, toResponse } from '../session/Sse.js'
|
|
5
|
+
import type * as ChannelStore from '../session/server/ChannelStore.js'
|
|
6
|
+
import { serve, toResponse } from '../session/server/Sse.js'
|
|
7
7
|
|
|
8
8
|
const channelId = '0x0000000000000000000000000000000000000000000000000000000000000001' as Hex
|
|
9
9
|
const challengeId = 'test-challenge-id'
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export * as ChannelStore from '../session/ChannelStore.js'
|
|
2
|
-
export * as Sse from '../session/Sse.js'
|
|
3
|
-
export * as Ws from '../session/Ws.js'
|
|
1
|
+
export * as ChannelStore from '../session/server/ChannelStore.js'
|
|
2
|
+
export * as Sse from '../session/server/Sse.js'
|
|
3
|
+
export * as Ws from '../session/server/Ws.js'
|
|
4
4
|
export { charge } from './Charge.js'
|
|
5
|
-
export { tempo } from './Methods.js'
|
|
6
|
-
export { session, settle } from '
|
|
5
|
+
export { sessionLegacy, settleLegacy, tempo } from './Methods.js'
|
|
6
|
+
export { session, settle, settleBatch } from '../session/server/Session.js'
|
|
7
|
+
export type { SettlementSchedule } from '../session/server/Session.js'
|
|
7
8
|
export { renew as renewSubscription, subscription } from './Subscription.js'
|