UNPKG

ws402

Version:

WebSocket implementation of X402 protocol for pay-as-you-go digital resources with automatic refunds

51 lines (50 loc) 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MockPaymentProvider = void 0; /** * Mock payment provider for testing and development * Replace with real payment provider in production */ class MockPaymentProvider { constructor() { this.payments = new Map(); } generatePaymentDetails(amount) { const invoiceId = `mock_invoice_${Date.now()}`; return { provider: 'mock', invoiceId, amount, currency: 'MOCK', paymentAddress: '0xMOCK_ADDRESS', instructions: 'This is a mock payment. In production, replace with real payment provider.', }; } async verifyPayment(proof) { // Simulate async verification await new Promise(resolve => setTimeout(resolve, 100)); // Mock verification - always succeeds with proof amount if (proof && proof.amount) { this.payments.set(proof.txId || 'mock_tx', proof.amount); return { valid: true, amount: proof.amount, }; } return { valid: false, amount: 0, reason: 'Invalid payment proof', }; } async issueRefund(proof, amount) { // Simulate async refund await new Promise(resolve => setTimeout(resolve, 100)); console.log(`[MockPaymentProvider] Refund issued: ${amount} to ${proof.userId || 'unknown'}`); } // Helper for testing getPaymentHistory() { return Array.from(this.payments.entries()); } } exports.MockPaymentProvider = MockPaymentProvider;