2018-10-15 07:52:03 -07:00
|
|
|
import Web3 from "web3";
|
|
|
|
import addressGenerator from "./addressGenerator";
|
2018-01-29 10:02:05 -08:00
|
|
|
import helpers from "./helpers";
|
2018-10-04 05:36:03 -07:00
|
|
|
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 }) {
|
2018-01-29 10:02:05 -08:00
|
|
|
this.web3_10 = new Web3(web3.currentProvider);
|
2018-10-15 07:52:03 -07:00
|
|
|
const { KEYS_MANAGER_ADDRESS } = addresses;
|
|
|
|
console.log("Keys Manager ", KEYS_MANAGER_ADDRESS);
|
2018-01-29 10:02:05 -08:00
|
|
|
const branch = helpers.getBranch(netId);
|
|
|
|
|
2018-10-15 07:52:03 -07:00
|
|
|
const KeysManagerAbi = await helpers.getABI(branch, "KeysManager");
|
2018-01-29 10:02:05 -08:00
|
|
|
|
2018-10-15 07:52:03 -07:00
|
|
|
this.keysInstance = new this.web3_10.eth.Contract(
|
|
|
|
KeysManagerAbi,
|
|
|
|
KEYS_MANAGER_ADDRESS
|
|
|
|
);
|
2018-10-04 05:36:03 -07:00
|
|
|
this.netId = netId;
|
2017-12-06 23:02:38 -08:00
|
|
|
}
|
2018-01-29 10:02:05 -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-15 07:52:03 -07:00
|
|
|
const methods = this.keysInstance.methods;
|
|
|
|
let getInitialKeyStatus;
|
2018-08-10 00:26:59 -07:00
|
|
|
if (methods.getInitialKeyStatus) {
|
2018-10-15 07:52:03 -07:00
|
|
|
getInitialKeyStatus = methods.getInitialKeyStatus;
|
2018-07-23 05:55:14 -07:00
|
|
|
} else {
|
2018-10-15 07:52:03 -07:00
|
|
|
getInitialKeyStatus = methods.initialKeys;
|
2018-07-23 05:55:14 -07:00
|
|
|
}
|
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-04 05:36:03 -07:00
|
|
|
|
2018-10-15 07:52:03 -07:00
|
|
|
createKeys({ mining, voting, payout, sender }) {
|
|
|
|
let gasPrice = "2";
|
|
|
|
if (
|
|
|
|
this.netId === constants.NETID_DAI_TEST ||
|
|
|
|
this.netId === constants.NETID_DAI
|
|
|
|
) {
|
|
|
|
gasPrice = "0";
|
2018-10-04 05:36:03 -07:00
|
|
|
}
|
2018-10-04 06:05:12 -07:00
|
|
|
return this.keysInstance.methods.createKeys(mining, voting, payout).send({
|
|
|
|
from: sender,
|
2018-10-15 07:52:03 -07:00
|
|
|
gasPrice: this.web3_10.utils.toWei(gasPrice, "gwei")
|
2018-10-04 06:05:12 -07:00
|
|
|
});
|
2017-12-06 23:02:38 -08:00
|
|
|
}
|
2018-10-15 07:52:03 -07:00
|
|
|
}
|