@@ -10076,6 +10076,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
10076
10076
var address_1 = require("../utils/address");
10077
10077
var bignumber_1 = require("../utils/bignumber");
10078
10078
var bytes_1 = require("../utils/bytes");
10079
+ var constants_1 = require("../constants");
10079
10080
var hash_1 = require("../utils/hash");
10080
10081
var networks_1 = require("../utils/networks");
10081
10082
var properties_1 = require("../utils/properties");
@@ -10754,7 +10755,7 @@ var BaseProvider = /** @class */ (function (_super) {
10754
10755
return this.ready.then(function () {
10755
10756
return properties_1.resolveProperties({ addressOrName: addressOrName, blockTag: blockTag }).then(function (_a) {
10756
10757
var addressOrName = _a.addressOrName, blockTag = _a.blockTag;
10757
- return _this.resolveName (addressOrName).then(function (address) {
10758
+ return _this._getAddress (addressOrName).then(function (address) {
10758
10759
var params = { address: address, blockTag: checkBlockTag(blockTag) };
10759
10760
return _this.perform('getBalance', params).then(function (result) {
10760
10761
return bignumber_1.bigNumberify(result);
@@ -10768,7 +10769,7 @@ var BaseProvider = /** @class */ (function (_super) {
10768
10769
return this.ready.then(function () {
10769
10770
return properties_1.resolveProperties({ addressOrName: addressOrName, blockTag: blockTag }).then(function (_a) {
10770
10771
var addressOrName = _a.addressOrName, blockTag = _a.blockTag;
10771
- return _this.resolveName (addressOrName).then(function (address) {
10772
+ return _this._getAddress (addressOrName).then(function (address) {
10772
10773
var params = { address: address, blockTag: checkBlockTag(blockTag) };
10773
10774
return _this.perform('getTransactionCount', params).then(function (result) {
10774
10775
return bignumber_1.bigNumberify(result).toNumber();
@@ -10782,7 +10783,7 @@ var BaseProvider = /** @class */ (function (_super) {
10782
10783
return this.ready.then(function () {
10783
10784
return properties_1.resolveProperties({ addressOrName: addressOrName, blockTag: blockTag }).then(function (_a) {
10784
10785
var addressOrName = _a.addressOrName, blockTag = _a.blockTag;
10785
- return _this.resolveName (addressOrName).then(function (address) {
10786
+ return _this._getAddress (addressOrName).then(function (address) {
10786
10787
var params = { address: address, blockTag: checkBlockTag(blockTag) };
10787
10788
return _this.perform('getCode', params).then(function (result) {
10788
10789
return bytes_1.hexlify(result);
@@ -10796,7 +10797,7 @@ var BaseProvider = /** @class */ (function (_super) {
10796
10797
return this.ready.then(function () {
10797
10798
return properties_1.resolveProperties({ addressOrName: addressOrName, position: position, blockTag: blockTag }).then(function (_a) {
10798
10799
var addressOrName = _a.addressOrName, position = _a.position, blockTag = _a.blockTag;
10799
- return _this.resolveName (addressOrName).then(function (address) {
10800
+ return _this._getAddress (addressOrName).then(function (address) {
10800
10801
var params = {
10801
10802
address: address,
10802
10803
blockTag: checkBlockTag(blockTag),
@@ -11039,6 +11040,14 @@ var BaseProvider = /** @class */ (function (_super) {
11039
11040
});
11040
11041
});
11041
11042
};
11043
+ BaseProvider.prototype._getAddress = function (addressOrName) {
11044
+ return this.resolveName(addressOrName).then(function (address) {
11045
+ if (address == null) {
11046
+ errors.throwError("ENS name not configured", errors.UNSUPPORTED_OPERATION, { operation: "resolveName(" + JSON.stringify(addressOrName) + ")" });
11047
+ }
11048
+ return address;
11049
+ });
11050
+ };
11042
11051
// @TODO: Could probably use resolveProperties instead?
11043
11052
BaseProvider.prototype._resolveNames = function (object, keys) {
11044
11053
var promises = [];
@@ -11047,7 +11056,7 @@ var BaseProvider = /** @class */ (function (_super) {
11047
11056
if (result[key] == null) {
11048
11057
return;
11049
11058
}
11050
- promises.push(this.resolveName (result[key]).then(function (address) {
11059
+ promises.push(this._getAddress (result[key]).then(function (address) {
11051
11060
result[key] = address;
11052
11061
return;
11053
11062
}));
@@ -11070,7 +11079,11 @@ var BaseProvider = /** @class */ (function (_super) {
11070
11079
if (bytes_1.hexDataLength(data) !== 32) {
11071
11080
return null;
11072
11081
}
11073
- return address_1.getAddress(bytes_1.hexDataSlice(data, 12));
11082
+ var address = address_1.getAddress(bytes_1.hexDataSlice(data, 12));
11083
+ if (address === constants_1.AddressZero) {
11084
+ return null;
11085
+ }
11086
+ return address;
11074
11087
});
11075
11088
});
11076
11089
};
@@ -11091,6 +11104,9 @@ var BaseProvider = /** @class */ (function (_super) {
11091
11104
var nodeHash = hash_1.namehash(name);
11092
11105
// Get the addr from the resovler
11093
11106
return this._getResolver(name).then(function (resolverAddress) {
11107
+ if (resolverAddress == null) {
11108
+ return null;
11109
+ }
11094
11110
// keccak256('addr(bytes32)')
11095
11111
var data = '0x3b3b57de' + nodeHash.substring(2);
11096
11112
var transaction = { to: resolverAddress, data: data };
@@ -11101,7 +11117,7 @@ var BaseProvider = /** @class */ (function (_super) {
11101
11117
return null;
11102
11118
}
11103
11119
var address = address_1.getAddress(bytes_1.hexDataSlice(data, 12));
11104
- if (address === '0x0000000000000000000000000000000000000000' ) {
11120
+ if (address === constants_1.AddressZero ) {
11105
11121
return null;
11106
11122
}
11107
11123
return address;
@@ -11273,7 +11289,7 @@ var BaseProvider = /** @class */ (function (_super) {
11273
11289
exports.BaseProvider = BaseProvider;
11274
11290
properties_1.defineReadOnly(abstract_provider_1.Provider, 'inherits', properties_1.inheritable(abstract_provider_1.Provider));
11275
11291
11276
- },{"../errors":5,"../utils/address":59,"../utils/bignumber":62,"../utils/bytes":63,"../utils/hash":64,"../utils/networks":71,"../utils/properties":73,"../utils/rlp":75,"../utils/transaction":82,"../utils/utf8":84,"../utils/web":85,"./abstract-provider":49}],51:[function(require,module,exports){
11292
+ },{"../constants":3,"../ errors":5,"../utils/address":59,"../utils/bignumber":62,"../utils/bytes":63,"../utils/hash":64,"../utils/networks":71,"../utils/properties":73,"../utils/rlp":75,"../utils/transaction":82,"../utils/utf8":84,"../utils/web":85,"./abstract-provider":49}],51:[function(require,module,exports){
11277
11293
"use strict";
11278
11294
var __extends = (this && this.__extends) || (function () {
11279
11295
var extendStatics = Object.setPrototypeOf ||
0 commit comments