Allow providers to prepare their Network object.

This commit is contained in:
Richard Moore 2019-07-02 16:06:47 -04:00
parent 04bdf456eb
commit 6484908cb2
No known key found for this signature in database
GPG Key ID: 525F70A6FCABC295

View File

@ -9,7 +9,7 @@ import { arrayify, hexDataLength, hexlify, hexValue, isHexString } from "@ethers
import * as errors from "@ethersproject/errors";
import { namehash } from "@ethersproject/hash";
import { getNetwork, Network, Networkish } from "@ethersproject/networks";
import { defineReadOnly, resolveProperties } from "@ethersproject/properties";
import { defineReadOnly, getStatic, resolveProperties } from "@ethersproject/properties";
import { Transaction } from "@ethersproject/transactions";
import { toUtf8String } from "@ethersproject/strings";
import { poll } from "@ethersproject/web";
@ -187,7 +187,7 @@ export class BaseProvider extends Provider {
this.ready.catch((error) => { });
} else {
let knownNetwork = getNetwork((network == null) ? "homestead": network);
let knownNetwork = getStatic<(network: Networkish) => Network>(new.target, "getNetwork")(network);
if (knownNetwork) {
defineReadOnly(this, "_network", knownNetwork);
defineReadOnly(this, "ready", Promise.resolve(this._network));
@ -216,6 +216,10 @@ export class BaseProvider extends Provider {
return defaultFormatter;
}
static getNetwork(network: Networkish): Network {
return getNetwork((network == null) ? "homestead": network);
}
poll(): void {
let pollId = nextPollId++;
this.emit("willPoll", pollId);