Updated dist files.
This commit is contained in:
parent
edb26b1635
commit
db8c46299b
@ -3,6 +3,14 @@ Changelog
|
||||
|
||||
This change log is managed by `scripts/cmds/update-versions` but may be manually updated.
|
||||
|
||||
ethers/v5.0.0-beta.153 (2019-08-06 19:15)
|
||||
-----------------------------------------
|
||||
|
||||
- Updated gas estimate failure messaging to include that the tx may simple be causing a revert. ([edb26b1](https://github.com/ethers-io/ethers.js/commit/edb26b16354afd707e5d03e174c4cc809b951c4f))
|
||||
- Additional sanity checks in ethers-ens. ([de4b2a4](https://github.com/ethers-io/ethers.js/commit/de4b2a449ca3a49807c8bedb3e21e8e8d71e63fc))
|
||||
- Fix bug in --wait for CLI. ([9977c9f](https://github.com/ethers-io/ethers.js/commit/9977c9f66a7007dcc1963128c88c584b6b6c064b))
|
||||
- Added content-hash support to ENS CLI. ([7dfef46](https://github.com/ethers-io/ethers.js/commit/7dfef463f83a9190d1b89cf81e0fb692da3dd813))
|
||||
|
||||
ethers/v5.0.0-beta.152 (2019-08-05 14:37)
|
||||
-----------------------------------------
|
||||
|
||||
|
2
packages/abstract-signer/_version.d.ts
vendored
2
packages/abstract-signer/_version.d.ts
vendored
@ -1 +1 @@
|
||||
export declare const version = "abstract-signer/5.0.0-beta.130";
|
||||
export declare const version = "abstract-signer/5.0.0-beta.131";
|
||||
|
@ -1,3 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = "abstract-signer/5.0.0-beta.130";
|
||||
exports.version = "abstract-signer/5.0.0-beta.131";
|
||||
|
@ -136,7 +136,7 @@ var Signer = /** @class */ (function () {
|
||||
}
|
||||
if (tx.gasLimit == null) {
|
||||
tx.gasLimit = _this.estimateGas(tx).catch(function (error) {
|
||||
logger.throwError("unable to estimate gas; specify manually", logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
|
||||
logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
|
||||
tx: tx
|
||||
});
|
||||
});
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ethersproject/abstract-signer",
|
||||
"version": "5.0.0-beta.130",
|
||||
"version": "5.0.0-beta.131",
|
||||
"description": "Error utility functions for ethers.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
@ -26,5 +26,5 @@
|
||||
"type": "git",
|
||||
"url": "git://github.com/ethers-io/ethers.js.git"
|
||||
},
|
||||
"tarballHash": "0x11d1a609bf3403df9d25c16e8ffed6ab49a0920febf2e9dff89cd96a239ee18d"
|
||||
"tarballHash": "0x31639d3ac33e6e5a890cfa5dda469e77ea71ab285dcde95222d58b80d7aff82b"
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
export const version = "abstract-signer/5.0.0-beta.130";
|
||||
export const version = "abstract-signer/5.0.0-beta.131";
|
||||
|
2
packages/cli/_version.d.ts
vendored
2
packages/cli/_version.d.ts
vendored
@ -1 +1 @@
|
||||
export declare const version = "cli/5.0.0-beta.138";
|
||||
export declare const version = "cli/5.0.0-beta.139";
|
||||
|
@ -1,3 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = "cli/5.0.0-beta.138";
|
||||
exports.version = "cli/5.0.0-beta.139";
|
||||
|
@ -50,6 +50,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var ethers_1 = require("ethers");
|
||||
var basex_1 = require("@ethersproject/basex");
|
||||
var cli_1 = require("../cli");
|
||||
var _version_1 = require("../_version");
|
||||
var logger = new ethers_1.ethers.utils.Logger(_version_1.version);
|
||||
@ -61,21 +62,25 @@ var ensAbi = [
|
||||
"function resolver(bytes32 node) external view returns (address)"
|
||||
];
|
||||
var States = Object.freeze(["Open", "Auction", "Owned", "Forbidden", "Reveal", "NotAvailable"]);
|
||||
var deedAbi = [
|
||||
"function owner() view returns (address)"
|
||||
];
|
||||
var ethLegacyRegistrarAbi = [
|
||||
"function entries(bytes32 _hash) view returns (uint8 state, address owner, uint registrationDate, uint value, uint highestBid)",
|
||||
"function state(bytes32 _hash) public view returns (uint8)",
|
||||
"function transferRegistrars(bytes32 _hash) @500000",
|
||||
];
|
||||
var ethControllerAbi = [
|
||||
"function rentPrice(string memory name, uint duration) view public returns(uint)",
|
||||
"function available(string memory label) public view returns(bool)",
|
||||
"function makeCommitment(string memory name, address owner, bytes32 secret) pure public returns(bytes32)",
|
||||
"function commit(bytes32 commitment) public",
|
||||
"function commit(bytes32 commitment) public @500000",
|
||||
"function register(string calldata name, address owner, uint duration, bytes32 secret) payable @500000",
|
||||
"function renew(string calldata name, uint duration) payable @500000",
|
||||
];
|
||||
var ethRegistrarAbi = [
|
||||
"function transferFrom(address from, address to, uint256 tokenId)"
|
||||
"function ownerOf(uint256 tokenId) view returns (address)",
|
||||
"function reclaim(uint256 id, address owner) @500000",
|
||||
"function transferFrom(address from, address to, uint256 tokenId) @500000"
|
||||
];
|
||||
var resolverAbi = [
|
||||
"function interfaceImplementer(bytes32 nodehash, bytes4 interfaceId) view returns (address)",
|
||||
@ -83,8 +88,10 @@ var resolverAbi = [
|
||||
"function setAddr(bytes32 nodehash, address addr) @500000",
|
||||
"function text(bytes32 nodehash, string key) view returns (string)",
|
||||
"function setText(bytes32 nodehash, string key, string value) @500000",
|
||||
"function contenthash(bytes32 nodehash) view returns (bytes)",
|
||||
"function setContenthash(bytes32 nodehash, bytes contenthash) @500000",
|
||||
];
|
||||
var InterfaceID_ERC721 = "0x6ccb2df4";
|
||||
//const InterfaceID_ERC721 = "0x6ccb2df4";
|
||||
var InterfaceID_Controller = "0x018fac06";
|
||||
var InterfaceID_Legacy = "0x7ba18ba1";
|
||||
/*
|
||||
@ -180,7 +187,7 @@ var EnsPlugin = /** @class */ (function (_super) {
|
||||
var address;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, this.getEthInterfaceAddress(InterfaceID_ERC721)];
|
||||
case 0: return [4 /*yield*/, this.getEns().owner(ethers_1.ethers.utils.namehash("eth"))];
|
||||
case 1:
|
||||
address = _a.sent();
|
||||
return [2 /*return*/, new ethers_1.ethers.Contract(address, ethRegistrarAbi, this.accounts[0] || this.provider)];
|
||||
@ -216,88 +223,153 @@ var LookupPlugin = /** @class */ (function (_super) {
|
||||
};
|
||||
LookupPlugin.prototype.run = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var ens, _loop_1, this_1, i;
|
||||
var ens, controller, registrar, legacyRegistrar, _loop_1, this_1, i;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, _super.prototype.run.call(this)];
|
||||
case 1:
|
||||
_a.sent();
|
||||
ens = this.getEns();
|
||||
return [4 /*yield*/, this.getEthController()];
|
||||
case 2:
|
||||
controller = _a.sent();
|
||||
return [4 /*yield*/, this.getEthRegistrar()];
|
||||
case 3:
|
||||
registrar = _a.sent();
|
||||
return [4 /*yield*/, this.getEthLegacyRegistrar()];
|
||||
case 4:
|
||||
legacyRegistrar = _a.sent();
|
||||
_loop_1 = function (i) {
|
||||
var name_1, nodehash, details, comps, labelhash_1, available, legacyRegistrarPromise_1, resolver, key;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
var name_1, nodehash, details, owner, resolverAddress, _a, comps, _b, ownerOf, error_1, entry, deed, _c, resolver, _d, _e, email, website, content, ordered, key;
|
||||
return __generator(this, function (_f) {
|
||||
switch (_f.label) {
|
||||
case 0:
|
||||
name_1 = this_1.names[i];
|
||||
nodehash = ethers_1.ethers.utils.namehash(name_1);
|
||||
details = {
|
||||
Owner: ens.owner(nodehash),
|
||||
Resolver: ens.resolver(nodehash)
|
||||
Nodehash: nodehash
|
||||
};
|
||||
comps = name_1.split(".");
|
||||
if (comps.length === 2 && comps[1] === "eth") {
|
||||
labelhash_1 = ethers_1.ethers.utils.id(comps[0].toLowerCase());
|
||||
available = this_1.getEthController().then(function (ethController) {
|
||||
return ethController.available(comps[0]);
|
||||
});
|
||||
details.Available = available;
|
||||
legacyRegistrarPromise_1 = this_1.getEthLegacyRegistrar();
|
||||
details._Registrar = Promise.all([
|
||||
available,
|
||||
legacyRegistrarPromise_1.then(function (legacyRegistrar) {
|
||||
return legacyRegistrar.state(labelhash_1);
|
||||
})
|
||||
]).then(function (results) {
|
||||
var available = results[0];
|
||||
var state = States[results[1]];
|
||||
if (!available && state === "Owned") {
|
||||
return legacyRegistrarPromise_1.then(function (legacyRegistrar) {
|
||||
return legacyRegistrar.entries(labelhash_1).then(function (entries) {
|
||||
return {
|
||||
Registrar: "Legacy",
|
||||
"Deed Value": (ethers_1.ethers.utils.formatEther(entries.value) + " ether"),
|
||||
"Highest Bid": (ethers_1.ethers.utils.formatEther(entries.highestBid) + " ether"),
|
||||
};
|
||||
});
|
||||
});
|
||||
}
|
||||
return { Registrar: "Permanent" };
|
||||
});
|
||||
}
|
||||
return [4 /*yield*/, ethers_1.ethers.utils.resolveProperties(details)];
|
||||
return [4 /*yield*/, ens.owner(nodehash)];
|
||||
case 1:
|
||||
details = _a.sent();
|
||||
if (details.Resolver !== ethers_1.ethers.constants.AddressZero) {
|
||||
resolver = new ethers_1.ethers.Contract(details.Resolver, resolverAbi, this_1.provider);
|
||||
details.address = resolver.addr(nodehash);
|
||||
details.email = resolver.text(nodehash, "email").catch(function (error) { return (""); });
|
||||
details.website = resolver.text(nodehash, "website").catch(function (error) { return (""); });
|
||||
}
|
||||
return [4 /*yield*/, ethers_1.ethers.utils.resolveProperties(details)];
|
||||
owner = _f.sent();
|
||||
resolverAddress = null;
|
||||
if (!(owner === ethers_1.ethers.constants.AddressZero)) return [3 /*break*/, 2];
|
||||
owner = null;
|
||||
return [3 /*break*/, 4];
|
||||
case 2:
|
||||
details = _a.sent();
|
||||
for (key in details._Registrar) {
|
||||
details[key] = details._Registrar[key];
|
||||
details.Controller = owner;
|
||||
_a = details;
|
||||
return [4 /*yield*/, ens.resolver(nodehash).then(function (address) {
|
||||
if (address === ethers_1.ethers.constants.AddressZero) {
|
||||
return "(not configured)";
|
||||
}
|
||||
resolverAddress = address;
|
||||
return address;
|
||||
})];
|
||||
case 3:
|
||||
_a.Resolver = _f.sent();
|
||||
_f.label = 4;
|
||||
case 4:
|
||||
comps = name_1.split(".");
|
||||
if (!(comps.length === 2 && comps[1] === "eth")) return [3 /*break*/, 11];
|
||||
details.Labelhash = ethers_1.ethers.utils.id(comps[0].toLowerCase()); // @TODO: nameprep
|
||||
_b = details;
|
||||
return [4 /*yield*/, controller.available(comps[0])];
|
||||
case 5:
|
||||
_b.Available = _f.sent();
|
||||
if (!!details.Available) return [3 /*break*/, 11];
|
||||
_f.label = 6;
|
||||
case 6:
|
||||
_f.trys.push([6, 8, , 11]);
|
||||
return [4 /*yield*/, registrar.ownerOf(details.Labelhash)];
|
||||
case 7:
|
||||
ownerOf = _f.sent();
|
||||
if (ownerOf !== ethers_1.ethers.constants.AddressZero) {
|
||||
details.Registrant = ownerOf;
|
||||
details.Registrar = "Permanent";
|
||||
}
|
||||
delete details._Registrar;
|
||||
this_1.dump("Name: " + this_1.names[i], details);
|
||||
return [3 /*break*/, 11];
|
||||
case 8:
|
||||
error_1 = _f.sent();
|
||||
return [4 /*yield*/, legacyRegistrar.entries(details.Labelhash)];
|
||||
case 9:
|
||||
entry = _f.sent();
|
||||
deed = new ethers_1.ethers.Contract(entry.owner, deedAbi, this_1.provider);
|
||||
_c = details;
|
||||
return [4 /*yield*/, deed.owner()];
|
||||
case 10:
|
||||
_c.Registrant = _f.sent();
|
||||
details.Registrar = "Legacy";
|
||||
details["Deed Value"] = (ethers_1.ethers.utils.formatEther(entry.value) + " ether");
|
||||
details["Highest Bid"] = (ethers_1.ethers.utils.formatEther(entry.highestBid) + " ether");
|
||||
return [3 /*break*/, 11];
|
||||
case 11:
|
||||
if (!resolverAddress) return [3 /*break*/, 16];
|
||||
resolver = new ethers_1.ethers.Contract(resolverAddress, resolverAbi, this_1.provider);
|
||||
_d = details;
|
||||
_e = "Address";
|
||||
return [4 /*yield*/, resolver.addr(nodehash)];
|
||||
case 12:
|
||||
_d[_e] = _f.sent();
|
||||
return [4 /*yield*/, resolver.text(nodehash, "email").catch(function (error) { return (""); })];
|
||||
case 13:
|
||||
email = _f.sent();
|
||||
if (email) {
|
||||
details["E-mail"] = email;
|
||||
}
|
||||
return [4 /*yield*/, resolver.text(nodehash, "website").catch(function (error) { return (""); })];
|
||||
case 14:
|
||||
website = _f.sent();
|
||||
if (website) {
|
||||
details["Website"] = website;
|
||||
}
|
||||
return [4 /*yield*/, resolver.contenthash(nodehash).then(function (hash) {
|
||||
if (hash === "0x") {
|
||||
return "";
|
||||
}
|
||||
if (hash.substring(0, 10) === "0xe3010170" && ethers_1.ethers.utils.isHexString(hash, 38)) {
|
||||
return basex_1.Base58.encode(ethers_1.ethers.utils.hexDataSlice(hash, 4)) + " (IPFS)";
|
||||
}
|
||||
return hash + " (unknown format)";
|
||||
}, function (error) { return (""); })];
|
||||
case 15:
|
||||
content = _f.sent();
|
||||
if (content) {
|
||||
details["Content Hash"] = content;
|
||||
}
|
||||
_f.label = 16;
|
||||
case 16:
|
||||
ordered = {};
|
||||
"Nodehash,Labelhash,Available,Registrant,Controller,Resolver,Address,Registrar,Deed Value,Highest Bid,E-mail,Website,Content Hash".split(",").forEach(function (key) {
|
||||
if (!details[key]) {
|
||||
return;
|
||||
}
|
||||
ordered[key] = details[key];
|
||||
});
|
||||
for (key in details) {
|
||||
if (ordered[key]) {
|
||||
continue;
|
||||
}
|
||||
ordered[key] = details[key];
|
||||
}
|
||||
this_1.dump("Name: " + this_1.names[i], ordered);
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
};
|
||||
this_1 = this;
|
||||
i = 0;
|
||||
_a.label = 2;
|
||||
case 2:
|
||||
if (!(i < this.names.length)) return [3 /*break*/, 5];
|
||||
_a.label = 5;
|
||||
case 5:
|
||||
if (!(i < this.names.length)) return [3 /*break*/, 8];
|
||||
return [5 /*yield**/, _loop_1(i)];
|
||||
case 3:
|
||||
case 6:
|
||||
_a.sent();
|
||||
_a.label = 4;
|
||||
case 4:
|
||||
_a.label = 7;
|
||||
case 7:
|
||||
i++;
|
||||
return [3 /*break*/, 2];
|
||||
case 5: return [2 /*return*/];
|
||||
return [3 /*break*/, 5];
|
||||
case 8: return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -497,7 +569,7 @@ var CommitPlugin = /** @class */ (function (_super) {
|
||||
CommitPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "commit NAME",
|
||||
help: "Commit to NAME"
|
||||
help: "Submit a pre-commitment"
|
||||
};
|
||||
};
|
||||
CommitPlugin.prototype.run = function () {
|
||||
@ -543,8 +615,8 @@ var RevealPlugin = /** @class */ (function (_super) {
|
||||
}
|
||||
RevealPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "reveal LABEL",
|
||||
help: "Reveal a previously committed name"
|
||||
name: "reveal NAME",
|
||||
help: "Reveal a previous pre-commitment"
|
||||
};
|
||||
};
|
||||
RevealPlugin.prototype.run = function () {
|
||||
@ -630,7 +702,7 @@ var AddressAccountPlugin = /** @class */ (function (_super) {
|
||||
return [
|
||||
{
|
||||
name: "[ --address ADDRESS ]",
|
||||
help: "Override the address"
|
||||
help: "Specify another address"
|
||||
}
|
||||
];
|
||||
};
|
||||
@ -660,18 +732,18 @@ var AddressAccountPlugin = /** @class */ (function (_super) {
|
||||
};
|
||||
return AddressAccountPlugin;
|
||||
}(AccountPlugin));
|
||||
var SetOwnerPlugin = /** @class */ (function (_super) {
|
||||
__extends(SetOwnerPlugin, _super);
|
||||
function SetOwnerPlugin() {
|
||||
var SetControllerPlugin = /** @class */ (function (_super) {
|
||||
__extends(SetControllerPlugin, _super);
|
||||
function SetControllerPlugin() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
SetOwnerPlugin.getHelp = function () {
|
||||
SetControllerPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "set-owner NAME",
|
||||
help: "Set the owner of NAME (default: current account)"
|
||||
name: "set-controller NAME",
|
||||
help: "Set the controller (default: current account)"
|
||||
};
|
||||
};
|
||||
SetOwnerPlugin.prototype.run = function () {
|
||||
SetControllerPlugin.prototype.run = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
@ -684,9 +756,9 @@ var SetOwnerPlugin = /** @class */ (function (_super) {
|
||||
});
|
||||
});
|
||||
};
|
||||
return SetOwnerPlugin;
|
||||
return SetControllerPlugin;
|
||||
}(AddressAccountPlugin));
|
||||
cli.addPlugin("set-owner", SetOwnerPlugin);
|
||||
cli.addPlugin("set-controller", SetControllerPlugin);
|
||||
var SetSubnodePlugin = /** @class */ (function (_super) {
|
||||
__extends(SetSubnodePlugin, _super);
|
||||
function SetSubnodePlugin() {
|
||||
@ -695,7 +767,7 @@ var SetSubnodePlugin = /** @class */ (function (_super) {
|
||||
SetSubnodePlugin.getHelp = function () {
|
||||
return {
|
||||
name: "set-subnode NAME",
|
||||
help: "Set the subnode owner"
|
||||
help: "Set a subnode owner (default: current account)"
|
||||
};
|
||||
};
|
||||
SetSubnodePlugin.prototype._setValue = function (key, value) {
|
||||
@ -751,7 +823,7 @@ var SetResolverPlugin = /** @class */ (function (_super) {
|
||||
SetResolverPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "set-resolver NAME",
|
||||
help: "Set the resolver for NAME (default: resolver.eth)"
|
||||
help: "Set the resolver (default: resolver.eth)"
|
||||
};
|
||||
};
|
||||
SetResolverPlugin.prototype.getDefaultAddress = function () {
|
||||
@ -857,7 +929,7 @@ var SetTextPlugin = /** @class */ (function (_super) {
|
||||
SetTextPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "set-text NAME KEY VALUE",
|
||||
help: "Set the KEY text record to VALUE"
|
||||
help: "Set a text record"
|
||||
};
|
||||
};
|
||||
SetTextPlugin.prototype.getHeader = function () { return "Test"; };
|
||||
@ -874,7 +946,7 @@ var SetEmailPlugin = /** @class */ (function (_super) {
|
||||
SetEmailPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "set-email NAME EMAIL",
|
||||
help: "Set the email text record to EMAIL"
|
||||
help: "Set the email text record"
|
||||
};
|
||||
};
|
||||
SetEmailPlugin.prototype.getHeader = function () { return "E-mail"; };
|
||||
@ -891,7 +963,7 @@ var SetWebsitePlugin = /** @class */ (function (_super) {
|
||||
SetWebsitePlugin.getHelp = function () {
|
||||
return {
|
||||
name: "set-website NAME URL",
|
||||
help: "Set the website text record to URL"
|
||||
help: "Set the website text record"
|
||||
};
|
||||
};
|
||||
SetWebsitePlugin.prototype.getHeader = function () { return "Website"; };
|
||||
@ -900,28 +972,67 @@ var SetWebsitePlugin = /** @class */ (function (_super) {
|
||||
return SetWebsitePlugin;
|
||||
}(TextAccountPlugin));
|
||||
cli.addPlugin("set-website", SetWebsitePlugin);
|
||||
/*
|
||||
// @TODO:
|
||||
class SetContentHashPlugin extends AccountPlugin {
|
||||
hash: string;
|
||||
|
||||
static getHelp(): Help {
|
||||
var SetContentPlugin = /** @class */ (function (_super) {
|
||||
__extends(SetContentPlugin, _super);
|
||||
function SetContentPlugin() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
SetContentPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "set-content NAME HASH",
|
||||
help: "Set the content hash record to HASH"
|
||||
}
|
||||
}
|
||||
|
||||
async run(): Promise<void> {
|
||||
await super.run();
|
||||
throw new Error("not implemented");
|
||||
//let resolver = await this.getResolver();
|
||||
//let tx = resolver.setContenthash(this.nodehash, this.key, this.value);
|
||||
//this.wait(tx);
|
||||
}
|
||||
}
|
||||
cli.addPlugin("set-content", SetContentHashPlugin);
|
||||
*/
|
||||
name: "set-content NAME HASH",
|
||||
help: "Set the IPFS Content Hash"
|
||||
};
|
||||
};
|
||||
SetContentPlugin.prototype._setValue = function (key, value) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var bytes, multihash;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
if (!(key === "hash")) return [3 /*break*/, 2];
|
||||
bytes = basex_1.Base58.decode(value);
|
||||
if (bytes.length !== 34 || bytes[0] !== 18 || bytes[1] !== 32) {
|
||||
this.throwError("Unsupported IPFS hash");
|
||||
}
|
||||
multihash = ethers_1.ethers.utils.concat(["0xe3010170", bytes]);
|
||||
return [4 /*yield*/, _super.prototype._setValue.call(this, "multihash", ethers_1.ethers.utils.hexlify(multihash))];
|
||||
case 1:
|
||||
_a.sent();
|
||||
_a.label = 2;
|
||||
case 2: return [4 /*yield*/, _super.prototype._setValue.call(this, key, value)];
|
||||
case 3:
|
||||
_a.sent();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
SetContentPlugin.prototype.run = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var resolver;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, _super.prototype.run.call(this)];
|
||||
case 1:
|
||||
_a.sent();
|
||||
this.dump("Set Content Hash: " + this.name, {
|
||||
Nodehash: this.nodehash,
|
||||
"Content Hash": this.hash
|
||||
});
|
||||
return [4 /*yield*/, this.getResolver(this.nodehash)];
|
||||
case 2:
|
||||
resolver = _a.sent();
|
||||
return [4 /*yield*/, resolver.setContenthash(this.nodehash, this.multihash)];
|
||||
case 3:
|
||||
_a.sent();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
return SetContentPlugin;
|
||||
}(AccountPlugin));
|
||||
cli.addPlugin("set-content", SetContentPlugin);
|
||||
var MigrateRegistrarPlugin = /** @class */ (function (_super) {
|
||||
__extends(MigrateRegistrarPlugin, _super);
|
||||
function MigrateRegistrarPlugin() {
|
||||
@ -930,12 +1041,12 @@ var MigrateRegistrarPlugin = /** @class */ (function (_super) {
|
||||
MigrateRegistrarPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "migrate-registrar NAME",
|
||||
help: "Migrates NAME from the Legacy to Permanent Registrar"
|
||||
help: "Migrate from the Legacy to the Permanent Registrar"
|
||||
};
|
||||
};
|
||||
MigrateRegistrarPlugin.prototype.prepareArgs = function (args) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var comps, ethLegacyRegistrar, state;
|
||||
var comps, ethLegacyRegistrar, entry, deed, owner, address;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, _super.prototype.prepareArgs.call(this, args)];
|
||||
@ -945,17 +1056,35 @@ var MigrateRegistrarPlugin = /** @class */ (function (_super) {
|
||||
if (comps.length !== 2 || comps[1] !== "eth") {
|
||||
this.throwError("Not a top-level .eth name");
|
||||
}
|
||||
return [4 /*yield*/, this.getEthLegacyRegistrar()];
|
||||
return [4 /*yield*/, _super.prototype._setValue.call(this, "label", comps[0])];
|
||||
case 2:
|
||||
ethLegacyRegistrar = _a.sent();
|
||||
return [4 /*yield*/, ethLegacyRegistrar.state(ethers_1.ethers.utils.id(comps[0]))];
|
||||
_a.sent();
|
||||
return [4 /*yield*/, this.getEthLegacyRegistrar()];
|
||||
case 3:
|
||||
state = _a.sent();
|
||||
if (States[state] !== "Owned") {
|
||||
ethLegacyRegistrar = _a.sent();
|
||||
return [4 /*yield*/, ethLegacyRegistrar.entries(ethers_1.ethers.utils.id(comps[0]))];
|
||||
case 4:
|
||||
entry = _a.sent();
|
||||
// Only owned names can be migrated
|
||||
if (States[entry.state] !== "Owned") {
|
||||
this.throwError("Name not present in the Legacy registrar");
|
||||
}
|
||||
return [4 /*yield*/, _super.prototype._setValue.call(this, "label", comps[0])];
|
||||
case 4:
|
||||
deed = new ethers_1.ethers.Contract(entry.owner, deedAbi, this.provider);
|
||||
return [4 /*yield*/, deed.owner()];
|
||||
case 5:
|
||||
owner = _a.sent();
|
||||
return [4 /*yield*/, this.accounts[0].getAddress()];
|
||||
case 6:
|
||||
address = _a.sent();
|
||||
// Only the deed owner (registrant) may migrate a name
|
||||
if (owner !== address) {
|
||||
this.throwError("Only the registrant can migrate");
|
||||
}
|
||||
return [4 /*yield*/, _super.prototype._setValue.call(this, "deedValue", entry.value)];
|
||||
case 7:
|
||||
_a.sent();
|
||||
return [4 /*yield*/, _super.prototype._setValue.call(this, "highestBid", entry.highestBid)];
|
||||
case 8:
|
||||
_a.sent();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
@ -971,7 +1100,9 @@ var MigrateRegistrarPlugin = /** @class */ (function (_super) {
|
||||
case 1:
|
||||
_a.sent();
|
||||
this.dump("Migrate Registrar: " + this.name, {
|
||||
Nodehash: this.nodehash
|
||||
"Nodehash": this.nodehash,
|
||||
"Highest Bid": (ethers_1.ethers.utils.formatEther(this.highestBid) + " ether"),
|
||||
"Deed Value": (ethers_1.ethers.utils.formatEther(this.deedValue) + " ether"),
|
||||
});
|
||||
return [4 /*yield*/, this.getEthLegacyRegistrar()];
|
||||
case 2:
|
||||
@ -995,7 +1126,7 @@ var TransferPlugin = /** @class */ (function (_super) {
|
||||
TransferPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "transfer NAME NEW_OWNER",
|
||||
help: "Transfers NAME to NEW_OWNER (permanent regstrar only)"
|
||||
help: "Transfer registrant ownership"
|
||||
};
|
||||
};
|
||||
TransferPlugin.prototype._setValue = function (key, value) {
|
||||
@ -1008,13 +1139,13 @@ var TransferPlugin = /** @class */ (function (_super) {
|
||||
return [4 /*yield*/, this.getAddress(value)];
|
||||
case 1:
|
||||
address = _a.sent();
|
||||
return [4 /*yield*/, this._setValue(key, address)];
|
||||
return [4 /*yield*/, _super.prototype._setValue.call(this, key, address)];
|
||||
case 2:
|
||||
_a.sent();
|
||||
return [3 /*break*/, 8];
|
||||
case 3:
|
||||
if (!(key === "name")) return [3 /*break*/, 6];
|
||||
comps = this.name.split(".");
|
||||
comps = value.split(".");
|
||||
if (comps.length !== 2 || comps[1] !== "eth") {
|
||||
this.throwError("Not a top-level .eth name");
|
||||
}
|
||||
@ -1060,10 +1191,93 @@ var TransferPlugin = /** @class */ (function (_super) {
|
||||
return TransferPlugin;
|
||||
}(AccountPlugin));
|
||||
cli.addPlugin("transfer", TransferPlugin);
|
||||
var ReclaimPlugin = /** @class */ (function (_super) {
|
||||
__extends(ReclaimPlugin, _super);
|
||||
function ReclaimPlugin() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
ReclaimPlugin.getHelp = function () {
|
||||
return {
|
||||
name: "reclaim NAME",
|
||||
help: "Reset the controller by the registrant"
|
||||
};
|
||||
};
|
||||
ReclaimPlugin.prototype._setValue = function (key, value) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var comps, account, registrar, ownerOf, error_2;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
if (!(key === "name")) return [3 /*break*/, 8];
|
||||
comps = value.split(".");
|
||||
if (comps.length !== 2 || comps[1] !== "eth") {
|
||||
this.throwError("Not a top-level .eth name");
|
||||
}
|
||||
return [4 /*yield*/, this.accounts[0].getAddress()];
|
||||
case 1:
|
||||
account = _a.sent();
|
||||
return [4 /*yield*/, this.getEthRegistrar()];
|
||||
case 2:
|
||||
registrar = _a.sent();
|
||||
ownerOf = null;
|
||||
_a.label = 3;
|
||||
case 3:
|
||||
_a.trys.push([3, 5, , 6]);
|
||||
return [4 /*yield*/, registrar.ownerOf(ethers_1.ethers.utils.id(comps[0]))];
|
||||
case 4:
|
||||
ownerOf = _a.sent();
|
||||
return [3 /*break*/, 6];
|
||||
case 5:
|
||||
error_2 = _a.sent();
|
||||
this.throwError("Name not present in Permantent Registrar");
|
||||
return [3 /*break*/, 6];
|
||||
case 6:
|
||||
if (account !== ownerOf) {
|
||||
this.throwError("Only the registrant can call reclaim");
|
||||
}
|
||||
return [4 /*yield*/, _super.prototype._setValue.call(this, "label", comps[0])];
|
||||
case 7:
|
||||
_a.sent();
|
||||
_a.label = 8;
|
||||
case 8: return [4 /*yield*/, _super.prototype._setValue.call(this, key, value)];
|
||||
case 9:
|
||||
_a.sent();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
ReclaimPlugin.prototype.run = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var registrar;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, _super.prototype.run.call(this)];
|
||||
case 1:
|
||||
_a.sent();
|
||||
this.dump("Reclaim: " + this.name, {
|
||||
Nodehash: this.nodehash,
|
||||
"Address": this.address,
|
||||
});
|
||||
return [4 /*yield*/, this.getEthRegistrar()];
|
||||
case 2:
|
||||
registrar = _a.sent();
|
||||
return [4 /*yield*/, registrar.reclaim(ethers_1.ethers.utils.id(this.label), this.address)];
|
||||
case 3:
|
||||
_a.sent();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
return ReclaimPlugin;
|
||||
}(AddressAccountPlugin));
|
||||
cli.addPlugin("reclaim", ReclaimPlugin);
|
||||
/**
|
||||
* To Do:
|
||||
* register NAME --registrar
|
||||
* set-reverse NAME
|
||||
* renew NAME --duration DAYS
|
||||
*
|
||||
* Done:
|
||||
* migrate-registrar NAME
|
||||
@ -1077,5 +1291,6 @@ cli.addPlugin("transfer", TransferPlugin);
|
||||
* set-webstie NAME WEBSITE
|
||||
* set-text NAME KEY VALUE
|
||||
* set-content NAME HASH
|
||||
* reclaim NAME --address OWNER
|
||||
*/
|
||||
cli.run(process.argv.slice(2));
|
||||
|
@ -362,7 +362,7 @@ var WrappedSigner = /** @class */ (function (_super) {
|
||||
_a.label = 7;
|
||||
case 7:
|
||||
_a.trys.push([7, 9, , 10]);
|
||||
return [4 /*yield*/, tx.wait()];
|
||||
return [4 /*yield*/, response.wait()];
|
||||
case 8:
|
||||
receipt = _a.sent();
|
||||
dump("Success:", {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ethersproject/cli",
|
||||
"version": "5.0.0-beta.138",
|
||||
"version": "5.0.0-beta.139",
|
||||
"description": "Command-Line Interface scripts and releated utilities.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
@ -34,5 +34,5 @@
|
||||
"type": "git",
|
||||
"url": "git://github.com/ethers-io/ethers.js.git"
|
||||
},
|
||||
"tarballHash": "0xed55635741e512972f4a0b1e7dafed389ceaa34ea29b3f7cfa6eecc3573ec24e"
|
||||
"tarballHash": "0xf9641f2e9ca52161b063e1216a7ea563de2e8998c003a8893f92a7150749cdf4"
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
export const version = "cli/5.0.0-beta.138";
|
||||
export const version = "cli/5.0.0-beta.139";
|
||||
|
2
packages/ethers/_version.d.ts
vendored
2
packages/ethers/_version.d.ts
vendored
@ -1 +1 @@
|
||||
export declare const version = "ethers/5.0.0-beta.152";
|
||||
export declare const version = "ethers/5.0.0-beta.153";
|
||||
|
@ -1,3 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = "ethers/5.0.0-beta.152";
|
||||
exports.version = "ethers/5.0.0-beta.153";
|
||||
|
6
packages/ethers/dist/ethers.js
vendored
6
packages/ethers/dist/ethers.js
vendored
@ -11477,7 +11477,7 @@ exports.Provider = Provider;
|
||||
},{"./_version":57,"@ethersproject/bytes":70,"@ethersproject/logger":91,"@ethersproject/properties":96}],59:[function(require,module,exports){
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = "abstract-signer/5.0.0-beta.130";
|
||||
exports.version = "abstract-signer/5.0.0-beta.131";
|
||||
|
||||
},{}],60:[function(require,module,exports){
|
||||
"use strict";
|
||||
@ -11618,7 +11618,7 @@ var Signer = /** @class */ (function () {
|
||||
}
|
||||
if (tx.gasLimit == null) {
|
||||
tx.gasLimit = _this.estimateGas(tx).catch(function (error) {
|
||||
logger.throwError("unable to estimate gas; specify manually", logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
|
||||
logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
|
||||
tx: tx
|
||||
});
|
||||
});
|
||||
@ -13710,7 +13710,7 @@ exports.ContractFactory = ContractFactory;
|
||||
},{"./_version":72,"@ethersproject/abi":55,"@ethersproject/abstract-provider":58,"@ethersproject/abstract-signer":60,"@ethersproject/address":62,"@ethersproject/bignumber":68,"@ethersproject/bytes":70,"@ethersproject/constants":71,"@ethersproject/logger":91,"@ethersproject/properties":96}],74:[function(require,module,exports){
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = "ethers/5.0.0-beta.152";
|
||||
exports.version = "ethers/5.0.0-beta.153";
|
||||
|
||||
},{}],75:[function(require,module,exports){
|
||||
"use strict";
|
||||
|
2
packages/ethers/dist/ethers.min.js
vendored
2
packages/ethers/dist/ethers.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ethers",
|
||||
"version": "5.0.0-beta.152",
|
||||
"version": "5.0.0-beta.153",
|
||||
"description": "Umbrella package for most common Ethers libraries.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
@ -60,5 +60,5 @@
|
||||
"type": "git",
|
||||
"url": "git://github.com/ethers-io/ethers.js.git"
|
||||
},
|
||||
"tarballHash": "0xb6136ebb429d8b7246e07904ac1ff693f76ebf942da0bece84ce36ef00cc2583"
|
||||
"tarballHash": "0x2f436d7c6fc05d09d0def9e6154be7fbc08ed15db5ca53698916e3fbba65b196"
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
export const version = "ethers/5.0.0-beta.152";
|
||||
export const version = "ethers/5.0.0-beta.153";
|
||||
|
Loading…
Reference in New Issue
Block a user