poa-dapps-keys-generation/src/keysManager.js

56 lines
1.5 KiB
JavaScript
Raw Normal View History

2018-10-15 07:52:03 -07:00
import addressGenerator from "./addressGenerator";
import helpers from "./helpers";
import { constants } from "./constants";
2017-12-06 23:02:38 -08:00
export default class KeysManager {
2018-10-15 07:52:03 -07:00
async init({ web3, netId, addresses }) {
const { KEYS_MANAGER_ADDRESS } = addresses;
console.log("Keys Manager ", KEYS_MANAGER_ADDRESS);
2018-10-16 06:09:49 -07:00
const KeysManagerAbi = await helpers.getABI(
constants.NETWORKS[netId].BRANCH,
"KeysManager"
2018-10-15 07:52:03 -07:00
);
this.instance = new web3.eth.Contract(KeysManagerAbi, KEYS_MANAGER_ADDRESS);
const networkName = constants.NETWORKS[netId].NAME.toLowerCase();
2018-10-16 06:09:49 -07:00
if (networkName === "dai-test" || networkName === "dai") {
this.gasPrice = web3.utils.toWei("0", "gwei");
} else {
2018-10-16 06:09:49 -07:00
this.gasPrice = web3.utils.toWei("2", "gwei");
}
2017-12-06 23:02:38 -08:00
}
2017-12-06 23:02:38 -08:00
async isInitialKeyValid(initialKey) {
2018-02-23 05:31:56 -08:00
return new Promise((resolve, reject) => {
2018-10-16 06:09:49 -07:00
const methods = this.instance.methods;
2018-10-15 07:52:03 -07:00
let getInitialKeyStatus;
if (methods.getInitialKeyStatus) {
2018-10-15 07:52:03 -07:00
getInitialKeyStatus = methods.getInitialKeyStatus;
} else {
2018-10-15 07:52:03 -07:00
getInitialKeyStatus = methods.initialKeys;
}
2018-10-15 07:52:03 -07:00
getInitialKeyStatus(initialKey)
.call()
.then(function(result) {
resolve(result);
})
.catch(function(e) {
reject(false);
});
});
2017-12-06 23:02:38 -08:00
}
async generateKeys() {
return await addressGenerator();
}
2018-10-15 07:52:03 -07:00
createKeys({ mining, voting, payout, sender }) {
return this.instance.methods.createKeys(mining, voting, payout).send({
from: sender,
gasPrice: this.gasPrice
});
2017-12-06 23:02:38 -08:00
}
2018-10-15 07:52:03 -07:00
}