DelegationWalletFactory

The DelegationWalletFactory contract is responsible for deploying and configuring new instances of the Delegation Wallet components. It acts as the entry point for creating a new wallet and ensures all necessary contracts are correctly initialized.

Key Functions:

function deploy(address _delegationController) 
external 
returns (
    address, 
    address, 
    address, 
    address
)

Deploys a new Delegation Wallet with the msg.sender as the owner.

Parameters:

_delegationController (address): The address of the delegation controller.

Returns:

The addresses of the deployed GnosisSafe, DelegationOwner, ProtocolOwner, and GuardOwner contracts.


function deployFor(address _owner, address _delegationController) 
public 
returns (
    address, 
    address, 
    address, 
    address
    )

Deploys a new Delegation Wallet for a specified owner.

Parameters:

_owner (address): The address of the wallet owner.

_delegationController (address): The address of the delegation controller.

Returns:

The addresses of the deployed GnosisSafe, DelegationOwner, ProtocolOwner, and GuardOwner contracts.


Interactions:

  • Interacts with the GnosisSafeProxyFactory to deploy a new GnosisSafe contract.

  • Interacts with the beacon proxies to deploy new instances of the GuardOwner, DelegationOwner, and ProtocolOwner contracts.

  • Registers the deployed wallet components in the DelegationWalletRegistry.

Last updated