Added support for Web3 v1.0 providers.

This commit is contained in:
Richard Moore 2018-07-30 23:14:07 -04:00
parent 9b885296d0
commit cc6f658ef1
No known key found for this signature in database
GPG Key ID: 525F70A6FCABC295

View File

@ -15,7 +15,8 @@ export type AsyncSendable = {
isMetaMask?: boolean;
host?: string;
path?: string;
sendAsync: (request: any, callback: (error: any, response: any) => void) => void
sendAsync?: (request: any, callback: (error: any, response: any) => void) => void
send?: (request: any, callback: (error: any, response: any) => void) => void
}
/*
@ -28,10 +29,22 @@ utils.defineProperty(Web3Signer, 'onchange', {
export class Web3Provider extends JsonRpcProvider {
readonly _web3Provider: AsyncSendable;
private _sendAsync: (request: any, callback: (error: any, response: any) => void) => void;
constructor(web3Provider: AsyncSendable, network?: Networkish) {
// HTTP has a host; IPC has a path.
super(web3Provider.host || web3Provider.path || '', network);
errors.checkNew(this, Web3Provider);
if (!web3Provider || !web3Provider.sendAsync) {
if (web3Provider) {
if (web3Provider.sendAsync) {
this._sendAsync = web3Provider.sendAsync.bind(web3Provider);
} else if (web3Provider.send) {
this._sendAsync = web3Provider.send.bind(web3Provider);
}
}
if (!web3Provider || !this._sendAsync) {
errors.throwError(
'invalid web3Provider',
errors.INVALID_ARGUMENT,
@ -39,12 +52,6 @@ export class Web3Provider extends JsonRpcProvider {
);
}
// HTTP has a host; IPC has a path.
var url = web3Provider.host || web3Provider.path || '';
super(url, network);
errors.checkNew(this, Web3Provider);
defineReadOnly(this, '_web3Provider', web3Provider);
}
@ -65,7 +72,7 @@ export class Web3Provider extends JsonRpcProvider {
jsonrpc: "2.0"
};
this._web3Provider.sendAsync(request, function(error, result) {
this._sendAsync(request, function(error, result) {
if (error) {
reject(error);
return;