General additional checks
There are a few additional checks that we recommend adding in the contract:
The
msg.sender
for the functionsinitForSmartAccount
,transferOwnership
,addOwner
, andremoveOwner
is a smart account and therefore a smart contract. Currently, anyone (EOA or smart contract) can call these functions, but as the expected caller is a smart contract, the function should check if the value of_isSmartContract(msg.sender)
is true. Currently, this missing check does not cause any security issues.
The length of
eoaOwners.length
should be checked and reverted if it is zero. Otherwise, the functioninitForSmartAccount
could be called again.
These issues have been acknowledged by Biconomy, and a fix for issue 2 was implemented in commit