@skalenetwork/upgrade-tools 4.0.0-develop.0 → 4.0.0-develop.10

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.
Files changed (82) hide show
  1. package/README.md +3 -1
  2. package/dist/src/contractFactory.js +1 -1
  3. package/dist/src/contractFactory.js.map +1 -1
  4. package/dist/src/contractVerifier.d.ts +24 -12
  5. package/dist/src/contractVerifier.js +47 -43
  6. package/dist/src/contractVerifier.js.map +1 -1
  7. package/dist/src/deploy.d.ts +1 -0
  8. package/dist/src/deploy.js +16 -9
  9. package/dist/src/deploy.js.map +1 -1
  10. package/dist/src/gnosis-safe.js +6 -37
  11. package/dist/src/gnosis-safe.js.map +1 -1
  12. package/dist/src/index.d.ts +4 -0
  13. package/dist/src/index.js +4 -0
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/ownership-transfer/constants.d.ts +8 -0
  16. package/dist/src/ownership-transfer/constants.js +33 -0
  17. package/dist/src/ownership-transfer/constants.js.map +1 -0
  18. package/dist/src/ownership-transfer/contractAdmin.d.ts +55 -0
  19. package/dist/src/ownership-transfer/contractAdmin.js +211 -0
  20. package/dist/src/ownership-transfer/contractAdmin.js.map +1 -0
  21. package/dist/src/ownership-transfer/instanceAdmin.d.ts +51 -0
  22. package/dist/src/ownership-transfer/instanceAdmin.js +221 -0
  23. package/dist/src/ownership-transfer/instanceAdmin.js.map +1 -0
  24. package/dist/src/ownership-transfer/permission-utils.d.ts +37 -0
  25. package/dist/src/ownership-transfer/permission-utils.js +191 -0
  26. package/dist/src/ownership-transfer/permission-utils.js.map +1 -0
  27. package/dist/src/ownership-transfer/utils.d.ts +19 -0
  28. package/dist/src/ownership-transfer/utils.js +201 -0
  29. package/dist/src/ownership-transfer/utils.js.map +1 -0
  30. package/dist/src/proxyUpgrader.d.ts +19 -0
  31. package/dist/src/proxyUpgrader.js +89 -0
  32. package/dist/src/proxyUpgrader.js.map +1 -0
  33. package/dist/src/submitters/auto-submitter.d.ts +3 -0
  34. package/dist/src/submitters/auto-submitter.js +11 -2
  35. package/dist/src/submitters/auto-submitter.js.map +1 -1
  36. package/dist/src/submitters/eoa-submitter.js +0 -1
  37. package/dist/src/submitters/eoa-submitter.js.map +1 -1
  38. package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js +0 -4
  39. package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js.map +1 -1
  40. package/dist/src/submitters/safe-ima-marionette-submitter.d.ts +1 -0
  41. package/dist/src/submitters/safe-ima-marionette-submitter.js +1 -0
  42. package/dist/src/submitters/safe-ima-marionette-submitter.js.map +1 -1
  43. package/dist/src/submitters/safe-submitter.d.ts +2 -0
  44. package/dist/src/submitters/safe-submitter.js +3 -0
  45. package/dist/src/submitters/safe-submitter.js.map +1 -1
  46. package/dist/src/submitters/safe-to-ima-submitter.d.ts +1 -0
  47. package/dist/src/submitters/safe-to-ima-submitter.js +4 -4
  48. package/dist/src/submitters/safe-to-ima-submitter.js.map +1 -1
  49. package/dist/src/submitters/submitter.d.ts +3 -1
  50. package/dist/src/submitters/submitter.js +5 -17
  51. package/dist/src/submitters/submitter.js.map +1 -1
  52. package/dist/src/upgrader.d.ts +12 -6
  53. package/dist/src/upgrader.js +80 -61
  54. package/dist/src/upgrader.js.map +1 -1
  55. package/dist/src/upgraders/abstractTransparentProxyUpgrader.d.ts +19 -0
  56. package/dist/src/upgraders/abstractTransparentProxyUpgrader.js +57 -0
  57. package/dist/src/upgraders/abstractTransparentProxyUpgrader.js.map +1 -0
  58. package/dist/src/upgraders/beaconUpgrader.d.ts +8 -0
  59. package/dist/src/upgraders/beaconUpgrader.js +37 -0
  60. package/dist/src/upgraders/beaconUpgrader.js.map +1 -0
  61. package/dist/src/upgraders/transparentProxyUpgrader.d.ts +5 -0
  62. package/dist/src/upgraders/transparentProxyUpgrader.js +20 -0
  63. package/dist/src/upgraders/transparentProxyUpgrader.js.map +1 -0
  64. package/dist/src/upgraders/v4TransparentProxyUpgrader.d.ts +5 -0
  65. package/dist/src/upgraders/v4TransparentProxyUpgrader.js +19 -0
  66. package/dist/src/upgraders/v4TransparentProxyUpgrader.js.map +1 -0
  67. package/dist/src/verification.d.ts +2 -17
  68. package/dist/src/verification.js +64 -203
  69. package/dist/src/verification.js.map +1 -1
  70. package/dist/src/verifiers/blockscoutVerifier.d.ts +11 -0
  71. package/dist/src/verifiers/blockscoutVerifier.js +85 -0
  72. package/dist/src/verifiers/blockscoutVerifier.js.map +1 -0
  73. package/dist/src/verifiers/etherscanVerifier.d.ts +19 -0
  74. package/dist/src/verifiers/etherscanVerifier.js +105 -0
  75. package/dist/src/verifiers/etherscanVerifier.js.map +1 -0
  76. package/dist/src/verifiers/skaleBlockscoutVerifier.d.ts +7 -0
  77. package/dist/src/verifiers/skaleBlockscoutVerifier.js +60 -0
  78. package/dist/src/verifiers/skaleBlockscoutVerifier.js.map +1 -0
  79. package/package.json +6 -6
  80. package/dist/src/proxyAdmin.d.ts +0 -4
  81. package/dist/src/proxyAdmin.js +0 -56
  82. package/dist/src/proxyAdmin.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # upgrade-tools
