@skalenetwork/upgrade-tools 4.0.0-ownership-helpers.18 → 4.0.0-ownership-helpers.19

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.
@@ -1,6 +1,5 @@
1
1
  export declare const ERC1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
2
2
  export declare const ERC1967_IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
3
- export declare const ERC1967_BEACON_SLOT = "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50";
4
3
  export declare const basicBeaconAbi: string[];
5
4
  export declare const OWNABLE_ABI: string[];
6
5
  export declare const ACCESS_CONTROL_ABI: string[];
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MULTISIG_ABI = exports.ACCESS_MANAGED_ABI = exports.ACCESS_MANAGER_ABI = exports.ACCESS_CONTROL_ABI = exports.OWNABLE_ABI = exports.basicBeaconAbi = exports.ERC1967_BEACON_SLOT = exports.ERC1967_IMPLEMENTATION_SLOT = exports.ERC1967_ADMIN_SLOT = void 0;
3
+ exports.MULTISIG_ABI = exports.ACCESS_MANAGED_ABI = exports.ACCESS_MANAGER_ABI = exports.ACCESS_CONTROL_ABI = exports.OWNABLE_ABI = exports.basicBeaconAbi = exports.ERC1967_IMPLEMENTATION_SLOT = exports.ERC1967_ADMIN_SLOT = void 0;
4
4
  exports.ERC1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
5
5
  exports.ERC1967_IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
6
- exports.ERC1967_BEACON_SLOT = "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50";
7
6
  exports.basicBeaconAbi = [
8
7
  "function owner() view returns (address)",
9
- "function implementation() view returns (address)"
8
+ "function implementation() view returns (address)",
9
+ "function upgradeTo(address newImplementation)"
10
10
  ];
