[{"inputs":[{"components":[{"internalType":"contract IProtocolGovernance","name":"protocolGovernance","type":"address"},{"internalType":"contract IVaultRegistry","name":"registry","type":"address"},{"internalType":"contract IVault","name":"singleton","type":"address"}],"internalType":"struct IVaultGovernance.InternalParams","name":"internalParams_","type":"tuple"},{"components":[{"internalType":"uint256","name":"managementFeeChargeDelay","type":"uint256"},{"internalType":"contract IOracle","name":"oracle","type":"address"}],"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolParams","name":"delayedProtocolParams_","type":"tuple"},{"internalType":"contract IERC20RootVaultHelper","name":"helper_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"uint256","name":"managementFeeChargeDelay","type":"uint256"},{"internalType":"contract IOracle","name":"oracle","type":"address"}],"indexed":false,"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolParams","name":"params","type":"tuple"}],"name":"CommitDelayedProtocolParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"nft","type":"uint256"},{"components":[{"internalType":"uint256","name":"protocolFee","type":"uint256"}],"indexed":false,"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolPerVaultParams","name":"params","type":"tuple"}],"name":"CommitDelayedProtocolPerVaultParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"nft","type":"uint256"},{"components":[{"internalType":"address","name":"strategyTreasury","type":"address"},{"internalType":"address","name":"strategyPerformanceTreasury","type":"address"},{"internalType":"bool","name":"privateVault","type":"bool"},{"internalType":"uint256","name":"managementFee","type":"uint256"},{"internalType":"uint256","name":"performanceFee","type":"uint256"},{"internalType":"address","name":"depositCallbackAddress","type":"address"},{"internalType":"address","name":"withdrawCallbackAddress","type":"address"}],"indexed":false,"internalType":"struct IERC20RootVaultGovernance.DelayedStrategyParams","name":"params","type":"tuple"}],"name":"CommitDelayedStrategyParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"contract IProtocolGovernance","name":"protocolGovernance","type":"address"},{"internalType":"contract IVaultRegistry","name":"registry","type":"address"},{"internalType":"contract IVault","name":"singleton","type":"address"}],"indexed":false,"internalType":"struct IVaultGovernance.InternalParams","name":"params","type":"tuple"}],"name":"CommitedInternalParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"vaultTokens","type":"address[]"},{"indexed":false,"internalType":"bytes","name":"options","type":"bytes"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"vaultAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"vaultNft","type":"uint256"}],"name":"DeployedVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"bool","name":"disableDeposit","type":"bool"}],"indexed":false,"internalType":"struct IERC20RootVaultGovernance.OperatorParams","name":"params","type":"tuple"}],"name":"SetOperatorParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"nft","type":"uint256"},{"components":[{"internalType":"uint256","name":"tokenLimitPerAddress","type":"uint256"},{"internalType":"uint256","name":"tokenLimit","type":"uint256"}],"indexed":false,"internalType":"struct IERC20RootVaultGovernance.StrategyParams","name":"params","type":"tuple"}],"name":"SetStrategyParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"uint256","name":"managementFeeChargeDelay","type":"uint256"},{"internalType":"contract IOracle","name":"oracle","type":"address"}],"indexed":false,"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolParams","name":"params","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"when","type":"uint256"}],"name":"StageDelayedProtocolParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"nft","type":"uint256"},{"components":[{"internalType":"uint256","name":"protocolFee","type":"uint256"}],"indexed":false,"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolPerVaultParams","name":"params","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"when","type":"uint256"}],"name":"StageDelayedProtocolPerVaultParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"nft","type":"uint256"},{"components":[{"internalType":"address","name":"strategyTreasury","type":"address"},{"internalType":"address","name":"strategyPerformanceTreasury","type":"address"},{"internalType":"bool","name":"privateVault","type":"bool"},{"internalType":"uint256","name":"managementFee","type":"uint256"},{"internalType":"uint256","name":"performanceFee","type":"uint256"},{"internalType":"address","name":"depositCallbackAddress","type":"address"},{"internalType":"address","name":"withdrawCallbackAddress","type":"address"}],"indexed":false,"internalType":"struct IERC20RootVaultGovernance.DelayedStrategyParams","name":"params","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"when","type":"uint256"}],"name":"StageDelayedStrategyParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"contract IProtocolGovernance","name":"protocolGovernance","type":"address"},{"internalType":"contract IVaultRegistry","name":"registry","type":"address"},{"internalType":"contract IVault","name":"singleton","type":"address"}],"indexed":false,"internalType":"struct IVaultGovernance.InternalParams","name":"params","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"when","type":"uint256"}],"name":"StagedInternalParams","type":"event"},{"inputs":[],"name":"MAX_MANAGEMENT_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PERFORMANCE_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PROTOCOL_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"commitDelayedProtocolParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"}],"name":"commitDelayedProtocolPerVaultParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"}],"name":"commitDelayedStrategyParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"commitInternalParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"contractNameBytes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"contractVersion","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"contractVersionBytes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"vaultTokens_","type":"address[]"},{"internalType":"address","name":"strategy_","type":"address"},{"internalType":"uint256[]","name":"subvaultNfts_","type":"uint256[]"},{"internalType":"address","name":"owner_","type":"address"}],"name":"createVault","outputs":[{"internalType":"contract IERC20RootVault","name":"vault","type":"address"},{"internalType":"uint256","name":"nft","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delayedProtocolParams","outputs":[{"components":[{"internalType":"uint256","name":"managementFeeChargeDelay","type":"uint256"},{"internalType":"contract IOracle","name":"oracle","type":"address"}],"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayedProtocolParamsTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"}],"name":"delayedProtocolPerVaultParams","outputs":[{"components":[{"internalType":"uint256","name":"protocolFee","type":"uint256"}],"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolPerVaultParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"}],"name":"delayedProtocolPerVaultParamsTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"}],"name":"delayedStrategyParams","outputs":[{"components":[{"internalType":"address","name":"strategyTreasury","type":"address"},{"internalType":"address","name":"strategyPerformanceTreasury","type":"address"},{"internalType":"bool","name":"privateVault","type":"bool"},{"internalType":"uint256","name":"managementFee","type":"uint256"},{"internalType":"uint256","name":"performanceFee","type":"uint256"},{"internalType":"address","name":"depositCallbackAddress","type":"address"},{"internalType":"address","name":"withdrawCallbackAddress","type":"address"}],"internalType":"struct IERC20RootVaultGovernance.DelayedStrategyParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"}],"name":"delayedStrategyParamsTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"helper","outputs":[{"internalType":"contract IERC20RootVaultHelper","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"internalParams","outputs":[{"components":[{"internalType":"contract IProtocolGovernance","name":"protocolGovernance","type":"address"},{"internalType":"contract IVaultRegistry","name":"registry","type":"address"},{"internalType":"contract IVault","name":"singleton","type":"address"}],"internalType":"struct IVaultGovernance.InternalParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"internalParamsTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operatorParams","outputs":[{"components":[{"internalType":"bool","name":"disableDeposit","type":"bool"}],"internalType":"struct IERC20RootVaultGovernance.OperatorParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bool","name":"disableDeposit","type":"bool"}],"internalType":"struct IERC20RootVaultGovernance.OperatorParams","name":"params","type":"tuple"}],"name":"setOperatorParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"},{"components":[{"internalType":"uint256","name":"tokenLimitPerAddress","type":"uint256"},{"internalType":"uint256","name":"tokenLimit","type":"uint256"}],"internalType":"struct IERC20RootVaultGovernance.StrategyParams","name":"params","type":"tuple"}],"name":"setStrategyParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"managementFeeChargeDelay","type":"uint256"},{"internalType":"contract IOracle","name":"oracle","type":"address"}],"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolParams","name":"params","type":"tuple"}],"name":"stageDelayedProtocolParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"},{"components":[{"internalType":"uint256","name":"protocolFee","type":"uint256"}],"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolPerVaultParams","name":"params","type":"tuple"}],"name":"stageDelayedProtocolPerVaultParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"},{"components":[{"internalType":"address","name":"strategyTreasury","type":"address"},{"internalType":"address","name":"strategyPerformanceTreasury","type":"address"},{"internalType":"bool","name":"privateVault","type":"bool"},{"internalType":"uint256","name":"managementFee","type":"uint256"},{"internalType":"uint256","name":"performanceFee","type":"uint256"},{"internalType":"address","name":"depositCallbackAddress","type":"address"},{"internalType":"address","name":"withdrawCallbackAddress","type":"address"}],"internalType":"struct IERC20RootVaultGovernance.DelayedStrategyParams","name":"params","type":"tuple"}],"name":"stageDelayedStrategyParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"contract IProtocolGovernance","name":"protocolGovernance","type":"address"},{"internalType":"contract IVaultRegistry","name":"registry","type":"address"},{"internalType":"contract IVault","name":"singleton","type":"address"}],"internalType":"struct IVaultGovernance.InternalParams","name":"newParams","type":"tuple"}],"name":"stageInternalParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stagedDelayedProtocolParams","outputs":[{"components":[{"internalType":"uint256","name":"managementFeeChargeDelay","type":"uint256"},{"internalType":"contract IOracle","name":"oracle","type":"address"}],"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"}],"name":"stagedDelayedProtocolPerVaultParams","outputs":[{"components":[{"internalType":"uint256","name":"protocolFee","type":"uint256"}],"internalType":"struct IERC20RootVaultGovernance.DelayedProtocolPerVaultParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"}],"name":"stagedDelayedStrategyParams","outputs":[{"components":[{"internalType":"address","name":"strategyTreasury","type":"address"},{"internalType":"address","name":"strategyPerformanceTreasury","type":"address"},{"internalType":"bool","name":"privateVault","type":"bool"},{"internalType":"uint256","name":"managementFee","type":"uint256"},{"internalType":"uint256","name":"performanceFee","type":"uint256"},{"internalType":"address","name":"depositCallbackAddress","type":"address"},{"internalType":"address","name":"withdrawCallbackAddress","type":"address"}],"internalType":"struct IERC20RootVaultGovernance.DelayedStrategyParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stagedInternalParams","outputs":[{"components":[{"internalType":"contract IProtocolGovernance","name":"protocolGovernance","type":"address"},{"internalType":"contract IVaultRegistry","name":"registry","type":"address"},{"internalType":"contract IVault","name":"singleton","type":"address"}],"internalType":"struct IVaultGovernance.InternalParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nft","type":"uint256"}],"name":"strategyParams","outputs":[{"components":[{"internalType":"uint256","name":"tokenLimitPerAddress","type":"uint256"},{"internalType":"uint256","name":"tokenLimit","type":"uint256"}],"internalType":"struct IERC20RootVaultGovernance.StrategyParams","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]