Skip to content

Commit 3d073d1

Browse files
JESJES
authored andcommitted
big cleanup
1 parent 1d383c0 commit 3d073d1

File tree

1 file changed

+162
-108
lines changed

1 file changed

+162
-108
lines changed

test/unit/StakeRegistryUnit.t.sol

Lines changed: 162 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,7 +1124,7 @@ contract StakeRegistryUnitTests_Config is StakeRegistryUnitTests {
11241124
uint8 quorumNumber,
11251125
uint32 lookAheadBlocks
11261126
) public {
1127-
// Only consider existing quorums and quorums which have delegated stake
1127+
// Only consider existing quorums and quorums which use delegated stake
11281128
cheats.assume(quorumNumber < nextQuorum);
11291129
cheats.assume(
11301130
stakeRegistry.stakeTypePerQuorum(quorumNumber)
@@ -1135,7 +1135,7 @@ contract StakeRegistryUnitTests_Config is StakeRegistryUnitTests {
11351135
stakeRegistry.setSlashableStakeLookahead(quorumNumber, lookAheadBlocks);
11361136
}
11371137

1138-
/// @dev Fuzzes initialized quorum numbers and sets stake look ahead
1138+
/// @dev Fuzzes slashable quorum numbers and sets stake look ahead
11391139
function testFuzz_setSlashableStakeLookahead(
11401140
uint8 quorumNumber,
11411141
uint32 lookAheadBlocks
@@ -1178,12 +1178,12 @@ contract StakeRegistryUnitTests_Config is StakeRegistryUnitTests {
11781178
RegisterSetup memory setup = _fuzz_setupRegisterOperator(quorumBitmap, additionalStake);
11791179

11801180
// State history should be empty
1181-
IStakeRegistry.StakeUpdate[][] memory operatorStakeHistories =
1182-
_getOperatorStakeHistories(setup.operatorId, setup.quorumNumbers);
1183-
for (uint256 i = 0; i < setup.quorumNumbers.length; i++) {
1184-
assertTrue(
1185-
operatorStakeHistories[i].length == 0, "invalid operator stake history length"
1186-
);
1181+
{
1182+
IStakeRegistry.StakeUpdate[][] memory stakeHistories =
1183+
_getOperatorStakeHistories(setup.operatorId, setup.quorumNumbers);
1184+
for (uint256 i = 0; i < setup.quorumNumbers.length; i++) {
1185+
assertTrue(stakeHistories[i].length == 0, "invalid operator stake history length");
1186+
}
11871187
}
11881188

11891189
// Register the Operator
@@ -1192,11 +1192,32 @@ contract StakeRegistryUnitTests_Config is StakeRegistryUnitTests {
11921192
stakeRegistry.registerOperator(setup.operator, setup.operatorId, setup.quorumNumbers);
11931193

11941194
// Check state history after registration
1195-
IStakeRegistry.StakeUpdate[][] memory operatorStakeHistoriesPost =
1196-
_getOperatorStakeHistories(setup.operatorId, setup.quorumNumbers);
1197-
for (uint256 i = 0; i < setup.quorumNumbers.length; i++) {
1198-
IStakeRegistry.StakeUpdate[] memory operatorStakeHistory = operatorStakeHistoriesPost[i];
1199-
assertTrue(operatorStakeHistory.length == 1, "invalid operator stake history length");
1195+
{
1196+
IStakeRegistry.StakeUpdate[] memory stakeUpdates =
1197+
_getLatestStakeUpdates(setup.operatorId, setup.quorumNumbers);
1198+
IStakeRegistry.StakeUpdate[][] memory stakeHistories =
1199+
_getOperatorStakeHistories(setup.operatorId, setup.quorumNumbers);
1200+
for (uint256 i = 0; i < setup.quorumNumbers.length; i++) {
1201+
IStakeRegistry.StakeUpdate[] memory stakeHistory = stakeHistories[i];
1202+
assertTrue(
1203+
stakeHistory.length == 1, "invalid operator stake history length"
1204+
);
1205+
assertEq(
1206+
stakeHistory[0].stake,
1207+
stakeUpdates[i].stake,
1208+
"invalid operator stake history stake"
1209+
);
1210+
assertEq(
1211+
stakeHistory[0].updateBlockNumber,
1212+
stakeUpdates[i].updateBlockNumber,
1213+
"invalid operator stake history update block number"
1214+
);
1215+
assertEq(
1216+
stakeHistory[0].nextUpdateBlockNumber,
1217+
stakeUpdates[i].nextUpdateBlockNumber,
1218+
"invalid operator stake history next update block number"
1219+
);
1220+
}
12001221
}
12011222
}
12021223

@@ -1209,27 +1230,63 @@ contract StakeRegistryUnitTests_Config is StakeRegistryUnitTests {
12091230
fuzzy_toRemove: quorumsToRemove,
12101231
fuzzy_addtlStake: additionalStake
12111232
});
1212-
1213-
// Check stake history
1214-
IStakeRegistry.StakeUpdate[][] memory operatorStakeHistories =
1215-
_getOperatorStakeHistories(setup.operatorId, setup.registeredQuorumNumbers);
1216-
for (uint256 i = 0; i < setup.registeredQuorumNumbers.length; i++) {
1217-
assertTrue(
1218-
operatorStakeHistories[i].length == 1, "invalid operator stake history length"
1219-
);
1220-
IStakeRegistry.StakeUpdate memory operatorStake = operatorStakeHistories[i][0];
1233+
uint32 blockNum = uint32(block.number);
1234+
1235+
{
1236+
IStakeRegistry.StakeUpdate[] memory stakeUpdates =
1237+
_getLatestStakeUpdates(setup.operatorId, setup.registeredQuorumNumbers);
1238+
IStakeRegistry.StakeUpdate[][] memory stakeHistories =
1239+
_getOperatorStakeHistories(setup.operatorId, setup.registeredQuorumNumbers);
1240+
for (uint256 i = 0; i < setup.registeredQuorumNumbers.length; i++) {
1241+
assertTrue(stakeHistories[i].length == 1, "invalid operator stake history length");
1242+
IStakeRegistry.StakeUpdate memory stakeHistory = stakeHistories[i][0];
1243+
assertEq(
1244+
stakeHistory.stake,
1245+
stakeUpdates[i].stake,
1246+
"invalid operator stake history stake2"
1247+
);
1248+
assertEq(
1249+
stakeHistory.updateBlockNumber,
1250+
blockNum,
1251+
"invalid operator stake history update block number"
1252+
);
1253+
assertEq(
1254+
stakeHistory.nextUpdateBlockNumber,
1255+
stakeUpdates[i].nextUpdateBlockNumber,
1256+
"invalid operator stake history next update block number"
1257+
);
1258+
}
12211259
}
12221260

12231261
// deregisterOperator
12241262
cheats.prank(address(registryCoordinator));
12251263
stakeRegistry.deregisterOperator(setup.operatorId, setup.quorumsToRemove);
12261264

12271265
// Check stake history after deregistration in the same block
1228-
IStakeRegistry.StakeUpdate[][] memory operatorStakeHistoriesPost =
1229-
_getOperatorStakeHistories(setup.operatorId, setup.registeredQuorumNumbers);
1230-
for (uint256 i = 0; i < setup.registeredQuorumNumbers.length; i++) {
1231-
IStakeRegistry.StakeUpdate[] memory operatorStakeHistory = operatorStakeHistoriesPost[i];
1232-
assertTrue(operatorStakeHistory.length == 1, "invalid operator stake history length");
1266+
{
1267+
IStakeRegistry.StakeUpdate[] memory stakeUpdates =
1268+
_getLatestStakeUpdates(setup.operatorId, setup.registeredQuorumNumbers);
1269+
IStakeRegistry.StakeUpdate[][] memory stakeHistories =
1270+
_getOperatorStakeHistories(setup.operatorId, setup.registeredQuorumNumbers);
1271+
for (uint256 i = 0; i < setup.registeredQuorumNumbers.length; i++) {
1272+
assertTrue(stakeHistories[i].length == 1, "invalid operator stake history length");
1273+
IStakeRegistry.StakeUpdate memory stakeHistory = stakeHistories[i][0];
1274+
assertEq(
1275+
stakeHistory.stake,
1276+
stakeUpdates[i].stake,
1277+
"invalid operator stake history stake2"
1278+
);
1279+
assertEq(
1280+
stakeHistory.updateBlockNumber,
1281+
blockNum,
1282+
"invalid operator stake history update block number"
1283+
);
1284+
assertEq(
1285+
stakeHistory.nextUpdateBlockNumber,
1286+
stakeUpdates[i].nextUpdateBlockNumber,
1287+
"invalid operator stake history next update block number"
1288+
);
1289+
}
12331290
}
12341291
}
12351292

@@ -1248,25 +1305,24 @@ contract StakeRegistryUnitTests_Config is StakeRegistryUnitTests {
12481305
fuzzy_addtlStake: additionalStake
12491306
});
12501307

1251-
emit log_uint(block.number);
1252-
IStakeRegistry.StakeUpdate[] memory regOperatorStakes =
1253-
_getLatestStakeUpdates(setup.operatorId, setup.registeredQuorumNumbers);
1254-
IStakeRegistry.StakeUpdate[] memory operatorStakeUpdates =
1255-
_getOperatorStakeUpdatesAtIndex(setup.operatorId, setup.registeredQuorumNumbers, 0);
1256-
for (uint256 i = 0; i < setup.registeredQuorumNumbers.length; i++) {
1257-
assertEq(
1258-
operatorStakeUpdates[i].stake, regOperatorStakes[i].stake, "invalid operator stake"
1259-
);
1260-
assertEq(
1261-
operatorStakeUpdates[i].updateBlockNumber,
1262-
regOperatorStakes[i].updateBlockNumber,
1263-
"invalid operator stake update block number"
1264-
);
1265-
assertEq(
1266-
operatorStakeUpdates[i].nextUpdateBlockNumber,
1267-
regOperatorStakes[i].nextUpdateBlockNumber,
1268-
"invalid operator stake next update block number"
1269-
);
1308+
{
1309+
IStakeRegistry.StakeUpdate[] memory stakeUpdates =
1310+
_getLatestStakeUpdates(setup.operatorId, setup.registeredQuorumNumbers);
1311+
IStakeRegistry.StakeUpdate[] memory indexStakeUpdate =
1312+
_getOperatorStakeUpdatesAtIndex(setup.operatorId, setup.registeredQuorumNumbers, 0);
1313+
for (uint256 i = 0; i < setup.registeredQuorumNumbers.length; i++) {
1314+
assertEq(indexStakeUpdate[i].stake, stakeUpdates[i].stake, "invalid operator stake");
1315+
assertEq(
1316+
indexStakeUpdate[i].updateBlockNumber,
1317+
uint32(block.number),
1318+
"invalid operator stake update block number"
1319+
);
1320+
assertEq(
1321+
indexStakeUpdate[i].nextUpdateBlockNumber,
1322+
stakeUpdates[i].nextUpdateBlockNumber,
1323+
"invalid operator stake next update block number"
1324+
);
1325+
}
12701326
}
12711327

12721328
// Force block to be mined to ensure new stake update is registered
@@ -1275,28 +1331,25 @@ contract StakeRegistryUnitTests_Config is StakeRegistryUnitTests {
12751331
// deregisterOperator
12761332
cheats.prank(address(registryCoordinator));
12771333
stakeRegistry.deregisterOperator(setup.operatorId, setup.quorumsToRemove);
1278-
emit log_uint(block.number);
12791334

1280-
IStakeRegistry.StakeUpdate[] memory deregOperatorStakes =
1281-
_getLatestStakeUpdates(setup.operatorId, setup.quorumsToRemove);
1282-
IStakeRegistry.StakeUpdate[] memory operatorStakeUpdatesPost =
1283-
_getOperatorStakeUpdatesAtIndex(setup.operatorId, setup.quorumsToRemove, 1);
1284-
for (uint256 i = 0; i < setup.quorumsToRemove.length; i++) {
1285-
assertEq(
1286-
operatorStakeUpdatesPost[i].stake,
1287-
deregOperatorStakes[i].stake,
1288-
"invalid operator stake"
1289-
);
1290-
assertEq(
1291-
operatorStakeUpdatesPost[i].updateBlockNumber,
1292-
deregOperatorStakes[i].updateBlockNumber,
1293-
"invalid operator stake update block number"
1294-
);
1295-
assertEq(
1296-
operatorStakeUpdatesPost[i].nextUpdateBlockNumber,
1297-
deregOperatorStakes[i].nextUpdateBlockNumber,
1298-
"invalid operator stake next update block number"
1299-
);
1335+
{
1336+
IStakeRegistry.StakeUpdate[] memory stakeUpdates =
1337+
_getLatestStakeUpdates(setup.operatorId, setup.quorumsToRemove);
1338+
IStakeRegistry.StakeUpdate[] memory indexStakeUpdate =
1339+
_getOperatorStakeUpdatesAtIndex(setup.operatorId, setup.quorumsToRemove, 1);
1340+
for (uint256 i = 0; i < setup.quorumsToRemove.length; i++) {
1341+
assertEq(indexStakeUpdate[i].stake, stakeUpdates[i].stake, "invalid operator stake");
1342+
assertEq(
1343+
indexStakeUpdate[i].updateBlockNumber,
1344+
uint32(block.number),
1345+
"invalid operator stake update block number"
1346+
);
1347+
assertEq(
1348+
indexStakeUpdate[i].nextUpdateBlockNumber,
1349+
stakeUpdates[i].nextUpdateBlockNumber,
1350+
"invalid operator stake next update block number"
1351+
);
1352+
}
13001353
}
13011354
}
13021355

@@ -1309,53 +1362,54 @@ contract StakeRegistryUnitTests_Config is StakeRegistryUnitTests {
13091362
fuzzy_toRemove: quorumsToRemove,
13101363
fuzzy_addtlStake: additionalStake
13111364
});
1312-
1313-
emit log_uint(block.number);
1314-
IStakeRegistry.StakeUpdate[] memory regOperatorStakes =
1315-
_getLatestStakeUpdates(setup.operatorId, setup.registeredQuorumNumbers);
1316-
IStakeRegistry.StakeUpdate[] memory operatorStakeUpdates =
1317-
_getOperatorStakeUpdatesAtIndex(setup.operatorId, setup.registeredQuorumNumbers, 0);
1318-
for (uint256 i = 0; i < setup.registeredQuorumNumbers.length; i++) {
1319-
assertEq(
1320-
operatorStakeUpdates[i].stake, regOperatorStakes[i].stake, "invalid operator stake"
1321-
);
1322-
assertEq(
1323-
operatorStakeUpdates[i].updateBlockNumber,
1324-
regOperatorStakes[i].updateBlockNumber,
1325-
"invalid operator stake update block number"
1326-
);
1327-
assertEq(
1328-
operatorStakeUpdates[i].nextUpdateBlockNumber,
1329-
regOperatorStakes[i].nextUpdateBlockNumber,
1330-
"invalid operator stake next update block number"
1331-
);
1365+
uint32 blockNum = uint32(block.number);
1366+
1367+
{
1368+
IStakeRegistry.StakeUpdate[] memory stakeUpdates =
1369+
_getLatestStakeUpdates(setup.operatorId, setup.registeredQuorumNumbers);
1370+
IStakeRegistry.StakeUpdate[] memory indexStakeUpdate =
1371+
_getOperatorStakeUpdatesAtIndex(setup.operatorId, setup.registeredQuorumNumbers, 0);
1372+
for (uint256 i = 0; i < setup.registeredQuorumNumbers.length; i++) {
1373+
assertEq(indexStakeUpdate[i].stake, stakeUpdates[i].stake, "invalid operator stake");
1374+
assertEq(
1375+
indexStakeUpdate[i].updateBlockNumber,
1376+
blockNum,
1377+
"invalid operator stake update block number"
1378+
);
1379+
assertEq(
1380+
indexStakeUpdate[i].nextUpdateBlockNumber,
1381+
stakeUpdates[i].nextUpdateBlockNumber,
1382+
"invalid operator stake next update block number"
1383+
);
1384+
}
13321385
}
13331386

13341387
// deregisterOperator
13351388
cheats.prank(address(registryCoordinator));
13361389
stakeRegistry.deregisterOperator(setup.operatorId, setup.quorumsToRemove);
1337-
emit log_uint(block.number);
13381390

1339-
IStakeRegistry.StakeUpdate[] memory deregOperatorStakes =
1340-
_getLatestStakeUpdates(setup.operatorId, setup.quorumsToRemove);
1341-
IStakeRegistry.StakeUpdate[] memory operatorStakeUpdatesPost =
1342-
_getOperatorStakeUpdatesAtIndex(setup.operatorId, setup.quorumsToRemove, 0);
1343-
for (uint256 i = 0; i < setup.quorumsToRemove.length; i++) {
1344-
assertEq(
1345-
operatorStakeUpdatesPost[i].stake,
1346-
deregOperatorStakes[i].stake,
1347-
"invalid operator stake"
1348-
);
1349-
assertEq(
1350-
operatorStakeUpdatesPost[i].updateBlockNumber,
1351-
deregOperatorStakes[i].updateBlockNumber,
1352-
"invalid operator stake update block number"
1353-
);
1354-
assertEq(
1355-
operatorStakeUpdatesPost[i].nextUpdateBlockNumber,
1356-
deregOperatorStakes[i].nextUpdateBlockNumber,
1357-
"invalid operator stake next update block number"
1358-
);
1391+
{
1392+
IStakeRegistry.StakeUpdate[] memory stakeUpdates =
1393+
_getLatestStakeUpdates(setup.operatorId, setup.quorumsToRemove);
1394+
IStakeRegistry.StakeUpdate[] memory operatorStakeUpdatesPost =
1395+
_getOperatorStakeUpdatesAtIndex(setup.operatorId, setup.quorumsToRemove, 0);
1396+
for (uint256 i = 0; i < setup.quorumsToRemove.length; i++) {
1397+
assertEq(
1398+
operatorStakeUpdatesPost[i].stake,
1399+
stakeUpdates[i].stake,
1400+
"invalid operator stake"
1401+
);
1402+
assertEq(
1403+
operatorStakeUpdatesPost[i].updateBlockNumber,
1404+
blockNum,
1405+
"invalid operator stake update block number"
1406+
);
1407+
assertEq(
1408+
operatorStakeUpdatesPost[i].nextUpdateBlockNumber,
1409+
stakeUpdates[i].nextUpdateBlockNumber,
1410+
"invalid operator stake next update block number"
1411+
);
1412+
}
13591413
}
13601414
}
13611415
}

0 commit comments

Comments
 (0)