diff --git a/protocol/src/DepositWaitingList.sol b/protocol/src/DepositWaitingList.sol index 09c9e8c2..67a30d38 100644 --- a/protocol/src/DepositWaitingList.sol +++ b/protocol/src/DepositWaitingList.sol @@ -20,6 +20,7 @@ contract DepositWaitingList is AccessControl { error AmountBelowReserve(); error InvalidReserveBalance(); + event BridgeUpdated(address indexed oldBridge, address indexed newBridge); event WaitingDepositCreated( uint256 indexed depositId, address indexed from, @@ -42,7 +43,7 @@ contract DepositWaitingList is AccessControl { address to; } - Bridge public immutable bridge; + Bridge public bridge; mapping(uint256 => bytes32) public depositHashes; uint256 public nextDepositId; @@ -143,6 +144,15 @@ contract DepositWaitingList is AccessControl { IERC20(token).approve(address(bridge), type(uint256).max); } + function revokeToken(address token) external onlyRole(RELAYER_ROLE) { + IERC20(token).approve(address(bridge), 0); + } + + function setBridge(address _bridge) external onlyRole(DEFAULT_ADMIN_ROLE) { + emit BridgeUpdated(address(bridge), _bridge); + bridge = Bridge(_bridge); + } + function _applyPermit(address token, address owner, uint256 amount, bytes calldata permit) internal { if (permit.length == 0) return; if (permit.length != PERMIT_LENGTH) revert InvalidPermitLength();