aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-03-16 21:03:50 +0800
committerFabio Berger <me@fabioberger.com>2018-03-16 21:03:50 +0800
commit8243e73413a31a2e37c55bc7dd910b547b80ae65 (patch)
treea150301c50fe92bcd87e3bc8c17278729d73d1d8
parent5175fe8107d4cad17617230ec32268c5f226c26f (diff)
downloaddexon-sol-tools-8243e73413a31a2e37c55bc7dd910b547b80ae65.tar
dexon-sol-tools-8243e73413a31a2e37c55bc7dd910b547b80ae65.tar.gz
dexon-sol-tools-8243e73413a31a2e37c55bc7dd910b547b80ae65.tar.bz2
dexon-sol-tools-8243e73413a31a2e37c55bc7dd910b547b80ae65.tar.lz
dexon-sol-tools-8243e73413a31a2e37c55bc7dd910b547b80ae65.tar.xz
dexon-sol-tools-8243e73413a31a2e37c55bc7dd910b547b80ae65.tar.zst
dexon-sol-tools-8243e73413a31a2e37c55bc7dd910b547b80ae65.zip
Use named types and introduce `JSONRPCRequestPayloadWithMethod` type
-rw-r--r--packages/subproviders/CHANGELOG.md1
-rw-r--r--packages/subproviders/src/subproviders/empty_wallet_subprovider.ts8
-rw-r--r--packages/subproviders/src/subproviders/fake_gas_estimate_subprovider.ts8
-rw-r--r--packages/subproviders/src/subproviders/ganache.ts8
-rw-r--r--packages/subproviders/src/subproviders/injected_web3.ts8
-rw-r--r--packages/subproviders/src/subproviders/ledger.ts3
-rw-r--r--packages/subproviders/src/subproviders/redundant_rpc.ts6
-rw-r--r--packages/subproviders/src/subproviders/subprovider.ts8
8 files changed, 24 insertions, 26 deletions
diff --git a/packages/subproviders/CHANGELOG.md b/packages/subproviders/CHANGELOG.md
index 76a757df5..d748b51a3 100644
--- a/packages/subproviders/CHANGELOG.md
+++ b/packages/subproviders/CHANGELOG.md
@@ -5,6 +5,7 @@
* Export `GanacheSubprovider` and `Subprovider` (#426)
* Make all subproviders to derive from `Subprovider` (#426)
* Add types for `NextCallback`, `OnNextCompleted` (#426)
+ * Introduce `JSONRPCRequestPayloadWithMethod` type
## v0.7.0 - _March 8, 2018_
diff --git a/packages/subproviders/src/subproviders/empty_wallet_subprovider.ts b/packages/subproviders/src/subproviders/empty_wallet_subprovider.ts
index f5983dd9b..d5d03a4ac 100644
--- a/packages/subproviders/src/subproviders/empty_wallet_subprovider.ts
+++ b/packages/subproviders/src/subproviders/empty_wallet_subprovider.ts
@@ -1,5 +1,7 @@
import * as Web3 from 'web3';
+import { Callback, ErrorCallback } from '../types';
+
import { Subprovider } from './subprovider';
/*
@@ -10,11 +12,7 @@ import { Subprovider } from './subprovider';
export class EmptyWalletSubprovider extends Subprovider {
// This method needs to be here to satisfy the interface but linter wants it to be static.
// tslint:disable-next-line:prefer-function-over-method
- public handleRequest(
- payload: Web3.JSONRPCRequestPayload,
- next: () => void,
- end: (err: Error | null, result: any) => void,
- ) {
+ public handleRequest(payload: Web3.JSONRPCRequestPayload, next: Callback, end: ErrorCallback) {
switch (payload.method) {
case 'eth_accounts':
end(null, []);
diff --git a/packages/subproviders/src/subproviders/fake_gas_estimate_subprovider.ts b/packages/subproviders/src/subproviders/fake_gas_estimate_subprovider.ts
index 2421dcd02..faec2d9e5 100644
--- a/packages/subproviders/src/subproviders/fake_gas_estimate_subprovider.ts
+++ b/packages/subproviders/src/subproviders/fake_gas_estimate_subprovider.ts
@@ -1,5 +1,7 @@
import * as Web3 from 'web3';
+import { Callback, ErrorCallback } from '../types';
+
import { Subprovider } from './subprovider';
/*
@@ -18,11 +20,7 @@ export class FakeGasEstimateSubprovider extends Subprovider {
}
// This method needs to be here to satisfy the interface but linter wants it to be static.
// tslint:disable-next-line:prefer-function-over-method
- public handleRequest(
- payload: Web3.JSONRPCRequestPayload,
- next: () => void,
- end: (err: Error | null, result: any) => void,
- ) {
+ public handleRequest(payload: Web3.JSONRPCRequestPayload, next: Callback, end: ErrorCallback) {
switch (payload.method) {
case 'eth_estimateGas':
end(null, this._constantGasAmount);
diff --git a/packages/subproviders/src/subproviders/ganache.ts b/packages/subproviders/src/subproviders/ganache.ts
index a979aecf4..6ff939674 100644
--- a/packages/subproviders/src/subproviders/ganache.ts
+++ b/packages/subproviders/src/subproviders/ganache.ts
@@ -1,6 +1,8 @@
import * as Ganache from 'ganache-core';
import * as Web3 from 'web3';
+import { Callback, ErrorCallback } from '../types';
+
import { Subprovider } from './subprovider';
/*
@@ -16,11 +18,7 @@ export class GanacheSubprovider extends Subprovider {
}
// This method needs to be here to satisfy the interface but linter wants it to be static.
// tslint:disable-next-line:prefer-function-over-method
- public handleRequest(
- payload: Web3.JSONRPCRequestPayload,
- next: () => void,
- end: (err: Error | null, result: any) => void,
- ) {
+ public handleRequest(payload: Web3.JSONRPCRequestPayload, next: Callback, end: ErrorCallback) {
this._ganacheProvider.sendAsync(payload, (err: Error | null, result: any) => {
end(err, result && result.result);
});
diff --git a/packages/subproviders/src/subproviders/injected_web3.ts b/packages/subproviders/src/subproviders/injected_web3.ts
index 6d4e2b27b..ec7304cb7 100644
--- a/packages/subproviders/src/subproviders/injected_web3.ts
+++ b/packages/subproviders/src/subproviders/injected_web3.ts
@@ -1,6 +1,8 @@
import * as _ from 'lodash';
import * as Web3 from 'web3';
+import { Callback, ErrorCallback } from '../types';
+
import { Subprovider } from './subprovider';
/*
@@ -15,11 +17,7 @@ export class InjectedWeb3Subprovider extends Subprovider {
super();
this._injectedWeb3 = new Web3(subprovider);
}
- public handleRequest(
- payload: Web3.JSONRPCRequestPayload,
- next: () => void,
- end: (err: Error | null, result: any) => void,
- ) {
+ public handleRequest(payload: Web3.JSONRPCRequestPayload, next: Callback, end: ErrorCallback) {
switch (payload.method) {
case 'web3_clientVersion':
this._injectedWeb3.version.getNode(end);
diff --git a/packages/subproviders/src/subproviders/ledger.ts b/packages/subproviders/src/subproviders/ledger.ts
index b67b49bee..95217c84d 100644
--- a/packages/subproviders/src/subproviders/ledger.ts
+++ b/packages/subproviders/src/subproviders/ledger.ts
@@ -8,6 +8,7 @@ import { Lock } from 'semaphore-async-await';
import * as Web3 from 'web3';
import {
+ Callback,
LedgerEthereumClient,
LedgerEthereumClientFactoryAsync,
LedgerSubproviderConfigs,
@@ -62,7 +63,7 @@ export class LedgerSubprovider extends Subprovider {
// tslint:disable-next-line:async-suffix
public async handleRequest(
payload: Web3.JSONRPCRequestPayload,
- next: () => void,
+ next: Callback,
end: (err: Error | null, result?: any) => void,
) {
let accounts;
diff --git a/packages/subproviders/src/subproviders/redundant_rpc.ts b/packages/subproviders/src/subproviders/redundant_rpc.ts
index 0df2f91f4..dacd1c2c5 100644
--- a/packages/subproviders/src/subproviders/redundant_rpc.ts
+++ b/packages/subproviders/src/subproviders/redundant_rpc.ts
@@ -3,6 +3,8 @@ import * as _ from 'lodash';
import * as Web3 from 'web3';
import RpcSubprovider = require('web3-provider-engine/subproviders/rpc');
+import { Callback } from '../types';
+
import { Subprovider } from './subprovider';
export class RedundantRPCSubprovider extends Subprovider {
@@ -10,7 +12,7 @@ export class RedundantRPCSubprovider extends Subprovider {
private static async _firstSuccessAsync(
rpcs: RpcSubprovider[],
payload: Web3.JSONRPCRequestPayload,
- next: () => void,
+ next: Callback,
): Promise<any> {
let lastErr: Error | undefined;
for (const rpc of rpcs) {
@@ -38,7 +40,7 @@ export class RedundantRPCSubprovider extends Subprovider {
// tslint:disable-next-line:async-suffix
public async handleRequest(
payload: Web3.JSONRPCRequestPayload,
- next: () => void,
+ next: Callback,
end: (err: Error | null, data?: any) => void,
): Promise<void> {
const rpcsCopy = this._rpcs.slice();
diff --git a/packages/subproviders/src/subproviders/subprovider.ts b/packages/subproviders/src/subproviders/subprovider.ts
index d4e0de67a..4a224fc4e 100644
--- a/packages/subproviders/src/subproviders/subprovider.ts
+++ b/packages/subproviders/src/subproviders/subprovider.ts
@@ -1,5 +1,7 @@
import promisify = require('es6-promisify');
import * as Web3 from 'web3';
+
+import { JSONRPCRequestPayloadWithMethod } from '../types';
/*
* A version of the base class Subprovider found in providerEngine
* This one has an async/await `emitPayloadAsync` and also defined types.
@@ -18,8 +20,8 @@ export class Subprovider {
return datePart + extraPart;
}
private static _createFinalPayload(
- payload: Partial<Web3.JSONRPCRequestPayload> & { method: string },
- ): Web3.JSONRPCRequestPayload {
+ payload: Partial<JSONRPCRequestPayloadWithMethod>,
+ ): Partial<JSONRPCRequestPayloadWithMethod> {
const finalPayload = {
// defaults
id: Subprovider._getRandomId(),
@@ -33,7 +35,7 @@ export class Subprovider {
this._engine = engine;
}
public async emitPayloadAsync(
- payload: Partial<Web3.JSONRPCRequestPayload> & { method: string },
+ payload: Partial<JSONRPCRequestPayloadWithMethod>,
): Promise<Web3.JSONRPCResponsePayload> {
const finalPayload = Subprovider._createFinalPayload(payload);
const response = await promisify(this._engine.sendAsync, this._engine)(finalPayload);