From 654c1eae899e73ca469f4a5ea573ad4d9fed007b Mon Sep 17 00:00:00 2001 From: Dev Kalra Date: Thu, 14 Dec 2023 17:54:43 +0530 Subject: [PATCH] add zero value check (#1181) --- .../ethereum/contracts/contracts/entropy/Entropy.sol | 6 ++++++ .../contracts/contracts/entropy/EntropyGovernance.sol | 6 ++++++ .../contracts/contracts/entropy/EntropyUpgradable.sol | 7 +++++++ .../ethereum/contracts/contracts/executor/Executor.sol | 2 ++ 4 files changed, 21 insertions(+) diff --git a/target_chains/ethereum/contracts/contracts/entropy/Entropy.sol b/target_chains/ethereum/contracts/contracts/entropy/Entropy.sol index a4a456bd..d8befcec 100644 --- a/target_chains/ethereum/contracts/contracts/entropy/Entropy.sol +++ b/target_chains/ethereum/contracts/contracts/entropy/Entropy.sol @@ -81,6 +81,12 @@ abstract contract Entropy is IEntropy, EntropyState { address defaultProvider, bool prefillRequestStorage ) internal { + require(admin != address(0), "admin is zero address"); + require( + defaultProvider != address(0), + "defaultProvider is zero address" + ); + _state.admin = admin; _state.accruedPythFeesInWei = 0; _state.pythFeeInWei = pythFeeInWei; diff --git a/target_chains/ethereum/contracts/contracts/entropy/EntropyGovernance.sol b/target_chains/ethereum/contracts/contracts/entropy/EntropyGovernance.sol index d2a11760..56fbeccd 100644 --- a/target_chains/ethereum/contracts/contracts/entropy/EntropyGovernance.sol +++ b/target_chains/ethereum/contracts/contracts/entropy/EntropyGovernance.sol @@ -30,6 +30,8 @@ abstract contract EntropyGovernance is EntropyState { * Can only be called by either admin or owner. */ function proposeAdmin(address newAdmin) public virtual { + require(newAdmin != address(0), "newAdmin is zero address"); + _authoriseAdminAction(); _state.proposedAdmin = newAdmin; @@ -78,6 +80,10 @@ abstract contract EntropyGovernance is EntropyState { * Emits an {DefaultProviderSet} event. */ function setDefaultProvider(address newDefaultProvider) external { + require( + newDefaultProvider != address(0), + "newDefaultProvider is zero address" + ); _authoriseAdminAction(); address oldDefaultProvider = _state.defaultProvider; diff --git a/target_chains/ethereum/contracts/contracts/entropy/EntropyUpgradable.sol b/target_chains/ethereum/contracts/contracts/entropy/EntropyUpgradable.sol index f008e42a..338e6506 100644 --- a/target_chains/ethereum/contracts/contracts/entropy/EntropyUpgradable.sol +++ b/target_chains/ethereum/contracts/contracts/entropy/EntropyUpgradable.sol @@ -31,6 +31,13 @@ contract EntropyUpgradable is address defaultProvider, bool prefillRequestStorage ) public initializer { + require(owner != address(0), "owner is zero address"); + require(admin != address(0), "admin is zero address"); + require( + defaultProvider != address(0), + "defaultProvider is zero address" + ); + __Ownable_init(); __UUPSUpgradeable_init(); diff --git a/target_chains/ethereum/contracts/contracts/executor/Executor.sol b/target_chains/ethereum/contracts/contracts/executor/Executor.sol index e2801d29..ae92b2a7 100644 --- a/target_chains/ethereum/contracts/contracts/executor/Executor.sol +++ b/target_chains/ethereum/contracts/contracts/executor/Executor.sol @@ -49,6 +49,8 @@ contract Executor { uint16 _ownerEmitterChainId, bytes32 _ownerEmitterAddress ) { + require(_wormhole != address(0), "_wormhole is zero address"); + wormhole = IWormhole(_wormhole); lastExecutedSequence = _lastExecutedSequence; chainId = _chainId;