UVAFactoryV2 Contract
Factory for deploying new vault instances.
Overview
UVAFactoryV2 uses CREATE2 for deterministic vault addresses:
- Predict addresses before deployment
- Same salt + owner = same address on any chain
- Immutable permission manager reference
Functions
createAccount
Deploy a new vault.
function createAccount(
address owner,
uint256 salt
) external returns (address)
| Parameter | Type | Description |
|---|---|---|
owner | address | Vault owner address |
salt | uint256 | Unique salt for address derivation |
Returns: Address of the deployed vault
getAccountAddress
Predict vault address before deployment.
function getAccountAddress(
address owner,
uint256 salt
) external view returns (address)
permissionManager
Get the permission manager address.
function permissionManager() external view returns (address)
Events
AccountCreated
event AccountCreated(
address indexed account,
address indexed owner,
uint256 salt
);
Address Derivation
The vault address is derived using CREATE2:
address = keccak256(
0xff,
factoryAddress,
keccak256(salt),
keccak256(initCode)
)
This allows:
- Predicting addresses before deployment
- Same address across EVM chains (with same factory)
- Counterfactual wallet patterns