Assessment reports>EtherFi>Threat Model>createUnusedWithdrawalSafe

Function: createUnusedWithdrawalSafe(uint256 _count, bool _enableRestaking)

This function is responsible for instantiating EtherFiNode and EigenPod proxy instances based on the specified count. It allows the creation of withdrawal safes and an option to enable restaking.

Inputs

  • _count

    • Control: Fully controlled by the caller.

    • Constraints: No specific constraints mentioned.

    • Impact: The count affects the number of withdrawal safes created.

  • _enableRestaking

    • Control: Fully controlled by the caller.

    • Constraints: No specific constraints mentioned.

    • Impact: Determines whether restaking is enabled for the EtherFiNode instances.

Branches and code coverage

Intended branches

  • Instantiates new EtherFiNodes and pushes them to the unusedWithdrawalSafes array.

Negative behavior

  • N/A.

Function call analysis

  • IStakingManager(this.stakingManagerContract). instantiateEtherFiNode(_enableRestaking)

    • What is controllable? The boolean flag _enableRestaking controls whether restaking is enabled for the instantiated EtherFiNode.

    • If the return value is controllable, how is it used and how can it go wrong? The return value is not controllable by the caller and is used to obtain the address of the newly created EtherFiNode.

    • What happens if it reverts, reenters, or does other unusual control flow? If this call reverts, it indicates a failure in instantiating the EtherFiNode; no reentrancy scenario is expected.

Zellic © 2025Back to top ↑