add function to register the domains from config

This commit is contained in:
Jonathan Rainville 2018-07-13 16:41:35 -04:00 committed by Pascal Precht
parent fe00535bd9
commit 9125fe82d9
No known key found for this signature in database
GPG Key ID: 0EE28D8D6FD85D7D
1 changed files with 29 additions and 2 deletions

View File

@ -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));
});
}