@bsv/wallet-toolbox
Version:
BRC100 conforming wallet, wallet storage and wallet signer components
41 lines • 1.54 kB
TypeScript
/**
* StorageServer.ts
*
* A server-side class that "has a" local WalletStorage (like a StorageKnex instance),
* and exposes it via a JSON-RPC POST endpoint using Express.
*/
import { Request } from 'express';
import { sdk, Wallet, StorageProvider } from '../../index.all';
export interface WalletStorageServerOptions {
port: number;
wallet: Wallet;
monetize: boolean;
calculateRequestPrice?: (req: Request) => number | Promise<number>;
adminIdentityKeys?: string[];
}
export declare class StorageServer {
private app;
private port;
private storage;
private wallet;
private monetize;
private calculateRequestPrice?;
private adminIdentityKeys?;
constructor(storage: StorageProvider, options: WalletStorageServerOptions);
private setupRoutes;
private validateParam0;
start(): void;
validateDate(date: Date | string | number): Date;
/**
* Helper to force uniform behavior across database engines.
* Use to process all individual records with time stamps retreived from database.
*/
validateEntity<T extends sdk.EntityTimeStamp>(entity: T, dateFields?: string[]): T;
/**
* Helper to force uniform behavior across database engines.
* Use to process all arrays of records with time stamps retreived from database.
* @returns input `entities` array with contained values validated.
*/
validateEntities<T extends sdk.EntityTimeStamp>(entities: T[], dateFields?: string[]): T[];
}
//# sourceMappingURL=StorageServer.d.ts.map