aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Evans <jacob@dekz.net>2018-03-08 01:30:27 +0800
committerJacob Evans <jacob@dekz.net>2018-03-08 02:01:55 +0800
commite2e6ae937d2d38210442f493c24d492e3b477907 (patch)
tree48e4b2bf4d6357221b2795cf4e5cdf6448117041
parent5b9c5d27906dc2a3b4462599a1a67e43a4210ebd (diff)
downloaddexon-sol-tools-e2e6ae937d2d38210442f493c24d492e3b477907.tar.gz
dexon-sol-tools-e2e6ae937d2d38210442f493c24d492e3b477907.tar.zst
dexon-sol-tools-e2e6ae937d2d38210442f493c24d492e3b477907.zip
README on derivation path
-rw-r--r--packages/subproviders/README.md8
-rw-r--r--packages/subproviders/test/integration/ledger_subprovider_test.ts5
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(