mec
Version:
This package helps to create multi-layer chains upon Ethereum Network. Also it provides easy to use nodejs API to any of consortium network and helps to manage all of them at the same time
51 lines (43 loc) • 1.37 kB
JavaScript
const k = require('../appStructure/keyElements.js').keyElements,
ethereumtx = require('ethereumjs-tx'),
abitor = require('ethereumjs-abi'),
adr = '0x3d41d04f27efe6e837dce30f3412f98c9ade47ef', // for testing in kovan network
prvkey = '0x10d15544a7574be02706b40172b6caed48ac8de21bfd96c6c9e32bd9e0e47727';
class Getter {
constructor() {
this.co = k.setup.Getter;
}
setNode(name, address) {
return new Promise((resolve,reject)=>{
this.transact(this.genTx(name,address))
.then(log => { resolve(true); })
.catch(err => { reject(err); })
})
}
genTx(name, url) {
const method = co.methods.setUserNode(name, url).encodeABI(),
tx = {
from: adr,
to: this.co._address,
gasPrice: "20000000000",
gas: "3000000",
value: '0',
data: method
}
k.infura.eth.accounts.signTransaction(tx, prvkey).then(signed => {
return signed.rawTransaction;
});
}
transact(raw) {
return new Promise((resolve,reject)=>{
k.infura.eth.sendSignedTransaction(raw)
.on('confirmation', console.log)
.on('transactionHash', console.log)
.on('receipt', log => { resolve(log) })
.on('error', err => { rejet(err) })
})
}
}
module.exports = {
Getter
}