diff options
Diffstat (limited to 'packages/migrations/src/types.ts')
-rw-r--r-- | packages/migrations/src/types.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/packages/migrations/src/types.ts b/packages/migrations/src/types.ts index 65f685797..7347f27fe 100644 --- a/packages/migrations/src/types.ts +++ b/packages/migrations/src/types.ts @@ -1,3 +1,4 @@ +import { ECSignature } from '@0xproject/types'; import { BigNumber } from '@0xproject/utils'; export interface ERC20Token { @@ -27,3 +28,38 @@ export enum ContractName { EtherDelta = 'EtherDelta', Arbitrage = 'Arbitrage', } + +export interface LedgerCommunicationClient { + close: () => Promise<void>; +} + +export interface LedgerGetAddressResult { + address: string; + publicKey: string; + chainCode: string; +} + +export interface ECSignatureString { + v: string; + r: string; + s: string; +} + +export interface LedgerGetAddressResult { + address: string; + publicKey: string; + chainCode: string; +} + +export interface LedgerEthereumClient { + // shouldGetChainCode is defined as `true` instead of `boolean` because other types rely on the assumption + // that we get back the chain code and we don't have dependent types to express it properly + getAddress: ( + derivationPath: string, + askForDeviceConfirmation: boolean, + shouldGetChainCode: true, + ) => Promise<LedgerGetAddressResult>; + signTransaction: (derivationPath: string, rawTxHex: string) => Promise<ECSignatureString>; + signPersonalMessage: (derivationPath: string, messageHex: string) => Promise<ECSignature>; + transport: LedgerCommunicationClient; +} |