Skip to content

Commit 42de4fb

Browse files
committed
update claimed to processed in error, added test
1 parent ee2d18e commit 42de4fb

3 files changed

Lines changed: 13 additions & 3 deletions

File tree

src/protocol/ETHBridge.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ contract ETHBridge is IETHBridge, ReentrancyGuardTransient {
8888
bytes memory proof
8989
) internal returns (bytes32 id) {
9090
id = _generateId(ethDeposit);
91-
require(!processed(id), AlreadyClaimed());
91+
require(!processed(id), AlreadyProcessed());
9292

9393
signalService.verifySignal(height, trustedCommitmentPublisher, counterpart, id, proof);
9494

src/protocol/IETHBridge.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ interface IETHBridge {
4242
/// @dev Failed to call the receiver with value.
4343
error FailedClaim();
4444

45-
/// @dev A deposit was already claimed.
46-
error AlreadyClaimed();
45+
/// @dev A deposit was already claimed or cancelled
46+
error AlreadyProcessed();
4747

4848
/// @dev Only canceler can cancel a deposit.
4949
error OnlyCanceler();

test/ETHBridge/CancellableScenarios.t.sol

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,16 @@ abstract contract DepositIsCancellable is CrossChainDepositExists {
5656
assertEq(address(bridge).balance, initialBridgeBalance - deposit.amount, "bridge balance mismatch");
5757
}
5858

59+
function test_claimDeposit_shouldRevertWhen_DepositIsCancelled() public {
60+
IETHBridge.ETHDeposit memory deposit = sampleDepositProof.getEthDeposit(_depositIdx());
61+
bytes memory proof = abi.encode(sampleDepositProof.getDepositSignalProof(_depositIdx()));
62+
63+
vm.prank(cancellerAddress);
64+
bridge.cancelDeposit(deposit, cancellationRecipient, HEIGHT, proof);
65+
vm.expectRevert(IETHBridge.AlreadyProcessed.selector);
66+
bridge.claimDeposit(deposit, HEIGHT, proof);
67+
}
68+
5969
function test_cancelDeposit_shouldRevertWhen_CancellerIsNotCaller() public {
6070
IETHBridge.ETHDeposit memory deposit = sampleDepositProof.getEthDeposit(_depositIdx());
6171
bytes memory proof = abi.encode(sampleDepositProof.getDepositSignalProof(_depositIdx()));

0 commit comments

Comments
 (0)