envoy-pay 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/CHANGELOG.md +99 -0
- package/LICENSE +200 -0
- package/README.md +529 -0
- package/dist/cjs/adapters/base.js +174 -0
- package/dist/cjs/adapters/base.js.map +1 -0
- package/dist/cjs/adapters/evm.js +339 -0
- package/dist/cjs/adapters/evm.js.map +1 -0
- package/dist/cjs/adapters/index.js +15 -0
- package/dist/cjs/adapters/index.js.map +1 -0
- package/dist/cjs/adapters/ows.js +204 -0
- package/dist/cjs/adapters/ows.js.map +1 -0
- package/dist/cjs/adapters/solana.js +210 -0
- package/dist/cjs/adapters/solana.js.map +1 -0
- package/dist/cjs/adapters/stellar.js +173 -0
- package/dist/cjs/adapters/stellar.js.map +1 -0
- package/dist/cjs/adapters/stripe.js +338 -0
- package/dist/cjs/adapters/stripe.js.map +1 -0
- package/dist/cjs/adapters/types.js +3 -0
- package/dist/cjs/adapters/types.js.map +1 -0
- package/dist/cjs/client.js +309 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/contracts/abis/EnvoyFacilitator.js +197 -0
- package/dist/cjs/contracts/abis/EnvoyFacilitator.js.map +1 -0
- package/dist/cjs/contracts/addresses.js +42 -0
- package/dist/cjs/contracts/addresses.js.map +1 -0
- package/dist/cjs/contracts/facilitator.js +225 -0
- package/dist/cjs/contracts/facilitator.js.map +1 -0
- package/dist/cjs/contracts/index.js +21 -0
- package/dist/cjs/contracts/index.js.map +1 -0
- package/dist/cjs/facilitator/facilitator-service.js +305 -0
- package/dist/cjs/facilitator/facilitator-service.js.map +1 -0
- package/dist/cjs/facilitator/fee-calculator.js +134 -0
- package/dist/cjs/facilitator/fee-calculator.js.map +1 -0
- package/dist/cjs/facilitator/index.js +12 -0
- package/dist/cjs/facilitator/index.js.map +1 -0
- package/dist/cjs/facilitator/types.js +99 -0
- package/dist/cjs/facilitator/types.js.map +1 -0
- package/dist/cjs/identity/agent-card.js +143 -0
- package/dist/cjs/identity/agent-card.js.map +1 -0
- package/dist/cjs/identity/agent-identity.js +166 -0
- package/dist/cjs/identity/agent-identity.js.map +1 -0
- package/dist/cjs/identity/did-resolver.js +149 -0
- package/dist/cjs/identity/did-resolver.js.map +1 -0
- package/dist/cjs/identity/erc8004/abis.js +218 -0
- package/dist/cjs/identity/erc8004/abis.js.map +1 -0
- package/dist/cjs/identity/erc8004/identity.js +268 -0
- package/dist/cjs/identity/erc8004/identity.js.map +1 -0
- package/dist/cjs/identity/erc8004/index.js +36 -0
- package/dist/cjs/identity/erc8004/index.js.map +1 -0
- package/dist/cjs/identity/erc8004/reputation.js +110 -0
- package/dist/cjs/identity/erc8004/reputation.js.map +1 -0
- package/dist/cjs/identity/erc8004/types.js +3 -0
- package/dist/cjs/identity/erc8004/types.js.map +1 -0
- package/dist/cjs/identity/index.js +61 -0
- package/dist/cjs/identity/index.js.map +1 -0
- package/dist/cjs/identity/owner-registry.js +140 -0
- package/dist/cjs/identity/owner-registry.js.map +1 -0
- package/dist/cjs/identity/reputation.js +193 -0
- package/dist/cjs/identity/reputation.js.map +1 -0
- package/dist/cjs/identity/types.js +16 -0
- package/dist/cjs/identity/types.js.map +1 -0
- package/dist/cjs/index.js +72 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/logger.js +7 -0
- package/dist/cjs/logger.js.map +1 -0
- package/dist/cjs/monitor/evm-watcher.js +165 -0
- package/dist/cjs/monitor/evm-watcher.js.map +1 -0
- package/dist/cjs/monitor/index.js +32 -0
- package/dist/cjs/monitor/index.js.map +1 -0
- package/dist/cjs/monitor/multi-watcher.js +94 -0
- package/dist/cjs/monitor/multi-watcher.js.map +1 -0
- package/dist/cjs/monitor/solana-watcher.js +172 -0
- package/dist/cjs/monitor/solana-watcher.js.map +1 -0
- package/dist/cjs/monitor/stellar-watcher.js +125 -0
- package/dist/cjs/monitor/stellar-watcher.js.map +1 -0
- package/dist/cjs/mpp.js +187 -0
- package/dist/cjs/mpp.js.map +1 -0
- package/dist/cjs/policy.js +71 -0
- package/dist/cjs/policy.js.map +1 -0
- package/dist/cjs/providers/bridge.js +323 -0
- package/dist/cjs/providers/bridge.js.map +1 -0
- package/dist/cjs/providers/onchainos.js +210 -0
- package/dist/cjs/providers/onchainos.js.map +1 -0
- package/dist/cjs/requests/eip681.js +77 -0
- package/dist/cjs/requests/eip681.js.map +1 -0
- package/dist/cjs/requests/index.js +18 -0
- package/dist/cjs/requests/index.js.map +1 -0
- package/dist/cjs/requests/sep7.js +61 -0
- package/dist/cjs/requests/sep7.js.map +1 -0
- package/dist/cjs/requests/solana-pay.js +51 -0
- package/dist/cjs/requests/solana-pay.js.map +1 -0
- package/dist/cjs/requests/universal.js +40 -0
- package/dist/cjs/requests/universal.js.map +1 -0
- package/dist/cjs/server/index.js +35 -0
- package/dist/cjs/server/index.js.map +1 -0
- package/dist/cjs/server/mpp-gate.js +118 -0
- package/dist/cjs/server/mpp-gate.js.map +1 -0
- package/dist/cjs/server/payment-gate.js +92 -0
- package/dist/cjs/server/payment-gate.js.map +1 -0
- package/dist/cjs/server/receipt.js +52 -0
- package/dist/cjs/server/receipt.js.map +1 -0
- package/dist/cjs/server/webhook.js +122 -0
- package/dist/cjs/server/webhook.js.map +1 -0
- package/dist/cjs/server/x402-gate.js +103 -0
- package/dist/cjs/server/x402-gate.js.map +1 -0
- package/dist/cjs/solana.js +14 -0
- package/dist/cjs/solana.js.map +1 -0
- package/dist/cjs/stellar.js +14 -0
- package/dist/cjs/stellar.js.map +1 -0
- package/dist/cjs/wallet/balance-aggregator.js +149 -0
- package/dist/cjs/wallet/balance-aggregator.js.map +1 -0
- package/dist/cjs/wallet/chain-router.js +254 -0
- package/dist/cjs/wallet/chain-router.js.map +1 -0
- package/dist/cjs/wallet/index.js +15 -0
- package/dist/cjs/wallet/index.js.map +1 -0
- package/dist/cjs/wallet/intent-resolver.js +145 -0
- package/dist/cjs/wallet/intent-resolver.js.map +1 -0
- package/dist/cjs/wallet/session-manager.js +170 -0
- package/dist/cjs/wallet/session-manager.js.map +1 -0
- package/dist/cjs/wallet/types.js +14 -0
- package/dist/cjs/wallet/types.js.map +1 -0
- package/dist/cjs/wallet/unified-wallet.js +253 -0
- package/dist/cjs/wallet/unified-wallet.js.map +1 -0
- package/dist/esm/adapters/base.js +170 -0
- package/dist/esm/adapters/base.js.map +1 -0
- package/dist/esm/adapters/evm.js +334 -0
- package/dist/esm/adapters/evm.js.map +1 -0
- package/dist/esm/adapters/index.js +6 -0
- package/dist/esm/adapters/index.js.map +1 -0
- package/dist/esm/adapters/ows.js +194 -0
- package/dist/esm/adapters/ows.js.map +1 -0
- package/dist/esm/adapters/solana.js +206 -0
- package/dist/esm/adapters/solana.js.map +1 -0
- package/dist/esm/adapters/stellar.js +136 -0
- package/dist/esm/adapters/stellar.js.map +1 -0
- package/dist/esm/adapters/stripe.js +334 -0
- package/dist/esm/adapters/stripe.js.map +1 -0
- package/dist/esm/adapters/types.js +2 -0
- package/dist/esm/adapters/types.js.map +1 -0
- package/dist/esm/client.js +302 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/contracts/abis/EnvoyFacilitator.js +194 -0
- package/dist/esm/contracts/abis/EnvoyFacilitator.js.map +1 -0
- package/dist/esm/contracts/addresses.js +38 -0
- package/dist/esm/contracts/addresses.js.map +1 -0
- package/dist/esm/contracts/facilitator.js +218 -0
- package/dist/esm/contracts/facilitator.js.map +1 -0
- package/dist/esm/contracts/index.js +8 -0
- package/dist/esm/contracts/index.js.map +1 -0
- package/dist/esm/facilitator/facilitator-service.js +301 -0
- package/dist/esm/facilitator/facilitator-service.js.map +1 -0
- package/dist/esm/facilitator/fee-calculator.js +130 -0
- package/dist/esm/facilitator/fee-calculator.js.map +1 -0
- package/dist/esm/facilitator/index.js +5 -0
- package/dist/esm/facilitator/index.js.map +1 -0
- package/dist/esm/facilitator/types.js +96 -0
- package/dist/esm/facilitator/types.js.map +1 -0
- package/dist/esm/identity/agent-card.js +139 -0
- package/dist/esm/identity/agent-card.js.map +1 -0
- package/dist/esm/identity/agent-identity.js +162 -0
- package/dist/esm/identity/agent-identity.js.map +1 -0
- package/dist/esm/identity/did-resolver.js +145 -0
- package/dist/esm/identity/did-resolver.js.map +1 -0
- package/dist/esm/identity/erc8004/abis.js +215 -0
- package/dist/esm/identity/erc8004/abis.js.map +1 -0
- package/dist/esm/identity/erc8004/identity.js +250 -0
- package/dist/esm/identity/erc8004/identity.js.map +1 -0
- package/dist/esm/identity/erc8004/index.js +13 -0
- package/dist/esm/identity/erc8004/index.js.map +1 -0
- package/dist/esm/identity/erc8004/reputation.js +105 -0
- package/dist/esm/identity/erc8004/reputation.js.map +1 -0
- package/dist/esm/identity/erc8004/types.js +2 -0
- package/dist/esm/identity/erc8004/types.js.map +1 -0
- package/dist/esm/identity/index.js +19 -0
- package/dist/esm/identity/index.js.map +1 -0
- package/dist/esm/identity/owner-registry.js +136 -0
- package/dist/esm/identity/owner-registry.js.map +1 -0
- package/dist/esm/identity/reputation.js +189 -0
- package/dist/esm/identity/reputation.js.map +1 -0
- package/dist/esm/identity/types.js +15 -0
- package/dist/esm/identity/types.js.map +1 -0
- package/dist/esm/index.js +37 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/logger.js +3 -0
- package/dist/esm/logger.js.map +1 -0
- package/dist/esm/monitor/evm-watcher.js +162 -0
- package/dist/esm/monitor/evm-watcher.js.map +1 -0
- package/dist/esm/monitor/index.js +25 -0
- package/dist/esm/monitor/index.js.map +1 -0
- package/dist/esm/monitor/multi-watcher.js +91 -0
- package/dist/esm/monitor/multi-watcher.js.map +1 -0
- package/dist/esm/monitor/solana-watcher.js +169 -0
- package/dist/esm/monitor/solana-watcher.js.map +1 -0
- package/dist/esm/monitor/stellar-watcher.js +122 -0
- package/dist/esm/monitor/stellar-watcher.js.map +1 -0
- package/dist/esm/mpp.js +175 -0
- package/dist/esm/mpp.js.map +1 -0
- package/dist/esm/policy.js +67 -0
- package/dist/esm/policy.js.map +1 -0
- package/dist/esm/providers/bridge.js +319 -0
- package/dist/esm/providers/bridge.js.map +1 -0
- package/dist/esm/providers/onchainos.js +172 -0
- package/dist/esm/providers/onchainos.js.map +1 -0
- package/dist/esm/requests/eip681.js +74 -0
- package/dist/esm/requests/eip681.js.map +1 -0
- package/dist/esm/requests/index.js +11 -0
- package/dist/esm/requests/index.js.map +1 -0
- package/dist/esm/requests/sep7.js +58 -0
- package/dist/esm/requests/sep7.js.map +1 -0
- package/dist/esm/requests/solana-pay.js +48 -0
- package/dist/esm/requests/solana-pay.js.map +1 -0
- package/dist/esm/requests/universal.js +37 -0
- package/dist/esm/requests/universal.js.map +1 -0
- package/dist/esm/server/index.js +27 -0
- package/dist/esm/server/index.js.map +1 -0
- package/dist/esm/server/mpp-gate.js +115 -0
- package/dist/esm/server/mpp-gate.js.map +1 -0
- package/dist/esm/server/payment-gate.js +89 -0
- package/dist/esm/server/payment-gate.js.map +1 -0
- package/dist/esm/server/receipt.js +48 -0
- package/dist/esm/server/receipt.js.map +1 -0
- package/dist/esm/server/webhook.js +119 -0
- package/dist/esm/server/webhook.js.map +1 -0
- package/dist/esm/server/x402-gate.js +100 -0
- package/dist/esm/server/x402-gate.js.map +1 -0
- package/dist/esm/solana.js +8 -0
- package/dist/esm/solana.js.map +1 -0
- package/dist/esm/stellar.js +8 -0
- package/dist/esm/stellar.js.map +1 -0
- package/dist/esm/wallet/balance-aggregator.js +145 -0
- package/dist/esm/wallet/balance-aggregator.js.map +1 -0
- package/dist/esm/wallet/chain-router.js +250 -0
- package/dist/esm/wallet/chain-router.js.map +1 -0
- package/dist/esm/wallet/index.js +7 -0
- package/dist/esm/wallet/index.js.map +1 -0
- package/dist/esm/wallet/intent-resolver.js +141 -0
- package/dist/esm/wallet/intent-resolver.js.map +1 -0
- package/dist/esm/wallet/session-manager.js +166 -0
- package/dist/esm/wallet/session-manager.js.map +1 -0
- package/dist/esm/wallet/types.js +13 -0
- package/dist/esm/wallet/types.js.map +1 -0
- package/dist/esm/wallet/unified-wallet.js +249 -0
- package/dist/esm/wallet/unified-wallet.js.map +1 -0
- package/dist/types/adapters/base.d.ts +53 -0
- package/dist/types/adapters/base.d.ts.map +1 -0
- package/dist/types/adapters/evm.d.ts +93 -0
- package/dist/types/adapters/evm.d.ts.map +1 -0
- package/dist/types/adapters/index.d.ts +7 -0
- package/dist/types/adapters/index.d.ts.map +1 -0
- package/dist/types/adapters/ows.d.ts +123 -0
- package/dist/types/adapters/ows.d.ts.map +1 -0
- package/dist/types/adapters/solana.d.ts +77 -0
- package/dist/types/adapters/solana.d.ts.map +1 -0
- package/dist/types/adapters/stellar.d.ts +67 -0
- package/dist/types/adapters/stellar.d.ts.map +1 -0
- package/dist/types/adapters/stripe.d.ts +206 -0
- package/dist/types/adapters/stripe.d.ts.map +1 -0
- package/dist/types/adapters/types.d.ts +110 -0
- package/dist/types/adapters/types.d.ts.map +1 -0
- package/dist/types/client.d.ts +89 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/contracts/abis/EnvoyFacilitator.d.ts +296 -0
- package/dist/types/contracts/abis/EnvoyFacilitator.d.ts.map +1 -0
- package/dist/types/contracts/addresses.d.ts +24 -0
- package/dist/types/contracts/addresses.d.ts.map +1 -0
- package/dist/types/contracts/facilitator.d.ts +172 -0
- package/dist/types/contracts/facilitator.d.ts.map +1 -0
- package/dist/types/contracts/index.d.ts +6 -0
- package/dist/types/contracts/index.d.ts.map +1 -0
- package/dist/types/facilitator/facilitator-service.d.ts +69 -0
- package/dist/types/facilitator/facilitator-service.d.ts.map +1 -0
- package/dist/types/facilitator/fee-calculator.d.ts +48 -0
- package/dist/types/facilitator/fee-calculator.d.ts.map +1 -0
- package/dist/types/facilitator/index.d.ts +5 -0
- package/dist/types/facilitator/index.d.ts.map +1 -0
- package/dist/types/facilitator/types.d.ts +221 -0
- package/dist/types/facilitator/types.d.ts.map +1 -0
- package/dist/types/identity/agent-card.d.ts +83 -0
- package/dist/types/identity/agent-card.d.ts.map +1 -0
- package/dist/types/identity/agent-identity.d.ts +102 -0
- package/dist/types/identity/agent-identity.d.ts.map +1 -0
- package/dist/types/identity/did-resolver.d.ts +70 -0
- package/dist/types/identity/did-resolver.d.ts.map +1 -0
- package/dist/types/identity/erc8004/abis.d.ts +336 -0
- package/dist/types/identity/erc8004/abis.d.ts.map +1 -0
- package/dist/types/identity/erc8004/identity.d.ts +109 -0
- package/dist/types/identity/erc8004/identity.d.ts.map +1 -0
- package/dist/types/identity/erc8004/index.d.ts +15 -0
- package/dist/types/identity/erc8004/index.d.ts.map +1 -0
- package/dist/types/identity/erc8004/reputation.d.ts +52 -0
- package/dist/types/identity/erc8004/reputation.d.ts.map +1 -0
- package/dist/types/identity/erc8004/types.d.ts +31 -0
- package/dist/types/identity/erc8004/types.d.ts.map +1 -0
- package/dist/types/identity/index.d.ts +10 -0
- package/dist/types/identity/index.d.ts.map +1 -0
- package/dist/types/identity/owner-registry.d.ts +68 -0
- package/dist/types/identity/owner-registry.d.ts.map +1 -0
- package/dist/types/identity/reputation.d.ts +66 -0
- package/dist/types/identity/reputation.d.ts.map +1 -0
- package/dist/types/identity/types.d.ts +182 -0
- package/dist/types/identity/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/logger.d.ts +10 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/monitor/evm-watcher.d.ts +40 -0
- package/dist/types/monitor/evm-watcher.d.ts.map +1 -0
- package/dist/types/monitor/index.d.ts +25 -0
- package/dist/types/monitor/index.d.ts.map +1 -0
- package/dist/types/monitor/multi-watcher.d.ts +48 -0
- package/dist/types/monitor/multi-watcher.d.ts.map +1 -0
- package/dist/types/monitor/solana-watcher.d.ts +36 -0
- package/dist/types/monitor/solana-watcher.d.ts.map +1 -0
- package/dist/types/monitor/stellar-watcher.d.ts +34 -0
- package/dist/types/monitor/stellar-watcher.d.ts.map +1 -0
- package/dist/types/mpp.d.ts +153 -0
- package/dist/types/mpp.d.ts.map +1 -0
- package/dist/types/policy.d.ts +40 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/providers/bridge.d.ts +162 -0
- package/dist/types/providers/bridge.d.ts.map +1 -0
- package/dist/types/providers/onchainos.d.ts +128 -0
- package/dist/types/providers/onchainos.d.ts.map +1 -0
- package/dist/types/requests/eip681.d.ts +51 -0
- package/dist/types/requests/eip681.d.ts.map +1 -0
- package/dist/types/requests/index.d.ts +11 -0
- package/dist/types/requests/index.d.ts.map +1 -0
- package/dist/types/requests/sep7.d.ts +56 -0
- package/dist/types/requests/sep7.d.ts.map +1 -0
- package/dist/types/requests/solana-pay.d.ts +50 -0
- package/dist/types/requests/solana-pay.d.ts.map +1 -0
- package/dist/types/requests/universal.d.ts +28 -0
- package/dist/types/requests/universal.d.ts.map +1 -0
- package/dist/types/server/index.d.ts +27 -0
- package/dist/types/server/index.d.ts.map +1 -0
- package/dist/types/server/mpp-gate.d.ts +66 -0
- package/dist/types/server/mpp-gate.d.ts.map +1 -0
- package/dist/types/server/payment-gate.d.ts +33 -0
- package/dist/types/server/payment-gate.d.ts.map +1 -0
- package/dist/types/server/receipt.d.ts +52 -0
- package/dist/types/server/receipt.d.ts.map +1 -0
- package/dist/types/server/webhook.d.ts +46 -0
- package/dist/types/server/webhook.d.ts.map +1 -0
- package/dist/types/server/x402-gate.d.ts +70 -0
- package/dist/types/server/x402-gate.d.ts.map +1 -0
- package/dist/types/solana.d.ts +7 -0
- package/dist/types/solana.d.ts.map +1 -0
- package/dist/types/stellar.d.ts +7 -0
- package/dist/types/stellar.d.ts.map +1 -0
- package/dist/types/wallet/balance-aggregator.d.ts +51 -0
- package/dist/types/wallet/balance-aggregator.d.ts.map +1 -0
- package/dist/types/wallet/chain-router.d.ts +44 -0
- package/dist/types/wallet/chain-router.d.ts.map +1 -0
- package/dist/types/wallet/index.d.ts +7 -0
- package/dist/types/wallet/index.d.ts.map +1 -0
- package/dist/types/wallet/intent-resolver.d.ts +39 -0
- package/dist/types/wallet/intent-resolver.d.ts.map +1 -0
- package/dist/types/wallet/session-manager.d.ts +57 -0
- package/dist/types/wallet/session-manager.d.ts.map +1 -0
- package/dist/types/wallet/types.d.ts +161 -0
- package/dist/types/wallet/types.d.ts.map +1 -0
- package/dist/types/wallet/unified-wallet.d.ts +122 -0
- package/dist/types/wallet/unified-wallet.d.ts.map +1 -0
- package/package.json +194 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sep7.d.ts","sourceRoot":"","sources":["../../../src/requests/sep7.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IAClC,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA0BzD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana Pay — Payment URI builder.
|
|
3
|
+
*
|
|
4
|
+
* Generates `solana:` URIs per the Solana Pay specification
|
|
5
|
+
* for requesting SOL or SPL token payments.
|
|
6
|
+
*
|
|
7
|
+
* @see https://docs.solanapay.com/spec
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```
|
|
11
|
+
* solana:7abc...?amount=1.5&spl-token=EPjFW...&reference=ref123&label=MyStore&message=Order42
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export interface SolanaPayOptions {
|
|
15
|
+
/** Recipient wallet address (base58). */
|
|
16
|
+
recipient: string;
|
|
17
|
+
/** Amount to request (human-readable). */
|
|
18
|
+
amount: string;
|
|
19
|
+
/** SPL token mint address. If omitted, requests native SOL. */
|
|
20
|
+
splToken?: string;
|
|
21
|
+
/** Unique reference for tracking the payment (base58 public key). */
|
|
22
|
+
reference?: string;
|
|
23
|
+
/** Label for the recipient. */
|
|
24
|
+
label?: string;
|
|
25
|
+
/** Message to display to the payer. */
|
|
26
|
+
message?: string;
|
|
27
|
+
/** Optional memo to include in the transaction. */
|
|
28
|
+
memo?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Build a Solana Pay payment URI.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* // Native SOL
|
|
36
|
+
* buildSolanaPayUri({ recipient: '7abc...', amount: '1.5' });
|
|
37
|
+
* // => 'solana:7abc...?amount=1.5'
|
|
38
|
+
*
|
|
39
|
+
* // USDC SPL token
|
|
40
|
+
* buildSolanaPayUri({
|
|
41
|
+
* recipient: '7abc...',
|
|
42
|
+
* amount: '25.00',
|
|
43
|
+
* splToken: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
|
|
44
|
+
* label: 'envoy',
|
|
45
|
+
* message: 'Agent service payment',
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function buildSolanaPayUri(options: SolanaPayOptions): string;
|
|
50
|
+
//# sourceMappingURL=solana-pay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana-pay.d.ts","sourceRoot":"","sources":["../../../src/requests/solana-pay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAYnE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Universal Payment URI builder — auto-detects chain and generates
|
|
3
|
+
* the appropriate payment URI format.
|
|
4
|
+
*/
|
|
5
|
+
import { type Eip681Options } from './eip681';
|
|
6
|
+
import { type Sep7Options } from './sep7';
|
|
7
|
+
import { type SolanaPayOptions } from './solana-pay';
|
|
8
|
+
export interface UniversalPaymentUriOptions {
|
|
9
|
+
/** Target chain. */
|
|
10
|
+
chain: 'evm' | 'stellar' | 'solana';
|
|
11
|
+
/** Chain-specific options. */
|
|
12
|
+
evm?: Eip681Options;
|
|
13
|
+
stellar?: Sep7Options;
|
|
14
|
+
solana?: SolanaPayOptions;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build a payment URI for any supported chain.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const uri = buildPaymentUri({
|
|
22
|
+
* chain: 'evm',
|
|
23
|
+
* evm: { to: '0x...', amount: '0.5', chainId: 8453 },
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function buildPaymentUri(options: UniversalPaymentUriOptions): string;
|
|
28
|
+
//# sourceMappingURL=universal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"universal.d.ts","sourceRoot":"","sources":["../../../src/requests/universal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAExE,MAAM,WAAW,0BAA0B;IACzC,oBAAoB;IACpB,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpC,8BAA8B;IAC9B,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAc3E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* envoy — Server-Side Payment Gating
|
|
3
|
+
*
|
|
4
|
+
* Express/Connect-compatible middleware for monetizing API endpoints.
|
|
5
|
+
* Supports both x402 and MPP (Machine Payment Protocol) standards.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { createPaymentGate } from 'envoy-pay/server';
|
|
10
|
+
*
|
|
11
|
+
* app.post('/api/premium',
|
|
12
|
+
* createPaymentGate({
|
|
13
|
+
* payTo: '0xYOUR_WALLET',
|
|
14
|
+
* amount: '500000', // 0.50 USDC
|
|
15
|
+
* asset: 'USDC',
|
|
16
|
+
* network: 'eip155:8453',
|
|
17
|
+
* }),
|
|
18
|
+
* (req, res) => { res.json({ data: 'premium content' }); }
|
|
19
|
+
* );
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export { createX402Gate, type X402GateConfig, type X402Proof } from './x402-gate';
|
|
23
|
+
export { createMppGate, type MppGateConfig } from './mpp-gate';
|
|
24
|
+
export { createPaymentGate, type PaymentGateConfig } from './payment-gate';
|
|
25
|
+
export { createWebhookHandler, type WebhookConfig } from './webhook';
|
|
26
|
+
export { buildReceipt, type ReceiptOptions, type PaymentReceipt } from './receipt';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import { Logger } from '../logger';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for MPP payment gate middleware.
|
|
5
|
+
*/
|
|
6
|
+
export interface MppGateConfig {
|
|
7
|
+
/** Realm identifier for the challenge (usually the API domain). */
|
|
8
|
+
realm: string;
|
|
9
|
+
/** Payment method: 'stripe', 'onchain', etc. */
|
|
10
|
+
method: string;
|
|
11
|
+
/** Intent: 'payment', 'subscription', etc. Default: 'payment'. */
|
|
12
|
+
intent?: string;
|
|
13
|
+
/** Amount to charge (as string, in smallest units). */
|
|
14
|
+
amount: string;
|
|
15
|
+
/** Currency code. Default: 'usd'. */
|
|
16
|
+
currency?: string;
|
|
17
|
+
/** Number of decimal places. Default: 2. */
|
|
18
|
+
decimals?: number;
|
|
19
|
+
/** Recipient address / account. */
|
|
20
|
+
recipient: string;
|
|
21
|
+
/** Challenge TTL in milliseconds. Default: 300000 (5 min). */
|
|
22
|
+
ttlMs?: number;
|
|
23
|
+
/** Verification function for the payment credential. */
|
|
24
|
+
verifyCredential?: (credential: MppCredential, challengeId: string) => Promise<boolean> | boolean;
|
|
25
|
+
/** Logger function. */
|
|
26
|
+
logger?: Logger;
|
|
27
|
+
}
|
|
28
|
+
/** Decoded MPP credential from Authorization: Payment header. */
|
|
29
|
+
export interface MppCredential {
|
|
30
|
+
challenge: {
|
|
31
|
+
id: string;
|
|
32
|
+
realm: string;
|
|
33
|
+
method: string;
|
|
34
|
+
intent: string;
|
|
35
|
+
request: string;
|
|
36
|
+
expires?: string;
|
|
37
|
+
};
|
|
38
|
+
source: string;
|
|
39
|
+
payload: {
|
|
40
|
+
transaction: string;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/** Express/Connect request with optional MPP payment metadata. */
|
|
44
|
+
interface MppGatedRequest extends IncomingMessage {
|
|
45
|
+
mppPayment?: MppCredential;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Creates an Express/Connect middleware that gates access behind MPP payments.
|
|
49
|
+
*
|
|
50
|
+
* When a request lacks a valid `Authorization: Payment` header, the middleware
|
|
51
|
+
* responds with 402 and a `WWW-Authenticate: Payment` challenge header.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* app.post('/api/premium', createMppGate({
|
|
56
|
+
* realm: 'api.example.com',
|
|
57
|
+
* method: 'stripe',
|
|
58
|
+
* amount: '50',
|
|
59
|
+
* currency: 'usd',
|
|
60
|
+
* recipient: 'acct_xxx',
|
|
61
|
+
* }), handler);
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export declare function createMppGate(config: MppGateConfig): (req: MppGatedRequest, res: ServerResponse, next: (err?: any) => void) => Promise<void>;
|
|
65
|
+
export {};
|
|
66
|
+
//# sourceMappingURL=mpp-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mpp-gate.d.ts","sourceRoot":"","sources":["../../../src/server/mpp-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAClG,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,kEAAkE;AAClE,UAAU,eAAgB,SAAQ,eAAe;IAC/C,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAYD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,IAQ/C,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,mBA6F5B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import { type X402GateConfig } from './x402-gate';
|
|
3
|
+
import { type MppGateConfig } from './mpp-gate';
|
|
4
|
+
import { Logger } from '../logger';
|
|
5
|
+
/**
|
|
6
|
+
* Unified Payment Gate — supports both x402 and MPP simultaneously.
|
|
7
|
+
*/
|
|
8
|
+
export interface PaymentGateConfig {
|
|
9
|
+
/** x402 configuration. */
|
|
10
|
+
x402: Omit<X402GateConfig, 'logger'>;
|
|
11
|
+
/** MPP configuration. */
|
|
12
|
+
mpp: Omit<MppGateConfig, 'logger'>;
|
|
13
|
+
/** Shared logger. */
|
|
14
|
+
logger?: Logger;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a dual-protocol payment gate that accepts both x402 and MPP.
|
|
18
|
+
*
|
|
19
|
+
* Detection logic:
|
|
20
|
+
* - `X-PAYMENT` header → x402 flow
|
|
21
|
+
* - `Authorization: Payment` header → MPP flow
|
|
22
|
+
* - Neither present → returns both challenge types simultaneously
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* app.post('/api/premium', createPaymentGate({
|
|
27
|
+
* x402: { payTo: '0x...', amount: '500000', asset: 'USDC', network: 'eip155:8453' },
|
|
28
|
+
* mpp: { realm: 'api.example.com', method: 'stripe', amount: '50', recipient: 'acct_xxx' },
|
|
29
|
+
* }), handler);
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function createPaymentGate(config: PaymentGateConfig): (req: IncomingMessage, res: ServerResponse, next: (err?: any) => void) => Promise<void>;
|
|
33
|
+
//# sourceMappingURL=payment-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-gate.d.ts","sourceRoot":"","sources":["../../../src/server/payment-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACrC,yBAAyB;IACzB,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACnC,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,IAcvD,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,mBAuE5B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MPP Payment-Receipt builder.
|
|
3
|
+
*
|
|
4
|
+
* Generates base64url-encoded receipt JSON that can be attached
|
|
5
|
+
* as a `Payment-Receipt` response header after successful payment verification.
|
|
6
|
+
*/
|
|
7
|
+
export interface ReceiptOptions {
|
|
8
|
+
/** The challenge ID this receipt is for. */
|
|
9
|
+
challengeId: string;
|
|
10
|
+
/** Payment status. */
|
|
11
|
+
status: 'settled' | 'pending' | 'failed';
|
|
12
|
+
/** Amount paid (atomic units). */
|
|
13
|
+
amount: string;
|
|
14
|
+
/** Currency / asset. */
|
|
15
|
+
asset: string;
|
|
16
|
+
/** Transaction hash / proof. */
|
|
17
|
+
transactionHash?: string;
|
|
18
|
+
/** Timestamp of the receipt. */
|
|
19
|
+
timestamp?: Date;
|
|
20
|
+
}
|
|
21
|
+
export interface PaymentReceipt {
|
|
22
|
+
challengeId: string;
|
|
23
|
+
status: 'settled' | 'pending' | 'failed';
|
|
24
|
+
amount: string;
|
|
25
|
+
asset: string;
|
|
26
|
+
transactionHash?: string;
|
|
27
|
+
issuedAt: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Build a Payment-Receipt header value.
|
|
31
|
+
*
|
|
32
|
+
* @returns base64url-encoded JSON receipt.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* const receipt = buildReceipt({
|
|
37
|
+
* challengeId: 'ch_123',
|
|
38
|
+
* status: 'settled',
|
|
39
|
+
* amount: '500000',
|
|
40
|
+
* asset: 'USDC',
|
|
41
|
+
* transactionHash: '0xabc...',
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* res.setHeader('Payment-Receipt', receipt);
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildReceipt(options: ReceiptOptions): string;
|
|
48
|
+
/**
|
|
49
|
+
* Parse a Payment-Receipt header value back into a receipt object.
|
|
50
|
+
*/
|
|
51
|
+
export declare function parseReceipt(encoded: string): PaymentReceipt;
|
|
52
|
+
//# sourceMappingURL=receipt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../../../src/server/receipt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAe5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAI5D"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Logger } from '../logger';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for Stripe webhook handler.
|
|
4
|
+
*/
|
|
5
|
+
export interface WebhookConfig {
|
|
6
|
+
/** Stripe webhook signing secret (whsec_...). */
|
|
7
|
+
signingSecret: string;
|
|
8
|
+
/** Callback for successful payments. */
|
|
9
|
+
onPaymentSuccess?: (event: WebhookEvent) => void | Promise<void>;
|
|
10
|
+
/** Callback for failed payments. */
|
|
11
|
+
onPaymentFailure?: (event: WebhookEvent) => void | Promise<void>;
|
|
12
|
+
/** Idempotency: track processed event IDs to prevent replay. */
|
|
13
|
+
processedEventIds?: Set<string>;
|
|
14
|
+
/** Logger function. */
|
|
15
|
+
logger?: Logger;
|
|
16
|
+
}
|
|
17
|
+
/** Simplified webhook event representation. */
|
|
18
|
+
export interface WebhookEvent {
|
|
19
|
+
id: string;
|
|
20
|
+
type: string;
|
|
21
|
+
amount?: number;
|
|
22
|
+
currency?: string;
|
|
23
|
+
paymentIntentId?: string;
|
|
24
|
+
metadata?: Record<string, string>;
|
|
25
|
+
timestamp: Date;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Creates a Connect/Express-compatible webhook handler for Stripe events.
|
|
29
|
+
*
|
|
30
|
+
* Uses HMAC signature verification via the raw request body.
|
|
31
|
+
* Supports idempotency guard to prevent duplicate processing.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const handler = createWebhookHandler({
|
|
36
|
+
* signingSecret: process.env.STRIPE_WEBHOOK_SECRET!,
|
|
37
|
+
* onPaymentSuccess: (event) => {
|
|
38
|
+
* console.log(`Payment received: ${event.amount} ${event.currency}`);
|
|
39
|
+
* },
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* app.post('/webhook', express.raw({ type: 'application/json' }), handler);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function createWebhookHandler(config: WebhookConfig): (req: any, res: any, _next?: (err?: any) => void) => Promise<void>;
|
|
46
|
+
//# sourceMappingURL=webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../src/server/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,IAKtD,KAAK,GAAG,EACR,KAAK,GAAG,EACR,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,mBA2E9B"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import { Logger } from '../logger';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for x402 payment gate middleware.
|
|
5
|
+
*/
|
|
6
|
+
export interface X402GateConfig {
|
|
7
|
+
/** Wallet address to receive payments. */
|
|
8
|
+
payTo: string;
|
|
9
|
+
/** Amount in atomic units (e.g., '500000' = 0.50 USDC). */
|
|
10
|
+
amount: string;
|
|
11
|
+
/** Asset identifier: 'USDC', 'ETH', etc. */
|
|
12
|
+
asset: string;
|
|
13
|
+
/** Network / CAIP-2 identifier. */
|
|
14
|
+
network: string;
|
|
15
|
+
/** Payment scheme. Default: 'exact'. */
|
|
16
|
+
scheme?: string;
|
|
17
|
+
/** x402 version. Default: 2. */
|
|
18
|
+
x402Version?: number;
|
|
19
|
+
/** Resource description for human-readable display. */
|
|
20
|
+
description?: string;
|
|
21
|
+
/** USD amount for policy engines (optional). */
|
|
22
|
+
usdAmount?: number;
|
|
23
|
+
/** Facilitator URL for verification (optional). */
|
|
24
|
+
facilitatorUrl?: string;
|
|
25
|
+
/** Verification function. If provided, called to verify X-PAYMENT proof. */
|
|
26
|
+
verifyPayment?: (proof: X402Proof) => Promise<boolean> | boolean;
|
|
27
|
+
/** Logger function. */
|
|
28
|
+
logger?: Logger;
|
|
29
|
+
}
|
|
30
|
+
/** Decoded X-PAYMENT proof from client. */
|
|
31
|
+
export interface X402Proof {
|
|
32
|
+
x402Version: number;
|
|
33
|
+
accepted: {
|
|
34
|
+
scheme: string;
|
|
35
|
+
network: string;
|
|
36
|
+
amount: string;
|
|
37
|
+
payTo: string;
|
|
38
|
+
asset: string;
|
|
39
|
+
};
|
|
40
|
+
payload: {
|
|
41
|
+
transaction: string;
|
|
42
|
+
chain: string;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** Express/Connect-style request with optional payment metadata. */
|
|
46
|
+
interface GatedRequest extends IncomingMessage {
|
|
47
|
+
payment?: X402Proof;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Creates an Express/Connect middleware that gates access behind x402 payments.
|
|
51
|
+
*
|
|
52
|
+
* When a request lacks a valid `X-PAYMENT` header, the middleware responds with
|
|
53
|
+
* 402 Payment Required and an x402-compliant JSON challenge body.
|
|
54
|
+
*
|
|
55
|
+
* When a valid `X-PAYMENT` header is present, it's decoded and optionally
|
|
56
|
+
* verified before calling `next()`.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* app.post('/api/premium', createX402Gate({
|
|
61
|
+
* payTo: '0xABC...',
|
|
62
|
+
* amount: '500000',
|
|
63
|
+
* asset: 'USDC',
|
|
64
|
+
* network: 'eip155:8453',
|
|
65
|
+
* }), handler);
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function createX402Gate(config: X402GateConfig): (req: GatedRequest, res: ServerResponse, next: (err?: any) => void) => Promise<void>;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=x402-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402-gate.d.ts","sourceRoot":"","sources":["../../../src/server/x402-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACjE,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,oEAAoE;AACpE,UAAU,YAAa,SAAQ,eAAe;IAC5C,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,IAMjD,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,mBAoF5B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { SolanaPaymentAdapter } from './adapters/solana';
|
|
2
|
+
export type { SolanaAdapterOptions } from './adapters/solana';
|
|
3
|
+
export { createSolanaWatcher } from './monitor/solana-watcher';
|
|
4
|
+
export type { SolanaWatcherConfig } from './monitor/solana-watcher';
|
|
5
|
+
export { buildSolanaPayUri } from './requests/solana-pay';
|
|
6
|
+
export type { SolanaPayOptions } from './requests/solana-pay';
|
|
7
|
+
//# sourceMappingURL=solana.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/solana.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { StellarPaymentAdapter } from './adapters/stellar';
|
|
2
|
+
export type { StellarPaymentAdapterOptions } from './adapters/stellar';
|
|
3
|
+
export { createStellarWatcher } from './monitor/stellar-watcher';
|
|
4
|
+
export type { StellarWatcherConfig } from './monitor/stellar-watcher';
|
|
5
|
+
export { buildSep7Uri } from './requests/sep7';
|
|
6
|
+
export type { Sep7Options } from './requests/sep7';
|
|
7
|
+
//# sourceMappingURL=stellar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stellar.d.ts","sourceRoot":"","sources":["../../src/stellar.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BalanceAggregator — Multi-chain balance aggregation.
|
|
3
|
+
*
|
|
4
|
+
* Queries all registered adapters in parallel to produce a unified
|
|
5
|
+
* balance snapshot. Handles adapters that don't implement `getBalance()`
|
|
6
|
+
* gracefully (returns 0).
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const aggregator = new BalanceAggregator(adapters);
|
|
11
|
+
* const balance = await aggregator.getUnifiedBalance();
|
|
12
|
+
* console.log(balance.totalFormatted); // "$400.00"
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
import { PaymentAdapter } from '../adapters/types';
|
|
16
|
+
import { ChainBalance, UnifiedBalance } from './types';
|
|
17
|
+
export declare class BalanceAggregator {
|
|
18
|
+
private adapters;
|
|
19
|
+
constructor(adapters: PaymentAdapter[]);
|
|
20
|
+
/**
|
|
21
|
+
* Query all adapters and return a unified balance snapshot.
|
|
22
|
+
* Adapters without `getBalance()` report $0.
|
|
23
|
+
*/
|
|
24
|
+
getUnifiedBalance(): Promise<UnifiedBalance>;
|
|
25
|
+
/**
|
|
26
|
+
* Get the balance for a specific chain by CAIP-2 ID.
|
|
27
|
+
*/
|
|
28
|
+
getChainBalance(caip2Id: string): Promise<ChainBalance | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Find the adapter with the highest USD balance.
|
|
31
|
+
*/
|
|
32
|
+
getRichestChain(): Promise<ChainBalance | null>;
|
|
33
|
+
/**
|
|
34
|
+
* Check if sufficient funds exist across all chains.
|
|
35
|
+
*/
|
|
36
|
+
hasSufficientFunds(amountUsd: number): Promise<boolean>;
|
|
37
|
+
/**
|
|
38
|
+
* Find all chains that can cover a given USD amount.
|
|
39
|
+
*/
|
|
40
|
+
getChainsWithSufficientFunds(amountUsd: number): Promise<ChainBalance[]>;
|
|
41
|
+
private queryAdapter;
|
|
42
|
+
/**
|
|
43
|
+
* Convert an asset amount to USD using stablecoin 1:1 or fallback rates.
|
|
44
|
+
*/
|
|
45
|
+
private toUsd;
|
|
46
|
+
/**
|
|
47
|
+
* Best-effort detection of the primary asset for a chain.
|
|
48
|
+
*/
|
|
49
|
+
private detectPrimaryAsset;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=balance-aggregator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balance-aggregator.d.ts","sourceRoot":"","sources":["../../../src/wallet/balance-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAyBvD,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc,EAAE;IAE9C;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAwBlD;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAMpE;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAQrD;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK7D;;OAEG;IACG,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAOhE,YAAY;IA4B1B;;OAEG;IACH,OAAO,CAAC,KAAK;IAQb;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAQ3B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChainRouter — Optimal chain selection for payment execution.
|
|
3
|
+
*
|
|
4
|
+
* Given a payment intent ($5 USDC), the router scores all available
|
|
5
|
+
* adapters based on the configured strategy (cheapest, fastest,
|
|
6
|
+
* prefer-crypto, etc.) and returns a ranked list of PaymentPlans.
|
|
7
|
+
*
|
|
8
|
+
* Scoring is based on chain metadata (gas estimates, settlement times)
|
|
9
|
+
* and real-time balance availability.
|
|
10
|
+
*
|
|
11
|
+
* @see ERC-7521 — Intent-based execution patterns
|
|
12
|
+
*/
|
|
13
|
+
import { PaymentAdapter } from '../adapters/types';
|
|
14
|
+
import { ChainMeta, PayIntent, PaymentPlan, RoutingStrategy } from './types';
|
|
15
|
+
export declare class ChainRouter {
|
|
16
|
+
private adapters;
|
|
17
|
+
private chainMeta;
|
|
18
|
+
private roundRobinIndex;
|
|
19
|
+
constructor(adapters: PaymentAdapter[], customMeta?: Record<string, ChainMeta>);
|
|
20
|
+
/**
|
|
21
|
+
* Score and rank all adapters for a given payment intent.
|
|
22
|
+
* Returns plans sorted by score (lower = better).
|
|
23
|
+
*/
|
|
24
|
+
route(intent: PayIntent, strategy: RoutingStrategy): PaymentPlan[];
|
|
25
|
+
/**
|
|
26
|
+
* Get the single best adapter for a payment intent.
|
|
27
|
+
*/
|
|
28
|
+
getBestPlan(intent: PayIntent, strategy: RoutingStrategy): PaymentPlan | null;
|
|
29
|
+
/**
|
|
30
|
+
* Get chain metadata for a CAIP-2 ID.
|
|
31
|
+
* Falls back to sensible defaults for unknown chains.
|
|
32
|
+
*/
|
|
33
|
+
getChainMeta(caip2Id: string): ChainMeta;
|
|
34
|
+
/**
|
|
35
|
+
* Calculate a composite score for an adapter/chain based on the strategy.
|
|
36
|
+
* Lower score = better.
|
|
37
|
+
*/
|
|
38
|
+
private calculateScore;
|
|
39
|
+
/**
|
|
40
|
+
* Convert a USD amount to atomic units for a specific chain.
|
|
41
|
+
*/
|
|
42
|
+
private toAtomicUnits;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=chain-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-router.d.ts","sourceRoot":"","sources":["../../../src/wallet/chain-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,eAAe,EAChB,MAAM,SAAS,CAAC;AAmIjB,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ;IAJlB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,eAAe,CAAK;gBAGlB,QAAQ,EAAE,cAAc,EAAE,EAClC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAiBxC;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GAAG,WAAW,EAAE;IAiClE;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI;IAK7E;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;IAaxC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAwCtB;;OAEG;IACH,OAAO,CAAC,aAAa;CAKtB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { UnifiedWallet } from './unified-wallet';
|
|
2
|
+
export { BalanceAggregator } from './balance-aggregator';
|
|
3
|
+
export { ChainRouter } from './chain-router';
|
|
4
|
+
export { IntentResolver } from './intent-resolver';
|
|
5
|
+
export { SessionManager } from './session-manager';
|
|
6
|
+
export type { UnifiedWalletOptions, UnifiedBalance, ChainBalance, PayIntent, PaymentPlan, PayResult, RoutingStrategy, Session, SessionPermissions, ChainMeta, } from './types';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,eAAe,EACf,OAAO,EACP,kBAAkB,EAClB,SAAS,GACV,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IntentResolver — Parses natural-language payment intents into PaymentPlans.
|
|
3
|
+
*
|
|
4
|
+
* Agents express payment desires as simple strings ("pay $5", "send 10 USDC
|
|
5
|
+
* to 0x1234..."). The IntentResolver parses these into structured PayIntent
|
|
6
|
+
* objects, then delegates to ChainRouter for execution planning.
|
|
7
|
+
*
|
|
8
|
+
* Supports:
|
|
9
|
+
* - "$5" / "$5.00" — USD amounts
|
|
10
|
+
* - "5 USDC" / "10 XLM" — Asset-specific amounts
|
|
11
|
+
* - "to 0x..." / "to G..." / "to ..." — destination extraction
|
|
12
|
+
* - "memo: invoice-123" — memo extraction
|
|
13
|
+
*
|
|
14
|
+
* @see ERC-7521 — Intent-centric execution pattern
|
|
15
|
+
*/
|
|
16
|
+
import { PayIntent } from './types';
|
|
17
|
+
export declare class IntentResolver {
|
|
18
|
+
/**
|
|
19
|
+
* Parse a natural-language payment intent string into a structured PayIntent.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* resolve('pay $5 to 0x1234...'); // { amount: '5.00', destination: '0x1234...' }
|
|
23
|
+
* resolve('send 100 USDC memo: inv-42'); // { amount: '100', asset: 'USDC', memo: 'inv-42' }
|
|
24
|
+
* resolve('$0.50'); // { amount: '0.50' }
|
|
25
|
+
*/
|
|
26
|
+
resolve(input: string): PayIntent;
|
|
27
|
+
/**
|
|
28
|
+
* Validate that a PayIntent has the minimum required fields.
|
|
29
|
+
*/
|
|
30
|
+
validate(intent: PayIntent): {
|
|
31
|
+
valid: boolean;
|
|
32
|
+
errors: string[];
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Convert a raw USD amount string to a specific asset amount.
|
|
36
|
+
*/
|
|
37
|
+
usdToAsset(usdAmount: string, asset: string): string;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=intent-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../src/wallet/intent-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAqDpC,qBAAa,cAAc;IACzB;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAiDjC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAkBjE;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CAOrD"}
|