Add type defs for ledgerco and ethereumjs-tx

This commit is contained in:
Fabio Berger
2017-12-06 19:05:09 -06:00
parent 3db5efa264
commit e893e8c442
2 changed files with 37 additions and 13 deletions

View File

@@ -1,27 +1,56 @@
/// <reference types='chai-typescript-typings' />
/// <reference types='chai-as-promised-typescript-typings' />
declare module 'dirty-chai';
declare module 'ledgerco';
declare module 'ethereumjs-tx';
declare module 'es6-promisify';
// tslint:disable:max-classes-per-file
// tslint:disable:class-name
// tslint:disable:completed-docs
// Ethereumjs-tx declarations
declare module 'ethereumjs-tx' {
class EthereumTx {
public raw: Buffer[];
public r: Buffer;
public s: Buffer;
public v: Buffer;
public serialize(): Buffer;
constructor(txParams: any);
}
export default EthereumTx;
}
// Ledgerco declarations
interface ECSignatureString {
v: string;
r: string;
s: string;
}
interface ECSignature {
v: number;
r: string;
s: string;
}
declare module 'ledgerco' {
interface comm {
close_async: Promise<void>;
create_async: Promise<void>;
close_async(): Promise<void>;
}
export class comm_node implements comm {
public create_async: Promise<void>;
public close_async: Promise<void>;
public static create_async(timeoutMilliseconds?: number): Promise<comm_node>;
public close_async(): Promise<void>;
}
export class comm_u2f implements comm {
public create_async: Promise<void>;
public close_async: Promise<void>;
public static create_async(): Promise<comm_u2f>;
public close_async(): Promise<void>;
}
export class eth {
public comm: comm;
constructor(comm: comm);
public getAddress_async(path: string, display?: boolean, chaincode?: boolean):
Promise<{publicKey: string; address: string}>;
public signTransaction_async(path: string, rawTxHex: string): Promise<ECSignatureString>;
public getAppConfiguration_async(): Promise<{ arbitraryDataEnabled: number; version: string }>;
public signPersonalMessage_async(path: string, messageHex: string): Promise<ECSignature>;
}
}
@@ -66,6 +95,3 @@ declare module 'web3-provider-engine' {
}
export = Web3ProviderEngine;
}
// tslint:enable:max-classes-per-file
// tslint:enable:class-name
// tslint:enable:completed-docs

View File

@@ -2,8 +2,6 @@ import * as _ from 'lodash';
import * as Web3 from 'web3';
export interface LedgerCommunicationClient {
exchange: (apduHex: string, statusList: number[]) => Promise<any[]>;
setScrambleKey: (key: string) => void;
close_async: () => Promise<void>;
}