aboutsummaryrefslogtreecommitdiffstats
path: root/packages/migrations/src/types.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/migrations/src/types.ts')
-rw-r--r--packages/migrations/src/types.ts36
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;
+}