Skip to content

Commit 47d1cf8

Browse files
committed
add ManagerCore ownership tranfer to multisig
1 parent 78e4071 commit 47d1cf8

File tree

1 file changed

+33
-12
lines changed

1 file changed

+33
-12
lines changed

polygon/deploy/002_delegated_manager_system.ts

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
saveContractDeployment,
1212
stageAlreadyFinished,
1313
trackFinishedStage,
14-
saveDeferredTransactionData,
1514
writeTransactionToOutputs,
1615
getAccounts,
1716
} from "@utils/index";
@@ -23,6 +22,7 @@ import { DEPENDENCY } from "../deployments/utils/dependencies";
2322
import { CONTRACT_NAMES } from "../deployments/constants/002_delegated_manager_system";
2423

2524
const {
25+
MULTI_SIG_OWNER,
2626
CONTROLLER,
2727
SET_TOKEN_CREATOR,
2828
ISSUANCE_MODULE,
@@ -68,6 +68,8 @@ const func: DeployFunction = trackFinishedStage(CURRENT_STAGE, async function (b
6868

6969
await initializeManagerCore();
7070

71+
await transferManagerCoreOwnershipToMultisig();
72+
7173
//
7274
// Helper Functions
7375
//
@@ -163,26 +165,45 @@ const func: DeployFunction = trackFinishedStage(CURRENT_STAGE, async function (b
163165
async function initializeManagerCore(): Promise<void> {
164166
const managerCoreInstance = await instanceGetter.getManagerCore(managerCoreAddress);
165167
if (!await managerCoreInstance.isInitialized()) {
166-
const data = managerCoreInstance.interface.encodeFunctionData(
168+
const initializeData = managerCoreInstance.interface.encodeFunctionData(
167169
"initialize",
168170
[[issuanceExtensionAddress, streamingFeeSplitExtensionAddress, tradeExtensionAddress], [delegatedManagerFactoryAddress]]
169171
);
170172
const description = "Initialized ManagerCore with DelegatedManagerFactory, IssuanceExtension, StreamingFeeSplitExtension, and TradeExtension";
171173

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({
180197
from: deployer,
181198
to: managerCoreAddress,
182-
data,
199+
data: transferOwnershipData,
183200
log: true,
184201
});
185-
await writeTransactionToOutputs(initializeTransaction.transactionHash, description);
202+
203+
await writeTransactionToOutputs(
204+
transferOwnershipTransaction.transactionHash,
205+
"Transfer ManagerCore ownership to Multisig"
206+
);
186207
}
187208
}
188209
}

0 commit comments

Comments
 (0)