svm-pay
Version:
A payment solution for SVM networks (Solana, Sonic SVM, Eclipse, s00n)
56 lines • 2.05 kB
TypeScript
/**
* SVM-Pay Transfer Request Handler
*
* This file implements the handler for transfer requests in the SVM-Pay protocol.
* Transfer requests are non-interactive requests for simple token transfers.
*/
import { NetworkAdapter, PaymentRecord, SVMNetwork, TransferRequest, RequestType } from './types';
/**
* Payment store interface for persisting payment records
*/
interface PaymentStore {
save(record: PaymentRecord): Promise<void>;
load(id: string): Promise<PaymentRecord | null>;
loadByType(type: RequestType): Promise<PaymentRecord[]>;
update(id: string, updates: Partial<PaymentRecord>): Promise<PaymentRecord>;
delete(id: string): Promise<boolean>;
}
/**
* Handler for transfer requests
*/
export declare class TransferRequestHandler {
private networkAdapters;
private paymentStore;
/**
* Create a new TransferRequestHandler
*
* @param networkAdapters Map of network adapters for each supported network
* @param paymentStore Optional payment store (defaults to in-memory)
*/
constructor(networkAdapters: Map<SVMNetwork, NetworkAdapter>, paymentStore?: PaymentStore);
/**
* Process a transfer request
*
* @param request The transfer request to process
* @returns A payment record for the processed request
*/
processRequest(request: TransferRequest): Promise<PaymentRecord>;
/**
* Submit a signed transaction for a transfer request
*
* @param paymentId The ID of the payment record
* @param transaction The transaction to submit
* @param signature The signature for the transaction
* @returns The updated payment record
*/
submitTransaction(paymentId: string, transaction: string, signature: string): Promise<PaymentRecord>;
/**
* Check the status of a payment
*
* @param paymentId The ID of the payment to check
* @returns The updated payment record
*/
checkStatus(paymentId: string): Promise<PaymentRecord>;
}
export {};
//# sourceMappingURL=transfer-handler.d.ts.map