# GuardOwner

The GuardOwner contract is responsible for deploying and initializing the TransactionGuard contract. It sets up the TransactionGuard as the guard for the GnosisSafe contract and manages guard-related operations.&#x20;

## Key Functions:

```solidity
function initialize(
    address _guardBeacon, 
    address _safe, 
    address _owner, 
    address _delegationOnwer, 
    address _protocolOwner
) public
```

Initializes the GuardOwner contract with the necessary parameters.

### Parameters:

`_guardBeacon` (address): The address of the TransactionGuard beacon contract.

`_safe` (address): The address of the GnosisSafe contract.

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

`_delegationOnwer` (address): The address of the DelegationOwner contract.

`_protocolOwner` (address): The address of the ProtocolOwner contract.

***

```solidity
function _setupGuard(
    address _safe, 
    TransactionGuard _guard
) internal;
```

Internal function to set up the TransactionGuard as the guard for the GnosisSafe contract.

### Parameters:

`_safe` (address): The address of the GnosisSafe contract.

`_guard` (TransactionGuard): The address of the TransactionGuard contract.

***

## Interactions:

* Deploys a new instance of the TransactionGuard contract using a beacon proxy.
* Sets the TransactionGuard as the guard for the GnosisSafe contract.
