diff options
author | Jacob Evans <jacob@dekz.net> | 2018-03-08 01:30:27 +0800 |
---|---|---|
committer | Jacob Evans <jacob@dekz.net> | 2018-03-08 02:01:55 +0800 |
commit | e2e6ae937d2d38210442f493c24d492e3b477907 (patch) | |
tree | 48e4b2bf4d6357221b2795cf4e5cdf6448117041 /packages/subproviders | |
parent | 5b9c5d27906dc2a3b4462599a1a67e43a4210ebd (diff) | |
download | dexon-0x-contracts-e2e6ae937d2d38210442f493c24d492e3b477907.tar dexon-0x-contracts-e2e6ae937d2d38210442f493c24d492e3b477907.tar.gz dexon-0x-contracts-e2e6ae937d2d38210442f493c24d492e3b477907.tar.bz2 dexon-0x-contracts-e2e6ae937d2d38210442f493c24d492e3b477907.tar.lz dexon-0x-contracts-e2e6ae937d2d38210442f493c24d492e3b477907.tar.xz dexon-0x-contracts-e2e6ae937d2d38210442f493c24d492e3b477907.tar.zst dexon-0x-contracts-e2e6ae937d2d38210442f493c24d492e3b477907.zip |
README on derivation path
Diffstat (limited to 'packages/subproviders')
-rw-r--r-- | packages/subproviders/README.md | 8 | ||||
-rw-r--r-- | packages/subproviders/test/integration/ledger_subprovider_test.ts | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/packages/subproviders/README.md b/packages/subproviders/README.md index 52ad3388e..f3e3bd0ae 100644 --- a/packages/subproviders/README.md +++ b/packages/subproviders/README.md @@ -42,6 +42,8 @@ const accounts = await ledgerSubprovider.getAccountsAsync(); A subprovider that enables your dApp to send signing requests to a user's Ledger Nano S hardware wallet. These can be requests to sign transactions or messages. +Ledger Nano (and this library) by default uses a derivation path of `44'/60'/0'`. This is different to TestRPC which by default uses `m/44'/60'/0'/0`. This is a configuration option in the Ledger Subprovider package. + ##### Ledger Nano S + Node-hid (usb) By default, node-hid transport support is an optional dependency. This is due to the requirement of native usb developer packages on the host system. If these aren't installed the entire `npm install` fails. We also no longer export node-hid transport client factories. To re-create this see our integration tests or follow the example below: @@ -62,6 +64,12 @@ ledgerSubprovider = new LedgerSubprovider({ }); ``` +##### Testing Subprovider + Ledger integration + +To run our integration tests you need a ledger configured with our development mnemonic seed. +This is available in the top level package.json under `mnemonic`. +Configure your ledger and run the integration tests. We assume a derivation path of `m/44'/60'/0'/0` and this is configured in the tests. To this setup and derivation path, your first account should be `0x5409ed021d9299bf6814279a6a1411a7e866a631`, exactly like TestRPC. + #### Redundant RPC subprovider A subprovider which attempts to send an RPC call to a list of RPC endpoints sequentially, until one of them returns a successful response. diff --git a/packages/subproviders/test/integration/ledger_subprovider_test.ts b/packages/subproviders/test/integration/ledger_subprovider_test.ts index a9f538038..8ed69edaf 100644 --- a/packages/subproviders/test/integration/ledger_subprovider_test.ts +++ b/packages/subproviders/test/integration/ledger_subprovider_test.ts @@ -42,6 +42,10 @@ describe('LedgerSubprovider', () => { expect(accounts[0]).to.not.be.an('undefined'); expect(accounts.length).to.be.equal(10); }); + it('returns the expected account', async () => { + const accounts = await ledgerSubprovider.getAccountsAsync(); + expect(accounts[0]).to.be.equal(TEST_RPC_ACCOUNT_0); + }); it('returns requested number of accounts', async () => { const numberOfAccounts = 20; const accounts = await ledgerSubprovider.getAccountsAsync(numberOfAccounts); @@ -61,6 +65,7 @@ describe('LedgerSubprovider', () => { to: '0x0000000000000000000000000000000000000000', value: '0x00', chainId: 3, + from: TEST_RPC_ACCOUNT_0, }; const txHex = await ledgerSubprovider.signTransactionAsync(tx); expect(txHex).to.be.equal( |