When initaizing Nexus contract, function _initModuleManager()
is called twice, lead to Nexus contract cant be deployed due to checking condition inside that function.
In **NexusAccountFactory
**contract (RegistryFactory
and K1ValidatorFactory
are the same), user can create Nexus contract by using createAccount()
function:
It will deploy contract and call initializeAccount()
function if address havent deployed yet.
Nexus
constructor:
initializeAccount()
function:
It can be seen that _initModuleManager()
function will be initalized twice, look at implement of _initModuleManager()
function:
Look at struct of AccountStorage
:
init()
function: (Link: https://github.com/rhinestonewtf/sentinellist/blob/main/src/SentinelList.sol#L30-#L34)
with SENTINEL = address(0x1);
and function alreadyInitialized()
:
It can be seen that if function init()
is called twice, it will revert due to checking condition in int()
function.
Unable to deploy Nexus contract.
Manual review.
While initalize Nexus contract, only call _initModuleManager()
function once.
Invalid, if a `Nexus.sol` contract is already deployed, it does not need to be initialized again within the factory as seen [here](https://github.com/Cyfrin/2024-07-biconomy/blob/9590f25cd63f7ad2c54feb618036984774f3879d/contracts/factory/NexusAccountFactory.sol#L58-L60), so no issue here
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.