From 6df4f5f7e59b0f74598c83041436ca92d86f616b Mon Sep 17 00:00:00 2001 From: Domen Grabec Date: Mon, 13 May 2024 16:57:57 +0200 Subject: [PATCH] add a withdrawal event when withdrawing WETH to vault (#2059) --- .../NativeStaking/NativeStakingSSVStrategy.sol | 4 ++++ .../strategies/NativeStaking/ValidatorAccountant.sol | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol b/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol index c15629be71..76737fc398 100644 --- a/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol +++ b/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol @@ -261,4 +261,8 @@ contract NativeStakingSSVStrategy is "eth not from allowed contracts" ); } + + function wethWithdrawnToVault(uint256 _amount) internal override { + emit Withdrawal(WETH_TOKEN_ADDRESS, address(0), _amount); + } } diff --git a/contracts/contracts/strategies/NativeStaking/ValidatorAccountant.sol b/contracts/contracts/strategies/NativeStaking/ValidatorAccountant.sol index d99982cc24..996a28bfa7 100644 --- a/contracts/contracts/strategies/NativeStaking/ValidatorAccountant.sol +++ b/contracts/contracts/strategies/NativeStaking/ValidatorAccountant.sol @@ -132,7 +132,8 @@ abstract contract ValidatorAccountant is ValidatorRegistrator { IWETH9(WETH_TOKEN_ADDRESS).deposit{ value: wethToVault }(); // slither-disable-next-line unchecked-transfer IWETH9(WETH_TOKEN_ADDRESS).transfer(VAULT_ADDRESS, wethToVault); - + wethWithdrawnToVault(wethToVault); + emit AccountingFullyWithdrawnValidator( fullyWithdrawnValidators, activeDepositedValidators, @@ -162,6 +163,8 @@ abstract contract ValidatorAccountant is ValidatorRegistrator { IWETH9(WETH_TOKEN_ADDRESS).transfer(VAULT_ADDRESS, ethRemaining); activeDepositedValidators -= 1; + wethWithdrawnToVault(ethRemaining); + emit AccountingValidatorSlashed( activeDepositedValidators, ethRemaining @@ -233,4 +236,11 @@ abstract contract ValidatorAccountant is ValidatorRegistrator { // unpause since doAccounting was successful _unpause(); } + + /*************************************** + Abstract + ****************************************/ + + /// @dev allows for NativeStakingSSVStrategy contract to emit Withdrawal event + function wethWithdrawnToVault(uint256 _amount) internal virtual; }