nano-wallet-js
Version:
SDK for developers to create and interact with Nanocurrency wallet easily
63 lines (62 loc) • 1.73 kB
TypeScript
import NanoRPC, { NanoRpcConfig } from '../rpc/RpcController';
import BaseController from '../BaseController';
import Logger from '../logger/Logger';
import Locker from './Locker';
export interface NanoWalletConfig extends NanoRpcConfig {
privateKey: string;
representative: string;
minAmountRaw?: string;
precomputeWork?: boolean;
}
export interface ReceivableBlock {
blockHash: string;
amount: string;
}
interface Work {
hash: string;
threshold: string;
work: string;
}
export interface NanoWalletState {
balance: string;
receivable: string;
receivableBlocks: ReceivableBlock[];
frontier: string | null;
representative: string | null;
work: Work | null;
}
export default class NanoWallet extends BaseController<NanoWalletConfig, NanoWalletState> {
rpc: NanoRPC;
publicKey: string;
account: string;
defaultConfig: NanoWalletConfig;
defaultState: NanoWalletState;
logger: Logger;
locker: Locker;
constructor(config: NanoWalletConfig, state?: NanoWalletState | null);
sync(): Promise<void>;
private workGenerate;
private getWork;
getReceivable(): Promise<{
receivableBlocks: ReceivableBlock[];
receivable: string;
}>;
receive(link: string): Promise<{
hash: string;
}>;
send(to: string, amount: string): Promise<{
hash: string;
}>;
sweep(to: string): Promise<{
hash: string;
}>;
setRepresentative(account?: string): Promise<{
hash: string;
}>;
get balance(): string;
get receivable(): string;
get receivableBlocks(): ReceivableBlock[];
get frontier(): string | null;
get currentRepresentative(): string | null;
}
export {};