diff --git a/src/contracts/Metadata.contract.js b/src/contracts/Metadata.contract.js index 4f1841e..521ab2a 100644 --- a/src/contracts/Metadata.contract.js +++ b/src/contracts/Metadata.contract.js @@ -122,9 +122,20 @@ export default class Metadata { } async confirmPendingChange({miningKeyToConfirm, senderVotingKey}) { - // you can't confirm your own - // you can't confirm twice - // + let alreadyConfirmed = await this.metadataInstance.methods.isAddressAlreadyVoted(miningKeyToConfirm, senderVotingKey).call(); + console.log(alreadyConfirmed) + if(alreadyConfirmed){ + throw( + {message: + `You already confirmed this change.`}) + } + const miningKeySender = await this.getMiningByVoting(senderVotingKey); + if(miningKeySender === miningKeyToConfirm){ + throw( + {message: + `You cannot confirm your own changes.\n + Please ask other validators to verify your new information.`}) + } return await this.metadataInstance.methods.confirmPendingChange(miningKeyToConfirm).send({from: senderVotingKey}); } @@ -138,6 +149,14 @@ export default class Metadata { } async finalize({miningKeyToConfirm, senderVotingKey}) { + const confirmations = await this.getConfirmations({miningKey: miningKeyToConfirm}); + const getMinThreshold = await this.getMinThreshold({miningKey: miningKeyToConfirm}); + if(Number(confirmations) < Number(getMinThreshold)){ + throw( + {message: + `There is not enough confimations.\n + The minimum threshold to finalize is ${getMinThreshold}.`}) + } return await this.metadataInstance.methods.finalize(miningKeyToConfirm).send({from: senderVotingKey}); } diff --git a/src/getWeb3.js b/src/getWeb3.js index 7ff1b4b..980218c 100644 --- a/src/getWeb3.js +++ b/src/getWeb3.js @@ -2,14 +2,6 @@ let errorMsgNoMetamaskAccount = `You haven't chosen any account in MetaMask. Please, choose your initial key in MetaMask and reload the page. Check Oracles network wiki for more info.`; - -function generateElement(msg){ - let errorNode = document.createElement("div"); - errorNode.innerHTML = `