Omniscia Nexera Audit
RecoverFractionsSubSkeletonNID Manual Review Findings
RecoverFractionsSubSkeletonNID Manual Review Findings
RFN-01M: Clashing Function Name
| Type | Severity | Location |
|---|---|---|
| Logical Fault | ![]() | RecoverFractionsSubSkeletonNID.sol:L77 |
Description:
The RecoverFractionsSubSkeletonNID::initializeVestingSubSkeleton function selector clashes with the RecoverFractionsSubSkeletonNID::initializeVestingSubSkeleton function selector, disallowing both contracts from being initializable.
Impact:
The RecoverFractionsSubSkeletonNID cannot be initialized via the Diamond it is pointed from and thus will fail to function.
Example:
packages/contracts/contracts/subSkeletonFacets/NID/RecoverFractionsSubSkeletonNID.sol
77function initializeVestingSubSkeleton(address signer_) external onlyExternalDelegateCall {78 address account = ERC2771RecipientStorage.layout()._msgSender();79 if (!AccessControlFacetStorage.layout().hasRole(AccessControlFacetStorage.ADMIN_ROLE, account)) {80 revert UnauthorizedInitialization(account);81 }82
83 initializeTxAuthDataVerifier(signer_);84}Recommendation:
We advise the RecoverFractionsSubSkeletonNID function selector to be corrected, ensuring the contract can be properly initialized.
Alleviation (d682057ecb0e254069773d64f32c068cedb71e2a):
The function name has been updated to distinguish it from the initialization of the vesting sub-skeleton, alleviating this exhibit.
