UNPKG

nano-pow

Version:

Proof-of-work generation and validation with WebGPU/WebGL/WASM for Nano cryptocurrency.

50 lines (49 loc) 2.16 kB
import { ApiSupport } from '#utils'; type ApiSupportedTypes = keyof typeof ApiSupport; /** * Input for configuring NanoPow. Must be validated prior to usage, so types are * `unknown`, but JSDoc indicates expected data types. * * @param {string} [api=cpu] - Specifies how work is generated. Default: cpu * @param {boolean} [debug=false] - Enables additional debug logging to the console. Default: false * @param {(bigint|string)} [difficulty=0xFFFFFFF800000000] - Minimum value result of `BLAKE2b(nonce||blockhash)`. Default: 0xFFFFFFF800000000 * @param {number} [effort=0x4] - GPU load when generating work. Larger values are not necessarily better since they can quickly overwhelm the GPU. Default: 0x4 */ export type NanoPowOptions = { api?: unknown; debug?: unknown; difficulty?: unknown; effort?: unknown; }; declare class NanoPowConfigConstructor implements NanoPowOptions { #private; static get isInternal(): boolean; api: ApiSupportedTypes; debug: boolean; difficulty: bigint; effort: number; toJSON(): { api: "cpu" | "webgl" | "webgpu" | "wasm"; debug: boolean; difficulty: string; effort: number; }; constructor(api: ApiSupportedTypes, debug: boolean, difficulty: bigint, effort: number); static create(options: { api: unknown; debug: unknown; difficulty: unknown; effort: unknown; } | unknown): Promise<NanoPowConfigConstructor>; } /** * Validated NanoPowOptions object used to guarantee values and types. * Attempting to call using `new` with throw a TypeError. * * @param {string} api - Specifies how work is generated. Default: best available * @param {boolean} debug - Enables additional debug logging to the console. Default: false * @param {bigint} difficulty - Minimum value result of `BLAKE2b(nonce||blockhash)`. Default: 0xFFFFFFF800000000 * @param {number} effort - GPU load when generating work. Larger values are not necessarily better since they can quickly overwhelm the GPU. Default: 0x4 */ export declare const NanoPowConfig: (options: any) => Promise<NanoPowConfigConstructor>; export {};