Skip to content

Commit 6fab322

Browse files
committed
minor fix for the voting power exchange
1 parent 52eaa1f commit 6fab322

File tree

4 files changed

+23
-5
lines changed

4 files changed

+23
-5
lines changed

src/VotingPowerExchange.sol

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ contract VotingPowerExchange is AccessControl, EIP712 {
4646
uint256 private constant PRECISION_FIX = 1e9;
4747
uint256 private constant PRECISION_FACTOR = 10;
4848
uint256 private constant PRECISION = 1e18;
49+
uint256 private constant ALLOWED_EXCHANGING_MINIMUM_AMOUNT = 1e18;
4950

5051
// token instances
5152
IGovToken private immutable govToken;
@@ -99,7 +100,7 @@ contract VotingPowerExchange is AccessControl, EIP712 {
99100
onlyRole(EXCHANGER_ROLE)
100101
{
101102
if (sender == address(0)) revert VotingPowerExchange__AddressIsZero();
102-
if (amount < 1e18) revert VotingPowerExchange__AmountIsTooSmall(); // not allow to exchange less than 1 utility token
103+
if (amount < ALLOWED_EXCHANGING_MINIMUM_AMOUNT) revert VotingPowerExchange__AmountIsTooSmall(); // not allow to exchange less than 1 utility token
103104
if (authorizationState(sender, nonce)) revert VotingPowerExchange__InvalidNonce();
104105
if (block.timestamp > expiration) revert VotingPowerExchange__SignatureExpired();
105106
// check the current gove token balance of the sender
@@ -254,12 +255,19 @@ contract VotingPowerExchange is AccessControl, EIP712 {
254255
function getConstants()
255256
external
256257
pure
257-
returns (bytes32 __EXCHANGE_TYPEHASH, uint256 _PRECISION_FIX, uint256 _PRECISION_FACTOR, uint256 _PRECISION)
258+
returns (
259+
bytes32 __EXCHANGE_TYPEHASH,
260+
uint256 _PRECISION_FIX,
261+
uint256 _PRECISION_FACTOR,
262+
uint256 _PRECISION,
263+
uint256 _ALLOWED_EXCHANGING_MINIMUM_AMOUNT
264+
)
258265
{
259266
__EXCHANGE_TYPEHASH = _EXCHANGE_TYPEHASH;
260267
_PRECISION_FIX = PRECISION_FIX;
261268
_PRECISION_FACTOR = PRECISION_FACTOR;
262269
_PRECISION = PRECISION;
270+
_ALLOWED_EXCHANGING_MINIMUM_AMOUNT = ALLOWED_EXCHANGING_MINIMUM_AMOUNT;
263271
}
264272

265273
/**

test/integration/VotingPowerExchange.t.sol

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,15 +222,21 @@ contract VotingPowerExchangeTest is Test {
222222
}
223223

224224
function testConstantValues() public view {
225-
(bytes32 __EXCHANGE_TYPEHASH, uint256 _PRICISION_FIX, uint256 _PRICISION_FACTOR, uint256 _PRICISION) =
226-
votingPowerExchange.getConstants();
225+
(
226+
bytes32 __EXCHANGE_TYPEHASH,
227+
uint256 _PRICISION_FIX,
228+
uint256 _PRICISION_FACTOR,
229+
uint256 _PRICISION,
230+
uint256 _ALLOWED_EXCHANGING_MINIMUM_AMOUNT
231+
) = votingPowerExchange.getConstants();
227232

228233
assertEq(
229234
__EXCHANGE_TYPEHASH, keccak256("Exchange(address sender,uint256 amount,bytes32 nonce,uint256 expiration)")
230235
);
231236
assertEq(_PRICISION, 1e18);
232237
assertEq(_PRICISION_FACTOR, 10);
233238
assertEq(_PRICISION_FIX, 1e9);
239+
assertEq(_ALLOWED_EXCHANGING_MINIMUM_AMOUNT, 1e18);
234240
}
235241

236242
function testVotingPowerCap() public view {

test/mocks/ERC20UpgradeableTokenV2.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import "src/ERC20UpgradeableTokenV1.sol";
88
contract ERC20UpgradeableTokenV2 is ERC20UpgradeableTokenV1 {
99
bytes32 public constant TREASURY_ROLE = keccak256("TREASURY_ROLE");
1010

11-
address private _treasury;
11+
address private _treasury; // dummy state variable for testing
1212

1313
/// @dev Initializes the V2 version of the contract.
1414
function initializeV2(address treasury, address newAdmin) public reinitializer(2) {

test/onChain/testBaseSepolia.sol

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ contract TestBaseSepolia is Test {
1818
}
1919

2020
function testExchangeOnChain01() public {
21+
if (block.chainid != 84532) {
22+
console.log("Not on Base Sepolia");
23+
return;
24+
}
2125
// Set up the state required for the test (if needed)
2226
// For example, simulate a user address
2327
uint256 balanceBefore = utilityToken.balanceOf(0x588A7E62547CB573084C8608486d60E567c573d0);

0 commit comments

Comments
 (0)