From 738f0b3f65072d808031d090c72ca4f003ddc998 Mon Sep 17 00:00:00 2001 From: willclarktech Date: Tue, 15 Sep 2020 11:02:56 +0200 Subject: [PATCH] launchpad-ledger: Refactor LedgerSigner options --- .../launchpad-ledger/src/launchpadledger.ts | 21 ++++++++++++++----- packages/launchpad-ledger/src/ledgersigner.ts | 8 ++----- .../types/launchpadledger.d.ts | 15 ++++++------- .../launchpad-ledger/types/ledgersigner.d.ts | 7 ++----- 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/packages/launchpad-ledger/src/launchpadledger.ts b/packages/launchpad-ledger/src/launchpadledger.ts index cf7a75e0..83019811 100644 --- a/packages/launchpad-ledger/src/launchpadledger.ts +++ b/packages/launchpad-ledger/src/launchpadledger.ts @@ -66,6 +66,12 @@ function unharden(hdPath: readonly Slip10RawIndex[]): number[] { const cosmosHdPath = makeCosmoshubPath(0); const cosmosBech32Prefix = "cosmos"; +export interface LaunchpadLedgerOptions { + readonly hdPath?: readonly Slip10RawIndex[]; + readonly prefix?: string; + readonly testModeAllowed?: boolean; +} + export class LaunchpadLedger { private readonly testModeAllowed: boolean; private readonly hdPath: readonly Slip10RawIndex[]; @@ -74,11 +80,16 @@ export class LaunchpadLedger { public readonly platform: string; public readonly userAgent: string; - constructor( - { testModeAllowed }: { testModeAllowed: boolean } = { testModeAllowed: false }, - hdPath: readonly Slip10RawIndex[] = cosmosHdPath, - prefix: string = cosmosBech32Prefix, - ) { + constructor(options: LaunchpadLedgerOptions = {}) { + const defaultOptions = { + hdPath: cosmosHdPath, + prefix: cosmosBech32Prefix, + testModeAllowed: false, + }; + const { hdPath, prefix, testModeAllowed } = { + ...defaultOptions, + ...options, + }; this.testModeAllowed = testModeAllowed; this.hdPath = hdPath; this.prefix = prefix; diff --git a/packages/launchpad-ledger/src/ledgersigner.ts b/packages/launchpad-ledger/src/ledgersigner.ts index c0b0b262..145f1ddc 100644 --- a/packages/launchpad-ledger/src/ledgersigner.ts +++ b/packages/launchpad-ledger/src/ledgersigner.ts @@ -1,17 +1,13 @@ import { AccountData, encodeSecp256k1Signature, OfflineSigner, StdSignature } from "@cosmjs/launchpad"; -import { LaunchpadLedger } from "./launchpadledger"; - -interface LedgerSignerOptions { - readonly testModeAllowed: boolean; -} +import { LaunchpadLedger, LaunchpadLedgerOptions } from "./launchpadledger"; export class LedgerSigner implements OfflineSigner { private readonly ledger: LaunchpadLedger; private address: string | undefined; private pubkey: Uint8Array | undefined; - constructor(options?: LedgerSignerOptions) { + constructor(options?: LaunchpadLedgerOptions) { this.ledger = new LaunchpadLedger(options); } diff --git a/packages/launchpad-ledger/types/launchpadledger.d.ts b/packages/launchpad-ledger/types/launchpadledger.d.ts index 4dbf3064..6dcaa64c 100644 --- a/packages/launchpad-ledger/types/launchpadledger.d.ts +++ b/packages/launchpad-ledger/types/launchpadledger.d.ts @@ -1,5 +1,10 @@ /// import { Slip10RawIndex } from "@cosmjs/crypto"; +export interface LaunchpadLedgerOptions { + readonly hdPath?: readonly Slip10RawIndex[]; + readonly prefix?: string; + readonly testModeAllowed?: boolean; +} export declare class LaunchpadLedger { private readonly testModeAllowed; private readonly hdPath; @@ -7,15 +12,7 @@ export declare class LaunchpadLedger { private cosmosApp; readonly platform: string; readonly userAgent: string; - constructor( - { - testModeAllowed, - }?: { - testModeAllowed: boolean; - }, - hdPath?: readonly Slip10RawIndex[], - prefix?: string, - ); + constructor(options?: LaunchpadLedgerOptions); connect(timeout?: number): Promise; getCosmosAppVersion(): Promise; getPubKey(): Promise; diff --git a/packages/launchpad-ledger/types/ledgersigner.d.ts b/packages/launchpad-ledger/types/ledgersigner.d.ts index 1bb54aeb..abf5b3cb 100644 --- a/packages/launchpad-ledger/types/ledgersigner.d.ts +++ b/packages/launchpad-ledger/types/ledgersigner.d.ts @@ -1,13 +1,10 @@ import { AccountData, OfflineSigner, StdSignature } from "@cosmjs/launchpad"; -interface LedgerSignerOptions { - readonly testModeAllowed: boolean; -} +import { LaunchpadLedgerOptions } from "./launchpadledger"; export declare class LedgerSigner implements OfflineSigner { private readonly ledger; private address; private pubkey; - constructor(options?: LedgerSignerOptions); + constructor(options?: LaunchpadLedgerOptions); getAccounts(): Promise; sign(address: string, message: Uint8Array): Promise; } -export {};