mppx 0.0.1 → 0.1.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/LICENSE +21 -0
- package/README.md +195 -0
- package/dist/BodyDigest.d.ts +42 -0
- package/dist/BodyDigest.d.ts.map +1 -0
- package/dist/BodyDigest.js +40 -0
- package/dist/BodyDigest.js.map +1 -0
- package/dist/Challenge.d.ts +271 -0
- package/dist/Challenge.d.ts.map +1 -0
- package/dist/Challenge.js +291 -0
- package/dist/Challenge.js.map +1 -0
- package/dist/Credential.d.ts +91 -0
- package/dist/Credential.d.ts.map +1 -0
- package/dist/Credential.js +122 -0
- package/dist/Credential.js.map +1 -0
- package/dist/Errors.d.ts +243 -0
- package/dist/Errors.d.ts.map +1 -0
- package/dist/Errors.js +201 -0
- package/dist/Errors.js.map +1 -0
- package/dist/Expires.d.ts +15 -0
- package/dist/Expires.d.ts.map +1 -0
- package/dist/Expires.js +29 -0
- package/dist/Expires.js.map +1 -0
- package/dist/Intent.d.ts +101 -0
- package/dist/Intent.d.ts.map +1 -0
- package/dist/Intent.js +83 -0
- package/dist/Intent.js.map +1 -0
- package/dist/Mcp.d.ts +74 -0
- package/dist/Mcp.d.ts.map +1 -0
- package/dist/Mcp.js +9 -0
- package/dist/Mcp.js.map +1 -0
- package/dist/MethodIntent.d.ts +225 -0
- package/dist/MethodIntent.d.ts.map +1 -0
- package/dist/MethodIntent.js +156 -0
- package/dist/MethodIntent.js.map +1 -0
- package/dist/PaymentRequest.d.ts +88 -0
- package/dist/PaymentRequest.d.ts.map +1 -0
- package/dist/PaymentRequest.js +81 -0
- package/dist/PaymentRequest.js.map +1 -0
- package/dist/Receipt.d.ts +110 -0
- package/dist/Receipt.d.ts.map +1 -0
- package/dist/Receipt.js +105 -0
- package/dist/Receipt.js.map +1 -0
- package/dist/Store.d.ts +28 -0
- package/dist/Store.d.ts.map +1 -0
- package/dist/Store.js +61 -0
- package/dist/Store.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1219 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/Methods.d.ts +4 -0
- package/dist/client/Methods.d.ts.map +1 -0
- package/dist/client/Methods.js +4 -0
- package/dist/client/Methods.js.map +1 -0
- package/dist/client/Mppx.d.ts +84 -0
- package/dist/client/Mppx.d.ts.map +1 -0
- package/dist/client/Mppx.js +64 -0
- package/dist/client/Mppx.js.map +1 -0
- package/dist/client/Transport.d.ts +56 -0
- package/dist/client/Transport.d.ts.map +1 -0
- package/dist/client/Transport.js +81 -0
- package/dist/client/Transport.js.map +1 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/internal/Fetch.d.ts +85 -0
- package/dist/client/internal/Fetch.d.ts.map +1 -0
- package/dist/client/internal/Fetch.js +95 -0
- package/dist/client/internal/Fetch.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/types.d.ts +302 -0
- package/dist/internal/types.d.ts.map +1 -0
- package/dist/internal/types.js +2 -0
- package/dist/internal/types.js.map +1 -0
- package/dist/mcp-sdk/client/McpClient.d.ts +78 -0
- package/dist/mcp-sdk/client/McpClient.d.ts.map +1 -0
- package/dist/mcp-sdk/client/McpClient.js +98 -0
- package/dist/mcp-sdk/client/McpClient.js.map +1 -0
- package/dist/mcp-sdk/client/index.d.ts +3 -0
- package/dist/mcp-sdk/client/index.d.ts.map +1 -0
- package/dist/mcp-sdk/client/index.js +3 -0
- package/dist/mcp-sdk/client/index.js.map +1 -0
- package/dist/mcp-sdk/server/Transport.d.ts +43 -0
- package/dist/mcp-sdk/server/Transport.d.ts.map +1 -0
- package/dist/mcp-sdk/server/Transport.js +71 -0
- package/dist/mcp-sdk/server/Transport.js.map +1 -0
- package/dist/mcp-sdk/server/index.d.ts +2 -0
- package/dist/mcp-sdk/server/index.d.ts.map +1 -0
- package/dist/mcp-sdk/server/index.js +2 -0
- package/dist/mcp-sdk/server/index.js.map +1 -0
- package/dist/middlewares/elysia.d.ts +51 -0
- package/dist/middlewares/elysia.d.ts.map +1 -0
- package/dist/middlewares/elysia.js +59 -0
- package/dist/middlewares/elysia.js.map +1 -0
- package/dist/middlewares/express.d.ts +46 -0
- package/dist/middlewares/express.d.ts.map +1 -0
- package/dist/middlewares/express.js +69 -0
- package/dist/middlewares/express.js.map +1 -0
- package/dist/middlewares/hono.d.ts +46 -0
- package/dist/middlewares/hono.d.ts.map +1 -0
- package/dist/middlewares/hono.js +57 -0
- package/dist/middlewares/hono.js.map +1 -0
- package/dist/middlewares/internal/mppx.d.ts +16 -0
- package/dist/middlewares/internal/mppx.d.ts.map +1 -0
- package/dist/middlewares/internal/mppx.js +16 -0
- package/dist/middlewares/internal/mppx.js.map +1 -0
- package/dist/middlewares/nextjs.d.ts +45 -0
- package/dist/middlewares/nextjs.d.ts.map +1 -0
- package/dist/middlewares/nextjs.js +57 -0
- package/dist/middlewares/nextjs.js.map +1 -0
- package/dist/proxy/Proxy.d.ts +47 -0
- package/dist/proxy/Proxy.d.ts.map +1 -0
- package/dist/proxy/Proxy.js +126 -0
- package/dist/proxy/Proxy.js.map +1 -0
- package/dist/proxy/Service.d.ts +100 -0
- package/dist/proxy/Service.d.ts.map +1 -0
- package/dist/proxy/Service.js +147 -0
- package/dist/proxy/Service.js.map +1 -0
- package/dist/proxy/index.d.ts +7 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +7 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/internal/Headers.d.ts +3 -0
- package/dist/proxy/internal/Headers.d.ts.map +1 -0
- package/dist/proxy/internal/Headers.js +41 -0
- package/dist/proxy/internal/Headers.js.map +1 -0
- package/dist/proxy/internal/Route.d.ts +14 -0
- package/dist/proxy/internal/Route.d.ts.map +1 -0
- package/dist/proxy/internal/Route.js +47 -0
- package/dist/proxy/internal/Route.js.map +1 -0
- package/dist/proxy/services/anthropic.d.ts +29 -0
- package/dist/proxy/services/anthropic.d.ts.map +1 -0
- package/dist/proxy/services/anthropic.js +30 -0
- package/dist/proxy/services/anthropic.js.map +1 -0
- package/dist/proxy/services/openai.d.ts +29 -0
- package/dist/proxy/services/openai.d.ts.map +1 -0
- package/dist/proxy/services/openai.js +30 -0
- package/dist/proxy/services/openai.js.map +1 -0
- package/dist/proxy/services/stripe.d.ts +29 -0
- package/dist/proxy/services/stripe.d.ts.map +1 -0
- package/dist/proxy/services/stripe.js +30 -0
- package/dist/proxy/services/stripe.js.map +1 -0
- package/dist/server/Methods.d.ts +3 -0
- package/dist/server/Methods.d.ts.map +1 -0
- package/dist/server/Methods.js +3 -0
- package/dist/server/Methods.js.map +1 -0
- package/dist/server/Mppx.d.ts +116 -0
- package/dist/server/Mppx.d.ts.map +1 -0
- package/dist/server/Mppx.js +207 -0
- package/dist/server/Mppx.js.map +1 -0
- package/dist/server/NodeListener.d.ts +3 -0
- package/dist/server/NodeListener.d.ts.map +1 -0
- package/dist/server/NodeListener.js +3 -0
- package/dist/server/NodeListener.js.map +1 -0
- package/dist/server/Request.d.ts +24 -0
- package/dist/server/Request.d.ts.map +1 -0
- package/dist/server/Request.js +26 -0
- package/dist/server/Request.js.map +1 -0
- package/dist/server/Response.d.ts +10 -0
- package/dist/server/Response.d.ts.map +1 -0
- package/dist/server/Response.js +15 -0
- package/dist/server/Response.js.map +1 -0
- package/dist/server/Transport.d.ts +93 -0
- package/dist/server/Transport.d.ts.map +1 -0
- package/dist/server/Transport.js +132 -0
- package/dist/server/Transport.js.map +1 -0
- package/dist/server/index.d.ts +9 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +9 -0
- package/dist/server/index.js.map +1 -0
- package/dist/stripe/Intents.d.ts +54 -0
- package/dist/stripe/Intents.d.ts.map +1 -0
- package/dist/stripe/Intents.js +27 -0
- package/dist/stripe/Intents.js.map +1 -0
- package/dist/stripe/client/Charge.d.ts +114 -0
- package/dist/stripe/client/Charge.d.ts.map +1 -0
- package/dist/stripe/client/Charge.js +77 -0
- package/dist/stripe/client/Charge.js.map +1 -0
- package/dist/stripe/client/MethodIntents.d.ts +80 -0
- package/dist/stripe/client/MethodIntents.d.ts.map +1 -0
- package/dist/stripe/client/MethodIntents.js +34 -0
- package/dist/stripe/client/MethodIntents.js.map +1 -0
- package/dist/stripe/client/index.d.ts +3 -0
- package/dist/stripe/client/index.d.ts.map +1 -0
- package/dist/stripe/client/index.js +3 -0
- package/dist/stripe/client/index.js.map +1 -0
- package/dist/stripe/index.d.ts +2 -0
- package/dist/stripe/index.d.ts.map +1 -0
- package/dist/stripe/index.js +2 -0
- package/dist/stripe/index.js.map +1 -0
- package/dist/stripe/server/Charge.d.ts +74 -0
- package/dist/stripe/server/Charge.d.ts.map +1 -0
- package/dist/stripe/server/Charge.js +79 -0
- package/dist/stripe/server/Charge.js.map +1 -0
- package/dist/stripe/server/MethodIntents.d.ts +65 -0
- package/dist/stripe/server/MethodIntents.d.ts.map +1 -0
- package/dist/stripe/server/MethodIntents.js +21 -0
- package/dist/stripe/server/MethodIntents.js.map +1 -0
- package/dist/stripe/server/index.d.ts +3 -0
- package/dist/stripe/server/index.d.ts.map +1 -0
- package/dist/stripe/server/index.js +3 -0
- package/dist/stripe/server/index.js.map +1 -0
- package/dist/tempo/Attribution.d.ts +101 -0
- package/dist/tempo/Attribution.d.ts.map +1 -0
- package/dist/tempo/Attribution.js +124 -0
- package/dist/tempo/Attribution.js.map +1 -0
- package/dist/tempo/Intents.d.ts +132 -0
- package/dist/tempo/Intents.d.ts.map +1 -0
- package/dist/tempo/Intents.js +81 -0
- package/dist/tempo/Intents.js.map +1 -0
- package/dist/tempo/client/ChannelOps.d.ts +54 -0
- package/dist/tempo/client/ChannelOps.d.ts.map +1 -0
- package/dist/tempo/client/ChannelOps.js +138 -0
- package/dist/tempo/client/ChannelOps.js.map +1 -0
- package/dist/tempo/client/Charge.d.ts +76 -0
- package/dist/tempo/client/Charge.d.ts.map +1 -0
- package/dist/tempo/client/Charge.js +69 -0
- package/dist/tempo/client/Charge.js.map +1 -0
- package/dist/tempo/client/MethodIntents.d.ts +157 -0
- package/dist/tempo/client/MethodIntents.d.ts.map +1 -0
- package/dist/tempo/client/MethodIntents.js +25 -0
- package/dist/tempo/client/MethodIntents.js.map +1 -0
- package/dist/tempo/client/Session.d.ts +159 -0
- package/dist/tempo/client/Session.d.ts.map +1 -0
- package/dist/tempo/client/Session.js +263 -0
- package/dist/tempo/client/Session.js.map +1 -0
- package/dist/tempo/client/SessionManager.d.ts +62 -0
- package/dist/tempo/client/SessionManager.d.ts.map +1 -0
- package/dist/tempo/client/SessionManager.js +196 -0
- package/dist/tempo/client/SessionManager.js.map +1 -0
- package/dist/tempo/client/index.d.ts +6 -0
- package/dist/tempo/client/index.d.ts.map +1 -0
- package/dist/tempo/client/index.js +5 -0
- package/dist/tempo/client/index.js.map +1 -0
- package/dist/tempo/index.d.ts +3 -0
- package/dist/tempo/index.d.ts.map +1 -0
- package/dist/tempo/index.js +3 -0
- package/dist/tempo/index.js.map +1 -0
- package/dist/tempo/internal/account.d.ts +32 -0
- package/dist/tempo/internal/account.d.ts.map +1 -0
- package/dist/tempo/internal/account.js +33 -0
- package/dist/tempo/internal/account.js.map +1 -0
- package/dist/tempo/internal/defaults.d.ts +18 -0
- package/dist/tempo/internal/defaults.d.ts.map +1 -0
- package/dist/tempo/internal/defaults.js +18 -0
- package/dist/tempo/internal/defaults.js.map +1 -0
- package/dist/tempo/internal/types.d.ts +11 -0
- package/dist/tempo/internal/types.d.ts.map +1 -0
- package/dist/tempo/internal/types.js +2 -0
- package/dist/tempo/internal/types.js.map +1 -0
- package/dist/tempo/server/Charge.d.ts +77 -0
- package/dist/tempo/server/Charge.d.ts.map +1 -0
- package/dist/tempo/server/Charge.js +228 -0
- package/dist/tempo/server/Charge.js.map +1 -0
- package/dist/tempo/server/MethodIntents.d.ts +140 -0
- package/dist/tempo/server/MethodIntents.d.ts.map +1 -0
- package/dist/tempo/server/MethodIntents.js +26 -0
- package/dist/tempo/server/MethodIntents.js.map +1 -0
- package/dist/tempo/server/Session.d.ts +148 -0
- package/dist/tempo/server/Session.d.ts.map +1 -0
- package/dist/tempo/server/Session.js +529 -0
- package/dist/tempo/server/Session.js.map +1 -0
- package/dist/tempo/server/internal/transport.d.ts +47 -0
- package/dist/tempo/server/internal/transport.d.ts.map +1 -0
- package/dist/tempo/server/internal/transport.js +118 -0
- package/dist/tempo/server/internal/transport.js.map +1 -0
- package/dist/tempo/stream/Chain.d.ts +52 -0
- package/dist/tempo/stream/Chain.d.ts.map +1 -0
- package/dist/tempo/stream/Chain.js +215 -0
- package/dist/tempo/stream/Chain.js.map +1 -0
- package/dist/tempo/stream/Channel.d.ts +26 -0
- package/dist/tempo/stream/Channel.d.ts.map +1 -0
- package/dist/tempo/stream/Channel.js +27 -0
- package/dist/tempo/stream/Channel.js.map +1 -0
- package/dist/tempo/stream/ChannelStore.d.ts +103 -0
- package/dist/tempo/stream/ChannelStore.d.ts.map +1 -0
- package/dist/tempo/stream/ChannelStore.js +100 -0
- package/dist/tempo/stream/ChannelStore.js.map +1 -0
- package/dist/tempo/stream/Receipt.d.ts +22 -0
- package/dist/tempo/stream/Receipt.d.ts.map +1 -0
- package/dist/tempo/stream/Receipt.js +34 -0
- package/dist/tempo/stream/Receipt.js.map +1 -0
- package/dist/tempo/stream/Sse.d.ts +134 -0
- package/dist/tempo/stream/Sse.d.ts.map +1 -0
- package/dist/tempo/stream/Sse.js +288 -0
- package/dist/tempo/stream/Sse.js.map +1 -0
- package/dist/tempo/stream/Types.d.ts +78 -0
- package/dist/tempo/stream/Types.d.ts.map +1 -0
- package/dist/tempo/stream/Types.js +2 -0
- package/dist/tempo/stream/Types.js.map +1 -0
- package/dist/tempo/stream/Voucher.d.ts +20 -0
- package/dist/tempo/stream/Voucher.d.ts.map +1 -0
- package/dist/tempo/stream/Voucher.js +98 -0
- package/dist/tempo/stream/Voucher.js.map +1 -0
- package/dist/tempo/stream/escrow.abi.d.ts +598 -0
- package/dist/tempo/stream/escrow.abi.d.ts.map +1 -0
- package/dist/tempo/stream/escrow.abi.js +760 -0
- package/dist/tempo/stream/escrow.abi.js.map +1 -0
- package/dist/tempo/stream/index.d.ts +8 -0
- package/dist/tempo/stream/index.d.ts.map +1 -0
- package/dist/tempo/stream/index.js +8 -0
- package/dist/tempo/stream/index.js.map +1 -0
- package/dist/viem/Account.d.ts +12 -0
- package/dist/viem/Account.d.ts.map +1 -0
- package/dist/viem/Account.js +14 -0
- package/dist/viem/Account.js.map +1 -0
- package/dist/viem/Client.d.ts +21 -0
- package/dist/viem/Client.d.ts.map +1 -0
- package/dist/viem/Client.js +19 -0
- package/dist/viem/Client.js.map +1 -0
- package/dist/zod.d.ts +17 -0
- package/dist/zod.d.ts.map +1 -0
- package/dist/zod.js +35 -0
- package/dist/zod.js.map +1 -0
- package/package.json +117 -4
- package/src/BodyDigest.test.ts +43 -0
- package/src/BodyDigest.ts +53 -0
- package/src/Challenge.test-d.ts +81 -0
- package/src/Challenge.test.ts +414 -0
- package/src/Challenge.ts +429 -0
- package/src/Credential.test.ts +227 -0
- package/src/Credential.ts +154 -0
- package/src/Errors.test.ts +402 -0
- package/src/Errors.ts +348 -0
- package/src/Expires.ts +34 -0
- package/src/Intent.test.ts +180 -0
- package/src/Intent.ts +109 -0
- package/src/Mcp.ts +81 -0
- package/src/MethodIntent.test.ts +303 -0
- package/src/MethodIntent.ts +388 -0
- package/src/PaymentRequest.test.ts +152 -0
- package/src/PaymentRequest.ts +107 -0
- package/src/Receipt.test.ts +98 -0
- package/src/Receipt.ts +129 -0
- package/src/Store.ts +84 -0
- package/src/cli.test.ts +542 -0
- package/src/cli.ts +1319 -0
- package/src/client/Methods.ts +3 -0
- package/src/client/Mppx.test-d.ts +90 -0
- package/src/client/Mppx.test.ts +468 -0
- package/src/client/Mppx.ts +149 -0
- package/src/client/Transport.test.ts +283 -0
- package/src/client/Transport.ts +115 -0
- package/src/client/index.ts +4 -0
- package/src/client/internal/Fetch.test-d.ts +57 -0
- package/src/client/internal/Fetch.test.ts +281 -0
- package/src/client/internal/Fetch.ts +157 -0
- package/src/env.d.ts +11 -0
- package/src/index.ts +12 -0
- package/src/internal/types.ts +403 -0
- package/src/mcp-sdk/client/McpClient.test-d.ts +109 -0
- package/src/mcp-sdk/client/McpClient.test.ts +219 -0
- package/src/mcp-sdk/client/McpClient.ts +187 -0
- package/src/mcp-sdk/client/index.ts +2 -0
- package/src/mcp-sdk/server/Transport.ts +94 -0
- package/src/mcp-sdk/server/index.ts +1 -0
- package/src/middlewares/elysia.ts +66 -0
- package/src/middlewares/express.test.ts +155 -0
- package/src/middlewares/express.ts +82 -0
- package/src/middlewares/hono.test.ts +148 -0
- package/src/middlewares/hono.ts +62 -0
- package/src/middlewares/internal/mppx.ts +30 -0
- package/src/middlewares/nextjs.test.ts +164 -0
- package/src/middlewares/nextjs.ts +66 -0
- package/src/proxy/Proxy.test.ts +472 -0
- package/src/proxy/Proxy.ts +175 -0
- package/src/proxy/Service.test.ts +125 -0
- package/src/proxy/Service.ts +227 -0
- package/src/proxy/index.ts +6 -0
- package/src/proxy/internal/Headers.test.ts +100 -0
- package/src/proxy/internal/Headers.ts +40 -0
- package/src/proxy/internal/Route.test.ts +143 -0
- package/src/proxy/internal/Route.ts +54 -0
- package/src/proxy/services/anthropic.ts +45 -0
- package/src/proxy/services/openai.test.ts +97 -0
- package/src/proxy/services/openai.ts +48 -0
- package/src/proxy/services/stripe.ts +49 -0
- package/src/server/Methods.ts +2 -0
- package/src/server/Mppx.test-d.ts +343 -0
- package/src/server/Mppx.test.ts +342 -0
- package/src/server/Mppx.ts +378 -0
- package/src/server/NodeListener.test.ts +188 -0
- package/src/server/NodeListener.ts +3 -0
- package/src/server/Request.test.ts +102 -0
- package/src/server/Request.ts +33 -0
- package/src/server/Response.test.ts +31 -0
- package/src/server/Response.ts +27 -0
- package/src/server/Transport.test.ts +294 -0
- package/src/server/Transport.ts +222 -0
- package/src/server/index.ts +8 -0
- package/src/stripe/Charge.integration.test.ts +326 -0
- package/src/stripe/Intents.test.ts +52 -0
- package/src/stripe/Intents.ts +27 -0
- package/src/stripe/client/Charge.ts +119 -0
- package/src/stripe/client/MethodIntents.ts +37 -0
- package/src/stripe/client/index.ts +2 -0
- package/src/stripe/index.ts +1 -0
- package/src/stripe/server/Charge.ts +121 -0
- package/src/stripe/server/MethodIntents.ts +24 -0
- package/src/stripe/server/index.ts +2 -0
- package/src/tempo/Attribution.test.ts +187 -0
- package/src/tempo/Attribution.ts +156 -0
- package/src/tempo/Intents.test.ts +84 -0
- package/src/tempo/Intents.ts +93 -0
- package/src/tempo/client/ChannelOps.ts +233 -0
- package/src/tempo/client/Charge.ts +84 -0
- package/src/tempo/client/MethodIntents.ts +28 -0
- package/src/tempo/client/Session.ts +369 -0
- package/src/tempo/client/SessionManager.test.ts +223 -0
- package/src/tempo/client/SessionManager.ts +270 -0
- package/src/tempo/client/index.ts +5 -0
- package/src/tempo/index.ts +2 -0
- package/src/tempo/internal/account.ts +47 -0
- package/src/tempo/internal/defaults.ts +20 -0
- package/src/tempo/internal/types.ts +8 -0
- package/src/tempo/server/Charge.test.ts +847 -0
- package/src/tempo/server/Charge.ts +309 -0
- package/src/tempo/server/MethodIntents.ts +29 -0
- package/src/tempo/server/Session.test.ts +1349 -0
- package/src/tempo/server/Session.ts +773 -0
- package/src/tempo/server/Sse.test.ts +289 -0
- package/src/tempo/server/index.ts +5 -0
- package/src/tempo/server/internal/transport.ts +153 -0
- package/src/tempo/stream/Chain.ts +333 -0
- package/src/tempo/stream/Channel.ts +50 -0
- package/src/tempo/stream/ChannelStore.test.ts +473 -0
- package/src/tempo/stream/ChannelStore.ts +202 -0
- package/src/tempo/stream/Receipt.test.ts +84 -0
- package/src/tempo/stream/Receipt.ts +45 -0
- package/src/tempo/stream/Sse.test.ts +401 -0
- package/src/tempo/stream/Sse.ts +375 -0
- package/src/tempo/stream/Types.ts +86 -0
- package/src/tempo/stream/Voucher.test.ts +134 -0
- package/src/tempo/stream/Voucher.ts +123 -0
- package/src/tempo/stream/escrow.abi.ts +759 -0
- package/src/tempo/stream/index.ts +7 -0
- package/src/tsconfig.json +10 -0
- package/src/viem/Account.test.ts +71 -0
- package/src/viem/Account.ts +30 -0
- package/src/viem/Client.test.ts +58 -0
- package/src/viem/Client.ts +33 -0
- package/src/zod.ts +47 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { charge as charge_ } from './Charge.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Stripe `charge` client method intent.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { Mppx, stripe } from 'mppx/client'
|
|
8
|
+
*
|
|
9
|
+
* const mppx = Mppx.create({
|
|
10
|
+
* methods: [
|
|
11
|
+
* stripe({
|
|
12
|
+
* createSpt: async (params) => {
|
|
13
|
+
* const res = await fetch('/api/create-spt', {
|
|
14
|
+
* method: 'POST',
|
|
15
|
+
* headers: { 'Content-Type': 'application/json' },
|
|
16
|
+
* body: JSON.stringify(params),
|
|
17
|
+
* })
|
|
18
|
+
* const { spt } = await res.json()
|
|
19
|
+
* return spt
|
|
20
|
+
* },
|
|
21
|
+
* paymentMethod: 'pm_card_visa',
|
|
22
|
+
* }),
|
|
23
|
+
* ],
|
|
24
|
+
* })
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export function stripe(parameters) {
|
|
28
|
+
return [charge_(parameters)];
|
|
29
|
+
}
|
|
30
|
+
(function (stripe) {
|
|
31
|
+
/** Creates a Stripe `charge` client method intent for SPT-based payments. */
|
|
32
|
+
stripe.charge = charge_;
|
|
33
|
+
})(stripe || (stripe = {}));
|
|
34
|
+
//# sourceMappingURL=MethodIntents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodIntents.js","sourceRoot":"","sources":["../../../src/stripe/client/MethodIntents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,MAAM,CAAC,UAA6B;IAClD,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAU,CAAA;AACvC,CAAC;AAED,WAAiB,MAAM;IAGrB,6EAA6E;IAChE,aAAM,GAAG,OAAO,CAAA;AAC/B,CAAC,EALgB,MAAM,KAAN,MAAM,QAKtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stripe/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stripe/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stripe/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stripe/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { LooseOmit } from '../../internal/types.js';
|
|
2
|
+
import * as MethodIntent from '../../MethodIntent.js';
|
|
3
|
+
import * as Intents from '../Intents.js';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Stripe charge method intent for usage on the server.
|
|
6
|
+
*
|
|
7
|
+
* Verifies payment by creating a Stripe PaymentIntent with the provided SPT.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { stripe } from 'mppx/server'
|
|
12
|
+
*
|
|
13
|
+
* const charge = stripe.charge({ secretKey: 'sk_...' })
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function charge<const parameters extends charge.Parameters>(parameters: parameters): MethodIntent.Server<MethodIntent.MethodIntent<{
|
|
17
|
+
readonly name: "charge";
|
|
18
|
+
readonly schema: {
|
|
19
|
+
readonly request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
|
|
20
|
+
amount: import("zod/mini").ZodMiniString<string>;
|
|
21
|
+
currency: import("zod/mini").ZodMiniString<string>;
|
|
22
|
+
decimals: import("zod/mini").ZodMiniNumber<number>;
|
|
23
|
+
description: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
24
|
+
expires: import("zod/mini").ZodMiniDefault<import("zod/mini").ZodMiniString<string>>;
|
|
25
|
+
externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
26
|
+
recipient: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
27
|
+
}, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniTransform<{
|
|
28
|
+
amount: string;
|
|
29
|
+
currency: string;
|
|
30
|
+
expires: string;
|
|
31
|
+
description?: string | undefined;
|
|
32
|
+
externalId?: string | undefined;
|
|
33
|
+
recipient?: string | undefined;
|
|
34
|
+
}, {
|
|
35
|
+
amount: string;
|
|
36
|
+
currency: string;
|
|
37
|
+
decimals: number;
|
|
38
|
+
expires: string;
|
|
39
|
+
description?: string | undefined;
|
|
40
|
+
externalId?: string | undefined;
|
|
41
|
+
recipient?: string | undefined;
|
|
42
|
+
}>>;
|
|
43
|
+
};
|
|
44
|
+
}, {
|
|
45
|
+
readonly method: "stripe";
|
|
46
|
+
readonly schema: {
|
|
47
|
+
readonly credential: {
|
|
48
|
+
readonly payload: import("zod/mini").ZodMiniObject<{
|
|
49
|
+
spt: import("zod/mini").ZodMiniString<string>;
|
|
50
|
+
externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
51
|
+
}, import("zod/v4/core").$strip>;
|
|
52
|
+
};
|
|
53
|
+
readonly request: {
|
|
54
|
+
readonly methodDetails: import("zod/mini").ZodMiniObject<{
|
|
55
|
+
networkId: import("zod/mini").ZodMiniString<string>;
|
|
56
|
+
paymentMethodTypes: import("zod/mini").ZodMiniArray<import("zod/mini").ZodMiniString<string>>;
|
|
57
|
+
metadata: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniRecord<import("zod/mini").ZodMiniString<string>, import("zod/mini").ZodMiniString<string>>>;
|
|
58
|
+
}, import("zod/v4/core").$strip>;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
}>, charge.DeriveDefaults<parameters>, undefined>;
|
|
62
|
+
export declare namespace charge {
|
|
63
|
+
type Defaults = LooseOmit<MethodIntent.RequestDefaults<typeof Intents.charge>, 'recipient'>;
|
|
64
|
+
type Parameters = {
|
|
65
|
+
/** Stripe secret API key. */
|
|
66
|
+
secretKey: string;
|
|
67
|
+
/** Optional metadata to include in SPT creation requests. */
|
|
68
|
+
metadata?: Record<string, string> | undefined;
|
|
69
|
+
} & Defaults;
|
|
70
|
+
type DeriveDefaults<parameters extends Parameters> = Pick<parameters, Extract<keyof parameters, keyof Defaults>> & {
|
|
71
|
+
decimals: number;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=Charge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAmFxF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAA;IAE3F,KAAK,UAAU,GAAG;QAChB,6BAA6B;QAC7B,SAAS,EAAE,MAAM,CAAA;QACjB,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAC9C,GAAG,QAAQ,CAAA;IAEZ,KAAK,cAAc,CAAC,UAAU,SAAS,UAAU,IAAI,IAAI,CACvD,UAAU,EACV,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,QAAQ,CAAC,CAC1C,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CACzB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { PaymentActionRequiredError, PaymentExpiredError, VerificationFailedError, } from '../../Errors.js';
|
|
2
|
+
import * as MethodIntent from '../../MethodIntent.js';
|
|
3
|
+
import * as Intents from '../Intents.js';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Stripe charge method intent for usage on the server.
|
|
6
|
+
*
|
|
7
|
+
* Verifies payment by creating a Stripe PaymentIntent with the provided SPT.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { stripe } from 'mppx/server'
|
|
12
|
+
*
|
|
13
|
+
* const charge = stripe.charge({ secretKey: 'sk_...' })
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export function charge(parameters) {
|
|
17
|
+
const { amount, currency, decimals, description, externalId, metadata, networkId, paymentMethodTypes, secretKey, } = parameters;
|
|
18
|
+
return MethodIntent.toServer(Intents.charge, {
|
|
19
|
+
defaults: {
|
|
20
|
+
amount,
|
|
21
|
+
currency,
|
|
22
|
+
decimals,
|
|
23
|
+
description,
|
|
24
|
+
externalId,
|
|
25
|
+
metadata,
|
|
26
|
+
networkId,
|
|
27
|
+
paymentMethodTypes,
|
|
28
|
+
},
|
|
29
|
+
async verify({ credential }) {
|
|
30
|
+
const { challenge } = credential;
|
|
31
|
+
const { request } = challenge;
|
|
32
|
+
if (request.expires && new Date(request.expires) < new Date())
|
|
33
|
+
throw new PaymentExpiredError({ expires: request.expires });
|
|
34
|
+
const parsed = Intents.charge.schema.credential.payload.safeParse(credential.payload);
|
|
35
|
+
if (!parsed.success)
|
|
36
|
+
throw new Error('Invalid credential payload: missing or malformed spt');
|
|
37
|
+
const { spt, externalId: credentialExternalId } = parsed.data;
|
|
38
|
+
const body = new URLSearchParams({
|
|
39
|
+
amount: request.amount,
|
|
40
|
+
currency: request.currency,
|
|
41
|
+
shared_payment_granted_token: spt,
|
|
42
|
+
confirm: 'true',
|
|
43
|
+
'automatic_payment_methods[enabled]': 'true',
|
|
44
|
+
'automatic_payment_methods[allow_redirects]': 'never',
|
|
45
|
+
});
|
|
46
|
+
const resolvedMetadata = request.methodDetails?.metadata;
|
|
47
|
+
if (resolvedMetadata) {
|
|
48
|
+
for (const [key, value] of Object.entries(resolvedMetadata)) {
|
|
49
|
+
body.set(`metadata[${key}]`, value);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const response = await fetch('https://api.stripe.com/v1/payment_intents', {
|
|
53
|
+
method: 'POST',
|
|
54
|
+
headers: {
|
|
55
|
+
Authorization: `Basic ${btoa(`${secretKey}:`)}`,
|
|
56
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
57
|
+
'Idempotency-Key': `mppx_${challenge.id}_${spt}`,
|
|
58
|
+
},
|
|
59
|
+
body,
|
|
60
|
+
});
|
|
61
|
+
if (!response.ok)
|
|
62
|
+
throw new VerificationFailedError({ reason: 'Stripe PaymentIntent failed' });
|
|
63
|
+
const pi = (await response.json());
|
|
64
|
+
if (pi.status === 'requires_action') {
|
|
65
|
+
throw new PaymentActionRequiredError({ reason: 'Stripe PaymentIntent requires action' });
|
|
66
|
+
}
|
|
67
|
+
if (pi.status !== 'succeeded')
|
|
68
|
+
throw new Error(`Stripe PaymentIntent status: ${pi.status}`);
|
|
69
|
+
return {
|
|
70
|
+
method: 'stripe',
|
|
71
|
+
status: 'success',
|
|
72
|
+
timestamp: new Date().toISOString(),
|
|
73
|
+
reference: pi.id,
|
|
74
|
+
...(credentialExternalId ? { externalId: credentialExternalId } : {}),
|
|
75
|
+
};
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=Charge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { charge as charge_ } from './Charge.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Stripe `charge` method intent for usage on the server.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { Mppx, stripe } from 'mppx/server'
|
|
8
|
+
*
|
|
9
|
+
* const mppx = Mppx.create({
|
|
10
|
+
* methods: [stripe({ secretKey: 'sk_...' })],
|
|
11
|
+
* })
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function stripe<const parameters extends stripe.Parameters>(parameters: parameters): readonly [import("../../MethodIntent.js").Server<import("../../MethodIntent.js").MethodIntent<{
|
|
15
|
+
readonly name: "charge";
|
|
16
|
+
readonly schema: {
|
|
17
|
+
readonly request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
|
|
18
|
+
amount: import("zod/mini").ZodMiniString<string>;
|
|
19
|
+
currency: import("zod/mini").ZodMiniString<string>;
|
|
20
|
+
decimals: import("zod/mini").ZodMiniNumber<number>;
|
|
21
|
+
description: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
22
|
+
expires: import("zod/mini").ZodMiniDefault<import("zod/mini").ZodMiniString<string>>;
|
|
23
|
+
externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
24
|
+
recipient: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
25
|
+
}, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniTransform<{
|
|
26
|
+
amount: string;
|
|
27
|
+
currency: string;
|
|
28
|
+
expires: string;
|
|
29
|
+
description?: string | undefined;
|
|
30
|
+
externalId?: string | undefined;
|
|
31
|
+
recipient?: string | undefined;
|
|
32
|
+
}, {
|
|
33
|
+
amount: string;
|
|
34
|
+
currency: string;
|
|
35
|
+
decimals: number;
|
|
36
|
+
expires: string;
|
|
37
|
+
description?: string | undefined;
|
|
38
|
+
externalId?: string | undefined;
|
|
39
|
+
recipient?: string | undefined;
|
|
40
|
+
}>>;
|
|
41
|
+
};
|
|
42
|
+
}, {
|
|
43
|
+
readonly method: "stripe";
|
|
44
|
+
readonly schema: {
|
|
45
|
+
readonly credential: {
|
|
46
|
+
readonly payload: import("zod/mini").ZodMiniObject<{
|
|
47
|
+
spt: import("zod/mini").ZodMiniString<string>;
|
|
48
|
+
externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
|
|
49
|
+
}, import("zod/v4/core").$strip>;
|
|
50
|
+
};
|
|
51
|
+
readonly request: {
|
|
52
|
+
readonly methodDetails: import("zod/mini").ZodMiniObject<{
|
|
53
|
+
networkId: import("zod/mini").ZodMiniString<string>;
|
|
54
|
+
paymentMethodTypes: import("zod/mini").ZodMiniArray<import("zod/mini").ZodMiniString<string>>;
|
|
55
|
+
metadata: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniRecord<import("zod/mini").ZodMiniString<string>, import("zod/mini").ZodMiniString<string>>>;
|
|
56
|
+
}, import("zod/v4/core").$strip>;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
}>, charge_.DeriveDefaults<parameters>, undefined>];
|
|
60
|
+
export declare namespace stripe {
|
|
61
|
+
type Parameters = charge_.Parameters;
|
|
62
|
+
/** Creates a Stripe `charge` method intent for SPT-based payments. */
|
|
63
|
+
const charge: typeof charge_;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=MethodIntents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodIntents.d.ts","sourceRoot":"","sources":["../../../src/stripe/server/MethodIntents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAExF;AAED,yBAAiB,MAAM,CAAC;IACtB,KAAY,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IAE3C,sEAAsE;IAC/D,MAAM,MAAM,gBAAU,CAAA;CAC9B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { charge as charge_ } from './Charge.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Stripe `charge` method intent for usage on the server.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { Mppx, stripe } from 'mppx/server'
|
|
8
|
+
*
|
|
9
|
+
* const mppx = Mppx.create({
|
|
10
|
+
* methods: [stripe({ secretKey: 'sk_...' })],
|
|
11
|
+
* })
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export function stripe(parameters) {
|
|
15
|
+
return [stripe.charge(parameters)];
|
|
16
|
+
}
|
|
17
|
+
(function (stripe) {
|
|
18
|
+
/** Creates a Stripe `charge` method intent for SPT-based payments. */
|
|
19
|
+
stripe.charge = charge_;
|
|
20
|
+
})(stripe || (stripe = {}));
|
|
21
|
+
//# sourceMappingURL=MethodIntents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MethodIntents.js","sourceRoot":"","sources":["../../../src/stripe/server/MethodIntents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,MAAM,CAA6C,UAAsB;IACvF,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAU,CAAA;AAC7C,CAAC;AAED,WAAiB,MAAM;IAGrB,sEAAsE;IACzD,aAAM,GAAG,OAAO,CAAA;AAC/B,CAAC,EALgB,MAAM,KAAN,MAAM,QAKtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stripe/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stripe/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MPP attribution memo encoding for TIP-20 `transferWithMemo`.
|
|
3
|
+
*
|
|
4
|
+
* When no user-provided memo is present, the SDK auto-generates an
|
|
5
|
+
* attribution memo so MPP transactions are identifiable on-chain.
|
|
6
|
+
*
|
|
7
|
+
* ## Byte Layout (32 bytes)
|
|
8
|
+
*
|
|
9
|
+
* | Offset | Size | Field |
|
|
10
|
+
* |--------|------|-------------------------------------------|
|
|
11
|
+
* | 0..3 | 4 | TAG = keccak256("mpp")[0..3] |
|
|
12
|
+
* | 4 | 1 | version (0x01) |
|
|
13
|
+
* | 5..14 | 10 | serverId = keccak256(serverId)[0..9] |
|
|
14
|
+
* | 15..24 | 10 | clientId = keccak256(clientId)[0..9] or 0s |
|
|
15
|
+
* | 25..31 | 7 | nonce (random bytes) |
|
|
16
|
+
*
|
|
17
|
+
* The TAG prefix makes MPP transactions trivially distinguishable
|
|
18
|
+
* from arbitrary memos via `TransferWithMemo` event topic filtering.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
/** First 4 bytes of keccak256("mpp") — the on-chain MPP tag. */
|
|
23
|
+
export declare const tag: `0x${string}`;
|
|
24
|
+
/** 10 zero bytes representing an anonymous (no clientId) client. */
|
|
25
|
+
export declare const anonymous: "0x00000000000000000000";
|
|
26
|
+
/**
|
|
27
|
+
* Encodes an MPP attribution memo as a `bytes32` hex string.
|
|
28
|
+
*
|
|
29
|
+
* @param parameters - The serverId (server identity) and optional clientId.
|
|
30
|
+
* @returns A `0x`-prefixed 64-char hex string (32 bytes).
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import * as Attribution from './Attribution.js'
|
|
35
|
+
*
|
|
36
|
+
* const memo = Attribution.encode({ serverId: 'api.example.com', clientId: 'my-app' })
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function encode(parameters: encode.Parameters): `0x${string}`;
|
|
40
|
+
export declare namespace encode {
|
|
41
|
+
type Parameters = {
|
|
42
|
+
/** Server identity used to derive the server fingerprint. */
|
|
43
|
+
serverId: string;
|
|
44
|
+
/** Optional client identity used to derive the client fingerprint. */
|
|
45
|
+
clientId?: string | undefined;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Checks whether a memo was generated by the MPP attribution system.
|
|
50
|
+
*
|
|
51
|
+
* @param memo - A `0x`-prefixed hex string (bytes32).
|
|
52
|
+
* @returns `true` if the memo starts with the MPP tag and version byte.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* import * as Attribution from './Attribution.js'
|
|
57
|
+
*
|
|
58
|
+
* Attribution.isMppMemo(Attribution.encode({ serverId: 'api.example.com' })) // true
|
|
59
|
+
* Attribution.isMppMemo('0x0000...0000') // false
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function isMppMemo(memo: `0x${string}`): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Verifies that a memo's server fingerprint matches the given serverId.
|
|
65
|
+
*
|
|
66
|
+
* Checks TAG, version byte, and that bytes 5–14 equal keccak256(serverId)[0..9].
|
|
67
|
+
*
|
|
68
|
+
* @param memo - A `0x`-prefixed hex string (bytes32).
|
|
69
|
+
* @param serverId - The expected server identity.
|
|
70
|
+
* @returns `true` if the memo has a valid MPP tag and matching server fingerprint.
|
|
71
|
+
*/
|
|
72
|
+
export declare function verifyServer(memo: `0x${string}`, serverId: string): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Decodes an MPP attribution memo into its constituent parts.
|
|
75
|
+
*
|
|
76
|
+
* @param memo - A `0x`-prefixed hex string (bytes32).
|
|
77
|
+
* @returns The decoded fields, or `null` if the memo is not an MPP memo.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* import * as Attribution from './Attribution.js'
|
|
82
|
+
*
|
|
83
|
+
* const memo = Attribution.encode({ serverId: 'api.example.com', clientId: 'my-app' })
|
|
84
|
+
* const decoded = Attribution.decode(memo)
|
|
85
|
+
* // { version: 1, serverFingerprint: '0x...', clientFingerprint: '0x...', nonce: '0x...' }
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare function decode(memo: `0x${string}`): decode.Result | null;
|
|
89
|
+
export declare namespace decode {
|
|
90
|
+
type Result = {
|
|
91
|
+
/** Memo version (currently always 1). */
|
|
92
|
+
version: number;
|
|
93
|
+
/** 10-byte server fingerprint hex (keccak256(serverId)[0..9]). */
|
|
94
|
+
serverFingerprint: `0x${string}`;
|
|
95
|
+
/** 10-byte client fingerprint hex, or `null` if anonymous. */
|
|
96
|
+
clientFingerprint: `0x${string}` | null;
|
|
97
|
+
/** 7-byte random nonce hex. */
|
|
98
|
+
nonce: `0x${string}`;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=Attribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Attribution.d.ts","sourceRoot":"","sources":["../../src/tempo/Attribution.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,gEAAgE;AAChE,eAAO,MAAM,GAAG,eAA0E,CAAA;AAK1F,oEAAoE;AACpE,eAAO,MAAM,SAAS,EAAG,wBAAiC,CAAA;AAW1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,iBAanD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,GAAG;QAChB,6DAA6D;QAC7D,QAAQ,EAAE,MAAM,CAAA;QAChB,sEAAsE;QACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC9B,CAAA;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAKtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK3E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,CAWhE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,MAAM,GAAG;QACZ,yCAAyC;QACzC,OAAO,EAAE,MAAM,CAAA;QACf,kEAAkE;QAClE,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAA;QAChC,8DAA8D;QAC9D,iBAAiB,EAAE,KAAK,MAAM,EAAE,GAAG,IAAI,CAAA;QACvC,+BAA+B;QAC/B,KAAK,EAAE,KAAK,MAAM,EAAE,CAAA;KACrB,CAAA;CACF"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Bytes, Hash, Hex } from 'ox';
|
|
2
|
+
/**
|
|
3
|
+
* MPP attribution memo encoding for TIP-20 `transferWithMemo`.
|
|
4
|
+
*
|
|
5
|
+
* When no user-provided memo is present, the SDK auto-generates an
|
|
6
|
+
* attribution memo so MPP transactions are identifiable on-chain.
|
|
7
|
+
*
|
|
8
|
+
* ## Byte Layout (32 bytes)
|
|
9
|
+
*
|
|
10
|
+
* | Offset | Size | Field |
|
|
11
|
+
* |--------|------|-------------------------------------------|
|
|
12
|
+
* | 0..3 | 4 | TAG = keccak256("mpp")[0..3] |
|
|
13
|
+
* | 4 | 1 | version (0x01) |
|
|
14
|
+
* | 5..14 | 10 | serverId = keccak256(serverId)[0..9] |
|
|
15
|
+
* | 15..24 | 10 | clientId = keccak256(clientId)[0..9] or 0s |
|
|
16
|
+
* | 25..31 | 7 | nonce (random bytes) |
|
|
17
|
+
*
|
|
18
|
+
* The TAG prefix makes MPP transactions trivially distinguishable
|
|
19
|
+
* from arbitrary memos via `TransferWithMemo` event topic filtering.
|
|
20
|
+
*
|
|
21
|
+
* @module
|
|
22
|
+
*/
|
|
23
|
+
/** First 4 bytes of keccak256("mpp") — the on-chain MPP tag. */
|
|
24
|
+
export const tag = Hex.slice(Hash.keccak256(Bytes.fromString('mpp'), { as: 'Hex' }), 0, 4);
|
|
25
|
+
/** Current memo version. */
|
|
26
|
+
const version = 0x01;
|
|
27
|
+
/** 10 zero bytes representing an anonymous (no clientId) client. */
|
|
28
|
+
export const anonymous = '0x00000000000000000000';
|
|
29
|
+
/**
|
|
30
|
+
* Computes a 10-byte fingerprint from a string via keccak256.
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
function fingerprint(value) {
|
|
34
|
+
const hash = Hash.keccak256(Bytes.fromString(value), { as: 'Hex' });
|
|
35
|
+
return Hex.toBytes(Hex.slice(hash, 0, 10));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Encodes an MPP attribution memo as a `bytes32` hex string.
|
|
39
|
+
*
|
|
40
|
+
* @param parameters - The serverId (server identity) and optional clientId.
|
|
41
|
+
* @returns A `0x`-prefixed 64-char hex string (32 bytes).
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import * as Attribution from './Attribution.js'
|
|
46
|
+
*
|
|
47
|
+
* const memo = Attribution.encode({ serverId: 'api.example.com', clientId: 'my-app' })
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export function encode(parameters) {
|
|
51
|
+
const { serverId, clientId } = parameters;
|
|
52
|
+
const buf = new Uint8Array(32);
|
|
53
|
+
buf.set(Hex.toBytes(tag), 0);
|
|
54
|
+
buf[4] = version;
|
|
55
|
+
buf.set(fingerprint(serverId), 5);
|
|
56
|
+
if (clientId)
|
|
57
|
+
buf.set(fingerprint(clientId), 15);
|
|
58
|
+
const nonce = crypto.getRandomValues(new Uint8Array(7));
|
|
59
|
+
buf.set(nonce, 25);
|
|
60
|
+
return Hex.fromBytes(buf);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Checks whether a memo was generated by the MPP attribution system.
|
|
64
|
+
*
|
|
65
|
+
* @param memo - A `0x`-prefixed hex string (bytes32).
|
|
66
|
+
* @returns `true` if the memo starts with the MPP tag and version byte.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* import * as Attribution from './Attribution.js'
|
|
71
|
+
*
|
|
72
|
+
* Attribution.isMppMemo(Attribution.encode({ serverId: 'api.example.com' })) // true
|
|
73
|
+
* Attribution.isMppMemo('0x0000...0000') // false
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export function isMppMemo(memo) {
|
|
77
|
+
if (memo.length !== 66)
|
|
78
|
+
return false;
|
|
79
|
+
const memoTag = memo.slice(0, 10);
|
|
80
|
+
const memoVersion = Number.parseInt(memo.slice(10, 12), 16);
|
|
81
|
+
return memoTag.toLowerCase() === tag.toLowerCase() && memoVersion === version;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Verifies that a memo's server fingerprint matches the given serverId.
|
|
85
|
+
*
|
|
86
|
+
* Checks TAG, version byte, and that bytes 5–14 equal keccak256(serverId)[0..9].
|
|
87
|
+
*
|
|
88
|
+
* @param memo - A `0x`-prefixed hex string (bytes32).
|
|
89
|
+
* @param serverId - The expected server identity.
|
|
90
|
+
* @returns `true` if the memo has a valid MPP tag and matching server fingerprint.
|
|
91
|
+
*/
|
|
92
|
+
export function verifyServer(memo, serverId) {
|
|
93
|
+
if (!isMppMemo(memo))
|
|
94
|
+
return false;
|
|
95
|
+
const memoServerHex = `0x${memo.slice(12, 32)}`;
|
|
96
|
+
const expectedHex = Hex.fromBytes(fingerprint(serverId));
|
|
97
|
+
return memoServerHex.toLowerCase() === expectedHex.toLowerCase();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Decodes an MPP attribution memo into its constituent parts.
|
|
101
|
+
*
|
|
102
|
+
* @param memo - A `0x`-prefixed hex string (bytes32).
|
|
103
|
+
* @returns The decoded fields, or `null` if the memo is not an MPP memo.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```ts
|
|
107
|
+
* import * as Attribution from './Attribution.js'
|
|
108
|
+
*
|
|
109
|
+
* const memo = Attribution.encode({ serverId: 'api.example.com', clientId: 'my-app' })
|
|
110
|
+
* const decoded = Attribution.decode(memo)
|
|
111
|
+
* // { version: 1, serverFingerprint: '0x...', clientFingerprint: '0x...', nonce: '0x...' }
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export function decode(memo) {
|
|
115
|
+
if (!isMppMemo(memo))
|
|
116
|
+
return null;
|
|
117
|
+
const memoVersion = Number.parseInt(memo.slice(10, 12), 16);
|
|
118
|
+
const serverFingerprint = `0x${memo.slice(12, 32)}`;
|
|
119
|
+
const clientHex = `0x${memo.slice(32, 52)}`;
|
|
120
|
+
const nonce = `0x${memo.slice(52)}`;
|
|
121
|
+
const clientFingerprint = clientHex.toLowerCase() === anonymous.toLowerCase() ? null : clientHex;
|
|
122
|
+
return { version: memoVersion, serverFingerprint, clientFingerprint, nonce };
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=Attribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Attribution.js","sourceRoot":"","sources":["../../src/tempo/Attribution.ts"],"names":[],"mappings":"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"}
|