simonflex-framework
Version: 
A library implements Meter Flex interface
48 lines (47 loc) • 1.31 kB
TypeScript
/// <reference types="node" />
/** Net interface supports http transport */
export interface Net {
    /** base URL */
    readonly baseURL: string;
    /**
     * perform http request
     * @param method 'GET' or 'POST'
     * @param path path to access
     * @param params additional params
     * @returns response body, JSON decoded
     */
    http(method: 'GET' | 'POST', path: string, params?: Net.Params): Promise<any>;
}
export declare namespace Net {
    /** http request params */
    interface Params {
        query?: Record<string, string>;
        body?: any;
        headers?: Record<string, string>;
        validateResponseHeader?: (headers: Record<string, string>) => void;
    }
    /** websocket reader */
    interface WebSocketReader {
        /** read data */
        read(): Promise<any>;
        close(): void;
    }
}
/** Wallet interface manages private keys */
export interface Wallet {
    /** list all keys */
    readonly list: Wallet.Key[];
}
export declare namespace Wallet {
    /** describes an operational key */
    interface Key {
        /** address derived from key */
        address: string;
        /**
         * sign message hash
         * @param msgHash message hash
         * @returns signature
         */
        sign(msgHash: Buffer): Promise<Buffer>;
    }
}