@bsv/payment-express-middleware
Version:
BSV Blockchain service monetization express middleware
41 lines • 1.26 kB
text/typescript
import { Request } from "express";
import { WalletInterface } from "@bsv/sdk";
//#region src/types.d.ts
interface PaymentReceipt {
satoshisPaid: number;
accepted: true;
tx: string;
txid: string;
}
interface PaymentRequest extends Request {
auth?: {
identityKey?: unknown;
};
payment?: PaymentReceipt;
}
/**
* Replay claims must be atomic. Return false when the transaction ID has
* already been claimed. Shared deployments should use a durable implementation.
*/
interface PaymentReplayStore {
claim: (transactionId: string) => boolean | Promise<boolean>;
}
interface PaymentLogger {
error?: (message: string, context?: Record<string, unknown>) => void;
warn?: (message: string, context?: Record<string, unknown>) => void;
}
interface PaymentMiddlewareOptions {
calculateRequestPrice?: (req: PaymentRequest) => number | Promise<number>;
wallet: WalletInterface;
replayStore?: PaymentReplayStore;
maxPaymentHeaderBytes?: number;
logger?: PaymentLogger;
}
interface BSVPayment {
derivationPrefix: string;
derivationSuffix: string;
transaction: string;
}
//#endregion
export { BSVPayment, PaymentLogger, PaymentMiddlewareOptions, PaymentReceipt, PaymentReplayStore, PaymentRequest };
//# sourceMappingURL=types.d.cts.map