2
2
 
3
- Scripts to support upgrades of smart contracts. The package contains common used functions for writing hardhat scripts for smart contracts deployment and upgrade.
3
+ Scripts to support upgrades and ownership of smart contracts. The package contains common used functions for writing hardhat scripts for smart contracts deployment and upgrade.
4
+
5
+ It also includes helper classes to allow a swift full or partial transfer of ownership of a SKALE smart-contract project. More details in [ownership-transfer/README](./src/ownership-transfer/README.md).
4
6
 
5
7
  ## Upgrade scripts
6
8
 
@@ -76,7 +76,7 @@ const getContractFactoryAndUpdateManifest = async (contract, nonceProvider) => {
76
76
  }
77
77
  const manifest = await getSkaleManifest();
78
78
  const { librariesToUpgrade, oldLibraries } = await getLibrariesToUpgrade(manifest, linkReferences);
79
- const libraries = await (0, deploy_1.deployLibraries)(librariesToUpgrade, nonceProvider);
79
+ const libraries = await (0, deploy_1.deployLibrariesByChainId)(librariesToUpgrade, nonceProvider);
80
80
  await updateManifest(manifest, libraries, oldLibraries);
81
81
  return await hardhat_1.ethers.getContractFactory(contract, { "libraries": Object.fromEntries(libraries) });
