@@ -17,6 +17,7 @@ contract ClisBNBLaunchPoolDistributorTest is Test {
1717 address defaultReceiver = 0x78Ab74C7EC3592B5298CB912f31bD8Fb80A57DC0 ;
1818 address proxyAdminOwner = 0x8d388136d578dCD791D081c6042284CED6d9B0c6 ;
1919 address oneInchRouter = 0x111111125421cA6dc452d289314280a0f8842A65 ;
20+ address operator;
2021
2122 ClisBNBLaunchPoolDistributor cliBNBLaunchPoolDistributor;
2223
@@ -33,6 +34,7 @@ contract ClisBNBLaunchPoolDistributorTest is Test {
3334 bytes32 [] public l2;
3435
3536 function setUp () public {
37+ operator = makeAddr ("operator " );
3638 mainnet = vm.createSelectFork ("https://bsc-dataseed.binance.org " );
3739
3840 chainid = block .chainid ;
@@ -70,6 +72,10 @@ contract ClisBNBLaunchPoolDistributorTest is Test {
7072 );
7173
7274 cliBNBLaunchPoolDistributor = ClisBNBLaunchPoolDistributor (payable (address (clisBNBLPDistributorProxy)));
75+
76+ vm.startPrank (admin);
77+ cliBNBLaunchPoolDistributor.grantRole (cliBNBLaunchPoolDistributor.OPERATOR (), operator);
78+ vm.stopPrank ();
7379 }
7480
7581 function test_setUp () public {
@@ -91,7 +97,7 @@ contract ClisBNBLaunchPoolDistributorTest is Test {
9197 ClisBNBLaunchPoolDistributor.Epoch[] memory before = cliBNBLaunchPoolDistributor.getEpochs (epochIds);
9298 assertEq (0 , before[0 ].startTime);
9399
94- vm.startPrank (admin );
100+ vm.startPrank (operator );
95101 cliBNBLaunchPoolDistributor.setEpochMerkleRoot (0 , root, address (lista), block .timestamp + 10 , block .timestamp + 1000 , 1737e18 );
96102 vm.stopPrank ();
97103
@@ -109,7 +115,7 @@ contract ClisBNBLaunchPoolDistributorTest is Test {
109115 ClisBNBLaunchPoolDistributor.Epoch[] memory before = cliBNBLaunchPoolDistributor.getEpochs (epochIds);
110116 assertEq (0 , before[0 ].startTime);
111117
112- vm.startPrank (admin );
118+ vm.startPrank (operator );
113119 cliBNBLaunchPoolDistributor.setEpochMerkleRoot (0 , root, address (0 ), block .timestamp + 10 , block .timestamp + 1000 , 1737e18 );
114120 vm.stopPrank ();
115121
@@ -122,23 +128,58 @@ contract ClisBNBLaunchPoolDistributorTest is Test {
122128 }
123129
124130 function test_setEpochMerkleRoot_invalid_epochId () public {
125- vm.startPrank (admin );
131+ vm.startPrank (operator );
126132 vm.expectRevert ("Invalid epochId " );
127133 cliBNBLaunchPoolDistributor.setEpochMerkleRoot (1 , root, address (lista), block .timestamp + 10 , block .timestamp + 1000 , 1737e18 );
128134 vm.stopPrank ();
129135 }
130136
131137 function test_setEpochMerkleRoot_acl () public {
132138 vm.startPrank (bot);
133- vm.expectRevert ("AccessControl: account 0x00000000000000000000000000000000003a11aa is missing role 0x0000000000000000000000000000000000000000000000000000000000000000 " );
139+ vm.expectRevert ("AccessControl: account 0x00000000000000000000000000000000003a11aa is missing role 0x523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c " );
134140 cliBNBLaunchPoolDistributor.setEpochMerkleRoot (0 , root, address (lista), block .timestamp + 10 , block .timestamp + 1000 , 1737e18 );
135141 vm.stopPrank ();
136142 }
137143
138144 function test_revokeEpoch_ok () public {
139145 test_setEpochMerkleRoot_ok ();
140146
141- vm.startPrank (admin);
147+ vm.startPrank (operator);
148+ cliBNBLaunchPoolDistributor.revokeEpoch (0 );
149+ vm.stopPrank ();
150+
151+ uint64 [] memory epochIds = new uint64 [](1 );
152+ epochIds[0 ] = 0 ;
153+ ClisBNBLaunchPoolDistributor.Epoch[] memory actual = cliBNBLaunchPoolDistributor.getEpochs (epochIds);
154+
155+ assertEq (bytes32 (0 ), actual[0 ].merkleRoot);
156+ assertEq (0 , actual[0 ].startTime);
157+ assertEq (0 , actual[0 ].endTime);
158+ assertEq (0 , actual[0 ].totalAmount);
159+ }
160+
161+ function test_operatorSetEpochMerkleRoot_ok () public {
162+ uint64 [] memory epochIds = new uint64 [](1 );
163+ epochIds[0 ] = 0 ;
164+ ClisBNBLaunchPoolDistributor.Epoch[] memory before = cliBNBLaunchPoolDistributor.getEpochs (epochIds);
165+ assertEq (0 , before[0 ].startTime);
166+
167+ vm.startPrank (operator);
168+ cliBNBLaunchPoolDistributor.setEpochMerkleRoot (0 , root, address (lista), block .timestamp + 10 , block .timestamp + 1000 , 1737e18 );
169+ vm.stopPrank ();
170+
171+ ClisBNBLaunchPoolDistributor.Epoch[] memory actual = cliBNBLaunchPoolDistributor.getEpochs (epochIds);
172+ assertEq (root, actual[0 ].merkleRoot);
173+ assertEq (address (lista), actual[0 ].token);
174+ assertEq (block .timestamp + 10 , actual[0 ].startTime);
175+ assertEq (block .timestamp + 1000 , actual[0 ].endTime);
176+ assertEq (1737e18 , actual[0 ].totalAmount);
177+ }
178+
179+ function test_operatorRevokeEpoch_ok () public {
180+ test_setEpochMerkleRoot_ok ();
181+
182+ vm.startPrank (operator);
142183 cliBNBLaunchPoolDistributor.revokeEpoch (0 );
143184 vm.stopPrank ();
144185
0 commit comments