diff --git a/lib/modules/ens/index.js b/lib/modules/ens/index.js index 0dc32f61..068f3a83 100644 --- a/lib/modules/ens/index.js +++ b/lib/modules/ens/index.js @@ -225,14 +225,41 @@ class ENS { }); } + registerConfigDomains(config, cb) { + const self = this; + self.events.request("blockchain:defaultAccount:get", (defaultAccount) => { + self.events.request("blockchain:contract:create", + {abi: config.registrarAbi, address: config.registrarAddress}, + (registrar) => { + async.each(Object.keys(self.registration.domains), (subDomainName, eachCb) => { + const toSend = registrar.methods.register(utils.sha3(subDomainName), + defaultAccount, self.registration.domains[subDomainName]); + + toSend.estimateGas().then(gasEstimated => { + return toSend.send({gas: gasEstimated + 1000, from: defaultAccount}).then(transaction => { + if (transaction.status !== "0x1" && transaction.status !== "0x01" && transaction.status !== true) { + return eachCb('Failed to register. Check gas cost.'); + } + eachCb(null, transaction); + }).catch(err => { + eachCb('Failed to register with error: ' + (err.message || err)); + }); + }).catch(err => { + eachCb("Register would error. Is it already registered? Do you have token balance? Is Allowance set? " + (err.message || err)); + }); + }, cb); + }); + }); + } + addENSToEmbarkJS() { const self = this; // get namehash, import it into file - self.events.request("version:get:eth-ens-namehash", function(EnsNamehashVersion) { + self.events.request("version:get:eth-ens-namehash", function (EnsNamehashVersion) { let currentEnsNamehashVersion = require('../../../package.json').dependencies["eth-ens-namehash"]; if (EnsNamehashVersion !== currentEnsNamehashVersion) { - self.events.request("version:getPackageLocation", "eth-ens-namehash", EnsNamehashVersion, function(err, location) { + self.events.request("version:getPackageLocation", "eth-ens-namehash", EnsNamehashVersion, function (err, location) { self.embark.registerImportFile("eth-ens-namehash", fs.dappPath(location)); }); }