From a3de7c08f611f534fba69e748d708f4a5391b325 Mon Sep 17 00:00:00 2001 From: Adrien Beraud <adrien.beraud@savoirfairelinux.com> Date: Wed, 2 Aug 2017 10:58:48 -0400 Subject: [PATCH] nodejs: refactor loading of contract data Change-Id: I9bc1f117ae86876f53795a174c5838a8af2fb97b --- index.js | 51 +++++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/index.js b/index.js index 5ca79cf..4199675 100644 --- a/index.js +++ b/index.js @@ -57,7 +57,7 @@ var NAME_VALIDATOR = new RegExp('^[a-z0-9-_]{3,32}$'); var account; var regAddress = "0xe53cb2ace8707526a5050bec7bcf979c57f8b44f"; -var regABI; +var regData; var regContract; var reg; @@ -97,12 +97,12 @@ function loadContract() { regAddress = String(content).trim(); } fs.readFile(REG_FILE, function(err, data){ - if (err) + if (err) { console.log("Can't read contract ABI: " + err); - else { - var REG = JSON.parse(data); - regABI = REG.contracts.registrar.GlobalRegistrar.abi; + throw err; } + regData = JSON.parse(data).contracts.registrar.GlobalRegistrar; + regContract = web3.eth.contract(regData.abi); console.log("Loading name contract from blockchain at " + regAddress); web3.eth.getCode(regAddress, function(error, result) { if (error) @@ -111,7 +111,6 @@ function loadContract() { console.log("Contract not found at " + regAddress); initContract(); } else { - regContract = web3.eth.contract(regABI); regContract.at(regAddress, function(err, result) { console.log("Contract found and loaded from " + regAddress); if(!err) { @@ -129,31 +128,23 @@ function loadContract() { } function initContract() { - fs.readFile(REG_FILE, function(err, data) { - if (err) - throw err; - var REG = JSON.parse(data); - regABI = JSON.parse(REG.contracts.registrar.GlobalRegistrar.abi); - console.log(regABI); - regContract = web3.eth.contract(regABI); - waitForGaz(3000000, function(){ - regContract.new({ from: coinbase, - data: '0x'+REG.contracts.registrar.GlobalRegistrar.evm.bytecode.object, - gas: 3000000 }, function(e, contract) { - if(!e) { - if(!contract.address) { - console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined..."); - } else { - console.log("Contract mined! Address: " + contract.address); - regAddress = contract.address; - fs.writeFile(REG_ADDR_FILE, regAddress); - reg = contract; - startServer(); - Â } + waitForGaz(3000000, function(){ + regContract.new({ from: coinbase, + data: '0x'+regData.evm.bytecode.object, + gas: 3000000 }, function(e, contract) { + if(!e) { + if(!contract.address) { + console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined..."); } else { - console.log(e); - } - }); + console.log("Contract mined! Address: " + contract.address); + regAddress = contract.address; + fs.writeFile(REG_ADDR_FILE, regAddress); + reg = contract; + startServer(); + Â } + } else { + console.log(e); + } }); }); } -- GitLab