UNPKG

iso-filecoin

Version:

Isomorphic filecoin abstractions for RPC, signatures, address, token and wallet

125 lines 4.11 kB
/** * Verify raw signature * * @param {Uint8Array} signature * @param {Uint8Array} data * @param {Uint8Array} publicKey * @returns {boolean} * @example * ```ts twoslash * import { verifyRaw } from 'iso-filecoin/ledger' * * const signature = new Uint8Array([1, 2, 3]) * const data = new Uint8Array([4, 5, 6]) * const publicKey = new Uint8Array([7, 8, 9]) * const isValid = verifyRaw(signature, data, publicKey) * // => true * ``` */ export function verifyRaw(signature: Uint8Array, data: Uint8Array, publicKey: Uint8Array): boolean; export namespace APDU_CODES { let OK: number; let BUSY: number; let EXECUTION_ERROR: number; let WRONG_LENGTH: number; let EMPTY_BUFFER: number; let OUTPUT_BUFFER_TOO_SMALL: number; let DATA_INVALID: number; let CONDITIONS_NOT_SATISFIED: number; let COMMAND_NOT_ALLOWED: number; let BAD_KEY_HANDLE: number; let INVALIDP1P2: number; let INS_NOT_SUPPORTED: number; let CLA_NOT_SUPPORTED: number; let UNKNOWN: number; let SIGN_VERIFY_ERROR: number; let APP_NOT_OPEN: number; } export const EIP191_PREFIX: "Filecoin Sign Bytes:\n"; export const IS_HID_SUPPORTED: boolean; /** * Filecoin app error */ export class FilecoinAppError extends Error { /** * @param {number} statusCode The error status code coming from a Transport implementation * @param {string} [data] The error message coming from a instruction call */ constructor(statusCode: number, data?: string); /** @type {number} */ statusCode: number; } /** * Ledger Filecoin app client */ export class LedgerFilecoin { /** * * @param {Transport} transport - Ledger transport */ constructor(transport: Transport); transport: import("@ledgerhq/hw-transport/lib-es/Transport.js").default; /** * Get the version of the Filecoin app * * @see https://github.com/LedgerHQ/app-filecoin/blob/develop/docs/APDUSPEC.md#get_version * @example * ```ts twoslash * import { LedgerFilecoin } from 'iso-filecoin/ledger' * import TransportWebUSB from '@ledgerhq/hw-transport-webusb' * * const transport = await TransportWebUSB.create() * const ledger = new LedgerFilecoin(transport) * const version = await ledger.getVersion() * // => '1.0.0' * ``` */ getVersion(): Promise<string>; /** * Get the secp256k1 address for a given derivation path * * @see https://github.com/LedgerHQ/app-filecoin/blob/develop/docs/APDUSPEC.md#ins_get_addr_secp256k1 * * @param {string} path - Derivation path * @param {boolean} [showOnDevice=false] - Whether to show the address on the device * @returns {Promise<import('./types.js').IAccount>} */ getAddress(path: string, showOnDevice?: boolean): Promise<import("./types.js").IAccount>; /** * Sign a message * * @param {string} path - Derivation path * @param {Uint8Array} message - Message to sign in bytes * @param {SignatureType} [type=SECP256K1] - Signature type */ sign(path: string, message: Uint8Array, type?: SignatureType): Promise<Uint8Array<ArrayBufferLike>>; /** * Sign raw bytes using prefixed message similar to EIP-191 * * @param {string} path - Derivation path * @param {Uint8Array} message - Message to sign */ signRaw(path: string, message: Uint8Array): Promise<Uint8Array<ArrayBufferLike>>; /** * Sign a message using FRC-102 * * @param {string} path - Derivation path * @param {Uint8Array} message - Message to sign */ personalSign(path: string, message: Uint8Array): Promise<Uint8Array<ArrayBufferLike>>; /** * Close the transport */ close(): Promise<void>; } export type Transport = import("./types.js").Transport; export type SignatureType = keyof typeof SIGNATURE_TYPE; declare namespace SIGNATURE_TYPE { let SECP256K1: number; let DATA_CAP: number; let CLIENT_DEAL: number; let RAW_BYTES: number; let PERSONAL_MESSAGE: number; } export {}; //# sourceMappingURL=ledger.d.ts.map