Do not mark proof as missing twice
This commit is contained in:
parent
c3e85c675a
commit
23887f9190
|
@ -16,6 +16,7 @@ contract StorageContracts {
|
||||||
uint proofTimeout; // proof has to be submitted before this
|
uint proofTimeout; // proof has to be submitted before this
|
||||||
uint proofMarker; // indicates when a proof is required
|
uint proofMarker; // indicates when a proof is required
|
||||||
mapping(uint => bool) proofReceived; // whether proof for block was received
|
mapping(uint => bool) proofReceived; // whether proof for block was received
|
||||||
|
mapping(uint => bool) proofMissing; // whether proof for block was missing
|
||||||
uint missingProofs;
|
uint missingProofs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,6 +222,8 @@ contract StorageContracts {
|
||||||
isProofRequired(contractId, blocknumber),
|
isProofRequired(contractId, blocknumber),
|
||||||
"Proof was not required"
|
"Proof was not required"
|
||||||
);
|
);
|
||||||
|
require(!c.proofMissing[blocknumber], "Proof already marked as missing");
|
||||||
|
c.proofMissing[blocknumber] = true;
|
||||||
c.missingProofs += 1;
|
c.missingProofs += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -338,6 +338,16 @@ describe("Storage Contracts", function () {
|
||||||
contracts.markProofAsMissing(id, blocknumber)
|
contracts.markProofAsMissing(id, blocknumber)
|
||||||
).to.be.revertedWith("Proof was not required")
|
).to.be.revertedWith("Proof was not required")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("does not mark proof as missing twice", async function () {
|
||||||
|
await mineUntilProofIsRequired(id)
|
||||||
|
let blocknumber = await minedBlockNumber()
|
||||||
|
await mineUntilProofTimeout()
|
||||||
|
await contracts.markProofAsMissing(id, blocknumber)
|
||||||
|
await expect(
|
||||||
|
contracts.markProofAsMissing(id, blocknumber)
|
||||||
|
).to.be.revertedWith("Proof already marked as missing")
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue