@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
@@ -0,0 +1,7 @@
1
+ import { BlockscoutVerifier } from "./blockscoutVerifier";
2
+ export declare class SkaleBlockscoutVerifier extends BlockscoutVerifier {
3
+ name: string;
4
+ static createFromEndpoint(endpoint: string): Promise<SkaleBlockscoutVerifier | null>;
5
+ private static parseEndpoint;
6
+ private static pingExplorer;
7
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ // Cspell:words skalenodes
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SkaleBlockscoutVerifier = void 0;
5
+ const blockscoutVerifier_1 = require("./blockscoutVerifier");
6
+ const BASE_EXPLORER_URLS = {
7
+ legacy: "legacy-explorer.skalenodes.com",
8
+ mainnet: "explorer.mainnet.skalenodes.com",
9
+ testnet: "explorer.testnet.skalenodes.com"
10
+ };
11
+ class SkaleBlockscoutVerifier extends blockscoutVerifier_1.BlockscoutVerifier {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.name = "SKALE Blockscout";
15
+ }
16
+ static async createFromEndpoint(endpoint) {
17
+ const { schainName, networkType } = SkaleBlockscoutVerifier.parseEndpoint(endpoint);
18
+ const browserURL = `https://${schainName}.${BASE_EXPLORER_URLS[networkType]}`;
19
+ const apiURL = `${browserURL}/api`;
20
+ if (!await SkaleBlockscoutVerifier.pingExplorer(browserURL)) {
21
+ throw new Error(`SKALE block explorer (${browserURL}) is not reachable, set EXPLORER_URL`);
22
+ }
23
+ return new SkaleBlockscoutVerifier(apiURL, browserURL);
24
+ }
25
+ // Private
26
+ static parseEndpoint(endpoint) {
27
+ const { host, pathname } = new URL(endpoint);
28
+ const schainName = pathname.split("/").filter(Boolean).pop();
29
+ let networkType = "mainnet";
30
+ if (host.includes("mainnet.skalenodes")) {
31
+ networkType = "mainnet";
32
+ }
33
+ else if (host.includes("testnet.skalenodes")) {
34
+ networkType = "testnet";
35
+ }
36
+ else if (host.includes("legacy-proxy.")) {
37
+ networkType = "legacy";
38
+ }
39
+ else {
40
+ throw new Error(`The chain is not supported by SKALE block explorer or unknown network in ENDPOINT: ${endpoint}`);
41
+ }
42
+ return { networkType, schainName };
43
+ }
44
+ static async pingExplorer(baseUrl) {
45
+ const url = `${baseUrl}/api/health`;
46
+ try {
47
+ const res = await fetch(url);
48
+ if (!res.ok) {
49
+ return false;
50
+ }
51
+ const jsonResponse = await res.json();
52
+ return jsonResponse.healthy;
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ }
58
+ }
59
+ exports.SkaleBlockscoutVerifier = SkaleBlockscoutVerifier;
60
+ //# sourceMappingURL=skaleBlockscoutVerifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skaleBlockscoutVerifier.js","sourceRoot":"","sources":["../../../src/verifiers/skaleBlockscoutVerifier.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;AAE1B,6DAAwD;AAExD,MAAM,kBAAkB,GAAG;IACvB,MAAM,EAAE,gCAAgC;IACxC,OAAO,EAAE,iCAAiC;IAC1C,OAAO,EAAE,iCAAiC;CAC7C,CAAC;AAEF,MAAa,uBAAwB,SAAQ,uCAAkB;IAA/D;;QACW,SAAI,GAAG,kBAAkB,CAAC;IA6CrC,CAAC;IA3CU,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACnD,MAAM,EAAC,UAAU,EAAE,WAAW,EAAC,GAAG,uBAAuB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,WAAW,UAAU,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9E,MAAM,MAAM,GAAG,GAAG,UAAU,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,uBAAuB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,sCAAsC,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,IAAI,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU;IAEF,MAAM,CAAC,aAAa,CAAC,QAAgB;QACzC,MAAM,EAAC,IAAI,EAAE,QAAQ,EAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAG,CAAC;QAE9D,IAAI,WAAW,GAAoC,SAAS,CAAC;QAC7D,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACtC,WAAW,GAAG,SAAS,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC7C,WAAW,GAAG,SAAS,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,WAAW,GAAG,QAAQ,CAAC;QAC3B,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CACX,sFAAsF,QAAQ,EAAE,CAAC,CAAC;QAC1G,CAAC;QACD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,CAAC;IACrC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAE,OAAe;QAC9C,MAAM,GAAG,GAAG,GAAG,OAAO,aAAa,CAAC;QACpC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,YAAY,CAAC,OAAO,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;CACJ;AA9CD,0DA8CC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skalenetwork/upgrade-tools",
3
- "version": "4.0.0-develop.0",
3
+ "version": "4.0.0-develop.10",
4
4
  "description": "Scripts to support upgrades of smart contracts",
5
5
  "files": [
6
6
  "dist/**/*"
@@ -39,13 +39,13 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@nomicfoundation/hardhat-ethers": "^3.0.0",
42
- "@nomicfoundation/hardhat-verify": "2.0.14",
42
+ "@nomicfoundation/hardhat-verify": "2.1.1",
43
43
  "@openzeppelin/hardhat-upgrades": "^3.1.1",
44
44
  "@openzeppelin/upgrades-core": "^1.27.1",
45
- "@safe-global/api-kit": "^2.4.1",
46
- "@safe-global/protocol-kit": "^5.0.1",
47
- "@safe-global/safe-core-sdk-types": "^5.0.1",
48
- "@skalenetwork/skale-contracts-ethers-v6": "^2.0.0-develop.1",
45
+ "@safe-global/api-kit": "^4.0.1",
46
+ "@safe-global/protocol-kit": "^6.1.2",
47
+ "@safe-global/safe-core-sdk-types": "^5.1.0",
48
+ "@skalenetwork/skale-contracts-ethers-v6": "^2.0.0-develop.6",
49
49
  "@types/mocha": "^9.1.0",
50
50
  "axios": "^1.4.0",
51
51
  "ethereumjs-util": "^7.1.4",
@@ -1,4 +0,0 @@
1
- import { AddressLike, Contract, Transaction } from "ethers";
2
- export declare const getProxyAdmin: (proxy: AddressLike) => Promise<Contract>;
3
- export declare const isNewProxyAdmin: (proxyAdmin: Contract) => Promise<boolean>;
4
- export declare const getUpgradeTransaction: (proxy: AddressLike, implementation: AddressLike) => Promise<Transaction>;
@@ -1,56 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getUpgradeTransaction = exports.isNewProxyAdmin = exports.getProxyAdmin = void 0;
7
- const ethers_1 = require("ethers");
8
- const hardhat_1 = require("hardhat");
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const getProxyAdmin = async (proxy) => {
11
- const proxyAdminAddress = await hardhat_1.upgrades.erc1967.getAdminAddress(await hardhat_1.ethers.resolveAddress(proxy));
12
- const generalProxyAdminAbi = [
13
- "function UPGRADE_INTERFACE_VERSION() view returns (string)",
14
- "function upgrade(address,address)",
15
- "function upgradeAndCall(address,address,bytes) payable",
16
- "function owner() view returns (address)"
17
- ];
18
- return new hardhat_1.ethers.Contract(proxyAdminAddress, generalProxyAdminAbi, await hardhat_1.ethers.provider.getSigner());
19
- };
20
- exports.getProxyAdmin = getProxyAdmin;
21
- const isNewProxyAdmin = async (proxyAdmin) => {
22
- try {
23
- console.log(chalk_1.default.gray(`ProxyAdmin version ${
24
- // This function name is set in external library
25
- // eslint-disable-next-line new-cap
26
- await proxyAdmin.UPGRADE_INTERFACE_VERSION()}`));
27
- return true;
28
- }
29
- catch (error) {
30
- console.log(chalk_1.default.gray("Use old ProxyAdmin"));
31
- return false;
32
- }
33
- };
34
- exports.isNewProxyAdmin = isNewProxyAdmin;
35
- const getUpgradeTransaction = async (proxy, implementation) => {
36
- const proxyAdmin = await (0, exports.getProxyAdmin)(proxy);
37
- if (await (0, exports.isNewProxyAdmin)(proxyAdmin)) {
38
- return ethers_1.Transaction.from({
39
- "data": proxyAdmin.interface.encodeFunctionData("upgradeAndCall", [
40
- await hardhat_1.ethers.resolveAddress(proxy),
41
- await hardhat_1.ethers.resolveAddress(implementation),
42
- "0x"
43
- ]),
44
- "to": await hardhat_1.ethers.resolveAddress(proxyAdmin)
45
- });
46
- }
47
- return ethers_1.Transaction.from({
48
- "data": proxyAdmin.interface.encodeFunctionData("upgrade", [
49
- await hardhat_1.ethers.resolveAddress(proxy),
50
- await hardhat_1.ethers.resolveAddress(implementation),
51
- ]),
52
- "to": await hardhat_1.ethers.resolveAddress(proxyAdmin)
53
- });
54
- };
55
- exports.getUpgradeTransaction = getUpgradeTransaction;
56
- //# sourceMappingURL=proxyAdmin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxyAdmin.js","sourceRoot":"","sources":["../../src/proxyAdmin.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA0D;AAC1D,qCAAyC;AACzC,kDAA0B;AAEnB,MAAM,aAAa,GAAG,KAAK,EAAE,KAAkB,EAAE,EAAE;IACtD,MAAM,iBAAiB,GAAG,MAAM,kBAAQ,CAAC,OAAO,CAAC,eAAe,CAC5D,MAAM,gBAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CACrC,CAAC;IACF,MAAM,oBAAoB,GAAG;QACzB,4DAA4D;QAC5D,mCAAmC;QACnC,wDAAwD;QACxD,yCAAyC;KAC5C,CAAC;IACF,OAAO,IAAI,gBAAM,CAAC,QAAQ,CACtB,iBAAiB,EACjB,oBAAoB,EACpB,MAAM,gBAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CACpC,CAAC;AACN,CAAC,CAAA;AAfY,QAAA,aAAa,iBAezB;AAEM,MAAM,eAAe,GAAG,KAAK,EAAE,UAAoB,EAAE,EAAE;IAC1D,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB;QACzC,gDAAgD;QAChD,mCAAmC;QACnC,MAAM,UAAU,CAAC,yBAAyB,EAC9C,EAAE,CAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC,CAAA;AAZY,QAAA,eAAe,mBAY3B;AAEM,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAAkB,EAAE,cAA2B,EAAE,EAAE;IAC3F,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,MAAM,IAAA,uBAAe,EAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAO,oBAAW,CAAC,IAAI,CAAC;YACpB,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAC3C,gBAAgB,EAChB;gBACI,MAAM,gBAAM,CAAC,cAAc,CAAC,KAAK,CAAC;gBAClC,MAAM,gBAAM,CAAC,cAAc,CAAC,cAAc,CAAC;gBAC3C,IAAI;aACP,CACJ;YACD,IAAI,EAAE,MAAM,gBAAM,CAAC,cAAc,CAAC,UAAU,CAAC;SAChD,CAAC,CAAC;IACP,CAAC;IACD,OAAO,oBAAW,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAC3C,SAAS,EACT;YACI,MAAM,gBAAM,CAAC,cAAc,CAAC,KAAK,CAAC;YAClC,MAAM,gBAAM,CAAC,cAAc,CAAC,cAAc,CAAC;SAC9C,CACJ;QACD,IAAI,EAAE,MAAM,gBAAM,CAAC,cAAc,CAAC,UAAU,CAAC;KAChD,CAAC,CAAC;AACP,CAAC,CAAA;AAzBY,QAAA,qBAAqB,yBAyBjC"}