82
82
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contractFactory.js","sourceRoot":"","sources":["../../src/contractFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contractFactory.js","sourceRoot":"","sources":["../../src/contractFactory.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,26 @@
1
- import { VerificationTarget } from "./verification";
2
- export declare class ContractVerifier {
3
- private readonly contractName;
4
- private readonly contractAddress;
5
- private readonly apiURL;
6
- private readonly browserURL;
7
- private readonly isEtherscan;
8
- private readonly etherscan;
9
- constructor(target: VerificationTarget);
10
- private isAlreadyVerified;
11
- private submitVerification;
1
+ import { ValidationResponse } from "@nomicfoundation/hardhat-verify/internal/utilities";
2
+ export interface VerificationTarget {
3
+ contractName: string;
4
+ contractAddress: string;
5
+ constructorArguments?: string;
6
+ }
7
+ export interface VerificationRequestParameters {
8
+ solcInputJson: string;
9
+ fullContractName: string;
10
+ compilerVersion: string;
11
+ }
12
+ export declare abstract class ContractVerifier {
13
+ abstract name: string;
14
+ private readonly PROXY_CONTRACT_NAME;
15
+ verify: (verificationTarget: VerificationTarget, attempts?: number) => Promise<void>;
16
+ attemptVerification(verificationTarget: VerificationTarget): Promise<boolean>;
17
+ protected abstract isAlreadyVerified(verificationTarget: VerificationTarget): Promise<boolean>;
18
+ protected abstract submitVerificationRequest(target: VerificationTarget, params: VerificationRequestParameters): Promise<ValidationResponse>;
19
+ protected abstract getContractUrl(verificationTarget: VerificationTarget): string;
20
+ protected getVerifyParameters(contractName: string): Promise<{
21
+ compilerVersion: string;
22
+ fullContractName: string;
23
+ solcInputJson: string;
24
+ }>;
12
25
  private checkVerificationStatus;
13
- attempt(): Promise<boolean>;
14
26
  }
@@ -4,63 +4,67 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ContractVerifier = void 0;
7
- const verification_1 = require("./verification");
8
- const etherscan_1 = require("@nomicfoundation/hardhat-verify/etherscan");
7
+ const hardhat_1 = require("hardhat");
9
8
  const chalk_1 = __importDefault(require("chalk"));
9
+ const TransparentUpgradeableProxy_json_1 = __importDefault(require("@openzeppelin/upgrades-core/artifacts/@openzeppelin/contracts-v5/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json"));
10
+ const build_info_v5_json_1 = __importDefault(require("@openzeppelin/upgrades-core/artifacts/build-info-v5.json"));
11
+ const DEFAULT_RETRIES_AMOUNT = 5;
10
12
  class ContractVerifier {
11
- constructor(target) {
12
- this.contractName = target.contractName;
13
- this.contractAddress = target.contractAddress;
14
- this.apiURL = target.explorerUrls.apiURL;
15
- this.browserURL = target.explorerUrls.browserURL;
16
- this.isEtherscan = Boolean(target.isEtherscan);
17
- this.etherscan = new etherscan_1.Etherscan(process.env.ETHERSCAN ?? "", this.apiURL, this.browserURL, target.chainId);
13
+ constructor() {
14
+ this.PROXY_CONTRACT_NAME = "TransparentUpgradeableProxy";
15
+ this.verify = async (verificationTarget, attempts = DEFAULT_RETRIES_AMOUNT) => {
16
+ const limit = 0;
17
+ if (attempts > limit) {
18
+ if (!await this.attemptVerification(verificationTarget)) {
19
+ const failedAttempts = 1;
20
+ await this.verify(verificationTarget, attempts - failedAttempts);
21
+ }
22
+ }
23
+ };
18
24
  }
19
- async isAlreadyVerified() {
20
- let verified = false;
21
- if (this.isEtherscan) {
22
- verified = await this.etherscan.isVerified(this.contractAddress);
23
- }
24
- if (!verified) {
25
- verified = await (0, verification_1.isVerifiedOnBlockscout)(this.apiURL, this.contractAddress);
26
- }
27
- if (verified) {
28
- console.log(`${this.contractName} is already verified on: ${this.etherscan.getContractUrl(this.contractAddress)}`);
25
+ async attemptVerification(verificationTarget) {
26
+ if (await this.isAlreadyVerified(verificationTarget)) {
27
+ console.log(chalk_1.default.cyan(`${verificationTarget.contractName} is already verified on ${this.name}:\n${this.getContractUrl(verificationTarget)}`));
28
+ return true;
29
29
  }
30
- return verified;
31
- }
32
- async submitVerification(params) {
30
+ const params = await this.getVerifyParameters(verificationTarget.contractName);
33
31
  try {
34
- const res = await this.etherscan.verify(this.contractAddress, params.solcInputJson, params.fullContractName, params.compilerVersion, "");
35
- return res.message;
32
+ const response = await this.submitVerificationRequest(verificationTarget, params);
33
+ return this.checkVerificationStatus(verificationTarget, response);
36
34
  }
37
35
  catch (error) {
38
- console.log(chalk_1.default.yellow(`Verification attempt for ${this.contractName} failed with error: ${error}`));
39
- return null;
40
- }
41
- }
42
- async checkVerificationStatus(guid) {
43
- const status = await this.etherscan.getVerificationStatus(guid);
44
- if (status.isFailure()) {
45
- console.log(chalk_1.default.red(`Failed to verify contract ${this.contractName}`));
36
+ console.log(chalk_1.default.yellow(`Verification attempt for ${verificationTarget.contractName} failed on ${this.name} with error: ${error}`));
46
37
  return false;
47
38
  }
48
- console.log(`${this.contractName} is successfully verified on: ${this.etherscan.getContractUrl(this.contractAddress)}`);
49
- return true;
50
39
  }
51
- async attempt() {
52
- if (await this.isAlreadyVerified()) {
53
- return true;
40
+ async getVerifyParameters(contractName) {
41
+ if (contractName === this.PROXY_CONTRACT_NAME) {
42
+ return {
43
+ compilerVersion: build_info_v5_json_1.default.solcLongVersion,
44
+ fullContractName: `${TransparentUpgradeableProxy_json_1.default.sourceName}:${contractName}`,
45
+ solcInputJson: JSON.stringify(build_info_v5_json_1.default.input)
46
+ };
54
47
  }
55
- const params = await (0, verification_1.getVerifyParameters)(this.contractName);
56
- if (this.isEtherscan) {
57
- params.compilerVersion = `v${params.compilerVersion}`;
48
+ const artifact = await hardhat_1.artifacts.readArtifact(contractName);
49
+ const fullContractName = `${artifact.sourceName}:${contractName}`;
50
+ const buildInfo = await hardhat_1.artifacts.getBuildInfo(fullContractName);
51
+ if (!buildInfo) {
52
+ throw new Error(`No build-info for ${contractName}`);
58
53
  }
59
- const guid = await this.submitVerification(params);
60
- if (!guid) {
54
+ return {
55
+ compilerVersion: buildInfo.solcLongVersion,
56
+ fullContractName,
57
+ solcInputJson: JSON.stringify(buildInfo.input)
58
+ };
59
+ }
60
+ // Private
61
+ checkVerificationStatus(verificationTarget, response) {
62
+ if (response.isFailure()) {
63
+ console.log(chalk_1.default.red(`Failed to verify contract ${verificationTarget.contractName}`));
61
64
  return false;
62
65
  }
63
- return this.checkVerificationStatus(guid);
66
+ console.log(chalk_1.default.cyan(`${verificationTarget.contractName} is successfully verified on ${this.name}:\n${this.getContractUrl(verificationTarget)}`));
67
+ return true;
64
68
  }
65
69
  }
66
70
  exports.ContractVerifier = ContractVerifier;
@@ -1 +1 @@
1
- {"version":3,"file":"contractVerifier.js","sourceRoot":"","sources":["../../src/contractVerifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contractVerifier.js","sourceRoot":"","sources":["../../src/contractVerifier.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ import { NonceProvider } from "./nonceProvider";
2
2
  export declare const deployLibrariesSequential: (libraryNames: string[], nonceProvider?: NonceProvider) => Promise<Map<string, string>>;
3
3
  export declare const deployLibraries: (libraryNames: string[], nonceProvider?: NonceProvider) => Promise<Map<string, string>>;
4
4
  export declare const getManifestFile: () => Promise<string>;
5
+ export declare const deployLibrariesByChainId: (libraryNames: string[], nonceProvider?: NonceProvider) => Promise<Map<string, string>>;
5
6
  export declare const getContractFactory: (contract: string) => Promise<import("ethers").ContractFactory<any[], import("ethers").BaseContract>>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getContractFactory = exports.getManifestFile = exports.deployLibraries = exports.deployLibrariesSequential = void 0;
3
+ exports.getContractFactory = exports.deployLibrariesByChainId = exports.getManifestFile = exports.deployLibraries = exports.deployLibrariesSequential = void 0;
4
4
  const upgrades_core_1 = require("@openzeppelin/upgrades-core");
5
5
  const hardhat_1 = require("hardhat");
6
6
  const nonceProvider_1 = require("./nonceProvider");
@@ -74,20 +74,27 @@ const getLibraryArtifacts = async (libraries) => {
74
74
  }
75
75
  return libraryArtifacts;
76
76
  };
77
+ const deployLibrariesByChainId = async (libraryNames, nonceProvider) => {
78
+ let isDevNetwork = false;
79
+ try {
80
+ isDevNetwork = await (0, upgrades_core_1.isDevelopmentNetwork)(hardhat_1.ethers.provider);
81
+ }
82
+ catch {
83
+ console.error("Could not get web3_clientVersion. Assuming production network.");
84
+ }
85
+ if (isDevNetwork) {
86
+ return await (0, exports.deployLibrariesSequential)(libraryNames, nonceProvider);
87
+ }
88
+ return await (0, exports.deployLibraries)(libraryNames, nonceProvider);
89
+ };
90
+ exports.deployLibrariesByChainId = deployLibrariesByChainId;
77
91
  const getContractFactory = async (contract) => {
78
92
  const { linkReferences } = await hardhat_1.artifacts.readArtifact(contract);
79
93
  if (!Object.keys(linkReferences).length) {
80
94
  return await hardhat_1.ethers.getContractFactory(contract);
81
95
  }
82
96
  const libraryNames = (0, contractFactory_1.getLibrariesNames)(linkReferences);
83
- const { chainId } = await hardhat_1.ethers.provider.getNetwork();
84
- const libraries = await (async () => {
85
- const hardhatChainId = 31337n;
86
- if (chainId === hardhatChainId) {
87
- return await (0, exports.deployLibrariesSequential)(libraryNames);
88
- }
89
- return await (0, exports.deployLibraries)(libraryNames);
90
- })();
97
+ const libraries = await (0, exports.deployLibrariesByChainId)(libraryNames);
91
98
  const libraryArtifacts = await getLibraryArtifacts(libraries);
92
99
  await updateManifest(libraryArtifacts);
93
100
  return await hardhat_1.ethers.getContractFactory(contract, { "libraries": Object.fromEntries(libraries) });
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/deploy.ts"],"names":[],"mappings":"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"}
@@ -5,38 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createMultiSendTransaction = void 0;
7
7
  const safe_core_sdk_types_1 = require("@safe-global/safe-core-sdk-types");
8
- const ethers_1 = require("ethers");
9
8
  const hardhat_1 = require("hardhat");
10
9
  const protocol_kit_1 = __importDefault(require("@safe-global/protocol-kit"));
11
10
  const api_kit_1 = __importDefault(require("@safe-global/api-kit"));
12
11
  // Cspell:words arbitrum celo sepolia xdai holesky
13
- // Constants
14
- const URLS = {
15
- "safe_transaction": {
16
- [ethers_1.Network.from("mainnet").chainId.toString()]: "https://safe-transaction-mainnet.safe.global/api",
17
- [ethers_1.Network.from("arbitrum").chainId.toString()]: "https://safe-transaction-arbitrum.safe.global/api",
18
- [ethers_1.Network.from("base").chainId.toString()]: "https://safe-transaction-base.safe.global/api",
19
- [ethers_1.Network.from("base-sepolia").chainId.toString()]: "https://safe-transaction-base-sepolia.safe.global/api",
20
- [ethers_1.Network.from("bnb").chainId.toString()]: "https://safe-transaction-bsc.safe.global/api",
21
- [ethers_1.Network.from("xdai").chainId.toString()]: "https://safe-transaction-gnosis-chain.safe.global/api",
22
- [ethers_1.Network.from("optimism").chainId.toString()]: "https://safe-transaction-optimism.safe.global/api",
23
- [ethers_1.Network.from("matic").chainId.toString()]: "https://safe-transaction-polygon.safe.global/api",
24
- [ethers_1.Network.from("sepolia").chainId.toString()]: "https://safe-transaction-sepolia.safe.global/api",
25
- [ethers_1.Network.from("holesky").chainId.toString()]: "https://transaction-holesky.holesky-safe.protofire.io/api",
26
- // Aurora
27
- "0x4e454152": "https://safe-transaction-aurora.safe.global/api",
28
- // Polygon zkEVM
29
- "1101": "https://safe-transaction-zkevm.safe.global/api",
30
- // ZkSync Era Mainnet
31
- "324": "https://safe-transaction-zksync.safe.global/api",
32
- // Celo
33
- "42220": "https://safe-transaction-celo.safe.global/api",
34
- // Avalanche
35
- "43114": "https://safe-transaction-avalanche.safe.global/api",
36
- // Scroll
37
- "534352": "https://safe-transaction-scroll.safe.global/api",
38
- }
39
- };
40
12
  const defaultOptions = {
41
13
  /*
42
14
  * Gas costs not related to the transaction execution
@@ -69,17 +41,14 @@ const getSafeTransactionData = (transactions) => {
69
41
  }
70
42
  return safeTransactionData;
71
43
  };
72
- const getSafeTransactionUrl = (chainId) => {
73
- if (Object.keys(URLS.safe_transaction).includes(chainId.toString())) {
74
- return URLS.safe_transaction[Number(chainId)];
75
- }
76
- throw Error("Can't get Safe Transaction Service url" +
77
- ` at network with chainId = ${chainId}`);
78
- };
79
44
  const getSafeService = (chainId) => {
45
+ if (!process.env.GNOSIS_API_KEY) {
46
+ throw new Error("GNOSIS_API_KEY is not set");
47
+ }
80
48
  const safeService = new api_kit_1.default({
49
+ apiKey: process.env.GNOSIS_API_KEY,
81
50
  chainId,
82
- "txServiceUrl": getSafeTransactionUrl(chainId)
51
+ // Does not need the URL - chainId is enough
83
52
  });
84
53
  return safeService;
85
54
  };
@@ -111,7 +80,7 @@ const createMultiSendTransaction = async (safeAddress, chainId, transactions) =>
111
80
  * Transaction cannot be executed until
112
81
  * Safe's nonce is not equal to this nonce
113
82
  */
114
- nonce
83
+ nonce: parseInt(nonce, 10)
115
84
  }
116
85
  };
117
86
  const safeSdk = await protocol_kit_1.default.init({
@@ -1 +1 @@
1
- {"version":3,"file":"gnosis-safe.js","sourceRoot":"","sources":["../../src/gnosis-safe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gnosis-safe.js","sourceRoot":"","sources":["../../src/gnosis-safe.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  export * from "./abi";
2
2
  export * from "./deploy";
3
3
  export * from "./gnosis-safe";
4
+ export * from "./proxyUpgrader";
4
5
  export * from "./submitters";
5
6
  export * from "./verification";
6
7
  export * from "./version";
7
8
  export * from "./upgrader";
9
+ export * from "./upgraders/abstractTransparentProxyUpgrader";
10
+ export * from "./upgraders/beaconUpgrader";
11
+ export * from "./ownership-transfer/instanceAdmin";
package/dist/src/index.js CHANGED
@@ -17,8 +17,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./abi"), exports);
18
18
  __exportStar(require("./deploy"), exports);
19
19
  __exportStar(require("./gnosis-safe"), exports);
20
+ __exportStar(require("./proxyUpgrader"), exports);
20
21
  __exportStar(require("./submitters"), exports);
21
22
  __exportStar(require("./verification"), exports);
22
23
  __exportStar(require("./version"), exports);
23
24
  __exportStar(require("./upgrader"), exports);
25
+ __exportStar(require("./upgraders/abstractTransparentProxyUpgrader"), exports);
26
+ __exportStar(require("./upgraders/beaconUpgrader"), exports);
27
+ __exportStar(require("./ownership-transfer/instanceAdmin"), exports);
24
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2CAAyB;AACzB,gDAA8B;AAC9B,+CAA6B;AAC7B,iDAA+B;AAC/B,4CAA0B;AAC1B,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2CAAyB;AACzB,gDAA8B;AAC9B,kDAAgC;AAChC,+CAA6B;AAC7B,iDAA+B;AAC/B,4CAA0B;AAC1B,6CAA2B;AAC3B,+EAA6D;AAC7D,6DAA0C;AAC1C,qEAAmD"}
@@ -0,0 +1,8 @@
1
+ export declare const ERC1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
2
+ export declare const ERC1967_IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
3
+ export declare const UPGRADEABLE_BEACON_ABI: string[];
4
+ export declare const OWNABLE_ABI: string[];
5
+ export declare const ACCESS_CONTROL_ABI: string[];
6
+ export declare const ACCESS_MANAGER_ABI: string[];
7
+ export declare const ACCESS_MANAGED_ABI: string[];
8
+ export declare const MULTISIG_ABI: string[];
@@ -0,0 +1,33 @@
1
+ "use strict";
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.UPGRADEABLE_BEACON_ABI = exports.ERC1967_IMPLEMENTATION_SLOT = exports.ERC1967_ADMIN_SLOT = void 0;
4
+ exports.ERC1967_ADMIN_SLOT = "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
5
+ exports.ERC1967_IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
6
+ exports.UPGRADEABLE_BEACON_ABI = [
7
+ "function owner() view returns (address)",
8
+ "function implementation() view returns (address)",
9
+ "function upgradeTo(address newImplementation)"
10
+ ];
11
+ exports.OWNABLE_ABI = [
12
+ "function transferOwnership(address newOwner)",
13
+ "function owner() view returns (address)"
14
+ ];
15
+ exports.ACCESS_CONTROL_ABI = [
16
+ "function hasRole(bytes32 role, address account) view returns (bool)",
17
+ "function grantRole(bytes32 role, address account)",
18
+ "function renounceRole(bytes32 role, address account)",
19
+ "function getRoleMemberCount(bytes32 role) view returns (uint256)"
20
+ ];
21
+ exports.ACCESS_MANAGER_ABI = [
22
+ "function hasRole(uint64 role, address account) view returns (bool)",
23
+ "function grantRole(uint64 role, address account, uint32 executionDelay)",
24
+ "function renounceRole(uint64 role, address account)"
25
+ ];
26
+ exports.ACCESS_MANAGED_ABI = [
27
+ "function authority() view returns (address)"
28
+ ];
29
+ exports.MULTISIG_ABI = [
30
+ "function getOwners() view returns (address[])",
31
+ "function getThreshold() view returns (uint256)"
32
+ ];
33
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +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;AAGnG,QAAA,sBAAsB,GAAG;IAClC,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"}
@@ -0,0 +1,55 @@
1
+ import { Pattern } from "./utils";
2
+ import { PermissionModel } from "./permission-utils";
3
+ import { Transaction } from "ethers";
4
+ export interface BytesRole {
5
+ name: string;
6
+ identifier: string;
7
+ }
8
+ export interface UintRole {
9
+ name: string;
10
+ identifier: bigint;
11
+ }
12
+ export interface ContractMetadataDetails {
13
+ name: string;
14
+ address: string;
15
+ pattern?: Pattern;
16
+ permissionModel?: PermissionModel[];
17
+ }
18
+ export interface TransactionData {
19
+ transaction: Transaction;
20
+ description?: string;
21
+ }
22
+ export declare class ContractAdmin {
23
+ contractName: string;
24
+ pattern?: Pattern;
25
+ address: string;
26
+ permissionModel: PermissionModel[];
27
+ private oldOwner;
28
+ private newOwner;
29
+ private grantOwnershipRoleTxs;
30
+ private renounceOwnershipTxs;
31
+ constructor(details: ContractMetadataDetails, oldOwner: string, newOwner: string);
32
+ scanPatternAndPermissionModels(): Promise<void>;
33
+ createGrantOwnershipTransactions(bytes32RolesToCheck: BytesRole[], managerRolesToCheck: UintRole[]): Promise<void>;
34
+ createRenounceOwnershipTransactions(bytes32RolesToCheck: BytesRole[], managerRolesToCheck: UintRole[]): Promise<void>;
35
+ getGrantOwnershipTransactions(): TransactionData[];
36
+ getRenounceOwnershipTransactions(): TransactionData[];
37
+ clearRenounceTransactions(): void;
38
+ clearGrantTransactions(): void;
39
+ requiresGrantingOwnership(): boolean;
40
+ requiresRenouncingOwnership(): boolean;
41
+ displayData(columnWidths: {
42
+ maxNameWidth: number;
43
+ maxAddressWidth: number;
44
+ maxPermissionsWidth: number;
45
+ }): void;
46
+ private checkFindings;
47
+ private createTUPPGrantOwnershipTransaction;
48
+ private createOwnableOwnershipTransaction;
49
+ private createAssignUint64RolesTransactions;
50
+ private handleRenounceOwnershipTransaction;
51
+ private createRenounceUint64RolesTransactions;
52
+ private createAssignBytes32RolesTransactions;
53
+ private createRenounceBytes32RolesTransactions;
54
+ private isDuplicateTransaction;
55
+ }