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,93 @@
|
|
|
1
|
+
import { PaymentAdapter } from './types';
|
|
2
|
+
import { Logger } from '../logger';
|
|
3
|
+
/** All EVM chains supported by envoy-pay. Celo is the first-class default. */
|
|
4
|
+
export type EvmChainName = 'celo' | 'celo-alfajores' | 'base' | 'base-sepolia' | 'arbitrum' | 'arbitrum-sepolia' | 'optimism' | 'optimism-sepolia' | 'ethereum' | 'ethereum-sepolia' | 'polygon' | 'polygon-amoy' | 'xlayer' | 'xlayer-testnet';
|
|
5
|
+
/** ERC-20 stablecoin descriptor (address + decimals). */
|
|
6
|
+
export interface StablecoinInfo {
|
|
7
|
+
address: `0x${string}`;
|
|
8
|
+
decimals: number;
|
|
9
|
+
}
|
|
10
|
+
export interface EvmAdapterOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Chain to settle on.
|
|
13
|
+
* @example 'base', 'arbitrum', 'optimism', 'ethereum', 'polygon'
|
|
14
|
+
* @example 'base-sepolia', 'arbitrum-sepolia' (testnets)
|
|
15
|
+
*/
|
|
16
|
+
chain: EvmChainName;
|
|
17
|
+
/**
|
|
18
|
+
* Asset to settle with.
|
|
19
|
+
* - 'native' — chain's native token (ETH on L1/L2, MATIC on Polygon, CELO on Celo)
|
|
20
|
+
* - 'USDC' — Circle's native USDC (ERC-20)
|
|
21
|
+
* - 'cUSD' / 'cEUR' / 'cREAL' — Mento stablecoins (Celo only)
|
|
22
|
+
* - any string symbol present in the chain's `stablecoins` map
|
|
23
|
+
* @default 'native'
|
|
24
|
+
*/
|
|
25
|
+
asset?: 'native' | 'USDC' | 'cUSD' | 'cEUR' | 'cREAL' | 'USDT' | string;
|
|
26
|
+
/** Hex private key (0x-prefixed). If omitted, a random key is generated. */
|
|
27
|
+
privateKey?: `0x${string}`;
|
|
28
|
+
/** Optional custom RPC URL. Uses viem's default public RPCs if omitted. */
|
|
29
|
+
rpcUrl?: string;
|
|
30
|
+
/** Optional logger. SDK is silent by default. */
|
|
31
|
+
logger?: Logger;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* EvmPaymentAdapter — Universal EVM on-chain settlement.
|
|
35
|
+
*
|
|
36
|
+
* One adapter for ALL EVM chains supported by x402:
|
|
37
|
+
* Base, Arbitrum, Optimism, Ethereum, Polygon — mainnet & testnet.
|
|
38
|
+
*
|
|
39
|
+
* Supports native token (ETH/MATIC) and USDC (Circle ERC-20) transfers.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* // Arbitrum USDC settlement
|
|
44
|
+
* const adapter = new EvmPaymentAdapter({
|
|
45
|
+
* chain: 'arbitrum',
|
|
46
|
+
* asset: 'USDC',
|
|
47
|
+
* privateKey: '0x...',
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* // Base ETH settlement (testnet)
|
|
51
|
+
* const adapter = new EvmPaymentAdapter({
|
|
52
|
+
* chain: 'base-sepolia',
|
|
53
|
+
* asset: 'native',
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @see https://x402.org — x402 payment protocol
|
|
58
|
+
* @see https://envoy.dev — envoy production infrastructure
|
|
59
|
+
*/
|
|
60
|
+
export declare class EvmPaymentAdapter implements PaymentAdapter {
|
|
61
|
+
readonly chainName: string;
|
|
62
|
+
readonly caip2Id: string;
|
|
63
|
+
private wallet;
|
|
64
|
+
private publicClient;
|
|
65
|
+
private account;
|
|
66
|
+
private chainConfig;
|
|
67
|
+
private asset;
|
|
68
|
+
private log;
|
|
69
|
+
constructor(options: EvmAdapterOptions);
|
|
70
|
+
getAddress(): string;
|
|
71
|
+
/** Get native token balance (ETH, MATIC, etc.). */
|
|
72
|
+
getNativeBalance(): Promise<string>;
|
|
73
|
+
/** Get USDC balance (6 decimals). Returns '0.00' if USDC not supported. */
|
|
74
|
+
getUsdcBalance(): Promise<string>;
|
|
75
|
+
/** Get balance for any stablecoin symbol present on this chain. Returns '0.00' if not supported. */
|
|
76
|
+
getStablecoinBalance(symbol: string): Promise<string>;
|
|
77
|
+
/** List stablecoin symbols available on this chain. */
|
|
78
|
+
listStablecoins(): string[];
|
|
79
|
+
pay(destination: string, amount: string, network: string): Promise<string | null>;
|
|
80
|
+
private payNative;
|
|
81
|
+
private payStablecoin;
|
|
82
|
+
private shortAddr;
|
|
83
|
+
}
|
|
84
|
+
/** Returns metadata for all supported EVM chains. */
|
|
85
|
+
export declare function listEvmChains(): Array<{
|
|
86
|
+
name: EvmChainName;
|
|
87
|
+
displayName: string;
|
|
88
|
+
chainId: number;
|
|
89
|
+
caip2Id: string;
|
|
90
|
+
hasUsdc: boolean;
|
|
91
|
+
stablecoins: string[];
|
|
92
|
+
}>;
|
|
93
|
+
//# sourceMappingURL=evm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../src/adapters/evm.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAI/C,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,gBAAgB,GAChB,MAAM,GACN,cAAc,GACd,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,kBAAkB,GAClB,SAAS,GACT,cAAc,GACd,QAAQ,GACR,gBAAgB,CAAC;AAErB,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA0KD,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxE,4EAA4E;IAC5E,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,EAAE,iBAAiB;IAwCtC,UAAU,IAAI,MAAM;IAIpB,mDAAmD;IAC7C,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOzC,2EAA2E;IACrE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC,oGAAoG;IAC9F,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc3D,uDAAuD;IACvD,eAAe,IAAI,MAAM,EAAE;IAIrB,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YASX,SAAS;YAqCT,aAAa;IA2C3B,OAAO,CAAC,SAAS;CAGlB;AAID,qDAAqD;AACrD,wBAAgB,aAAa,IAAI,KAAK,CAAC;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC,CASD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { PaymentAdapter } from './types';
|
|
2
|
+
export { EvmPaymentAdapter, EvmAdapterOptions, EvmChainName, listEvmChains } from './evm';
|
|
3
|
+
export { StripePaymentAdapter, StripeAdapterOptions } from './stripe';
|
|
4
|
+
export { BasePaymentAdapter, BaseAdapterOptions } from './base';
|
|
5
|
+
export { StellarPaymentAdapter, StellarPaymentAdapterOptions } from './stellar';
|
|
6
|
+
export { SolanaPaymentAdapter, SolanaAdapterOptions } from './solana';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OWS Adapter — Bridge between Open Wallet Standard and envoy.
|
|
3
|
+
*
|
|
4
|
+
* Uses `@open-wallet-standard/core` for local key management,
|
|
5
|
+
* policy-gated signing, and multi-chain address derivation.
|
|
6
|
+
* envoy handles the payment protocol layer (x402, MPP).
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* ```
|
|
10
|
+
* Agent → EnvoyClient → OWSAdapter → @open-wallet-standard/core
|
|
11
|
+
* ├── createWallet()
|
|
12
|
+
* ├── signTransaction()
|
|
13
|
+
* ├── signMessage()
|
|
14
|
+
* └── Policy Engine (spending limits)
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { createOwsAdapter } from 'envoy-pay';
|
|
20
|
+
*
|
|
21
|
+
* // Create adapter backed by OWS local wallet
|
|
22
|
+
* const adapter = createOwsAdapter({
|
|
23
|
+
* walletName: 'agent-treasury',
|
|
24
|
+
* chain: 'evm',
|
|
25
|
+
* chainId: 'eip155:8453',
|
|
26
|
+
* rpcUrl: 'https://mainnet.base.org',
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* // Use with envoy client
|
|
30
|
+
* const client = new EnvoyClient({ adapter });
|
|
31
|
+
* await client.handle402(response);
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @see https://github.com/open-wallet-standard/core
|
|
35
|
+
* @see OWS Specification: docs/00-specification.md
|
|
36
|
+
*/
|
|
37
|
+
import type { PaymentAdapter } from './types';
|
|
38
|
+
export interface OwsAdapterOptions {
|
|
39
|
+
/** Name of the OWS wallet (created if it doesn't exist). */
|
|
40
|
+
walletName: string;
|
|
41
|
+
/** Chain family for signing ('evm', 'solana', 'stellar', etc.). */
|
|
42
|
+
chain: 'evm' | 'solana' | 'xrpl' | 'sui' | 'bitcoin' | 'cosmos' | 'tron' | 'filecoin';
|
|
43
|
+
/** CAIP-2 chain identifier (e.g. 'eip155:8453'). */
|
|
44
|
+
chainId: string;
|
|
45
|
+
/** Custom RPC URL for signAndSend. If omitted, OWS uses built-in defaults. */
|
|
46
|
+
rpcUrl?: string;
|
|
47
|
+
/** OWS vault path. Defaults to ~/.ows */
|
|
48
|
+
vaultPath?: string;
|
|
49
|
+
/** Passphrase for encrypted wallets, or an OWS API key token (ows_key_...). */
|
|
50
|
+
passphrase?: string;
|
|
51
|
+
/** Account index for HD derivation. Defaults to 0. */
|
|
52
|
+
accountIndex?: number;
|
|
53
|
+
/** Human-readable chain name for display. */
|
|
54
|
+
chainName?: string;
|
|
55
|
+
/** Logger function. */
|
|
56
|
+
logger?: (msg: string) => void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Create a PaymentAdapter backed by an OWS local wallet.
|
|
60
|
+
*
|
|
61
|
+
* The adapter automatically creates the wallet if it doesn't exist,
|
|
62
|
+
* and derives the address for the specified chain.
|
|
63
|
+
*/
|
|
64
|
+
export declare function createOwsAdapter(options: OwsAdapterOptions): PaymentAdapter;
|
|
65
|
+
/**
|
|
66
|
+
* Create an OWS policy for agent spending limits.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* createOwsPolicy({
|
|
71
|
+
* id: 'agent-budget',
|
|
72
|
+
* name: 'Agent daily budget',
|
|
73
|
+
* allowedChains: ['eip155:8453'],
|
|
74
|
+
* expiresAt: '2026-12-31T23:59:59Z',
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function createOwsPolicy(options: {
|
|
79
|
+
id: string;
|
|
80
|
+
name: string;
|
|
81
|
+
allowedChains?: string[];
|
|
82
|
+
expiresAt?: string;
|
|
83
|
+
vaultPath?: string;
|
|
84
|
+
}): void;
|
|
85
|
+
/**
|
|
86
|
+
* Create a scoped OWS API key for agent access.
|
|
87
|
+
* The agent uses this token as the passphrase — it NEVER sees the private key.
|
|
88
|
+
*
|
|
89
|
+
* @returns The API key token (shown once — caller must save it)
|
|
90
|
+
*/
|
|
91
|
+
export declare function createOwsAgentKey(options: {
|
|
92
|
+
name: string;
|
|
93
|
+
walletName: string;
|
|
94
|
+
policyIds: string[];
|
|
95
|
+
passphrase: string;
|
|
96
|
+
expiresAt?: string;
|
|
97
|
+
vaultPath?: string;
|
|
98
|
+
}): {
|
|
99
|
+
token: string;
|
|
100
|
+
id: string;
|
|
101
|
+
name: string;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Import an existing wallet into OWS from a mnemonic.
|
|
105
|
+
*/
|
|
106
|
+
export declare function importOwsWallet(name: string, mnemonic: string, passphrase?: string, vaultPath?: string): import("@open-wallet-standard/core").WalletInfo;
|
|
107
|
+
/**
|
|
108
|
+
* Import an existing wallet from a private key.
|
|
109
|
+
*/
|
|
110
|
+
export declare function importOwsWalletFromKey(name: string, privateKeyHex: string, chain?: 'evm' | 'solana', passphrase?: string, vaultPath?: string): import("@open-wallet-standard/core").WalletInfo;
|
|
111
|
+
/**
|
|
112
|
+
* Export the mnemonic from an OWS wallet.
|
|
113
|
+
*/
|
|
114
|
+
export declare function exportOwsWallet(nameOrId: string, passphrase?: string, vaultPath?: string): string;
|
|
115
|
+
/**
|
|
116
|
+
* List all OWS wallets.
|
|
117
|
+
*/
|
|
118
|
+
export declare function listOwsWallets(vaultPath?: string): import("@open-wallet-standard/core").WalletInfo[];
|
|
119
|
+
/**
|
|
120
|
+
* Delete an OWS wallet.
|
|
121
|
+
*/
|
|
122
|
+
export declare function deleteOwsWallet(nameOrId: string, vaultPath?: string): void;
|
|
123
|
+
//# sourceMappingURL=ows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ows.d.ts","sourceRoot":"","sources":["../../../src/adapters/ows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAiBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IAEnB,mEAAmE;IACnE,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAEtF,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAEhB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uBAAuB;IACvB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CA6F3E;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CA2BP;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAS9C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,mDAGnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,KAAK,GAAG,QAAgB,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,mDAGnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,qDAEhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,QAEnE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { PaymentAdapter } from './types';
|
|
2
|
+
import { Logger } from '../logger';
|
|
3
|
+
export interface SolanaAdapterOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Solana secret key as a Uint8Array (64 bytes) or base58 string.
|
|
6
|
+
* If omitted, a random keypair is generated (useful for receiving-only agents).
|
|
7
|
+
*/
|
|
8
|
+
secretKey?: Uint8Array | number[];
|
|
9
|
+
/**
|
|
10
|
+
* Network: 'mainnet-beta' | 'devnet' | 'testnet'
|
|
11
|
+
* @default 'devnet'
|
|
12
|
+
*/
|
|
13
|
+
network?: 'mainnet-beta' | 'devnet' | 'testnet';
|
|
14
|
+
/**
|
|
15
|
+
* Asset to settle with.
|
|
16
|
+
* - 'SOL' — native SOL (default)
|
|
17
|
+
* - 'USDC' — Circle's native USDC (SPL token)
|
|
18
|
+
* @default 'SOL'
|
|
19
|
+
*/
|
|
20
|
+
asset?: 'SOL' | 'USDC';
|
|
21
|
+
/** Optional custom RPC URL. Uses Solana public RPC if omitted. */
|
|
22
|
+
rpcUrl?: string;
|
|
23
|
+
/** Optional logger. SDK is silent by default. */
|
|
24
|
+
logger?: Logger;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* SolanaPaymentAdapter — On-chain settlement on Solana.
|
|
28
|
+
*
|
|
29
|
+
* Supports:
|
|
30
|
+
* - Native SOL transfers (System Program)
|
|
31
|
+
* - USDC (SPL Token) transfers with automatic ATA creation
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* // SOL on devnet
|
|
36
|
+
* const adapter = new SolanaPaymentAdapter({
|
|
37
|
+
* secretKey: myKeypair.secretKey,
|
|
38
|
+
* network: 'devnet',
|
|
39
|
+
* asset: 'SOL',
|
|
40
|
+
* logger: console.log,
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* // USDC on mainnet
|
|
44
|
+
* const adapter = new SolanaPaymentAdapter({
|
|
45
|
+
* secretKey: myKeypair.secretKey,
|
|
46
|
+
* network: 'mainnet-beta',
|
|
47
|
+
* asset: 'USDC',
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @see https://spl.solana.com/token — SPL Token program
|
|
52
|
+
* @see https://envoy.dev — envoy production infrastructure
|
|
53
|
+
*/
|
|
54
|
+
export declare class SolanaPaymentAdapter implements PaymentAdapter {
|
|
55
|
+
readonly chainName: string;
|
|
56
|
+
readonly caip2Id: string;
|
|
57
|
+
private connection;
|
|
58
|
+
private keypair;
|
|
59
|
+
private asset;
|
|
60
|
+
private usdcMint;
|
|
61
|
+
private network;
|
|
62
|
+
private log;
|
|
63
|
+
constructor(options: SolanaAdapterOptions);
|
|
64
|
+
getAddress(): string;
|
|
65
|
+
/** Get SOL balance in SOL (not lamports). */
|
|
66
|
+
getSolBalance(): Promise<string>;
|
|
67
|
+
/** Get USDC balance (6 decimals). */
|
|
68
|
+
getUsdcBalance(): Promise<string>;
|
|
69
|
+
pay(destination: string, amount: string, network: string): Promise<string | null>;
|
|
70
|
+
private paySol;
|
|
71
|
+
private payUsdc;
|
|
72
|
+
/** Find the Associated Token Account for USDC. Returns null if none. */
|
|
73
|
+
private findAta;
|
|
74
|
+
/** Request SOL airdrop from devnet/testnet faucet (for testing). */
|
|
75
|
+
requestAirdrop(amountSol?: number): Promise<string | null>;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=solana.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../src/adapters/solana.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAY/C,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,EAAE,oBAAoB;IA4BzC,UAAU,IAAI,MAAM;IAIpB,6CAA6C;IACvC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAKtC,qCAAqC;IAC/B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAWjC,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YASX,MAAM;YAwCN,OAAO;IA2DrB,wEAAwE;YAC1D,OAAO;IAoBrB,oEAAoE;IAC9D,cAAc,CAAC,SAAS,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAiBpE"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { PaymentAdapter } from './types';
|
|
2
|
+
import { Logger } from '../logger';
|
|
3
|
+
export interface StellarPaymentAdapterOptions {
|
|
4
|
+
/** Stellar secret key for the agent's wallet. */
|
|
5
|
+
secretKey: string;
|
|
6
|
+
/**
|
|
7
|
+
* Asset to settle with:
|
|
8
|
+
* - 'XLM' — native lumens (default for testnet)
|
|
9
|
+
* - 'USDC' — Circle's native USDC on Stellar (recommended for production)
|
|
10
|
+
*/
|
|
11
|
+
asset?: 'XLM' | 'USDC';
|
|
12
|
+
/**
|
|
13
|
+
* Network: 'mainnet' | 'testnet' (default: 'testnet').
|
|
14
|
+
* Determines Horizon URL, network passphrase, and CAIP-2 ID.
|
|
15
|
+
*/
|
|
16
|
+
network?: 'mainnet' | 'testnet';
|
|
17
|
+
/** Override the Horizon URL. */
|
|
18
|
+
horizonUrl?: string;
|
|
19
|
+
/** Optional logger. */
|
|
20
|
+
logger?: Logger;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* StellarPaymentAdapter — On-chain settlement on the Stellar network.
|
|
24
|
+
*
|
|
25
|
+
* Supports:
|
|
26
|
+
* - Native XLM payments (testnet default)
|
|
27
|
+
* - Circle USDC payments (production recommended)
|
|
28
|
+
*
|
|
29
|
+
* The production envoy stack settles USDC on Stellar mainnet.
|
|
30
|
+
* @see https://envoy.dev
|
|
31
|
+
* @see https://stellar.org/usdc
|
|
32
|
+
*/
|
|
33
|
+
export declare class StellarPaymentAdapter implements PaymentAdapter {
|
|
34
|
+
readonly chainName = "Stellar";
|
|
35
|
+
readonly caip2Id: string;
|
|
36
|
+
private keypair;
|
|
37
|
+
private server;
|
|
38
|
+
private networkPassphrase;
|
|
39
|
+
private assetType;
|
|
40
|
+
private log;
|
|
41
|
+
constructor(options: StellarPaymentAdapterOptions);
|
|
42
|
+
getAddress(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Get the Stellar asset object based on configuration.
|
|
45
|
+
* - XLM: native asset (no trustline needed)
|
|
46
|
+
* - USDC: Circle's issued USDC (trustline required)
|
|
47
|
+
*/
|
|
48
|
+
private getAsset;
|
|
49
|
+
/**
|
|
50
|
+
* Convert atomic units to human-readable amount.
|
|
51
|
+
* Stellar uses 7 decimal places (stroops) for all assets.
|
|
52
|
+
*/
|
|
53
|
+
private formatAmount;
|
|
54
|
+
pay(destination: string, amount: string, network: string): Promise<string | null>;
|
|
55
|
+
/**
|
|
56
|
+
* Check if the account has a USDC trustline.
|
|
57
|
+
* Returns false if using XLM or if the trustline exists.
|
|
58
|
+
* Returns true if USDC is selected but trustline is missing.
|
|
59
|
+
*/
|
|
60
|
+
needsTrustline(): Promise<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Establish a USDC trustline (required before receiving USDC).
|
|
63
|
+
* Only needed once per account.
|
|
64
|
+
*/
|
|
65
|
+
createUsdcTrustline(): Promise<string | null>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=stellar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stellar.d.ts","sourceRoot":"","sources":["../../../src/adapters/stellar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAK/C,MAAM,WAAW,4BAA4B;IAC3C,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,SAAgB,SAAS,aAAa;IACtC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,EAAE,4BAA4B;IAqBjD,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAOhB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIP,GAAG,CACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0CzB;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB/C;;;OAGG;IACU,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CA6B3D"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { PaymentAdapter } from './types';
|
|
2
|
+
import { Logger } from '../logger';
|
|
3
|
+
import { MppChallenge } from '../mpp';
|
|
4
|
+
/**
|
|
5
|
+
* Configuration for the Stripe MPP adapter.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const adapter = new StripePaymentAdapter({
|
|
10
|
+
* stripeSecretKey: process.env.STRIPE_SECRET_KEY!,
|
|
11
|
+
* networkId: 'my-business-network',
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export interface StripeAdapterOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Stripe secret key (sk_test_... or sk_live_...).
|
|
18
|
+
* Used to create SPTs and PaymentIntents.
|
|
19
|
+
*/
|
|
20
|
+
stripeSecretKey: string;
|
|
21
|
+
/**
|
|
22
|
+
* Stripe Business Network ID.
|
|
23
|
+
* Found in Dashboard → Settings → Business profile.
|
|
24
|
+
*/
|
|
25
|
+
networkId?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Accepted payment method types.
|
|
28
|
+
* @default ['card']
|
|
29
|
+
*/
|
|
30
|
+
paymentMethodTypes?: string[];
|
|
31
|
+
/**
|
|
32
|
+
* Default payment method ID for autonomous agents.
|
|
33
|
+
* e.g. 'pm_card_visa' for test mode.
|
|
34
|
+
* If set, the adapter can create SPTs autonomously.
|
|
35
|
+
*/
|
|
36
|
+
paymentMethodId?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Default currency for payments.
|
|
39
|
+
* @default 'usd'
|
|
40
|
+
*/
|
|
41
|
+
currency?: string;
|
|
42
|
+
/**
|
|
43
|
+
* SPT expiration window in seconds.
|
|
44
|
+
* @default 300 (5 minutes)
|
|
45
|
+
*/
|
|
46
|
+
sptExpirySeconds?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Stripe API base URL.
|
|
49
|
+
* @default 'https://api.stripe.com'
|
|
50
|
+
*/
|
|
51
|
+
stripeApiBase?: string;
|
|
52
|
+
/** Optional logger. SDK is silent by default. */
|
|
53
|
+
logger?: Logger;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Result of creating a Shared Payment Token.
|
|
57
|
+
*/
|
|
58
|
+
interface SptResult {
|
|
59
|
+
id: string;
|
|
60
|
+
object: string;
|
|
61
|
+
expires_at?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Result of creating/confirming a PaymentIntent.
|
|
65
|
+
*/
|
|
66
|
+
interface PaymentIntentResult {
|
|
67
|
+
id: string;
|
|
68
|
+
status: string;
|
|
69
|
+
amount: number;
|
|
70
|
+
currency: string;
|
|
71
|
+
next_action?: {
|
|
72
|
+
crypto_display_details?: {
|
|
73
|
+
deposit_addresses?: Record<string, {
|
|
74
|
+
address: string;
|
|
75
|
+
supported_tokens?: Array<{
|
|
76
|
+
token_currency: string;
|
|
77
|
+
token_contract_address: string;
|
|
78
|
+
}>;
|
|
79
|
+
}>;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* StripePaymentAdapter — Machine Payments Protocol (MPP) settlement.
|
|
85
|
+
*
|
|
86
|
+
* Implements the full MPP flow for Stripe:
|
|
87
|
+
* 1. Receives 402 + `WWW-Authenticate: Payment` challenge
|
|
88
|
+
* 2. Creates a Shared Payment Token (SPT) via Stripe API
|
|
89
|
+
* 3. Builds MPP Credential with SPT
|
|
90
|
+
* 4. Returns credential for `Authorization: Payment` header
|
|
91
|
+
*
|
|
92
|
+
* Works in two modes:
|
|
93
|
+
* - **Autonomous** (with paymentMethodId): Creates SPTs automatically
|
|
94
|
+
* - **Delegated** (without): Requires external SPT provisioning via `setSptToken()`
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* // Autonomous mode — agent has a payment method on file
|
|
99
|
+
* const adapter = new StripePaymentAdapter({
|
|
100
|
+
* stripeSecretKey: 'sk_test_...',
|
|
101
|
+
* networkId: 'my-network',
|
|
102
|
+
* paymentMethodId: 'pm_card_visa', // test card
|
|
103
|
+
* });
|
|
104
|
+
*
|
|
105
|
+
* // Delegated mode — external system provides SPTs
|
|
106
|
+
* const adapter = new StripePaymentAdapter({
|
|
107
|
+
* stripeSecretKey: 'sk_test_...',
|
|
108
|
+
* });
|
|
109
|
+
* adapter.setSptToken('spt_...');
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @see https://mpp.dev/payment-methods/stripe — MPP Stripe method spec
|
|
113
|
+
* @see https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens
|
|
114
|
+
*/
|
|
115
|
+
export declare class StripePaymentAdapter implements PaymentAdapter {
|
|
116
|
+
readonly chainName = "Stripe MPP";
|
|
117
|
+
readonly caip2Id: string;
|
|
118
|
+
private secretKey;
|
|
119
|
+
private networkId;
|
|
120
|
+
private paymentMethodTypes;
|
|
121
|
+
private paymentMethodId;
|
|
122
|
+
private currency;
|
|
123
|
+
private sptExpirySeconds;
|
|
124
|
+
private stripeApiBase;
|
|
125
|
+
private log;
|
|
126
|
+
/** Externally-provided SPT for delegated mode */
|
|
127
|
+
private externalSpt;
|
|
128
|
+
/** Last MPP challenge processed (for credential building) */
|
|
129
|
+
private lastChallenge;
|
|
130
|
+
constructor(options: StripeAdapterOptions);
|
|
131
|
+
/**
|
|
132
|
+
* Set or update an externally-provided SPT token.
|
|
133
|
+
* Used in delegated mode when an external system provides the SPT.
|
|
134
|
+
*/
|
|
135
|
+
setSptToken(token: string): void;
|
|
136
|
+
/**
|
|
137
|
+
* Store a parsed MPP challenge for credential building.
|
|
138
|
+
* Called by EnvoyClient when a 402 with `WWW-Authenticate: Payment method="stripe"` is received.
|
|
139
|
+
*/
|
|
140
|
+
setMppChallenge(challenge: MppChallenge): void;
|
|
141
|
+
/**
|
|
142
|
+
* Get the last built MPP credential (base64url-encoded).
|
|
143
|
+
* Used by EnvoyClient to populate the `Authorization: Payment` header.
|
|
144
|
+
*/
|
|
145
|
+
getLastCredential(): string | null;
|
|
146
|
+
private _lastCredential;
|
|
147
|
+
getAddress(): string;
|
|
148
|
+
/**
|
|
149
|
+
* Execute a Stripe MPP payment.
|
|
150
|
+
*
|
|
151
|
+
* This method handles the full SPT lifecycle:
|
|
152
|
+
* 1. If an external SPT is set → use it directly
|
|
153
|
+
* 2. If paymentMethodId is set → create SPT autonomously via Stripe API
|
|
154
|
+
* 3. Build MPP Credential with the SPT
|
|
155
|
+
* 4. Return credential string (used as "tx hash" equivalent)
|
|
156
|
+
*
|
|
157
|
+
* @param destination - Recipient (Stripe account or payment endpoint)
|
|
158
|
+
* @param amount - Amount in smallest currency unit (e.g. cents)
|
|
159
|
+
* @param network - Network identifier (ignored for Stripe, kept for interface compat)
|
|
160
|
+
* @returns Base64url-encoded MPP credential string, or null on failure
|
|
161
|
+
*/
|
|
162
|
+
pay(destination: string, amount: string, network: string): Promise<string | null>;
|
|
163
|
+
/**
|
|
164
|
+
* Create a Shared Payment Token (SPT) via Stripe API.
|
|
165
|
+
*
|
|
166
|
+
* Test mode: POST /v1/test_helpers/shared_payment/granted_tokens
|
|
167
|
+
* Live mode: POST /v1/shared_payment/issued_tokens (TBD by Stripe)
|
|
168
|
+
*/
|
|
169
|
+
createSpt(amount: number, currency: string): Promise<SptResult | null>;
|
|
170
|
+
/**
|
|
171
|
+
* Create and confirm a PaymentIntent using an SPT.
|
|
172
|
+
* Used in fallback mode (no MPP challenge, direct Stripe API).
|
|
173
|
+
*/
|
|
174
|
+
createPaymentIntent(sptId: string, amount: number, currency: string): Promise<PaymentIntentResult | null>;
|
|
175
|
+
/**
|
|
176
|
+
* Create a crypto deposit-mode PaymentIntent.
|
|
177
|
+
* This is the verified-working flow for MPP on Stripe.
|
|
178
|
+
* Uses Tempo network + USDC stablecoins.
|
|
179
|
+
*
|
|
180
|
+
* @param amount - Amount in cents (e.g. 100 = $1.00)
|
|
181
|
+
* @param currency - Currency code (default: 'usd')
|
|
182
|
+
* @returns PaymentIntentResult with deposit address, or null on failure
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```ts
|
|
186
|
+
* const pi = await adapter.createCryptoPaymentIntent(100, 'usd');
|
|
187
|
+
* // pi.next_action.crypto_display_details.deposit_addresses.tempo.address
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
createCryptoPaymentIntent(amount: number, currency?: string): Promise<PaymentIntentResult | null>;
|
|
191
|
+
/**
|
|
192
|
+
* Build and return a fully-formed MPP Challenge for server-side use.
|
|
193
|
+
* Useful if you want to GATE your own API with MPP 402.
|
|
194
|
+
*
|
|
195
|
+
* @param amount - Amount to charge (in smallest unit)
|
|
196
|
+
* @param options - Challenge options
|
|
197
|
+
* @returns WWW-Authenticate header value
|
|
198
|
+
*/
|
|
199
|
+
buildServerChallenge(amount: string, options?: {
|
|
200
|
+
currency?: string;
|
|
201
|
+
description?: string;
|
|
202
|
+
expiresInSeconds?: number;
|
|
203
|
+
}): string;
|
|
204
|
+
}
|
|
205
|
+
export {};
|
|
206
|
+
//# sourceMappingURL=stripe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../../src/adapters/stripe.ts"],"names":[],"mappings":"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"}
|