diff options
author | Jacob Evans <jacob@dekz.net> | 2018-04-10 13:50:08 +0800 |
---|---|---|
committer | Jacob Evans <jacob@dekz.net> | 2018-04-10 13:51:09 +0800 |
commit | a34c9095c3a5d217d50318471660a5508922bcc2 (patch) | |
tree | 3833bd7263b94a4db8e98cdedbe14b2a22d93d5c /packages/subproviders/src/utils | |
parent | 84a4b7d1c16d008ffbf07ba5b22c61b025b5165f (diff) | |
download | dexon-sol-tools-a34c9095c3a5d217d50318471660a5508922bcc2.tar dexon-sol-tools-a34c9095c3a5d217d50318471660a5508922bcc2.tar.gz dexon-sol-tools-a34c9095c3a5d217d50318471660a5508922bcc2.tar.bz2 dexon-sol-tools-a34c9095c3a5d217d50318471660a5508922bcc2.tar.lz dexon-sol-tools-a34c9095c3a5d217d50318471660a5508922bcc2.tar.xz dexon-sol-tools-a34c9095c3a5d217d50318471660a5508922bcc2.tar.zst dexon-sol-tools-a34c9095c3a5d217d50318471660a5508922bcc2.zip |
Rename to IS_CHILD_KEY
Diffstat (limited to 'packages/subproviders/src/utils')
-rw-r--r-- | packages/subproviders/src/utils/wallet_utils.ts | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/packages/subproviders/src/utils/wallet_utils.ts b/packages/subproviders/src/utils/wallet_utils.ts index 6c698a006..48d475559 100644 --- a/packages/subproviders/src/utils/wallet_utils.ts +++ b/packages/subproviders/src/utils/wallet_utils.ts @@ -7,25 +7,21 @@ import { DerivedHDKey, WalletSubproviderErrors } from '../types'; const DEFAULT_ADDRESS_SEARCH_OFFSET = 0; const BATCH_SIZE = 10; -// Derivation Paths -// BIP44 m / purpose' / coin_type' / account' / change / address_index -// m/44'/60'/0'/0 -// m/44'/60'/0'/0/0 -// m/44'/60'/0'/0/{account_index} - testrpc -// m/44'/60'/0' - ledger - export const walletUtils = { _calculateDerivedHDKeys( initialHDKey: HDNode, derivationPath: string, searchLimit: number, offset: number = DEFAULT_ADDRESS_SEARCH_OFFSET, - hardened: boolean = false, + isChildKey: boolean = false, ): DerivedHDKey[] { const derivedKeys: DerivedHDKey[] = []; _.times(searchLimit, i => { const derivationIndex = offset + i; - const path = hardened ? `m/${derivationIndex}` : `m/${derivationPath}/${derivationIndex}`; + // Normally we need to set the full derivation path to walk the tree from the root + // as the initial key is at the root. + // But with ledger the initial key is a child so we walk the tree relative to that child + const path = isChildKey ? `m/${derivationIndex}` : `m/${derivationPath}/${derivationIndex}`; const hdKey = initialHDKey.derive(path); const derivedPublicKey = hdKey.publicKey; const shouldSanitizePublicKey = true; @@ -49,7 +45,7 @@ export const walletUtils = { initialHDKey: HDNode, derivationPath: string, searchLimit: number, - hardened: boolean = false, + isChild: boolean = false, ): DerivedHDKey | undefined { let matchedKey: DerivedHDKey | undefined; for (let index = 0; index < searchLimit; index = index + BATCH_SIZE) { @@ -58,7 +54,7 @@ export const walletUtils = { derivationPath, BATCH_SIZE, index, - hardened, + isChild, ); matchedKey = _.find(derivedKeys, derivedKey => derivedKey.address === address); if (matchedKey) { @@ -68,8 +64,8 @@ export const walletUtils = { return matchedKey; }, - _firstDerivedKey(initialHDKey: HDNode, derivationPath: string, hardened: boolean = false): DerivedHDKey { - const derivedKeys = walletUtils._calculateDerivedHDKeys(initialHDKey, derivationPath, 1, 0, hardened); + _firstDerivedKey(initialHDKey: HDNode, derivationPath: string, isChild: boolean = false): DerivedHDKey { + const derivedKeys = walletUtils._calculateDerivedHDKeys(initialHDKey, derivationPath, 1, 0, isChild); const firstDerivedKey = derivedKeys[0]; return firstDerivedKey; }, |