iso-filecoin
Version:
Isomorphic filecoin abstractions for RPC, signatures, address, token and wallet
157 lines • 6.15 kB
TypeScript
/**
* Generate mnemonic
*/
export function generateMnemonic(): string;
/**
* Get seed from mnemonic
*
* @param {string} mnemonic
* @param {string} [password]
*/
export function mnemonicToSeed(mnemonic: string, password?: string): Uint8Array<ArrayBufferLike>;
/**
* Get HD account from mnemonic
*
* @param {string} mnemonic
* @param {import('./types.js').SignatureType} type
* @param {string} path
* @param {string} [password]
* @param {import('./types.js').Network} [network]
*/
export function accountFromMnemonic(mnemonic: string, type: import("./types.js").SignatureType, path: string, password?: string, network?: import("./types.js").Network): {
type: import("./signature.js").SignatureType;
address: import("./types.js").IAddress;
publicKey: Uint8Array;
path: string;
privateKey: Uint8Array;
};
/**
* Get HD account from seed
*
* @param {Uint8Array} seed
* @param {import('./types.js').SignatureType} type
* @param {string} path
* @param {import('./types.js').Network} [network]
* @returns {SetRequired<import('./types.js').IAccount, 'privateKey' | 'path'>}
*/
export function accountFromSeed(seed: Uint8Array, type: import("./types.js").SignatureType, path: string, network?: import("./types.js").Network): SetRequired<import("./types.js").IAccount, "privateKey" | "path">;
/**
* Get account from private key
*
* Lotus BLS private key is little endian so you need to reverse the byte order. Use `lotusBlsPrivateKeyToBytes` to convert.
*
* @param {Uint8Array} privateKey
* @param {import('./types.js').SignatureType} type
* @param {import('./types.js').Network} network
* @param {string} [path]
* @returns {SetRequired<import('./types.js').IAccount, 'privateKey'>}
*/
export function accountFromPrivateKey(privateKey: Uint8Array, type: import("./types.js").SignatureType, network: import("./types.js").Network, path?: string): SetRequired<import("./types.js").IAccount, "privateKey">;
/**
* Get account from lotus private key export
*
* @param {string} lotusHex - Lotus hex encoded private key .ie `hex({"Type":"bls","PrivateKey":"base64pad(private-key)"})`
* @param {import('./types.js').Network} network - Network
* @returns {import('./types.js').IAccount}
*/
export function accountFromLotus(lotusHex: string, network: import("./types.js").Network): import("./types.js").IAccount;
/**
* Create account
*
* @param {import('./types.js').SignatureType} type
* @param {import('./types.js').Network} network
* @returns {SetRequired<import('./types.js').IAccount, 'privateKey'>}
*/
export function create(type: import("./types.js").SignatureType, network: import("./types.js").Network): SetRequired<import("./types.js").IAccount, "privateKey">;
/**
* Get public key from private key
*
* @param {Uint8Array} privateKey
* @param {import('./types.js').Network} network
* @param {import('./types.js').SignatureType} type
* @returns {import('./types.js').IAccount}
*/
export function getPublicKey(privateKey: Uint8Array, network: import("./types.js").Network, type: import("./types.js").SignatureType): import("./types.js").IAccount;
/**
* Sign filecoin message
*
* @param {Uint8Array} privateKey
* @param {import('./types.js').SignatureType} type
* @param {import('./types.js').MessageObj} message
* @returns
*/
export function signMessage(privateKey: Uint8Array, type: import("./types.js").SignatureType, message: import("./types.js").MessageObj): Signature;
/**
* Sign arbitary bytes similar to `lotus wallet sign`
*
* Lotus BLS private key is little endian so you need to reverse the byte order. Use `lotusBlsPrivateKeyToBytes` to convert.
*
* @param {Uint8Array} privateKey
* @param {import('./types.js').SignatureType} type
* @param {Uint8Array} data
*/
export function sign(privateKey: Uint8Array, type: import("./types.js").SignatureType, data: Uint8Array): Signature;
/**
* Personal sign using FRC-102
*
* @see https://github.com/filecoin-project/FIPs/blob/master/FRCs/frc-0102.md
*
* @param {Uint8Array} privateKey
* @param {import('./types.js').SignatureType} type
* @param {Uint8Array} data
*/
export function personalSign(privateKey: Uint8Array, type: import("./types.js").SignatureType, data: Uint8Array): Signature;
/**
* Personal verify using FRC-102
*
* @see https://github.com/filecoin-project/FIPs/blob/master/FRCs/frc-0102.md
*
* @param {import('./signature.js').Signature} signature
* @param {Uint8Array} data
* @param {Uint8Array} publicKey
*/
export function personalVerify(signature: import("./signature.js").Signature, data: Uint8Array, publicKey: Uint8Array): boolean;
/**
* Verify signatures
*
* @param {import('./signature.js').Signature} signature
* @param {Uint8Array} data
* @param {Uint8Array} publicKey
*/
export function verify(signature: import("./signature.js").Signature, data: Uint8Array, publicKey: Uint8Array): boolean;
/**
* Lotus BLS base64 private key to bytes
* Lotus BLS private key is little endian so you need to reverse the byte order.
*
* @param {string} priv
*/
export function lotusBlsPrivateKeyToBytes(priv: string): Uint8Array<ArrayBufferLike>;
/**
*
* @param {Signature} signature
* @param {Uint8Array} data
*/
export function recoverPublicKey(signature: Signature, data: Uint8Array): Uint8Array<ArrayBufferLike>;
/**
*
* @param {Signature} signature
* @param {Uint8Array} data
* @param {import('./types.js').Network} network
*/
export function recoverAddress(signature: Signature, data: Uint8Array, network: import("./types.js").Network): import("./address.js").AddressSecp256k1 | import("./address.js").AddressBLS;
/**
* Export account to lotus private key export format (hex)
*
* @param {import('./types.js').IAccount} account
*/
export function accountToLotus(account: import("./types.js").IAccount): string;
export namespace Schemas {
let lotusPrivateKey: z.ZodObject<{
Type: z.ZodUnion<readonly [z.ZodLiteral<"bls">, z.ZodLiteral<"secp256k1">]>;
PrivateKey: z.ZodString;
}, z.core.$strip>;
}
import type { SetRequired } from 'type-fest';
import { Signature } from './signature.js';
import { z } from 'zod';
//# sourceMappingURL=wallet.d.ts.map