22pragma solidity 0.8.26 ;
33
44import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol " ;
5- import {IERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol " ;
65import {LagoonVault} from "@src/proxy/OptinProxy.sol " ;
7- import {AccessMode } from "@src/v0.6.0/primitives/Enums .sol " ;
6+ import {InitStruct } from "@src/v0.6.0/vault/Vault-v0.6.0 .sol " ;
87
98interface IVault {
109 function initialize (
@@ -26,42 +25,6 @@ struct OptinProxyFactoryStorage {
2625 mapping (address => bool ) isInstance;
2726}
2827
29- /// @title InitStruct
30- /// @notice Initialization structure for creating new vault proxies
31- /// @dev Contains all necessary parameters to initialize a vault
32- struct InitStruct {
33- /// @notice Underlying ERC20 token for the vault
34- IERC20 underlying;
35- /// @notice Name of the vault token
36- string name;
37- /// @notice Symbol of the vault token
38- string symbol;
39- /// @notice Address of the safe/multisig
40- address safe;
41- /// @notice Address of the whitelist manager
42- address whitelistManager;
43- /// @notice Address of the valuation manager
44- address valuationManager;
45- /// @notice Admin address for the vault
46- address admin;
47- /// @notice Fee receiver address
48- address feeReceiver;
49- /// @notice Management fee rate (in basis points)
50- uint16 managementRate;
51- /// @notice Performance fee rate (in basis points)
52- uint16 performanceRate;
53- /// @notice Access mode (Whitelist or Blacklist)
54- AccessMode accessMode;
55- /// @notice Entry fee rate (in basis points)
56- uint16 entryRate;
57- /// @notice Exit fee rate (in basis points)
58- uint16 exitRate;
59- /// @notice Address of the security council
60- address securityCouncil;
61- /// @notice Address of the external sanctions list
62- address externalSanctionsList;
63- }
64-
6528/// @title OptinProxyFactory
6629/// @notice Factory contract for creating and managing OptinProxy instances
6730/// @dev Inherits from OwnableUpgradeable to provide ownership functionality
@@ -112,6 +75,7 @@ contract OptinProxyFactory is OwnableUpgradeable {
11275 $.WRAPPED_NATIVE = _wrappedNativeToken;
11376 }
11477
78+ /// @param _logic Address of the vault logic implementation
11579 /// @param _initialOwner Address of the initial proxy owner
11680 /// @param _initialDelay The initial delay before which an upgrade can occur by the proxy admin
11781 /// @param _init Initialization parameters for the vault
0 commit comments