TransparentVaultFactory
TransparentVaultFactory
A factory contract for creating Orion transparent vaults using Beacon Proxy pattern
This contract deploys BeaconProxy instances that point to a shared transparent vault implementation.
config
contract IOrionConfig config
Orion Config contract address
vaultBeacon
contract UpgradeableBeacon vaultBeacon
UpgradeableBeacon for transparent vaults
constructor
constructor() public
Constructor that disables initializers for the implementation contract
initialize
function initialize(address initialOwner, address configAddress, address vaultBeaconAddress) public
Initialize the contract
Parameters
| Name | Type | Description |
|---|---|---|
| initialOwner | address | The address of the initial owner |
| configAddress | address | The address of the OrionConfig contract |
| vaultBeaconAddress | address | The address of the UpgradeableBeacon for vaults |
createVault
function createVault(address strategist, string name, string symbol, uint8 feeType, uint16 performanceFee, uint16 managementFee, address depositAccessControl) external returns (address vault)
Creates a new transparent vault
Parameters
| Name | Type | Description |
|---|---|---|
| strategist | address | The address of the vault strategist |
| name | string | The name of the vault |
| symbol | string | The symbol of the vault |
| feeType | uint8 | The fee type |
| performanceFee | uint16 | The performance fee |
| managementFee | uint16 | The management fee |
| depositAccessControl | address | The address of the deposit access control contract (address(0) = permissionless) |
Return Values
| Name | Type | Description |
|---|---|---|
| vault | address | The address of the new transparent vault |
setVaultBeacon
function setVaultBeacon(address newVaultBeacon) external
Updates the vault beacon address
Parameters
| Name | Type | Description |
|---|---|---|
| newVaultBeacon | address | The new UpgradeableBeacon address |
_authorizeUpgrade
function _authorizeUpgrade(address newImplementation) internal
Authorizes an upgrade to a new implementation
This function is required by UUPS and can only be called by the owner
Parameters
| Name | Type | Description |
|---|---|---|
| newImplementation | address | The address of the new implementation contract |