Fix slashMiner in DioneStaking

This commit is contained in:
ChronosX88 2021-04-21 00:40:27 +03:00
parent 4b3aa6df57
commit 0114f53f6d
Signed by: ChronosXYZ
GPG Key ID: 085A69A82C8C511A
2 changed files with 9 additions and 5 deletions

View File

@ -59,11 +59,11 @@ contract DioneStaking is Ownable, ReentrancyGuard {
minimumStake = _minimumStake;
}
// Mine new dione oracle task, only can be executed by aggregator contract
// Mine new dione oracle task, only can be executed by oracle contract
function mine(address _minerAddr) public nonReentrant {
require(msg.sender == dioneOracleAddress, "not oracle contract");
MinerInfo storage miner = minerInfo[_minerAddr];
require(miner.amount >= minimumStake);
require(miner.amount >= minimumStake, "not enough stake");
dione.mint(_minerAddr, minerReward);
miner.lastRewardBlock = block.number;
emit Mine(_minerAddr, block.number);
@ -141,11 +141,12 @@ contract DioneStaking is Ownable, ReentrancyGuard {
function slashMiner(address miner, address[] memory receipentMiners) public {
require(msg.sender == disputeContractAddr, "Exception: caller is not the dispute contract");
uint256 share = minerInfo[miner].amount.div(receipentMiners.length);
for (uint8 i = 0; i < receipentMiners.length; i++) {
minerInfo[miner].amount.sub(share);
minerInfo[receipentMiners[i]].amount += share;
minerInfo[miner].amount = minerInfo[miner].amount.sub(share);
minerInfo[receipentMiners[i]].amount = minerInfo[receipentMiners[i]].amount.add(share);
}
}
}

View File

@ -1,5 +1,8 @@
import { task } from "hardhat/config";
import "@nomiclabs/hardhat-ethers";
import "hardhat-tracer";
import "@nomiclabs/hardhat-waffle";
import "hardhat-ethernal";
task("accounts", "Prints the list of accounts", async (args, hre) => {
const accounts = await hre.ethers.getSigners();
@ -13,7 +16,7 @@ export default {
solidity: "0.8.3",
networks: {
ganache: {
url: `http://localhost:7545`,
url: `http://localhost:8545`,
accounts: {
mnemonic: "test test test test test test test test test test test junk"
}