1- import child_process from "node:child_process" ;
21import fs from "node:fs/promises" ;
3- import util from "node:util" ;
42
53import { ethers } from "hardhat" ;
64
75import { LidoTemplate , WithdrawalQueueERC721 } from "typechain-types" ;
86
97import { log } from "lib" ;
10- import { loadContract } from "lib/contract" ;
8+ import { loadContract , LoadedContract } from "lib/contract" ;
119import { makeTx } from "lib/deploy" ;
1210import { DeploymentState , getAddress , readNetworkState , Sk , updateObjectInState } from "lib/state-file" ;
11+ import { runCommand } from "lib/subprocess" ;
1312
1413const DG_INSTALL_DIR = `${ process . cwd ( ) } /dg` ;
1514const DG_DEPLOY_ARTIFACTS_DIR = `${ DG_INSTALL_DIR } /deploy-artifacts` ;
@@ -99,6 +98,16 @@ async function finalizePermissionsWithoutDGDeployment() {
9998 const lidoTemplate = await loadContract < LidoTemplate > ( "LidoTemplate" , lidoTemplateAddress ) ;
10099
101100 await makeTx ( lidoTemplate , "finalizePermissionsWithoutDGDeployment" , [ ] , { from : deployer } ) ;
101+
102+ await transferLidoTemplateOwnershipToAgent ( deployer , lidoTemplate , getAddress ( Sk . appAgent , networkState ) ) ;
103+ }
104+
105+ async function transferLidoTemplateOwnershipToAgent (
106+ deployer : string ,
107+ lidoTemplate : LoadedContract < LidoTemplate > ,
108+ aragonAgentAddress : string ,
109+ ) {
110+ await makeTx ( lidoTemplate , "setOwner" , [ aragonAgentAddress ] , { from : deployer } ) ;
102111}
103112
104113async function transferRoles ( deployer : string , dgDeployArtifacts : DGDeployArtifacts , networkState : DeploymentState ) {
@@ -149,6 +158,8 @@ async function transferRoles(deployer: string, dgDeployArtifacts: DGDeployArtifa
149158 await makeTx ( lidoTemplate , "finalizePermissionsAfterDGDeployment" , [ dgDeployArtifacts . admin_executor ] , {
150159 from : deployer ,
151160 } ) ;
161+
162+ await transferLidoTemplateOwnershipToAgent ( deployer , lidoTemplate , aragonAgentAddress ) ;
152163}
153164
154165async function unpauseWithdrawalQueue ( deployer : string , networkState : DeploymentState ) {
@@ -173,18 +184,6 @@ async function prepareDGRegressionTestsRun(networkChainId: string, networkState:
173184 await writeDGDotEnvFile ( dotEnvFile ) ;
174185}
175186
176- async function runCommand ( command : string , workingDirectory : string ) {
177- const exec = util . promisify ( child_process . exec ) ;
178-
179- try {
180- const { stdout } = await exec ( command , { cwd : workingDirectory } ) ;
181- log ( "stdout:" , stdout ) ;
182- } catch ( error ) {
183- log . error ( `Error running command ${ command } ` , `${ error } ` ) ;
184- throw error ;
185- }
186- }
187-
188187async function writeDGConfigFile ( dgConfig : string , filename : string ) {
189188 const dgConfigFilePath = `${ DG_INSTALL_DIR } /deploy-config/${ filename } ` ;
190189
@@ -252,60 +251,13 @@ function getDGConfig(chainId: string, networkState: DeploymentState) {
252251 wst_eth : wstEth ,
253252 withdrawal_queue : withdrawalQueue ,
254253 } ,
255- sanity_check_params : {
256- max_min_assets_lock_duration :
257- networkState [ Sk . dualGovernanceConfig ] . dual_governance . sanity_check_params . max_min_assets_lock_duration ,
258- max_sealable_withdrawal_blockers_count :
259- networkState [ Sk . dualGovernanceConfig ] . dual_governance . sanity_check_params
260- . max_sealable_withdrawal_blockers_count ,
261- max_tiebreaker_activation_timeout :
262- networkState [ Sk . dualGovernanceConfig ] . dual_governance . sanity_check_params . max_tiebreaker_activation_timeout ,
263- min_tiebreaker_activation_timeout :
264- networkState [ Sk . dualGovernanceConfig ] . dual_governance . sanity_check_params . min_tiebreaker_activation_timeout ,
265- min_withdrawals_batch_size :
266- networkState [ Sk . dualGovernanceConfig ] . dual_governance . sanity_check_params . min_withdrawals_batch_size ,
267- } ,
268- } ,
269- dual_governance_config_provider : {
270- first_seal_rage_quit_support :
271- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . first_seal_rage_quit_support ,
272- second_seal_rage_quit_support :
273- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . second_seal_rage_quit_support ,
274- min_assets_lock_duration :
275- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . min_assets_lock_duration ,
276- rage_quit_eth_withdrawals_delay_growth :
277- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . rage_quit_eth_withdrawals_delay_growth ,
278- rage_quit_eth_withdrawals_min_delay :
279- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . rage_quit_eth_withdrawals_min_delay ,
280- rage_quit_eth_withdrawals_max_delay :
281- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . rage_quit_eth_withdrawals_max_delay ,
282- rage_quit_extension_period_duration :
283- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . rage_quit_extension_period_duration ,
284- veto_cooldown_duration :
285- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . veto_cooldown_duration ,
286- veto_signalling_deactivation_max_duration :
287- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . veto_signalling_deactivation_max_duration ,
288- veto_signalling_min_active_duration :
289- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . veto_signalling_min_active_duration ,
290- veto_signalling_min_duration :
291- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . veto_signalling_min_duration ,
292- veto_signalling_max_duration :
293- networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider . veto_signalling_max_duration ,
254+ sanity_check_params : networkState [ Sk . dualGovernanceConfig ] . dual_governance . sanity_check_params ,
294255 } ,
256+ dual_governance_config_provider : networkState [ Sk . dualGovernanceConfig ] . dual_governance_config_provider ,
295257 timelock : {
296258 after_submit_delay : networkState [ Sk . dualGovernanceConfig ] . timelock . after_submit_delay ,
297259 after_schedule_delay : networkState [ Sk . dualGovernanceConfig ] . timelock . after_schedule_delay ,
298- sanity_check_params : {
299- min_execution_delay : networkState [ Sk . dualGovernanceConfig ] . timelock . sanity_check_params . min_execution_delay ,
300- max_after_submit_delay :
301- networkState [ Sk . dualGovernanceConfig ] . timelock . sanity_check_params . max_after_submit_delay ,
302- max_after_schedule_delay :
303- networkState [ Sk . dualGovernanceConfig ] . timelock . sanity_check_params . max_after_schedule_delay ,
304- max_emergency_mode_duration :
305- networkState [ Sk . dualGovernanceConfig ] . timelock . sanity_check_params . max_emergency_mode_duration ,
306- max_emergency_protection_duration :
307- networkState [ Sk . dualGovernanceConfig ] . timelock . sanity_check_params . max_emergency_protection_duration ,
308- } ,
260+ sanity_check_params : networkState [ Sk . dualGovernanceConfig ] . timelock . sanity_check_params ,
309261 emergency_protection : {
310262 emergency_activation_committee : daoVoting ,
311263 emergency_execution_committee : daoVoting ,
0 commit comments