Skip to main content

For AI agents: the complete documentation index is at llms.txt. Markdown versions of pages are available by appending .md to the URL or sending Accept: text/markdown.

EncryptedVaultFactory

EncryptedVaultFactory​

A factory contract for creating Orion encrypted vaults using Beacon Proxy pattern

This contract deploys BeaconProxy instances that point to a shared encrypted vault implementation.

config​

contract IOrionConfig config

Orion Config contract address

vaultBeacon​

contract UpgradeableBeacon vaultBeacon

UpgradeableBeacon for encrypted vaults

upgradeTimelock​

address upgradeTimelock

Address of the upgrade timelock that must authorise all implementation upgrades

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​

NameTypeDescription
initialOwneraddressThe address of the initial owner
configAddressaddressThe address of the OrionConfig contract
vaultBeaconAddressaddressThe address of the UpgradeableBeacon for vaults

createVault​

function createVault(address strategist, string name, string symbol, uint8 feeType, uint16 performanceFee, uint16 managementFee, address depositAccessControl, address holderAccessControl, address transferAccessControl) external returns (address vault)

Creates a new encrypted vault

Parameters​

NameTypeDescription
strategistaddressThe address of the vault strategist
namestringThe name of the vault
symbolstringThe symbol of the vault
feeTypeuint8The fee type
performanceFeeuint16The performance fee
managementFeeuint16The management fee
depositAccessControladdressDeposit access control (address(0) = permissionless)
holderAccessControladdressHolder access control (address(0) = permissionless)
transferAccessControladdressTransfer access control (address(0) = permissionless)

Return Values​

NameTypeDescription
vaultaddressThe address of the new encrypted vault

setVaultBeacon​

function setVaultBeacon(address newVaultBeacon) external

Updates the vault beacon address

Parameters​

NameTypeDescription
newVaultBeaconaddressThe new UpgradeableBeacon address

setUpgradeTimelock​

function setUpgradeTimelock(address newTimelock) external

Sets the upgrade timelock address.

If no timelock is set yet, only the owner may call this. Once a timelock is active, only the timelock itself may replace it, preventing the owner from bypassing the delay.

Parameters​

NameTypeDescription
newTimelockaddressThe new timelock address (e.g. OpenZeppelin TimelockController); address(0) not permitted

_authorizeUpgrade​

function _authorizeUpgrade(address) internal

Authorizes an upgrade to a new implementation

Requires the caller to be the upgrade timelock (if set) or the owner (during initial bootstrapping before a timelock has been configured).