11
11
  exports.OWNABLE_ABI = [
12
12
  "function transferOwnership(address newOwner)",
@@ -15,13 +15,13 @@ exports.OWNABLE_ABI = [
15
15
  exports.ACCESS_CONTROL_ABI = [
16
16
  "function hasRole(bytes32 role, address account) view returns (bool)",
17
17
  "function grantRole(bytes32 role, address account)",
18
- "function revokeRole(bytes32 role, address account)",
18
+ "function renounceRole(bytes32 role, address account)",
19
19
  "function getRoleMemberCount(bytes32 role) view returns (uint256)"
20
20
  ];
21
21
  exports.ACCESS_MANAGER_ABI = [
22
22
  "function hasRole(uint64 role, address account) view returns (bool)",
23
23
  "function grantRole(uint64 role, address account, uint32 executionDelay)",
24
- "function revokeRole(uint64 role, address account)"
24
+ "function renounceRole(uint64 role, address account)"
25
25
  ];
26
26
  exports.ACCESS_MANAGED_ABI = [
27
27
  "function authority() view returns (address)"
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/ownership-transfer/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAG,oEAAoE,CAAC;AAC1F,QAAA,2BAA2B,GAAG,oEAAoE,CAAC;AACnG,QAAA,mBAAmB,GAAG,oEAAoE,CAAC;AAG3F,QAAA,cAAc,GAAG;IAC1B,yCAAyC;IACzC,kDAAkD;CACrD,CAAC;AAEW,QAAA,WAAW,GAAG;IACvB,8CAA8C;IAC9C,yCAAyC;CAC5C,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,qEAAqE;IACrE,mDAAmD;IACnD,oDAAoD;IACpD,kEAAkE;CACrE,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,oEAAoE;IACpE,yEAAyE;IACzE,mDAAmD;CACtD,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,6CAA6C;CAChD,CAAC;AAEW,QAAA,YAAY,GAAG;IACxB,+CAA+C;IAC/C,gDAAgD;CACnD,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/ownership-transfer/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAG,oEAAoE,CAAC;AAC1F,QAAA,2BAA2B,GAAG,oEAAoE,CAAC;AAGnG,QAAA,cAAc,GAAG;IAC1B,yCAAyC;IACzC,kDAAkD;IAClD,+CAA+C;CAClD,CAAC;AAEW,QAAA,WAAW,GAAG;IACvB,8CAA8C;IAC9C,yCAAyC;CAC5C,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,qEAAqE;IACrE,mDAAmD;IACnD,sDAAsD;IACtD,kEAAkE;CACrE,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,oEAAoE;IACpE,yEAAyE;IACzE,qDAAqD;CACxD,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,6CAA6C;CAChD,CAAC;AAEW,QAAA,YAAY,GAAG;IACxB,+CAA+C;IAC/C,gDAAgD;CACnD,CAAC"}
@@ -5,6 +5,10 @@ export interface BytesRole {
5
5
  name: string;
6
6
  identifier: string;
7
7
  }
8
+ export interface UintRole {
9
+ name: string;
10
+ identifier: bigint;
11
+ }
8
12
  export interface ContractMetadataDetails {
9
13
  name: string;
10
14
  pattern: Pattern;
@@ -21,13 +25,13 @@ export declare class ContractAdmin {
21
25
  address: string;
22
26
  permissionModel: PermissionModel[];
23
27
  private grantOwnershipRoleTxs;
24
- private revokeOwnershipTxs;
28
+ private renounceOwnershipTxs;
25
29
  constructor(details: ContractMetadataDetails);
26
- createGrantOwnershipTransactions(oldOwner: string, newOwner: string, bytes32RolesToCheck: BytesRole[]): Promise<void>;
27
- createRevokeOwnershipTransactions(oldOwner: string, newOwner: string, bytes32RolesToCheck: BytesRole[]): Promise<void>;
30
+ createGrantOwnershipTransactions(oldOwner: string, newOwner: string, bytes32RolesToCheck: BytesRole[], managerRolesToCheck: UintRole[]): Promise<void>;
31
+ createRenounceOwnershipTransactions(oldOwner: string, bytes32RolesToCheck: BytesRole[], managerRolesToCheck: UintRole[]): Promise<void>;
28
32
  getGrantOwnershipTransactions(): TransactionData[];
29
- getRevokeOwnershipTransactions(): TransactionData[];
30
- clearRevokeTransactions(): void;
33
+ getRenounceOwnershipTransactions(): TransactionData[];
34
+ clearRenounceTransactions(): void;
31
35
  clearGrantTransactions(): void;
32
36
  requiresOwnershipGranting(): boolean;
33
37
  requiresOwnershipRevoking(): boolean;
@@ -38,7 +42,10 @@ export declare class ContractAdmin {
38
42
  }): void;
39
43
  private createTUPPGrantOwnershipTransaction;
40
44
  private createOwnableOwnershipTransaction;
45
+ private createAssignUint64RolesTransactions;
46
+ private handleRenounceOwnershipTransaction;
47
+ private createRenounceUint64RolesTransactions;
41
48
  private createAssignBytes32RolesTransactions;
42
- private createRevokeBytes32RolesTransactions;
49
+ private createRenounceBytes32RolesTransactions;
43
50
  private isDuplicateTransaction;
44
51
  }
@@ -12,18 +12,21 @@ class ContractAdmin {
12
12
  constructor(details) {
13
13
  this.permissionModel = [];
14
14
  this.grantOwnershipRoleTxs = [];
15
- this.revokeOwnershipTxs = [];
15
+ this.renounceOwnershipTxs = [];
16
16
  this.contractName = details.name;
17
17
  this.pattern = details.pattern;
18
18
  this.address = details.address;
19
19
  this.permissionModel = details.permissionModel ?? [];
20
20
  }
21
- async createGrantOwnershipTransactions(oldOwner, newOwner, bytes32RolesToCheck) {
21
+ // Looks cleaner than passing an object. Also parsing the object would be more verbose.
22
+ // eslint-disable-next-line max-params, max-statements
23
+ async createGrantOwnershipTransactions(oldOwner, newOwner, bytes32RolesToCheck, managerRolesToCheck) {
22
24
  if (!this.grantOwnershipRoleTxs.length) {
23
25
  console.log(chalk_1.default.white(`* Creating Transactions to grant Ownership in ${this.contractName}.`));
24
26
  if (this.pattern === utils_1.Pattern.TUPP) {
25
27
  await this.createTUPPGrantOwnershipTransaction(oldOwner, newOwner);
26
28
  }
29
+ // UpgradeableBeacon is detected also as OWNABLE
27
30
  if (this.permissionModel.includes(permission_utils_1.PermissionModel.OWNABLE)) {
28
31
  await this.createOwnableOwnershipTransaction(oldOwner, newOwner);
29
32
  }
@@ -31,30 +34,30 @@ class ContractAdmin {
31
34
  await this.createAssignBytes32RolesTransactions(oldOwner, newOwner, bytes32RolesToCheck);
32
35
  }
33
36
  if (this.permissionModel.includes(permission_utils_1.PermissionModel.ACCESS_MANAGER)) {
34
- console.log(chalk_1.default.yellow("Not implemented yet: Access Manager role assignments."));
37
+ this.createAssignUint64RolesTransactions(oldOwner, newOwner, managerRolesToCheck);
35
38
  }
36
39
  }
37
40
  }
38
- async createRevokeOwnershipTransactions(oldOwner, newOwner, bytes32RolesToCheck) {
39
- if (this.revokeOwnershipTxs.length) {
41
+ async createRenounceOwnershipTransactions(oldOwner, bytes32RolesToCheck, managerRolesToCheck) {
42
+ if (this.renounceOwnershipTxs.length) {
40
43
  return;
41
44
  }
42
- console.log(chalk_1.default.white(`* Creating Transactions to revoke Ownership in ${this.contractName}.`));
45
+ console.log(chalk_1.default.white(`* Creating Transactions to renounce Ownership in ${this.contractName}.`));
43
46
  if (this.permissionModel.includes(permission_utils_1.PermissionModel.ROLE_BASED)) {
44
- await this.createRevokeBytes32RolesTransactions(oldOwner, newOwner, bytes32RolesToCheck);
47
+ await this.createRenounceBytes32RolesTransactions(oldOwner, bytes32RolesToCheck);
45
48
  }
46
49
  if (this.permissionModel.includes(permission_utils_1.PermissionModel.ACCESS_MANAGER)) {
47
- console.log(chalk_1.default.yellow("Not implemented yet: Access Manager role revocations."));
50
+ await this.createRenounceUint64RolesTransactions(oldOwner, managerRolesToCheck);
48
51
  }
49
52
  }
50
53
  getGrantOwnershipTransactions() {
51
54
  return this.grantOwnershipRoleTxs;
52
55
  }
53
- getRevokeOwnershipTransactions() {
54
- return this.revokeOwnershipTxs;
56
+ getRenounceOwnershipTransactions() {
57
+ return this.renounceOwnershipTxs;
55
58
  }
56
- clearRevokeTransactions() {
57
- this.revokeOwnershipTxs = [];
59
+ clearRenounceTransactions() {
60
+ this.renounceOwnershipTxs = [];
58
61
  }
59
62
  clearGrantTransactions() {
60
63
  this.grantOwnershipRoleTxs = [];
@@ -63,7 +66,7 @@ class ContractAdmin {
63
66
  return Boolean(this.grantOwnershipRoleTxs.length);
64
67
  }
65
68
  requiresOwnershipRevoking() {
66
- return Boolean(this.revokeOwnershipTxs.length);
69
+ return Boolean(this.renounceOwnershipTxs.length);
67
70
  }
68
71
  displayData(columnWidths) {
69
72
  const { maxNameWidth, maxAddressWidth, maxPermissionsWidth } = columnWidths;
@@ -74,12 +77,12 @@ class ContractAdmin {
74
77
  if (this.grantOwnershipRoleTxs.length) {
75
78
  status = chalk_1.default.yellow("GRANT OWNERSHIP REQUIRED");
76
79
  }
77
- else if (this.revokeOwnershipTxs.length) {
80
+ else if (this.renounceOwnershipTxs.length) {
78
81
  status = chalk_1.default.yellow("REVOKE ROLES REQUIRED");
79
82
  }
80
83
  console.log(chalk_1.default.gray(` ${name} ${address} ${permissions} `) + status);
81
84
  }
82
- // TODO: Handle case where 1 proxy admin manages multiple proxies
85
+ // InstanceAdmin filters duplicates across multiple contracts sharing the same proxy admin
83
86
  async createTUPPGrantOwnershipTransaction(oldOwner, newOwner) {
84
87
  const admin = await (0, utils_1.getAdminAddress)(this.address);
85
88
  await this.createOwnableOwnershipTransaction(oldOwner, newOwner, { address: admin, name: `${this.contractName} Proxy Admin` });
@@ -99,15 +102,15 @@ class ContractAdmin {
99
102
  });
100
103
  }
101
104
  }
102
- async createAssignBytes32RolesTransactions(oldOwner, newOwner, bytes32RolesToCheck) {
103
- for (const role of bytes32RolesToCheck) {
105
+ async createAssignUint64RolesTransactions(oldOwner, newOwner, managerRolesToCheck) {
106
+ for (const role of managerRolesToCheck) {
104
107
  // Required to process sequentially as it access shared memory state
105
108
  // eslint-disable-next-line no-await-in-loop
106
- const tx = await (0, permission_utils_1.grantRole)(this.address, role.identifier, newOwner, oldOwner);
109
+ const tx = await (0, permission_utils_1.grantAccessManagerRole)(this.address, role.identifier, newOwner, oldOwner);
107
110
  if (tx) {
108
111
  if (this.isDuplicateTransaction({ transaction: tx })) {
109
112
  // Unexpected - better check
110
- throw new Error(`Error: Transaction to grant role ${role} in ${this.contractName} was already created.`);
113
+ throw new Error(`Error: Transaction to grant manager role ${role.name} in ${this.contractName} was already created.`);
111
114
  }
112
115
  else {
113
116
  const description = `-> Tx to grant role ${role.name} to ${newOwner} in ${this.contractName}`;
@@ -117,33 +120,62 @@ class ContractAdmin {
117
120
  }
118
121
  }
119
122
  }
120
- async createRevokeBytes32RolesTransactions(oldOwner, newOwner, bytes32RolesToCheck) {
123
+ handleRenounceOwnershipTransaction(tx, roleName, oldOwner) {
124
+ if (typeof tx !== "boolean" && tx) {
125
+ if (this.isDuplicateTransaction({ transaction: tx })) {
126
+ // Unexpected - better check
127
+ throw new Error(`Error: Transaction to renounce role ${roleName} in ${this.contractName} was already created.`);
128
+ }
129
+ else {
130
+ const description = `-> Tx to renounce role ${roleName} from ${oldOwner} in ${this.contractName}`;
131
+ console.log(chalk_1.default.yellow(` ${description} created.`));
132
+ this.renounceOwnershipTxs.push({ description, transaction: tx });
133
+ }
134
+ }
135
+ else if (!tx) {
136
+ console.log(chalk_1.default.yellow(` WARNING: Skipping revocation of role ${roleName} in ${this.contractName} as it requires at least 1 member left.`));
137
+ }
138
+ }
139
+ async createRenounceUint64RolesTransactions(oldOwner, managerRolesToCheck) {
140
+ for (const role of managerRolesToCheck) {
141
+ // Required to process sequentially as it access shared memory state
142
+ // eslint-disable-next-line no-await-in-loop
143
+ const tx = await (0, permission_utils_1.renounceAccessManagerRole)(this.address, role.identifier, oldOwner);
144
+ this.handleRenounceOwnershipTransaction(tx, role.name, oldOwner);
145
+ }
146
+ }
147
+ async createAssignBytes32RolesTransactions(oldOwner, newOwner, bytes32RolesToCheck) {
121
148
  for (const role of bytes32RolesToCheck) {
122
149
  // Required to process sequentially as it access shared memory state
123
150
  // eslint-disable-next-line no-await-in-loop
124
- const tx = await (0, permission_utils_1.revokeRole)(this.address, role.identifier, oldOwner);
125
- if (typeof tx !== "boolean" && tx) {
151
+ const tx = await (0, permission_utils_1.grantRole)(this.address, role.identifier, newOwner, oldOwner);
152
+ if (tx) {
126
153
  if (this.isDuplicateTransaction({ transaction: tx })) {
127
154
  // Unexpected - better check
128
- throw new Error(`Error: Transaction to revoke role ${role} in ${this.contractName} was already created.`);
155
+ throw new Error(`Error: Transaction to grant role ${role.name} in ${this.contractName} was already created.`);
129
156
  }
130
157
  else {
131
- const description = `-> Tx to revoke role ${role.name} from ${oldOwner} in ${this.contractName}`;
158
+ const description = `-> Tx to grant role ${role.name} to ${newOwner} in ${this.contractName}`;
132
159
  console.log(chalk_1.default.yellow(` ${description} created.`));
133
- this.revokeOwnershipTxs.push({ description, transaction: tx });
160
+ this.grantOwnershipRoleTxs.push({ description, transaction: tx });
134
161
  }
135
162
  }
136
- else if (!tx) {
137
- console.log(chalk_1.default.yellow(` WARNING: Skipping revocation of role ${role.name} in ${this.contractName} as it requires at least 1 member left.`));
138
- }
163
+ }
164
+ }
165
+ async createRenounceBytes32RolesTransactions(oldOwner, bytes32RolesToCheck) {
166
+ for (const role of bytes32RolesToCheck) {
167
+ // Required to process sequentially as it access shared memory state
168
+ // eslint-disable-next-line no-await-in-loop
169
+ const tx = await (0, permission_utils_1.renounceRole)(this.address, role.identifier, oldOwner);
170
+ this.handleRenounceOwnershipTransaction(tx, role.name, oldOwner);
139
171
  }
140
172
  }
141
173
  isDuplicateTransaction(transaction) {
142
174
  const isGrantDuplicate = this.grantOwnershipRoleTxs.some((existingTx) => existingTx.transaction.to === transaction.transaction.to &&
143
175
  existingTx.transaction.data === transaction.transaction.data);
144
- const isRevokeDuplicate = this.revokeOwnershipTxs.some((existingTx) => existingTx.transaction.to === transaction.transaction.to &&
176
+ const isRenounceDuplicate = this.renounceOwnershipTxs.some((existingTx) => existingTx.transaction.to === transaction.transaction.to &&
145
177
  existingTx.transaction.data === transaction.transaction.data);
146
- return isGrantDuplicate || isRevokeDuplicate;
178
+ return isGrantDuplicate || isRenounceDuplicate;
147
179
  }
148
180
  }
149
181
  exports.ContractAdmin = ContractAdmin;
@@ -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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"}
@@ -3,35 +3,40 @@ import { Instance } from "@skalenetwork/skale-contracts-ethers-v6";
3
3
  export interface InstanceAdminOptions {
4
4
  oldOwner: string;
5
5
  submitter: SafeSubmitter | EoaSubmitter;
6
- revokeRoles: boolean;
6
+ renounceRoles: boolean;
7
7
  newOwner: string;
8
8
  readonly: boolean;
9
9
  testMode: boolean;
10
10
  rolesToCheck?: string[];
11
11
  managerRolesToCheck?: number[];
12
12
  }
13
+ interface ContractId {
14
+ name: string;
15
+ address?: string;
16
+ }
13
17
  export declare class InstanceAdmin {
14
- private instance;
18
+ private instance?;
15
19
  private contractMetadata;
16
- private contractNames;
20
+ private contractIds;
17
21
  private bytes32RolesToCheck;
18
22
  private managerRolesToCheck;
19
23
  private oldOwner;
20
24
  private newOwner;
21
25
  private readonly;
22
26
  private submitter;
23
- private revokeRoles;
27
+ private renounceRoles;
24
28
  private testMode;
25
- constructor(instance: Instance, contractNames: string[], options: InstanceAdminOptions);
29
+ constructor(contractIds: ContractId[], options: InstanceAdminOptions, instance?: Instance);
26
30
  executeOwnershipTransfer(): Promise<void>;
27
31
  private initialize;
28
32
  private processGrantStepIfRequired;
29
- private processRevokeStepIfRequired;
30
- private submitRevokeRolesTransactions;
33
+ private processRenounceStepIfRequired;
34
+ private submitRenounceRolesTransactions;
31
35
  private confirmAndSubmitTransactions;
32
36
  private submitGrantOwnershipTransactions;
33
37
  private ownershipGrantingRequired;
34
38
  private ownershipRevokingRequired;
39
+ private resolveContractAddress;
35
40
  private loadContractMetadataAndCreateTransactions;
36
41
  private confirmData;
37
42
  private processOptions;
@@ -43,3 +48,4 @@ export declare class InstanceAdmin {
43
48
  private groupMetadataByPattern;
44
49
  private promptConfirmation;
45
50
  }
51
+ export {};
@@ -1,29 +1,31 @@
1
1
  "use strict";
2
- // Cspell:words keccak
2
+ /* eslint-disable max-lines */
3
+ // Exceeded by 3 - required for now
3
4
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
5
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
6
  };
6
7
  Object.defineProperty(exports, "__esModule", { value: true });
7
8
  exports.InstanceAdmin = void 0;
9
+ // Cspell:words keccak
8
10
  const contractAdmin_1 = require("./contractAdmin");
9
11
  const submitters_1 = require("../submitters");
10
12
  const utils_1 = require("./utils");
13
+ const permission_utils_1 = require("./permission-utils");
11
14
  const chalk_1 = __importDefault(require("chalk"));
12
15
  const hardhat_1 = require("hardhat");
13
- const permission_utils_1 = require("./permission-utils");
14
16
  const ZERO = 0;
15
17
  class InstanceAdmin {
16
- constructor(instance, contractNames, options) {
18
+ constructor(contractIds, options, instance) {
17
19
  this.contractMetadata = new Map();
18
20
  this.bytes32RolesToCheck = [];
19
21
  this.managerRolesToCheck = [];
20
22
  this.instance = instance;
21
- this.contractNames = contractNames;
23
+ this.contractIds = contractIds;
22
24
  this.readonly = options.readonly;
23
25
  this.newOwner = options.newOwner;
24
26
  this.submitter = options.submitter;
25
27
  this.oldOwner = options.oldOwner;
26
- this.revokeRoles = options.revokeRoles;
28
+ this.renounceRoles = options.renounceRoles;
27
29
  this.testMode = options.testMode;
28
30
  this.processOptions(options);
29
31
  }
@@ -34,9 +36,9 @@ class InstanceAdmin {
34
36
  return;
35
37
  }
36
38
  await this.processGrantStepIfRequired();
37
- await this.processRevokeStepIfRequired();
39
+ await this.processRenounceStepIfRequired();
38
40
  this.displayFindings();
39
- if (this.ownershipGrantingRequired() || this.ownershipRevokingRequired() && this.revokeRoles) {
41
+ if (this.ownershipGrantingRequired() || this.ownershipRevokingRequired() && this.renounceRoles) {
40
42
  console.error(chalk_1.default.red("Unexpected state: There are still actions requires."));
41
43
  }
42
44
  else {
@@ -50,25 +52,25 @@ class InstanceAdmin {
50
52
  async processGrantStepIfRequired() {
51
53
  if (this.ownershipGrantingRequired()) {
52
54
  await this.submitGrantOwnershipTransactions();
53
- if (this.revokeRoles) {
55
+ if (this.renounceRoles) {
54
56
  await this.createRequiredTransactions();
55
57
  }
56
58
  await this.confirmData();
57
59
  }
58
60
  }
59
- async processRevokeStepIfRequired() {
60
- if (this.revokeRoles && this.ownershipRevokingRequired() === true) {
61
- await this.submitRevokeRolesTransactions();
61
+ async processRenounceStepIfRequired() {
62
+ if (this.renounceRoles && this.ownershipRevokingRequired() === true) {
63
+ await this.submitRenounceRolesTransactions();
62
64
  await this.createRequiredTransactions();
63
65
  }
64
66
  }
65
- async submitRevokeRolesTransactions() {
67
+ async submitRenounceRolesTransactions() {
66
68
  const txsToSubmit = [];
67
69
  for (const contract of this.contractMetadata.values()) {
68
- txsToSubmit.push(...contract.getRevokeOwnershipTransactions());
69
- contract.clearRevokeTransactions();
70
+ txsToSubmit.push(...contract.getRenounceOwnershipTransactions());
71
+ contract.clearRenounceTransactions();
70
72
  }
71
- console.log(chalk_1.default.green(`Submitting ${txsToSubmit.length} revoke ownership transactions...`));
73
+ console.log(chalk_1.default.green(`Submitting ${txsToSubmit.length} renounce ownership transactions...`));
72
74
  for (const [index, txData] of txsToSubmit.entries()) {
73
75
  console.log(chalk_1.default.grey(` -> Transaction ${index}: ${txData.description || "No description"}`));
74
76
  }
@@ -105,20 +107,32 @@ class InstanceAdmin {
105
107
  ownershipRevokingRequired() {
106
108
  return Array.from(this.contractMetadata.values()).some(contract => contract.requiresOwnershipRevoking());
107
109
  }
110
+ async resolveContractAddress(contractName) {
111
+ if (!this.instance) {
112
+ throw new Error(`Instance is not defined. Cannot resolve ${contractName} address.`);
113
+ }
114
+ return await this.instance.getContractAddress(contractName);
115
+ }
108
116
  async loadContractMetadataAndCreateTransactions() {
109
117
  /* eslint-disable no-await-in-loop */
110
118
  // Do not parallelize to avoid rate limit issues which CAN produce wrong outputs
111
- for (const contractName of this.contractNames) {
112
- const address = await this.instance.getContractAddress(contractName);
113
- if (!this.contractMetadata.has(address)) {
114
- const pattern = await (0, utils_1.detectPattern)(address);
119
+ for (const { name: contractName, address } of this.contractIds) {
120
+ const resolvedAddress = address || await this.resolveContractAddress(contractName);
121
+ if (!this.contractMetadata.has(resolvedAddress)) {
122
+ const pattern = await (0, utils_1.detectPattern)(resolvedAddress);
115
123
  const details = {
116
- address,
124
+ address: resolvedAddress,
117
125
  name: contractName,
118
126
  pattern,
119
- permissionModel: await (0, permission_utils_1.getPermissionModels)(address)
127
+ permissionModel: await (0, permission_utils_1.getPermissionModels)(resolvedAddress)
120
128
  };
121
- this.contractMetadata.set(address, new contractAdmin_1.ContractAdmin(details));
129
+ const maxPermissionsIfBeacon = 1;
130
+ if (pattern === utils_1.Pattern.BEACON &&
131
+ !details.permissionModel?.includes(permission_utils_1.PermissionModel.OWNABLE) &&
132
+ details.permissionModel?.length !== maxPermissionsIfBeacon) {
133
+ throw new Error(`UpgradeableBeacon at address ${resolvedAddress} should ONLY have OWNABLE permission model.`);
134
+ }
135
+ this.contractMetadata.set(resolvedAddress, new contractAdmin_1.ContractAdmin(details));
122
136
  }
123
137
  }
124
138
  /* eslint-enable no-await-in-loop */
@@ -142,23 +156,21 @@ class InstanceAdmin {
142
156
  throw new Error("New owner address must be provided in options when in write mode.");
143
157
  }
144
158
  this.managerRolesToCheck = (options.managerRolesToCheck ?? []).map(role => {
145
- if (typeof role !== "number" || !Number.isInteger(role) || role < ZERO) {
146
- throw new Error(`Invalid manager role: ${role}. Must be a non-negative integer.`);
159
+ if (typeof role !== "bigint" || role <= ZERO) {
160
+ throw new Error(`Invalid manager role: ${role}. Must be a non-zero bigint.`);
147
161
  }
148
162
  return { identifier: role, name: `Role ${role}` };
149
163
  });
150
- this.managerRolesToCheck.push({ identifier: ZERO, name: "ADMIN_ROLE" });
164
+ this.managerRolesToCheck.push({ identifier: BigInt(ZERO), name: "ADMIN_ROLE" });
151
165
  }
152
166
  async createRequiredTransactions() {
153
167
  console.log(chalk_1.default.grey("INFO: The next Following steps will NOT submit any transactions to the blockchain."));
154
168
  // Preferred to create sequentially due to rate limits
155
169
  /* eslint-disable no-await-in-loop */
156
170
  for (const contract of this.contractMetadata.values()) {
157
- await contract.createGrantOwnershipTransactions(this.oldOwner, this.newOwner, this.bytes32RolesToCheck
158
- //TODO: this.managerRolesToCheck
159
- );
171
+ await contract.createGrantOwnershipTransactions(this.oldOwner, this.newOwner, this.bytes32RolesToCheck, this.managerRolesToCheck);
160
172
  if (!contract.requiresOwnershipGranting()) {
161
- await contract.createRevokeOwnershipTransactions(this.oldOwner, this.newOwner, this.bytes32RolesToCheck);
173
+ await contract.createRenounceOwnershipTransactions(this.oldOwner, this.bytes32RolesToCheck, this.managerRolesToCheck);
162
174
  }
163
175
  }
164
176
  /* eslint-enable no-await-in-loop */
@@ -1 +1 @@
1
- {"version":3,"file":"instanceAdmin.js","sourceRoot":"","sources":["../../../src/ownership-transfer/instanceAdmin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instanceAdmin.js","sourceRoot":"","sources":["../../../src/ownership-transfer/instanceAdmin.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,9 @@ export declare const isOwnable: (contractAddress: AddressLike) => Promise<boolea
9
9
  export declare const isAccessControl: (contractAddress: AddressLike) => Promise<boolean>;
10
10
  export declare const isAccessManager: (contractAddress: AddressLike) => Promise<boolean>;
11
11
  export declare const isAccessManaged: (contractAddress: AddressLike) => Promise<boolean>;
12
- export declare const tryGetMultiSigInfo: (contractAddress: string) => Promise<{
13
- owners: string[] | null;
14
- threshold: bigint | null;
15
- }>;
16
12
  export declare const transferOwnership: (contractAddress: string, newOwner: string, oldOwner: string) => Promise<Transaction | false>;
17
13
  export declare const grantRole: (contractAddress: string, role: string, newAccount: AddressLike, oldAccount: AddressLike) => Promise<Transaction | false>;
18
- export declare const revokeRole: (contractAddress: string, role: string, oldAccount: AddressLike) => Promise<Transaction | boolean>;
14
+ export declare const renounceRole: (contractAddress: string, role: string, oldAccount: AddressLike) => Promise<Transaction | boolean>;
19
15
  export declare const getPermissionModels: (address: AddressLike) => Promise<PermissionModel[]>;
16
+ export declare const grantAccessManagerRole: (contractAddress: string, role: bigint, newAccount: AddressLike, oldAccount: AddressLike) => Promise<Transaction | false>;
17
+ export declare const renounceAccessManagerRole: (contractAddress: string, role: bigint, oldAccount: AddressLike) => Promise<Transaction | boolean>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPermissionModels = exports.revokeRole = exports.grantRole = exports.transferOwnership = exports.tryGetMultiSigInfo = exports.isAccessManaged = exports.isAccessManager = exports.isAccessControl = exports.isOwnable = exports.PermissionModel = void 0;
3
+ exports.renounceAccessManagerRole = exports.grantAccessManagerRole = exports.getPermissionModels = exports.renounceRole = exports.grantRole = exports.transferOwnership = exports.isAccessManaged = exports.isAccessManager = exports.isAccessControl = exports.isOwnable = exports.PermissionModel = void 0;
4
4
  const constants_1 = require("./constants");
5
5
  const ethers_1 = require("ethers");
6
6
  const utils_1 = require("./utils");
@@ -13,19 +13,12 @@ var PermissionModel;
13
13
  PermissionModel["ACCESS_MANAGED"] = "ACCESS_MANAGED";
14
14
  PermissionModel["ACCESS_MANAGER"] = "ACCESS_MANAGER";
15
15
  })(PermissionModel || (exports.PermissionModel = PermissionModel = {}));
16
+ const ZERO = 0;
16
17
  const MIN_ROLE_HOLDERS = 2n;
17
18
  const verifyOwnableInterface = async (contract, contractAddress) => {
18
- /*
19
- * Verify owner() exists and returns non-zero address
20
- */
21
19
  const owner = await contract.owner();
22
- if (owner === hardhat_1.ethers.ZeroAddress) {
23
- return false;
24
- }
25
- /*
26
- * Verify transferOwnership() exists by checking bytecode
27
- */
28
- return await (0, utils_1.hasFunctionSelector)(contractAddress, "transferOwnership(address)");
20
+ return owner !== hardhat_1.ethers.ZeroAddress &&
21
+ await (0, utils_1.hasFunctionSelector)(contractAddress, "transferOwnership(address)");
29
22
  };
30
23
  const isOwnable = async (contractAddress) => {
31
24
  try {
@@ -42,15 +35,9 @@ const isOwnable = async (contractAddress) => {
42
35
  };
43
36
  exports.isOwnable = isOwnable;
44
37
  const verifyAccessControlInterface = async (contract, contractAddress) => {
45
- /*
46
- * Verify hasRole() view function exists
47
- */
48
38
  await contract.hasRole(hardhat_1.ethers.ZeroHash, hardhat_1.ethers.ZeroAddress);
49
- /*
50
- * Verify grantRole() exists by checking bytecode
51
- */
52
39
  return await (0, utils_1.hasFunctionSelector)(contractAddress, "grantRole(bytes32,address)") &&
53
- await (0, utils_1.hasFunctionSelector)(contractAddress, "revokeRole(bytes32,address)");
40
+ await (0, utils_1.hasFunctionSelector)(contractAddress, "renounceRole(bytes32,address)");
54
41
  };
55
42
  const isAccessControl = async (contractAddress) => {
56
43
  try {
@@ -69,12 +56,8 @@ exports.isAccessControl = isAccessControl;
69
56
  const verifyAccessManagerInterface = async (contract, contractAddress) => {
70
57
  const zeroRole = 0n;
71
58
  await contract.hasRole(zeroRole, hardhat_1.ethers.ZeroAddress);
72
- /*
73
- * Verify grantRole(uint64,address,uint32) exists by checking bytecode
74
- * AccessManager's grantRole includes an executionDelay parameter
75
- */
76
59
  return await (0, utils_1.hasFunctionSelector)(contractAddress, "grantRole(uint64,address,uint32)") &&
77
- await (0, utils_1.hasFunctionSelector)(contractAddress, "revokeRole(uint64,address)");
60
+ await (0, utils_1.hasFunctionSelector)(contractAddress, "renounceRole(uint64,address)");
78
61
  };
79
62
  const isAccessManager = async (contractAddress) => {
80
63
  try {
@@ -93,15 +76,10 @@ exports.isAccessManager = isAccessManager;
93
76
  const isAccessManaged = async (contractAddress) => {
94
77
  try {
95
78
  const resolvedAddress = await hardhat_1.ethers.resolveAddress(contractAddress);
96
- const isContract = await (0, utils_1.isContractAddress)(resolvedAddress);
97
- if (!isContract) {
79
+ if (!await (0, utils_1.isContractAddress)(resolvedAddress)) {
98
80
  return false;
99
81
  }
100
82
  const contract = new ethers_1.Contract(resolvedAddress, constants_1.ACCESS_MANAGED_ABI, hardhat_1.ethers.provider);
101
- /*
102
- * Try to call authority() - if it succeeds and returns non-zero address,
103
- * The contract is AccessManaged
104
- */
105
83
  const authorityAddress = await contract.authority();
106
84
  return await (0, exports.isAccessManager)(authorityAddress);
107
85
  }
@@ -110,21 +88,6 @@ const isAccessManaged = async (contractAddress) => {
110
88
  }
111
89
  };
112
90
  exports.isAccessManaged = isAccessManaged;
113
- const tryGetMultiSigInfo = async (contractAddress) => {
114
- let owners = null;
115
- let threshold = null;
116
- try {
117
- const contract = new ethers_1.Contract(contractAddress, constants_1.MULTISIG_ABI, hardhat_1.ethers.provider);
118
- owners = await contract.getOwners();
119
- threshold = await contract.getThreshold();
120
- return { owners, threshold };
121
- }
122
- catch (err) {
123
- console.warn(`Error calling usual Multi-sig getter functions: ${err}`);
124
- return { owners, threshold };
125
- }
126
- };
127
- exports.tryGetMultiSigInfo = tryGetMultiSigInfo;
128
91
  const transferOwnership = async (contractAddress, newOwner, oldOwner) => {
129
92
  const contract = new ethers_1.Contract(contractAddress, constants_1.OWNABLE_ABI, hardhat_1.ethers.provider);
130
93
  if (await contract.owner() === newOwner) {
@@ -141,16 +104,16 @@ const transferOwnership = async (contractAddress, newOwner, oldOwner) => {
141
104
  };
142
105
  exports.transferOwnership = transferOwnership;
143
106
  const grantRole = async (contractAddress, role, newAccount, oldAccount
107
+ // Cleaner, and the 4 are required
144
108
  // eslint-disable-next-line max-params
145
109
  ) => {
146
110
  const contract = new ethers_1.Contract(contractAddress, constants_1.ACCESS_CONTROL_ABI, hardhat_1.ethers.provider);
147
- /*
148
- * Check if the account already has the role OR if the oldAccount does not have it - no action
149
- */
111
+ // If new account already has role or old account never had it in the first place - no action
150
112
  if (await contract.hasRole(role, newAccount) || !await contract.hasRole(role, oldAccount)) {
151
113
  return false;
152
114
  }
153
115
  if (!await contract.hasRole(hardhat_1.ethers.ZeroHash, oldAccount)) {
116
+ // Currently we do not support roleAdmins - must be ran by owner
154
117
  throw new Error(`Account ${oldAccount} does not have permission to grant roles on contract ${contractAddress}.`);
155
118
  }
156
119
  const data = contract.interface.encodeFunctionData("grantRole", [role, newAccount]);
@@ -160,40 +123,75 @@ const grantRole = async (contractAddress, role, newAccount, oldAccount
160
123
  return transaction;
161
124
  };
162
125
  exports.grantRole = grantRole;
163
- const revokeRole = async (contractAddress, role, oldAccount) => {
126
+ const renounceRole = async (contractAddress, role, oldAccount) => {
164
127
  const contract = new ethers_1.Contract(contractAddress, constants_1.ACCESS_CONTROL_ABI, hardhat_1.ethers.provider);
165
128
  if (!await contract.hasRole(role, oldAccount)) {
166
129
  return true;
167
130
  }
168
- if ((await contract.getRoleMemberCount(role)) < MIN_ROLE_HOLDERS && role === hardhat_1.ethers.ZeroHash) {
131
+ // Prevent revoking last role holder of default admin role
132
+ if (role === hardhat_1.ethers.ZeroHash && (await contract.getRoleMemberCount(role)) < MIN_ROLE_HOLDERS) {
169
133
  return false;
170
134
  }
171
- const data = contract.interface.encodeFunctionData("revokeRole", [role, oldAccount]);
135
+ const data = contract.interface.encodeFunctionData("renounceRole", [role, oldAccount]);
172
136
  const transaction = new ethers_1.Transaction();
173
137
  transaction.to = contractAddress;
174
138
  transaction.data = data;
175
139
  return transaction;
176
140
  };
177
- exports.revokeRole = revokeRole;
178
- // eslint-disable-next-line max-statements
141
+ exports.renounceRole = renounceRole;
179
142
  const getPermissionModels = async (address) => {
143
+ const checks = [
144
+ { check: exports.isOwnable, model: PermissionModel.OWNABLE },
145
+ { check: exports.isAccessControl, model: PermissionModel.ROLE_BASED },
146
+ { check: exports.isAccessManager, model: PermissionModel.ACCESS_MANAGER },
147
+ { check: exports.isAccessManaged, model: PermissionModel.ACCESS_MANAGED }
148
+ ];
180
149
  const models = [];
181
- if (await (0, exports.isOwnable)(address)) {
182
- models.push(PermissionModel.OWNABLE);
183
- }
184
- if (await (0, exports.isAccessControl)(address)) {
185
- models.push(PermissionModel.ROLE_BASED);
186
- }
187
- if (await (0, exports.isAccessManager)(address)) {
188
- models.push(PermissionModel.ACCESS_MANAGER);
189
- }
190
- if (await (0, exports.isAccessManaged)(address)) {
191
- models.push(PermissionModel.ACCESS_MANAGED);
192
- }
150
+ // Change to await in loop if rate-limiting becomes an issue
151
+ await Promise.all(checks.map(async ({ check, model }) => {
152
+ if (await check(address)) {
153
+ models.push(model);
154
+ }
155
+ }));
193
156
  if (models.includes(PermissionModel.ACCESS_MANAGER) && models.includes(PermissionModel.ROLE_BASED)) {
194
157
  throw new Error(`Address ${address} cannot be both ACCESS_MANAGER and ROLE_BASED permission models.`);
195
158
  }
196
159
  return models;
197
160
  };
198
161
  exports.getPermissionModels = getPermissionModels;
162
+ const grantAccessManagerRole = async (contractAddress, role, newAccount, oldAccount
163
+ // eslint-disable-next-line max-params
164
+ ) => {
165
+ const contract = new ethers_1.Contract(contractAddress, constants_1.ACCESS_MANAGER_ABI, hardhat_1.ethers.provider);
166
+ // If new account already has role or old account never had it in the first place - no action
167
+ if (await contract.hasRole(role, newAccount) || !await contract.hasRole(role, oldAccount)) {
168
+ return false;
169
+ }
170
+ if (!await contract.hasRole(ZERO, oldAccount)) {
171
+ // Currently we do not support roleAdmins - must be ran by owner
172
+ throw new Error(`Account ${oldAccount} does not have permission to grant roles on contract ${contractAddress}.`);
173
+ }
174
+ const data = contract.interface.encodeFunctionData("grantRole", [role, newAccount, ZERO]);
175
+ const transaction = new ethers_1.Transaction();
176
+ transaction.to = contractAddress;
177
+ transaction.data = data;
178
+ return transaction;
179
+ };
180
+ exports.grantAccessManagerRole = grantAccessManagerRole;
181
+ const renounceAccessManagerRole = async (contractAddress, role, oldAccount) => {
182
+ const contract = new ethers_1.Contract(contractAddress, constants_1.ACCESS_MANAGER_ABI, hardhat_1.ethers.provider);
183
+ if (!await contract.hasRole(role, oldAccount)) {
184
+ return true;
185
+ }
186
+ // Prevent revoking last role holder of default admin role
187
+ if (role === BigInt(ZERO) && (await contract.getRoleMemberCount(role)) < MIN_ROLE_HOLDERS) {
188
+ return false;
189
+ }
190
+ const data = contract.interface.encodeFunctionData("renounceRole", [role, oldAccount]);
191
+ const transaction = new ethers_1.Transaction();
192
+ transaction.to = contractAddress;
193
+ transaction.data = data;
194
+ return transaction;
195
+ };
196
+ exports.renounceAccessManagerRole = renounceAccessManagerRole;
199
197
  //# sourceMappingURL=permission-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permission-utils.js","sourceRoot":"","sources":["../../../src/ownership-transfer/permission-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-utils.js","sourceRoot":"","sources":["../../../src/ownership-transfer/permission-utils.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,11 @@ export declare enum Pattern {
8
8
  export declare const isContractAddress: (address: string) => Promise<boolean>;
9
9
  export declare const extractAddressFromSlot: (slotValue: string) => string;
10
10
  export declare const getAdminAddress: (address: string) => Promise<string>;
11
- export declare const getImplementationAddress: (address: string) => Promise<string>;
11
+ export declare const getTUPPImplementationAddress: (address: string) => Promise<string>;
12
12
  export declare const isTUPPPattern: (address: string) => Promise<boolean>;
13
+ export declare const hasFunctionSelector: (address: string, signature: string) => Promise<boolean>;
13
14
  export declare const isBeaconPattern: (address: string) => Promise<boolean>;
14
15
  export declare const identifyProxyPattern: (address: string) => Promise<Pattern>;
15
16
  export declare const promptUserConfirmation: (message?: string) => Promise<boolean>;
16
17
  export declare const detectPattern: (address: AddressLike) => Promise<Pattern>;
17
- export declare const hasFunctionSelector: (address: string, signature: string) => Promise<boolean>;
18
18
  export declare const removeDuplicateTransactions: (items: TransactionData[]) => TransactionData[];
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.removeDuplicateTransactions = exports.hasFunctionSelector = exports.detectPattern = exports.promptUserConfirmation = exports.identifyProxyPattern = exports.isBeaconPattern = exports.isTUPPPattern = exports.getImplementationAddress = exports.getAdminAddress = exports.extractAddressFromSlot = exports.isContractAddress = exports.Pattern = void 0;
6
+ exports.removeDuplicateTransactions = exports.detectPattern = exports.promptUserConfirmation = exports.identifyProxyPattern = exports.isBeaconPattern = exports.hasFunctionSelector = exports.isTUPPPattern = exports.getTUPPImplementationAddress = exports.getAdminAddress = exports.extractAddressFromSlot = exports.isContractAddress = exports.Pattern = void 0;
7
7
  // Cspell:words TUPP
8
8
  const constants_1 = require("./constants");
9
9
  const chalk_1 = __importDefault(require("chalk"));
@@ -35,17 +35,17 @@ const getAdminAddress = async (address) => {
35
35
  return (0, exports.extractAddressFromSlot)(adminSlotValue);
36
36
  };
37
37
  exports.getAdminAddress = getAdminAddress;
38
- const getImplementationAddress = async (address) => {
38
+ const getTUPPImplementationAddress = async (address) => {
39
39
  const implementationSlotValue = await hardhat_1.ethers.provider.getStorage(address, constants_1.ERC1967_IMPLEMENTATION_SLOT);
40
40
  return (0, exports.extractAddressFromSlot)(implementationSlotValue);
41
41
  };
42
- exports.getImplementationAddress = getImplementationAddress;
42
+ exports.getTUPPImplementationAddress = getTUPPImplementationAddress;
43
43
  const validateTUPPProxy = async (proxyAddress, adminAddress) => {
44
44
  const isAdminContract = await (0, exports.isContractAddress)(adminAddress);
45
45
  if (!isAdminContract) {
46
46
  return false;
47
47
  }
48
- const implementationAddress = await (0, exports.getImplementationAddress)(proxyAddress);
48
+ const implementationAddress = await (0, exports.getTUPPImplementationAddress)(proxyAddress);
49
49
  return implementationAddress !== hardhat_1.ethers.ZeroAddress && await (0, exports.isContractAddress)(implementationAddress);
50
50
  };
51
51
  /*
@@ -65,6 +65,26 @@ const isTUPPPattern = async (address) => {
65
65
  }
66
66
  };
67
67
  exports.isTUPPPattern = isTUPPPattern;
68
+ const resolveImplementationAddress = async (address) => {
69
+ if (await (0, exports.isTUPPPattern)(address)) {
70
+ return (0, exports.getTUPPImplementationAddress)(address);
71
+ }
72
+ // Beacon not required because we only change upgradeability ownership - on UpgradeableBeacon
73
+ return address;
74
+ };
75
+ const hasFunctionSelector = async (address, signature) => {
76
+ const iface = new hardhat_1.ethers.Interface([`function ${signature}`]);
77
+ const toSlice = "0x".length;
78
+ const selector = iface.getFunction(signature)?.selector.slice(toSlice).toLowerCase();
79
+ if (!selector) {
80
+ throw new Error(`Invalid function signature: ${signature}`);
81
+ }
82
+ const implementationAddress = await resolveImplementationAddress(address);
83
+ const bytecode = (await hardhat_1.ethers.provider.getCode(implementationAddress)).toLowerCase();
84
+ // May very rarely cause false positives - But user verifies findings
85
+ return bytecode.includes(selector);
86
+ };
87
+ exports.hasFunctionSelector = hasFunctionSelector;
68
88
  /*
69
89
  * Checks if the contract follows the Beacon Proxy Pattern.
70
90
  * A Beacon proxy has a beacon address in the ERC1967 beacon slot,
@@ -72,20 +92,14 @@ exports.isTUPPPattern = isTUPPPattern;
72
92
  */
73
93
  const isBeaconPattern = async (address) => {
74
94
  try {
75
- // Check beacon slot
76
- const beaconSlotValue = await hardhat_1.ethers.provider.getStorage(address, constants_1.ERC1967_BEACON_SLOT);
77
- const beaconAddress = (0, exports.extractAddressFromSlot)(beaconSlotValue);
78
- if (beaconAddress === hardhat_1.ethers.ZeroAddress) {
79
- return false;
80
- }
81
95
  const contract = new hardhat_1.ethers.Contract(address, constants_1.basicBeaconAbi, hardhat_1.ethers.provider);
82
- const [owner, implementation] = await Promise.all([
83
- contract.owner(),
84
- contract.implementation()
85
- ]);
96
+ const implementation = await contract.implementation();
97
+ const owner = await contract.owner();
98
+ const interfaceHasUpgradeTo = await (0, exports.hasFunctionSelector)(address, "upgradeTo(address)");
86
99
  return owner !== hardhat_1.ethers.ZeroAddress &&
87
- implementation === beaconAddress &&
88
- await (0, exports.isContractAddress)(implementation);
100
+ implementation !== hardhat_1.ethers.ZeroAddress &&
101
+ await (0, exports.isContractAddress)(implementation) &&
102
+ interfaceHasUpgradeTo;
89
103
  }
90
104
  catch {
91
105
  return false;
@@ -148,29 +162,6 @@ const detectPattern = async (address) => {
148
162
  }
149
163
  };
150
164
  exports.detectPattern = detectPattern;
151
- const hasFunctionSelector = async (address, signature) => {
152
- const iface = new hardhat_1.ethers.Interface([`function ${signature}`]);
153
- const { selector } = iface.getFunction(signature) || {};
154
- if (!selector) {
155
- throw new Error(`Invalid function signature: ${signature}`);
156
- }
157
- try {
158
- // Empty arguments used — we just want to test if the selector is valid
159
- const result = await hardhat_1.ethers.provider.call({
160
- data: selector,
161
- to: address
162
- });
163
- if (result === "0x") {
164
- return false;
165
- }
166
- return true;
167
- }
168
- catch (err) {
169
- // Reverted = function exists, but call params invalid
170
- return true;
171
- }
172
- };
173
- exports.hasFunctionSelector = hasFunctionSelector;
174
165
  const removeDuplicateTransactions = (items) => {
175
166
  const seen = new Set();
176
167
  return items.filter((item) => {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/ownership-transfer/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/ownership-transfer/utils.ts"],"names":[],"mappings":";;;;;;AAAA,oBAAoB;AACpB,2CAIqB;AAGrB,kDAA0B;AAC1B,qCAA+B;AAC/B,wDAAgC;AAEhC;;;GAGG;AACH,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,IAAY,OAIX;AAJD,WAAY,OAAO;IACf,wBAAa,CAAA;IACb,4BAAiB,CAAA;IACjB,8BAAmB,CAAA;AACvB,CAAC,EAJW,OAAO,uBAAP,OAAO,QAIlB;AAEM,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAe,EAAoB,EAAE;IACzE,MAAM,IAAI,GAAG,MAAM,gBAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC;AAC3C,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,sBAAsB,GAAG,CAAC,SAAiB,EAAU,EAAE;IAChE,MAAM,UAAU,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAC/D,OAAO,gBAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC,CAAC;AAHW,QAAA,sBAAsB,0BAGjC;AAEK,MAAM,eAAe,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IACtE,MAAM,cAAc,GAAG,MAAM,gBAAM,CAAC,QAAQ,CAAC,UAAU,CACnD,OAAO,EACP,8BAAkB,CACrB,CAAC;IACF,OAAO,IAAA,8BAAsB,EAAC,cAAc,CAAC,CAAC;AAClD,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEK,MAAM,4BAA4B,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IACnF,MAAM,uBAAuB,GAAG,MAAM,gBAAM,CAAC,QAAQ,CAAC,UAAU,CAC5D,OAAO,EACP,uCAA2B,CAC9B,CAAC;IACF,OAAO,IAAA,8BAAsB,EAAC,uBAAuB,CAAC,CAAC;AAC3D,CAAC,CAAC;AANW,QAAA,4BAA4B,gCAMvC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAC3B,YAAoB,EACpB,YAAoB,EACJ,EAAE;IAClB,MAAM,eAAe,GAAG,MAAM,IAAA,yBAAiB,EAAC,YAAY,CAAC,CAAC;IAE9D,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,qBAAqB,GAAG,MAAM,IAAA,oCAA4B,EAAC,YAAY,CAAC,CAAC;IAC/E,OAAO,qBAAqB,KAAK,gBAAM,CAAC,WAAW,IAAI,MAAM,IAAA,yBAAiB,EAAC,qBAAqB,CAAC,CAAC;AAC1G,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,aAAa,GAAG,KAAK,EAAE,OAAe,EAAoB,EAAE;IACrE,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,YAAY,KAAK,gBAAM,CAAC,WAAW,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,MAAM,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB;AAEF,MAAM,4BAA4B,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IAC5E,IAAI,MAAM,IAAA,qBAAa,EAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAA,oCAA4B,EAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,6FAA6F;IAC7F,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAAe,EAAE,SAAiB,EAAoB,EAAE;IAC9F,MAAM,KAAK,GAAG,IAAI,gBAAM,CAAC,SAAS,CAAC,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACrF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,qBAAqB,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,MAAM,gBAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACtF,qEAAqE;IACrE,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC,CAAA;AAXY,QAAA,mBAAmB,uBAW/B;AAED;;;;GAIG;AACI,MAAM,eAAe,GAAG,KAAK,EAAE,OAAe,EAAoB,EAAE;IACvE,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,gBAAM,CAAC,QAAQ,CAChC,OAAO,EACP,0BAAc,EACd,gBAAM,CAAC,QAAQ,CAClB,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACrC,MAAM,qBAAqB,GAAG,MAAM,IAAA,2BAAmB,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAEvF,OAAO,KAAK,KAAK,gBAAM,CAAC,WAAW;YAC/B,cAAc,KAAK,gBAAM,CAAC,WAAW;YACrC,MAAM,IAAA,yBAAiB,EAAC,cAAc,CAAC;YACvC,qBAAqB,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAC;AAlBW,QAAA,eAAe,mBAkB1B;AAEF;;;;;GAKG;AACI,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAe,EAAoB,EAAE;IAC5E,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,OAAO,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,CAAC,CAAC;AAZW,QAAA,oBAAoB,wBAY/B;AAEF;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,CAAC,OAAgB,EAAoB,EAAE;IACzE,MAAM,EAAE,GAAG,kBAAQ,CAAC,eAAe,CAAC;QAChC,OAAO,EAAE,OAAO,CAAC,KAAK;QACtB,QAAQ,EAAE,OAAO,CAAC,MAAM;KAC3B,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,OAAO,IAAI,gCAAgC,CAAC;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,EAAE,CAAC,QAAQ,CACP,eAAK,CAAC,MAAM,CAAC,GAAG,GAAG,uBAAuB,CAAC,EAC3C,CAAC,MAAM,EAAE,EAAE;YACP,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrD,OAAO,CAAC,gBAAgB,KAAK,KAAK,IAAI,gBAAgB,KAAK,GAAG,CAAC,CAAC;QACpE,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAhBW,QAAA,sBAAsB,0BAgBjC;AAGF;;GAEG;AACI,MAAM,aAAa,GAAG,KAAK,EAAE,OAAoB,EAAoB,EAAE;IAC1E,IAAI,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,gBAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAiB,EAAC,eAAe,CAAC,CAAC;QAE5D,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,iCAAiC,CAAC,CAAA;QACxE,CAAC;QAED,OAAO,MAAM,IAAA,4BAAoB,EAAC,eAAe,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC,OAAO,CAAC;IAC3B,CAAC;AACL,CAAC,CAAA;AAdY,QAAA,aAAa,iBAczB;AAIM,MAAM,2BAA2B,GAAG,CAAC,KAAwB,EAAqB,EAAE;IACvF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB;;;WAGG;QACH,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEpE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC,CAAA;AAhBY,QAAA,2BAA2B,+BAgBvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skalenetwork/upgrade-tools",
3
- "version": "4.0.0-ownership-helpers.18",
3
+ "version": "4.0.0-ownership-helpers.19",
4
4
  "description": "Scripts to support upgrades of smart contracts",
5
5
  "files": [
6
6
  "dist/**/*"