Omniscia Evergon Labs Audit

RecoverFractionsSubSkeletonNID Manual Review Findings

RecoverFractionsSubSkeletonNID Manual Review Findings

RFN-01M: Clashing Function Name

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.