@skalenetwork/upgrade-tools 4.0.0-ownership-helpers.12 → 4.0.0-ownership-helpers.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ownership-transfer/contractAdmin.js +2 -1
- package/dist/src/ownership-transfer/contractAdmin.js.map +1 -1
- package/dist/src/ownership-transfer/instanceAdmin.d.ts +1 -0
- package/dist/src/ownership-transfer/instanceAdmin.js +12 -21
- package/dist/src/ownership-transfer/instanceAdmin.js.map +1 -1
- package/dist/src/ownership-transfer/permission-utils.js +2 -83
- package/dist/src/ownership-transfer/permission-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -101,6 +101,7 @@ class ContractAdmin {
|
|
|
101
101
|
}
|
|
102
102
|
async createAssignBytes32RolesTransactions(oldOwner, newOwner, bytes32RolesToCheck) {
|
|
103
103
|
for (const role of bytes32RolesToCheck) {
|
|
104
|
+
// Required to process sequentially as it access shared memory state
|
|
104
105
|
// eslint-disable-next-line no-await-in-loop
|
|
105
106
|
const tx = await (0, permission_utils_1.grantRole)(this.address, role.identifier, newOwner, oldOwner);
|
|
106
107
|
if (tx) {
|
|
@@ -118,7 +119,7 @@ class ContractAdmin {
|
|
|
118
119
|
}
|
|
119
120
|
async createRevokeBytes32RolesTransactions(oldOwner, newOwner, bytes32RolesToCheck) {
|
|
120
121
|
for (const role of bytes32RolesToCheck) {
|
|
121
|
-
// Required to process sequentially
|
|
122
|
+
// Required to process sequentially as it access shared memory state
|
|
122
123
|
// eslint-disable-next-line no-await-in-loop
|
|
123
124
|
const tx = await (0, permission_utils_1.revokeRole)(this.address, role.identifier, oldOwner);
|
|
124
125
|
if (typeof tx !== "boolean" && tx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractAdmin.js","sourceRoot":"","sources":["../../../src/ownership-transfer/contractAdmin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"contractAdmin.js","sourceRoot":"","sources":["../../../src/ownership-transfer/contractAdmin.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ export declare class InstanceAdmin {
|
|
|
26
26
|
private processRevokeStepIfRequired;
|
|
27
27
|
executeOwnershipTransfer(): Promise<void>;
|
|
28
28
|
private submitRevokeRolesTransactions;
|
|
29
|
+
private confirmAndSubmitTransactions;
|
|
29
30
|
private submitGrantOwnershipTransactions;
|
|
30
31
|
private ownershipGrantingRequired;
|
|
31
32
|
private ownershipRevokingRequired;
|
|
@@ -18,6 +18,11 @@ class InstanceAdmin {
|
|
|
18
18
|
this.managerRolesToCheck = [];
|
|
19
19
|
this.instance = instance;
|
|
20
20
|
this.contractNames = contractNames;
|
|
21
|
+
this.readonly = options.readonly;
|
|
22
|
+
this.newOwner = options.newOwner;
|
|
23
|
+
this.submitter = options.submitter;
|
|
24
|
+
this.oldOwner = options.oldOwner;
|
|
25
|
+
this.revokeRoles = options.revokeRoles;
|
|
21
26
|
this.processOptions(options);
|
|
22
27
|
}
|
|
23
28
|
async initialize() {
|
|
@@ -57,30 +62,29 @@ class InstanceAdmin {
|
|
|
57
62
|
console.log(chalk_1.default.green("Ownership transfer process completed. - Nothing more to do."));
|
|
58
63
|
}
|
|
59
64
|
}
|
|
60
|
-
// eslint-disable-next-line max-statements
|
|
61
65
|
async submitRevokeRolesTransactions() {
|
|
62
66
|
const txsToSubmit = [];
|
|
63
67
|
for (const contract of this.contractMetadata.values()) {
|
|
64
|
-
|
|
65
|
-
txsToSubmit.push(...revokeTxs);
|
|
68
|
+
txsToSubmit.push(...contract.getRevokeOwnershipTransactions());
|
|
66
69
|
contract.clearRevokeTransactions();
|
|
67
70
|
}
|
|
68
71
|
console.log(chalk_1.default.green(`Submitting ${txsToSubmit.length} revoke ownership transactions...`));
|
|
69
72
|
for (const [index, txData] of txsToSubmit.entries()) {
|
|
70
73
|
console.log(chalk_1.default.grey(` -> Transaction ${index}: ${txData.description || "No description"}`));
|
|
71
74
|
}
|
|
75
|
+
await this.confirmAndSubmitTransactions(txsToSubmit);
|
|
76
|
+
}
|
|
77
|
+
async confirmAndSubmitTransactions(txsToSubmit) {
|
|
72
78
|
const confirmation = await (0, utils_1.promptUserConfirmation)("Do you want to proceed with submitting these transactions?");
|
|
73
79
|
if (!confirmation) {
|
|
74
80
|
throw new Error("Transaction submission aborted by user.");
|
|
75
81
|
}
|
|
76
82
|
await this.submitter.submit(txsToSubmit.map(tx => tx.transaction));
|
|
77
83
|
}
|
|
78
|
-
// eslint-disable-next-line max-statements
|
|
79
84
|
async submitGrantOwnershipTransactions() {
|
|
80
85
|
const txsToSubmit = [];
|
|
81
86
|
for (const contract of this.contractMetadata.values()) {
|
|
82
|
-
|
|
83
|
-
txsToSubmit.push(...grantTxs);
|
|
87
|
+
txsToSubmit.push(...contract.getGrantOwnershipTransactions());
|
|
84
88
|
contract.clearGrantTransactions();
|
|
85
89
|
}
|
|
86
90
|
// Required for ProxyAdmins shared among multiple contracts
|
|
@@ -89,11 +93,7 @@ class InstanceAdmin {
|
|
|
89
93
|
for (const [index, txData] of txsToSubmitFiltered.entries()) {
|
|
90
94
|
console.log(chalk_1.default.grey(` -> Transaction ${index}: ${txData.description || "No description"}`));
|
|
91
95
|
}
|
|
92
|
-
|
|
93
|
-
if (!confirmation) {
|
|
94
|
-
throw new Error("Transaction submission aborted by user.");
|
|
95
|
-
}
|
|
96
|
-
await this.submitter.submit(txsToSubmitFiltered.map(tx => tx.transaction));
|
|
96
|
+
await this.confirmAndSubmitTransactions(txsToSubmit);
|
|
97
97
|
}
|
|
98
98
|
ownershipGrantingRequired() {
|
|
99
99
|
return Array.from(this.contractMetadata.values()).some(contract => contract.requiresOwnershipGranting());
|
|
@@ -132,17 +132,12 @@ class InstanceAdmin {
|
|
|
132
132
|
}
|
|
133
133
|
console.log(chalk_1.default.green("\nUser confirmed. Proceeding...\n"));
|
|
134
134
|
}
|
|
135
|
-
// By 1
|
|
136
|
-
// eslint-disable-next-line max-statements
|
|
137
135
|
processOptions(options) {
|
|
138
136
|
// If true, does not allow to send transactions to blockchain
|
|
139
|
-
this.readonly = options.readonly;
|
|
140
|
-
this.newOwner = options.newOwner;
|
|
141
137
|
this.bytes32RolesToCheck = (options.rolesToCheck ?? []).map(role => ({
|
|
142
138
|
identifier: hardhat_1.ethers.id(role),
|
|
143
139
|
name: role
|
|
144
140
|
}));
|
|
145
|
-
this.submitter = options.submitter;
|
|
146
141
|
// Always have DEFAULT_ADMIN_ROLE at the end!
|
|
147
142
|
this.bytes32RolesToCheck.push({ identifier: hardhat_1.ethers.ZeroHash, name: "DEFAULT_ADMIN_ROLE" });
|
|
148
143
|
if (!this.readonly && this.newOwner === hardhat_1.ethers.ZeroAddress) {
|
|
@@ -156,13 +151,10 @@ class InstanceAdmin {
|
|
|
156
151
|
});
|
|
157
152
|
// Always have ADMIN_ROLE at the end!
|
|
158
153
|
this.managerRolesToCheck.push({ identifier: ZERO, name: "ADMIN_ROLE" });
|
|
159
|
-
this.oldOwner = options.oldOwner;
|
|
160
|
-
this.revokeRoles = options.revokeRoles;
|
|
161
154
|
}
|
|
162
155
|
async createRequiredTransactions() {
|
|
163
|
-
// Clear previous transactions
|
|
164
156
|
console.log(chalk_1.default.grey("INFO: The next Following steps will NOT submit any transactions to the blockchain."));
|
|
165
|
-
//
|
|
157
|
+
// Preffered to create sequentially due to rate limits
|
|
166
158
|
/* eslint-disable no-await-in-loop */
|
|
167
159
|
for (const contract of this.contractMetadata.values()) {
|
|
168
160
|
await contract.createGrantOwnershipTransactions(this.oldOwner, this.newOwner, this.bytes32RolesToCheck
|
|
@@ -186,7 +178,6 @@ class InstanceAdmin {
|
|
|
186
178
|
}
|
|
187
179
|
return { maxAddressWidth, maxNameWidth, maxPermissionsWidth };
|
|
188
180
|
}
|
|
189
|
-
// eslint-disable-next-line max-statements
|
|
190
181
|
displayPatternGroup(pattern, contracts) {
|
|
191
182
|
const columnWidths = this.getColumnWidths();
|
|
192
183
|
console.log(chalk_1.default.bold(`\n${pattern} Pattern (${contracts.length} contracts):`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instanceAdmin.js","sourceRoot":"","sources":["../../../src/ownership-transfer/instanceAdmin.ts"],"names":[],"mappings":";AAAA,sBAAsB;;;;;;AAEtB,mDAAmG;AAEnG,mCAKiB;AAEjB,kDAA0B;AAC1B,qCAA+B;AAC/B,yDAAuD;AAEvD,MAAM,IAAI,GAAG,CAAC,CAAC;AAkBf,MAAa,aAAa;IAetB,YAAY,QAAkB,EAAE,aAAuB,EAAE,OAA6B;QAZ9E,qBAAgB,GAA+B,IAAI,GAAG,EAAyB,CAAC;QAGhF,wBAAmB,GAAgB,EAAE,CAAC;QACtC,wBAAmB,GAAkB,EAAE,CAAC;QAS5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"instanceAdmin.js","sourceRoot":"","sources":["../../../src/ownership-transfer/instanceAdmin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPermissionModels = exports.revokeRole = exports.grantRole = exports.transferOwnership = exports.tryGetMultiSigInfo = exports.isAccessManaged = exports.isAccessManager = exports.isAccessControl = exports.isOwnable = exports.PermissionModel = void 0;
|
|
4
|
-
/* eslint-disable max-lines */
|
|
5
4
|
const ethers_1 = require("ethers");
|
|
6
5
|
const utils_1 = require("./utils");
|
|
7
6
|
const hardhat_1 = require("hardhat");
|
|
@@ -9,21 +8,15 @@ var PermissionModel;
|
|
|
9
8
|
(function (PermissionModel) {
|
|
10
9
|
// Does not fully complete the process of Ownable2Step
|
|
11
10
|
PermissionModel["OWNABLE"] = "OWNABLE";
|
|
12
|
-
// This does NOT work for ACCESS_MANAGER contracts
|
|
13
11
|
PermissionModel["ROLE_BASED"] = "ROLE_BASED";
|
|
14
12
|
PermissionModel["ACCESS_MANAGED"] = "ACCESS_MANAGED";
|
|
15
13
|
PermissionModel["ACCESS_MANAGER"] = "ACCESS_MANAGER";
|
|
16
14
|
})(PermissionModel || (exports.PermissionModel = PermissionModel = {}));
|
|
17
|
-
|
|
18
|
-
* ABI for Ownable interface - includes owner() function
|
|
19
|
-
*/
|
|
15
|
+
const MIN_ROLE_HOLDERS = 2n;
|
|
20
16
|
const OWNABLE_ABI = [
|
|
21
17
|
"function transferOwnership(address newOwner)",
|
|
22
18
|
"function owner() view returns (address)"
|
|
23
19
|
];
|
|
24
|
-
/*
|
|
25
|
-
* ABI for AccessControl interface
|
|
26
|
-
*/
|
|
27
20
|
const ACCESS_CONTROL_ABI = [
|
|
28
21
|
"function hasRole(bytes32 role, address account) view returns (bool)",
|
|
29
22
|
"function grantRole(bytes32 role, address account)",
|
|
@@ -35,15 +28,9 @@ const ACCESS_MANAGER_ABI = [
|
|
|
35
28
|
"function grantRole(uint64 role, address account, uint32 executionDelay)",
|
|
36
29
|
"function revokeRole(uint64 role, address account)"
|
|
37
30
|
];
|
|
38
|
-
/*
|
|
39
|
-
* ABI for AccessManaged interface - includes authority() function
|
|
40
|
-
*/
|
|
41
31
|
const ACCESS_MANAGED_ABI = [
|
|
42
32
|
"function authority() view returns (address)"
|
|
43
33
|
];
|
|
44
|
-
/*
|
|
45
|
-
* ABI for Gnosis Safe MultiSig interface
|
|
46
|
-
*/
|
|
47
34
|
const MULTISIG_ABI = [
|
|
48
35
|
"function getOwners() view returns (address[])",
|
|
49
36
|
"function getThreshold() view returns (uint256)"
|
|
@@ -61,14 +48,6 @@ const verifyOwnableInterface = async (contract, contractAddress) => {
|
|
|
61
48
|
*/
|
|
62
49
|
return await (0, utils_1.hasFunctionSelector)(contractAddress, "transferOwnership(address)");
|
|
63
50
|
};
|
|
64
|
-
/*
|
|
65
|
-
* Checks if a contract implements the Ownable interface.
|
|
66
|
-
* A contract is considered Ownable if it has both owner() and transferOwnership() functions.
|
|
67
|
-
* We verify this by reading the current owner and doing a static call (dry run) of transferOwnership.
|
|
68
|
-
*
|
|
69
|
-
* @param contractAddress - The address of the contract to check
|
|
70
|
-
* @returns true if the contract is Ownable, false otherwise
|
|
71
|
-
*/
|
|
72
51
|
const isOwnable = async (contractAddress) => {
|
|
73
52
|
try {
|
|
74
53
|
const resolvedAddress = await hardhat_1.ethers.resolveAddress(contractAddress);
|
|
@@ -94,14 +73,6 @@ const verifyAccessControlInterface = async (contract, contractAddress) => {
|
|
|
94
73
|
return await (0, utils_1.hasFunctionSelector)(contractAddress, "grantRole(bytes32,address)") &&
|
|
95
74
|
await (0, utils_1.hasFunctionSelector)(contractAddress, "revokeRole(bytes32,address)");
|
|
96
75
|
};
|
|
97
|
-
/*
|
|
98
|
-
* Checks if a contract implements the AccessControl interface.
|
|
99
|
-
* A contract is considered AccessControl if it has hasRole() and grantRole() functions.
|
|
100
|
-
* We verify this by calling hasRole() and doing a static call (dry run) of grantRole().
|
|
101
|
-
*
|
|
102
|
-
* @param contractAddress - The address of the contract to check
|
|
103
|
-
* @returns true if the contract is AccessControl, false otherwise
|
|
104
|
-
*/
|
|
105
76
|
const isAccessControl = async (contractAddress) => {
|
|
106
77
|
try {
|
|
107
78
|
const resolvedAddress = await hardhat_1.ethers.resolveAddress(contractAddress);
|
|
@@ -117,10 +88,6 @@ const isAccessControl = async (contractAddress) => {
|
|
|
117
88
|
};
|
|
118
89
|
exports.isAccessControl = isAccessControl;
|
|
119
90
|
const verifyAccessManagerInterface = async (contract, contractAddress) => {
|
|
120
|
-
/*
|
|
121
|
-
* Verify hasRole(uint64,address) view function exists
|
|
122
|
-
* AccessManager uses uint64 for roleId instead of bytes32
|
|
123
|
-
*/
|
|
124
91
|
const zeroRole = 0n;
|
|
125
92
|
await contract.hasRole(zeroRole, hardhat_1.ethers.ZeroAddress);
|
|
126
93
|
/*
|
|
@@ -130,14 +97,6 @@ const verifyAccessManagerInterface = async (contract, contractAddress) => {
|
|
|
130
97
|
return await (0, utils_1.hasFunctionSelector)(contractAddress, "grantRole(uint64,address,uint32)") &&
|
|
131
98
|
await (0, utils_1.hasFunctionSelector)(contractAddress, "revokeRole(uint64,address)");
|
|
132
99
|
};
|
|
133
|
-
/*
|
|
134
|
-
* Checks if a contract implements the AccessManager interface.
|
|
135
|
-
* A contract is considered AccessManager if it has hasRole(uint64,address) and
|
|
136
|
-
* grantRole(uint64,address,uint32) functions with uint64 role parameter.
|
|
137
|
-
*
|
|
138
|
-
* @param contractAddress - The address of the contract to check
|
|
139
|
-
* @returns true if the contract is AccessManager, false otherwise
|
|
140
|
-
*/
|
|
141
100
|
const isAccessManager = async (contractAddress) => {
|
|
142
101
|
try {
|
|
143
102
|
const resolvedAddress = await hardhat_1.ethers.resolveAddress(contractAddress);
|
|
@@ -152,14 +111,6 @@ const isAccessManager = async (contractAddress) => {
|
|
|
152
111
|
}
|
|
153
112
|
};
|
|
154
113
|
exports.isAccessManager = isAccessManager;
|
|
155
|
-
/*
|
|
156
|
-
* Checks if a contract implements the AccessManaged interface.
|
|
157
|
-
* A contract is considered AccessManaged if it has an authority() function
|
|
158
|
-
* that returns a non-zero address pointing to a manager contract.
|
|
159
|
-
*
|
|
160
|
-
* @param contractAddress - The address of the contract to check
|
|
161
|
-
* @returns true if the contract is AccessManaged, false otherwise
|
|
162
|
-
*/
|
|
163
114
|
const isAccessManaged = async (contractAddress) => {
|
|
164
115
|
try {
|
|
165
116
|
const resolvedAddress = await hardhat_1.ethers.resolveAddress(contractAddress);
|
|
@@ -180,14 +131,6 @@ const isAccessManaged = async (contractAddress) => {
|
|
|
180
131
|
}
|
|
181
132
|
};
|
|
182
133
|
exports.isAccessManaged = isAccessManaged;
|
|
183
|
-
/*
|
|
184
|
-
* Checks if a contract is a MultiSig (Gnosis Safe).
|
|
185
|
-
* A contract is considered a MultiSig if it has both getOwners() and getThreshold() functions
|
|
186
|
-
* and returns valid data (at least one owner and threshold > 0).
|
|
187
|
-
*
|
|
188
|
-
* @param contractAddress - The address of the contract to check
|
|
189
|
-
* @returns An object containing owners and threshold if the contract is a MultiSig, null otherwise
|
|
190
|
-
*/
|
|
191
134
|
const tryGetMultiSigInfo = async (contractAddress) => {
|
|
192
135
|
let owners = null;
|
|
193
136
|
let threshold = null;
|
|
@@ -203,17 +146,6 @@ const tryGetMultiSigInfo = async (contractAddress) => {
|
|
|
203
146
|
}
|
|
204
147
|
};
|
|
205
148
|
exports.tryGetMultiSigInfo = tryGetMultiSigInfo;
|
|
206
|
-
/*
|
|
207
|
-
* Transfers ownership of an Ownable contract to a new owner.
|
|
208
|
-
* This function encodes the transferOwnership call data for the transaction.
|
|
209
|
-
*
|
|
210
|
-
* @param contractAddress - The address of the Ownable contract
|
|
211
|
-
* @param newOwner - The address of the new owner
|
|
212
|
-
* @returns Transaction object with the encoded transferOwnership call or true
|
|
213
|
-
* if the new owner is already the desired owner
|
|
214
|
-
*
|
|
215
|
-
* @dev The address must have already been verified as an Ownable contract before calling this function.
|
|
216
|
-
*/
|
|
217
149
|
const transferOwnership = async (contractAddress, newOwner, oldOwner) => {
|
|
218
150
|
const contract = new ethers_1.Contract(contractAddress, OWNABLE_ABI, hardhat_1.ethers.provider);
|
|
219
151
|
if (await contract.owner() === newOwner) {
|
|
@@ -229,18 +161,6 @@ const transferOwnership = async (contractAddress, newOwner, oldOwner) => {
|
|
|
229
161
|
return transaction;
|
|
230
162
|
};
|
|
231
163
|
exports.transferOwnership = transferOwnership;
|
|
232
|
-
/*
|
|
233
|
-
* Grants a role to an address in a ROLE_BASED (AccessControl) contract.
|
|
234
|
-
* This function encodes the grantRole call data for the transaction.
|
|
235
|
-
*
|
|
236
|
-
* @param contractAddress - The address of the AccessControl contract
|
|
237
|
-
* @param role - The bytes32 role identifier to grant
|
|
238
|
-
* @param account - The address to grant the role to
|
|
239
|
-
* @returns Transaction object with the encoded grantRole call or true
|
|
240
|
-
* if the account already has the role
|
|
241
|
-
*
|
|
242
|
-
* @dev The contract address must be a ROLE_BASED contract (not validated by this function)
|
|
243
|
-
*/
|
|
244
164
|
const grantRole = async (contractAddress, role, newAccount, oldAccount
|
|
245
165
|
// eslint-disable-next-line max-params
|
|
246
166
|
) => {
|
|
@@ -266,8 +186,7 @@ const revokeRole = async (contractAddress, role, oldAccount) => {
|
|
|
266
186
|
if (!await contract.hasRole(role, oldAccount)) {
|
|
267
187
|
return true;
|
|
268
188
|
}
|
|
269
|
-
|
|
270
|
-
if ((await contract.getRoleMemberCount(role)) < 2n && role === hardhat_1.ethers.ZeroHash) {
|
|
189
|
+
if ((await contract.getRoleMemberCount(role)) < MIN_ROLE_HOLDERS && role === hardhat_1.ethers.ZeroHash) {
|
|
271
190
|
return false;
|
|
272
191
|
}
|
|
273
192
|
const data = contract.interface.encodeFunctionData("revokeRole", [role, oldAccount]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-utils.js","sourceRoot":"","sources":["../../../src/ownership-transfer/permission-utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"permission-utils.js","sourceRoot":"","sources":["../../../src/ownership-transfer/permission-utils.ts"],"names":[],"mappings":"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"}
|