Skip to content

Commit c80ea01

Browse files
committed
tests
1 parent e10eb67 commit c80ea01

22 files changed

Lines changed: 156 additions & 109 deletions

chains/evm/contracts/libraries/FinalityCodec.sol

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ pragma solidity ^0.8.4;
2626
/// 0x0001..0x03FF — wait for N confirmation blocks (depth only, no flags).
2727
library FinalityCodec {
2828
error InvalidBlockDepth(uint16 requestedDepth, uint16 maxDepth);
29+
error InvalidRequestedFinality(bytes2 requestedFinality, bytes2 allowedFinality);
2930
/// @notice Requested finality must be exactly one mode: any of the flag bits or a block depth with no upper flag bits.
3031
/// It cannot combine a flag with a block depth.
31-
error InvalidRequestedFinality(bytes2 encodedFinality);
32+
error RequestedFinalityCanOnlyHaveOneMode(bytes2 encodedFinality);
3233

3334
/// @notice The block depth is stored in the lower 10 bits, leaving the upper 6 bits for flags. This allows for a
3435
/// maximum block depth of 1023, which should be sufficient for most use cases. For more security, users should wait
@@ -95,7 +96,7 @@ library FinalityCodec {
9596
// There must be exactly one active mode: either a block depth or a single flag. Selecting multiple modes is only
9697
// allowed for `allowedFinality` set by Pools, CCVs, etc., but not for `requestedFinality` set by senders.
9798
if (activeModes != 1) {
98-
revert InvalidRequestedFinality(encodedFinality);
99+
revert RequestedFinalityCanOnlyHaveOneMode(encodedFinality);
99100
}
100101
}
101102

@@ -115,15 +116,15 @@ library FinalityCodec {
115116
// If any of the flags match, the request is allowed only when it has no depth field (flag-only request).
116117
if (requestedFinality >> BLOCK_DEPTH_BITS & allowedFinality >> BLOCK_DEPTH_BITS != 0) {
117118
if (uint16(requestedFinality & BLOCK_DEPTH_MASK) != 0) {
118-
revert InvalidRequestedFinality(requestedFinality);
119+
revert InvalidRequestedFinality(requestedFinality, allowedFinality);
119120
}
120121
return;
121122
}
122123
// Otherwise, it must be block-depth based.
123124
uint16 requestedBlockDepth = uint16(requestedFinality & BLOCK_DEPTH_MASK);
124125
uint16 allowedBlockDepth = uint16(allowedFinality & BLOCK_DEPTH_MASK);
125126
if (allowedBlockDepth == 0 || requestedBlockDepth < allowedBlockDepth) {
126-
revert InvalidBlockDepth(requestedBlockDepth, allowedBlockDepth);
127+
revert InvalidRequestedFinality(requestedFinality, allowedFinality);
127128
}
128129
}
129130
}

chains/evm/contracts/test/ccvs/CCTPVerifier/CCTPVerifier.applyAllowlistUpdates.t.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ contract CCTPVerifier_applyAllowlistUpdates is CCTPVerifierSetup {
3232

3333
s_cctpVerifier.applyAllowlistUpdates(allowlistConfigs);
3434

35-
(bool allowlistEnabled,, address[] memory allowlistSender) =
35+
(BaseVerifier.RemoteChainConfigArgs memory config, address[] memory allowlistSender) =
3636
s_cctpVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
37-
assertEq(allowlistEnabled, allowlistConfigs[0].allowlistEnabled);
37+
assertEq(config.allowlistEnabled, allowlistConfigs[0].allowlistEnabled);
3838
assertEq(allowlistSender.length, allowlistConfigs[0].addedAllowlistedSenders.length);
3939
assertEq(allowlistSender[0], allowlistConfigs[0].addedAllowlistedSenders[0]);
4040
}

chains/evm/contracts/test/ccvs/CCTPVerifier/CCTPVerifier.applyDestChainConfigUpdates.t.sol

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,20 @@ contract CCTPVerifier_applyRemoteChainConfigUpdates is CCTPVerifierSetup {
1919
allowlistEnabled: true,
2020
feeUSDCents: DEFAULT_CCV_FEE_USD_CENTS,
2121
gasForVerification: DEFAULT_CCV_GAS_LIMIT,
22-
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE
22+
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE,
23+
finalityConfig: bytes2(0)
2324
});
2425

2526
vm.expectEmit();
2627
emit BaseVerifier.RemoteChainConfigSet(newChainSelector, router, true);
2728

2829
s_cctpVerifier.applyRemoteChainConfigUpdates(args);
2930

30-
(bool allowlistEnabled, address newRouter, address[] memory allowedSenders) =
31+
(BaseVerifier.RemoteChainConfigArgs memory config, address[] memory allowedSenders) =
3132
s_cctpVerifier.getRemoteChainConfig(newChainSelector);
3233

33-
assertEq(allowlistEnabled, true);
34-
assertEq(newRouter, router);
34+
assertEq(config.allowlistEnabled, true);
35+
assertEq(address(config.router), router);
3536
assertEq(allowedSenders.length, 0);
3637
}
3738

chains/evm/contracts/test/ccvs/CCTPVerifier/CCTPVerifierSetup.t.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ contract CCTPVerifierSetup is BaseVerifierSetup {
7171
allowlistEnabled: false,
7272
feeUSDCents: DEFAULT_CCV_FEE_USD_CENTS,
7373
gasForVerification: DEFAULT_CCV_GAS_LIMIT,
74-
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE
74+
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE,
75+
finalityConfig: bytes2(0)
7576
});
7677
s_cctpVerifier.applyRemoteChainConfigUpdates(remoteChainConfigArgs);
7778

chains/evm/contracts/test/ccvs/CommitteeVerifier/CommitteeVerifier.applyAllowlistUpdates.t.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ contract CommitteeVerifier_applyAllowlistUpdates is CommitteeVerifierSetup {
3232

3333
s_committeeVerifier.applyAllowlistUpdates(allowlistConfigs);
3434

35-
(bool allowlistEnabled,, address[] memory allowlistSender) =
35+
(BaseVerifier.RemoteChainConfigArgs memory config, address[] memory allowlistSender) =
3636
s_committeeVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
37-
assertEq(allowlistEnabled, allowlistConfigs[0].allowlistEnabled);
37+
assertEq(config.allowlistEnabled, allowlistConfigs[0].allowlistEnabled);
3838
assertEq(allowlistSender.length, allowlistConfigs[0].addedAllowlistedSenders.length);
3939
assertEq(allowlistSender[0], allowlistConfigs[0].addedAllowlistedSenders[0]);
4040
}

chains/evm/contracts/test/ccvs/CommitteeVerifier/CommitteeVerifier.applyDestChainConfigUpdates.t.sol

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,20 @@ contract CommitteeVerifier_applyRemoteChainConfigUpdates is CommitteeVerifierSet
1919
allowlistEnabled: true,
2020
feeUSDCents: DEFAULT_CCV_FEE_USD_CENTS,
2121
gasForVerification: DEFAULT_CCV_GAS_LIMIT,
22-
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE
22+
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE,
23+
finalityConfig: bytes2(0)
2324
});
2425

2526
vm.expectEmit();
2627
emit BaseVerifier.RemoteChainConfigSet(NEW_DEST_SELECTOR, router, true);
2728

2829
s_committeeVerifier.applyRemoteChainConfigUpdates(args);
2930

30-
(bool allowlistEnabled, address newRouter, address[] memory allowedSenders) =
31+
(BaseVerifier.RemoteChainConfigArgs memory config, address[] memory allowedSenders) =
3132
s_committeeVerifier.getRemoteChainConfig(NEW_DEST_SELECTOR);
3233

33-
assertEq(allowlistEnabled, true);
34-
assertEq(newRouter, router);
34+
assertEq(config.allowlistEnabled, true);
35+
assertEq(address(config.router), router);
3536
assertEq(allowedSenders.length, 0);
3637
}
3738

chains/evm/contracts/test/ccvs/CommitteeVerifier/CommitteeVerifierSetup.t.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ contract CommitteeVerifierSetup is BaseVerifierSetup {
3838
allowlistEnabled: false,
3939
feeUSDCents: DEFAULT_CCV_FEE_USD_CENTS,
4040
gasForVerification: DEFAULT_CCV_GAS_LIMIT,
41-
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE
41+
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE,
42+
finalityConfig: bytes2(0)
4243
});
4344

4445
s_committeeVerifier.applyRemoteChainConfigUpdates(remoteChainConfigs);

chains/evm/contracts/test/ccvs/LombardVerifier/LombardVerifier.applyAllowlistUpdates.t.sol

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ contract LombardVerifier_applyAllowlistUpdates is LombardVerifierSetup {
2121
allowlistEnabled: true,
2222
feeUSDCents: 100,
2323
gasForVerification: 50_000,
24-
payloadSizeBytes: 100
24+
payloadSizeBytes: 100,
25+
finalityConfig: bytes2(0)
2526
});
2627
s_lombardVerifier.applyRemoteChainConfigUpdates(remoteChainConfigArgs);
2728
}
@@ -46,13 +47,13 @@ contract LombardVerifier_applyAllowlistUpdates is LombardVerifierSetup {
4647

4748
s_lombardVerifier.applyAllowlistUpdates(allowlistConfigArgs);
4849

49-
(bool allowlistEnabled,, address[] memory allowedSenders) =
50+
(BaseVerifier.RemoteChainConfigArgs memory config1, address[] memory allowedSenders1) =
5051
s_lombardVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
5152

52-
assertTrue(allowlistEnabled);
53-
assertEq(allowedSenders.length, 2);
54-
assertEq(allowedSenders[0], SENDER1);
55-
assertEq(allowedSenders[1], SENDER2);
53+
assertTrue(config1.allowlistEnabled);
54+
assertEq(allowedSenders1.length, 2);
55+
assertEq(allowedSenders1[0], SENDER1);
56+
assertEq(allowedSenders1[1], SENDER2);
5657
}
5758

5859
function test_applyAllowlistUpdates_RemoveSenders() public {
@@ -88,7 +89,7 @@ contract LombardVerifier_applyAllowlistUpdates is LombardVerifierSetup {
8889

8990
s_lombardVerifier.applyAllowlistUpdates(allowlistConfigArgs);
9091

91-
(,, address[] memory allowedSenders) = s_lombardVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
92+
(, address[] memory allowedSenders) = s_lombardVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
9293

9394
assertEq(allowedSenders.length, 2);
9495
// Verify SENDER2 is not in the list
@@ -125,9 +126,9 @@ contract LombardVerifier_applyAllowlistUpdates is LombardVerifierSetup {
125126

126127
s_lombardVerifier.applyAllowlistUpdates(allowlistConfigArgs);
127128

128-
(bool allowlistEnabled,,) = s_lombardVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
129+
(BaseVerifier.RemoteChainConfigArgs memory config2,) = s_lombardVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
129130

130-
assertFalse(allowlistEnabled);
131+
assertFalse(config2.allowlistEnabled);
131132
}
132133

133134
function test_applyAllowlistUpdates_RevertWhen_NotOwner() public {

chains/evm/contracts/test/ccvs/components/BaseVerifier/BaseVerifier.applyAllowlistUpdates.t.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ contract BaseVerifier_applyAllowlistUpdates is BaseVerifierSetup {
2727
s_baseVerifier.applyAllowlistUpdates(allowlistConfigs);
2828

2929
// Verify sender was added.
30-
(,, address[] memory allowedSenders) = s_baseVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
30+
(, address[] memory allowedSenders) = s_baseVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
3131
assertEq(allowedSenders.length, 1);
3232
assertEq(allowedSenders[0], senders[0]);
3333
}
@@ -59,7 +59,7 @@ contract BaseVerifier_applyAllowlistUpdates is BaseVerifierSetup {
5959

6060
s_baseVerifier.applyAllowlistUpdates(updateConfigs);
6161

62-
(,, address[] memory allowedSenders) = s_baseVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
62+
(, address[] memory allowedSenders) = s_baseVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
6363
assertEq(allowedSenders[0], newSendersToAdd[0]);
6464
}
6565

@@ -82,8 +82,8 @@ contract BaseVerifier_applyAllowlistUpdates is BaseVerifierSetup {
8282

8383
s_baseVerifier.applyAllowlistUpdates(disableConfigs);
8484

85-
(bool allowlistEnabled,,) = s_baseVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
86-
assertFalse(allowlistEnabled);
85+
(BaseVerifier.RemoteChainConfigArgs memory config,) = s_baseVerifier.getRemoteChainConfig(DEST_CHAIN_SELECTOR);
86+
assertFalse(config.allowlistEnabled);
8787

8888
// Enabling it again will emit AllowListStateChanged.
8989
vm.expectEmit();

chains/evm/contracts/test/ccvs/components/BaseVerifier/BaseVerifier.applyDestChainConfigUpdates.t.sol

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ contract BaseVerifier_applyRemoteChainConfigUpdates is BaseVerifierSetup {
2020
s_baseVerifier.applyRemoteChainConfigUpdates(remoteChainConfigs);
2121

2222
// Verify config was set.
23-
(bool allowlistEnabled, address router,) =
23+
(BaseVerifier.RemoteChainConfigArgs memory config,) =
2424
s_baseVerifier.getRemoteChainConfig(remoteChainConfigs[0].remoteChainSelector);
25-
assertEq(router, address(remoteChainConfigs[0].router));
26-
assertEq(allowlistEnabled, remoteChainConfigs[0].allowlistEnabled);
25+
assertEq(address(config.router), address(remoteChainConfigs[0].router));
26+
assertEq(config.allowlistEnabled, remoteChainConfigs[0].allowlistEnabled);
2727
}
2828

2929
// Reverts
@@ -45,7 +45,8 @@ contract BaseVerifier_applyRemoteChainConfigUpdates is BaseVerifierSetup {
4545
allowlistEnabled: false,
4646
feeUSDCents: DEFAULT_CCV_FEE_USD_CENTS,
4747
gasForVerification: 0, // Zero gas should revert.
48-
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE
48+
payloadSizeBytes: DEFAULT_CCV_PAYLOAD_SIZE,
49+
finalityConfig: bytes2(0)
4950
});
5051

5152
vm.expectRevert(abi.encodeWithSelector(BaseVerifier.DestGasCannotBeZero.selector, remoteChainSelector));

0 commit comments

Comments
 (0)