[{"inputs":[{"internalType":"contract INonfungiblePositionManager","name":"positionManager_","type":"address"},{"internalType":"contract ISwapRouter","name":"router_","type":"address"},{"internalType":"address","name":"uniV3Helper_","type":"address"},{"internalType":"address","name":"hStrategyHelper_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"uniV3Nft","type":"uint256"}],"name":"BurnUniV3Position","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"uniV3Nft","type":"uint256"},{"indexed":false,"internalType":"int24","name":"lowerTick","type":"int24"},{"indexed":false,"internalType":"int24","name":"upperTick","type":"int24"}],"name":"MintUniV3Position","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"indexed":false,"internalType":"struct ISwapRouter.ExactInputSingleParams","name":"swapParams","type":"tuple"}],"name":"SwapTokensOnERC20Vault","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":"minToken0ForOpening","type":"uint256"},{"internalType":"uint256","name":"minToken1ForOpening","type":"uint256"}],"indexed":false,"internalType":"struct HStrategy.MintingParams","name":"mintingParams","type":"tuple"}],"name":"UpdateMintingParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"uint32","name":"averagePriceTimeSpan","type":"uint32"},{"internalType":"uint24","name":"maxTickDeviation","type":"uint24"}],"indexed":false,"internalType":"struct HStrategy.OracleParams","name":"oracleParams","type":"tuple"}],"name":"UpdateOracleParams","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":"erc20CapitalRatioD","type":"uint256"},{"internalType":"uint256","name":"minCapitalDeviationD","type":"uint256"},{"internalType":"uint256","name":"minRebalanceDeviationD","type":"uint256"}],"indexed":false,"internalType":"struct HStrategy.RatioParams","name":"ratioParams","type":"tuple"}],"name":"UpdateRatioParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"int24","name":"halfOfShortInterval","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"domainLowerTick","type":"int24"},{"internalType":"int24","name":"domainUpperTick","type":"int24"}],"indexed":false,"internalType":"struct HStrategy.StrategyParams","name":"strategyParams","type":"tuple"}],"name":"UpdateStrategyParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"origin","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint24","name":"newSwapFees","type":"uint24"}],"name":"UpdateSwapFees","type":"event"},{"inputs":[],"name":"ADMIN_DELEGATE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"APPROVE_SELECTOR","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DENOMINATOR","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EXACT_INPUT_SINGLE_SELECTOR","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","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":"tokens_","type":"address[]"},{"internalType":"contract IERC20Vault","name":"erc20Vault_","type":"address"},{"internalType":"contract IIntegrationVault","name":"moneyVault_","type":"address"},{"internalType":"contract IUniV3Vault","name":"uniV3Vault_","type":"address"},{"internalType":"uint24","name":"fee_","type":"uint24"},{"internalType":"address","name":"admin_","type":"address"}],"name":"createStrategy","outputs":[{"internalType":"contract HStrategy","name":"strategy","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"erc20Vault","outputs":[{"internalType":"contract IERC20Vault","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokens_","type":"address[]"},{"internalType":"contract IERC20Vault","name":"erc20Vault_","type":"address"},{"internalType":"contract IIntegrationVault","name":"moneyVault_","type":"address"},{"internalType":"contract IUniV3Vault","name":"uniV3Vault_","type":"address"},{"internalType":"uint24","name":"fee_","type":"uint24"},{"internalType":"address","name":"admin_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IIntegrationVault","name":"fromVault","type":"address"},{"internalType":"contract IIntegrationVault","name":"toVault","type":"address"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"},{"internalType":"bytes","name":"vaultOptions","type":"bytes"}],"name":"manualPull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintingParams","outputs":[{"internalType":"uint256","name":"minToken0ForOpening","type":"uint256"},{"internalType":"uint256","name":"minToken1ForOpening","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"moneyVault","outputs":[{"internalType":"contract IIntegrationVault","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oracleParams","outputs":[{"internalType":"uint32","name":"averagePriceTimeSpan","type":"uint32"},{"internalType":"uint24","name":"maxTickDeviation","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ratioParams","outputs":[{"internalType":"uint256","name":"erc20CapitalRatioD","type":"uint256"},{"internalType":"uint256","name":"minCapitalDeviationD","type":"uint256"},{"internalType":"uint256","name":"minRebalanceDeviationD","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256[]","name":"pulledToUniV3Vault","type":"uint256[]"},{"internalType":"uint256[]","name":"pulledFromUniV3Vault","type":"uint256[]"},{"internalType":"int256[]","name":"swappedAmounts","type":"int256[]"},{"internalType":"uint256[]","name":"burnedAmounts","type":"uint256[]"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct HStrategy.RebalanceTokenAmounts","name":"restrictions","type":"tuple"},{"internalType":"bytes","name":"moneyVaultOptions","type":"bytes"}],"name":"rebalance","outputs":[{"components":[{"internalType":"uint256[]","name":"pulledToUniV3Vault","type":"uint256[]"},{"internalType":"uint256[]","name":"pulledFromUniV3Vault","type":"uint256[]"},{"internalType":"int256[]","name":"swappedAmounts","type":"int256[]"},{"internalType":"uint256[]","name":"burnedAmounts","type":"uint256[]"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct HStrategy.RebalanceTokenAmounts","name":"actualPulledAmounts","type":"tuple"},{"internalType":"uint256[]","name":"burnedAmounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"strategyParams","outputs":[{"internalType":"int24","name":"halfOfShortInterval","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"domainLowerTick","type":"int24"},{"internalType":"int24","name":"domainUpperTick","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFees","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV3Vault","outputs":[{"internalType":"contract IUniV3Vault","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"minToken0ForOpening","type":"uint256"},{"internalType":"uint256","name":"minToken1ForOpening","type":"uint256"}],"internalType":"struct HStrategy.MintingParams","name":"newMintingParams","type":"tuple"}],"name":"updateMintingParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"averagePriceTimeSpan","type":"uint32"},{"internalType":"uint24","name":"maxTickDeviation","type":"uint24"}],"internalType":"struct HStrategy.OracleParams","name":"newOracleParams","type":"tuple"}],"name":"updateOracleParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"erc20CapitalRatioD","type":"uint256"},{"internalType":"uint256","name":"minCapitalDeviationD","type":"uint256"},{"internalType":"uint256","name":"minRebalanceDeviationD","type":"uint256"}],"internalType":"struct HStrategy.RatioParams","name":"newRatioParams","type":"tuple"}],"name":"updateRatioParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"int24","name":"halfOfShortInterval","type":"int24"},{"internalType":"int24","name":"tickNeighborhood","type":"int24"},{"internalType":"int24","name":"domainLowerTick","type":"int24"},{"internalType":"int24","name":"domainUpperTick","type":"int24"}],"internalType":"struct HStrategy.StrategyParams","name":"newStrategyParams","type":"tuple"}],"name":"updateStrategyParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"newSwapFees","type":"uint24"}],"name":"updateSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"}]