aboutsummaryrefslogtreecommitdiffstats
path: root/packages/subproviders
diff options
context:
space:
mode:
authorBrandon Millman <brandon.millman@gmail.com>2018-03-06 07:08:56 +0800
committerBrandon Millman <brandon.millman@gmail.com>2018-03-06 07:08:56 +0800
commitd171ce4fba97847a617fc4c8fd7e3b759586c933 (patch)
treec800ae90713a098cd00a418bffe516776b579baf /packages/subproviders
parent92b9dbd706768fd0edfc8f72a90f197abd8b3d66 (diff)
parent994935b5da0b15796958a32c5bab0a25b9430b5a (diff)
downloaddexon-0x-contracts-d171ce4fba97847a617fc4c8fd7e3b759586c933.tar.gz
dexon-0x-contracts-d171ce4fba97847a617fc4c8fd7e3b759586c933.tar.zst
dexon-0x-contracts-d171ce4fba97847a617fc4c8fd7e3b759586c933.zip
Merge branch 'development' into feature/sra-reporter
* development: (79 commits) remove from devDeps Remove date for now Add ethers typescript typings to 0x.js deps. The library works without this atm since another dep of 0x.js has it as a dep. But it's more robust to have it here. Add missing instructions to add external types to tsconfig.json after installing the package Fix bugs in postpublish_utils.js Update @0xproject/utils in top-level package.json Changelog tweaks Publish Updated CHANGELOGS Fix typo Add PR number to changelog entry Add changelog update to subproviders package Add `numberOfAccounts` param to `LedgerSubprovider` method `getAccountsAsync` and add tests Remove unnecessary type assertion Fix comments Add comments Don't need any external packages for 0x connect docs yet Instead of adding `@0xproject/types` to tsconfig.json, let's only add it when calling TypeDoc Fix styling Make prettier ignore postpublish_utils ...
Diffstat (limited to 'packages/subproviders')
-rw-r--r--packages/subproviders/CHANGELOG.md5
-rw-r--r--packages/subproviders/README.md8
-rw-r--r--packages/subproviders/package.json20
-rw-r--r--packages/subproviders/src/subproviders/ledger.ts6
-rw-r--r--packages/subproviders/test/integration/ledger_subprovider_test.ts10
-rw-r--r--packages/subproviders/test/unit/ledger_subprovider_test.ts8
6 files changed, 41 insertions, 16 deletions
diff --git a/packages/subproviders/CHANGELOG.md b/packages/subproviders/CHANGELOG.md
index c2d590a35..7e1e006e3 100644
--- a/packages/subproviders/CHANGELOG.md
+++ b/packages/subproviders/CHANGELOG.md
@@ -1,5 +1,10 @@
# CHANGELOG
+## v0.6.0 - _March 4, 2018_
+
+ * Move web3 types from being a devDep to a dep since one cannot use this package without it (#429)
+ * Add `numberOfAccounts` param to `LedgerSubprovider` method `getAccountsAsync` (#432)
+
## v0.5.0 - _February 16, 2018_
* Add EmptyWalletSubprovider and FakeGasEstimateSubprovider (#392)
diff --git a/packages/subproviders/README.md b/packages/subproviders/README.md
index 39e4a46e7..67a6a92d2 100644
--- a/packages/subproviders/README.md
+++ b/packages/subproviders/README.md
@@ -10,6 +10,14 @@ We have written up a [Wiki](https://0xproject.com/wiki#Web3-Provider-Examples) a
yarn add @0xproject/subproviders
```
+If your project is in [TypeScript](https://www.typescriptlang.org/), add the following to your `tsconfig.json`:
+
+```
+"include": [
+ "./node_modules/web3-typescript-typings/index.d.ts",
+]
+```
+
## Usage
Simply import the subprovider you are interested in using:
diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json
index 5e9c2ed89..ec0642bce 100644
--- a/packages/subproviders/package.json
+++ b/packages/subproviders/package.json
@@ -1,6 +1,6 @@
{
"name": "@0xproject/subproviders",
- "version": "0.5.0",
+ "version": "0.6.0",
"main": "lib/src/index.js",
"types": "lib/src/index.d.ts",
"license": "Apache-2.0",
@@ -18,9 +18,9 @@
"test:integration": "run-s clean build run_mocha_integration"
},
"dependencies": {
- "@0xproject/assert": "^0.0.20",
- "@0xproject/types": "^0.2.3",
- "@0xproject/utils": "^0.3.4",
+ "@0xproject/assert": "^0.1.0",
+ "@0xproject/types": "^0.3.0",
+ "@0xproject/utils": "^0.4.0",
"bn.js": "^4.11.8",
"es6-promisify": "^5.0.0",
"ethereumjs-tx": "^1.3.3",
@@ -30,19 +30,20 @@
"lodash": "^4.17.4",
"semaphore-async-await": "^1.5.1",
"web3": "^0.20.0",
- "web3-provider-engine": "^13.0.1"
+ "web3-provider-engine": "^13.0.1",
+ "web3-typescript-typings": "^0.10.0"
},
"devDependencies": {
- "@0xproject/tslint-config": "^0.4.9",
- "@0xproject/utils": "^0.3.4",
+ "@0xproject/tslint-config": "^0.4.10",
+ "@0xproject/utils": "^0.4.0",
"@types/lodash": "^4.14.86",
"@types/mocha": "^2.2.42",
"@types/node": "^8.0.53",
"awesome-typescript-loader": "^3.1.3",
"chai": "^4.0.1",
"chai-as-promised": "^7.1.0",
- "chai-as-promised-typescript-typings": "^0.0.9",
- "chai-typescript-typings": "^0.0.3",
+ "chai-as-promised-typescript-typings": "^0.0.10",
+ "chai-typescript-typings": "^0.0.4",
"dirty-chai": "^2.0.1",
"mocha": "^4.0.1",
"npm-run-all": "^4.1.2",
@@ -51,7 +52,6 @@
"types-bn": "^0.0.1",
"types-ethereumjs-util": "0xProject/types-ethereumjs-util",
"typescript": "2.7.1",
- "web3-typescript-typings": "^0.9.11",
"webpack": "^3.1.0"
}
}
diff --git a/packages/subproviders/src/subproviders/ledger.ts b/packages/subproviders/src/subproviders/ledger.ts
index 5966a88bb..85cdf0efc 100644
--- a/packages/subproviders/src/subproviders/ledger.ts
+++ b/packages/subproviders/src/subproviders/ledger.ts
@@ -19,7 +19,7 @@ import {
import { Subprovider } from './subprovider';
const DEFAULT_DERIVATION_PATH = `44'/60'/0'`;
-const NUM_ADDRESSES_TO_FETCH = 10;
+const DEFAULT_NUM_ADDRESSES_TO_FETCH = 10;
const ASK_FOR_ON_DEVICE_CONFIRMATION = false;
const SHOULD_GET_CHAIN_CODE = true;
@@ -129,7 +129,7 @@ export class LedgerSubprovider extends Subprovider {
return;
}
}
- public async getAccountsAsync(): Promise<string[]> {
+ public async getAccountsAsync(numberOfAccounts: number = DEFAULT_NUM_ADDRESSES_TO_FETCH): Promise<string[]> {
this._ledgerClientIfExists = await this._createLedgerClientAsync();
let ledgerResponse;
@@ -148,7 +148,7 @@ export class LedgerSubprovider extends Subprovider {
hdKey.chainCode = new Buffer(ledgerResponse.chainCode, 'hex');
const accounts = [];
- for (let i = 0; i < NUM_ADDRESSES_TO_FETCH; i++) {
+ for (let i = 0; i < numberOfAccounts; i++) {
const derivedHDNode = hdKey.derive(`m/${i + this._derivationPathIndex}`);
const derivedPublicKey = derivedHDNode.publicKey;
const shouldSanitizePublicKey = true;
diff --git a/packages/subproviders/test/integration/ledger_subprovider_test.ts b/packages/subproviders/test/integration/ledger_subprovider_test.ts
index 628b532d7..b052a76d2 100644
--- a/packages/subproviders/test/integration/ledger_subprovider_test.ts
+++ b/packages/subproviders/test/integration/ledger_subprovider_test.ts
@@ -26,11 +26,17 @@ describe('LedgerSubprovider', () => {
});
});
describe('direct method calls', () => {
- it('returns a list of accounts', async () => {
+ it('returns default number of accounts', async () => {
const accounts = await ledgerSubprovider.getAccountsAsync();
expect(accounts[0]).to.not.be.an('undefined');
expect(accounts.length).to.be.equal(10);
});
+ it('returns requested number of accounts', async () => {
+ const numberOfAccounts = 20;
+ const accounts = await ledgerSubprovider.getAccountsAsync(numberOfAccounts);
+ expect(accounts[0]).to.not.be.an('undefined');
+ expect(accounts.length).to.be.equal(numberOfAccounts);
+ });
it('signs a personal message', async () => {
const data = ethUtils.bufferToHex(ethUtils.toBuffer('hello world'));
const ecSignatureHex = await ledgerSubprovider.signPersonalMessageAsync(data);
@@ -172,7 +178,7 @@ describe('LedgerSubprovider', () => {
};
const callback = reportCallbackErrors(done)((err: Error, response: Web3.JSONRPCResponsePayload) => {
expect(err).to.be.a('null');
- const result = response.result.result;
+ const result = response.result;
expect(result.length).to.be.equal(66);
expect(result.substr(0, 2)).to.be.equal('0x');
done();
diff --git a/packages/subproviders/test/unit/ledger_subprovider_test.ts b/packages/subproviders/test/unit/ledger_subprovider_test.ts
index 1c70dd3a6..0d301bce9 100644
--- a/packages/subproviders/test/unit/ledger_subprovider_test.ts
+++ b/packages/subproviders/test/unit/ledger_subprovider_test.ts
@@ -62,11 +62,17 @@ describe('LedgerSubprovider', () => {
});
describe('direct method calls', () => {
describe('success cases', () => {
- it('returns a list of accounts', async () => {
+ it('returns default number of accounts', async () => {
const accounts = await ledgerSubprovider.getAccountsAsync();
expect(accounts[0]).to.be.equal(FAKE_ADDRESS);
expect(accounts.length).to.be.equal(10);
});
+ it('returns requested number of accounts', async () => {
+ const numberOfAccounts = 20;
+ const accounts = await ledgerSubprovider.getAccountsAsync(numberOfAccounts);
+ expect(accounts[0]).to.be.equal(FAKE_ADDRESS);
+ expect(accounts.length).to.be.equal(numberOfAccounts);
+ });
it('signs a personal message', async () => {
const data = ethUtils.bufferToHex(ethUtils.toBuffer('hello world'));
const ecSignatureHex = await ledgerSubprovider.signPersonalMessageAsync(data);