mirror of
https://github.com/status-im/MyCrypto.git
synced 2025-01-27 11:24:46 +00:00
cb92f59e57
* Initial scaffold of enclave * Cleanup types * Add comments * Do not truncate errors, pretty output * Introduce helpers for sagas * Update yarn lock * Convert enclave into its own lib. Implement client and server. * Check in progress * Initial types * Remove unused lib * Finish types * cleanup * Switch over to using electron protocol, remove code thats no longer necessary * Refactor Ledger and Trezor wallets to provide all functionality via libs. Run chain code generation thru Enclave. * Check in trezor work * Transaction signing * Message signing * Display address * Fix deallocation of trezor * Adjust API * Remove unused getAddresses * Fix imports and filenames to cooperate with internal typings * Fix type uncertainty * Add persistent message to Ledger unlock. * Update ledger help link to kb * Convert ledger over to updated libs * Fix jest config * Enclave README * Unnecessary assertion * Adjust tip * Type ledger errors * Reduce enclave client code. * No default exports * l18n user facing enclave errors * Reduce repeated enclave code by splitting it into its own wallet lib. Fix some types * tslint * Reduce repeated enclave code by splitting it into its own wallet lib. Fix some types and error messages. * Electron TREZOR Support (#1946) * Type trezor connect. * Check in trezor code * Implement TREZOR wallet * Convert TREZOR to use enclave class like Ledger. * Switch to mycrypto fork of trezor lib. Remove unused dependencies. * remove unnecessary window attachment * tslint
22 lines
779 B
TypeScript
22 lines
779 B
TypeScript
import EthTx from 'ethereumjs-tx';
|
|
import { DeterministicWallet } from './deterministic';
|
|
import { IFullWallet } from '../IWallet';
|
|
|
|
export interface ChainCodeResponse {
|
|
chainCode: string;
|
|
publicKey: string;
|
|
}
|
|
|
|
export abstract class HardwareWallet extends DeterministicWallet implements IFullWallet {
|
|
// Static functions can't be abstract, so implement an errorous one
|
|
// @ts-ignore
|
|
public static getChainCode(dpath: string): Promise<ChainCodeResponse> {
|
|
throw new Error(`getChainCode is not implemented in ${this.constructor.name}`);
|
|
}
|
|
|
|
public abstract signRawTransaction(t: EthTx): Promise<Buffer>;
|
|
public abstract signMessage(msg: string): Promise<string>;
|
|
public abstract displayAddress(): Promise<boolean>;
|
|
public abstract getWalletType(): string;
|
|
}
|