From 87c525471a36affc58a8e9082957a3d1ac5ed923 Mon Sep 17 00:00:00 2001 From: Domen Grabec Date: Sat, 27 Apr 2024 00:28:29 +0200 Subject: [PATCH 1/3] allow for WETH to send ETH to the contract --- .../strategies/NativeStaking/NativeStakingSSVStrategy.sol | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol b/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol index 75a6f6cc4e..f3a86e6b47 100644 --- a/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol +++ b/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol @@ -251,14 +251,15 @@ contract NativeStakingSSVStrategy is } /** - * @notice Only accept ETH from the FeeAccumulator + * @notice Only accept ETH from the FeeAccumulator and the WETH contract - required when + * unwrapping WETH just before staking it to the validator * @dev don't want to receive donations from anyone else as this will * mess with the accounting of the consensus rewards and validator full withdrawals */ receive() external payable { require( - msg.sender == FEE_ACCUMULATOR_ADDRESS, - "eth not sent from Fee Accumulator" + msg.sender == FEE_ACCUMULATOR_ADDRESS || msg.sender == WETH_TOKEN_ADDRESS, + "eth not sent from Fee Accumulator or WETH contract" ); } } From 1d665080cf08e7dcaa9efd3088890b22974a585c Mon Sep 17 00:00:00 2001 From: Domen Grabec Date: Sat, 27 Apr 2024 00:47:46 +0200 Subject: [PATCH 2/3] shorten error message --- .../strategies/NativeStaking/NativeStakingSSVStrategy.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol b/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol index f3a86e6b47..970251e776 100644 --- a/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol +++ b/contracts/contracts/strategies/NativeStaking/NativeStakingSSVStrategy.sol @@ -259,7 +259,7 @@ contract NativeStakingSSVStrategy is receive() external payable { require( msg.sender == FEE_ACCUMULATOR_ADDRESS || msg.sender == WETH_TOKEN_ADDRESS, - "eth not sent from Fee Accumulator or WETH contract" + "eth not from allowed contracts" ); } } From 00ec8784ee2dca20c2b6cc4a97c8dedaaa5cb201 Mon Sep 17 00:00:00 2001 From: Domen Grabec Date: Sat, 27 Apr 2024 18:00:24 +0200 Subject: [PATCH 3/3] fix depositing bug --- .../contracts/strategies/NativeStaking/ValidatorRegistrator.sol | 2 +- contracts/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/contracts/strategies/NativeStaking/ValidatorRegistrator.sol b/contracts/contracts/strategies/NativeStaking/ValidatorRegistrator.sol index d609efe6d6..45336f0362 100644 --- a/contracts/contracts/strategies/NativeStaking/ValidatorRegistrator.sol +++ b/contracts/contracts/strategies/NativeStaking/ValidatorRegistrator.sol @@ -134,7 +134,7 @@ abstract contract ValidatorRegistrator is Governable, Pausable { bytes11(0), address(this) ); - IDepositContract(BEACON_CHAIN_DEPOSIT_CONTRACT).deposit( + IDepositContract(BEACON_CHAIN_DEPOSIT_CONTRACT).deposit{ value: 32 ether }( validators[i].pubkey, withdrawal_credentials, validators[i].signature, diff --git a/contracts/package.json b/contracts/package.json index 5f728f7549..74100a2bb0 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -19,7 +19,7 @@ "prettier:check": "prettier -c \"*.js\" \"deploy/**/*.js\" \"scripts/**/*.js\" \"smoke/**/*.js\" \"scripts/**/*.js\" \"tasks/**/*.js\" \"test/**/*.js\" \"utils/**/*.js\"", "prettier:js": "prettier --write \"*.js\" \"deploy/**/*.js\" \"scripts/**/*.js\" \"smoke/**/*.js\" \"scripts/**/*.js\" \"tasks/**/*.js\" \"test/**/*.js\" \"utils/**/*.js\"", "prettier:sol": "prettier --write \"contracts/**/*.sol\"", - "test": "IS_TEST=true npx hardhat test", + "test": "rm -rf deployments/hardhat && IS_TEST=true npx hardhat test", "test:fork": "./fork-test.sh", "test:arb-fork": "FORK_NETWORK_NAME=arbitrumOne ./fork-test.sh", "test:fork:w_trace": "TRACE=true ./fork-test.sh",