From 79ab9f37c9f502a055ac8695236831e457c0cdec Mon Sep 17 00:00:00 2001 From: odan Date: Thu, 2 Apr 2020 02:56:45 +0900 Subject: [PATCH 1/4] add AbstractProvider --- packages/web3-core/types/index.d.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/web3-core/types/index.d.ts b/packages/web3-core/types/index.d.ts index d682ea388bd..ef28a6ba04d 100644 --- a/packages/web3-core/types/index.d.ts +++ b/packages/web3-core/types/index.d.ts @@ -19,12 +19,15 @@ */ import * as net from 'net'; +import { EventEmitter } from "events" import { HttpProviderBase, HttpProviderOptions, IpcProviderBase, WebsocketProviderBase, - WebsocketProviderOptions + WebsocketProviderOptions, + JsonRpcPayload, + JsonRpcResponse } from 'web3-core-helpers'; import { Method } from 'web3-core-method'; import BN = require('bn.js'); @@ -410,9 +413,14 @@ export interface LogsOptions { export type BlockNumber = string | number | BN | BigNumber | 'latest' | 'pending' | 'earliest' | 'genesis'; +interface AbstractProvider extends EventEmitter { + send(payload: JsonRpcPayload, callback: (error: Error | null, result?: JsonRpcResponse) => void): void; + } + export type provider = | HttpProvider | IpcProvider | WebsocketProvider + | AbstractProvider | string | null; From 20491dff173b89924bcb08ad42a66db99b800bf8 Mon Sep 17 00:00:00 2001 From: odan Date: Thu, 2 Apr 2020 03:14:58 +0900 Subject: [PATCH 2/4] add test for AbstractProvider --- packages/web3-core/types/index.d.ts | 2 +- packages/web3/package.json | 1 + packages/web3/types/tests/web3-test.ts | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/web3-core/types/index.d.ts b/packages/web3-core/types/index.d.ts index ef28a6ba04d..fb3c29e84dd 100644 --- a/packages/web3-core/types/index.d.ts +++ b/packages/web3-core/types/index.d.ts @@ -413,7 +413,7 @@ export interface LogsOptions { export type BlockNumber = string | number | BN | BigNumber | 'latest' | 'pending' | 'earliest' | 'genesis'; -interface AbstractProvider extends EventEmitter { +export interface AbstractProvider extends EventEmitter { send(payload: JsonRpcPayload, callback: (error: Error | null, result?: JsonRpcResponse) => void): void; } diff --git a/packages/web3/package.json b/packages/web3/package.json index 21cd5ae5ab8..20f964e73ed 100644 --- a/packages/web3/package.json +++ b/packages/web3/package.json @@ -52,6 +52,7 @@ "@types/node": "^12.6.1", "web3-bzz": "1.2.6", "web3-core": "1.2.6", + "web3-core-helpers": "1.2.6", "web3-eth": "1.2.6", "web3-eth-personal": "1.2.6", "web3-net": "1.2.6", diff --git a/packages/web3/types/tests/web3-test.ts b/packages/web3/types/tests/web3-test.ts index 7aaeaafc6b0..7e9b3ec0f39 100644 --- a/packages/web3/types/tests/web3-test.ts +++ b/packages/web3/types/tests/web3-test.ts @@ -19,6 +19,9 @@ import Web3 from 'web3'; import * as net from 'net'; +import { AbstractProvider } from 'web3-core'; +import { JsonRpcPayload, JsonRpcResponse } from "web3-core-helpers" +import { EventEmitter } from 'events'; // $ExpectType Utils Web3.utils; @@ -85,3 +88,9 @@ web3 = new Web3('https://localhost:5000/', netSocket); // $ExpectType Web3 web3 = new Web3(); + +class CustomProvider extends EventEmitter implements AbstractProvider { + send(payload: JsonRpcPayload, callback: (error: Error | null, result?: JsonRpcResponse) => void) {} +} +// $ExpectType Web3 +web3 = new Web3(new CustomProvider()); From d3ef78ebbab9244bd8854b507bddd44667ac28c3 Mon Sep 17 00:00:00 2001 From: odan Date: Mon, 4 May 2020 16:33:19 +0900 Subject: [PATCH 3/4] add interface of sendAsync --- packages/web3-core/types/index.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/web3-core/types/index.d.ts b/packages/web3-core/types/index.d.ts index 25049e5ff09..97ba5635eef 100644 --- a/packages/web3-core/types/index.d.ts +++ b/packages/web3-core/types/index.d.ts @@ -411,8 +411,9 @@ export interface LogsOptions { export type BlockNumber = string | number | BN | BigNumber | 'latest' | 'pending' | 'earliest' | 'genesis'; -export interface AbstractProvider extends EventEmitter { +export interface AbstractProvider { send(payload: JsonRpcPayload, callback: (error: Error | null, result?: JsonRpcResponse) => void): void; + sendAsync(payload: JsonRpcPayload, callback: (error: Error | null, result?: JsonRpcResponse) => void): void; } export type provider = From 28dc7456068cb4b23cca74f61f9a897e38693ade Mon Sep 17 00:00:00 2001 From: odan Date: Tue, 5 May 2020 13:38:45 +0900 Subject: [PATCH 4/4] fix web3-test.ts --- packages/web3/types/tests/web3-test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/web3/types/tests/web3-test.ts b/packages/web3/types/tests/web3-test.ts index 7e9b3ec0f39..f17985861ce 100644 --- a/packages/web3/types/tests/web3-test.ts +++ b/packages/web3/types/tests/web3-test.ts @@ -89,8 +89,9 @@ web3 = new Web3('https://localhost:5000/', netSocket); // $ExpectType Web3 web3 = new Web3(); -class CustomProvider extends EventEmitter implements AbstractProvider { +class CustomProvider implements AbstractProvider { send(payload: JsonRpcPayload, callback: (error: Error | null, result?: JsonRpcResponse) => void) {} + sendAsync(payload: JsonRpcPayload, callback: (error: Error | null, result?: JsonRpcResponse) => void) {} } // $ExpectType Web3 web3 = new Web3(new CustomProvider());