From f2112be4d8e2b8798f789b948f2a7625b2350fe7 Mon Sep 17 00:00:00 2001 From: Hadrien Croubois Date: Thu, 4 Feb 2021 21:28:13 +0100 Subject: [PATCH] Add revert string to Counter decrement overflow (#2500) --- contracts/utils/Counters.sol | 10 ++++++++-- test/utils/Counters.test.js | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/contracts/utils/Counters.sol b/contracts/utils/Counters.sol index c4ee7b718..746a2631e 100644 --- a/contracts/utils/Counters.sol +++ b/contracts/utils/Counters.sol @@ -23,10 +23,16 @@ library Counters { } function increment(Counter storage counter) internal { - counter._value += 1; + unchecked { + counter._value += 1; + } } function decrement(Counter storage counter) internal { - counter._value = counter._value - 1; + uint256 value = counter._value; + require(value > 0, "Counter: decrement overflow"); + unchecked { + counter._value = value - 1; + } } } diff --git a/test/utils/Counters.test.js b/test/utils/Counters.test.js index 5e6424e0e..90a1ae845 100644 --- a/test/utils/Counters.test.js +++ b/test/utils/Counters.test.js @@ -43,7 +43,7 @@ contract('Counters', function (accounts) { it('reverts if the current value is 0', async function () { await this.counter.decrement(); - await expectRevert.unspecified(this.counter.decrement()); + await expectRevert(this.counter.decrement(), 'Counter: decrement overflow'); }); }); context('after incremented to 3', function () {