From 0bed982ee80c6d3a4ba4cca2fb3b85f6b950e8ad Mon Sep 17 00:00:00 2001 From: katzman Date: Thu, 28 Sep 2023 18:39:31 +0000 Subject: [PATCH] Added stratParams update to the fullStrategy deployment flow --- tasks/deploy/integrations/deployFlux.ts | 18 +++++++++++++----- .../integrations/helpers/fullStrategy.ts | 18 +++++++++++++++++- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/tasks/deploy/integrations/deployFlux.ts b/tasks/deploy/integrations/deployFlux.ts index 819acc7e7..090b34cec 100644 --- a/tasks/deploy/integrations/deployFlux.ts +++ b/tasks/deploy/integrations/deployFlux.ts @@ -5,15 +5,23 @@ import {deployStrategySet} from "./helpers"; const NAME = "flux"; -task("Deploy:strategy:flux", `Will deploy ${NAME} and a pair of generic vaults`).setAction( - async (_, hre) => { +type TaskArgs = { + apTeamSignerPkey?: string; +}; + +task("Deploy:strategy:flux", `Will deploy ${NAME} and a pair of generic vaults`) + .addOptionalParam( + "apTeamSignerPkey", + "If running on prod, provide a pkey for a valid APTeam Multisig Owner." + ) + .setAction(async (taskArgs: TaskArgs, hre) => { try { logger.out(`Deploying strategy: ${NAME}`); const {deployer} = await getSigners(hre); const StrategyFactory = new FluxStrategy__factory(deployer); - await deployStrategySet(NAME, StrategyFactory, hre); + const signerPkey = taskArgs.apTeamSignerPkey ? taskArgs.apTeamSignerPkey : ""; + await deployStrategySet(NAME, StrategyFactory, signerPkey, hre); } catch (error) { logger.out(error, logger.Level.Error); } - } -); + }); diff --git a/tasks/deploy/integrations/helpers/fullStrategy.ts b/tasks/deploy/integrations/helpers/fullStrategy.ts index d23c79e09..1dd4fecb2 100644 --- a/tasks/deploy/integrations/helpers/fullStrategy.ts +++ b/tasks/deploy/integrations/helpers/fullStrategy.ts @@ -1,5 +1,5 @@ import {ContractFactory} from "ethers"; -import {Deployment} from "types"; +import {Deployment, StrategyApprovalState} from "types"; import { deploy, getAddresses, @@ -16,6 +16,7 @@ import {HardhatRuntimeEnvironment} from "hardhat/types"; export async function deployStrategySet( strategyName: string, factory: ContractFactory, + signerPkey: string, hre: HardhatRuntimeEnvironment ) { const config: StratConfig = allStrategyConfigs[strategyName]; @@ -54,6 +55,21 @@ export async function deployStrategySet( hre ); + // establish registrar config on primary chain and this chain + await hre.run("manage:registrar:setStratParams", { + stratConfig: { + ...config, + params: { + approvalState: config.params.approvalState, + network: config.params.network, + lockedVaultAddr: Locked.contract.address, + liquidVaultAddr: Liquid.contract.address, + }, + }, + modifyExisting: true, + apTeamSignerPkey: signerPkey, + }); + // Store addresses writeStrategyAddresses(strategyName, { locked: Locked.contract.address,