Merge pull request #30910 from c-o-l-o-r/fix-provider-send-params

[web3] Make the parameters in the provider class' send function optional
This commit is contained in:
Andrew Casey
2018-12-03 11:02:36 -08:00
committed by GitHub
2 changed files with 26 additions and 4 deletions
+6 -4
View File
@@ -12,11 +12,13 @@ interface JsonRPCResponse {
error?: string;
}
interface Callback<ResultType> {
(error: Error): void;
(error: null, val: ResultType): void;
}
export class Provider {
send(
payload: JsonRPCRequest,
callback: (e: Error, val: JsonRPCResponse) => void
): any;
send(payload: JsonRPCRequest, callback: Callback<JsonRPCResponse>): any;
}
export class WebsocketProvider extends Provider {
+20
View File
@@ -2,6 +2,7 @@ import Web3 = require("web3");
import BigNumber = require("bn.js");
import { TransactionReceipt } from "web3/types";
import PromiEvent from "web3/promiEvent";
import { Provider, JsonRPCResponse } from "web3/providers";
const contractAddress = "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe";
@@ -10,6 +11,25 @@ const contractAddress = "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe";
// --------------------------------------------------------------------------
const web3 = new Web3();
const myProvider = new web3.providers.HttpProvider("http://localhost:5454");
const createFailingHttpProvider = (): Provider => ({
send(payload, callback) {
callback(new Error("Illegal!"));
}
});
const createSuccesfulHttpProvider = (): Provider => ({
send(payload, callback) {
const response = {};
callback(null, response as JsonRPCResponse);
}
});
const fakeProvider: Provider = createFailingHttpProvider();
const otherFakeProvider: Provider = createSuccesfulHttpProvider();
web3.setProvider(fakeProvider);
web3.setProvider(otherFakeProvider);
web3.setProvider(myProvider);
web3.eth.setProvider(myProvider);