@@ -11,7 +11,6 @@ import {
11
11
saveContractDeployment ,
12
12
stageAlreadyFinished ,
13
13
trackFinishedStage ,
14
- saveDeferredTransactionData ,
15
14
writeTransactionToOutputs ,
16
15
getAccounts ,
17
16
} from "@utils/index" ;
@@ -23,6 +22,7 @@ import { DEPENDENCY } from "../deployments/utils/dependencies";
23
22
import { CONTRACT_NAMES } from "../deployments/constants/002_delegated_manager_system" ;
24
23
25
24
const {
25
+ MULTI_SIG_OWNER ,
26
26
CONTROLLER ,
27
27
SET_TOKEN_CREATOR ,
28
28
ISSUANCE_MODULE ,
@@ -68,6 +68,8 @@ const func: DeployFunction = trackFinishedStage(CURRENT_STAGE, async function (b
68
68
69
69
await initializeManagerCore ( ) ;
70
70
71
+ await transferManagerCoreOwnershipToMultisig ( ) ;
72
+
71
73
//
72
74
// Helper Functions
73
75
//
@@ -163,26 +165,45 @@ const func: DeployFunction = trackFinishedStage(CURRENT_STAGE, async function (b
163
165
async function initializeManagerCore ( ) : Promise < void > {
164
166
const managerCoreInstance = await instanceGetter . getManagerCore ( managerCoreAddress ) ;
165
167
if ( ! await managerCoreInstance . isInitialized ( ) ) {
166
- const data = managerCoreInstance . interface . encodeFunctionData (
168
+ const initializeData = managerCoreInstance . interface . encodeFunctionData (
167
169
"initialize" ,
168
170
[ [ issuanceExtensionAddress , streamingFeeSplitExtensionAddress , tradeExtensionAddress ] , [ delegatedManagerFactoryAddress ] ]
169
171
) ;
170
172
const description = "Initialized ManagerCore with DelegatedManagerFactory, IssuanceExtension, StreamingFeeSplitExtension, and TradeExtension" ;
171
173
172
- if ( ( networkConstant === "production" || process . env . TESTING_PRODUCTION ) ) {
173
- await saveDeferredTransactionData ( {
174
- data,
175
- description,
176
- contractName : "ManagerCore" ,
177
- } ) ;
178
- } else {
179
- const initializeTransaction : any = await rawTx ( {
174
+ const initializeTransaction : any = await rawTx ( {
175
+ from : deployer ,
176
+ to : managerCoreAddress ,
177
+ data : initializeData ,
178
+ log : true ,
179
+ } ) ;
180
+ await writeTransactionToOutputs ( initializeTransaction . transactionHash , description ) ;
181
+ }
182
+ }
183
+
184
+ async function transferManagerCoreOwnershipToMultisig ( ) : Promise < void > {
185
+ if ( networkConstant === "production" ) {
186
+ const multisig = await findDependency ( MULTI_SIG_OWNER ) ;
187
+ const managerCoreInstance = await instanceGetter . getManagerCore ( managerCoreAddress ) ;
188
+
189
+ const managerCoreOwner = await managerCoreInstance . owner ( ) ;
190
+ if ( multisig !== "" && managerCoreOwner === deployer ) {
191
+ const transferOwnershipData = managerCoreInstance . interface . encodeFunctionData (
192
+ "transferOwnership" ,
193
+ [ multisig ]
194
+ ) ;
195
+
196
+ const transferOwnershipTransaction : any = await rawTx ( {
180
197
from : deployer ,
181
198
to : managerCoreAddress ,
182
- data,
199
+ data : transferOwnershipData ,
183
200
log : true ,
184
201
} ) ;
185
- await writeTransactionToOutputs ( initializeTransaction . transactionHash , description ) ;
202
+
203
+ await writeTransactionToOutputs (
204
+ transferOwnershipTransaction . transactionHash ,
205
+ "Transfer ManagerCore ownership to Multisig"
206
+ ) ;
186
207
}
187
208
}
188
209
}
0 commit comments