mirror of
https://github.com/lens-protocol/core.git
synced 2026-04-22 03:02:03 -04:00
test: add moduleGlobals governance as a separate entity
This commit is contained in:
@@ -11,6 +11,7 @@ contract EventTest is BaseTest {
|
||||
address mockFollowModule;
|
||||
|
||||
// Non-Lens Events
|
||||
// TODO: Replace this with import from test/foundry/helpers/Events.sol
|
||||
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
|
||||
event Upgraded(address indexed implementation);
|
||||
event AdminChanged(address previousAdmin, address newAdmin);
|
||||
@@ -396,14 +397,14 @@ contract EventTest is BaseTest {
|
||||
// MODULE GLOBALS GOVERNANCE
|
||||
|
||||
function testGovernanceChangeEmitsExpectedEvents() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
vm.expectEmit(true, true, true, true, address(moduleGlobals));
|
||||
emit Events.ModuleGlobalsGovernanceSet(governance, me, block.timestamp);
|
||||
emit Events.ModuleGlobalsGovernanceSet(modulesGovernance, me, block.timestamp);
|
||||
moduleGlobals.setGovernance(me);
|
||||
}
|
||||
|
||||
function testTreasuryChangeEmitsExpectedEvents() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
vm.expectEmit(true, true, false, true, address(moduleGlobals));
|
||||
emit Events.ModuleGlobalsTreasurySet(treasury, me, block.timestamp);
|
||||
moduleGlobals.setTreasury(me);
|
||||
@@ -411,19 +412,19 @@ contract EventTest is BaseTest {
|
||||
|
||||
function testTreasuryFeeChangeEmitsExpectedEvents() public {
|
||||
uint16 newFee = 1;
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
vm.expectEmit(true, true, false, true, address(moduleGlobals));
|
||||
emit Events.ModuleGlobalsTreasuryFeeSet(TREASURY_FEE_BPS, newFee, block.timestamp);
|
||||
moduleGlobals.setTreasuryFee(newFee);
|
||||
}
|
||||
|
||||
function testCurrencyWhitelistEmitsExpectedEvents() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
vm.expectEmit(true, true, true, true, address(moduleGlobals));
|
||||
emit Events.ModuleGlobalsCurrencyWhitelisted(me, false, true, block.timestamp);
|
||||
moduleGlobals.whitelistCurrency(me, true);
|
||||
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
vm.expectEmit(true, true, true, true, address(moduleGlobals));
|
||||
emit Events.ModuleGlobalsCurrencyWhitelisted(me, true, false, block.timestamp);
|
||||
moduleGlobals.whitelistCurrency(me, false);
|
||||
|
||||
@@ -27,25 +27,25 @@ contract ModuleGlobalsTest is BaseTest {
|
||||
|
||||
// Negatives - Gov caller
|
||||
function testCannotSetGovernanceToZeroAddress() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
vm.expectRevert(Errors.InitParamsInvalid.selector);
|
||||
moduleGlobals.setGovernance(address(0));
|
||||
}
|
||||
|
||||
function testCannotSetTreasuryToZeroAddress() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
vm.expectRevert(Errors.InitParamsInvalid.selector);
|
||||
moduleGlobals.setTreasury(address(0));
|
||||
}
|
||||
|
||||
function testCannotWhitelistZeroAddressAsCurrency() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
vm.expectRevert(Errors.InitParamsInvalid.selector);
|
||||
moduleGlobals.whitelistCurrency(address(0), true);
|
||||
}
|
||||
|
||||
function testCannotSetTreasuryFee_largerOrEqualThanHalfOfBPS_MAX() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
vm.expectRevert(Errors.InitParamsInvalid.selector);
|
||||
moduleGlobals.setTreasuryFee(TREASURY_FEE_MAX_BPS / 2);
|
||||
}
|
||||
@@ -55,9 +55,9 @@ contract ModuleGlobalsTest is BaseTest {
|
||||
address governanceBefore = moduleGlobals.getGovernance();
|
||||
address newGovernance = address(uint160(governanceBefore) + 1);
|
||||
|
||||
assertEq(governanceBefore, governance, 'ModuleGlobals Governance is not Governance');
|
||||
assertEq(governanceBefore, modulesGovernance, 'ModuleGlobals Governance is not Governance');
|
||||
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
moduleGlobals.setGovernance(newGovernance);
|
||||
|
||||
address governanceAfter = moduleGlobals.getGovernance();
|
||||
@@ -70,7 +70,7 @@ contract ModuleGlobalsTest is BaseTest {
|
||||
address treasuryBefore = moduleGlobals.getTreasury();
|
||||
address newTreasury = address(uint160(treasuryBefore) + 1);
|
||||
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
moduleGlobals.setTreasury(newTreasury);
|
||||
|
||||
address treasuryAfter = moduleGlobals.getTreasury();
|
||||
@@ -84,7 +84,7 @@ contract ModuleGlobalsTest is BaseTest {
|
||||
uint16 newTreasuryFee = treasuryFeeBefore + 1;
|
||||
if (newTreasuryFee == TREASURY_FEE_MAX_BPS / 2) newTreasuryFee = 0;
|
||||
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
moduleGlobals.setTreasuryFee(newTreasuryFee);
|
||||
|
||||
uint16 treasuryFeeAfter = moduleGlobals.getTreasuryFee();
|
||||
@@ -94,19 +94,19 @@ contract ModuleGlobalsTest is BaseTest {
|
||||
}
|
||||
|
||||
function testGetGovernance() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
moduleGlobals.setGovernance(address(42));
|
||||
assertEq(moduleGlobals.getGovernance(), address(42), 'ModuleGlobals Governance does not match set value');
|
||||
}
|
||||
|
||||
function testGetTreasury() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
moduleGlobals.setTreasury(address(42));
|
||||
assertEq(moduleGlobals.getTreasury(), address(42), 'ModuleGlobals Treasury does not match set value');
|
||||
}
|
||||
|
||||
function testGetTreasuryFee() public {
|
||||
vm.prank(governance);
|
||||
vm.prank(modulesGovernance);
|
||||
moduleGlobals.setTreasuryFee(42);
|
||||
assertEq(moduleGlobals.getTreasuryFee(), 42, 'ModuleGlobals TreasuryFee does not match set value');
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@ contract TestSetup is Test, ForkManagement, ArrayHelpers {
|
||||
address deployer;
|
||||
address governance;
|
||||
address treasury;
|
||||
address modulesGovernance;
|
||||
|
||||
string constant MOCK_URI = 'ipfs://QmUXfQWe43RKx31VzA2BnbwhSMW8WuaJvszFWChD59m76U';
|
||||
|
||||
@@ -117,6 +118,7 @@ contract TestSetup is Test, ForkManagement, ArrayHelpers {
|
||||
deployer = address(1);
|
||||
|
||||
governance = hub.getGovernance();
|
||||
modulesGovernance = moduleGlobals.getGovernance();
|
||||
treasury = moduleGlobals.getTreasury();
|
||||
|
||||
TREASURY_FEE_BPS = moduleGlobals.getTreasuryFee();
|
||||
@@ -127,6 +129,7 @@ contract TestSetup is Test, ForkManagement, ArrayHelpers {
|
||||
deployer = address(1);
|
||||
governance = address(2);
|
||||
treasury = address(3);
|
||||
modulesGovernance = address(4);
|
||||
|
||||
TREASURY_FEE_BPS = 50;
|
||||
|
||||
@@ -166,7 +169,7 @@ contract TestSetup is Test, ForkManagement, ArrayHelpers {
|
||||
// Deploy the MockReferenceModule.
|
||||
mockReferenceModule = new MockReferenceModule();
|
||||
|
||||
moduleGlobals = new ModuleGlobals(governance, treasury, TREASURY_FEE_BPS);
|
||||
moduleGlobals = new ModuleGlobals(modulesGovernance, treasury, TREASURY_FEE_BPS);
|
||||
|
||||
vm.stopPrank();
|
||||
///////////////////////////////////////// End deployments.
|
||||
|
||||
10
test/foundry/helpers/Events.sol
Normal file
10
test/foundry/helpers/Events.sol
Normal file
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
pragma solidity >=0.6.0;
|
||||
|
||||
library TestEvents {
|
||||
// Non-Lens Events
|
||||
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
|
||||
event Upgraded(address indexed implementation);
|
||||
event AdminChanged(address previousAdmin, address newAdmin);
|
||||
}
|
||||
@@ -27,6 +27,7 @@ contract MigrationsTest is Test, ForkManagement {
|
||||
address owner = address(0x087E4);
|
||||
address deployer = address(1);
|
||||
address governance;
|
||||
address modulesGovernance;
|
||||
address treasury;
|
||||
address hubProxyAddr;
|
||||
address proxyAdmin;
|
||||
@@ -66,6 +67,7 @@ contract MigrationsTest is Test, ForkManagement {
|
||||
moduleGlobals = ModuleGlobals(json.readAddress(string(abi.encodePacked('.', targetEnv, '.ModuleGlobals'))));
|
||||
|
||||
governance = hub.getGovernance();
|
||||
modulesGovernance = moduleGlobals.getGovernance();
|
||||
}
|
||||
|
||||
function setUp() public onlyFork {
|
||||
|
||||
Reference in New Issue
Block a user