@@ -899,6 +899,55 @@ const deployOETHSupernovaAMOStrategyImplementation = async () => {
899899 return cOETHSupernovaAMOStrategy ;
900900} ;
901901
902+ const deployOETHbHydrexAMOStrategyImplementation = async ( gaugeAddress ) => {
903+ const { deployerAddr } = await getNamedAccounts ( ) ;
904+ const sDeployer = await ethers . provider . getSigner ( deployerAddr ) ;
905+
906+ // Default to the addresses entry so any other caller still works; the
907+ // 048_oethb_hydrex_amo deploy script always passes the live Hydrex gauge
908+ // address explicitly.
909+ const _gauge = gaugeAddress || addresses . base . HydrexOETHb_WETH . gauge ;
910+
911+ const cOETHbHydrexAMOStrategyProxy = await ethers . getContract (
912+ "OETHbHydrexAMOProxy"
913+ ) ;
914+ const cOETHBaseVaultProxy = await ethers . getContract ( "OETHBaseVaultProxy" ) ;
915+
916+ // Deploy OETHb Hydrex AMO Strategy implementation
917+ const dHydrexAMOStrategy = await deployWithConfirmation (
918+ "OETHbHydrexAMOStrategy" ,
919+ [
920+ [ addresses . base . HydrexOETHb_WETH . pool , cOETHBaseVaultProxy . address ] ,
921+ _gauge ,
922+ ]
923+ ) ;
924+
925+ const cOETHbHydrexAMOStrategy = await ethers . getContractAt (
926+ "OETHbHydrexAMOStrategy" ,
927+ cOETHbHydrexAMOStrategyProxy . address
928+ ) ;
929+
930+ // Initialize OETHb Hydrex AMO Strategy via the proxy.
931+ // Reward token is oHYDX (call option on HYDX). The Hydrex gauge emits oHYDX
932+ // from getReward(); off-chain plumbing exercises/sells it.
933+ const depositPriceRange = parseUnits ( "0.01" , 18 ) ; // 1% or 100 basis points
934+ const initData = cOETHbHydrexAMOStrategy . interface . encodeFunctionData (
935+ "initialize(address[],uint256)" ,
936+ [ [ addresses . base . oHYDX ] , depositPriceRange ]
937+ ) ;
938+ await withConfirmation (
939+ // prettier-ignore
940+ cOETHbHydrexAMOStrategyProxy
941+ . connect ( sDeployer ) [ "initialize(address,address,bytes)" ] (
942+ dHydrexAMOStrategy . address ,
943+ addresses . base . timelock ,
944+ initData
945+ )
946+ ) ;
947+
948+ return cOETHbHydrexAMOStrategy ;
949+ } ;
950+
902951const getCreate2ProxiesFilePath = async ( ) => {
903952 const networkName =
904953 isFork || isForkTest || isCI ? "localhost" : await getNetworkName ( ) ;
@@ -1270,6 +1319,7 @@ module.exports = {
12701319 deploySonicSwapXAMOStrategyImplementation,
12711320 deploySonicSwapXAMOStrategyImplementationAndInitialize,
12721321 deployOETHSupernovaAMOStrategyImplementation,
1322+ deployOETHbHydrexAMOStrategyImplementation,
12731323 deployProxyWithCreateX,
12741324 deployCrossChainMasterStrategyImpl,
12751325 deployCrossChainRemoteStrategyImpl,
0 commit comments